Changeset 0f9e4403 for src/Parser


Ignore:
Timestamp:
Apr 15, 2016, 12:03:11 PM (10 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, stuck-waitfor-destruct, with_gc
Children:
29ad0ac
Parents:
c5833e8 (diff), 37f0da8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into gc_noraii

Location:
src/Parser
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 14 14:46:32 2015
    13 // Update Count     : 126
     12// Last Modified On : Wed Apr 13 16:53:17 2016
     13// Update Count     : 161
    1414//
    1515
     
    3434const char *DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "" };
    3535const char *DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic" };
    36 const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary" };
     36const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary", };
    3737const char *DeclarationNode::modifierName[]  = { "signed", "unsigned", "short", "long" };
    3838const char *DeclarationNode::aggregateName[] = { "struct", "union", "context" };
    3939const char *DeclarationNode::typeClassName[] = { "type", "dtype", "ftype" };
     40const char *DeclarationNode::builtinTypeName[] = { "__builtin_va_list" };
    4041
    4142UniqueName DeclarationNode::anonymous( "__anonymous" );
    4243
    43 extern LinkageSpec::Type linkage;               /* defined in cfa.y */
     44extern LinkageSpec::Type linkage;                                               // defined in parser.yy
    4445
    4546DeclarationNode *DeclarationNode::clone() const {
     
    5455        newnode->linkage = linkage;
    5556        return newnode;
    56 }
     57} // DeclarationNode::clone
    5758
    5859DeclarationNode::DeclarationNode() : type( 0 ), bitfieldWidth( 0 ), initializer( 0 ), hasEllipsis( false ), linkage( ::linkage ) {
     
    116117        newnode->type->function->newStyle = newStyle;
    117118        newnode->type->function->body = body;
     119        typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
    118120
    119121        if ( body ) {
     
    128130
    129131        return newnode;
    130 }
     132} // DeclarationNode::newFunction
    131133
    132134DeclarationNode *DeclarationNode::newQualifier( Qualifier q ) {
     
    135137        newnode->type->qualifiers.push_back( q );
    136138        return newnode;
    137 }
     139} // DeclarationNode::newQualifier
    138140
    139141DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
     
    141143        newnode->storageClasses.push_back( sc );
    142144        return newnode;
    143 }
     145} // DeclarationNode::newStorageClass
    144146
    145147DeclarationNode *DeclarationNode::newBasicType( BasicType bt ) {
     
    148150        newnode->type->basic->typeSpec.push_back( bt );
    149151        return newnode;
    150 }
     152} // DeclarationNode::newBasicType
     153
     154DeclarationNode *DeclarationNode::newBuiltinType( BuiltinType bt ) {
     155        DeclarationNode *newnode = new DeclarationNode;
     156        newnode->type = new TypeData( TypeData::Builtin );
     157        newnode->type->builtin->type = bt;
     158        return newnode;
     159} // DeclarationNode::newBuiltinType
    151160
    152161DeclarationNode *DeclarationNode::newModifier( Modifier mod ) {
     
    155164        newnode->type->basic->modifiers.push_back( mod );
    156165        return newnode;
    157 }
     166} // DeclarationNode::newModifier
    158167
    159168DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) {
     
    162171        newnode->type->forall = forall;
    163172        return newnode;
    164 }
     173} // DeclarationNode::newForall
    165174
    166175DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) {
     
    171180        newnode->type->symbolic->params = 0;
    172181        return newnode;
    173 }
     182} // DeclarationNode::newFromTypedef
    174183
    175184DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields ) {
     
    179188        newnode->type->aggregate->name = assign_strptr( name );
    180189        if ( newnode->type->aggregate->name == "" ) {           // anonymous aggregate ?
    181                 newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    182         } else {
    183                 // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified
    184                 // by "struct"
    185                 typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
    186                 DeclarationNode *typedf = new DeclarationNode;
    187                 typedf->name = newnode->type->aggregate->name;
    188                 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     190                newnode->type->aggregate->name = anonymous.newName();
    189191        } // if
    190192        newnode->type->aggregate->actuals = actuals;
    191193        newnode->type->aggregate->fields = fields;
    192194        return newnode;
    193 }
     195} // DeclarationNode::newAggregate
    194196
    195197DeclarationNode *DeclarationNode::newEnum( std::string *name, DeclarationNode *constants ) {
     
    200202        if ( newnode->type->enumeration->name == "" ) {         // anonymous enumeration ?
    201203                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    202         } else {
    203                 // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be
    204                 // qualified by "enum"
    205                 typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
    206                 DeclarationNode *typedf = new DeclarationNode;
    207                 typedf->name = newnode->type->enumeration->name;
    208                 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
    209204        } // if
    210205        newnode->type->enumeration->constants = constants;
    211206        return newnode;
    212 }
     207} // DeclarationNode::newEnum
    213208
    214209DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) {
    215210        DeclarationNode *newnode = new DeclarationNode;
    216211        newnode->name = assign_strptr( name );
    217         // do something with the constant
    218         return newnode;
    219 }
     212        newnode->enumeratorValue = constant;
     213        typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
     214        return newnode;
     215} // DeclarationNode::newEnumConstant
    220216
    221217DeclarationNode *DeclarationNode::newName( std::string *name ) {
     
    223219        newnode->name = assign_strptr( name );
    224220        return newnode;
    225 }
     221} // DeclarationNode::newName
    226222
    227223DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) {
     
    232228        newnode->type->symbolic->actuals = params;
    233229        return newnode;
    234 }
     230} // DeclarationNode::newFromTypeGen
    235231
    236232DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) {
     
    241237        newnode->type->variable->name = newnode->name;
    242238        return newnode;
    243 }
    244 
    245 DeclarationNode *DeclarationNode::newContext( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) {
     239} // DeclarationNode::newTypeParam
     240
     241DeclarationNode *DeclarationNode::newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) {
    246242        DeclarationNode *newnode = new DeclarationNode;
    247243        newnode->type = new TypeData( TypeData::Aggregate );
    248         newnode->type->aggregate->kind = Context;
     244        newnode->type->aggregate->kind = Trait;
    249245        newnode->type->aggregate->params = params;
    250246        newnode->type->aggregate->fields = asserts;
    251247        newnode->type->aggregate->name = assign_strptr( name );
    252248        return newnode;
    253 }
    254 
    255 DeclarationNode *DeclarationNode::newContextUse( std::string *name, ExpressionNode *params ) {
     249} // DeclarationNode::newTrait
     250
     251DeclarationNode *DeclarationNode::newTraitUse( std::string *name, ExpressionNode *params ) {
    256252        DeclarationNode *newnode = new DeclarationNode;
    257253        newnode->type = new TypeData( TypeData::AggregateInst );
    258254        newnode->type->aggInst->aggregate = new TypeData( TypeData::Aggregate );
    259         newnode->type->aggInst->aggregate->aggregate->kind = Context;
     255        newnode->type->aggInst->aggregate->aggregate->kind = Trait;
    260256        newnode->type->aggInst->aggregate->aggregate->name = assign_strptr( name );
    261257        newnode->type->aggInst->params = params;
    262258        return newnode;
    263 }
     259} // DeclarationNode::newTraitUse
    264260
    265261DeclarationNode *DeclarationNode::newTypeDecl( std::string *name, DeclarationNode *typeParams ) {
     
    271267        newnode->type->symbolic->name = newnode->name;
    272268        return newnode;
    273 }
     269} // DeclarationNode::newTypeDecl
    274270
    275271DeclarationNode *DeclarationNode::newPointer( DeclarationNode *qualifiers ) {
     
    277273        newnode->type = new TypeData( TypeData::Pointer );
    278274        return newnode->addQualifiers( qualifiers );
    279 }
     275} // DeclarationNode::newPointer
    280276
    281277DeclarationNode *DeclarationNode::newArray( ExpressionNode *size, DeclarationNode *qualifiers, bool isStatic ) {
     
    290286        } // if
    291287        return newnode->addQualifiers( qualifiers );
    292 }
     288} // DeclarationNode::newArray
    293289
    294290DeclarationNode *DeclarationNode::newVarArray( DeclarationNode *qualifiers ) {
     
    794790                        errors.append( e );
    795791                } // try
    796                 cur = dynamic_cast< DeclarationNode *>( cur->get_link() );
     792                cur = dynamic_cast<DeclarationNode *>( cur->get_link() );
    797793        } // while
    798794        if ( ! errors.isEmpty() ) {
     
    881877                          ret = new UnionInstType( type->buildQualifiers(), type->aggregate->name );
    882878                          break;
    883                         case DeclarationNode::Context:
    884                           ret = new ContextInstType( type->buildQualifiers(), type->aggregate->name );
     879                        case DeclarationNode::Trait:
     880                          ret = new TraitInstType( type->buildQualifiers(), type->aggregate->name );
    885881                          break;
    886882                        default:
  • src/Parser/ExpressionNode.cc

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 13:32:30 2016
    13 // Update Count     : 271
     12// Last Modified On : Fri Apr  8 15:43:05 2016
     13// Update Count     : 296
    1414//
    1515
     
    2222
    2323#include "ParseNode.h"
     24#include "TypeData.h"
    2425#include "SynTree/Constant.h"
    2526#include "SynTree/Expression.h"
     27#include "SynTree/Declaration.h"
    2628#include "Common/UnimplementedError.h"
    2729#include "parseutility.h"
     
    487489                args.front() = new AddressExpr( args.front() );
    488490                break;
    489           default:
    490                 /* do nothing */
     491          default:              // do nothing
    491492                ;
    492         }
     493        } // switch
    493494
    494495        switch ( op->get_type() ) {
     
    873874}
    874875
     876
     877CompoundLiteralNode::CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ) : type( type ), kids( kids ) {}
     878CompoundLiteralNode::CompoundLiteralNode( const CompoundLiteralNode &other ) : ExpressionNode( other ), type( other.type ), kids( other.kids ) {}
     879
     880CompoundLiteralNode::~CompoundLiteralNode() {
     881        delete kids;
     882        delete type;
     883}
     884
     885CompoundLiteralNode *CompoundLiteralNode::clone() const {
     886        return new CompoundLiteralNode( *this );
     887}
     888
     889void CompoundLiteralNode::print( std::ostream &os, int indent ) const {
     890        os << string( indent,' ' ) << "CompoundLiteralNode:" << endl;
     891
     892        os << string( indent + 2, ' ' ) << "type:" << endl;
     893        if ( type != 0 )
     894                type->print( os, indent + 4 );
     895
     896        os << string( indent + 2, ' ' ) << "initialization:" << endl;
     897        if ( kids != 0 )
     898                kids->printList( os, indent + 4 );
     899}
     900
     901void CompoundLiteralNode::printOneLine( std::ostream &os, int indent ) const {
     902        os << "( ";
     903        if ( type ) type->print( os );
     904        os << ", ";
     905        if ( kids ) kids->printOneLine( os );
     906        os << ") ";
     907}
     908
     909Expression *CompoundLiteralNode::build() const {
     910        Declaration * newDecl = type->build();                          // compound literal type
     911        if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type
     912                return new CompoundLiteralExpr( newDeclWithType->get_type(), kids->build() );
     913        // these types do not have associated type information
     914        } else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl )  ) {
     915                return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), kids->build() );
     916        } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl )  ) {
     917                return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), kids->build() );
     918        } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl )  ) {
     919                return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), kids->build() );
     920        } else {
     921                assert( false );
     922        } // if
     923}
     924
     925
    875926ExpressionNode *flattenCommas( ExpressionNode *list ) {
    876927        if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) ) {
  • src/Parser/ParseNode.h

    rc5833e8 r0f9e4403  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // ParseNode.h -- 
     7// ParseNode.h --
    88//
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:28:16 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 13:32:32 2016
    13 // Update Count     : 184
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Mon Apr 11 11:50:52 2016
     13// Update Count     : 205
    1414//
    1515
     
    108108
    109109        ConstantNode( Type, std::string * );
    110         ConstantNode( const ConstantNode &other ) : value( *new std::string( other.value ) ) {};
     110        ConstantNode( const ConstantNode &other ) : type( other.type ), btype( other.btype), value( *new std::string( other.value ) ) {};
    111111        ~ConstantNode() { delete &value; }
    112112
     
    177177        enum Type { TupleC, Comma, TupleFieldSel, // n-adic
    178178                                // triadic
    179                                 Cond, NCond, 
     179                                Cond, NCond,
    180180                                // diadic
    181                                 SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And, 
    182                                 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 
     181                                SizeOf, AlignOf, OffsetOf, Attr, CompLit, Plus, Minus, Mul, Div, Mod, Or, And,
     182                                BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq,
    183183                                Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,
    184184                                Index, FieldSel, PFieldSel, Range,
     
    309309        ValofExprNode( const ValofExprNode &other );
    310310        ~ValofExprNode();
    311  
     311
    312312        virtual ValofExprNode *clone() const { return new ValofExprNode( *this ); }
    313313
     
    329329        enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary };
    330330        enum Modifier  { Signed, Unsigned, Short, Long };
    331         enum Aggregate { Struct, Union, Context };
     331        enum Aggregate { Struct, Union, Trait };
    332332        enum TypeClass { Type, Dtype, Ftype };
    333 
    334         static const char *storageName[]; 
     333        enum BuiltinType { Valist };
     334
     335        static const char *storageName[];
    335336        static const char *qualifierName[];
    336337        static const char *basicTypeName[];
     
    338339        static const char *aggregateName[];
    339340        static const char *typeClassName[];
     341        static const char *builtinTypeName[];
    340342
    341343        static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false );
     
    352354        static DeclarationNode *newFromTypeGen( std::string *, ExpressionNode *params );
    353355        static DeclarationNode *newTypeParam( TypeClass, std::string *);
    354         static DeclarationNode *newContext( std::string *name, DeclarationNode *params, DeclarationNode *asserts );
    355         static DeclarationNode *newContextUse( std::string *name, ExpressionNode *params );
     356        static DeclarationNode *newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts );
     357        static DeclarationNode *newTraitUse( std::string *name, ExpressionNode *params );
    356358        static DeclarationNode *newTypeDecl( std::string *name, DeclarationNode *typeParams );
    357359        static DeclarationNode *newPointer( DeclarationNode *qualifiers );
     
    363365        static DeclarationNode *newAttr( std::string *, ExpressionNode *expr );
    364366        static DeclarationNode *newAttr( std::string *, DeclarationNode *type );
     367        static DeclarationNode *newBuiltinType( BuiltinType );
    365368
    366369        DeclarationNode *addQualifiers( DeclarationNode *);
     
    401404        LinkageSpec::Type get_linkage() const { return linkage; }
    402405        DeclarationNode *extractAggregate() const;
     406        ExpressionNode *get_enumeratorValue() const { return enumeratorValue; }
    403407
    404408        DeclarationNode();
     
    413417        std::list< std::string > attributes;
    414418        ExpressionNode *bitfieldWidth;
     419        ExpressionNode *enumeratorValue;
    415420        InitializerNode *initializer;
    416421        bool hasEllipsis;
     
    422427class StatementNode : public ParseNode {
    423428  public:
    424         enum Type { Exp,   If,        Switch,  Case,    Default,  Choose,   Fallthru, 
     429        enum Type { Exp,   If,        Switch,  Case,    Default,  Choose,   Fallthru,
    425430                                While, Do,        For,
    426431                                Goto,  Continue,  Break,   Return,  Throw,
     
    530535        bool aggregate;
    531536        ExpressionNode *designator; // may be list
     537        InitializerNode *kids;
     538};
     539
     540class CompoundLiteralNode : public ExpressionNode {
     541  public:
     542        CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids );
     543        CompoundLiteralNode( const CompoundLiteralNode &type );
     544        ~CompoundLiteralNode();
     545
     546        virtual CompoundLiteralNode *clone() const;
     547
     548        DeclarationNode *get_type() const { return type; }
     549        CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; }
     550
     551        InitializerNode *get_initializer() const { return kids; }
     552        CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; }
     553
     554        void print( std::ostream &, int indent = 0 ) const;
     555        void printOneLine( std::ostream &, int indent = 0 ) const;
     556
     557        virtual Expression *build() const;
     558  private:
     559        DeclarationNode *type;
    532560        InitializerNode *kids;
    533561};
  • src/Parser/Parser.cc

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 14:54:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 31 23:45:19 2015
    13 // Update Count     : 4
     12// Last Modified On : Mon Mar 21 18:04:47 2016
     13// Update Count     : 5
    1414//
    1515
    1616#include "Parser.h"
    17 #include "TypedefTable.h"
    1817#include "lex.h"
    1918#include "parser.h"
     19#include "TypedefTable.h"
    2020
    2121// global variables in cfa.y
  • src/Parser/TypeData.cc

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 14 14:57:23 2015
    13 // Update Count     : 32
     12// Last Modified On : Wed Mar  2 17:26:45 2016
     13// Update Count     : 49
    1414//
    1515
     
    2323#include "SynTree/Expression.h"
    2424#include "SynTree/Statement.h"
     25#include "SynTree/Initializer.h"
    2526
    2627TypeData::TypeData( Kind k ) : kind( k ), base( 0 ), forall( 0 ) {
     
    8485                typeexpr->expr = 0;
    8586                break;
     87          case Builtin:
     88                builtin = new Builtin_t;
     89                break;
    8690          case Attr:
    8791                attr = new Attr_t;
     
    149153                delete typeexpr->expr;
    150154                delete typeexpr;
     155                break;
     156          case Builtin:
     157                delete builtin;
    151158                break;
    152159          case Attr:
     
    221228                newtype->typeexpr->expr = maybeClone( typeexpr->expr );
    222229                break;
     230          case Builtin:
     231                newtype->builtin->type = builtin->type;
     232                break;
    223233          case Attr:
    224234                newtype->attr->expr = maybeClone( attr->expr );
     
    396406                        attr->type->print( os, indent + 2 );
    397407                } // if
     408                break;
     409          case Builtin:
     410                os << "gcc builtin type";
    398411                break;
    399412          default:
     
    506519          case Typeof:
    507520                return buildTypeof();
     521          case Builtin:
     522                return new VarArgsType( buildQualifiers() );
    508523          case Attr:
    509524                return buildAttr();
     
    805820                buildForall( aggregate->params, at->get_parameters() );
    806821                break;
    807           case DeclarationNode::Context:
    808                 at = new ContextDecl( aggregate->name );
     822          case DeclarationNode::Trait:
     823                at = new TraitDecl( aggregate->name );
    809824                buildList( aggregate->params, at->get_parameters() );
    810825                break;
     
    845860                        ret = new UnionInstType( buildQualifiers(), aggInst->aggregate->aggregate->name );
    846861                        break;
    847                   case DeclarationNode::Context:
    848                         ret = new ContextInstType( buildQualifiers(), aggInst->aggregate->aggregate->name );
     862                  case DeclarationNode::Trait:
     863                        ret = new TraitInstType( buildQualifiers(), aggInst->aggregate->aggregate->name );
    849864                        break;
    850865                  default:
     
    883898        EnumDecl *ret = new EnumDecl( enumeration->name );
    884899        buildList( enumeration->constants, ret->get_members() );
     900        std::list< Declaration * >::iterator members = ret->get_members().begin();
     901        for ( const DeclarationNode *cur = enumeration->constants; cur != NULL; cur = dynamic_cast<DeclarationNode *>( cur->get_link() ), ++members ) {
     902                if ( cur->get_enumeratorValue() != NULL ) {
     903                        ObjectDecl *member = dynamic_cast<ObjectDecl *>(*members);
     904                        member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ) ) );
     905                } // if
     906        } // for
    885907        return ret;
    886908}
  • src/Parser/TypeData.h

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jan 14 23:31:15 2016
    13 // Update Count     : 17
     12// Last Modified On : Fri Feb 26 14:21:38 2016
     13// Update Count     : 19
    1414//
    1515
     
    2424struct TypeData {
    2525        enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst,
    26                                 Enum, EnumConstant, Symbolic, SymbolicInst, Variable, Tuple, Typeof, Attr } kind;
     26                                Enum, EnumConstant, Symbolic, SymbolicInst, Variable, Tuple, Typeof, Builtin, Attr } kind;
    2727
    2828        TypeData( Kind k = Unknown );
     
    9898        };
    9999
     100        struct Builtin_t {
     101                DeclarationNode::BuiltinType type;
     102        };
     103
    100104        struct Attr_t {
    101105                std::string name;
     
    116120                Typeof_t * typeexpr;
    117121                Attr_t * attr;
     122                Builtin_t * builtin;
    118123        };
    119124
  • src/Parser/TypedefTable.cc

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jun 26 07:30:16 2015
    13 // Update Count     : 19
     12// Last Modified On : Wed Apr 13 16:57:30 2016
     13// Update Count     : 24
    1414//
    1515
    1616#include <map>
    1717#include <list>
     18#include <cassert>
    1819#include "TypedefTable.h"
    19 #include <cassert>
    2020using namespace std;
    2121
     
    2929TypedefTable::TypedefTable() : currentScope( 0 ) {}
    3030
     31bool TypedefTable::exists( const string &identifier ) {
     32        return table.count( identifier ) > 0;
     33}
     34
     35int TypedefTable::isKind( const string &identifier ) const {
     36        tableType::const_iterator id_pos = table.find( identifier );
     37        // Name lookup defaults to identifier, and then the identifier's kind is set by the parser.
     38        if ( id_pos == table.end() ) return IDENTIFIER;
     39        return id_pos->second.begin()->kind;
     40}
     41
    3142void TypedefTable::changeKind( const string &identifier, kind_t kind ) {
    3243        tableType::iterator id_pos = table.find( identifier );
    33         if ( id_pos == table.end() ) {
    34                 return;
    35         } else {
    36                 (*((*id_pos ).second.begin())).kind = kind;
    37                 return;
     44        if ( id_pos == table.end() ) return;
     45        id_pos->second.begin()->kind = kind;
     46}
     47
     48// SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by
     49// "struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed
     50// if the name is explicitly used.
     51void TypedefTable::makeTypedef( const string &name ) {
     52        if ( ! typedefTable.exists( name ) ) {
     53                typedefTable.addToEnclosingScope( name, TypedefTable::TD );
    3854        } // if
    3955}
    4056
    41 bool TypedefTable::isKind( const string &identifier, kind_t kind ) const {
    42         tableType::const_iterator id_pos = table.find( identifier );
    43         if ( id_pos == table.end() ) {
    44                 return true;
    45         } else {
    46                 return (*((*id_pos ).second.begin())).kind == kind;
    47         } // if
    48 }
    49 
    50 bool TypedefTable::isIdentifier( const string &identifier ) const {
    51         return isKind( identifier, ID );
    52 }
    53 
    54 bool TypedefTable::isTypedef( const string &identifier ) const {
    55         return isKind( identifier, TD );
    56 }
    57 
    58 bool TypedefTable::isTypegen( const string &identifier ) const {
    59         return isKind( identifier, TG );
    60 }
    61 
    6257void TypedefTable::addToScope( const std::string &identifier, kind_t kind, int scope ) {
    63         if ( currentContext != "" && scope == contextScope ) {
     58        if ( currentTrait != "" && scope == contextScope ) {
    6459                DeferredEntry entry = { identifier, kind };
    65                 contexts[currentContext].push_back( entry );
     60                contexts[currentTrait].push_back( entry );
    6661        } else {
    6762                debugPrint( "Adding " << identifier << " as kind " << kind << " scope " << scope << " from scope " << currentScope << endl );
     
    112107}
    113108
    114 void TypedefTable::openContext( const std::string &contextName ) {
     109void TypedefTable::openTrait( const std::string &contextName ) {
    115110        map< string, deferListType >::iterator i = contexts.find( contextName );
    116111        if ( i != contexts.end() ) {
     
    150145}
    151146
    152 void TypedefTable::enterContext( const std::string &contextName ) {
    153         currentContext = contextName;
     147void TypedefTable::enterTrait( const std::string &contextName ) {
     148        currentTrait = contextName;
    154149        contextScope = currentScope;
    155150}
    156151
    157 void TypedefTable::leaveContext() {
    158         currentContext = "";
     152void TypedefTable::leaveTrait() {
     153        currentTrait = "";
    159154}
    160155
  • src/Parser/TypedefTable.h

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat May 16 15:24:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 25 22:52:15 2015
    13 // Update Count     : 11
     12// Last Modified On : Wed Apr 13 16:59:56 2016
     13// Update Count     : 27
    1414//
    1515
     
    2222#include <stack>
    2323
     24#include "lex.h"
     25#include "parser.h"
     26
    2427class TypedefTable {
    2528  public:
    26         enum kind_t { ID, TD, TG };
     29        enum kind_t { ID = IDENTIFIER, TD = TYPEDEFname, TG = TYPEGENname };
    2730  private:
    2831        struct Entry {
     
    4043
    4144        int currentScope;
    42         std::string currentContext;
     45        std::string currentTrait;
    4346        int contextScope;
    4447       
     
    4952        std::stack< std::string > nextIdentifiers;
    5053
    51         bool isKind( const std::string &identifier, kind_t kind ) const;
    5254        void addToScope( const std::string &identifier, kind_t kind, int scope );
    5355  public:
    5456        TypedefTable();
    5557
    56         bool isIdentifier( const std::string &identifier ) const;
    57         bool isTypedef( const std::string &identifier ) const;
    58         bool isTypegen( const std::string &identifier ) const;
     58        bool exists( const std::string &identifier );
     59        int isKind( const std::string &identifier ) const;
     60        void changeKind( const std::string &identifier, kind_t kind );
    5961
    60         void changeKind( const std::string &identifier, kind_t kind );
    61        
     62        void makeTypedef( const std::string &name );
     63
    6264        // "addToCurrentScope" adds the identifier/type pair to the current scope. This does less than you think it does,
    6365        // since each declaration is within its own scope.  Mostly useful for type parameters.
     
    7981       
    8082        // dump the definitions from a pre-defined context into the current scope
    81         void openContext( const std::string &contextName );
     83        void openTrait( const std::string &contextName );
    8284       
    8385        void enterScope();
    8486        void leaveScope();
    85         void enterContext( const std::string &contextName );
    86         void leaveContext();
     87        void enterTrait( const std::string &contextName );
     88        void leaveTrait();
    8789
    8890        void print() const;
  • src/Parser/lex.cc

    rc5833e8 r0f9e4403  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 179
    385 #define YY_END_OF_BUFFER 180
     384#define YY_NUM_RULES 180
     385#define YY_END_OF_BUFFER 181
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[876] =
     393static yyconst flex_int16_t yy_accept[888] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  114,  114,  117,  117,
    396       180,  178,    7,    9,    8,  137,  116,  101,  142,  145,
    397       113,  124,  125,  140,  138,  128,  139,  131,  141,  106,
    398       107,  108,  129,  130,  147,  149,  148,  150,  178,  101,
    399       122,  178,  123,  143,  101,  103,  101,  101,  101,  101,
    400       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    401       101,  126,  146,  127,  144,    7,  178,    4,    4,  179,
    402       104,  179,  105,  114,  115,  121,  117,  118,    7,    9,
    403         0,    8,  154,  173,  101,    0,  166,  136,  159,  167,
    404       164,  151,  162,  152,  163,  161,    0,  111,    3,    0,
    405 
    406       165,  111,  109,    0,    0,  109,  109,    0,    0,  109,
    407       108,  108,  108,    0,  108,  134,  135,  133,  155,  157,
    408       153,  158,  156,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,  102,  172,
    410         0,  116,  113,  101,    0,    0,  169,    0,  101,  101,
    411       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    412       101,  101,  101,  101,  101,   39,  101,  101,  101,  101,
    413       101,  101,  101,  101,  101,  101,   57,  101,  101,  101,
    414       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    415       101,  101,  168,  160,    7,    0,    0,    0,    2,    0,
    416 
    417         5,  104,    0,    0,    0,  114,    0,  120,  119,  119,
    418         0,    0,    0,  117,    0,    0,    0,    0,    0,    0,
    419         0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
    420       111,  111,    0,  111,  111,  111,    0,    6,  111,  109,
    421         0,    0,    0,  111,    0,  109,  109,  109,  109,    0,
    422       110,    0,    0,  108,  108,  108,  108,    0,  170,  171,
    423         0,  176,  174,    0,    0,    0,  102,    0,    0,    0,
    424         0,    0,    0,    0,    0,  101,   17,  101,  101,  101,
    425       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    426       101,  101,  101,  101,  101,   14,  101,  101,  101,  101,
    427 
    428       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    429       101,  101,  101,  101,   51,  101,  101,  101,   64,  101,
    430       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    431       101,   88,  101,  101,  101,  101,  101,  101,  101,    0,
    432         0,    0,    0,    0,    0,    0,    0,  119,    0,    0,
    433         0,    0,    0,  119,    0,    0,  177,    0,    0,    0,
    434         0,    0,    0,    0,  111,    0,  111,    0,  111,    0,
    435         0,  111,  111,  109,  109,    0,    0,  110,  110,    0,
    436       110,    0,  110,  108,  108,    0,    0,    0,    0,    0,
    437         0,    0,    0,    0,    0,  175,  101,  101,  101,  101,
    438 
    439       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    440       101,  101,  101,  101,  101,  101,  101,  101,  101,   21,
    441       101,   24,  101,   27,  101,  101,  101,  101,  101,  101,
    442       101,   42,  101,   44,  101,  101,  101,  101,  101,  101,
    443       101,   56,  101,   67,  101,  101,  101,  101,  101,  101,
    444       101,  101,  101,  101,  101,   89,  101,  101,   96,  101,
    445       101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    446         0,    0,    0,    0,    0,  119,    0,    0,    0,    0,
    447         0,  111,  111,    0,    0,    0,    0,    0,  110,  110,
    448         0,  112,    0,  110,  110,    0,    0,    0,    0,    0,
    449 
    450         0,    0,    0,    0,    0,    0,    0,    0,  101,  101,
    451        22,  101,  101,  101,  101,  101,  101,  101,   15,  101,
    452       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    453       101,  101,  101,   23,   25,  101,   32,  101,  101,  101,
    454       101,  101,   41,  101,  101,  101,  101,   49,  101,  101,
    455        54,  101,  101,  101,  101,  101,   76,  101,  101,  101,
    456       101,  101,   86,  101,  101,   94,  101,  101,  100,    0,
     395        0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
     396      181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
     397      114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
     398      108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
     399      123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
     400      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     401      102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
     402      180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
     403        9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
     404      168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
     405
     406        0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
     407      110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
     408      158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
     410      173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
     411      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     412      102,  102,  102,  102,  102,  102,   38,  102,  102,  102,
     413      102,  102,  102,  102,  102,  102,  102,   56,  102,  102,
     414      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     415      102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
     416
     417        2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
     418      120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
    457419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458         0,    0,    0,    0,    0,    0,    0,    0,  112,    0,
    459         0,  110,  112,  112,  112,  112,  112,  110,    0,    0,
    460 
    461         0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
    462       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
    463       101,  101,  101,  101,  101,  101,   59,  101,  101,  101,
    464       101,  101,  101,  101,  101,   28,  101,  101,  101,  101,
    465        40,   43,   46,  101,  101,   52,  101,   61,   68,  101,
    466       101,   75,   77,   80,   81,   83,   84,  101,  101,   91,
    467       101,  101,    0,    1,    0,    0,    0,    0,    0,    0,
    468       104,    0,    0,    0,  119,    0,    0,    0,    0,  112,
    469       112,  112,  112,    0,    0,    0,    0,    0,    0,    0,
    470         0,    0,  101,  101,   18,  101,  101,  101,  101,  101,
    471 
    472       101,  101,   16,  101,  101,  101,   33,  101,  101,  101,
    473       101,  101,  101,  101,  101,  101,  101,  101,   35,  101,
    474        37,   38,  101,   48,   53,  101,  101,  101,   90,  101,
    475       101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    476         0,    0,    0,    0,   10,   11,   29,   55,  101,  101,
    477       101,  101,  101,  101,  101,  101,  101,  101,  101,   60,
    478        62,   65,  101,  101,   78,   92,  101,  101,   36,   47,
    479        71,   72,  101,   95,   97,    0,    0,    0,    0,    0,
    480         0,    0,    0,    0,    0,    0,    0,  101,   69,  101,
    481       101,   12,  101,  101,   30,   34,  101,  101,  101,   66,
    482 
    483       101,  101,  101,  101,  101,  101,    0,    0,    0,    0,
    484         0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
    485       101,  101,  101,  101,  101,  101,  101,   50,   63,   73,
    486        79,   93,   98,  101,  101,    0,    0,    0,    0,    0,
    487         0,    0,    0,  101,  101,   13,   19,  101,   31,  101,
    488       101,  101,   26,   87,    0,    0,  101,  101,  101,  101,
    489       101,   74,   99,  101,   85,   20,  101,   45,   82,  101,
    490       101,  101,  101,   70,    0
     420        0,  133,  112,  112,    0,  112,  112,    0,    0,    6,
     421        0,  110,    0,    0,    0,  112,    0,  110,  110,  110,
     422      110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
     423      171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
     424        0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
     425      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     426      102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
     427
     428      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     429      102,  102,  102,  102,  102,  102,   50,  102,  102,  102,
     430       63,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     431      102,  102,  102,  102,  102,   89,  102,  102,  102,  102,
     432      102,  102,  102,    0,    0,    0,    0,    0,    0,    0,
     433        0,  120,    0,    0,    0,    0,    0,  120,    0,    0,
     434      178,    0,    0,    0,    0,    0,    0,    0,  112,    0,
     435      112,    0,  112,    0,    0,  112,    0,  110,  110,    0,
     436        0,  111,  111,    0,  111,    0,  111,  109,  109,    0,
     437        0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
     438
     439      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     440      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     441      102,  102,  102,   21,  102,   24,  102,   27,  102,  102,
     442      102,  102,  102,  102,  102,   41,  102,   43,  102,  102,
     443      102,  102,  102,  102,  102,   55,  102,   66,  102,  102,
     444      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     445      102,  102,  102,  102,   97,  102,  102,    0,    0,    0,
     446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     447        0,  120,    0,    0,    0,    0,    0,  112,    0,    0,
     448        0,    0,    0,    0,  111,  111,    0,  113,    0,  111,
     449
     450      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     451        0,    0,    0,    0,  102,  102,   22,  102,  102,  102,
     452      102,  102,  102,  102,   15,  102,  102,  102,  102,  102,
     453      102,  102,  102,  102,  102,  102,  102,  102,  102,   23,
     454       25,  102,   32,  102,  102,  102,  102,   40,  102,  102,
     455      102,  102,   48,  102,  102,   53,  102,  102,   70,  102,
     456      102,  102,   76,  102,  102,  102,  102,  102,   86,   88,
     457      102,  102,   94,  102,  102,  101,    0,    0,    0,    0,
     458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     459        0,    0,    0,    0,    0,  113,    0,    0,  111,  113,
     460
     461      113,  113,  113,    0,  111,    0,    0,    0,    0,    0,
     462        0,    0,    0,    0,    0,  102,    0,  102,  102,  102,
     463      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
     464      102,  102,  102,   58,  102,  102,  102,  102,  102,  102,
     465      102,  102,   28,  102,  102,  102,   39,   42,   45,  102,
     466      102,   51,  102,   60,   67,  102,  102,   75,   77,   80,
     467       81,   83,   84,  102,  102,   91,  102,  102,    0,    1,
     468        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     469      120,    0,    0,    0,    0,  113,    0,  113,  113,    0,
     470        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
     471
     472       18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
     473      102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
     474      102,  102,  102,  102,  102,   36,   37,  102,   47,   52,
     475      102,  102,  102,   90,  102,  102,    0,    0,    0,    0,
     476        0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
     477       11,   29,   54,  102,  102,  102,  102,  102,  102,  102,
     478      102,  102,  102,  102,   59,   61,   64,  102,  102,   78,
     479       92,  102,  102,   35,   46,   71,   72,  102,   95,   98,
     480        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     481        0,    0,  102,   68,  102,  102,   12,  102,  102,   30,
     482
     483       34,  102,  102,  102,   65,  102,  102,  102,  102,  102,
     484      102,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,   57,  102,  102,  102,  102,  102,
     486      102,  102,   49,   62,   73,   79,   93,   99,  102,  102,
     487        0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
     488       13,   19,  102,  102,   31,  102,  102,  102,   26,   87,
     489        0,    0,  102,  102,  102,  102,  102,  102,   74,  100,
     490      102,   85,   20,  102,  102,   44,   82,  102,  102,  102,
     491      102,  102,  102,  102,   96,   69,    0
    491492    } ;
    492493
     
    499500       16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
    500501       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
    501        32,   33,   34,   35,   36,   37,   38,   39,   40,   39,
    502        41,   11,   42,   11,   11,   43,   11,   44,   11,   45,
    503        11,   46,   47,   48,   49,   11,   11,   50,   11,   11,
    504        51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
    505 
    506        61,   62,   63,   64,   65,   11,   66,   67,   68,   69,
    507        70,   71,   11,   72,   73,   74,   75,   76,   77,   78,
    508        79,   80,   81,   82,   83,   84,    1,    1,    1,    1,
     502       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
     503       42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
     504       11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
     505       52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
     506
     507       62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
     508       71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
     509       80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
    509510        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    510511        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    523524    } ;
    524525
    525 static yyconst flex_int32_t yy_meta[85] =
     526static yyconst flex_int32_t yy_meta[86] =
    526527    {   0,
    527528        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    529530        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    530531        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
    531         4,    4,   10,    4,   11,    4,    4,    4,   10,    4,
    532         1,   12,    1,    1,   13,    1,    9,    9,    9,    9,
    533         9,    9,    4,    4,    4,    4,   10,    4,    4,    4,
    534        11,    4,    4,    4,   10,    4,    4,    4,    4,    4,
    535         1,    1,    1,    1
     532        9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
     533        4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
     534        9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
     535        4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
     536        4,    1,    1,    1,    1
    536537    } ;
    537538
    538 static yyconst flex_int16_t yy_base[1050] =
     539static yyconst flex_int16_t yy_base[1062] =
    539540    {   0,
    540         0,   83, 2238, 2237,   93,    0,  175,  176,  177,  178,
    541      2252, 2782,  189, 2782,  195,   54, 2782, 2197,   59,  171,
    542      2782, 2782, 2782,   55,  186, 2782,  189,  187,  202,  214,
    543       272,    0, 2213, 2782,  214, 2213,  150,  340,  153,  222,
    544      2782,  157, 2782,  215,  224, 2782,  207,  181,  221,  249,
    545       235,  289,  155,  255,  218,  206,  266,  256,  323,  259,
    546       192, 2782,  223, 2782, 2210,  377,  342, 2782, 2220, 2782,
    547      2187,  234, 2782,    0, 2782,  421,    0, 2782,  393, 2782,
    548       399,  405, 2782,  492, 2184,  241, 2782, 2782, 2782, 2782,
    549      2782, 2201, 2782, 2200, 2782, 2782, 2211,  552, 2782, 2226,
    550 
    551      2782,  413,  393,  437,  493,  377,  318,  195,  430,  382,
    552         0,  384,  321,  196,  427, 2782, 2782, 2782, 2194, 2782,
    553      2782, 2782, 2193, 2192,  252,  302, 2206,  342,  435,  422,
    554       381,  455,  400,  494, 2185,  440, 2133,  469, 2163, 2782,
    555       276, 2782, 2782,  520, 2159, 2157, 2782, 2128,  414,  463,
    556       470,  325,  254,  479,  432,  274,  480,  423,  483,  498,
    557       492,  503,  499,  509,  341,  455,  484,  377,  510,  512,
    558       517,  518,  529,  530,  531,  537, 2154,  541,  536,  544,
    559       557,  546,  566,  569,  538,  552,  548,  554,  588,  571,
    560       570,  580, 2782, 2782,  645,  651, 2202,  657, 2782,  663,
    561 
    562      2782, 2152,  593, 2147, 2144,    0,  631, 2782, 2782,  669,
    563      2141, 2140, 2139,    0, 2160,  629,  635,  639,  678,  677,
    564       666,  670,  671,  674, 2138,  681,  682, 2115, 2114, 2782,
    565         0,  597,  702,  678,  676, 2111, 2160, 2782,  693,    0,
    566       710,  723,  743,  762,  788,  707, 2782, 2119, 2094,    0,
    567       776, 2138,  768,  723, 2782, 2113, 2086,  809, 2782, 2782,
    568      2118, 2782, 2782,  705,  710, 2098, 2097,  724, 2091, 2088,
    569      2087,    0, 2086,    0, 2056,  709,  682,  707,  712,  710,
    570       724,  647,  750,  671,  786,  751,  748,  731,  778,  787,
    571       789,  788,  792,  790,  758, 2084,  796,  806,  800,  813,
    572 
    573       798,  810,  802,  816,  822,  819,  815,  826,  830,  829,
    574       831,  832,  833,  837,  839,  841,  846,  843, 2081,  848,
    575       850,  849,  851,  852,  854,  853,  857,  855,  858,  863,
    576       868, 2080,  867,  912,  871,  878,  872,  879,  882,  937,
    577       939, 2076, 2074, 2071,    0, 2070,    0,  927,  931, 2069,
    578         0, 2067,    0, 2064,    0, 2084, 2782,  913,  926, 2064,
    579      2060,    0, 2057,    0, 2782,  942,  960,  953, 2782,  966,
    580       981, 1005, 2053, 2782, 2782,  955,  968,  995,  968, 1028,
    581       892, 1014,  970, 2782, 2782, 2049, 2047, 2045,    0, 2042,
    582         0, 2040,    0, 2038,    0, 2782,  909,  944,  982,  943,
    583 
    584      1006,  911, 1012,  923, 1013, 1019, 1009, 1016, 1023, 1024,
    585      1020,  972, 1030, 1028,  989, 1026, 1034, 1027, 1039, 2038,
    586      1044, 2035, 1048, 2034, 1049, 1051, 1052, 1053, 1056, 1057,
    587      1055, 2033, 1059, 2031,  946, 1063, 1066, 1067, 1068, 1071,
    588      1069, 2028, 1075, 2025, 1077, 1080, 1079, 1082, 1084, 1086,
    589      1087, 1090, 1097, 1107, 1088, 1108, 1093, 1098, 2024, 1096,
    590      1111, 1164, 2020,    0, 2018,    0, 2015,    0, 2012,    0,
    591      1151, 2011,    0, 2010,    0, 2008, 2005, 2002,    0, 2001,
    592         0, 1156, 2000, 1162, 1148, 1182, 1149, 1126, 1147, 2782,
    593      1201, 1215, 1241, 2010, 1983, 1992, 1991,    0, 1990,    0,
    594 
    595      1988,    0, 1985,    0, 1982,    0, 1981,    0, 1161, 1149,
    596      1983, 1179, 1140, 1180, 1117, 1182, 1192, 1199, 1181, 1163,
    597      1196, 1200, 1201, 1220, 1198, 1221, 1224,  604, 1226, 1227,
    598      1231, 1233, 1234, 1981, 1244, 1236, 1978, 1240, 1241, 1246,
    599      1247, 1243, 1975, 1250, 1251, 1253, 1254, 1974, 1255, 1267,
    600      1973, 1264, 1271, 1256, 1263, 1257, 1971, 1275, 1277, 1279,
    601      1260, 1281, 1290, 1285, 1288, 1968, 1289, 1291, 1967, 2015,
    602      1961,    0, 1958,    0, 1957,    0, 1956,    0, 1954,    0,
    603      1921,    0, 1919,    0, 1918,    0, 1336, 1342, 1369, 1353,
    604      1915, 2782, 1359, 1307, 1359, 1309, 1912, 2782, 1911,    0,
    605 
    606      1910,    0, 1908,    0, 1905,    0,    0,    0, 1905,    0,
    607      1347, 1295, 1292, 1323, 1337, 1338, 1296, 1349, 1351, 1355,
    608      1353, 1348, 1363, 1364, 1371, 1373, 1380, 1375, 1403, 1381,
    609      1385, 1389, 1094, 1387, 1390, 1904, 1391, 1393, 1397, 1401,
    610      1903, 1901, 1898, 1394, 1400, 1897, 1404, 1896, 1894, 1402,
    611      1408, 1891, 1890, 1889, 1887, 1884, 1880, 1417, 1412, 1876,
    612      1420, 1418, 1921, 2782, 1853,    0, 1852,    0,    0,    0,
    613      1854,    0,    0,    0, 2782,    0,    0,    0,    0, 1463,
    614      1849, 2782, 2782, 1469, 1846,    0, 1845,    0,    0,    0,
    615         0, 1844, 1407, 1446, 1845, 1406, 1423, 1300, 1431, 1449,
    616 
    617      1455, 1447, 1842, 1457, 1448, 1459, 1464, 1460, 1490, 1474,
    618      1470, 1494, 1480, 1475, 1484, 1485, 1486, 1482, 1841, 1487,
    619      1840, 1838, 1489, 1835, 1834, 1491, 1493, 1497, 1833, 1498,
    620      1500,    0,    0,    0, 1828, 1825, 1824, 1548,    0, 1823,
    621      1821, 1818, 1817, 1816, 1817, 1814, 1813, 1812, 1505, 1510,
    622      1502, 1501, 1504, 1508, 1513, 1517, 1526, 1528, 1559, 1810,
    623      1533, 1807, 1534, 1535, 1544, 1545, 1538, 1539, 1806, 1805,
    624      1803, 1800, 1540, 1799, 1798, 1793, 1786, 1784, 1783, 1780,
    625      1779, 1778, 1776, 1759, 1750, 1749, 1746, 1546, 1742, 1549,
    626      1550, 1552, 1554, 1557, 1558, 1739, 1556, 1589, 1566, 1732,
    627 
    628      1565, 1572, 1577, 1579, 1567, 1578, 1727, 1726, 1705, 1704,
    629      1703, 1696, 1694, 1693, 1650, 1649, 1647, 1645, 1644, 1646,
    630      1571, 1584, 1582, 1581, 1586, 1593, 1595, 1645, 1644, 1597,
    631      1642, 1641, 1598, 1599, 1602, 1636, 1635, 1633, 1422, 1421,
    632      1205, 1201,  946, 1605, 1610,  910, 1603, 1607,  768, 1613,
    633      1618, 1619,  723,  605,  503,  370, 1609, 1620, 1623, 1624,
    634      1625,  338,  337, 1627,  290,  251, 1630,  200,  196, 1631,
    635      1632, 1637, 1633,  136, 2782, 1707, 1720, 1733, 1743, 1753,
    636      1766, 1776, 1789, 1802, 1815, 1823, 1833, 1840, 1847, 1854,
    637      1861, 1868, 1875, 1882, 1889, 1896, 1909, 1916, 1920, 1928,
    638 
    639      1931, 1938, 1945, 1952, 1955, 1962, 1968, 1981, 1994, 2001,
    640      2008, 2015, 2022, 2025, 2032, 2035, 2042, 2045, 2052, 2055,
    641      2062, 2065, 2072, 2075, 2082, 2085, 2092, 2100, 2107, 2114,
    642      2121, 2128, 2131, 2138, 2141, 2148, 2151, 2158, 2164, 2177,
    643      2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2224, 2231,
    644      2234, 2241, 2244, 2251, 2258, 2261, 2268, 2271, 2278, 2285,
    645      2292, 2295, 2302, 2305, 2312, 2315, 2322, 2325, 2332, 2335,
    646      2342, 2348, 2361, 2368, 2375, 2378, 2385, 2388, 2395, 2398,
    647      2405, 2408, 2415, 2418, 2425, 2428, 2435, 2438, 2445, 2448,
    648      2455, 2462, 2465, 2472, 2475, 2482, 2485, 2492, 2495, 2498,
    649 
    650      2504, 2511, 2520, 2527, 2534, 2537, 2544, 2547, 2550, 2556,
    651      2563, 2566, 2569, 2572, 2575, 2578, 2581, 2584, 2591, 2594,
    652      2601, 2604, 2607, 2610, 2613, 2623, 2630, 2633, 2636, 2639,
    653      2646, 2653, 2660, 2663, 2670, 2677, 2684, 2691, 2698, 2705,
    654      2712, 2719, 2726, 2733, 2740, 2747, 2754, 2761, 2768
     541        0,   84, 2272, 2269,   94,    0,  177,  178,  179,  180,
     542     2285, 2822,  191, 2822,  197,   55, 2822, 2231,   60,  173,
     543     2822, 2822, 2822,   56,  188, 2822,  191,  189,  204,  216,
     544      275,    0, 2249, 2822,  216, 2247,  152,  344,  155,  220,
     545     2822,  159, 2822,  217,  226, 2822,  185,  154,  212,  251,
     546      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
     547      238,  228, 2822,  225, 2822, 2242,  402,  390, 2822, 2253,
     548     2822, 2221,  235, 2822,    0, 2822,  426,    0, 2822,  417,
     549     2822,  439,  451, 2822,  498, 2219,  264, 2822, 2822, 2822,
     550     2822, 2822, 2235, 2822, 2232, 2822, 2822, 2244,  559, 2822,
     551
     552     2261, 2822,  438,  444,  511,  534,  289,  253,  197,  380,
     553      305,    0,  319,  280,  198,  322, 2822, 2822, 2822, 2230,
     554     2822, 2822, 2822, 2227, 2224,  218,  255, 2239,  298,  350,
     555      368,  312,  440,  398,  405, 2220,  441, 2168,  446, 2196,
     556     2822,  335, 2822, 2822,  468, 2190, 2189, 2822, 2162,  439,
     557      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
     558      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
     559      489,  503,  496,  521,  276,  515,  516, 2189,  526,  510,
     560      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
     561      599,  582,  593,  584, 2822, 2822,  660,  651, 2236,  666,
     562
     563     2822,  678, 2822, 2183,  607, 2179, 2178,    0,  693, 2822,
     564     2822,  684, 2176, 2156, 2154,    0, 2177,  578,  608,  617,
     565      654,  679,  650,  683,  684,  687, 2172,  690,  691, 2147,
     566     2146, 2822,    0,  683,  710,  686,  700, 2145, 2196, 2822,
     567      714,    0,  427,  746,  764,  786,  808,  621, 2822, 2152,
     568     2125,    0,  794, 2171,  795,  709, 2822, 2147, 2121,  832,
     569     2822, 2822, 2152, 2822, 2822,  711,  714, 2129, 2129,  717,
     570     2125, 2123, 2120,    0, 2117,    0, 2088,  694,  679,  712,
     571      709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
     572      800,  795,  742,  744,  814,  816,  818, 2118,  819,  745,
     573
     574      820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
     575      826,  833,  838,  839,  848,  850,  851,  844,  834,  857,
     576     2116,  858,  859,  860,  862,  861,  864,  865,  867,  868,
     577      866,  871,  876,  872,  878, 2113,  880,  689,  881,  882,
     578      892,  896,  893,  953,  954, 2109, 2108, 2106,    0, 2103,
     579        0,  941,  945, 2102,    0, 2101,    0, 2099,    0, 2118,
     580     2822,  940,  941, 2094, 2088,    0, 2086,    0, 2822,  953,
     581      975,  964, 2822,  981,  997, 1021, 2084, 2822, 2822,  939,
     582      940, 1006,  982, 1041,  310, 1039, 1004, 2822, 2822, 2081,
     583     2079, 2077,    0, 2074,    0, 2071,    0, 2070,    0, 2822,
     584
     585      886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
     586     1002,  998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043,
     587     1038, 1041, 1053, 2072, 1055, 2070, 1045, 2067, 1056, 1061,
     588     1063, 1065, 1066, 1067, 1070, 2064, 1071, 2063, 1073, 1074,
     589     1075, 1078, 1080, 1081, 1085, 2062, 1087, 2060, 1084, 1089,
     590     1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108,  905,
     591     1109, 1116, 1110, 1122, 2057, 1120, 1123, 1179, 2051,    0,
     592     2050,    0, 2049,    0, 2047,    0, 1166, 2044,    0, 2041,
     593        0, 2040, 2039, 2037,    0, 2034,    0, 1173, 2031, 1179,
     594     1137, 1195, 1181, 1178, 1176, 2822, 1219, 1231, 1253, 2042,
     595
     596     2017, 2027, 2024,    0, 2021,    0, 2020,    0, 2019,    0,
     597     2017,    0, 2014,    0, 1141, 1172, 2014, 1180, 1155, 1196,
     598     1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236,
     599     1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2013,
     600     1261, 1256, 2012, 1260, 1263, 1264, 1257, 2010, 1271, 1268,
     601     1269, 1273, 2007, 1275, 1282, 2006, 1283, 1284, 2005, 1276,
     602     1286, 1289, 2003, 1294, 1291, 1296, 1295, 1297, 1310, 2000,
     603     1305, 1308, 1999, 1307, 1300, 1998, 2046, 1960,    0, 1958,
     604        0, 1957,    0, 1954,    0, 1951,    0, 1950,    0, 1949,
     605        0, 1947,    0, 1355, 1361, 1389, 1372, 1944, 2822, 1378,
     606
     607     1325, 1365, 1379, 1941, 2822, 1940,    0, 1939,    0, 1937,
     608        0, 1934,    0,    0,    0, 1936,    0, 1366, 1312, 1311,
     609     1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
     610     1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408,
     611     1413, 1414, 1935, 1409, 1416, 1419, 1933, 1930, 1929, 1422,
     612     1424, 1928, 1429, 1926, 1923, 1425, 1430, 1919, 1915, 1911,
     613     1895, 1894, 1893, 1436, 1433, 1891, 1439, 1440, 1938, 2822,
     614     1884,    0, 1883,    0,    0,    0, 1884,    0,    0,    0,
     615     2822,    0,    0,    0,    0, 1486, 1878, 2822, 2822, 1492,
     616     1877,    0, 1876,    0,    0,    0,    0, 1874, 1447, 1444,
     617
     618     1874, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1873, 1486,
     619     1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498,
     620     1508, 1512, 1513, 1514, 1515, 1872, 1870, 1517, 1867, 1866,
     621     1518, 1520, 1523, 1865, 1521, 1525,    0,    0,    0, 1860,
     622     1857, 1856, 1575,    0, 1855, 1853, 1850, 1849, 1848, 1849,
     623     1846, 1845, 1844, 1531, 1536, 1527, 1528, 1552, 1533, 1537,
     624     1539, 1555, 1557, 1569, 1842, 1560, 1839, 1561, 1559, 1568,
     625     1572, 1567, 1573, 1838, 1837, 1835, 1828, 1574, 1826, 1825,
     626     1819, 1818, 1817, 1815, 1798, 1789, 1788, 1785, 1778, 1775,
     627     1768, 1766, 1576, 1768, 1577, 1581, 1580, 1579, 1584, 1585,
     628
     629     1747, 1586, 1615, 1590, 1746, 1591, 1592, 1602, 1600, 1594,
     630     1606, 1742, 1735, 1733, 1732, 1690, 1689, 1686, 1685, 1683,
     631     1682, 1678, 1677, 1674, 1676, 1607, 1611, 1614, 1612, 1608,
     632     1616, 1620, 1675, 1623, 1624, 1530, 1453, 1630, 1625, 1629,
     633     1438, 1354, 1319, 1318, 1267, 1212, 1210, 1208, 1631, 1636,
     634     1178, 1639, 1635, 1643, 1177, 1644, 1646, 1650, 1126,  964,
     635      937,  903, 1651, 1652, 1654, 1655, 1656, 1658,  788,  752,
     636     1660,  607,  487, 1662, 1663,  394,  357, 1664, 1666, 1668,
     637     1670, 1669, 1672, 1674,  233,  137, 2822, 1747, 1760, 1773,
     638     1783, 1793, 1806, 1816, 1829, 1842, 1855, 1863, 1873, 1880,
     639
     640     1887, 1894, 1901, 1908, 1915, 1922, 1929, 1936, 1949, 1956,
     641     1960, 1968, 1971, 1978, 1985, 1992, 1995, 2002, 2008, 2021,
     642     2034, 2041, 2048, 2055, 2062, 2065, 2072, 2075, 2082, 2085,
     643     2092, 2095, 2102, 2105, 2112, 2115, 2122, 2125, 2132, 2140,
     644     2147, 2154, 2161, 2168, 2171, 2178, 2181, 2188, 2191, 2198,
     645     2204, 2217, 2224, 2231, 2234, 2241, 2244, 2251, 2254, 2261,
     646     2264, 2271, 2274, 2281, 2284, 2291, 2298, 2301, 2308, 2311,
     647     2318, 2325, 2332, 2335, 2342, 2345, 2352, 2355, 2362, 2365,
     648     2372, 2375, 2382, 2388, 2401, 2408, 2415, 2418, 2425, 2428,
     649     2435, 2438, 2445, 2448, 2455, 2458, 2465, 2468, 2475, 2478,
     650
     651     2485, 2488, 2495, 2502, 2505, 2512, 2515, 2522, 2525, 2532,
     652     2535, 2538, 2544, 2551, 2560, 2567, 2574, 2577, 2584, 2587,
     653     2590, 2596, 2603, 2606, 2609, 2612, 2615, 2618, 2621, 2624,
     654     2631, 2634, 2641, 2644, 2647, 2650, 2653, 2663, 2670, 2673,
     655     2676, 2679, 2686, 2693, 2700, 2703, 2710, 2717, 2724, 2731,
     656     2738, 2745, 2752, 2759, 2766, 2773, 2780, 2787, 2794, 2801,
     657     2808
    655658    } ;
    656659
    657 static yyconst flex_int16_t yy_def[1050] =
     660static yyconst flex_int16_t yy_def[1062] =
    658661    {   0,
    659       875,    1,  876,  876,  875,    5,  877,  877,  878,  878,
    660       875,  875,  875,  875,  875,  875,  875,  879,  875,  875,
    661       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    662       875,   31,  875,  875,  875,  875,  875,  875,  880,  879,
    663       875,  875,  875,  875,  879,  875,  879,  879,  879,  879,
    664       879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    665       879,  875,  875,  875,  875,  875,  881,  875,  875,  875,
    666       882,  875,  875,  883,  875,  875,  884,  875,  875,  875,
    667       875,  875,  875,  875,  879,  875,  875,  875,  875,  875,
    668       875,  875,  875,  875,  875,  875,  875,  875,  875,  885,
    669 
    670       875,   98,   30,  875,  875,  875,  875,  886,   30,  875,
    671        31,  875,  875,   31,  875,  875,  875,  875,  875,  875,
    672       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    673       875,  875,  875,  875,  875,  875,  875,  875,  887,  875,
    674       875,  875,  875,  879,  888,  889,  875,  875,  879,  879,
    675       879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    676       879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    677       879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    678       879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    679       879,  879,  875,  875,  875,  881,  881,  881,  875,  881,
    680 
    681       875,  882,  875,  890,  891,  883,  875,  875,  875,  875,
    682       892,  893,  894,  884,  875,  875,  875,  875,  875,  875,
    683       875,  875,  875,  875,  875,  875,  875,  895,  896,  875,
    684        98,  875,  875,  875,  875,   98,  897,  875,  875,  103,
    685       103,  875,  875,  875,  875,  875,  875,  875,  875,  898,
    686       899,  900,  875,  875,  875,  875,  875,  875,  875,  875,
    687       875,  875,  875,  875,  875,  875,  887,  875,  901,  902,
    688       903,  904,  905,  906,  875,  907,  907,  907,  907,  907,
    689       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    690       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    691 
    692       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    693       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    694       907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
    695       907,  907,  907,  907,  907,  907,  907,  907,  907,  908,
    696       909,  910,  911,  912,  913,  914,  915,  875,  875,  916,
    697       917,  918,  919,  920,  921,  875,  875,  875,  875,  875,
    698       922,  923,  924,  925,  875,  875,  875,  875,  875,  875,
    699       875,  367,  372,  875,  875,  926,  927,  928,  875,  875,
    700       875,  928,  875,  875,  875,  929,  930,  931,  932,  933,
    701       934,  935,  936,  937,  938,  875,  939,  939,  939,  939,
    702 
    703       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    704       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    705       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    706       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    707       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    708       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    709       939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
    710       875,  949,  950,  951,  952,  953,  953,  954,  955,  956,
    711       957,  875,  482,  875,  958,  875,  958,  875,  875,  875,
    712       875,  875,  875,  875,  875,  959,  960,  961,  962,  963,
    713 
    714       964,  965,  966,  967,  968,  969,  970,  971,  972,  972,
    715       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    716       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    717       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    718       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    719       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    720       972,  972,  972,  972,  972,  972,  972,  972,  972,  973,
    721       974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
    722       984,  985,  986,  987,  988,  989,  875,  875,  875,  875,
    723       990,  875,  589,  875,  875,  875,  593,  875,  991,  992,
    724 
    725       993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
    726      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    727      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    728      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    729      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    730      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    731      1001, 1001, 1003,  875, 1004, 1005, 1006, 1007, 1008, 1009,
    732      1010, 1011, 1012, 1013,  875, 1014, 1015, 1016, 1017,  875,
    733       680,  875,  875,  875, 1018, 1019, 1020, 1021, 1022, 1023,
    734      1024, 1025, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    735 
    736      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    737      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    738      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    739      1026, 1027, 1028, 1029, 1030, 1031, 1032,  875, 1033, 1018,
    740      1020, 1034, 1035, 1025, 1026, 1026, 1026, 1026, 1026, 1026,
    741      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    742      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    743      1026, 1026, 1026, 1026, 1026, 1036, 1037, 1030, 1038, 1031,
    744      1039, 1032, 1040, 1041, 1034, 1042, 1035, 1026, 1026, 1026,
    745      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    746 
    747      1026, 1026, 1026, 1026, 1026, 1026, 1043, 1036, 1044, 1037,
    748      1045, 1038, 1046, 1039, 1047, 1040, 1048, 1041, 1042, 1026,
    749      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    750      1026, 1026, 1026, 1026, 1026, 1049, 1043, 1044, 1045, 1046,
    751      1020, 1047, 1048, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    752      1026, 1026, 1026, 1026, 1049, 1020, 1026, 1026, 1026, 1026,
    753      1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
    754      1026, 1026, 1026, 1026,    0,  875,  875,  875,  875,  875,
    755       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    756       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    757 
    758       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    759       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    760       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    761       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    762       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    763       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    764       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    765       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    766       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    767       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    768 
    769       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    770       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    771       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    772       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    773       875,  875,  875,  875,  875,  875,  875,  875,  875
     662      887,    1,  888,  888,  887,    5,  889,  889,  890,  890,
     663      887,  887,  887,  887,  887,  887,  887,  891,  887,  887,
     664      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     665      887,   31,  887,  887,  887,  887,  887,  887,  892,  891,
     666      887,  887,  887,  887,  891,  887,  891,  891,  891,  891,
     667      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     668      891,  891,  887,  887,  887,  887,  887,  893,  887,  887,
     669      887,  894,  887,  887,  895,  887,  887,  896,  887,  887,
     670      887,  887,  887,  887,  887,  891,  887,  887,  887,  887,
     671      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     672
     673      897,  887,   99,   30,  887,  887,  887,  887,  898,   30,
     674      887,   31,  887,  887,   31,  887,  887,  887,  887,  887,
     675      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     676      887,  887,  887,  887,  887,  887,  887,  887,  887,  899,
     677      887,  887,  887,  887,  891,  900,  901,  887,  887,  891,
     678      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     679      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     680      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     681      891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
     682      891,  891,  891,  891,  887,  887,  887,  893,  893,  893,
     683
     684      887,  893,  887,  894,  887,  902,  903,  895,  887,  887,
     685      887,  887,  904,  905,  906,  896,  887,  887,  887,  887,
     686      887,  887,  887,  887,  887,  887,  887,  887,  887,  907,
     687      908,  887,   99,  887,  887,  887,  887,   99,  909,  887,
     688      887,  104,  104,  887,  887,  887,  887,  887,  887,  887,
     689      887,  910,  911,  912,  887,  887,  887,  887,  887,  887,
     690      887,  887,  887,  887,  887,  887,  887,  887,  899,  887,
     691      913,  914,  915,  916,  917,  918,  887,  919,  919,  919,
     692      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     693      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     694
     695      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     696      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     697      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     698      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     699      919,  919,  919,  920,  921,  922,  923,  924,  925,  926,
     700      927,  887,  887,  928,  929,  930,  931,  932,  933,  887,
     701      887,  887,  887,  887,  934,  935,  936,  937,  887,  887,
     702      887,  887,  887,  887,  887,  371,  376,  887,  887,  938,
     703      939,  940,  887,  887,  887,  940,  887,  887,  887,  941,
     704      942,  943,  944,  945,  946,  947,  948,  949,  950,  887,
     705
     706      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     707      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     708      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     709      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     710      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     711      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     712      951,  951,  951,  951,  951,  951,  951,  952,  953,  954,
     713      955,  956,  957,  958,  959,  960,  887,  961,  962,  963,
     714      964,  965,  965,  966,  967,  968,  969,  887,  488,  887,
     715      970,  887,  970,  887,  887,  887,  887,  887,  887,  887,
     716
     717      887,  971,  972,  973,  974,  975,  976,  977,  978,  979,
     718      980,  981,  982,  983,  984,  984,  984,  984,  984,  984,
     719      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     720      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     721      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     722      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     723      984,  984,  984,  984,  984,  984,  984,  984,  984,  984,
     724      984,  984,  984,  984,  984,  984,  985,  986,  987,  988,
     725      989,  990,  991,  992,  993,  994,  995,  996,  997,  998,
     726      999, 1000, 1001,  887,  887,  887,  887, 1002,  887,  596,
     727
     728      887,  887,  887,  600,  887, 1003, 1004, 1005, 1006, 1007,
     729     1008, 1009, 1010, 1011, 1012, 1013, 1014, 1013, 1013, 1013,
     730     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     731     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     732     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     733     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
     734     1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,  887,
     735     1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
     736      887, 1026, 1027, 1028, 1029,  887,  686,  887,  887,  887,
     737     1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1038,
     738
     739     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     740     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     741     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     742     1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1042,
     743     1043, 1044,  887, 1045, 1030, 1032, 1046, 1047, 1037, 1038,
     744     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     745     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     746     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     747     1048, 1049, 1042, 1050, 1043, 1051, 1044, 1052, 1053, 1046,
     748     1054, 1047, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     749
     750     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     751     1038, 1055, 1048, 1056, 1049, 1057, 1050, 1058, 1051, 1059,
     752     1052, 1060, 1053, 1054, 1038, 1038, 1038, 1038, 1038, 1038,
     753     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     754     1061, 1055, 1056, 1057, 1058, 1032, 1059, 1060, 1038, 1038,
     755     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     756     1061, 1032, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     757     1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
     758     1038, 1038, 1038, 1038, 1038, 1038,    0,  887,  887,  887,
     759      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     760
     761      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     762      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     763      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     764      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     765      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     766      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     767      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     768      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     769      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     770      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     771
     772      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     773      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     774      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     775      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     776      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     777      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     778      887
    774779    } ;
    775780
    776 static yyconst flex_int16_t yy_nxt[2867] =
     781static yyconst flex_int16_t yy_nxt[2908] =
    777782    {   0,
    778783       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    780785       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    781786       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    782        18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
    783        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
    784        51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
    785        18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
    786        62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
    787        87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
    788 
    789        70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
    790        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
    791        70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
     787       18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
     788       18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
     789       50,   51,   52,   53,   18,   54,   18,   55,   18,   18,
     790       56,   18,   57,   58,   59,   60,   61,   62,   18,   18,
     791       18,   63,   64,   65,   66,   67,   84,   92,   85,   85,
     792       67,   88,   89,   68,   71,   71,   71,   71,   71,   71,
     793
     794       71,   71,   71,   71,   72,   71,   71,   71,   71,   71,
    792795       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    793        71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
    794        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    795        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    796        71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
    797        78,  122,  123,   89,  140,   78,   78,   86,   75,   75,
    798        79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
    799 
    800        82,   81,   90,   92,  141,  145,   86,   97,   94,   98,
    801        98,   98,   98,   98,   98,  250,  875,   93,   99,   84,
    802        95,   96,   84,  100,  176,  117,   76,   76,   76,   76,
    803       142,  146,   86,  101,  102,  143,  103,  103,  103,  103,
    804       104,  104,  118,   86,  119,  120,  147,   86,  148,  252,
    805       258,   86,  160,  105,  193,  192,  106,   86,   86,  149,
    806       150,  151,  107,  108,  152,  153,  181,  154,  109,   86,
    807       155,  156,   86,   86,  105,   86,  144,  161,  157,  158,
    808       110,  159,  204,  261,  162,  262,   86,  179,  107,  228,
    809       163,  108,  102,  180,  111,  111,  111,  111,  111,  111,
    810 
    811        86,  168,   86,  169,  194,   86,   86,   86,  205,  164,
    812        86,  105,  170,  165,  112,  229,  177,   86,  166,  186,
    813       113,  281,  167,  178,  269,   86,  114,  187,  191,  182,
    814       183,  142,  105,  261,  188,  262,  143,  284,  115,  184,
    815        86,   86,  185,  198,  199,  171,  113,  124,  198,  189,
    816       270,  125,  126,  172,  127,  173,  128,  129,  174,  130,
    817       248,  131,  175,  256,  200,  200,  200,  200,  200,  200,
    818       132,  133,  134,  261,   86,  262,   86,  144,  195,   80,
    819        81,   81,   81,  195,  249,  280,  196,  257,   86,   86,
    820       135,  190,   86,  136,   79,   80,   81,   81,   81,   79,
    821 
    822        81,   80,   81,   81,   81,   81,   81,   80,   82,   82,
    823        82,   81,  261,  305,  262,  240,  240,  240,  240,  246,
    824       137,  138,  207,  208,  875,  247,  254,  207,   86,  209,
    825       247,  261,  255,  262,  209,   98,   98,   98,   98,   98,
    826        98,  263,  875,  210,  210,  210,  210,  241,  246,  308,
    827       875,  247,  263,  261,  209,  262,  247,  102,  255,  104,
    828       104,  104,  104,  104,  104,   86,  261,  239,  262,  211,
    829       875,  261,  209,  262,   86,  255,  105,  209,  209,  875,
    830       276,  209,  209,   86,  253,  264,  261,  277,  262,  209,
    831       296,  242,  209,  254,  209,  212,  209,  105,  213,  215,
    832 
    833       261,  255,  262,  216,  217,  283,   86,  875,  218,  219,
    834       243,  220,  243,  221,   86,  244,  244,  244,  244,  244,
    835       244,   86,  222,  223,  224,  261,  265,  262,  142,  306,
    836        86,   86,  278,  143,   86,   86,  285,  286,  287,  279,
    837       288,  289,  225,   86,  290,  226,  291,  245,  282,   86,
    838        86,  292,  293,  294,   86,  295,  297,  875,  298,  301,
    839        86,   86,  307,   86,  299,  300,  309,  303,   86,   86,
    840       304,   86,  302,  227,  231,  231,  231,  231,  231,  231,
    841        86,   86,   86,  312,  310,  311,  313,   86,   86,   86,
    842       232,  233,   86,  234,  235,   86,  142,   86,  314,   86,
    843 
    844       321,  315,  330,   86,  320,   86,  236,  318,   86,  316,
    845       317,  232,  233,  232,  319,  325,  234,   86,  235,  322,
    846        86,   86,   86,  331,  333,  328,  332,  629,  326,  323,
    847       324,   86,  207,  208,  337,  335,  338,  207,  365,   86,
    848       329,  342,  334,  336,  339,  327,  195,   80,   81,   81,
    849        81,  195,  198,  199,  196,   86,   86,  198,  198,  199,
    850       356,  365,  357,  198,  340,  199,  356,  343,  357,  340,
    851       356,  341,  357,  200,  200,  200,  200,  200,  200,  200,
    852       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
    853       200,  348,  348,  348,  348,  357,  357,  356,   86,  357,
    854 
    855       358,  356,  356,  357,  357,  356,  359,  357,  356,  356,
    856       357,  357,  356,  356,  357,  357,  369,  365,  403,  366,
    857       369,  366,   86,  349,  367,  367,  367,  367,  367,  367,
    858       875,  232,  233,   86,  234,  235,  261,  369,  262,  369,
    859       365,  261,  405,  262,  369,  104,  104,  104,  104,  104,
    860       104,  398,  232,  233,  232,  374,  368,  234,   86,  235,
    861        86,   86,  105,   86,  371,  244,  244,  244,  244,  244,
    862       244,  384,  386,  397,   86,   86,  399,  253,  401,  400,
    863       402,  374,   86,  105,  372,  372,  372,  372,  372,  372,
    864       104,  104,  104,  104,  104,  104,  377,  384,  387,   86,
    865 
    866       232,   86,   86,  234,  235,  243,  404,  243,  411,   86,
    867       244,  244,  244,  244,  244,  244,  373,  410,  379,   86,
    868       380,  232,  253,  232,  381,  409,  234,  419,  235,   86,
    869       382,  111,  111,  111,  111,  111,  111,   86,   86,   86,
    870        86,   86,  383,   86,  412,  415,  380,   86,  416,   86,
    871       381,   86,  406,   86,  413,  414,  417,   86,  407,  408,
    872       422,   86,  421,  258,   86,  420,   86,   86,  418,  424,
    873        86,  423,  428,   86,  426,  427,  430,   86,  429,  425,
    874        86,   86,   86,   86,   86,  431,  432,  433,   86,  437,
    875        86,  435,   86,  438,   86,  439,  434,   86,  436,   86,
    876 
    877        86,   86,   86,   86,   86,   86,   86,  443,   86,   86,
    878       444,  441,  440,  446,   86,  442,  445,  451,   86,   86,
    879       142,  450,   86,   86,  447,  449,  448,  456,  452,   86,
    880        86,  459,  453,   86,  494,  460,  454,  455,  340,  199,
    881       457,  199,  458,  340,  356,  341,  357,  197,  461,  209,
    882       209,  209,  209,  348,  348,  348,  348,  356,  495,  357,
    883        86,   86,   86,   86,  367,  367,  367,  367,  367,  367,
    884       366,  509,  366,  514,   86,  367,  367,  367,  367,  367,
    885       367,  471,  482,  482,  482,  482,  482,  482,  231,  231,
    886       231,  231,  231,  231,   86,   86,  516,   86,  232,  486,
    887 
    888       875,  234,  235,  240,  240,  240,  240,  104,  104,  487,
    889       489,  510,  486,  512,  483,  377,  490,  545,  490,  232,
    890       370,  232,  488,   86,  234,  486,  235,  372,  372,  372,
    891       372,  372,  372,   86,  875,  371,  489,  379,  486,  380,
    892        86,  525,  490,  381,  490,  491,  529,  491,  511,  382,
    893       492,  492,  492,  492,  492,  492,  379,   86,  380,  373,
    894        86,  383,  381,   86,   86,  380,  513,   86,  496,  381,
    895        86,   86,  515,  517,   86,   86,  519,   86,   86,   86,
    896       383,   86,  493,  518,  380,   86,  526,  521,  381,  520,
    897        86,  522,  523,  524,  527,   86,  531,  532,  530,   86,
    898 
    899        86,  528,   86,   86,   86,  533,   86,   86,   86,  534,
    900        86,  535,  538,  541,   86,  543,  539,   86,   86,   86,
    901        86,  536,   86,  542,  537,  544,   86,  540,   86,  551,
    902        86,   86,  547,   86,  549,   86,  546,   86,   86,   86,
    903       548,   86,  550,  552,   86,   86,  558,   86,   86,   86,
    904       555,  553,  554,  556,  560,  561,  559,  557,   86,   86,
    905       567,  566,   86,  716,  563,  562,  199,  564,   86,  568,
    906       486,  569,  570,  209,  209,  209,  209,  565,  482,  482,
    907       482,  482,  482,  482,  372,  372,  372,  372,  372,  372,
    908       616,   86,  486,  486,  232,  592,  486,  234,  235,  588,
    909 
    910        86,  588,  487,  591,  589,  589,  589,  589,  589,  589,
    911       483,  614,   86,  612,   86,  232,  484,  232,  486,  486,
    912       234,  592,  235,  492,  492,  492,  492,  492,  492,  611,
    913        86,   86,   86,   86,  621,  620,  590,  593,  593,  593,
    914       593,  593,  593,   86,  615,  613,  617,   86,  618,   86,
    915        86,   86,   86,  594,  626,  875,  595,  596,  491,  856,
    916       491,  619,  622,  492,  492,  492,  492,  492,  492,  597,
    917       623,   86,   86,  624,  594,   86,  594,   86,   86,  595,
    918       625,  596,   86,  627,   86,   86,  630,   86,  628,  635,
    919       634,   86,   86,  633,   86,   86,  636,   86,   86,  632,
    920 
    921       631,   86,   86,  641,   86,   86,   86,   86,   86,  638,
    922       642,   86,  639,  640,   86,   86,  644,  637,   86,  643,
    923       645,  646,   86,  647,  648,  652,   86,  651,   86,  650,
    924        86,  649,   86,  656,  653,  658,   86,  655,  654,   86,
    925        86,   86,   86,   86,  657,  659,   86,   86,  682,  660,
    926       682,   86,  696,  695,  700,  662,  749,  661,  482,  482,
    927       482,  482,  482,  482,  589,  589,  589,  589,  589,  589,
    928       588,  682,  588,  682,   86,  589,  589,  589,  589,  589,
    929       589,  593,  593,  593,  593,  593,  593,  697,   86,   86,
    930       587,  680,  680,  680,  680,  680,  680,  683,   86,   86,
    931 
    932        86,  683,   86,  693,   86,  698,   86,  594,  701,  703,
    933       595,  596,  699,  597,   86,   86,  694,  704,  683,  702,
    934       683,  705,   86,  681,   86,  683,   86,  712,  594,  706,
    935       594,   86,   86,  595,  710,  596,   86,  707,   86,  708,
    936        86,   86,   86,  711,   86,   86,  709,  713,   86,  715,
    937       718,   86,   86,   86,   86,   86,  714,   86,   86,   86,
    938       717,  722,  726,   86,  719,  723,  727,  720,   86,   86,
    939       721,   86,  725,  729,   86,  875,  875,  728,  724,  745,
    940       730,  748,   86,  747,  731,  680,  680,  680,  680,  680,
    941       680,  593,  593,  593,  593,  593,  593,   86,   86,   86,
    942 
    943        86,  594,  750,  751,  595,  596,   86,  746,   86,  752,
    944        86,   86,  755,  759,  754,   86,  753,  681,  757,  756,
    945       762,   86,  594,  684,  594,   86,   86,  595,  760,  596,
    946       761,   86,  758,   86,  763,   86,   86,   86,   86,  764,
    947        86,   86,   86,  765,   86,   86,  766,  769,   86,   86,
    948       767,   86,   86,   86,  768,   86,   86,  774,  790,   86,
    949       775,   86,  771,  770,   86,  792,  772,  791,   86,  773,
    950       680,  680,  680,  680,  680,  680,  788,   86,  789,   86,
    951       796,  794,  793,  798,   86,   86,   86,  799,  800,   86,
    952        86,   86,  797,  801,  795,   86,   86,   86,  802,  803,
    953 
    954        86,   86,  738,   86,  804,   86,  823,   86,   86,   86,
    955        86,  825,  826,  805,  806,  828,   86,   86,   86,  822,
    956       829,  821,   86,   86,  820,  827,  831,  824,   86,   86,
    957        86,  832,   86,   86,  834,   86,  846,   86,  830,  833,
    958        86,  847,  845,  844,   86,  835,   86,  849,   86,   86,
    959        86,  851,  852,   86,   86,  848,   86,  859,   86,  853,
    960        86,   86,  854,  850,   86,  857,  858,  861,  860,   86,
    961        86,   86,  862,  863,   86,   86,   86,  866,   86,  868,
    962       864,   86,   86,   86,   86,  867,  865,  875,   86,  875,
    963       855,  871,   86,   86,  874,   86,   86,   86,  875,  875,
    964 
    965       869,  843,  870,  875,  842,  872,  873,   68,   68,   68,
    966        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
    967        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    968        74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
    969        77,   77,   77,   77,   77,   77,   85,  875,  840,   85,
    970       875,   85,   85,   85,   85,   85,  139,  839,  875,  838,
    971       139,  139,  139,  139,  139,  139,  197,  197,  197,  197,
    972       197,  197,  197,  197,  197,  197,  197,  197,  197,  202,
    973       875,  837,  202,   86,  202,  202,  202,  202,  202,  206,
    974        86,  206,  206,   86,  206,  206,  206,  206,  206,  206,
    975 
    976       875,  206,  214,  819,  875,  214,  214,  214,  214,  214,
    977       214,  214,  214,  818,  214,  237,  237,  237,  237,  237,
    978       237,  237,  237,  237,  237,  237,  237,  237,  251,  251,
    979       816,  251,  875,  814,  875,  251,  267,  812,  875,  267,
    980       810,  267,  267,  267,  267,  267,  271,  808,  271,   86,
    981        86,   86,  271,  273,   86,  273,   86,   86,   86,  273,
    982       344,   86,  344,   86,   86,   86,  344,  346,   86,  346,
    983       875,  787,  785,  346,  350,  875,  350,  875,  782,  780,
    984       350,  352,  778,  352,   86,   86,   86,  352,  354,   86,
    985       354,   86,   86,   86,  354,  361,   86,  361,  744,  741,
    986 
    987       740,  361,  363,  738,  363,  203,  734,  733,  363,  237,
    988       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
    989       237,  237,  376,  664,  376,  378,  378,   86,  378,  378,
    990       378,   86,  378,  251,  251,   86,  251,  388,   86,  388,
    991        86,   86,   86,  388,  390,   86,  390,   86,   86,   86,
    992       390,  392,   86,  392,   86,   86,   86,  392,  271,  691,
    993       271,  394,  690,  394,  688,  686,  684,  394,  273,  591,
    994       273,   85,  679,  678,   85,  676,   85,   85,   85,   85,
    995        85,  197,  197,  197,  197,  197,  197,  197,  197,  197,
    996       197,  197,  197,  197,  462,  462,  462,  462,  462,  462,
    997 
    998       462,  462,  462,  462,  462,  462,  462,  463,  674,  463,
    999       672,  670,  668,  463,  465,  666,  465,  664,   86,   86,
    1000       465,  467,   86,  467,   86,   86,   86,  467,  344,   86,
    1001       344,  469,   86,  469,   86,  610,  608,  469,  346,  606,
    1002       346,  472,  604,  472,  602,  600,  496,  472,  350,  598,
    1003       350,  474,  598,  474,  587,  586,  584,  474,  352,  477,
    1004       352,  476,  477,  476,  582,  580,  578,  476,  354,  576,
    1005       354,  478,  574,  478,  572,   86,   86,  478,  361,   86,
    1006       361,  480,   86,  480,   86,   86,   86,  480,  363,   86,
    1007       363,  485,  508,  485,  506,  485,  504,  485,  376,  502,
    1008 
    1009       376,  500,  376,  498,  376,  378,  378,  484,  378,  378,
    1010       378,  481,  378,  497,  479,  497,  357,  357,  477,  497,
    1011       499,  475,  499,  473,  470,  468,  499,  501,  466,  501,
    1012       464,   86,   86,  501,  388,   86,  388,  503,  396,  503,
    1013       395,  393,  391,  503,  390,  389,  390,  505,  268,  505,
    1014       263,  262,  385,  505,  392,  385,  392,  507,  250,  507,
    1015       375,  375,  238,  507,  394,  370,  394,   85,  364,  362,
    1016        85,  360,   85,   85,   85,   85,   85,  462,  462,  462,
    1017       462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
    1018       571,  356,  571,  355,  353,  351,  571,  463,  347,  463,
    1019 
    1020       573,  345,  573,  203,  199,   86,  573,  465,  275,  465,
    1021       575,  274,  575,  272,  268,  263,  575,  467,  266,  467,
    1022       577,  263,  577,  261,  260,  259,  577,  469,  238,  469,
    1023       579,  230,  579,   84,   84,   86,  579,  472,  203,  472,
    1024       581,  201,  581,   84,  121,  116,  581,  474,   86,  474,
    1025       476,  875,  476,   69,   69,  875,  476,  583,  875,  583,
    1026       875,  875,  875,  583,  478,  875,  478,  585,  875,  585,
    1027       875,  875,  875,  585,  480,  875,  480,  485,  875,  485,
    1028       875,  485,  875,  485,  378,  875,  378,  875,  875,  875,
    1029       378,  599,  875,  599,  875,  875,  875,  599,  497,  875,
    1030 
    1031       497,  601,  875,  601,  875,  875,  875,  601,  499,  875,
    1032       499,  603,  875,  603,  875,  875,  875,  603,  501,  875,
    1033       501,  605,  875,  605,  875,  875,  875,  605,  503,  875,
    1034       503,  607,  875,  607,  875,  875,  875,  607,  505,  875,
    1035       505,  609,  875,  609,  875,  875,  875,  609,  507,  875,
    1036       507,   85,  875,  875,   85,  875,   85,   85,   85,   85,
    1037        85,  663,  663,  663,  663,  663,  663,  663,  663,  663,
    1038       663,  663,  663,  663,  665,  875,  665,  875,  875,  875,
    1039       665,  571,  875,  571,  667,  875,  667,  875,  875,  875,
    1040       667,  573,  875,  573,  669,  875,  669,  875,  875,  875,
    1041 
    1042       669,  575,  875,  575,  671,  875,  671,  875,  875,  875,
    1043       671,  577,  875,  577,  673,  875,  673,  875,  875,  875,
    1044       673,  579,  875,  579,  675,  875,  675,  875,  875,  875,
    1045       675,  581,  875,  581,  677,  875,  677,  875,  875,  875,
    1046       677,  583,  875,  583,   85,  875,   85,  875,  875,  875,
    1047        85,  585,  875,  585,  485,  875,  485,  875,  875,  875,
    1048       485,  685,  875,  685,  875,  875,  875,  685,  599,  875,
    1049       599,  687,  875,  687,  875,  875,  875,  687,  601,  875,
    1050       601,  689,  875,  689,  875,  875,  875,  689,  603,  875,
    1051       603,  139,  875,  139,  875,  875,  875,  139,  605,  875,
    1052 
    1053       605,  692,  875,  692,  607,  875,  607,   85,  875,  875,
    1054        85,  875,   85,   85,   85,   85,   85,  609,  875,  609,
    1055       663,  663,  663,  663,  663,  663,  663,  663,  663,  663,
    1056       663,  663,  663,  732,  875,  732,  875,  875,  875,  732,
    1057       665,  875,  665,  202,  875,  202,  875,  875,  875,  202,
    1058       667,  875,  667,  735,  875,  735,  669,  875,  669,  202,
    1059       875,  875,  202,  875,  202,  202,  202,  202,  202,  671,
    1060       875,  671,  736,  875,  736,  673,  875,  673,  675,  875,
    1061       675,  737,  875,  737,  677,  875,  677,   85,  875,   85,
    1062       739,  875,  739,  875,  875,  875,  739,  685,  875,  685,
    1063 
    1064       267,  875,  267,  875,  875,  875,  267,  687,  875,  687,
    1065       742,  875,  742,  689,  875,  689,  139,  875,  139,  743,
    1066       875,  743,  875,  875,  875,  743,   85,  875,  875,   85,
    1067       875,   85,   85,   85,   85,   85,  776,  875,  776,  732,
    1068       875,  732,  202,  875,  202,  777,  875,  777,  875,  875,
    1069       875,  777,  779,  875,  779,  875,  875,  875,  779,  781,
    1070       875,  781,  875,  875,  875,  781,  783,  875,  783,  784,
    1071       875,  784,  875,  875,  875,  784,  786,  875,  786,  875,
    1072       875,  875,  786,  807,  875,  807,  875,  875,  875,  807,
    1073       809,  875,  809,  875,  875,  875,  809,  811,  875,  811,
    1074 
    1075       875,  875,  875,  811,  813,  875,  813,  875,  875,  875,
    1076       813,  815,  875,  815,  875,  875,  875,  815,  817,  875,
    1077       817,  875,  875,  875,  817,  609,  875,  609,  875,  875,
    1078       875,  609,  836,  875,  836,  875,  875,  875,  836,  671,
    1079       875,  671,  875,  875,  875,  671,  675,  875,  675,  875,
    1080       875,  875,  675,   85,  875,   85,  875,  875,  875,   85,
    1081       841,  875,  841,  875,  875,  875,  841,  139,  875,  139,
    1082       875,  875,  875,  139,  202,  875,  202,  875,  875,  875,
    1083       202,   11,  875,  875,  875,  875,  875,  875,  875,  875,
    1084       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1085 
    1086       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1087       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1088       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1089       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1090       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1091       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1092       875,  875,  875,  875,  875,  875
     796       71,   71,   71,   71,   71,   71,   71,   71,   71,   72,
     797       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     798       72,   72,   72,   72,   72,   71,   73,   71,   71,   72,
     799       74,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     800       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
     801       72,   72,   72,   72,   72,   71,   71,   71,   71,   76,
     802       76,   79,   79,  123,  124,   90,  141,   79,   79,   87,
     803       76,   76,   80,   81,   82,   82,   82,   80,   82,   81,
     804
     805       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
     806       95,   99,   99,   99,   99,   99,   99,  252,  887,   94,
     807      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
     808       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     809      104,  104,  105,  105,  119,   87,  120,  121,  148,  263,
     810      149,  264,  254,  260,  183,  106,  195,   87,  159,  107,
     811      160,  150,  151,  152,   87,  108,  109,  153,  154,  162,
     812      155,  110,   87,  156,  157,  145,  163,  106,   87,  182,
     813       87,  158,  164,  111,  206,   87,  263,   87,  264,   87,
     814       87,  108,  194,   87,  109,  103,  250,  112,  112,  112,
     815
     816      112,  112,  112,   87,  169,  177,  170,  196,  193,   87,
     817      207,  180,  165,  230,  106,  171,  166,  181,  113,  178,
     818      251,  167,   87,  258,  114,  168,  179,  172,   87,  263,
     819      115,  264,  248,   87,   87,  173,  106,  174,  249,  231,
     820      175,  143,  116,  263,  176,  264,  144,  259,  317,  283,
     821      114,  125,  280,  500,  249,  126,  127,   87,  128,  191,
     822      129,  130,  256,  131,  249,  132,   87,  265,  257,  184,
     823      185,  257,  248,   87,  133,  134,  135,  501,  188,  186,
     824      249,  263,  187,  264,  271,   87,  189,  265,  145,  256,
     825      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
     826
     827      887,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     828      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
     829       82,   82,   82,   80,   87,  138,  139,  209,  210,  263,
     830      887,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     831       82,   81,   82,   82,   82,   82,   87,  887,  212,  212,
     832      212,  212,   82,   81,   83,   83,   83,   82,  887,  211,
     833       99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
     834      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
     835       87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
     836       87,   87,  286,  241,  887,  211,   87,   87,  211,  243,
     837
     838      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
     839      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
     840       87,   87,  887,   87,  309,  300,   87,   87,  224,  225,
     841      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
     842      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     843      106,  245,  228,  245,  306,   87,  246,  246,  246,  246,
     844      246,  246,   87,  313,   87,  315,  244,   87,   87,  311,
     845      314,   87,  106,   87,   87,   87,  323,   87,   87,  322,
     846      229,  233,  233,  233,  233,  233,  233,  312,  333,  247,
     847      319,  316,  328,  320,  318,   87,   87,  234,  235,  236,
     848
     849      321,  237,  236,   87,  324,   87,  325,  143,  335,  360,
     850      331,  361,   87,   87,  238,  337,  326,  327,   87,  236,
     851      235,  236,   87,  329,  237,  332,  236,  287,  288,  289,
     852      336,  290,  291,  334,   87,  292,   87,  293,  407,  360,
     853      330,  361,  294,  295,  296,   87,  297,  339,  360,  343,
     854      361,   87,  200,  201,  338,  340,  346,  200,  341,   87,
     855      342,  197,   81,   82,   82,   82,  197,  200,  201,  198,
     856      378,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     857      201,  360,  347,  361,  344,  360,  345,  361,  202,  202,
     858      202,  202,  202,  202,  209,  210,  378,  143,  361,  209,
     859
     860      202,  202,  202,  202,  202,  202,  352,  352,  352,  352,
     861      360,   87,  361,  362,  360,  360,  361,  361,  360,  363,
     862      361,  360,  360,  361,  361,  369,  369,  370,  369,  370,
     863      435,   87,  371,  371,  371,  371,  371,  371,  373,  353,
     864      373,   87,  263,  373,  264,  263,   87,  264,  369,  402,
     865       87,  369,  234,  235,  236,  406,  237,  236,  388,  401,
     866      373,   87,  373,   87,   87,  372,  390,  373,  105,  105,
     867      105,  105,  105,  105,  236,  235,  236,  404,   87,  237,
     868      405,  236,  403,  408,  388,  106,  246,  246,  246,  246,
     869      246,  246,  391,   87,   87,   87,   87,   87,   87,  419,
     870
     871       87,  255,  425,  432,   87,  420,  434,  106,  376,  376,
     872      376,  376,  376,  376,  381,  409,  413,  105,  105,  105,
     873      105,  105,  105,   87,  234,  245,  236,  245,  237,  236,
     874      246,  246,  246,  246,  246,  246,   87,  383,  410,  384,
     875       87,  377,   87,  385,  411,  412,  236,   87,  236,  386,
     876      255,  237,   87,  236,  112,  112,  112,  112,  112,  112,
     877      414,  387,  415,  417,  418,  384,   87,  416,   87,  385,
     878       87,   87,   87,   87,   87,   87,   87,   87,   87,  421,
     879      427,  426,  433,   87,  437,   87,   87,  260,  423,  424,
     880       87,   87,  436,  429,  428,  422,   87,  430,  431,  439,
     881
     882       87,  438,   87,   87,  446,  441,  440,  442,  443,   87,
     883       87,   87,   87,   87,   87,  445,   87,   87,   87,   87,
     884       87,  448,  447,   87,   87,  444,  449,  451,   87,  456,
     885       87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
     886      457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
     887      459,  463,  465,  466,  344,  201,  201,   87,  887,  344,
     888      467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
     889      352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
     890      371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
     891      371,  371,  887,   87,  493,  494,  477,  488,  488,  488,
     892
     893      488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
     894      492,  492,   87,  234,   87,  236,   87,  237,  236,  242,
     895      242,  242,  242,  105,  105,  495,  381,  517,   87,   87,
     896      489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
     897      237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
     898       87,  384,  375,  496,   87,  385,  522,  496,  497,  887,
     899      497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
     900      525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
     901       87,  385,  383,   87,  384,   87,   87,  527,  385,   87,
     902       87,  532,   87,   87,  502,   87,  499,   87,  535,  528,
     903
     904      529,  537,  530,  531,  533,   87,  387,   87,   87,  541,
     905      384,  534,  538,   87,  385,   87,  536,   87,   87,   87,
     906      539,  540,   87,   87,  546,   87,   87,   87,  544,  542,
     907       87,  548,   87,   87,  547,  543,   87,   87,  549,   87,
     908      545,   87,  552,   87,   87,  550,  556,  554,  551,   87,
     909      559,   87,  553,  555,   87,   87,  557,   87,   87,  558,
     910       87,   87,   87,  564,  560,  567,  563,  568,   87,  561,
     911      566,  562,   87,  565,   87,   87,  571,   87,   87,  573,
     912      627,  201,  492,  570,  576,  574,  572,  577,  211,  211,
     913      211,  211,  493,   87,  575,  488,  488,  488,  488,  488,
     914
     915      488,  376,  376,  376,  376,  376,  376,   87,  492,   87,
     916      618,  234,  595,  236,  595,  237,  236,  596,  596,  596,
     917      596,  596,  596,  492,   87,  599,  492,  621,  489,   87,
     918       87,  623,   87,  236,  490,  236,  598,  619,  237,   87,
     919      236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
     920      597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
     921      631,  622,   87,  887,  625,  887,   87,  862,   87,  601,
     922      497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
     923      498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
     924       87,  602,  633,  602,  626,  636,  603,  632,  602,  629,
     925
     926      634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
     927      637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
     928       87,   87,  887,   87,   87,   87,  638,   87,   87,  644,
     929      645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
     930      651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
     931      656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
     932       87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
     933      666,  701,  702,  887,  887,   87,  667,  488,  488,  488,
     934      488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
     935      688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
     936
     937      600,  600,  600,  600,  600,  600,  703,  688,   87,  887,
     938      594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
     939       87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
     940      688,  603,  602,  604,  707,   87,  700,  710,  709,  689,
     941       87,  689,   87,  705,  687,   87,  689,   87,   87,  602,
     942       87,  602,   87,  716,  603,  718,  602,  712,   87,   87,
     943       87,   87,  711,   87,  714,   87,   87,  713,   87,  717,
     944      715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
     945      727,   87,   87,   87,  725,   87,  731,  723,   87,  732,
     946      726,   87,   87,  861,  728,  734,   87,  733,  730,   87,
     947
     948      735,   87,   87,  729,   87,   87,  751,  736,  686,  686,
     949      686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
     950      750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
     951      753,   87,   87,  764,   87,  756,  754,  757,   87,  758,
     952       87,  687,   87,   87,  759,  767,  602,  690,  602,  761,
     953       87,  603,  766,  602,   87,  760,   87,  762,   87,  765,
     954       87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
     955       87,   87,   87,   87,  771,   87,  774,   87,  772,   87,
     956       87,  779,   87,   87,  795,   87,  780,  773,   87,   87,
     957      776,   87,  775,  803,  777,  796,  778,  686,  686,  686,
     958
     959      686,  686,  686,  793,   87,  794,  799,   87,  798,   87,
     960      801,   87,   87,   87,  797,  804,  805,  800,  806,   87,
     961       87,   87,  802,  807,   87,   87,   87,  808,   87,   87,
     962      743,   87,   87,   87,  809,  828,   87,   87,   87,  830,
     963      831,  833,   87,   87,   87,  834,   87,  836,  810,  811,
     964      826,  827,   87,  829,   87,  825,  832,  837,   87,   87,
     965       87,  838,  839,   87,   87,  835,   87,   87,   87,  851,
     966      850,  855,   87,  852,  840,   87,   87,   87,  853,  857,
     967      849,   87,   87,   87,  854,  858,  859,   87,   87,  856,
     968      860,   87,  863,  864,  865,   87,   87,  866,   87,  868,
     969
     970      867,  869,   87,   87,   87,  870,   87,   87,   87,  873,
     971       87,  875,   87,  876,   87,   87,   87,  874,   87,  872,
     972       87,   87,   87,  871,   87,  880,   87,   87,   87,  887,
     973      879,  881,  887,  848,  877,  878,  886,  887,  847,  884,
     974      887,  845,  882,  883,  887,  844,  885,   69,   69,   69,
     975       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
     976       75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
     977       75,   75,   75,   78,   78,   78,   78,   78,   78,   78,
     978       78,   78,   78,   78,   78,   78,   86,  887,  843,   86,
     979      887,   86,   86,   86,   86,   86,  140,  842,   87,   87,
     980
     981      140,  140,  140,  140,  140,  140,  199,  199,  199,  199,
     982      199,  199,  199,  199,  199,  199,  199,  199,  199,  204,
     983       87,  887,  204,  824,  204,  204,  204,  204,  204,  208,
     984      887,  208,  208,  823,  208,  208,  208,  208,  208,  208,
     985      821,  208,  216,  887,  819,  216,  216,  216,  216,  216,
     986      216,  216,  216,  887,  216,  239,  239,  239,  239,  239,
     987      239,  239,  239,  239,  239,  239,  239,  239,  253,  253,
     988      817,  253,  887,  815,  813,  253,  269,   87,   87,  269,
     989       87,  269,  269,  269,  269,  269,  273,   87,  273,   87,
     990       87,   87,  273,  275,   87,  275,   87,   87,   87,  275,
     991
     992      348,   87,  348,  887,  792,  790,  348,  350,  887,  350,
     993      887,  787,  785,  350,  354,  783,  354,   87,   87,   87,
     994      354,  356,   87,  356,   87,   87,   87,  356,  358,  749,
     995      358,  746,  745,  743,  358,  365,  205,  365,  739,  738,
     996      670,  365,  367,   87,  367,   87,   87,   87,  367,  239,
     997      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
     998      239,  239,  380,   87,  380,  382,  382,   87,  382,  382,
     999      382,   87,  382,  253,  253,   87,  253,  392,   87,  392,
     1000       87,   87,   87,  392,  394,   87,  394,   87,   87,  697,
     1001      394,  396,  696,  396,  694,  692,  690,  396,  273,  598,
     1002
     1003      273,  398,  685,  398,  684,  682,  680,  398,  275,  678,
     1004      275,   86,  676,  674,   86,  672,   86,   86,   86,   86,
     1005       86,  199,  199,  199,  199,  199,  199,  199,  199,  199,
     1006      199,  199,  199,  199,  468,  468,  468,  468,  468,  468,
     1007      468,  468,  468,  468,  468,  468,  468,  469,  670,  469,
     1008       87,   87,   87,  469,  471,   87,  471,   87,   87,   87,
     1009      471,  473,   87,  473,   87,   87,   87,  473,  348,  617,
     1010      348,  475,  615,  475,  613,  611,  609,  475,  350,  607,
     1011      350,  478,  502,  478,  605,  605,  594,  478,  354,  593,
     1012      354,  480,  591,  480,  483,  483,  589,  480,  356,  587,
     1013
     1014      356,  482,  585,  482,  583,  581,  579,  482,  358,   87,
     1015      358,  484,   87,  484,   87,   87,   87,  484,  365,   87,
     1016      365,  486,   87,  486,   87,  514,  512,  486,  367,  510,
     1017      367,  491,  508,  491,  506,  491,  504,  491,  380,  490,
     1018      380,  487,  380,  485,  380,  382,  382,  361,  382,  382,
     1019      382,  361,  382,  503,  483,  503,  481,  479,  476,  503,
     1020      505,  474,  505,  472,  470,   87,  505,  507,   87,  507,
     1021       87,  400,  399,  507,  392,  397,  392,  509,  395,  509,
     1022      393,  270,  265,  509,  394,  264,  394,  511,  389,  511,
     1023      389,  252,  379,  511,  396,  379,  396,  513,  240,  513,
     1024
     1025      374,  368,  366,  513,  398,  364,  398,   86,  360,  359,
     1026       86,  357,   86,   86,   86,   86,   86,  468,  468,  468,
     1027      468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
     1028      578,  355,  578,  351,  349,  205,  578,  469,  201,  469,
     1029      580,   87,  580,  277,  276,  274,  580,  471,  270,  471,
     1030      582,  265,  582,  268,  265,  263,  582,  473,  262,  473,
     1031      584,  261,  584,  240,  232,   85,  584,  475,   85,  475,
     1032      586,   87,  586,  205,  203,   85,  586,  478,  122,  478,
     1033      588,  117,  588,   87,  887,   70,  588,  480,   70,  480,
     1034      482,  887,  482,  887,  887,  887,  482,  590,  887,  590,
     1035
     1036      887,  887,  887,  590,  484,  887,  484,  592,  887,  592,
     1037      887,  887,  887,  592,  486,  887,  486,  491,  887,  491,
     1038      887,  491,  887,  491,  382,  887,  382,  887,  887,  887,
     1039      382,  606,  887,  606,  887,  887,  887,  606,  503,  887,
     1040      503,  608,  887,  608,  887,  887,  887,  608,  505,  887,
     1041      505,  610,  887,  610,  887,  887,  887,  610,  507,  887,
     1042      507,  612,  887,  612,  887,  887,  887,  612,  509,  887,
     1043      509,  614,  887,  614,  887,  887,  887,  614,  511,  887,
     1044      511,  616,  887,  616,  887,  887,  887,  616,  513,  887,
     1045      513,   86,  887,  887,   86,  887,   86,   86,   86,   86,
     1046
     1047       86,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1048      669,  669,  669,  669,  671,  887,  671,  887,  887,  887,
     1049      671,  578,  887,  578,  673,  887,  673,  887,  887,  887,
     1050      673,  580,  887,  580,  675,  887,  675,  887,  887,  887,
     1051      675,  582,  887,  582,  677,  887,  677,  887,  887,  887,
     1052      677,  584,  887,  584,  679,  887,  679,  887,  887,  887,
     1053      679,  586,  887,  586,  681,  887,  681,  887,  887,  887,
     1054      681,  588,  887,  588,  683,  887,  683,  887,  887,  887,
     1055      683,  590,  887,  590,   86,  887,   86,  887,  887,  887,
     1056       86,  592,  887,  592,  491,  887,  491,  887,  887,  887,
     1057
     1058      491,  691,  887,  691,  887,  887,  887,  691,  606,  887,
     1059      606,  693,  887,  693,  887,  887,  887,  693,  608,  887,
     1060      608,  695,  887,  695,  887,  887,  887,  695,  610,  887,
     1061      610,  140,  887,  140,  887,  887,  887,  140,  612,  887,
     1062      612,  698,  887,  698,  614,  887,  614,   86,  887,  887,
     1063       86,  887,   86,   86,   86,   86,   86,  616,  887,  616,
     1064      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
     1065      669,  669,  669,  737,  887,  737,  887,  887,  887,  737,
     1066      671,  887,  671,  204,  887,  204,  887,  887,  887,  204,
     1067      673,  887,  673,  740,  887,  740,  675,  887,  675,  204,
     1068
     1069      887,  887,  204,  887,  204,  204,  204,  204,  204,  677,
     1070      887,  677,  741,  887,  741,  679,  887,  679,  681,  887,
     1071      681,  742,  887,  742,  683,  887,  683,   86,  887,   86,
     1072      744,  887,  744,  887,  887,  887,  744,  691,  887,  691,
     1073      269,  887,  269,  887,  887,  887,  269,  693,  887,  693,
     1074      747,  887,  747,  695,  887,  695,  140,  887,  140,  748,
     1075      887,  748,  887,  887,  887,  748,   86,  887,  887,   86,
     1076      887,   86,   86,   86,   86,   86,  781,  887,  781,  737,
     1077      887,  737,  204,  887,  204,  782,  887,  782,  887,  887,
     1078      887,  782,  784,  887,  784,  887,  887,  887,  784,  786,
     1079
     1080      887,  786,  887,  887,  887,  786,  788,  887,  788,  789,
     1081      887,  789,  887,  887,  887,  789,  791,  887,  791,  887,
     1082      887,  887,  791,  812,  887,  812,  887,  887,  887,  812,
     1083      814,  887,  814,  887,  887,  887,  814,  816,  887,  816,
     1084      887,  887,  887,  816,  818,  887,  818,  887,  887,  887,
     1085      818,  820,  887,  820,  887,  887,  887,  820,  822,  887,
     1086      822,  887,  887,  887,  822,  616,  887,  616,  887,  887,
     1087      887,  616,  841,  887,  841,  887,  887,  887,  841,  677,
     1088      887,  677,  887,  887,  887,  677,  681,  887,  681,  887,
     1089      887,  887,  681,   86,  887,   86,  887,  887,  887,   86,
     1090
     1091      846,  887,  846,  887,  887,  887,  846,  140,  887,  140,
     1092      887,  887,  887,  140,  204,  887,  204,  887,  887,  887,
     1093      204,   11,  887,  887,  887,  887,  887,  887,  887,  887,
     1094      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1095      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1096      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1097      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1098      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1099      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1100      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1101
     1102      887,  887,  887,  887,  887,  887,  887
    10931103    } ;
    10941104
    1095 static yyconst flex_int16_t yy_chk[2867] =
     1105static yyconst flex_int16_t yy_chk[2908] =
    10961106    {   0,
    10971107        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11031113        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    11041114        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1105         1,    1,    1,    1,    2,   16,   24,   16,   24,    2,
    1106        19,   19,    2,    5,    5,    5,    5,    5,    5,    5,
     1115        1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
     1116        2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
    11071117
    11081118        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    11131123        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11141124        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1115         5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1116        10,   37,   37,   20,   39,    9,   10,  874,    7,    8,
    1117        13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    1118 
    1119        15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
    1120        28,   28,   28,   28,   28,  108,  114,   25,   29,   25,
    1121        27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    1122        40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
    1123        30,   30,   35,   61,   35,   35,   44,  869,   44,  108,
    1124       114,  868,   48,   30,   63,   61,   30,   56,   47,   45,
    1125        45,   45,   30,   30,   45,   45,   56,   45,   30,   55,
    1126        45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
    1127        30,   47,   72,  125,   49,  125,   51,   55,   30,   86,
    1128        49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
    1129 
    1130        50,   51,  866,   51,   63,  153,   54,   58,   72,   50,
    1131        60,   31,   51,   50,   31,   86,   54,   57,   50,   58,
    1132        31,  153,   50,   54,  141,  156,   31,   58,   60,   57,
    1133        57,   59,   31,  126,   58,  126,   59,  156,   31,   57,
    1134        52,  865,   57,   67,   67,   52,   31,   38,   67,   59,
    1135       141,   38,   38,   52,   38,   52,   38,   38,   52,   38,
    1136       107,   38,   52,  113,   67,   67,   67,   67,   67,   67,
    1137        38,   38,   38,  128,   59,  128,  152,   59,   66,   66,
    1138        66,   66,   66,   66,  107,  152,   66,  113,  863,  862,
    1139        38,   59,  165,   38,   79,   79,   79,   79,   79,   79,
    1140 
    1141        81,   81,   81,   81,   81,   81,   82,   82,   82,   82,
    1142        82,   82,  131,  165,  131,  103,  103,  103,  103,  106,
    1143        38,   38,   76,   76,  856,  106,  112,   76,  168,   76,
    1144       110,  133,  112,  133,   76,  102,  102,  102,  102,  102,
    1145       102,  130,  103,   76,   76,   76,   76,  103,  110,  168,
    1146       109,  106,  129,  130,   76,  130,  110,  104,  112,  104,
    1147       104,  104,  104,  104,  104,  149,  129,  102,  129,   76,
    1148       103,  136,   76,  136,  158,  115,  104,   76,   76,  109,
    1149       149,   76,   76,  155,  109,  132,  132,  149,  132,   76,
    1150       158,  104,   76,  115,   76,   76,   76,  104,   76,   84,
    1151 
    1152       138,  115,  138,   84,   84,  155,  166,  109,   84,   84,
    1153       105,   84,  105,   84,  150,  105,  105,  105,  105,  105,
    1154       105,  151,   84,   84,   84,  134,  134,  134,  144,  166,
    1155       154,  157,  150,  144,  159,  167,  157,  157,  157,  151,
    1156       157,  157,   84,  161,  157,   84,  157,  105,  154,  160,
    1157       163,  157,  157,  157,  162,  157,  159,  855,  160,  162,
    1158       164,  169,  167,  170,  161,  161,  169,  163,  171,  172,
    1159       164,  144,  162,   84,   98,   98,   98,   98,   98,   98,
    1160       173,  174,  175,  171,  169,  170,  172,  179,  176,  185,
    1161        98,   98,  178,   98,   98,  180,  189,  182,  173,  187,
    1162 
    1163       180,  174,  185,  186,  179,  188,   98,  178,  181,  175,
    1164       176,   98,   98,   98,  178,  182,   98,  183,   98,  181,
    1165       184,  191,  190,  186,  188,  184,  187,  528,  183,  181,
    1166       181,  192,  207,  207,  191,  190,  191,  207,  232,  189,
    1167       184,  203,  189,  190,  192,  183,  195,  195,  195,  195,
    1168       195,  195,  196,  196,  195,  528,  854,  196,  198,  198,
    1169       216,  232,  216,  198,  200,  200,  217,  203,  217,  200,
    1170       218,  200,  218,  196,  196,  196,  196,  196,  196,  198,
    1171       198,  198,  198,  198,  198,  200,  200,  200,  200,  200,
    1172       200,  210,  210,  210,  210,  219,  220,  221,  282,  221,
    1173 
    1174       222,  222,  223,  222,  223,  224,  224,  224,  220,  219,
    1175       220,  219,  226,  227,  226,  227,  234,  235,  282,  233,
    1176       234,  233,  284,  210,  233,  233,  233,  233,  233,  233,
    1177       241,  239,  239,  277,  239,  239,  264,  234,  264,  234,
    1178       235,  265,  284,  265,  234,  242,  242,  242,  242,  242,
    1179       242,  277,  239,  239,  239,  246,  233,  239,  278,  239,
    1180       276,  280,  242,  279,  241,  243,  243,  243,  243,  243,
    1181       243,  254,  268,  276,  853,  281,  278,  242,  280,  279,
    1182       281,  246,  288,  242,  244,  244,  244,  244,  244,  244,
    1183       253,  253,  253,  253,  253,  253,  251,  254,  268,  287,
    1184 
    1185       244,  283,  286,  244,  244,  245,  283,  245,  288,  295,
    1186       245,  245,  245,  245,  245,  245,  244,  287,  251,  849,
    1187       251,  244,  253,  244,  251,  286,  244,  295,  244,  289,
    1188       251,  258,  258,  258,  258,  258,  258,  285,  290,  292,
    1189       291,  294,  251,  293,  289,  291,  251,  297,  292,  301,
    1190       251,  299,  285,  303,  290,  290,  293,  298,  285,  285,
    1191       299,  302,  298,  258,  300,  297,  307,  304,  294,  301,
    1192       306,  300,  304,  305,  303,  303,  306,  308,  305,  302,
    1193       310,  309,  311,  312,  313,  307,  308,  309,  314,  313,
    1194       315,  311,  316,  314,  318,  315,  310,  317,  312,  320,
    1195 
    1196       322,  321,  323,  324,  326,  325,  328,  318,  327,  329,
    1197       320,  316,  315,  322,  330,  317,  321,  327,  333,  331,
    1198       334,  326,  335,  337,  323,  325,  324,  333,  328,  336,
    1199       338,  337,  329,  339,  381,  338,  330,  331,  340,  340,
    1200       335,  341,  336,  340,  358,  340,  358,  341,  339,  348,
    1201       348,  348,  348,  349,  349,  349,  349,  359,  381,  359,
    1202       397,  846,  402,  334,  366,  366,  366,  366,  366,  366,
    1203       368,  397,  368,  402,  404,  368,  368,  368,  368,  368,
    1204       368,  348,  367,  367,  367,  367,  367,  367,  370,  370,
    1205       370,  370,  370,  370,  400,  398,  404,  435,  367,  376,
    1206 
    1207       843,  367,  367,  371,  371,  371,  371,  371,  371,  376,
    1208       379,  398,  377,  400,  367,  378,  379,  435,  383,  367,
    1209       370,  367,  377,  412,  367,  376,  367,  372,  372,  372,
    1210       372,  372,  372,  399,  382,  371,  383,  378,  377,  378,
    1211       415,  412,  379,  378,  383,  380,  415,  380,  399,  378,
    1212       380,  380,  380,  380,  380,  380,  382,  401,  382,  372,
    1213       407,  378,  382,  403,  405,  378,  401,  408,  382,  378,
    1214       406,  411,  403,  405,  409,  410,  407,  416,  418,  414,
    1215       382,  413,  380,  406,  382,  417,  413,  409,  382,  408,
    1216       419,  410,  410,  411,  414,  421,  417,  418,  416,  423,
    1217 
    1218       425,  414,  426,  427,  428,  419,  431,  429,  430,  421,
    1219       433,  423,  427,  429,  436,  431,  427,  437,  438,  439,
    1220       441,  425,  440,  430,  426,  433,  443,  428,  445,  441,
    1221       447,  446,  437,  448,  439,  449,  436,  450,  451,  455,
    1222       438,  452,  440,  443,  457,  633,  450,  460,  453,  458,
    1223       447,  445,  446,  448,  452,  453,  451,  449,  454,  456,
    1224       458,  457,  461,  633,  455,  454,  462,  456,  515,  460,
    1225       488,  461,  462,  471,  471,  471,  471,  456,  482,  482,
    1226       482,  482,  482,  482,  484,  484,  484,  484,  484,  484,
    1227       515,  513,  485,  487,  482,  489,  488,  482,  482,  486,
    1228 
    1229       510,  486,  485,  487,  486,  486,  486,  486,  486,  486,
    1230       482,  513,  509,  510,  520,  482,  484,  482,  485,  487,
    1231       482,  489,  482,  491,  491,  491,  491,  491,  491,  509,
    1232       512,  514,  519,  516,  520,  519,  486,  492,  492,  492,
    1233       492,  492,  492,  517,  514,  512,  516,  521,  517,  525,
    1234       518,  522,  523,  492,  525,  842,  492,  492,  493,  841,
    1235       493,  518,  521,  493,  493,  493,  493,  493,  493,  492,
    1236       522,  524,  526,  523,  492,  527,  492,  529,  530,  492,
    1237       524,  492,  531,  526,  532,  533,  529,  536,  527,  535,
    1238       533,  538,  539,  532,  542,  535,  536,  540,  541,  531,
    1239 
    1240       530,  544,  545,  542,  546,  547,  549,  554,  556,  539,
    1241       544,  561,  540,  541,  555,  552,  546,  538,  550,  545,
    1242       547,  549,  553,  550,  552,  556,  558,  555,  559,  554,
    1243       560,  553,  562,  561,  558,  563,  564,  560,  559,  565,
    1244       567,  563,  568,  613,  562,  564,  612,  617,  594,  565,
    1245       596,  698,  613,  612,  617,  568,  698,  567,  587,  587,
    1246       587,  587,  587,  587,  588,  588,  588,  588,  588,  588,
    1247       590,  594,  590,  596,  614,  590,  590,  590,  590,  590,
    1248       590,  593,  593,  593,  593,  593,  593,  614,  615,  616,
    1249       587,  589,  589,  589,  589,  589,  589,  595,  611,  622,
    1250 
    1251       618,  595,  619,  611,  621,  615,  620,  589,  618,  620,
    1252       589,  589,  616,  593,  623,  624,  611,  621,  595,  619,
    1253       595,  622,  625,  589,  626,  595,  628,  629,  589,  623,
    1254       589,  627,  630,  589,  627,  589,  631,  624,  634,  625,
    1255       632,  635,  637,  628,  638,  644,  626,  630,  639,  632,
    1256       635,  645,  640,  650,  629,  647,  631,  696,  693,  651,
    1257       634,  640,  650,  659,  637,  644,  651,  638,  658,  662,
    1258       639,  661,  647,  659,  697,  840,  839,  658,  645,  693,
    1259       661,  697,  699,  696,  662,  680,  680,  680,  680,  680,
    1260       680,  684,  684,  684,  684,  684,  684,  694,  702,  705,
    1261 
    1262       700,  680,  699,  700,  680,  680,  701,  694,  704,  701,
    1263       706,  708,  705,  709,  704,  707,  702,  680,  707,  706,
    1264       712,  711,  680,  684,  680,  710,  714,  680,  710,  680,
    1265       711,  713,  708,  718,  713,  715,  716,  717,  720,  714,
    1266       723,  709,  726,  715,  727,  712,  716,  720,  728,  730,
    1267       717,  731,  752,  751,  718,  753,  749,  730,  751,  754,
    1268       731,  750,  726,  723,  755,  753,  727,  752,  756,  728,
    1269       738,  738,  738,  738,  738,  738,  749,  757,  750,  758,
    1270       757,  755,  754,  759,  761,  763,  764,  761,  763,  767,
    1271       768,  773,  758,  764,  756,  765,  766,  788,  765,  766,
    1272 
    1273       790,  791,  738,  792,  767,  793,  792,  797,  794,  795,
    1274       759,  794,  795,  768,  773,  798,  801,  799,  805,  791,
    1275       799,  790,  821,  802,  788,  797,  802,  793,  803,  806,
    1276       804,  803,  824,  823,  805,  822,  823,  825,  801,  804,
    1277       798,  824,  822,  821,  826,  806,  827,  826,  830,  833,
    1278       834,  830,  833,  835,  847,  825,  844,  847,  848,  834,
    1279       857,  845,  835,  827,  850,  844,  845,  850,  848,  851,
    1280       852,  858,  851,  852,  859,  860,  861,  859,  864,  861,
    1281       857,  867,  870,  871,  873,  860,  858,  838,  872,  837,
    1282       836,  870,  832,  831,  873,  829,  828,  820,  819,  818,
    1283 
    1284       864,  817,  867,  816,  815,  871,  872,  876,  876,  876,
    1285       876,  876,  876,  876,  876,  876,  876,  876,  876,  876,
    1286       877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
    1287       877,  877,  877,  878,  878,  878,  878,  878,  878,  878,
    1288       878,  878,  878,  878,  878,  878,  879,  814,  813,  879,
    1289       812,  879,  879,  879,  879,  879,  880,  811,  810,  809,
    1290       880,  880,  880,  880,  880,  880,  881,  881,  881,  881,
    1291       881,  881,  881,  881,  881,  881,  881,  881,  881,  882,
    1292       808,  807,  882,  800,  882,  882,  882,  882,  882,  883,
    1293       796,  883,  883,  789,  883,  883,  883,  883,  883,  883,
    1294 
    1295       787,  883,  884,  786,  785,  884,  884,  884,  884,  884,
    1296       884,  884,  884,  784,  884,  885,  885,  885,  885,  885,
    1297       885,  885,  885,  885,  885,  885,  885,  885,  886,  886,
    1298       783,  886,  782,  781,  780,  886,  887,  779,  778,  887,
    1299       777,  887,  887,  887,  887,  887,  888,  776,  888,  775,
    1300       774,  772,  888,  889,  771,  889,  770,  769,  762,  889,
    1301       890,  760,  890,  748,  747,  746,  890,  891,  745,  891,
    1302       744,  743,  742,  891,  892,  741,  892,  740,  737,  736,
    1303       892,  893,  735,  893,  729,  725,  724,  893,  894,  722,
    1304       894,  721,  719,  703,  894,  895,  695,  895,  692,  687,
    1305 
    1306       685,  895,  896,  681,  896,  671,  667,  665,  896,  897,
    1307       897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    1308       897,  897,  898,  663,  898,  899,  899,  660,  899,  899,
    1309       899,  657,  899,  900,  900,  656,  900,  901,  655,  901,
    1310       654,  653,  652,  901,  902,  649,  902,  648,  646,  643,
    1311       902,  903,  642,  903,  641,  636,  609,  903,  904,  605,
    1312       904,  905,  603,  905,  601,  599,  597,  905,  906,  591,
    1313       906,  907,  585,  583,  907,  581,  907,  907,  907,  907,
    1314       907,  908,  908,  908,  908,  908,  908,  908,  908,  908,
    1315       908,  908,  908,  908,  909,  909,  909,  909,  909,  909,
    1316 
    1317       909,  909,  909,  909,  909,  909,  909,  910,  579,  910,
    1318       577,  575,  573,  910,  911,  571,  911,  570,  569,  566,
    1319       911,  912,  557,  912,  551,  548,  543,  912,  913,  537,
    1320       913,  914,  534,  914,  511,  507,  505,  914,  915,  503,
    1321       915,  916,  501,  916,  499,  497,  496,  916,  917,  495,
    1322       917,  918,  494,  918,  483,  480,  478,  918,  919,  477,
    1323       919,  920,  476,  920,  474,  472,  469,  920,  921,  467,
    1324       921,  922,  465,  922,  463,  459,  444,  922,  923,  442,
    1325       923,  924,  434,  924,  432,  424,  422,  924,  925,  420,
    1326       925,  926,  394,  926,  392,  926,  390,  926,  927,  388,
    1327 
    1328       927,  387,  927,  386,  927,  928,  928,  373,  928,  928,
    1329       928,  363,  928,  929,  361,  929,  360,  356,  354,  929,
    1330       930,  352,  930,  350,  346,  344,  930,  931,  343,  931,
    1331       342,  332,  319,  931,  932,  296,  932,  933,  275,  933,
    1332       273,  271,  270,  933,  934,  269,  934,  935,  267,  935,
    1333       266,  261,  257,  935,  936,  256,  936,  937,  252,  937,
    1334       249,  248,  237,  937,  938,  236,  938,  939,  229,  228,
    1335       939,  225,  939,  939,  939,  939,  939,  940,  940,  940,
    1336       940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
    1337       941,  215,  941,  213,  212,  211,  941,  942,  205,  942,
    1338 
    1339       943,  204,  943,  202,  197,  177,  943,  944,  148,  944,
    1340       945,  146,  945,  145,  139,  137,  945,  946,  135,  946,
    1341       947,  127,  947,  124,  123,  119,  947,  948,  100,  948,
    1342       949,   97,  949,   94,   92,   85,  949,  950,   71,  950,
    1343       951,   69,  951,   65,   36,   33,  951,  952,   18,  952,
    1344       953,   11,  953,    4,    3,    0,  953,  954,    0,  954,
    1345         0,    0,    0,  954,  955,    0,  955,  956,    0,  956,
    1346         0,    0,    0,  956,  957,    0,  957,  958,    0,  958,
    1347         0,  958,    0,  958,  959,    0,  959,    0,    0,    0,
    1348       959,  960,    0,  960,    0,    0,    0,  960,  961,    0,
    1349 
    1350       961,  962,    0,  962,    0,    0,    0,  962,  963,    0,
    1351       963,  964,    0,  964,    0,    0,    0,  964,  965,    0,
    1352       965,  966,    0,  966,    0,    0,    0,  966,  967,    0,
    1353       967,  968,    0,  968,    0,    0,    0,  968,  969,    0,
    1354       969,  970,    0,  970,    0,    0,    0,  970,  971,    0,
    1355       971,  972,    0,    0,  972,    0,  972,  972,  972,  972,
    1356       972,  973,  973,  973,  973,  973,  973,  973,  973,  973,
    1357       973,  973,  973,  973,  974,    0,  974,    0,    0,    0,
    1358       974,  975,    0,  975,  976,    0,  976,    0,    0,    0,
    1359       976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
    1360 
    1361       978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
    1362       980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
    1363       982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
    1364       984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
     1125        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
     1126        8,    9,   10,   37,   37,   20,   39,    9,   10,  886,
     1127        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
     1128
     1129       15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
     1130       27,   28,   28,   28,   28,   28,   28,  109,  115,   25,
     1131       29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
     1132        8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
     1133       30,   30,   30,   30,   35,   57,   35,   35,   44,  126,
     1134       44,  126,  109,  115,   57,   30,   64,   56,   47,   30,
     1135       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
     1136       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
     1137       62,   45,   49,   30,   73,  885,  127,   53,  127,   51,
     1138       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
     1139
     1140       31,   31,   31,   50,   51,   53,   51,   64,   61,   54,
     1141       73,   55,   50,   87,   31,   51,   50,   55,   31,   54,
     1142      108,   50,   52,  114,   31,   50,   54,   52,  175,  129,
     1143       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
     1144       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
     1145       31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
     1146       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
     1147       58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
     1148      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
     1149      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
     1150
     1151      110,  131,   60,   67,   67,   67,   67,   67,   67,  877,
     1152      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
     1153       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
     1154      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
     1155       82,   82,   82,   82,   82,   82,  876,  243,   77,   77,
     1156       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
     1157      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
     1158      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
     1159      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
     1160      166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
     1161
     1162       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
     1163       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
     1164      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
     1165       85,  105,  163,  105,  105,  105,  105,  105,  105,  873,
     1166      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
     1167      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     1168      106,  106,  180,  171,  170,  173,  105,  176,  177,  170,
     1169      172,  181,  105,  174,  184,  187,  181,  182,  179,  180,
     1170       85,   99,   99,   99,   99,   99,   99,  170,  187,  106,
     1171      177,  174,  184,  179,  176,  183,  190,   99,   99,   99,
     1172
     1173      179,   99,   99,  189,  182,  186,  183,  191,  189,  218,
     1174      186,  218,  185,  188,   99,  190,  183,  183,  284,   99,
     1175       99,   99,  158,  185,   99,  186,   99,  158,  158,  158,
     1176      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
     1177      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
     1178      220,  191,  198,  198,  191,  192,  205,  198,  193,  872,
     1179      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
     1180      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
     1181      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
     1182      200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
     1183
     1184      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
     1185      222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
     1186      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
     1187      309,  279,  235,  235,  235,  235,  235,  235,  237,  212,
     1188      237,  338,  266,  237,  266,  267,  278,  267,  234,  279,
     1189      283,  236,  241,  241,  241,  283,  241,  241,  256,  278,
     1190      237,  281,  237,  282,  280,  235,  270,  237,  244,  244,
     1191      244,  244,  244,  244,  241,  241,  241,  281,  285,  241,
     1192      282,  241,  280,  285,  256,  244,  245,  245,  245,  245,
     1193      245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
     1194
     1195      308,  244,  300,  306,  870,  294,  308,  244,  246,  246,
     1196      246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
     1197      255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
     1198      247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
     1199      869,  246,  289,  253,  287,  287,  246,  292,  246,  253,
     1200      255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
     1201      289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
     1202      297,  299,  301,  302,  303,  304,  305,  307,  311,  295,
     1203      302,  301,  307,  310,  311,  312,  319,  260,  297,  299,
     1204      313,  314,  310,  304,  303,  296,  318,  305,  305,  313,
     1205
     1206      315,  312,  316,  317,  319,  315,  314,  316,  317,  320,
     1207      322,  323,  324,  326,  325,  318,  327,  328,  331,  329,
     1208      330,  322,  320,  332,  334,  317,  323,  325,  333,  330,
     1209      335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
     1210      331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
     1211      333,  339,  341,  342,  344,  344,  345,  460,  862,  344,
     1212      343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
     1213      353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
     1214      370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
     1215      372,  372,  861,  402,  380,  381,  352,  371,  371,  371,
     1216
     1217      371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
     1218      380,  381,  403,  371,  404,  371,  860,  371,  371,  375,
     1219      375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
     1220      371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
     1221      371,  407,  371,  376,  376,  376,  376,  376,  376,  382,
     1222      412,  382,  375,  387,  411,  382,  408,  383,  384,  386,
     1223      384,  382,  410,  384,  384,  384,  384,  384,  384,  409,
     1224      411,  387,  412,  382,  413,  410,  376,  382,  409,  387,
     1225      415,  382,  386,  414,  386,  416,  417,  413,  386,  418,
     1226      421,  417,  419,  422,  386,  420,  384,  427,  419,  414,
     1227
     1228      414,  421,  415,  416,  418,  423,  386,  425,  429,  427,
     1229      386,  418,  422,  430,  386,  431,  420,  432,  433,  434,
     1230      423,  425,  435,  437,  433,  439,  440,  441,  431,  429,
     1231      442,  435,  443,  444,  434,  430,  449,  445,  437,  447,
     1232      432,  450,  441,  451,  454,  439,  445,  443,  440,  452,
     1233      450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
     1234      459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
     1235      457,  453,  466,  456,  464,  467,  462,  525,  859,  463,
     1236      525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
     1237      477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
     1238
     1239      488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
     1240      515,  488,  492,  488,  492,  488,  488,  492,  492,  492,
     1241      492,  492,  492,  494,  516,  495,  493,  519,  488,  855,
     1242      851,  521,  518,  488,  490,  488,  493,  516,  488,  529,
     1243      488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
     1244      492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
     1245      529,  520,  526,  848,  523,  847,  528,  846,  522,  498,
     1246      499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
     1247      499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
     1248      533,  498,  531,  498,  524,  534,  498,  530,  498,  527,
     1249
     1250      532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
     1251      535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
     1252      550,  551,  845,  549,  534,  552,  536,  554,  560,  544,
     1253      545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
     1254      552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
     1255      560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
     1256      572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
     1257      572,  619,  620,  844,  843,  622,  574,  594,  594,  594,
     1258      594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
     1259      601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
     1260
     1261      600,  600,  600,  600,  600,  600,  621,  602,  626,  842,
     1262      594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
     1263      623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
     1264      602,  596,  596,  600,  625,  627,  618,  628,  627,  603,
     1265      629,  603,  630,  623,  596,  631,  603,  632,  633,  596,
     1266      634,  596,  635,  634,  596,  636,  596,  630,  637,  638,
     1267      640,  644,  629,  639,  632,  641,  642,  631,  645,  635,
     1268      633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
     1269      646,  653,  657,  636,  644,  665,  656,  641,  664,  657,
     1270      645,  667,  668,  841,  650,  665,  700,  664,  653,  699,
     1271
     1272      667,  702,  705,  651,  714,  837,  700,  668,  686,  686,
     1273      686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
     1274      699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
     1275      703,  704,  706,  715,  707,  706,  704,  707,  710,  708,
     1276      712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
     1277      720,  686,  717,  686,  713,  711,  716,  713,  719,  716,
     1278      721,  719,  715,  720,  722,  723,  724,  725,  721,  728,
     1279      731,  718,  732,  735,  722,  733,  725,  736,  723,  756,
     1280      757,  735,  836,  754,  756,  759,  736,  724,  755,  760,
     1281      731,  761,  728,  764,  732,  757,  733,  743,  743,  743,
     1282
     1283      743,  743,  743,  754,  758,  755,  760,  762,  759,  763,
     1284      762,  769,  766,  768,  758,  766,  768,  761,  769,  772,
     1285      770,  764,  763,  770,  771,  773,  778,  771,  793,  795,
     1286      743,  798,  797,  796,  772,  797,  799,  800,  802,  799,
     1287      800,  803,  804,  806,  807,  804,  810,  807,  773,  778,
     1288      795,  796,  809,  798,  808,  793,  802,  808,  811,  826,
     1289      830,  809,  810,  827,  829,  806,  828,  803,  831,  828,
     1290      827,  831,  832,  829,  811,  834,  835,  839,  830,  835,
     1291      826,  840,  838,  849,  830,  838,  839,  853,  850,  832,
     1292      840,  852,  849,  850,  852,  854,  856,  853,  857,  856,
     1293
     1294      854,  857,  858,  863,  864,  858,  865,  866,  867,  865,
     1295      868,  867,  871,  868,  874,  875,  878,  866,  879,  864,
     1296      880,  882,  881,  863,  883,  878,  884,  833,  825,  824,
     1297      875,  879,  823,  822,  871,  874,  884,  821,  820,  882,
     1298      819,  818,  880,  881,  817,  816,  883,  888,  888,  888,
     1299      888,  888,  888,  888,  888,  888,  888,  888,  888,  888,
     1300      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     1301      889,  889,  889,  890,  890,  890,  890,  890,  890,  890,
     1302      890,  890,  890,  890,  890,  890,  891,  815,  814,  891,
     1303      813,  891,  891,  891,  891,  891,  892,  812,  805,  801,
     1304
     1305      892,  892,  892,  892,  892,  892,  893,  893,  893,  893,
     1306      893,  893,  893,  893,  893,  893,  893,  893,  893,  894,
     1307      794,  792,  894,  791,  894,  894,  894,  894,  894,  895,
     1308      790,  895,  895,  789,  895,  895,  895,  895,  895,  895,
     1309      788,  895,  896,  787,  786,  896,  896,  896,  896,  896,
     1310      896,  896,  896,  785,  896,  897,  897,  897,  897,  897,
     1311      897,  897,  897,  897,  897,  897,  897,  897,  898,  898,
     1312      784,  898,  783,  782,  781,  898,  899,  780,  779,  899,
     1313      777,  899,  899,  899,  899,  899,  900,  776,  900,  775,
     1314      774,  767,  900,  901,  765,  901,  753,  752,  751,  901,
     1315
     1316      902,  750,  902,  749,  748,  747,  902,  903,  746,  903,
     1317      745,  742,  741,  903,  904,  740,  904,  734,  730,  729,
     1318      904,  905,  727,  905,  726,  709,  701,  905,  906,  698,
     1319      906,  693,  691,  687,  906,  907,  677,  907,  673,  671,
     1320      669,  907,  908,  666,  908,  663,  662,  661,  908,  909,
     1321      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
     1322      909,  909,  910,  660,  910,  911,  911,  659,  911,  911,
     1323      911,  658,  911,  912,  912,  655,  912,  913,  654,  913,
     1324      652,  649,  648,  913,  914,  647,  914,  643,  616,  612,
     1325      914,  915,  610,  915,  608,  606,  604,  915,  916,  598,
     1326
     1327      916,  917,  592,  917,  590,  588,  586,  917,  918,  584,
     1328      918,  919,  582,  580,  919,  578,  919,  919,  919,  919,
     1329      919,  920,  920,  920,  920,  920,  920,  920,  920,  920,
     1330      920,  920,  920,  920,  921,  921,  921,  921,  921,  921,
     1331      921,  921,  921,  921,  921,  921,  921,  922,  577,  922,
     1332      576,  573,  570,  922,  923,  563,  923,  559,  556,  553,
     1333      923,  924,  548,  924,  543,  540,  517,  924,  925,  513,
     1334      925,  926,  511,  926,  509,  507,  505,  926,  927,  503,
     1335      927,  928,  502,  928,  501,  500,  489,  928,  929,  486,
     1336      929,  930,  484,  930,  483,  482,  480,  930,  931,  478,
     1337
     1338      931,  932,  475,  932,  473,  471,  469,  932,  933,  465,
     1339      933,  934,  448,  934,  446,  438,  436,  934,  935,  428,
     1340      935,  936,  426,  936,  424,  398,  396,  936,  937,  394,
     1341      937,  938,  392,  938,  391,  938,  390,  938,  939,  377,
     1342      939,  367,  939,  365,  939,  940,  940,  364,  940,  940,
     1343      940,  360,  940,  941,  358,  941,  356,  354,  350,  941,
     1344      942,  348,  942,  347,  346,  336,  942,  943,  321,  943,
     1345      298,  277,  275,  943,  944,  273,  944,  945,  272,  945,
     1346      271,  269,  268,  945,  946,  263,  946,  947,  259,  947,
     1347      258,  254,  251,  947,  948,  250,  948,  949,  239,  949,
     1348
     1349      238,  231,  230,  949,  950,  227,  950,  951,  217,  215,
     1350      951,  214,  951,  951,  951,  951,  951,  952,  952,  952,
     1351      952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
     1352      953,  213,  953,  207,  206,  204,  953,  954,  199,  954,
     1353      955,  178,  955,  149,  147,  146,  955,  956,  140,  956,
     1354      957,  138,  957,  136,  128,  125,  957,  958,  124,  958,
     1355      959,  120,  959,  101,   98,   95,  959,  960,   93,  960,
     1356      961,   86,  961,   72,   70,   66,  961,  962,   36,  962,
     1357      963,   33,  963,   18,   11,    4,  963,  964,    3,  964,
     1358      965,    0,  965,    0,    0,    0,  965,  966,    0,  966,
     1359
     1360        0,    0,    0,  966,  967,    0,  967,  968,    0,  968,
     1361        0,    0,    0,  968,  969,    0,  969,  970,    0,  970,
     1362        0,  970,    0,  970,  971,    0,  971,    0,    0,    0,
     1363      971,  972,    0,  972,    0,    0,    0,  972,  973,    0,
     1364      973,  974,    0,  974,    0,    0,    0,  974,  975,    0,
     1365      975,  976,    0,  976,    0,    0,    0,  976,  977,    0,
     1366      977,  978,    0,  978,    0,    0,    0,  978,  979,    0,
     1367      979,  980,    0,  980,    0,    0,    0,  980,  981,    0,
     1368      981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
     1369      983,  984,    0,    0,  984,    0,  984,  984,  984,  984,
     1370
     1371      984,  985,  985,  985,  985,  985,  985,  985,  985,  985,
     1372      985,  985,  985,  985,  986,    0,  986,    0,    0,    0,
    13651373      986,  987,    0,  987,  988,    0,  988,    0,    0,    0,
    13661374      988,  989,    0,  989,  990,    0,  990,    0,    0,    0,
    1367       990,  991,    0,  991,    0,    0,    0,  991,  992,    0,
    1368       992,  993,    0,  993,    0,    0,    0,  993,  994,    0,
    1369       994,  995,    0,  995,    0,    0,    0,  995,  996,    0,
    1370       996,  997,    0,  997,    0,    0,    0,  997,  998,    0,
    1371 
    1372       998,  999,    0,  999, 1000,    0, 1000, 1001,    0,    0,
    1373      1001,    0, 1001, 1001, 1001, 1001, 1001, 1002,    0, 1002,
    1374      1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
    1375      1003, 1003, 1003, 1004,    0, 1004,    0,    0,    0, 1004,
    1376      1005,    0, 1005, 1006,    0, 1006,    0,    0,    0, 1006,
    1377      1007,    0, 1007, 1008,    0, 1008, 1009,    0, 1009, 1010,
    1378         0,    0, 1010,    0, 1010, 1010, 1010, 1010, 1010, 1011,
    1379         0, 1011, 1012,    0, 1012, 1013,    0, 1013, 1014,    0,
    1380      1014, 1015,    0, 1015, 1016,    0, 1016, 1017,    0, 1017,
    1381      1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
    1382 
    1383      1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
    1384      1022,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
    1385         0, 1025,    0,    0,    0, 1025, 1026,    0,    0, 1026,
    1386         0, 1026, 1026, 1026, 1026, 1026, 1027,    0, 1027, 1028,
    1387         0, 1028, 1029,    0, 1029, 1030,    0, 1030,    0,    0,
    1388         0, 1030, 1031,    0, 1031,    0,    0,    0, 1031, 1032,
    1389         0, 1032,    0,    0,    0, 1032, 1033,    0, 1033, 1034,
    1390         0, 1034,    0,    0,    0, 1034, 1035,    0, 1035,    0,
    1391         0,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
    1392      1037,    0, 1037,    0,    0,    0, 1037, 1038,    0, 1038,
    1393 
    1394         0,    0,    0, 1038, 1039,    0, 1039,    0,    0,    0,
    1395      1039, 1040,    0, 1040,    0,    0,    0, 1040, 1041,    0,
    1396      1041,    0,    0,    0, 1041, 1042,    0, 1042,    0,    0,
     1375      990,  991,    0,  991,  992,    0,  992,    0,    0,    0,
     1376      992,  993,    0,  993,  994,    0,  994,    0,    0,    0,
     1377      994,  995,    0,  995,  996,    0,  996,    0,    0,    0,
     1378      996,  997,    0,  997,  998,    0,  998,    0,    0,    0,
     1379      998,  999,    0,  999, 1000,    0, 1000,    0,    0,    0,
     1380     1000, 1001,    0, 1001, 1002,    0, 1002,    0,    0,    0,
     1381
     1382     1002, 1003,    0, 1003,    0,    0,    0, 1003, 1004,    0,
     1383     1004, 1005,    0, 1005,    0,    0,    0, 1005, 1006,    0,
     1384     1006, 1007,    0, 1007,    0,    0,    0, 1007, 1008,    0,
     1385     1008, 1009,    0, 1009,    0,    0,    0, 1009, 1010,    0,
     1386     1010, 1011,    0, 1011, 1012,    0, 1012, 1013,    0,    0,
     1387     1013,    0, 1013, 1013, 1013, 1013, 1013, 1014,    0, 1014,
     1388     1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
     1389     1015, 1015, 1015, 1016,    0, 1016,    0,    0,    0, 1016,
     1390     1017,    0, 1017, 1018,    0, 1018,    0,    0,    0, 1018,
     1391     1019,    0, 1019, 1020,    0, 1020, 1021,    0, 1021, 1022,
     1392
     1393        0,    0, 1022,    0, 1022, 1022, 1022, 1022, 1022, 1023,
     1394        0, 1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0,
     1395     1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0, 1029,
     1396     1030,    0, 1030,    0,    0,    0, 1030, 1031,    0, 1031,
     1397     1032,    0, 1032,    0,    0,    0, 1032, 1033,    0, 1033,
     1398     1034,    0, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
     1399        0, 1037,    0,    0,    0, 1037, 1038,    0,    0, 1038,
     1400        0, 1038, 1038, 1038, 1038, 1038, 1039,    0, 1039, 1040,
     1401        0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,    0,
    13971402        0, 1042, 1043,    0, 1043,    0,    0,    0, 1043, 1044,
    1398         0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,    0,
    1399         0,    0, 1045, 1046,    0, 1046,    0,    0,    0, 1046,
    1400      1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
    1401         0,    0,    0, 1048, 1049,    0, 1049,    0,    0,    0,
    1402      1049,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1403       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1404 
    1405       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1406       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1407       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1408       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1409       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1410       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1411       875,  875,  875,  875,  875,  875
     1403
     1404        0, 1044,    0,    0,    0, 1044, 1045,    0, 1045, 1046,
     1405        0, 1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,
     1406        0,    0, 1047, 1048,    0, 1048,    0,    0,    0, 1048,
     1407     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
     1408        0,    0,    0, 1050, 1051,    0, 1051,    0,    0,    0,
     1409     1051, 1052,    0, 1052,    0,    0,    0, 1052, 1053,    0,
     1410     1053,    0,    0,    0, 1053, 1054,    0, 1054,    0,    0,
     1411        0, 1054, 1055,    0, 1055,    0,    0,    0, 1055, 1056,
     1412        0, 1056,    0,    0,    0, 1056, 1057,    0, 1057,    0,
     1413        0,    0, 1057, 1058,    0, 1058,    0,    0,    0, 1058,
     1414
     1415     1059,    0, 1059,    0,    0,    0, 1059, 1060,    0, 1060,
     1416        0,    0,    0, 1060, 1061,    0, 1061,    0,    0,    0,
     1417     1061,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1418      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1419      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1420      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1421      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1422      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1423      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1424      887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
     1425
     1426      887,  887,  887,  887,  887,  887,  887
    14121427    } ;
    14131428
    14141429/* Table of booleans, true if rule could match eol. */
    1415 static yyconst flex_int32_t yy_rule_can_match_eol[180] =
     1430static yyconst flex_int32_t yy_rule_can_match_eol[181] =
    14161431    {   0,
    141714321, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14201435    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14211436    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1422     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
    1423     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1437    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
     1438    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14241439    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14251440    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1426         };
     1441    0,     };
    14271442
    14281443static yy_state_type yy_last_accepting_state;
     
    14521467 * Created On       : Sat Sep 22 08:58:10 2001
    14531468 * Last Modified By : Peter A. Buhr
    1454  * Last Modified On : Tue Feb  2 15:06:54 2016
    1455  * Update Count     : 426
     1469 * Last Modified On : Mon Mar 21 23:33:46 2016
     1470 * Update Count     : 450
    14561471 */
    14571472#line 20 "lex.ll"
     
    14651480
    14661481#include "lex.h"
     1482#include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
    14671483#include "ParseNode.h"
    1468 #include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
     1484#include "TypedefTable.h"
    14691485
    14701486char *yyfilename;
     
    14821498#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    14831499#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
    1484 #define IDENTIFIER_RETURN()     RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) )
     1500#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    14851501#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
    14861502
     
    15021518// attribute identifier, GCC: $ in identifier
    15031519// numeric constants, CFA: '_' in constant
    1504 // GCC: D (double), LD (long double) and iI (imaginary) suffixes
     1520// GCC: D (double), DL (long double) and iI (imaginary) suffixes
     1521//floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    15051522// character escape sequence, GCC: \e => esc character
    15061523// ' stop highlighting
     
    15111528
    15121529
    1513 #line 1514 "Parser/lex.cc"
     1530#line 1531 "Parser/lex.cc"
    15141531
    15151532#define INITIAL 0
     
    17031720        register int yy_act;
    17041721   
    1705 #line 137 "lex.ll"
     1722#line 139 "lex.ll"
    17061723
    17071724                                   /* line directives */
    1708 #line 1709 "Parser/lex.cc"
     1725#line 1726 "Parser/lex.cc"
    17091726
    17101727        if ( !(yy_init) )
     
    17601777                                {
    17611778                                yy_current_state = (int) yy_def[yy_current_state];
    1762                                 if ( yy_current_state >= 876 )
     1779                                if ( yy_current_state >= 888 )
    17631780                                        yy_c = yy_meta[(unsigned int) yy_c];
    17641781                                }
     
    17661783                        ++yy_cp;
    17671784                        }
    1768                 while ( yy_base[yy_current_state] != 2782 );
     1785                while ( yy_base[yy_current_state] != 2822 );
    17691786
    17701787yy_find_action:
     
    18031820/* rule 1 can match eol */
    18041821YY_RULE_SETUP
    1805 #line 139 "lex.ll"
     1822#line 141 "lex.ll"
    18061823{
    18071824        /* " stop highlighting */
     
    18301847/* rule 2 can match eol */
    18311848YY_RULE_SETUP
    1832 #line 162 "lex.ll"
     1849#line 164 "lex.ll"
    18331850;
    18341851        YY_BREAK
     
    18361853case 3:
    18371854YY_RULE_SETUP
    1838 #line 165 "lex.ll"
     1855#line 167 "lex.ll"
    18391856{ BEGIN COMMENT; }
    18401857        YY_BREAK
     
    18421859/* rule 4 can match eol */
    18431860YY_RULE_SETUP
    1844 #line 166 "lex.ll"
     1861#line 168 "lex.ll"
    18451862;
    18461863        YY_BREAK
    18471864case 5:
    18481865YY_RULE_SETUP
    1849 #line 167 "lex.ll"
     1866#line 169 "lex.ll"
    18501867{ BEGIN 0; }
    18511868        YY_BREAK
     
    18541871/* rule 6 can match eol */
    18551872YY_RULE_SETUP
    1856 #line 170 "lex.ll"
     1873#line 172 "lex.ll"
    18571874;
    18581875        YY_BREAK
     
    18601877case 7:
    18611878YY_RULE_SETUP
    1862 #line 173 "lex.ll"
     1879#line 175 "lex.ll"
    18631880{ WHITE_RETURN(' '); }
    18641881        YY_BREAK
    18651882case 8:
    18661883YY_RULE_SETUP
    1867 #line 174 "lex.ll"
     1884#line 176 "lex.ll"
    18681885{ WHITE_RETURN(' '); }
    18691886        YY_BREAK
     
    18711888/* rule 9 can match eol */
    18721889YY_RULE_SETUP
    1873 #line 175 "lex.ll"
     1890#line 177 "lex.ll"
    18741891{ NEWLINE_RETURN(); }
    18751892        YY_BREAK
     
    18771894case 10:
    18781895YY_RULE_SETUP
    1879 #line 178 "lex.ll"
     1896#line 180 "lex.ll"
    18801897{ KEYWORD_RETURN(ALIGNAS); }                    // C11
    18811898        YY_BREAK
    18821899case 11:
    18831900YY_RULE_SETUP
    1884 #line 179 "lex.ll"
     1901#line 181 "lex.ll"
    18851902{ KEYWORD_RETURN(ALIGNOF); }                    // C11
    18861903        YY_BREAK
    18871904case 12:
    18881905YY_RULE_SETUP
    1889 #line 180 "lex.ll"
     1906#line 182 "lex.ll"
    18901907{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    18911908        YY_BREAK
    18921909case 13:
    18931910YY_RULE_SETUP
    1894 #line 181 "lex.ll"
     1911#line 183 "lex.ll"
    18951912{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    18961913        YY_BREAK
    18971914case 14:
    18981915YY_RULE_SETUP
    1899 #line 182 "lex.ll"
     1916#line 184 "lex.ll"
    19001917{ KEYWORD_RETURN(ASM); }
    19011918        YY_BREAK
    19021919case 15:
    19031920YY_RULE_SETUP
    1904 #line 183 "lex.ll"
     1921#line 185 "lex.ll"
    19051922{ KEYWORD_RETURN(ASM); }                                // GCC
    19061923        YY_BREAK
    19071924case 16:
    19081925YY_RULE_SETUP
    1909 #line 184 "lex.ll"
     1926#line 186 "lex.ll"
    19101927{ KEYWORD_RETURN(ASM); }                                // GCC
    19111928        YY_BREAK
    19121929case 17:
    19131930YY_RULE_SETUP
    1914 #line 185 "lex.ll"
     1931#line 187 "lex.ll"
    19151932{ KEYWORD_RETURN(AT); }                                 // CFA
    19161933        YY_BREAK
    19171934case 18:
    19181935YY_RULE_SETUP
    1919 #line 186 "lex.ll"
     1936#line 188 "lex.ll"
    19201937{ KEYWORD_RETURN(ATOMIC); }                             // C11
    19211938        YY_BREAK
    19221939case 19:
    19231940YY_RULE_SETUP
    1924 #line 187 "lex.ll"
     1941#line 189 "lex.ll"
    19251942{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19261943        YY_BREAK
    19271944case 20:
    19281945YY_RULE_SETUP
    1929 #line 188 "lex.ll"
     1946#line 190 "lex.ll"
    19301947{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19311948        YY_BREAK
    19321949case 21:
    19331950YY_RULE_SETUP
    1934 #line 189 "lex.ll"
     1951#line 191 "lex.ll"
    19351952{ KEYWORD_RETURN(AUTO); }
    19361953        YY_BREAK
    19371954case 22:
    19381955YY_RULE_SETUP
    1939 #line 190 "lex.ll"
     1956#line 192 "lex.ll"
    19401957{ KEYWORD_RETURN(BOOL); }                               // C99
    19411958        YY_BREAK
    19421959case 23:
    19431960YY_RULE_SETUP
    1944 #line 191 "lex.ll"
     1961#line 193 "lex.ll"
    19451962{ KEYWORD_RETURN(BREAK); }
    19461963        YY_BREAK
    19471964case 24:
    19481965YY_RULE_SETUP
    1949 #line 192 "lex.ll"
     1966#line 194 "lex.ll"
    19501967{ KEYWORD_RETURN(CASE); }
    19511968        YY_BREAK
    19521969case 25:
    19531970YY_RULE_SETUP
    1954 #line 193 "lex.ll"
     1971#line 195 "lex.ll"
    19551972{ KEYWORD_RETURN(CATCH); }                              // CFA
    19561973        YY_BREAK
    19571974case 26:
    19581975YY_RULE_SETUP
    1959 #line 194 "lex.ll"
     1976#line 196 "lex.ll"
    19601977{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
    19611978        YY_BREAK
    19621979case 27:
    19631980YY_RULE_SETUP
    1964 #line 195 "lex.ll"
     1981#line 197 "lex.ll"
    19651982{ KEYWORD_RETURN(CHAR); }
    19661983        YY_BREAK
    19671984case 28:
    19681985YY_RULE_SETUP
    1969 #line 196 "lex.ll"
     1986#line 198 "lex.ll"
    19701987{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19711988        YY_BREAK
    19721989case 29:
    19731990YY_RULE_SETUP
    1974 #line 197 "lex.ll"
     1991#line 199 "lex.ll"
    19751992{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19761993        YY_BREAK
    19771994case 30:
    19781995YY_RULE_SETUP
    1979 #line 198 "lex.ll"
     1996#line 200 "lex.ll"
    19801997{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19811998        YY_BREAK
    19821999case 31:
    19832000YY_RULE_SETUP
    1984 #line 199 "lex.ll"
     2001#line 201 "lex.ll"
    19852002{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19862003        YY_BREAK
    19872004case 32:
    19882005YY_RULE_SETUP
    1989 #line 200 "lex.ll"
     2006#line 202 "lex.ll"
    19902007{ KEYWORD_RETURN(CONST); }
    19912008        YY_BREAK
    19922009case 33:
    19932010YY_RULE_SETUP
    1994 #line 201 "lex.ll"
     2011#line 203 "lex.ll"
    19952012{ KEYWORD_RETURN(CONST); }                              // GCC
    19962013        YY_BREAK
    19972014case 34:
    19982015YY_RULE_SETUP
    1999 #line 202 "lex.ll"
     2016#line 204 "lex.ll"
    20002017{ KEYWORD_RETURN(CONST); }                              // GCC
    20012018        YY_BREAK
    20022019case 35:
    20032020YY_RULE_SETUP
    2004 #line 203 "lex.ll"
    2005 { KEYWORD_RETURN(CONTEXT); }                    // CFA
     2021#line 205 "lex.ll"
     2022{ KEYWORD_RETURN(CONTINUE); }
    20062023        YY_BREAK
    20072024case 36:
    20082025YY_RULE_SETUP
    2009 #line 204 "lex.ll"
    2010 { KEYWORD_RETURN(CONTINUE); }
     2026#line 206 "lex.ll"
     2027{ KEYWORD_RETURN(DEFAULT); }
    20112028        YY_BREAK
    20122029case 37:
    20132030YY_RULE_SETUP
    2014 #line 205 "lex.ll"
    2015 { KEYWORD_RETURN(DEFAULT); }
     2031#line 207 "lex.ll"
     2032{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20162033        YY_BREAK
    20172034case 38:
    20182035YY_RULE_SETUP
    2019 #line 206 "lex.ll"
    2020 { KEYWORD_RETURN(DISABLE); }                    // CFA
     2036#line 208 "lex.ll"
     2037{ KEYWORD_RETURN(DO); }
    20212038        YY_BREAK
    20222039case 39:
    20232040YY_RULE_SETUP
    2024 #line 207 "lex.ll"
    2025 { KEYWORD_RETURN(DO); }
     2041#line 209 "lex.ll"
     2042{ KEYWORD_RETURN(DOUBLE); }
    20262043        YY_BREAK
    20272044case 40:
    20282045YY_RULE_SETUP
    2029 #line 208 "lex.ll"
    2030 { KEYWORD_RETURN(DOUBLE); }
     2046#line 210 "lex.ll"
     2047{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20312048        YY_BREAK
    20322049case 41:
    20332050YY_RULE_SETUP
    2034 #line 209 "lex.ll"
    2035 { KEYWORD_RETURN(DTYPE); }                              // CFA
     2051#line 211 "lex.ll"
     2052{ KEYWORD_RETURN(ELSE); }
    20362053        YY_BREAK
    20372054case 42:
    20382055YY_RULE_SETUP
    2039 #line 210 "lex.ll"
    2040 { KEYWORD_RETURN(ELSE); }
     2056#line 212 "lex.ll"
     2057{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20412058        YY_BREAK
    20422059case 43:
    20432060YY_RULE_SETUP
    2044 #line 211 "lex.ll"
    2045 { KEYWORD_RETURN(ENABLE); }                             // CFA
     2061#line 213 "lex.ll"
     2062{ KEYWORD_RETURN(ENUM); }
    20462063        YY_BREAK
    20472064case 44:
    20482065YY_RULE_SETUP
    2049 #line 212 "lex.ll"
    2050 { KEYWORD_RETURN(ENUM); }
     2066#line 214 "lex.ll"
     2067{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20512068        YY_BREAK
    20522069case 45:
    20532070YY_RULE_SETUP
    2054 #line 213 "lex.ll"
    2055 { KEYWORD_RETURN(EXTENSION); }                  // GCC
     2071#line 215 "lex.ll"
     2072{ KEYWORD_RETURN(EXTERN); }
    20562073        YY_BREAK
    20572074case 46:
    20582075YY_RULE_SETUP
    2059 #line 214 "lex.ll"
    2060 { KEYWORD_RETURN(EXTERN); }
     2076#line 216 "lex.ll"
     2077{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20612078        YY_BREAK
    20622079case 47:
    20632080YY_RULE_SETUP
    2064 #line 215 "lex.ll"
    2065 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2081#line 217 "lex.ll"
     2082{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20662083        YY_BREAK
    20672084case 48:
    20682085YY_RULE_SETUP
    2069 #line 216 "lex.ll"
    2070 { KEYWORD_RETURN(FINALLY); }                    // CFA
     2086#line 218 "lex.ll"
     2087{ KEYWORD_RETURN(FLOAT); }
    20712088        YY_BREAK
    20722089case 49:
    20732090YY_RULE_SETUP
    2074 #line 217 "lex.ll"
    2075 { KEYWORD_RETURN(FLOAT); }
     2091#line 219 "lex.ll"
     2092{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20762093        YY_BREAK
    20772094case 50:
    20782095YY_RULE_SETUP
    2079 #line 218 "lex.ll"
    2080 { KEYWORD_RETURN(FLOAT); }                              // GCC
     2096#line 220 "lex.ll"
     2097{ KEYWORD_RETURN(FOR); }
    20812098        YY_BREAK
    20822099case 51:
    20832100YY_RULE_SETUP
    2084 #line 219 "lex.ll"
    2085 { KEYWORD_RETURN(FOR); }
     2101#line 221 "lex.ll"
     2102{ KEYWORD_RETURN(FORALL); }                             // CFA
    20862103        YY_BREAK
    20872104case 52:
    20882105YY_RULE_SETUP
    2089 #line 220 "lex.ll"
    2090 { KEYWORD_RETURN(FORALL); }                             // CFA
     2106#line 222 "lex.ll"
     2107{ KEYWORD_RETURN(FORTRAN); }
    20912108        YY_BREAK
    20922109case 53:
    20932110YY_RULE_SETUP
    2094 #line 221 "lex.ll"
    2095 { KEYWORD_RETURN(FORTRAN); }
     2111#line 223 "lex.ll"
     2112{ KEYWORD_RETURN(FTYPE); }                              // CFA
    20962113        YY_BREAK
    20972114case 54:
    20982115YY_RULE_SETUP
    2099 #line 222 "lex.ll"
    2100 { KEYWORD_RETURN(FTYPE); }                              // CFA
     2116#line 224 "lex.ll"
     2117{ KEYWORD_RETURN(GENERIC); }                    // C11
    21012118        YY_BREAK
    21022119case 55:
    21032120YY_RULE_SETUP
    2104 #line 223 "lex.ll"
    2105 { KEYWORD_RETURN(GENERIC); }                    // C11
     2121#line 225 "lex.ll"
     2122{ KEYWORD_RETURN(GOTO); }
    21062123        YY_BREAK
    21072124case 56:
    21082125YY_RULE_SETUP
    2109 #line 224 "lex.ll"
    2110 { KEYWORD_RETURN(GOTO); }
     2126#line 226 "lex.ll"
     2127{ KEYWORD_RETURN(IF); }
    21112128        YY_BREAK
    21122129case 57:
    21132130YY_RULE_SETUP
    2114 #line 225 "lex.ll"
    2115 { KEYWORD_RETURN(IF); }
     2131#line 227 "lex.ll"
     2132{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    21162133        YY_BREAK
    21172134case 58:
    2118 YY_RULE_SETUP
    2119 #line 226 "lex.ll"
    2120 { KEYWORD_RETURN(IMAGINARY); }                  // C99
    2121         YY_BREAK
    2122 case 59:
    2123 YY_RULE_SETUP
    2124 #line 227 "lex.ll"
    2125 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2126         YY_BREAK
    2127 case 60:
    21282135YY_RULE_SETUP
    21292136#line 228 "lex.ll"
    21302137{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21312138        YY_BREAK
     2139case 59:
     2140YY_RULE_SETUP
     2141#line 229 "lex.ll"
     2142{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2143        YY_BREAK
     2144case 60:
     2145YY_RULE_SETUP
     2146#line 230 "lex.ll"
     2147{ KEYWORD_RETURN(INLINE); }                             // C99
     2148        YY_BREAK
    21322149case 61:
    2133 YY_RULE_SETUP
    2134 #line 229 "lex.ll"
    2135 { KEYWORD_RETURN(INLINE); }                             // C99
    2136         YY_BREAK
    2137 case 62:
    2138 YY_RULE_SETUP
    2139 #line 230 "lex.ll"
    2140 { KEYWORD_RETURN(INLINE); }                             // GCC
    2141         YY_BREAK
    2142 case 63:
    21432150YY_RULE_SETUP
    21442151#line 231 "lex.ll"
    21452152{ KEYWORD_RETURN(INLINE); }                             // GCC
    21462153        YY_BREAK
     2154case 62:
     2155YY_RULE_SETUP
     2156#line 232 "lex.ll"
     2157{ KEYWORD_RETURN(INLINE); }                             // GCC
     2158        YY_BREAK
     2159case 63:
     2160YY_RULE_SETUP
     2161#line 233 "lex.ll"
     2162{ KEYWORD_RETURN(INT); }
     2163        YY_BREAK
    21472164case 64:
    21482165YY_RULE_SETUP
    2149 #line 232 "lex.ll"
    2150 { KEYWORD_RETURN(INT); }
     2166#line 234 "lex.ll"
     2167{ KEYWORD_RETURN(INT); }                                // GCC
    21512168        YY_BREAK
    21522169case 65:
    21532170YY_RULE_SETUP
    2154 #line 233 "lex.ll"
    2155 { KEYWORD_RETURN(INT); }                                // GCC
     2171#line 235 "lex.ll"
     2172{ KEYWORD_RETURN(LABEL); }                              // GCC
    21562173        YY_BREAK
    21572174case 66:
    21582175YY_RULE_SETUP
    2159 #line 234 "lex.ll"
    2160 { KEYWORD_RETURN(LABEL); }                              // GCC
     2176#line 236 "lex.ll"
     2177{ KEYWORD_RETURN(LONG); }
    21612178        YY_BREAK
    21622179case 67:
    21632180YY_RULE_SETUP
    2164 #line 235 "lex.ll"
    2165 { KEYWORD_RETURN(LONG); }
     2181#line 237 "lex.ll"
     2182{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21662183        YY_BREAK
    21672184case 68:
    21682185YY_RULE_SETUP
    2169 #line 236 "lex.ll"
    2170 { KEYWORD_RETURN(LVALUE); }                             // CFA
     2186#line 238 "lex.ll"
     2187{ KEYWORD_RETURN(NORETURN); }                   // C11
    21712188        YY_BREAK
    21722189case 69:
    21732190YY_RULE_SETUP
    2174 #line 237 "lex.ll"
    2175 { KEYWORD_RETURN(NORETURN); }                   // C11
     2191#line 239 "lex.ll"
     2192{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    21762193        YY_BREAK
    21772194case 70:
    21782195YY_RULE_SETUP
    2179 #line 238 "lex.ll"
    2180 { KEYWORD_RETURN(OFFSETOF); }           // GCC
     2196#line 240 "lex.ll"
     2197{ KEYWORD_RETURN(OTYPE); }                              // CFA
    21812198        YY_BREAK
    21822199case 71:
    21832200YY_RULE_SETUP
    2184 #line 239 "lex.ll"
     2201#line 241 "lex.ll"
    21852202{ KEYWORD_RETURN(REGISTER); }
    21862203        YY_BREAK
    21872204case 72:
    21882205YY_RULE_SETUP
    2189 #line 240 "lex.ll"
     2206#line 242 "lex.ll"
    21902207{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21912208        YY_BREAK
    21922209case 73:
    21932210YY_RULE_SETUP
    2194 #line 241 "lex.ll"
     2211#line 243 "lex.ll"
    21952212{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21962213        YY_BREAK
    21972214case 74:
    21982215YY_RULE_SETUP
    2199 #line 242 "lex.ll"
     2216#line 244 "lex.ll"
    22002217{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22012218        YY_BREAK
    22022219case 75:
    22032220YY_RULE_SETUP
    2204 #line 243 "lex.ll"
     2221#line 245 "lex.ll"
    22052222{ KEYWORD_RETURN(RETURN); }
    22062223        YY_BREAK
    22072224case 76:
    22082225YY_RULE_SETUP
    2209 #line 244 "lex.ll"
     2226#line 246 "lex.ll"
    22102227{ KEYWORD_RETURN(SHORT); }
    22112228        YY_BREAK
    22122229case 77:
    22132230YY_RULE_SETUP
    2214 #line 245 "lex.ll"
     2231#line 247 "lex.ll"
    22152232{ KEYWORD_RETURN(SIGNED); }
    22162233        YY_BREAK
    22172234case 78:
    22182235YY_RULE_SETUP
    2219 #line 246 "lex.ll"
     2236#line 248 "lex.ll"
    22202237{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22212238        YY_BREAK
    22222239case 79:
    22232240YY_RULE_SETUP
    2224 #line 247 "lex.ll"
     2241#line 249 "lex.ll"
    22252242{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22262243        YY_BREAK
    22272244case 80:
    22282245YY_RULE_SETUP
    2229 #line 248 "lex.ll"
     2246#line 250 "lex.ll"
    22302247{ KEYWORD_RETURN(SIZEOF); }
    22312248        YY_BREAK
    22322249case 81:
    22332250YY_RULE_SETUP
    2234 #line 249 "lex.ll"
     2251#line 251 "lex.ll"
    22352252{ KEYWORD_RETURN(STATIC); }
    22362253        YY_BREAK
    22372254case 82:
    22382255YY_RULE_SETUP
    2239 #line 250 "lex.ll"
     2256#line 252 "lex.ll"
    22402257{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22412258        YY_BREAK
    22422259case 83:
    22432260YY_RULE_SETUP
    2244 #line 251 "lex.ll"
     2261#line 253 "lex.ll"
    22452262{ KEYWORD_RETURN(STRUCT); }
    22462263        YY_BREAK
    22472264case 84:
    22482265YY_RULE_SETUP
    2249 #line 252 "lex.ll"
     2266#line 254 "lex.ll"
    22502267{ KEYWORD_RETURN(SWITCH); }
    22512268        YY_BREAK
    22522269case 85:
    22532270YY_RULE_SETUP
    2254 #line 253 "lex.ll"
     2271#line 255 "lex.ll"
    22552272{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22562273        YY_BREAK
    22572274case 86:
    22582275YY_RULE_SETUP
    2259 #line 254 "lex.ll"
     2276#line 256 "lex.ll"
    22602277{ KEYWORD_RETURN(THROW); }                              // CFA
    22612278        YY_BREAK
    22622279case 87:
    22632280YY_RULE_SETUP
    2264 #line 255 "lex.ll"
     2281#line 257 "lex.ll"
    22652282{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22662283        YY_BREAK
    22672284case 88:
    22682285YY_RULE_SETUP
    2269 #line 256 "lex.ll"
     2286#line 258 "lex.ll"
     2287{ KEYWORD_RETURN(TRAIT); }                              // CFA
     2288        YY_BREAK
     2289case 89:
     2290YY_RULE_SETUP
     2291#line 259 "lex.ll"
    22702292{ KEYWORD_RETURN(TRY); }                                // CFA
    22712293        YY_BREAK
    2272 case 89:
    2273 YY_RULE_SETUP
    2274 #line 257 "lex.ll"
    2275 { KEYWORD_RETURN(TYPE); }                               // CFA
    2276         YY_BREAK
    22772294case 90:
    22782295YY_RULE_SETUP
    2279 #line 258 "lex.ll"
     2296#line 260 "lex.ll"
    22802297{ KEYWORD_RETURN(TYPEDEF); }
    22812298        YY_BREAK
    22822299case 91:
    2283 YY_RULE_SETUP
    2284 #line 259 "lex.ll"
    2285 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2286         YY_BREAK
    2287 case 92:
    2288 YY_RULE_SETUP
    2289 #line 260 "lex.ll"
    2290 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2291         YY_BREAK
    2292 case 93:
    22932300YY_RULE_SETUP
    22942301#line 261 "lex.ll"
    22952302{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22962303        YY_BREAK
     2304case 92:
     2305YY_RULE_SETUP
     2306#line 262 "lex.ll"
     2307{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2308        YY_BREAK
     2309case 93:
     2310YY_RULE_SETUP
     2311#line 263 "lex.ll"
     2312{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2313        YY_BREAK
    22972314case 94:
    22982315YY_RULE_SETUP
    2299 #line 262 "lex.ll"
     2316#line 264 "lex.ll"
    23002317{ KEYWORD_RETURN(UNION); }
    23012318        YY_BREAK
    23022319case 95:
    23032320YY_RULE_SETUP
    2304 #line 263 "lex.ll"
     2321#line 265 "lex.ll"
    23052322{ KEYWORD_RETURN(UNSIGNED); }
    23062323        YY_BREAK
    23072324case 96:
    23082325YY_RULE_SETUP
    2309 #line 264 "lex.ll"
     2326#line 266 "lex.ll"
     2327{ KEYWORD_RETURN(VALIST); }                     // GCC
     2328        YY_BREAK
     2329case 97:
     2330YY_RULE_SETUP
     2331#line 267 "lex.ll"
    23102332{ KEYWORD_RETURN(VOID); }
    23112333        YY_BREAK
    2312 case 97:
    2313 YY_RULE_SETUP
    2314 #line 265 "lex.ll"
     2334case 98:
     2335YY_RULE_SETUP
     2336#line 268 "lex.ll"
    23152337{ KEYWORD_RETURN(VOLATILE); }
    23162338        YY_BREAK
    2317 case 98:
    2318 YY_RULE_SETUP
    2319 #line 266 "lex.ll"
     2339case 99:
     2340YY_RULE_SETUP
     2341#line 269 "lex.ll"
    23202342{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23212343        YY_BREAK
    2322 case 99:
    2323 YY_RULE_SETUP
    2324 #line 267 "lex.ll"
     2344case 100:
     2345YY_RULE_SETUP
     2346#line 270 "lex.ll"
    23252347{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23262348        YY_BREAK
    2327 case 100:
    2328 YY_RULE_SETUP
    2329 #line 268 "lex.ll"
     2349case 101:
     2350YY_RULE_SETUP
     2351#line 271 "lex.ll"
    23302352{ KEYWORD_RETURN(WHILE); }
    23312353        YY_BREAK
    23322354/* identifier */
    2333 case 101:
    2334 YY_RULE_SETUP
    2335 #line 271 "lex.ll"
    2336 { IDENTIFIER_RETURN(); }
    2337         YY_BREAK
    23382355case 102:
    2339 YY_RULE_SETUP
    2340 #line 272 "lex.ll"
    2341 { ATTRIBUTE_RETURN(); }
    2342         YY_BREAK
    2343 case 103:
    2344 YY_RULE_SETUP
    2345 #line 273 "lex.ll"
    2346 { BEGIN BKQUOTE; }
    2347         YY_BREAK
    2348 case 104:
    23492356YY_RULE_SETUP
    23502357#line 274 "lex.ll"
    23512358{ IDENTIFIER_RETURN(); }
    23522359        YY_BREAK
     2360case 103:
     2361YY_RULE_SETUP
     2362#line 275 "lex.ll"
     2363{ ATTRIBUTE_RETURN(); }
     2364        YY_BREAK
     2365case 104:
     2366YY_RULE_SETUP
     2367#line 276 "lex.ll"
     2368{ BEGIN BKQUOTE; }
     2369        YY_BREAK
    23532370case 105:
    23542371YY_RULE_SETUP
    2355 #line 275 "lex.ll"
     2372#line 277 "lex.ll"
     2373{ IDENTIFIER_RETURN(); }
     2374        YY_BREAK
     2375case 106:
     2376YY_RULE_SETUP
     2377#line 278 "lex.ll"
    23562378{ BEGIN 0; }
    23572379        YY_BREAK
    23582380/* numeric constants */
    2359 case 106:
    2360 YY_RULE_SETUP
    2361 #line 278 "lex.ll"
     2381case 107:
     2382YY_RULE_SETUP
     2383#line 281 "lex.ll"
    23622384{ NUMERIC_RETURN(ZERO); }                               // CFA
    23632385        YY_BREAK
    2364 case 107:
    2365 YY_RULE_SETUP
    2366 #line 279 "lex.ll"
     2386case 108:
     2387YY_RULE_SETUP
     2388#line 282 "lex.ll"
    23672389{ NUMERIC_RETURN(ONE); }                                // CFA
    23682390        YY_BREAK
    2369 case 108:
    2370 YY_RULE_SETUP
    2371 #line 280 "lex.ll"
     2391case 109:
     2392YY_RULE_SETUP
     2393#line 283 "lex.ll"
    23722394{ NUMERIC_RETURN(INTEGERconstant); }
    23732395        YY_BREAK
    2374 case 109:
    2375 YY_RULE_SETUP
    2376 #line 281 "lex.ll"
     2396case 110:
     2397YY_RULE_SETUP
     2398#line 284 "lex.ll"
    23772399{ NUMERIC_RETURN(INTEGERconstant); }
    23782400        YY_BREAK
    2379 case 110:
    2380 YY_RULE_SETUP
    2381 #line 282 "lex.ll"
     2401case 111:
     2402YY_RULE_SETUP
     2403#line 285 "lex.ll"
    23822404{ NUMERIC_RETURN(INTEGERconstant); }
    23832405        YY_BREAK
    2384 case 111:
    2385 YY_RULE_SETUP
    2386 #line 283 "lex.ll"
     2406case 112:
     2407YY_RULE_SETUP
     2408#line 286 "lex.ll"
    23872409{ NUMERIC_RETURN(FLOATINGconstant); }
    23882410        YY_BREAK
    2389 case 112:
    2390 YY_RULE_SETUP
    2391 #line 284 "lex.ll"
     2411case 113:
     2412YY_RULE_SETUP
     2413#line 287 "lex.ll"
    23922414{ NUMERIC_RETURN(FLOATINGconstant); }
    23932415        YY_BREAK
    23942416/* character constant, allows empty value */
    2395 case 113:
    2396 YY_RULE_SETUP
    2397 #line 287 "lex.ll"
     2417case 114:
     2418YY_RULE_SETUP
     2419#line 290 "lex.ll"
    23982420{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23992421        YY_BREAK
    2400 case 114:
    2401 YY_RULE_SETUP
    2402 #line 288 "lex.ll"
     2422case 115:
     2423YY_RULE_SETUP
     2424#line 291 "lex.ll"
    24032425{ *strtext += std::string( yytext ); }
    24042426        YY_BREAK
    2405 case 115:
    2406 /* rule 115 can match eol */
    2407 YY_RULE_SETUP
    2408 #line 289 "lex.ll"
     2427case 116:
     2428/* rule 116 can match eol */
     2429YY_RULE_SETUP
     2430#line 292 "lex.ll"
    24092431{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24102432        YY_BREAK
    24112433/* ' stop highlighting */
    24122434/* string constant */
    2413 case 116:
    2414 YY_RULE_SETUP
    2415 #line 293 "lex.ll"
     2435case 117:
     2436YY_RULE_SETUP
     2437#line 296 "lex.ll"
    24162438{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    24172439        YY_BREAK
    2418 case 117:
    2419 YY_RULE_SETUP
    2420 #line 294 "lex.ll"
     2440case 118:
     2441YY_RULE_SETUP
     2442#line 297 "lex.ll"
    24212443{ *strtext += std::string( yytext ); }
    24222444        YY_BREAK
    2423 case 118:
    2424 /* rule 118 can match eol */
    2425 YY_RULE_SETUP
    2426 #line 295 "lex.ll"
     2445case 119:
     2446/* rule 119 can match eol */
     2447YY_RULE_SETUP
     2448#line 298 "lex.ll"
    24272449{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24282450        YY_BREAK
    24292451/* " stop highlighting */
    24302452/* common character/string constant */
    2431 case 119:
    2432 YY_RULE_SETUP
    2433 #line 299 "lex.ll"
     2453case 120:
     2454YY_RULE_SETUP
     2455#line 302 "lex.ll"
    24342456{ rm_underscore(); *strtext += std::string( yytext ); }
    24352457        YY_BREAK
    2436 case 120:
    2437 /* rule 120 can match eol */
    2438 YY_RULE_SETUP
    2439 #line 300 "lex.ll"
     2458case 121:
     2459/* rule 121 can match eol */
     2460YY_RULE_SETUP
     2461#line 303 "lex.ll"
    24402462{}                                              // continuation (ALSO HANDLED BY CPP)
    24412463        YY_BREAK
    2442 case 121:
    2443 YY_RULE_SETUP
    2444 #line 301 "lex.ll"
     2464case 122:
     2465YY_RULE_SETUP
     2466#line 304 "lex.ll"
    24452467{ *strtext += std::string( yytext ); } // unknown escape character
    24462468        YY_BREAK
    24472469/* punctuation */
    2448 case 122:
    2449 YY_RULE_SETUP
    2450 #line 304 "lex.ll"
    2451 { ASCIIOP_RETURN(); }
    2452         YY_BREAK
    24532470case 123:
    2454 YY_RULE_SETUP
    2455 #line 305 "lex.ll"
    2456 { ASCIIOP_RETURN(); }
    2457         YY_BREAK
    2458 case 124:
    2459 YY_RULE_SETUP
    2460 #line 306 "lex.ll"
    2461 { ASCIIOP_RETURN(); }
    2462         YY_BREAK
    2463 case 125:
    24642471YY_RULE_SETUP
    24652472#line 307 "lex.ll"
    24662473{ ASCIIOP_RETURN(); }
    24672474        YY_BREAK
    2468 case 126:
     2475case 124:
    24692476YY_RULE_SETUP
    24702477#line 308 "lex.ll"
    24712478{ ASCIIOP_RETURN(); }
    24722479        YY_BREAK
    2473 case 127:
     2480case 125:
    24742481YY_RULE_SETUP
    24752482#line 309 "lex.ll"
    24762483{ ASCIIOP_RETURN(); }
    24772484        YY_BREAK
    2478 case 128:
     2485case 126:
    24792486YY_RULE_SETUP
    24802487#line 310 "lex.ll"
    2481 { ASCIIOP_RETURN(); }                                   // also operator
    2482         YY_BREAK
    2483 case 129:
     2488{ ASCIIOP_RETURN(); }
     2489        YY_BREAK
     2490case 127:
    24842491YY_RULE_SETUP
    24852492#line 311 "lex.ll"
    24862493{ ASCIIOP_RETURN(); }
    24872494        YY_BREAK
    2488 case 130:
     2495case 128:
    24892496YY_RULE_SETUP
    24902497#line 312 "lex.ll"
    24912498{ ASCIIOP_RETURN(); }
    24922499        YY_BREAK
    2493 case 131:
     2500case 129:
    24942501YY_RULE_SETUP
    24952502#line 313 "lex.ll"
    24962503{ ASCIIOP_RETURN(); }                                   // also operator
    24972504        YY_BREAK
     2505case 130:
     2506YY_RULE_SETUP
     2507#line 314 "lex.ll"
     2508{ ASCIIOP_RETURN(); }
     2509        YY_BREAK
     2510case 131:
     2511YY_RULE_SETUP
     2512#line 315 "lex.ll"
     2513{ ASCIIOP_RETURN(); }
     2514        YY_BREAK
    24982515case 132:
    24992516YY_RULE_SETUP
    2500 #line 314 "lex.ll"
     2517#line 316 "lex.ll"
     2518{ ASCIIOP_RETURN(); }                                   // also operator
     2519        YY_BREAK
     2520case 133:
     2521YY_RULE_SETUP
     2522#line 317 "lex.ll"
    25012523{ NAMEDOP_RETURN(ELLIPSIS); }
    25022524        YY_BREAK
    25032525/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2504 case 133:
    2505 YY_RULE_SETUP
    2506 #line 317 "lex.ll"
     2526case 134:
     2527YY_RULE_SETUP
     2528#line 320 "lex.ll"
    25072529{ RETURN_VAL('['); }
    25082530        YY_BREAK
    2509 case 134:
    2510 YY_RULE_SETUP
    2511 #line 318 "lex.ll"
     2531case 135:
     2532YY_RULE_SETUP
     2533#line 321 "lex.ll"
    25122534{ RETURN_VAL(']'); }
    25132535        YY_BREAK
    2514 case 135:
    2515 YY_RULE_SETUP
    2516 #line 319 "lex.ll"
     2536case 136:
     2537YY_RULE_SETUP
     2538#line 322 "lex.ll"
    25172539{ RETURN_VAL('{'); }
    25182540        YY_BREAK
    2519 case 136:
    2520 YY_RULE_SETUP
    2521 #line 320 "lex.ll"
     2541case 137:
     2542YY_RULE_SETUP
     2543#line 323 "lex.ll"
    25222544{ RETURN_VAL('}'); }
    25232545        YY_BREAK
    25242546/* operators */
    2525 case 137:
    2526 YY_RULE_SETUP
    2527 #line 323 "lex.ll"
    2528 { ASCIIOP_RETURN(); }
    2529         YY_BREAK
    25302547case 138:
    2531 YY_RULE_SETUP
    2532 #line 324 "lex.ll"
    2533 { ASCIIOP_RETURN(); }
    2534         YY_BREAK
    2535 case 139:
    2536 YY_RULE_SETUP
    2537 #line 325 "lex.ll"
    2538 { ASCIIOP_RETURN(); }
    2539         YY_BREAK
    2540 case 140:
    25412548YY_RULE_SETUP
    25422549#line 326 "lex.ll"
    25432550{ ASCIIOP_RETURN(); }
    25442551        YY_BREAK
    2545 case 141:
     2552case 139:
    25462553YY_RULE_SETUP
    25472554#line 327 "lex.ll"
    25482555{ ASCIIOP_RETURN(); }
    25492556        YY_BREAK
    2550 case 142:
     2557case 140:
    25512558YY_RULE_SETUP
    25522559#line 328 "lex.ll"
    25532560{ ASCIIOP_RETURN(); }
    25542561        YY_BREAK
    2555 case 143:
     2562case 141:
    25562563YY_RULE_SETUP
    25572564#line 329 "lex.ll"
    25582565{ ASCIIOP_RETURN(); }
    25592566        YY_BREAK
    2560 case 144:
     2567case 142:
    25612568YY_RULE_SETUP
    25622569#line 330 "lex.ll"
    25632570{ ASCIIOP_RETURN(); }
    25642571        YY_BREAK
    2565 case 145:
     2572case 143:
    25662573YY_RULE_SETUP
    25672574#line 331 "lex.ll"
    25682575{ ASCIIOP_RETURN(); }
    25692576        YY_BREAK
    2570 case 146:
     2577case 144:
    25712578YY_RULE_SETUP
    25722579#line 332 "lex.ll"
    25732580{ ASCIIOP_RETURN(); }
    25742581        YY_BREAK
    2575 case 147:
     2582case 145:
    25762583YY_RULE_SETUP
    25772584#line 333 "lex.ll"
    25782585{ ASCIIOP_RETURN(); }
    25792586        YY_BREAK
    2580 case 148:
     2587case 146:
    25812588YY_RULE_SETUP
    25822589#line 334 "lex.ll"
    25832590{ ASCIIOP_RETURN(); }
    25842591        YY_BREAK
    2585 case 149:
     2592case 147:
    25862593YY_RULE_SETUP
    25872594#line 335 "lex.ll"
    25882595{ ASCIIOP_RETURN(); }
    25892596        YY_BREAK
    2590 case 150:
     2597case 148:
    25912598YY_RULE_SETUP
    25922599#line 336 "lex.ll"
    25932600{ ASCIIOP_RETURN(); }
    25942601        YY_BREAK
     2602case 149:
     2603YY_RULE_SETUP
     2604#line 337 "lex.ll"
     2605{ ASCIIOP_RETURN(); }
     2606        YY_BREAK
     2607case 150:
     2608YY_RULE_SETUP
     2609#line 338 "lex.ll"
     2610{ ASCIIOP_RETURN(); }
     2611        YY_BREAK
    25952612case 151:
    25962613YY_RULE_SETUP
    2597 #line 338 "lex.ll"
     2614#line 339 "lex.ll"
     2615{ ASCIIOP_RETURN(); }
     2616        YY_BREAK
     2617case 152:
     2618YY_RULE_SETUP
     2619#line 341 "lex.ll"
    25982620{ NAMEDOP_RETURN(ICR); }
    25992621        YY_BREAK
    2600 case 152:
    2601 YY_RULE_SETUP
    2602 #line 339 "lex.ll"
     2622case 153:
     2623YY_RULE_SETUP
     2624#line 342 "lex.ll"
    26032625{ NAMEDOP_RETURN(DECR); }
    26042626        YY_BREAK
    2605 case 153:
    2606 YY_RULE_SETUP
    2607 #line 340 "lex.ll"
     2627case 154:
     2628YY_RULE_SETUP
     2629#line 343 "lex.ll"
    26082630{ NAMEDOP_RETURN(EQ); }
    26092631        YY_BREAK
    2610 case 154:
    2611 YY_RULE_SETUP
    2612 #line 341 "lex.ll"
     2632case 155:
     2633YY_RULE_SETUP
     2634#line 344 "lex.ll"
    26132635{ NAMEDOP_RETURN(NE); }
    26142636        YY_BREAK
    2615 case 155:
    2616 YY_RULE_SETUP
    2617 #line 342 "lex.ll"
     2637case 156:
     2638YY_RULE_SETUP
     2639#line 345 "lex.ll"
    26182640{ NAMEDOP_RETURN(LS); }
    26192641        YY_BREAK
    2620 case 156:
    2621 YY_RULE_SETUP
    2622 #line 343 "lex.ll"
     2642case 157:
     2643YY_RULE_SETUP
     2644#line 346 "lex.ll"
    26232645{ NAMEDOP_RETURN(RS); }
    26242646        YY_BREAK
    2625 case 157:
    2626 YY_RULE_SETUP
    2627 #line 344 "lex.ll"
     2647case 158:
     2648YY_RULE_SETUP
     2649#line 347 "lex.ll"
    26282650{ NAMEDOP_RETURN(LE); }
    26292651        YY_BREAK
    2630 case 158:
    2631 YY_RULE_SETUP
    2632 #line 345 "lex.ll"
     2652case 159:
     2653YY_RULE_SETUP
     2654#line 348 "lex.ll"
    26332655{ NAMEDOP_RETURN(GE); }
    26342656        YY_BREAK
    2635 case 159:
    2636 YY_RULE_SETUP
    2637 #line 346 "lex.ll"
     2657case 160:
     2658YY_RULE_SETUP
     2659#line 349 "lex.ll"
    26382660{ NAMEDOP_RETURN(ANDAND); }
    26392661        YY_BREAK
    2640 case 160:
    2641 YY_RULE_SETUP
    2642 #line 347 "lex.ll"
     2662case 161:
     2663YY_RULE_SETUP
     2664#line 350 "lex.ll"
    26432665{ NAMEDOP_RETURN(OROR); }
    26442666        YY_BREAK
    2645 case 161:
    2646 YY_RULE_SETUP
    2647 #line 348 "lex.ll"
     2667case 162:
     2668YY_RULE_SETUP
     2669#line 351 "lex.ll"
    26482670{ NAMEDOP_RETURN(ARROW); }
    26492671        YY_BREAK
    2650 case 162:
    2651 YY_RULE_SETUP
    2652 #line 349 "lex.ll"
     2672case 163:
     2673YY_RULE_SETUP
     2674#line 352 "lex.ll"
    26532675{ NAMEDOP_RETURN(PLUSassign); }
    26542676        YY_BREAK
    2655 case 163:
    2656 YY_RULE_SETUP
    2657 #line 350 "lex.ll"
     2677case 164:
     2678YY_RULE_SETUP
     2679#line 353 "lex.ll"
    26582680{ NAMEDOP_RETURN(MINUSassign); }
    26592681        YY_BREAK
    2660 case 164:
    2661 YY_RULE_SETUP
    2662 #line 351 "lex.ll"
     2682case 165:
     2683YY_RULE_SETUP
     2684#line 354 "lex.ll"
    26632685{ NAMEDOP_RETURN(MULTassign); }
    26642686        YY_BREAK
    2665 case 165:
    2666 YY_RULE_SETUP
    2667 #line 352 "lex.ll"
     2687case 166:
     2688YY_RULE_SETUP
     2689#line 355 "lex.ll"
    26682690{ NAMEDOP_RETURN(DIVassign); }
    26692691        YY_BREAK
    2670 case 166:
    2671 YY_RULE_SETUP
    2672 #line 353 "lex.ll"
     2692case 167:
     2693YY_RULE_SETUP
     2694#line 356 "lex.ll"
    26732695{ NAMEDOP_RETURN(MODassign); }
    26742696        YY_BREAK
    2675 case 167:
    2676 YY_RULE_SETUP
    2677 #line 354 "lex.ll"
     2697case 168:
     2698YY_RULE_SETUP
     2699#line 357 "lex.ll"
    26782700{ NAMEDOP_RETURN(ANDassign); }
    26792701        YY_BREAK
    2680 case 168:
    2681 YY_RULE_SETUP
    2682 #line 355 "lex.ll"
     2702case 169:
     2703YY_RULE_SETUP
     2704#line 358 "lex.ll"
    26832705{ NAMEDOP_RETURN(ORassign); }
    26842706        YY_BREAK
    2685 case 169:
    2686 YY_RULE_SETUP
    2687 #line 356 "lex.ll"
     2707case 170:
     2708YY_RULE_SETUP
     2709#line 359 "lex.ll"
    26882710{ NAMEDOP_RETURN(ERassign); }
    26892711        YY_BREAK
    2690 case 170:
    2691 YY_RULE_SETUP
    2692 #line 357 "lex.ll"
     2712case 171:
     2713YY_RULE_SETUP
     2714#line 360 "lex.ll"
    26932715{ NAMEDOP_RETURN(LSassign); }
    26942716        YY_BREAK
    2695 case 171:
    2696 YY_RULE_SETUP
    2697 #line 358 "lex.ll"
     2717case 172:
     2718YY_RULE_SETUP
     2719#line 361 "lex.ll"
    26982720{ NAMEDOP_RETURN(RSassign); }
    26992721        YY_BREAK
    2700 case 172:
    2701 YY_RULE_SETUP
    2702 #line 360 "lex.ll"
     2722case 173:
     2723YY_RULE_SETUP
     2724#line 363 "lex.ll"
    27032725{ NAMEDOP_RETURN(ATassign); }
    27042726        YY_BREAK
    27052727/* CFA, operator identifier */
    2706 case 173:
    2707 YY_RULE_SETUP
    2708 #line 363 "lex.ll"
     2728case 174:
     2729YY_RULE_SETUP
     2730#line 366 "lex.ll"
    27092731{ IDENTIFIER_RETURN(); }                                // unary
    27102732        YY_BREAK
    2711 case 174:
    2712 YY_RULE_SETUP
    2713 #line 364 "lex.ll"
     2733case 175:
     2734YY_RULE_SETUP
     2735#line 367 "lex.ll"
    27142736{ IDENTIFIER_RETURN(); }
    27152737        YY_BREAK
    2716 case 175:
    2717 YY_RULE_SETUP
    2718 #line 365 "lex.ll"
     2738case 176:
     2739YY_RULE_SETUP
     2740#line 368 "lex.ll"
    27192741{ IDENTIFIER_RETURN(); }
    27202742        YY_BREAK
    2721 case 176:
    2722 YY_RULE_SETUP
    2723 #line 366 "lex.ll"
     2743case 177:
     2744YY_RULE_SETUP
     2745#line 369 "lex.ll"
    27242746{ IDENTIFIER_RETURN(); }                // binary
    27252747        YY_BREAK
     
    27502772          an argument list.
    27512773        */
    2752 case 177:
    2753 YY_RULE_SETUP
    2754 #line 393 "lex.ll"
     2774case 178:
     2775YY_RULE_SETUP
     2776#line 396 "lex.ll"
    27552777{
    27562778        // 1 or 2 character unary operator ?
     
    27652787        YY_BREAK
    27662788/* unknown characters */
    2767 case 178:
    2768 YY_RULE_SETUP
    2769 #line 405 "lex.ll"
     2789case 179:
     2790YY_RULE_SETUP
     2791#line 408 "lex.ll"
    27702792{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27712793        YY_BREAK
    2772 case 179:
    2773 YY_RULE_SETUP
    2774 #line 407 "lex.ll"
     2794case 180:
     2795YY_RULE_SETUP
     2796#line 410 "lex.ll"
    27752797ECHO;
    27762798        YY_BREAK
    2777 #line 2778 "Parser/lex.cc"
     2799#line 2800 "Parser/lex.cc"
    27782800case YY_STATE_EOF(INITIAL):
    27792801case YY_STATE_EOF(COMMENT):
     
    30723094                        {
    30733095                        yy_current_state = (int) yy_def[yy_current_state];
    3074                         if ( yy_current_state >= 876 )
     3096                        if ( yy_current_state >= 888 )
    30753097                                yy_c = yy_meta[(unsigned int) yy_c];
    30763098                        }
     
    31003122                {
    31013123                yy_current_state = (int) yy_def[yy_current_state];
    3102                 if ( yy_current_state >= 876 )
     3124                if ( yy_current_state >= 888 )
    31033125                        yy_c = yy_meta[(unsigned int) yy_c];
    31043126                }
    31053127        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3106         yy_is_jam = (yy_current_state == 875);
     3128        yy_is_jam = (yy_current_state == 887);
    31073129
    31083130        return yy_is_jam ? 0 : yy_current_state;
     
    37503772#define YYTABLES_NAME "yytables"
    37513773
    3752 #line 407 "lex.ll"
     3774#line 410 "lex.ll"
    37533775
    37543776
  • src/Parser/lex.h

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  8 20:28:48 2015
    13 // Update Count     : 341
     12// Last Modified On : Mon Mar 21 18:18:06 2016
     13// Update Count     : 346
    1414//
    1515
     
    2020void yyerror( const char * );
    2121
     22#include <string>
     23#include "ParseNode.h"
    2224// External declarations for information sharing between lexer and scanner
    23 #include "TypedefTable.h"
     25class TypedefTable;
    2426extern TypedefTable typedefTable;
    2527
  • src/Parser/lex.ll

    rc5833e8 r0f9e4403  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue Feb  2 15:06:54 2016
    13  * Update Count     : 426
     12 * Last Modified On : Mon Mar 21 23:33:46 2016
     13 * Update Count     : 450
    1414 */
    1515
     
    2727
    2828#include "lex.h"
     29#include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
    2930#include "ParseNode.h"
    30 #include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
     31#include "TypedefTable.h"
    3132
    3233char *yyfilename;
     
    4445#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    4546#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
    46 #define IDENTIFIER_RETURN()     RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) )
     47#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    4748#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
    4849
     
    9596fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
    9697exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    97                                 // GCC: D (double), LD (long double) and iI (imaginary) suffixes
    98 floating_suffix "_"?([fFdD]?|([lL]?)|([iI][lLfFdD]?)|([lLfFdD][iI]))
     98                                // GCC: D (double), DL (long double) and iI (imaginary) suffixes
     99floating_suffix "_"?([fFdDlL][iI]?|"DL"|[iI][lLfFdD]?)
     100                                //floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    99101floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    100102
     
    137139%%
    138140                                   /* line directives */
    139 ^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["][^\n]*"\n" {
     141^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" {
    140142        /* " stop highlighting */
    141143        char *end_num;
     
    201203__const                 { KEYWORD_RETURN(CONST); }                              // GCC
    202204__const__               { KEYWORD_RETURN(CONST); }                              // GCC
    203 context                 { KEYWORD_RETURN(CONTEXT); }                    // CFA
    204205continue                { KEYWORD_RETURN(CONTINUE); }
    205206default                 { KEYWORD_RETURN(DEFAULT); }
     
    237238_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
    238239__builtin_offsetof { KEYWORD_RETURN(OFFSETOF); }                // GCC
     240otype                   { KEYWORD_RETURN(OTYPE); }                              // CFA
    239241register                { KEYWORD_RETURN(REGISTER); }
    240242restrict                { KEYWORD_RETURN(RESTRICT); }                   // C99
     
    254256throw                   { KEYWORD_RETURN(THROW); }                              // CFA
    255257throwResume             { KEYWORD_RETURN(THROWRESUME); }                // CFA
     258trait                   { KEYWORD_RETURN(TRAIT); }                              // CFA
    256259try                             { KEYWORD_RETURN(TRY); }                                // CFA
    257 type                    { KEYWORD_RETURN(TYPE); }                               // CFA
    258260typedef                 { KEYWORD_RETURN(TYPEDEF); }
    259261typeof                  { KEYWORD_RETURN(TYPEOF); }                             // GCC
     
    262264union                   { KEYWORD_RETURN(UNION); }
    263265unsigned                { KEYWORD_RETURN(UNSIGNED); }
     266__builtin_va_list { KEYWORD_RETURN(VALIST); }                   // GCC
    264267void                    { KEYWORD_RETURN(VOID); }
    265268volatile                { KEYWORD_RETURN(VOLATILE); }
  • src/Parser/parser.cc

    rc5833e8 r0f9e4403  
    7777#include <cstdio>
    7878#include <stack>
     79#include "lex.h"
     80#include "parser.h"
     81#include "ParseNode.h"
    7982#include "TypedefTable.h"
    80 #include "lex.h"
    81 #include "ParseNode.h"
    8283#include "TypeData.h"
    8384#include "LinkageSpec.h"
     
    9091
    9192/* Line 268 of yacc.c  */
    92 #line 93 "Parser/parser.cc"
     93#line 94 "Parser/parser.cc"
    9394
    9495/* Enabling traces.  */
     
    138139     SIGNED = 277,
    139140     UNSIGNED = 278,
    140      BOOL = 279,
    141      COMPLEX = 280,
    142      IMAGINARY = 281,
    143      TYPEOF = 282,
    144      LABEL = 283,
    145      ENUM = 284,
    146      STRUCT = 285,
    147      UNION = 286,
    148      TYPE = 287,
    149      FTYPE = 288,
    150      DTYPE = 289,
    151      CONTEXT = 290,
    152      SIZEOF = 291,
    153      OFFSETOF = 292,
    154      ATTRIBUTE = 293,
    155      EXTENSION = 294,
    156      IF = 295,
    157      ELSE = 296,
    158      SWITCH = 297,
    159      CASE = 298,
    160      DEFAULT = 299,
    161      DO = 300,
    162      WHILE = 301,
    163      FOR = 302,
    164      BREAK = 303,
    165      CONTINUE = 304,
    166      GOTO = 305,
    167      RETURN = 306,
    168      CHOOSE = 307,
    169      DISABLE = 308,
    170      ENABLE = 309,
    171      FALLTHRU = 310,
    172      TRY = 311,
    173      CATCH = 312,
    174      CATCHRESUME = 313,
    175      FINALLY = 314,
    176      THROW = 315,
    177      THROWRESUME = 316,
    178      AT = 317,
    179      ASM = 318,
    180      ALIGNAS = 319,
    181      ALIGNOF = 320,
    182      ATOMIC = 321,
    183      GENERIC = 322,
    184      NORETURN = 323,
    185      STATICASSERT = 324,
    186      THREADLOCAL = 325,
    187      IDENTIFIER = 326,
    188      QUOTED_IDENTIFIER = 327,
    189      TYPEDEFname = 328,
    190      TYPEGENname = 329,
    191      ATTR_IDENTIFIER = 330,
    192      ATTR_TYPEDEFname = 331,
    193      ATTR_TYPEGENname = 332,
    194      INTEGERconstant = 333,
    195      FLOATINGconstant = 334,
    196      CHARACTERconstant = 335,
    197      STRINGliteral = 336,
    198      ZERO = 337,
    199      ONE = 338,
    200      ARROW = 339,
    201      ICR = 340,
    202      DECR = 341,
    203      LS = 342,
    204      RS = 343,
    205      LE = 344,
    206      GE = 345,
    207      EQ = 346,
    208      NE = 347,
    209      ANDAND = 348,
    210      OROR = 349,
    211      ELLIPSIS = 350,
    212      MULTassign = 351,
    213      DIVassign = 352,
    214      MODassign = 353,
    215      PLUSassign = 354,
    216      MINUSassign = 355,
    217      LSassign = 356,
    218      RSassign = 357,
    219      ANDassign = 358,
    220      ERassign = 359,
    221      ORassign = 360,
    222      ATassign = 361,
    223      THEN = 362
     141     VALIST = 279,
     142     BOOL = 280,
     143     COMPLEX = 281,
     144     IMAGINARY = 282,
     145     TYPEOF = 283,
     146     LABEL = 284,
     147     ENUM = 285,
     148     STRUCT = 286,
     149     UNION = 287,
     150     OTYPE = 288,
     151     FTYPE = 289,
     152     DTYPE = 290,
     153     TRAIT = 291,
     154     SIZEOF = 292,
     155     OFFSETOF = 293,
     156     ATTRIBUTE = 294,
     157     EXTENSION = 295,
     158     IF = 296,
     159     ELSE = 297,
     160     SWITCH = 298,
     161     CASE = 299,
     162     DEFAULT = 300,
     163     DO = 301,
     164     WHILE = 302,
     165     FOR = 303,
     166     BREAK = 304,
     167     CONTINUE = 305,
     168     GOTO = 306,
     169     RETURN = 307,
     170     CHOOSE = 308,
     171     DISABLE = 309,
     172     ENABLE = 310,
     173     FALLTHRU = 311,
     174     TRY = 312,
     175     CATCH = 313,
     176     CATCHRESUME = 314,
     177     FINALLY = 315,
     178     THROW = 316,
     179     THROWRESUME = 317,
     180     AT = 318,
     181     ASM = 319,
     182     ALIGNAS = 320,
     183     ALIGNOF = 321,
     184     ATOMIC = 322,
     185     GENERIC = 323,
     186     NORETURN = 324,
     187     STATICASSERT = 325,
     188     THREADLOCAL = 326,
     189     IDENTIFIER = 327,
     190     QUOTED_IDENTIFIER = 328,
     191     TYPEDEFname = 329,
     192     TYPEGENname = 330,
     193     ATTR_IDENTIFIER = 331,
     194     ATTR_TYPEDEFname = 332,
     195     ATTR_TYPEGENname = 333,
     196     INTEGERconstant = 334,
     197     FLOATINGconstant = 335,
     198     CHARACTERconstant = 336,
     199     STRINGliteral = 337,
     200     ZERO = 338,
     201     ONE = 339,
     202     ARROW = 340,
     203     ICR = 341,
     204     DECR = 342,
     205     LS = 343,
     206     RS = 344,
     207     LE = 345,
     208     GE = 346,
     209     EQ = 347,
     210     NE = 348,
     211     ANDAND = 349,
     212     OROR = 350,
     213     ELLIPSIS = 351,
     214     MULTassign = 352,
     215     DIVassign = 353,
     216     MODassign = 354,
     217     PLUSassign = 355,
     218     MINUSassign = 356,
     219     LSassign = 357,
     220     RSassign = 358,
     221     ANDassign = 359,
     222     ERassign = 360,
     223     ORassign = 361,
     224     ATassign = 362,
     225     THEN = 363
    224226   };
    225227#endif
     
    246248#define SIGNED 277
    247249#define UNSIGNED 278
    248 #define BOOL 279
    249 #define COMPLEX 280
    250 #define IMAGINARY 281
    251 #define TYPEOF 282
    252 #define LABEL 283
    253 #define ENUM 284
    254 #define STRUCT 285
    255 #define UNION 286
    256 #define TYPE 287
    257 #define FTYPE 288
    258 #define DTYPE 289
    259 #define CONTEXT 290
    260 #define SIZEOF 291
    261 #define OFFSETOF 292
    262 #define ATTRIBUTE 293
    263 #define EXTENSION 294
    264 #define IF 295
    265 #define ELSE 296
    266 #define SWITCH 297
    267 #define CASE 298
    268 #define DEFAULT 299
    269 #define DO 300
    270 #define WHILE 301
    271 #define FOR 302
    272 #define BREAK 303
    273 #define CONTINUE 304
    274 #define GOTO 305
    275 #define RETURN 306
    276 #define CHOOSE 307
    277 #define DISABLE 308
    278 #define ENABLE 309
    279 #define FALLTHRU 310
    280 #define TRY 311
    281 #define CATCH 312
    282 #define CATCHRESUME 313
    283 #define FINALLY 314
    284 #define THROW 315
    285 #define THROWRESUME 316
    286 #define AT 317
    287 #define ASM 318
    288 #define ALIGNAS 319
    289 #define ALIGNOF 320
    290 #define ATOMIC 321
    291 #define GENERIC 322
    292 #define NORETURN 323
    293 #define STATICASSERT 324
    294 #define THREADLOCAL 325
    295 #define IDENTIFIER 326
    296 #define QUOTED_IDENTIFIER 327
    297 #define TYPEDEFname 328
    298 #define TYPEGENname 329
    299 #define ATTR_IDENTIFIER 330
    300 #define ATTR_TYPEDEFname 331
    301 #define ATTR_TYPEGENname 332
    302 #define INTEGERconstant 333
    303 #define FLOATINGconstant 334
    304 #define CHARACTERconstant 335
    305 #define STRINGliteral 336
    306 #define ZERO 337
    307 #define ONE 338
    308 #define ARROW 339
    309 #define ICR 340
    310 #define DECR 341
    311 #define LS 342
    312 #define RS 343
    313 #define LE 344
    314 #define GE 345
    315 #define EQ 346
    316 #define NE 347
    317 #define ANDAND 348
    318 #define OROR 349
    319 #define ELLIPSIS 350
    320 #define MULTassign 351
    321 #define DIVassign 352
    322 #define MODassign 353
    323 #define PLUSassign 354
    324 #define MINUSassign 355
    325 #define LSassign 356
    326 #define RSassign 357
    327 #define ANDassign 358
    328 #define ERassign 359
    329 #define ORassign 360
    330 #define ATassign 361
    331 #define THEN 362
     250#define VALIST 279
     251#define BOOL 280
     252#define COMPLEX 281
     253#define IMAGINARY 282
     254#define TYPEOF 283
     255#define LABEL 284
     256#define ENUM 285
     257#define STRUCT 286
     258#define UNION 287
     259#define OTYPE 288
     260#define FTYPE 289
     261#define DTYPE 290
     262#define TRAIT 291
     263#define SIZEOF 292
     264#define OFFSETOF 293
     265#define ATTRIBUTE 294
     266#define EXTENSION 295
     267#define IF 296
     268#define ELSE 297
     269#define SWITCH 298
     270#define CASE 299
     271#define DEFAULT 300
     272#define DO 301
     273#define WHILE 302
     274#define FOR 303
     275#define BREAK 304
     276#define CONTINUE 305
     277#define GOTO 306
     278#define RETURN 307
     279#define CHOOSE 308
     280#define DISABLE 309
     281#define ENABLE 310
     282#define FALLTHRU 311
     283#define TRY 312
     284#define CATCH 313
     285#define CATCHRESUME 314
     286#define FINALLY 315
     287#define THROW 316
     288#define THROWRESUME 317
     289#define AT 318
     290#define ASM 319
     291#define ALIGNAS 320
     292#define ALIGNOF 321
     293#define ATOMIC 322
     294#define GENERIC 323
     295#define NORETURN 324
     296#define STATICASSERT 325
     297#define THREADLOCAL 326
     298#define IDENTIFIER 327
     299#define QUOTED_IDENTIFIER 328
     300#define TYPEDEFname 329
     301#define TYPEGENname 330
     302#define ATTR_IDENTIFIER 331
     303#define ATTR_TYPEDEFname 332
     304#define ATTR_TYPEGENname 333
     305#define INTEGERconstant 334
     306#define FLOATINGconstant 335
     307#define CHARACTERconstant 336
     308#define STRINGliteral 337
     309#define ZERO 338
     310#define ONE 339
     311#define ARROW 340
     312#define ICR 341
     313#define DECR 342
     314#define LS 343
     315#define RS 344
     316#define LE 345
     317#define GE 346
     318#define EQ 347
     319#define NE 348
     320#define ANDAND 349
     321#define OROR 350
     322#define ELLIPSIS 351
     323#define MULTassign 352
     324#define DIVassign 353
     325#define MODassign 354
     326#define PLUSassign 355
     327#define MINUSassign 356
     328#define LSassign 357
     329#define RSassign 358
     330#define ANDassign 359
     331#define ERassign 360
     332#define ORassign 361
     333#define ATassign 362
     334#define THEN 363
    332335
    333336
     
    339342
    340343/* Line 293 of yacc.c  */
    341 #line 110 "parser.yy"
     344#line 112 "parser.yy"
    342345
    343346        Token tok;
     
    356359
    357360/* Line 293 of yacc.c  */
    358 #line 359 "Parser/parser.cc"
     361#line 362 "Parser/parser.cc"
    359362} YYSTYPE;
    360363# define YYSTYPE_IS_TRIVIAL 1
     
    368371
    369372/* Line 343 of yacc.c  */
    370 #line 371 "Parser/parser.cc"
     373#line 374 "Parser/parser.cc"
    371374
    372375#ifdef short
     
    585588
    586589/* YYFINAL -- State number of the termination state.  */
    587 #define YYFINAL  248
     590#define YYFINAL  249
    588591/* YYLAST -- Last index in YYTABLE.  */
    589 #define YYLAST   11042
     592#define YYLAST   11449
    590593
    591594/* YYNTOKENS -- Number of terminals.  */
    592 #define YYNTOKENS  132
     595#define YYNTOKENS  133
    593596/* YYNNTS -- Number of nonterminals.  */
    594 #define YYNNTS  238
     597#define YYNNTS  240
    595598/* YYNRULES -- Number of rules.  */
    596 #define YYNRULES  751
     599#define YYNRULES  754
    597600/* YYNRULES -- Number of states.  */
    598 #define YYNSTATES  1578
     601#define YYNSTATES  1581
    599602
    600603/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    601604#define YYUNDEFTOK  2
    602 #define YYMAXUTOK   362
     605#define YYMAXUTOK   363
    603606
    604607#define YYTRANSLATE(YYX)                                                \
     
    611614       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    612615       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    613        2,     2,     2,   117,     2,     2,     2,   124,   119,     2,
    614      108,   109,   118,   120,   115,   121,   112,   123,     2,     2,
    615        2,     2,     2,     2,     2,     2,     2,     2,   116,   131,
    616      125,   130,   126,   129,     2,     2,     2,     2,     2,     2,
     616       2,     2,     2,   118,     2,     2,     2,   125,   120,     2,
     617     109,   110,   119,   121,   116,   122,   113,   124,     2,     2,
     618       2,     2,     2,     2,     2,     2,     2,     2,   117,   132,
     619     126,   131,   127,   130,     2,     2,     2,     2,     2,     2,
    617620       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    618621       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    619        2,   110,     2,   111,   127,     2,     2,     2,     2,     2,
     622       2,   111,     2,   112,   128,     2,     2,     2,     2,     2,
    620623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    621624       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    622        2,     2,     2,   113,   128,   114,   122,     2,     2,     2,
     625       2,     2,     2,   114,   129,   115,   123,     2,     2,     2,
    623626       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624627       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    644647      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    645648      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    646      105,   106,   107
     649     105,   106,   107,   108
    647650};
    648651
     
    685688    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    686689    1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,  1195,
    687     1197,  1199,  1201,  1203,  1205,  1208,  1211,  1215,  1219,  1221,
    688     1225,  1227,  1230,  1233,  1236,  1241,  1246,  1251,  1256,  1258,
    689     1261,  1264,  1268,  1270,  1273,  1276,  1278,  1281,  1284,  1288,
    690     1290,  1293,  1296,  1298,  1300,  1305,  1308,  1314,  1322,  1325,
    691     1328,  1331,  1333,  1336,  1339,  1343,  1346,  1350,  1352,  1355,
    692     1359,  1362,  1365,  1370,  1371,  1373,  1376,  1379,  1381,  1382,
    693     1384,  1387,  1390,  1396,  1403,  1406,  1409,  1414,  1415,  1418,
    694     1419,  1421,  1423,  1425,  1431,  1437,  1443,  1445,  1451,  1457,
    695     1467,  1469,  1475,  1476,  1478,  1480,  1486,  1488,  1490,  1496,
    696     1502,  1504,  1508,  1512,  1517,  1519,  1521,  1523,  1525,  1528,
    697     1530,  1534,  1538,  1540,  1543,  1545,  1549,  1551,  1553,  1555,
    698     1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1574,  1576,
    699     1578,  1580,  1583,  1584,  1587,  1590,  1592,  1597,  1598,  1600,
    700     1603,  1607,  1612,  1615,  1618,  1620,  1623,  1625,  1628,  1634,
    701     1640,  1648,  1655,  1657,  1660,  1663,  1667,  1669,  1672,  1675,
    702     1680,  1683,  1688,  1689,  1694,  1697,  1699,  1701,  1703,  1704,
    703     1707,  1713,  1719,  1733,  1735,  1737,  1741,  1745,  1748,  1752,
    704     1756,  1759,  1764,  1766,  1773,  1783,  1784,  1796,  1798,  1802,
    705     1806,  1810,  1812,  1814,  1820,  1823,  1829,  1830,  1832,  1834,
    706     1838,  1839,  1841,  1843,  1845,  1847,  1848,  1855,  1858,  1860,
    707     1863,  1868,  1871,  1875,  1879,  1883,  1888,  1894,  1900,  1906,
    708     1913,  1915,  1917,  1919,  1923,  1924,  1930,  1931,  1933,  1935,
    709     1938,  1945,  1947,  1951,  1952,  1954,  1959,  1961,  1963,  1965,
    710     1967,  1970,  1972,  1975,  1978,  1980,  1984,  1987,  1991,  1995,
    711     1998,  2003,  2008,  2012,  2021,  2025,  2028,  2030,  2033,  2040,
    712     2049,  2053,  2056,  2060,  2064,  2069,  2074,  2078,  2080,  2082,
    713     2084,  2089,  2096,  2100,  2103,  2107,  2111,  2116,  2121,  2125,
    714     2128,  2130,  2133,  2136,  2138,  2142,  2145,  2149,  2153,  2156,
    715     2161,  2166,  2170,  2177,  2186,  2190,  2193,  2195,  2198,  2201,
    716     2204,  2208,  2212,  2215,  2220,  2225,  2229,  2236,  2245,  2249,
    717     2252,  2254,  2257,  2260,  2262,  2264,  2267,  2271,  2275,  2278,
    718     2283,  2290,  2299,  2301,  2304,  2307,  2309,  2312,  2315,  2319,
    719     2323,  2325,  2330,  2335,  2339,  2345,  2354,  2358,  2361,  2365,
    720     2367,  2373,  2379,  2386,  2393,  2395,  2398,  2401,  2403,  2406,
    721     2409,  2413,  2417,  2419,  2424,  2429,  2433,  2439,  2448,  2452,
    722     2454,  2457,  2459,  2462,  2469,  2475,  2482,  2490,  2498,  2500,
    723     2503,  2506,  2508,  2511,  2514,  2518,  2522,  2524,  2529,  2534,
    724     2538,  2547,  2551,  2553,  2555,  2558,  2560,  2562,  2565,  2569,
    725     2572,  2576,  2579,  2583,  2587,  2590,  2595,  2599,  2602,  2606,
    726     2609,  2614,  2618,  2621,  2628,  2635,  2642,  2650,  2652,  2655,
    727     2657,  2659,  2661,  2664,  2668,  2671,  2675,  2678,  2682,  2686,
    728     2691,  2694,  2698,  2703,  2706,  2712,  2718,  2725,  2732,  2733,
    729     2735,  2736
     690    1197,  1199,  1201,  1203,  1205,  1207,  1210,  1213,  1217,  1221,
     691    1223,  1227,  1229,  1232,  1235,  1238,  1243,  1248,  1253,  1258,
     692    1260,  1263,  1266,  1270,  1272,  1275,  1278,  1280,  1283,  1286,
     693    1290,  1292,  1295,  1298,  1300,  1302,  1307,  1310,  1311,  1318,
     694    1326,  1329,  1332,  1335,  1337,  1340,  1343,  1347,  1350,  1354,
     695    1356,  1359,  1363,  1366,  1369,  1374,  1375,  1377,  1380,  1383,
     696    1385,  1386,  1388,  1391,  1394,  1400,  1403,  1404,  1412,  1415,
     697    1420,  1421,  1424,  1425,  1427,  1429,  1431,  1437,  1443,  1449,
     698    1451,  1457,  1463,  1473,  1475,  1481,  1482,  1484,  1486,  1492,
     699    1494,  1496,  1502,  1508,  1510,  1514,  1518,  1523,  1525,  1527,
     700    1529,  1531,  1534,  1536,  1540,  1544,  1546,  1549,  1551,  1555,
     701    1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1573,  1575,
     702    1577,  1580,  1582,  1584,  1586,  1589,  1590,  1593,  1596,  1598,
     703    1603,  1604,  1606,  1609,  1613,  1618,  1621,  1624,  1626,  1629,
     704    1631,  1634,  1640,  1646,  1654,  1661,  1663,  1666,  1669,  1673,
     705    1675,  1678,  1681,  1686,  1689,  1694,  1695,  1700,  1703,  1705,
     706    1707,  1709,  1710,  1713,  1719,  1725,  1739,  1741,  1743,  1747,
     707    1751,  1754,  1758,  1762,  1765,  1770,  1772,  1779,  1789,  1790,
     708    1802,  1804,  1808,  1812,  1816,  1818,  1820,  1826,  1829,  1835,
     709    1836,  1838,  1840,  1844,  1845,  1847,  1849,  1851,  1853,  1854,
     710    1861,  1864,  1866,  1869,  1874,  1877,  1881,  1885,  1889,  1894,
     711    1900,  1906,  1912,  1919,  1921,  1923,  1925,  1929,  1930,  1936,
     712    1937,  1939,  1941,  1944,  1951,  1953,  1957,  1958,  1960,  1965,
     713    1967,  1969,  1971,  1973,  1976,  1978,  1981,  1984,  1986,  1990,
     714    1993,  1997,  2001,  2004,  2009,  2014,  2018,  2027,  2031,  2034,
     715    2036,  2039,  2046,  2055,  2059,  2062,  2066,  2070,  2075,  2080,
     716    2084,  2086,  2088,  2090,  2095,  2102,  2106,  2109,  2113,  2117,
     717    2122,  2127,  2131,  2134,  2136,  2139,  2142,  2144,  2148,  2151,
     718    2155,  2159,  2162,  2167,  2172,  2176,  2183,  2192,  2196,  2199,
     719    2201,  2204,  2207,  2210,  2214,  2218,  2221,  2226,  2231,  2235,
     720    2242,  2251,  2255,  2258,  2260,  2263,  2266,  2268,  2270,  2273,
     721    2277,  2281,  2284,  2289,  2296,  2305,  2307,  2310,  2313,  2315,
     722    2318,  2321,  2325,  2329,  2331,  2336,  2341,  2345,  2351,  2360,
     723    2364,  2367,  2371,  2373,  2379,  2385,  2392,  2399,  2401,  2404,
     724    2407,  2409,  2412,  2415,  2419,  2423,  2425,  2430,  2435,  2439,
     725    2445,  2454,  2458,  2460,  2463,  2465,  2468,  2475,  2481,  2488,
     726    2496,  2504,  2506,  2509,  2512,  2514,  2517,  2520,  2524,  2528,
     727    2530,  2535,  2540,  2544,  2553,  2557,  2559,  2561,  2564,  2566,
     728    2568,  2571,  2575,  2578,  2582,  2585,  2589,  2593,  2596,  2601,
     729    2605,  2608,  2612,  2615,  2620,  2624,  2627,  2634,  2641,  2648,
     730    2656,  2658,  2661,  2663,  2665,  2667,  2670,  2674,  2677,  2681,
     731    2684,  2688,  2692,  2697,  2700,  2704,  2709,  2712,  2718,  2724,
     732    2731,  2738,  2739,  2741,  2742
    730733};
    731734
     
    733736static const yytype_int16 yyrhs[] =
    734737{
    735      298,     0,    -1,    -1,    -1,    78,    -1,    79,    -1,    80,
    736       -1,    71,    -1,    75,    -1,   139,    -1,    71,    -1,    75,
    737       -1,    71,    -1,   139,    -1,    82,    -1,    83,    -1,    81,
    738       -1,   140,    81,    -1,    71,    -1,   139,    -1,   108,   167,
    739      109,    -1,   108,   171,   109,    -1,   141,    -1,   142,   110,
    740      133,   162,   134,   111,    -1,   142,   108,   143,   109,    -1,
    741      142,   112,   138,    -1,   142,   112,   110,   133,   145,   134,
    742      111,    -1,   142,    84,   138,    -1,   142,    84,   110,   133,
    743      145,   134,   111,    -1,   142,    85,    -1,   142,    86,    -1,
    744      108,   271,   109,   113,   275,   368,   114,    -1,   142,   113,
    745      143,   114,    -1,   144,    -1,   143,   115,   144,    -1,    -1,
    746      162,    -1,   138,   116,   162,    -1,   110,   133,   162,   134,
    747      111,   116,   162,    -1,   110,   133,   162,   115,   165,   134,
    748      111,   116,   162,    -1,   146,    -1,   145,   115,   146,    -1,
    749      138,    -1,   138,   112,   146,    -1,   138,   112,   110,   133,
    750      145,   134,   111,    -1,   138,    84,   146,    -1,   138,    84,
    751      110,   133,   145,   134,   111,    -1,   142,    -1,   135,    -1,
    752      140,    -1,    85,   147,    -1,    86,   147,    -1,    39,   149,
    753       -1,   148,   149,    -1,   117,   149,    -1,   118,   149,    -1,
    754       36,   147,    -1,    36,   108,   271,   109,    -1,    37,   108,
    755      271,   115,   138,   109,    -1,    75,    -1,    75,   108,   272,
    756      109,    -1,    75,   108,   144,   109,    -1,    65,   147,    -1,
    757       65,   108,   271,   109,    -1,    93,   138,    -1,   119,    -1,
    758      120,    -1,   121,    -1,   122,    -1,   147,    -1,   108,   271,
    759      109,   149,    -1,   108,   271,   109,   164,    -1,   149,    -1,
    760      150,   118,   149,    -1,   150,   123,   149,    -1,   150,   124,
    761      149,    -1,   150,    -1,   151,   120,   150,    -1,   151,   121,
    762      150,    -1,   151,    -1,   152,    87,   151,    -1,   152,    88,
    763      151,    -1,   152,    -1,   153,   125,   152,    -1,   153,   126,
    764      152,    -1,   153,    89,   152,    -1,   153,    90,   152,    -1,
    765      153,    -1,   154,    91,   153,    -1,   154,    92,   153,    -1,
    766      154,    -1,   155,   119,   154,    -1,   155,    -1,   156,   127,
    767      155,    -1,   156,    -1,   157,   128,   156,    -1,   157,    -1,
    768      158,    93,   157,    -1,   158,    -1,   159,    94,   158,    -1,
    769      159,    -1,   159,   129,   167,   116,   160,    -1,   159,   129,
    770      116,   160,    -1,   159,   129,   167,   116,   164,    -1,   160,
    771       -1,   160,    -1,   147,   130,   162,    -1,   147,   166,   162,
    772       -1,   164,   369,    -1,    -1,   162,    -1,   110,   111,    -1,
    773      110,   133,   162,   134,   111,    -1,   110,   133,   115,   165,
    774      134,   111,    -1,   110,   133,   162,   115,   165,   134,   111,
    775       -1,   163,    -1,   165,   115,   163,    -1,    96,    -1,    97,
    776       -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
    777       -1,   103,    -1,   104,    -1,   105,    -1,   162,    -1,   167,
    778      115,   162,    -1,    -1,   167,    -1,   170,    -1,   171,    -1,
    779      175,    -1,   176,    -1,   188,    -1,   190,    -1,   191,    -1,
    780      196,    -1,   127,   142,   113,   143,   114,   131,    -1,   138,
    781      116,   308,   169,    -1,   113,   114,    -1,   113,   133,   133,
    782      207,   172,   134,   114,    -1,   173,    -1,   172,   133,   173,
    783       -1,   210,    -1,    39,   210,    -1,   304,    -1,   169,   134,
    784       -1,   169,    -1,   174,   169,    -1,   168,   131,    -1,    40,
    785      108,   167,   109,   169,    -1,    40,   108,   167,   109,   169,
    786       41,   169,    -1,    42,   108,   167,   109,   181,    -1,    42,
    787      108,   167,   109,   113,   133,   203,   182,   114,    -1,    52,
    788      108,   167,   109,   181,    -1,    52,   108,   167,   109,   113,
    789      133,   203,   184,   114,    -1,   161,    -1,   161,    95,   161,
    790       -1,   306,    -1,   177,    -1,   178,   115,   177,    -1,    43,
    791      178,   116,    -1,    44,   116,    -1,   179,    -1,   180,   179,
    792       -1,   180,   169,    -1,    -1,   183,    -1,   180,   174,    -1,
    793      183,   180,   174,    -1,    -1,   185,    -1,   180,   187,    -1,
    794      180,   174,   186,    -1,   185,   180,   187,    -1,   185,   180,
    795      174,   186,    -1,    -1,   187,    -1,    55,    -1,    55,   131,
    796       -1,    46,   108,   167,   109,   169,    -1,    45,   169,    46,
    797      108,   167,   109,   131,    -1,    47,   108,   133,   189,   109,
    798      169,    -1,   168,   134,   131,   168,   131,   168,    -1,   210,
    799      168,   131,   168,    -1,    50,   138,   131,    -1,    50,   118,
    800      167,   131,    -1,    49,   131,    -1,    49,   138,   131,    -1,
    801       48,   131,    -1,    48,   138,   131,    -1,    51,   168,   131,
    802       -1,    60,   163,   131,    -1,    61,   163,   131,    -1,    61,
    803      163,    62,   162,   131,    -1,    56,   171,   192,    -1,    56,
    804      171,   194,    -1,    56,   171,   192,   194,    -1,   193,    -1,
    805       57,   108,    95,   109,   171,    -1,   193,    57,   108,    95,
    806      109,   171,    -1,    58,   108,    95,   109,   171,    -1,   193,
    807       58,   108,    95,   109,   171,    -1,    57,   108,   133,   133,
    808      195,   134,   109,   171,   134,    -1,   193,    57,   108,   133,
    809      133,   195,   134,   109,   171,   134,    -1,    58,   108,   133,
    810      133,   195,   134,   109,   171,   134,    -1,   193,    58,   108,
    811      133,   133,   195,   134,   109,   171,   134,    -1,    59,   171,
    812       -1,   223,    -1,   223,   305,    -1,   223,   353,    -1,   362,
    813      138,    -1,   362,    -1,    63,   197,   108,   140,   109,   131,
    814       -1,    63,   197,   108,   140,   116,   198,   109,   131,    -1,
    815       63,   197,   108,   140,   116,   198,   116,   198,   109,   131,
    816       -1,    63,   197,   108,   140,   116,   198,   116,   198,   116,
    817      201,   109,   131,    -1,    63,   197,    50,   108,   140,   116,
    818      116,   198,   116,   201,   116,   202,   109,   131,    -1,    -1,
    819       11,    -1,    -1,   199,    -1,   200,    -1,   199,   115,   200,
    820       -1,   140,   108,   161,   109,    -1,   110,   161,   111,   140,
    821      108,   161,   109,    -1,    -1,   140,    -1,   201,   115,   140,
    822       -1,   138,    -1,   202,   115,   138,    -1,   134,    -1,   204,
    823       -1,   210,    -1,   204,   133,   210,    -1,   134,    -1,   206,
    824       -1,   220,    -1,   206,   133,   220,    -1,    -1,   208,    -1,
    825       28,   209,   131,    -1,   208,    28,   209,   131,    -1,   270,
    826       -1,   209,   115,   270,    -1,   211,    -1,   220,    -1,   212,
    827      134,   131,    -1,   217,   134,   131,    -1,   214,   134,   131,
    828       -1,   289,   134,   131,    -1,   292,   134,   131,    -1,   213,
    829      273,    -1,   229,   213,   273,    -1,   212,   134,   115,   133,
    830      268,   273,    -1,   363,   268,   307,    -1,   366,   268,   307,
    831       -1,   225,   366,   268,   307,    -1,   215,    -1,   225,   215,
    832       -1,   229,   215,    -1,   229,   225,   215,    -1,   214,   134,
    833      115,   133,   268,    -1,   110,   111,   268,   108,   133,   256,
    834      134,   109,    -1,   366,   268,   108,   133,   256,   134,   109,
    835       -1,   216,   268,   108,   133,   256,   134,   109,    -1,   110,
    836      133,   258,   134,   111,    -1,   110,   133,   258,   134,   115,
    837      133,   259,   134,   111,    -1,     3,   213,    -1,     3,   215,
    838       -1,   217,   134,   115,   133,   138,    -1,     3,   223,   305,
    839       -1,   218,   134,   115,   133,   305,    -1,   225,     3,   223,
    840      305,    -1,   223,     3,   305,    -1,   223,     3,   225,   305,
    841       -1,     3,   138,   130,   162,    -1,   219,   134,   115,   133,
    842      138,   130,   162,    -1,   221,   134,   131,    -1,   218,   134,
    843      131,    -1,   219,   134,   131,    -1,   238,   134,   131,    -1,
    844      222,   305,   307,   273,    -1,   221,   115,   308,   305,   307,
    845      273,    -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,
    846      235,    -1,   239,    -1,   241,    -1,   280,    -1,    -1,   225,
    847       -1,   226,    -1,   225,   226,    -1,   227,    -1,   310,    -1,
    848       10,    -1,    12,    -1,    11,    -1,    14,    -1,    66,    -1,
    849       -1,    13,   108,   228,   282,   109,    -1,   230,    -1,   225,
    850      230,    -1,   229,   225,   230,    -1,   231,    -1,   230,   231,
    851       -1,   232,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    852       -1,     8,    -1,     9,    -1,    68,    -1,    70,    -1,    16,
     738     301,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
     739      -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
     740      -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,    82,
     741      -1,   141,    82,    -1,    72,    -1,   140,    -1,   109,   168,
     742     110,    -1,   109,   172,   110,    -1,   142,    -1,   143,   111,
     743     134,   163,   135,   112,    -1,   143,   109,   144,   110,    -1,
     744     143,   113,   139,    -1,   143,   113,   111,   134,   146,   135,
     745     112,    -1,   143,    85,   139,    -1,   143,    85,   111,   134,
     746     146,   135,   112,    -1,   143,    86,    -1,   143,    87,    -1,
     747     109,   274,   110,   114,   278,   371,   115,    -1,   143,   114,
     748     144,   115,    -1,   145,    -1,   144,   116,   145,    -1,    -1,
     749     163,    -1,   139,   117,   163,    -1,   111,   134,   163,   135,
     750     112,   117,   163,    -1,   111,   134,   163,   116,   166,   135,
     751     112,   117,   163,    -1,   147,    -1,   146,   116,   147,    -1,
     752     139,    -1,   139,   113,   147,    -1,   139,   113,   111,   134,
     753     146,   135,   112,    -1,   139,    85,   147,    -1,   139,    85,
     754     111,   134,   146,   135,   112,    -1,   143,    -1,   136,    -1,
     755     141,    -1,    86,   148,    -1,    87,   148,    -1,    40,   150,
     756      -1,   149,   150,    -1,   118,   150,    -1,   119,   150,    -1,
     757      37,   148,    -1,    37,   109,   274,   110,    -1,    38,   109,
     758     274,   116,   139,   110,    -1,    76,    -1,    76,   109,   275,
     759     110,    -1,    76,   109,   145,   110,    -1,    66,   148,    -1,
     760      66,   109,   274,   110,    -1,    94,   139,    -1,   120,    -1,
     761     121,    -1,   122,    -1,   123,    -1,   148,    -1,   109,   274,
     762     110,   150,    -1,   109,   274,   110,   165,    -1,   150,    -1,
     763     151,   119,   150,    -1,   151,   124,   150,    -1,   151,   125,
     764     150,    -1,   151,    -1,   152,   121,   151,    -1,   152,   122,
     765     151,    -1,   152,    -1,   153,    88,   152,    -1,   153,    89,
     766     152,    -1,   153,    -1,   154,   126,   153,    -1,   154,   127,
     767     153,    -1,   154,    90,   153,    -1,   154,    91,   153,    -1,
     768     154,    -1,   155,    92,   154,    -1,   155,    93,   154,    -1,
     769     155,    -1,   156,   120,   155,    -1,   156,    -1,   157,   128,
     770     156,    -1,   157,    -1,   158,   129,   157,    -1,   158,    -1,
     771     159,    94,   158,    -1,   159,    -1,   160,    95,   159,    -1,
     772     160,    -1,   160,   130,   168,   117,   161,    -1,   160,   130,
     773     117,   161,    -1,   160,   130,   168,   117,   165,    -1,   161,
     774      -1,   161,    -1,   148,   131,   163,    -1,   148,   167,   163,
     775      -1,   165,   372,    -1,    -1,   163,    -1,   111,   112,    -1,
     776     111,   134,   163,   135,   112,    -1,   111,   134,   116,   166,
     777     135,   112,    -1,   111,   134,   163,   116,   166,   135,   112,
     778      -1,   164,    -1,   166,   116,   164,    -1,    97,    -1,    98,
     779      -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
     780      -1,   104,    -1,   105,    -1,   106,    -1,   163,    -1,   168,
     781     116,   163,    -1,    -1,   168,    -1,   171,    -1,   172,    -1,
     782     176,    -1,   177,    -1,   189,    -1,   191,    -1,   192,    -1,
     783     197,    -1,   128,   143,   114,   144,   115,   132,    -1,   139,
     784     117,   311,   170,    -1,   114,   115,    -1,   114,   134,   134,
     785     208,   173,   135,   115,    -1,   174,    -1,   173,   134,   174,
     786      -1,   211,    -1,    40,   211,    -1,   307,    -1,   170,   135,
     787      -1,   170,    -1,   175,   170,    -1,   169,   132,    -1,    41,
     788     109,   168,   110,   170,    -1,    41,   109,   168,   110,   170,
     789      42,   170,    -1,    43,   109,   168,   110,   182,    -1,    43,
     790     109,   168,   110,   114,   134,   204,   183,   115,    -1,    53,
     791     109,   168,   110,   182,    -1,    53,   109,   168,   110,   114,
     792     134,   204,   185,   115,    -1,   162,    -1,   162,    96,   162,
     793      -1,   309,    -1,   178,    -1,   179,   116,   178,    -1,    44,
     794     179,   117,    -1,    45,   117,    -1,   180,    -1,   181,   180,
     795      -1,   181,   170,    -1,    -1,   184,    -1,   181,   175,    -1,
     796     184,   181,   175,    -1,    -1,   186,    -1,   181,   188,    -1,
     797     181,   175,   187,    -1,   186,   181,   188,    -1,   186,   181,
     798     175,   187,    -1,    -1,   188,    -1,    56,    -1,    56,   132,
     799      -1,    47,   109,   168,   110,   170,    -1,    46,   170,    47,
     800     109,   168,   110,   132,    -1,    48,   109,   134,   190,   110,
     801     170,    -1,   169,   135,   132,   169,   132,   169,    -1,   211,
     802     169,   132,   169,    -1,    51,   139,   132,    -1,    51,   119,
     803     168,   132,    -1,    50,   132,    -1,    50,   139,   132,    -1,
     804      49,   132,    -1,    49,   139,   132,    -1,    52,   169,   132,
     805      -1,    61,   164,   132,    -1,    62,   164,   132,    -1,    62,
     806     164,    63,   163,   132,    -1,    57,   172,   193,    -1,    57,
     807     172,   195,    -1,    57,   172,   193,   195,    -1,   194,    -1,
     808      58,   109,    96,   110,   172,    -1,   194,    58,   109,    96,
     809     110,   172,    -1,    59,   109,    96,   110,   172,    -1,   194,
     810      59,   109,    96,   110,   172,    -1,    58,   109,   134,   134,
     811     196,   135,   110,   172,   135,    -1,   194,    58,   109,   134,
     812     134,   196,   135,   110,   172,   135,    -1,    59,   109,   134,
     813     134,   196,   135,   110,   172,   135,    -1,   194,    59,   109,
     814     134,   134,   196,   135,   110,   172,   135,    -1,    60,   172,
     815      -1,   224,    -1,   224,   308,    -1,   224,   356,    -1,   365,
     816     139,    -1,   365,    -1,    64,   198,   109,   141,   110,   132,
     817      -1,    64,   198,   109,   141,   117,   199,   110,   132,    -1,
     818      64,   198,   109,   141,   117,   199,   117,   199,   110,   132,
     819      -1,    64,   198,   109,   141,   117,   199,   117,   199,   117,
     820     202,   110,   132,    -1,    64,   198,    51,   109,   141,   117,
     821     117,   199,   117,   202,   117,   203,   110,   132,    -1,    -1,
     822      11,    -1,    -1,   200,    -1,   201,    -1,   200,   116,   201,
     823      -1,   141,   109,   162,   110,    -1,   111,   162,   112,   141,
     824     109,   162,   110,    -1,    -1,   141,    -1,   202,   116,   141,
     825      -1,   139,    -1,   203,   116,   139,    -1,   135,    -1,   205,
     826      -1,   211,    -1,   205,   134,   211,    -1,   135,    -1,   207,
     827      -1,   221,    -1,   207,   134,   221,    -1,    -1,   209,    -1,
     828      29,   210,   132,    -1,   209,    29,   210,   132,    -1,   273,
     829      -1,   210,   116,   273,    -1,   212,    -1,   221,    -1,   213,
     830     135,   132,    -1,   218,   135,   132,    -1,   215,   135,   132,
     831      -1,   292,   135,   132,    -1,   295,   135,   132,    -1,   214,
     832     276,    -1,   230,   214,   276,    -1,   213,   135,   116,   134,
     833     271,   276,    -1,   366,   271,   310,    -1,   369,   271,   310,
     834      -1,   226,   369,   271,   310,    -1,   216,    -1,   226,   216,
     835      -1,   230,   216,    -1,   230,   226,   216,    -1,   215,   135,
     836     116,   134,   271,    -1,   111,   112,   271,   109,   134,   259,
     837     135,   110,    -1,   369,   271,   109,   134,   259,   135,   110,
     838      -1,   217,   271,   109,   134,   259,   135,   110,    -1,   111,
     839     134,   261,   135,   112,    -1,   111,   134,   261,   135,   116,
     840     134,   262,   135,   112,    -1,     3,   214,    -1,     3,   216,
     841      -1,   218,   135,   116,   134,   139,    -1,     3,   224,   308,
     842      -1,   219,   135,   116,   134,   308,    -1,   226,     3,   224,
     843     308,    -1,   224,     3,   308,    -1,   224,     3,   226,   308,
     844      -1,     3,   139,   131,   163,    -1,   220,   135,   116,   134,
     845     139,   131,   163,    -1,   222,   135,   132,    -1,   219,   135,
     846     132,    -1,   220,   135,   132,    -1,   239,   135,   132,    -1,
     847     223,   308,   310,   276,    -1,   222,   116,   311,   308,   310,
     848     276,    -1,   235,    -1,   239,    -1,   241,    -1,   282,    -1,
     849     236,    -1,   240,    -1,   242,    -1,   283,    -1,    -1,   226,
     850      -1,   227,    -1,   226,   227,    -1,   228,    -1,   313,    -1,
     851      10,    -1,    12,    -1,    11,    -1,    14,    -1,    67,    -1,
     852      -1,    13,   109,   229,   285,   110,    -1,   231,    -1,   226,
     853     231,    -1,   230,   226,   231,    -1,   232,    -1,   231,   232,
     854      -1,   233,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
     855      -1,     8,    -1,     9,    -1,    69,    -1,    71,    -1,    16,
    853856      -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    854       -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
    855       -1,    26,    -1,   235,    -1,   229,   235,    -1,   234,   231,
    856       -1,   234,   231,   225,    -1,   234,   231,   235,    -1,   236,
    857       -1,   224,   237,   224,    -1,   233,    -1,   225,   233,    -1,
    858      236,   226,    -1,   236,   233,    -1,    27,   108,   272,   109,
    859       -1,    27,   108,   167,   109,    -1,    77,   108,   272,   109,
    860       -1,    77,   108,   167,   109,    -1,   239,    -1,   229,   239,
    861       -1,   238,   231,    -1,   238,   231,   225,    -1,   242,    -1,
    862      225,   242,    -1,   239,   226,    -1,   241,    -1,   229,   241,
    863       -1,   240,   231,    -1,   240,   231,   225,    -1,    73,    -1,
    864      225,    73,    -1,   241,   226,    -1,   243,    -1,   253,    -1,
    865      244,   113,   245,   114,    -1,   244,   270,    -1,   244,   270,
    866      113,   245,   114,    -1,   244,   108,   288,   109,   113,   245,
    867      114,    -1,   244,   281,    -1,    30,   308,    -1,    31,   308,
    868       -1,   246,    -1,   245,   246,    -1,   247,   131,    -1,    39,
    869      247,   131,    -1,   248,   131,    -1,    39,   248,   131,    -1,
    870      362,    -1,   362,   270,    -1,   247,   115,   270,    -1,   247,
    871      115,    -1,   223,   249,    -1,   248,   115,   308,   249,    -1,
    872       -1,   251,    -1,   314,   250,    -1,   327,   250,    -1,   353,
    873       -1,    -1,   251,    -1,   116,   161,    -1,    29,   308,    -1,
    874      252,   113,   254,   368,   114,    -1,   252,   270,   113,   254,
    875      368,   114,    -1,   252,   270,    -1,   270,   255,    -1,   254,
    876      115,   270,   255,    -1,    -1,   130,   161,    -1,    -1,   257,
    877       -1,   259,    -1,   258,    -1,   258,   134,   115,   133,   259,
    878       -1,   259,   134,   115,   133,    95,    -1,   258,   134,   115,
    879      133,    95,    -1,   263,    -1,   259,   134,   115,   133,   263,
    880       -1,   258,   134,   115,   133,   263,    -1,   258,   134,   115,
    881      133,   259,   134,   115,   133,   263,    -1,   264,    -1,   259,
    882      134,   115,   133,   264,    -1,    -1,   261,    -1,   262,    -1,
    883      262,   134,   115,   133,    95,    -1,   266,    -1,   265,    -1,
    884      262,   134,   115,   133,   266,    -1,   262,   134,   115,   133,
    885      265,    -1,   265,    -1,   358,   268,   369,    -1,   366,   268,
    886      369,    -1,   225,   366,   268,   369,    -1,   215,    -1,   266,
    887       -1,   358,    -1,   366,    -1,   225,   366,    -1,   367,    -1,
    888      222,   332,   369,    -1,   222,   336,   369,    -1,   222,    -1,
    889      222,   347,    -1,   138,    -1,   267,   115,   138,    -1,   136,
    890       -1,    73,    -1,    74,    -1,   137,    -1,    73,    -1,    74,
    891       -1,   138,    -1,    73,    -1,    74,    -1,   362,    -1,   223,
    892       -1,   223,   353,    -1,   362,    -1,   367,    -1,   223,    -1,
    893      223,   341,    -1,    -1,   130,   274,    -1,   106,   274,    -1,
    894      162,    -1,   113,   275,   368,   114,    -1,    -1,   274,    -1,
    895      276,   274,    -1,   275,   115,   274,    -1,   275,   115,   276,
    896      274,    -1,   277,   116,    -1,   270,   116,    -1,   278,    -1,
    897      277,   278,    -1,    79,    -1,   112,   270,    -1,   110,   133,
    898      162,   134,   111,    -1,   110,   133,   306,   134,   111,    -1,
    899      110,   133,   161,    95,   161,   134,   111,    -1,   112,   110,
    900      133,   145,   134,   111,    -1,   280,    -1,   229,   280,    -1,
    901      279,   231,    -1,   279,   231,   225,    -1,   281,    -1,   225,
    902      281,    -1,   280,   226,    -1,    74,   108,   288,   109,    -1,
    903      283,   369,    -1,   282,   115,   283,   369,    -1,    -1,   285,
    904      270,   284,   286,    -1,   223,   332,    -1,    32,    -1,    34,
    905       -1,    33,    -1,    -1,   286,   287,    -1,   128,   270,   108,
    906      288,   109,    -1,   128,   113,   133,   294,   114,    -1,   128,
    907      108,   133,   282,   134,   109,   113,   133,   294,   114,   108,
    908      288,   109,    -1,   272,    -1,   162,    -1,   288,   115,   272,
    909       -1,   288,   115,   162,    -1,    32,   290,    -1,   230,    32,
    910      290,    -1,   289,   115,   290,    -1,   291,   286,    -1,   291,
    911      286,   130,   272,    -1,   270,    -1,   269,   108,   133,   282,
    912      134,   109,    -1,    35,   270,   108,   133,   282,   134,   109,
    913      113,   114,    -1,    -1,    35,   270,   108,   133,   282,   134,
    914      109,   113,   293,   294,   114,    -1,   295,    -1,   294,   133,
    915      295,    -1,   296,   134,   131,    -1,   297,   134,   131,    -1,
    916      213,    -1,   215,    -1,   296,   134,   115,   133,   268,    -1,
    917      223,   305,    -1,   297,   134,   115,   133,   305,    -1,    -1,
    918      299,    -1,   301,    -1,   299,   133,   301,    -1,    -1,   299,
    919       -1,   210,    -1,   303,    -1,   196,    -1,    -1,     5,    81,
    920      302,   113,   300,   114,    -1,    39,   301,    -1,   304,    -1,
    921      319,   171,    -1,   323,   133,   205,   171,    -1,   214,   171,
    922       -1,   222,   319,   171,    -1,   225,   319,   171,    -1,   229,
    923      319,   171,    -1,   229,   225,   319,   171,    -1,   222,   323,
    924      133,   205,   171,    -1,   225,   323,   133,   205,   171,    -1,
    925      229,   323,   133,   205,   171,    -1,   229,   225,   323,   133,
    926      205,   171,    -1,   314,    -1,   319,    -1,   327,    -1,   161,
    927      122,   161,    -1,    -1,    63,   108,   140,   109,   308,    -1,
    928       -1,   309,    -1,   310,    -1,   309,   310,    -1,    38,   108,
    929      108,   311,   109,   109,    -1,   312,    -1,   311,   115,   312,
    930       -1,    -1,   313,    -1,   313,   108,   168,   109,    -1,   268,
    931       -1,   232,    -1,   233,    -1,   226,    -1,   315,   308,    -1,
    932      316,    -1,   317,   308,    -1,   318,   308,    -1,   136,    -1,
    933      108,   315,   109,    -1,   118,   314,    -1,   118,   225,   314,
    934       -1,   108,   316,   109,    -1,   315,   345,    -1,   108,   316,
    935      109,   345,    -1,   108,   317,   109,   346,    -1,   108,   317,
    936      109,    -1,   108,   316,   109,   108,   133,   260,   134,   109,
    937       -1,   108,   318,   109,    -1,   320,   308,    -1,   321,    -1,
    938      322,   308,    -1,   315,   108,   133,   260,   134,   109,    -1,
    939      108,   321,   109,   108,   133,   260,   134,   109,    -1,   108,
    940      320,   109,    -1,   118,   319,    -1,   118,   225,   319,    -1,
    941      108,   321,   109,    -1,   108,   321,   109,   345,    -1,   108,
    942      322,   109,   346,    -1,   108,   322,   109,    -1,   324,    -1,
    943      325,    -1,   326,    -1,   315,   108,   267,   109,    -1,   108,
    944      325,   109,   108,   267,   109,    -1,   108,   324,   109,    -1,
    945      118,   323,    -1,   118,   225,   323,    -1,   108,   325,   109,
    946       -1,   108,   325,   109,   345,    -1,   108,   326,   109,   346,
    947       -1,   108,   326,   109,    -1,   328,   308,    -1,   329,    -1,
    948      330,   308,    -1,   331,   308,    -1,   337,    -1,   108,   328,
    949      109,    -1,   118,   327,    -1,   118,   225,   327,    -1,   108,
    950      329,   109,    -1,   328,   345,    -1,   108,   329,   109,   345,
    951       -1,   108,   330,   109,   346,    -1,   108,   330,   109,    -1,
    952      328,   108,   133,   260,   134,   109,    -1,   108,   329,   109,
    953      108,   133,   260,   134,   109,    -1,   108,   331,   109,    -1,
    954      315,   308,    -1,   333,    -1,   334,   308,    -1,   335,   308,
    955       -1,   118,   332,    -1,   118,   225,   332,    -1,   108,   333,
    956      109,    -1,   315,   351,    -1,   108,   333,   109,   345,    -1,
    957      108,   334,   109,   346,    -1,   108,   334,   109,    -1,   315,
    958      108,   133,   260,   134,   109,    -1,   108,   333,   109,   108,
    959      133,   260,   134,   109,    -1,   108,   335,   109,    -1,   337,
    960      308,    -1,   338,    -1,   339,   308,    -1,   340,   308,    -1,
    961       73,    -1,    74,    -1,   118,   336,    -1,   118,   225,   336,
    962       -1,   108,   338,   109,    -1,   337,   351,    -1,   108,   338,
    963      109,   351,    -1,   337,   108,   133,   260,   134,   109,    -1,
    964      108,   338,   109,   108,   133,   260,   134,   109,    -1,   342,
    965       -1,   343,   308,    -1,   344,   308,    -1,   118,    -1,   118,
    966      225,    -1,   118,   341,    -1,   118,   225,   341,    -1,   108,
    967      342,   109,    -1,   345,    -1,   108,   342,   109,   345,    -1,
    968      108,   343,   109,   346,    -1,   108,   343,   109,    -1,   108,
    969      133,   260,   134,   109,    -1,   108,   342,   109,   108,   133,
    970      260,   134,   109,    -1,   108,   344,   109,    -1,   110,   111,
    971       -1,   110,   111,   346,    -1,   346,    -1,   110,   133,   162,
    972      134,   111,    -1,   110,   133,   118,   134,   111,    -1,   346,
    973      110,   133,   162,   134,   111,    -1,   346,   110,   133,   118,
    974      134,   111,    -1,   348,    -1,   349,   308,    -1,   350,   308,
    975       -1,   118,    -1,   118,   225,    -1,   118,   347,    -1,   118,
    976      225,   347,    -1,   108,   348,   109,    -1,   351,    -1,   108,
    977      348,   109,   351,    -1,   108,   349,   109,   346,    -1,   108,
    978      349,   109,    -1,   108,   133,   260,   134,   109,    -1,   108,
    979      348,   109,   108,   133,   260,   134,   109,    -1,   108,   350,
    980      109,    -1,   352,    -1,   352,   346,    -1,   346,    -1,   110,
    981      111,    -1,   110,   133,   225,   118,   134,   111,    -1,   110,
    982      133,   225,   134,   111,    -1,   110,   133,   225,   162,   134,
    983      111,    -1,   110,   133,     7,   224,   162,   134,   111,    -1,
    984      110,   133,   225,     7,   162,   134,   111,    -1,   354,    -1,
    985      355,   308,    -1,   356,   308,    -1,   118,    -1,   118,   225,
    986       -1,   118,   353,    -1,   118,   225,   353,    -1,   108,   354,
    987      109,    -1,   345,    -1,   108,   354,   109,   345,    -1,   108,
    988      355,   109,   346,    -1,   108,   355,   109,    -1,   108,   354,
    989      109,   108,   133,   260,   134,   109,    -1,   108,   356,   109,
    990       -1,   358,    -1,   366,    -1,   225,   366,    -1,   359,    -1,
    991      360,    -1,   118,   223,    -1,   225,   118,   223,    -1,   118,
    992      367,    -1,   225,   118,   367,    -1,   118,   357,    -1,   225,
    993      118,   357,    -1,   110,   111,   223,    -1,   361,   223,    -1,
    994      110,   111,   346,   223,    -1,   361,   346,   223,    -1,   346,
    995      223,    -1,   110,   111,   359,    -1,   361,   359,    -1,   110,
    996      111,   346,   359,    -1,   361,   346,   359,    -1,   346,   359,
    997       -1,   110,   133,   225,   118,   134,   111,    -1,   110,   133,
    998      225,   162,   134,   111,    -1,   110,   133,   229,   162,   134,
    999      111,    -1,   110,   133,   229,   225,   162,   134,   111,    -1,
    1000      366,    -1,   225,   366,    -1,   363,    -1,   364,    -1,   365,
    1001       -1,   118,   223,    -1,   225,   118,   223,    -1,   118,   367,
    1002       -1,   225,   118,   367,    -1,   118,   362,    -1,   225,   118,
    1003      362,    -1,   110,   111,   223,    -1,   110,   111,   346,   223,
    1004       -1,   346,   223,    -1,   110,   111,   364,    -1,   110,   111,
    1005      346,   364,    -1,   346,   364,    -1,   110,   133,   259,   134,
    1006      111,    -1,   110,   111,   108,   256,   109,    -1,   366,   108,
    1007      133,   256,   134,   109,    -1,   216,   108,   133,   256,   134,
    1008      109,    -1,    -1,   115,    -1,    -1,   130,   162,    -1
     857      -1,    22,    -1,    23,    -1,    15,    -1,    25,    -1,    26,
     858      -1,    27,    -1,    24,    -1,   236,    -1,   230,   236,    -1,
     859     235,   232,    -1,   235,   232,   226,    -1,   235,   232,   236,
     860      -1,   237,    -1,   225,   238,   225,    -1,   234,    -1,   226,
     861     234,    -1,   237,   227,    -1,   237,   234,    -1,    28,   109,
     862     275,   110,    -1,    28,   109,   168,   110,    -1,    78,   109,
     863     275,   110,    -1,    78,   109,   168,   110,    -1,   240,    -1,
     864     230,   240,    -1,   239,   232,    -1,   239,   232,   226,    -1,
     865     243,    -1,   226,   243,    -1,   240,   227,    -1,   242,    -1,
     866     230,   242,    -1,   241,   232,    -1,   241,   232,   226,    -1,
     867      74,    -1,   226,    74,    -1,   242,   227,    -1,   244,    -1,
     868     255,    -1,   246,   114,   247,   115,    -1,   246,   273,    -1,
     869      -1,   246,   273,   245,   114,   247,   115,    -1,   246,   109,
     870     291,   110,   114,   247,   115,    -1,   246,   284,    -1,    31,
     871     311,    -1,    32,   311,    -1,   248,    -1,   247,   248,    -1,
     872     249,   132,    -1,    40,   249,   132,    -1,   250,   132,    -1,
     873      40,   250,   132,    -1,   365,    -1,   365,   273,    -1,   249,
     874     116,   273,    -1,   249,   116,    -1,   224,   251,    -1,   250,
     875     116,   311,   251,    -1,    -1,   253,    -1,   317,   252,    -1,
     876     330,   252,    -1,   356,    -1,    -1,   253,    -1,   117,   162,
     877      -1,    30,   311,    -1,   254,   114,   257,   371,   115,    -1,
     878     254,   273,    -1,    -1,   254,   273,   256,   114,   257,   371,
     879     115,    -1,   273,   258,    -1,   257,   116,   273,   258,    -1,
     880      -1,   131,   162,    -1,    -1,   260,    -1,   262,    -1,   261,
     881      -1,   261,   135,   116,   134,   262,    -1,   262,   135,   116,
     882     134,    96,    -1,   261,   135,   116,   134,    96,    -1,   266,
     883      -1,   262,   135,   116,   134,   266,    -1,   261,   135,   116,
     884     134,   266,    -1,   261,   135,   116,   134,   262,   135,   116,
     885     134,   266,    -1,   267,    -1,   262,   135,   116,   134,   267,
     886      -1,    -1,   264,    -1,   265,    -1,   265,   135,   116,   134,
     887      96,    -1,   269,    -1,   268,    -1,   265,   135,   116,   134,
     888     269,    -1,   265,   135,   116,   134,   268,    -1,   268,    -1,
     889     361,   271,   372,    -1,   369,   271,   372,    -1,   226,   369,
     890     271,   372,    -1,   216,    -1,   269,    -1,   361,    -1,   369,
     891      -1,   226,   369,    -1,   370,    -1,   223,   335,   372,    -1,
     892     223,   339,   372,    -1,   223,    -1,   223,   350,    -1,   139,
     893      -1,   270,   116,   139,    -1,   137,    -1,    74,    -1,    75,
     894      -1,   138,    -1,    74,    -1,    75,    -1,   139,    -1,    74,
     895      -1,    75,    -1,   365,    -1,   224,    -1,   224,   356,    -1,
     896     365,    -1,   370,    -1,   224,    -1,   224,   344,    -1,    -1,
     897     131,   277,    -1,   107,   277,    -1,   163,    -1,   114,   278,
     898     371,   115,    -1,    -1,   277,    -1,   279,   277,    -1,   278,
     899     116,   277,    -1,   278,   116,   279,   277,    -1,   280,   117,
     900      -1,   273,   117,    -1,   281,    -1,   280,   281,    -1,    80,
     901      -1,   113,   273,    -1,   111,   134,   163,   135,   112,    -1,
     902     111,   134,   309,   135,   112,    -1,   111,   134,   162,    96,
     903     162,   135,   112,    -1,   113,   111,   134,   146,   135,   112,
     904      -1,   283,    -1,   230,   283,    -1,   282,   232,    -1,   282,
     905     232,   226,    -1,   284,    -1,   226,   284,    -1,   283,   227,
     906      -1,    75,   109,   291,   110,    -1,   286,   372,    -1,   285,
     907     116,   286,   372,    -1,    -1,   288,   273,   287,   289,    -1,
     908     224,   335,    -1,    33,    -1,    35,    -1,    34,    -1,    -1,
     909     289,   290,    -1,   129,   273,   109,   291,   110,    -1,   129,
     910     114,   134,   297,   115,    -1,   129,   109,   134,   285,   135,
     911     110,   114,   134,   297,   115,   109,   291,   110,    -1,   275,
     912      -1,   163,    -1,   291,   116,   275,    -1,   291,   116,   163,
     913      -1,    33,   293,    -1,   231,    33,   293,    -1,   292,   116,
     914     293,    -1,   294,   289,    -1,   294,   289,   131,   275,    -1,
     915     273,    -1,   272,   109,   134,   285,   135,   110,    -1,    36,
     916     273,   109,   134,   285,   135,   110,   114,   115,    -1,    -1,
     917      36,   273,   109,   134,   285,   135,   110,   114,   296,   297,
     918     115,    -1,   298,    -1,   297,   134,   298,    -1,   299,   135,
     919     132,    -1,   300,   135,   132,    -1,   214,    -1,   216,    -1,
     920     299,   135,   116,   134,   271,    -1,   224,   308,    -1,   300,
     921     135,   116,   134,   308,    -1,    -1,   302,    -1,   304,    -1,
     922     302,   134,   304,    -1,    -1,   302,    -1,   211,    -1,   306,
     923      -1,   197,    -1,    -1,     5,    82,   305,   114,   303,   115,
     924      -1,    40,   304,    -1,   307,    -1,   322,   172,    -1,   326,
     925     134,   206,   172,    -1,   215,   172,    -1,   223,   322,   172,
     926      -1,   226,   322,   172,    -1,   230,   322,   172,    -1,   230,
     927     226,   322,   172,    -1,   223,   326,   134,   206,   172,    -1,
     928     226,   326,   134,   206,   172,    -1,   230,   326,   134,   206,
     929     172,    -1,   230,   226,   326,   134,   206,   172,    -1,   317,
     930      -1,   322,    -1,   330,    -1,   162,   123,   162,    -1,    -1,
     931      64,   109,   141,   110,   311,    -1,    -1,   312,    -1,   313,
     932      -1,   312,   313,    -1,    39,   109,   109,   314,   110,   110,
     933      -1,   315,    -1,   314,   116,   315,    -1,    -1,   316,    -1,
     934     316,   109,   169,   110,    -1,   271,    -1,   233,    -1,   234,
     935      -1,   227,    -1,   318,   311,    -1,   319,    -1,   320,   311,
     936      -1,   321,   311,    -1,   137,    -1,   109,   318,   110,    -1,
     937     119,   317,    -1,   119,   226,   317,    -1,   109,   319,   110,
     938      -1,   318,   348,    -1,   109,   319,   110,   348,    -1,   109,
     939     320,   110,   349,    -1,   109,   320,   110,    -1,   109,   319,
     940     110,   109,   134,   263,   135,   110,    -1,   109,   321,   110,
     941      -1,   323,   311,    -1,   324,    -1,   325,   311,    -1,   318,
     942     109,   134,   263,   135,   110,    -1,   109,   324,   110,   109,
     943     134,   263,   135,   110,    -1,   109,   323,   110,    -1,   119,
     944     322,    -1,   119,   226,   322,    -1,   109,   324,   110,    -1,
     945     109,   324,   110,   348,    -1,   109,   325,   110,   349,    -1,
     946     109,   325,   110,    -1,   327,    -1,   328,    -1,   329,    -1,
     947     318,   109,   270,   110,    -1,   109,   328,   110,   109,   270,
     948     110,    -1,   109,   327,   110,    -1,   119,   326,    -1,   119,
     949     226,   326,    -1,   109,   328,   110,    -1,   109,   328,   110,
     950     348,    -1,   109,   329,   110,   349,    -1,   109,   329,   110,
     951      -1,   331,   311,    -1,   332,    -1,   333,   311,    -1,   334,
     952     311,    -1,   340,    -1,   109,   331,   110,    -1,   119,   330,
     953      -1,   119,   226,   330,    -1,   109,   332,   110,    -1,   331,
     954     348,    -1,   109,   332,   110,   348,    -1,   109,   333,   110,
     955     349,    -1,   109,   333,   110,    -1,   331,   109,   134,   263,
     956     135,   110,    -1,   109,   332,   110,   109,   134,   263,   135,
     957     110,    -1,   109,   334,   110,    -1,   318,   311,    -1,   336,
     958      -1,   337,   311,    -1,   338,   311,    -1,   119,   335,    -1,
     959     119,   226,   335,    -1,   109,   336,   110,    -1,   318,   354,
     960      -1,   109,   336,   110,   348,    -1,   109,   337,   110,   349,
     961      -1,   109,   337,   110,    -1,   318,   109,   134,   263,   135,
     962     110,    -1,   109,   336,   110,   109,   134,   263,   135,   110,
     963      -1,   109,   338,   110,    -1,   340,   311,    -1,   341,    -1,
     964     342,   311,    -1,   343,   311,    -1,    74,    -1,    75,    -1,
     965     119,   339,    -1,   119,   226,   339,    -1,   109,   341,   110,
     966      -1,   340,   354,    -1,   109,   341,   110,   354,    -1,   340,
     967     109,   134,   263,   135,   110,    -1,   109,   341,   110,   109,
     968     134,   263,   135,   110,    -1,   345,    -1,   346,   311,    -1,
     969     347,   311,    -1,   119,    -1,   119,   226,    -1,   119,   344,
     970      -1,   119,   226,   344,    -1,   109,   345,   110,    -1,   348,
     971      -1,   109,   345,   110,   348,    -1,   109,   346,   110,   349,
     972      -1,   109,   346,   110,    -1,   109,   134,   263,   135,   110,
     973      -1,   109,   345,   110,   109,   134,   263,   135,   110,    -1,
     974     109,   347,   110,    -1,   111,   112,    -1,   111,   112,   349,
     975      -1,   349,    -1,   111,   134,   163,   135,   112,    -1,   111,
     976     134,   119,   135,   112,    -1,   349,   111,   134,   163,   135,
     977     112,    -1,   349,   111,   134,   119,   135,   112,    -1,   351,
     978      -1,   352,   311,    -1,   353,   311,    -1,   119,    -1,   119,
     979     226,    -1,   119,   350,    -1,   119,   226,   350,    -1,   109,
     980     351,   110,    -1,   354,    -1,   109,   351,   110,   354,    -1,
     981     109,   352,   110,   349,    -1,   109,   352,   110,    -1,   109,
     982     134,   263,   135,   110,    -1,   109,   351,   110,   109,   134,
     983     263,   135,   110,    -1,   109,   353,   110,    -1,   355,    -1,
     984     355,   349,    -1,   349,    -1,   111,   112,    -1,   111,   134,
     985     226,   119,   135,   112,    -1,   111,   134,   226,   135,   112,
     986      -1,   111,   134,   226,   163,   135,   112,    -1,   111,   134,
     987       7,   225,   163,   135,   112,    -1,   111,   134,   226,     7,
     988     163,   135,   112,    -1,   357,    -1,   358,   311,    -1,   359,
     989     311,    -1,   119,    -1,   119,   226,    -1,   119,   356,    -1,
     990     119,   226,   356,    -1,   109,   357,   110,    -1,   348,    -1,
     991     109,   357,   110,   348,    -1,   109,   358,   110,   349,    -1,
     992     109,   358,   110,    -1,   109,   357,   110,   109,   134,   263,
     993     135,   110,    -1,   109,   359,   110,    -1,   361,    -1,   369,
     994      -1,   226,   369,    -1,   362,    -1,   363,    -1,   119,   224,
     995      -1,   226,   119,   224,    -1,   119,   370,    -1,   226,   119,
     996     370,    -1,   119,   360,    -1,   226,   119,   360,    -1,   111,
     997     112,   224,    -1,   364,   224,    -1,   111,   112,   349,   224,
     998      -1,   364,   349,   224,    -1,   349,   224,    -1,   111,   112,
     999     362,    -1,   364,   362,    -1,   111,   112,   349,   362,    -1,
     1000     364,   349,   362,    -1,   349,   362,    -1,   111,   134,   226,
     1001     119,   135,   112,    -1,   111,   134,   226,   163,   135,   112,
     1002      -1,   111,   134,   230,   163,   135,   112,    -1,   111,   134,
     1003     230,   226,   163,   135,   112,    -1,   369,    -1,   226,   369,
     1004      -1,   366,    -1,   367,    -1,   368,    -1,   119,   224,    -1,
     1005     226,   119,   224,    -1,   119,   370,    -1,   226,   119,   370,
     1006      -1,   119,   365,    -1,   226,   119,   365,    -1,   111,   112,
     1007     224,    -1,   111,   112,   349,   224,    -1,   349,   224,    -1,
     1008     111,   112,   367,    -1,   111,   112,   349,   367,    -1,   349,
     1009     367,    -1,   111,   134,   262,   135,   112,    -1,   111,   112,
     1010     109,   259,   110,    -1,   369,   109,   134,   259,   135,   110,
     1011      -1,   217,   109,   134,   259,   135,   110,    -1,    -1,   116,
     1012      -1,    -1,   131,   163,    -1
    10091013};
    10101014
     
    10121016static const yytype_uint16 yyrline[] =
    10131017{
    1014        0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
    1015      317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
    1016      343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
    1017      369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
    1018      402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
    1019      429,   431,   433,   435,   437,   439,   445,   447,   449,   451,
    1020      453,   455,   457,   459,   461,   466,   467,   468,   469,   473,
    1021      474,   476,   481,   482,   484,   486,   491,   492,   494,   499,
    1022      500,   502,   507,   508,   510,   512,   514,   519,   520,   522,
    1023      527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
    1024      557,   558,   560,   562,   567,   572,   573,   575,   577,   583,
    1025      584,   590,   592,   594,   596,   601,   602,   607,   608,   609,
    1026      610,   611,   612,   613,   614,   615,   616,   620,   621,   627,
    1027      628,   634,   635,   636,   637,   638,   639,   640,   641,   642,
    1028      651,   658,   660,   670,   671,   676,   678,   680,   682,   686,
    1029      687,   692,   697,   700,   702,   704,   709,   711,   719,   720,
    1030      722,   726,   727,   732,   733,   738,   739,   743,   748,   749,
    1031      753,   755,   761,   762,   766,   768,   770,   772,   778,   779,
    1032      783,   784,   788,   790,   792,   797,   799,   804,   806,   810,
    1033      813,   817,   820,   824,   826,   830,   832,   839,   841,   843,
    1034      852,   854,   856,   858,   860,   865,   867,   869,   871,   876,
    1035      889,   890,   895,   897,   902,   906,   908,   910,   912,   914,
    1036      920,   921,   927,   928,   932,   933,   938,   940,   946,   947,
    1037      949,   954,   956,   963,   965,   969,   970,   975,   977,   981,
    1038      982,   986,   988,   992,   993,   997,   998,  1002,  1003,  1018,
    1039     1019,  1020,  1021,  1022,  1026,  1031,  1038,  1048,  1053,  1058,
    1040     1066,  1071,  1076,  1081,  1086,  1094,  1116,  1121,  1128,  1130,
    1041     1137,  1142,  1147,  1158,  1163,  1168,  1173,  1178,  1187,  1192,
    1042     1200,  1201,  1202,  1203,  1209,  1214,  1222,  1223,  1224,  1225,
    1043     1229,  1230,  1231,  1232,  1237,  1238,  1247,  1248,  1253,  1254,
    1044     1259,  1261,  1263,  1265,  1267,  1270,  1269,  1281,  1282,  1284,
    1045     1294,  1295,  1300,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
    1046     1318,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
    1047     1341,  1343,  1345,  1351,  1352,  1354,  1356,  1358,  1363,  1364,
    1048     1370,  1371,  1373,  1375,  1380,  1382,  1384,  1386,  1391,  1392,
    1049     1394,  1396,  1401,  1402,  1404,  1409,  1410,  1412,  1414,  1419,
    1050     1421,  1423,  1428,  1429,  1433,  1435,  1437,  1439,  1441,  1446,
    1051     1448,  1453,  1455,  1460,  1461,  1463,  1464,  1469,  1470,  1472,
    1052     1474,  1479,  1481,  1487,  1488,  1490,  1493,  1496,  1501,  1502,
    1053     1507,  1512,  1516,  1518,  1520,  1525,  1527,  1533,  1534,  1542,
    1054     1543,  1547,  1548,  1549,  1551,  1553,  1560,  1561,  1563,  1565,
    1055     1570,  1571,  1577,  1578,  1582,  1583,  1588,  1589,  1590,  1592,
    1056     1600,  1601,  1603,  1606,  1608,  1612,  1613,  1614,  1616,  1618,
    1057     1622,  1627,  1635,  1636,  1645,  1647,  1652,  1653,  1654,  1658,
    1058     1659,  1660,  1664,  1665,  1666,  1670,  1671,  1672,  1677,  1678,
    1059     1679,  1680,  1686,  1687,  1689,  1694,  1695,  1700,  1701,  1702,
    1060     1703,  1704,  1719,  1720,  1725,  1726,  1734,  1736,  1738,  1741,
    1061     1743,  1745,  1768,  1769,  1771,  1773,  1778,  1779,  1781,  1786,
    1062     1791,  1792,  1798,  1797,  1801,  1805,  1807,  1809,  1815,  1816,
    1063     1821,  1826,  1828,  1833,  1835,  1836,  1838,  1843,  1845,  1847,
    1064     1852,  1854,  1859,  1864,  1872,  1878,  1877,  1891,  1892,  1897,
    1065     1898,  1902,  1907,  1912,  1920,  1925,  1936,  1937,  1948,  1949,
    1066     1955,  1956,  1960,  1961,  1962,  1965,  1964,  1975,  1980,  1985,
    1067     1991,  2000,  2006,  2012,  2018,  2024,  2032,  2038,  2046,  2052,
    1068     2061,  2062,  2063,  2067,  2071,  2073,  2078,  2079,  2083,  2084,
    1069     2089,  2095,  2096,  2099,  2101,  2102,  2106,  2107,  2108,  2109,
    1070     2143,  2145,  2146,  2148,  2153,  2158,  2163,  2165,  2167,  2172,
    1071     2174,  2176,  2178,  2183,  2185,  2195,  2197,  2198,  2203,  2205,
    1072     2207,  2212,  2214,  2216,  2221,  2223,  2225,  2234,  2235,  2236,
    1073     2240,  2242,  2244,  2249,  2251,  2253,  2258,  2260,  2262,  2277,
    1074     2279,  2280,  2282,  2287,  2288,  2293,  2295,  2297,  2302,  2304,
    1075     2306,  2308,  2313,  2315,  2317,  2327,  2329,  2330,  2332,  2337,
    1076     2339,  2341,  2346,  2348,  2350,  2352,  2357,  2359,  2361,  2392,
    1077     2394,  2395,  2397,  2402,  2407,  2415,  2417,  2419,  2424,  2426,
    1078     2431,  2433,  2447,  2448,  2450,  2455,  2457,  2459,  2461,  2463,
    1079     2468,  2469,  2471,  2473,  2478,  2480,  2482,  2488,  2490,  2492,
    1080     2496,  2498,  2500,  2502,  2516,  2517,  2519,  2524,  2526,  2528,
    1081     2530,  2532,  2537,  2538,  2540,  2542,  2547,  2549,  2551,  2557,
    1082     2558,  2560,  2569,  2572,  2574,  2577,  2579,  2581,  2594,  2595,
    1083     2597,  2602,  2604,  2606,  2608,  2610,  2615,  2616,  2618,  2620,
    1084     2625,  2627,  2635,  2636,  2637,  2642,  2643,  2647,  2649,  2651,
    1085     2653,  2655,  2657,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
    1086     2678,  2680,  2682,  2687,  2689,  2691,  2696,  2722,  2723,  2725,
    1087     2729,  2730,  2734,  2736,  2738,  2740,  2742,  2744,  2751,  2753,
    1088     2755,  2757,  2759,  2761,  2766,  2771,  2773,  2775,  2793,  2795,
    1089     2800,  2801
     1018       0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
     1019     319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
     1020     345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
     1021     371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
     1022     404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
     1023     431,   433,   435,   437,   439,   441,   447,   449,   451,   453,
     1024     455,   457,   459,   461,   463,   468,   469,   470,   471,   475,
     1025     476,   478,   483,   484,   486,   488,   493,   494,   496,   501,
     1026     502,   504,   509,   510,   512,   514,   516,   521,   522,   524,
     1027     529,   530,   535,   536,   541,   542,   547,   548,   553,   554,
     1028     559,   560,   562,   564,   569,   574,   575,   577,   579,   585,
     1029     586,   592,   594,   596,   598,   603,   604,   609,   610,   611,
     1030     612,   613,   614,   615,   616,   617,   618,   622,   623,   629,
     1031     630,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     1032     653,   660,   662,   672,   673,   678,   680,   682,   684,   688,
     1033     689,   694,   699,   702,   704,   706,   711,   713,   721,   722,
     1034     724,   728,   729,   734,   735,   740,   741,   745,   750,   751,
     1035     755,   757,   763,   764,   768,   770,   772,   774,   780,   781,
     1036     785,   786,   790,   792,   794,   799,   801,   806,   808,   812,
     1037     815,   819,   822,   826,   828,   832,   834,   841,   843,   845,
     1038     854,   856,   858,   860,   862,   867,   869,   871,   873,   878,
     1039     891,   892,   897,   899,   904,   908,   910,   912,   914,   916,
     1040     922,   923,   929,   930,   934,   935,   940,   942,   948,   949,
     1041     951,   956,   958,   965,   967,   971,   972,   977,   979,   983,
     1042     984,   988,   990,   994,   995,   999,  1000,  1004,  1005,  1020,
     1043    1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,  1060,
     1044    1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,  1132,
     1045    1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,  1194,
     1046    1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,  1227,
     1047    1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,  1256,
     1048    1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,  1286,
     1049    1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
     1050    1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
     1051    1343,  1345,  1347,  1349,  1355,  1356,  1358,  1360,  1362,  1367,
     1052    1368,  1374,  1375,  1377,  1379,  1384,  1386,  1388,  1390,  1395,
     1053    1396,  1398,  1400,  1405,  1406,  1408,  1413,  1414,  1416,  1418,
     1054    1423,  1425,  1427,  1432,  1433,  1437,  1439,  1445,  1444,  1448,
     1055    1450,  1455,  1457,  1462,  1464,  1469,  1470,  1472,  1473,  1478,
     1056    1479,  1481,  1483,  1488,  1490,  1496,  1497,  1499,  1502,  1505,
     1057    1510,  1511,  1516,  1521,  1525,  1527,  1533,  1532,  1539,  1541,
     1058    1547,  1548,  1556,  1557,  1561,  1562,  1563,  1565,  1567,  1574,
     1059    1575,  1577,  1579,  1584,  1585,  1591,  1592,  1596,  1597,  1602,
     1060    1603,  1604,  1606,  1614,  1615,  1617,  1620,  1622,  1626,  1627,
     1061    1628,  1630,  1632,  1636,  1641,  1649,  1650,  1659,  1661,  1666,
     1062    1667,  1668,  1672,  1673,  1674,  1678,  1679,  1680,  1684,  1685,
     1063    1686,  1691,  1692,  1693,  1694,  1700,  1701,  1703,  1708,  1709,
     1064    1714,  1715,  1716,  1717,  1718,  1733,  1734,  1739,  1740,  1748,
     1065    1750,  1752,  1755,  1757,  1759,  1782,  1783,  1785,  1787,  1792,
     1066    1793,  1795,  1800,  1805,  1806,  1812,  1811,  1815,  1819,  1821,
     1067    1823,  1829,  1830,  1835,  1840,  1842,  1847,  1849,  1850,  1852,
     1068    1857,  1859,  1861,  1866,  1868,  1873,  1878,  1886,  1892,  1891,
     1069    1905,  1906,  1911,  1912,  1916,  1921,  1926,  1934,  1939,  1950,
     1070    1951,  1962,  1963,  1969,  1970,  1974,  1975,  1976,  1979,  1978,
     1071    1989,  1994,  1999,  2005,  2014,  2020,  2026,  2032,  2038,  2046,
     1072    2052,  2060,  2066,  2075,  2076,  2077,  2081,  2085,  2087,  2092,
     1073    2093,  2097,  2098,  2103,  2109,  2110,  2113,  2115,  2116,  2120,
     1074    2121,  2122,  2123,  2157,  2159,  2160,  2162,  2167,  2172,  2177,
     1075    2179,  2181,  2186,  2188,  2190,  2192,  2197,  2199,  2209,  2211,
     1076    2212,  2217,  2219,  2221,  2226,  2228,  2230,  2235,  2237,  2239,
     1077    2248,  2249,  2250,  2254,  2256,  2258,  2263,  2265,  2267,  2272,
     1078    2274,  2276,  2291,  2293,  2294,  2296,  2301,  2302,  2307,  2309,
     1079    2311,  2316,  2318,  2320,  2322,  2327,  2329,  2331,  2341,  2343,
     1080    2344,  2346,  2351,  2353,  2355,  2360,  2362,  2364,  2366,  2371,
     1081    2373,  2375,  2406,  2408,  2409,  2411,  2416,  2421,  2429,  2431,
     1082    2433,  2438,  2440,  2445,  2447,  2461,  2462,  2464,  2469,  2471,
     1083    2473,  2475,  2477,  2482,  2483,  2485,  2487,  2492,  2494,  2496,
     1084    2502,  2504,  2506,  2510,  2512,  2514,  2516,  2530,  2531,  2533,
     1085    2538,  2540,  2542,  2544,  2546,  2551,  2552,  2554,  2556,  2561,
     1086    2563,  2565,  2571,  2572,  2574,  2583,  2586,  2588,  2591,  2593,
     1087    2595,  2608,  2609,  2611,  2616,  2618,  2620,  2622,  2624,  2629,
     1088    2630,  2632,  2634,  2639,  2641,  2649,  2650,  2651,  2656,  2657,
     1089    2661,  2663,  2665,  2667,  2669,  2671,  2678,  2680,  2682,  2684,
     1090    2686,  2688,  2690,  2692,  2694,  2696,  2701,  2703,  2705,  2710,
     1091    2736,  2737,  2739,  2743,  2744,  2748,  2750,  2752,  2754,  2756,
     1092    2758,  2765,  2767,  2769,  2771,  2773,  2775,  2780,  2785,  2787,
     1093    2789,  2807,  2809,  2814,  2815
    10901094};
    10911095#endif
     
    10991103  "STATIC", "INLINE", "FORTRAN", "CONST", "VOLATILE", "RESTRICT", "FORALL",
    11001104  "LVALUE", "VOID", "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE",
    1101   "SIGNED", "UNSIGNED", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF", "LABEL",
    1102   "ENUM", "STRUCT", "UNION", "TYPE", "FTYPE", "DTYPE", "CONTEXT", "SIZEOF",
    1103   "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE",
    1104   "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN",
    1105   "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
    1106   "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
    1107   "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT", "THREADLOCAL",
    1108   "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname",
    1109   "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
     1105  "SIGNED", "UNSIGNED", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
     1106  "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TRAIT",
     1107  "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH",
     1108  "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO",
     1109  "RETURN", "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH",
     1110  "CATCHRESUME", "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS",
     1111  "ALIGNOF", "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT",
     1112  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
     1113  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    11101114  "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
    11111115  "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
     
    11521156  "sue_declaration_specifier", "sue_type_specifier",
    11531157  "typedef_declaration_specifier", "typedef_type_specifier",
    1154   "elaborated_type_name", "aggregate_name", "aggregate_key",
     1158  "elaborated_type_name", "aggregate_name", "$@2", "aggregate_key",
    11551159  "field_declaration_list", "field_declaration",
    11561160  "new_field_declaring_list", "field_declaring_list", "field_declarator",
    11571161  "bit_subrange_size_opt", "bit_subrange_size", "enum_key", "enum_name",
    1158   "enumerator_list", "enumerator_value_opt", "new_parameter_type_list_opt",
    1159   "new_parameter_type_list", "new_parameter_list",
    1160   "new_abstract_parameter_list", "parameter_type_list_opt",
    1161   "parameter_type_list", "parameter_list", "new_parameter_declaration",
    1162   "new_abstract_parameter_declaration", "parameter_declaration",
    1163   "abstract_parameter_declaration", "identifier_list",
    1164   "identifier_or_type_name", "no_01_identifier_or_type_name",
    1165   "no_attr_identifier_or_type_name", "type_name_no_function", "type_name",
    1166   "initializer_opt", "initializer", "initializer_list", "designation",
    1167   "designator_list", "designator", "typegen_declaration_specifier",
    1168   "typegen_type_specifier", "typegen_name", "type_parameter_list",
    1169   "type_parameter", "$@2", "type_class", "assertion_list_opt", "assertion",
    1170   "type_name_list", "type_declaring_list", "type_declarator",
    1171   "type_declarator_name", "context_specifier", "$@3",
    1172   "context_declaration_list", "context_declaration",
    1173   "new_context_declaring_list", "context_declaring_list",
    1174   "translation_unit", "external_definition_list",
    1175   "external_definition_list_opt", "external_definition", "$@4",
    1176   "external_function_definition", "function_definition", "declarator",
    1177   "subrange", "asm_name_opt", "attribute_list_opt", "attribute_list",
    1178   "attribute", "attribute_parameter_list", "attrib", "any_word",
    1179   "variable_declarator", "paren_identifier", "variable_ptr",
    1180   "variable_array", "variable_function", "function_declarator",
    1181   "function_no_ptr", "function_ptr", "function_array",
    1182   "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
    1183   "old_function_array", "type_redeclarator", "paren_type", "type_ptr",
    1184   "type_array", "type_function", "identifier_parameter_declarator",
     1162  "$@3", "enumerator_list", "enumerator_value_opt",
     1163  "new_parameter_type_list_opt", "new_parameter_type_list",
     1164  "new_parameter_list", "new_abstract_parameter_list",
     1165  "parameter_type_list_opt", "parameter_type_list", "parameter_list",
     1166  "new_parameter_declaration", "new_abstract_parameter_declaration",
     1167  "parameter_declaration", "abstract_parameter_declaration",
     1168  "identifier_list", "identifier_or_type_name",
     1169  "no_01_identifier_or_type_name", "no_attr_identifier_or_type_name",
     1170  "type_name_no_function", "type_name", "initializer_opt", "initializer",
     1171  "initializer_list", "designation", "designator_list", "designator",
     1172  "typegen_declaration_specifier", "typegen_type_specifier",
     1173  "typegen_name", "type_parameter_list", "type_parameter", "$@4",
     1174  "type_class", "assertion_list_opt", "assertion", "type_name_list",
     1175  "type_declaring_list", "type_declarator", "type_declarator_name",
     1176  "trait_specifier", "$@5", "trait_declaration_list", "trait_declaration",
     1177  "new_trait_declaring_list", "trait_declaring_list", "translation_unit",
     1178  "external_definition_list", "external_definition_list_opt",
     1179  "external_definition", "$@6", "external_function_definition",
     1180  "function_definition", "declarator", "subrange", "asm_name_opt",
     1181  "attribute_list_opt", "attribute_list", "attribute",
     1182  "attribute_parameter_list", "attrib", "any_word", "variable_declarator",
     1183  "paren_identifier", "variable_ptr", "variable_array",
     1184  "variable_function", "function_declarator", "function_no_ptr",
     1185  "function_ptr", "function_array", "old_function_declarator",
     1186  "old_function_no_ptr", "old_function_ptr", "old_function_array",
     1187  "type_redeclarator", "paren_type", "type_ptr", "type_array",
     1188  "type_function", "identifier_parameter_declarator",
    11851189  "identifier_parameter_ptr", "identifier_parameter_array",
    11861190  "identifier_parameter_function", "type_parameter_redeclarator",
     
    12191223     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12201224     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1221      355,   356,   357,   358,   359,   360,   361,   362,    40,    41,
    1222       91,    93,    46,   123,   125,    44,    58,    33,    42,    38,
    1223       43,    45,   126,    47,    37,    60,    62,    94,   124,    63,
    1224       61,    59
     1225     355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
     1226      41,    91,    93,    46,   123,   125,    44,    58,    33,    42,
     1227      38,    43,    45,   126,    47,    37,    60,    62,    94,   124,
     1228      63,    61,    59
    12251229};
    12261230# endif
     
    12291233static const yytype_uint16 yyr1[] =
    12301234{
    1231        0,   132,   133,   134,   135,   135,   135,   136,   136,   136,
    1232      137,   137,   138,   138,   139,   139,   140,   140,   141,   141,
    1233      141,   141,   142,   142,   142,   142,   142,   142,   142,   142,
    1234      142,   142,   142,   143,   143,   144,   144,   144,   144,   144,
    1235      145,   145,   146,   146,   146,   146,   146,   147,   147,   147,
    1236      147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
    1237      147,   147,   147,   147,   147,   148,   148,   148,   148,   149,
    1238      149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
    1239      152,   152,   153,   153,   153,   153,   153,   154,   154,   154,
    1240      155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
    1241      160,   160,   160,   160,   161,   162,   162,   162,   162,   163,
    1242      163,   164,   164,   164,   164,   165,   165,   166,   166,   166,
    1243      166,   166,   166,   166,   166,   166,   166,   167,   167,   168,
    1244      168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
    1245      170,   171,   171,   172,   172,   173,   173,   173,   173,   174,
    1246      174,   175,   176,   176,   176,   176,   176,   176,   177,   177,
    1247      177,   178,   178,   179,   179,   180,   180,   181,   182,   182,
    1248      183,   183,   184,   184,   185,   185,   185,   185,   186,   186,
    1249      187,   187,   188,   188,   188,   189,   189,   190,   190,   190,
    1250      190,   190,   190,   190,   190,   190,   190,   191,   191,   191,
    1251      192,   192,   192,   192,   192,   193,   193,   193,   193,   194,
    1252      195,   195,   195,   195,   195,   196,   196,   196,   196,   196,
    1253      197,   197,   198,   198,   199,   199,   200,   200,   201,   201,
    1254      201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
    1255      206,   207,   207,   208,   208,   209,   209,   210,   210,   211,
    1256      211,   211,   211,   211,   212,   212,   212,   213,   213,   213,
    1257      214,   214,   214,   214,   214,   215,   215,   215,   216,   216,
    1258      217,   217,   217,   218,   218,   218,   218,   218,   219,   219,
    1259      220,   220,   220,   220,   221,   221,   222,   222,   222,   222,
    1260      223,   223,   223,   223,   224,   224,   225,   225,   226,   226,
    1261      227,   227,   227,   227,   227,   228,   227,   229,   229,   229,
    1262      230,   230,   231,   232,   232,   232,   232,   232,   232,   232,
    1263      232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
    1264      233,   233,   233,   234,   234,   234,   234,   234,   235,   235,
    1265      236,   236,   236,   236,   237,   237,   237,   237,   238,   238,
    1266      238,   238,   239,   239,   239,   240,   240,   240,   240,   241,
    1267      241,   241,   242,   242,   243,   243,   243,   243,   243,   244,
    1268      244,   245,   245,   246,   246,   246,   246,   247,   247,   247,
    1269      247,   248,   248,   249,   249,   249,   249,   249,   250,   250,
    1270      251,   252,   253,   253,   253,   254,   254,   255,   255,   256,
    1271      256,   257,   257,   257,   257,   257,   258,   258,   258,   258,
    1272      259,   259,   260,   260,   261,   261,   262,   262,   262,   262,
    1273      263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
    1274      265,   265,   266,   266,   267,   267,   268,   268,   268,   269,
    1275      269,   269,   270,   270,   270,   271,   271,   271,   272,   272,
    1276      272,   272,   273,   273,   273,   274,   274,   275,   275,   275,
    1277      275,   275,   276,   276,   277,   277,   278,   278,   278,   278,
    1278      278,   278,   279,   279,   279,   279,   280,   280,   280,   281,
    1279      282,   282,   284,   283,   283,   285,   285,   285,   286,   286,
    1280      287,   287,   287,   288,   288,   288,   288,   289,   289,   289,
    1281      290,   290,   291,   291,   292,   293,   292,   294,   294,   295,
    1282      295,   296,   296,   296,   297,   297,   298,   298,   299,   299,
    1283      300,   300,   301,   301,   301,   302,   301,   301,   303,   303,
    1284      303,   304,   304,   304,   304,   304,   304,   304,   304,   304,
    1285      305,   305,   305,   306,   307,   307,   308,   308,   309,   309,
    1286      310,   311,   311,   312,   312,   312,   313,   313,   313,   313,
    1287      314,   314,   314,   314,   315,   315,   316,   316,   316,   317,
    1288      317,   317,   317,   318,   318,   319,   319,   319,   320,   320,
    1289      320,   321,   321,   321,   322,   322,   322,   323,   323,   323,
    1290      324,   324,   324,   325,   325,   325,   326,   326,   326,   327,
    1291      327,   327,   327,   328,   328,   329,   329,   329,   330,   330,
    1292      330,   330,   331,   331,   331,   332,   332,   332,   332,   333,
    1293      333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
    1294      336,   336,   336,   337,   337,   338,   338,   338,   339,   339,
    1295      340,   340,   341,   341,   341,   342,   342,   342,   342,   342,
    1296      343,   343,   343,   343,   344,   344,   344,   345,   345,   345,
    1297      346,   346,   346,   346,   347,   347,   347,   348,   348,   348,
    1298      348,   348,   349,   349,   349,   349,   350,   350,   350,   351,
    1299      351,   351,   352,   352,   352,   352,   352,   352,   353,   353,
    1300      353,   354,   354,   354,   354,   354,   355,   355,   355,   355,
    1301      356,   356,   357,   357,   357,   358,   358,   359,   359,   359,
    1302      359,   359,   359,   360,   360,   360,   360,   360,   360,   360,
    1303      360,   360,   360,   361,   361,   361,   361,   362,   362,   362,
    1304      363,   363,   364,   364,   364,   364,   364,   364,   365,   365,
    1305      365,   365,   365,   365,   366,   367,   367,   367,   368,   368,
    1306      369,   369
     1235       0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
     1236     138,   138,   139,   139,   140,   140,   141,   141,   142,   142,
     1237     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
     1238     143,   143,   143,   144,   144,   145,   145,   145,   145,   145,
     1239     146,   146,   147,   147,   147,   147,   147,   148,   148,   148,
     1240     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
     1241     148,   148,   148,   148,   148,   149,   149,   149,   149,   150,
     1242     150,   150,   151,   151,   151,   151,   152,   152,   152,   153,
     1243     153,   153,   154,   154,   154,   154,   154,   155,   155,   155,
     1244     156,   156,   157,   157,   158,   158,   159,   159,   160,   160,
     1245     161,   161,   161,   161,   162,   163,   163,   163,   163,   164,
     1246     164,   165,   165,   165,   165,   166,   166,   167,   167,   167,
     1247     167,   167,   167,   167,   167,   167,   167,   168,   168,   169,
     1248     169,   170,   170,   170,   170,   170,   170,   170,   170,   170,
     1249     171,   172,   172,   173,   173,   174,   174,   174,   174,   175,
     1250     175,   176,   177,   177,   177,   177,   177,   177,   178,   178,
     1251     178,   179,   179,   180,   180,   181,   181,   182,   183,   183,
     1252     184,   184,   185,   185,   186,   186,   186,   186,   187,   187,
     1253     188,   188,   189,   189,   189,   190,   190,   191,   191,   191,
     1254     191,   191,   191,   191,   191,   191,   191,   192,   192,   192,
     1255     193,   193,   193,   193,   193,   194,   194,   194,   194,   195,
     1256     196,   196,   196,   196,   196,   197,   197,   197,   197,   197,
     1257     198,   198,   199,   199,   200,   200,   201,   201,   202,   202,
     1258     202,   203,   203,   204,   204,   205,   205,   206,   206,   207,
     1259     207,   208,   208,   209,   209,   210,   210,   211,   211,   212,
     1260     212,   212,   212,   212,   213,   213,   213,   214,   214,   214,
     1261     215,   215,   215,   215,   215,   216,   216,   216,   217,   217,
     1262     218,   218,   218,   219,   219,   219,   219,   219,   220,   220,
     1263     221,   221,   221,   221,   222,   222,   223,   223,   223,   223,
     1264     224,   224,   224,   224,   225,   225,   226,   226,   227,   227,
     1265     228,   228,   228,   228,   228,   229,   228,   230,   230,   230,
     1266     231,   231,   232,   233,   233,   233,   233,   233,   233,   233,
     1267     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
     1268     234,   234,   234,   234,   235,   235,   235,   235,   235,   236,
     1269     236,   237,   237,   237,   237,   238,   238,   238,   238,   239,
     1270     239,   239,   239,   240,   240,   240,   241,   241,   241,   241,
     1271     242,   242,   242,   243,   243,   244,   244,   245,   244,   244,
     1272     244,   246,   246,   247,   247,   248,   248,   248,   248,   249,
     1273     249,   249,   249,   250,   250,   251,   251,   251,   251,   251,
     1274     252,   252,   253,   254,   255,   255,   256,   255,   257,   257,
     1275     258,   258,   259,   259,   260,   260,   260,   260,   260,   261,
     1276     261,   261,   261,   262,   262,   263,   263,   264,   264,   265,
     1277     265,   265,   265,   266,   266,   266,   266,   266,   267,   267,
     1278     267,   267,   267,   268,   268,   269,   269,   270,   270,   271,
     1279     271,   271,   272,   272,   272,   273,   273,   273,   274,   274,
     1280     274,   275,   275,   275,   275,   276,   276,   276,   277,   277,
     1281     278,   278,   278,   278,   278,   279,   279,   280,   280,   281,
     1282     281,   281,   281,   281,   281,   282,   282,   282,   282,   283,
     1283     283,   283,   284,   285,   285,   287,   286,   286,   288,   288,
     1284     288,   289,   289,   290,   290,   290,   291,   291,   291,   291,
     1285     292,   292,   292,   293,   293,   294,   294,   295,   296,   295,
     1286     297,   297,   298,   298,   299,   299,   299,   300,   300,   301,
     1287     301,   302,   302,   303,   303,   304,   304,   304,   305,   304,
     1288     304,   306,   306,   306,   307,   307,   307,   307,   307,   307,
     1289     307,   307,   307,   308,   308,   308,   309,   310,   310,   311,
     1290     311,   312,   312,   313,   314,   314,   315,   315,   315,   316,
     1291     316,   316,   316,   317,   317,   317,   317,   318,   318,   319,
     1292     319,   319,   320,   320,   320,   320,   321,   321,   322,   322,
     1293     322,   323,   323,   323,   324,   324,   324,   325,   325,   325,
     1294     326,   326,   326,   327,   327,   327,   328,   328,   328,   329,
     1295     329,   329,   330,   330,   330,   330,   331,   331,   332,   332,
     1296     332,   333,   333,   333,   333,   334,   334,   334,   335,   335,
     1297     335,   335,   336,   336,   336,   337,   337,   337,   337,   338,
     1298     338,   338,   339,   339,   339,   339,   340,   340,   341,   341,
     1299     341,   342,   342,   343,   343,   344,   344,   344,   345,   345,
     1300     345,   345,   345,   346,   346,   346,   346,   347,   347,   347,
     1301     348,   348,   348,   349,   349,   349,   349,   350,   350,   350,
     1302     351,   351,   351,   351,   351,   352,   352,   352,   352,   353,
     1303     353,   353,   354,   354,   354,   355,   355,   355,   355,   355,
     1304     355,   356,   356,   356,   357,   357,   357,   357,   357,   358,
     1305     358,   358,   358,   359,   359,   360,   360,   360,   361,   361,
     1306     362,   362,   362,   362,   362,   362,   363,   363,   363,   363,
     1307     363,   363,   363,   363,   363,   363,   364,   364,   364,   364,
     1308     365,   365,   365,   366,   366,   367,   367,   367,   367,   367,
     1309     367,   368,   368,   368,   368,   368,   368,   369,   370,   370,
     1310     370,   371,   371,   372,   372
    13071311};
    13081312
     
    13431347       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
    13441348       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1345        1,     1,     1,     1,     2,     2,     3,     3,     1,     3,
    1346        1,     2,     2,     2,     4,     4,     4,     4,     1,     2,
    1347        2,     3,     1,     2,     2,     1,     2,     2,     3,     1,
    1348        2,     2,     1,     1,     4,     2,     5,     7,     2,     2,
    1349        2,     1,     2,     2,     3,     2,     3,     1,     2,     3,
    1350        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    1351        2,     2,     5,     6,     2,     2,     4,     0,     2,     0,
    1352        1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
    1353        1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
    1354        1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
    1355        3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
    1356        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    1357        1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
    1358        3,     4,     2,     2,     1,     2,     1,     2,     5,     5,
    1359        7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
    1360        2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
    1361        5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
    1362        2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
    1363        3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
    1364        0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
    1365        4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
    1366        1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
    1367        6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
    1368        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1369        4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
    1370        3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
    1371        4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    1372        1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1373        4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
    1374        3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
    1375        1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
    1376        6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
    1377        1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
    1378        5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
    1379        3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
    1380        2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
    1381        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1382        8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
    1383        3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
    1384        4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
    1385        1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
    1386        2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
    1387        0,     2
     1349       1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
     1350       3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
     1351       2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
     1352       1,     2,     2,     1,     1,     4,     2,     0,     6,     7,
     1353       2,     2,     2,     1,     2,     2,     3,     2,     3,     1,
     1354       2,     3,     2,     2,     4,     0,     1,     2,     2,     1,
     1355       0,     1,     2,     2,     5,     2,     0,     7,     2,     4,
     1356       0,     2,     0,     1,     1,     1,     5,     5,     5,     1,
     1357       5,     5,     9,     1,     5,     0,     1,     1,     5,     1,
     1358       1,     5,     5,     1,     3,     3,     4,     1,     1,     1,
     1359       1,     2,     1,     3,     3,     1,     2,     1,     3,     1,
     1360       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1361       2,     1,     1,     1,     2,     0,     2,     2,     1,     4,
     1362       0,     1,     2,     3,     4,     2,     2,     1,     2,     1,
     1363       2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
     1364       2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
     1365       1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
     1366       2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
     1367       1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
     1368       1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
     1369       2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
     1370       5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
     1371       1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
     1372       1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
     1373       3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
     1374       2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
     1375       1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
     1376       4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
     1377       3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1378       2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
     1379       8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
     1380       3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
     1381       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1382       2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
     1383       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
     1384       8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
     1385       7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
     1386       4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
     1387       2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
     1388       2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
     1389       1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
     1390       3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
     1391       6,     0,     1,     0,     2
    13881392};
    13891393
     
    13951399     294,   294,   315,   313,   316,   314,   317,   318,   300,   302,
    13961400     301,     0,   303,   329,   321,   326,   324,   325,   323,   322,
    1397      327,   328,   330,   331,   332,   546,   546,   546,     0,     0,
    1398        0,   294,   220,   304,   319,   320,     7,   359,     0,     8,
    1399       14,    15,     0,     2,   294,   564,     9,   524,   522,   247,
    1400        3,   452,     3,   260,     0,     3,     3,     3,   248,     3,
    1401        0,     0,     0,   295,   296,   298,   294,   307,   310,   312,
    1402      340,   286,   333,   338,   287,   348,   288,   355,   352,   362,
    1403        0,     0,   363,   289,   472,   476,     3,     3,     0,     2,
    1404      518,   523,   528,   299,     0,     0,   546,   576,   546,     2,
    1405      587,   588,   589,   294,     0,   730,   731,     0,    12,   294,
    1406        0,    13,   270,   271,     0,   295,   290,   291,   292,   293,
    1407      525,   305,   391,   547,   548,   369,   370,    12,   443,   444,
    1408       11,   439,   442,     0,   502,   497,   488,   443,   444,     0,
    1409        0,   527,   221,     0,   294,     0,     0,     0,     0,     0,
    1410        0,     0,     0,   294,   294,     2,     0,   732,   295,   581,
    1411      593,   736,   729,   727,   734,     0,     0,     0,   254,     2,
    1412        0,   531,   437,   438,   436,     0,     0,     0,     0,   546,
    1413        0,   633,   634,     0,     0,   544,   540,   546,   561,   546,
    1414      546,   541,     2,   542,   546,   600,   546,   546,   603,     0,
    1415        0,     0,   294,   294,   313,   360,     2,   294,   261,   297,
    1416      308,   341,   353,   477,     0,     2,     0,   452,   262,   295,
    1417      334,   349,   356,   473,     0,     2,     0,   311,   335,   342,
    1418      343,     0,   350,   354,   357,   361,   444,   294,   294,   365,
    1419      368,     0,   394,   474,   478,     0,     0,     0,     1,   294,
    1420        2,   529,   575,   577,   294,     2,   740,   295,   743,   544,
    1421      544,   295,     0,     0,     0,   273,   546,   541,     2,   294,
    1422        0,     0,   294,   549,     2,   500,     2,   553,     0,     0,
    1423        0,     0,     0,     0,    18,    59,     4,     5,     6,    16,
    1424        0,     0,     0,   294,     2,     0,   294,    65,    66,    67,
    1425       68,    48,    19,    49,    22,    47,    69,     0,    72,    76,
    1426       79,    82,    87,    90,    92,    94,    96,    98,   100,   105,
    1427      494,   750,   450,   493,     0,   448,   449,     0,   565,   580,
    1428      583,   586,   592,   595,   598,   359,     0,     2,   738,     0,
    1429      294,   741,     2,   294,     3,   424,     0,   432,   295,   294,
    1430      307,   333,   287,   348,   355,     3,     3,   406,   410,   420,
    1431      425,   472,   294,   426,   705,   706,   294,   427,   429,   294,
    1432        2,   582,   594,   728,     2,     2,   249,     2,   457,     0,
    1433      455,   454,   453,   141,     2,     2,   251,     2,     2,   250,
    1434        2,   281,     2,   282,     0,   280,     0,     0,     0,     0,
    1435        0,     0,     0,     0,     0,   566,   605,     0,   452,     2,
    1436      560,   569,   659,   562,   563,   532,   294,     2,   599,   608,
    1437      601,   602,     0,   276,   294,   294,   339,   295,     0,   295,
    1438        0,   294,   733,   737,   735,   533,   294,   544,   255,   263,
    1439      309,     0,     2,   534,   294,   498,   336,   337,   283,   351,
    1440      358,     0,   294,     2,   383,   294,   371,     0,     0,   377,
    1441      727,   294,   748,   397,     0,   475,   499,   252,   253,   519,
    1442      294,   434,     0,   294,   237,     0,     2,   239,     0,   295,
    1443        0,   257,     2,   258,   278,     0,     0,     2,   294,   544,
    1444      294,   485,   487,   486,     0,     0,   750,     0,   294,     0,
    1445      294,   489,   294,   559,   557,   558,   556,     0,   551,   554,
    1446        0,     0,   294,    56,   294,    69,    52,   294,    62,   294,
    1447      294,    50,    51,    64,     2,   127,     0,     0,   446,     0,
    1448      445,   111,   294,    54,    55,    17,     0,    29,    30,    35,
    1449        2,     0,    35,   117,   118,   119,   120,   121,   122,   123,
    1450      124,   125,   126,     0,     0,    53,     0,     0,     0,     0,
     1401     327,   328,   333,   330,   331,   332,   549,   549,   549,     0,
     1402       0,     0,   294,   220,   304,   319,   320,     7,   360,     0,
     1403       8,    14,    15,     0,     2,   294,   567,     9,   527,   525,
     1404     247,     3,   455,     3,   260,     0,     3,     3,     3,   248,
     1405       3,     0,     0,     0,   295,   296,   298,   294,   307,   310,
     1406     312,   341,   286,   334,   339,   287,   349,   288,   356,   353,
     1407     363,     0,     0,   364,   289,   475,   479,     3,     3,     0,
     1408       2,   521,   526,   531,   299,     0,     0,   549,   579,   549,
     1409       2,   590,   591,   592,   294,     0,   733,   734,     0,    12,
     1410     294,     0,    13,   270,   271,     0,   295,   290,   291,   292,
     1411     293,   528,   305,   393,   550,   551,   371,   372,    12,   446,
     1412     447,    11,   442,   445,     0,   505,   500,   491,   446,   447,
     1413       0,     0,   530,   221,     0,   294,     0,     0,     0,     0,
     1414       0,     0,     0,     0,   294,   294,     2,     0,   735,   295,
     1415     584,   596,   739,   732,   730,   737,     0,     0,     0,   254,
     1416       2,     0,   534,   440,   441,   439,     0,     0,     0,     0,
     1417     549,     0,   636,   637,     0,     0,   547,   543,   549,   564,
     1418     549,   549,   544,     2,   545,   549,   603,   549,   549,   606,
     1419       0,     0,     0,   294,   294,   313,   361,     2,   294,   261,
     1420     297,   308,   342,   354,   480,     0,     2,     0,   455,   262,
     1421     295,   335,   350,   357,   476,     0,     2,     0,   311,   336,
     1422     343,   344,     0,   351,   355,   358,   362,   447,   294,   294,
     1423     366,   370,     0,   395,   477,   481,     0,     0,     0,     1,
     1424     294,     2,   532,   578,   580,   294,     2,   743,   295,   746,
     1425     547,   547,   295,     0,     0,     0,   273,   549,   544,     2,
     1426     294,     0,     0,   294,   552,     2,   503,     2,   556,     0,
     1427       0,     0,     0,     0,     0,    18,    59,     4,     5,     6,
     1428      16,     0,     0,     0,   294,     2,     0,   294,    65,    66,
     1429      67,    68,    48,    19,    49,    22,    47,    69,     0,    72,
     1430      76,    79,    82,    87,    90,    92,    94,    96,    98,   100,
     1431     105,   497,   753,   453,   496,     0,   451,   452,     0,   568,
     1432     583,   586,   589,   595,   598,   601,   360,     0,     2,   741,
     1433       0,   294,   744,     2,   294,     3,   427,     0,   435,   295,
     1434     294,   307,   334,   287,   349,   356,     3,     3,   409,   413,
     1435     423,   428,   475,   294,   429,   708,   709,   294,   430,   432,
     1436     294,     2,   585,   597,   731,     2,     2,   249,     2,   460,
     1437       0,   458,   457,   456,   141,     2,     2,   251,     2,     2,
     1438     250,     2,   281,     2,   282,     0,   280,     0,     0,     0,
     1439       0,     0,     0,     0,     0,     0,   569,   608,     0,   455,
     1440       2,   563,   572,   662,   565,   566,   535,   294,     2,   602,
     1441     611,   604,   605,     0,   276,   294,   294,   340,   295,     0,
     1442     295,     0,   294,   736,   740,   738,   536,   294,   547,   255,
     1443     263,   309,     0,     2,   537,   294,   501,   337,   338,   283,
     1444     352,   359,     0,   294,     2,   385,   294,   373,     0,     0,
     1445     379,   730,     0,   751,   400,     0,   478,   502,   252,   253,
     1446     522,   294,   437,     0,   294,   237,     0,     2,   239,     0,
     1447     295,     0,   257,     2,   258,   278,     0,     0,     2,   294,
     1448     547,   294,   488,   490,   489,     0,     0,   753,     0,   294,
     1449       0,   294,   492,   294,   562,   560,   561,   559,     0,   554,
     1450     557,     0,     0,   294,    56,   294,    69,    52,   294,    62,
     1451     294,   294,    50,    51,    64,     2,   127,     0,     0,   449,
     1452       0,   448,   111,   294,    54,    55,    17,     0,    29,    30,
     1453      35,     2,     0,    35,   117,   118,   119,   120,   121,   122,
     1454     123,   124,   125,   126,     0,     0,    53,     0,     0,     0,
    14511455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1452        0,     0,     0,     0,     0,     0,   108,     2,   645,   451,
    1453      642,   546,   546,   650,   479,   294,     2,   584,   585,     0,
    1454      596,   597,     0,     2,   739,   742,   111,   294,     2,   294,
    1455        0,   707,   295,   711,   702,   703,   709,     0,     2,     2,
    1456      667,   546,   750,   616,   546,   546,   750,   546,   630,   546,
    1457      546,   681,   433,   664,   546,   546,   672,   679,   294,   428,
    1458      295,     0,     0,   294,   717,   295,   722,   750,   714,   294,
    1459      719,   750,   294,   294,   294,     0,   111,     0,    18,     5,
    1460        2,     0,    19,     0,   458,   748,     0,     0,   464,   241,
    1461        0,   294,     0,     0,     0,   544,   568,   572,   574,   604,
    1462      607,   611,   614,   567,   606,     0,   284,   657,     0,   294,
    1463      277,     0,     0,     0,     0,   275,     2,     0,   259,   535,
    1464      294,     0,     0,     0,     0,   294,   294,     0,     0,   691,
    1465      381,   384,   388,   546,   388,   696,   387,   688,   546,   546,
    1466      364,   372,   380,   373,   546,   375,   378,   294,   749,     0,
    1467        0,   395,   748,   295,     3,   413,     3,   417,   416,   590,
    1468        0,   530,   294,     3,     3,   294,   432,   295,     3,   426,
    1469      427,     2,     0,     0,     0,   484,   306,   294,   480,   482,
    1470        3,     2,     2,     0,   501,     3,     0,   553,   129,     0,
    1471        0,   222,     0,     0,     0,     2,     0,     0,    36,     0,
    1472        0,   111,   294,    20,     0,    21,     0,   691,   447,     0,
    1473      109,     3,     2,    27,     2,     0,    33,     0,     2,    25,
    1474        0,   106,   107,    73,    74,    75,    77,    78,    80,    81,
    1475       85,    86,    83,    84,    88,    89,    91,    93,    95,    97,
    1476       99,     0,     0,   751,   294,     0,     0,     0,   646,   647,
    1477      643,   644,   496,   495,   294,     0,     3,   294,   713,   294,
    1478      718,   295,   294,   294,   294,   661,   704,   660,     2,   294,
    1479        0,     0,     0,     0,     0,     0,     0,     0,   682,     0,
    1480      668,   619,   635,   669,     2,   615,   622,   430,   617,   618,
    1481      431,     2,   629,   638,   631,   632,   665,   666,   680,   708,
    1482      712,   710,   750,   268,     2,   744,     2,   421,   716,   721,
    1483      422,     0,   400,     3,     3,     3,     3,   452,     3,     0,
    1484        2,   467,   463,   749,     0,   459,   466,     2,   462,   465,
    1485        0,   294,   242,   264,     3,   272,   274,     0,   452,     2,
    1486      570,   571,     2,   609,   610,     0,   658,   536,     3,   345,
    1487      344,   347,   346,   294,   537,     0,   538,   294,   374,   376,
    1488        2,     0,     0,     0,     0,   104,   390,   692,   693,   385,
    1489      389,   386,   689,   690,   379,   383,   366,   397,   392,   398,
    1490        0,     0,     0,   435,   240,     0,     0,     3,     2,   667,
    1491      428,     0,   526,     0,   750,   488,     0,   294,   294,   294,
    1492        0,   550,   552,   130,     0,     0,   215,     0,     0,     0,
    1493      223,   224,    57,     0,    63,   294,     0,    61,    60,     0,
    1494      128,   692,   457,    70,    71,   110,   115,     3,   109,     0,
    1495        0,     0,    24,    35,     3,     0,    32,   102,     0,     3,
    1496      649,   653,   656,   648,     3,   591,     3,   715,   720,     2,
    1497      294,     3,     3,   295,     0,     3,   621,   625,   628,   637,
    1498      671,   675,   678,   294,     3,   620,   636,   670,   294,   294,
    1499      423,   294,   294,   745,     0,     0,     0,     0,   256,     0,
    1500      104,     0,     3,     3,     0,   460,     0,   456,     0,     0,
    1501      245,   294,     0,     0,   129,     0,     0,     0,     0,     0,
    1502      129,     0,     0,   109,   109,     2,     0,     0,     0,     3,
    1503      131,   132,     2,   143,   133,   134,   135,   136,   137,   138,
    1504      145,   147,     0,     0,     0,   285,   294,   294,   546,     0,
    1505      539,   294,   111,   695,   699,   701,   694,   382,   396,   393,
    1506      578,     2,   663,   662,     0,   668,     2,   481,   483,   503,
    1507        3,   511,   512,     0,     2,   507,     3,     3,     0,     0,
    1508      555,   222,     0,     0,     0,   222,     0,     0,     3,    37,
    1509      748,   109,     0,     3,   660,    42,     3,    40,     3,    34,
    1510        0,     3,   101,   103,     0,     2,   651,   652,     0,     0,
    1511      294,     0,     0,     0,     3,   637,     0,     2,   623,   624,
    1512        2,   639,     2,   673,   674,     0,     0,     3,     0,     3,
    1513        3,     3,     3,   408,   407,   411,     2,     2,   747,   746,
    1514      112,     0,     0,     0,     0,     3,   461,     3,     0,   243,
    1515      146,     3,   295,   294,     0,     0,     0,     0,     2,   191,
    1516        0,   189,     0,     0,     0,     0,     0,     0,     0,     0,
    1517      111,     0,   546,   151,   148,   294,     0,     0,   267,   279,
    1518        3,     3,   545,   612,   367,     2,   697,   698,   294,   266,
    1519      294,     0,   514,   491,   294,     0,     0,   490,   505,     0,
    1520        0,     0,   216,     0,   225,    58,   109,     0,     0,   116,
    1521      113,     0,     0,     0,     0,     0,     0,    23,     0,   654,
    1522      294,   579,   265,   723,   724,   725,     0,   676,   294,   294,
    1523      294,     3,     3,     0,   684,     0,     0,     0,     0,   294,
    1524      294,     3,   543,   468,   469,     0,     0,   246,   295,     0,
    1525        0,     0,     0,   294,   192,   190,     0,   187,   193,     0,
    1526        0,     0,     0,   197,   200,   198,   194,     0,   195,    35,
    1527      129,   144,   142,   244,     0,     0,   294,   415,   419,   418,
    1528        0,   508,     2,   509,     2,   510,   504,   294,   228,     0,
    1529      226,     0,   228,     3,   660,    31,   114,     2,    45,     2,
    1530       43,    41,    28,   112,    26,     3,   726,     3,     3,     3,
    1531        0,     0,   683,   685,   626,   640,   269,     2,   405,     3,
    1532      404,     0,   471,   468,   129,     0,     0,   129,     3,     0,
    1533      129,   188,     0,     2,     2,   209,   199,     0,     0,     0,
    1534        0,   140,   573,   613,     3,     2,     0,     0,     2,   229,
    1535        0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
    1536        0,     0,   686,   687,   294,     0,   470,   152,     0,     0,
    1537        2,   165,   129,   154,     0,   182,     0,   129,     0,     2,
    1538      156,     0,     2,     0,     2,     2,     2,   196,    32,     0,
    1539      294,   513,   515,   506,     0,     0,     0,     0,   114,    38,
    1540        3,     3,   655,   627,   641,   677,   409,   129,   158,   161,
    1541        0,   160,   164,     3,   167,   166,     0,   129,   184,   129,
    1542        3,     0,   294,     0,   294,     0,     2,     0,     2,   139,
    1543      700,     2,   230,   231,     0,   227,   218,     0,     0,     0,
    1544      153,     0,     0,   163,   233,   168,     2,   235,   183,     0,
    1545      186,   172,   201,     3,   210,   214,   203,     3,     0,   294,
    1546        0,   294,     0,     0,     0,    39,    46,    44,   159,   162,
    1547      129,     0,   169,   294,   129,   129,     0,   173,     0,     0,
    1548      691,   211,   212,   213,     0,   202,     3,   204,     3,   294,
    1549      219,   232,   149,   170,   155,   129,   236,   185,   180,   178,
    1550      174,   157,   129,     0,   692,     0,     0,     0,     0,   150,
    1551      171,   181,   175,   179,   178,   176,     3,     3,     0,     0,
    1552      492,   177,   205,   207,     3,     3,   206,   208
     1456       0,     0,     0,     0,     0,     0,     0,   108,     2,   648,
     1457     454,   645,   549,   549,   653,   482,   294,     2,   587,   588,
     1458       0,   599,   600,     0,     2,   742,   745,   111,   294,     2,
     1459     294,     0,   710,   295,   714,   705,   706,   712,     0,     2,
     1460       2,   670,   549,   753,   619,   549,   549,   753,   549,   633,
     1461     549,   549,   684,   436,   667,   549,   549,   675,   682,   294,
     1462     431,   295,     0,     0,   294,   720,   295,   725,   753,   717,
     1463     294,   722,   753,   294,   294,   294,     0,   111,     0,    18,
     1464       5,     2,     0,    19,     0,   461,   751,     0,     0,   467,
     1465     241,     0,   294,     0,     0,     0,   547,   571,   575,   577,
     1466     607,   610,   614,   617,   570,   609,     0,   284,   660,     0,
     1467     294,   277,     0,     0,     0,     0,   275,     2,     0,   259,
     1468     538,   294,     0,     0,     0,     0,   294,   294,     0,     0,
     1469     694,   383,   386,   390,   549,   390,   699,   389,   691,   549,
     1470     549,   365,   374,   382,   375,   549,   377,   380,   294,   752,
     1471       0,     0,   398,     0,   295,     3,   416,     3,   420,   419,
     1472     593,     0,   533,   294,     3,     3,   294,   435,   295,     3,
     1473     429,   430,     2,     0,     0,     0,   487,   306,   294,   483,
     1474     485,     3,     2,     2,     0,   504,     3,     0,   556,   129,
     1475       0,     0,   222,     0,     0,     0,     2,     0,     0,    36,
     1476       0,     0,   111,   294,    20,     0,    21,     0,   694,   450,
     1477       0,   109,     3,     2,    27,     2,     0,    33,     0,     2,
     1478      25,     0,   106,   107,    73,    74,    75,    77,    78,    80,
     1479      81,    85,    86,    83,    84,    88,    89,    91,    93,    95,
     1480      97,    99,     0,     0,   754,   294,     0,     0,     0,   649,
     1481     650,   646,   647,   499,   498,   294,     0,     3,   294,   716,
     1482     294,   721,   295,   294,   294,   294,   664,   707,   663,     2,
     1483     294,     0,     0,     0,     0,     0,     0,     0,     0,   685,
     1484       0,   671,   622,   638,   672,     2,   618,   625,   433,   620,
     1485     621,   434,     2,   632,   641,   634,   635,   668,   669,   683,
     1486     711,   715,   713,   753,   268,     2,   747,     2,   424,   719,
     1487     724,   425,     0,   403,     3,     3,     3,     3,   455,     3,
     1488       0,     2,   470,   466,   752,     0,   462,   469,     2,   465,
     1489     468,     0,   294,   242,   264,     3,   272,   274,     0,   455,
     1490       2,   573,   574,     2,   612,   613,     0,   661,   539,     3,
     1491     346,   345,   348,   347,   294,   540,     0,   541,   294,   376,
     1492     378,     2,     0,     0,     0,     0,   104,   392,   695,   696,
     1493     387,   391,   388,   692,   693,   381,   385,   294,   400,   394,
     1494     401,   751,     0,     0,   438,   240,     0,     0,     3,     2,
     1495     670,   431,     0,   529,     0,   753,   491,     0,   294,   294,
     1496     294,     0,   553,   555,   130,     0,     0,   215,     0,     0,
     1497       0,   223,   224,    57,     0,    63,   294,     0,    61,    60,
     1498       0,   128,   695,   460,    70,    71,   110,   115,     3,   109,
     1499       0,     0,     0,    24,    35,     3,     0,    32,   102,     0,
     1500       3,   652,   656,   659,   651,     3,   594,     3,   718,   723,
     1501       2,   294,     3,     3,   295,     0,     3,   624,   628,   631,
     1502     640,   674,   678,   681,   294,     3,   623,   639,   673,   294,
     1503     294,   426,   294,   294,   748,     0,     0,     0,     0,   256,
     1504       0,   104,     0,     3,     3,     0,   463,     0,   459,     0,
     1505       0,   245,   294,     0,     0,   129,     0,     0,     0,     0,
     1506       0,   129,     0,     0,   109,   109,     2,     0,     0,     0,
     1507       3,   131,   132,     2,   143,   133,   134,   135,   136,   137,
     1508     138,   145,   147,     0,     0,     0,   285,   294,   294,   549,
     1509       0,   542,   294,   111,   698,   702,   704,   697,   384,   368,
     1510     399,     0,   581,     2,   666,   665,     0,   671,     2,   484,
     1511     486,   506,     3,   514,   515,     0,     2,   510,     3,     3,
     1512       0,     0,   558,   222,     0,     0,     0,   222,     0,     0,
     1513       3,    37,   751,   109,     0,     3,   663,    42,     3,    40,
     1514       3,    34,     0,     3,   101,   103,     0,     2,   654,   655,
     1515       0,     0,   294,     0,     0,     0,     3,   640,     0,     2,
     1516     626,   627,     2,   642,     2,   676,   677,     0,     0,     3,
     1517       0,     3,     3,     3,     3,   411,   410,   414,     2,     2,
     1518     750,   749,   112,     0,     0,     0,     0,     3,   464,     3,
     1519       0,   243,   146,     3,   295,   294,     0,     0,     0,     0,
     1520       2,   191,     0,   189,     0,     0,     0,     0,     0,     0,
     1521       0,     0,   111,     0,   549,   151,   148,   294,     0,     0,
     1522     267,   279,     3,     3,   548,   615,   369,     2,   700,   701,
     1523     397,   294,   266,   294,     0,   517,   494,   294,     0,     0,
     1524     493,   508,     0,     0,     0,   216,     0,   225,    58,   109,
     1525       0,     0,   116,   113,     0,     0,     0,     0,     0,     0,
     1526      23,     0,   657,   294,   582,   265,   726,   727,   728,     0,
     1527     679,   294,   294,   294,     3,     3,     0,   687,     0,     0,
     1528       0,     0,   294,   294,     3,   546,   471,   472,     0,     0,
     1529     246,   295,     0,     0,     0,     0,   294,   192,   190,     0,
     1530     187,   193,     0,     0,     0,     0,   197,   200,   198,   194,
     1531       0,   195,    35,   129,   144,   142,   244,     0,     0,   294,
     1532     418,   422,   421,     0,   511,     2,   512,     2,   513,   507,
     1533     294,   228,     0,   226,     0,   228,     3,   663,    31,   114,
     1534       2,    45,     2,    43,    41,    28,   112,    26,     3,   729,
     1535       3,     3,     3,     0,     0,   686,   688,   629,   643,   269,
     1536       2,   408,     3,   407,     0,   474,   471,   129,     0,     0,
     1537     129,     3,     0,   129,   188,     0,     2,     2,   209,   199,
     1538       0,     0,     0,     0,   140,   576,   616,     3,     2,     0,
     1539       0,     2,   229,     0,     0,   217,     0,     0,     0,     0,
     1540       0,     0,     0,     0,     0,   689,   690,   294,     0,   473,
     1541     152,     0,     0,     2,   165,   129,   154,     0,   182,     0,
     1542     129,     0,     2,   156,     0,     2,     0,     2,     2,     2,
     1543     196,    32,     0,   294,   516,   518,   509,     0,     0,     0,
     1544       0,   114,    38,     3,     3,   658,   630,   644,   680,   412,
     1545     129,   158,   161,     0,   160,   164,     3,   167,   166,     0,
     1546     129,   184,   129,     3,     0,   294,     0,   294,     0,     2,
     1547       0,     2,   139,   703,     2,   230,   231,     0,   227,   218,
     1548       0,     0,     0,   153,     0,     0,   163,   233,   168,     2,
     1549     235,   183,     0,   186,   172,   201,     3,   210,   214,   203,
     1550       3,     0,   294,     0,   294,     0,     0,     0,    39,    46,
     1551      44,   159,   162,   129,     0,   169,   294,   129,   129,     0,
     1552     173,     0,     0,   694,   211,   212,   213,     0,   202,     3,
     1553     204,     3,   294,   219,   232,   149,   170,   155,   129,   236,
     1554     185,   180,   178,   174,   157,   129,     0,   695,     0,     0,
     1555       0,     0,   150,   171,   181,   175,   179,   178,   176,     3,
     1556       3,     0,     0,   495,   177,   205,   207,     3,     3,   206,
     1557     208
    15531558};
    15541559
     
    15561561static const yytype_int16 yydefgoto[] =
    15571562{
    1558       -1,   839,   474,   301,    45,   131,   132,   302,   303,   304,
    1559      305,   785,   786,  1146,  1147,   306,   307,   308,   309,   310,
    1560      311,   312,   313,   314,   315,   316,   317,   318,   319,  1051,
    1561      525,   996,   321,   997,   554,   973,  1078,  1542,  1080,  1081,
    1562     1082,  1083,  1543,  1084,  1085,  1459,  1460,  1421,  1422,  1423,
    1563     1521,  1522,  1526,  1527,  1562,  1563,  1086,  1379,  1087,  1088,
    1564     1313,  1314,  1315,  1503,  1089,   143,   979,   980,   981,  1400,
    1565     1484,  1495,  1496,   475,   476,   901,   902,  1059,    48,    49,
    1566       50,    51,    52,   345,   156,    55,    56,    57,    58,    59,
    1567      347,    61,    62,   261,    64,    65,   272,   349,   350,    68,
    1568       69,    70,    71,   116,    73,   202,   352,   117,    76,   118,
    1569       78,    79,    80,   455,   456,   457,   458,   700,   939,   701,
    1570       81,    82,   462,   721,   881,   882,   355,   356,   724,   725,
    1571      726,   357,   358,   359,   360,   472,   339,   133,   134,   529,
    1572      323,   168,   654,   655,   656,   657,   658,    83,   119,    85,
    1573      495,   496,   965,   497,   275,   501,   324,    86,   135,   136,
    1574       87,  1337,  1124,  1125,  1126,  1127,    88,    89,   742,    90,
    1575      271,    91,    92,   185,  1053,   688,   410,   123,    93,   507,
    1576      508,   509,   186,   266,   188,   189,   190,   267,    96,    97,
    1577       98,    99,   100,   101,   102,   193,   194,   195,   196,   197,
    1578      851,   613,   614,   615,   616,   198,   618,   619,   620,   579,
    1579      580,   581,   582,   705,   103,   622,   623,   624,   625,   626,
    1580      627,   938,   707,   708,   709,   603,   363,   364,   365,   366,
    1581      325,   162,   105,   106,   107,   368,   719,   576
     1563      -1,   840,   475,   302,    46,   132,   133,   303,   304,   305,
     1564     306,   786,   787,  1148,  1149,   307,   308,   309,   310,   311,
     1565     312,   313,   314,   315,   316,   317,   318,   319,   320,  1052,
     1566     526,   997,   322,   998,   555,   974,  1079,  1545,  1081,  1082,
     1567    1083,  1084,  1546,  1085,  1086,  1462,  1463,  1424,  1425,  1426,
     1568    1524,  1525,  1529,  1530,  1565,  1566,  1087,  1382,  1088,  1089,
     1569    1316,  1317,  1318,  1506,  1090,   144,   980,   981,   982,  1403,
     1570    1487,  1498,  1499,   476,   477,   902,   903,  1060,    49,    50,
     1571      51,    52,    53,   346,   157,    56,    57,    58,    59,    60,
     1572     348,    62,    63,   262,    65,    66,   273,   350,   351,    69,
     1573      70,    71,    72,   117,    74,   203,   353,   118,    77,   119,
     1574      79,    80,   462,    81,   456,   457,   458,   459,   701,   940,
     1575     702,    82,    83,   465,   463,   722,   882,   883,   356,   357,
     1576     725,   726,   727,   358,   359,   360,   361,   473,   340,   134,
     1577     135,   530,   324,   169,   655,   656,   657,   658,   659,    84,
     1578     120,    86,   496,   497,   966,   498,   276,   502,   325,    87,
     1579     136,   137,    88,  1340,  1126,  1127,  1128,  1129,    89,    90,
     1580     743,    91,   272,    92,    93,   186,  1054,   689,   411,   124,
     1581      94,   508,   509,   510,   187,   267,   189,   190,   191,   268,
     1582      97,    98,    99,   100,   101,   102,   103,   194,   195,   196,
     1583     197,   198,   852,   614,   615,   616,   617,   199,   619,   620,
     1584     621,   580,   581,   582,   583,   706,   104,   623,   624,   625,
     1585     626,   627,   628,   939,   708,   709,   710,   604,   364,   365,
     1586     366,   367,   326,   163,   106,   107,   108,   369,   720,   577
    15821587};
    15831588
    15841589/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15851590   STATE-NUM.  */
    1586 #define YYPACT_NINF -1281
     1591#define YYPACT_NINF -1332
    15871592static const yytype_int16 yypact[] =
    15881593{
    1589     3705,  8889, -1281,   104, -1281, -1281, -1281, -1281, -1281, -1281,
    1590    -1281,    44, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1591    -1281, -1281, -1281, -1281, -1281,   155,   155,   155,  1205,   815,
    1592      110,  6006,   222, -1281, -1281, -1281, -1281, -1281,   130, -1281,
    1593    -1281, -1281,  1267,   189,  3199, -1281, -1281, -1281, -1281, -1281,
    1594    -1281,    31,   144, -1281,  1338, -1281, -1281, -1281, -1281,   153,
    1595     1410,   279,    82,  7674, -1281, -1281,  8086,  1234, -1281, -1281,
    1596    -1281,   981,   359,  7231,   925,   669,   981,  1012, -1281, -1281,
    1597      738,   575, -1281,   981,  1119, -1281,   242, -1281,   416,   419,
    1598    -1281, -1281, -1281, -1281,   277,   144,   155, -1281,   155, -1281,
    1599    -1281, -1281, -1281,  9536,  1338, -1281, -1281,  1338, -1281,  9574,
    1600      321, -1281, -1281, -1281,  2195,  9607, -1281,   565,   565,   565,
    1601    -1281, -1281, -1281,   155, -1281, -1281, -1281,   280,   366,   418,
    1602    -1281, -1281, -1281,   425, -1281, -1281, -1281, -1281, -1281,   443,
    1603      475, -1281, -1281,   120,  8972,  3739,   375,   387,   486,   496,
    1604      514,   527,   541,  8273,  7081,   550,   568, -1281,  9460, -1281,
    1605    -1281, -1281, -1281,   602, -1281,   121,  4456,  4456, -1281,   552,
    1606      298, -1281, -1281, -1281, -1281,   634,   302,   306,   327,   155,
    1607      590, -1281, -1281,  1410,  2454,   696, -1281,    90, -1281,   155,
    1608      155,   144, -1281, -1281,   124, -1281,   155,   155, -1281,  2638,
    1609      658,   667,   565,  6993, -1281, -1281,   678,  3199, -1281, -1281,
    1610      981, -1281, -1281, -1281,   144, -1281,  1338,    31, -1281,  8010,
    1611    -1281,   565,   565,   565,   144, -1281,  1205, -1281,  5198, -1281,
    1612    -1281,   673,   565, -1281,   565, -1281,   130,  8972,  9002,   686,
    1613    -1281,   815,   694,   565, -1281,  1205,   728,   736, -1281,  6006,
    1614      544, -1281, -1281, -1281,  9431, -1281, -1281,  3957, -1281,   696,
    1615       79,  9607,  6464,  2195,  2638, -1281,   157, -1281, -1281,  9574,
    1616     1338,   717,  7703, -1281, -1281,   699, -1281, 10744,   783,   831,
    1617     3925,   787,  6306, 10567, -1281,   827, -1281, -1281, -1281, -1281,
    1618    10625, 10625,   544,  8633,   829,  6306,  9085, -1281, -1281, -1281,
    1619    -1281, -1281, -1281,   862, -1281,  1121,  2197,  6306, -1281,   599,
    1620      388,   472,   354,   593,   830,   867,   873,   970,   245, -1281,
    1621    -1281,   874,   650, -1281,   325, -1281, -1281,  3739, -1281, -1281,
    1622      585,   901, -1281,   747,   901,   958,   130, -1281, -1281,   962,
    1623     9536, -1281,   977,  8746, -1281, -1281,   957,   935,  8355,  6993,
    1624      981, -1281,   981,   565,   565, -1281, -1281, -1281, -1281, -1281,
    1625    -1281,   565,  9645,  1338, -1281, -1281,  9683,  1067, -1281,  9123,
    1626    -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,  5315,  6306,
    1627    -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1628    -1281, -1281, -1281, -1281,  2195, -1281,   846,   996,   998,  1002,
    1629      864,  1005,  1008,  1026,  2454, -1281, -1281,  1031,    31,  1033,
    1630    -1281, -1281,  1061, -1281, -1281, -1281,  9431, -1281, -1281, -1281,
    1631    -1281, -1281,  2638, -1281,  8972,  8972, -1281,   565,  2195,  7112,
    1632     1338,  8426, -1281, -1281, -1281, -1281,  9431,    79, -1281, -1281,
    1633      981,   144, -1281, -1281,  9431, -1281,  6877, -1281, -1281,   565,
    1634      565,   376,  9716,  1035,  1868,  2111, -1281,   334,   338,   815,
    1635    -1281,  9002,  1059,  1047,   815,   565, -1281, -1281, -1281, -1281,
    1636     9940, -1281,   583,  6755, -1281,   144,  1065, -1281,  2195, 10825,
    1637    10471, -1281, -1281, -1281, -1281,   889,  2638, -1281,  8497,   696,
    1638     7558, -1281, -1281, -1281,  1286,   636,   874,   815,  7703,   868,
    1639     9574, -1281,  7703, -1281, -1281, -1281, -1281,   638, -1281,  1073,
    1640      831,   207,  8633, -1281,  9716, -1281, -1281,  8633, -1281,  8859,
    1641     8633, -1281, -1281, -1281,  1071, -1281,   681,  1077,   668,  1078,
    1642    -1281,  4381,  6724, -1281, -1281, -1281,   328, -1281, -1281, 10490,
    1643    -1281,   385, 10490, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1644    -1281, -1281, -1281,  6464,  6464, -1281,  6306,  6306,  6306,  6306,
    1645     6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,  6306,
    1646     6306,  6306,  6306,  6306,  4789,  6464, -1281,   650,  1062, -1281,
    1647    -1281,   155,   155, -1281, -1281,  8972, -1281, -1281,  1061,   544,
    1648    -1281,  1061, 10548, -1281, -1281, -1281,  5232,  6724,  1079,  9198,
    1649     1080, -1281,  9754, -1281, -1281,   602, -1281,  1082,  1185,  1084,
    1650     1899,   185,   874, -1281,   155,   155,   874,   233, -1281,   155,
    1651      155,  1061, -1281, -1281,   155,   155, -1281,   901,  9792,  1338,
    1652    10968,   234,   509,  9792, -1281,  5821, -1281,   874, -1281,  9645,
    1653    -1281,   293,  5525,  5525,  5525,  1338, -1281,  5054,  1072,   558,
    1654      990,  1016,  1083,  1086, -1281,  1074,  4456,   592, -1281,  1172,
    1655     1338,  5525,   544,  2195,   544,   696,   809,   901, -1281, -1281,
    1656      814,   901, -1281, -1281, -1281,   831, -1281,   901,   144,  9940,
    1657    -1281,   682,  1095,   691,  1099, -1281,  1098,   144, -1281, -1281,
    1658     9431,   144,  1103,   362,   407,  9825,  7200,  1999,  6306,  1917,
    1659    -1281, -1281,  1101,    94,  1101, -1281, -1281, -1281,   155,   155,
    1660    -1281, -1281,   815, -1281,   155, -1281, -1281,  3122,   815,  1107,
    1661     6306, -1281,  1059, 10968, -1281, -1281,  1102, -1281, -1281, -1281,
    1662      544, -1281, 10897,  6306, -1281,  5525,   675,  8355, -1281, -1281,
    1663      602,  1108,  1109,  1286,  3745, -1281, -1281,  7703, -1281, -1281,
    1664     1111, -1281, -1281,  1116, -1281,  1111,  1128, 10744,  6464,   146,
    1665     1113,    53,  1136,  1115,  1137,   829,  1131,  1139, -1281,  1142,
    1666     1143,  1696,  6843, -1281,  6464, -1281,   668,  1691, -1281,  6022,
    1667     6464,  1138, -1281, -1281,   990,   708, -1281,  6464, -1281, -1281,
    1668      727, -1281, -1281, -1281, -1281, -1281,   599,   599,   388,   388,
    1669      472,   472,   472,   472,   354,   354,   593,   830,   867,   873,
    1670      970,  6306,   755, -1281,  9940,  1148,  1149,  1152,  1062, -1281,
    1671    -1281, -1281, -1281, -1281,  9940,   713,  6306,  5525, -1281,  9645,
    1672    -1281,  7319,  9311,  9236,  7081, -1281, -1281, -1281,  1185,  9940,
    1673      951,  1160,  1163,  1165,  1166,  1175,  1176,  1182, -1281,  3532,
    1674     1899, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1675    -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, -1281,
    1676    -1281, -1281,   874, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1677    -1281,  1183, -1281,  1187,  1189, -1281, -1281,    31,  1138,  5054,
    1678    -1281, -1281, -1281,  5315,  1180, -1281, -1281, -1281, -1281, -1281,
    1679      815,  6243,  1272, -1281, -1281, -1281, -1281,  1188,    31, -1281,
    1680    -1281,  1061, -1281, -1281,  1061,    70,  1061, -1281, -1281, -1281,
    1681    -1281, -1281, -1281,  9498, -1281,   144, -1281,  9002, -1281, -1281,
    1682     1201,   818,  1208,  1212,  1213, -1281, -1281,  1917, -1281, -1281,
    1683    -1281, -1281, -1281, -1281, -1281,  1868, -1281,  1047, -1281, -1281,
    1684     1210,  1216,  1211, -1281, -1281,  1218,  1223, -1281,   675,  1777,
    1685    -1281,   562, -1281,  3745,   874, -1281,  1226,  7703,  9863,  8972,
    1686     1230, -1281, -1281,  1225,  1235,  1238, -1281,  6306,   252,    40,
    1687     1231, -1281,  1242,   544,  1242,  6724,  6464, -1281, -1281,  1242,
    1688    -1281,  1691,  5315, -1281, -1281, -1281, -1281,  1236,  6464,  1245,
    1689      544,  5054, -1281, 10490, -1281,   544, -1281, -1281,  6464, -1281,
    1690      850,   901, -1281, -1281, -1281, -1281, -1281, -1281, -1281,   990,
    1691     8746, -1281, -1281,  7438,  1249, -1281,   856,   901, -1281,   872,
    1692      904,   901, -1281,   565,  4646, -1281, -1281, -1281,  9940,  9940,
    1693    -1281,  8426,  8426, -1281,  1252,  1255,  1264,  1271, -1281,  1253,
    1694      594,   247,  1138, -1281,   544, -1281,  4456, -1281,  6464,   459,
    1695    -1281,  6603,  1274,  1279, 10343,  1281,  1283,   301,   308,   344,
    1696     6464,  1285,   144,  6464,  6464,  1284,   498,  1282,  1268, -1281,
    1697    -1281, -1281,  1289, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1698    -1281, -1281,   815,  1296,  6464, -1281,  9940,  9940,   155,  1301,
    1699    -1281,  9349,  4935,   934,   901, -1281, -1281, -1281, -1281, -1281,
    1700    -1281, -1281, -1281, -1281,  1305,  1777, -1281, -1281,  1290, -1281,
    1701     1111, -1281, -1281,  2195,  1309, -1281, -1281, -1281,   734,  1312,
    1702    -1281,    53,  1317,  6306,  1303,    53,    53,  1327,  1323, -1281,
    1703     1074,  6464,  1328,  1236,  1036,   113,  1326, -1281,  1323, -1281,
    1704     1331,  1326, -1281, -1281,  1337, -1281, -1281,  1061,  1340,  1343,
    1705     6962,  1342,  1344,  1350, -1281, -1281,  1353, -1281, -1281,  1061,
    1706    -1281, -1281, -1281, -1281,  1061,  6464,  6464,  6306,  1355, -1281,
    1707    -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281,
    1708    -1281,  6306,  6306,  1356,  1357,  1326, -1281, -1281,   815, -1281,
    1709    -1281, -1281,  7939,  9863,  6464,  6464,  1423,  6464, -1281, -1281,
    1710     1341, -1281,  1345,  6464,  1347,  1358,  6464,  1097,  1360,    74,
    1711     8776,  1197,   155, -1281, -1281,  6243,  1361,   467, -1281, -1281,
    1712    -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1061, 10467, -1281,
    1713     8497,  1362, -1281, -1281,  9863,   482,   494, -1281,  1372,  1383,
    1714      831,  1394, -1281,    66, -1281, -1281,  6464,  1395,  1393, -1281,
    1715    -1281,  1399,   430,   657,   544,  1400,  1401, -1281,  1406, -1281,
    1716     9940, -1281, -1281, -1281, -1281, -1281,  1412, -1281,  9940,  9940,
    1717     9940, -1281, -1281,  1413, -1281,  1415,  1425,  1427,   623,  8125,
    1718     8240, -1281, -1281,   278, -1281,  1426,  1429, -1281,  8568,   745,
    1719      759,  1430,   769,  6445, -1281, -1281,   502, -1281, -1281,   770,
    1720     1434,  1436,   144,  1487,   911, -1281, -1281,  6464, -1281, 10490,
    1721    10343, -1281, -1281, -1281,  1442,  1444,  9940, -1281, -1281, -1281,
    1722     1437, -1281, -1281, -1281, -1281, -1281, -1281,  9863,   831,   269,
    1723    -1281,  1424,   831,  1236,   373, -1281, -1281, -1281, -1281, -1281,
    1724    -1281, -1281, -1281,  1443, -1281, -1281, -1281, -1281, -1281, -1281,
    1725     1452,  1454, -1281, -1281, -1281, -1281, -1281, -1281, -1281,  1458,
    1726    -1281,  1457, -1281, -1281, 10343,   148,  6464, 10343, -1281,  1462,
    1727     6464, -1281,   171,  1484,  1486, -1281, -1281,  1465,  1476,  1455,
    1728      905, -1281, -1281, -1281, -1281, -1281,  1338,  2195,  1471,   862,
    1729      918,  6306, -1281,   772,  1477,  6464,   544,   544,  1480,  1482,
    1730     1483,  1485, -1281, -1281,  8426,  1472, -1281,  1555,  6306,  1493,
    1731    -1281, -1281, 10254, -1281,   790, -1281,  1467, 10343,  1468, -1281,
    1732    -1281,  1511, -1281,  1513, -1281,  1507,  1529, -1281,  1496,  1519,
    1733     9863, -1281, -1281, -1281,   831,   544,  1520,  1499,  1515, -1281,
    1734     1326,  1326, -1281, -1281, -1281, -1281, -1281, 10343,   258, -1281,
    1735      922, -1281, -1281,  7790, -1281, -1281,  1501,  6464, -1281,  6464,
    1736     7790,   144,  9716,   144,  9716,  1528, -1281,  1530, -1281, -1281,
    1737    -1281,  1524,   862, -1281,   794, -1281, -1281,  6464,  1540,  1542,
    1738    -1281,  6306,  6306, -1281, -1281,  1051,   133, -1281, -1281,  1510,
    1739    -1281,  1051, -1281, -1281,  2099,   544, -1281, -1281,   144,  9716,
    1740      144,  9716,  1546,  1525,   544, -1281, -1281, -1281, -1281, -1281,
    1741    10254,  1541,  1051,  7866,  6464, 10165,  1543,  1051,  1551,  2099,
    1742     2338, -1281, -1281, -1281,  1552, -1281, -1281, -1281, -1281,  8972,
    1743    -1281, -1281, -1281, 10072, -1281, 10254, -1281, -1281,  1531,  9979,
    1744    -1281, -1281, 10165,   144,  2338,   144,  1557,  1559,   795, -1281,
    1745    10072, -1281, -1281, -1281,  9979, -1281, -1281, -1281,   144,   144,
    1746    -1281, -1281, -1281, -1281, -1281, -1281, -1281, -1281
     1594    3506,  8076, -1332,    12, -1332, -1332, -1332, -1332, -1332, -1332,
     1595   -1332,    61, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1596   -1332, -1332, -1332, -1332, -1332, -1332,   102,   102,   102,  1011,
     1597    1062,    86,  5961,   228, -1332, -1332, -1332, -1332, -1332,   138,
     1598   -1332, -1332, -1332,   684,   144,  9470, -1332, -1332, -1332, -1332,
     1599   -1332, -1332,   190,   182, -1332,  1658, -1332, -1332, -1332, -1332,
     1600     201,  1834,   303,    32,  4928, -1332, -1332,  9508,  1650, -1332,
     1601   -1332, -1332,   615,   401,  4443,   184,   589,   615,  1225, -1332,
     1602   -1332,   848,   938, -1332,   615,  1259, -1332,   301, -1332,   486,
     1603     503, -1332, -1332, -1332, -1332,   316,   182,   102, -1332,   102,
     1604   -1332, -1332, -1332, -1332,  9240,  1658, -1332, -1332,  1658, -1332,
     1605    9354,   391, -1332, -1332, -1332,  1948,  9876, -1332,   810,   810,
     1606     810, -1332, -1332, -1332,   102, -1332, -1332, -1332,   426,   447,
     1607     456, -1332, -1332, -1332,   477, -1332, -1332, -1332, -1332, -1332,
     1608     485,   495, -1332, -1332,    36,  8974,  2459,   272,   545,   579,
     1609     623,   632,   671,   733,  8777,  7372,   596,   719, -1332,  9546,
     1610   -1332, -1332, -1332, -1332,   739, -1332,   209,  3245,  3245, -1332,
     1611     760,   213, -1332, -1332, -1332, -1332,   770,   237,   353,   362,
     1612     102,   755, -1332, -1332,  1834,  1803,   846, -1332,    70, -1332,
     1613     102,   102,   182, -1332, -1332,    98, -1332,   102,   102, -1332,
     1614    2479,   820,   843,   810,  5405, -1332, -1332,   844,  9470, -1332,
     1615   -1332,   615, -1332, -1332, -1332,   182, -1332,  1658,   190, -1332,
     1616    7926, -1332,   810,   810,   810,   182, -1332,  1011, -1332,  2880,
     1617   -1332, -1332,   827,   810, -1332,   810, -1332,   138,  8974,  8891,
     1618     857, -1332,  1062,   864,   810, -1332,  1011,   870,   879, -1332,
     1619    5961,   735, -1332, -1332, -1332,  9437, -1332, -1332,  3894, -1332,
     1620     846,    69,  9876,  6310,  1948,  2479, -1332,   114, -1332, -1332,
     1621    9354,  1658,   875, 11374, -1332, -1332,   546, -1332, 11116,   886,
     1622     926, 10861,   905, 10919, 10938, -1332,   919, -1332, -1332, -1332,
     1623   -1332, 10996, 10996,   735,  8632,   928, 10919,  9088, -1332, -1332,
     1624   -1332, -1332, -1332, -1332,   949, -1332,   840,  2531, 10919, -1332,
     1625     516,   336,   425,   270,   704,   934,   936,   960,   997,    52,
     1626   -1332, -1332,   974,   356, -1332,   290, -1332, -1332,  2459, -1332,
     1627   -1332,   600,   996, -1332,   701,   996,  1007,   138, -1332, -1332,
     1628    1010,  9240, -1332,  1018,  8746, -1332, -1332,  1849,  1084,  8347,
     1629    5405,   615, -1332,   615,   810,   810, -1332, -1332, -1332, -1332,
     1630   -1332, -1332,   810,  9914,  1658, -1332, -1332,  9987,  1975, -1332,
     1631    9012, -1332, -1332, -1332, -1332, -1332, -1332, -1332,  1030,  3059,
     1632   10919, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1633   -1332, -1332, -1332, -1332, -1332,  1948, -1332,   773,  1012,  1034,
     1634    1040,   889,  1045,  1051,  1053,  1803, -1332, -1332,  1063,   190,
     1635    1064, -1332, -1332,  1066, -1332, -1332, -1332,  9437, -1332, -1332,
     1636   -1332, -1332, -1332,  2479, -1332,  8974,  8974, -1332,   810,  1948,
     1637    6923,  1658,  8420, -1332, -1332, -1332, -1332,  9437,    69, -1332,
     1638   -1332,   615,   182, -1332, -1332,  9437, -1332,  3625, -1332, -1332,
     1639     810,   810,   464, 10025,  1068,   907,  9695, -1332,   437,   475,
     1640    1062, -1332,  1067,  1069,  1047,  1070,   810, -1332, -1332, -1332,
     1641   -1332, 10283, -1332,   522,  6793, -1332,   182,  1074, -1332,  1948,
     1642   11198,  6368, -1332, -1332, -1332, -1332,   939,  2479, -1332,  8493,
     1643     846,  5374, -1332, -1332, -1332,   828,   610,   974,  1062, 11374,
     1644     861,  9354, -1332, 11374, -1332, -1332, -1332, -1332,   618, -1332,
     1645    1073,   926,   326,  8632, -1332, 10025, -1332, -1332,  8632, -1332,
     1646    8860,  8632, -1332, -1332, -1332,  1077, -1332,   619,  1082,   630,
     1647    1087, -1332,  5066,  7012, -1332, -1332, -1332,    47, -1332, -1332,
     1648   10784, -1332,   474, 10784, -1332, -1332, -1332, -1332, -1332, -1332,
     1649   -1332, -1332, -1332, -1332,  6310,  6310, -1332, 10919, 10919, 10919,
     1650   10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919,
     1651   10919, 10919, 10919, 10919, 10919,  4001,  6310, -1332,   356,   777,
     1652   -1332, -1332,   102,   102, -1332, -1332,  8974, -1332, -1332,  1066,
     1653     735, -1332,  1066, 10842, -1332, -1332, -1332,  6075,  7012,  1086,
     1654    9202,  1093, -1332, 10055, -1332, -1332,   739, -1332,  1094,   690,
     1655    1096,  1090,   157,   974, -1332,   102,   102,   974,   166, -1332,
     1656     102,   102,  1066, -1332, -1332,   102,   102, -1332,   996, 10137,
     1657    1658, 11343,   372,   531, 10137, -1332,  6678, -1332,   974, -1332,
     1658    9914, -1332,   285,  8042,  8042,  8042,  1658, -1332,  5183,  1085,
     1659     453,  1030,   955,  1095,  1097, -1332,  1099,  3245,   590, -1332,
     1660    1182,  1658,  8042,   735,  1948,   735,   846,   706,   996, -1332,
     1661   -1332,   806,   996, -1332, -1332, -1332,   926, -1332,   996,   182,
     1662   10283, -1332,   647,  1107,   688,  1108, -1332,  1109,   182, -1332,
     1663   -1332,  9437,   182,  1105,   497,   502, 10167,  7492,  1400, 10919,
     1664    1678, -1332, -1332,  1103,    62,  1103, -1332, -1332, -1332,   102,
     1665     102, -1332, -1332,  1062, -1332,   102, -1332, -1332,  8891,  1062,
     1666    1110, 10919, -1332,  1062, 11343, -1332, -1332,  1113, -1332, -1332,
     1667   -1332,   735, -1332, 11271, 10919, -1332,  8042,   718,  8347, -1332,
     1668   -1332,   739,  1114,  1115,   828,  2655, -1332, -1332, 11374, -1332,
     1669   -1332,  1116, -1332, -1332,  1122, -1332,  1116,  1123, 11116,  6310,
     1670     163,  1092,    54,  1131,  1128,  1135,   928,  1130,  1138, -1332,
     1671    1140,  1141,  9733,  7132, -1332,  6310, -1332,   630,  1274, -1332,
     1672    5523,  6310,  1139, -1332, -1332,  1030,   695, -1332,  6310, -1332,
     1673   -1332,   741, -1332, -1332, -1332, -1332, -1332,   516,   516,   336,
     1674     336,   425,   425,   425,   425,   270,   270,   704,   934,   936,
     1675     960,   997, 10919,   754, -1332, 10283,  1150,  1151,  1153,   777,
     1676   -1332, -1332, -1332, -1332, -1332, 10283,   748, 10919,  8042, -1332,
     1677    9914, -1332,  7612,  9316,  9126,  7372, -1332, -1332, -1332,   690,
     1678   10283,   950,  1164,  1165,  1171,  1172,  1179,  1180,  1181, -1332,
     1679    3591,  1090, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1680   -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,  1066,
     1681   -1332, -1332, -1332,   974, -1332, -1332, -1332, -1332, -1332, -1332,
     1682   -1332, -1332,  1183, -1332,  1184,  1187, -1332, -1332,   190,  1139,
     1683    5183, -1332, -1332, -1332,  3059,  1185, -1332, -1332, -1332, -1332,
     1684   -1332,  1062,  6532,  1270, -1332, -1332, -1332, -1332,  1173,   190,
     1685   -1332, -1332,  1066, -1332, -1332,  1066,   152,  1066, -1332, -1332,
     1686   -1332, -1332, -1332, -1332,  9584, -1332,   182, -1332,  8891, -1332,
     1687   -1332,  1193,   795,  1199,  1200,  1204, -1332, -1332,  1678, -1332,
     1688   -1332, -1332, -1332, -1332, -1332, -1332,   907,  9763,  1047, -1332,
     1689   -1332,  1069,  1205,  1201, -1332, -1332,  1206,  1207, -1332,   718,
     1690    1989, -1332,   634, -1332,  2655,   974, -1332,  1211, 11374, 10205,
     1691    8974,  1214, -1332, -1332,  1212,  1217,  1213, -1332, 10919,   229,
     1692     205,  1215, -1332,  1202,   735,  1202,  7012,  6310, -1332, -1332,
     1693    1202, -1332,  1274,  3059, -1332, -1332, -1332, -1332,  1220,  6310,
     1694    1228,   735,  5183, -1332, 10784, -1332,   735, -1332, -1332,  6310,
     1695   -1332,   863,   996, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1696    1030,  8746, -1332, -1332,  7732,  1219, -1332,   876,   996, -1332,
     1697     883,   896,   996, -1332,   810,  4775, -1332, -1332, -1332, 10283,
     1698   10283, -1332,  8420,  8420, -1332,  1221,  1226,  1233,  1235, -1332,
     1699    1234,   643,   137,  1139, -1332,   735, -1332,  3245, -1332,  6310,
     1700     517, -1332,  6892,  1245,  1249, 10726,  1253,  1258,   330,   380,
     1701     387,  6310,  1265,   182,  6310,  6310,  1256,   294,  1269,  1250,
     1702   -1332, -1332, -1332,  1277, -1332, -1332, -1332, -1332, -1332, -1332,
     1703   -1332, -1332, -1332,  1062,  1285,  6310, -1332, 10283, 10283,   102,
     1704    1287, -1332,  9845,  9622,   932,   996, -1332, -1332, -1332, -1332,
     1705   -1332,  1286, -1332, -1332, -1332, -1332,  1293,  1989, -1332, -1332,
     1706    1275, -1332,  1116, -1332, -1332,  1948,  1290, -1332, -1332, -1332,
     1707     749,  1292, -1332,    54,  1295, 10919,  1279,    54,    54,  1305,
     1708    1301, -1332,  1099,  6310,  1308,  1220,   605,    89,  1306, -1332,
     1709    1301, -1332,  1312,  1306, -1332, -1332,  1317, -1332, -1332,  1066,
     1710    1319,  1322,  7252,  1323,  1325,  1326, -1332, -1332,  1329, -1332,
     1711   -1332,  1066, -1332, -1332, -1332, -1332,  1066,  6310,  6310, 10919,
     1712    1330, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1713   -1332, -1332, -1332, 10919, 10919,  1332,  1335,  1306, -1332, -1332,
     1714    1062, -1332, -1332, -1332,  7853, 10205,  6310,  6310,  1394,  6310,
     1715   -1332, -1332,  1321, -1332,  1324,  6310,  1327,  1331,  6310,  1013,
     1716    1333,    97,  8265,  1262,   102, -1332, -1332,  6532,  1334,   537,
     1717   -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332,  1066,
     1718   -1332, 10544, -1332,  8493,  1345, -1332, -1332, 10205,   562,   563,
     1719   -1332,  1343,  1344,   926,  1352, -1332,   450, -1332, -1332,  6310,
     1720    1355,  1349, -1332, -1332,  1356,   543,   613,   735,  1357,  1358,
     1721   -1332,  1361, -1332, 10283, -1332, -1332, -1332, -1332, -1332,  1365,
     1722   -1332, 10283, 10283, 10283, -1332, -1332,  1367, -1332,  1368,  1371,
     1723    1372,   668,  8115,  8231, -1332, -1332,   457, -1332,  1376,  1378,
     1724   -1332,  8566,   750,   782,  1387,   793,  6762, -1332, -1332,   598,
     1725   -1332, -1332,   803,  1388,  1393,   182,  1445,   882, -1332, -1332,
     1726    6310, -1332, 10784, 10726, -1332, -1332, -1332,  1396,  1404, 10283,
     1727   -1332, -1332, -1332,  1401, -1332, -1332, -1332, -1332, -1332, -1332,
     1728   10205,   926,   254, -1332,  1384,   926,  1220,   366, -1332, -1332,
     1729   -1332, -1332, -1332, -1332, -1332, -1332,  1405, -1332, -1332, -1332,
     1730   -1332, -1332, -1332,  1406,  1409, -1332, -1332, -1332, -1332, -1332,
     1731   -1332, -1332,  1414, -1332,  1413, -1332, -1332, 10726,    84,  6310,
     1732   10726, -1332,  1417,  6310, -1332,    99,  1433,  1434, -1332, -1332,
     1733    1422,  1425,  1408,   852, -1332, -1332, -1332, -1332, -1332,  1658,
     1734    1948,  1421,   949,   918, 10919, -1332,   832,  1426,  6310,   735,
     1735     735,  1427,  1431,  1440,  1441, -1332, -1332,  8420,  1428, -1332,
     1736    1501, 10919,  1437, -1332, -1332, 10637, -1332,   845, -1332,  1424,
     1737   10726,  1436, -1332, -1332,  1460, -1332,  1461, -1332,  1476,  1481,
     1738   -1332,  1446,  1471, 10205, -1332, -1332, -1332,   926,   735,  1472,
     1739    1452,  1468, -1332,  1306,  1306, -1332, -1332, -1332, -1332, -1332,
     1740   10726,   295, -1332,   940, -1332, -1332,  5671, -1332, -1332,  1454,
     1741    6310, -1332,  6310,  5671,   182, 10025,   182, 10025,  1478, -1332,
     1742    1482, -1332, -1332, -1332,  1480,   949, -1332,   850, -1332, -1332,
     1743    6310,  1479,  1487, -1332, 10919, 10919, -1332, -1332,  1054,   123,
     1744   -1332, -1332,  1465, -1332,  1054, -1332, -1332,  1818,   735, -1332,
     1745   -1332,   182, 10025,   182, 10025,  1492,  1474,   735, -1332, -1332,
     1746   -1332, -1332, -1332, 10637,  1488,  1054,  6242,  6310, 10548,  1495,
     1747    1054,  1502,  1818,  2347, -1332, -1332, -1332,  1505, -1332, -1332,
     1748   -1332, -1332,  8974, -1332, -1332, -1332, 10415, -1332, 10637, -1332,
     1749   -1332,  1484, 10322, -1332, -1332, 10548,   182,  2347,   182,  1509,
     1750    1510,   853, -1332, 10415, -1332, -1332, -1332, 10322, -1332, -1332,
     1751   -1332,   182,   182, -1332, -1332, -1332, -1332, -1332, -1332, -1332,
     1752   -1332
    17471753};
    17481754
     
    17501756static const yytype_int16 yypgoto[] =
    17511757{
    1752    -1281,  4254,  1590, -1281,  1409, -1281,    52,     0,  -229, -1281,
    1753      596,  -527,  -497,  -931,   -99,  4508, -1281,   358,   609,   563,
    1754      518,   591,  1104,  1105,  1110,  1117,  1112, -1281,   613,  -339,
    1755     5346,  -893,  -690,  -919, -1281,   401,  -634,   444, -1281,   753,
    1756    -1281,   449, -1224, -1281, -1281,   191, -1281, -1265,  -724,   305,
    1757    -1281, -1281, -1281, -1281,   129, -1170, -1281, -1281, -1281, -1281,
    1758    -1281, -1281,   382, -1175,    71, -1281,  -381, -1281,   560,   356,
    1759    -1281,   229, -1281,  -338, -1281, -1281, -1281,   632,  -691, -1281,
    1760    -1281,    11, -1000,    10,  2865, -1281, -1281, -1281,  -125, -1281,
    1761      275,   363,  -194,  1416,  4157, -1281, -1281,    24,    25,   374,
    1762     -202,  1621, -1281,  2138, -1281, -1281,   112,  2165, -1281,  2832,
    1763      139, -1281, -1281,  -416,  -434,  1276,  1278,   786,  1028,   400,
    1764    -1281, -1281,  1269,   793,  -513, -1281,  -522,   -57,  -636, -1281,
    1765    -1281,  -959,  -994,   122,   819,  1153,   135, -1281,  1441,   296,
    1766     -299,  -212,  -109,   749,   844, -1281,  1087, -1281,  2859,  1478,
    1767     -462,  1000, -1281, -1281,   778, -1281,  -233, -1281,   -72, -1281,
    1768    -1281, -1281, -1232,   504, -1281, -1281, -1281,  1259, -1281,    68,
    1769    -1281, -1281,  -850,   -96, -1280,   -93,  1665, -1281,  2401, -1281,
    1770      993, -1281,  -164,   689,  -177,  -176,  -170,     2,   -39,   -33,
    1771      -28,  1052,    48,    75,    93,  -100,  -167,  -166,  -153,  -148,
    1772     -277,  -569,  -500,  -490,  -543,  -300,  -514, -1281, -1281,  -506,
    1773     1174,  1177,  1181,  2149,  5126,  -572,  -549,  -544,  -523,  -484,
    1774    -1281,  -427,  -665,  -663,  -660,  -602,  -320,  -271, -1281, -1281,
    1775      102,   140,   -84, -1281,  3728,   128,  -603,  -447
     1758   -1332,  4383,  1919, -1332,  1457, -1332,    41,     0,  -257, -1332,
     1759     544,  -527,  -514,  -956,  -190,  3713, -1332,  1485,   580,   585,
     1760     548,   602,  1055,  1052,  1056,  1059,  1061, -1332,  -217,  -341,
     1761    5350,  -699,  -697,  -922, -1332,   -83,  -701,  -678, -1332,   561,
     1762   -1332,   399, -1087, -1332, -1332,   141, -1332, -1329,  -838,   252,
     1763   -1332, -1332, -1332, -1332,    71, -1078, -1332, -1332, -1332, -1332,
     1764   -1332, -1332,   325, -1308,    57, -1332,  -297, -1332,   504,   305,
     1765   -1332,   173, -1332,  -305, -1332, -1332, -1332,   558,  -799, -1332,
     1766   -1332,    11, -1027,   151,   658, -1332, -1332, -1332,   -52, -1332,
     1767     117,   913,  -200,  1494,  4071, -1332, -1332,    19,   107,   365,
     1768    -232,  1565, -1332,  2150, -1332, -1332,   134,  2571, -1332,  3063,
     1769    1550, -1332, -1332, -1332,  -643,  -431,  1210,  1216,   707,   947,
     1770     188, -1332, -1332, -1332,   945,   723,  -404, -1332,  -520,  -362,
     1771     293, -1332, -1332,  -990,  -995,   965,  1194,  1083,   304, -1332,
     1772     150,   317,   -75,  -197,  -129,   679,   781, -1332,  1020, -1332,
     1773    3338,  1566,  -427,   948, -1332, -1332,   710, -1332,  -230, -1332,
     1774     -89, -1332, -1332, -1332, -1266,   433, -1332, -1332, -1332,  1195,
     1775   -1332,    22, -1332, -1332,  -865,  -105, -1331,   -98,  1750, -1332,
     1776    2253, -1332,   929, -1332,  -168,   288,  -180,  -179,  -173,     2,
     1777     -34,   -29,   -28,   687,    75,    77,    92,  -161,  -162,  -153,
     1778    -151,  -148,  -320,  -530,  -516,  -495,  -552,  -307,  -529, -1332,
     1779   -1332,  -506,  1106,  1117,  1121,  2218,  5180,  -562,  -569,  -544,
     1780    -538,  -550, -1332,  -429,  -691,  -685,  -671,  -611,  -246,  -241,
     1781   -1332, -1332,  1149,   273,   -84, -1332,  3714,    76,  -612,  -441
    17761782};
    17771783
     
    17791785   positive, shift that token.  If negative, reduce the rule which
    17801786   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1781 #define YYTABLE_NINF -522
     1787#define YYTABLE_NINF -525
    17821788static const yytype_int16 yytable[] =
    17831789{
    1784       46,   111,    95,   147,   451,   438,   397,   398,   426,   148,
    1785       53,   113,   112,   399,   149,   790,   400,   401,   265,   258,
    1786      405,   711,   767,   604,    66,    67,   870,   706,   111,   111,
    1787      402,    46,   932,    95,   933,   403,   750,   934,   853,   841,
    1788      755,    53,    46,   918,    46,   717,   159,   617,  1185,   748,
    1789      511,  1091,   894,   110,    46,    66,    67,   381,   382,   845,
    1790       46,  1201,   191,    46,   846,   214,    46,   852,   224,   341,
    1791      612,    47,   819,   208,  1151,   504,   218,   217,   678,  1143,
    1792      111,   111,  1183,  1184,   406,   847,   397,   398,   210,   994,
    1793      150,   636,   408,   399,   844,   640,   400,   401,   687,   141,
    1794      405,   778,    47,   423,    46,  1398,   691,    46,   842,   200,
    1795      402,   932,    74,   933,    46,   403,   934,   151,   843,   950,
    1796      883,   883,   883,  1195,   974,   682,   684,   856,    30,   477,
    1797      885,   886,    30,   863,   289,   152,  1317,   166,  1461,   883,
    1798      104,   104,   407,    74,   147,    46,   161,   159,   904,  1134,
    1799      148,   535,   121,    46,   445,   149,  1135,  1465,    46,   201,
    1800      371,   167,    30,   977,   406,   857,   481,   483,   739,   860,
    1801      278,   104,   164,   466,   841,  1341,  -234,  -234,  1009,  1098,
    1802     1218,  1219,  1342,    46,    46,   120,   159,   482,  1014,   175,
    1803      877,  1418,  1419,    30,   880,    30,   676,  1262,   250,    46,
    1804      409,   754,   212,  1025,   409,  1318,   104,    46,  1481,   159,
    1805     1090,   161,  1461,   883,  1418,  1419,    46,   745,   140,    46,
    1806      769,   441,   957,    30,   147,  1263,   111,   535,   279,   439,
    1807      148,   150,   417,   142,   409,   149,   375,   164,   144,   259,
    1808      673,   111,   260,   842,   440,   111,  1185,  -234,  1259,    46,
    1809      111,    95,   376,   843,   212,  1465,   595,   169,   151,    53,
    1810     1465,  1420,   975,    46,    46,   487,   159,   409,   179,   841,
    1811       46,    30,   326,    66,    67,    60,   152,    46,  1037,   604,
    1812     1465,   759,   199,   711,  1429,   341,   823,  1465,   535,   845,
    1813      702,   477,   111,   854,   846,   609,  1185,   212,   665,  1507,
    1814      153,  1549,   471,  1201,   674,   883,    60,  1036,   604,   433,
    1815      617,   477,  1013,   604,  1016,   847,   760,   469,  1153,   477,
    1816       47,  1560,   673,   761,  1024,   830,   680,    46,  1564,   371,
    1817     1183,  1184,   685,   535,  1536,   434,  1538,  1343,   842,   573,
    1818      459,   861,  1191,   609,   523,   873,    46,    46,   843,   874,
    1819      535,   437,   925,  1491,   704,  1550,   856,   245,   212,   936,
    1820     1133,    74,  -290,    46,   114,   326,    74,    46,   879,  1192,
    1821     1200,   433,   108,   210,   574,  1091,   739,  1401,   652,   108,
    1822     1192,   949,  1565,    40,    41,   250,   674,   853,   -10,   104,
    1823       40,    41,  -112,  -112,    46,   530,   212,   434,   161,   108,
    1824      212,   482,  1180,  1181,    46,   489,   371,   157,  -112,   845,
    1825       40,    41,   506,   385,   846,   108,   248,   388,   870,  -517,
    1826     1185,   390,    46,   575,   164,  1040,    40,    41,    46,   386,
    1827       46,   738,  1209,   389,   584,   847,  1215,   391,   782,  1211,
    1828      585,   227,   392,   563,   564,   228,   915,   341,   232,   712,
    1829      234,   262,   739,   714,    46,  1456,   108,   243,   393,   111,
    1830     1230,  1231,  1213,  1201,   111,   713,   256,    40,    41,   715,
    1831     1201,   606,   157,   111,  -440,  1450,  1451,   712,    46,   565,
    1832      566,   175,  -112,   250,   328,   692,    46,   212,   371,  1405,
    1833       46,   585,    95,   928,    46,   788,   329,   111,   637,   111,
    1834       53,   108,   641,  -112,   210,  1120,  1149,   322,   559,   560,
    1835     1106,  1101,    40,    41,    66,    67,   338,  1117,   706,   652,
    1836      397,   398,   714,  1201,    60,   110,  -441,   399,    74,   478,
    1837      400,   401,   978,   274,  1090,   405,   111,  1258,   929,   652,
    1838     1347,   111,   652,  1037,   402,  1171,  1173,   895,    74,   403,
    1839      617,   276,   326,   326,   459,   504,    74,   459,  1018,   561,
    1840      562,    47,   830,   459,  1106,   477,   428,   906,   212,   284,
    1841      432,   766,   908,  1035,  1198,     8,     9,    10,    11,    12,
    1842       40,    41,  1198,   277,   227,   884,   884,   884,   783,   111,
    1843     1199,   766,   727,   789,   766,   330,    46,  1332,  1323,   406,
    1844      322,   454,    74,    30,   884,   331,   520,   954,    46,  1334,
    1845       46,   341,  1380,  1333,   530,   108,   530,   774,   212,   530,
    1846      875,   832,   530,   332,   876,  1335,    40,    41,   326,    46,
    1847      104,    33,   432,  1381,  1355,   494,   333,  -466,  1132,   738,
    1848      516,   471,  1357,  1358,  1359,    46,   108,   326,   137,   138,
    1849      334,   111,   830,   533,   534,   440,   528,    40,    41,   157,
    1850       46,   369,   111,    46,   111,   555,   383,   711,  -466,  1378,
    1851     -466,   896,  -291,   875,  -466,  1048,   370,  1116,   884,     8,
    1852        9,    10,    11,    12,   567,   568,  1035,   341,   241,    94,
    1853     1394,   478,   729,   586,   526,   409,  1095,    46,   730,    46,
    1854      604,   534,   897,   594,   651,  -105,   601,    30,   898,  -105,
    1855      374,   478,   111,   326,   905,   738,   907,   556,   111,   478,
    1856       94,   395,   557,   558,   227,   634,   232,   606,   108,   638,
    1857      111,   146,   338,    94,  1366,    33,  1128,   534,  1367,    40,
    1858       41,   212,   387,    46,    46,   746,  1428,   756,   210,   187,
    1859     1249,   747,    94,   757,  1253,    94,   871,    46,   577,   407,
    1860      409,   606,   210,   736,   872,    60,   424,  1349,   578,   212,
    1861      884,  1520,  1497,   673,   212,   425,   776,  1525,   409,  1497,
    1862      887,   702,   953,   958,  1055,   609,   777,   322,   322,   430,
    1863      773,   919,  1390,   959,  1251,   903,   774,   774,  1545,   461,
    1864      921,   727,    74,  1552,   448,   171,   774,   464,   762,   108,
    1865      763,   137,   236,   764,   227,   454,   770,  1002,   454,   459,
    1866       40,    41,  1015,  1003,   454,   681,   683,   499,   730,   500,
    1867      490,   830,  1546,  1499,    94,  1500,   114,   674,    46,  1175,
    1868      739,  1006,  1003,  1247,    74,   704,   237,    94,   251,   585,
    1869       46,   238,  1291,  1292,  1374,   589,   210,   409,   832,   467,
    1870      774,   494,   212,   322,   932,   494,   933,   468,  1375,   934,
    1871      774,  1008,   396,   187,   774,   528,   212,   528,  1377,  1382,
    1872      528,  1447,   322,   528,   774,   774,   108,  1444,   137,   138,
    1873     1547,   510,   506,   652,   338,   514,    94,    40,    41,  1466,
    1874      111,   652,   978,  1513,  1570,   774,   978,   978,    94,  1514,
    1875      585,    53,   289,   526,   793,   794,   795,   909,   526,   409,
    1876      739,   526,   912,    46,   409,    66,    67,   328,   409,     2,
    1877      204,     4,     5,     6,     7,   519,   727,    46,    94,   108,
    1878      531,   137,   138,   535,   415,    46,   727,  1196,   322,   569,
    1879       40,    41,   485,  1077,   250,   328,   409,   534,  1155,   828,
    1880      409,   727,   601,    46,  1167,   478,   409,   435,  1387,  1388,
    1881      212,   736,   417,   669,   409,   812,   751,   443,  1122,  1121,
    1882     1170,   752,   609,   111,  1182,     2,   204,     4,     5,     6,
    1883        7,   869,   652,    34,   570,    35,   601,   487,   328,   409,
    1884      111,   571,   878,   652,   575,   111,    36,   478,   181,   182,
    1885       39,   337,  1172,    74,   609,  -292,    94,    40,    41,  1438,
    1886     1003,  1339,     8,     9,    10,    11,    12,  1242,    36,   459,
    1887      172,   173,    39,  1444,  1445,  1137,   611,  1492,  1493,    40,
    1888       41,   104,  1235,   608,   409,   609,   527,   736,   440,    34,
    1889       30,    35,  1145,   610,   111,   766,    -3,  1145,   338,   854,
    1890      328,   609,  1446,   572,   652,   370,  -437,   111,   111,   111,
    1891      593,    53,     8,     9,    10,    11,    12,  1532,    33,  1458,
    1892      454,   800,   801,   802,   803,  1203,    67,   108,   596,   137,
    1893      138,   534,   111,   187,  1418,  1419,   160,   326,    40,    41,
    1894       30,   646,   940,   738,   940,   666,  1145,   667,   104,  1399,
    1895      494,   668,   192,  1399,   670,   215,  1077,   671,   225,  1210,
    1896     1212,  1214,  -293,    46,   798,   799,   890,  1106,    33,     8,
    1897        9,    10,    11,    12,   338,   672,   341,   993,    36,   675,
    1898      172,   173,    39,   703,   677,  -112,   695,  -112,   871,    40,
    1899       41,  -112,  1518,  1458,  1310,  1311,  1312,    30,   804,   805,
    1900      727,   727,   212,  1348,  1350,  1351,  -112,  -112,   796,   797,
    1901      577,   255,   409,    74,   718,   374,    60,   720,  -238,    94,
    1902      578,   758,   771,   611,   534,    33,   775,   779,   -12,   893,
    1903      833,   835,  1017,   837,   689,   848,   828,   160,   111,   -13,
    1904      900,   104,   892,   459,   920,   536,   537,   538,   922,   923,
    1905      372,  -414,   208,   218,   217,  1482,   927,   698,   727,   727,
    1906       46,   948,  -521,   962,   969,   652,   747,   210,   731,   539,
    1907      983,   540,  1369,   541,   542,    53,   160,   971,     2,   204,
    1908        4,     5,     6,     7,   976,   982,   984,   986,   987,    66,
    1909       67,   988,   989,   998,  1122,  1121,    36,  1010,  1011,   160,
    1910       39,  1012,   111,   111,   111,   527,   226,    40,    41,  1026,
    1911      527,   442,  1027,   527,  1028,  1029,   127,  1077,   128,   129,
    1912      130,   536,   537,   538,  1030,  1031,   828,    40,    41,   728,
    1913      454,  1032,  1043,   838,  1057,   609,  -402,   840,  -401,   611,
    1914     1092,  1442,    34,   610,    35,   539,  1558,   540,   439,   541,
    1915     1319,   935,  1102,    53,  1145,  1145,  1145,  1103,  1094,   652,
    1916      652,  1104,  1105,   440,  1109,  1110,  1111,  1203,    67,  1112,
    1917      494,  1123,   322,   935,  1113,  1119,   478,    74,    36,  1129,
    1918      774,   212,    39,   104,  1130,  1079,  1136,  1122,  1121,    40,
    1919       41,  1141,   397,   398,  1131,   992,  1144,    36,  1165,   399,
    1920     1328,    39,   400,   401,  1190,   104,   405,  1186,    40,    41,
    1921     1187,   766,  1077,  1188,   652,    42,   402,   652,   534,   372,
    1922     1189,   403,  1204,   869,   104,   145,   931,  1205,   703,  1207,
    1923      673,  1208,   727,  1216,   743,  1220,    46,    46,  1222,  1223,
    1924      727,   727,   727,    -3,   744,  1228,   111,   111,  1531,    36,
    1925     1233,   172,   173,    39,  1239,    74,    63,   115,   499,   516,
    1926       40,    41,   652,  1243,  1007,  1248,  1077,   652,  1250,  1077,
    1927      406,   917,   840,   611,  1252,   736,  1255,   212,  1256,  1260,
    1928      924,  1264,  1267,   104,   926,   111,  1269,    63,   727,  1271,
    1929     1122,  1121,  1272,  1273,   674,  1274,   372,   652,  1145,  1145,
    1930      158,  1275,  1277,   174,   454,   828,  1284,  1293,  1294,  1301,
    1931      139,  1330,  1304,    53,  1077,  1322,  1305,   104,  1307,  1077,
    1932       53,    36,   219,   181,   182,    39,  1336,  1203,    67,  1308,
    1933      147,  1316,    40,    41,  1203,    67,   148,  1483,   728,  1338,
    1934       60,   149,  1050,  1340,    46,   111,  1344,  1345,  1206,  1077,
    1935     1346,  1352,  1353,   174,   111,   736,   174,  1354,   183,   257,
    1936      652,   239,   242,  1356,  1362,   652,  1363,   840,   184,    46,
    1937       46,  1441,   159,    53,  1364,   534,  1365,  1372,  1376,   611,
    1938     1373,   213,  1383,   652,  1384,   652,  1312,  1203,    67,   652,
    1939     1395,  1392,   652,  1393,    46,  1402,   371,  1533,   240,  1405,
    1940      652,   327,   174,  1412,   652,  1413,  1541,  -403,  1416,   257,
    1941      348,  1427,  1077,  1435,  1505,    74,  1505,  1077,   478,  1431,
    1942      104,  1433,    74,   338,  1436,  1443,  1437,  1367,  1448,  1452,
    1943      935,  1453,  1454,   213,  1455,  1077,  1457,  1077,  1467,  1469,
    1944      404,  1077,  1475,   104,  1077,  1299,  1300,  1123,  1302,  1462,
    1945      104,  1505,  1077,  1505,  1306,   422,  1077,  1309,   427,   429,
    1946     1471,  1152,  1473,   158,  1477,   174,   703,  1479,  1480,  1485,
    1947     1486,  1487,  1498,   728,   703,    74,   213,  1508,  1512,  1510,
    1948      165,  1524,   170,   728,   446,   176,   177,   178,   449,   180,
    1949      450,  1516,   611,  1517,  1539,  1544,  1540,  1551,   728,   465,
    1950     1553,  1555,  1561,   104,   231,    63,  1568,   326,  1569,  1079,
    1951      479,  1050,  1221,   806,  1321,   807,   246,   247,  1100,   174,
    1952      486,   808,   463,  1519,   211,   810,   174,  1430,   429,   809,
    1953      122,   125,   126,  1571,   230,  1386,  1254,   213,  1403,  1501,
    1954     1123,     8,     9,    10,    11,    12,     8,     9,    10,    11,
     1790      47,   112,    96,   427,   398,   399,   768,   933,   452,   148,
     1791     266,   400,   113,   934,   149,   150,   791,   406,   871,    67,
     1792     259,   439,   401,   512,   407,   712,   707,   935,   613,   112,
     1793     112,   402,    47,   403,    96,  1203,   404,  1092,   382,   383,
     1794     846,   618,   111,    47,   895,    47,   505,   160,  1187,   854,
     1795    1153,    67,  1185,  1186,   142,    47,   749,    48,   975,   853,
     1796     201,    47,   857,   192,    47,   847,   215,    47,   864,   225,
     1797     342,   848,   751,   820,  1401,   947,   756,  1145,   218,   842,
     1798     845,   112,   112,   995,   398,   399,   933,   279,   409,    48,
     1799    1464,   400,   934,   843,   121,   424,  1468,   406,   605,  1197,
     1800     779,    31,   401,  1091,   407,    47,   935,    68,    47,    31,
     1801     202,   402,   679,   403,   844,    47,   404,    61,   151,   109,
     1802     152,   165,   637,   884,   884,   884,   641,   739,  1421,  1422,
     1803      41,    42,   688,   408,    75,   153,   290,    31,   446,    68,
     1804     692,    31,   884,  1421,  1422,   280,    47,   574,   160,    61,
     1805     148,    54,   114,    31,    47,   149,   150,   467,   783,    47,
     1806    1320,   372,   482,   484,  1464,   978,    75,  -234,  -234,  1510,
     1807     122,   211,   858,   410,  1265,   746,   861,  1484,   483,   251,
     1808     140,   410,   575,    54,    47,    47,   165,   160,     2,   205,
     1809       4,     5,     6,     7,  1468,   141,    31,   878,  1423,  1468,
     1810      47,   881,  1266,   478,  1539,    31,  1541,   418,    47,   410,
     1811     160,   527,   677,  1432,   842,   209,   884,    47,   219,  1468,
     1812      47,   327,   442,   488,  1080,   410,  1468,   112,   843,  1321,
     1813     148,   240,   243,  1193,   536,   149,   150,   674,  -234,   143,
     1814     886,   887,   112,   740,   675,   536,   112,   145,  1187,   844,
     1815      47,   112,    96,    35,   760,    36,   154,   596,   905,   151,
     1816    1194,   152,  1099,  1202,    47,    47,   855,   160,   610,    67,
     1817     846,    47,   470,   105,   105,   862,   153,   610,    47,  1203,
     1818     976,   885,   885,   885,   435,  1102,   342,   703,    95,  1038,
     1819     666,   857,   472,   112,   705,   847,   170,   167,  1187,  1037,
     1820     885,   848,  1185,  1186,   618,   105,   200,    48,   884,   842,
     1821    1025,   536,  1155,  1014,   327,  1136,    -3,   180,   681,   674,
     1822      95,   168,  1137,   843,   686,   376,   675,   441,    47,   386,
     1823     372,   147,   958,    95,   524,   739,   536,  1346,  1135,  1111,
     1824     105,   377,   682,   684,   844,   387,   435,    47,    47,   188,
     1825     683,   685,    95,   389,   605,    95,   831,    68,   937,   176,
     1826     564,   565,  1092,  1404,    47,   478,   285,    61,    47,   390,
     1827    1217,   440,   479,   165,   885,  1220,  1221,    41,    42,   653,
     1828     950,   251,   329,   605,    75,   478,   926,  1208,   605,    75,
     1829     846,  1494,   464,   478,   483,    47,   566,   567,   854,   880,
     1830     585,    54,   109,   521,  -290,    47,   586,   372,   536,   260,
     1831     871,   739,   261,    41,    42,   847,   576,   246,  1194,   916,
     1832     607,   848,  1187,    47,  1017,   251,   755,  1459,  1091,    47,
     1833     527,    47,  1041,   228,    95,   527,   761,   229,   527,  1203,
     1834     233,  1552,   235,   762,  1262,   770,  1203,    95,   342,   244,
     1835    1553,   740,   109,  1453,  1454,    47,   211,   560,   561,   109,
     1836     112,  1563,  1211,    41,    42,   578,   885,   410,  1567,   391,
     1837      41,    42,   397,   188,   112,   579,  -112,  1568,   393,    47,
     1838    1173,  1175,   936,  1408,   874,   392,   249,    47,   875,   372,
     1839    1151,    47,   813,    96,   394,    47,    95,  -112,   112,  1203,
     1840     112,   327,   327,  -520,   936,   979,  1215,  1383,    95,  1107,
     1841      67,   824,  1213,   562,   563,   111,   712,   707,   398,   399,
     1842     653,   438,   263,   105,  1119,   400,   505,   740,   896,   654,
     1843    1261,  1036,   406,  -469,   479,   -10,   401,   112,    95,   407,
     1844     653,  1122,   112,   653,   618,   402,   109,   403,    48,  1080,
     1845     404,    75,   486,   713,   479,  1038,  -443,    41,    42,   907,
     1846    1344,   767,   479,  1107,  -469,  -444,  -469,  1345,   909,   714,
     1847    -469,    75,  -112,  -112,   693,   490,   228,   327,   784,    75,
     1848     586,   767,   507,   790,   767,   789,   275,   211,  -112,  1019,
     1849     112,   715,  -291,   831,   277,  1008,   327,    47,    68,     8,
     1850       9,    10,    11,    12,   278,  1381,   737,   716,    61,    47,
     1851     717,    47,   342,   713,   172,   109,    95,   833,   715,     2,
     1852     205,     4,     5,     6,     7,    75,    41,    42,    31,   929,
     1853      47,   472,   730,  1200,   930,   557,   612,  1134,   731,   478,
     1854     558,   559,    54,   876,  1036,  1394,    47,   877,   750,  1201,
     1855     754,   176,   112,  1200,  1350,   330,    34,   252,    55,    55,
     1856    1523,    47,   327,   112,    47,   112,  1528,  1500,   638,  1326,
     1857     897,   712,   642,  1051,  1500,   500,   607,   501,  1335,  1337,
     1858    1184,   955,  1431,   831,    35,   109,    36,  1548,   342,   331,
     1859      55,  1049,  1555,   188,  1336,  1338,    41,    42,    47,  1420,
     1860      47,   898,  1428,   652,   906,   872,   908,   899,   370,   587,
     1861     607,   410,  1096,   112,   775,  -112,   228,  -112,   233,   112,
     1862     747,  -112,    55,   112,  1352,    55,   748,  1549,   757,   774,
     1863    1384,   112,   161,   332,   758,   775,  -112,  -112,   441,   777,
     1864    1130,   410,   333,   704,    47,    47,   876,  1467,   193,   778,
     1865    1118,   216,  1471,   416,   226,  -105,    37,   920,    47,  -105,
     1866      40,   936,    37,   775,   105,  1056,    40,    41,    42,  1502,
     1867     674,  1503,   954,    41,    42,   605,   436,   675,   703,    95,
     1868    1369,   334,  1493,   612,  1370,   705,   444,     8,     9,    10,
     1869      11,    12,  1154,    43,  1254,  1393,   568,   569,   922,   839,
     1870     739,   610,   892,   146,   775,  1003,   228,   109,   479,   611,
     1871     590,  1004,   410,   347,   737,   910,    31,   410,    41,    42,
     1872       8,     9,    10,    11,    12,    75,  1550,   959,   371,   610,
     1873     763,   211,   764,   161,  1177,   765,  1252,   960,   771,    47,
     1874    1256,   933,  1051,   335,    34,   211,   373,   934,   375,    31,
     1875     479,    47,  1294,  1295,   833,   528,  1007,  1004,  1016,  1250,
     1876    1377,   935,   831,   945,   731,   586,   775,    75,  1562,   948,
     1877     775,  1009,   161,   464,  1562,   384,   979,    34,    55,   388,
     1878     979,   979,   251,   329,   410,  1562,   578,   396,   410,  1562,
     1879     737,   941,  1378,   941,   653,   161,   579,   841,   775,   612,
     1880      37,   112,   653,  1380,    40,   329,   410,   443,    55,   775,
     1881     408,    41,    42,  1385,   115,   913,   740,   410,   936,   775,
     1882     109,    67,   138,   237,    47,   537,   538,   539,  1198,   425,
     1883    1372,    41,    42,   109,   873,   138,   139,   744,    47,   211,
     1884    1390,  1391,  1450,  1078,    41,    42,    47,   745,  1447,   540,
     1885     888,   541,   426,   542,   543,  1469,   431,   238,   158,   449,
     1886    1516,   775,   239,  1573,    47,   904,  1517,  1441,  1004,   586,
     1887     752,  -367,  1157,   919,   410,   753,   936,   936,  -396,    37,
     1888    1123,   182,   183,    40,   112,  1169,   932,   410,   704,   491,
     1889      41,    42,  1172,   653,   610,   511,  1342,   740,   418,   670,
     1890     410,   112,   468,   690,   653,  1174,   112,   610,   290,    68,
     1891     109,   469,   138,   139,   515,   373,   698,   257,   410,    61,
     1892    1245,    41,    42,   158,   699,  1139,   700,   109,   520,   138,
     1893     139,   536,   841,   612,  1447,  1448,    75,   732,    41,    42,
     1894     532,  1237,  1147,   410,   654,   767,   327,  1147,   488,   329,
     1895     410,  1061,   242,    54,   570,   112,  1495,  1496,   323,   855,
     1896     329,   610,   507,  1449,   571,   653,   891,   339,   112,   112,
     1897     112,  1313,  1314,  1315,   528,  1351,  1353,  1354,  1535,   528,
     1898    1461,  1205,   528,   128,  1402,   129,   130,   131,  1402,   572,
     1899     347,   573,   373,   112,    41,    42,  1147,   872,  1421,  1422,
     1900       8,     9,    10,    11,    12,   576,  1078,   338,  1010,  1212,
     1901    1214,  1216,   801,   802,   803,   804,  -440,   429,  1015,   594,
     1902    1124,   433,   667,  1302,  1303,    47,  1305,   841,  1107,    31,
     1903     597,   441,  1309,  1026,   109,  1312,   138,   139,   342,   612,
     1904     797,   798,   647,   654,   668,    41,    42,   799,   800,    55,
     1905     669,   323,   455,  1521,  1461,   671,    37,    34,   182,   183,
     1906      40,   672,    37,   673,   182,   183,    40,    41,    42,    68,
     1907     805,   806,   676,    41,    42,   105,   678,   256,   721,   479,
     1908     696,   718,   759,   433,   723,   719,   495,   936,  -238,   772,
     1909    1485,   347,   776,   609,   162,   610,    75,   780,   834,   609,
     1910     112,   610,   -12,   611,   936,   836,   838,   529,   849,   611,
     1911     158,   901,   -13,    54,   893,   894,   218,   921,   923,   928,
     1912     699,   924,    47,  -417,   977,   949,   704,   653,  -292,  -524,
     1913     963,   970,   748,   972,   704,     8,     9,    10,    11,    12,
     1914     918,   983,   105,  1061,   984,   985,    67,   987,   988,   925,
     1915     989,   990,   612,   927,   595,   999,   347,   602,  1123,   162,
     1916    1011,  1012,  -293,  1013,    31,   112,   112,   112,  1078,     8,
     1917       9,    10,    11,    12,  1027,  1028,   635,   936,   936,   737,
     1918     639,  1029,  1030,   339,     8,     9,    10,    11,    12,  1031,
     1919    1032,  1033,    34,  1044,  -405,  1445,  1427,  -404,    31,  1093,
     1920    1058,   347,   347,   347,  1095,  1103,  1147,  1147,  1147,  1104,
     1921    1105,   211,  1561,    31,  1106,  1112,   993,  1113,  1114,  1115,
     1922     347,  1121,   653,   653,  1131,  1205,    34,  1132,   775,  1167,
     1923    1133,  1138,  1182,  1183,    68,   105,  1143,  1188,   323,   323,
     1924    1146,    34,  1189,  1190,    61,  1191,  1192,   537,   538,   539,
     1925    1300,  1123,   398,   399,  1206,   209,   219,   434,  1207,   400,
     1926     737,    75,  1209,   767,  1078,   406,   455,  1210,  1222,   455,
     1927     401,   540,   407,   541,  1218,   542,  1322,   653,    54,   402,
     1928     653,   403,  1225,   777,   404,   410,  1224,   115,   460,   674,
     1929    1232,  1233,    -3,   778,   347,  1230,   675,  1235,  1124,    47,
     1930      47,  1240,  1534,  1242,   500,  1246,  1251,  1253,   441,   112,
     1931     112,  1255,   495,    68,   323,  1258,   495,  1259,  1078,   434,
     1932    1263,  1078,  1267,   479,  1270,   653,   529,  1272,   529,  1274,
     1933     653,   529,  1275,   323,   529,  1276,   728,  1277,  1278,  1280,
     1934      75,  1304,  1287,   531,  1296,   339,   162,  1297,   112,  1325,
     1935    1147,  1147,   440,  1307,  1123,  1333,  1308,    54,  1339,  1310,
     1936     653,  1341,  1343,  1311,  1348,  1319,  1078,  1347,  1349,  1355,
     1937    1356,  1078,    37,  1357,   182,   183,    40,  1359,   105,  1365,
     1938    1366,  1367,  1368,    41,    42,  1205,   347,  1101,  1375,  1486,
     1939    1376,  1124,  1205,   347,    64,   116,  1379,  1386,   148,   323,
     1940     105,  1078,  1387,   149,   150,  1315,  1395,    47,   112,   698,
     1941     829,   410,   175,   602,  1396,  1398,  1405,   112,  1415,   700,
     1942     105,  1416,  1408,   653,  -406,  1419,    64,  1430,   653,  1434,
     1943    1436,  1438,    47,    47,  1439,   160,  1446,  1455,  1451,   159,
     1944    1440,  1456,   870,  1460,  1370,  1205,   653,   602,   653,  1536,
     1945    1457,  1458,   653,   879,  1465,   653,  1470,    47,  1544,   372,
     1946      55,   220,   175,   653,  1078,   175,  1358,   653,  1472,  1078,
     1947    1474,  1476,  1478,    68,  1360,  1361,  1362,  1480,  1482,   105,
     1948      68,  1483,  1488,   479,  1489,  1490,  1501,  1078,  1511,  1078,
     1949     479,  1519,  1513,  1078,  1124,  1515,  1078,  1527,   258,  1520,
     1950      75,  1542,   460,  1547,  1078,   460,  1543,    75,  1078,   339,
     1951    1554,   175,  1556,   105,   213,  1558,  1564,    54,   327,  1571,
     1952    1572,  1223,  1397,   808,    54,   807,  1324,    55,   809,   212,
     1953     214,   455,   810,    68,  1219,   811,  1522,  1433,  1574,   231,
     1954     328,  1389,  1257,   479,   347,   728,  1504,   241,   258,   349,
     1955    1406,  1229,   942,  1108,     2,   205,     4,     5,     6,     7,
     1956      75,   495,   531,   694,   531,   729,   213,   531,   951,   695,
     1957     531,  1110,  1142,   826,   175,  1057,  1120,    54,   900,   405,
     1958    1334,   212,   214,   227,   816,   339,   742,   973,     8,     9,
     1959      10,    11,    12,     0,   423,   817,   965,   428,   430,   818,
     1960     347,   347,   159,  1444,     0,     0,     0,     0,     0,   213,
     1961       0,     0,     0,     0,     0,     0,   105,    31,     0,    35,
     1962      55,    36,     0,   447,   212,   214,     0,   450,   175,   451,
     1963      37,     0,   173,   174,    40,   175,     0,     0,   466,   105,
     1964       0,    41,    42,  1018,    64,    34,   105,   829,     0,   480,
     1965      37,     0,   182,   183,    40,     0,     0,     0,     0,   487,
     1966       0,    41,    42,     0,     0,     0,     0,   430,   517,     0,
     1967     213,     0,     0,     0,     0,     0,   123,   126,   127,     0,
     1968     728,   534,   535,     0,     0,   212,   214,   698,     0,   410,
     1969     728,     0,     0,   556,     0,     0,     0,   700,     0,   105,
     1970       0,     0,     0,     0,   175,   728,     0,     0,   213,     0,
     1971       0,     0,   213,     8,     9,    10,    11,    12,     0,     0,
     1972     486,   175,     0,   212,   214,   175,     0,   212,   214,   535,
     1973       0,     0,     0,     0,     0,   258,     0,   829,   603,     0,
     1974       0,   455,    31,   506,   631,     0,     0,   253,     0,   254,
     1975       0,     0,     0,     0,     0,     0,     0,   636,     0,     0,
     1976     455,   636,    55,    55,   258,   535,     0,   460,     0,     0,
     1977      34,     0,     0,     0,   729,    37,  1388,   182,   183,    40,
     1978       0,   495,  1125,   323,     0,    55,    41,    42,   175,     0,
     1979      37,     0,   182,   183,    40,     0,     0,     0,     0,   213,
     1980       0,    41,    42,     0,     0,    55,    37,     0,   182,   183,
     1981      40,   480,   184,     0,   212,   214,     0,    41,    42,     0,
     1982       0,    37,   185,   173,   174,    40,   349,  1532,     0,   410,
     1983     395,   480,    41,    42,   870,     0,     0,  1533,     0,   480,
     1984     414,   415,     0,   184,     0,   419,     0,   421,   422,     0,
     1985     347,   347,     0,   185,     0,     0,     0,     0,   371,    55,
     1986       0,     0,     0,     0,    55,   724,     0,     0,   430,     0,
     1987     166,     0,   171,     0,     0,   177,   178,   179,     0,   181,
     1988     213,     0,     0,   738,     0,    64,     0,     0,     0,     0,
     1989       0,     0,     0,   430,   232,   212,   214,   430,    55,     8,
     1990       9,    10,    11,    12,   728,   728,   247,   248,     0,   729,
     1991       0,     0,   212,     0,     0,   455,   829,     0,     0,   729,
     1992      37,     0,   182,   183,    40,     0,   258,   349,    31,     0,
     1993     213,    41,    42,     0,   729,  1505,     0,  1509,     0,     0,
     1994       0,     0,   794,   795,   796,   212,   214,    37,     0,   173,
     1995     174,    40,     0,     0,   175,     0,    34,   264,    41,    42,
     1996       0,     0,   728,   728,     0,     0,     0,   265,     0,     0,
     1997       0,     0,  1538,   819,  1540,   347,     0,   460,     0,     0,
     1998       0,     0,     0,     0,   375,   535,     0,   175,     0,     0,
     1999       0,   636,   832,     0,   603,     0,   460,     0,   959,     0,
     2000     610,    55,     0,   175,     0,   851,     0,     0,   960,     0,
     2001       0,     0,     0,     0,     0,     0,     0,  1569,   175,  1570,
     2002       0,     0,     0,   603,    55,     0,     0,     0,   603,     0,
     2003       0,    55,  1577,  1578,   636,   339,     0,   349,   349,   349,
     2004       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2005      73,     0,     0,   213,     0,     0,   349,     0,     0,     0,
     2006    1125,     0,     0,     0,     0,     0,     0,     0,   212,   214,
     2007       0,     0,     0,     0,   724,     0,     0,     0,     0,     0,
     2008       0,   213,    73,     0,    55,   480,   213,     0,     0,     0,
     2009     258,   738,     0,     0,   938,     0,   212,   214,     0,     0,
     2010       0,   212,   214,     0,     0,     0,  1331,     0,     0,     0,
     2011       0,     0,     0,     0,     0,   175,     0,   221,     0,   535,
     2012       0,     0,     0,     0,     0,     0,     0,   480,     0,     0,
     2013     349,     0,     0,   729,   729,     0,     0,     0,   728,   964,
     2014       0,     0,   430,     0,     0,     0,   728,   728,   728,     0,
     2015       0,   460,     0,  1125,     0,     0,     0,     0,     0,     0,
     2016       0,     0,     0,   601,   608,   994,   258,   738,     0,     0,
     2017       0,     0,   992,     0,   213,   632,   633,     0,     0,   125,
     2018     125,   125,     0,     0,     0,     0,     0,     0,   213,   212,
     2019     214,   729,   729,     0,   728,     0,     0,     0,     0,     0,
     2020       0,     0,     0,   212,   214,   352,     0,     0,     0,   724,
     2021       0,     0,   535,     0,     0,     0,     0,     0,     0,   724,
     2022       0,     0,   349,   506,   636,     0,     0,  1024,   636,   832,
     2023       0,     0,   821,   822,   724,     0,     0,     0,     0,     0,
     2024       0,     0,     0,     0,  1035,     0,     0,     0,     0,     0,
     2025     125,     0,   125,     0,     0,     0,  1125,     8,     9,    10,
     2026      11,    12,   856,     0,     0,   859,   860,     0,   863,     0,
     2027     865,   866,     0,     0,     0,   867,   868,   274,     0,   448,
     2028       0,   175,   213,     0,     0,     0,    31,     0,  1507,     0,
     2029    1507,     0,     0,     0,     0,     0,    64,   212,   214,     0,
     2030      73,     0,     0,     0,     0,    73,   412,     0,     0,     0,
     2031       0,     0,     0,   420,    34,     0,     0,     0,   636,    37,
     2032       0,   182,   183,    40,     0,  1507,     0,  1507,     0,     0,
     2033      41,    42,     0,   125,     0,  1332,     0,     0,     0,     0,
     2034       0,   125,     0,   125,   125,     0,     0,     0,   125,     0,
     2035     125,   125,     0,     0,  1117,   323,  1532,     0,   410,   943,
     2036     944,     0,   430,   116,     0,   946,  1533,   729,     0,     8,
     2037       9,    10,    11,    12,     0,   729,   729,   729,     0,     0,
     2038     349,     0,     0,     0,     0,   412,     0,     0,     0,     8,
     2039       9,    10,    11,    12,     0,     0,     0,     0,    31,     0,
     2040     221,     0,     0,     0,     0,     0,   535,     0,     0,     0,
     2041       0,     0,     0,     0,     0,   603,     0,     0,    31,     0,
     2042     125,     0,     0,   729,     0,     0,    34,     0,   428,     0,
     2043       0,    37,     0,   724,   724,    40,   349,   349,     0,     0,
     2044       0,   584,    41,    42,     0,     0,    34,   517,     0,   588,
     2045       0,    37,   591,   182,   183,    40,  1204,     0,     0,     0,
     2046       0,     0,    41,    42,     0,     0,     0,    73,    43,     0,
     2047       0,    76,     0,     0,   213,     0,     0,     0,   146,     0,
     2048       0,     0,   352,     0,     0,     0,     0,    73,   264,   212,
     2049     214,   724,   724,     0,     0,    73,     0,   636,   265,     0,
     2050       0,     0,     0,    76,     0,     0,     0,     0,     0,     0,
     2051       0,     0,     0,     0,     0,   412,     0,     0,     0,   420,
     2052       0,   352,     0,     0,  1508,     0,  1508,     0,   544,   545,
     2053     546,   547,   548,   549,   550,   551,   552,   553,   222,   352,
     2054       0,    73,     0,     0,   952,     0,   953,     0,     0,     0,
     2055       0,     0,     0,   956,   957,     0,   738,     0,   962,     0,
     2056       0,  1508,   554,  1508,   535,     8,     9,    10,    11,    12,
     2057     967,     0,     0,     0,     0,   971,     0,     0,     0,   175,
     2058       0,     0,     0,   352,     0,     0,     0,     0,     0,     0,
     2059       0,     0,     0,     0,    31,     0,     0,     0,     0,  1301,
     2060       0,  1000,     0,     0,   412,     0,     0,     0,     0,     0,
     2061       0,     0,     0,     0,     0,     0,   258,     0,     0,     0,
     2062       0,    64,    34,     0,     0,     0,   354,    37,     0,     0,
     2063       0,    40,     0,     0,     0,   724,     0,   738,    41,    42,
     2064       0,   116,     0,     0,     0,     0,   601,     0,   352,     0,
     2065       0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
     2066       0,     0,     0,     0,   744,     0,     0,   724,     0,   212,
     2067     214,     0,     0,     0,   745,   724,   724,   724,     0,     0,
     2068       0,     0,     0,     0,     0,     0,   349,   349,     0,     0,
     2069       0,     0,     0,   352,   352,   352,   584,   584,     0,     0,
     2070    1204,     0,     0,  1045,  1046,  1047,  1048,     0,  1050,     0,
     2071       0,     0,   352,     0,     0,     0,     0,     0,     0,     0,
     2072       0,    76,     0,   724,  1094,     0,    76,     0,     0,     0,
     2073     352,     0,     0,     0,   116,   125,   125,     0,  1100,     0,
     2074       0,    73,     0,     0,     0,     0,     0,   352,     0,  1234,
     2075       0,   213,     0,     0,     0,     0,   175,     0,     0,     0,
     2076       0,     0,     0,     0,     0,   125,   212,   214,   125,   125,
     2077       0,   125,     0,   125,   125,     0,     0,  1116,   125,   125,
     2078       0,     0,     0,    73,     0,   911,   352,     0,     0,   914,
     2079       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2080      18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
     2081       0,   349,     0,     0,     0,     0,     0,  1144,     0,    31,
     2082       0,   222,   412,   352,  1152,     0,     0,     0,     0,  1156,
     2083       0,     0,     0,     0,  1160,     0,  1161,   116,     0,     0,
     2084    1163,  1164,  1165,     0,     0,  1168,     0,    34,     0,     0,
     2085       0,     0,     0,     0,  1180,     0,     0,   125,  -294,     0,
     2086    1204,     0,   125,   125,     0,   352,     0,  1204,   125,     0,
     2087       0,     0,  1195,  1196,  1323,   352,     0,     0,   352,     0,
     2088       0,     0,     0,   221,     0,   352,     0,     0,    76,     0,
     2089     352,     0,     0,     0,     0,     0,     0,     0,     0,  1226,
     2090       0,     0,  1228,   354,     0,     0,     0,     0,    76,     0,
     2091       0,     0,     0,     0,     0,     0,    76,     0,     0,     0,
     2092    1204,     0,     0,     0,     0,     0,     0,  1557,     0,     0,
     2093       0,     0,     0,     0,     0,     0,     0,   584,     0,     0,
     2094       0,  1244,   354,     0,     0,     0,     0,  1248,  1249,     0,
     2095       0,     0,    73,     0,     0,     0,     0,     0,     0,  1260,
     2096     354,     0,    76,    78,  1264,     0,     0,  1268,     0,  1269,
     2097       0,     0,  1271,     0,     0,     0,     0,     0,     0,     0,
     2098       0,     0,     0,     0,     0,  1279,     0,     0,     0,     0,
     2099       0,     0,     0,     0,     0,    78,   281,   282,  1286,   283,
     2100    1288,  1289,  1290,  1291,   354,     0,     0,     0,     0,     0,
     2101       0,     0,     0,     0,     0,     0,  1298,     0,  1299,     0,
     2102       0,     0,   171,     0,     0,   284,     0,     0,     0,     0,
     2103     223,   649,     0,   138,   139,   286,   352,     0,   287,   650,
     2104     289,   290,    41,    42,     0,   291,   292,     0,     0,     0,
     2105     412,  1327,  1328,   293,     0,     0,     0,     0,     0,     0,
     2106       0,     0,     0,     0,     0,     0,     0,     0,   294,   354,
     2107     651,     0,   652,   379,     0,     0,     0,   296,   380,   298,
     2108     299,   300,   301,     0,     0,     0,     0,     0,     0,   352,
     2109     352,     0,   352,   352,     0,     0,     0,     0,     0,     0,
     2110       0,     0,     0,  1363,  1364,     0,     0,     0,     0,     0,
     2111       0,     0,    73,  1374,   354,   354,   354,     0,   355,     0,
     2112       0,     0,     0,     0,     0,     0,     0,     0,     0,  1158,
     2113       0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
     2114       0,     0,     0,     0,     0,  1170,     0,   352,   352,     0,
     2115       0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
     2116       0,     0,    76,     0,     0,  1407,     0,     0,   354,     0,
     2117       0,     0,     0,     0,     0,     0,     0,  1411,     0,  1412,
     2118    1413,  1414,   281,   282,     0,   283,     0,     0,     0,     0,
     2119       0,  1418,     0,     0,     0,     0,     0,     0,     0,     0,
     2120    1429,     0,     0,     0,    76,     0,     0,   354,     0,     0,
     2121       0,   284,   352,    78,     0,     0,  1442,   285,    78,     0,
     2122       0,   286,  1238,     0,   287,   288,   289,   290,    41,    42,
     2123       0,   291,   292,     0,     0,     0,     0,     0,    85,   293,
     2124       0,     0,     0,     0,   354,     0,     0,     0,     0,     0,
     2125       0,     0,   125,     0,   294,   221,   378,     0,     0,   379,
     2126       0,     0,     0,   296,   380,   298,   299,   300,   301,     0,
     2127      85,     0,  1491,  1492,     0,     0,     0,    73,     0,     0,
     2128       0,     0,     0,     0,     0,  1497,   354,     0,     0,     0,
     2129       0,   352,  1497,   352,     0,     0,   354,     0,     0,   354,
     2130       0,     0,     0,     0,   222,   224,   354,     0,     0,     0,
     2131       0,   354,     0,   223,     0,     0,     0,     0,     0,     0,
     2132       0,     0,     0,   352,     0,  1531,     0,     0,     0,  1537,
     2133       0,   352,   352,   352,     0,     0,     0,     0,     0,     0,
     2134       0,     0,   352,   352,     0,     0,     0,     0,     0,     0,
     2135       0,     0,     0,     0,     0,     0,    73,     0,  1559,     0,
     2136    1560,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2137       0,     0,     0,    76,     0,     0,     0,   125,     0,   352,
     2138      78,     0,     0,     0,     0,     0,     0,     0,  1575,  1576,
     2139       0,     0,     0,   362,     0,   355,  1579,  1580,     0,     0,
     2140      78,     0,     0,     0,     0,     0,  -519,     0,    78,     1,
     2141       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    19552142      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    1956       22,    23,    24,  -294,  1227,    25,    26,    27,   693,    30,
    1957      694,  1107,   941,   722,    30,   213,   211,  1056,   478,   213,
    1958     1108,  1140,   825,  1118,   899,   478,   935,   964,  1331,   741,
    1959      972,   815,     0,     0,   816,   174,   257,    33,   817,   602,
    1960        0,   252,    33,   253,  1391,   630,     0,     0,     0,    37,
    1961       38,     0,   174,  -294,     0,     0,   174,  1424,   635,   211,
    1962        0,     0,   635,     0,     0,   257,     0,     8,     9,    10,
    1963       11,    12,     0,     0,     0,     0,     0,     0,   478,   776,
    1964        0,   409,     0,  1123,   935,   935,   337,     0,     0,   777,
    1965        0,     0,     0,     0,   109,    30,     0,     0,  1417,   653,
    1966        0,  1425,     0,     0,     0,  1217,   213,     0,     0,     0,
    1967        0,     0,   479,     0,     0,  1504,     0,  1504,     0,   174,
    1968      211,     0,     0,    33,   394,     0,     0,   348,     0,     0,
    1969        0,     0,   479,     0,   413,   414,     0,   728,   728,   418,
    1970      479,   420,   421,     0,     0,     0,  1464,     0,     0,     0,
    1971        0,  1468,  1504,     0,  1504,     0,     0,     0,   211,     0,
    1972        0,     0,   211,     0,     0,   958,   723,   609,     0,   429,
    1973        0,     0,     0,     0,     0,   959,     0,     0,   505,     0,
    1974      716,  1490,   322,     0,   737,   463,    63,   213,     0,     8,
    1975        9,    10,    11,    12,   429,   728,   728,     0,   429,     0,
    1976        0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
    1977       11,    12,     0,   600,   607,     0,     0,    30,   749,    36,
    1978      753,   181,   182,    39,     0,   631,   632,   257,   348,     0,
    1979       40,    41,     0,     0,     0,    30,     0,   213,     0,     0,
    1980        0,     0,     0,     0,     0,    33,     0,     0,     0,   211,
    1981       36,     0,   181,   182,    39,     0,   697,     0,   409,     0,
    1982        0,    40,    41,    33,   698,     0,   699,  1559,    36,     0,
    1983      181,   182,    39,  1559,   818,     0,     0,     0,     0,    40,
    1984       41,     0,     0,     0,  1559,   174,     0,   608,  1559,   609,
    1985        0,     0,   635,   831,   935,   602,     0,   610,     0,     0,
    1986        0,     0,     0,     0,     0,   697,   850,   409,     0,     0,
    1987        0,   935,     0,     0,     0,   699,     0,     0,   174,     0,
    1988        0,     0,     0,     0,   602,     0,     0,     0,     0,   602,
    1989      211,     0,     0,     0,   174,   635,     0,  1329,   348,   348,
    1990      348,     0,     0,     0,     0,  1385,     0,   211,     0,   174,
    1991       36,     0,   181,   182,    39,     0,     0,   348,     0,     0,
    1992      213,    40,    41,     0,     0,     0,     0,     0,     0,   728,
    1993        0,     0,   891,     0,     0,   723,     0,   728,   728,   728,
    1994      211,     0,     0,     0,   935,   935,   479,   697,   213,   409,
    1995        0,   257,   737,   213,     0,   937,     0,   699,     0,     0,
    1996        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    1997       17,    18,    19,    20,    21,    22,    23,    24,    72,     0,
    1998       25,    26,    27,     0,     0,   728,     0,     0,   479,    30,
    1999      452,   348,     0,   944,     0,     0,     0,     0,     0,   947,
    2000      963,     0,     0,   429,     0,    75,   174,     0,     0,    72,
    2001       36,     0,   181,   182,    39,     0,     0,    33,     0,     0,
    2002        0,    40,    41,     0,    37,    38,     0,   257,   737,     0,
    2003        0,     0,     0,   991,     0,     0,    75,     0,     0,     0,
    2004        0,   213,     0,     0,   220,     0,     0,  1529,     0,   409,
    2005        0,     0,     0,     0,     0,   213,     0,  1530,   485,     0,
    2006        0,   453,     0,   211,  1502,   710,  1506,     0,     0,   109,
    2007      723,   221,     0,     0,     0,     0,     0,     0,     0,     0,
    2008      723,     0,     0,   348,     0,   635,   820,   821,  1023,   635,
    2009      831,   211,     0,     0,     0,   723,   211,     0,     0,     0,
    2010        0,  1535,     0,  1537,     0,  1034,    36,     0,   181,   182,
    2011       39,     0,     0,     0,     0,     0,   855,    40,    41,   858,
    2012      859,     0,   862,     0,   864,   865,     0,     0,     0,   866,
    2013      867,     0,   351,   543,   544,   545,   546,   547,   548,   549,
    2014      550,   551,   552,   263,     0,     0,  1566,     0,  1567,   213,
    2015        0,     0,     0,   264,   951,     0,   952,    63,     0,   353,
    2016        0,  1574,  1575,   955,   956,     0,     0,   553,   961,     0,
    2017        0,     0,   174,     0,   653,     0,   411,     0,     0,   635,
    2018      966,  1060,     0,   419,   211,   970,     0,     0,     8,     9,
    2019       10,    11,    12,     0,     0,     0,     0,     0,   211,     0,
    2020        0,     0,     0,     0,     0,     0,   447,     0,     0,     0,
    2021        0,   999,     0,   942,   943,  1115,    30,     0,   505,   945,
    2022        0,     0,     0,   429,   115,     0,     0,    72,     0,     0,
    2023        0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
    2024        0,   348,     0,     0,    33,     0,     0,     0,     0,    36,
    2025        0,   181,   182,    39,    75,   411,   600,     0,     0,    75,
    2026       40,    41,     0,     0,     0,     0,   124,   124,   124,     0,
    2027        0,     0,     0,   653,     0,     0,   602,     0,     0,     0,
    2028        0,     0,     0,     0,     0,     0,  1529,     0,   409,   427,
    2029        0,     0,   211,     0,   723,   723,  1530,   348,   348,     0,
    2030        0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
    2031        0,   583,     0,  1044,  1045,  1046,  1047,  1202,  1049,   587,
    2032        0,     0,   590,     0,     0,     0,     0,   220,     0,     0,
    2033        0,     0,    30,     0,  1093,     0,     0,   124,     0,   124,
    2034        0,   213,     0,     0,     0,     0,     0,     0,  1099,     0,
    2035        0,     0,   723,   723,   221,     0,     0,     0,   635,     0,
    2036       33,     0,     0,     0,   273,    36,     0,   181,   182,    39,
    2037        0,     0,     0,  1060,     0,     0,    40,    41,     0,     0,
    2038        0,     0,     0,     0,     0,   411,     0,  1114,     0,   419,
    2039        0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
    2040        0,     0,   183,     0,     0,     0,     0,     0,     0,   351,
    2041        0,     0,   184,     0,    72,     0,   737,     0,     0,     0,
    2042      124,    75,    72,     0,     0,     0,     0,  1142,   124,     0,
    2043      124,   124,     0,     0,  1150,   124,   353,   124,   124,  1154,
    2044        0,    75,     0,     0,  1158,     0,  1159,     0,   351,    75,
    2045     1161,  1162,  1163,     0,     0,  1166,     0,     0,     0,  1298,
    2046        0,     0,     0,     0,  1178,     0,   351,     0,    72,   174,
    2047        0,     0,     0,     0,   411,   353,   257,     0,     0,  1297,
    2048        0,    63,  1193,  1194,   211,     0,     0,     0,     8,     9,
    2049       10,    11,    12,   353,   723,    75,   737,     0,     0,     0,
    2050      115,     0,     0,     0,     0,     0,     0,   124,     0,  1224,
    2051      351,     0,  1226,     0,     0,     0,    30,     0,     0,     0,
    2052      213,     0,     0,     0,     0,     0,   723,     0,     0,     0,
    2053        0,     0,     0,     0,   723,   723,   723,   353,     0,     0,
    2054        0,     0,     0,     0,    33,   348,   348,     0,     0,    36,
    2055     1241,   181,   182,    39,     0,     0,  1245,  1246,     0,  1202,
    2056       40,    41,     0,     0,     0,     0,   583,   583,  1257,     0,
    2057        0,     0,     0,  1261,     0,   351,  1265,     0,  1266,     0,
    2058        0,  1268,   723,     0,     0,     0,   263,     0,     0,     0,
    2059        0,     0,     0,   115,  1276,     0,   264,     0,     0,     0,
    2060        0,     0,   353,  1232,     0,     0,     0,  1283,     0,  1285,
    2061     1286,  1287,  1288,     0,     0,     0,   213,     0,     0,     0,
    2062      351,   351,   351,     0,     0,  1295,     0,  1296,     0,     0,
    2063        0,   170,     0,     0,     0,     0,     0,     0,     0,   351,
    2064        0,     0,     0,     0,     0,   174,     0,   353,   353,   353,
    2065        0,     0,     0,     0,     0,   910,     0,   351,     0,   913,
    2066     1324,  1325,     0,   211,     0,     0,   353,     0,    72,     0,
    2067      348,     0,    77,     0,   351,     0,     0,     0,     0,     0,
    2068        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
    2069        0,     0,   411,     0,     0,    75,   115,     0,     0,    84,
    2070        0,   353,     0,    77,     0,    54,    54,     0,     0,     0,
    2071       72,  1360,  1361,   351,     0,     0,     0,     0,     0,  1202,
    2072        0,  1371,     0,     0,     0,     0,  1202,  1320,     0,     0,
    2073       84,     0,     0,     0,     0,     0,    54,    75,   222,     0,
    2074      353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2075      351,     0,     0,     0,     0,     0,     0,     0,     0,   211,
    2076        0,     0,     0,     0,     0,   223,     0,     0,    54,     0,
    2077        0,    54,     0,  1404,     0,     0,     0,   353,     0,  1202,
    2078        0,     0,     0,     0,     0,  1408,  1554,  1409,  1410,  1411,
    2079        0,     0,   351,     0,     0,     0,     0,     0,     0,  1415,
    2080        0,     0,   351,     0,     0,   351,     0,   583,  1426,     0,
    2081      220,     0,   351,     0,     0,     0,     0,   351,     0,   353,
    2082        0,     0,   124,   124,  1439,     0,   354,     0,     0,   353,
    2083        0,     0,   353,     0,     0,     0,     0,   221,     0,   353,
    2084        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
    2085        0,     0,   124,   361,     0,   124,   124,     0,   124,   346,
    2086      124,   124,     0,     0,     0,   124,   124,     0,     0,     0,
    2087        0,     0,     0,     0,     0,     0,     0,     0,     0,    72,
    2088     1488,  1489,     0,     0,     0,     0,     0,     0,     0,     0,
    2089        0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
    2090     1494,     0,     0,     0,     0,     0,    75,     0,     0,     0,
     2143      22,    23,    24,    25,   355,     0,    26,    27,    28,    29,
     2144       0,     0,    30,     0,     0,    31,    32,     0,     0,     0,
     2145       0,     0,   355,     0,    78,     0,     0,   354,     0,     0,
     2146       0,     0,     0,     0,     0,     0,     0,   352,     0,     0,
     2147      33,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2148      38,    39,    40,     0,     0,     0,     0,     0,    85,    41,
     2149      42,     0,     0,    85,     0,     0,   355,     0,  1034,     0,
     2150       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2151     354,   354,     0,   354,   354,    43,    73,    44,     0,     0,
     2152       0,     0,     0,    73,     0,    45,     0,     0,   281,   282,
     2153      31,   283,     0,    76,     0,     8,     9,    10,    11,    12,
     2154      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2155      23,    24,    25,  -295,     0,     0,     0,   284,    34,     0,
     2156       0,   355,     0,   285,    31,     0,     0,   286,   354,   354,
     2157     287,   288,   289,   290,    41,    42,    73,   291,   292,     0,
     2158       0,     0,     0,     0,     0,   293,     0,     0,   224,     0,
     2159       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
     2160     294,     0,   378,  -295,     0,     0,   355,   355,   355,   296,
     2161     827,   298,   299,   300,   301,     0,     0,     0,     0,     0,
     2162       0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
     2163       0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
     2164       0,     0,     0,   355,     0,     0,     0,     0,     0,     0,
     2165       0,     0,     0,     0,    78,    85,     0,     0,     0,   164,
     2166     355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2167     362,     0,     0,     0,     0,    85,   222,     0,   217,     0,
     2168       0,     0,     0,    85,     0,     0,     0,     0,     0,     0,
     2169       0,     0,     0,     0,     0,     0,    78,     0,    76,   355,
     2170       0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
     2171       0,     0,   354,     0,   354,     0,     0,     0,     0,     0,
     2172       0,     0,     0,     0,   164,     0,     0,   362,     0,    85,
     2173     271,     0,     0,     0,     0,     0,   355,     0,     0,     0,
     2174       0,     0,     0,     0,   354,     0,     0,     0,     0,     0,
     2175       0,     0,   354,   354,   354,     0,     0,     0,     0,   164,
     2176       0,     0,     0,   354,   354,     0,     0,     0,     0,   368,
     2177       0,   362,     0,   374,     0,     0,     0,    76,   355,     0,
     2178       0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
     2179       0,   355,     0,     0,     0,     0,   223,     0,   355,     0,
     2180     354,     0,     0,   355,     8,     9,    10,    11,    12,    13,
     2181      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2182      24,    25,   164,     0,    26,    27,    28,     0,     0,     0,
     2183       0,     0,     0,    31,   217,     0,   362,     0,     0,     0,
    20912184       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2092      411,    77,     0,     0,    54,     0,    77,     0,     0,     0,
    2093        0,     0,     0,  1528,     0,     0,     0,  1534,     0,     0,
    2094        0,     0,     0,     0,   124,     0,     0,     0,    84,   124,
    2095      124,     0,     0,    84,    54,   124,     0,     0,     0,     0,
    2096        0,     0,     0,   351,     0,     0,  1556,     0,  1557,     0,
     2185       0,     0,   164,   461,     0,     0,     0,     0,     0,     0,
     2186       0,    34,     0,     0,     0,    78,     0,     0,   206,    39,
     2187       0,     0,     0,     0,     0,     0,   374,     0,     0,     0,
     2188       0,   362,   362,   362,   164,     0,     0,     0,   354,     0,
     2189       0,     0,     0,     0,   514,     0,   516,   519,     0,     0,
     2190     362,     0,     0,     0,   522,   523,     0,     0,   461,   516,
     2191     516,   164,     0,   270,     0,     0,     0,     0,   362,     0,
     2192       0,   516,     0,     0,     0,     0,     0,     0,     0,    85,
     2193       0,     0,     0,     0,     0,   362,     0,    76,   281,   282,
     2194       0,   283,     0,     0,    76,     0,     0,     0,     0,   355,
     2195       0,     0,     0,     0,     0,     0,     0,   516,   606,     0,
     2196       0,     0,     0,   630,     0,     0,     0,   284,     0,     0,
     2197       0,    85,     0,   285,   362,     0,     0,   286,     0,     0,
     2198     287,   288,   289,   290,    41,    42,     0,   291,   292,     0,
     2199       0,     0,     0,   516,     0,   293,     0,    76,     0,     0,
     2200       0,     0,   355,   355,     0,   355,   355,     0,     0,     0,
     2201     294,   362,   378,     0,     0,     0,     0,     0,   812,   296,
     2202     380,   298,   299,   300,   301,    78,     0,     0,     0,     0,
     2203       0,     0,     0,     0,     0,   210,     0,     0,     0,   164,
     2204     164,     0,     0,     0,     0,   230,   368,   234,     0,   236,
     2205       0,     0,     0,   362,     0,     0,   245,     0,     0,     0,
     2206     355,   355,     0,   362,     0,     0,   362,   461,     0,     0,
     2207     461,   224,     0,   362,     0,     0,     0,     0,   362,     0,
     2208       0,     0,     0,     0,     0,     0,     0,   210,     0,   234,
     2209     236,   245,     0,     0,     0,     0,     0,     0,     0,     0,
     2210       0,     0,     0,   741,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,     0,     0,   164,     0,     0,     0,     0,
     2212       0,     0,     0,     0,     0,   355,     0,   461,     0,   461,
     2213     210,     0,   461,     0,   164,   461,     0,     0,     0,     0,
     2214      85,     0,     0,     0,     0,     0,     0,   368,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,     0,     0,     0,     0,   223,     0,
     2217     516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
     2218     516,   516,   516,   516,   516,   516,   516,   516,     0,     0,
     2219      78,   210,     0,   234,   236,   245,     0,     0,     0,     0,
     2220     164,     0,     0,     0,   355,     0,   355,     0,     0,     0,
     2221       0,     0,   368,   516,   606,     0,     0,   837,     0,     0,
     2222       0,     0,     0,     0,   362,     0,     0,     0,     0,   210,
     2223       0,     0,     0,   210,     0,     0,   355,     0,     0,     0,
     2224       0,     0,     0,   606,   355,   355,   355,     0,   606,   504,
     2225       0,     0,     0,     0,     0,   355,   355,   368,   368,   368,
     2226       0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
     2227       0,     0,     0,     0,     0,     0,   368,   362,   362,     0,
     2228     362,   362,     0,     0,     0,     0,     0,     0,     0,     0,
     2229       0,     0,   355,     0,     0,     0,     0,     0,     0,   210,
     2230      85,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2231       0,   741,   516,     0,     0,     0,     0,     0,     0,     0,
     2232     210,     0,     0,     0,     0,   234,   236,   155,     0,     0,
     2233       0,     0,   461,   245,   516,   362,   362,     0,     0,     0,
     2234       0,     0,     0,     0,     0,     0,     0,   516,     0,     0,
     2235     368,     0,   961,     8,     9,    10,    11,    12,    13,    14,
     2236      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2237      25,     0,     0,   250,     0,     0,   210,     0,     0,     0,
     2238     355,     0,    31,   255,     0,     0,     0,   741,     0,     0,
     2239       0,     0,     0,   516,   210,     0,     0,     0,     0,   210,
     2240     362,   210,     0,     0,     0,     0,     0,     0,     0,     0,
     2241      34,     0,     0,     0,     0,     0,     0,     0,   210,     0,
     2242       0,   210,   210,     0,     0,   516,     0,     0,     0,    78,
     2243       0,     0,     0,     0,     0,     0,    78,   210,     0,   155,
     2244     516,     0,   368,   224,     0,     0,   630,     0,     0,   368,
     2245       0,   210,     0,   385,     0,     0,     0,     0,   210,     0,
     2246       0,     0,     0,     0,     0,    85,     0,     0,     0,     0,
     2247       0,     0,     0,     0,     0,     0,   417,     0,     0,   362,
     2248       0,   362,     0,     0,     0,     0,     0,     0,     0,    78,
     2249     432,     0,     0,     0,     0,     0,     0,     0,     0,   437,
     2250       0,     0,     0,     0,     0,     0,     0,     0,     0,   445,
     2251       0,   362,     0,     0,     0,     0,     0,     0,     0,   362,
     2252     362,   362,     0,     0,     0,     0,     0,     0,     0,     0,
     2253     362,   362,     0,     0,   471,     0,     0,     0,     0,   481,
     2254       0,     0,   461,     0,    85,     0,     0,     0,     0,     0,
     2255       0,     0,   489,     0,     0,     0,     0,     0,   499,     0,
     2256     503,   461,     0,     0,     0,     0,     0,   362,     0,     0,
     2257       0,     0,     0,     0,   210,     0,     0,     0,   533,     0,
     2258       0,     0,     0,     0,   164,     0,     0,     0,     0,     0,
     2259       0,   516,     0,     0,     0,     0,     0,     0,     0,     0,
     2260     368,     0,   210,     0,     0,     0,     0,   210,     0,     0,
     2261       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2262       0,   593,   516,     0,     0,     0,   598,     0,     0,     0,
     2263       0,     0,     0,     0,   516,   606,     0,     0,     0,     0,
     2264       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2265       0,     0,     0,     0,   644,   362,   368,   368,   645,   646,
     2266       0,   648,     0,     0,     0,     0,     0,     0,   660,   661,
     2267       0,   662,   663,     0,   664,   516,   665,     0,     0,     0,
     2268       0,     0,  1178,     0,     0,     8,     9,    10,    11,    12,
     2269       0,     0,     0,   593,     0,   210,     0,     0,     0,     0,
     2270       0,   680,     0,     0,    85,     0,     0,     0,     0,   210,
     2271       0,    85,   281,   282,    31,   283,   461,     0,     0,     0,
     2272       0,     0,     0,     0,     0,     0,   691,     0,     0,   504,
     2273       0,     0,     0,     0,     0,     0,     0,   697,     0,     0,
     2274       0,   284,    34,     0,     0,     0,     0,   285,   516,     0,
     2275       0,   286,     0,     0,   287,   288,   289,   290,    41,    42,
     2276     733,   291,   292,     0,    85,     0,   736,     0,     0,   293,
     2277       0,   471,     0,     0,     0,     0,   741,     0,     0,     0,
     2278       0,     0,     0,     0,   294,     0,   378,     0,     0,     0,
     2279     210,     0,   516,   296,  1179,   298,   299,   300,   301,     0,
     2280       0,     0,     0,   210,     0,     0,   516,   516,   773,     0,
     2281       0,     0,     0,     0,     0,     0,     0,     0,   217,     0,
     2282       0,     0,   210,     0,   788,     0,     0,     0,     0,     0,
     2283       0,   204,     2,   205,     4,     5,     6,     7,     8,     9,
     2284      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2285      20,    21,    22,    23,    24,    25,     0,   741,    26,    27,
     2286      28,   815,     0,     0,     0,     0,     0,    31,     0,     0,
     2287     825,     0,     0,     0,     0,     0,     0,   828,     0,     0,
     2288       0,     0,   835,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,   850,     0,    34,     0,    35,     0,    36,
     2290      37,     0,   206,    39,    40,     0,   368,   368,     0,   210,
     2291       0,    41,    42,     0,     0,   217,     0,     0,     0,     0,
     2292       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2293       0,     0,     0,     0,   890,   210,     0,    43,     0,   207,
     2294       0,     0,     0,     0,     0,     0,     0,   208,     0,     0,
     2295       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2296       0,     0,     0,   210,     0,     0,     0,     0,     0,     0,
     2297     835,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2298      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2299      22,    23,    24,    25,  -294,   210,    26,    27,    28,     0,
     2300       0,     0,     0,     0,     0,    31,   210,     0,     0,     0,
     2301       0,     0,     0,     0,     0,     0,     0,   516,     0,     0,
     2302       0,     0,     0,     0,     0,   250,     0,     0,     0,     0,
     2303       0,   368,     0,    34,   516,   968,   969,     0,     0,     0,
     2304      38,    39,     0,     0,  -294,     0,     0,     0,     0,   986,
     2305       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2306       0,     0,     0,     0,     0,     0,  1001,     0,  1002,     0,
     2307       0,     0,  1006,     0,     0,   643,     0,   338,     0,     0,
     2308       0,     0,     0,     0,     0,   110,     0,     0,   210,   461,
     2309       0,   461,     0,     0,     0,     0,     0,     0,     0,     0,
     2310       0,     0,     0,     0,     0,     0,     0,   516,   516,     0,
     2311       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2312     281,   282,     0,   283,     0,     0,   461,     0,   461,     0,
     2313       0,     0,     0,     0,     0,     0,     0,     0,  1039,     0,
     2314       0,     0,     0,     0,     0,  1040,     0,     0,     0,   284,
     2315       0,     0,     0,     0,     0,   285,   164,     0,  1042,   286,
     2316    1043,     0,   287,   288,   289,   290,    41,    42,     0,   291,
     2317     292,     0,     0,     0,  1055,   210,     0,   293,     0,     0,
     2318       0,  1059,     0,     0,     0,     0,     0,     0,     0,     0,
     2319       0,     0,   294,  1097,   378,     0,  1098,     0,     0,   781,
     2320       0,   296,   380,   298,   299,   300,   301,     0,     0,     0,
     2321       0,     0,     0,     0,   598,     0,     0,     0,     0,     0,
     2322       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2323       0,     0,     0,     0,   341,   363,     0,     0,     0,     0,
     2324       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2325       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2326       0,     0,     0,     0,     0,     0,     0,     0,   413,     0,
     2327       0,     0,   210,     0,     0,   413,     0,     1,     2,     3,
     2328       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2329      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2330      24,    25,     0,  1162,    26,    27,    28,    29,     0,     0,
     2331      30,     0,     0,    31,    32,     8,     9,    10,    11,    12,
     2332      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2333      23,    24,    25,     0,     0,    26,    27,    28,    33,     0,
     2334       0,    34,     0,    35,    31,    36,    37,   413,    38,    39,
     2335      40,     0,     0,     0,     0,     0,     0,    41,    42,   533,
     2336       0,     0,     0,     0,     0,     0,  1227,     0,     0,     0,
     2337       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2338      39,     0,     0,    43,     0,    44,     0,     0,     0,  -523,
     2339       0,     0,     0,    45,     0,   321,  1241,     0,     0,     0,
     2340       0,  1243,     0,   413,     0,   345,     0,     0,     0,  1247,
     2341       0,   413,   589,     0,   413,   592,     0,   381,   381,     0,
     2342       0,     0,     0,     0,   363,     0,     0,     0,   622,     0,
     2343       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2344    1273,     0,     0,     0,     0,     0,     0,   640,     0,     0,
     2345     341,     0,  1281,     0,     0,  1282,     0,  1283,     0,     0,
     2346     281,   282,     0,   283,     0,     0,     0,     0,     0,     0,
     2347       0,  1292,  1293,     0,     0,     0,     0,   413,     0,     0,
     2348       0,   413,     0,     0,     0,     0,     0,     0,   321,   284,
     2349       0,     0,     0,  1306,     0,   285,     0,     0,     0,   286,
     2350       0,     0,   287,   288,   289,   290,    41,    42,     0,   291,
     2351     292,     0,   363,   485,     0,     0,     0,   293,     0,     0,
     2352    1329,     0,     0,     0,     0,     0,     0,     0,   210,     0,
     2353       0,     0,   294,     0,   378,   413,     0,   993,     0,     0,
     2354       0,   296,   380,   298,   299,   300,   301,     0,     0,     0,
     2355       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2356       0,     0,     0,     0,     0,     0,   413,     0,     0,   363,
     2357       0,     0,     0,     0,     1,     2,   205,     4,     5,     6,
     2358       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2359      17,    18,    19,    20,    21,    22,    23,    24,    25,  -294,
     2360       0,    26,    27,    28,    29,     0,     0,    30,     0,   413,
     2361      31,     0,   341,   363,     0,     0,     0,     0,  1399,     0,
     2362    1400,     0,     0,     0,     0,     0,     0,     0,     0,   381,
     2363       0,     0,     0,  1409,     0,  1410,     0,     0,    34,     0,
     2364      35,     0,    36,     0,     0,    38,    39,     0,     0,  -294,
     2365       0,     0,     0,  1417,     0,     0,     0,     0,   413,   413,
     2366       0,     0,     0,     0,     0,     0,     0,     0,     0,  1435,
     2367    1437,     0,     0,     0,     0,     0,     0,   830,   363,     0,
     2368     363,  1443,    44,     0,  1247,     0,     0,     0,     0,   622,
     2369     110,   622,   622,     0,     0,     0,     0,     0,   622,     0,
     2370       0,     0,     0,     0,     0,     0,  1466,     0,   869,   363,
     2371       0,     0,     0,     0,   363,  1473,     0,     0,  1475,     0,
     2372    1477,  1479,  1481,   363,   363,   363,     0,     0,     0,     0,
     2373       0,   735,     0,     0,     0,     0,     0,     0,     0,     0,
     2374       0,     0,   363,     0,     0,     0,     0,   413,   912,     0,
     2375       0,   413,   915,     0,     0,     0,     0,     0,   917,     0,
     2376       0,     0,  1512,     0,  1514,     0,     0,  1247,     0,     0,
     2377     769,     0,     0,     0,     0,     0,   341,   363,   413,     0,
     2378     413,     0,  1526,   782,   413,     0,     0,     0,     0,     0,
     2379     769,     0,     0,   769,     0,     0,     0,     0,     0,     0,
     2380       0,     0,     0,     0,   792,   793,     0,     0,     0,     0,
     2381       0,     0,     0,     0,     0,     0,   363,   622,     0,     0,
     2382       0,     0,     0,     0,     0,     0,   814,     0,     0,     0,
     2383       0,     0,     0,     0,     0,     0,   823,     0,     0,     0,
     2384       0,     0,     0,   345,     0,     0,     0,     0,   782,     0,
     2385       0,     0,   341,   363,     0,     0,     0,   413,   413,     0,
     2386       0,     0,     0,     0,     1,     2,     3,     4,     5,     6,
     2387       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2388      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2389       0,    26,    27,    28,    29,     0,     0,    30,   889,   413,
     2390      31,    32,     0,     0,     0,     0,     0,   381,   363,     0,
     2391       0,     0,     0,     0,   830,   363,     0,     0,     0,   622,
     2392       0,   622,     0,     0,     0,    33,     0,     0,    34,     0,
     2393      35,   622,    36,    37,     0,    38,    39,    40,     0,     0,
     2394       0,     0,     0,     0,    41,    42,     0,   345,     0,     0,
     2395       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2396       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2397      43,     0,    44,     0,     0,     0,     0,     0,     0,     0,
     2398      45,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2399      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2400      23,    24,    25,  -294,   830,    26,    27,    28,     0,     0,
     2401       0,     0,   413,     0,    31,     0,     0,     0,   413,     0,
     2402       0,     0,     0,   782,     0,   991,   413,     0,     0,     0,
     2403       0,   996,     0,     0,     0,     0,     0,     0,  1005,   622,
     2404     622,     0,    34,     0,     0,     0,     0,    37,     0,   336,
     2405     337,    40,     0,  -294,     0,     0,     0,     0,    41,    42,
     2406       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
     2407       0,     0,   413,     0,     0,     0,     0,     0,     0,     0,
     2408       0,     0,  1022,  1023,   643,   345,   338,     0,     0,     0,
     2409       0,   413,  1159,     0,   634,     0,     0,     0,     0,     0,
     2410     345,   363,     0,     0,     0,     0,     0,   413,  1171,     0,
     2411     622,   622,  1176,     0,     0,     0,     0,     0,     0,     0,
     2412       0,     0,   363,   363,     0,     0,     0,     0,     0,     0,
     2413       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2414    1053,     0,     0,     0,   381,     1,     2,   205,     4,     5,
     2415       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2416      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2417       0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
     2418       0,    31,     0,   830,   413,  1239,     0,     0,     0,     0,
     2419       0,     0,     0,     0,     0,     0,     0,   622,     0,     0,
     2420       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2421       0,    35,     0,    36,     0,     0,    38,    39,     0,     0,
     2422     321,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2423       0,     0,     0,     0,     0,     0,  1140,  1141,     0,     0,
     2424       0,     0,   363,   381,     0,     0,     0,   281,   282,   996,
     2425     283,     0,  1150,    44,   769,     0,     0,     0,     0,     0,
     2426       0,   110,     0,     0,     0,     0,     0,     0,     0,     0,
     2427       0,     0,     0,     0,  1166,     0,   284,     0,     0,     0,
     2428       0,     0,   285,     0,     0,  1181,   286,     0,     0,   287,
     2429     288,   289,   290,    41,    42,     0,   291,   292,     0,     0,
     2430       0,     0,   341,     0,   293,   281,   282,   381,   283,  1199,
     2431       0,     0,     0,     0,     0,     0,     0,     0,     0,   294,
     2432       0,   378,     0,   363,   996,   996,     0,     0,   296,   380,
     2433     298,   299,   300,   301,   284,     0,     0,     0,     0,     0,
     2434     285,     0,     0,     0,   286,  1231,     0,   287,   288,   289,
     2435     290,    41,    42,     0,   291,   292,     0,     0,     0,     0,
     2436       0,     0,   293,     0,     0,     0,     0,     0,     0,     0,
     2437       0,     0,   363,   363,     0,     0,     0,   294,     0,   378,
     2438       0,     0,     0,     0,     0,     0,   296,   734,   298,   299,
     2439     300,   301,     0,   996,     0,     0,     0,     0,     0,     0,
     2440       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2441       0,     0,   889,     0,     0,     0,     0,     0,     0,     0,
     2442       0,     0,     0,     0,     0,     0,     0,  1284,  1285,     0,
     2443       0,     0,     0,     0,     0,     1,     2,   205,     4,     5,
     2444       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2445      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2446       0,     0,    26,    27,    28,    29,     0,     0,    30,   281,
     2447     282,    31,  1062,  1063,     0,  1064,     0,     0,  1065,  1066,
     2448    1067,  1068,  1069,  1070,  1071,  1072,     0,     0,     0,  1073,
     2449       0,     0,     0,  1074,  1075,     0,    33,   363,   284,    34,
     2450       0,    35,     0,    36,   649,     0,    38,    39,   286,   996,
     2451       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2452       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2454       0,   294,     0,  1076,     0,     0,   170,     0,     0,     0,
     2455     296,   297,   298,   299,   300,   301,     0,     0,     0,     0,
     2456    1077,     0,     0,     0,  -129,     0,     0,     0,     0,     0,
     2457    1392,     0,   769,     0,     0,     0,     0,     0,     0,     0,
     2458       0,     0,     0,     0,     0,     0,     0,   413,     8,     9,
     2459      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2460      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2461      28,     0,   413,   413,     0,     0,     0,    31,     0,     0,
     2462       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2463       0,     0,     0,     0,     0,     0,     0,   413,     0,     0,
     2464       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2465       0,     0,   206,    39,     0,     0,     0,     0,  1452,     0,
     2466       0,     0,     0,     0,     0,     1,     2,   205,     4,     5,
     2467       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2468      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2469       0,     0,    26,    27,    28,    29,     0,   629,    30,   281,
     2470     282,    31,   283,     8,     9,    10,    11,    12,    13,    14,
     2471      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2472      25,     0,     0,    26,    27,    28,     0,     0,   284,    34,
     2473       0,    35,    31,    36,   285,     0,    38,    39,   286,     0,
     2474    1518,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2475       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2476      34,     0,     0,     0,     0,   109,     0,    38,    39,     0,
     2477       0,   294,     0,  1076,     0,     0,    41,    42,     0,     0,
     2478     296,   297,   298,   299,   300,   301,     0,     0,     0,     0,
     2479       0,     0,   321,     0,  -129,     1,     2,   205,     4,     5,
     2480       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2481      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2482       0,     0,    26,    27,    28,    29,     0,     0,    30,   281,
     2483     282,    31,   283,     8,     9,    10,    11,    12,    13,    14,
     2484      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2485      25,     0,     0,    26,    27,    28,     0,     0,   284,    34,
     2486       0,    35,    31,    36,   285,     0,    38,    39,   286,     0,
     2487       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2488       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2489      34,     0,     0,     0,     0,     0,     0,   206,    39,     0,
     2490       0,   294,     0,    44,     0,     0,     0,     0,     0,     0,
     2491     296,   297,   298,   299,   300,   301,     2,   205,     4,     5,
     2492       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2493      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2494       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2495     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2496       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2497       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2498       0,    35,     0,    36,   285,     0,    38,    39,   286,     0,
     2499       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2500       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2501       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2502       0,   294,     0,   343,     0,     0,     0,     0,   781,     0,
     2503     296,   344,   298,   299,   300,   301,     2,   205,     4,     5,
     2504       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2505      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2506       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2507     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2508       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2509       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2510       0,    35,     0,    36,   285,     0,    38,    39,   286,     0,
     2511       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2512       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2513       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2514       0,   294,     0,   931,     0,     0,     0,     0,   781,     0,
     2515     296,   344,   298,   299,   300,   301,     2,   205,     4,     5,
     2516       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2517      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2518       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2519     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2520       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2521       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2522       0,    35,     0,    36,   285,     0,    38,    39,   286,     0,
     2523       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2524       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2525       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2526       0,   294,     0,   931,     0,     0,     0,     0,   781,     0,
     2527     296,   600,   298,   299,   300,   301,     2,   205,     4,     5,
     2528       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2529      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2530       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2531     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2534       0,    35,     0,    36,   285,     0,    38,    39,   286,     0,
     2535       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2536       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2537       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,   294,     0,   343,     0,     0,     0,     0,     0,     0,
     2539     296,   344,   298,   299,   300,   301,     2,   205,     4,     5,
     2540       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2541      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2542       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2543     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2544       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2545       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2546       0,    35,     0,    36,   285,     0,    38,    39,   286,     0,
     2547       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2548       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2549       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,   294,     0,   931,     0,     0,     0,     0,     0,     0,
     2551     296,   344,   298,   299,   300,   301,     2,   205,     4,     5,
     2552       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2553      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2554       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2555     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2556       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2557       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2558       0,    35,     0,    36,   285,     0,   206,    39,   286,     0,
     2559       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2560       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2561       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2562       0,   294,     0,  1020,     0,     0,     0,     0,     0,     0,
     2563     296,  1021,   298,   299,   300,   301,     2,   205,     4,     5,
     2564       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2565      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2566       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2567     282,    31,   283,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2570       0,    35,     0,    36,   285,     0,   206,    39,   286,     0,
     2571       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2572       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2574       0,   294,     0,   378,     0,     0,     0,     0,     0,     0,
     2575     296,   380,   298,   299,   300,   301,   204,     2,   205,     4,
     2576       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2577      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2578      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2579       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2580       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582      34,     0,    35,     0,    36,     0,     0,   206,    39,     0,
     2583       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2584      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2585      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2586       0,     0,     0,     0,   207,    31,     0,     0,     0,     0,
     2587       0,     0,   270,     0,     0,     0,     0,     0,     0,     0,
     2588       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2589       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2590     206,    39,    40,     0,     0,     0,     0,     0,     0,    41,
     2591      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2593       0,     0,     0,     0,     0,    43,     0,   207,     0,     0,
     2594       0,     0,     0,     0,     0,   208,     2,   205,     4,     5,
     2595       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2596      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2597       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
     2598       0,    31,     0,     0,     0,     0,     8,     9,    10,    11,
     2599      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2600      22,    23,    24,    25,     0,     0,    26,    27,    28,    34,
     2601       0,    35,     0,    36,     0,    31,    38,    39,     0,     2,
     2602     205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2603      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2604      23,    24,    25,    34,     0,    26,    27,    28,   109,     0,
     2605      38,    39,  -402,   687,    31,     0,     0,     0,     0,    41,
     2606      42,   634,     0,     0,     0,     0,     0,     0,     0,     0,
     2607       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2608       0,     0,    34,     0,    35,     0,    36,    44,     0,    38,
     2609      39,     0,     0,     0,     0,   110,     0,     0,     0,     0,
     2610       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2611       0,  1371,     0,     0,     0,     0,     0,     0,     0,     0,
     2612       0,     0,     0,     0,     0,     0,   687,     0,     0,     0,
     2613       0,     0,     0,     0,   634,     2,   205,     4,     5,     6,
     2614       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2615      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2616       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2617      31,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2618      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2619      23,    24,    25,  -294,     0,    26,    27,    28,    34,     0,
     2620      35,     0,    36,     0,    31,    38,    39,     0,     0,     0,
     2621       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2622       0,     0,     0,     0,     0,     0,     0,  1373,     0,     0,
     2623       0,     0,    34,     0,     0,     0,     0,    37,     0,   336,
     2624     337,    40,   687,  -294,     0,     0,     0,     0,    41,    42,
     2625     634,     2,   205,     4,     5,     6,     7,     8,     9,    10,
     2626      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2627      21,    22,    23,    24,    25,     0,   338,    26,    27,    28,
     2628       0,     0,     0,     0,   110,     0,    31,     0,     0,     0,
     2629       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2631       0,     0,     0,     0,    34,     0,    35,     0,    36,     0,
     2632       0,   206,    39,     0,     2,   205,     4,     5,     6,     7,
     2633       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2634      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2635      26,    27,    28,     0,     0,     0,     0,     0,   269,    31,
     2636       0,     0,     0,     0,     0,     0,   629,     0,     0,     0,
     2637       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2638       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
     2639       0,    36,     0,     0,    38,    39,     0,     2,   205,     4,
     2640       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2641      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2642      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2643       0,   687,    31,     0,     0,     0,     0,     0,     0,   634,
     2644       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2645       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2646      34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
     2647       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2648      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2649      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2650       0,     0,     0,     0,   599,    31,     0,     0,     0,     0,
     2651       0,     0,   634,     0,     0,     0,     0,     0,     0,     0,
     2652       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2653       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2654     206,    39,     8,     9,    10,    11,    12,    13,    14,    15,
     2655      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2656       0,     0,    26,    27,    28,     0,     0,     0,     0,   281,
     2657     282,    31,   283,     0,     0,     0,     0,   207,     0,     0,
     2658       0,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     2659       0,     0,     0,     0,     0,     0,     0,     0,   284,    34,
     2660       0,     0,     0,     0,   285,     0,    38,    39,   286,     0,
     2661       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2662       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2663       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2664       0,   294,     0,   525,     0,     0,   170,     0,     0,     0,
     2665     296,   297,   298,   299,   300,   301,     8,     9,    10,    11,
     2666      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2667      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2668       0,     0,     0,   281,   282,    31,   283,     8,     9,    10,
     2669      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2670      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2671       0,     0,   284,    34,     0,     0,    31,     0,   285,     0,
     2672      38,    39,   286,     0,     0,   287,   288,   289,   290,    41,
     2673      42,     0,   291,   292,     0,     0,     0,     0,     0,     0,
     2674     293,     0,     0,     0,    34,     0,     0,     0,     0,    37,
     2675       0,   336,   337,    40,     0,   294,     0,   599,    -3,     0,
     2676      41,    42,     0,     0,   296,   600,   298,   299,   300,   301,
     2677       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2678      18,    19,    20,    21,    22,    23,    24,    25,   338,     0,
     2679      26,    27,    28,     0,     0,     0,   110,   281,   282,    31,
     2680     283,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2681      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2682       0,    26,    27,    28,     0,     0,   284,    34,     0,     0,
     2683      31,   453,   649,     0,    38,    39,   286,     0,     0,   287,
     2684     288,   289,   290,    41,    42,     0,   291,   292,     0,     0,
     2685       0,     0,     0,     0,   293,     0,     0,     0,    34,     0,
     2686       0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
     2687     -35,   766,     0,     0,     0,     0,     0,     0,   296,   297,
     2688     298,   299,   300,   301,     8,     9,    10,    11,    12,    13,
     2689      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2690      24,    25,   454,     0,    26,    27,    28,     0,     0,     0,
     2691     110,   281,   282,    31,   283,     0,     0,     0,     0,     0,
    20972692       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2098       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2099      353,    25,    26,    27,     0,     0,  1572,  1573,     0,  1156,
    2100       30,   452,     0,     0,  1576,  1577,     0,     0,     0,     0,
    2101        0,     0,     0,     0,     0,  1168,   351,   351,     0,   351,
    2102      351,   222,     0,     0,     0,     0,     0,     0,    33,     0,
    2103        0,     0,     0,     0,     0,    37,    38,     0,     0,    72,
    2104        0,     0,     0,   353,   353,     0,   353,   353,   223,     8,
     2693      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2694     284,    34,    26,    27,    28,     0,   285,     0,    38,    39,
     2695     286,    31,     0,   287,   288,   289,   290,    41,    42,     0,
     2696     291,   292,     0,     0,     0,     0,     0,     0,   293,     0,
     2697       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2698       0,     0,     0,   294,     0,   295,    38,    39,     0,     0,
     2699       0,     0,   296,   297,   298,   299,   300,   301,     8,     9,
     2700      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2701      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2702      28,   643,     0,   338,     0,   281,   282,    31,   283,     0,
     2703       0,   110,     0,     0,     0,     0,     8,     9,    10,    11,
     2704      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2705      22,    23,    24,    25,   284,    34,    26,    27,    28,     0,
     2706     285,     0,    38,    39,   286,    31,     0,   287,   288,   289,
     2707     290,    41,    42,     0,   291,   292,     0,     0,     0,     0,
     2708       0,     0,   293,     0,     0,     0,     0,     0,     0,     0,
     2709       0,     0,     0,    34,     0,     0,     0,   294,     0,   156,
     2710      38,    39,     0,     0,     0,     0,   296,   297,   298,   299,
     2711     300,   301,     8,     9,    10,    11,    12,    13,    14,    15,
     2712      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2713       0,     0,    26,    27,    28,   643,     0,   338,     0,   281,
     2714     282,    31,   283,     0,     0,   634,     0,     0,     0,     0,
     2715       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2716      18,    19,    20,    21,    22,    23,    24,    25,   284,    34,
     2717      26,    27,    28,     0,   285,     0,    38,    39,   286,    31,
     2718       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2719       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2720       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2721       0,   294,     0,   599,    38,    39,     0,     0,     0,     0,
     2722     296,   600,   298,   299,   300,   301,     8,     9,    10,    11,
     2723      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2724      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2725       0,   256,     0,   281,   282,    31,   283,     0,     0,   110,
     2726       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2727      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2728      24,    25,   284,    34,    26,    27,    28,     0,   285,     0,
     2729      38,    39,   286,    31,     0,   287,   288,   289,   290,    41,
     2730      42,     0,   291,   292,     0,     0,     0,     0,     0,     0,
     2731     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2732       0,    34,     0,     0,     0,   294,     0,   378,    38,    39,
     2733       0,     0,     0,     0,   296,   380,   298,   299,   300,   301,
     2734     474,     2,   205,     4,     5,     6,     7,     8,     9,    10,
     2735      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2736      21,    22,    23,    24,    25,   156,     0,    26,    27,    28,
     2737       0,     0,     0,   110,     0,     0,    31,     0,     0,     0,
     2738       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2739      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2740      26,    27,    28,     0,    34,     0,    35,     0,    36,    31,
     2741       0,    38,    39,     0,     0,     0,     0,     0,     8,     9,
     2742      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2743      20,    21,    22,    23,    24,    25,     0,    34,    26,    27,
     2744      28,     0,    37,     0,    38,    39,    40,    31,     0,     0,
     2745       0,    -3,     0,    41,    42,     0,     8,     9,    10,    11,
     2746      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2747      22,    23,    24,    25,     0,    34,    26,    27,    28,    43,
     2748      37,   156,    38,    39,    40,    31,     0,     0,     0,    45,
     2749       0,    41,    42,     0,     8,     9,    10,    11,    12,    13,
     2750      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2751      24,    25,     0,    34,    26,    27,    28,    43,    37,    44,
     2752     206,    39,    40,    31,     0,     0,     0,    45,     0,    41,
     2753      42,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2754      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2755    -294,    34,    26,    27,    28,    43,    37,   269,   336,   337,
     2756      40,    31,     0,     0,     0,   208,     0,    41,    42,     0,
     2757       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2758       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2759       0,     0,     0,   643,     0,   338,    38,    39,     0,     0,
     2760    -294,     0,     0,   634,     0,     8,     9,    10,    11,    12,
     2761      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2762      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2763       0,   643,     0,   338,    31,   453,     0,     0,     0,     0,
     2764       0,   634,     0,     8,     9,    10,    11,    12,    13,    14,
     2765      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2766      25,  -294,    34,    26,    27,    28,     0,     0,     0,    38,
     2767      39,     0,    31,     8,     9,    10,    11,    12,    13,    14,
     2768      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2769      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2770      34,     0,    31,   453,     0,     0,   454,    38,    39,     0,
     2771     711,  -294,     0,     0,   110,     0,     0,     0,     0,     0,
     2772       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2773      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2774       0,     0,     0,     0,   338,     0,     0,     0,     0,     0,
     2775       0,     0,   110,     0,     0,     8,     9,    10,    11,    12,
     2776      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2777      23,    24,    25,     0,   454,    26,    27,    28,  1109,     0,
     2778       0,     0,   110,     0,    31,   453,     8,     9,    10,    11,
     2779      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2780      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2781       0,     0,    34,     0,     0,    31,     0,     0,     0,    38,
     2782      39,     0,     0,     0,     8,     9,    10,    11,    12,    13,
     2783      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2784      24,    25,     0,    34,    26,    27,    28,     0,     0,     0,
     2785     206,    39,     0,    31,     0,     0,   454,     0,     0,     0,
     2786    1236,     0,     0,     0,   110,     0,     0,     0,     0,     0,
     2787       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2788       0,    34,     0,     0,     0,     0,     0,   269,    38,    39,
     2789       0,     0,     0,     0,     0,   270,     0,     8,     9,    10,
     2790      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2791      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2792       0,     0,     0,     0,     0,   256,    31,     0,     0,     0,
     2793       0,     0,     0,   634,     0,     8,     9,    10,    11,    12,
     2794      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2795      23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
     2796       0,    38,    39,     0,    31,     8,     9,    10,    11,    12,
     2797      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2798      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2799       0,     0,    34,     0,    31,     0,     0,     0,   338,    38,
     2800      39,     0,     0,     0,     0,     0,   634,     0,     0,     0,
     2801       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2802       0,     0,    34,     0,     0,     0,     0,     0,     0,   206,
     2803      39,     0,     0,     0,     0,     0,   454,     0,     0,     0,
     2804       0,     0,     0,     0,   110,     0,     0,     8,     9,    10,
     2805      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2806      21,    22,    23,    24,    25,     0,   269,    26,    27,    28,
     2807       0,     0,     0,     0,   629,     0,    31,     8,     9,    10,
     2808      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2809      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2810       0,     0,     0,     0,    34,     0,    31,     0,     0,     0,
     2811       0,    38,    39,     0,     0,     8,     9,    10,    11,    12,
     2812      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2813      23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
     2814       0,    38,    39,     0,    31,     0,     0,     0,   599,     0,
     2815       0,     0,     0,     0,     0,     0,   634,     0,     0,     0,
     2816       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2817       0,     0,    34,     0,     0,     0,     0,     0,   338,    38,
     2818      39,     0,     0,     0,     0,     0,   110,     2,   205,     4,
     2819       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2820      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2821      25,     0,     0,    26,    27,    28,    44,     0,     0,     0,
     2822       0,     0,    31,     0,   110,     0,     0,     0,     0,     0,
     2823       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2824       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2825      34,     0,    35,     0,    36,     0,     0,    38,    39,   281,
     2826     282,     0,   283,  1063,     0,  1064,     0,     0,  1065,  1066,
     2827    1067,  1068,  1069,  1070,  1071,  1072,     0,     0,  1551,  1073,
     2828       0,     0,     0,  1074,  1075,     0,    33,     0,   284,     0,
     2829       0,     0,     0,  -415,   649,     0,     0,     0,   286,     0,
     2830       0,   287,   288,   289,   290,    41,    42,     0,   291,   292,
     2831       0,     0,     0,     0,     0,     0,   293,     0,     0,     0,
     2832       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2833       0,   294,     0,   378,     0,     0,   170,     0,     0,     0,
     2834     296,   380,   298,   299,   300,   301,     0,     0,     0,     0,
     2835    1077,     0,   281,   282,  -129,   283,  1063,     0,  1064,     0,
     2836       0,  1065,  1066,  1067,  1068,  1069,  1070,  1071,  1072,     0,
     2837       0,     0,  1073,     0,     0,     0,  1074,  1075,     0,    33,
     2838       0,   284,     0,     0,     0,     0,     0,   649,     0,     0,
     2839       0,   286,     0,     0,   287,   288,   289,   290,    41,    42,
     2840       0,   291,   292,     0,     0,     0,     0,     0,     0,   293,
     2841       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,   294,     0,   378,     0,     0,   170,
     2843       0,     0,     0,   296,   380,   298,   299,   300,   301,     0,
     2844       0,     0,     0,  1077,     0,     0,     0,  -129,     2,   205,
     2845       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2846      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2847      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2848       0,     0,     0,    31,     0,   281,   282,     0,   283,  1063,
     2849       0,  1064,  1421,  1422,  1065,  1066,  1067,  1068,  1069,  1070,
     2850    1071,  1072,     0,     0,  1551,  1073,     0,     0,     0,  1074,
     2851    1075,    34,    33,    35,   284,    36,     0,     0,    38,    39,
     2852     649,     0,     0,     0,   286,     0,     0,   287,   288,   289,
     2853     290,    41,    42,     0,   291,   292,     0,     0,     0,     0,
     2854    1330,     0,   293,     0,     0,     0,     0,     0,     0,     0,
     2855       0,     0,     0,     0,     0,     0,     0,   294,     0,   378,
     2856       0,     0,   170,     0,     0,     0,   296,   380,   298,   299,
     2857     300,   301,     0,     0,   281,   282,  1077,   283,  1063,     0,
     2858    1064,  1421,  1422,  1065,  1066,  1067,  1068,  1069,  1070,  1071,
     2859    1072,     0,     0,     0,  1073,     0,     0,     0,  1074,  1075,
     2860       0,    33,     0,   284,     0,     0,     0,     0,     0,   649,
     2861       0,     0,     0,   286,     0,     0,   287,   288,   289,   290,
     2862      41,    42,     0,   291,   292,     0,     0,     0,     0,     0,
     2863       0,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2864       0,     0,     0,     0,     0,     0,   294,     0,   378,     0,
     2865       0,   170,     0,     0,     0,   296,   380,   298,   299,   300,
     2866     301,     0,     0,   281,   282,  1077,   283,  1063,     0,  1064,
     2867       0,     0,  1065,  1066,  1067,  1068,  1069,  1070,  1071,  1072,
     2868       0,     0,     0,  1073,     0,     0,     0,  1074,  1075,     0,
     2869      33,     0,   284,     0,     0,     0,     0,     0,   649,     0,
     2870       0,     0,   286,     0,     0,   287,   288,   289,   290,    41,
     2871      42,     0,   291,   292,     0,     0,     0,     0,     0,     0,
     2872     293,   281,   282,     0,   283,     0,     0,     0,     0,     0,
     2873       0,     0,     0,     0,     0,   294,     0,   378,     0,     0,
     2874     170,     0,     0,     0,   296,   380,   298,   299,   300,   301,
     2875     284,     0,     0,     0,  1077,     0,   649,     0,     0,     0,
     2876     286,     0,     0,   287,   288,   289,   290,    41,    42,     0,
     2877     291,   292,     0,     0,     0,     0,     0,     0,   293,   281,
     2878     282,     0,   283,     0,     0,     0,     0,     0,     0,     0,
     2879       0,     0,     0,   294,     0,   785,     0,     0,   281,   282,
     2880       0,   283,   296,   380,   298,   299,   300,   301,   284,     0,
     2881       0,     0,     0,     0,   285,     0,     0,     0,   286,     0,
     2882       0,   287,   288,   289,   290,    41,    42,   284,   291,   292,
     2883       0,     0,     0,   285,     0,     0,   293,   286,     0,     0,
     2884     287,   288,   289,   290,    41,    42,     0,   291,   292,     0,
     2885       0,   294,     0,   378,     0,   293,   281,   282,     0,   283,
     2886     296,   827,   298,   299,   300,   301,     0,     0,     0,     0,
     2887     513,     0,     0,     0,     0,   281,   282,     0,   283,   296,
     2888     380,   298,   299,   300,   301,   284,     0,     0,     0,     0,
     2889       0,   285,     0,     0,     0,   286,     0,     0,   287,   288,
     2890     289,   290,    41,    42,   284,   291,   292,     0,     0,     0,
     2891     285,     0,     0,   293,   286,     0,     0,   287,   288,   289,
     2892     290,    41,    42,     0,   291,   292,     0,     0,   294,     0,
     2893       0,     0,   293,   281,   282,     0,   283,   296,   380,   298,
     2894     299,   300,   301,     0,     0,     0,     0,   518,     0,     0,
     2895       0,     0,     0,     0,     0,     0,   296,   380,   298,   299,
     2896     300,   301,   284,     0,     0,     0,     0,     0,   285,     0,
     2897       0,     0,   286,     0,     0,   287,   288,   289,   290,    41,
     2898      42,     0,   291,   292,     0,     0,     0,     0,     0,     0,
     2899     293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2900       0,     0,     0,     0,     0,   521,     0,     0,     0,     0,
     2901       0,     0,     0,     0,   296,   380,   298,   299,   300,   301,
     2902       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2903      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2904      22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
     2905       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
     2906       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2907       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2908       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2909     173,   174,    40,     0,     0,     0,     0,     0,     0,    41,
     2910      42,   204,     2,   205,     4,     5,     6,     7,     8,     9,
     2911      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2912      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2913      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2914       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2915       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2916       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2917       0,     0,   206,    39,   474,     2,   205,     4,     5,     6,
     2918       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2919      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2920       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2921      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2922       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2923       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2924      35,     0,    36,     0,     0,    38,    39,     2,   205,     4,
     2925       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2926      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2927      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2928       0,     0,    31,     0,     8,     9,    10,    11,    12,    13,
     2929      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2930      24,    25,     0,     0,    26,    27,    28,   492,   493,   494,
     2931      34,     0,    35,    31,    36,     0,     0,   206,    39,     0,
     2932       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2933       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2934       0,    34,     0,     0,     0,     0,     0,     0,    38,    39
     2935};
     2936
     2937#define yypact_value_is_default(yystate) \
     2938  ((yystate) == (-1332))
     2939
     2940#define yytable_value_is_error(yytable_value) \
     2941  YYID (0)
     2942
     2943static const yytype_int16 yycheck[] =
     2944{
     2945       0,     1,     0,   203,   184,   184,   520,   698,   238,    43,
     2946     115,   184,     1,   698,    43,    43,   543,   185,   629,     0,
     2947     104,   218,   184,   280,   185,   456,   455,   698,   348,    29,
     2948      30,   184,    32,   184,    32,  1062,   184,   902,   167,   168,
     2949     609,   348,     1,    43,   656,    45,   278,    45,  1043,   611,
     2950    1006,    32,  1042,  1043,    32,    55,   497,     0,   759,   611,
     2951      28,    61,   612,    61,    64,   609,    64,    67,   618,    67,
     2952     154,   609,   499,   579,  1340,   718,   503,   999,    67,   609,
     2953     609,    81,    82,   780,   264,   264,   777,    51,   186,    32,
     2954    1421,   264,   777,   609,    82,   200,  1425,   265,   344,  1055,
     2955     529,    39,   264,   902,   265,   105,   777,     0,   108,    39,
     2956      78,   264,   417,   264,   609,   115,   264,     0,    43,    72,
     2957      43,    45,   363,   643,   644,   645,   367,   489,    44,    45,
     2958      83,    84,   437,    64,     0,    43,    82,    39,   227,    32,
     2959     445,    39,   662,    44,    45,   109,   146,    95,   146,    32,
     2960     184,     0,     1,    39,   154,   184,   184,   246,   111,   159,
     2961      63,   159,   260,   261,  1495,   111,    32,    44,    45,  1477,
     2962     109,    64,   613,   111,    85,   495,   617,  1443,   109,   109,
     2963      30,   111,   130,    32,   184,   185,   110,   185,     4,     5,
     2964       6,     7,     8,     9,  1523,   109,    39,   638,   114,  1528,
     2965     200,   642,   113,   255,  1512,    39,  1514,   109,   208,   111,
     2966     208,   294,   409,   114,   744,    64,   736,   217,    67,  1548,
     2967     220,   145,   220,   109,   902,   111,  1555,   227,   744,   132,
     2968     264,    81,    82,    96,    82,   264,   264,   405,   115,    11,
     2969     644,   645,   242,   489,   405,    82,   246,   109,  1243,   744,
     2970     250,   251,   250,    69,   511,    71,   112,   341,   662,   184,
     2971     123,   184,   110,  1062,   264,   265,   109,   265,   111,   250,
     2972     839,   271,   250,     0,     1,   109,   184,   111,   278,  1306,
     2973     117,   643,   644,   645,   208,   928,   370,   455,     0,   851,
     2974     395,   841,   251,   293,   455,   839,   114,   107,  1293,   851,
     2975     662,   839,  1292,  1293,   611,    32,     3,   250,   828,   839,
     2976     839,    82,  1009,   819,   238,   110,   132,   116,   423,   487,
     2977      32,   131,   117,   839,   429,   116,   487,   220,   328,   116,
     2978     328,    43,   736,    45,   293,   697,    82,  1259,   109,   951,
     2979      67,   132,   425,   426,   839,   132,   270,   347,   348,    61,
     2980     425,   426,    64,   116,   600,    67,   597,   250,   699,    55,
     2981      90,    91,  1227,   109,   364,   417,    72,   250,   368,   132,
     2982    1071,   220,   255,   297,   736,  1074,  1075,    83,    84,   379,
     2983     721,   109,   110,   629,   250,   437,   691,  1065,   634,   255,
     2984     959,    96,   242,   445,   109,   395,   126,   127,   960,   640,
     2985     110,   250,    72,   109,     3,   405,   116,   405,    82,   105,
     2986    1021,   773,   108,    83,    84,   959,   131,   116,   123,   676,
     2987     344,   959,  1417,   423,   828,   109,   501,  1417,  1227,   429,
     2988     513,   431,   873,    68,   146,   518,   110,    72,   521,  1466,
     2989      75,  1528,    77,   117,  1143,   520,  1473,   159,   532,    84,
     2990    1528,   697,    72,  1409,  1410,   455,   349,   121,   122,    72,
     2991     460,  1548,   132,    83,    84,   109,   828,   111,  1555,   116,
     2992      83,    84,   184,   185,   474,   119,   110,  1555,   116,   479,
     2993    1030,  1031,   699,   117,   112,   132,     0,   487,   116,   487,
     2994    1004,   491,   575,   491,   132,   495,   208,   131,   498,  1526,
     2995     500,   425,   426,     0,   721,   762,   119,  1306,   220,   938,
     2996     491,   586,   132,    88,    89,   474,   947,   946,   698,   698,
     2997     520,   217,   131,   250,   965,   698,   758,   773,   657,   379,
     2998    1142,   851,   700,    80,   417,   109,   698,   537,   250,   700,
     2999     540,   968,   542,   543,   851,   698,    72,   698,   491,  1227,
     3000     698,   417,   264,   116,   437,  1117,   109,    83,    84,   664,
     3001     110,   520,   445,   992,   111,   109,   113,   117,   666,   132,
     3002     117,   437,   115,   116,   110,   271,   211,   501,   537,   445,
     3003     116,   540,   278,   542,   543,   111,   109,   480,   131,   830,
     3004     590,   116,     3,   834,   109,   812,   520,   597,   491,    10,
     3005      11,    12,    13,    14,   109,  1306,   489,   132,   491,   609,
     3006     460,   611,   696,   116,    53,    72,   328,   598,   116,     4,
     3007       5,     6,     7,     8,     9,   491,    83,    84,    39,   132,
     3008     630,   590,   110,   116,   132,   119,   348,   978,   116,   691,
     3009     124,   125,   491,   112,   964,  1323,   646,   116,   498,   132,
     3010     500,   347,   652,   116,   111,   110,    67,    96,     0,     1,
     3011    1498,   661,   586,   663,   664,   665,  1504,  1466,   364,   132,
     3012      80,  1102,   368,   890,  1473,   129,   600,   131,   116,   116,
     3013    1042,   733,  1383,   924,    69,    72,    71,  1525,   772,   110,
     3014      32,   888,  1530,   405,   132,   132,    83,    84,   698,  1377,
     3015     700,   111,  1380,   113,   663,   629,   665,   117,   112,   109,
     3016     634,   111,   909,   713,   116,   110,   351,   112,   353,   719,
     3017     110,   116,    64,   723,   111,    67,   116,  1526,   110,   110,
     3018     132,   731,    45,   110,   116,   116,   131,   132,   631,   109,
     3019     970,   111,   110,   455,   744,   745,   112,  1425,    61,   119,
     3020     116,    64,  1430,   192,    67,   112,    72,   110,   758,   116,
     3021      76,   978,    72,   116,   491,   894,    76,    83,    84,  1470,
     3022     938,  1472,   731,    83,    84,  1021,   215,   938,   946,   491,
     3023     112,   110,  1460,   495,   116,   946,   225,    10,    11,    12,
     3024      13,    14,  1009,   109,  1135,  1322,    92,    93,   110,   109,
     3025    1162,   111,   652,   119,   116,   110,   441,    72,   691,   119,
     3026     109,   116,   111,   155,   697,   109,    39,   111,    83,    84,
     3027      10,    11,    12,    13,    14,   691,  1527,   109,   109,   111,
     3028     513,   724,   515,   146,  1034,   518,  1133,   119,   521,   839,
     3029    1137,  1532,  1059,   110,    67,   738,   159,  1532,   109,    39,
     3030     733,   851,  1193,  1194,   835,   294,   115,   116,   110,   110,
     3031     110,  1532,  1103,   713,   116,   116,   116,   733,  1546,   719,
     3032     116,   117,   185,   723,  1552,   115,  1133,    67,   220,   109,
     3033    1137,  1138,   109,   110,   111,  1563,   109,   132,   111,  1567,
     3034     773,   703,   110,   705,   894,   208,   119,   609,   116,   611,
     3035      72,   901,   902,   110,    76,   110,   111,   220,   250,   116,
     3036      64,    83,    84,   110,     1,   109,  1162,   111,  1135,   116,
     3037      72,   902,    74,    75,   924,    85,    86,    87,  1057,   109,
     3038    1292,    83,    84,    72,   630,    74,    75,   109,   938,   832,
     3039      58,    59,   110,   902,    83,    84,   946,   119,   116,   109,
     3040     646,   111,   109,   113,   114,   110,   112,   109,    45,   132,
     3041     110,   116,   114,   110,   964,   661,   116,   115,   116,   116,
     3042     109,   114,   109,   680,   111,   114,  1193,  1194,   114,    72,
     3043     969,    74,    75,    76,   984,   109,   698,   111,   700,   114,
     3044      83,    84,   109,   993,   111,   109,  1253,  1243,   109,   110,
     3045     111,  1001,   132,   442,  1004,   109,  1006,   111,    82,   902,
     3046      72,   132,    74,    75,   109,   328,   109,   104,   111,   902,
     3047    1125,    83,    84,   110,   117,   984,   119,    72,   109,    74,
     3048      75,    82,   744,   745,   116,   117,   902,   476,    83,    84,
     3049     112,   109,  1001,   111,   894,  1004,   970,  1006,   109,   110,
     3050     111,   901,   114,   902,   120,  1055,   116,   117,   145,   109,
     3051     110,   111,   758,  1404,   128,  1065,   111,   154,  1068,  1069,
     3052    1070,    58,    59,    60,   513,  1265,  1266,  1267,  1507,   518,
     3053    1421,  1062,   521,    72,  1341,    74,    75,    76,  1345,   129,
     3054     432,    94,   405,  1093,    83,    84,  1055,  1021,    44,    45,
     3055      10,    11,    12,    13,    14,   131,  1065,   111,   815,  1068,
     3056    1069,  1070,   564,   565,   566,   567,   109,   204,   825,   109,
     3057     969,   208,   110,  1206,  1207,  1125,  1209,   839,  1557,    39,
     3058     112,  1024,  1215,   840,    72,  1218,    74,    75,  1222,   851,
     3059     560,   561,   112,   993,   110,    83,    84,   562,   563,   491,
     3060     110,   238,   239,  1494,  1495,   110,    72,    67,    74,    75,
     3061      76,   110,    72,   110,    74,    75,    76,    83,    84,  1062,
     3062     568,   569,   109,    83,    84,   902,   112,   111,   131,  1062,
     3063     112,   114,   109,   270,   114,   116,   273,  1404,   114,   112,
     3064    1447,   533,   110,   109,    45,   111,  1062,   110,   112,   109,
     3065    1200,   111,   117,   119,  1421,   112,   112,   294,   112,   119,
     3066     297,    29,   117,  1062,   117,   116,  1205,   110,   110,   114,
     3067     117,   112,  1222,   110,   132,   115,   938,  1227,     3,   115,
     3068     115,   109,   116,   110,   946,    10,    11,    12,    13,    14,
     3069     679,   110,   969,  1093,   116,   110,  1227,   117,   110,   688,
     3070     110,   110,   964,   692,   341,   116,   598,   344,  1247,   110,
     3071     110,   110,     3,   110,    39,  1265,  1266,  1267,  1227,    10,
     3072      11,    12,    13,    14,   110,   110,   363,  1494,  1495,  1162,
     3073     367,   110,   110,   370,    10,    11,    12,    13,    14,   110,
     3074     110,   110,    67,   110,   110,  1400,  1379,   110,    39,    29,
     3075     115,   643,   644,   645,   131,   112,  1265,  1266,  1267,   110,
     3076     110,  1204,  1542,    39,   110,   110,   114,   116,   112,   112,
     3077     662,   110,  1322,  1323,   110,  1306,    67,   110,   116,   110,
     3078     117,   116,  1039,  1040,  1227,  1062,   116,   116,   425,   426,
     3079     112,    67,   116,   110,  1227,   110,   112,    85,    86,    87,
     3080    1200,  1340,  1532,  1532,   109,  1204,  1205,   208,   109,  1532,
     3081    1243,  1227,   109,  1322,  1323,  1533,   453,   109,   112,   456,
     3082    1532,   109,  1533,   111,   109,   113,   114,  1377,  1227,  1532,
     3083    1380,  1532,   132,   109,  1532,   111,   117,   474,   239,  1557,
     3084    1097,  1098,   115,   119,   736,   110,  1557,   110,  1247,  1399,
     3085    1400,   115,  1507,   110,   129,   115,   114,   112,  1301,  1409,
     3086    1410,   132,   499,  1306,   501,   110,   503,   116,  1377,   270,
     3087     112,  1380,   116,  1306,   112,  1425,   513,   110,   515,   110,
     3088    1430,   518,   110,   520,   521,   112,   471,   112,   112,   110,
     3089    1306,    47,   112,   294,   112,   532,   297,   112,  1448,   115,
     3090    1409,  1410,  1301,   132,  1443,   110,   132,  1306,   115,   132,
     3091    1460,   117,   110,   132,   115,   132,  1425,   112,   112,   112,
     3092     112,  1430,    72,   112,    74,    75,    76,   112,  1205,   112,
     3093     112,   110,   110,    83,    84,  1466,   828,   926,   112,  1448,
     3094     112,  1340,  1473,   835,     0,     1,   109,   109,  1532,   586,
     3095    1227,  1460,   109,  1532,  1532,    60,   110,  1507,  1508,   109,
     3096     597,   111,    55,   600,   110,   114,   132,  1517,   112,   119,
     3097    1247,   112,   117,  1523,   110,   112,    32,   110,  1528,    96,
     3098      96,   109,  1532,  1533,   109,  1533,   115,   110,   112,    45,
     3099     132,   110,   629,    42,   116,  1526,  1546,   634,  1548,  1508,
     3100     110,   110,  1552,   640,   117,  1555,   132,  1557,  1517,  1557,
     3101     902,    67,   105,  1563,  1523,   108,  1273,  1567,   132,  1528,
     3102     110,   110,    96,  1466,  1281,  1282,  1283,    96,   132,  1306,
     3103    1473,   110,   110,  1466,   132,   117,   132,  1546,   110,  1548,
     3104    1473,   112,   110,  1552,  1443,   115,  1555,   132,   104,   112,
     3105    1466,   109,   453,   115,  1563,   456,   132,  1473,  1567,   696,
     3106     115,   154,   110,  1340,    64,   110,   132,  1466,  1542,   110,
     3107     110,  1077,  1329,   571,  1473,   570,  1227,   969,   572,    64,
     3108      64,   718,   573,  1526,  1073,   574,  1495,  1385,  1567,    74,
     3109     146,  1316,  1138,  1526,   986,   680,  1473,    81,   154,   155,
     3110    1345,  1093,   705,   946,     4,     5,     6,     7,     8,     9,
     3111    1526,   748,   513,   453,   515,   471,   116,   518,   723,   453,
     3112     521,   948,   993,   590,   217,   894,   966,  1526,   658,   185,
     3113    1247,   116,   116,    33,   578,   772,   491,   758,    10,    11,
     3114      12,    13,    14,    -1,   200,   578,   748,   203,   204,   578,
     3115    1042,  1043,   208,  1399,    -1,    -1,    -1,    -1,    -1,   159,
     3116      -1,    -1,    -1,    -1,    -1,    -1,  1443,    39,    -1,    69,
     3117    1062,    71,    -1,   229,   159,   159,    -1,   233,   271,   235,
     3118      72,    -1,    74,    75,    76,   278,    -1,    -1,   244,  1466,
     3119      -1,    83,    84,   830,   250,    67,  1473,   834,    -1,   255,
     3120      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,   265,
     3121      -1,    83,    84,    -1,    -1,    -1,    -1,   273,   283,    -1,
     3122     220,    -1,    -1,    -1,    -1,    -1,    26,    27,    28,    -1,
     3123     815,   296,   297,    -1,    -1,   220,   220,   109,    -1,   111,
     3124     825,    -1,    -1,   308,    -1,    -1,    -1,   119,    -1,  1526,
     3125      -1,    -1,    -1,    -1,   347,   840,    -1,    -1,   258,    -1,
     3126      -1,    -1,   262,    10,    11,    12,    13,    14,    -1,    -1,
     3127    1532,   364,    -1,   258,   258,   368,    -1,   262,   262,   344,
     3128      -1,    -1,    -1,    -1,    -1,   341,    -1,   924,   344,    -1,
     3129      -1,   928,    39,   278,   350,    -1,    -1,    97,    -1,    99,
     3130      -1,    -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,
     3131     947,   367,  1204,  1205,   370,   380,    -1,   718,    -1,    -1,
     3132      67,    -1,    -1,    -1,   680,    72,  1315,    74,    75,    76,
     3133      -1,   968,   969,   970,    -1,  1227,    83,    84,   431,    -1,
     3134      72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,   349,
     3135      -1,    83,    84,    -1,    -1,  1247,    72,    -1,    74,    75,
     3136      76,   417,   109,    -1,   349,   349,    -1,    83,    84,    -1,
     3137      -1,    72,   119,    74,    75,    76,   432,   109,    -1,   111,
     3138     180,   437,    83,    84,  1021,    -1,    -1,   119,    -1,   445,
     3139     190,   191,    -1,   109,    -1,   195,    -1,   197,   198,    -1,
     3140    1292,  1293,    -1,   119,    -1,    -1,    -1,    -1,   109,  1301,
     3141      -1,    -1,    -1,    -1,  1306,   471,    -1,    -1,   474,    -1,
     3142      51,    -1,    53,    -1,    -1,    56,    57,    58,    -1,    60,
     3143     430,    -1,    -1,   489,    -1,   491,    -1,    -1,    -1,    -1,
     3144      -1,    -1,    -1,   499,    75,   430,   430,   503,  1340,    10,
     3145      11,    12,    13,    14,  1039,  1040,    87,    88,    -1,   815,
     3146      -1,    -1,   447,    -1,    -1,  1102,  1103,    -1,    -1,   825,
     3147      72,    -1,    74,    75,    76,    -1,   532,   533,    39,    -1,
     3148     480,    83,    84,    -1,   840,  1474,    -1,  1476,    -1,    -1,
     3149      -1,    -1,   557,   558,   559,   480,   480,    72,    -1,    74,
     3150      75,    76,    -1,    -1,   597,    -1,    67,   109,    83,    84,
     3151      -1,    -1,  1097,  1098,    -1,    -1,    -1,   119,    -1,    -1,
     3152      -1,    -1,  1511,   579,  1513,  1417,    -1,   928,    -1,    -1,
     3153      -1,    -1,    -1,    -1,   109,   600,    -1,   630,    -1,    -1,
     3154      -1,   597,   598,    -1,   600,    -1,   947,    -1,   109,    -1,
     3155     111,  1443,    -1,   646,    -1,   611,    -1,    -1,   119,    -1,
     3156      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1556,   661,  1558,
     3157      -1,    -1,    -1,   629,  1466,    -1,    -1,    -1,   634,    -1,
     3158      -1,  1473,  1571,  1572,   640,  1222,    -1,   643,   644,   645,
     3159      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3160       0,    -1,    -1,   603,    -1,    -1,   662,    -1,    -1,    -1,
     3161    1247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   603,   603,
     3162      -1,    -1,    -1,    -1,   680,    -1,    -1,    -1,    -1,    -1,
     3163      -1,   631,    32,    -1,  1526,   691,   636,    -1,    -1,    -1,
     3164     696,   697,    -1,    -1,   700,    -1,   631,   631,    -1,    -1,
     3165      -1,   636,   636,    -1,    -1,    -1,  1241,    -1,    -1,    -1,
     3166      -1,    -1,    -1,    -1,    -1,   758,    -1,    67,    -1,   734,
     3167      -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
     3168     736,    -1,    -1,  1039,  1040,    -1,    -1,    -1,  1273,   745,
     3169      -1,    -1,   748,    -1,    -1,    -1,  1281,  1282,  1283,    -1,
     3170      -1,  1102,    -1,  1340,    -1,    -1,    -1,    -1,    -1,    -1,
     3171      -1,    -1,    -1,   344,   345,   780,   772,   773,    -1,    -1,
     3172      -1,    -1,   778,    -1,   724,   356,   357,    -1,    -1,    26,
     3173      27,    28,    -1,    -1,    -1,    -1,    -1,    -1,   738,   724,
     3174     724,  1097,  1098,    -1,  1329,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,   738,   738,   155,    -1,    -1,    -1,   815,
     3176      -1,    -1,   827,    -1,    -1,    -1,    -1,    -1,    -1,   825,
     3177      -1,    -1,   828,   758,   830,    -1,    -1,   833,   834,   835,
     3178      -1,    -1,   582,   583,   840,    -1,    -1,    -1,    -1,    -1,
     3179      -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,    -1,    -1,
     3180      97,    -1,    99,    -1,    -1,    -1,  1443,    10,    11,    12,
     3181      13,    14,   612,    -1,    -1,   615,   616,    -1,   618,    -1,
     3182     620,   621,    -1,    -1,    -1,   625,   626,   124,    -1,   229,
     3183      -1,   924,   832,    -1,    -1,    -1,    39,    -1,  1475,    -1,
     3184    1477,    -1,    -1,    -1,    -1,    -1,   902,   832,   832,    -1,
     3185     250,    -1,    -1,    -1,    -1,   255,   188,    -1,    -1,    -1,
     3186      -1,    -1,    -1,   195,    67,    -1,    -1,    -1,   924,    72,
     3187      -1,    74,    75,    76,    -1,  1512,    -1,  1514,    -1,    -1,
     3188      83,    84,    -1,   180,    -1,  1241,    -1,    -1,    -1,    -1,
     3189      -1,   188,    -1,   190,   191,    -1,    -1,    -1,   195,    -1,
     3190     197,   198,    -1,    -1,   960,  1542,   109,    -1,   111,   709,
     3191     710,    -1,   968,   969,    -1,   715,   119,  1273,    -1,    10,
     3192      11,    12,    13,    14,    -1,  1281,  1282,  1283,    -1,    -1,
     3193     986,    -1,    -1,    -1,    -1,   267,    -1,    -1,    -1,    10,
     3194      11,    12,    13,    14,    -1,    -1,    -1,    -1,    39,    -1,
     3195     350,    -1,    -1,    -1,    -1,    -1,  1021,    -1,    -1,    -1,
     3196      -1,    -1,    -1,    -1,    -1,  1021,    -1,    -1,    39,    -1,
     3197     267,    -1,    -1,  1329,    -1,    -1,    67,    -1,  1034,    -1,
     3198      -1,    72,    -1,  1039,  1040,    76,  1042,  1043,    -1,    -1,
     3199      -1,   323,    83,    84,    -1,    -1,    67,  1062,    -1,   331,
     3200      -1,    72,   334,    74,    75,    76,  1062,    -1,    -1,    -1,
     3201      -1,    -1,    83,    84,    -1,    -1,    -1,   417,   109,    -1,
     3202      -1,     0,    -1,    -1,  1024,    -1,    -1,    -1,   119,    -1,
     3203      -1,    -1,   432,    -1,    -1,    -1,    -1,   437,   109,  1024,
     3204    1024,  1097,  1098,    -1,    -1,   445,    -1,  1103,   119,    -1,
     3205      -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3206      -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,    -1,   401,
     3207      -1,   471,    -1,    -1,  1475,    -1,  1477,    -1,    97,    98,
     3208      99,   100,   101,   102,   103,   104,   105,   106,    67,   489,
     3209      -1,   491,    -1,    -1,   725,    -1,   727,    -1,    -1,    -1,
     3210      -1,    -1,    -1,   734,   735,    -1,  1162,    -1,   739,    -1,
     3211      -1,  1512,   131,  1514,  1179,    10,    11,    12,    13,    14,
     3212     751,    -1,    -1,    -1,    -1,   756,    -1,    -1,    -1,  1222,
     3213      -1,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
     3214      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,  1205,
     3215      -1,   782,    -1,    -1,   486,    -1,    -1,    -1,    -1,    -1,
     3216      -1,    -1,    -1,    -1,    -1,    -1,  1222,    -1,    -1,    -1,
     3217      -1,  1227,    67,    -1,    -1,    -1,   155,    72,    -1,    -1,
     3218      -1,    76,    -1,    -1,    -1,  1241,    -1,  1243,    83,    84,
     3219      -1,  1247,    -1,    -1,    -1,    -1,   827,    -1,   598,    -1,
     3220      -1,    -1,    -1,    -1,  1204,    -1,    -1,    -1,    -1,    -1,
     3221      -1,    -1,    -1,    -1,   109,    -1,    -1,  1273,    -1,  1204,
     3222    1204,    -1,    -1,    -1,   119,  1281,  1282,  1283,    -1,    -1,
     3223      -1,    -1,    -1,    -1,    -1,    -1,  1292,  1293,    -1,    -1,
     3224      -1,    -1,    -1,   643,   644,   645,   578,   579,    -1,    -1,
     3225    1306,    -1,    -1,   884,   885,   886,   887,    -1,   889,    -1,
     3226      -1,    -1,   662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3227      -1,   250,    -1,  1329,   905,    -1,   255,    -1,    -1,    -1,
     3228     680,    -1,    -1,    -1,  1340,   582,   583,    -1,   919,    -1,
     3229      -1,   691,    -1,    -1,    -1,    -1,    -1,   697,    -1,  1099,
     3230      -1,  1301,    -1,    -1,    -1,    -1,  1399,    -1,    -1,    -1,
     3231      -1,    -1,    -1,    -1,    -1,   612,  1301,  1301,   615,   616,
     3232      -1,   618,    -1,   620,   621,    -1,    -1,   958,   625,   626,
     3233      -1,    -1,    -1,   733,    -1,   667,   736,    -1,    -1,   671,
     3234      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3235      20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
     3236      -1,  1417,    -1,    -1,    -1,    -1,    -1,   998,    -1,    39,
     3237      -1,   350,   704,   773,  1005,    -1,    -1,    -1,    -1,  1010,
     3238      -1,    -1,    -1,    -1,  1015,    -1,  1017,  1443,    -1,    -1,
     3239    1021,  1022,  1023,    -1,    -1,  1026,    -1,    67,    -1,    -1,
     3240      -1,    -1,    -1,    -1,  1035,    -1,    -1,   704,    78,    -1,
     3241    1466,    -1,   709,   710,    -1,   815,    -1,  1473,   715,    -1,
     3242      -1,    -1,  1053,  1054,  1224,   825,    -1,    -1,   828,    -1,
     3243      -1,    -1,    -1,   833,    -1,   835,    -1,    -1,   417,    -1,
     3244     840,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1080,
     3245      -1,    -1,  1083,   432,    -1,    -1,    -1,    -1,   437,    -1,
     3246      -1,    -1,    -1,    -1,    -1,    -1,   445,    -1,    -1,    -1,
     3247    1526,    -1,    -1,    -1,    -1,    -1,    -1,  1533,    -1,    -1,
     3248      -1,    -1,    -1,    -1,    -1,    -1,    -1,   819,    -1,    -1,
     3249      -1,  1122,   471,    -1,    -1,    -1,    -1,  1128,  1129,    -1,
     3250      -1,    -1,   902,    -1,    -1,    -1,    -1,    -1,    -1,  1140,
     3251     489,    -1,   491,     0,  1145,    -1,    -1,  1148,    -1,  1150,
     3252      -1,    -1,  1153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3253      -1,    -1,    -1,    -1,    -1,  1166,    -1,    -1,    -1,    -1,
     3254      -1,    -1,    -1,    -1,    -1,    32,    37,    38,  1179,    40,
     3255    1181,  1182,  1183,  1184,   533,    -1,    -1,    -1,    -1,    -1,
     3256      -1,    -1,    -1,    -1,    -1,    -1,  1197,    -1,  1199,    -1,
     3257      -1,    -1,  1203,    -1,    -1,    66,    -1,    -1,    -1,    -1,
     3258      67,    72,    -1,    74,    75,    76,   986,    -1,    79,    80,
     3259      81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
     3260     932,  1232,  1233,    94,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,   598,
     3262     111,    -1,   113,   114,    -1,    -1,    -1,   118,   119,   120,
     3263     121,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,  1039,
     3264    1040,    -1,  1042,  1043,    -1,    -1,    -1,    -1,    -1,    -1,
     3265      -1,    -1,    -1,  1284,  1285,    -1,    -1,    -1,    -1,    -1,
     3266      -1,    -1,  1062,  1294,   643,   644,   645,    -1,   155,    -1,
     3267      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1011,
     3268      -1,    -1,    -1,   662,    -1,    -1,    -1,    -1,    -1,    -1,
     3269      -1,    -1,    -1,    -1,    -1,  1027,    -1,  1097,  1098,    -1,
     3270      -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,   691,    -1,    -1,  1346,    -1,    -1,   697,    -1,
     3272      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1358,    -1,  1360,
     3273    1361,  1362,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3274      -1,  1372,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3275    1381,    -1,    -1,    -1,   733,    -1,    -1,   736,    -1,    -1,
     3276      -1,    66,  1162,   250,    -1,    -1,  1397,    72,   255,    -1,
     3277      -1,    76,  1104,    -1,    79,    80,    81,    82,    83,    84,
     3278      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,     0,    94,
     3279      -1,    -1,    -1,    -1,   773,    -1,    -1,    -1,    -1,    -1,
     3280      -1,    -1,  1099,    -1,   109,  1205,   111,    -1,    -1,   114,
     3281      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3282      32,    -1,  1453,  1454,    -1,    -1,    -1,  1227,    -1,    -1,
     3283      -1,    -1,    -1,    -1,    -1,  1466,   815,    -1,    -1,    -1,
     3284      -1,  1241,  1473,  1243,    -1,    -1,   825,    -1,    -1,   828,
     3285      -1,    -1,    -1,    -1,   833,    67,   835,    -1,    -1,    -1,
     3286      -1,   840,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,
     3287      -1,    -1,    -1,  1273,    -1,  1506,    -1,    -1,    -1,  1510,
     3288      -1,  1281,  1282,  1283,    -1,    -1,    -1,    -1,    -1,    -1,
     3289      -1,    -1,  1292,  1293,    -1,    -1,    -1,    -1,    -1,    -1,
     3290      -1,    -1,    -1,    -1,    -1,    -1,  1306,    -1,  1539,    -1,
     3291    1541,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3292      -1,    -1,    -1,   902,    -1,    -1,    -1,  1224,    -1,  1329,
     3293     417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1569,  1570,
     3294      -1,    -1,    -1,   155,    -1,   432,  1577,  1578,    -1,    -1,
     3295     437,    -1,    -1,    -1,    -1,    -1,     0,    -1,   445,     3,
     3296       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3297      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3298      24,    25,    26,    27,   471,    -1,    30,    31,    32,    33,
     3299      -1,    -1,    36,    -1,    -1,    39,    40,    -1,    -1,    -1,
     3300      -1,    -1,   489,    -1,   491,    -1,    -1,   986,    -1,    -1,
     3301      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1417,    -1,    -1,
     3302      64,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3303      74,    75,    76,    -1,    -1,    -1,    -1,    -1,   250,    83,
     3304      84,    -1,    -1,   255,    -1,    -1,   533,    -1,     7,    -1,
     3305      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3306    1039,  1040,    -1,  1042,  1043,   109,  1466,   111,    -1,    -1,
     3307      -1,    -1,    -1,  1473,    -1,   119,    -1,    -1,    37,    38,
     3308      39,    40,    -1,  1062,    -1,    10,    11,    12,    13,    14,
     3309      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3310      25,    26,    27,    28,    -1,    -1,    -1,    66,    67,    -1,
     3311      -1,   598,    -1,    72,    39,    -1,    -1,    76,  1097,  1098,
     3312      79,    80,    81,    82,    83,    84,  1526,    86,    87,    -1,
     3313      -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,   350,    -1,
     3314      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3315     109,    -1,   111,    78,    -1,    -1,   643,   644,   645,   118,
     3316     119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,
     3317      -1,    -1,    -1,    -1,    -1,   662,    -1,    -1,    -1,    -1,
     3318      -1,    -1,    -1,  1162,    -1,    -1,    -1,    -1,    -1,    -1,
     3319      -1,    -1,    -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,
     3320      -1,    -1,    -1,    -1,   691,   417,    -1,    -1,    -1,    45,
     3321     697,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322     432,    -1,    -1,    -1,    -1,   437,  1205,    -1,    64,    -1,
     3323      -1,    -1,    -1,   445,    -1,    -1,    -1,    -1,    -1,    -1,
     3324      -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,  1227,   736,
     3325      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,
     3326      -1,    -1,  1241,    -1,  1243,    -1,    -1,    -1,    -1,    -1,
     3327      -1,    -1,    -1,    -1,   110,    -1,    -1,   489,    -1,   491,
     3328     116,    -1,    -1,    -1,    -1,    -1,   773,    -1,    -1,    -1,
     3329      -1,    -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,    -1,
     3330      -1,    -1,  1281,  1282,  1283,    -1,    -1,    -1,    -1,   145,
     3331      -1,    -1,    -1,  1292,  1293,    -1,    -1,    -1,    -1,   155,
     3332      -1,   533,    -1,   159,    -1,    -1,    -1,  1306,   815,    -1,
     3333      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   825,    -1,
     3334      -1,   828,    -1,    -1,    -1,    -1,   833,    -1,   835,    -1,
     3335    1329,    -1,    -1,   840,    10,    11,    12,    13,    14,    15,
     3336      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3337      26,    27,   208,    -1,    30,    31,    32,    -1,    -1,    -1,
     3338      -1,    -1,    -1,    39,   220,    -1,   598,    -1,    -1,    -1,
     3339      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3340      -1,    -1,   238,   239,    -1,    -1,    -1,    -1,    -1,    -1,
     3341      -1,    67,    -1,    -1,    -1,   902,    -1,    -1,    74,    75,
     3342      -1,    -1,    -1,    -1,    -1,    -1,   262,    -1,    -1,    -1,
     3343      -1,   643,   644,   645,   270,    -1,    -1,    -1,  1417,    -1,
     3344      -1,    -1,    -1,    -1,   281,    -1,   283,   284,    -1,    -1,
     3345     662,    -1,    -1,    -1,   291,   292,    -1,    -1,   294,   296,
     3346     297,   297,    -1,   119,    -1,    -1,    -1,    -1,   680,    -1,
     3347      -1,   308,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,
     3348      -1,    -1,    -1,    -1,    -1,   697,    -1,  1466,    37,    38,
     3349      -1,    40,    -1,    -1,  1473,    -1,    -1,    -1,    -1,   986,
     3350      -1,    -1,    -1,    -1,    -1,    -1,    -1,   344,   344,    -1,
     3351      -1,    -1,    -1,   349,    -1,    -1,    -1,    66,    -1,    -1,
     3352      -1,   733,    -1,    72,   736,    -1,    -1,    76,    -1,    -1,
     3353      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3354      -1,    -1,    -1,   380,    -1,    94,    -1,  1526,    -1,    -1,
     3355      -1,    -1,  1039,  1040,    -1,  1042,  1043,    -1,    -1,    -1,
     3356     109,   773,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3357     119,   120,   121,   122,   123,  1062,    -1,    -1,    -1,    -1,
     3358      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,   425,
     3359     426,    -1,    -1,    -1,    -1,    74,   432,    76,    -1,    78,
     3360      -1,    -1,    -1,   815,    -1,    -1,    85,    -1,    -1,    -1,
     3361    1097,  1098,    -1,   825,    -1,    -1,   828,   453,    -1,    -1,
     3362     456,   833,    -1,   835,    -1,    -1,    -1,    -1,   840,    -1,
     3363      -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,   118,
     3364     119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,    -1,   489,    -1,    -1,    -1,    -1,    -1,    -1,
     3366      -1,    -1,    -1,    -1,    -1,   501,    -1,    -1,    -1,    -1,
     3367      -1,    -1,    -1,    -1,    -1,  1162,    -1,   513,    -1,   515,
     3368     159,    -1,   518,    -1,   520,   521,    -1,    -1,    -1,    -1,
     3369     902,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
     3370      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3371      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1205,    -1,
     3372     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     3373     567,   568,   569,   570,   571,   572,   573,   574,    -1,    -1,
     3374    1227,   220,    -1,   222,   223,   224,    -1,    -1,    -1,    -1,
     3375     586,    -1,    -1,    -1,  1241,    -1,  1243,    -1,    -1,    -1,
     3376      -1,    -1,   598,   600,   600,    -1,    -1,   603,    -1,    -1,
     3377      -1,    -1,    -1,    -1,   986,    -1,    -1,    -1,    -1,   258,
     3378      -1,    -1,    -1,   262,    -1,    -1,  1273,    -1,    -1,    -1,
     3379      -1,    -1,    -1,   629,  1281,  1282,  1283,    -1,   634,   278,
     3380      -1,    -1,    -1,    -1,    -1,  1292,  1293,   643,   644,   645,
     3381      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1306,
     3382      -1,    -1,    -1,    -1,    -1,    -1,   662,  1039,  1040,    -1,
     3383    1042,  1043,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3384      -1,    -1,  1329,    -1,    -1,    -1,    -1,    -1,    -1,   328,
     3385    1062,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3386      -1,   697,   699,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3387     349,    -1,    -1,    -1,    -1,   354,   355,    44,    -1,    -1,
     3388      -1,    -1,   718,   362,   721,  1097,  1098,    -1,    -1,    -1,
     3389      -1,    -1,    -1,    -1,    -1,    -1,    -1,   734,    -1,    -1,
     3390     736,    -1,   738,    10,    11,    12,    13,    14,    15,    16,
     3391      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3392      27,    -1,    -1,    90,    -1,    -1,   405,    -1,    -1,    -1,
     3393    1417,    -1,    39,   100,    -1,    -1,    -1,   773,    -1,    -1,
     3394      -1,    -1,    -1,   780,   423,    -1,    -1,    -1,    -1,   428,
     3395    1162,   430,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3396      67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,    -1,
     3397      -1,   450,   451,    -1,    -1,   812,    -1,    -1,    -1,  1466,
     3398      -1,    -1,    -1,    -1,    -1,    -1,  1473,   466,    -1,   156,
     3399     827,    -1,   828,  1205,    -1,    -1,   832,    -1,    -1,   835,
     3400      -1,   480,    -1,   170,    -1,    -1,    -1,    -1,   487,    -1,
     3401      -1,    -1,    -1,    -1,    -1,  1227,    -1,    -1,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,  1241,
     3403      -1,  1243,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1526,
     3404     207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,
     3405      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   226,
     3406      -1,  1273,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1281,
     3407    1282,  1283,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3408    1292,  1293,    -1,    -1,   251,    -1,    -1,    -1,    -1,   256,
     3409      -1,    -1,   928,    -1,  1306,    -1,    -1,    -1,    -1,    -1,
     3410      -1,    -1,   269,    -1,    -1,    -1,    -1,    -1,   275,    -1,
     3411     277,   947,    -1,    -1,    -1,    -1,    -1,  1329,    -1,    -1,
     3412      -1,    -1,    -1,    -1,   603,    -1,    -1,    -1,   295,    -1,
     3413      -1,    -1,    -1,    -1,   970,    -1,    -1,    -1,    -1,    -1,
     3414      -1,   978,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3415     986,    -1,   631,    -1,    -1,    -1,    -1,   636,    -1,    -1,
     3416      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3417      -1,   338,  1009,    -1,    -1,    -1,   343,    -1,    -1,    -1,
     3418      -1,    -1,    -1,    -1,  1021,  1021,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3420      -1,    -1,    -1,    -1,   371,  1417,  1042,  1043,   375,   376,
     3421      -1,   378,    -1,    -1,    -1,    -1,    -1,    -1,   385,   386,
     3422      -1,   388,   389,    -1,   391,  1062,   393,    -1,    -1,    -1,
     3423      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3424      -1,    -1,    -1,   410,    -1,   724,    -1,    -1,    -1,    -1,
     3425      -1,   418,    -1,    -1,  1466,    -1,    -1,    -1,    -1,   738,
     3426      -1,  1473,    37,    38,    39,    40,  1102,    -1,    -1,    -1,
     3427      -1,    -1,    -1,    -1,    -1,    -1,   443,    -1,    -1,   758,
     3428      -1,    -1,    -1,    -1,    -1,    -1,    -1,   454,    -1,    -1,
     3429      -1,    66,    67,    -1,    -1,    -1,    -1,    72,  1135,    -1,
     3430      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3431     477,    86,    87,    -1,  1526,    -1,   483,    -1,    -1,    94,
     3432      -1,   488,    -1,    -1,    -1,    -1,  1162,    -1,    -1,    -1,
     3433      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
     3434     819,    -1,  1179,   118,   119,   120,   121,   122,   123,    -1,
     3435      -1,    -1,    -1,   832,    -1,    -1,  1193,  1194,   525,    -1,
     3436      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1204,    -1,
     3437      -1,    -1,   851,    -1,   541,    -1,    -1,    -1,    -1,    -1,
     3438      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3439      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3440      22,    23,    24,    25,    26,    27,    -1,  1243,    30,    31,
     3441      32,   578,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3442     587,    -1,    -1,    -1,    -1,    -1,    -1,   594,    -1,    -1,
     3443      -1,    -1,   599,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3444      -1,    -1,    -1,   610,    -1,    67,    -1,    69,    -1,    71,
     3445      72,    -1,    74,    75,    76,    -1,  1292,  1293,    -1,   938,
     3446      -1,    83,    84,    -1,    -1,  1301,    -1,    -1,    -1,    -1,
     3447      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    -1,   651,   964,    -1,   109,    -1,   111,
     3449      -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,
     3450      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3451      -1,    -1,    -1,   992,    -1,    -1,    -1,    -1,    -1,    -1,
     3452     687,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3453      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3454      24,    25,    26,    27,    28,  1024,    30,    31,    32,    -1,
     3455      -1,    -1,    -1,    -1,    -1,    39,  1035,    -1,    -1,    -1,
     3456      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1404,    -1,    -1,
     3457      -1,    -1,    -1,    -1,    -1,   742,    -1,    -1,    -1,    -1,
     3458      -1,  1417,    -1,    67,  1421,   752,   753,    -1,    -1,    -1,
     3459      74,    75,    -1,    -1,    78,    -1,    -1,    -1,    -1,   766,
     3460      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,    -1,    -1,    -1,   783,    -1,   785,    -1,
     3462      -1,    -1,   789,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3463      -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,  1117,  1475,
     3464      -1,  1477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3465      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1494,  1495,    -1,
     3466      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3467      37,    38,    -1,    40,    -1,    -1,  1512,    -1,  1514,    -1,
     3468      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   855,    -1,
     3469      -1,    -1,    -1,    -1,    -1,   862,    -1,    -1,    -1,    66,
     3470      -1,    -1,    -1,    -1,    -1,    72,  1542,    -1,   875,    76,
     3471     877,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3472      87,    -1,    -1,    -1,   891,  1204,    -1,    94,    -1,    -1,
     3473      -1,   898,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3474      -1,    -1,   109,   910,   111,    -1,   913,    -1,    -1,   116,
     3475      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
     3476      -1,    -1,    -1,    -1,   931,    -1,    -1,    -1,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3478      -1,    -1,    -1,    -1,   154,   155,    -1,    -1,    -1,    -1,
     3479      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3480      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,    -1,
     3482      -1,    -1,  1301,    -1,    -1,   195,    -1,     3,     4,     5,
     3483       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3484      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3485      26,    27,    -1,  1020,    30,    31,    32,    33,    -1,    -1,
     3486      36,    -1,    -1,    39,    40,    10,    11,    12,    13,    14,
     3487      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3488      25,    26,    27,    -1,    -1,    30,    31,    32,    64,    -1,
     3489      -1,    67,    -1,    69,    39,    71,    72,   267,    74,    75,
     3490      76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,  1076,
     3491      -1,    -1,    -1,    -1,    -1,    -1,  1083,    -1,    -1,    -1,
     3492      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3493      75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,   115,
     3494      -1,    -1,    -1,   119,    -1,   145,  1113,    -1,    -1,    -1,
     3495      -1,  1118,    -1,   323,    -1,   155,    -1,    -1,    -1,  1126,
     3496      -1,   331,   332,    -1,   334,   335,    -1,   167,   168,    -1,
     3497      -1,    -1,    -1,    -1,   344,    -1,    -1,    -1,   348,    -1,
     3498      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3499    1157,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
     3500     370,    -1,  1169,    -1,    -1,  1172,    -1,  1174,    -1,    -1,
     3501      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3502      -1,  1188,  1189,    -1,    -1,    -1,    -1,   397,    -1,    -1,
     3503      -1,   401,    -1,    -1,    -1,    -1,    -1,    -1,   238,    66,
     3504      -1,    -1,    -1,  1210,    -1,    72,    -1,    -1,    -1,    76,
     3505      -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
     3506      87,    -1,   432,   263,    -1,    -1,    -1,    94,    -1,    -1,
     3507    1237,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1557,    -1,
     3508      -1,    -1,   109,    -1,   111,   455,    -1,   114,    -1,    -1,
     3509      -1,   118,   119,   120,   121,   122,   123,    -1,    -1,    -1,
     3510      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3511      -1,    -1,    -1,    -1,    -1,    -1,   486,    -1,    -1,   489,
     3512      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    21053513       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2106       19,    20,    21,    22,    23,    24,    75,     0,    25,    26,
    2107       27,     0,   453,     0,   351,   351,   946,    30,     0,     0,
    2108      109,     0,     0,     0,     0,     0,     0,     0,    77,     0,
    2109        0,     0,  1236,     0,     0,     0,     0,     0,     0,     0,
    2110        0,   353,   353,   354,     0,    33,     0,     0,    77,     0,
    2111       36,     0,    37,    38,    39,    84,    77,     0,     0,     0,
    2112        0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
    2113      361,     0,     0,     0,     0,    84,   346,     0,   351,     0,
    2114        0,     0,   354,    84,     0,     0,     0,    42,     0,   155,
    2115        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
    2116      354,     0,    77,     0,     0,   353,     0,     0,     0,   361,
    2117        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2118        0,   220,     0,     0,     0,     0,     0,   361,     0,    84,
    2119        0,     0,     0,     0,     0,    54,     0,     0,     0,     0,
    2120        0,     0,     0,    72,   354,     0,     0,     0,   221,     0,
    2121        0,     0,     0,     0,     0,     0,   351,     0,   351,     0,
    2122        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2123       75,   361,     0,     0,     0,     0,     0,   346,     0,     0,
    2124        0,     0,     0,   353,     0,   353,     0,     0,   351,     0,
    2125        0,     0,     0,     0,     0,     0,   351,   351,   351,     0,
    2126        0,     0,     0,     0,     0,     0,     0,   351,   351,   354,
    2127        0,     0,     0,     0,     0,   353,     0,     0,     0,     0,
    2128        0,    72,     0,   353,   353,   353,     0,     0,     0,     0,
    2129        0,     0,     0,     0,   353,   353,   361,     0,     0,     0,
    2130        0,     0,   346,     0,   351,     0,     0,     0,    75,     0,
    2131        0,     0,     0,     0,   354,   354,   354,     0,     0,     0,
    2132        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2133        0,   353,     0,   354,     0,     0,     0,     0,     0,   124,
    2134        0,   361,   361,   361,     0,     0,     0,   346,   346,   346,
    2135        0,   354,     0,     0,     0,     0,     0,     0,     0,     0,
    2136      361,     0,    77,     0,     0,     0,   346,     0,   354,     0,
    2137        0,     0,     0,     0,     0,     0,     0,     0,   361,  1033,
    2138        0,     0,     8,     9,    10,    11,    12,     0,     0,    84,
    2139        0,     0,   351,     0,     0,   361,     0,     0,     0,     0,
    2140        0,     0,     0,     0,    77,     0,     0,   354,   280,   281,
    2141       30,   282,     0,     0,     0,     0,     0,     0,     0,   353,
    2142        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,    84,     0,     0,   361,     0,     0,   283,    33,     0,
    2144      346,    72,     0,   284,   354,     0,     0,   285,    72,     0,
    2145      286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
    2146        0,     0,     0,   124,     0,   292,     0,     0,    75,     0,
    2147        0,   361,     0,     0,     0,    75,     0,     0,     0,     0,
    2148      293,     0,   377,     0,     0,     0,   354,     0,     0,   295,
    2149      826,   297,   298,   299,   300,     0,   354,     0,     0,   354,
    2150        0,    72,     0,     0,   222,     0,   354,     0,     0,     0,
    2151        0,   354,     0,   361,     0,     0,     0,     0,     0,     0,
    2152        0,     0,     0,   361,     0,     0,   361,     0,    75,     0,
    2153        0,   223,   346,   361,     0,     0,     0,     0,   361,   346,
    2154        0,     0,     0,     0,     0,  -516,     0,     0,     1,     2,
     3514      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3515      -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,   529,
     3516      39,    -1,   532,   533,    -1,    -1,    -1,    -1,  1335,    -1,
     3517    1337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
     3518      -1,    -1,    -1,  1350,    -1,  1352,    -1,    -1,    67,    -1,
     3519      69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,
     3520      -1,    -1,    -1,  1370,    -1,    -1,    -1,    -1,   578,   579,
     3521      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1386,
     3522    1387,    -1,    -1,    -1,    -1,    -1,    -1,   597,   598,    -1,
     3523     600,  1398,   111,    -1,  1401,    -1,    -1,    -1,    -1,   609,
     3524     119,   611,   612,    -1,    -1,    -1,    -1,    -1,   618,    -1,
     3525      -1,    -1,    -1,    -1,    -1,    -1,  1423,    -1,   628,   629,
     3526      -1,    -1,    -1,    -1,   634,  1432,    -1,    -1,  1435,    -1,
     3527    1437,  1438,  1439,   643,   644,   645,    -1,    -1,    -1,    -1,
     3528      -1,   481,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3529      -1,    -1,   662,    -1,    -1,    -1,    -1,   667,   668,    -1,
     3530      -1,   671,   672,    -1,    -1,    -1,    -1,    -1,   678,    -1,
     3531      -1,    -1,  1479,    -1,  1481,    -1,    -1,  1484,    -1,    -1,
     3532     520,    -1,    -1,    -1,    -1,    -1,   696,   697,   698,    -1,
     3533     700,    -1,  1499,   533,   704,    -1,    -1,    -1,    -1,    -1,
     3534     540,    -1,    -1,   543,    -1,    -1,    -1,    -1,    -1,    -1,
     3535      -1,    -1,    -1,    -1,   554,   555,    -1,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,    -1,   736,   737,    -1,    -1,
     3537      -1,    -1,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
     3538      -1,    -1,    -1,    -1,    -1,    -1,   586,    -1,    -1,    -1,
     3539      -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,   598,    -1,
     3540      -1,    -1,   772,   773,    -1,    -1,    -1,   777,   778,    -1,
     3541      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3542       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3543      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3544      -1,    30,    31,    32,    33,    -1,    -1,    36,   648,   819,
     3545      39,    40,    -1,    -1,    -1,    -1,    -1,   657,   828,    -1,
     3546      -1,    -1,    -1,    -1,   834,   835,    -1,    -1,    -1,   839,
     3547      -1,   841,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,
     3548      69,   851,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3549      -1,    -1,    -1,    -1,    83,    84,    -1,   697,    -1,    -1,
     3550      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3551      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3552     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3553     119,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3554      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3555      25,    26,    27,    28,   924,    30,    31,    32,    -1,    -1,
     3556      -1,    -1,   932,    -1,    39,    -1,    -1,    -1,   938,    -1,
     3557      -1,    -1,    -1,   773,    -1,   775,   946,    -1,    -1,    -1,
     3558      -1,   781,    -1,    -1,    -1,    -1,    -1,    -1,   788,   959,
     3559     960,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3560      75,    76,    -1,    78,    -1,    -1,    -1,    -1,    83,    84,
     3561      -1,    -1,    -1,    -1,    -1,    -1,   986,    -1,    -1,    -1,
     3562      -1,    -1,   992,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3563      -1,    -1,   832,   833,   109,   835,   111,    -1,    -1,    -1,
     3564      -1,  1011,  1012,    -1,   119,    -1,    -1,    -1,    -1,    -1,
     3565     850,  1021,    -1,    -1,    -1,    -1,    -1,  1027,  1028,    -1,
     3566    1030,  1031,  1032,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,  1042,  1043,    -1,    -1,    -1,    -1,    -1,    -1,
     3568      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3569     890,    -1,    -1,    -1,   894,     3,     4,     5,     6,     7,
     3570       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3571      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3572      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
     3573      -1,    39,    -1,  1103,  1104,  1105,    -1,    -1,    -1,    -1,
     3574      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1117,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3576      -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,    -1,
     3577     970,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    -1,    -1,    -1,    -1,   986,   987,    -1,    -1,
     3579      -1,    -1,  1162,   993,    -1,    -1,    -1,    37,    38,   999,
     3580      40,    -1,  1002,   111,  1004,    -1,    -1,    -1,    -1,    -1,
     3581      -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,  1024,    -1,    66,    -1,    -1,    -1,
     3583      -1,    -1,    72,    -1,    -1,  1035,    76,    -1,    -1,    79,
     3584      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3585      -1,    -1,  1222,    -1,    94,    37,    38,  1057,    40,  1059,
     3586      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
     3587      -1,   111,    -1,  1243,  1074,  1075,    -1,    -1,   118,   119,
     3588     120,   121,   122,   123,    66,    -1,    -1,    -1,    -1,    -1,
     3589      72,    -1,    -1,    -1,    76,  1095,    -1,    79,    80,    81,
     3590      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3591      -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3592      -1,    -1,  1292,  1293,    -1,    -1,    -1,   109,    -1,   111,
     3593      -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     3594     122,   123,    -1,  1143,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,    -1,  1162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1177,  1178,    -1,
     3598      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     3599       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3600      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3601      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    37,
     3602      38,    39,    40,    41,    -1,    43,    -1,    -1,    46,    47,
     3603      48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
     3604      -1,    -1,    -1,    61,    62,    -1,    64,  1417,    66,    67,
     3605      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,  1259,
     3606      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3607      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3608      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3609      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
     3610     118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
     3611     128,    -1,    -1,    -1,   132,    -1,    -1,    -1,    -1,    -1,
     3612    1320,    -1,  1322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3613      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1507,    10,    11,
     3614      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3615      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3616      32,    -1,  1532,  1533,    -1,    -1,    -1,    39,    -1,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1557,    -1,    -1,
     3619      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
     3620      -1,    -1,    74,    75,    -1,    -1,    -1,    -1,  1408,    -1,
     3621      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     3622       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3623      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3624      -1,    -1,    30,    31,    32,    33,    -1,   119,    36,    37,
     3625      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3626      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3627      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3628      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3629    1490,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3630      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3631      67,    -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,
     3632      -1,   109,    -1,   111,    -1,    -1,    83,    84,    -1,    -1,
     3633     118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
     3634      -1,    -1,  1542,    -1,   132,     3,     4,     5,     6,     7,
     3635       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3636      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3637      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    37,
     3638      38,    39,    40,    10,    11,    12,    13,    14,    15,    16,
     3639      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3640      27,    -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,
     3641      -1,    69,    39,    71,    72,    -1,    74,    75,    76,    -1,
     3642      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3643      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3644      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3645      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3646     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3647       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3648      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3649      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3650      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3651      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3652      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3653      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3654      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3655      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3656      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3657      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,
     3658     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3659       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3660      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3661      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3662      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3663      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3665      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3666      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3667      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3668      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3669      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,
     3670     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3671       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3672      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3673      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3674      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3676      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3677      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3678      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3679      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3680      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3681      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,   116,    -1,
     3682     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3683       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3684      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3685      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3686      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3687      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3688      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3689      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3690      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3691      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3694     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3695       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3696      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3697      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3698      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3701      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3702      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3704      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3705      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3706     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3707       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3708      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3709      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3710      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3713      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3714      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3715      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3716      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3717      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3718     118,   119,   120,   121,   122,   123,     4,     5,     6,     7,
     3719       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3720      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3721      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3722      38,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3723      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3724      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3725      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3726      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3727      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3728      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3729      -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3730     118,   119,   120,   121,   122,   123,     3,     4,     5,     6,
     3731       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3732      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3733      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3734      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3736      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3737      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3738       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3739      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3740      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3741      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3742      -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3743      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3744      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3745      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     3746      84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3747      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3749      -1,    -1,    -1,    -1,    -1,   119,     4,     5,     6,     7,
     3750       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3751      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3752      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    39,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3754      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3755      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    67,
     3756      -1,    69,    -1,    71,    -1,    39,    74,    75,    -1,     4,
     3757       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3758      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3759      25,    26,    27,    67,    -1,    30,    31,    32,    72,    -1,
     3760      74,    75,   110,   111,    39,    -1,    -1,    -1,    -1,    83,
     3761      84,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    67,    -1,    69,    -1,    71,   111,    -1,    74,
     3764      75,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,
     3765      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3766      -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3768      -1,    -1,    -1,    -1,   119,     4,     5,     6,     7,     8,
     3769       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3770      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3771      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3772      39,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3773      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3774      25,    26,    27,    28,    -1,    30,    31,    32,    67,    -1,
     3775      69,    -1,    71,    -1,    39,    74,    75,    -1,    -1,    -1,
     3776      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3777      -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
     3778      -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3779      75,    76,   111,    78,    -1,    -1,    -1,    -1,    83,    84,
     3780     119,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3781      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3782      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
     3783      -1,    -1,    -1,    -1,   119,    -1,    39,    -1,    -1,    -1,
     3784      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3786      -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,
     3787      -1,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
     3788      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3789      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3790      30,    31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,
     3791      -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,
     3792      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3793      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
     3794      -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
     3795       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3796      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3797      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3798      -1,   111,    39,    -1,    -1,    -1,    -1,    -1,    -1,   119,
     3799      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3801      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
     3802       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3803      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3804      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3805      -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
     3806      -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3807      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3808      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3809      74,    75,    10,    11,    12,    13,    14,    15,    16,    17,
     3810      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3811      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    37,
     3812      38,    39,    40,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3813      -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,
     3814      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
     3815      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
     3816      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3817      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3818      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3819      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
     3820     118,   119,   120,   121,   122,   123,    10,    11,    12,    13,
     3821      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3822      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3823      -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
     3824      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3825      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3826      -1,    -1,    66,    67,    -1,    -1,    39,    -1,    72,    -1,
     3827      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3828      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3829      94,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
     3830      -1,    74,    75,    76,    -1,   109,    -1,   111,   112,    -1,
     3831      83,    84,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3832      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3833      20,    21,    22,    23,    24,    25,    26,    27,   111,    -1,
     3834      30,    31,    32,    -1,    -1,    -1,   119,    37,    38,    39,
     3835      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3836      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3837      -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,
     3838      39,    40,    72,    -1,    74,    75,    76,    -1,    -1,    79,
     3839      80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
     3840      -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    67,    -1,
     3841      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
     3842     110,   111,    -1,    -1,    -1,    -1,    -1,    -1,   118,   119,
     3843     120,   121,   122,   123,    10,    11,    12,    13,    14,    15,
     3844      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3845      26,    27,   111,    -1,    30,    31,    32,    -1,    -1,    -1,
     3846     119,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3847      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3848      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3849      66,    67,    30,    31,    32,    -1,    72,    -1,    74,    75,
     3850      76,    39,    -1,    79,    80,    81,    82,    83,    84,    -1,
     3851      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,
     3852      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3853      -1,    -1,    -1,   109,    -1,   111,    74,    75,    -1,    -1,
     3854      -1,    -1,   118,   119,   120,   121,   122,   123,    10,    11,
     3855      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3856      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3857      32,   109,    -1,   111,    -1,    37,    38,    39,    40,    -1,
     3858      -1,   119,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3859      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3860      24,    25,    26,    27,    66,    67,    30,    31,    32,    -1,
     3861      72,    -1,    74,    75,    76,    39,    -1,    79,    80,    81,
     3862      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3863      -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3864      -1,    -1,    -1,    67,    -1,    -1,    -1,   109,    -1,   111,
     3865      74,    75,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     3866     122,   123,    10,    11,    12,    13,    14,    15,    16,    17,
     3867      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3868      -1,    -1,    30,    31,    32,   109,    -1,   111,    -1,    37,
     3869      38,    39,    40,    -1,    -1,   119,    -1,    -1,    -1,    -1,
     3870      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3871      20,    21,    22,    23,    24,    25,    26,    27,    66,    67,
     3872      30,    31,    32,    -1,    72,    -1,    74,    75,    76,    39,
     3873      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3874      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3875      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3876      -1,   109,    -1,   111,    74,    75,    -1,    -1,    -1,    -1,
     3877     118,   119,   120,   121,   122,   123,    10,    11,    12,    13,
     3878      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3879      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3880      -1,   111,    -1,    37,    38,    39,    40,    -1,    -1,   119,
     3881      -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3882      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3883      26,    27,    66,    67,    30,    31,    32,    -1,    72,    -1,
     3884      74,    75,    76,    39,    -1,    79,    80,    81,    82,    83,
     3885      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3886      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3887      -1,    67,    -1,    -1,    -1,   109,    -1,   111,    74,    75,
     3888      -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    21553889       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    21563890      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2157       23,    24,     0,    77,    25,    26,    27,    28,     0,     0,
    2158       29,     0,     0,    30,    31,     0,     0,     0,     0,     8,
    2159        9,    10,    11,    12,     0,     8,     9,    10,    11,    12,
    2160       84,     0,     0,     0,     0,     0,    54,     0,    32,     0,
    2161        0,    33,   163,    34,     0,    35,    36,    30,    37,    38,
    2162       39,     0,     0,    30,     0,     0,     0,    40,    41,     0,
    2163        0,   216,     0,     0,     0,     0,     0,     0,     0,     0,
    2164        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2165       36,    33,     0,    42,    39,    43,    36,   354,     0,     0,
    2166       39,    40,    41,    44,     0,     0,     0,    40,    41,     0,
    2167        0,     0,     0,    54,     0,     0,     0,   163,     0,     0,
    2168        0,     0,     0,   270,   361,     0,     0,    42,     0,     0,
    2169      346,     0,     0,   743,     0,     0,     0,   145,     0,     0,
    2170        0,     0,     0,   744,     0,     0,     0,     0,     0,     0,
    2171      354,   354,   163,   354,   354,     0,     0,     0,     0,     0,
    2172        0,     0,   367,     0,     0,     0,   373,     0,     0,     0,
    2173        0,     0,     0,    77,     0,     0,     0,   361,   361,     0,
    2174      361,   361,     0,     0,     0,     0,   346,   346,     0,     0,
    2175        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2176       84,     0,     0,     0,     0,     0,    54,     0,   354,   354,
    2177        0,     0,     0,     0,     0,   163,     0,     0,     0,     0,
    2178        0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
    2179        0,     0,     0,     0,     0,   361,   361,     0,     0,     0,
    2180        0,   280,   281,     0,   282,   163,   460,     8,     9,    10,
    2181       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2182       21,    22,    23,    24,     0,     0,    25,    26,    27,   373,
    2183      283,     0,   354,     0,     0,    30,   284,   163,     0,     0,
    2184      285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
    2185      290,   291,     0,     0,     0,     0,     0,     0,   292,   361,
    2186        0,   460,     0,    33,   163,     0,     0,     0,     0,     0,
    2187      205,    38,     0,   512,     0,   222,     0,     0,     0,     0,
    2188        0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
    2189        0,     0,     0,     0,     0,     0,     0,    77,     0,     0,
    2190        0,     0,   223,     0,     0,     0,     0,    54,    54,     0,
    2191      354,   605,   354,     0,     0,   269,   629,     0,     0,     0,
    2192        0,     0,     0,     0,    84,     0,     0,     0,     0,     0,
    2193       54,     0,     0,     0,     0,     0,     0,   361,     0,   361,
    2194        0,     0,   354,     0,     0,     0,     0,     0,     0,    54,
    2195      354,   354,   354,     0,     0,     0,     0,     0,     0,     0,
    2196        0,   354,   354,     0,     0,     0,     0,     0,     0,   361,
    2197        0,     0,     0,     0,     0,    77,     0,   361,   361,   361,
    2198        0,     0,     0,     0,     0,     0,     0,     0,   361,   361,
    2199        0,     0,   163,   163,   346,   346,     0,     0,   354,   367,
    2200        0,     0,    84,    54,     0,     0,     0,     0,    54,     0,
    2201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2202      460,     0,     0,   460,     0,   361,     0,     0,     0,   460,
    2203        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2204        0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
    2205        0,     0,     0,     0,     0,     0,   740,     0,     0,     0,
    2206      209,     0,     0,     0,     0,     0,     0,     0,   163,     0,
    2207      229,     0,   233,     0,   235,     0,     0,     0,     0,     0,
    2208      460,   244,   460,     0,     0,   460,   354,   163,   460,     0,
    2209        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2210      367,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2211        0,     0,   209,   361,   233,   235,   244,     0,     0,   346,
    2212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2213        0,     0,     0,     0,     0,    77,     0,   154,     0,     0,
    2214        0,     0,    77,     0,     0,    54,     0,     0,     0,     0,
    2215        0,     0,     0,   163,     0,   209,     0,     0,     0,     0,
    2216        0,     0,    84,     0,     0,   367,     0,   605,    54,    84,
    2217      836,     0,     0,     0,     0,    54,     0,     0,     0,     0,
    2218        0,     0,     0,   249,     0,     0,     0,     0,     0,     0,
    2219        0,     0,     0,   254,     0,    77,   605,     0,     0,     0,
    2220        0,   605,     0,     0,     0,     0,     0,     0,     0,     0,
    2221      367,   367,   367,     0,     0,     0,   209,     0,   233,   235,
    2222      244,     0,    84,     0,     0,     0,     0,     0,    54,   367,
    2223        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2224       17,    18,    19,    20,    21,    22,    23,    24,  -294,   154,
    2225       25,    26,    27,     0,   209,     0,     0,     0,   209,    30,
    2226        0,     0,     0,   384,   740,     0,     0,     0,     0,     0,
    2227        0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
    2228        0,     0,     0,     0,     0,   460,   416,    33,     0,     0,
    2229        0,     0,     0,     0,    37,    38,     0,     0,  -294,     0,
    2230      431,     0,     0,   367,     0,   960,     0,     0,     0,   436,
    2231        0,     0,     0,     0,     0,     0,     0,     0,     0,   444,
    2232        0,     0,     0,     0,   209,     0,     0,     0,     0,   642,
    2233        0,   337,   280,   281,     0,   282,     0,     0,     0,   109,
    2234      740,     0,     0,     0,   470,   209,     0,     0,     0,   480,
    2235      233,   235,     0,     0,     0,     0,     0,     0,   244,     0,
    2236        0,   283,   488,     0,     0,     0,     0,   284,   498,     0,
    2237      502,   285,     0,     0,   286,   287,   288,   289,    40,    41,
    2238        0,   290,   291,     0,     0,     0,     0,     0,   532,   292,
    2239        0,     0,     0,     0,     0,   367,     0,     0,     0,   629,
    2240        0,   209,   367,     0,   293,     0,   377,     0,     0,   378,
    2241        0,     0,     0,   295,   379,   297,   298,   299,   300,   209,
    2242        0,     0,     0,     0,   209,     0,   209,     0,     0,     0,
    2243        0,   592,     0,     0,     0,     0,   597,     0,     0,     0,
    2244        0,     0,     0,   209,     0,     0,   209,   209,     0,     0,
    2245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2246        0,     0,   209,     0,   643,     0,     0,     0,   644,   645,
    2247        0,   647,     0,     0,     0,     0,   209,     0,   659,   660,
    2248        0,   661,   662,   209,   663,     0,   664,     0,     0,     0,
    2249        0,     0,     0,  1176,     0,   460,     8,     9,    10,    11,
    2250       12,     0,     0,   592,     0,     0,     0,     0,     0,     0,
    2251        0,   679,     0,     0,     0,     0,     0,     0,     0,     0,
    2252        0,     0,   280,   281,    30,   282,     0,     0,     0,     0,
    2253        0,     0,     0,     0,     0,     0,   690,   163,     0,     0,
    2254        0,     0,     0,     0,     0,     0,     0,   696,     0,     0,
    2255        0,   283,    33,   367,     0,     0,     0,   284,     0,     0,
    2256        0,   285,     0,     0,   286,   287,   288,   289,    40,    41,
    2257      732,   290,   291,     0,     0,     0,   735,     0,     0,   292,
    2258        0,   470,     0,     0,     0,     0,     0,     0,   605,     0,
    2259        0,     0,     0,     0,   293,     0,   377,     0,     0,   209,
    2260        0,     0,     0,   295,  1177,   297,   298,   299,   300,   367,
    2261      367,     0,     0,     0,     0,     0,     0,     0,   772,     0,
    2262        0,     0,     0,     0,     0,     0,     0,   209,   513,     0,
    2263      515,   518,   209,     0,   787,     0,     0,     0,   521,   522,
    2264        0,     0,     0,   515,   515,     0,     0,     0,     0,     0,
    2265        0,     0,     0,     0,     0,   515,     0,     0,     0,     0,
    2266        0,     0,     0,     0,     0,   280,   281,     0,   282,   460,
    2267        0,   814,     0,     0,     0,     0,     0,     0,     0,     0,
    2268      824,     0,     0,     0,     0,     0,     0,   827,     0,     0,
    2269        0,   515,   834,     0,   283,     0,     0,     0,     0,     0,
    2270      284,     0,     0,   849,   285,     0,     0,   286,   287,   288,
    2271      289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
    2272      209,     0,   292,     0,     0,     0,     0,   515,   740,     0,
    2273        0,     0,     0,     0,   209,     0,     0,   293,     0,   377,
    2274        0,     0,     0,     0,   889,   811,   295,   379,   297,   298,
    2275      299,   300,     0,     0,   503,     0,     0,     0,     0,     0,
    2276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277      216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2278      834,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     3891      23,    24,    25,    26,    27,   111,    -1,    30,    31,    32,
     3892      -1,    -1,    -1,   119,    -1,    -1,    39,    -1,    -1,    -1,
     3893      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3894      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3895      30,    31,    32,    -1,    67,    -1,    69,    -1,    71,    39,
     3896      -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3897      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3898      22,    23,    24,    25,    26,    27,    -1,    67,    30,    31,
     3899      32,    -1,    72,    -1,    74,    75,    76,    39,    -1,    -1,
     3900      -1,   114,    -1,    83,    84,    -1,    10,    11,    12,    13,
     3901      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3902      24,    25,    26,    27,    -1,    67,    30,    31,    32,   109,
     3903      72,   111,    74,    75,    76,    39,    -1,    -1,    -1,   119,
     3904      -1,    83,    84,    -1,    10,    11,    12,    13,    14,    15,
     3905      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3906      26,    27,    -1,    67,    30,    31,    32,   109,    72,   111,
     3907      74,    75,    76,    39,    -1,    -1,    -1,   119,    -1,    83,
     3908      84,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3909      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3910      28,    67,    30,    31,    32,   109,    72,   111,    74,    75,
     3911      76,    39,    -1,    -1,    -1,   119,    -1,    83,    84,    -1,
     3912      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3913      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3914      -1,    -1,    -1,   109,    -1,   111,    74,    75,    -1,    -1,
     3915      78,    -1,    -1,   119,    -1,    10,    11,    12,    13,    14,
     3916      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3917      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3918      -1,   109,    -1,   111,    39,    40,    -1,    -1,    -1,    -1,
     3919      -1,   119,    -1,    10,    11,    12,    13,    14,    15,    16,
     3920      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3921      27,    28,    67,    30,    31,    32,    -1,    -1,    -1,    74,
     3922      75,    -1,    39,    10,    11,    12,    13,    14,    15,    16,
     3923      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3924      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3925      67,    -1,    39,    40,    -1,    -1,   111,    74,    75,    -1,
     3926     115,    78,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
     3927      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3928      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3929      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3930      -1,    -1,   119,    -1,    -1,    10,    11,    12,    13,    14,
     3931      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3932      25,    26,    27,    -1,   111,    30,    31,    32,   115,    -1,
     3933      -1,    -1,   119,    -1,    39,    40,    10,    11,    12,    13,
     3934      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3935      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3936      -1,    -1,    67,    -1,    -1,    39,    -1,    -1,    -1,    74,
     3937      75,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3938      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3939      26,    27,    -1,    67,    30,    31,    32,    -1,    -1,    -1,
     3940      74,    75,    -1,    39,    -1,    -1,   111,    -1,    -1,    -1,
     3941     115,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,
     3942      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3943      -1,    67,    -1,    -1,    -1,    -1,    -1,   111,    74,    75,
     3944      -1,    -1,    -1,    -1,    -1,   119,    -1,    10,    11,    12,
    22793945      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2280       23,    24,  -294,     0,    25,    26,    27,     0,   740,     0,
    2281        0,     0,     0,    30,     0,   209,     0,     0,     0,     0,
    2282        0,     0,     0,     0,     0,     0,     0,     0,   209,     0,
    2283        0,     0,     0,     0,     0,   249,     0,     0,     0,     0,
    2284        0,    33,     0,     0,     0,   967,   968,   209,    37,    38,
    2285        0,     0,  -294,     0,     0,     0,     0,   367,   367,   985,
    2286        0,     0,     0,     0,     0,     0,   216,     0,     0,     0,
    2287        0,     0,     0,     0,     0,     0,  1000,     0,  1001,     0,
    2288        0,     0,  1005,   642,     0,   337,     0,     0,     0,     0,
    2289        0,     0,     0,   633,     0,     0,     0,     0,     0,     0,
    2290        0,     0,     0,     0,   515,   515,   515,   515,   515,   515,
    2291      515,   515,   515,   515,   515,   515,   515,   515,   515,   515,
    2292      515,   515,     0,     0,     0,     0,     0,     0,     0,     0,
    2293      280,   281,     0,   282,   209,     0,     0,     0,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,   515,  1038,     0,
    2295        0,     0,     0,     0,     0,  1039,     0,     0,     0,   283,
    2296      209,     0,     0,     0,     0,   284,     0,     0,  1041,   285,
    2297     1042,     0,   286,   287,   288,   289,    40,    41,     0,   290,
    2298      291,     0,   367,     0,  1054,     0,     0,   292,   209,     0,
    2299        0,  1058,     0,     0,     0,     0,     0,     0,     0,     0,
    2300        0,     0,   293,  1096,   377,     0,  1097,     0,     0,   780,
    2301        0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
    2302      209,     0,     0,     0,   597,     0,     0,     0,     0,     0,
    2303        0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
    2304      460,     0,   460,     0,     0,     0,   515,     0,     8,     9,
    2305       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2306       20,    21,    22,    23,    24,  -294,     0,     0,   515,     0,
    2307        0,     0,     0,     0,     0,     0,    30,   460,     0,   460,
    2308        0,   515,     8,     9,    10,    11,    12,    13,    14,    15,
    2309       16,    17,    18,    19,    20,    21,    22,    23,    24,  -294,
    2310        0,    25,    26,    27,    33,     0,     0,   163,     0,     0,
    2311       30,     0,   209,  1160,     0,  -294,     0,     0,     0,   340,
    2312      362,     0,     0,     0,     0,     0,     0,   515,     0,     0,
    2313        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2314        0,     0,     0,    36,     0,   335,   336,    39,     0,  -294,
    2315        0,     0,     0,   412,    40,    41,     0,     0,     0,   515,
    2316      412,     0,     0,     0,     0,     0,     0,     0,     0,   532,
    2317        0,     0,     0,     0,   515,     0,  1225,     0,     0,     0,
    2318      642,     0,   337,     0,     0,     0,     0,     0,     0,     0,
    2319      633,   280,   281,     0,   282,     0,     0,     0,     0,   209,
    2320        0,     0,     0,     0,     0,  1238,     0,     0,     0,     0,
    2321     1240,     0,     0,     0,     0,     0,     0,     0,  1244,     0,
    2322      283,     0,     0,     0,     0,     0,   648,     0,   137,   138,
    2323      285,     0,   412,   286,   649,   288,   289,    40,    41,     0,
    2324      290,   291,     0,     0,     0,     0,     0,     0,   292,  1270,
    2325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2326        0,  1278,     0,   293,  1279,   650,  1280,   651,   378,     0,
    2327        0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
    2328     1289,  1290,     0,     0,     0,     0,     0,     0,   412,     0,
    2329        0,     0,     0,     0,     0,   209,   412,   588,     0,   412,
    2330      591,     0,  1303,     0,     0,     0,     0,     0,     0,   362,
    2331        0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
    2332        0,     0,     0,     0,     0,   515,     0,     0,     0,  1326,
    2333      320,     0,   639,     0,     0,   340,     0,     0,     0,     0,
    2334      344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2335        0,     0,   380,   380,     0,     0,   515,     0,     0,     0,
    2336        0,     0,   412,     0,     0,     0,   412,     0,   515,     2,
    2337      204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3946      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3947      -1,    -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,
     3948      -1,    -1,    -1,   119,    -1,    10,    11,    12,    13,    14,
     3949      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3950      25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
     3951      -1,    74,    75,    -1,    39,    10,    11,    12,    13,    14,
     3952      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3953      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3954      -1,    -1,    67,    -1,    39,    -1,    -1,    -1,   111,    74,
     3955      75,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,
     3956      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3957      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3958      75,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3959      -1,    -1,    -1,    -1,   119,    -1,    -1,    10,    11,    12,
    23383960      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2339       23,    24,     0,     0,    25,    26,    27,   362,     0,     0,
    2340        0,     0,     0,    30,     0,     0,     0,     0,     0,   515,
    2341        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2342      412,     0,     0,   320,     0,     0,  1396,     0,  1397,     0,
    2343        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2344        0,  1406,     0,  1407,     0,     0,     0,     0,   484,     0,
    2345        0,   412,     0,     0,   362,     0,     0,     0,     0,     0,
    2346        0,  1414,     0,     0,     0,     0,     0,     0,     0,     0,
    2347        0,     0,     0,     0,  -399,   686,     0,  1432,  1434,     0,
    2348        0,   515,     0,   633,     0,     0,     0,     0,     0,  1440,
    2349        0,     0,  1244,     0,   412,     0,     0,   340,   362,     0,
    2350        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2351        0,     0,     0,     0,  1463,     0,     0,     0,     0,     0,
    2352        0,     0,     0,  1470,     0,   515,  1472,     0,  1474,  1476,
    2353     1478,     0,     0,     0,     0,     0,     0,     0,     0,   515,
    2354      515,     0,     0,   412,   412,     0,     0,     0,     0,     0,
    2355        0,   209,     0,     0,     0,     0,     0,     0,     0,     0,
    2356        0,     0,   829,   362,   380,   362,     0,     0,     0,     0,
    2357     1509,     0,  1511,     0,   621,  1244,   621,   621,     0,     0,
    2358        0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
    2359     1523,     0,     0,   868,   362,     0,     0,     0,     0,   362,
    2360        0,     0,     0,     0,     0,     0,     0,     0,   362,   362,
    2361      362,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2362        0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
    2363        0,     0,   412,   911,     0,     0,   412,   914,     0,     0,
    2364        0,     0,     0,   916,     0,     0,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2366        0,   340,   362,   412,     0,   412,   734,     0,     0,   412,
    2367        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2368       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2369       25,    26,    27,     0,     0,     0,     0,     0,     0,    30,
    2370        0,   362,   621,     0,     0,   768,     0,     0,     0,     0,
    2371        0,     0,     0,     0,     0,     0,     0,     0,   781,     0,
    2372        0,     0,     0,     0,     0,   768,     0,    33,   768,     0,
    2373        0,     0,     0,     0,   205,    38,     0,   340,   362,   791,
    2374      792,     0,   412,   412,     0,     0,     0,     0,     0,   515,
    2375        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2376        0,   813,     0,     0,     0,     0,   515,     0,     0,     0,
    2377        0,   822,     0,     0,     0,     0,     0,     0,   344,   628,
    2378        0,     0,     0,   781,   412,     0,     0,     0,     0,     0,
    2379        0,     0,     0,   362,     0,     0,     0,     0,     0,   829,
    2380      362,     0,     0,     0,   621,     0,   621,     0,     0,     0,
    2381        0,     0,     0,     0,     0,     0,   621,     0,     0,     0,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383        0,     0,     0,   888,     0,     0,     0,     0,     0,   515,
    2384      515,     0,   380,     0,     0,     0,     0,     0,     0,     1,
    2385        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2386       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2387       22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
    2388        0,    29,   344,     0,    30,    31,     0,     0,     0,   829,
    2389        0,     0,     0,     0,     0,     0,     0,   412,   280,   281,
    2390        0,   282,     0,   412,     0,     0,     0,     0,     0,    32,
    2391        0,   412,    33,     0,    34,     0,    35,    36,     0,    37,
    2392       38,    39,     0,     0,   621,   621,     0,   283,    40,    41,
    2393        0,     0,     0,   284,     0,     0,     0,   285,     0,     0,
    2394      286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
    2395        0,   362,     0,     0,    42,   292,    43,   412,   781,     0,
    2396      990,     0,     0,     0,    44,     0,   995,     0,     0,     0,
    2397      293,     0,   377,  1004,     0,   992,   412,  1157,     0,   295,
    2398      379,   297,   298,   299,   300,     0,   362,     0,     0,     0,
    2399        0,     0,   412,  1169,     0,   621,   621,  1174,     0,     0,
    2400        0,     0,     0,     0,     0,     0,     0,   362,   362,     0,
    2401        0,     0,     0,     0,     0,     0,     0,  1021,  1022,     0,
    2402      344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2403        0,     0,     0,     0,     0,   344,     0,     0,     0,     0,
    2404        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2405        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,   829,   412,
    2407     1237,     0,     0,     0,     0,  1052,     0,     0,     0,   380,
    2408        0,   621,     0,     0,     0,     0,     1,     2,   204,     4,
    2409        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3961      23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
     3962      -1,    -1,    -1,    -1,   119,    -1,    39,    10,    11,    12,
     3963      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3964      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3965      -1,    -1,    -1,    -1,    67,    -1,    39,    -1,    -1,    -1,
     3966      -1,    74,    75,    -1,    -1,    10,    11,    12,    13,    14,
    24103967      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2411        0,     0,    25,    26,    27,    28,     0,     0,    29,   280,
    2412      281,    30,  1061,  1062,     0,  1063,   362,     0,  1064,  1065,
    2413     1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
    2414        0,     0,     0,  1073,  1074,     0,    32,     0,   283,    33,
    2415        0,    34,     0,    35,   648,   320,    37,    38,   285,     0,
    2416        0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
    2417        0,  1138,  1139,     0,     0,     0,   292,     0,   380,     0,
    2418        0,     0,   280,   281,   995,   282,   340,  1148,     0,   768,
    2419        0,   293,     0,  1075,     0,     0,   169,     0,     0,     0,
    2420      295,   296,   297,   298,   299,   300,   362,     0,     0,  1164,
    2421     1076,   283,     0,     0,  -129,     0,     0,   284,     0,     0,
    2422     1179,   285,     0,     0,   286,   287,   288,   289,    40,    41,
    2423        0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
    2424        0,     0,   380,     0,  1197,     0,     0,     0,     0,     0,
    2425        0,     0,     0,     0,   293,   362,   362,     0,     0,   995,
    2426      995,     0,     0,   295,   379,   297,   298,   299,   300,     0,
    2427        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2428     1229,     0,     0,     0,     0,     0,     0,     0,     1,     2,
    2429      204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2430       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2431       23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
    2432       29,   280,   281,    30,   282,     0,     0,   995,     0,     0,
    2433        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2434      280,   281,     0,   282,     0,     0,   888,     0,     0,     0,
    2435      283,    33,     0,    34,     0,    35,   284,     0,    37,    38,
    2436      285,  1281,  1282,   286,   287,   288,   289,    40,    41,   283,
    2437      290,   291,     0,     0,     0,   284,     0,     0,   292,   285,
    2438      362,     0,   286,   287,   288,   289,    40,    41,     0,   290,
    2439      291,     0,     0,   293,     0,  1075,     0,   292,     0,     0,
    2440        0,     0,   295,   296,   297,   298,   299,   300,     0,     0,
    2441        0,     0,   293,     0,   377,     0,  -129,     0,     0,     0,
    2442        0,   295,   379,   297,   298,   299,   300,     0,     0,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2444        0,     0,   995,     0,     0,     0,     1,     2,   204,     4,
    2445        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2446       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2447      412,     0,    25,    26,    27,    28,     0,     0,    29,   280,
    2448      281,    30,   282,     0,     0,     0,     0,     0,     0,     0,
    2449        0,     0,     0,     0,     0,   412,   412,     0,     0,     0,
    2450        0,     0,     0,  1389,     0,   768,     0,     0,   283,    33,
    2451        0,    34,     0,    35,   284,     0,    37,    38,   285,     0,
    2452      412,   286,   287,   288,   289,    40,    41,     0,   290,   291,
    2453        0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2455        0,   293,     0,    43,     0,     0,     0,     0,     0,     0,
    2456      295,   296,   297,   298,   299,   300,     0,     0,     2,   204,
     3968      25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
     3969      -1,    74,    75,    -1,    39,    -1,    -1,    -1,   111,    -1,
     3970      -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,
     3971      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3972      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,   111,    74,
     3973      75,    -1,    -1,    -1,    -1,    -1,   119,     4,     5,     6,
     3974       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3975      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3976      27,    -1,    -1,    30,    31,    32,   111,    -1,    -1,    -1,
     3977      -1,    -1,    39,    -1,   119,    -1,    -1,    -1,    -1,    -1,
     3978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3980      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    37,
     3981      38,    -1,    40,    41,    -1,    43,    -1,    -1,    46,    47,
     3982      48,    49,    50,    51,    52,    53,    -1,    -1,    56,    57,
     3983      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
     3984      -1,    -1,    -1,   110,    72,    -1,    -1,    -1,    76,    -1,
     3985      -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
     3986      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
     3987      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3988      -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,    -1,
     3989     118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
     3990     128,    -1,    37,    38,   132,    40,    41,    -1,    43,    -1,
     3991      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3992      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3993      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3994      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3995      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,
     3996      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3997      -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
     3998      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,    -1,
     3999      -1,    -1,    -1,   128,    -1,    -1,    -1,   132,     4,     5,
     4000       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4001      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     4002      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     4003      -1,    -1,    -1,    39,    -1,    37,    38,    -1,    40,    41,
     4004      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
     4005      52,    53,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,
     4006      62,    67,    64,    69,    66,    71,    -1,    -1,    74,    75,
     4007      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     4008      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     4009      96,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4010      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
     4011      -1,    -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,
     4012     122,   123,    -1,    -1,    37,    38,   128,    40,    41,    -1,
     4013      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
     4014      53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,
     4015      -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,
     4016      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     4017      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     4018      -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4019      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     4020      -1,   114,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     4021     123,    -1,    -1,    37,    38,   128,    40,    41,    -1,    43,
     4022      -1,    -1,    46,    47,    48,    49,    50,    51,    52,    53,
     4023      -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,
     4024      64,    -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     4025      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     4026      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     4027      94,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
     4028      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     4029     114,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     4030      66,    -1,    -1,    -1,   128,    -1,    72,    -1,    -1,    -1,
     4031      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
     4032      86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    37,
     4033      38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4034      -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    37,    38,
     4035      -1,    40,   118,   119,   120,   121,   122,   123,    66,    -1,
     4036      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     4037      -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
     4038      -1,    -1,    -1,    72,    -1,    -1,    94,    76,    -1,    -1,
     4039      79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     4040      -1,   109,    -1,   111,    -1,    94,    37,    38,    -1,    40,
     4041     118,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
     4042     109,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,   118,
     4043     119,   120,   121,   122,   123,    66,    -1,    -1,    -1,    -1,
     4044      -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
     4045      81,    82,    83,    84,    66,    86,    87,    -1,    -1,    -1,
     4046      72,    -1,    -1,    94,    76,    -1,    -1,    79,    80,    81,
     4047      82,    83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,
     4048      -1,    -1,    94,    37,    38,    -1,    40,   118,   119,   120,
     4049     121,   122,   123,    -1,    -1,    -1,    -1,   109,    -1,    -1,
     4050      -1,    -1,    -1,    -1,    -1,    -1,   118,   119,   120,   121,
     4051     122,   123,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     4052      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     4053      84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     4054      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4055      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     4056      -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
    24574057       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    24584058      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2459       24,  1449,     0,    25,    26,    27,     0,     0,     0,     0,
    2460      280,   281,    30,   282,     0,     8,     9,    10,    11,    12,
    2461       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2462       23,    24,     0,     0,    25,    26,    27,     0,     0,   283,
    2463       33,     0,    34,    30,    35,   284,     0,    37,    38,   285,
    2464        0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
    2465      291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
    2466        0,    33,     0,     0,     0,     0,   108,     0,    37,    38,
    2467        0,     0,   293,  1515,   342,     0,     0,    40,    41,   780,
    2468        0,   295,   343,   297,   298,   299,   300,     2,   204,     4,
    2469        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2470       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2471        0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
    2472      281,    30,   282,     0,     0,   320,     0,     8,     9,    10,
    2473       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2474       21,    22,    23,    24,  -295,     0,     0,     0,   283,    33,
    2475        0,    34,     0,    35,   284,    30,    37,    38,   285,     0,
    2476        0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
    2477        0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
    2478        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2479        0,   293,     0,   930,  -295,     0,     0,     0,   780,     0,
    2480      295,   343,   297,   298,   299,   300,     2,   204,     4,     5,
    2481        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2482       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2483        0,    25,    26,    27,     0,     0,     0,     0,   280,   281,
    2484       30,   282,     0,     8,     9,    10,    11,    12,    13,    14,
    2485       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2486        0,     0,    25,    26,    27,     0,     0,   283,    33,     0,
    2487       34,    30,    35,   284,     0,    37,    38,   285,     0,     0,
    2488      286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
    2489        0,     0,     0,     0,     0,   292,     0,     0,     0,    33,
    2490        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2491      293,     0,   930,     0,     0,     0,     0,   780,     0,   295,
    2492      599,   297,   298,   299,   300,     2,   204,     4,     5,     6,
    2493        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2494       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2495       25,    26,    27,     0,     0,     0,     0,   280,   281,    30,
    2496      282,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2497       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2498        0,    25,    26,    27,     0,     0,   283,    33,     0,    34,
    2499       30,    35,   284,     0,    37,    38,   285,     0,     0,   286,
    2500      287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
    2501        0,     0,     0,     0,   292,     0,     0,     0,    33,     0,
    2502        0,     0,     0,     0,     0,   205,    38,     0,     0,   293,
    2503        0,   342,     0,     0,     0,     0,     0,     0,   295,   343,
    2504      297,   298,   299,   300,     2,   204,     4,     5,     6,     7,
    2505        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2506       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2507       26,    27,     0,     0,     0,     0,   280,   281,    30,   282,
    2508        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2509       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2510        0,     0,     0,     0,     0,   283,    33,     0,    34,    30,
    2511       35,   284,     0,    37,    38,   285,     0,     0,   286,   287,
    2512      288,   289,    40,    41,     0,   290,   291,     0,     0,     0,
    2513        0,     0,     0,   292,     0,     0,     0,    33,     0,     0,
    2514        0,     0,     0,     0,     0,     0,     0,     0,   293,     0,
    2515      930,     0,     0,     0,     0,     0,     0,   295,   343,   297,
    2516      298,   299,   300,     2,   204,     4,     5,     6,     7,     8,
    2517        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2518       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2519       27,     0,     0,     0,     0,   280,   281,    30,   282,     0,
    2520        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2521        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522        0,     0,     0,     0,   283,    33,     0,    34,     0,    35,
    2523      284,     0,   205,    38,   285,     0,     0,   286,   287,   288,
    2524      289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
    2525        0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
    2526        0,     0,     0,     0,     0,     0,     0,   293,     0,  1019,
    2527        0,     0,     0,     0,     0,     0,   295,  1020,   297,   298,
    2528      299,   300,     2,   204,     4,     5,     6,     7,     8,     9,
    2529       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2530       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2531        0,     0,     0,     0,   280,   281,    30,   282,     0,     0,
    2532        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2534        0,     0,     0,   283,    33,     0,    34,     0,    35,   284,
    2535        0,   205,    38,   285,     0,     0,   286,   287,   288,   289,
    2536       40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
    2537        0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
    2538        0,     0,     0,     0,     0,     0,   293,     0,   377,     0,
    2539        0,     0,     0,     0,     0,   295,   379,   297,   298,   299,
    2540      300,     1,     2,     3,     4,     5,     6,     7,     8,     9,
    2541       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2542       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2543       28,     0,     0,    29,     0,     0,    30,    31,     0,     0,
    2544        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2545        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2546        0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
    2547        0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
    2548       40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2550        0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
    2551        0,     0,  -520,     0,     0,     0,    44,   203,     2,   204,
    2552        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2553       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2554       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2555        0,     0,    30,     8,     9,    10,    11,    12,    13,    14,
    2556       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2557        0,     0,    25,    26,    27,   491,   492,   493,     0,     0,
    2558       33,    30,    34,     0,    35,    36,     0,   205,    38,    39,
    2559        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2561        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2562        0,     0,    42,     0,   206,     0,     0,     0,     0,     0,
    2563        0,     0,   207,     1,     2,   204,     4,     5,     6,     7,
    2564        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2565       18,    19,    20,    21,    22,    23,    24,  -294,     0,    25,
    2566       26,    27,    28,     0,     0,    29,     0,     0,    30,     0,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2569        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2570       35,     0,     0,    37,    38,     0,     0,  -294,     0,     1,
    2571        2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
    2572       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2573       22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
    2574       43,    29,     0,     0,    30,     0,     0,     0,   109,     0,
    2575        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2577        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2578       38,     0,   203,     2,   204,     4,     5,     6,     7,     8,
    2579        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2580       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2581       27,     0,     0,     0,     0,     0,    43,    30,     0,     0,
    2582        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    2583        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2584        0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
    2585        0,     0,   205,    38,     2,   204,     4,     5,     6,     7,
    2586        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2587       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2588       26,    27,     0,     0,     0,     0,     0,     0,    30,   206,
    2589        0,     0,     0,     0,     0,     0,     0,   269,     0,     0,
    2590        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2591        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2592       35,    36,     0,   205,    38,    39,     0,     0,     0,     0,
    2593        0,     0,    40,    41,     0,     0,     8,     9,    10,    11,
    2594       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2595       22,    23,    24,     0,     0,    25,    26,    27,    42,     0,
    2596      206,     0,     0,     0,    30,     0,     0,     0,   207,     2,
    2597      204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2598       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2599       23,    24,    33,     0,    25,    26,    27,    36,     0,    37,
    2600       38,    39,     0,    30,     0,     0,     0,     0,    40,    41,
    2601        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2602        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2603        0,    33,     0,    34,    42,    35,    43,     0,    37,    38,
    2604        0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
    2605        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2606     1368,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2607        0,     0,     0,     0,     0,   686,     0,     0,     0,     0,
    2608        0,     0,     0,   633,     2,   204,     4,     5,     6,     7,
    2609        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2610       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2611       26,    27,     0,     0,     0,     0,     0,     0,    30,     0,
    2612        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2613       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2614        0,     0,    25,    26,    27,     0,    33,     0,    34,     0,
    2615       35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
    2616        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2617        0,     0,     0,     0,     0,  1370,     0,     0,     0,    33,
    2618        0,     0,     0,     0,    36,     0,   335,   336,    39,     0,
    2619      686,     0,     0,     0,     0,    40,    41,     0,   633,     2,
    2620      204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2621       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2622       23,    24,     0,   337,    25,    26,    27,     0,     0,     0,
    2623        0,   109,     0,    30,     0,     0,     0,     0,     0,     0,
    2624        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2625        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
    2627        2,   204,     4,     5,     6,     7,     8,     9,    10,    11,
    2628       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2629       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2630        0,     0,     0,     0,    30,   268,     0,     0,     0,     0,
    2631        0,     0,     0,   628,     0,     0,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2633        0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
    2634       38,     2,   204,     4,     5,     6,     7,     8,     9,    10,
    2635       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2636       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2637        0,     0,     0,     0,     0,    30,   686,     0,     0,     0,
    2638        0,     0,     0,     0,   633,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2640        0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2641       37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
    2642       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2643       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2644        0,     0,     0,     0,     0,     0,    30,   598,     0,     0,
    2645        0,     0,     0,     0,     0,   633,     0,     0,     0,     0,
    2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2648        0,   205,    38,     8,     9,    10,    11,    12,    13,    14,
    2649       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2650        0,     0,    25,    26,    27,     0,     0,     0,     0,   280,
    2651      281,    30,   282,     0,     0,     0,     0,     0,   206,     0,
    2652        0,     0,     0,     0,     0,     0,   269,     0,     0,     0,
    2653        0,     0,     0,     0,     0,     0,     0,     0,   283,    33,
    2654        0,     0,     0,     0,   284,     0,    37,    38,   285,     0,
    2655        0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
    2656        0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
    2657        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2658        0,   293,     0,   524,     0,     0,   169,     0,     0,     0,
    2659      295,   296,   297,   298,   299,   300,     8,     9,    10,    11,
    2660       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2661       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2662        0,     0,   280,   281,    30,   282,     8,     9,    10,    11,
    2663       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2664       22,    23,    24,  -294,     0,    25,    26,    27,     0,     0,
    2665        0,   283,    33,     0,    30,     0,     0,   284,     0,    37,
    2666       38,   285,     0,     0,   286,   287,   288,   289,    40,    41,
    2667        0,   290,   291,     0,     0,     0,     0,     0,     0,   292,
    2668        0,     0,    33,     0,     0,     0,     0,    36,     0,   335,
    2669      336,    39,     0,  -294,   293,     0,   598,    -3,    40,    41,
    2670        0,     0,     0,   295,   599,   297,   298,   299,   300,     8,
    2671        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2672       19,    20,    21,    22,    23,    24,   337,     0,    25,    26,
    2673       27,     0,     0,     0,   109,   280,   281,    30,   282,     8,
    2674        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2675       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2676       27,     0,     0,     0,   283,    33,     0,    30,     0,     0,
    2677      648,     0,    37,    38,   285,     0,     0,   286,   287,   288,
    2678      289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
    2679        0,     0,   292,     0,     0,    33,     0,     0,     0,     0,
    2680      108,     0,    37,    38,     0,     0,     0,   293,   -35,   765,
    2681        0,    40,    41,     0,     0,     0,   295,   296,   297,   298,
    2682      299,   300,     8,     9,    10,    11,    12,    13,    14,    15,
    2683       16,    17,    18,    19,    20,    21,    22,    23,    24,    43,
    2684        0,    25,    26,    27,     0,     0,     0,   109,   280,   281,
    2685       30,   282,     8,     9,    10,    11,    12,    13,    14,    15,
    2686       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2687        0,    25,    26,    27,     0,     0,     0,   283,    33,     0,
    2688       30,   452,     0,   284,     0,    37,    38,   285,     0,     0,
    2689      286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
    2690        0,     0,     0,     0,     0,   292,     0,     0,    33,     0,
    2691        0,     0,     0,     0,     0,    37,    38,     0,     0,     0,
    2692      293,     0,   294,     0,     0,     0,     0,     0,     0,   295,
    2693      296,   297,   298,   299,   300,     8,     9,    10,    11,    12,
    2694       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2695       23,    24,   453,     0,    25,    26,    27,     0,     0,     0,
    2696      109,   280,   281,    30,   282,     0,     0,     0,     0,     0,
    2697        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2698       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2699      283,    33,    25,    26,    27,     0,   284,     0,    37,    38,
    2700      285,    30,     0,   286,   287,   288,   289,    40,    41,     0,
    2701      290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2703        0,     0,     0,   293,     0,   155,    37,    38,     0,     0,
    2704        0,     0,   295,   296,   297,   298,   299,   300,     8,     9,
    2705       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2706       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2707        0,   642,     0,   337,   280,   281,    30,   282,     0,     0,
    2708        0,   109,     0,     0,     0,     0,     8,     9,    10,    11,
    2709       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2710       22,    23,    24,   283,    33,    25,    26,    27,     0,   284,
    2711        0,    37,    38,   285,    30,     0,   286,   287,   288,   289,
    2712       40,    41,     0,   290,   291,     0,     0,     0,     0,     0,
    2713        0,   292,     0,     0,     0,     0,     0,     0,     0,     0,
    2714        0,     0,    33,     0,     0,     0,   293,     0,   598,    37,
    2715       38,     0,     0,     0,     0,   295,   599,   297,   298,   299,
    2716      300,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2717       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2718       25,    26,    27,     0,   642,     0,   337,   280,   281,    30,
    2719      282,     0,     0,     0,   633,     0,     0,     0,     0,     8,
    2720        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2721       19,    20,    21,    22,    23,    24,   283,    33,    25,    26,
    2722       27,     0,   284,     0,    37,    38,   285,    30,   452,   286,
    2723      287,   288,   289,    40,    41,     0,   290,   291,     0,     0,
    2724        0,     0,     0,     0,   292,     0,     0,     0,     0,     0,
    2725        0,     0,     0,     0,     0,    33,     0,     0,     0,   293,
    2726        0,   377,    37,    38,     0,     0,     0,     0,   295,   379,
    2727      297,   298,   299,   300,   473,     2,   204,     4,     5,     6,
    2728        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2729       17,    18,    19,    20,    21,    22,    23,    24,     0,   453,
    2730       25,    26,    27,  1234,     0,     0,     0,   109,     0,    30,
    2731        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2732       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2733       26,    27,     0,     0,     0,     0,     0,    33,    30,    34,
    2734        0,    35,     0,     0,    37,    38,     0,     0,     8,     9,
    2735       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2736       20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
    2737        0,    36,     0,   205,    38,    39,    30,     0,     0,     0,
    2738        0,     0,    40,    41,    -3,     0,     8,     9,    10,    11,
    2739       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2740       22,    23,    24,     0,    33,    25,    26,    27,    42,    36,
    2741      268,   335,   336,    39,    30,     0,     0,     0,   207,     0,
    2742       40,    41,     0,     0,     8,     9,    10,    11,    12,    13,
    2743       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2744       24,     0,    33,    25,    26,    27,   642,     0,   337,    37,
    2745       38,     0,    30,     0,     0,     0,   633,     8,     9,    10,
    2746       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2747       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2748       33,     0,     0,     0,     0,    30,   255,    37,    38,     0,
    2749        0,     0,     0,     0,   109,     8,     9,    10,    11,    12,
    2750       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2751       23,    24,     0,    33,    25,    26,    27,     0,     0,     0,
    2752      205,    38,     0,    30,   155,     0,     0,     0,     0,     0,
    2753        0,     0,   109,     8,     9,    10,    11,    12,    13,    14,
    2754       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2755        0,    33,    25,    26,    27,     0,     0,   268,    37,    38,
    2756        0,    30,     0,     0,     0,   269,     8,     9,    10,    11,
    2757       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2758       22,    23,    24,     0,     0,    25,    26,    27,     0,    33,
    2759        0,     0,     0,     0,    30,   255,    37,    38,     0,     0,
    2760        0,     0,     0,   633,     8,     9,    10,    11,    12,    13,
    2761       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2762       24,     0,    33,    25,    26,    27,     0,     0,     0,    37,
    2763       38,     0,    30,   337,     0,     0,     0,     0,     0,     0,
    2764        0,   633,     8,     9,    10,    11,    12,    13,    14,    15,
    2765       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2766       33,    25,    26,    27,     0,     0,   453,   205,    38,     0,
    2767       30,     0,     0,     0,   109,     8,     9,    10,    11,    12,
    2768       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2769       23,    24,     0,     0,    25,    26,    27,     0,    33,     0,
    2770        0,     0,     0,    30,   268,    37,    38,     0,     0,     0,
    2771        0,     0,   628,     8,     9,    10,    11,    12,    13,    14,
    2772       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2773        0,    33,    25,    26,    27,     0,     0,     0,    37,    38,
    2774        0,    30,   598,     0,     0,     0,     0,     0,     0,     0,
    2775      633,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2776        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2777        0,     0,     0,     0,     0,   337,    37,    38,     0,     0,
    2778        0,     0,     0,   109,     2,   204,     4,     5,     6,     7,
    2779        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2780       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2781       26,    27,     0,    43,     0,     0,     0,     0,    30,     0,
    2782        0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
    2783        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2784        0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
    2785       35,     0,     0,    37,    38,   280,   281,     0,   282,  1062,
    2786        0,  1063,     0,     0,  1064,  1065,  1066,  1067,  1068,  1069,
    2787     1070,  1071,     0,     0,  1548,  1072,     0,     0,     0,  1073,
    2788     1074,     0,    32,     0,   283,     0,     0,     0,     0,  -412,
    2789      648,     0,     0,     0,   285,     0,     0,   286,   287,   288,
    2790      289,    40,    41,     0,   290,   291,     0,     0,     0,     0,
    2791        0,     0,   292,     0,     0,     0,     0,     0,     0,     0,
    2792        0,     0,     0,     0,     0,     0,     0,   293,     0,   377,
    2793        0,     0,   169,     0,     0,     0,   295,   379,   297,   298,
    2794      299,   300,     0,     0,     0,     0,  1076,     0,   280,   281,
    2795     -129,   282,  1062,     0,  1063,     0,     0,  1064,  1065,  1066,
    2796     1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,     0,
    2797        0,     0,  1073,  1074,     0,    32,     0,   283,     0,     0,
    2798        0,     0,     0,   648,     0,     0,     0,   285,     0,     0,
    2799      286,   287,   288,   289,    40,    41,     0,   290,   291,     0,
    2800        0,     0,     0,     0,     0,   292,     0,     0,     0,     0,
    2801        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2802      293,     0,   377,     0,     0,   169,     0,     0,     0,   295,
    2803      379,   297,   298,   299,   300,     0,     0,     0,     0,  1076,
    2804        0,   280,   281,  -129,   282,  1062,     0,  1063,  1418,  1419,
    2805     1064,  1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,
    2806     1548,  1072,     0,     0,     0,  1073,  1074,     0,    32,     0,
    2807      283,     0,     0,     0,     0,     0,   648,     0,     0,     0,
    2808      285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
    2809      290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
    2810        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2811        0,     0,     0,   293,     0,   377,     0,     0,   169,     0,
    2812        0,     0,   295,   379,   297,   298,   299,   300,     0,     0,
    2813      280,   281,  1076,   282,  1062,     0,  1063,  1418,  1419,  1064,
    2814     1065,  1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,
    2815     1072,     0,     0,     0,  1073,  1074,     0,    32,     0,   283,
    2816        0,     0,     0,     0,     0,   648,     0,     0,     0,   285,
    2817        0,     0,   286,   287,   288,   289,    40,    41,     0,   290,
    2818      291,     0,     0,     0,     0,     0,     0,   292,     0,     0,
    2819        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2820        0,     0,   293,     0,   377,     0,     0,   169,     0,     0,
    2821        0,   295,   379,   297,   298,   299,   300,     0,     0,   280,
    2822      281,  1076,   282,  1062,     0,  1063,     0,     0,  1064,  1065,
    2823     1066,  1067,  1068,  1069,  1070,  1071,     0,     0,     0,  1072,
    2824        0,     0,     0,  1073,  1074,     0,    32,     0,   283,     0,
    2825        0,     0,     0,     0,   648,     0,     0,     0,   285,     0,
    2826        0,   286,   287,   288,   289,    40,    41,     0,   290,   291,
    2827        0,     0,     0,     0,     0,     0,   292,     0,     0,     0,
    2828        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2829        0,   293,     0,   377,     0,     0,   169,     0,     0,     0,
    2830      295,   379,   297,   298,   299,   300,     0,     0,     0,     0,
    2831     1076,     2,   204,     4,     5,     6,     7,     8,     9,    10,
    2832       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2833       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2834        0,     0,     0,     0,     0,    30,     0,   280,   281,     0,
    2835      282,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2836        0,     0,     0,     0,     0,     0,   280,   281,     0,   282,
    2837        0,     0,     0,    33,     0,    34,   283,    35,     0,     0,
    2838       37,    38,   284,     0,     0,     0,   285,     0,     0,   286,
    2839      287,   288,   289,    40,    41,   283,   290,   291,     0,     0,
    2840        0,   648,  1327,     0,   292,   285,     0,     0,   286,   287,
    2841      288,   289,    40,    41,     0,   290,   291,     0,     0,   293,
    2842        0,   377,     0,   292,   280,   281,     0,   282,   295,   733,
    2843      297,   298,   299,   300,     0,     0,     0,     0,   293,     0,
    2844      784,     0,     0,   280,   281,     0,   282,   295,   379,   297,
    2845      298,   299,   300,   283,     0,     0,     0,     0,     0,   284,
    2846        0,     0,     0,   285,     0,     0,   286,   287,   288,   289,
    2847       40,    41,   283,   290,   291,     0,     0,     0,   284,     0,
    2848        0,   292,   285,     0,     0,   286,   287,   288,   289,    40,
    2849       41,     0,   290,   291,     0,     0,   293,     0,   377,     0,
    2850      292,   280,   281,     0,   282,   295,   826,   297,   298,   299,
    2851      300,     0,     0,     0,     0,   517,     0,     0,     0,     0,
    2852        0,     0,     0,     0,   295,   379,   297,   298,   299,   300,
    2853      283,     0,     0,     0,     0,     0,   284,     0,     0,     0,
    2854      285,     0,     0,   286,   287,   288,   289,    40,    41,     0,
    2855      290,   291,     0,     0,     0,     0,     0,     0,   292,     0,
    2856        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2857        0,     0,     0,   520,     0,     0,     0,     0,     0,     0,
    2858        0,     0,   295,   379,   297,   298,   299,   300,     2,   204,
    2859        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2860       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2861       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2862        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2863        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2864        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2865       33,     0,    34,     0,    35,    36,     0,   172,   173,    39,
    2866        0,     0,     0,     0,     0,     0,    40,    41,   203,     2,
    2867      204,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2868       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2869       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2870        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2871        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2873        0,    33,     0,    34,     0,    35,     0,     0,   205,    38,
    2874      473,     2,   204,     4,     5,     6,     7,     8,     9,    10,
    2875       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2876       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2877        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2878        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880        0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2881       37,    38,     2,   204,     4,     5,     6,     7,     8,     9,
    2882       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2883       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2884        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2885        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2886        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2887        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2888        0,   205,    38
    2889 };
    2890 
    2891 #define yypact_value_is_default(yystate) \
    2892   ((yystate) == (-1281))
    2893 
    2894 #define yytable_value_is_error(yytable_value) \
    2895   YYID (0)
    2896 
    2897 static const yytype_int16 yycheck[] =
    2898 {
    2899        0,     1,     0,    42,   237,   217,   183,   183,   202,    42,
    2900        0,     1,     1,   183,    42,   542,   183,   183,   114,   103,
    2901      184,   455,   519,   343,     0,     0,   628,   454,    28,    29,
    2902      183,    31,   697,    31,   697,   183,   498,   697,   610,   608,
    2903      502,    31,    42,   679,    44,   461,    44,   347,  1042,   496,
    2904      279,   901,   655,     1,    54,    31,    31,   166,   167,   608,
    2905       60,  1061,    60,    63,   608,    63,    66,   610,    66,   153,
    2906      347,     0,   578,    63,  1005,   277,    66,    66,   416,   998,
    2907       80,    81,  1041,  1042,   184,   608,   263,   263,    63,   779,
    2908       42,   362,   185,   263,   608,   366,   263,   263,   436,    31,
    2909      264,   528,    31,   199,   104,  1337,   444,   107,   608,    27,
    2910      263,   776,     0,   776,   114,   263,   776,    42,   608,   722,
    2911      642,   643,   644,  1054,   758,   424,   425,   611,    38,   254,
    2912      643,   644,    38,   617,    81,    42,    62,   106,  1418,   661,
    2913        0,     1,    63,    31,   183,   145,    44,   145,   661,   109,
    2914      183,    81,   108,   153,   226,   183,   116,  1422,   158,    77,
    2915      158,   130,    38,   110,   264,   612,   259,   260,   488,   616,
    2916       50,    31,    44,   245,   743,   109,    43,    44,   814,   109,
    2917     1073,  1074,   116,   183,   184,    81,   184,   108,   824,    54,
    2918      637,    43,    44,    38,   641,    38,   408,    84,   108,   199,
    2919      110,   500,    63,   839,   110,   131,    66,   207,  1440,   207,
    2920      901,   109,  1492,   735,    43,    44,   216,   494,   108,   219,
    2921      519,   219,   735,    38,   263,   112,   226,    81,   108,   219,
    2922      263,   183,   108,    11,   110,   263,   115,   109,   108,   104,
    2923      404,   241,   107,   743,   219,   245,  1240,   114,  1141,   249,
    2924      250,   249,   131,   743,   115,  1520,   340,   113,   183,   249,
    2925     1525,   113,   116,   263,   264,   108,   264,   110,   115,   838,
    2926      270,    38,   144,   249,   249,     0,   183,   277,   850,   599,
    2927     1545,   510,     3,   717,   113,   369,   585,  1552,    81,   838,
    2928      454,   416,   292,   108,   838,   110,  1290,   158,   394,  1474,
    2929      111,  1525,   250,  1303,   404,   827,    31,   850,   628,   207,
    2930      610,   436,   818,   633,   827,   838,   109,   249,  1008,   444,
    2931      249,  1545,   486,   116,   838,   596,   422,   327,  1552,   327,
    2932     1289,  1290,   428,    81,  1509,   207,  1511,  1256,   838,    94,
    2933      238,   108,    95,   110,   292,   111,   346,   347,   838,   115,
    2934       81,   216,   690,    95,   454,  1525,   840,   115,   219,   698,
    2935      108,   249,     3,   363,     1,   237,   254,   367,   639,   122,
    2936     1061,   269,    71,   348,   129,  1225,   696,   108,   378,    71,
    2937      122,   720,  1552,    82,    83,   108,   486,   959,   108,   249,
    2938       82,    83,   114,   115,   394,   293,   257,   269,   296,    71,
    2939      261,   108,  1038,  1039,   404,   270,   404,    44,   130,   958,
    2940       82,    83,   277,   115,   958,    71,     0,   115,  1020,     0,
    2941     1414,   115,   422,   130,   296,   872,    82,    83,   428,   131,
    2942      430,   488,   131,   131,   109,   958,  1070,   131,   110,   131,
    2943      115,    67,   115,    89,    90,    71,   675,   531,    74,   115,
    2944       76,   130,   772,   115,   454,  1414,    71,    83,   131,   459,
    2945     1096,  1097,   118,  1463,   464,   131,   103,    82,    83,   131,
    2946     1470,   343,   109,   473,   108,  1406,  1407,   115,   478,   125,
    2947      126,   346,   109,   108,   109,   109,   486,   348,   486,   116,
    2948      490,   115,   490,   131,   494,   110,   109,   497,   363,   499,
    2949      490,    71,   367,   130,   479,   967,  1003,   144,   120,   121,
    2950      937,   927,    82,    83,   490,   490,   153,   964,   945,   519,
    2951      697,   697,   115,  1523,   249,   473,   108,   697,   416,   254,
    2952      697,   697,   761,   108,  1225,   699,   536,  1140,   131,   539,
    2953      110,   541,   542,  1115,   697,  1029,  1030,   656,   436,   697,
    2954      850,   108,   424,   425,   452,   757,   444,   455,   829,    87,
    2955       88,   490,   833,   461,   991,   690,   203,   663,   429,    71,
    2956      207,   519,   665,   850,   115,    10,    11,    12,    13,    14,
    2957       82,    83,   115,   108,   210,   642,   643,   644,   536,   589,
    2958      131,   539,   470,   541,   542,   109,   596,   115,   131,   699,
    2959      237,   238,   490,    38,   661,   109,   108,   732,   608,   115,
    2960      610,   695,  1303,   131,   512,    71,   514,   115,   479,   517,
    2961      111,   597,   520,   109,   115,   131,    82,    83,   500,   629,
    2962      490,    66,   269,   131,  1270,   272,   109,    79,   977,   696,
    2963      282,   589,  1278,  1279,  1280,   645,    71,   519,    73,    74,
    2964      109,   651,   923,   295,   296,   630,   293,    82,    83,   296,
    2965      660,   111,   662,   663,   664,   307,   114,  1101,   110,  1303,
    2966      112,    79,     3,   111,   116,   887,   108,   115,   735,    10,
    2967       11,    12,    13,    14,    91,    92,   963,   771,   113,     0,
    2968     1326,   416,   109,   108,   293,   110,   908,   697,   115,   699,
    2969     1020,   343,   110,   340,   112,   111,   343,    38,   116,   115,
    2970      108,   436,   712,   585,   662,   772,   664,   118,   718,   444,
    2971       31,   131,   123,   124,   350,   362,   352,   599,    71,   366,
    2972      730,    42,   369,    44,   111,    66,   969,   379,   115,    82,
    2973       83,   602,   108,   743,   744,   109,  1380,   109,   723,    60,
    2974     1131,   115,    63,   115,  1135,    66,   628,   757,   108,    63,
    2975      110,   633,   737,   488,   629,   490,   108,   110,   118,   630,
    2976      827,  1495,  1463,   937,   635,   108,   108,  1501,   110,  1470,
    2977      645,   945,   730,   108,   893,   110,   118,   424,   425,   111,
    2978      109,   109,  1319,   118,  1133,   660,   115,   115,  1522,   113,
    2979      109,   679,   690,  1527,   131,    52,   115,   113,   512,    71,
    2980      514,    73,    74,   517,   440,   452,   520,   109,   455,   717,
    2981       82,    83,   109,   115,   461,   424,   425,   128,   115,   130,
    2982      113,  1102,  1523,  1467,   145,  1469,   473,   937,   838,  1033,
    2983     1160,   114,   115,   109,   732,   945,   108,   158,    95,   115,
    2984      850,   113,  1191,  1192,   109,   108,   831,   110,   834,   131,
    2985      115,   498,   723,   500,  1529,   502,  1529,   131,   109,  1529,
    2986      115,   116,   183,   184,   115,   512,   737,   514,   109,   109,
    2987      517,   109,   519,   520,   115,   115,    71,   115,    73,    74,
    2988     1524,   108,   757,   893,   531,   108,   207,    82,    83,   109,
    2989      900,   901,  1131,   109,   109,   115,  1135,  1136,   219,   115,
    2990      115,   901,    81,   512,   556,   557,   558,   108,   517,   110,
    2991     1240,   520,   108,   923,   110,   901,   901,   109,   110,     4,
    2992        5,     6,     7,     8,     9,   108,   814,   937,   249,    71,
    2993      111,    73,    74,    81,   191,   945,   824,  1056,   585,   119,
    2994       82,    83,   263,   901,   108,   109,   110,   599,   108,   596,
    2995      110,   839,   599,   963,   108,   690,   110,   214,    57,    58,
    2996      831,   696,   108,   109,   110,   574,   108,   224,   968,   968,
    2997      108,   113,   110,   983,  1041,     4,     5,     6,     7,     8,
    2998        9,   628,   992,    68,   127,    70,   633,   108,   109,   110,
    2999     1000,   128,   639,  1003,   130,  1005,    71,   732,    73,    74,
    3000       75,   110,   108,   901,   110,     3,   327,    82,    83,   114,
    3001      115,  1250,    10,    11,    12,    13,    14,  1123,    71,   927,
    3002       73,    74,    75,   115,   116,   983,   347,   115,   116,    82,
    3003       83,   901,   108,   108,   110,   110,   293,   772,  1023,    68,
    3004       38,    70,  1000,   118,  1054,  1003,   131,  1005,   695,   108,
    3005      109,   110,  1401,    93,  1064,   108,   108,  1067,  1068,  1069,
    3006      108,  1061,    10,    11,    12,    13,    14,  1504,    66,  1418,
    3007      717,   563,   564,   565,   566,  1061,  1061,    71,   111,    73,
    3008       74,   733,  1092,   404,    43,    44,    44,   969,    82,    83,
    3009       38,   111,   702,  1160,   704,   109,  1054,   109,   968,  1338,
    3010      747,   109,    60,  1342,   109,    63,  1064,   109,    66,  1067,
    3011     1068,  1069,     3,  1123,   561,   562,   110,  1554,    66,    10,
    3012       11,    12,    13,    14,   771,   109,  1220,   779,    71,   108,
    3013       73,    74,    75,   454,   111,   109,   111,   111,  1020,    82,
    3014       83,   115,  1491,  1492,    57,    58,    59,    38,   567,   568,
    3015     1038,  1039,  1023,  1262,  1263,  1264,   130,   131,   559,   560,
    3016      108,   110,   110,  1061,   115,   108,   901,   130,   113,   490,
    3017      118,   108,   111,   494,   826,    66,   109,   109,   116,   115,
    3018      111,   111,   829,   111,   441,   111,   833,   145,  1198,   116,
    3019       28,  1061,   116,  1101,   109,    84,    85,    86,   109,   111,
    3020      158,   109,  1202,  1203,  1203,  1444,   113,   116,  1096,  1097,
    3021     1220,   114,   114,   114,   108,  1225,   115,  1202,   475,   108,
    3022      115,   110,  1289,   112,   113,  1225,   184,   109,     4,     5,
    3023        6,     7,     8,     9,   131,   109,   109,   116,   109,  1225,
    3024     1225,   109,   109,   115,  1244,  1244,    71,   109,   109,   207,
    3025       75,   109,  1262,  1263,  1264,   512,    32,    82,    83,   109,
    3026      517,   219,   109,   520,   109,   109,    71,  1225,    73,    74,
    3027       75,    84,    85,    86,   109,   109,   923,    82,    83,   470,
    3028      927,   109,   109,   108,   114,   110,   109,   608,   109,   610,
    3029       28,  1397,    68,   118,    70,   108,  1539,   110,  1298,   112,
    3030      113,   698,   111,  1303,  1262,  1263,  1264,   109,   130,  1319,
    3031     1320,   109,   109,  1298,   114,   109,   115,  1303,  1303,   111,
    3032      967,   968,   969,   720,   111,   109,  1061,  1225,    71,   109,
    3033      115,  1202,    75,  1203,   109,   901,   115,  1337,  1337,    82,
    3034       83,   115,  1529,  1529,   116,   113,   111,    71,   109,  1529,
    3035     1238,    75,  1529,  1529,   111,  1225,  1530,   115,    82,    83,
    3036      115,  1319,  1320,   109,  1374,   108,  1529,  1377,  1020,   327,
    3037      109,  1529,   108,  1020,  1244,   118,   697,   108,   699,   108,
    3038     1554,   108,  1270,   108,   108,   111,  1396,  1397,   116,   131,
    3039     1278,  1279,  1280,   114,   118,   109,  1406,  1407,  1504,    71,
    3040      109,    73,    74,    75,   109,  1303,     0,     1,   128,  1061,
    3041       82,    83,  1422,   114,   811,   113,  1374,  1427,   111,  1377,
    3042     1530,   678,   743,   744,   131,  1160,   109,  1298,   115,   111,
    3043      687,   115,   111,  1303,   691,  1445,   109,    31,  1326,   109,
    3044     1440,  1440,   109,   111,  1554,   111,   404,  1457,  1406,  1407,
    3045       44,   111,   109,    54,  1101,  1102,   111,   111,   111,    46,
    3046       29,   109,   131,  1463,  1422,   114,   131,  1337,   131,  1427,
    3047     1470,    71,    66,    73,    74,    75,   114,  1463,  1463,   131,
    3048     1529,   131,    82,    83,  1470,  1470,  1529,  1445,   679,   116,
    3049     1225,  1529,   889,   109,  1504,  1505,   111,   114,  1064,  1457,
    3050      111,   111,   111,   104,  1514,  1240,   107,   111,   108,   103,
    3051     1520,    80,    81,   111,   111,  1525,   111,   838,   118,  1529,
    3052     1530,  1396,  1530,  1523,   109,  1177,   109,   111,   108,   850,
    3053      111,    63,   108,  1543,   108,  1545,    59,  1523,  1523,  1549,
    3054      113,   109,  1552,   109,  1554,   131,  1554,  1505,    80,   116,
    3055     1560,   145,   153,   111,  1564,   111,  1514,   109,   111,   153,
    3056      154,   109,  1520,   108,  1472,  1463,  1474,  1525,  1303,    95,
    3057     1440,    95,  1470,  1220,   108,   114,   131,   115,   111,   109,
    3058      977,   109,   109,   115,   109,  1543,    41,  1545,   131,   131,
    3059      184,  1549,    95,  1463,  1552,  1204,  1205,  1244,  1207,   116,
    3060     1470,  1509,  1560,  1511,  1213,   199,  1564,  1216,   202,   203,
    3061      109,  1008,   109,   207,    95,   216,   937,   131,   109,   109,
    3062      131,   116,   131,   814,   945,  1523,   158,   109,   114,   109,
    3063       50,   131,    52,   824,   228,    55,    56,    57,   232,    59,
    3064      234,   111,   963,   111,   108,   114,   131,   114,   839,   243,
    3065      109,   109,   131,  1523,    74,   249,   109,  1539,   109,  1225,
    3066      254,  1058,  1076,   569,  1225,   570,    86,    87,   925,   270,
    3067      264,   571,   241,  1492,    63,   573,   277,  1382,   272,   572,
    3068       25,    26,    27,  1564,    73,  1313,  1136,   219,  1342,  1470,
    3069     1337,    10,    11,    12,    13,    14,    10,    11,    12,    13,
    3070       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3071       24,    25,    26,    27,  1092,    29,    30,    31,   452,    38,
    3072      452,   945,   704,   464,    38,   257,   115,   893,  1463,   261,
    3073      947,   992,   589,   965,   657,  1470,  1133,   747,  1244,   490,
    3074      757,   577,    -1,    -1,   577,   346,   340,    66,   577,   343,
    3075       -1,    96,    66,    98,  1320,   349,    -1,    -1,    -1,    73,
    3076       74,    -1,   363,    77,    -1,    -1,   367,  1376,   362,   158,
    3077       -1,    -1,   366,    -1,    -1,   369,    -1,    10,    11,    12,
    3078       13,    14,    -1,    -1,    -1,    -1,    -1,    -1,  1523,   108,
    3079       -1,   110,    -1,  1440,  1191,  1192,   110,    -1,    -1,   118,
    3080       -1,    -1,    -1,    -1,   118,    38,    -1,    -1,  1374,   378,
    3081       -1,  1377,    -1,    -1,    -1,  1072,   348,    -1,    -1,    -1,
    3082       -1,    -1,   416,    -1,    -1,  1472,    -1,  1474,    -1,   430,
    3083      219,    -1,    -1,    66,   179,    -1,    -1,   431,    -1,    -1,
    3084       -1,    -1,   436,    -1,   189,   190,    -1,  1038,  1039,   194,
    3085      444,   196,   197,    -1,    -1,    -1,  1422,    -1,    -1,    -1,
    3086       -1,  1427,  1509,    -1,  1511,    -1,    -1,    -1,   257,    -1,
    3087       -1,    -1,   261,    -1,    -1,   108,   470,   110,    -1,   473,
    3088       -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,   277,    -1,
    3089      459,  1457,  1539,    -1,   488,   464,   490,   429,    -1,    10,
    3090       11,    12,    13,    14,   498,  1096,  1097,    -1,   502,    -1,
    3091       -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
    3092       13,    14,    -1,   343,   344,    -1,    -1,    38,   497,    71,
    3093      499,    73,    74,    75,    -1,   355,   356,   531,   532,    -1,
    3094       82,    83,    -1,    -1,    -1,    38,    -1,   479,    -1,    -1,
    3095       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   348,
    3096       71,    -1,    73,    74,    75,    -1,   108,    -1,   110,    -1,
    3097       -1,    82,    83,    66,   116,    -1,   118,  1543,    71,    -1,
    3098       73,    74,    75,  1549,   578,    -1,    -1,    -1,    -1,    82,
    3099       83,    -1,    -1,    -1,  1560,   596,    -1,   108,  1564,   110,
    3100       -1,    -1,   596,   597,  1401,   599,    -1,   118,    -1,    -1,
    3101       -1,    -1,    -1,    -1,    -1,   108,   610,   110,    -1,    -1,
    3102       -1,  1418,    -1,    -1,    -1,   118,    -1,    -1,   629,    -1,
    3103       -1,    -1,    -1,    -1,   628,    -1,    -1,    -1,    -1,   633,
    3104      429,    -1,    -1,    -1,   645,   639,    -1,  1238,   642,   643,
    3105      644,    -1,    -1,    -1,    -1,  1312,    -1,   446,    -1,   660,
    3106       71,    -1,    73,    74,    75,    -1,    -1,   661,    -1,    -1,
    3107      602,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
    3108       -1,    -1,   651,    -1,    -1,   679,    -1,  1278,  1279,  1280,
    3109      479,    -1,    -1,    -1,  1491,  1492,   690,   108,   630,   110,
    3110       -1,   695,   696,   635,    -1,   699,    -1,   118,    -1,    -1,
    3111       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3112       19,    20,    21,    22,    23,    24,    25,    26,     0,    -1,
    3113       29,    30,    31,    -1,    -1,  1326,    -1,    -1,   732,    38,
    3114       39,   735,    -1,   712,    -1,    -1,    -1,    -1,    -1,   718,
    3115      744,    -1,    -1,   747,    -1,     0,   757,    -1,    -1,    31,
    3116       71,    -1,    73,    74,    75,    -1,    -1,    66,    -1,    -1,
    3117       -1,    82,    83,    -1,    73,    74,    -1,   771,   772,    -1,
    3118       -1,    -1,    -1,   777,    -1,    -1,    31,    -1,    -1,    -1,
    3119       -1,   723,    -1,    -1,    66,    -1,    -1,   108,    -1,   110,
    3120       -1,    -1,    -1,    -1,    -1,   737,    -1,   118,  1529,    -1,
    3121       -1,   110,    -1,   602,  1471,   114,  1473,    -1,    -1,   118,
    3122      814,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3123      824,    -1,    -1,   827,    -1,   829,   581,   582,   832,   833,
    3124      834,   630,    -1,    -1,    -1,   839,   635,    -1,    -1,    -1,
    3125       -1,  1508,    -1,  1510,    -1,   849,    71,    -1,    73,    74,
    3126       75,    -1,    -1,    -1,    -1,    -1,   611,    82,    83,   614,
    3127      615,    -1,   617,    -1,   619,   620,    -1,    -1,    -1,   624,
    3128      625,    -1,   154,    96,    97,    98,    99,   100,   101,   102,
    3129      103,   104,   105,   108,    -1,    -1,  1553,    -1,  1555,   831,
    3130       -1,    -1,    -1,   118,   724,    -1,   726,   901,    -1,   154,
    3131       -1,  1568,  1569,   733,   734,    -1,    -1,   130,   738,    -1,
    3132       -1,    -1,   923,    -1,   893,    -1,   187,    -1,    -1,   923,
    3133      750,   900,    -1,   194,   723,   755,    -1,    -1,    10,    11,
    3134       12,    13,    14,    -1,    -1,    -1,    -1,    -1,   737,    -1,
    3135       -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,
    3136       -1,   781,    -1,   708,   709,   959,    38,    -1,   757,   714,
    3137       -1,    -1,    -1,   967,   968,    -1,    -1,   249,    -1,    -1,
    3138       -1,    -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3139       -1,   985,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
    3140       -1,    73,    74,    75,   249,   266,   826,    -1,    -1,   254,
    3141       82,    83,    -1,    -1,    -1,    -1,    25,    26,    27,    -1,
    3142       -1,    -1,    -1,   992,    -1,    -1,  1020,    -1,    -1,    -1,
    3143       -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,  1033,
    3144       -1,    -1,   831,    -1,  1038,  1039,   118,  1041,  1042,    -1,
    3145       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,
    3146       -1,   322,    -1,   883,   884,   885,   886,  1061,   888,   330,
    3147       -1,    -1,   333,    -1,    -1,    -1,    -1,   349,    -1,    -1,
    3148       -1,    -1,    38,    -1,   904,    -1,    -1,    96,    -1,    98,
    3149       -1,  1023,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
    3150       -1,    -1,  1096,  1097,   349,    -1,    -1,    -1,  1102,    -1,
    3151       66,    -1,    -1,    -1,   123,    71,    -1,    73,    74,    75,
    3152       -1,    -1,    -1,  1092,    -1,    -1,    82,    83,    -1,    -1,
    3153       -1,    -1,    -1,    -1,    -1,   396,    -1,   957,    -1,   400,
    3154       -1,    -1,    -1,    -1,   416,    -1,    -1,    -1,    -1,    -1,
    3155       -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   431,
    3156       -1,    -1,   118,    -1,   436,    -1,  1160,    -1,    -1,    -1,
    3157      179,   416,   444,    -1,    -1,    -1,    -1,   997,   187,    -1,
    3158      189,   190,    -1,    -1,  1004,   194,   431,   196,   197,  1009,
    3159       -1,   436,    -1,    -1,  1014,    -1,  1016,    -1,   470,   444,
    3160     1020,  1021,  1022,    -1,    -1,  1025,    -1,    -1,    -1,  1203,
    3161       -1,    -1,    -1,    -1,  1034,    -1,   488,    -1,   490,  1220,
    3162       -1,    -1,    -1,    -1,   485,   470,  1220,    -1,    -1,  1198,
    3163       -1,  1225,  1052,  1053,  1023,    -1,    -1,    -1,    10,    11,
    3164       12,    13,    14,   488,  1238,   490,  1240,    -1,    -1,    -1,
    3165     1244,    -1,    -1,    -1,    -1,    -1,    -1,   266,    -1,  1079,
    3166      532,    -1,  1082,    -1,    -1,    -1,    38,    -1,    -1,    -1,
    3167     1202,    -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,
    3168       -1,    -1,    -1,    -1,  1278,  1279,  1280,   532,    -1,    -1,
    3169       -1,    -1,    -1,    -1,    66,  1289,  1290,    -1,    -1,    71,
    3170     1120,    73,    74,    75,    -1,    -1,  1126,  1127,    -1,  1303,
    3171       82,    83,    -1,    -1,    -1,    -1,   577,   578,  1138,    -1,
    3172       -1,    -1,    -1,  1143,    -1,   597,  1146,    -1,  1148,    -1,
    3173       -1,  1151,  1326,    -1,    -1,    -1,   108,    -1,    -1,    -1,
    3174       -1,    -1,    -1,  1337,  1164,    -1,   118,    -1,    -1,    -1,
    3175       -1,    -1,   597,  1098,    -1,    -1,    -1,  1177,    -1,  1179,
    3176     1180,  1181,  1182,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
    3177      642,   643,   644,    -1,    -1,  1195,    -1,  1197,    -1,    -1,
    3178       -1,  1201,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,
    3179       -1,    -1,    -1,    -1,    -1,  1396,    -1,   642,   643,   644,
    3180       -1,    -1,    -1,    -1,    -1,   666,    -1,   679,    -1,   670,
    3181     1230,  1231,    -1,  1202,    -1,    -1,   661,    -1,   690,    -1,
    3182     1414,    -1,     0,    -1,   696,    -1,    -1,    -1,    -1,    -1,
    3183       -1,    -1,    -1,    -1,   679,    -1,    -1,    -1,    -1,    -1,
    3184       -1,    -1,   703,    -1,    -1,   690,  1440,    -1,    -1,     0,
    3185       -1,   696,    -1,    31,    -1,     0,     1,    -1,    -1,    -1,
    3186      732,  1281,  1282,   735,    -1,    -1,    -1,    -1,    -1,  1463,
    3187       -1,  1291,    -1,    -1,    -1,    -1,  1470,  1222,    -1,    -1,
    3188       31,    -1,    -1,    -1,    -1,    -1,    31,   732,    66,    -1,
    3189      735,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3190      772,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1298,
    3191       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    63,    -1,
    3192       -1,    66,    -1,  1343,    -1,    -1,    -1,   772,    -1,  1523,
    3193       -1,    -1,    -1,    -1,    -1,  1355,  1530,  1357,  1358,  1359,
    3194       -1,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
    3195       -1,    -1,   824,    -1,    -1,   827,    -1,   818,  1378,    -1,
    3196      832,    -1,   834,    -1,    -1,    -1,    -1,   839,    -1,   814,
    3197       -1,    -1,   581,   582,  1394,    -1,   154,    -1,    -1,   824,
    3198       -1,    -1,   827,    -1,    -1,    -1,    -1,   832,    -1,   834,
    3199       -1,    -1,    -1,    -1,   839,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,   611,   154,    -1,   614,   615,    -1,   617,   154,
    3201      619,   620,    -1,    -1,    -1,   624,   625,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   901,
    3203     1450,  1451,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3204       -1,    -1,    -1,  1463,    -1,    -1,    -1,    -1,    -1,    -1,
    3205     1470,    -1,    -1,    -1,    -1,    -1,   901,    -1,    -1,    -1,
    3206       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3207      931,   249,    -1,    -1,   219,    -1,   254,    -1,    -1,    -1,
    3208       -1,    -1,    -1,  1503,    -1,    -1,    -1,  1507,    -1,    -1,
    3209       -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,   249,   708,
    3210      709,    -1,    -1,   254,   249,   714,    -1,    -1,    -1,    -1,
    3211       -1,    -1,    -1,   985,    -1,    -1,  1536,    -1,  1538,    -1,
    3212       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3213       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3214      985,    29,    30,    31,    -1,    -1,  1566,  1567,    -1,  1010,
    3215       38,    39,    -1,    -1,  1574,  1575,    -1,    -1,    -1,    -1,
    3216       -1,    -1,    -1,    -1,    -1,  1026,  1038,  1039,    -1,  1041,
    3217     1042,   349,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3218       -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,  1061,
    3219       -1,    -1,    -1,  1038,  1039,    -1,  1041,  1042,   349,    10,
    3220       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3221       21,    22,    23,    24,    25,    26,  1061,    -1,    29,    30,
    3222       31,    -1,   110,    -1,  1096,  1097,   114,    38,    -1,    -1,
    3223      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,    -1,
    3224       -1,    -1,  1103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,  1096,  1097,   431,    -1,    66,    -1,    -1,   436,    -1,
    3226       71,    -1,    73,    74,    75,   416,   444,    -1,    -1,    -1,
    3227       -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228      431,    -1,    -1,    -1,    -1,   436,   431,    -1,  1160,    -1,
    3229       -1,    -1,   470,   444,    -1,    -1,    -1,   108,    -1,   110,
    3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
    3231      488,    -1,   490,    -1,    -1,  1160,    -1,    -1,    -1,   470,
    3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3233       -1,  1203,    -1,    -1,    -1,    -1,    -1,   488,    -1,   490,
    3234       -1,    -1,    -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,
    3235       -1,    -1,    -1,  1225,   532,    -1,    -1,    -1,  1203,    -1,
    3236       -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,    -1,
    3237       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3238     1225,   532,    -1,    -1,    -1,    -1,    -1,   532,    -1,    -1,
    3239       -1,    -1,    -1,  1238,    -1,  1240,    -1,    -1,  1270,    -1,
    3240       -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,  1280,    -1,
    3241       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,   597,
    3242       -1,    -1,    -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,
    3243       -1,  1303,    -1,  1278,  1279,  1280,    -1,    -1,    -1,    -1,
    3244       -1,    -1,    -1,    -1,  1289,  1290,   597,    -1,    -1,    -1,
    3245       -1,    -1,   597,    -1,  1326,    -1,    -1,    -1,  1303,    -1,
    3246       -1,    -1,    -1,    -1,   642,   643,   644,    -1,    -1,    -1,
    3247       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3248       -1,  1326,    -1,   661,    -1,    -1,    -1,    -1,    -1,  1098,
    3249       -1,   642,   643,   644,    -1,    -1,    -1,   642,   643,   644,
    3250       -1,   679,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3251      661,    -1,   690,    -1,    -1,    -1,   661,    -1,   696,    -1,
    3252       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   679,     7,
    3253       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,   690,
    3254       -1,    -1,  1414,    -1,    -1,   696,    -1,    -1,    -1,    -1,
    3255       -1,    -1,    -1,    -1,   732,    -1,    -1,   735,    36,    37,
    3256       38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1414,
    3257       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3258       -1,   732,    -1,    -1,   735,    -1,    -1,    65,    66,    -1,
    3259      735,  1463,    -1,    71,   772,    -1,    -1,    75,  1470,    -1,
    3260       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3261       -1,    -1,    -1,  1222,    -1,    93,    -1,    -1,  1463,    -1,
    3262       -1,   772,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
    3263      108,    -1,   110,    -1,    -1,    -1,   814,    -1,    -1,   117,
    3264      118,   119,   120,   121,   122,    -1,   824,    -1,    -1,   827,
    3265       -1,  1523,    -1,    -1,   832,    -1,   834,    -1,    -1,    -1,
    3266       -1,   839,    -1,   814,    -1,    -1,    -1,    -1,    -1,    -1,
    3267       -1,    -1,    -1,   824,    -1,    -1,   827,    -1,  1523,    -1,
    3268       -1,   832,   827,   834,    -1,    -1,    -1,    -1,   839,   834,
    3269       -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,     3,     4,
    3270        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3271       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3272       25,    26,    -1,   901,    29,    30,    31,    32,    -1,    -1,
    3273       35,    -1,    -1,    38,    39,    -1,    -1,    -1,    -1,    10,
    3274       11,    12,    13,    14,    -1,    10,    11,    12,    13,    14,
    3275      901,    -1,    -1,    -1,    -1,    -1,   901,    -1,    63,    -1,
    3276       -1,    66,    44,    68,    -1,    70,    71,    38,    73,    74,
    3277       75,    -1,    -1,    38,    -1,    -1,    -1,    82,    83,    -1,
    3278       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
    3280       71,    66,    -1,   108,    75,   110,    71,   985,    -1,    -1,
    3281       75,    82,    83,   118,    -1,    -1,    -1,    82,    83,    -1,
    3282       -1,    -1,    -1,   968,    -1,    -1,    -1,   109,    -1,    -1,
    3283       -1,    -1,    -1,   115,   985,    -1,    -1,   108,    -1,    -1,
    3284      985,    -1,    -1,   108,    -1,    -1,    -1,   118,    -1,    -1,
    3285       -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3286     1038,  1039,   144,  1041,  1042,    -1,    -1,    -1,    -1,    -1,
    3287       -1,    -1,   154,    -1,    -1,    -1,   158,    -1,    -1,    -1,
    3288       -1,    -1,    -1,  1061,    -1,    -1,    -1,  1038,  1039,    -1,
    3289     1041,  1042,    -1,    -1,    -1,    -1,  1041,  1042,    -1,    -1,
    3290       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3291     1061,    -1,    -1,    -1,    -1,    -1,  1061,    -1,  1096,  1097,
    3292       -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,
    3293       -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,    -1,    -1,
    3294       -1,    -1,    -1,    -1,    -1,  1096,  1097,    -1,    -1,    -1,
    3295       -1,    36,    37,    -1,    39,   237,   238,    10,    11,    12,
    3296       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3297       23,    24,    25,    26,    -1,    -1,    29,    30,    31,   261,
    3298       65,    -1,  1160,    -1,    -1,    38,    71,   269,    -1,    -1,
    3299       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3300       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1160,
    3301       -1,   293,    -1,    66,   296,    -1,    -1,    -1,    -1,    -1,
    3302       73,    74,    -1,   108,    -1,  1203,    -1,    -1,    -1,    -1,
    3303       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3304       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1225,    -1,    -1,
    3305       -1,    -1,  1203,    -1,    -1,    -1,    -1,  1202,  1203,    -1,
    3306     1238,   343,  1240,    -1,    -1,   118,   348,    -1,    -1,    -1,
    3307       -1,    -1,    -1,    -1,  1225,    -1,    -1,    -1,    -1,    -1,
    3308     1225,    -1,    -1,    -1,    -1,    -1,    -1,  1238,    -1,  1240,
    3309       -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,    -1,  1244,
    3310     1278,  1279,  1280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3311       -1,  1289,  1290,    -1,    -1,    -1,    -1,    -1,    -1,  1270,
    3312       -1,    -1,    -1,    -1,    -1,  1303,    -1,  1278,  1279,  1280,
    3313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1289,  1290,
    3314       -1,    -1,   424,   425,  1289,  1290,    -1,    -1,  1326,   431,
    3315       -1,    -1,  1303,  1298,    -1,    -1,    -1,    -1,  1303,    -1,
    3316       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3317      452,    -1,    -1,   455,    -1,  1326,    -1,    -1,    -1,   461,
    3318       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3319       -1,    -1,  1337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3320       -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,    -1,    -1,
    3321       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   500,    -1,
    3322       73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,    -1,
    3323      512,    84,   514,    -1,    -1,   517,  1414,   519,   520,    -1,
    3324       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3325      532,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3326       -1,    -1,   115,  1414,   117,   118,   119,    -1,    -1,  1414,
    3327       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328       -1,    -1,    -1,    -1,    -1,  1463,    -1,    43,    -1,    -1,
    3329       -1,    -1,  1470,    -1,    -1,  1440,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    -1,   585,    -1,   158,    -1,    -1,    -1,    -1,
    3331       -1,    -1,  1463,    -1,    -1,   597,    -1,   599,  1463,  1470,
    3332      602,    -1,    -1,    -1,    -1,  1470,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
    3334       -1,    -1,    -1,    99,    -1,  1523,   628,    -1,    -1,    -1,
    3335       -1,   633,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3336      642,   643,   644,    -1,    -1,    -1,   219,    -1,   221,   222,
    3337      223,    -1,  1523,    -1,    -1,    -1,    -1,    -1,  1523,   661,
    3338       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3339       19,    20,    21,    22,    23,    24,    25,    26,    27,   155,
    3340       29,    30,    31,    -1,   257,    -1,    -1,    -1,   261,    38,
    3341       -1,    -1,    -1,   169,   696,    -1,    -1,    -1,    -1,    -1,
    3342       -1,    -1,    -1,    -1,   277,    -1,    -1,    -1,    -1,    -1,
    3343       -1,    -1,    -1,    -1,    -1,   717,   192,    66,    -1,    -1,
    3344       -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,
    3345      206,    -1,    -1,   735,    -1,   737,    -1,    -1,    -1,   215,
    3346       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   225,
    3347       -1,    -1,    -1,    -1,   327,    -1,    -1,    -1,    -1,   108,
    3348       -1,   110,    36,    37,    -1,    39,    -1,    -1,    -1,   118,
    3349      772,    -1,    -1,    -1,   250,   348,    -1,    -1,    -1,   255,
    3350      353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,    -1,
    3351       -1,    65,   268,    -1,    -1,    -1,    -1,    71,   274,    -1,
    3352      276,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3353       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,   294,    93,
    3354       -1,    -1,    -1,    -1,    -1,   827,    -1,    -1,    -1,   831,
    3355       -1,   404,   834,    -1,   108,    -1,   110,    -1,    -1,   113,
    3356       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,   422,
    3357       -1,    -1,    -1,    -1,   427,    -1,   429,    -1,    -1,    -1,
    3358       -1,   337,    -1,    -1,    -1,    -1,   342,    -1,    -1,    -1,
    3359       -1,    -1,    -1,   446,    -1,    -1,   449,   450,    -1,    -1,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,    -1,   465,    -1,   370,    -1,    -1,    -1,   374,   375,
    3362       -1,   377,    -1,    -1,    -1,    -1,   479,    -1,   384,   385,
    3363       -1,   387,   388,   486,   390,    -1,   392,    -1,    -1,    -1,
    3364       -1,    -1,    -1,     7,    -1,   927,    10,    11,    12,    13,
    3365       14,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
    3366       -1,   417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3367       -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,    -1,
    3368       -1,    -1,    -1,    -1,    -1,    -1,   442,   969,    -1,    -1,
    3369       -1,    -1,    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,
    3370       -1,    65,    66,   985,    -1,    -1,    -1,    71,    -1,    -1,
    3371       -1,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3372      476,    85,    86,    -1,    -1,    -1,   482,    -1,    -1,    93,
    3373       -1,   487,    -1,    -1,    -1,    -1,    -1,    -1,  1020,    -1,
    3374       -1,    -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   602,
    3375       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,  1041,
    3376     1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   524,    -1,
    3377       -1,    -1,    -1,    -1,    -1,    -1,    -1,   630,   280,    -1,
    3378      282,   283,   635,    -1,   540,    -1,    -1,    -1,   290,   291,
    3379       -1,    -1,    -1,   295,   296,    -1,    -1,    -1,    -1,    -1,
    3380       -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,  1101,
    3382       -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3383      586,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,    -1,
    3384       -1,   343,   598,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3385       71,    -1,    -1,   609,    75,    -1,    -1,    78,    79,    80,
    3386       81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    3387      723,    -1,    93,    -1,    -1,    -1,    -1,   379,  1160,    -1,
    3388       -1,    -1,    -1,    -1,   737,    -1,    -1,   108,    -1,   110,
    3389       -1,    -1,    -1,    -1,   650,   116,   117,   118,   119,   120,
    3390      121,   122,    -1,    -1,   757,    -1,    -1,    -1,    -1,    -1,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392     1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3393      686,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3394       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3395       25,    26,    27,    -1,    29,    30,    31,    -1,  1240,    -1,
    3396       -1,    -1,    -1,    38,    -1,   818,    -1,    -1,    -1,    -1,
    3397       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,    -1,
    3398       -1,    -1,    -1,    -1,    -1,   741,    -1,    -1,    -1,    -1,
    3399       -1,    66,    -1,    -1,    -1,   751,   752,   850,    73,    74,
    3400       -1,    -1,    77,    -1,    -1,    -1,    -1,  1289,  1290,   765,
    3401       -1,    -1,    -1,    -1,    -1,    -1,  1298,    -1,    -1,    -1,
    3402       -1,    -1,    -1,    -1,    -1,    -1,   782,    -1,   784,    -1,
    3403       -1,    -1,   788,   108,    -1,   110,    -1,    -1,    -1,    -1,
    3404       -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3405       -1,    -1,    -1,    -1,   556,   557,   558,   559,   560,   561,
    3406      562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
    3407      572,   573,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3408       36,    37,    -1,    39,   937,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,   599,   854,    -1,
    3410       -1,    -1,    -1,    -1,    -1,   861,    -1,    -1,    -1,    65,
    3411      963,    -1,    -1,    -1,    -1,    71,    -1,    -1,   874,    75,
    3412      876,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3413       86,    -1,  1414,    -1,   890,    -1,    -1,    93,   991,    -1,
    3414       -1,   897,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3415       -1,    -1,   108,   909,   110,    -1,   912,    -1,    -1,   115,
    3416       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3417     1023,    -1,    -1,    -1,   930,    -1,    -1,    -1,    -1,    -1,
    3418       -1,  1034,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3419     1472,    -1,  1474,    -1,    -1,    -1,   698,    -1,    10,    11,
    3420       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3421       22,    23,    24,    25,    26,    27,    -1,    -1,   720,    -1,
    3422       -1,    -1,    -1,    -1,    -1,    -1,    38,  1509,    -1,  1511,
    3423       -1,   733,    10,    11,    12,    13,    14,    15,    16,    17,
    3424       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3425       -1,    29,    30,    31,    66,    -1,    -1,  1539,    -1,    -1,
    3426       38,    -1,  1115,  1019,    -1,    77,    -1,    -1,    -1,   153,
    3427      154,    -1,    -1,    -1,    -1,    -1,    -1,   779,    -1,    -1,
    3428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,
    3429       -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,    77,
    3430       -1,    -1,    -1,   187,    82,    83,    -1,    -1,    -1,   811,
    3431      194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1075,
    3432       -1,    -1,    -1,    -1,   826,    -1,  1082,    -1,    -1,    -1,
    3433      108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3434      118,    36,    37,    -1,    39,    -1,    -1,    -1,    -1,  1202,
    3435       -1,    -1,    -1,    -1,    -1,  1111,    -1,    -1,    -1,    -1,
    3436     1116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1124,    -1,
    3437       65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
    3438       75,    -1,   266,    78,    79,    80,    81,    82,    83,    -1,
    3439       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,  1155,
    3440       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3441       -1,  1167,    -1,   108,  1170,   110,  1172,   112,   113,    -1,
    3442       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3443     1186,  1187,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
    3444       -1,    -1,    -1,    -1,    -1,  1298,   330,   331,    -1,   333,
    3445      334,    -1,  1208,    -1,    -1,    -1,    -1,    -1,    -1,   343,
    3446       -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,
    3447       -1,    -1,    -1,    -1,    -1,   977,    -1,    -1,    -1,  1235,
    3448      144,    -1,   366,    -1,    -1,   369,    -1,    -1,    -1,    -1,
    3449      154,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3450       -1,    -1,   166,   167,    -1,    -1,  1008,    -1,    -1,    -1,
    3451       -1,    -1,   396,    -1,    -1,    -1,   400,    -1,  1020,     4,
    3452        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3453       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3454       25,    26,    -1,    -1,    29,    30,    31,   431,    -1,    -1,
    3455       -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,  1061,
    3456       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3457      454,    -1,    -1,   237,    -1,    -1,  1332,    -1,  1334,    -1,
    3458       -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
    3459       -1,  1347,    -1,  1349,    -1,    -1,    -1,    -1,   262,    -1,
    3460       -1,   485,    -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,
    3461       -1,  1367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3462       -1,    -1,    -1,    -1,   109,   110,    -1,  1383,  1384,    -1,
    3463       -1,  1133,    -1,   118,    -1,    -1,    -1,    -1,    -1,  1395,
    3464       -1,    -1,  1398,    -1,   528,    -1,    -1,   531,   532,    -1,
    3465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3466       -1,    -1,    -1,    -1,  1420,    -1,    -1,    -1,    -1,    -1,
    3467       -1,    -1,    -1,  1429,    -1,  1177,  1432,    -1,  1434,  1435,
    3468     1436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1191,
    3469     1192,    -1,    -1,   577,   578,    -1,    -1,    -1,    -1,    -1,
    3470       -1,  1554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3471       -1,    -1,   596,   597,   378,   599,    -1,    -1,    -1,    -1,
    3472     1476,    -1,  1478,    -1,   608,  1481,   610,   611,    -1,    -1,
    3473       -1,    -1,    -1,   617,    -1,    -1,    -1,    -1,    -1,    -1,
    3474     1496,    -1,    -1,   627,   628,    -1,    -1,    -1,    -1,   633,
    3475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   642,   643,
    3476      644,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    -1,    -1,    -1,   661,    -1,    -1,
    3478       -1,    -1,   666,   667,    -1,    -1,   670,   671,    -1,    -1,
    3479       -1,    -1,    -1,   677,    -1,    -1,    -1,    -1,    -1,    -1,
    3480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,   695,   696,   697,    -1,   699,   480,    -1,    -1,   703,
    3482       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3483       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3484       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,
    3485       -1,   735,   736,    -1,    -1,   519,    -1,    -1,    -1,    -1,
    3486       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   532,    -1,
    3487       -1,    -1,    -1,    -1,    -1,   539,    -1,    66,   542,    -1,
    3488       -1,    -1,    -1,    -1,    73,    74,    -1,   771,   772,   553,
    3489      554,    -1,   776,   777,    -1,    -1,    -1,    -1,    -1,  1401,
    3490       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3491       -1,   575,    -1,    -1,    -1,    -1,  1418,    -1,    -1,    -1,
    3492       -1,   585,    -1,    -1,    -1,    -1,    -1,    -1,   592,   118,
    3493       -1,    -1,    -1,   597,   818,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,   827,    -1,    -1,    -1,    -1,    -1,   833,
    3495      834,    -1,    -1,    -1,   838,    -1,   840,    -1,    -1,    -1,
    3496       -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3498       -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,  1491,
    3499     1492,    -1,   656,    -1,    -1,    -1,    -1,    -1,    -1,     3,
    3500        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3501       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3502       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
    3503       -1,    35,   696,    -1,    38,    39,    -1,    -1,    -1,   923,
    3504       -1,    -1,    -1,    -1,    -1,    -1,    -1,   931,    36,    37,
    3505       -1,    39,    -1,   937,    -1,    -1,    -1,    -1,    -1,    63,
    3506       -1,   945,    66,    -1,    68,    -1,    70,    71,    -1,    73,
    3507       74,    75,    -1,    -1,   958,   959,    -1,    65,    82,    83,
    3508       -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
    3509       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3510       -1,   985,    -1,    -1,   108,    93,   110,   991,   772,    -1,
    3511      774,    -1,    -1,    -1,   118,    -1,   780,    -1,    -1,    -1,
    3512      108,    -1,   110,   787,    -1,   113,  1010,  1011,    -1,   117,
    3513      118,   119,   120,   121,   122,    -1,  1020,    -1,    -1,    -1,
    3514       -1,    -1,  1026,  1027,    -1,  1029,  1030,  1031,    -1,    -1,
    3515       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1041,  1042,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,   831,   832,    -1,
    3517      834,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3518       -1,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,    -1,
     4059      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
     4060      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    35194061      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35204062      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1102,  1103,
    3522     1104,    -1,    -1,    -1,    -1,   889,    -1,    -1,    -1,   893,
    3523       -1,  1115,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
     4063      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     4064      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
     4065      84,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     4066      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4067      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     4068      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     4069      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4070      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4071      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     4072      -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
     4073       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     4074      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     4075      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     4076      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4077      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4078      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     4079      69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    35244080       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35254081      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3526       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3527       37,    38,    39,    40,    -1,    42,  1160,    -1,    45,    46,
    3528       47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
    3529       -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    66,
    3530       -1,    68,    -1,    70,    71,   969,    73,    74,    75,    -1,
    3531       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    3532       -1,   985,   986,    -1,    -1,    -1,    93,    -1,   992,    -1,
    3533       -1,    -1,    36,    37,   998,    39,  1220,  1001,    -1,  1003,
    3534       -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
    3535      117,   118,   119,   120,   121,   122,  1240,    -1,    -1,  1023,
    3536      127,    65,    -1,    -1,   131,    -1,    -1,    71,    -1,    -1,
    3537     1034,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3538       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
    3539       -1,    -1,  1056,    -1,  1058,    -1,    -1,    -1,    -1,    -1,
    3540       -1,    -1,    -1,    -1,   108,  1289,  1290,    -1,    -1,  1073,
    3541     1074,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3542       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3543     1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
    3544        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3545       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3546       25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
    3547       35,    36,    37,    38,    39,    -1,    -1,  1141,    -1,    -1,
    3548       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3549       36,    37,    -1,    39,    -1,    -1,  1160,    -1,    -1,    -1,
    3550       65,    66,    -1,    68,    -1,    70,    71,    -1,    73,    74,
    3551       75,  1175,  1176,    78,    79,    80,    81,    82,    83,    65,
    3552       85,    86,    -1,    -1,    -1,    71,    -1,    -1,    93,    75,
    3553     1414,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3554       86,    -1,    -1,   108,    -1,   110,    -1,    93,    -1,    -1,
    3555       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3556       -1,    -1,   108,    -1,   110,    -1,   131,    -1,    -1,    -1,
    3557       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
    3558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    -1,  1256,    -1,    -1,    -1,     3,     4,     5,     6,
    3560        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3561       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3562     1504,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3563       37,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    -1,    -1,    -1,  1529,  1530,    -1,    -1,    -1,
    3565       -1,    -1,    -1,  1317,    -1,  1319,    -1,    -1,    65,    66,
    3566       -1,    68,    -1,    70,    71,    -1,    73,    74,    75,    -1,
    3567     1554,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    3568       -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    3569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3570       -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
    3571      117,   118,   119,   120,   121,   122,    -1,    -1,     4,     5,
    3572        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4082      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     4083      -1,    -1,    39,    -1,    10,    11,    12,    13,    14,    15,
    35734084      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3574       26,  1405,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3575       36,    37,    38,    39,    -1,    10,    11,    12,    13,    14,
    3576       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3577       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,
    3578       66,    -1,    68,    38,    70,    71,    -1,    73,    74,    75,
    3579       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3580       86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
    3581       -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,    74,
    3582       -1,    -1,   108,  1487,   110,    -1,    -1,    82,    83,   115,
    3583       -1,   117,   118,   119,   120,   121,   122,     4,     5,     6,
    3584        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3585       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3586       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3587       37,    38,    39,    -1,    -1,  1539,    -1,    10,    11,    12,
    3588       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3589       23,    24,    25,    26,    27,    -1,    -1,    -1,    65,    66,
    3590       -1,    68,    -1,    70,    71,    38,    73,    74,    75,    -1,
    3591       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    3592       -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    3593       -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,
    3594       -1,   108,    -1,   110,    77,    -1,    -1,    -1,   115,    -1,
    3595      117,   118,   119,   120,   121,   122,     4,     5,     6,     7,
    3596        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3597       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3598       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3599       38,    39,    -1,    10,    11,    12,    13,    14,    15,    16,
    3600       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3601       -1,    -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,
    3602       68,    38,    70,    71,    -1,    73,    74,    75,    -1,    -1,
    3603       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3604       -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,
    3605       -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
    3606      108,    -1,   110,    -1,    -1,    -1,    -1,   115,    -1,   117,
    3607      118,   119,   120,   121,   122,     4,     5,     6,     7,     8,
    3608        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3609       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3610       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3611       39,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3612       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3613       -1,    29,    30,    31,    -1,    -1,    65,    66,    -1,    68,
    3614       38,    70,    71,    -1,    73,    74,    75,    -1,    -1,    78,
    3615       79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    3616       -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,
    3617       -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,   108,
    3618       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3619      119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    3620       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3621       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3622       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
    3623       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3624       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3625       -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    38,
    3626       70,    71,    -1,    73,    74,    75,    -1,    -1,    78,    79,
    3627       80,    81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    93,    -1,    -1,    -1,    66,    -1,    -1,
    3629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3630      110,    -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,
    3631      120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    3632       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3633       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3634       31,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,
     4085      26,    27,    -1,    -1,    30,    31,    32,    33,    34,    35,
     4086      67,    -1,    69,    39,    71,    -1,    -1,    74,    75,    -1,
    36354087      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36364088      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3637       -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,
    3638       71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
    3639       81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    3640       -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3641       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3642       -1,    -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,
    3643      121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
    3644       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3645       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3646       -1,    -1,    -1,    -1,    36,    37,    38,    39,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3649       -1,    -1,    -1,    65,    66,    -1,    68,    -1,    70,    71,
    3650       -1,    73,    74,    75,    -1,    -1,    78,    79,    80,    81,
    3651       82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
    3652       -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
    3654       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    3655      122,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3656       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3657       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3658       32,    -1,    -1,    35,    -1,    -1,    38,    39,    -1,    -1,
    3659       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3660       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3661       -1,    63,    -1,    -1,    66,    -1,    68,    -1,    70,    71,
    3662       -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
    3663       82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3665       -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,    -1,
    3666       -1,    -1,   114,    -1,    -1,    -1,   118,     3,     4,     5,
    3667        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3668       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3669       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3670       -1,    -1,    38,    10,    11,    12,    13,    14,    15,    16,
    3671       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3672       -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
    3673       66,    38,    68,    -1,    70,    71,    -1,    73,    74,    75,
    3674       -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,
    3675       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3676       -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,
    3677       -1,    -1,   108,    -1,   110,    -1,    -1,    -1,    -1,    -1,
    3678       -1,    -1,   118,     3,     4,     5,     6,     7,     8,     9,
    3679       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3680       20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
    3681       30,    31,    32,    -1,    -1,    35,    -1,    -1,    38,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3684       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
    3685       70,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,     3,
    3686        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3687       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3688       24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
    3689      110,    35,    -1,    -1,    38,    -1,    -1,    -1,   118,    -1,
    3690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3691       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
    3693       74,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    3694       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3695       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3696       31,    -1,    -1,    -1,    -1,    -1,   110,    38,    -1,    -1,
    3697       -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
    3698       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,
    3700       -1,    -1,    73,    74,     4,     5,     6,     7,     8,     9,
    3701       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3702       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3703       30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,   110,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3706       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
    3707       70,    71,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
    3708       -1,    -1,    82,    83,    -1,    -1,    10,    11,    12,    13,
    3709       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3710       24,    25,    26,    -1,    -1,    29,    30,    31,   108,    -1,
    3711      110,    -1,    -1,    -1,    38,    -1,    -1,    -1,   118,     4,
    3712        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3713       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3714       25,    26,    66,    -1,    29,    30,    31,    71,    -1,    73,
    3715       74,    75,    -1,    38,    -1,    -1,    -1,    -1,    82,    83,
    3716       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3717       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3718       -1,    66,    -1,    68,   108,    70,   110,    -1,    73,    74,
    3719       -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
    3720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3721       95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
    3723       -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
    3724       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3725       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3726       30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,
    3727       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3728       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3729       -1,    -1,    29,    30,    31,    -1,    66,    -1,    68,    -1,
    3730       70,    38,    -1,    73,    74,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3732       -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,    66,
    3733       -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
    3734      110,    -1,    -1,    -1,    -1,    82,    83,    -1,   118,     4,
    3735        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3736       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3737       25,    26,    -1,   110,    29,    30,    31,    -1,    -1,    -1,
    3738       -1,   118,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3740       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3741       -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
    3742        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3743       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3744       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,    -1,
    3746       -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3748       -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,
    3749       74,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3750       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3751       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    -1,
    3754       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3755       -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
    3756       73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
    3757       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3758       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    38,   110,    -1,    -1,
    3760       -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3762       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
    3763       -1,    73,    74,    10,    11,    12,    13,    14,    15,    16,
    3764       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3765       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
    3766       37,    38,    39,    -1,    -1,    -1,    -1,    -1,   110,    -1,
    3767       -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
    3768       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
    3769       -1,    -1,    -1,    -1,    71,    -1,    73,    74,    75,    -1,
    3770       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    3771       -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    3772       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3773       -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
    3774      117,   118,   119,   120,   121,   122,    10,    11,    12,    13,
    3775       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3776       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3777       -1,    -1,    36,    37,    38,    39,    10,    11,    12,    13,
    3778       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3779       24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
    3780       -1,    65,    66,    -1,    38,    -1,    -1,    71,    -1,    73,
    3781       74,    75,    -1,    -1,    78,    79,    80,    81,    82,    83,
    3782       -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
    3783       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    73,
    3784       74,    75,    -1,    77,   108,    -1,   110,   111,    82,    83,
    3785       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,    10,
    3786       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3787       21,    22,    23,    24,    25,    26,   110,    -1,    29,    30,
    3788       31,    -1,    -1,    -1,   118,    36,    37,    38,    39,    10,
    3789       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3790       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3791       31,    -1,    -1,    -1,    65,    66,    -1,    38,    -1,    -1,
    3792       71,    -1,    73,    74,    75,    -1,    -1,    78,    79,    80,
    3793       81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    3794       -1,    -1,    93,    -1,    -1,    66,    -1,    -1,    -1,    -1,
    3795       71,    -1,    73,    74,    -1,    -1,    -1,   108,   109,   110,
    3796       -1,    82,    83,    -1,    -1,    -1,   117,   118,   119,   120,
    3797      121,   122,    10,    11,    12,    13,    14,    15,    16,    17,
    3798       18,    19,    20,    21,    22,    23,    24,    25,    26,   110,
    3799       -1,    29,    30,    31,    -1,    -1,    -1,   118,    36,    37,
    3800       38,    39,    10,    11,    12,    13,    14,    15,    16,    17,
    3801       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3802       -1,    29,    30,    31,    -1,    -1,    -1,    65,    66,    -1,
    3803       38,    39,    -1,    71,    -1,    73,    74,    75,    -1,    -1,
    3804       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3805       -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    66,    -1,
    3806       -1,    -1,    -1,    -1,    -1,    73,    74,    -1,    -1,    -1,
    3807      108,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3808      118,   119,   120,   121,   122,    10,    11,    12,    13,    14,
    3809       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3810       25,    26,   110,    -1,    29,    30,    31,    -1,    -1,    -1,
    3811      118,    36,    37,    38,    39,    -1,    -1,    -1,    -1,    -1,
    3812       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3813       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3814       65,    66,    29,    30,    31,    -1,    71,    -1,    73,    74,
    3815       75,    38,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3816       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3817       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3818       -1,    -1,    -1,   108,    -1,   110,    73,    74,    -1,    -1,
    3819       -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
    3820       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3821       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3822       -1,   108,    -1,   110,    36,    37,    38,    39,    -1,    -1,
    3823       -1,   118,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3824       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3825       24,    25,    26,    65,    66,    29,    30,    31,    -1,    71,
    3826       -1,    73,    74,    75,    38,    -1,    78,    79,    80,    81,
    3827       82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
    3828       -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    66,    -1,    -1,    -1,   108,    -1,   110,    73,
    3830       74,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    3831      122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3832       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3833       29,    30,    31,    -1,   108,    -1,   110,    36,    37,    38,
    3834       39,    -1,    -1,    -1,   118,    -1,    -1,    -1,    -1,    10,
    3835       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3836       21,    22,    23,    24,    25,    26,    65,    66,    29,    30,
    3837       31,    -1,    71,    -1,    73,    74,    75,    38,    39,    78,
    3838       79,    80,    81,    82,    83,    -1,    85,    86,    -1,    -1,
    3839       -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
    3840       -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,   108,
    3841       -1,   110,    73,    74,    -1,    -1,    -1,    -1,   117,   118,
    3842      119,   120,   121,   122,     3,     4,     5,     6,     7,     8,
    3843        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3844       19,    20,    21,    22,    23,    24,    25,    26,    -1,   110,
    3845       29,    30,    31,   114,    -1,    -1,    -1,   118,    -1,    38,
    3846       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3847       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3848       30,    31,    -1,    -1,    -1,    -1,    -1,    66,    38,    68,
    3849       -1,    70,    -1,    -1,    73,    74,    -1,    -1,    10,    11,
    3850       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3851       22,    23,    24,    25,    26,    -1,    66,    29,    30,    31,
    3852       -1,    71,    -1,    73,    74,    75,    38,    -1,    -1,    -1,
    3853       -1,    -1,    82,    83,   113,    -1,    10,    11,    12,    13,
    3854       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3855       24,    25,    26,    -1,    66,    29,    30,    31,   108,    71,
    3856      110,    73,    74,    75,    38,    -1,    -1,    -1,   118,    -1,
    3857       82,    83,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3858       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3859       26,    -1,    66,    29,    30,    31,   108,    -1,   110,    73,
    3860       74,    -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,
    3861       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3862       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3863       66,    -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,
    3864       -1,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
    3865       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3866       25,    26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,
    3867       73,    74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,
    3868       -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
    3869       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3870       -1,    66,    29,    30,    31,    -1,    -1,   110,    73,    74,
    3871       -1,    38,    -1,    -1,    -1,   118,    10,    11,    12,    13,
    3872       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3873       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    66,
    3874       -1,    -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,
    3875       -1,    -1,    -1,   118,    10,    11,    12,    13,    14,    15,
    3876       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3877       26,    -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,
    3878       74,    -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,
    3879       -1,   118,    10,    11,    12,    13,    14,    15,    16,    17,
    3880       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3881       66,    29,    30,    31,    -1,    -1,   110,    73,    74,    -1,
    3882       38,    -1,    -1,    -1,   118,    10,    11,    12,    13,    14,
    3883       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3884       25,    26,    -1,    -1,    29,    30,    31,    -1,    66,    -1,
    3885       -1,    -1,    -1,    38,   110,    73,    74,    -1,    -1,    -1,
    3886       -1,    -1,   118,    10,    11,    12,    13,    14,    15,    16,
    3887       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3888       -1,    66,    29,    30,    31,    -1,    -1,    -1,    73,    74,
    3889       -1,    38,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890      118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3891       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
    3892       -1,    -1,    -1,    -1,    -1,   110,    73,    74,    -1,    -1,
    3893       -1,    -1,    -1,   118,     4,     5,     6,     7,     8,     9,
    3894       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3895       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3896       30,    31,    -1,   110,    -1,    -1,    -1,    -1,    38,    -1,
    3897       -1,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    -1,    66,    -1,    68,    -1,
    3900       70,    -1,    -1,    73,    74,    36,    37,    -1,    39,    40,
    3901       -1,    42,    -1,    -1,    45,    46,    47,    48,    49,    50,
    3902       51,    52,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,
    3903       61,    -1,    63,    -1,    65,    -1,    -1,    -1,    -1,   109,
    3904       71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
    3905       81,    82,    83,    -1,    85,    86,    -1,    -1,    -1,    -1,
    3906       -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3907       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3908       -1,    -1,   113,    -1,    -1,    -1,   117,   118,   119,   120,
    3909      121,   122,    -1,    -1,    -1,    -1,   127,    -1,    36,    37,
    3910      131,    39,    40,    -1,    42,    -1,    -1,    45,    46,    47,
    3911       48,    49,    50,    51,    52,    -1,    -1,    -1,    56,    -1,
    3912       -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,    -1,
    3913       -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
    3914       78,    79,    80,    81,    82,    83,    -1,    85,    86,    -1,
    3915       -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
    3916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3917      108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,   117,
    3918      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,   127,
    3919       -1,    36,    37,   131,    39,    40,    -1,    42,    43,    44,
    3920       45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
    3921       55,    56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,
    3922       65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    3923       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3924       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3926       -1,    -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,
    3927       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3928       36,    37,   127,    39,    40,    -1,    42,    43,    44,    45,
    3929       46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
    3930       56,    -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,
    3931       -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
    3932       -1,    -1,    78,    79,    80,    81,    82,    83,    -1,    85,
    3933       86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,
    3934       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3935       -1,    -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,
    3936       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    36,
    3937       37,   127,    39,    40,    -1,    42,    -1,    -1,    45,    46,
    3938       47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    56,
    3939       -1,    -1,    -1,    60,    61,    -1,    63,    -1,    65,    -1,
    3940       -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
    3941       -1,    78,    79,    80,    81,    82,    83,    -1,    85,    86,
    3942       -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
    3943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3944       -1,   108,    -1,   110,    -1,    -1,   113,    -1,    -1,    -1,
    3945      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3946      127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3947       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3948       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3949       -1,    -1,    -1,    -1,    -1,    38,    -1,    36,    37,    -1,
    3950       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3951       -1,    -1,    -1,    -1,    -1,    -1,    36,    37,    -1,    39,
    3952       -1,    -1,    -1,    66,    -1,    68,    65,    70,    -1,    -1,
    3953       73,    74,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,
    3954       79,    80,    81,    82,    83,    65,    85,    86,    -1,    -1,
    3955       -1,    71,    95,    -1,    93,    75,    -1,    -1,    78,    79,
    3956       80,    81,    82,    83,    -1,    85,    86,    -1,    -1,   108,
    3957       -1,   110,    -1,    93,    36,    37,    -1,    39,   117,   118,
    3958      119,   120,   121,   122,    -1,    -1,    -1,    -1,   108,    -1,
    3959      110,    -1,    -1,    36,    37,    -1,    39,   117,   118,   119,
    3960      120,   121,   122,    65,    -1,    -1,    -1,    -1,    -1,    71,
    3961       -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,    81,
    3962       82,    83,    65,    85,    86,    -1,    -1,    -1,    71,    -1,
    3963       -1,    93,    75,    -1,    -1,    78,    79,    80,    81,    82,
    3964       83,    -1,    85,    86,    -1,    -1,   108,    -1,   110,    -1,
    3965       93,    36,    37,    -1,    39,   117,   118,   119,   120,   121,
    3966      122,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
    3967       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3968       65,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
    3969       75,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
    3970       85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,
    3971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3972       -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3973       -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
    3974        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3975       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3976       26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3977       -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3980       66,    -1,    68,    -1,    70,    71,    -1,    73,    74,    75,
    3981       -1,    -1,    -1,    -1,    -1,    -1,    82,    83,     3,     4,
    3982        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3983       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3984       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3985       -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3987       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3988       -1,    66,    -1,    68,    -1,    70,    -1,    -1,    73,    74,
    3989        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3990       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3991       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3992       -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
    3993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3994       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3995       -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,    -1,
    3996       73,    74,     4,     5,     6,     7,     8,     9,    10,    11,
    3997       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3998       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3999       -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,
    4000       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4001       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4002       -1,    -1,    -1,    -1,    66,    -1,    68,    -1,    70,    -1,
    4003       -1,    73,    74
     4089      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75
    40044090};
    40054091
     
    40104096       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    40114097      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4012       22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    4013       38,    39,    63,    66,    68,    70,    71,    73,    74,    75,
    4014       82,    83,   108,   110,   118,   136,   139,   196,   210,   211,
     4098      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
     4099      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
     4100      76,    83,    84,   109,   111,   119,   137,   140,   197,   211,
    40154101     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    4016      222,   223,   224,   225,   226,   227,   229,   230,   231,   232,
    4017      233,   234,   235,   236,   238,   239,   240,   241,   242,   243,
    4018      244,   252,   253,   279,   280,   281,   289,   292,   298,   299,
    4019      301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
    4020      324,   325,   326,   346,   363,   364,   365,   366,    71,   118,
    4021      138,   139,   213,   215,   223,   225,   235,   239,   241,   280,
    4022       81,   108,   308,   309,   310,   308,   308,    71,    73,    74,
    4023       75,   137,   138,   269,   270,   290,   291,    73,    74,   270,
    4024      108,   301,    11,   197,   108,   118,   315,   320,   321,   322,
    4025      324,   325,   326,   111,   133,   110,   216,   223,   225,   319,
    4026      323,   362,   363,   366,   367,   134,   106,   130,   273,   113,
    4027      134,   171,    73,    74,   136,   268,   134,   134,   134,   115,
    4028      134,    73,    74,   108,   118,   305,   314,   315,   316,   317,
    4029      318,   319,   323,   327,   328,   329,   330,   331,   337,     3,
    4030       27,    77,   237,     3,     5,    73,   110,   118,   215,   226,
    4031      230,   233,   242,   281,   319,   323,   366,   213,   215,   225,
    4032      235,   239,   241,   280,   319,   323,    32,   231,   231,   226,
    4033      233,   134,   231,   226,   231,   226,    74,   108,   113,   270,
    4034      281,   113,   270,   231,   226,   115,   134,   134,     0,   133,
    4035      108,   171,   308,   308,   133,   110,   223,   225,   364,   268,
    4036      268,   225,   130,   108,   118,   305,   315,   319,   110,   118,
    4037      366,   302,   228,   310,   108,   286,   108,   108,    50,   108,
    4038       36,    37,    39,    65,    71,    75,    78,    79,    80,    81,
    4039       85,    86,    93,   108,   110,   117,   118,   119,   120,   121,
    4040      122,   135,   139,   140,   141,   142,   147,   148,   149,   150,
     4102     222,   223,   224,   225,   226,   227,   228,   230,   231,   232,
     4103     233,   234,   235,   236,   237,   239,   240,   241,   242,   243,
     4104     244,   246,   254,   255,   282,   283,   284,   292,   295,   301,
     4105     302,   304,   306,   307,   313,   318,   322,   323,   324,   325,
     4106     326,   327,   328,   329,   349,   366,   367,   368,   369,    72,
     4107     119,   139,   140,   214,   216,   224,   226,   236,   240,   242,
     4108     283,    82,   109,   311,   312,   313,   311,   311,    72,    74,
     4109      75,    76,   138,   139,   272,   273,   293,   294,    74,    75,
     4110     273,   109,   304,    11,   198,   109,   119,   318,   323,   324,
     4111     325,   327,   328,   329,   112,   134,   111,   217,   224,   226,
     4112     322,   326,   365,   366,   369,   370,   135,   107,   131,   276,
     4113     114,   135,   172,    74,    75,   137,   271,   135,   135,   135,
     4114     116,   135,    74,    75,   109,   119,   308,   317,   318,   319,
     4115     320,   321,   322,   326,   330,   331,   332,   333,   334,   340,
     4116       3,    28,    78,   238,     3,     5,    74,   111,   119,   216,
     4117     227,   231,   234,   243,   284,   322,   326,   369,   214,   216,
     4118     226,   236,   240,   242,   283,   322,   326,    33,   232,   232,
     4119     227,   234,   135,   232,   227,   232,   227,    75,   109,   114,
     4120     273,   284,   114,   273,   232,   227,   116,   135,   135,     0,
     4121     134,   109,   172,   311,   311,   134,   111,   224,   226,   367,
     4122     271,   271,   226,   131,   109,   119,   308,   318,   322,   111,
     4123     119,   369,   305,   229,   313,   109,   289,   109,   109,    51,
     4124     109,    37,    38,    40,    66,    72,    76,    79,    80,    81,
     4125      82,    86,    87,    94,   109,   111,   118,   119,   120,   121,
     4126     122,   123,   136,   140,   141,   142,   143,   148,   149,   150,
    40414127     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
    4042      162,   164,   223,   272,   288,   362,   367,   225,   109,   109,
    4043      109,   109,   109,   109,   109,    73,    74,   110,   223,   268,
    4044      346,   364,   110,   118,   162,   215,   216,   222,   225,   229,
    4045      230,   235,   238,   239,   241,   258,   259,   263,   264,   265,
    4046      266,   280,   346,   358,   359,   360,   361,   366,   367,   111,
    4047      108,   319,   323,   366,   108,   115,   131,   110,   113,   118,
    4048      162,   274,   274,   114,   133,   115,   131,   108,   115,   131,
    4049      115,   131,   115,   131,   308,   131,   315,   316,   317,   318,
    4050      328,   329,   330,   331,   225,   314,   327,    63,   307,   110,
    4051      308,   345,   346,   308,   308,   171,   133,   108,   308,   345,
    4052      308,   308,   225,   305,   108,   108,   224,   225,   223,   225,
    4053      111,   133,   223,   362,   367,   171,   133,   268,   273,   215,
    4054      230,   319,   323,   171,   133,   290,   225,   235,   131,   225,
    4055      225,   288,    39,   110,   223,   245,   246,   247,   248,   362,
    4056      366,   113,   254,   270,   113,   225,   290,   131,   131,   301,
    4057      133,   138,   267,     3,   134,   205,   206,   220,   222,   225,
    4058      133,   307,   108,   307,   162,   315,   225,   108,   133,   268,
    4059      113,    32,    33,    34,   223,   282,   283,   285,   133,   128,
    4060      130,   287,   133,   226,   232,   233,   268,   311,   312,   313,
    4061      108,   140,   108,   147,   108,   147,   149,   108,   147,   108,
    4062      108,   147,   147,   138,   110,   162,   167,   171,   223,   271,
    4063      362,   111,   133,   149,   149,    81,    84,    85,    86,   108,
    4064      110,   112,   113,    96,    97,    98,    99,   100,   101,   102,
    4065      103,   104,   105,   130,   166,   149,   118,   123,   124,   120,
    4066      121,    87,    88,    89,    90,   125,   126,    91,    92,   119,
    4067      127,   128,    93,    94,   129,   130,   369,   108,   118,   341,
    4068      342,   343,   344,   345,   109,   115,   108,   345,   346,   108,
    4069      345,   346,   133,   108,   223,   364,   111,   133,   110,   118,
    4070      134,   223,   225,   357,   358,   366,   367,   134,   108,   110,
    4071      118,   315,   332,   333,   334,   335,   336,   337,   338,   339,
    4072      340,   346,   347,   348,   349,   350,   351,   352,   118,   366,
    4073      225,   134,   134,   118,   223,   225,   359,   268,   223,   346,
    4074      359,   268,   108,   133,   133,   133,   111,   133,    71,    79,
    4075      110,   112,   139,   270,   274,   275,   276,   277,   278,   133,
    4076      133,   133,   133,   133,   133,   305,   109,   109,   109,   109,
    4077      109,   109,   109,   314,   327,   108,   273,   111,   205,   133,
    4078      305,   167,   272,   167,   272,   305,   110,   205,   307,   171,
    4079      133,   205,   109,   247,   248,   111,   133,   108,   116,   118,
    4080      249,   251,   314,   315,   327,   345,   353,   354,   355,   356,
    4081      114,   246,   115,   131,   115,   131,   270,   245,   115,   368,
    4082      130,   255,   254,   225,   260,   261,   262,   265,   266,   109,
    4083      115,   171,   133,   118,   162,   133,   222,   225,   259,   358,
    4084      366,   299,   300,   108,   118,   332,   109,   115,   369,   270,
    4085      282,   108,   113,   270,   272,   282,   109,   115,   108,   140,
    4086      109,   116,   271,   271,   271,   110,   138,   144,   162,   272,
    4087      271,   111,   133,   109,   115,   109,   108,   118,   353,   109,
    4088      115,   162,   110,   138,   110,   143,   144,   133,   110,   138,
    4089      143,   162,   162,   149,   149,   149,   150,   150,   151,   151,
    4090      152,   152,   152,   152,   153,   153,   154,   155,   156,   157,
    4091      158,   116,   167,   162,   133,   342,   343,   344,   225,   341,
    4092      308,   308,   162,   272,   133,   267,   118,   133,   223,   346,
    4093      359,   225,   229,   111,   133,   111,   366,   111,   108,   133,
    4094      315,   333,   334,   335,   338,   348,   349,   350,   111,   133,
    4095      225,   332,   336,   347,   108,   308,   351,   369,   308,   308,
    4096      369,   108,   308,   351,   308,   308,   308,   308,   346,   223,
    4097      357,   367,   268,   111,   115,   111,   115,   369,   223,   359,
    4098      369,   256,   257,   258,   259,   256,   256,   268,   162,   133,
    4099      110,   270,   116,   115,   368,   274,    79,   110,   116,   278,
    4100       28,   207,   208,   268,   256,   138,   305,   138,   307,   108,
    4101      345,   346,   108,   345,   346,   140,   346,   171,   260,   109,
    4102      109,   109,   109,   111,   171,   205,   171,   113,   131,   131,
    4103      110,   315,   354,   355,   356,   160,   161,   225,   353,   250,
    4104      251,   250,   308,   308,   270,   308,   114,   270,   114,   161,
    4105      368,   134,   134,   138,   220,   134,   134,   256,   108,   118,
    4106      366,   134,   114,   225,   283,   284,   134,   133,   133,   108,
    4107      134,   109,   312,   167,   168,   116,   131,   110,   140,   198,
    4108      199,   200,   109,   115,   109,   133,   116,   109,   109,   109,
    4109      162,   225,   113,   149,   164,   162,   163,   165,   115,   134,
    4110      133,   133,   109,   115,   162,   133,   114,   160,   116,   260,
    4111      109,   109,   109,   341,   260,   109,   256,   223,   359,   110,
    4112      118,   162,   162,   225,   338,   260,   109,   109,   109,   109,
    4113      109,   109,   109,     7,   225,   332,   336,   347,   133,   133,
    4114      369,   133,   133,   109,   134,   134,   134,   134,   273,   134,
    4115      160,   161,   162,   306,   133,   274,   276,   114,   133,   209,
    4116      270,    39,    40,    42,    45,    46,    47,    48,    49,    50,
    4117       51,    52,    56,    60,    61,   110,   127,   138,   168,   169,
    4118      170,   171,   172,   173,   175,   176,   188,   190,   191,   196,
    4119      210,   304,    28,   134,   130,   273,   133,   133,   109,   134,
    4120      171,   245,   111,   109,   109,   109,   353,   249,   255,   114,
    4121      109,   115,   111,   111,   134,   225,   115,   369,   286,   109,
    4122      282,   213,   215,   223,   294,   295,   296,   297,   288,   109,
    4123      109,   116,   161,   108,   109,   116,   115,   138,   162,   162,
    4124      275,   115,   134,   165,   111,   138,   145,   146,   162,   144,
    4125      134,   145,   160,   164,   134,   108,   345,   346,   134,   134,
    4126      133,   134,   134,   134,   162,   109,   134,   108,   345,   346,
    4127      108,   351,   108,   351,   346,   224,     7,   118,   134,   162,
    4128      260,   260,   259,   263,   263,   264,   115,   115,   109,   109,
    4129      111,    95,   122,   134,   134,   145,   274,   162,   115,   131,
    4130      210,   214,   225,   229,   108,   108,   169,   108,   108,   131,
    4131      138,   131,   138,   118,   138,   168,   108,   171,   163,   163,
    4132      111,   142,   116,   131,   134,   133,   134,   209,   109,   162,
    4133      260,   260,   308,   109,   114,   108,   345,   346,   133,   109,
    4134      133,   134,   305,   114,   133,   134,   134,   109,   113,   198,
    4135      111,   161,   131,   198,   200,   109,   115,   134,   368,   163,
    4136      111,   134,    84,   112,   115,   134,   134,   111,   134,   109,
    4137      133,   109,   109,   111,   111,   111,   134,   109,   133,   133,
    4138      133,   162,   162,   134,   111,   134,   134,   134,   134,   133,
    4139      133,   161,   161,   111,   111,   134,   134,   270,   225,   167,
    4140      167,    46,   167,   133,   131,   131,   167,   131,   131,   167,
    4141       57,    58,    59,   192,   193,   194,   131,    62,   131,   113,
    4142      308,   173,   114,   131,   134,   134,   133,    95,   265,   266,
    4143      109,   295,   115,   131,   115,   131,   114,   293,   116,   140,
    4144      109,   109,   116,   165,   111,   114,   111,   110,   146,   110,
    4145      146,   146,   111,   111,   111,   260,   111,   260,   260,   260,
    4146      134,   134,   111,   111,   109,   109,   111,   115,    95,   259,
    4147       95,   134,   111,   111,   109,   109,   108,   109,   168,   189,
    4148      210,   131,   109,   108,   108,   171,   194,    57,    58,   162,
    4149      143,   169,   109,   109,   260,   113,   133,   133,   294,   140,
    4150      201,   108,   131,   201,   134,   116,   133,   133,   134,   134,
    4151      134,   134,   111,   111,   133,   134,   111,   169,    43,    44,
    4152      113,   179,   180,   181,   167,   169,   134,   109,   168,   113,
    4153      181,    95,   133,    95,   133,   108,   108,   131,   114,   134,
    4154      133,   268,   305,   114,   115,   116,   161,   109,   111,   162,
    4155      145,   145,   109,   109,   109,   109,   263,    41,   161,   177,
    4156      178,   306,   116,   133,   169,   179,   109,   131,   169,   131,
    4157      133,   109,   133,   109,   133,    95,   133,    95,   133,   131,
    4158      109,   294,   140,   138,   202,   109,   131,   116,   134,   134,
    4159      169,    95,   115,   116,   134,   203,   204,   210,   131,   168,
    4160      168,   203,   171,   195,   223,   362,   171,   195,   109,   133,
    4161      109,   133,   114,   109,   115,   162,   111,   111,   161,   177,
    4162      180,   182,   183,   133,   131,   180,   184,   185,   134,   108,
    4163      118,   305,   353,   138,   134,   171,   195,   171,   195,   108,
    4164      131,   138,   169,   174,   114,   180,   210,   168,    55,   174,
    4165      187,   114,   180,   109,   225,   109,   134,   134,   288,   169,
    4166      174,   131,   186,   187,   174,   187,   171,   171,   109,   109,
    4167      109,   186,   134,   134,   171,   171,   134,   134
     4128     161,   163,   165,   224,   275,   291,   365,   370,   226,   110,
     4129     110,   110,   110,   110,   110,   110,    74,    75,   111,   224,
     4130     271,   349,   367,   111,   119,   163,   216,   217,   223,   226,
     4131     230,   231,   236,   239,   240,   242,   261,   262,   266,   267,
     4132     268,   269,   283,   349,   361,   362,   363,   364,   369,   370,
     4133     112,   109,   322,   326,   369,   109,   116,   132,   111,   114,
     4134     119,   163,   277,   277,   115,   134,   116,   132,   109,   116,
     4135     132,   116,   132,   116,   132,   311,   132,   318,   319,   320,
     4136     321,   331,   332,   333,   334,   226,   317,   330,    64,   310,
     4137     111,   311,   348,   349,   311,   311,   172,   134,   109,   311,
     4138     348,   311,   311,   226,   308,   109,   109,   225,   226,   224,
     4139     226,   112,   134,   224,   365,   370,   172,   134,   271,   276,
     4140     216,   231,   322,   326,   172,   134,   293,   226,   236,   132,
     4141     226,   226,   291,    40,   111,   224,   247,   248,   249,   250,
     4142     365,   369,   245,   257,   273,   256,   226,   293,   132,   132,
     4143     304,   134,   139,   270,     3,   135,   206,   207,   221,   223,
     4144     226,   134,   310,   109,   310,   163,   318,   226,   109,   134,
     4145     271,   114,    33,    34,    35,   224,   285,   286,   288,   134,
     4146     129,   131,   290,   134,   227,   233,   234,   271,   314,   315,
     4147     316,   109,   141,   109,   148,   109,   148,   150,   109,   148,
     4148     109,   109,   148,   148,   139,   111,   163,   168,   172,   224,
     4149     274,   365,   112,   134,   150,   150,    82,    85,    86,    87,
     4150     109,   111,   113,   114,    97,    98,    99,   100,   101,   102,
     4151     103,   104,   105,   106,   131,   167,   150,   119,   124,   125,
     4152     121,   122,    88,    89,    90,    91,   126,   127,    92,    93,
     4153     120,   128,   129,    94,    95,   130,   131,   372,   109,   119,
     4154     344,   345,   346,   347,   348,   110,   116,   109,   348,   349,
     4155     109,   348,   349,   134,   109,   224,   367,   112,   134,   111,
     4156     119,   135,   224,   226,   360,   361,   369,   370,   135,   109,
     4157     111,   119,   318,   335,   336,   337,   338,   339,   340,   341,
     4158     342,   343,   349,   350,   351,   352,   353,   354,   355,   119,
     4159     369,   226,   135,   135,   119,   224,   226,   362,   271,   224,
     4160     349,   362,   271,   109,   134,   134,   134,   112,   134,    72,
     4161      80,   111,   113,   140,   273,   277,   278,   279,   280,   281,
     4162     134,   134,   134,   134,   134,   134,   308,   110,   110,   110,
     4163     110,   110,   110,   110,   317,   330,   109,   276,   112,   206,
     4164     134,   308,   168,   275,   168,   275,   308,   111,   206,   310,
     4165     172,   134,   206,   110,   249,   250,   112,   134,   109,   117,
     4166     119,   251,   253,   317,   318,   330,   348,   356,   357,   358,
     4167     359,   115,   248,   116,   132,   116,   132,   273,   114,   116,
     4168     371,   131,   258,   114,   226,   263,   264,   265,   268,   269,
     4169     110,   116,   172,   134,   119,   163,   134,   223,   226,   262,
     4170     361,   369,   302,   303,   109,   119,   335,   110,   116,   372,
     4171     273,   285,   109,   114,   273,   275,   285,   110,   116,   109,
     4172     141,   110,   117,   274,   274,   274,   111,   139,   145,   163,
     4173     275,   274,   112,   134,   110,   116,   110,   109,   119,   356,
     4174     110,   116,   163,   111,   139,   111,   144,   145,   134,   111,
     4175     139,   144,   163,   163,   150,   150,   150,   151,   151,   152,
     4176     152,   153,   153,   153,   153,   154,   154,   155,   156,   157,
     4177     158,   159,   117,   168,   163,   134,   345,   346,   347,   226,
     4178     344,   311,   311,   163,   275,   134,   270,   119,   134,   224,
     4179     349,   362,   226,   230,   112,   134,   112,   369,   112,   109,
     4180     134,   318,   336,   337,   338,   341,   351,   352,   353,   112,
     4181     134,   226,   335,   339,   350,   109,   311,   354,   372,   311,
     4182     311,   372,   109,   311,   354,   311,   311,   311,   311,   349,
     4183     224,   360,   370,   271,   112,   116,   112,   116,   372,   224,
     4184     362,   372,   259,   260,   261,   262,   259,   259,   271,   163,
     4185     134,   111,   273,   117,   116,   371,   277,    80,   111,   117,
     4186     281,    29,   208,   209,   271,   259,   139,   308,   139,   310,
     4187     109,   348,   349,   109,   348,   349,   141,   349,   172,   263,
     4188     110,   110,   110,   110,   112,   172,   206,   172,   114,   132,
     4189     132,   111,   318,   357,   358,   359,   161,   162,   226,   356,
     4190     252,   253,   252,   311,   311,   273,   311,   247,   273,   115,
     4191     162,   257,   135,   135,   139,   221,   135,   135,   259,   109,
     4192     119,   369,   135,   115,   226,   286,   287,   135,   134,   134,
     4193     109,   135,   110,   315,   168,   169,   117,   132,   111,   141,
     4194     199,   200,   201,   110,   116,   110,   134,   117,   110,   110,
     4195     110,   163,   226,   114,   150,   165,   163,   164,   166,   116,
     4196     135,   134,   134,   110,   116,   163,   134,   115,   161,   117,
     4197     263,   110,   110,   110,   344,   263,   110,   259,   224,   362,
     4198     111,   119,   163,   163,   226,   341,   263,   110,   110,   110,
     4199     110,   110,   110,   110,     7,   226,   335,   339,   350,   134,
     4200     134,   372,   134,   134,   110,   135,   135,   135,   135,   276,
     4201     135,   161,   162,   163,   309,   134,   277,   279,   115,   134,
     4202     210,   273,    40,    41,    43,    46,    47,    48,    49,    50,
     4203      51,    52,    53,    57,    61,    62,   111,   128,   139,   169,
     4204     170,   171,   172,   173,   174,   176,   177,   189,   191,   192,
     4205     197,   211,   307,    29,   135,   131,   276,   134,   134,   110,
     4206     135,   172,   247,   112,   110,   110,   110,   356,   251,   115,
     4207     258,   371,   110,   116,   112,   112,   135,   226,   116,   372,
     4208     289,   110,   285,   214,   216,   224,   297,   298,   299,   300,
     4209     291,   110,   110,   117,   162,   109,   110,   117,   116,   139,
     4210     163,   163,   278,   116,   135,   166,   112,   139,   146,   147,
     4211     163,   145,   135,   146,   161,   165,   135,   109,   348,   349,
     4212     135,   135,   134,   135,   135,   135,   163,   110,   135,   109,
     4213     348,   349,   109,   354,   109,   354,   349,   225,     7,   119,
     4214     135,   163,   263,   263,   262,   266,   266,   267,   116,   116,
     4215     110,   110,   112,    96,   123,   135,   135,   146,   277,   163,
     4216     116,   132,   211,   215,   226,   230,   109,   109,   170,   109,
     4217     109,   132,   139,   132,   139,   119,   139,   169,   109,   172,
     4218     164,   164,   112,   143,   117,   132,   135,   134,   135,   210,
     4219     110,   163,   263,   263,   311,   110,   115,   109,   348,   349,
     4220     115,   134,   110,   134,   135,   308,   115,   134,   135,   135,
     4221     110,   114,   199,   112,   162,   132,   199,   201,   110,   116,
     4222     135,   371,   164,   112,   135,    85,   113,   116,   135,   135,
     4223     112,   135,   110,   134,   110,   110,   112,   112,   112,   135,
     4224     110,   134,   134,   134,   163,   163,   135,   112,   135,   135,
     4225     135,   135,   134,   134,   162,   162,   112,   112,   135,   135,
     4226     273,   226,   168,   168,    47,   168,   134,   132,   132,   168,
     4227     132,   132,   168,    58,    59,    60,   193,   194,   195,   132,
     4228      63,   132,   114,   311,   174,   115,   132,   135,   135,   134,
     4229      96,   268,   269,   110,   298,   116,   132,   116,   132,   115,
     4230     296,   117,   141,   110,   110,   117,   166,   112,   115,   112,
     4231     111,   147,   111,   147,   147,   112,   112,   112,   263,   112,
     4232     263,   263,   263,   135,   135,   112,   112,   110,   110,   112,
     4233     116,    96,   262,    96,   135,   112,   112,   110,   110,   109,
     4234     110,   169,   190,   211,   132,   110,   109,   109,   172,   195,
     4235      58,    59,   163,   144,   170,   110,   110,   263,   114,   134,
     4236     134,   297,   141,   202,   109,   132,   202,   135,   117,   134,
     4237     134,   135,   135,   135,   135,   112,   112,   134,   135,   112,
     4238     170,    44,    45,   114,   180,   181,   182,   168,   170,   135,
     4239     110,   169,   114,   182,    96,   134,    96,   134,   109,   109,
     4240     132,   115,   135,   134,   271,   308,   115,   116,   117,   162,
     4241     110,   112,   163,   146,   146,   110,   110,   110,   110,   266,
     4242      42,   162,   178,   179,   309,   117,   134,   170,   180,   110,
     4243     132,   170,   132,   134,   110,   134,   110,   134,    96,   134,
     4244      96,   134,   132,   110,   297,   141,   139,   203,   110,   132,
     4245     117,   135,   135,   170,    96,   116,   117,   135,   204,   205,
     4246     211,   132,   169,   169,   204,   172,   196,   224,   365,   172,
     4247     196,   110,   134,   110,   134,   115,   110,   116,   163,   112,
     4248     112,   162,   178,   181,   183,   184,   134,   132,   181,   185,
     4249     186,   135,   109,   119,   308,   356,   139,   135,   172,   196,
     4250     172,   196,   109,   132,   139,   170,   175,   115,   181,   211,
     4251     169,    56,   175,   188,   115,   181,   110,   226,   110,   135,
     4252     135,   291,   170,   175,   132,   187,   188,   175,   188,   172,
     4253     172,   110,   110,   110,   187,   135,   135,   172,   172,   135,
     4254     135
    41684255};
    41694256
     
    50025089
    50035090/* Line 1806 of yacc.c  */
    5004 #line 290 "parser.yy"
     5091#line 292 "parser.yy"
    50055092    {
    50065093                        typedefTable.enterScope();
     
    50115098
    50125099/* Line 1806 of yacc.c  */
    5013 #line 296 "parser.yy"
     5100#line 298 "parser.yy"
    50145101    {
    50155102                        typedefTable.leaveScope();
     
    50205107
    50215108/* Line 1806 of yacc.c  */
    5022 #line 305 "parser.yy"
     5109#line 307 "parser.yy"
    50235110    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    50245111    break;
     
    50275114
    50285115/* Line 1806 of yacc.c  */
    5029 #line 306 "parser.yy"
     5116#line 308 "parser.yy"
    50305117    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    50315118    break;
     
    50345121
    50355122/* Line 1806 of yacc.c  */
    5036 #line 307 "parser.yy"
     5123#line 309 "parser.yy"
    50375124    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50385125    break;
     
    50415128
    50425129/* Line 1806 of yacc.c  */
    5043 #line 332 "parser.yy"
     5130#line 334 "parser.yy"
    50445131    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    50455132    break;
     
    50485135
    50495136/* Line 1806 of yacc.c  */
    5050 #line 333 "parser.yy"
     5137#line 335 "parser.yy"
    50515138    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    50525139    break;
    50535140
    50545141  case 18:
    5055 
    5056 /* Line 1806 of yacc.c  */
    5057 #line 340 "parser.yy"
    5058     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5059     break;
    5060 
    5061   case 19:
    50625142
    50635143/* Line 1806 of yacc.c  */
     
    50665146    break;
    50675147
     5148  case 19:
     5149
     5150/* Line 1806 of yacc.c  */
     5151#line 344 "parser.yy"
     5152    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5153    break;
     5154
    50685155  case 20:
    50695156
    50705157/* Line 1806 of yacc.c  */
    5071 #line 344 "parser.yy"
     5158#line 346 "parser.yy"
    50725159    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50735160    break;
     
    50765163
    50775164/* Line 1806 of yacc.c  */
    5078 #line 346 "parser.yy"
     5165#line 348 "parser.yy"
    50795166    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    50805167    break;
     
    50835170
    50845171/* Line 1806 of yacc.c  */
    5085 #line 356 "parser.yy"
     5172#line 358 "parser.yy"
    50865173    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    50875174    break;
     
    50905177
    50915178/* Line 1806 of yacc.c  */
    5092 #line 358 "parser.yy"
     5179#line 360 "parser.yy"
    50935180    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    50945181    break;
     
    50975184
    50985185/* Line 1806 of yacc.c  */
    5099 #line 362 "parser.yy"
     5186#line 364 "parser.yy"
    51005187    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51015188    break;
     
    51045191
    51055192/* Line 1806 of yacc.c  */
    5106 #line 365 "parser.yy"
     5193#line 367 "parser.yy"
    51075194    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51085195    break;
     
    51115198
    51125199/* Line 1806 of yacc.c  */
    5113 #line 368 "parser.yy"
     5200#line 370 "parser.yy"
    51145201    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    51155202    break;
     
    51185205
    51195206/* Line 1806 of yacc.c  */
    5120 #line 370 "parser.yy"
     5207#line 372 "parser.yy"
    51215208    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    51225209    break;
     
    51255212
    51265213/* Line 1806 of yacc.c  */
    5127 #line 372 "parser.yy"
    5128     { (yyval.en) = 0; }
     5214#line 374 "parser.yy"
     5215    { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
    51295216    break;
    51305217
     
    51325219
    51335220/* Line 1806 of yacc.c  */
    5134 #line 374 "parser.yy"
     5221#line 376 "parser.yy"
    51355222    {
    51365223                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    51425229
    51435230/* Line 1806 of yacc.c  */
    5144 #line 383 "parser.yy"
     5231#line 385 "parser.yy"
    51455232    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    51465233    break;
     
    51495236
    51505237/* Line 1806 of yacc.c  */
    5151 #line 388 "parser.yy"
     5238#line 390 "parser.yy"
    51525239    { (yyval.en) = 0; }
    51535240    break;
     
    51565243
    51575244/* Line 1806 of yacc.c  */
    5158 #line 391 "parser.yy"
     5245#line 393 "parser.yy"
    51595246    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    51605247    break;
     
    51635250
    51645251/* Line 1806 of yacc.c  */
    5165 #line 396 "parser.yy"
     5252#line 398 "parser.yy"
    51665253    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    51675254    break;
     
    51705257
    51715258/* Line 1806 of yacc.c  */
    5172 #line 398 "parser.yy"
     5259#line 400 "parser.yy"
    51735260    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    51745261    break;
     
    51775264
    51785265/* Line 1806 of yacc.c  */
    5179 #line 403 "parser.yy"
     5266#line 405 "parser.yy"
    51805267    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    51815268    break;
     
    51845271
    51855272/* Line 1806 of yacc.c  */
    5186 #line 408 "parser.yy"
     5273#line 410 "parser.yy"
    51875274    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51885275    break;
     
    51915278
    51925279/* Line 1806 of yacc.c  */
    5193 #line 412 "parser.yy"
     5280#line 414 "parser.yy"
    51945281    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    51955282    break;
     
    51985285
    51995286/* Line 1806 of yacc.c  */
    5200 #line 414 "parser.yy"
     5287#line 416 "parser.yy"
    52015288    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52025289    break;
     
    52055292
    52065293/* Line 1806 of yacc.c  */
    5207 #line 416 "parser.yy"
     5294#line 418 "parser.yy"
    52085295    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52095296    break;
     
    52125299
    52135300/* Line 1806 of yacc.c  */
    5214 #line 418 "parser.yy"
     5301#line 420 "parser.yy"
    52155302    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52165303    break;
    52175304
    52185305  case 48:
    5219 
    5220 /* Line 1806 of yacc.c  */
    5221 #line 426 "parser.yy"
    5222     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5223     break;
    5224 
    5225   case 49:
    52265306
    52275307/* Line 1806 of yacc.c  */
     
    52305310    break;
    52315311
     5312  case 49:
     5313
     5314/* Line 1806 of yacc.c  */
     5315#line 430 "parser.yy"
     5316    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5317    break;
     5318
    52325319  case 50:
    52335320
    52345321/* Line 1806 of yacc.c  */
    5235 #line 430 "parser.yy"
     5322#line 432 "parser.yy"
    52365323    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52375324    break;
     
    52405327
    52415328/* Line 1806 of yacc.c  */
    5242 #line 432 "parser.yy"
     5329#line 434 "parser.yy"
    52435330    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52445331    break;
     
    52475334
    52485335/* Line 1806 of yacc.c  */
    5249 #line 434 "parser.yy"
     5336#line 436 "parser.yy"
    52505337    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    52515338    break;
     
    52545341
    52555342/* Line 1806 of yacc.c  */
    5256 #line 436 "parser.yy"
     5343#line 438 "parser.yy"
    52575344    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    52585345    break;
     
    52615348
    52625349/* Line 1806 of yacc.c  */
    5263 #line 438 "parser.yy"
     5350#line 440 "parser.yy"
    52645351    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    52655352    break;
     
    52685355
    52695356/* Line 1806 of yacc.c  */
    5270 #line 440 "parser.yy"
     5357#line 442 "parser.yy"
    52715358    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    52725359    break;
     
    52755362
    52765363/* Line 1806 of yacc.c  */
    5277 #line 446 "parser.yy"
     5364#line 448 "parser.yy"
    52785365    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    52795366    break;
     
    52825369
    52835370/* Line 1806 of yacc.c  */
    5284 #line 448 "parser.yy"
     5371#line 450 "parser.yy"
    52855372    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52865373    break;
     
    52895376
    52905377/* Line 1806 of yacc.c  */
    5291 #line 450 "parser.yy"
     5378#line 452 "parser.yy"
    52925379    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    52935380    break;
     
    52965383
    52975384/* Line 1806 of yacc.c  */
    5298 #line 452 "parser.yy"
     5385#line 454 "parser.yy"
    52995386    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    53005387    break;
     
    53035390
    53045391/* Line 1806 of yacc.c  */
    5305 #line 454 "parser.yy"
     5392#line 456 "parser.yy"
    53065393    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53075394    break;
     
    53105397
    53115398/* Line 1806 of yacc.c  */
    5312 #line 456 "parser.yy"
     5399#line 458 "parser.yy"
    53135400    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    53145401    break;
     
    53175404
    53185405/* Line 1806 of yacc.c  */
    5319 #line 458 "parser.yy"
     5406#line 460 "parser.yy"
    53205407    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    53215408    break;
     
    53245411
    53255412/* Line 1806 of yacc.c  */
    5326 #line 460 "parser.yy"
     5413#line 462 "parser.yy"
    53275414    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    53285415    break;
     
    53315418
    53325419/* Line 1806 of yacc.c  */
    5333 #line 462 "parser.yy"
     5420#line 464 "parser.yy"
    53345421    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53355422    break;
     
    53385425
    53395426/* Line 1806 of yacc.c  */
    5340 #line 466 "parser.yy"
     5427#line 468 "parser.yy"
    53415428    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53425429    break;
     
    53455432
    53465433/* Line 1806 of yacc.c  */
    5347 #line 467 "parser.yy"
     5434#line 469 "parser.yy"
    53485435    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    53495436    break;
     
    53525439
    53535440/* Line 1806 of yacc.c  */
    5354 #line 468 "parser.yy"
     5441#line 470 "parser.yy"
    53555442    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    53565443    break;
     
    53595446
    53605447/* Line 1806 of yacc.c  */
    5361 #line 469 "parser.yy"
     5448#line 471 "parser.yy"
    53625449    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    53635450    break;
    53645451
    53655452  case 70:
    5366 
    5367 /* Line 1806 of yacc.c  */
    5368 #line 475 "parser.yy"
    5369     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5370     break;
    5371 
    5372   case 71:
    53735453
    53745454/* Line 1806 of yacc.c  */
     
    53775457    break;
    53785458
     5459  case 71:
     5460
     5461/* Line 1806 of yacc.c  */
     5462#line 479 "parser.yy"
     5463    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5464    break;
     5465
    53795466  case 73:
    53805467
    53815468/* Line 1806 of yacc.c  */
    5382 #line 483 "parser.yy"
     5469#line 485 "parser.yy"
    53835470    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53845471    break;
     
    53875474
    53885475/* Line 1806 of yacc.c  */
    5389 #line 485 "parser.yy"
     5476#line 487 "parser.yy"
    53905477    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53915478    break;
     
    53945481
    53955482/* Line 1806 of yacc.c  */
    5396 #line 487 "parser.yy"
     5483#line 489 "parser.yy"
    53975484    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53985485    break;
     
    54015488
    54025489/* Line 1806 of yacc.c  */
    5403 #line 493 "parser.yy"
     5490#line 495 "parser.yy"
    54045491    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54055492    break;
     
    54085495
    54095496/* Line 1806 of yacc.c  */
    5410 #line 495 "parser.yy"
     5497#line 497 "parser.yy"
    54115498    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54125499    break;
     
    54155502
    54165503/* Line 1806 of yacc.c  */
    5417 #line 501 "parser.yy"
     5504#line 503 "parser.yy"
    54185505    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54195506    break;
     
    54225509
    54235510/* Line 1806 of yacc.c  */
    5424 #line 503 "parser.yy"
     5511#line 505 "parser.yy"
    54255512    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54265513    break;
     
    54295516
    54305517/* Line 1806 of yacc.c  */
    5431 #line 509 "parser.yy"
     5518#line 511 "parser.yy"
    54325519    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54335520    break;
     
    54365523
    54375524/* Line 1806 of yacc.c  */
    5438 #line 511 "parser.yy"
     5525#line 513 "parser.yy"
    54395526    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54405527    break;
     
    54435530
    54445531/* Line 1806 of yacc.c  */
    5445 #line 513 "parser.yy"
     5532#line 515 "parser.yy"
    54465533    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54475534    break;
     
    54505537
    54515538/* Line 1806 of yacc.c  */
    5452 #line 515 "parser.yy"
     5539#line 517 "parser.yy"
    54535540    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54545541    break;
     
    54575544
    54585545/* Line 1806 of yacc.c  */
    5459 #line 521 "parser.yy"
     5546#line 523 "parser.yy"
    54605547    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54615548    break;
     
    54645551
    54655552/* Line 1806 of yacc.c  */
    5466 #line 523 "parser.yy"
     5553#line 525 "parser.yy"
    54675554    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54685555    break;
     
    54715558
    54725559/* Line 1806 of yacc.c  */
    5473 #line 529 "parser.yy"
     5560#line 531 "parser.yy"
    54745561    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54755562    break;
     
    54785565
    54795566/* Line 1806 of yacc.c  */
    5480 #line 535 "parser.yy"
     5567#line 537 "parser.yy"
    54815568    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54825569    break;
     
    54855572
    54865573/* Line 1806 of yacc.c  */
    5487 #line 541 "parser.yy"
     5574#line 543 "parser.yy"
    54885575    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54895576    break;
     
    54925579
    54935580/* Line 1806 of yacc.c  */
    5494 #line 547 "parser.yy"
     5581#line 549 "parser.yy"
    54955582    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54965583    break;
     
    54995586
    55005587/* Line 1806 of yacc.c  */
    5501 #line 553 "parser.yy"
     5588#line 555 "parser.yy"
    55025589    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55035590    break;
     
    55065593
    55075594/* Line 1806 of yacc.c  */
    5508 #line 559 "parser.yy"
     5595#line 561 "parser.yy"
    55095596    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55105597    break;
     
    55135600
    55145601/* Line 1806 of yacc.c  */
    5515 #line 561 "parser.yy"
     5602#line 563 "parser.yy"
    55165603    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    55175604    break;
     
    55205607
    55215608/* Line 1806 of yacc.c  */
    5522 #line 563 "parser.yy"
     5609#line 565 "parser.yy"
    55235610    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55245611    break;
     
    55275614
    55285615/* Line 1806 of yacc.c  */
    5529 #line 574 "parser.yy"
     5616#line 576 "parser.yy"
    55305617    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55315618    break;
     
    55345621
    55355622/* Line 1806 of yacc.c  */
    5536 #line 576 "parser.yy"
     5623#line 578 "parser.yy"
    55375624    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55385625    break;
     
    55415628
    55425629/* Line 1806 of yacc.c  */
    5543 #line 578 "parser.yy"
     5630#line 580 "parser.yy"
    55445631    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    55455632    break;
     
    55485635
    55495636/* Line 1806 of yacc.c  */
    5550 #line 583 "parser.yy"
     5637#line 585 "parser.yy"
    55515638    { (yyval.en) = new NullExprNode; }
    55525639    break;
     
    55555642
    55565643/* Line 1806 of yacc.c  */
    5557 #line 591 "parser.yy"
     5644#line 593 "parser.yy"
    55585645    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    55595646    break;
     
    55625649
    55635650/* Line 1806 of yacc.c  */
    5564 #line 593 "parser.yy"
     5651#line 595 "parser.yy"
    55655652    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55665653    break;
     
    55695656
    55705657/* Line 1806 of yacc.c  */
    5571 #line 595 "parser.yy"
     5658#line 597 "parser.yy"
    55725659    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55735660    break;
     
    55765663
    55775664/* Line 1806 of yacc.c  */
    5578 #line 597 "parser.yy"
     5665#line 599 "parser.yy"
    55795666    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55805667    break;
     
    55835670
    55845671/* Line 1806 of yacc.c  */
    5585 #line 603 "parser.yy"
     5672#line 605 "parser.yy"
    55865673    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    55875674    break;
     
    55905677
    55915678/* Line 1806 of yacc.c  */
    5592 #line 607 "parser.yy"
     5679#line 609 "parser.yy"
    55935680    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55945681    break;
     
    55975684
    55985685/* Line 1806 of yacc.c  */
    5599 #line 608 "parser.yy"
     5686#line 610 "parser.yy"
    56005687    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    56015688    break;
     
    56045691
    56055692/* Line 1806 of yacc.c  */
    5606 #line 609 "parser.yy"
     5693#line 611 "parser.yy"
    56075694    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    56085695    break;
     
    56115698
    56125699/* Line 1806 of yacc.c  */
    5613 #line 610 "parser.yy"
     5700#line 612 "parser.yy"
    56145701    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    56155702    break;
     
    56185705
    56195706/* Line 1806 of yacc.c  */
    5620 #line 611 "parser.yy"
     5707#line 613 "parser.yy"
    56215708    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    56225709    break;
     
    56255712
    56265713/* Line 1806 of yacc.c  */
    5627 #line 612 "parser.yy"
     5714#line 614 "parser.yy"
    56285715    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    56295716    break;
     
    56325719
    56335720/* Line 1806 of yacc.c  */
    5634 #line 613 "parser.yy"
     5721#line 615 "parser.yy"
    56355722    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56365723    break;
     
    56395726
    56405727/* Line 1806 of yacc.c  */
    5641 #line 614 "parser.yy"
     5728#line 616 "parser.yy"
    56425729    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56435730    break;
     
    56465733
    56475734/* Line 1806 of yacc.c  */
    5648 #line 615 "parser.yy"
     5735#line 617 "parser.yy"
    56495736    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    56505737    break;
     
    56535740
    56545741/* Line 1806 of yacc.c  */
    5655 #line 616 "parser.yy"
     5742#line 618 "parser.yy"
    56565743    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    56575744    break;
     
    56605747
    56615748/* Line 1806 of yacc.c  */
    5662 #line 622 "parser.yy"
     5749#line 624 "parser.yy"
    56635750    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56645751    break;
     
    56675754
    56685755/* Line 1806 of yacc.c  */
    5669 #line 627 "parser.yy"
     5756#line 629 "parser.yy"
    56705757    { (yyval.en) = 0; }
    56715758    break;
     
    56745761
    56755762/* Line 1806 of yacc.c  */
    5676 #line 636 "parser.yy"
     5763#line 638 "parser.yy"
    56775764    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56785765    break;
     
    56815768
    56825769/* Line 1806 of yacc.c  */
    5683 #line 643 "parser.yy"
     5770#line 645 "parser.yy"
    56845771    {
    56855772                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    56925779
    56935780/* Line 1806 of yacc.c  */
    5694 #line 652 "parser.yy"
     5781#line 654 "parser.yy"
    56955782    {
    56965783                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57015788
    57025789/* Line 1806 of yacc.c  */
    5703 #line 659 "parser.yy"
     5790#line 661 "parser.yy"
    57045791    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    57055792    break;
     
    57085795
    57095796/* Line 1806 of yacc.c  */
    5710 #line 666 "parser.yy"
     5797#line 668 "parser.yy"
    57115798    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    57125799    break;
     
    57155802
    57165803/* Line 1806 of yacc.c  */
    5717 #line 672 "parser.yy"
     5804#line 674 "parser.yy"
    57185805    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57195806    break;
     
    57225809
    57235810/* Line 1806 of yacc.c  */
    5724 #line 677 "parser.yy"
     5811#line 679 "parser.yy"
    57255812    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57265813    break;
     
    57295816
    57305817/* Line 1806 of yacc.c  */
    5731 #line 679 "parser.yy"
     5818#line 681 "parser.yy"
    57325819    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57335820    break;
     
    57365823
    57375824/* Line 1806 of yacc.c  */
    5738 #line 681 "parser.yy"
     5825#line 683 "parser.yy"
    57395826    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57405827    break;
     
    57435830
    57445831/* Line 1806 of yacc.c  */
    5745 #line 688 "parser.yy"
     5832#line 690 "parser.yy"
    57465833    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57475834    break;
     
    57505837
    57515838/* Line 1806 of yacc.c  */
    5752 #line 693 "parser.yy"
     5839#line 695 "parser.yy"
    57535840    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57545841    break;
     
    57575844
    57585845/* Line 1806 of yacc.c  */
    5759 #line 699 "parser.yy"
     5846#line 701 "parser.yy"
    57605847    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57615848    break;
     
    57645851
    57655852/* Line 1806 of yacc.c  */
    5766 #line 701 "parser.yy"
     5853#line 703 "parser.yy"
    57675854    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57685855    break;
     
    57715858
    57725859/* Line 1806 of yacc.c  */
    5773 #line 703 "parser.yy"
     5860#line 705 "parser.yy"
    57745861    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57755862    break;
     
    57785865
    57795866/* Line 1806 of yacc.c  */
    5780 #line 705 "parser.yy"
     5867#line 707 "parser.yy"
    57815868    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57825869    break;
     
    57855872
    57865873/* Line 1806 of yacc.c  */
    5787 #line 710 "parser.yy"
     5874#line 712 "parser.yy"
    57885875    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57895876    break;
     
    57925879
    57935880/* Line 1806 of yacc.c  */
    5794 #line 712 "parser.yy"
     5881#line 714 "parser.yy"
    57955882    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57965883    break;
     
    57995886
    58005887/* Line 1806 of yacc.c  */
    5801 #line 719 "parser.yy"
     5888#line 721 "parser.yy"
    58025889    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    58035890    break;
     
    58065893
    58075894/* Line 1806 of yacc.c  */
    5808 #line 721 "parser.yy"
     5895#line 723 "parser.yy"
    58095896    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58105897    break;
     
    58135900
    58145901/* Line 1806 of yacc.c  */
    5815 #line 728 "parser.yy"
     5902#line 730 "parser.yy"
    58165903    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    58175904    break;
     
    58205907
    58215908/* Line 1806 of yacc.c  */
    5822 #line 732 "parser.yy"
     5909#line 734 "parser.yy"
    58235910    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58245911    break;
     
    58275914
    58285915/* Line 1806 of yacc.c  */
    5829 #line 733 "parser.yy"
     5916#line 735 "parser.yy"
    58305917    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58315918    break;
     
    58345921
    58355922/* Line 1806 of yacc.c  */
    5836 #line 739 "parser.yy"
     5923#line 741 "parser.yy"
    58375924    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58385925    break;
     
    58415928
    58425929/* Line 1806 of yacc.c  */
    5843 #line 743 "parser.yy"
     5930#line 745 "parser.yy"
    58445931    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58455932    break;
     
    58485935
    58495936/* Line 1806 of yacc.c  */
    5850 #line 748 "parser.yy"
     5937#line 750 "parser.yy"
    58515938    { (yyval.sn) = 0; }
    58525939    break;
     
    58555942
    58565943/* Line 1806 of yacc.c  */
    5857 #line 754 "parser.yy"
     5944#line 756 "parser.yy"
    58585945    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58595946    break;
     
    58625949
    58635950/* Line 1806 of yacc.c  */
    5864 #line 756 "parser.yy"
     5951#line 758 "parser.yy"
    58655952    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58665953    break;
     
    58695956
    58705957/* Line 1806 of yacc.c  */
    5871 #line 761 "parser.yy"
     5958#line 763 "parser.yy"
    58725959    { (yyval.sn) = 0; }
    58735960    break;
     
    58765963
    58775964/* Line 1806 of yacc.c  */
    5878 #line 767 "parser.yy"
     5965#line 769 "parser.yy"
    58795966    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58805967    break;
     
    58835970
    58845971/* Line 1806 of yacc.c  */
    5885 #line 769 "parser.yy"
     5972#line 771 "parser.yy"
    58865973    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    58875974    break;
     
    58905977
    58915978/* Line 1806 of yacc.c  */
    5892 #line 771 "parser.yy"
     5979#line 773 "parser.yy"
    58935980    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58945981    break;
     
    58975984
    58985985/* Line 1806 of yacc.c  */
    5899 #line 773 "parser.yy"
     5986#line 775 "parser.yy"
    59005987    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    59015988    break;
     
    59045991
    59055992/* Line 1806 of yacc.c  */
    5906 #line 778 "parser.yy"
     5993#line 780 "parser.yy"
    59075994    { (yyval.sn) = 0; }
    59085995    break;
     
    59115998
    59125999/* Line 1806 of yacc.c  */
    5913 #line 783 "parser.yy"
     6000#line 785 "parser.yy"
    59146001    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59156002    break;
     
    59186005
    59196006/* Line 1806 of yacc.c  */
    5920 #line 784 "parser.yy"
     6007#line 786 "parser.yy"
    59216008    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59226009    break;
     
    59256012
    59266013/* Line 1806 of yacc.c  */
    5927 #line 789 "parser.yy"
     6014#line 791 "parser.yy"
    59286015    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59296016    break;
     
    59326019
    59336020/* Line 1806 of yacc.c  */
    5934 #line 791 "parser.yy"
     6021#line 793 "parser.yy"
    59356022    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59366023    break;
     
    59396026
    59406027/* Line 1806 of yacc.c  */
    5941 #line 793 "parser.yy"
     6028#line 795 "parser.yy"
    59426029    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59436030    break;
     
    59466033
    59476034/* Line 1806 of yacc.c  */
    5948 #line 798 "parser.yy"
     6035#line 800 "parser.yy"
    59496036    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59506037    break;
     
    59536040
    59546041/* Line 1806 of yacc.c  */
    5955 #line 800 "parser.yy"
     6042#line 802 "parser.yy"
    59566043    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59576044    break;
     
    59606047
    59616048/* Line 1806 of yacc.c  */
    5962 #line 805 "parser.yy"
     6049#line 807 "parser.yy"
    59636050    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59646051    break;
     
    59676054
    59686055/* Line 1806 of yacc.c  */
    5969 #line 809 "parser.yy"
     6056#line 811 "parser.yy"
    59706057    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59716058    break;
     
    59746061
    59756062/* Line 1806 of yacc.c  */
    5976 #line 812 "parser.yy"
     6063#line 814 "parser.yy"
    59776064    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59786065    break;
     
    59816068
    59826069/* Line 1806 of yacc.c  */
    5983 #line 816 "parser.yy"
     6070#line 818 "parser.yy"
    59846071    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59856072    break;
     
    59886075
    59896076/* Line 1806 of yacc.c  */
    5990 #line 819 "parser.yy"
     6077#line 821 "parser.yy"
    59916078    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59926079    break;
     
    59956082
    59966083/* Line 1806 of yacc.c  */
    5997 #line 823 "parser.yy"
     6084#line 825 "parser.yy"
    59986085    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59996086    break;
     
    60026089
    60036090/* Line 1806 of yacc.c  */
    6004 #line 825 "parser.yy"
     6091#line 827 "parser.yy"
    60056092    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    60066093    break;
     
    60096096
    60106097/* Line 1806 of yacc.c  */
    6011 #line 827 "parser.yy"
     6098#line 829 "parser.yy"
    60126099    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60136100    break;
     
    60166103
    60176104/* Line 1806 of yacc.c  */
    6018 #line 831 "parser.yy"
     6105#line 833 "parser.yy"
    60196106    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60206107    break;
     
    60236110
    60246111/* Line 1806 of yacc.c  */
    6025 #line 833 "parser.yy"
     6112#line 835 "parser.yy"
    60266113    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60276114    break;
    60286115
    60296116  case 197:
    6030 
    6031 /* Line 1806 of yacc.c  */
    6032 #line 840 "parser.yy"
    6033     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6034     break;
    6035 
    6036   case 198:
    60376117
    60386118/* Line 1806 of yacc.c  */
     
    60416121    break;
    60426122
     6123  case 198:
     6124
     6125/* Line 1806 of yacc.c  */
     6126#line 844 "parser.yy"
     6127    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6128    break;
     6129
    60436130  case 199:
    60446131
    60456132/* Line 1806 of yacc.c  */
    6046 #line 844 "parser.yy"
     6133#line 846 "parser.yy"
    60476134    {
    60486135                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60546141
    60556142/* Line 1806 of yacc.c  */
    6056 #line 855 "parser.yy"
     6143#line 857 "parser.yy"
    60576144    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60586145    break;
     
    60616148
    60626149/* Line 1806 of yacc.c  */
    6063 #line 857 "parser.yy"
     6150#line 859 "parser.yy"
    60646151    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60656152    break;
     
    60686155
    60696156/* Line 1806 of yacc.c  */
    6070 #line 859 "parser.yy"
     6157#line 861 "parser.yy"
    60716158    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60726159    break;
     
    60756162
    60766163/* Line 1806 of yacc.c  */
    6077 #line 861 "parser.yy"
     6164#line 863 "parser.yy"
    60786165    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60796166    break;
     
    60826169
    60836170/* Line 1806 of yacc.c  */
    6084 #line 866 "parser.yy"
     6171#line 868 "parser.yy"
    60856172    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60866173    break;
     
    60896176
    60906177/* Line 1806 of yacc.c  */
    6091 #line 868 "parser.yy"
     6178#line 870 "parser.yy"
    60926179    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60936180    break;
     
    60966183
    60976184/* Line 1806 of yacc.c  */
    6098 #line 870 "parser.yy"
     6185#line 872 "parser.yy"
    60996186    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61006187    break;
     
    61036190
    61046191/* Line 1806 of yacc.c  */
    6105 #line 872 "parser.yy"
     6192#line 874 "parser.yy"
    61066193    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61076194    break;
     
    61106197
    61116198/* Line 1806 of yacc.c  */
    6112 #line 877 "parser.yy"
     6199#line 879 "parser.yy"
    61136200    {
    61146201                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    61206207
    61216208/* Line 1806 of yacc.c  */
    6122 #line 891 "parser.yy"
     6209#line 893 "parser.yy"
    61236210    {
    61246211                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61306217
    61316218/* Line 1806 of yacc.c  */
    6132 #line 896 "parser.yy"
     6219#line 898 "parser.yy"
    61336220    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61346221    break;
     
    61376224
    61386225/* Line 1806 of yacc.c  */
    6139 #line 898 "parser.yy"
     6226#line 900 "parser.yy"
    61406227    {
    61416228                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61476234
    61486235/* Line 1806 of yacc.c  */
    6149 #line 907 "parser.yy"
     6236#line 909 "parser.yy"
    61506237    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    61516238    break;
     
    61546241
    61556242/* Line 1806 of yacc.c  */
    6156 #line 909 "parser.yy"
     6243#line 911 "parser.yy"
    61576244    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61586245    break;
     
    61616248
    61626249/* Line 1806 of yacc.c  */
    6163 #line 911 "parser.yy"
     6250#line 913 "parser.yy"
    61646251    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61656252    break;
     
    61686255
    61696256/* Line 1806 of yacc.c  */
    6170 #line 913 "parser.yy"
     6257#line 915 "parser.yy"
    61716258    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    61726259    break;
     
    61756262
    61766263/* Line 1806 of yacc.c  */
    6177 #line 915 "parser.yy"
     6264#line 917 "parser.yy"
    61786265    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    61796266    break;
     
    61826269
    61836270/* Line 1806 of yacc.c  */
    6184 #line 920 "parser.yy"
     6271#line 922 "parser.yy"
    61856272    { (yyval.flag) = false; }
    61866273    break;
     
    61896276
    61906277/* Line 1806 of yacc.c  */
    6191 #line 922 "parser.yy"
     6278#line 924 "parser.yy"
    61926279    { (yyval.flag) = true; }
    61936280    break;
     
    61966283
    61976284/* Line 1806 of yacc.c  */
    6198 #line 927 "parser.yy"
     6285#line 929 "parser.yy"
    61996286    { (yyval.en) = 0; }
    62006287    break;
     
    62036290
    62046291/* Line 1806 of yacc.c  */
    6205 #line 934 "parser.yy"
     6292#line 936 "parser.yy"
    62066293    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    62076294    break;
     
    62106297
    62116298/* Line 1806 of yacc.c  */
    6212 #line 939 "parser.yy"
     6299#line 941 "parser.yy"
    62136300    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    62146301    break;
     
    62176304
    62186305/* Line 1806 of yacc.c  */
    6219 #line 941 "parser.yy"
     6306#line 943 "parser.yy"
    62206307    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    62216308    break;
     
    62246311
    62256312/* Line 1806 of yacc.c  */
    6226 #line 946 "parser.yy"
     6313#line 948 "parser.yy"
    62276314    { (yyval.constant) = 0; }
    62286315    break;
     
    62316318
    62326319/* Line 1806 of yacc.c  */
    6233 #line 948 "parser.yy"
     6320#line 950 "parser.yy"
    62346321    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    62356322    break;
     
    62386325
    62396326/* Line 1806 of yacc.c  */
    6240 #line 950 "parser.yy"
     6327#line 952 "parser.yy"
    62416328    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    62426329    break;
     
    62456332
    62466333/* Line 1806 of yacc.c  */
    6247 #line 955 "parser.yy"
     6334#line 957 "parser.yy"
    62486335    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    62496336    break;
     
    62526339
    62536340/* Line 1806 of yacc.c  */
    6254 #line 957 "parser.yy"
     6341#line 959 "parser.yy"
    62556342    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    62566343    break;
     
    62596346
    62606347/* Line 1806 of yacc.c  */
    6261 #line 964 "parser.yy"
     6348#line 966 "parser.yy"
    62626349    { (yyval.decl) = 0; }
    62636350    break;
     
    62666353
    62676354/* Line 1806 of yacc.c  */
    6268 #line 971 "parser.yy"
     6355#line 973 "parser.yy"
    62696356    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62706357    break;
     
    62736360
    62746361/* Line 1806 of yacc.c  */
    6275 #line 976 "parser.yy"
     6362#line 978 "parser.yy"
    62766363    { (yyval.decl) = 0; }
    62776364    break;
     
    62806367
    62816368/* Line 1806 of yacc.c  */
    6282 #line 983 "parser.yy"
     6369#line 985 "parser.yy"
    62836370    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62846371    break;
     
    62876374
    62886375/* Line 1806 of yacc.c  */
    6289 #line 997 "parser.yy"
     6376#line 999 "parser.yy"
    62906377    {}
    62916378    break;
     
    62946381
    62956382/* Line 1806 of yacc.c  */
    6296 #line 998 "parser.yy"
     6383#line 1000 "parser.yy"
    62976384    {}
    62986385    break;
     
    63016388
    63026389/* Line 1806 of yacc.c  */
    6303 #line 1027 "parser.yy"
     6390#line 1029 "parser.yy"
    63046391    {
    63056392                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6306                         (yyval.decl) = (yyvsp[(1) - (2)].decl);
     6393                        (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
    63076394                }
    63086395    break;
     
    63116398
    63126399/* Line 1806 of yacc.c  */
    6313 #line 1034 "parser.yy"
     6400#line 1036 "parser.yy"
    63146401    {
    63156402                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6316                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) );
     6403                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
    63176404                }
    63186405    break;
     
    63216408
    63226409/* Line 1806 of yacc.c  */
    6323 #line 1039 "parser.yy"
     6410#line 1041 "parser.yy"
    63246411    {
    63256412                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6326                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) ) );
     6413                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
    63276414                }
    63286415    break;
     
    63316418
    63326419/* Line 1806 of yacc.c  */
    6333 #line 1049 "parser.yy"
     6420#line 1051 "parser.yy"
    63346421    {
    63356422                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63416428
    63426429/* Line 1806 of yacc.c  */
    6343 #line 1054 "parser.yy"
     6430#line 1056 "parser.yy"
    63446431    {
    63456432                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63516438
    63526439/* Line 1806 of yacc.c  */
    6353 #line 1059 "parser.yy"
     6440#line 1061 "parser.yy"
    63546441    {
    63556442                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63616448
    63626449/* Line 1806 of yacc.c  */
    6363 #line 1067 "parser.yy"
     6450#line 1069 "parser.yy"
    63646451    {
    63656452                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63716458
    63726459/* Line 1806 of yacc.c  */
    6373 #line 1072 "parser.yy"
     6460#line 1074 "parser.yy"
    63746461    {
    63756462                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63816468
    63826469/* Line 1806 of yacc.c  */
    6383 #line 1077 "parser.yy"
     6470#line 1079 "parser.yy"
    63846471    {
    63856472                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63916478
    63926479/* Line 1806 of yacc.c  */
    6393 #line 1082 "parser.yy"
     6480#line 1084 "parser.yy"
    63946481    {
    63956482                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64016488
    64026489/* Line 1806 of yacc.c  */
    6403 #line 1087 "parser.yy"
     6490#line 1089 "parser.yy"
    64046491    {
    64056492                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64116498
    64126499/* Line 1806 of yacc.c  */
    6413 #line 1095 "parser.yy"
     6500#line 1097 "parser.yy"
    64146501    {
    64156502                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64206507
    64216508/* Line 1806 of yacc.c  */
    6422 #line 1118 "parser.yy"
     6509#line 1120 "parser.yy"
    64236510    {
    64246511                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64296516
    64306517/* Line 1806 of yacc.c  */
    6431 #line 1122 "parser.yy"
     6518#line 1124 "parser.yy"
    64326519    {
    64336520                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64386525
    64396526/* Line 1806 of yacc.c  */
    6440 #line 1129 "parser.yy"
     6527#line 1131 "parser.yy"
    64416528    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64426529    break;
     
    64456532
    64466533/* Line 1806 of yacc.c  */
    6447 #line 1133 "parser.yy"
     6534#line 1135 "parser.yy"
    64486535    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64496536    break;
     
    64526539
    64536540/* Line 1806 of yacc.c  */
    6454 #line 1138 "parser.yy"
     6541#line 1140 "parser.yy"
    64556542    {
    64566543                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64626549
    64636550/* Line 1806 of yacc.c  */
    6464 #line 1143 "parser.yy"
     6551#line 1145 "parser.yy"
    64656552    {
    64666553                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64726559
    64736560/* Line 1806 of yacc.c  */
    6474 #line 1148 "parser.yy"
     6561#line 1150 "parser.yy"
    64756562    {
    64766563                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64826569
    64836570/* Line 1806 of yacc.c  */
    6484 #line 1159 "parser.yy"
     6571#line 1161 "parser.yy"
    64856572    {
    64866573                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64926579
    64936580/* Line 1806 of yacc.c  */
    6494 #line 1164 "parser.yy"
     6581#line 1166 "parser.yy"
    64956582    {
    64966583                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65026589
    65036590/* Line 1806 of yacc.c  */
    6504 #line 1169 "parser.yy"
     6591#line 1171 "parser.yy"
    65056592    {
    65066593                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65126599
    65136600/* Line 1806 of yacc.c  */
    6514 #line 1174 "parser.yy"
     6601#line 1176 "parser.yy"
    65156602    {
    65166603                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65226609
    65236610/* Line 1806 of yacc.c  */
    6524 #line 1179 "parser.yy"
     6611#line 1181 "parser.yy"
    65256612    {
    65266613                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65326619
    65336620/* Line 1806 of yacc.c  */
    6534 #line 1188 "parser.yy"
     6621#line 1190 "parser.yy"
    65356622    {
    65366623                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65426629
    65436630/* Line 1806 of yacc.c  */
    6544 #line 1193 "parser.yy"
     6631#line 1195 "parser.yy"
    65456632    {
    65466633                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65526639
    65536640/* Line 1806 of yacc.c  */
    6554 #line 1210 "parser.yy"
     6641#line 1212 "parser.yy"
    65556642    {
    65566643                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65626649
    65636650/* Line 1806 of yacc.c  */
    6564 #line 1215 "parser.yy"
     6651#line 1217 "parser.yy"
    65656652    {
    65666653                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65726659
    65736660/* Line 1806 of yacc.c  */
    6574 #line 1237 "parser.yy"
     6661#line 1239 "parser.yy"
    65756662    { (yyval.decl) = 0; }
    65766663    break;
     
    65796666
    65806667/* Line 1806 of yacc.c  */
    6581 #line 1249 "parser.yy"
     6668#line 1251 "parser.yy"
    65826669    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65836670    break;
     
    65866673
    65876674/* Line 1806 of yacc.c  */
    6588 #line 1260 "parser.yy"
     6675#line 1262 "parser.yy"
    65896676    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65906677    break;
     
    65936680
    65946681/* Line 1806 of yacc.c  */
    6595 #line 1262 "parser.yy"
     6682#line 1264 "parser.yy"
    65966683    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65976684    break;
     
    66006687
    66016688/* Line 1806 of yacc.c  */
    6602 #line 1264 "parser.yy"
     6689#line 1266 "parser.yy"
    66036690    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66046691    break;
     
    66076694
    66086695/* Line 1806 of yacc.c  */
    6609 #line 1266 "parser.yy"
     6696#line 1268 "parser.yy"
    66106697    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66116698    break;
     
    66146701
    66156702/* Line 1806 of yacc.c  */
    6616 #line 1268 "parser.yy"
     6703#line 1270 "parser.yy"
    66176704    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66186705    break;
     
    66216708
    66226709/* Line 1806 of yacc.c  */
    6623 #line 1270 "parser.yy"
     6710#line 1272 "parser.yy"
    66246711    {
    66256712                        typedefTable.enterScope();
     
    66306717
    66316718/* Line 1806 of yacc.c  */
    6632 #line 1274 "parser.yy"
     6719#line 1276 "parser.yy"
    66336720    {
    66346721                        typedefTable.leaveScope();
     
    66406727
    66416728/* Line 1806 of yacc.c  */
    6642 #line 1283 "parser.yy"
     6729#line 1285 "parser.yy"
    66436730    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66446731    break;
     
    66476734
    66486735/* Line 1806 of yacc.c  */
    6649 #line 1285 "parser.yy"
     6736#line 1287 "parser.yy"
    66506737    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66516738    break;
     
    66546741
    66556742/* Line 1806 of yacc.c  */
    6656 #line 1296 "parser.yy"
     6743#line 1298 "parser.yy"
    66576744    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66586745    break;
     
    66616748
    66626749/* Line 1806 of yacc.c  */
    6663 #line 1305 "parser.yy"
     6750#line 1307 "parser.yy"
    66646751    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66656752    break;
     
    66686755
    66696756/* Line 1806 of yacc.c  */
    6670 #line 1307 "parser.yy"
     6757#line 1309 "parser.yy"
    66716758    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66726759    break;
     
    66756762
    66766763/* Line 1806 of yacc.c  */
    6677 #line 1309 "parser.yy"
     6764#line 1311 "parser.yy"
    66786765    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66796766    break;
     
    66826769
    66836770/* Line 1806 of yacc.c  */
    6684 #line 1311 "parser.yy"
     6771#line 1313 "parser.yy"
    66856772    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66866773    break;
     
    66896776
    66906777/* Line 1806 of yacc.c  */
    6691 #line 1313 "parser.yy"
     6778#line 1315 "parser.yy"
    66926779    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66936780    break;
     
    66966783
    66976784/* Line 1806 of yacc.c  */
    6698 #line 1315 "parser.yy"
     6785#line 1317 "parser.yy"
    66996786    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67006787    break;
     
    67036790
    67046791/* Line 1806 of yacc.c  */
    6705 #line 1317 "parser.yy"
     6792#line 1319 "parser.yy"
    67066793    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    67076794    break;
     
    67106797
    67116798/* Line 1806 of yacc.c  */
    6712 #line 1319 "parser.yy"
     6799#line 1321 "parser.yy"
    67136800    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67146801    break;
     
    67176804
    67186805/* Line 1806 of yacc.c  */
    6719 #line 1324 "parser.yy"
     6806#line 1326 "parser.yy"
    67206807    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67216808    break;
     
    67246811
    67256812/* Line 1806 of yacc.c  */
    6726 #line 1326 "parser.yy"
     6813#line 1328 "parser.yy"
    67276814    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67286815    break;
     
    67316818
    67326819/* Line 1806 of yacc.c  */
    6733 #line 1328 "parser.yy"
     6820#line 1330 "parser.yy"
    67346821    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67356822    break;
     
    67386825
    67396826/* Line 1806 of yacc.c  */
    6740 #line 1330 "parser.yy"
     6827#line 1332 "parser.yy"
    67416828    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67426829    break;
     
    67456832
    67466833/* Line 1806 of yacc.c  */
    6747 #line 1332 "parser.yy"
     6834#line 1334 "parser.yy"
    67486835    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67496836    break;
     
    67526839
    67536840/* Line 1806 of yacc.c  */
    6754 #line 1334 "parser.yy"
     6841#line 1336 "parser.yy"
    67556842    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67566843    break;
     
    67596846
    67606847/* Line 1806 of yacc.c  */
    6761 #line 1336 "parser.yy"
     6848#line 1338 "parser.yy"
    67626849    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67636850    break;
     
    67666853
    67676854/* Line 1806 of yacc.c  */
    6768 #line 1338 "parser.yy"
     6855#line 1340 "parser.yy"
    67696856    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67706857    break;
     
    67736860
    67746861/* Line 1806 of yacc.c  */
    6775 #line 1340 "parser.yy"
     6862#line 1342 "parser.yy"
    67766863    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67776864    break;
     
    67806867
    67816868/* Line 1806 of yacc.c  */
    6782 #line 1342 "parser.yy"
     6869#line 1344 "parser.yy"
    67836870    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67846871    break;
     
    67876874
    67886875/* Line 1806 of yacc.c  */
    6789 #line 1344 "parser.yy"
     6876#line 1346 "parser.yy"
    67906877    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67916878    break;
     
    67946881
    67956882/* Line 1806 of yacc.c  */
    6796 #line 1346 "parser.yy"
     6883#line 1348 "parser.yy"
    67976884    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67986885    break;
    67996886
    6800   case 334:
    6801 
    6802 /* Line 1806 of yacc.c  */
    6803 #line 1353 "parser.yy"
     6887  case 333:
     6888
     6889/* Line 1806 of yacc.c  */
     6890#line 1350 "parser.yy"
     6891    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6892    break;
     6893
     6894  case 335:
     6895
     6896/* Line 1806 of yacc.c  */
     6897#line 1357 "parser.yy"
    68046898    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68056899    break;
    68066900
    6807   case 335:
    6808 
    6809 /* Line 1806 of yacc.c  */
    6810 #line 1355 "parser.yy"
     6901  case 336:
     6902
     6903/* Line 1806 of yacc.c  */
     6904#line 1359 "parser.yy"
    68116905    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68126906    break;
    68136907
    6814   case 336:
    6815 
    6816 /* Line 1806 of yacc.c  */
    6817 #line 1357 "parser.yy"
     6908  case 337:
     6909
     6910/* Line 1806 of yacc.c  */
     6911#line 1361 "parser.yy"
    68186912    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68196913    break;
    68206914
    6821   case 337:
    6822 
    6823 /* Line 1806 of yacc.c  */
    6824 #line 1359 "parser.yy"
     6915  case 338:
     6916
     6917/* Line 1806 of yacc.c  */
     6918#line 1363 "parser.yy"
    68256919    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68266920    break;
    68276921
    6828   case 339:
    6829 
    6830 /* Line 1806 of yacc.c  */
    6831 #line 1365 "parser.yy"
     6922  case 340:
     6923
     6924/* Line 1806 of yacc.c  */
     6925#line 1369 "parser.yy"
    68326926    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68336927    break;
    68346928
    6835   case 341:
    6836 
    6837 /* Line 1806 of yacc.c  */
    6838 #line 1372 "parser.yy"
     6929  case 342:
     6930
     6931/* Line 1806 of yacc.c  */
     6932#line 1376 "parser.yy"
    68396933    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68406934    break;
    68416935
    6842   case 342:
    6843 
    6844 /* Line 1806 of yacc.c  */
    6845 #line 1374 "parser.yy"
     6936  case 343:
     6937
     6938/* Line 1806 of yacc.c  */
     6939#line 1378 "parser.yy"
    68466940    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68476941    break;
    68486942
    6849   case 343:
    6850 
    6851 /* Line 1806 of yacc.c  */
    6852 #line 1376 "parser.yy"
     6943  case 344:
     6944
     6945/* Line 1806 of yacc.c  */
     6946#line 1380 "parser.yy"
    68536947    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68546948    break;
    68556949
    6856   case 344:
    6857 
    6858 /* Line 1806 of yacc.c  */
    6859 #line 1381 "parser.yy"
     6950  case 345:
     6951
     6952/* Line 1806 of yacc.c  */
     6953#line 1385 "parser.yy"
    68606954    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68616955    break;
    68626956
    6863   case 345:
    6864 
    6865 /* Line 1806 of yacc.c  */
    6866 #line 1383 "parser.yy"
     6957  case 346:
     6958
     6959/* Line 1806 of yacc.c  */
     6960#line 1387 "parser.yy"
    68676961    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68686962    break;
    68696963
    6870   case 346:
    6871 
    6872 /* Line 1806 of yacc.c  */
    6873 #line 1385 "parser.yy"
     6964  case 347:
     6965
     6966/* Line 1806 of yacc.c  */
     6967#line 1389 "parser.yy"
    68746968    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68756969    break;
    68766970
    6877   case 347:
    6878 
    6879 /* Line 1806 of yacc.c  */
    6880 #line 1387 "parser.yy"
     6971  case 348:
     6972
     6973/* Line 1806 of yacc.c  */
     6974#line 1391 "parser.yy"
    68816975    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68826976    break;
    68836977
    6884   case 349:
    6885 
    6886 /* Line 1806 of yacc.c  */
    6887 #line 1393 "parser.yy"
     6978  case 350:
     6979
     6980/* Line 1806 of yacc.c  */
     6981#line 1397 "parser.yy"
    68886982    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68896983    break;
    68906984
    6891   case 350:
    6892 
    6893 /* Line 1806 of yacc.c  */
    6894 #line 1395 "parser.yy"
     6985  case 351:
     6986
     6987/* Line 1806 of yacc.c  */
     6988#line 1399 "parser.yy"
    68956989    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68966990    break;
    68976991
    6898   case 351:
    6899 
    6900 /* Line 1806 of yacc.c  */
    6901 #line 1397 "parser.yy"
     6992  case 352:
     6993
     6994/* Line 1806 of yacc.c  */
     6995#line 1401 "parser.yy"
    69026996    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69036997    break;
    69046998
    6905   case 353:
    6906 
    6907 /* Line 1806 of yacc.c  */
    6908 #line 1403 "parser.yy"
     6999  case 354:
     7000
     7001/* Line 1806 of yacc.c  */
     7002#line 1407 "parser.yy"
    69097003    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69107004    break;
    69117005
    6912   case 354:
    6913 
    6914 /* Line 1806 of yacc.c  */
    6915 #line 1405 "parser.yy"
     7006  case 355:
     7007
     7008/* Line 1806 of yacc.c  */
     7009#line 1409 "parser.yy"
    69167010    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69177011    break;
    69187012
    6919   case 356:
    6920 
    6921 /* Line 1806 of yacc.c  */
    6922 #line 1411 "parser.yy"
     7013  case 357:
     7014
     7015/* Line 1806 of yacc.c  */
     7016#line 1415 "parser.yy"
    69237017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69247018    break;
    69257019
    6926   case 357:
    6927 
    6928 /* Line 1806 of yacc.c  */
    6929 #line 1413 "parser.yy"
     7020  case 358:
     7021
     7022/* Line 1806 of yacc.c  */
     7023#line 1417 "parser.yy"
    69307024    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69317025    break;
    69327026
    6933   case 358:
    6934 
    6935 /* Line 1806 of yacc.c  */
    6936 #line 1415 "parser.yy"
     7027  case 359:
     7028
     7029/* Line 1806 of yacc.c  */
     7030#line 1419 "parser.yy"
    69377031    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69387032    break;
    69397033
    6940   case 359:
    6941 
    6942 /* Line 1806 of yacc.c  */
    6943 #line 1420 "parser.yy"
     7034  case 360:
     7035
     7036/* Line 1806 of yacc.c  */
     7037#line 1424 "parser.yy"
    69447038    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69457039    break;
    69467040
    6947   case 360:
    6948 
    6949 /* Line 1806 of yacc.c  */
    6950 #line 1422 "parser.yy"
     7041  case 361:
     7042
     7043/* Line 1806 of yacc.c  */
     7044#line 1426 "parser.yy"
    69517045    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69527046    break;
    69537047
    6954   case 361:
    6955 
    6956 /* Line 1806 of yacc.c  */
    6957 #line 1424 "parser.yy"
     7048  case 362:
     7049
     7050/* Line 1806 of yacc.c  */
     7051#line 1428 "parser.yy"
    69587052    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69597053    break;
    69607054
    6961   case 364:
    6962 
    6963 /* Line 1806 of yacc.c  */
    6964 #line 1434 "parser.yy"
     7055  case 365:
     7056
     7057/* Line 1806 of yacc.c  */
     7058#line 1438 "parser.yy"
    69657059    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    69667060    break;
    69677061
    6968   case 365:
    6969 
    6970 /* Line 1806 of yacc.c  */
    6971 #line 1436 "parser.yy"
    6972     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    6973     break;
    6974 
    69757062  case 366:
    69767063
    69777064/* Line 1806 of yacc.c  */
    6978 #line 1438 "parser.yy"
    6979     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     7065#line 1440 "parser.yy"
     7066    {
     7067                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7068                        (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 );
     7069                }
    69807070    break;
    69817071
     
    69837073
    69847074/* Line 1806 of yacc.c  */
    6985 #line 1440 "parser.yy"
     7075#line 1445 "parser.yy"
     7076    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7077    break;
     7078
     7079  case 368:
     7080
     7081/* Line 1806 of yacc.c  */
     7082#line 1447 "parser.yy"
     7083    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }
     7084    break;
     7085
     7086  case 369:
     7087
     7088/* Line 1806 of yacc.c  */
     7089#line 1449 "parser.yy"
    69867090    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    69877091    break;
    69887092
    6989   case 368:
    6990 
    6991 /* Line 1806 of yacc.c  */
    6992 #line 1442 "parser.yy"
     7093  case 370:
     7094
     7095/* Line 1806 of yacc.c  */
     7096#line 1451 "parser.yy"
    69937097    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69947098    break;
    69957099
    6996   case 369:
    6997 
    6998 /* Line 1806 of yacc.c  */
    6999 #line 1447 "parser.yy"
     7100  case 371:
     7101
     7102/* Line 1806 of yacc.c  */
     7103#line 1456 "parser.yy"
    70007104    { (yyval.aggKey) = DeclarationNode::Struct; }
    70017105    break;
    70027106
    7003   case 370:
    7004 
    7005 /* Line 1806 of yacc.c  */
    7006 #line 1449 "parser.yy"
     7107  case 372:
     7108
     7109/* Line 1806 of yacc.c  */
     7110#line 1458 "parser.yy"
    70077111    { (yyval.aggKey) = DeclarationNode::Union; }
    70087112    break;
    70097113
    7010   case 371:
    7011 
    7012 /* Line 1806 of yacc.c  */
    7013 #line 1454 "parser.yy"
     7114  case 373:
     7115
     7116/* Line 1806 of yacc.c  */
     7117#line 1463 "parser.yy"
    70147118    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70157119    break;
    70167120
    7017   case 372:
    7018 
    7019 /* Line 1806 of yacc.c  */
    7020 #line 1456 "parser.yy"
     7121  case 374:
     7122
     7123/* Line 1806 of yacc.c  */
     7124#line 1465 "parser.yy"
    70217125    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    70227126    break;
    70237127
    7024   case 374:
    7025 
    7026 /* Line 1806 of yacc.c  */
    7027 #line 1462 "parser.yy"
     7128  case 376:
     7129
     7130/* Line 1806 of yacc.c  */
     7131#line 1471 "parser.yy"
    70287132    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70297133    break;
    70307134
    7031   case 376:
    7032 
    7033 /* Line 1806 of yacc.c  */
    7034 #line 1465 "parser.yy"
     7135  case 378:
     7136
     7137/* Line 1806 of yacc.c  */
     7138#line 1474 "parser.yy"
    70357139    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70367140    break;
    70377141
    7038   case 378:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1471 "parser.yy"
     7142  case 380:
     7143
     7144/* Line 1806 of yacc.c  */
     7145#line 1480 "parser.yy"
    70427146    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70437147    break;
    70447148
    7045   case 379:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1473 "parser.yy"
     7149  case 381:
     7150
     7151/* Line 1806 of yacc.c  */
     7152#line 1482 "parser.yy"
    70497153    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70507154    break;
    70517155
    7052   case 380:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1475 "parser.yy"
     7156  case 382:
     7157
     7158/* Line 1806 of yacc.c  */
     7159#line 1484 "parser.yy"
    70567160    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70577161    break;
    70587162
    7059   case 381:
    7060 
    7061 /* Line 1806 of yacc.c  */
    7062 #line 1480 "parser.yy"
     7163  case 383:
     7164
     7165/* Line 1806 of yacc.c  */
     7166#line 1489 "parser.yy"
    70637167    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70647168    break;
    70657169
    7066   case 382:
    7067 
    7068 /* Line 1806 of yacc.c  */
    7069 #line 1482 "parser.yy"
     7170  case 384:
     7171
     7172/* Line 1806 of yacc.c  */
     7173#line 1491 "parser.yy"
    70707174    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70717175    break;
    70727176
    7073   case 383:
    7074 
    7075 /* Line 1806 of yacc.c  */
    7076 #line 1487 "parser.yy"
     7177  case 385:
     7178
     7179/* Line 1806 of yacc.c  */
     7180#line 1496 "parser.yy"
    70777181    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70787182    break;
    70797183
    7080   case 384:
    7081 
    7082 /* Line 1806 of yacc.c  */
    7083 #line 1489 "parser.yy"
     7184  case 386:
     7185
     7186/* Line 1806 of yacc.c  */
     7187#line 1498 "parser.yy"
    70847188    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70857189    break;
    70867190
    7087   case 385:
    7088 
    7089 /* Line 1806 of yacc.c  */
    7090 #line 1492 "parser.yy"
     7191  case 387:
     7192
     7193/* Line 1806 of yacc.c  */
     7194#line 1501 "parser.yy"
    70917195    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70927196    break;
    70937197
    7094   case 386:
    7095 
    7096 /* Line 1806 of yacc.c  */
    7097 #line 1495 "parser.yy"
     7198  case 388:
     7199
     7200/* Line 1806 of yacc.c  */
     7201#line 1504 "parser.yy"
    70987202    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70997203    break;
    71007204
    7101   case 388:
    7102 
    7103 /* Line 1806 of yacc.c  */
    7104 #line 1501 "parser.yy"
     7205  case 390:
     7206
     7207/* Line 1806 of yacc.c  */
     7208#line 1510 "parser.yy"
    71057209    { (yyval.en) = 0; }
    71067210    break;
    71077211
    7108   case 389:
    7109 
    7110 /* Line 1806 of yacc.c  */
    7111 #line 1503 "parser.yy"
     7212  case 391:
     7213
     7214/* Line 1806 of yacc.c  */
     7215#line 1512 "parser.yy"
    71127216    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71137217    break;
    71147218
    7115   case 390:
    7116 
    7117 /* Line 1806 of yacc.c  */
    7118 #line 1508 "parser.yy"
     7219  case 392:
     7220
     7221/* Line 1806 of yacc.c  */
     7222#line 1517 "parser.yy"
    71197223    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71207224    break;
    71217225
    7122   case 392:
    7123 
    7124 /* Line 1806 of yacc.c  */
    7125 #line 1517 "parser.yy"
     7226  case 394:
     7227
     7228/* Line 1806 of yacc.c  */
     7229#line 1526 "parser.yy"
    71267230    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71277231    break;
    71287232
    7129   case 393:
    7130 
    7131 /* Line 1806 of yacc.c  */
    7132 #line 1519 "parser.yy"
    7133     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7134     break;
    7135 
    7136   case 394:
    7137 
    7138 /* Line 1806 of yacc.c  */
    7139 #line 1521 "parser.yy"
    7140     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7141     break;
    7142 
    71437233  case 395:
    71447234
    71457235/* Line 1806 of yacc.c  */
    7146 #line 1526 "parser.yy"
     7236#line 1528 "parser.yy"
     7237    {
     7238                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     7239                        (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 );
     7240                }
     7241    break;
     7242
     7243  case 396:
     7244
     7245/* Line 1806 of yacc.c  */
     7246#line 1533 "parser.yy"
     7247    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7248    break;
     7249
     7250  case 397:
     7251
     7252/* Line 1806 of yacc.c  */
     7253#line 1535 "parser.yy"
     7254    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7255    break;
     7256
     7257  case 398:
     7258
     7259/* Line 1806 of yacc.c  */
     7260#line 1540 "parser.yy"
    71477261    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71487262    break;
    71497263
    7150   case 396:
    7151 
    7152 /* Line 1806 of yacc.c  */
    7153 #line 1528 "parser.yy"
     7264  case 399:
     7265
     7266/* Line 1806 of yacc.c  */
     7267#line 1542 "parser.yy"
    71547268    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71557269    break;
    71567270
    7157   case 397:
    7158 
    7159 /* Line 1806 of yacc.c  */
    7160 #line 1533 "parser.yy"
     7271  case 400:
     7272
     7273/* Line 1806 of yacc.c  */
     7274#line 1547 "parser.yy"
    71617275    { (yyval.en) = 0; }
    71627276    break;
    71637277
    7164   case 398:
    7165 
    7166 /* Line 1806 of yacc.c  */
    7167 #line 1535 "parser.yy"
     7278  case 401:
     7279
     7280/* Line 1806 of yacc.c  */
     7281#line 1549 "parser.yy"
    71687282    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71697283    break;
    71707284
    7171   case 399:
    7172 
    7173 /* Line 1806 of yacc.c  */
    7174 #line 1542 "parser.yy"
     7285  case 402:
     7286
     7287/* Line 1806 of yacc.c  */
     7288#line 1556 "parser.yy"
    71757289    { (yyval.decl) = 0; }
    71767290    break;
    71777291
    7178   case 403:
    7179 
    7180 /* Line 1806 of yacc.c  */
    7181 #line 1550 "parser.yy"
    7182     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7183     break;
    7184 
    7185   case 404:
    7186 
    7187 /* Line 1806 of yacc.c  */
    7188 #line 1552 "parser.yy"
    7189     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7190     break;
    7191 
    7192   case 405:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1554 "parser.yy"
    7196     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7197     break;
    7198 
    7199   case 407:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1562 "parser.yy"
    7203     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7204     break;
    7205 
    7206   case 408:
     7292  case 406:
    72077293
    72087294/* Line 1806 of yacc.c  */
     
    72117297    break;
    72127298
    7213   case 409:
     7299  case 407:
    72147300
    72157301/* Line 1806 of yacc.c  */
    72167302#line 1566 "parser.yy"
     7303    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7304    break;
     7305
     7306  case 408:
     7307
     7308/* Line 1806 of yacc.c  */
     7309#line 1568 "parser.yy"
     7310    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7311    break;
     7312
     7313  case 410:
     7314
     7315/* Line 1806 of yacc.c  */
     7316#line 1576 "parser.yy"
     7317    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7318    break;
     7319
     7320  case 411:
     7321
     7322/* Line 1806 of yacc.c  */
     7323#line 1578 "parser.yy"
     7324    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7325    break;
     7326
     7327  case 412:
     7328
     7329/* Line 1806 of yacc.c  */
     7330#line 1580 "parser.yy"
    72177331    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72187332    break;
    72197333
    7220   case 411:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1572 "parser.yy"
     7334  case 414:
     7335
     7336/* Line 1806 of yacc.c  */
     7337#line 1586 "parser.yy"
    72247338    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72257339    break;
    72267340
    7227   case 412:
    7228 
    7229 /* Line 1806 of yacc.c  */
    7230 #line 1577 "parser.yy"
     7341  case 415:
     7342
     7343/* Line 1806 of yacc.c  */
     7344#line 1591 "parser.yy"
    72317345    { (yyval.decl) = 0; }
    72327346    break;
    72337347
    7234   case 415:
    7235 
    7236 /* Line 1806 of yacc.c  */
    7237 #line 1584 "parser.yy"
     7348  case 418:
     7349
     7350/* Line 1806 of yacc.c  */
     7351#line 1598 "parser.yy"
    72387352    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72397353    break;
    72407354
    7241   case 418:
    7242 
    7243 /* Line 1806 of yacc.c  */
    7244 #line 1591 "parser.yy"
     7355  case 421:
     7356
     7357/* Line 1806 of yacc.c  */
     7358#line 1605 "parser.yy"
    72457359    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72467360    break;
    72477361
    7248   case 419:
    7249 
    7250 /* Line 1806 of yacc.c  */
    7251 #line 1593 "parser.yy"
     7362  case 422:
     7363
     7364/* Line 1806 of yacc.c  */
     7365#line 1607 "parser.yy"
    72527366    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72537367    break;
    72547368
    7255   case 421:
    7256 
    7257 /* Line 1806 of yacc.c  */
    7258 #line 1602 "parser.yy"
     7369  case 424:
     7370
     7371/* Line 1806 of yacc.c  */
     7372#line 1616 "parser.yy"
    72597373    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72607374    break;
    72617375
    7262   case 422:
    7263 
    7264 /* Line 1806 of yacc.c  */
    7265 #line 1605 "parser.yy"
     7376  case 425:
     7377
     7378/* Line 1806 of yacc.c  */
     7379#line 1619 "parser.yy"
    72667380    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72677381    break;
    72687382
    7269   case 423:
    7270 
    7271 /* Line 1806 of yacc.c  */
    7272 #line 1607 "parser.yy"
     7383  case 426:
     7384
     7385/* Line 1806 of yacc.c  */
     7386#line 1621 "parser.yy"
    72737387    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72747388    break;
    72757389
    7276   case 428:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1617 "parser.yy"
     7390  case 431:
     7391
     7392/* Line 1806 of yacc.c  */
     7393#line 1631 "parser.yy"
    72807394    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72817395    break;
    72827396
    7283   case 430:
    7284 
    7285 /* Line 1806 of yacc.c  */
    7286 #line 1623 "parser.yy"
     7397  case 433:
     7398
     7399/* Line 1806 of yacc.c  */
     7400#line 1637 "parser.yy"
    72877401    {
    72887402                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72917405    break;
    72927406
    7293   case 431:
    7294 
    7295 /* Line 1806 of yacc.c  */
    7296 #line 1628 "parser.yy"
     7407  case 434:
     7408
     7409/* Line 1806 of yacc.c  */
     7410#line 1642 "parser.yy"
    72977411    {
    72987412                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73017415    break;
    73027416
    7303   case 433:
    7304 
    7305 /* Line 1806 of yacc.c  */
    7306 #line 1637 "parser.yy"
     7417  case 436:
     7418
     7419/* Line 1806 of yacc.c  */
     7420#line 1651 "parser.yy"
    73077421    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73087422    break;
    73097423
    7310   case 434:
    7311 
    7312 /* Line 1806 of yacc.c  */
    7313 #line 1646 "parser.yy"
     7424  case 437:
     7425
     7426/* Line 1806 of yacc.c  */
     7427#line 1660 "parser.yy"
    73147428    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73157429    break;
    73167430
    7317   case 435:
    7318 
    7319 /* Line 1806 of yacc.c  */
    7320 #line 1648 "parser.yy"
     7431  case 438:
     7432
     7433/* Line 1806 of yacc.c  */
     7434#line 1662 "parser.yy"
    73217435    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73227436    break;
    73237437
    7324   case 447:
    7325 
    7326 /* Line 1806 of yacc.c  */
    7327 #line 1673 "parser.yy"
     7438  case 450:
     7439
     7440/* Line 1806 of yacc.c  */
     7441#line 1687 "parser.yy"
    73287442    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73297443    break;
    73307444
    7331   case 451:
    7332 
    7333 /* Line 1806 of yacc.c  */
    7334 #line 1681 "parser.yy"
     7445  case 454:
     7446
     7447/* Line 1806 of yacc.c  */
     7448#line 1695 "parser.yy"
    73357449    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73367450    break;
    73377451
    7338   case 452:
    7339 
    7340 /* Line 1806 of yacc.c  */
    7341 #line 1686 "parser.yy"
    7342     { (yyval.in) = 0; }
    7343     break;
    7344 
    7345   case 453:
    7346 
    7347 /* Line 1806 of yacc.c  */
    7348 #line 1688 "parser.yy"
    7349     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7350     break;
    7351 
    7352   case 454:
    7353 
    7354 /* Line 1806 of yacc.c  */
    7355 #line 1690 "parser.yy"
    7356     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7357     break;
    7358 
    73597452  case 455:
    7360 
    7361 /* Line 1806 of yacc.c  */
    7362 #line 1694 "parser.yy"
    7363     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7364     break;
    7365 
    7366   case 456:
    7367 
    7368 /* Line 1806 of yacc.c  */
    7369 #line 1695 "parser.yy"
    7370     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7371     break;
    7372 
    7373   case 457:
    73747453
    73757454/* Line 1806 of yacc.c  */
     
    73787457    break;
    73797458
     7459  case 456:
     7460
     7461/* Line 1806 of yacc.c  */
     7462#line 1702 "parser.yy"
     7463    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7464    break;
     7465
     7466  case 457:
     7467
     7468/* Line 1806 of yacc.c  */
     7469#line 1704 "parser.yy"
     7470    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7471    break;
     7472
     7473  case 458:
     7474
     7475/* Line 1806 of yacc.c  */
     7476#line 1708 "parser.yy"
     7477    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7478    break;
     7479
    73807480  case 459:
    73817481
    73827482/* Line 1806 of yacc.c  */
    7383 #line 1702 "parser.yy"
     7483#line 1709 "parser.yy"
     7484    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7485    break;
     7486
     7487  case 460:
     7488
     7489/* Line 1806 of yacc.c  */
     7490#line 1714 "parser.yy"
     7491    { (yyval.in) = 0; }
     7492    break;
     7493
     7494  case 462:
     7495
     7496/* Line 1806 of yacc.c  */
     7497#line 1716 "parser.yy"
    73847498    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73857499    break;
    73867500
    7387   case 460:
    7388 
    7389 /* Line 1806 of yacc.c  */
    7390 #line 1703 "parser.yy"
     7501  case 463:
     7502
     7503/* Line 1806 of yacc.c  */
     7504#line 1717 "parser.yy"
    73917505    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73927506    break;
    73937507
    7394   case 461:
    7395 
    7396 /* Line 1806 of yacc.c  */
    7397 #line 1705 "parser.yy"
     7508  case 464:
     7509
     7510/* Line 1806 of yacc.c  */
     7511#line 1719 "parser.yy"
    73987512    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73997513    break;
    74007514
    7401   case 463:
    7402 
    7403 /* Line 1806 of yacc.c  */
    7404 #line 1721 "parser.yy"
     7515  case 466:
     7516
     7517/* Line 1806 of yacc.c  */
     7518#line 1735 "parser.yy"
    74057519    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74067520    break;
    74077521
    7408   case 465:
    7409 
    7410 /* Line 1806 of yacc.c  */
    7411 #line 1727 "parser.yy"
     7522  case 468:
     7523
     7524/* Line 1806 of yacc.c  */
     7525#line 1741 "parser.yy"
    74127526    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    74137527    break;
    74147528
    7415   case 466:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1735 "parser.yy"
     7529  case 469:
     7530
     7531/* Line 1806 of yacc.c  */
     7532#line 1749 "parser.yy"
    74197533    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    74207534    break;
    74217535
    7422   case 467:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1737 "parser.yy"
     7536  case 470:
     7537
     7538/* Line 1806 of yacc.c  */
     7539#line 1751 "parser.yy"
    74267540    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    74277541    break;
    74287542
    7429   case 468:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1740 "parser.yy"
     7543  case 471:
     7544
     7545/* Line 1806 of yacc.c  */
     7546#line 1754 "parser.yy"
    74337547    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74347548    break;
    74357549
    7436   case 469:
    7437 
    7438 /* Line 1806 of yacc.c  */
    7439 #line 1742 "parser.yy"
     7550  case 472:
     7551
     7552/* Line 1806 of yacc.c  */
     7553#line 1756 "parser.yy"
    74407554    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74417555    break;
    74427556
    7443   case 470:
    7444 
    7445 /* Line 1806 of yacc.c  */
    7446 #line 1744 "parser.yy"
     7557  case 473:
     7558
     7559/* Line 1806 of yacc.c  */
     7560#line 1758 "parser.yy"
    74477561    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    74487562    break;
    74497563
    7450   case 471:
    7451 
    7452 /* Line 1806 of yacc.c  */
    7453 #line 1746 "parser.yy"
     7564  case 474:
     7565
     7566/* Line 1806 of yacc.c  */
     7567#line 1760 "parser.yy"
    74547568    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    74557569    break;
    74567570
    7457   case 473:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1770 "parser.yy"
     7571  case 476:
     7572
     7573/* Line 1806 of yacc.c  */
     7574#line 1784 "parser.yy"
    74617575    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74627576    break;
    74637577
    7464   case 474:
    7465 
    7466 /* Line 1806 of yacc.c  */
    7467 #line 1772 "parser.yy"
     7578  case 477:
     7579
     7580/* Line 1806 of yacc.c  */
     7581#line 1786 "parser.yy"
    74687582    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74697583    break;
    74707584
    7471   case 475:
    7472 
    7473 /* Line 1806 of yacc.c  */
    7474 #line 1774 "parser.yy"
     7585  case 478:
     7586
     7587/* Line 1806 of yacc.c  */
     7588#line 1788 "parser.yy"
    74757589    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74767590    break;
    74777591
    7478   case 477:
    7479 
    7480 /* Line 1806 of yacc.c  */
    7481 #line 1780 "parser.yy"
     7592  case 480:
     7593
     7594/* Line 1806 of yacc.c  */
     7595#line 1794 "parser.yy"
    74827596    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74837597    break;
    74847598
    7485   case 478:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1782 "parser.yy"
     7599  case 481:
     7600
     7601/* Line 1806 of yacc.c  */
     7602#line 1796 "parser.yy"
    74897603    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74907604    break;
    74917605
    7492   case 479:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1787 "parser.yy"
     7606  case 482:
     7607
     7608/* Line 1806 of yacc.c  */
     7609#line 1801 "parser.yy"
    74967610    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74977611    break;
    74987612
    7499   case 481:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1793 "parser.yy"
     7613  case 484:
     7614
     7615/* Line 1806 of yacc.c  */
     7616#line 1807 "parser.yy"
    75037617    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75047618    break;
    75057619
    7506   case 482:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1798 "parser.yy"
     7620  case 485:
     7621
     7622/* Line 1806 of yacc.c  */
     7623#line 1812 "parser.yy"
    75107624    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75117625    break;
    75127626
    7513   case 483:
    7514 
    7515 /* Line 1806 of yacc.c  */
    7516 #line 1800 "parser.yy"
     7627  case 486:
     7628
     7629/* Line 1806 of yacc.c  */
     7630#line 1814 "parser.yy"
    75177631    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75187632    break;
    75197633
    7520   case 485:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1806 "parser.yy"
     7634  case 488:
     7635
     7636/* Line 1806 of yacc.c  */
     7637#line 1820 "parser.yy"
    75247638    { (yyval.tclass) = DeclarationNode::Type; }
    75257639    break;
    75267640
    7527   case 486:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1808 "parser.yy"
     7641  case 489:
     7642
     7643/* Line 1806 of yacc.c  */
     7644#line 1822 "parser.yy"
    75317645    { (yyval.tclass) = DeclarationNode::Ftype; }
    75327646    break;
    75337647
    7534   case 487:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1810 "parser.yy"
     7648  case 490:
     7649
     7650/* Line 1806 of yacc.c  */
     7651#line 1824 "parser.yy"
    75387652    { (yyval.tclass) = DeclarationNode::Dtype; }
    75397653    break;
    75407654
    7541   case 488:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1815 "parser.yy"
    7545     { (yyval.decl) = 0; }
    7546     break;
    7547 
    7548   case 489:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1817 "parser.yy"
    7552     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7553     break;
    7554 
    7555   case 490:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1822 "parser.yy"
    7559     {
    7560                         typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
    7561                         (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
    7562                 }
    7563     break;
    7564 
    75657655  case 491:
    7566 
    7567 /* Line 1806 of yacc.c  */
    7568 #line 1827 "parser.yy"
    7569     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7570     break;
    7571 
    7572   case 492:
    75737656
    75747657/* Line 1806 of yacc.c  */
     
    75777660    break;
    75787661
     7662  case 492:
     7663
     7664/* Line 1806 of yacc.c  */
     7665#line 1831 "parser.yy"
     7666    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     7667    break;
     7668
    75797669  case 493:
    75807670
    75817671/* Line 1806 of yacc.c  */
    7582 #line 1834 "parser.yy"
     7672#line 1836 "parser.yy"
     7673    {
     7674                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     7675                        (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
     7676                }
     7677    break;
     7678
     7679  case 494:
     7680
     7681/* Line 1806 of yacc.c  */
     7682#line 1841 "parser.yy"
     7683    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7684    break;
     7685
     7686  case 495:
     7687
     7688/* Line 1806 of yacc.c  */
     7689#line 1843 "parser.yy"
     7690    { (yyval.decl) = 0; }
     7691    break;
     7692
     7693  case 496:
     7694
     7695/* Line 1806 of yacc.c  */
     7696#line 1848 "parser.yy"
    75837697    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    75847698    break;
    75857699
    7586   case 495:
    7587 
    7588 /* Line 1806 of yacc.c  */
    7589 #line 1837 "parser.yy"
     7700  case 498:
     7701
     7702/* Line 1806 of yacc.c  */
     7703#line 1851 "parser.yy"
    75907704    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    75917705    break;
    75927706
    7593   case 496:
    7594 
    7595 /* Line 1806 of yacc.c  */
    7596 #line 1839 "parser.yy"
     7707  case 499:
     7708
     7709/* Line 1806 of yacc.c  */
     7710#line 1853 "parser.yy"
    75977711    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75987712    break;
    75997713
    7600   case 497:
    7601 
    7602 /* Line 1806 of yacc.c  */
    7603 #line 1844 "parser.yy"
     7714  case 500:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1858 "parser.yy"
    76047718    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76057719    break;
    76067720
    7607   case 498:
    7608 
    7609 /* Line 1806 of yacc.c  */
    7610 #line 1846 "parser.yy"
     7721  case 501:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1860 "parser.yy"
    76117725    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76127726    break;
    76137727
    7614   case 499:
    7615 
    7616 /* Line 1806 of yacc.c  */
    7617 #line 1848 "parser.yy"
     7728  case 502:
     7729
     7730/* Line 1806 of yacc.c  */
     7731#line 1862 "parser.yy"
    76187732    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76197733    break;
    76207734
    7621   case 500:
    7622 
    7623 /* Line 1806 of yacc.c  */
    7624 #line 1853 "parser.yy"
     7735  case 503:
     7736
     7737/* Line 1806 of yacc.c  */
     7738#line 1867 "parser.yy"
    76257739    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76267740    break;
    76277741
    7628   case 501:
    7629 
    7630 /* Line 1806 of yacc.c  */
    7631 #line 1855 "parser.yy"
     7742  case 504:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 1869 "parser.yy"
    76327746    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76337747    break;
    76347748
    7635   case 502:
    7636 
    7637 /* Line 1806 of yacc.c  */
    7638 #line 1860 "parser.yy"
     7749  case 505:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1874 "parser.yy"
    76397753    {
    76407754                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76437757    break;
    76447758
    7645   case 503:
    7646 
    7647 /* Line 1806 of yacc.c  */
    7648 #line 1865 "parser.yy"
     7759  case 506:
     7760
     7761/* Line 1806 of yacc.c  */
     7762#line 1879 "parser.yy"
    76497763    {
    76507764                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76537767    break;
    76547768
    7655   case 504:
    7656 
    7657 /* Line 1806 of yacc.c  */
    7658 #line 1873 "parser.yy"
     7769  case 507:
     7770
     7771/* Line 1806 of yacc.c  */
     7772#line 1887 "parser.yy"
    76597773    {
    76607774                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
    7661                         (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
     7775                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
    76627776                }
    76637777    break;
    76647778
    7665   case 505:
    7666 
    7667 /* Line 1806 of yacc.c  */
    7668 #line 1878 "parser.yy"
     7779  case 508:
     7780
     7781/* Line 1806 of yacc.c  */
     7782#line 1892 "parser.yy"
    76697783    {
    7670                         typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     7784                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
    76717785                        typedefTable.enterScope();
    76727786                }
    76737787    break;
    76747788
    7675   case 506:
    7676 
    7677 /* Line 1806 of yacc.c  */
    7678 #line 1883 "parser.yy"
     7789  case 509:
     7790
     7791/* Line 1806 of yacc.c  */
     7792#line 1897 "parser.yy"
    76797793    {
    7680                         typedefTable.leaveContext();
     7794                        typedefTable.leaveTrait();
    76817795                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
    7682                         (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
     7796                        (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
    76837797                }
    76847798    break;
    76857799
    7686   case 508:
    7687 
    7688 /* Line 1806 of yacc.c  */
    7689 #line 1893 "parser.yy"
     7800  case 511:
     7801
     7802/* Line 1806 of yacc.c  */
     7803#line 1907 "parser.yy"
    76907804    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76917805    break;
    76927806
    7693   case 511:
    7694 
    7695 /* Line 1806 of yacc.c  */
    7696 #line 1903 "parser.yy"
     7807  case 514:
     7808
     7809/* Line 1806 of yacc.c  */
     7810#line 1917 "parser.yy"
    76977811    {
    76987812                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77017815    break;
    77027816
    7703   case 512:
    7704 
    7705 /* Line 1806 of yacc.c  */
    7706 #line 1908 "parser.yy"
     7817  case 515:
     7818
     7819/* Line 1806 of yacc.c  */
     7820#line 1922 "parser.yy"
    77077821    {
    77087822                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77117825    break;
    77127826
    7713   case 513:
    7714 
    7715 /* Line 1806 of yacc.c  */
    7716 #line 1913 "parser.yy"
     7827  case 516:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 1927 "parser.yy"
    77177831    {
    77187832                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77217835    break;
    77227836
    7723   case 514:
    7724 
    7725 /* Line 1806 of yacc.c  */
    7726 #line 1921 "parser.yy"
     7837  case 517:
     7838
     7839/* Line 1806 of yacc.c  */
     7840#line 1935 "parser.yy"
    77277841    {
    77287842                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77317845    break;
    77327846
    7733   case 515:
    7734 
    7735 /* Line 1806 of yacc.c  */
    7736 #line 1926 "parser.yy"
     7847  case 518:
     7848
     7849/* Line 1806 of yacc.c  */
     7850#line 1940 "parser.yy"
    77377851    {
    77387852                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77417855    break;
    77427856
    7743   case 516:
    7744 
    7745 /* Line 1806 of yacc.c  */
    7746 #line 1936 "parser.yy"
     7857  case 519:
     7858
     7859/* Line 1806 of yacc.c  */
     7860#line 1950 "parser.yy"
    77477861    {}
    77487862    break;
    77497863
    7750   case 517:
    7751 
    7752 /* Line 1806 of yacc.c  */
    7753 #line 1938 "parser.yy"
     7864  case 520:
     7865
     7866/* Line 1806 of yacc.c  */
     7867#line 1952 "parser.yy"
    77547868    {
    77557869                        if ( theTree ) {
     
    77617875    break;
    77627876
    7763   case 519:
    7764 
    7765 /* Line 1806 of yacc.c  */
    7766 #line 1950 "parser.yy"
     7877  case 522:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 1964 "parser.yy"
    77677881    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77687882    break;
    77697883
    7770   case 520:
    7771 
    7772 /* Line 1806 of yacc.c  */
    7773 #line 1955 "parser.yy"
     7884  case 523:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 1969 "parser.yy"
    77747888    { (yyval.decl) = 0; }
    77757889    break;
    77767890
    7777   case 524:
    7778 
    7779 /* Line 1806 of yacc.c  */
    7780 #line 1963 "parser.yy"
     7891  case 527:
     7892
     7893/* Line 1806 of yacc.c  */
     7894#line 1977 "parser.yy"
    77817895    {}
    77827896    break;
    77837897
    7784   case 525:
    7785 
    7786 /* Line 1806 of yacc.c  */
    7787 #line 1965 "parser.yy"
     7898  case 528:
     7899
     7900/* Line 1806 of yacc.c  */
     7901#line 1979 "parser.yy"
    77887902    {
    77897903                        linkageStack.push( linkage );
     
    77927906    break;
    77937907
    7794   case 526:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 1970 "parser.yy"
     7908  case 529:
     7909
     7910/* Line 1806 of yacc.c  */
     7911#line 1984 "parser.yy"
    77987912    {
    77997913                        linkage = linkageStack.top();
     
    78037917    break;
    78047918
    7805   case 527:
    7806 
    7807 /* Line 1806 of yacc.c  */
    7808 #line 1976 "parser.yy"
     7919  case 530:
     7920
     7921/* Line 1806 of yacc.c  */
     7922#line 1990 "parser.yy"
    78097923    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78107924    break;
    78117925
    7812   case 529:
    7813 
    7814 /* Line 1806 of yacc.c  */
    7815 #line 1986 "parser.yy"
     7926  case 532:
     7927
     7928/* Line 1806 of yacc.c  */
     7929#line 2000 "parser.yy"
    78167930    {
    78177931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78217935    break;
    78227936
    7823   case 530:
    7824 
    7825 /* Line 1806 of yacc.c  */
    7826 #line 1992 "parser.yy"
     7937  case 533:
     7938
     7939/* Line 1806 of yacc.c  */
     7940#line 2006 "parser.yy"
    78277941    {
    78287942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78327946    break;
    78337947
    7834   case 531:
    7835 
    7836 /* Line 1806 of yacc.c  */
    7837 #line 2001 "parser.yy"
     7948  case 534:
     7949
     7950/* Line 1806 of yacc.c  */
     7951#line 2015 "parser.yy"
    78387952    {
    78397953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78437957    break;
    78447958
    7845   case 532:
    7846 
    7847 /* Line 1806 of yacc.c  */
    7848 #line 2007 "parser.yy"
     7959  case 535:
     7960
     7961/* Line 1806 of yacc.c  */
     7962#line 2021 "parser.yy"
    78497963    {
    78507964                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78547968    break;
    78557969
    7856   case 533:
    7857 
    7858 /* Line 1806 of yacc.c  */
    7859 #line 2013 "parser.yy"
     7970  case 536:
     7971
     7972/* Line 1806 of yacc.c  */
     7973#line 2027 "parser.yy"
    78607974    {
    78617975                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78657979    break;
    78667980
    7867   case 534:
    7868 
    7869 /* Line 1806 of yacc.c  */
    7870 #line 2019 "parser.yy"
     7981  case 537:
     7982
     7983/* Line 1806 of yacc.c  */
     7984#line 2033 "parser.yy"
    78717985    {
    78727986                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78767990    break;
    78777991
    7878   case 535:
    7879 
    7880 /* Line 1806 of yacc.c  */
    7881 #line 2025 "parser.yy"
     7992  case 538:
     7993
     7994/* Line 1806 of yacc.c  */
     7995#line 2039 "parser.yy"
    78827996    {
    78837997                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78878001    break;
    78888002
    7889   case 536:
    7890 
    7891 /* Line 1806 of yacc.c  */
    7892 #line 2033 "parser.yy"
     8003  case 539:
     8004
     8005/* Line 1806 of yacc.c  */
     8006#line 2047 "parser.yy"
    78938007    {
    78948008                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78988012    break;
    78998013
    7900   case 537:
    7901 
    7902 /* Line 1806 of yacc.c  */
    7903 #line 2039 "parser.yy"
     8014  case 540:
     8015
     8016/* Line 1806 of yacc.c  */
     8017#line 2053 "parser.yy"
    79048018    {
    79058019                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79098023    break;
    79108024
    7911   case 538:
    7912 
    7913 /* Line 1806 of yacc.c  */
    7914 #line 2047 "parser.yy"
     8025  case 541:
     8026
     8027/* Line 1806 of yacc.c  */
     8028#line 2061 "parser.yy"
    79158029    {
    79168030                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79208034    break;
    79218035
    7922   case 539:
    7923 
    7924 /* Line 1806 of yacc.c  */
    7925 #line 2053 "parser.yy"
     8036  case 542:
     8037
     8038/* Line 1806 of yacc.c  */
     8039#line 2067 "parser.yy"
    79268040    {
    79278041                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79318045    break;
    79328046
    7933   case 543:
    7934 
    7935 /* Line 1806 of yacc.c  */
    7936 #line 2068 "parser.yy"
     8047  case 546:
     8048
     8049/* Line 1806 of yacc.c  */
     8050#line 2082 "parser.yy"
    79378051    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79388052    break;
    79398053
    7940   case 546:
    7941 
    7942 /* Line 1806 of yacc.c  */
    7943 #line 2078 "parser.yy"
     8054  case 549:
     8055
     8056/* Line 1806 of yacc.c  */
     8057#line 2092 "parser.yy"
    79448058    { (yyval.decl) = 0; }
    79458059    break;
    79468060
    7947   case 549:
    7948 
    7949 /* Line 1806 of yacc.c  */
    7950 #line 2085 "parser.yy"
     8061  case 552:
     8062
     8063/* Line 1806 of yacc.c  */
     8064#line 2099 "parser.yy"
    79518065    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79528066    break;
    79538067
    7954   case 550:
    7955 
    7956 /* Line 1806 of yacc.c  */
    7957 #line 2091 "parser.yy"
     8068  case 553:
     8069
     8070/* Line 1806 of yacc.c  */
     8071#line 2105 "parser.yy"
    79588072    { (yyval.decl) = 0; }
    79598073    break;
    79608074
    7961   case 556:
    7962 
    7963 /* Line 1806 of yacc.c  */
    7964 #line 2106 "parser.yy"
     8075  case 559:
     8076
     8077/* Line 1806 of yacc.c  */
     8078#line 2120 "parser.yy"
    79658079    {}
    79668080    break;
    79678081
    7968   case 557:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2107 "parser.yy"
     8082  case 560:
     8083
     8084/* Line 1806 of yacc.c  */
     8085#line 2121 "parser.yy"
    79728086    {}
    79738087    break;
    79748088
    7975   case 558:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2108 "parser.yy"
     8089  case 561:
     8090
     8091/* Line 1806 of yacc.c  */
     8092#line 2122 "parser.yy"
    79798093    {}
    79808094    break;
    79818095
    7982   case 559:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2109 "parser.yy"
     8096  case 562:
     8097
     8098/* Line 1806 of yacc.c  */
     8099#line 2123 "parser.yy"
    79868100    {}
    79878101    break;
    79888102
    7989   case 560:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2144 "parser.yy"
     8103  case 563:
     8104
     8105/* Line 1806 of yacc.c  */
     8106#line 2158 "parser.yy"
    79938107    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79948108    break;
    79958109
    7996   case 562:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2147 "parser.yy"
     8110  case 565:
     8111
     8112/* Line 1806 of yacc.c  */
     8113#line 2161 "parser.yy"
    80008114    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80018115    break;
    80028116
    8003   case 563:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2149 "parser.yy"
     8117  case 566:
     8118
     8119/* Line 1806 of yacc.c  */
     8120#line 2163 "parser.yy"
    80078121    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80088122    break;
    80098123
    8010   case 564:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2154 "parser.yy"
     8124  case 567:
     8125
     8126/* Line 1806 of yacc.c  */
     8127#line 2168 "parser.yy"
    80148128    {
    80158129                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80188132    break;
    80198133
    8020   case 565:
    8021 
    8022 /* Line 1806 of yacc.c  */
    8023 #line 2159 "parser.yy"
     8134  case 568:
     8135
     8136/* Line 1806 of yacc.c  */
     8137#line 2173 "parser.yy"
    80248138    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80258139    break;
    80268140
    8027   case 566:
    8028 
    8029 /* Line 1806 of yacc.c  */
    8030 #line 2164 "parser.yy"
     8141  case 569:
     8142
     8143/* Line 1806 of yacc.c  */
     8144#line 2178 "parser.yy"
    80318145    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80328146    break;
    80338147
    8034   case 567:
    8035 
    8036 /* Line 1806 of yacc.c  */
    8037 #line 2166 "parser.yy"
     8148  case 570:
     8149
     8150/* Line 1806 of yacc.c  */
     8151#line 2180 "parser.yy"
    80388152    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80398153    break;
    80408154
    8041   case 568:
    8042 
    8043 /* Line 1806 of yacc.c  */
    8044 #line 2168 "parser.yy"
     8155  case 571:
     8156
     8157/* Line 1806 of yacc.c  */
     8158#line 2182 "parser.yy"
    80458159    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80468160    break;
    80478161
    8048   case 569:
    8049 
    8050 /* Line 1806 of yacc.c  */
    8051 #line 2173 "parser.yy"
     8162  case 572:
     8163
     8164/* Line 1806 of yacc.c  */
     8165#line 2187 "parser.yy"
    80528166    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80538167    break;
    80548168
    8055   case 570:
    8056 
    8057 /* Line 1806 of yacc.c  */
    8058 #line 2175 "parser.yy"
     8169  case 573:
     8170
     8171/* Line 1806 of yacc.c  */
     8172#line 2189 "parser.yy"
    80598173    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80608174    break;
    80618175
    8062   case 571:
    8063 
    8064 /* Line 1806 of yacc.c  */
    8065 #line 2177 "parser.yy"
     8176  case 574:
     8177
     8178/* Line 1806 of yacc.c  */
     8179#line 2191 "parser.yy"
    80668180    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80678181    break;
    80688182
    8069   case 572:
    8070 
    8071 /* Line 1806 of yacc.c  */
    8072 #line 2179 "parser.yy"
     8183  case 575:
     8184
     8185/* Line 1806 of yacc.c  */
     8186#line 2193 "parser.yy"
    80738187    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80748188    break;
    80758189
    8076   case 573:
    8077 
    8078 /* Line 1806 of yacc.c  */
    8079 #line 2184 "parser.yy"
     8190  case 576:
     8191
     8192/* Line 1806 of yacc.c  */
     8193#line 2198 "parser.yy"
    80808194    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80818195    break;
    80828196
    8083   case 574:
    8084 
    8085 /* Line 1806 of yacc.c  */
    8086 #line 2186 "parser.yy"
     8197  case 577:
     8198
     8199/* Line 1806 of yacc.c  */
     8200#line 2200 "parser.yy"
    80878201    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80888202    break;
    80898203
    8090   case 575:
    8091 
    8092 /* Line 1806 of yacc.c  */
    8093 #line 2196 "parser.yy"
     8204  case 578:
     8205
     8206/* Line 1806 of yacc.c  */
     8207#line 2210 "parser.yy"
    80948208    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80958209    break;
    80968210
    8097   case 577:
    8098 
    8099 /* Line 1806 of yacc.c  */
    8100 #line 2199 "parser.yy"
     8211  case 580:
     8212
     8213/* Line 1806 of yacc.c  */
     8214#line 2213 "parser.yy"
    81018215    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81028216    break;
    81038217
    8104   case 578:
    8105 
    8106 /* Line 1806 of yacc.c  */
    8107 #line 2204 "parser.yy"
     8218  case 581:
     8219
     8220/* Line 1806 of yacc.c  */
     8221#line 2218 "parser.yy"
    81088222    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81098223    break;
    81108224
    8111   case 579:
    8112 
    8113 /* Line 1806 of yacc.c  */
    8114 #line 2206 "parser.yy"
     8225  case 582:
     8226
     8227/* Line 1806 of yacc.c  */
     8228#line 2220 "parser.yy"
    81158229    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81168230    break;
    81178231
    8118   case 580:
    8119 
    8120 /* Line 1806 of yacc.c  */
    8121 #line 2208 "parser.yy"
     8232  case 583:
     8233
     8234/* Line 1806 of yacc.c  */
     8235#line 2222 "parser.yy"
    81228236    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81238237    break;
    81248238
    8125   case 581:
    8126 
    8127 /* Line 1806 of yacc.c  */
    8128 #line 2213 "parser.yy"
     8239  case 584:
     8240
     8241/* Line 1806 of yacc.c  */
     8242#line 2227 "parser.yy"
    81298243    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81308244    break;
    81318245
    8132   case 582:
    8133 
    8134 /* Line 1806 of yacc.c  */
    8135 #line 2215 "parser.yy"
     8246  case 585:
     8247
     8248/* Line 1806 of yacc.c  */
     8249#line 2229 "parser.yy"
    81368250    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81378251    break;
    81388252
    8139   case 583:
    8140 
    8141 /* Line 1806 of yacc.c  */
    8142 #line 2217 "parser.yy"
     8253  case 586:
     8254
     8255/* Line 1806 of yacc.c  */
     8256#line 2231 "parser.yy"
    81438257    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81448258    break;
    81458259
    8146   case 584:
    8147 
    8148 /* Line 1806 of yacc.c  */
    8149 #line 2222 "parser.yy"
     8260  case 587:
     8261
     8262/* Line 1806 of yacc.c  */
     8263#line 2236 "parser.yy"
    81508264    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81518265    break;
    81528266
    8153   case 585:
    8154 
    8155 /* Line 1806 of yacc.c  */
    8156 #line 2224 "parser.yy"
     8267  case 588:
     8268
     8269/* Line 1806 of yacc.c  */
     8270#line 2238 "parser.yy"
    81578271    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81588272    break;
    81598273
    8160   case 586:
    8161 
    8162 /* Line 1806 of yacc.c  */
    8163 #line 2226 "parser.yy"
     8274  case 589:
     8275
     8276/* Line 1806 of yacc.c  */
     8277#line 2240 "parser.yy"
    81648278    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81658279    break;
    81668280
    8167   case 590:
    8168 
    8169 /* Line 1806 of yacc.c  */
    8170 #line 2241 "parser.yy"
     8281  case 593:
     8282
     8283/* Line 1806 of yacc.c  */
     8284#line 2255 "parser.yy"
    81718285    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81728286    break;
    81738287
    8174   case 591:
    8175 
    8176 /* Line 1806 of yacc.c  */
    8177 #line 2243 "parser.yy"
     8288  case 594:
     8289
     8290/* Line 1806 of yacc.c  */
     8291#line 2257 "parser.yy"
    81788292    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81798293    break;
    81808294
    8181   case 592:
    8182 
    8183 /* Line 1806 of yacc.c  */
    8184 #line 2245 "parser.yy"
     8295  case 595:
     8296
     8297/* Line 1806 of yacc.c  */
     8298#line 2259 "parser.yy"
    81858299    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81868300    break;
    81878301
    8188   case 593:
    8189 
    8190 /* Line 1806 of yacc.c  */
    8191 #line 2250 "parser.yy"
     8302  case 596:
     8303
     8304/* Line 1806 of yacc.c  */
     8305#line 2264 "parser.yy"
    81928306    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81938307    break;
    81948308
    8195   case 594:
    8196 
    8197 /* Line 1806 of yacc.c  */
    8198 #line 2252 "parser.yy"
     8309  case 597:
     8310
     8311/* Line 1806 of yacc.c  */
     8312#line 2266 "parser.yy"
    81998313    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82008314    break;
    82018315
    8202   case 595:
    8203 
    8204 /* Line 1806 of yacc.c  */
    8205 #line 2254 "parser.yy"
     8316  case 598:
     8317
     8318/* Line 1806 of yacc.c  */
     8319#line 2268 "parser.yy"
    82068320    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82078321    break;
    82088322
    8209   case 596:
    8210 
    8211 /* Line 1806 of yacc.c  */
    8212 #line 2259 "parser.yy"
     8323  case 599:
     8324
     8325/* Line 1806 of yacc.c  */
     8326#line 2273 "parser.yy"
    82138327    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82148328    break;
    82158329
    8216   case 597:
    8217 
    8218 /* Line 1806 of yacc.c  */
    8219 #line 2261 "parser.yy"
     8330  case 600:
     8331
     8332/* Line 1806 of yacc.c  */
     8333#line 2275 "parser.yy"
    82208334    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82218335    break;
    82228336
    8223   case 598:
    8224 
    8225 /* Line 1806 of yacc.c  */
    8226 #line 2263 "parser.yy"
     8337  case 601:
     8338
     8339/* Line 1806 of yacc.c  */
     8340#line 2277 "parser.yy"
    82278341    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82288342    break;
    82298343
    8230   case 599:
    8231 
    8232 /* Line 1806 of yacc.c  */
    8233 #line 2278 "parser.yy"
     8344  case 602:
     8345
     8346/* Line 1806 of yacc.c  */
     8347#line 2292 "parser.yy"
    82348348    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82358349    break;
    82368350
    8237   case 601:
    8238 
    8239 /* Line 1806 of yacc.c  */
    8240 #line 2281 "parser.yy"
     8351  case 604:
     8352
     8353/* Line 1806 of yacc.c  */
     8354#line 2295 "parser.yy"
    82418355    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82428356    break;
    82438357
    8244   case 602:
    8245 
    8246 /* Line 1806 of yacc.c  */
    8247 #line 2283 "parser.yy"
     8358  case 605:
     8359
     8360/* Line 1806 of yacc.c  */
     8361#line 2297 "parser.yy"
    82488362    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82498363    break;
    82508364
    8251   case 604:
    8252 
    8253 /* Line 1806 of yacc.c  */
    8254 #line 2289 "parser.yy"
     8365  case 607:
     8366
     8367/* Line 1806 of yacc.c  */
     8368#line 2303 "parser.yy"
    82558369    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82568370    break;
    82578371
    8258   case 605:
    8259 
    8260 /* Line 1806 of yacc.c  */
    8261 #line 2294 "parser.yy"
     8372  case 608:
     8373
     8374/* Line 1806 of yacc.c  */
     8375#line 2308 "parser.yy"
    82628376    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82638377    break;
    82648378
    8265   case 606:
    8266 
    8267 /* Line 1806 of yacc.c  */
    8268 #line 2296 "parser.yy"
     8379  case 609:
     8380
     8381/* Line 1806 of yacc.c  */
     8382#line 2310 "parser.yy"
    82698383    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82708384    break;
    82718385
    8272   case 607:
    8273 
    8274 /* Line 1806 of yacc.c  */
    8275 #line 2298 "parser.yy"
     8386  case 610:
     8387
     8388/* Line 1806 of yacc.c  */
     8389#line 2312 "parser.yy"
    82768390    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82778391    break;
    82788392
    8279   case 608:
    8280 
    8281 /* Line 1806 of yacc.c  */
    8282 #line 2303 "parser.yy"
     8393  case 611:
     8394
     8395/* Line 1806 of yacc.c  */
     8396#line 2317 "parser.yy"
    82838397    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82848398    break;
    82858399
    8286   case 609:
    8287 
    8288 /* Line 1806 of yacc.c  */
    8289 #line 2305 "parser.yy"
     8400  case 612:
     8401
     8402/* Line 1806 of yacc.c  */
     8403#line 2319 "parser.yy"
    82908404    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82918405    break;
    82928406
    8293   case 610:
    8294 
    8295 /* Line 1806 of yacc.c  */
    8296 #line 2307 "parser.yy"
     8407  case 613:
     8408
     8409/* Line 1806 of yacc.c  */
     8410#line 2321 "parser.yy"
    82978411    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82988412    break;
    82998413
    8300   case 611:
    8301 
    8302 /* Line 1806 of yacc.c  */
    8303 #line 2309 "parser.yy"
     8414  case 614:
     8415
     8416/* Line 1806 of yacc.c  */
     8417#line 2323 "parser.yy"
    83048418    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83058419    break;
    83068420
    8307   case 612:
    8308 
    8309 /* Line 1806 of yacc.c  */
    8310 #line 2314 "parser.yy"
     8421  case 615:
     8422
     8423/* Line 1806 of yacc.c  */
     8424#line 2328 "parser.yy"
    83118425    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83128426    break;
    83138427
    8314   case 613:
    8315 
    8316 /* Line 1806 of yacc.c  */
    8317 #line 2316 "parser.yy"
     8428  case 616:
     8429
     8430/* Line 1806 of yacc.c  */
     8431#line 2330 "parser.yy"
    83188432    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83198433    break;
    83208434
    8321   case 614:
    8322 
    8323 /* Line 1806 of yacc.c  */
    8324 #line 2318 "parser.yy"
     8435  case 617:
     8436
     8437/* Line 1806 of yacc.c  */
     8438#line 2332 "parser.yy"
    83258439    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83268440    break;
    83278441
    8328   case 615:
    8329 
    8330 /* Line 1806 of yacc.c  */
    8331 #line 2328 "parser.yy"
     8442  case 618:
     8443
     8444/* Line 1806 of yacc.c  */
     8445#line 2342 "parser.yy"
    83328446    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83338447    break;
    83348448
    8335   case 617:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2331 "parser.yy"
     8449  case 620:
     8450
     8451/* Line 1806 of yacc.c  */
     8452#line 2345 "parser.yy"
    83398453    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83408454    break;
    83418455
    8342   case 618:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2333 "parser.yy"
     8456  case 621:
     8457
     8458/* Line 1806 of yacc.c  */
     8459#line 2347 "parser.yy"
    83468460    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83478461    break;
    83488462
    8349   case 619:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2338 "parser.yy"
     8463  case 622:
     8464
     8465/* Line 1806 of yacc.c  */
     8466#line 2352 "parser.yy"
    83538467    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83548468    break;
    83558469
    8356   case 620:
    8357 
    8358 /* Line 1806 of yacc.c  */
    8359 #line 2340 "parser.yy"
     8470  case 623:
     8471
     8472/* Line 1806 of yacc.c  */
     8473#line 2354 "parser.yy"
    83608474    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83618475    break;
    83628476
    8363   case 621:
    8364 
    8365 /* Line 1806 of yacc.c  */
    8366 #line 2342 "parser.yy"
     8477  case 624:
     8478
     8479/* Line 1806 of yacc.c  */
     8480#line 2356 "parser.yy"
    83678481    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83688482    break;
    83698483
    8370   case 622:
    8371 
    8372 /* Line 1806 of yacc.c  */
    8373 #line 2347 "parser.yy"
     8484  case 625:
     8485
     8486/* Line 1806 of yacc.c  */
     8487#line 2361 "parser.yy"
    83748488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83758489    break;
    83768490
    8377   case 623:
    8378 
    8379 /* Line 1806 of yacc.c  */
    8380 #line 2349 "parser.yy"
     8491  case 626:
     8492
     8493/* Line 1806 of yacc.c  */
     8494#line 2363 "parser.yy"
    83818495    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83828496    break;
    83838497
    8384   case 624:
    8385 
    8386 /* Line 1806 of yacc.c  */
    8387 #line 2351 "parser.yy"
     8498  case 627:
     8499
     8500/* Line 1806 of yacc.c  */
     8501#line 2365 "parser.yy"
    83888502    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83898503    break;
    83908504
    8391   case 625:
    8392 
    8393 /* Line 1806 of yacc.c  */
    8394 #line 2353 "parser.yy"
     8505  case 628:
     8506
     8507/* Line 1806 of yacc.c  */
     8508#line 2367 "parser.yy"
    83958509    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83968510    break;
    83978511
    8398   case 626:
    8399 
    8400 /* Line 1806 of yacc.c  */
    8401 #line 2358 "parser.yy"
     8512  case 629:
     8513
     8514/* Line 1806 of yacc.c  */
     8515#line 2372 "parser.yy"
    84028516    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84038517    break;
    84048518
    8405   case 627:
    8406 
    8407 /* Line 1806 of yacc.c  */
    8408 #line 2360 "parser.yy"
     8519  case 630:
     8520
     8521/* Line 1806 of yacc.c  */
     8522#line 2374 "parser.yy"
    84098523    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84108524    break;
    84118525
    8412   case 628:
    8413 
    8414 /* Line 1806 of yacc.c  */
    8415 #line 2362 "parser.yy"
     8526  case 631:
     8527
     8528/* Line 1806 of yacc.c  */
     8529#line 2376 "parser.yy"
    84168530    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84178531    break;
    84188532
    8419   case 629:
    8420 
    8421 /* Line 1806 of yacc.c  */
    8422 #line 2393 "parser.yy"
     8533  case 632:
     8534
     8535/* Line 1806 of yacc.c  */
     8536#line 2407 "parser.yy"
    84238537    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84248538    break;
    84258539
    8426   case 631:
    8427 
    8428 /* Line 1806 of yacc.c  */
    8429 #line 2396 "parser.yy"
     8540  case 634:
     8541
     8542/* Line 1806 of yacc.c  */
     8543#line 2410 "parser.yy"
    84308544    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84318545    break;
    84328546
    8433   case 632:
    8434 
    8435 /* Line 1806 of yacc.c  */
    8436 #line 2398 "parser.yy"
     8547  case 635:
     8548
     8549/* Line 1806 of yacc.c  */
     8550#line 2412 "parser.yy"
    84378551    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84388552    break;
    84398553
    8440   case 633:
    8441 
    8442 /* Line 1806 of yacc.c  */
    8443 #line 2403 "parser.yy"
     8554  case 636:
     8555
     8556/* Line 1806 of yacc.c  */
     8557#line 2417 "parser.yy"
    84448558    {
    84458559                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84488562    break;
    84498563
    8450   case 634:
    8451 
    8452 /* Line 1806 of yacc.c  */
    8453 #line 2408 "parser.yy"
     8564  case 637:
     8565
     8566/* Line 1806 of yacc.c  */
     8567#line 2422 "parser.yy"
    84548568    {
    84558569                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84588572    break;
    84598573
    8460   case 635:
    8461 
    8462 /* Line 1806 of yacc.c  */
    8463 #line 2416 "parser.yy"
     8574  case 638:
     8575
     8576/* Line 1806 of yacc.c  */
     8577#line 2430 "parser.yy"
    84648578    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84658579    break;
    84668580
    8467   case 636:
    8468 
    8469 /* Line 1806 of yacc.c  */
    8470 #line 2418 "parser.yy"
     8581  case 639:
     8582
     8583/* Line 1806 of yacc.c  */
     8584#line 2432 "parser.yy"
    84718585    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84728586    break;
    84738587
    8474   case 637:
    8475 
    8476 /* Line 1806 of yacc.c  */
    8477 #line 2420 "parser.yy"
     8588  case 640:
     8589
     8590/* Line 1806 of yacc.c  */
     8591#line 2434 "parser.yy"
    84788592    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84798593    break;
    84808594
    8481   case 638:
    8482 
    8483 /* Line 1806 of yacc.c  */
    8484 #line 2425 "parser.yy"
     8595  case 641:
     8596
     8597/* Line 1806 of yacc.c  */
     8598#line 2439 "parser.yy"
    84858599    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84868600    break;
    84878601
    8488   case 639:
    8489 
    8490 /* Line 1806 of yacc.c  */
    8491 #line 2427 "parser.yy"
     8602  case 642:
     8603
     8604/* Line 1806 of yacc.c  */
     8605#line 2441 "parser.yy"
    84928606    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84938607    break;
    84948608
    8495   case 640:
    8496 
    8497 /* Line 1806 of yacc.c  */
    8498 #line 2432 "parser.yy"
     8609  case 643:
     8610
     8611/* Line 1806 of yacc.c  */
     8612#line 2446 "parser.yy"
    84998613    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85008614    break;
    85018615
    8502   case 641:
    8503 
    8504 /* Line 1806 of yacc.c  */
    8505 #line 2434 "parser.yy"
     8616  case 644:
     8617
     8618/* Line 1806 of yacc.c  */
     8619#line 2448 "parser.yy"
    85068620    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85078621    break;
    85088622
    8509   case 643:
    8510 
    8511 /* Line 1806 of yacc.c  */
    8512 #line 2449 "parser.yy"
     8623  case 646:
     8624
     8625/* Line 1806 of yacc.c  */
     8626#line 2463 "parser.yy"
    85138627    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85148628    break;
    85158629
    8516   case 644:
    8517 
    8518 /* Line 1806 of yacc.c  */
    8519 #line 2451 "parser.yy"
     8630  case 647:
     8631
     8632/* Line 1806 of yacc.c  */
     8633#line 2465 "parser.yy"
    85208634    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85218635    break;
    85228636
    8523   case 645:
    8524 
    8525 /* Line 1806 of yacc.c  */
    8526 #line 2456 "parser.yy"
     8637  case 648:
     8638
     8639/* Line 1806 of yacc.c  */
     8640#line 2470 "parser.yy"
    85278641    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85288642    break;
    85298643
    8530   case 646:
    8531 
    8532 /* Line 1806 of yacc.c  */
    8533 #line 2458 "parser.yy"
     8644  case 649:
     8645
     8646/* Line 1806 of yacc.c  */
     8647#line 2472 "parser.yy"
    85348648    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85358649    break;
    85368650
    8537   case 647:
    8538 
    8539 /* Line 1806 of yacc.c  */
    8540 #line 2460 "parser.yy"
     8651  case 650:
     8652
     8653/* Line 1806 of yacc.c  */
     8654#line 2474 "parser.yy"
    85418655    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85428656    break;
    85438657
    8544   case 648:
    8545 
    8546 /* Line 1806 of yacc.c  */
    8547 #line 2462 "parser.yy"
     8658  case 651:
     8659
     8660/* Line 1806 of yacc.c  */
     8661#line 2476 "parser.yy"
    85488662    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85498663    break;
    85508664
    8551   case 649:
    8552 
    8553 /* Line 1806 of yacc.c  */
    8554 #line 2464 "parser.yy"
     8665  case 652:
     8666
     8667/* Line 1806 of yacc.c  */
     8668#line 2478 "parser.yy"
    85558669    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85568670    break;
    85578671
    8558   case 651:
    8559 
    8560 /* Line 1806 of yacc.c  */
    8561 #line 2470 "parser.yy"
     8672  case 654:
     8673
     8674/* Line 1806 of yacc.c  */
     8675#line 2484 "parser.yy"
    85628676    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85638677    break;
    85648678
    8565   case 652:
    8566 
    8567 /* Line 1806 of yacc.c  */
    8568 #line 2472 "parser.yy"
     8679  case 655:
     8680
     8681/* Line 1806 of yacc.c  */
     8682#line 2486 "parser.yy"
    85698683    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85708684    break;
    85718685
    8572   case 653:
    8573 
    8574 /* Line 1806 of yacc.c  */
    8575 #line 2474 "parser.yy"
     8686  case 656:
     8687
     8688/* Line 1806 of yacc.c  */
     8689#line 2488 "parser.yy"
    85768690    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85778691    break;
    85788692
    8579   case 654:
    8580 
    8581 /* Line 1806 of yacc.c  */
    8582 #line 2479 "parser.yy"
     8693  case 657:
     8694
     8695/* Line 1806 of yacc.c  */
     8696#line 2493 "parser.yy"
    85838697    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85848698    break;
    85858699
    8586   case 655:
    8587 
    8588 /* Line 1806 of yacc.c  */
    8589 #line 2481 "parser.yy"
     8700  case 658:
     8701
     8702/* Line 1806 of yacc.c  */
     8703#line 2495 "parser.yy"
    85908704    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85918705    break;
    85928706
    8593   case 656:
    8594 
    8595 /* Line 1806 of yacc.c  */
    8596 #line 2483 "parser.yy"
     8707  case 659:
     8708
     8709/* Line 1806 of yacc.c  */
     8710#line 2497 "parser.yy"
    85978711    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85988712    break;
    85998713
    8600   case 657:
    8601 
    8602 /* Line 1806 of yacc.c  */
    8603 #line 2489 "parser.yy"
     8714  case 660:
     8715
     8716/* Line 1806 of yacc.c  */
     8717#line 2503 "parser.yy"
    86048718    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86058719    break;
    86068720
    8607   case 658:
    8608 
    8609 /* Line 1806 of yacc.c  */
    8610 #line 2491 "parser.yy"
     8721  case 661:
     8722
     8723/* Line 1806 of yacc.c  */
     8724#line 2505 "parser.yy"
    86118725    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86128726    break;
    86138727
    8614   case 660:
    8615 
    8616 /* Line 1806 of yacc.c  */
    8617 #line 2497 "parser.yy"
     8728  case 663:
     8729
     8730/* Line 1806 of yacc.c  */
     8731#line 2511 "parser.yy"
    86188732    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86198733    break;
    86208734
    8621   case 661:
    8622 
    8623 /* Line 1806 of yacc.c  */
    8624 #line 2499 "parser.yy"
     8735  case 664:
     8736
     8737/* Line 1806 of yacc.c  */
     8738#line 2513 "parser.yy"
    86258739    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86268740    break;
    86278741
    8628   case 662:
    8629 
    8630 /* Line 1806 of yacc.c  */
    8631 #line 2501 "parser.yy"
     8742  case 665:
     8743
     8744/* Line 1806 of yacc.c  */
     8745#line 2515 "parser.yy"
    86328746    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86338747    break;
    86348748
    8635   case 663:
    8636 
    8637 /* Line 1806 of yacc.c  */
    8638 #line 2503 "parser.yy"
     8749  case 666:
     8750
     8751/* Line 1806 of yacc.c  */
     8752#line 2517 "parser.yy"
    86398753    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86408754    break;
    86418755
    8642   case 665:
    8643 
    8644 /* Line 1806 of yacc.c  */
    8645 #line 2518 "parser.yy"
     8756  case 668:
     8757
     8758/* Line 1806 of yacc.c  */
     8759#line 2532 "parser.yy"
    86468760    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86478761    break;
    86488762
    8649   case 666:
    8650 
    8651 /* Line 1806 of yacc.c  */
    8652 #line 2520 "parser.yy"
     8763  case 669:
     8764
     8765/* Line 1806 of yacc.c  */
     8766#line 2534 "parser.yy"
    86538767    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86548768    break;
    86558769
    8656   case 667:
    8657 
    8658 /* Line 1806 of yacc.c  */
    8659 #line 2525 "parser.yy"
     8770  case 670:
     8771
     8772/* Line 1806 of yacc.c  */
     8773#line 2539 "parser.yy"
    86608774    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86618775    break;
    86628776
    8663   case 668:
    8664 
    8665 /* Line 1806 of yacc.c  */
    8666 #line 2527 "parser.yy"
     8777  case 671:
     8778
     8779/* Line 1806 of yacc.c  */
     8780#line 2541 "parser.yy"
    86678781    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86688782    break;
    86698783
    8670   case 669:
    8671 
    8672 /* Line 1806 of yacc.c  */
    8673 #line 2529 "parser.yy"
     8784  case 672:
     8785
     8786/* Line 1806 of yacc.c  */
     8787#line 2543 "parser.yy"
    86748788    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86758789    break;
    86768790
    8677   case 670:
    8678 
    8679 /* Line 1806 of yacc.c  */
    8680 #line 2531 "parser.yy"
     8791  case 673:
     8792
     8793/* Line 1806 of yacc.c  */
     8794#line 2545 "parser.yy"
    86818795    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86828796    break;
    86838797
    8684   case 671:
    8685 
    8686 /* Line 1806 of yacc.c  */
    8687 #line 2533 "parser.yy"
     8798  case 674:
     8799
     8800/* Line 1806 of yacc.c  */
     8801#line 2547 "parser.yy"
    86888802    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86898803    break;
    86908804
    8691   case 673:
    8692 
    8693 /* Line 1806 of yacc.c  */
    8694 #line 2539 "parser.yy"
     8805  case 676:
     8806
     8807/* Line 1806 of yacc.c  */
     8808#line 2553 "parser.yy"
    86958809    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86968810    break;
    86978811
    8698   case 674:
    8699 
    8700 /* Line 1806 of yacc.c  */
    8701 #line 2541 "parser.yy"
     8812  case 677:
     8813
     8814/* Line 1806 of yacc.c  */
     8815#line 2555 "parser.yy"
    87028816    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87038817    break;
    87048818
    8705   case 675:
    8706 
    8707 /* Line 1806 of yacc.c  */
    8708 #line 2543 "parser.yy"
     8819  case 678:
     8820
     8821/* Line 1806 of yacc.c  */
     8822#line 2557 "parser.yy"
    87098823    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87108824    break;
    87118825
    8712   case 676:
    8713 
    8714 /* Line 1806 of yacc.c  */
    8715 #line 2548 "parser.yy"
     8826  case 679:
     8827
     8828/* Line 1806 of yacc.c  */
     8829#line 2562 "parser.yy"
    87168830    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87178831    break;
    87188832
    8719   case 677:
    8720 
    8721 /* Line 1806 of yacc.c  */
    8722 #line 2550 "parser.yy"
     8833  case 680:
     8834
     8835/* Line 1806 of yacc.c  */
     8836#line 2564 "parser.yy"
    87238837    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87248838    break;
    87258839
    8726   case 678:
    8727 
    8728 /* Line 1806 of yacc.c  */
    8729 #line 2552 "parser.yy"
     8840  case 681:
     8841
     8842/* Line 1806 of yacc.c  */
     8843#line 2566 "parser.yy"
    87308844    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87318845    break;
    87328846
    8733   case 680:
    8734 
    8735 /* Line 1806 of yacc.c  */
    8736 #line 2559 "parser.yy"
     8847  case 683:
     8848
     8849/* Line 1806 of yacc.c  */
     8850#line 2573 "parser.yy"
    87378851    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87388852    break;
    87398853
    8740   case 682:
    8741 
    8742 /* Line 1806 of yacc.c  */
    8743 #line 2570 "parser.yy"
     8854  case 685:
     8855
     8856/* Line 1806 of yacc.c  */
     8857#line 2584 "parser.yy"
    87448858    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87458859    break;
    87468860
    8747   case 683:
    8748 
    8749 /* Line 1806 of yacc.c  */
    8750 #line 2573 "parser.yy"
     8861  case 686:
     8862
     8863/* Line 1806 of yacc.c  */
     8864#line 2587 "parser.yy"
    87518865    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87528866    break;
    87538867
    8754   case 684:
    8755 
    8756 /* Line 1806 of yacc.c  */
    8757 #line 2575 "parser.yy"
     8868  case 687:
     8869
     8870/* Line 1806 of yacc.c  */
     8871#line 2589 "parser.yy"
    87588872    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87598873    break;
    87608874
    8761   case 685:
    8762 
    8763 /* Line 1806 of yacc.c  */
    8764 #line 2578 "parser.yy"
     8875  case 688:
     8876
     8877/* Line 1806 of yacc.c  */
     8878#line 2592 "parser.yy"
    87658879    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87668880    break;
    87678881
    8768   case 686:
    8769 
    8770 /* Line 1806 of yacc.c  */
    8771 #line 2580 "parser.yy"
     8882  case 689:
     8883
     8884/* Line 1806 of yacc.c  */
     8885#line 2594 "parser.yy"
    87728886    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87738887    break;
    87748888
    8775   case 687:
    8776 
    8777 /* Line 1806 of yacc.c  */
    8778 #line 2582 "parser.yy"
     8889  case 690:
     8890
     8891/* Line 1806 of yacc.c  */
     8892#line 2596 "parser.yy"
    87798893    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    87808894    break;
    87818895
    8782   case 689:
    8783 
    8784 /* Line 1806 of yacc.c  */
    8785 #line 2596 "parser.yy"
     8896  case 692:
     8897
     8898/* Line 1806 of yacc.c  */
     8899#line 2610 "parser.yy"
    87868900    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87878901    break;
    87888902
    8789   case 690:
    8790 
    8791 /* Line 1806 of yacc.c  */
    8792 #line 2598 "parser.yy"
     8903  case 693:
     8904
     8905/* Line 1806 of yacc.c  */
     8906#line 2612 "parser.yy"
    87938907    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87948908    break;
    87958909
    8796   case 691:
    8797 
    8798 /* Line 1806 of yacc.c  */
    8799 #line 2603 "parser.yy"
     8910  case 694:
     8911
     8912/* Line 1806 of yacc.c  */
     8913#line 2617 "parser.yy"
    88008914    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88018915    break;
    88028916
    8803   case 692:
    8804 
    8805 /* Line 1806 of yacc.c  */
    8806 #line 2605 "parser.yy"
     8917  case 695:
     8918
     8919/* Line 1806 of yacc.c  */
     8920#line 2619 "parser.yy"
    88078921    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88088922    break;
    88098923
    8810   case 693:
    8811 
    8812 /* Line 1806 of yacc.c  */
    8813 #line 2607 "parser.yy"
     8924  case 696:
     8925
     8926/* Line 1806 of yacc.c  */
     8927#line 2621 "parser.yy"
    88148928    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88158929    break;
    88168930
    8817   case 694:
    8818 
    8819 /* Line 1806 of yacc.c  */
    8820 #line 2609 "parser.yy"
     8931  case 697:
     8932
     8933/* Line 1806 of yacc.c  */
     8934#line 2623 "parser.yy"
    88218935    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88228936    break;
    88238937
    8824   case 695:
    8825 
    8826 /* Line 1806 of yacc.c  */
    8827 #line 2611 "parser.yy"
     8938  case 698:
     8939
     8940/* Line 1806 of yacc.c  */
     8941#line 2625 "parser.yy"
    88288942    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88298943    break;
    88308944
    8831   case 697:
    8832 
    8833 /* Line 1806 of yacc.c  */
    8834 #line 2617 "parser.yy"
     8945  case 700:
     8946
     8947/* Line 1806 of yacc.c  */
     8948#line 2631 "parser.yy"
    88358949    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88368950    break;
    88378951
    8838   case 698:
    8839 
    8840 /* Line 1806 of yacc.c  */
    8841 #line 2619 "parser.yy"
     8952  case 701:
     8953
     8954/* Line 1806 of yacc.c  */
     8955#line 2633 "parser.yy"
    88428956    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88438957    break;
    88448958
    8845   case 699:
    8846 
    8847 /* Line 1806 of yacc.c  */
    8848 #line 2621 "parser.yy"
     8959  case 702:
     8960
     8961/* Line 1806 of yacc.c  */
     8962#line 2635 "parser.yy"
    88498963    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88508964    break;
    88518965
    8852   case 700:
    8853 
    8854 /* Line 1806 of yacc.c  */
    8855 #line 2626 "parser.yy"
     8966  case 703:
     8967
     8968/* Line 1806 of yacc.c  */
     8969#line 2640 "parser.yy"
    88568970    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88578971    break;
    88588972
    8859   case 701:
    8860 
    8861 /* Line 1806 of yacc.c  */
    8862 #line 2628 "parser.yy"
     8973  case 704:
     8974
     8975/* Line 1806 of yacc.c  */
     8976#line 2642 "parser.yy"
    88638977    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88648978    break;
    88658979
    8866   case 704:
    8867 
    8868 /* Line 1806 of yacc.c  */
    8869 #line 2638 "parser.yy"
     8980  case 707:
     8981
     8982/* Line 1806 of yacc.c  */
     8983#line 2652 "parser.yy"
    88708984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88718985    break;
    88728986
    8873   case 707:
    8874 
    8875 /* Line 1806 of yacc.c  */
    8876 #line 2648 "parser.yy"
     8987  case 710:
     8988
     8989/* Line 1806 of yacc.c  */
     8990#line 2662 "parser.yy"
    88778991    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88788992    break;
    88798993
    8880   case 708:
    8881 
    8882 /* Line 1806 of yacc.c  */
    8883 #line 2650 "parser.yy"
     8994  case 711:
     8995
     8996/* Line 1806 of yacc.c  */
     8997#line 2664 "parser.yy"
    88848998    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88858999    break;
    88869000
    8887   case 709:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2652 "parser.yy"
     9001  case 712:
     9002
     9003/* Line 1806 of yacc.c  */
     9004#line 2666 "parser.yy"
    88919005    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88929006    break;
    88939007
    8894   case 710:
    8895 
    8896 /* Line 1806 of yacc.c  */
    8897 #line 2654 "parser.yy"
     9008  case 713:
     9009
     9010/* Line 1806 of yacc.c  */
     9011#line 2668 "parser.yy"
    88989012    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88999013    break;
    89009014
    8901   case 711:
    8902 
    8903 /* Line 1806 of yacc.c  */
    8904 #line 2656 "parser.yy"
     9015  case 714:
     9016
     9017/* Line 1806 of yacc.c  */
     9018#line 2670 "parser.yy"
    89059019    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89069020    break;
    89079021
    8908   case 712:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2658 "parser.yy"
     9022  case 715:
     9023
     9024/* Line 1806 of yacc.c  */
     9025#line 2672 "parser.yy"
    89129026    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89139027    break;
    89149028
    8915   case 713:
    8916 
    8917 /* Line 1806 of yacc.c  */
    8918 #line 2665 "parser.yy"
     9029  case 716:
     9030
     9031/* Line 1806 of yacc.c  */
     9032#line 2679 "parser.yy"
    89199033    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89209034    break;
    89219035
    8922   case 714:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2667 "parser.yy"
     9036  case 717:
     9037
     9038/* Line 1806 of yacc.c  */
     9039#line 2681 "parser.yy"
    89269040    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89279041    break;
    89289042
    8929   case 715:
    8930 
    8931 /* Line 1806 of yacc.c  */
    8932 #line 2669 "parser.yy"
     9043  case 718:
     9044
     9045/* Line 1806 of yacc.c  */
     9046#line 2683 "parser.yy"
    89339047    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89349048    break;
    89359049
    8936   case 716:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2671 "parser.yy"
     9050  case 719:
     9051
     9052/* Line 1806 of yacc.c  */
     9053#line 2685 "parser.yy"
    89409054    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89419055    break;
    89429056
    8943   case 717:
    8944 
    8945 /* Line 1806 of yacc.c  */
    8946 #line 2673 "parser.yy"
     9057  case 720:
     9058
     9059/* Line 1806 of yacc.c  */
     9060#line 2687 "parser.yy"
    89479061    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89489062    break;
    89499063
    8950   case 718:
    8951 
    8952 /* Line 1806 of yacc.c  */
    8953 #line 2675 "parser.yy"
     9064  case 721:
     9065
     9066/* Line 1806 of yacc.c  */
     9067#line 2689 "parser.yy"
    89549068    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89559069    break;
    89569070
    8957   case 719:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2677 "parser.yy"
     9071  case 722:
     9072
     9073/* Line 1806 of yacc.c  */
     9074#line 2691 "parser.yy"
    89619075    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89629076    break;
    89639077
    8964   case 720:
    8965 
    8966 /* Line 1806 of yacc.c  */
    8967 #line 2679 "parser.yy"
     9078  case 723:
     9079
     9080/* Line 1806 of yacc.c  */
     9081#line 2693 "parser.yy"
    89689082    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89699083    break;
    89709084
    8971   case 721:
    8972 
    8973 /* Line 1806 of yacc.c  */
    8974 #line 2681 "parser.yy"
     9085  case 724:
     9086
     9087/* Line 1806 of yacc.c  */
     9088#line 2695 "parser.yy"
    89759089    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89769090    break;
    89779091
    8978   case 722:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2683 "parser.yy"
     9092  case 725:
     9093
     9094/* Line 1806 of yacc.c  */
     9095#line 2697 "parser.yy"
    89829096    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89839097    break;
    89849098
    8985   case 723:
    8986 
    8987 /* Line 1806 of yacc.c  */
    8988 #line 2688 "parser.yy"
     9099  case 726:
     9100
     9101/* Line 1806 of yacc.c  */
     9102#line 2702 "parser.yy"
    89899103    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89909104    break;
    89919105
    8992   case 724:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2690 "parser.yy"
     9106  case 727:
     9107
     9108/* Line 1806 of yacc.c  */
     9109#line 2704 "parser.yy"
    89969110    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89979111    break;
    89989112
    8999   case 725:
    9000 
    9001 /* Line 1806 of yacc.c  */
    9002 #line 2695 "parser.yy"
     9113  case 728:
     9114
     9115/* Line 1806 of yacc.c  */
     9116#line 2709 "parser.yy"
    90039117    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90049118    break;
    90059119
    9006   case 726:
    9007 
    9008 /* Line 1806 of yacc.c  */
    9009 #line 2697 "parser.yy"
     9120  case 729:
     9121
     9122/* Line 1806 of yacc.c  */
     9123#line 2711 "parser.yy"
    90109124    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90119125    break;
    90129126
    9013   case 728:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2724 "parser.yy"
     9127  case 731:
     9128
     9129/* Line 1806 of yacc.c  */
     9130#line 2738 "parser.yy"
    90179131    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90189132    break;
    90199133
    9020   case 732:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2735 "parser.yy"
     9134  case 735:
     9135
     9136/* Line 1806 of yacc.c  */
     9137#line 2749 "parser.yy"
    90249138    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90259139    break;
    90269140
    9027   case 733:
    9028 
    9029 /* Line 1806 of yacc.c  */
    9030 #line 2737 "parser.yy"
     9141  case 736:
     9142
     9143/* Line 1806 of yacc.c  */
     9144#line 2751 "parser.yy"
    90319145    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90329146    break;
    90339147
    9034   case 734:
    9035 
    9036 /* Line 1806 of yacc.c  */
    9037 #line 2739 "parser.yy"
     9148  case 737:
     9149
     9150/* Line 1806 of yacc.c  */
     9151#line 2753 "parser.yy"
    90389152    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90399153    break;
    90409154
    9041   case 735:
    9042 
    9043 /* Line 1806 of yacc.c  */
    9044 #line 2741 "parser.yy"
     9155  case 738:
     9156
     9157/* Line 1806 of yacc.c  */
     9158#line 2755 "parser.yy"
    90459159    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90469160    break;
    90479161
    9048   case 736:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2743 "parser.yy"
     9162  case 739:
     9163
     9164/* Line 1806 of yacc.c  */
     9165#line 2757 "parser.yy"
    90529166    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90539167    break;
    90549168
    9055   case 737:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2745 "parser.yy"
     9169  case 740:
     9170
     9171/* Line 1806 of yacc.c  */
     9172#line 2759 "parser.yy"
    90599173    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90609174    break;
    90619175
    9062   case 738:
    9063 
    9064 /* Line 1806 of yacc.c  */
    9065 #line 2752 "parser.yy"
     9176  case 741:
     9177
     9178/* Line 1806 of yacc.c  */
     9179#line 2766 "parser.yy"
    90669180    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90679181    break;
    90689182
    9069   case 739:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2754 "parser.yy"
     9183  case 742:
     9184
     9185/* Line 1806 of yacc.c  */
     9186#line 2768 "parser.yy"
    90739187    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90749188    break;
    90759189
    9076   case 740:
    9077 
    9078 /* Line 1806 of yacc.c  */
    9079 #line 2756 "parser.yy"
     9190  case 743:
     9191
     9192/* Line 1806 of yacc.c  */
     9193#line 2770 "parser.yy"
    90809194    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90819195    break;
    90829196
    9083   case 741:
    9084 
    9085 /* Line 1806 of yacc.c  */
    9086 #line 2758 "parser.yy"
     9197  case 744:
     9198
     9199/* Line 1806 of yacc.c  */
     9200#line 2772 "parser.yy"
    90879201    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90889202    break;
    90899203
    9090   case 742:
    9091 
    9092 /* Line 1806 of yacc.c  */
    9093 #line 2760 "parser.yy"
     9204  case 745:
     9205
     9206/* Line 1806 of yacc.c  */
     9207#line 2774 "parser.yy"
    90949208    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90959209    break;
    90969210
    9097   case 743:
    9098 
    9099 /* Line 1806 of yacc.c  */
    9100 #line 2762 "parser.yy"
     9211  case 746:
     9212
     9213/* Line 1806 of yacc.c  */
     9214#line 2776 "parser.yy"
    91019215    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91029216    break;
    91039217
    9104   case 744:
    9105 
    9106 /* Line 1806 of yacc.c  */
    9107 #line 2767 "parser.yy"
     9218  case 747:
     9219
     9220/* Line 1806 of yacc.c  */
     9221#line 2781 "parser.yy"
    91089222    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91099223    break;
    91109224
    9111   case 745:
    9112 
    9113 /* Line 1806 of yacc.c  */
    9114 #line 2772 "parser.yy"
     9225  case 748:
     9226
     9227/* Line 1806 of yacc.c  */
     9228#line 2786 "parser.yy"
    91159229    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91169230    break;
    91179231
    9118   case 746:
    9119 
    9120 /* Line 1806 of yacc.c  */
    9121 #line 2774 "parser.yy"
     9232  case 749:
     9233
     9234/* Line 1806 of yacc.c  */
     9235#line 2788 "parser.yy"
    91229236    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91239237    break;
    91249238
    9125   case 747:
    9126 
    9127 /* Line 1806 of yacc.c  */
    9128 #line 2776 "parser.yy"
     9239  case 750:
     9240
     9241/* Line 1806 of yacc.c  */
     9242#line 2790 "parser.yy"
    91299243    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91309244    break;
    91319245
    9132   case 750:
    9133 
    9134 /* Line 1806 of yacc.c  */
    9135 #line 2800 "parser.yy"
     9246  case 753:
     9247
     9248/* Line 1806 of yacc.c  */
     9249#line 2814 "parser.yy"
    91369250    { (yyval.en) = 0; }
    91379251    break;
    91389252
    9139   case 751:
    9140 
    9141 /* Line 1806 of yacc.c  */
    9142 #line 2802 "parser.yy"
     9253  case 754:
     9254
     9255/* Line 1806 of yacc.c  */
     9256#line 2816 "parser.yy"
    91439257    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91449258    break;
     
    91479261
    91489262/* Line 1806 of yacc.c  */
    9149 #line 9150 "Parser/parser.cc"
     9263#line 9264 "Parser/parser.cc"
    91509264      default: break;
    91519265    }
     
    93789492
    93799493/* Line 2067 of yacc.c  */
    9380 #line 2805 "parser.yy"
     9494#line 2819 "parser.yy"
    93819495
    93829496// ----end of grammar----
     
    93859499        std::cout << "Error ";
    93869500        if ( yyfilename ) {
    9387             std::cout << "in file " << yyfilename << " ";
     9501                std::cout << "in file " << yyfilename << " ";
    93889502        } // if
    93899503        std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
  • src/Parser/parser.h

    rc5833e8 r0f9e4403  
    5959     SIGNED = 277,
    6060     UNSIGNED = 278,
    61      BOOL = 279,
    62      COMPLEX = 280,
    63      IMAGINARY = 281,
    64      TYPEOF = 282,
    65      LABEL = 283,
    66      ENUM = 284,
    67      STRUCT = 285,
    68      UNION = 286,
    69      TYPE = 287,
    70      FTYPE = 288,
    71      DTYPE = 289,
    72      CONTEXT = 290,
    73      SIZEOF = 291,
    74      OFFSETOF = 292,
    75      ATTRIBUTE = 293,
    76      EXTENSION = 294,
    77      IF = 295,
    78      ELSE = 296,
    79      SWITCH = 297,
    80      CASE = 298,
    81      DEFAULT = 299,
    82      DO = 300,
    83      WHILE = 301,
    84      FOR = 302,
    85      BREAK = 303,
    86      CONTINUE = 304,
    87      GOTO = 305,
    88      RETURN = 306,
    89      CHOOSE = 307,
    90      DISABLE = 308,
    91      ENABLE = 309,
    92      FALLTHRU = 310,
    93      TRY = 311,
    94      CATCH = 312,
    95      CATCHRESUME = 313,
    96      FINALLY = 314,
    97      THROW = 315,
    98      THROWRESUME = 316,
    99      AT = 317,
    100      ASM = 318,
    101      ALIGNAS = 319,
    102      ALIGNOF = 320,
    103      ATOMIC = 321,
    104      GENERIC = 322,
    105      NORETURN = 323,
    106      STATICASSERT = 324,
    107      THREADLOCAL = 325,
    108      IDENTIFIER = 326,
    109      QUOTED_IDENTIFIER = 327,
    110      TYPEDEFname = 328,
    111      TYPEGENname = 329,
    112      ATTR_IDENTIFIER = 330,
    113      ATTR_TYPEDEFname = 331,
    114      ATTR_TYPEGENname = 332,
    115      INTEGERconstant = 333,
    116      FLOATINGconstant = 334,
    117      CHARACTERconstant = 335,
    118      STRINGliteral = 336,
    119      ZERO = 337,
    120      ONE = 338,
    121      ARROW = 339,
    122      ICR = 340,
    123      DECR = 341,
    124      LS = 342,
    125      RS = 343,
    126      LE = 344,
    127      GE = 345,
    128      EQ = 346,
    129      NE = 347,
    130      ANDAND = 348,
    131      OROR = 349,
    132      ELLIPSIS = 350,
    133      MULTassign = 351,
    134      DIVassign = 352,
    135      MODassign = 353,
    136      PLUSassign = 354,
    137      MINUSassign = 355,
    138      LSassign = 356,
    139      RSassign = 357,
    140      ANDassign = 358,
    141      ERassign = 359,
    142      ORassign = 360,
    143      ATassign = 361,
    144      THEN = 362
     61     VALIST = 279,
     62     BOOL = 280,
     63     COMPLEX = 281,
     64     IMAGINARY = 282,
     65     TYPEOF = 283,
     66     LABEL = 284,
     67     ENUM = 285,
     68     STRUCT = 286,
     69     UNION = 287,
     70     OTYPE = 288,
     71     FTYPE = 289,
     72     DTYPE = 290,
     73     TRAIT = 291,
     74     SIZEOF = 292,
     75     OFFSETOF = 293,
     76     ATTRIBUTE = 294,
     77     EXTENSION = 295,
     78     IF = 296,
     79     ELSE = 297,
     80     SWITCH = 298,
     81     CASE = 299,
     82     DEFAULT = 300,
     83     DO = 301,
     84     WHILE = 302,
     85     FOR = 303,
     86     BREAK = 304,
     87     CONTINUE = 305,
     88     GOTO = 306,
     89     RETURN = 307,
     90     CHOOSE = 308,
     91     DISABLE = 309,
     92     ENABLE = 310,
     93     FALLTHRU = 311,
     94     TRY = 312,
     95     CATCH = 313,
     96     CATCHRESUME = 314,
     97     FINALLY = 315,
     98     THROW = 316,
     99     THROWRESUME = 317,
     100     AT = 318,
     101     ASM = 319,
     102     ALIGNAS = 320,
     103     ALIGNOF = 321,
     104     ATOMIC = 322,
     105     GENERIC = 323,
     106     NORETURN = 324,
     107     STATICASSERT = 325,
     108     THREADLOCAL = 326,
     109     IDENTIFIER = 327,
     110     QUOTED_IDENTIFIER = 328,
     111     TYPEDEFname = 329,
     112     TYPEGENname = 330,
     113     ATTR_IDENTIFIER = 331,
     114     ATTR_TYPEDEFname = 332,
     115     ATTR_TYPEGENname = 333,
     116     INTEGERconstant = 334,
     117     FLOATINGconstant = 335,
     118     CHARACTERconstant = 336,
     119     STRINGliteral = 337,
     120     ZERO = 338,
     121     ONE = 339,
     122     ARROW = 340,
     123     ICR = 341,
     124     DECR = 342,
     125     LS = 343,
     126     RS = 344,
     127     LE = 345,
     128     GE = 346,
     129     EQ = 347,
     130     NE = 348,
     131     ANDAND = 349,
     132     OROR = 350,
     133     ELLIPSIS = 351,
     134     MULTassign = 352,
     135     DIVassign = 353,
     136     MODassign = 354,
     137     PLUSassign = 355,
     138     MINUSassign = 356,
     139     LSassign = 357,
     140     RSassign = 358,
     141     ANDassign = 359,
     142     ERassign = 360,
     143     ORassign = 361,
     144     ATassign = 362,
     145     THEN = 363
    145146   };
    146147#endif
     
    167168#define SIGNED 277
    168169#define UNSIGNED 278
    169 #define BOOL 279
    170 #define COMPLEX 280
    171 #define IMAGINARY 281
    172 #define TYPEOF 282
    173 #define LABEL 283
    174 #define ENUM 284
    175 #define STRUCT 285
    176 #define UNION 286
    177 #define TYPE 287
    178 #define FTYPE 288
    179 #define DTYPE 289
    180 #define CONTEXT 290
    181 #define SIZEOF 291
    182 #define OFFSETOF 292
    183 #define ATTRIBUTE 293
    184 #define EXTENSION 294
    185 #define IF 295
    186 #define ELSE 296
    187 #define SWITCH 297
    188 #define CASE 298
    189 #define DEFAULT 299
    190 #define DO 300
    191 #define WHILE 301
    192 #define FOR 302
    193 #define BREAK 303
    194 #define CONTINUE 304
    195 #define GOTO 305
    196 #define RETURN 306
    197 #define CHOOSE 307
    198 #define DISABLE 308
    199 #define ENABLE 309
    200 #define FALLTHRU 310
    201 #define TRY 311
    202 #define CATCH 312
    203 #define CATCHRESUME 313
    204 #define FINALLY 314
    205 #define THROW 315
    206 #define THROWRESUME 316
    207 #define AT 317
    208 #define ASM 318
    209 #define ALIGNAS 319
    210 #define ALIGNOF 320
    211 #define ATOMIC 321
    212 #define GENERIC 322
    213 #define NORETURN 323
    214 #define STATICASSERT 324
    215 #define THREADLOCAL 325
    216 #define IDENTIFIER 326
    217 #define QUOTED_IDENTIFIER 327
    218 #define TYPEDEFname 328
    219 #define TYPEGENname 329
    220 #define ATTR_IDENTIFIER 330
    221 #define ATTR_TYPEDEFname 331
    222 #define ATTR_TYPEGENname 332
    223 #define INTEGERconstant 333
    224 #define FLOATINGconstant 334
    225 #define CHARACTERconstant 335
    226 #define STRINGliteral 336
    227 #define ZERO 337
    228 #define ONE 338
    229 #define ARROW 339
    230 #define ICR 340
    231 #define DECR 341
    232 #define LS 342
    233 #define RS 343
    234 #define LE 344
    235 #define GE 345
    236 #define EQ 346
    237 #define NE 347
    238 #define ANDAND 348
    239 #define OROR 349
    240 #define ELLIPSIS 350
    241 #define MULTassign 351
    242 #define DIVassign 352
    243 #define MODassign 353
    244 #define PLUSassign 354
    245 #define MINUSassign 355
    246 #define LSassign 356
    247 #define RSassign 357
    248 #define ANDassign 358
    249 #define ERassign 359
    250 #define ORassign 360
    251 #define ATassign 361
    252 #define THEN 362
     170#define VALIST 279
     171#define BOOL 280
     172#define COMPLEX 281
     173#define IMAGINARY 282
     174#define TYPEOF 283
     175#define LABEL 284
     176#define ENUM 285
     177#define STRUCT 286
     178#define UNION 287
     179#define OTYPE 288
     180#define FTYPE 289
     181#define DTYPE 290
     182#define TRAIT 291
     183#define SIZEOF 292
     184#define OFFSETOF 293
     185#define ATTRIBUTE 294
     186#define EXTENSION 295
     187#define IF 296
     188#define ELSE 297
     189#define SWITCH 298
     190#define CASE 299
     191#define DEFAULT 300
     192#define DO 301
     193#define WHILE 302
     194#define FOR 303
     195#define BREAK 304
     196#define CONTINUE 305
     197#define GOTO 306
     198#define RETURN 307
     199#define CHOOSE 308
     200#define DISABLE 309
     201#define ENABLE 310
     202#define FALLTHRU 311
     203#define TRY 312
     204#define CATCH 313
     205#define CATCHRESUME 314
     206#define FINALLY 315
     207#define THROW 316
     208#define THROWRESUME 317
     209#define AT 318
     210#define ASM 319
     211#define ALIGNAS 320
     212#define ALIGNOF 321
     213#define ATOMIC 322
     214#define GENERIC 323
     215#define NORETURN 324
     216#define STATICASSERT 325
     217#define THREADLOCAL 326
     218#define IDENTIFIER 327
     219#define QUOTED_IDENTIFIER 328
     220#define TYPEDEFname 329
     221#define TYPEGENname 330
     222#define ATTR_IDENTIFIER 331
     223#define ATTR_TYPEDEFname 332
     224#define ATTR_TYPEGENname 333
     225#define INTEGERconstant 334
     226#define FLOATINGconstant 335
     227#define CHARACTERconstant 336
     228#define STRINGliteral 337
     229#define ZERO 338
     230#define ONE 339
     231#define ARROW 340
     232#define ICR 341
     233#define DECR 342
     234#define LS 343
     235#define RS 344
     236#define LE 345
     237#define GE 346
     238#define EQ 347
     239#define NE 348
     240#define ANDAND 349
     241#define OROR 350
     242#define ELLIPSIS 351
     243#define MULTassign 352
     244#define DIVassign 353
     245#define MODassign 354
     246#define PLUSassign 355
     247#define MINUSassign 356
     248#define LSassign 357
     249#define RSassign 358
     250#define ANDassign 359
     251#define ERassign 360
     252#define ORassign 361
     253#define ATassign 362
     254#define THEN 363
    253255
    254256
     
    260262
    261263/* Line 2068 of yacc.c  */
    262 #line 110 "parser.yy"
     264#line 112 "parser.yy"
    263265
    264266        Token tok;
     
    277279
    278280/* Line 2068 of yacc.c  */
    279 #line 280 "Parser/parser.h"
     281#line 282 "Parser/parser.h"
    280282} YYSTYPE;
    281283# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    rc5833e8 r0f9e4403  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  1 18:22:42 2016
    13 // Update Count     : 1483
     12// Last Modified On : Wed Apr 13 16:58:43 2016
     13// Update Count     : 1519
    1414//
    1515
     
    5151#include <cstdio>
    5252#include <stack>
     53#include "lex.h"
     54#include "parser.h"
     55#include "ParseNode.h"
    5356#include "TypedefTable.h"
    54 #include "lex.h"
    55 #include "ParseNode.h"
    5657#include "TypeData.h"
    5758#include "LinkageSpec.h"
     
    7475%token FORALL LVALUE                                                                    // CFA
    7576%token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED
     77%token VALIST                                                                                   // GCC
    7678%token BOOL COMPLEX IMAGINARY                                                   // C99
    7779%token TYPEOF LABEL                                                                             // GCC
    7880%token ENUM STRUCT UNION
    79 %token TYPE FTYPE DTYPE CONTEXT                                                 // CFA
     81%token OTYPE FTYPE DTYPE TRAIT                                          // CFA
    8082%token SIZEOF OFFSETOF
    8183%token ATTRIBUTE EXTENSION                                                              // GCC
     
    171173%type<decl> basic_declaration_specifier basic_type_name basic_type_specifier direct_type_name indirect_type_name
    172174
    173 %type<decl> context_declaration context_declaration_list context_declaring_list context_specifier
     175%type<decl> trait_declaration trait_declaration_list trait_declaring_list trait_specifier
    174176
    175177%type<decl> declaration declaration_list declaration_list_opt declaration_qualifier_list
     
    197199%type<decl> new_array_parameter_1st_dimension
    198200
    199 %type<decl> new_context_declaring_list new_declaration new_field_declaring_list
     201%type<decl> new_trait_declaring_list new_declaration new_field_declaring_list
    200202%type<decl> new_function_declaration new_function_return new_function_specifier
    201203
     
    370372                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1 ); }
    371373        | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99
    372                 { $$ = 0; }
     374                { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true ) ); }
    373375        | postfix_expression '{' argument_expression_list '}' // CFA
    374376                {
     
    448450                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3 )); }
    449451        | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')'
    450         { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( $3 ), new VarRefNode( $5 )); }
     452                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( $3 ), new VarRefNode( $5 )); }
    451453        | ATTR_IDENTIFIER
    452454                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 )); }
     
    10201022        | new_function_declaration pop ';'
    10211023        | type_declaring_list pop ';'
    1022         | context_specifier pop ';'
     1024        | trait_specifier pop ';'
    10231025        ;
    10241026
     
    10271029                {
    10281030                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1029                         $$ = $1;
     1031                        $$ = $1->addInitializer( $2 );
    10301032                }
    10311033        | declaration_qualifier_list new_variable_specifier initializer_opt
     
    10341036                {
    10351037                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    1036                         $$ = $2->addQualifiers( $1 );
     1038                        $$ = $2->addQualifiers( $1 )->addInitializer( $3 );;
    10371039                }
    10381040        | new_variable_declaration pop ',' push identifier_or_type_name initializer_opt
    10391041                {
    10401042                        typedefTable.addToEnclosingScope( *$5, TypedefTable::ID );
    1041                         $$ = $1->appendList( $1->cloneType( $5 ) );
     1043                        $$ = $1->appendList( $1->cloneType( $5 )->addInitializer( $6 ) );
    10421044                }
    10431045        ;
     
    13451347        | IMAGINARY                                                                                     // C99
    13461348                { $$ = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     1349        | VALIST                                                                                        // GCC, __builtin_va_list
     1350                { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    13471351        ;
    13481352
     
    14341438                { $$ = DeclarationNode::newAggregate( $1, 0, 0, $3 ); }
    14351439        | aggregate_key no_attr_identifier_or_type_name
    1436                 { $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 ); }
    1437         | aggregate_key no_attr_identifier_or_type_name '{' field_declaration_list '}'
    1438                 { $$ = DeclarationNode::newAggregate( $1, $2, 0, $4 ); }
     1440                {
     1441                        typedefTable.makeTypedef( *$2 );
     1442                        $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 );
     1443                }
     1444        | aggregate_key no_attr_identifier_or_type_name
     1445                { typedefTable.makeTypedef( *$2 ); }
     1446                '{' field_declaration_list '}'
     1447                { $$ = DeclarationNode::newAggregate( $1, $2, 0, $5); }
    14391448        | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA
    1440                 { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); }
     1449                { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); }
    14411450        | aggregate_key typegen_name                                            // CFA, S/R conflict
    14421451                { $$ = $2; }
     
    15161525        enum_key '{' enumerator_list comma_opt '}'
    15171526                { $$ = DeclarationNode::newEnum( 0, $3 ); }
    1518         | enum_key no_attr_identifier_or_type_name '{' enumerator_list comma_opt '}'
    1519                 { $$ = DeclarationNode::newEnum( $2, $4 ); }
    15201527        | enum_key no_attr_identifier_or_type_name
    1521                 { $$ = DeclarationNode::newEnum( $2, 0 ); }
     1528                {
     1529                        typedefTable.makeTypedef( *$2 );
     1530                        $$ = DeclarationNode::newEnum( $2, 0 );
     1531                }
     1532        | enum_key no_attr_identifier_or_type_name
     1533                { typedefTable.makeTypedef( *$2 ); }
     1534                '{' enumerator_list comma_opt '}'
     1535                { $$ = DeclarationNode::newEnum( $2, $5 ); }
    15221536        ;
    15231537
     
    18031817
    18041818type_class:                                                                                             // CFA
    1805         TYPE
     1819        OTYPE
    18061820                { $$ = DeclarationNode::Type; }
    18071821        | DTYPE
     
    18211835        '|' no_attr_identifier_or_type_name '(' type_name_list ')'
    18221836                {
    1823                         typedefTable.openContext( *$2 );
    1824                         $$ = DeclarationNode::newContextUse( $2, $4 );
    1825                 }
    1826         | '|' '{' push context_declaration_list '}'
     1837                        typedefTable.openTrait( *$2 );
     1838                        $$ = DeclarationNode::newTraitUse( $2, $4 );
     1839                }
     1840        | '|' '{' push trait_declaration_list '}'
    18271841                { $$ = $4; }
    1828         | '|' '(' push type_parameter_list pop ')' '{' push context_declaration_list '}' '(' type_name_list ')'
     1842        | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_name_list ')'
    18291843                { $$ = 0; }
    18301844        ;
     
    18411855
    18421856type_declaring_list:                                                                    // CFA
    1843         TYPE type_declarator
    1844                 { $$ = $2; }
    1845         | storage_class_list TYPE type_declarator
     1857        OTYPE type_declarator
     1858                { $$ = $2; }
     1859        | storage_class_list OTYPE type_declarator
    18461860                { $$ = $3->addQualifiers( $1 ); }
    18471861        | type_declaring_list ',' type_declarator
     
    18691883        ;
    18701884
    1871 context_specifier:                                                                              // CFA
    1872         CONTEXT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{' '}'
     1885trait_specifier:                                                                                // CFA
     1886        TRAIT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{' '}'
    18731887                {
    18741888                        typedefTable.addToEnclosingScope( *$2, TypedefTable::ID );
    1875                         $$ = DeclarationNode::newContext( $2, $5, 0 );
    1876                 }
    1877         | CONTEXT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{'
    1878                 {
    1879                         typedefTable.enterContext( *$2 );
     1889                        $$ = DeclarationNode::newTrait( $2, $5, 0 );
     1890                }
     1891        | TRAIT no_attr_identifier_or_type_name '(' push type_parameter_list pop ')' '{'
     1892                {
     1893                        typedefTable.enterTrait( *$2 );
    18801894                        typedefTable.enterScope();
    18811895                }
    1882           context_declaration_list '}'
    1883                 {
    1884                         typedefTable.leaveContext();
     1896          trait_declaration_list '}'
     1897                {
     1898                        typedefTable.leaveTrait();
    18851899                        typedefTable.addToEnclosingScope( *$2, TypedefTable::ID );
    1886                         $$ = DeclarationNode::newContext( $2, $5, $10 );
    1887                 }
    1888         ;
    1889 
    1890 context_declaration_list:                                                               // CFA
    1891         context_declaration
    1892         | context_declaration_list push context_declaration
     1900                        $$ = DeclarationNode::newTrait( $2, $5, $10 );
     1901                }
     1902        ;
     1903
     1904trait_declaration_list:                                                         // CFA
     1905        trait_declaration
     1906        | trait_declaration_list push trait_declaration
    18931907                { $$ = $1->appendList( $3 ); }
    18941908        ;
    18951909
    1896 context_declaration:                                                                    // CFA
    1897         new_context_declaring_list pop ';'
    1898         | context_declaring_list pop ';'
    1899         ;
    1900 
    1901 new_context_declaring_list:                                                             // CFA
     1910trait_declaration:                                                                      // CFA
     1911        new_trait_declaring_list pop ';'
     1912        | trait_declaring_list pop ';'
     1913        ;
     1914
     1915new_trait_declaring_list:                                                               // CFA
    19021916        new_variable_specifier
    19031917                {
     
    19101924                        $$ = $1;
    19111925                }
    1912         | new_context_declaring_list pop ',' push identifier_or_type_name
     1926        | new_trait_declaring_list pop ',' push identifier_or_type_name
    19131927                {
    19141928                        typedefTable.addToEnclosingScope2( *$5, TypedefTable::ID );
     
    19171931        ;
    19181932
    1919 context_declaring_list:                                                                 // CFA
     1933trait_declaring_list:                                                                   // CFA
    19201934        type_specifier declarator
    19211935                {
     
    19231937                        $$ = $2->addType( $1 );
    19241938                }
    1925         | context_declaring_list pop ',' push declarator
     1939        | trait_declaring_list pop ',' push declarator
    19261940                {
    19271941                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    28092823        std::cout << "Error ";
    28102824        if ( yyfilename ) {
    2811             std::cout << "in file " << yyfilename << " ";
     2825                std::cout << "in file " << yyfilename << " ";
    28122826        } // if
    28132827        std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;
Note: See TracChangeset for help on using the changeset viewer.