Changes in / [b29f8f3:093f1a0]


Ignore:
Location:
src
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 15 14:47:42 2015
    13 // Update Count     : 177
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jul 27 14:40:06 2015
     13// Update Count     : 218
    1414//
    1515
     
    5252        }
    5353
    54         CodeGenerator::CodeGenerator( std::ostream &os ) : indent(*this), cur_indent( 0 ), insideFunction( false ), output( os ) { }
     54        CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { }
    5555
    5656        CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp )
    57                         : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     57                        : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
    5858                //output << std::string( init );
    5959        }
    6060
    6161        CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp )
    62                         : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     62                        : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
    6363                //output << std::string( init );
    6464        }
     
    9191                // acceptAll( functionDecl->get_oldDecls(), *this );
    9292                if ( functionDecl->get_statements() ) {
    93                         functionDecl->get_statements()->accept(*this );
     93                        functionDecl->get_statements()->accept( *this );
    9494                } // if
    9595        }
     
    121121                        for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
    122122                                output << indent;
    123                                 (*i)->accept(*this );
     123                                (*i)->accept( *this );
    124124                                output << ";" << endl;
    125125                        }
     
    159159                                if ( obj->get_init() ) {
    160160                                        output << " = ";
    161                                         obj->get_init()->accept(*this );
     161                                        obj->get_init()->accept( *this );
    162162                                } // if
    163163                                output << "," << endl;
     
    450450        void CodeGenerator::visit( TypeExpr *typeExpr ) {}
    451451
     452        void CodeGenerator::visit( AsmExpr *asmExpr ) {
     453                if ( asmExpr->get_inout() ) {
     454                        output << "[ ";
     455                        asmExpr->get_inout()->accept( *this );
     456                        output << " ] ";
     457                } // if
     458                asmExpr->get_constraint()->accept( *this );
     459                output << " ( ";
     460                asmExpr->get_operand()->accept( *this );
     461                output << " )";
     462        }
     463
    452464        //*** Statements
    453465        void CodeGenerator::visit( CompoundStmt *compoundStmt ) {
     
    457469                cur_indent += CodeGenerator::tabsize;
    458470
    459                 for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end();  i++) {
     471                for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end();  i++ ) {
    460472                        output << indent << printLabels( (*i)->get_labels() );
    461                         (*i)->accept(*this );
     473                        (*i)->accept( *this );
    462474
    463475                        output << endl;
     
    483495        }
    484496
     497        void CodeGenerator::visit( AsmStmt *asmStmt ) {
     498                output << "asm ";
     499                if ( asmStmt->get_voltile() ) output << "volatile ";
     500                if ( ! asmStmt->get_gotolabels().empty()  ) output << "goto ";
     501                output << "( ";
     502                if ( asmStmt->get_instruction() ) asmStmt->get_instruction()->accept( *this );
     503                output << " : ";
     504                genCommaList( asmStmt->get_output().begin(), asmStmt->get_output().end() );
     505                output << " : ";
     506                genCommaList( asmStmt->get_input().begin(), asmStmt->get_input().end() );
     507                output << " : ";
     508                genCommaList( asmStmt->get_clobber().begin(), asmStmt->get_clobber().end() );
     509                if ( ! asmStmt->get_gotolabels().empty() ) {
     510                        output << " : ";
     511                        for ( std::list<Label>::iterator begin = asmStmt->get_gotolabels().begin();; ) {
     512                                output << *begin++;
     513                                if ( begin == asmStmt->get_gotolabels().end() ) break;
     514                                output << ", ";
     515                        } // for
     516                } // if
     517                output << " );" ;
     518        }
     519
    485520        void CodeGenerator::visit( IfStmt *ifStmt ) {
    486                 output << "if (";
    487                 ifStmt->get_condition()->accept(*this );
    488                 output << ") ";
    489 
    490                 ifStmt->get_thenPart()->accept(*this );
     521                output << "if ( ";
     522                ifStmt->get_condition()->accept( *this );
     523                output << " ) ";
     524
     525                ifStmt->get_thenPart()->accept( *this );
    491526
    492527                if ( ifStmt->get_elsePart() != 0) {
    493528                        output << " else ";
    494                         ifStmt->get_elsePart()->accept(*this );
     529                        ifStmt->get_elsePart()->accept( *this );
    495530                } // if
    496531        }
    497532
    498533        void CodeGenerator::visit( SwitchStmt *switchStmt ) {
    499                 output << "switch (" ;
    500                 switchStmt->get_condition()->accept(*this );
    501                 output << ") ";
     534                output << "switch ( " ;
     535                switchStmt->get_condition()->accept( *this );
     536                output << " ) ";
    502537               
    503538                output << "{" << std::endl;
     
    517552                } else {
    518553                        output << "case ";
    519                         caseStmt->get_condition()->accept(*this );
     554                        caseStmt->get_condition()->accept( *this );
    520555                } // if
    521556                output << ":\n";
     
    526561                for ( std::list<Statement *>::iterator i = sts.begin(); i != sts.end();  i++) {
    527562                        output << indent << printLabels( (*i)->get_labels() )  ;
    528                         (*i)->accept(*this );
     563                        (*i)->accept( *this );
    529564                        output << endl;
    530565                }
     
    570605                else {
    571606                        output << "while (" ;
    572                         whileStmt->get_condition()->accept(*this );
     607                        whileStmt->get_condition()->accept( *this );
    573608                        output << ")";
    574609                } // if
     
    582617                if ( whileStmt->get_isDoWhile() ) {
    583618                        output << " while (" ;
    584                         whileStmt->get_condition()->accept(*this );
     619                        whileStmt->get_condition()->accept( *this );
    585620                        output << ");";
    586621                } // if
  • src/CodeGen/CodeGenerator.h

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Thu Jun 11 13:24:23 2015
    13 // Update Count     : 23
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jul 24 13:34:47 2015
     13// Update Count     : 25
    1414//
    1515
     
    6565                virtual void visit( TupleExpr *tupleExpr );
    6666                virtual void visit( TypeExpr *typeExpr );
     67                virtual void visit( AsmExpr * );
    6768
    6869                //*** Statements
    6970                virtual void visit( CompoundStmt * );
    7071                virtual void visit( ExprStmt * );
     72                virtual void visit( AsmStmt * );
    7173                virtual void visit( IfStmt * );
    7274                virtual void visit( SwitchStmt * );
  • src/Parser/ExpressionNode.cc

    rb29f8f3 r093f1a0  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:17:07 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jun 24 16:20:00 2015
    13 // Update Count     : 158
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Jul 30 14:53:23 2015
     13// Update Count     : 188
    1414//
    1515
     
    4242}
    4343
    44 ExpressionNode * ExpressionNode::set_asArgName( const std::string *aName ) {
     44ExpressionNode * ExpressionNode::set_argName( const std::string *aName ) {
    4545        argName = new VarRefNode( aName );
    4646        return this;
    4747}
    4848
    49 ExpressionNode * ExpressionNode::set_asArgName( ExpressionNode *aDesignator ) {
     49ExpressionNode * ExpressionNode::set_argName( ExpressionNode *aDesignator ) {
    5050        argName = aDesignator;
    5151        return this;
     
    210210        assert( type == String );
    211211
    212         // "abc" "def" "ghi" => "abcdefghi", so remove new text from quotes and insert before last quote in old string.
     212        // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
    213213        value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) );
    214214       
     
    330330//##############################################################################
    331331
    332 CompositeExprNode::CompositeExprNode( void ) : ExpressionNode(), function( 0 ), arguments( 0 ) {
     332CompositeExprNode::CompositeExprNode() : ExpressionNode(), function( 0 ), arguments( 0 ) {
    333333}
    334334
     
    541541                {
    542542                        assert( args.size() == 3);
    543                         std::list< Expression* >::const_iterator i = args.begin();
     543                        std::list< Expression * >::const_iterator i = args.begin();
    544544                        Expression *arg1 = notZeroExpr( *i++ );
    545545                        Expression *arg2 = *i++;
     
    552552                {
    553553                        assert( args.size() == 2);
    554                         std::list< Expression* >::const_iterator i = args.begin();
     554                        std::list< Expression * >::const_iterator i = args.begin();
    555555                        Expression *ret = *i++;
    556556                        while ( i != args.end() ) {
     
    617617                set_args( arg );
    618618}
     619
     620//##############################################################################
     621
     622Expression *AsmExprNode::build() const {
     623        return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)constraint->build(), operand->build() );
     624}
     625
     626void AsmExprNode::print( std::ostream &os, int indent ) const {
     627        os << string( indent, ' ' ) << "Assembler Expression:" << endl;
     628        if ( inout ) {
     629                os << string( indent, ' ' ) << "inout: " << std::endl;
     630                inout->print( os, indent + 2 );
     631        } // if
     632        if ( constraint ) {
     633                os << string( indent, ' ' ) << "constraint: " << std::endl;
     634                constraint->print( os, indent + 2 );
     635        } // if
     636        if ( operand ) {
     637                os << string( indent, ' ' ) << "operand: " << std::endl;
     638                operand->print( os, indent + 2 );
     639        } // if
     640}
     641
     642void AsmExprNode::printOneLine( std::ostream &os, int indent ) const {
     643        printDesignation( os );
     644        os << "( ";
     645        if ( inout ) inout->printOneLine( os, indent + 2 );
     646        os << ", ";
     647        if ( constraint ) constraint->printOneLine( os, indent + 2 );
     648        os << ", ";
     649        if ( operand ) operand->printOneLine( os, indent + 2 );
     650        os << ") ";
     651}
     652
     653//##############################################################################
     654
     655void LabelNode::print( std::ostream &os, int indent ) const {}
     656
     657void LabelNode::printOneLine( std::ostream &os, int indent ) const {}
    619658
    620659//##############################################################################
  • src/Parser/ParseNode.cc

    rb29f8f3 r093f1a0  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:26:29 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 08 14:46:45 2015
    13 // Update Count     : 25
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Jul 30 14:55:54 2015
     13// Update Count     : 26
    1414//
    1515
     
    2424
    2525ParseNode::~ParseNode() {
    26         delete next;
     26        delete next; delete name;
    2727};
    2828
  • src/Parser/ParseNode.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 14 14:58:25 2015
    13 // Update Count     : 91
     12// Last Modified On : Thu Jul 30 15:11:39 2015
     13// Update Count     : 141
    1414//
    1515
     
    6767        ExpressionNode( const std::string * );
    6868        ExpressionNode( const ExpressionNode &other );
    69         virtual ~ExpressionNode() {} // cannot delete asArgName because it might be referenced elsewhere
     69        virtual ~ExpressionNode() { delete argName; } // cannot delete argName because it might be referenced elsewhere
    7070
    7171        virtual ExpressionNode *clone() const = 0;
     
    7474
    7575        ExpressionNode *get_argName() const { return argName; }
    76         ExpressionNode *set_asArgName( const std::string *aName );
    77         ExpressionNode *set_asArgName( ExpressionNode *aDesignator );
     76        ExpressionNode *set_argName( const std::string *aName );
     77        ExpressionNode *set_argName( ExpressionNode *aDesignator );
    7878
    7979        virtual void print( std::ostream &, int indent = 0) const = 0;
     
    105105
    106106        ConstantNode( Type, std::string * );
     107        ~ConstantNode() { delete &value; }
    107108
    108109        virtual ConstantNode *clone() const { return new ConstantNode( *this ); }
     
    183184};
    184185
    185 
    186186class CompositeExprNode : public ExpressionNode {
    187187  public:
     
    211211};
    212212
     213class AsmExprNode : public ExpressionNode {
     214  public:
     215        AsmExprNode();
     216        AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
     217        virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; }
     218
     219        virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); }
     220        virtual Expression *build() const;
     221
     222        virtual void print( std::ostream &, int indent = 0) const;
     223        virtual void printOneLine( std::ostream &, int indent = 0) const;
     224
     225        ExpressionNode *get_inout() const { return inout; };
     226        void set_inout( ExpressionNode *newValue ) { inout = newValue; }
     227
     228        ConstantNode *get_constraint() const { return constraint; };
     229        void set_constraint( ConstantNode *newValue ) { constraint = newValue; }
     230
     231        ExpressionNode *get_operand() const { return operand; };
     232        void set_operand( ExpressionNode *newValue ) { operand = newValue; }
     233  private:
     234        ExpressionNode *inout;
     235        ConstantNode *constraint;
     236        ExpressionNode *operand;
     237};
     238
     239class LabelNode : public ExpressionNode {
     240  public:
     241        virtual Expression *build() const { return NULL; }
     242        virtual LabelNode *clone() const { return new LabelNode( *this ); }
     243
     244        virtual void print( std::ostream &, int indent = 0) const;
     245        virtual void printOneLine( std::ostream &, int indent = 0) const;
     246
     247        const std::list< std::string > &get_labels() const { return labels; };
     248        void append_label( std::string *label ) { labels.push_back( *label ); delete label; }
     249  private:
     250        std::list< std::string > labels;
     251};
     252
    213253class CommaExprNode : public CompositeExprNode {
    214254  public:
     
    279319        static const char *typeClassName[];
    280320
    281         static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param,
    282                                                                                  StatementNode *body, bool newStyle = false );
     321        static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false );
    283322        static DeclarationNode *newQualifier( Qualifier );
    284323        static DeclarationNode *newStorageClass( StorageClass );
     
    371410
    372411        StatementNode();
    373         StatementNode( const std::string * );
    374         StatementNode( Type, ExpressionNode *e = 0, StatementNode *s = 0 );
    375         StatementNode( Type, std::string *target );
     412        StatementNode( const std::string *name );
     413        StatementNode( Type t, ExpressionNode *control = 0, StatementNode *block = 0 );
     414        StatementNode( Type t, std::string *target );
    376415        StatementNode( DeclarationNode *decl );
    377 
    378416
    379417        ~StatementNode();
     
    402440
    403441        void print( std::ostream &, int indent = 0) const;
    404 
    405442        virtual StatementNode *clone() const;
    406 
    407443        virtual Statement *build() const;
    408444  private:
     
    414450        std::string *target;                            // target label for jump statements
    415451        DeclarationNode *decl;
    416 
    417452        bool isCatchRest;
    418453}; // StatementNode
     
    428463
    429464        void print( std::ostream &, int indent = 0 ) const;
    430 
    431465        virtual Statement *build() const;
    432466  private:
     
    434468};
    435469
     470class AsmStmtNode : public StatementNode {
     471  public:
     472        AsmStmtNode( Type, bool voltile, ConstantNode *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ConstantNode *clobber = 0, LabelNode *gotolabels = 0 );
     473        ~AsmStmtNode();
     474
     475        void print( std::ostream &, int indent = 0 ) const;
     476        Statement *build() const;
     477  private:
     478        bool voltile;
     479        ConstantNode *instruction;
     480        ExpressionNode *output, *input;
     481        ConstantNode *clobber;
     482        std::list<std::string> gotolabels;
     483};
     484
    436485class NullStmtNode : public CompoundStmtNode {
    437486  public:
    438487        Statement *build() const;
    439         void print( std::ostream &, int indent = 0) const;
     488        void print( std::ostream &, int indent = 0 ) const;
    440489};
    441490
     
    463512        InitializerNode *kids;
    464513};
    465 
    466 
    467514
    468515template< typename SynTreeType, typename NodeType >
  • src/Parser/StatementNode.cc

    rb29f8f3 r093f1a0  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 16 16:20:24 2015
    13 // Update Count     : 30
     12// Last Modified On : Thu Jul 30 14:39:39 2015
     13// Update Count     : 130
    1414//
    1515
     
    3636StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3737
    38 StatementNode::StatementNode( const string *name_ ) : ParseNode( name_ ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
     38StatementNode::StatementNode( const string *name ) : ParseNode( name ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3939
    4040StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), isCatchRest ( false ) {
     
    6060}
    6161
    62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block_ ) :
    63                 type( t ), control( ctrl_label ), block( block_), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {
    64         if ( t == Default )
    65                 control = 0;
     62StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {
     63        this->control = ( t == Default ) ? 0 : control;
    6664}
    6765
    68 StatementNode::StatementNode( Type t, string *_target ) :
    69                 type( t ), control( 0 ), block( 0 ), labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {}
     66StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), isCatchRest ( false ) {}
    7067
    7168StatementNode::~StatementNode() {
     
    113110        if ( control && e )
    114111                control->add_to_list( e ); // xxx - check this
    115 
    116112        return this;
    117113}
     
    142138
    143139void StatementNode::print( std::ostream &os, int indent ) const {
    144         if ( ! labels.empty()) {
     140        if ( ! labels.empty() ) {
    145141                std::list<std::string>::const_iterator i;
    146142
     
    168164                        if ( decl ) {
    169165                                os << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl;
    170                                 decl->print( os, indent + 2*ParseNode::indent_by );
     166                                decl->print( os, indent + 2 * ParseNode::indent_by );
    171167                        } else if ( isCatchRest ) {
    172168                                os << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl;
     
    176172                } // if
    177173                if ( control ) {
    178                         os << string( indent + ParseNode::indent_by, ' ' ) << "Expression: " << endl;
    179                         control->printList( os, indent + 2*ParseNode::indent_by );
     174                        os << string( indent + ParseNode::indent_by, ' ' ) << "Control: " << endl;
     175                        control->printList( os, indent + 2 * ParseNode::indent_by );
    180176                } // if
    181177                if ( block ) {
    182178                        os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl;
    183                         block->printList( os, indent + 2*ParseNode::indent_by ); 
     179                        block->printList( os, indent + 2 * ParseNode::indent_by ); 
    184180                } // if
    185181                if ( target ) {
     
    311307                        return new FinallyStmt( labs, block );
    312308                }
     309          case Asm:
     310                assert( false );
    313311          default:
    314312                // shouldn't be here
     
    316314        } // switch
    317315}
     316
    318317
    319318CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {}
     
    360359}
    361360
     361
     362AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantNode *instruction, ExpressionNode *output, ExpressionNode *input, ConstantNode *clobber, LabelNode *gotolabels ) :
     363        StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) {
     364        if ( gotolabels ) {
     365                this->gotolabels = gotolabels->get_labels();
     366                delete gotolabels;
     367        } // if
     368}
     369
     370AsmStmtNode::~AsmStmtNode() {
     371        delete instruction; delete output; delete input; delete clobber;
     372}
     373
     374void AsmStmtNode::print( std::ostream &os, int indent ) const {
     375        StatementNode::print( os, indent );                                     // print statement labels
     376        os << string( indent + ParseNode::indent_by, ' ' ) << "volatile:" << voltile << endl;
     377        if ( instruction ) {
     378                os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl;
     379                instruction->printList( os, indent + 2 * ParseNode::indent_by );
     380        } // if
     381        if ( output ) {
     382                os << string( indent + ParseNode::indent_by, ' ' ) << "Output:" << endl;
     383                output->printList( os, indent + 2 * ParseNode::indent_by );
     384        } // if
     385        if ( input ) {
     386                os << string( indent + ParseNode::indent_by, ' ' ) << "Input:" << endl;
     387                input->printList( os, indent + 2 * ParseNode::indent_by );
     388        } // if
     389        if ( clobber ) {
     390                os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl;
     391                clobber->printList( os, indent + 2 * ParseNode::indent_by );
     392        } // if
     393        if ( ! gotolabels.empty() ) {
     394                os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl;
     395                os << string( indent + 2 * ParseNode::indent_by, ' ' );
     396                for ( std::list<std::string>::const_iterator i = gotolabels.begin();; ) {
     397                        os << *i;
     398                        i++;
     399                  if ( i == gotolabels.end() ) break;
     400                        os << ", ";
     401                }
     402                os << endl;
     403        } // if
     404}
     405
     406Statement *AsmStmtNode::build() const {
     407        std::list<Label> labs;
     408
     409        if ( ! get_labels().empty() ) {
     410                std::back_insert_iterator< std::list<Label> > lab_it( labs );
     411                copy( get_labels().begin(), get_labels().end(), lab_it );
     412        } // if
     413
     414        std::list< Expression * > out, in;
     415        std::list< ConstantExpr * > clob;
     416        buildList( output, out );
     417        buildList( input, in );
     418        buildList( clobber, clob );
     419        std::list< Label > gotolabs = gotolabels;
     420        return new AsmStmt( labs, voltile, (ConstantExpr *)maybeBuild< Expression >( instruction ), out, in, clob, gotolabs );
     421}
     422
     423
    362424void NullStmtNode::print( ostream &os, int indent ) const {
    363425        os << string( indent, ' ' ) << "Null Statement:" << endl;
  • src/Parser/parser.cc

    rb29f8f3 r093f1a0  
    335335        StatementNode *sn;
    336336        ConstantNode *constant;
     337        LabelNode *label;
    337338        InitializerNode *in;
     339        bool flag;
    338340
    339341
    340342
    341343/* Line 293 of yacc.c  */
    342 #line 343 "Parser/parser.cc"
     344#line 345 "Parser/parser.cc"
    343345} YYSTYPE;
    344346# define YYSTYPE_IS_TRIVIAL 1
     
    352354
    353355/* Line 343 of yacc.c  */
    354 #line 355 "Parser/parser.cc"
     356#line 357 "Parser/parser.cc"
    355357
    356358#ifdef short
     
    571573#define YYFINAL  246
    572574/* YYLAST -- Last index in YYTABLE.  */
    573 #define YYLAST   11363
     575#define YYLAST   11295
    574576
    575577/* YYNTOKENS -- Number of terminals.  */
    576578#define YYNTOKENS  125
    577579/* YYNNTS -- Number of nonterminals.  */
    578 #define YYNNTS  236
     580#define YYNNTS  237
    579581/* YYNRULES -- Number of rules.  */
    580 #define YYNRULES  732
     582#define YYNRULES  739
    581583/* YYNRULES -- Number of states.  */
    582 #define YYNSTATES  1505
     584#define YYNSTATES  1527
    583585
    584586/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    656658     650,   654,   657,   661,   665,   670,   672,   678,   685,   695,
    657659     706,   709,   711,   714,   717,   720,   722,   729,   738,   749,
    658      762,   763,   765,   767,   771,   776,   778,   782,   784,   786,
    659      788,   792,   794,   796,   798,   802,   803,   805,   809,   814,
    660      816,   820,   822,   824,   828,   832,   836,   840,   844,   847,
    661      851,   858,   862,   866,   871,   873,   876,   879,   883,   889,
    662      898,   906,   914,   920,   930,   933,   936,   942,   946,   952,
    663      957,   961,   966,   971,   979,   983,   987,   991,   995,  1000,
    664     1007,  1009,  1011,  1013,  1015,  1017,  1019,  1021,  1023,  1024,
    665     1026,  1028,  1031,  1033,  1035,  1037,  1039,  1041,  1043,  1045,
    666     1046,  1052,  1054,  1057,  1061,  1063,  1066,  1068,  1070,  1072,
    667     1074,  1076,  1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,
    668     1094,  1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1113,
    669     1116,  1120,  1124,  1126,  1130,  1132,  1135,  1138,  1141,  1146,
    670     1151,  1156,  1161,  1163,  1166,  1169,  1173,  1175,  1178,  1181,
    671     1183,  1186,  1189,  1193,  1195,  1198,  1201,  1203,  1205,  1210,
    672     1213,  1219,  1227,  1230,  1233,  1236,  1238,  1241,  1244,  1248,
    673     1251,  1255,  1257,  1260,  1264,  1267,  1270,  1275,  1276,  1278,
    674     1281,  1284,  1286,  1287,  1289,  1292,  1295,  1301,  1308,  1311,
    675     1314,  1319,  1320,  1323,  1324,  1326,  1328,  1330,  1336,  1342,
    676     1348,  1350,  1356,  1362,  1372,  1374,  1380,  1381,  1383,  1385,
    677     1391,  1393,  1395,  1401,  1407,  1409,  1413,  1417,  1422,  1424,
    678     1426,  1428,  1430,  1433,  1435,  1439,  1443,  1445,  1448,  1450,
    679     1454,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,  1472,
    680     1474,  1476,  1479,  1481,  1483,  1485,  1488,  1489,  1492,  1494,
    681     1499,  1501,  1504,  1508,  1513,  1516,  1519,  1521,  1524,  1527,
    682     1533,  1539,  1547,  1554,  1556,  1559,  1562,  1566,  1568,  1571,
    683     1574,  1579,  1582,  1587,  1588,  1593,  1596,  1598,  1600,  1602,
    684     1603,  1606,  1612,  1618,  1632,  1634,  1636,  1640,  1644,  1647,
    685     1651,  1655,  1658,  1663,  1665,  1672,  1682,  1683,  1695,  1697,
    686     1701,  1705,  1709,  1711,  1713,  1719,  1722,  1728,  1729,  1731,
    687     1733,  1737,  1738,  1740,  1742,  1744,  1746,  1747,  1754,  1757,
    688     1759,  1762,  1767,  1770,  1774,  1778,  1782,  1787,  1793,  1799,
    689     1805,  1812,  1814,  1816,  1818,  1822,  1823,  1829,  1830,  1832,
    690     1834,  1837,  1844,  1846,  1850,  1851,  1853,  1858,  1860,  1862,
    691     1864,  1866,  1869,  1871,  1874,  1877,  1879,  1883,  1886,  1890,
    692     1894,  1897,  1902,  1907,  1911,  1920,  1924,  1927,  1929,  1932,
    693     1939,  1948,  1952,  1955,  1959,  1963,  1968,  1973,  1977,  1979,
    694     1981,  1983,  1988,  1995,  1999,  2002,  2006,  2010,  2015,  2020,
    695     2024,  2027,  2029,  2032,  2035,  2037,  2041,  2044,  2048,  2052,
    696     2055,  2060,  2065,  2069,  2076,  2085,  2089,  2092,  2094,  2097,
    697     2100,  2103,  2107,  2111,  2114,  2119,  2124,  2128,  2135,  2144,
    698     2148,  2151,  2153,  2156,  2159,  2161,  2163,  2166,  2170,  2174,
    699     2177,  2182,  2189,  2198,  2200,  2203,  2206,  2208,  2211,  2214,
    700     2218,  2222,  2224,  2229,  2234,  2238,  2244,  2253,  2257,  2260,
    701     2264,  2266,  2272,  2278,  2285,  2292,  2294,  2297,  2300,  2302,
    702     2305,  2308,  2312,  2316,  2318,  2323,  2328,  2332,  2338,  2347,
    703     2351,  2353,  2356,  2358,  2361,  2368,  2374,  2381,  2389,  2397,
    704     2399,  2402,  2405,  2407,  2410,  2413,  2417,  2421,  2423,  2428,
    705     2433,  2437,  2446,  2450,  2452,  2454,  2457,  2459,  2461,  2464,
    706     2468,  2471,  2475,  2478,  2482,  2486,  2489,  2494,  2498,  2501,
    707     2505,  2508,  2513,  2517,  2520,  2527,  2534,  2541,  2549,  2551,
    708     2554,  2556,  2558,  2560,  2563,  2567,  2570,  2574,  2577,  2581,
    709     2585,  2590,  2593,  2597,  2602,  2605,  2611,  2617,  2624,  2631,
    710     2632,  2634,  2635
     660     762,   777,   778,   780,   781,   783,   785,   789,   794,   802,
     661     803,   805,   809,   811,   815,   817,   819,   821,   825,   827,
     662     829,   831,   835,   836,   838,   842,   847,   849,   853,   855,
     663     857,   861,   865,   869,   873,   877,   880,   884,   891,   895,
     664     899,   904,   906,   909,   912,   916,   922,   931,   939,   947,
     665     953,   963,   966,   969,   975,   979,   985,   990,   994,   999,
     666    1004,  1012,  1016,  1020,  1024,  1028,  1033,  1040,  1042,  1044,
     667    1046,  1048,  1050,  1052,  1054,  1056,  1057,  1059,  1061,  1064,
     668    1066,  1068,  1070,  1072,  1074,  1076,  1078,  1079,  1085,  1087,
     669    1090,  1094,  1096,  1099,  1101,  1103,  1105,  1107,  1109,  1111,
     670    1113,  1115,  1117,  1119,  1121,  1123,  1125,  1127,  1129,  1131,
     671    1133,  1135,  1137,  1139,  1141,  1143,  1146,  1149,  1153,  1157,
     672    1159,  1163,  1165,  1168,  1171,  1174,  1179,  1184,  1189,  1194,
     673    1196,  1199,  1202,  1206,  1208,  1211,  1214,  1216,  1219,  1222,
     674    1226,  1228,  1231,  1234,  1236,  1238,  1243,  1246,  1252,  1260,
     675    1263,  1266,  1269,  1271,  1274,  1277,  1281,  1284,  1288,  1290,
     676    1293,  1297,  1300,  1303,  1308,  1309,  1311,  1314,  1317,  1319,
     677    1320,  1322,  1325,  1328,  1334,  1341,  1344,  1347,  1352,  1353,
     678    1356,  1357,  1359,  1361,  1363,  1369,  1375,  1381,  1383,  1389,
     679    1395,  1405,  1407,  1413,  1414,  1416,  1418,  1424,  1426,  1428,
     680    1434,  1440,  1442,  1446,  1450,  1455,  1457,  1459,  1461,  1463,
     681    1466,  1468,  1472,  1476,  1478,  1481,  1483,  1487,  1489,  1491,
     682    1493,  1495,  1497,  1499,  1501,  1503,  1505,  1507,  1509,  1512,
     683    1514,  1516,  1518,  1521,  1522,  1525,  1527,  1532,  1534,  1537,
     684    1541,  1546,  1549,  1552,  1554,  1557,  1560,  1566,  1572,  1580,
     685    1587,  1589,  1592,  1595,  1599,  1601,  1604,  1607,  1612,  1615,
     686    1620,  1621,  1626,  1629,  1631,  1633,  1635,  1636,  1639,  1645,
     687    1651,  1665,  1667,  1669,  1673,  1677,  1680,  1684,  1688,  1691,
     688    1696,  1698,  1705,  1715,  1716,  1728,  1730,  1734,  1738,  1742,
     689    1744,  1746,  1752,  1755,  1761,  1762,  1764,  1766,  1770,  1771,
     690    1773,  1775,  1777,  1779,  1780,  1787,  1790,  1792,  1795,  1800,
     691    1803,  1807,  1811,  1815,  1820,  1826,  1832,  1838,  1845,  1847,
     692    1849,  1851,  1855,  1856,  1862,  1863,  1865,  1867,  1870,  1877,
     693    1879,  1883,  1884,  1886,  1891,  1893,  1895,  1897,  1899,  1902,
     694    1904,  1907,  1910,  1912,  1916,  1919,  1923,  1927,  1930,  1935,
     695    1940,  1944,  1953,  1957,  1960,  1962,  1965,  1972,  1981,  1985,
     696    1988,  1992,  1996,  2001,  2006,  2010,  2012,  2014,  2016,  2021,
     697    2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2060,  2062,
     698    2065,  2068,  2070,  2074,  2077,  2081,  2085,  2088,  2093,  2098,
     699    2102,  2109,  2118,  2122,  2125,  2127,  2130,  2133,  2136,  2140,
     700    2144,  2147,  2152,  2157,  2161,  2168,  2177,  2181,  2184,  2186,
     701    2189,  2192,  2194,  2196,  2199,  2203,  2207,  2210,  2215,  2222,
     702    2231,  2233,  2236,  2239,  2241,  2244,  2247,  2251,  2255,  2257,
     703    2262,  2267,  2271,  2277,  2286,  2290,  2293,  2297,  2299,  2305,
     704    2311,  2318,  2325,  2327,  2330,  2333,  2335,  2338,  2341,  2345,
     705    2349,  2351,  2356,  2361,  2365,  2371,  2380,  2384,  2386,  2389,
     706    2391,  2394,  2401,  2407,  2414,  2422,  2430,  2432,  2435,  2438,
     707    2440,  2443,  2446,  2450,  2454,  2456,  2461,  2466,  2470,  2479,
     708    2483,  2485,  2487,  2490,  2492,  2494,  2497,  2501,  2504,  2508,
     709    2511,  2515,  2519,  2522,  2527,  2531,  2534,  2538,  2541,  2546,
     710    2550,  2553,  2560,  2567,  2574,  2582,  2584,  2587,  2589,  2591,
     711    2593,  2596,  2600,  2603,  2607,  2610,  2614,  2618,  2623,  2626,
     712    2630,  2635,  2638,  2644,  2650,  2657,  2664,  2665,  2667,  2668
    711713};
    712714
     
    714716static const yytype_int16 yyrhs[] =
    715717{
    716      289,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     718     290,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
    717719      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
    718720      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
     
    723725     138,   127,   104,    -1,   135,    78,   131,    -1,   135,    78,
    724726     103,   126,   138,   127,   104,    -1,   135,    79,    -1,   135,
    725       80,    -1,   101,   262,   102,   106,   266,   359,   107,    -1,
     727      80,    -1,   101,   263,   102,   106,   267,   360,   107,    -1,
    726728     137,    -1,   136,   108,   137,    -1,    -1,   155,    -1,   131,
    727729     109,   155,    -1,   103,   126,   155,   127,   104,   109,   155,
     
    732734     127,   104,    -1,   135,    -1,    79,   140,    -1,    80,   140,
    733735      -1,    38,   142,    -1,   141,   142,    -1,   110,   142,    -1,
    734      111,   142,    -1,    36,   140,    -1,    36,   101,   262,   102,
    735       -1,    69,    -1,    69,   101,   263,   102,    -1,    69,   101,
    736      137,   102,    -1,    59,   140,    -1,    59,   101,   262,   102,
     736     111,   142,    -1,    36,   140,    -1,    36,   101,   263,   102,
     737      -1,    69,    -1,    69,   101,   264,   102,    -1,    69,   101,
     738     137,   102,    -1,    59,   140,    -1,    59,   101,   263,   102,
    737739      -1,    87,   131,    -1,   112,    -1,   113,    -1,   114,    -1,
    738      115,    -1,   140,    -1,   101,   262,   102,   142,    -1,   101,
    739      262,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
     740     115,    -1,   140,    -1,   101,   263,   102,   142,    -1,   101,
     741     263,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
    740742     143,   116,   142,    -1,   143,   117,   142,    -1,   143,    -1,
    741743     144,   113,   143,    -1,   144,   114,   143,    -1,   144,    -1,
     
    749751     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
    750752     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
    751      123,   155,    -1,   140,   159,   155,    -1,   157,   360,    -1,
     753     123,   155,    -1,   140,   159,   155,    -1,   157,   361,    -1,
    752754      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
    753755     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     
    758760     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
    759761     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
    760      299,   162,    -1,   106,   107,    -1,   106,   126,   126,   198,
     762     300,   162,    -1,   106,   107,    -1,   106,   126,   126,   200,
    761763     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
    762      201,    -1,    38,   201,    -1,   295,    -1,   162,   127,    -1,
     764     202,    -1,    38,   202,    -1,   296,    -1,   162,   127,    -1,
    763765     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
    764766     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
    765767     162,    -1,    41,   101,   160,   102,   174,    -1,    41,   101,
    766      160,   102,   106,   126,   194,   175,   107,    -1,    51,   101,
     768     160,   102,   106,   126,   196,   175,   107,    -1,    51,   101,
    767769     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
    768      194,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
    769      297,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     770     196,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
     771     298,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
    770772     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
    771773     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     
    775777      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
    776778     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
    777       -1,   161,   127,   124,   161,   124,   161,    -1,   201,   161,
     779      -1,   161,   127,   124,   161,   124,   161,    -1,   202,   161,
    778780     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
    779781     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     
    784786     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
    785787     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
    786      188,   127,   102,   164,   127,    -1,    55,   164,    -1,   214,
    787       -1,   214,   296,    -1,   214,   344,    -1,   353,   131,    -1,
    788      353,    -1,    57,   215,   101,   154,   102,   124,    -1,    57,
    789      215,   101,   154,   109,   190,   102,   124,    -1,    57,   215,
    790      101,   154,   109,   190,   109,   190,   102,   124,    -1,    57,
    791      215,   101,   154,   109,   190,   109,   190,   109,   193,   102,
    792      124,    -1,    -1,   191,    -1,   192,    -1,   191,   108,   192,
    793       -1,    75,   101,   154,   102,    -1,    75,    -1,   193,   108,
    794       75,    -1,   127,    -1,   195,    -1,   201,    -1,   195,   126,
    795      201,    -1,   127,    -1,   197,    -1,   211,    -1,   197,   126,
    796      211,    -1,    -1,   199,    -1,    28,   200,   124,    -1,   199,
    797       28,   200,   124,    -1,   261,    -1,   200,   108,   261,    -1,
    798      202,    -1,   211,    -1,   203,   127,   124,    -1,   208,   127,
    799      124,    -1,   205,   127,   124,    -1,   280,   127,   124,    -1,
    800      283,   127,   124,    -1,   204,   264,    -1,   220,   204,   264,
    801       -1,   203,   127,   108,   126,   259,   264,    -1,   354,   259,
    802      298,    -1,   357,   259,   298,    -1,   216,   357,   259,   298,
    803       -1,   206,    -1,   216,   206,    -1,   220,   206,    -1,   220,
    804      216,   206,    -1,   205,   127,   108,   126,   259,    -1,   103,
    805      104,   259,   101,   126,   247,   127,   102,    -1,   357,   259,
    806      101,   126,   247,   127,   102,    -1,   207,   259,   101,   126,
    807      247,   127,   102,    -1,   103,   126,   249,   127,   104,    -1,
    808      103,   126,   249,   127,   108,   126,   250,   127,   104,    -1,
    809        3,   204,    -1,     3,   206,    -1,   208,   127,   108,   126,
    810      131,    -1,     3,   214,   296,    -1,   209,   127,   108,   126,
    811      296,    -1,   216,     3,   214,   296,    -1,   214,     3,   296,
    812       -1,   214,     3,   216,   296,    -1,     3,   131,   123,   155,
    813       -1,   210,   127,   108,   126,   131,   123,   155,    -1,   212,
    814      127,   124,    -1,   209,   127,   124,    -1,   210,   127,   124,
    815       -1,   229,   127,   124,    -1,   213,   296,   298,   264,    -1,
    816      212,   108,   299,   296,   298,   264,    -1,   225,    -1,   229,
    817       -1,   231,    -1,   270,    -1,   226,    -1,   230,    -1,   232,
    818       -1,   271,    -1,    -1,   216,    -1,   217,    -1,   216,   217,
    819       -1,   218,    -1,   301,    -1,    10,    -1,    12,    -1,    11,
    820       -1,    14,    -1,    60,    -1,    -1,    13,   101,   219,   273,
    821      102,    -1,   221,    -1,   216,   221,    -1,   220,   216,   221,
    822       -1,   222,    -1,   221,   222,    -1,   223,    -1,     5,    -1,
    823        7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
    824       62,    -1,    64,    -1,    16,    -1,    21,    -1,    20,    -1,
    825       18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
    826       15,    -1,    24,    -1,    25,    -1,    26,    -1,   226,    -1,
    827      220,   226,    -1,   225,   222,    -1,   225,   222,   216,    -1,
    828      225,   222,   226,    -1,   227,    -1,   215,   228,   215,    -1,
    829      224,    -1,   216,   224,    -1,   227,   217,    -1,   227,   224,
    830       -1,    27,   101,   263,   102,    -1,    27,   101,   160,   102,
    831       -1,    71,   101,   263,   102,    -1,    71,   101,   160,   102,
    832       -1,   230,    -1,   220,   230,    -1,   229,   222,    -1,   229,
    833      222,   216,    -1,   233,    -1,   216,   233,    -1,   230,   217,
    834       -1,   232,    -1,   220,   232,    -1,   231,   222,    -1,   231,
    835      222,   216,    -1,    67,    -1,   216,    67,    -1,   232,   217,
    836       -1,   234,    -1,   244,    -1,   235,   106,   236,   107,    -1,
    837      235,   261,    -1,   235,   261,   106,   236,   107,    -1,   235,
    838      101,   279,   102,   106,   236,   107,    -1,   235,   272,    -1,
    839       30,   299,    -1,    31,   299,    -1,   237,    -1,   236,   237,
    840       -1,   238,   124,    -1,    38,   238,   124,    -1,   239,   124,
    841       -1,    38,   239,   124,    -1,   353,    -1,   353,   261,    -1,
    842      238,   108,   261,    -1,   238,   108,    -1,   214,   240,    -1,
    843      239,   108,   299,   240,    -1,    -1,   242,    -1,   305,   241,
    844       -1,   318,   241,    -1,   344,    -1,    -1,   242,    -1,   109,
    845      154,    -1,    29,   299,    -1,   243,   106,   245,   359,   107,
    846       -1,   243,   261,   106,   245,   359,   107,    -1,   243,   261,
    847       -1,   261,   246,    -1,   245,   108,   261,   246,    -1,    -1,
    848      123,   154,    -1,    -1,   248,    -1,   250,    -1,   249,    -1,
    849      249,   127,   108,   126,   250,    -1,   250,   127,   108,   126,
    850       89,    -1,   249,   127,   108,   126,    89,    -1,   254,    -1,
    851      250,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
    852      254,    -1,   249,   127,   108,   126,   250,   127,   108,   126,
    853      254,    -1,   255,    -1,   250,   127,   108,   126,   255,    -1,
    854       -1,   252,    -1,   253,    -1,   253,   127,   108,   126,    89,
    855       -1,   257,    -1,   256,    -1,   253,   127,   108,   126,   257,
    856       -1,   253,   127,   108,   126,   256,    -1,   256,    -1,   349,
    857      259,   360,    -1,   357,   259,   360,    -1,   216,   357,   259,
    858      360,    -1,   206,    -1,   257,    -1,   349,    -1,   357,    -1,
    859      216,   357,    -1,   358,    -1,   213,   323,   360,    -1,   213,
    860      327,   360,    -1,   213,    -1,   213,   338,    -1,   131,    -1,
    861      258,   108,   131,    -1,   129,    -1,    67,    -1,    68,    -1,
    862      130,    -1,    67,    -1,    68,    -1,   131,    -1,    67,    -1,
    863       68,    -1,   353,    -1,   214,    -1,   214,   344,    -1,   353,
    864       -1,   358,    -1,   214,    -1,   214,   332,    -1,    -1,   123,
    865      265,    -1,   155,    -1,   106,   266,   359,   107,    -1,   265,
    866       -1,   267,   265,    -1,   266,   108,   265,    -1,   266,   108,
    867      267,   265,    -1,   268,   109,    -1,   261,   109,    -1,   269,
    868       -1,   268,   269,    -1,   105,   261,    -1,   103,   126,   155,
    869      127,   104,    -1,   103,   126,   297,   127,   104,    -1,   103,
    870      126,   154,    89,   154,   127,   104,    -1,   105,   103,   126,
    871      138,   127,   104,    -1,   271,    -1,   220,   271,    -1,   270,
    872      222,    -1,   270,   222,   216,    -1,   272,    -1,   216,   272,
    873       -1,   271,   217,    -1,    68,   101,   279,   102,    -1,   274,
    874      360,    -1,   273,   108,   274,   360,    -1,    -1,   276,   261,
    875      275,   277,    -1,   214,   323,    -1,    32,    -1,    34,    -1,
    876       33,    -1,    -1,   277,   278,    -1,   121,   261,   101,   279,
    877      102,    -1,   121,   106,   126,   285,   107,    -1,   121,   101,
    878      126,   273,   127,   102,   106,   126,   285,   107,   101,   279,
    879      102,    -1,   263,    -1,   155,    -1,   279,   108,   263,    -1,
    880      279,   108,   155,    -1,    32,   281,    -1,   221,    32,   281,
    881       -1,   280,   108,   281,    -1,   282,   277,    -1,   282,   277,
    882      123,   263,    -1,   261,    -1,   260,   101,   126,   273,   127,
    883      102,    -1,    35,   261,   101,   126,   273,   127,   102,   106,
    884      107,    -1,    -1,    35,   261,   101,   126,   273,   127,   102,
    885      106,   284,   285,   107,    -1,   286,    -1,   285,   126,   286,
    886       -1,   287,   127,   124,    -1,   288,   127,   124,    -1,   204,
    887       -1,   206,    -1,   287,   127,   108,   126,   259,    -1,   214,
    888      296,    -1,   288,   127,   108,   126,   296,    -1,    -1,   290,
    889       -1,   292,    -1,   290,   126,   292,    -1,    -1,   290,    -1,
    890      201,    -1,   294,    -1,   189,    -1,    -1,     5,    75,   293,
    891      106,   291,   107,    -1,    38,   292,    -1,   295,    -1,   310,
    892      164,    -1,   314,   126,   196,   164,    -1,   205,   164,    -1,
    893      213,   310,   164,    -1,   216,   310,   164,    -1,   220,   310,
    894      164,    -1,   220,   216,   310,   164,    -1,   213,   314,   126,
    895      196,   164,    -1,   216,   314,   126,   196,   164,    -1,   220,
    896      314,   126,   196,   164,    -1,   220,   216,   314,   126,   196,
    897      164,    -1,   305,    -1,   310,    -1,   318,    -1,   154,   115,
    898      154,    -1,    -1,    57,   101,   133,   102,   299,    -1,    -1,
    899      300,    -1,   301,    -1,   300,   301,    -1,    37,   101,   101,
    900      302,   102,   102,    -1,   303,    -1,   302,   108,   303,    -1,
    901       -1,   304,    -1,   304,   101,   161,   102,    -1,   259,    -1,
    902      223,    -1,   224,    -1,   217,    -1,   306,   299,    -1,   307,
    903       -1,   308,   299,    -1,   309,   299,    -1,   129,    -1,   101,
    904      306,   102,    -1,   111,   305,    -1,   111,   216,   305,    -1,
    905      101,   307,   102,    -1,   306,   336,    -1,   101,   307,   102,
    906      336,    -1,   101,   308,   102,   337,    -1,   101,   308,   102,
    907       -1,   101,   307,   102,   101,   126,   251,   127,   102,    -1,
    908      101,   309,   102,    -1,   311,   299,    -1,   312,    -1,   313,
    909      299,    -1,   306,   101,   126,   251,   127,   102,    -1,   101,
    910      312,   102,   101,   126,   251,   127,   102,    -1,   101,   311,
    911      102,    -1,   111,   310,    -1,   111,   216,   310,    -1,   101,
    912      312,   102,    -1,   101,   312,   102,   336,    -1,   101,   313,
    913      102,   337,    -1,   101,   313,   102,    -1,   315,    -1,   316,
    914       -1,   317,    -1,   306,   101,   258,   102,    -1,   101,   316,
    915      102,   101,   258,   102,    -1,   101,   315,   102,    -1,   111,
    916      314,    -1,   111,   216,   314,    -1,   101,   316,   102,    -1,
    917      101,   316,   102,   336,    -1,   101,   317,   102,   337,    -1,
    918      101,   317,   102,    -1,   319,   299,    -1,   320,    -1,   321,
    919      299,    -1,   322,   299,    -1,   328,    -1,   101,   319,   102,
    920       -1,   111,   318,    -1,   111,   216,   318,    -1,   101,   320,
    921      102,    -1,   319,   336,    -1,   101,   320,   102,   336,    -1,
    922      101,   321,   102,   337,    -1,   101,   321,   102,    -1,   319,
    923      101,   126,   251,   127,   102,    -1,   101,   320,   102,   101,
    924      126,   251,   127,   102,    -1,   101,   322,   102,    -1,   306,
    925      299,    -1,   324,    -1,   325,   299,    -1,   326,   299,    -1,
    926      111,   323,    -1,   111,   216,   323,    -1,   101,   324,   102,
    927       -1,   306,   342,    -1,   101,   324,   102,   336,    -1,   101,
    928      325,   102,   337,    -1,   101,   325,   102,    -1,   306,   101,
    929      126,   251,   127,   102,    -1,   101,   324,   102,   101,   126,
    930      251,   127,   102,    -1,   101,   326,   102,    -1,   328,   299,
    931       -1,   329,    -1,   330,   299,    -1,   331,   299,    -1,    67,
    932       -1,    68,    -1,   111,   327,    -1,   111,   216,   327,    -1,
    933      101,   329,   102,    -1,   328,   342,    -1,   101,   329,   102,
    934      342,    -1,   328,   101,   126,   251,   127,   102,    -1,   101,
    935      329,   102,   101,   126,   251,   127,   102,    -1,   333,    -1,
    936      334,   299,    -1,   335,   299,    -1,   111,    -1,   111,   216,
    937       -1,   111,   332,    -1,   111,   216,   332,    -1,   101,   333,
    938      102,    -1,   336,    -1,   101,   333,   102,   336,    -1,   101,
    939      334,   102,   337,    -1,   101,   334,   102,    -1,   101,   126,
    940      251,   127,   102,    -1,   101,   333,   102,   101,   126,   251,
    941      127,   102,    -1,   101,   335,   102,    -1,   103,   104,    -1,
    942      103,   104,   337,    -1,   337,    -1,   103,   126,   155,   127,
    943      104,    -1,   103,   126,   111,   127,   104,    -1,   337,   103,
    944      126,   155,   127,   104,    -1,   337,   103,   126,   111,   127,
    945      104,    -1,   339,    -1,   340,   299,    -1,   341,   299,    -1,
    946      111,    -1,   111,   216,    -1,   111,   338,    -1,   111,   216,
    947      338,    -1,   101,   339,   102,    -1,   342,    -1,   101,   339,
    948      102,   342,    -1,   101,   340,   102,   337,    -1,   101,   340,
    949      102,    -1,   101,   126,   251,   127,   102,    -1,   101,   339,
    950      102,   101,   126,   251,   127,   102,    -1,   101,   341,   102,
    951       -1,   343,    -1,   343,   337,    -1,   337,    -1,   103,   104,
    952       -1,   103,   126,   216,   111,   127,   104,    -1,   103,   126,
    953      216,   127,   104,    -1,   103,   126,   216,   155,   127,   104,
    954       -1,   103,   126,     7,   215,   155,   127,   104,    -1,   103,
    955      126,   216,     7,   155,   127,   104,    -1,   345,    -1,   346,
    956      299,    -1,   347,   299,    -1,   111,    -1,   111,   216,    -1,
    957      111,   344,    -1,   111,   216,   344,    -1,   101,   345,   102,
    958       -1,   336,    -1,   101,   345,   102,   336,    -1,   101,   346,
    959      102,   337,    -1,   101,   346,   102,    -1,   101,   345,   102,
    960      101,   126,   251,   127,   102,    -1,   101,   347,   102,    -1,
    961      349,    -1,   357,    -1,   216,   357,    -1,   350,    -1,   351,
    962       -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   358,
    963       -1,   216,   111,   358,    -1,   111,   348,    -1,   216,   111,
    964      348,    -1,   103,   104,   214,    -1,   352,   214,    -1,   103,
    965      104,   337,   214,    -1,   352,   337,   214,    -1,   337,   214,
    966       -1,   103,   104,   350,    -1,   352,   350,    -1,   103,   104,
    967      337,   350,    -1,   352,   337,   350,    -1,   337,   350,    -1,
    968      103,   126,   216,   111,   127,   104,    -1,   103,   126,   216,
    969      155,   127,   104,    -1,   103,   126,   220,   155,   127,   104,
    970       -1,   103,   126,   220,   216,   155,   127,   104,    -1,   357,
    971       -1,   216,   357,    -1,   354,    -1,   355,    -1,   356,    -1,
    972      111,   214,    -1,   216,   111,   214,    -1,   111,   358,    -1,
    973      216,   111,   358,    -1,   111,   353,    -1,   216,   111,   353,
    974       -1,   103,   104,   214,    -1,   103,   104,   337,   214,    -1,
    975      337,   214,    -1,   103,   104,   355,    -1,   103,   104,   337,
    976      355,    -1,   337,   355,    -1,   103,   126,   250,   127,   104,
    977       -1,   103,   104,   101,   247,   102,    -1,   357,   101,   126,
    978      247,   127,   102,    -1,   207,   101,   126,   247,   127,   102,
    979       -1,    -1,   108,    -1,    -1,   123,   155,    -1
     788     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   215,
     789      -1,   215,   297,    -1,   215,   345,    -1,   354,   131,    -1,
     790     354,    -1,    57,   190,   101,   133,   102,   124,    -1,    57,
     791     190,   101,   133,   109,   191,   102,   124,    -1,    57,   190,
     792     101,   133,   109,   191,   109,   191,   102,   124,    -1,    57,
     793     190,   101,   133,   109,   191,   109,   191,   109,   194,   102,
     794     124,    -1,    57,   190,    49,   101,   133,   109,   109,   191,
     795     109,   194,   109,   195,   102,   124,    -1,    -1,    11,    -1,
     796      -1,   192,    -1,   193,    -1,   192,   108,   193,    -1,   133,
     797     101,   154,   102,    -1,   103,   154,   104,   133,   101,   154,
     798     102,    -1,    -1,   133,    -1,   194,   108,   133,    -1,   131,
     799      -1,   195,   108,   131,    -1,   127,    -1,   197,    -1,   202,
     800      -1,   197,   126,   202,    -1,   127,    -1,   199,    -1,   212,
     801      -1,   199,   126,   212,    -1,    -1,   201,    -1,    28,   195,
     802     124,    -1,   201,    28,   195,   124,    -1,   262,    -1,   195,
     803     108,   262,    -1,   203,    -1,   212,    -1,   204,   127,   124,
     804      -1,   209,   127,   124,    -1,   206,   127,   124,    -1,   281,
     805     127,   124,    -1,   284,   127,   124,    -1,   205,   265,    -1,
     806     221,   205,   265,    -1,   204,   127,   108,   126,   260,   265,
     807      -1,   355,   260,   299,    -1,   358,   260,   299,    -1,   217,
     808     358,   260,   299,    -1,   207,    -1,   217,   207,    -1,   221,
     809     207,    -1,   221,   217,   207,    -1,   206,   127,   108,   126,
     810     260,    -1,   103,   104,   260,   101,   126,   248,   127,   102,
     811      -1,   358,   260,   101,   126,   248,   127,   102,    -1,   208,
     812     260,   101,   126,   248,   127,   102,    -1,   103,   126,   250,
     813     127,   104,    -1,   103,   126,   250,   127,   108,   126,   251,
     814     127,   104,    -1,     3,   205,    -1,     3,   207,    -1,   209,
     815     127,   108,   126,   131,    -1,     3,   215,   297,    -1,   210,
     816     127,   108,   126,   297,    -1,   217,     3,   215,   297,    -1,
     817     215,     3,   297,    -1,   215,     3,   217,   297,    -1,     3,
     818     131,   123,   155,    -1,   211,   127,   108,   126,   131,   123,
     819     155,    -1,   213,   127,   124,    -1,   210,   127,   124,    -1,
     820     211,   127,   124,    -1,   230,   127,   124,    -1,   214,   297,
     821     299,   265,    -1,   213,   108,   300,   297,   299,   265,    -1,
     822     226,    -1,   230,    -1,   232,    -1,   271,    -1,   227,    -1,
     823     231,    -1,   233,    -1,   272,    -1,    -1,   217,    -1,   218,
     824      -1,   217,   218,    -1,   219,    -1,   302,    -1,    10,    -1,
     825      12,    -1,    11,    -1,    14,    -1,    60,    -1,    -1,    13,
     826     101,   220,   274,   102,    -1,   222,    -1,   217,   222,    -1,
     827     221,   217,   222,    -1,   223,    -1,   222,   223,    -1,   224,
     828      -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
     829      -1,     9,    -1,    62,    -1,    64,    -1,    16,    -1,    21,
     830      -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
     831      -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
     832      -1,   227,    -1,   221,   227,    -1,   226,   223,    -1,   226,
     833     223,   217,    -1,   226,   223,   227,    -1,   228,    -1,   216,
     834     229,   216,    -1,   225,    -1,   217,   225,    -1,   228,   218,
     835      -1,   228,   225,    -1,    27,   101,   264,   102,    -1,    27,
     836     101,   160,   102,    -1,    71,   101,   264,   102,    -1,    71,
     837     101,   160,   102,    -1,   231,    -1,   221,   231,    -1,   230,
     838     223,    -1,   230,   223,   217,    -1,   234,    -1,   217,   234,
     839      -1,   231,   218,    -1,   233,    -1,   221,   233,    -1,   232,
     840     223,    -1,   232,   223,   217,    -1,    67,    -1,   217,    67,
     841      -1,   233,   218,    -1,   235,    -1,   245,    -1,   236,   106,
     842     237,   107,    -1,   236,   262,    -1,   236,   262,   106,   237,
     843     107,    -1,   236,   101,   280,   102,   106,   237,   107,    -1,
     844     236,   273,    -1,    30,   300,    -1,    31,   300,    -1,   238,
     845      -1,   237,   238,    -1,   239,   124,    -1,    38,   239,   124,
     846      -1,   240,   124,    -1,    38,   240,   124,    -1,   354,    -1,
     847     354,   262,    -1,   239,   108,   262,    -1,   239,   108,    -1,
     848     215,   241,    -1,   240,   108,   300,   241,    -1,    -1,   243,
     849      -1,   306,   242,    -1,   319,   242,    -1,   345,    -1,    -1,
     850     243,    -1,   109,   154,    -1,    29,   300,    -1,   244,   106,
     851     246,   360,   107,    -1,   244,   262,   106,   246,   360,   107,
     852      -1,   244,   262,    -1,   262,   247,    -1,   246,   108,   262,
     853     247,    -1,    -1,   123,   154,    -1,    -1,   249,    -1,   251,
     854      -1,   250,    -1,   250,   127,   108,   126,   251,    -1,   251,
     855     127,   108,   126,    89,    -1,   250,   127,   108,   126,    89,
     856      -1,   255,    -1,   251,   127,   108,   126,   255,    -1,   250,
     857     127,   108,   126,   255,    -1,   250,   127,   108,   126,   251,
     858     127,   108,   126,   255,    -1,   256,    -1,   251,   127,   108,
     859     126,   256,    -1,    -1,   253,    -1,   254,    -1,   254,   127,
     860     108,   126,    89,    -1,   258,    -1,   257,    -1,   254,   127,
     861     108,   126,   258,    -1,   254,   127,   108,   126,   257,    -1,
     862     257,    -1,   350,   260,   361,    -1,   358,   260,   361,    -1,
     863     217,   358,   260,   361,    -1,   207,    -1,   258,    -1,   350,
     864      -1,   358,    -1,   217,   358,    -1,   359,    -1,   214,   324,
     865     361,    -1,   214,   328,   361,    -1,   214,    -1,   214,   339,
     866      -1,   131,    -1,   259,   108,   131,    -1,   129,    -1,    67,
     867      -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,   131,
     868      -1,    67,    -1,    68,    -1,   354,    -1,   215,    -1,   215,
     869     345,    -1,   354,    -1,   359,    -1,   215,    -1,   215,   333,
     870      -1,    -1,   123,   266,    -1,   155,    -1,   106,   267,   360,
     871     107,    -1,   266,    -1,   268,   266,    -1,   267,   108,   266,
     872      -1,   267,   108,   268,   266,    -1,   269,   109,    -1,   262,
     873     109,    -1,   270,    -1,   269,   270,    -1,   105,   262,    -1,
     874     103,   126,   155,   127,   104,    -1,   103,   126,   298,   127,
     875     104,    -1,   103,   126,   154,    89,   154,   127,   104,    -1,
     876     105,   103,   126,   138,   127,   104,    -1,   272,    -1,   221,
     877     272,    -1,   271,   223,    -1,   271,   223,   217,    -1,   273,
     878      -1,   217,   273,    -1,   272,   218,    -1,    68,   101,   280,
     879     102,    -1,   275,   361,    -1,   274,   108,   275,   361,    -1,
     880      -1,   277,   262,   276,   278,    -1,   215,   324,    -1,    32,
     881      -1,    34,    -1,    33,    -1,    -1,   278,   279,    -1,   121,
     882     262,   101,   280,   102,    -1,   121,   106,   126,   286,   107,
     883      -1,   121,   101,   126,   274,   127,   102,   106,   126,   286,
     884     107,   101,   280,   102,    -1,   264,    -1,   155,    -1,   280,
     885     108,   264,    -1,   280,   108,   155,    -1,    32,   282,    -1,
     886     222,    32,   282,    -1,   281,   108,   282,    -1,   283,   278,
     887      -1,   283,   278,   123,   264,    -1,   262,    -1,   261,   101,
     888     126,   274,   127,   102,    -1,    35,   262,   101,   126,   274,
     889     127,   102,   106,   107,    -1,    -1,    35,   262,   101,   126,
     890     274,   127,   102,   106,   285,   286,   107,    -1,   287,    -1,
     891     286,   126,   287,    -1,   288,   127,   124,    -1,   289,   127,
     892     124,    -1,   205,    -1,   207,    -1,   288,   127,   108,   126,
     893     260,    -1,   215,   297,    -1,   289,   127,   108,   126,   297,
     894      -1,    -1,   291,    -1,   293,    -1,   291,   126,   293,    -1,
     895      -1,   291,    -1,   202,    -1,   295,    -1,   189,    -1,    -1,
     896       5,    75,   294,   106,   292,   107,    -1,    38,   293,    -1,
     897     296,    -1,   311,   164,    -1,   315,   126,   198,   164,    -1,
     898     206,   164,    -1,   214,   311,   164,    -1,   217,   311,   164,
     899      -1,   221,   311,   164,    -1,   221,   217,   311,   164,    -1,
     900     214,   315,   126,   198,   164,    -1,   217,   315,   126,   198,
     901     164,    -1,   221,   315,   126,   198,   164,    -1,   221,   217,
     902     315,   126,   198,   164,    -1,   306,    -1,   311,    -1,   319,
     903      -1,   154,   115,   154,    -1,    -1,    57,   101,   133,   102,
     904     300,    -1,    -1,   301,    -1,   302,    -1,   301,   302,    -1,
     905      37,   101,   101,   303,   102,   102,    -1,   304,    -1,   303,
     906     108,   304,    -1,    -1,   305,    -1,   305,   101,   161,   102,
     907      -1,   260,    -1,   224,    -1,   225,    -1,   218,    -1,   307,
     908     300,    -1,   308,    -1,   309,   300,    -1,   310,   300,    -1,
     909     129,    -1,   101,   307,   102,    -1,   111,   306,    -1,   111,
     910     217,   306,    -1,   101,   308,   102,    -1,   307,   337,    -1,
     911     101,   308,   102,   337,    -1,   101,   309,   102,   338,    -1,
     912     101,   309,   102,    -1,   101,   308,   102,   101,   126,   252,
     913     127,   102,    -1,   101,   310,   102,    -1,   312,   300,    -1,
     914     313,    -1,   314,   300,    -1,   307,   101,   126,   252,   127,
     915     102,    -1,   101,   313,   102,   101,   126,   252,   127,   102,
     916      -1,   101,   312,   102,    -1,   111,   311,    -1,   111,   217,
     917     311,    -1,   101,   313,   102,    -1,   101,   313,   102,   337,
     918      -1,   101,   314,   102,   338,    -1,   101,   314,   102,    -1,
     919     316,    -1,   317,    -1,   318,    -1,   307,   101,   259,   102,
     920      -1,   101,   317,   102,   101,   259,   102,    -1,   101,   316,
     921     102,    -1,   111,   315,    -1,   111,   217,   315,    -1,   101,
     922     317,   102,    -1,   101,   317,   102,   337,    -1,   101,   318,
     923     102,   338,    -1,   101,   318,   102,    -1,   320,   300,    -1,
     924     321,    -1,   322,   300,    -1,   323,   300,    -1,   329,    -1,
     925     101,   320,   102,    -1,   111,   319,    -1,   111,   217,   319,
     926      -1,   101,   321,   102,    -1,   320,   337,    -1,   101,   321,
     927     102,   337,    -1,   101,   322,   102,   338,    -1,   101,   322,
     928     102,    -1,   320,   101,   126,   252,   127,   102,    -1,   101,
     929     321,   102,   101,   126,   252,   127,   102,    -1,   101,   323,
     930     102,    -1,   307,   300,    -1,   325,    -1,   326,   300,    -1,
     931     327,   300,    -1,   111,   324,    -1,   111,   217,   324,    -1,
     932     101,   325,   102,    -1,   307,   343,    -1,   101,   325,   102,
     933     337,    -1,   101,   326,   102,   338,    -1,   101,   326,   102,
     934      -1,   307,   101,   126,   252,   127,   102,    -1,   101,   325,
     935     102,   101,   126,   252,   127,   102,    -1,   101,   327,   102,
     936      -1,   329,   300,    -1,   330,    -1,   331,   300,    -1,   332,
     937     300,    -1,    67,    -1,    68,    -1,   111,   328,    -1,   111,
     938     217,   328,    -1,   101,   330,   102,    -1,   329,   343,    -1,
     939     101,   330,   102,   343,    -1,   329,   101,   126,   252,   127,
     940     102,    -1,   101,   330,   102,   101,   126,   252,   127,   102,
     941      -1,   334,    -1,   335,   300,    -1,   336,   300,    -1,   111,
     942      -1,   111,   217,    -1,   111,   333,    -1,   111,   217,   333,
     943      -1,   101,   334,   102,    -1,   337,    -1,   101,   334,   102,
     944     337,    -1,   101,   335,   102,   338,    -1,   101,   335,   102,
     945      -1,   101,   126,   252,   127,   102,    -1,   101,   334,   102,
     946     101,   126,   252,   127,   102,    -1,   101,   336,   102,    -1,
     947     103,   104,    -1,   103,   104,   338,    -1,   338,    -1,   103,
     948     126,   155,   127,   104,    -1,   103,   126,   111,   127,   104,
     949      -1,   338,   103,   126,   155,   127,   104,    -1,   338,   103,
     950     126,   111,   127,   104,    -1,   340,    -1,   341,   300,    -1,
     951     342,   300,    -1,   111,    -1,   111,   217,    -1,   111,   339,
     952      -1,   111,   217,   339,    -1,   101,   340,   102,    -1,   343,
     953      -1,   101,   340,   102,   343,    -1,   101,   341,   102,   338,
     954      -1,   101,   341,   102,    -1,   101,   126,   252,   127,   102,
     955      -1,   101,   340,   102,   101,   126,   252,   127,   102,    -1,
     956     101,   342,   102,    -1,   344,    -1,   344,   338,    -1,   338,
     957      -1,   103,   104,    -1,   103,   126,   217,   111,   127,   104,
     958      -1,   103,   126,   217,   127,   104,    -1,   103,   126,   217,
     959     155,   127,   104,    -1,   103,   126,     7,   216,   155,   127,
     960     104,    -1,   103,   126,   217,     7,   155,   127,   104,    -1,
     961     346,    -1,   347,   300,    -1,   348,   300,    -1,   111,    -1,
     962     111,   217,    -1,   111,   345,    -1,   111,   217,   345,    -1,
     963     101,   346,   102,    -1,   337,    -1,   101,   346,   102,   337,
     964      -1,   101,   347,   102,   338,    -1,   101,   347,   102,    -1,
     965     101,   346,   102,   101,   126,   252,   127,   102,    -1,   101,
     966     348,   102,    -1,   350,    -1,   358,    -1,   217,   358,    -1,
     967     351,    -1,   352,    -1,   111,   215,    -1,   217,   111,   215,
     968      -1,   111,   359,    -1,   217,   111,   359,    -1,   111,   349,
     969      -1,   217,   111,   349,    -1,   103,   104,   215,    -1,   353,
     970     215,    -1,   103,   104,   338,   215,    -1,   353,   338,   215,
     971      -1,   338,   215,    -1,   103,   104,   351,    -1,   353,   351,
     972      -1,   103,   104,   338,   351,    -1,   353,   338,   351,    -1,
     973     338,   351,    -1,   103,   126,   217,   111,   127,   104,    -1,
     974     103,   126,   217,   155,   127,   104,    -1,   103,   126,   221,
     975     155,   127,   104,    -1,   103,   126,   221,   217,   155,   127,
     976     104,    -1,   358,    -1,   217,   358,    -1,   355,    -1,   356,
     977      -1,   357,    -1,   111,   215,    -1,   217,   111,   215,    -1,
     978     111,   359,    -1,   217,   111,   359,    -1,   111,   354,    -1,
     979     217,   111,   354,    -1,   103,   104,   215,    -1,   103,   104,
     980     338,   215,    -1,   338,   215,    -1,   103,   104,   356,    -1,
     981     103,   104,   338,   356,    -1,   338,   356,    -1,   103,   126,
     982     251,   127,   104,    -1,   103,   104,   101,   248,   102,    -1,
     983     358,   101,   126,   248,   127,   102,    -1,   208,   101,   126,
     984     248,   127,   102,    -1,    -1,   108,    -1,    -1,   123,   155,
     985      -1
    980986};
    981987
     
    983989static const yytype_uint16 yyrline[] =
    984990{
    985        0,   282,   282,   288,   297,   298,   299,   303,   304,   305,
    986      309,   310,   314,   318,   319,   323,   324,   330,   332,   334,
    987      336,   338,   340,   345,   346,   352,   354,   356,   357,   359,
    988      360,   362,   365,   370,   371,   377,   378,   379,   384,   386,
    989      391,   392,   396,   398,   400,   402,   404,   409,   410,   412,
    990      414,   416,   418,   420,   426,   428,   430,   432,   434,   436,
    991      438,   440,   445,   446,   447,   448,   452,   453,   455,   460,
    992      461,   463,   465,   470,   471,   473,   478,   479,   481,   486,
    993      487,   489,   491,   493,   498,   499,   501,   506,   507,   512,
    994      513,   518,   519,   524,   525,   530,   531,   536,   537,   539,
    995      541,   546,   551,   552,   554,   556,   562,   563,   569,   571,
    996      573,   575,   580,   581,   586,   587,   588,   589,   590,   591,
    997      592,   593,   594,   595,   599,   600,   606,   607,   613,   614,
    998      615,   616,   617,   618,   619,   620,   624,   631,   633,   643,
    999      644,   649,   651,   653,   655,   659,   660,   665,   670,   673,
    1000      675,   677,   682,   684,   692,   693,   695,   699,   700,   705,
    1001      706,   711,   712,   716,   721,   722,   726,   728,   734,   735,
    1002      739,   741,   743,   745,   751,   752,   756,   757,   761,   763,
    1003      765,   770,   772,   777,   779,   783,   786,   790,   793,   797,
    1004      799,   801,   806,   808,   810,   819,   821,   823,   828,   830,
    1005      835,   848,   849,   854,   856,   861,   865,   867,   869,   871,
    1006      875,   877,   881,   882,   886,   890,   891,   897,   899,   903,
    1007      904,   909,   911,   915,   916,   920,   922,   926,   927,   931,
    1008      932,   936,   937,   952,   953,   954,   955,   956,   960,   965,
    1009      972,   982,   987,   992,  1000,  1005,  1010,  1015,  1020,  1028,
    1010     1050,  1055,  1062,  1064,  1071,  1076,  1081,  1092,  1097,  1102,
    1011     1107,  1112,  1121,  1126,  1134,  1135,  1136,  1137,  1143,  1148,
    1012     1156,  1157,  1158,  1159,  1163,  1164,  1165,  1166,  1171,  1172,
    1013     1181,  1182,  1187,  1188,  1193,  1195,  1197,  1199,  1201,  1204,
    1014     1203,  1215,  1216,  1218,  1228,  1229,  1234,  1238,  1240,  1242,
    1015     1244,  1246,  1248,  1250,  1252,  1257,  1259,  1261,  1263,  1265,
    1016     1267,  1269,  1271,  1273,  1275,  1277,  1279,  1285,  1286,  1288,
    1017     1290,  1292,  1297,  1298,  1304,  1305,  1307,  1309,  1314,  1316,
    1018     1318,  1320,  1325,  1326,  1328,  1330,  1335,  1336,  1338,  1343,
    1019     1344,  1346,  1348,  1353,  1355,  1357,  1362,  1363,  1367,  1369,
    1020     1371,  1373,  1375,  1380,  1382,  1387,  1389,  1394,  1395,  1397,
    1021     1398,  1403,  1404,  1406,  1408,  1413,  1415,  1421,  1422,  1424,
    1022     1427,  1430,  1435,  1436,  1441,  1446,  1450,  1452,  1454,  1459,
    1023     1461,  1467,  1468,  1476,  1477,  1481,  1482,  1483,  1485,  1487,
    1024     1494,  1495,  1497,  1499,  1504,  1505,  1511,  1512,  1516,  1517,
    1025     1522,  1523,  1524,  1526,  1534,  1535,  1537,  1540,  1542,  1546,
    1026     1547,  1548,  1550,  1552,  1556,  1561,  1569,  1570,  1579,  1581,
    1027     1586,  1587,  1588,  1592,  1593,  1594,  1598,  1599,  1600,  1604,
    1028     1605,  1606,  1611,  1612,  1613,  1614,  1620,  1621,  1626,  1627,
    1029     1631,  1632,  1633,  1634,  1649,  1650,  1655,  1656,  1662,  1664,
    1030     1667,  1669,  1671,  1694,  1695,  1697,  1699,  1704,  1705,  1707,
    1031     1712,  1717,  1718,  1724,  1723,  1727,  1731,  1733,  1735,  1741,
    1032     1742,  1747,  1752,  1754,  1759,  1761,  1762,  1764,  1769,  1771,
    1033     1773,  1778,  1780,  1785,  1790,  1798,  1804,  1803,  1817,  1818,
    1034     1823,  1824,  1828,  1833,  1838,  1846,  1851,  1862,  1863,  1874,
    1035     1875,  1881,  1882,  1886,  1887,  1888,  1891,  1890,  1901,  1906,
    1036     1911,  1917,  1926,  1932,  1938,  1944,  1950,  1958,  1964,  1972,
    1037     1978,  1987,  1988,  1989,  1993,  1997,  1999,  2004,  2005,  2009,
    1038     2010,  2015,  2021,  2022,  2025,  2027,  2028,  2032,  2033,  2034,
    1039     2035,  2069,  2071,  2072,  2074,  2079,  2084,  2089,  2091,  2093,
    1040     2098,  2100,  2102,  2104,  2109,  2111,  2121,  2123,  2124,  2129,
    1041     2131,  2133,  2138,  2140,  2142,  2147,  2149,  2151,  2160,  2161,
    1042     2162,  2166,  2168,  2170,  2175,  2177,  2179,  2184,  2186,  2188,
    1043     2203,  2205,  2206,  2208,  2213,  2214,  2219,  2221,  2223,  2228,
    1044     2230,  2232,  2234,  2239,  2241,  2243,  2253,  2255,  2256,  2258,
    1045     2263,  2265,  2267,  2272,  2274,  2276,  2278,  2283,  2285,  2287,
    1046     2318,  2320,  2321,  2323,  2328,  2333,  2341,  2343,  2345,  2350,
    1047     2352,  2357,  2359,  2373,  2374,  2376,  2381,  2383,  2385,  2387,
    1048     2389,  2394,  2395,  2397,  2399,  2404,  2406,  2408,  2414,  2416,
    1049     2418,  2422,  2424,  2426,  2428,  2442,  2443,  2445,  2450,  2452,
    1050     2454,  2456,  2458,  2463,  2464,  2466,  2468,  2473,  2475,  2477,
    1051     2483,  2484,  2486,  2495,  2498,  2500,  2503,  2505,  2507,  2520,
    1052     2521,  2523,  2528,  2530,  2532,  2534,  2536,  2541,  2542,  2544,
    1053     2546,  2551,  2553,  2561,  2562,  2563,  2568,  2569,  2573,  2575,
    1054     2577,  2579,  2581,  2583,  2590,  2592,  2594,  2596,  2598,  2600,
    1055     2602,  2604,  2606,  2608,  2613,  2615,  2617,  2622,  2648,  2649,
    1056     2651,  2655,  2656,  2660,  2662,  2664,  2666,  2668,  2670,  2677,
    1057     2679,  2681,  2683,  2685,  2687,  2692,  2697,  2699,  2701,  2719,
    1058     2721,  2726,  2727
     991       0,   288,   288,   294,   303,   304,   305,   309,   310,   311,
     992     315,   316,   320,   324,   325,   329,   330,   336,   338,   340,
     993     342,   344,   346,   351,   352,   358,   360,   362,   363,   365,
     994     366,   368,   371,   376,   377,   383,   384,   385,   390,   392,
     995     397,   398,   402,   404,   406,   408,   410,   415,   416,   418,
     996     420,   422,   424,   426,   432,   434,   436,   438,   440,   442,
     997     444,   446,   451,   452,   453,   454,   458,   459,   461,   466,
     998     467,   469,   471,   476,   477,   479,   484,   485,   487,   492,
     999     493,   495,   497,   499,   504,   505,   507,   512,   513,   518,
     1000     519,   524,   525,   530,   531,   536,   537,   542,   543,   545,
     1001     547,   552,   557,   558,   560,   562,   568,   569,   575,   577,
     1002     579,   581,   586,   587,   592,   593,   594,   595,   596,   597,
     1003     598,   599,   600,   601,   605,   606,   612,   613,   619,   620,
     1004     621,   622,   623,   624,   625,   626,   630,   637,   639,   649,
     1005     650,   655,   657,   659,   661,   665,   666,   671,   676,   679,
     1006     681,   683,   688,   690,   698,   699,   701,   705,   706,   711,
     1007     712,   717,   718,   722,   727,   728,   732,   734,   740,   741,
     1008     745,   747,   749,   751,   757,   758,   762,   763,   767,   769,
     1009     771,   776,   778,   783,   785,   789,   792,   796,   799,   803,
     1010     805,   807,   812,   814,   816,   825,   827,   829,   834,   836,
     1011     841,   854,   855,   860,   862,   867,   871,   873,   875,   877,
     1012     879,   885,   886,   892,   893,   897,   898,   903,   905,   911,
     1013     912,   914,   919,   921,   928,   930,   934,   935,   940,   942,
     1014     946,   947,   951,   953,   957,   958,   962,   963,   967,   968,
     1015     983,   984,   985,   986,   987,   991,   996,  1003,  1013,  1018,
     1016    1023,  1031,  1036,  1041,  1046,  1051,  1059,  1081,  1086,  1093,
     1017    1095,  1102,  1107,  1112,  1123,  1128,  1133,  1138,  1143,  1152,
     1018    1157,  1165,  1166,  1167,  1168,  1174,  1179,  1187,  1188,  1189,
     1019    1190,  1194,  1195,  1196,  1197,  1202,  1203,  1212,  1213,  1218,
     1020    1219,  1224,  1226,  1228,  1230,  1232,  1235,  1234,  1246,  1247,
     1021    1249,  1259,  1260,  1265,  1269,  1271,  1273,  1275,  1277,  1279,
     1022    1281,  1283,  1288,  1290,  1292,  1294,  1296,  1298,  1300,  1302,
     1023    1304,  1306,  1308,  1310,  1316,  1317,  1319,  1321,  1323,  1328,
     1024    1329,  1335,  1336,  1338,  1340,  1345,  1347,  1349,  1351,  1356,
     1025    1357,  1359,  1361,  1366,  1367,  1369,  1374,  1375,  1377,  1379,
     1026    1384,  1386,  1388,  1393,  1394,  1398,  1400,  1402,  1404,  1406,
     1027    1411,  1413,  1418,  1420,  1425,  1426,  1428,  1429,  1434,  1435,
     1028    1437,  1439,  1444,  1446,  1452,  1453,  1455,  1458,  1461,  1466,
     1029    1467,  1472,  1477,  1481,  1483,  1485,  1490,  1492,  1498,  1499,
     1030    1507,  1508,  1512,  1513,  1514,  1516,  1518,  1525,  1526,  1528,
     1031    1530,  1535,  1536,  1542,  1543,  1547,  1548,  1553,  1554,  1555,
     1032    1557,  1565,  1566,  1568,  1571,  1573,  1577,  1578,  1579,  1581,
     1033    1583,  1587,  1592,  1600,  1601,  1610,  1612,  1617,  1618,  1619,
     1034    1623,  1624,  1625,  1629,  1630,  1631,  1635,  1636,  1637,  1642,
     1035    1643,  1644,  1645,  1651,  1652,  1657,  1658,  1662,  1663,  1664,
     1036    1665,  1680,  1681,  1686,  1687,  1693,  1695,  1698,  1700,  1702,
     1037    1725,  1726,  1728,  1730,  1735,  1736,  1738,  1743,  1748,  1749,
     1038    1755,  1754,  1758,  1762,  1764,  1766,  1772,  1773,  1778,  1783,
     1039    1785,  1790,  1792,  1793,  1795,  1800,  1802,  1804,  1809,  1811,
     1040    1816,  1821,  1829,  1835,  1834,  1848,  1849,  1854,  1855,  1859,
     1041    1864,  1869,  1877,  1882,  1893,  1894,  1905,  1906,  1912,  1913,
     1042    1917,  1918,  1919,  1922,  1921,  1932,  1937,  1942,  1948,  1957,
     1043    1963,  1969,  1975,  1981,  1989,  1995,  2003,  2009,  2018,  2019,
     1044    2020,  2024,  2028,  2030,  2035,  2036,  2040,  2041,  2046,  2052,
     1045    2053,  2056,  2058,  2059,  2063,  2064,  2065,  2066,  2100,  2102,
     1046    2103,  2105,  2110,  2115,  2120,  2122,  2124,  2129,  2131,  2133,
     1047    2135,  2140,  2142,  2152,  2154,  2155,  2160,  2162,  2164,  2169,
     1048    2171,  2173,  2178,  2180,  2182,  2191,  2192,  2193,  2197,  2199,
     1049    2201,  2206,  2208,  2210,  2215,  2217,  2219,  2234,  2236,  2237,
     1050    2239,  2244,  2245,  2250,  2252,  2254,  2259,  2261,  2263,  2265,
     1051    2270,  2272,  2274,  2284,  2286,  2287,  2289,  2294,  2296,  2298,
     1052    2303,  2305,  2307,  2309,  2314,  2316,  2318,  2349,  2351,  2352,
     1053    2354,  2359,  2364,  2372,  2374,  2376,  2381,  2383,  2388,  2390,
     1054    2404,  2405,  2407,  2412,  2414,  2416,  2418,  2420,  2425,  2426,
     1055    2428,  2430,  2435,  2437,  2439,  2445,  2447,  2449,  2453,  2455,
     1056    2457,  2459,  2473,  2474,  2476,  2481,  2483,  2485,  2487,  2489,
     1057    2494,  2495,  2497,  2499,  2504,  2506,  2508,  2514,  2515,  2517,
     1058    2526,  2529,  2531,  2534,  2536,  2538,  2551,  2552,  2554,  2559,
     1059    2561,  2563,  2565,  2567,  2572,  2573,  2575,  2577,  2582,  2584,
     1060    2592,  2593,  2594,  2599,  2600,  2604,  2606,  2608,  2610,  2612,
     1061    2614,  2621,  2623,  2625,  2627,  2629,  2631,  2633,  2635,  2637,
     1062    2639,  2644,  2646,  2648,  2653,  2679,  2680,  2682,  2686,  2687,
     1063    2691,  2693,  2695,  2697,  2699,  2701,  2708,  2710,  2712,  2714,
     1064    2716,  2718,  2723,  2728,  2730,  2732,  2750,  2752,  2757,  2758
    10591065};
    10601066#endif
     
    11041110  "exception_statement", "handler_list", "handler_clause",
    11051111  "finally_clause", "exception_declaration", "asm_statement",
    1106   "asm_operands_opt", "asm_operands_list", "asm_operand",
    1107   "asm_clobbers_list", "declaration_list_opt", "declaration_list",
    1108   "old_declaration_list_opt", "old_declaration_list",
    1109   "label_declaration_opt", "label_declaration_list", "label_list",
    1110   "declaration", "new_declaration", "new_variable_declaration",
    1111   "new_variable_specifier", "new_function_declaration",
    1112   "new_function_specifier", "new_function_return",
    1113   "new_typedef_declaration", "typedef_declaration", "typedef_expression",
    1114   "old_declaration", "declaring_list", "declaration_specifier",
    1115   "type_specifier", "type_qualifier_list_opt", "type_qualifier_list",
    1116   "type_qualifier", "type_qualifier_name", "$@1",
     1112  "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
     1113  "asm_operand", "asm_clobbers_list_opt", "label_list",
     1114  "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
     1115  "old_declaration_list", "label_declaration_opt",
     1116  "label_declaration_list", "declaration", "new_declaration",
     1117  "new_variable_declaration", "new_variable_specifier",
     1118  "new_function_declaration", "new_function_specifier",
     1119  "new_function_return", "new_typedef_declaration", "typedef_declaration",
     1120  "typedef_expression", "old_declaration", "declaring_list",
     1121  "declaration_specifier", "type_specifier", "type_qualifier_list_opt",
     1122  "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1",
    11171123  "declaration_qualifier_list", "storage_class_list", "storage_class",
    11181124  "storage_class_name", "basic_type_name", "basic_declaration_specifier",
     
    12171223     183,   183,   184,   184,   184,   185,   185,   185,   186,   186,
    12181224     187,   188,   188,   188,   188,   188,   189,   189,   189,   189,
    1219      190,   190,   191,   191,   192,   193,   193,   194,   194,   195,
    1220      195,   196,   196,   197,   197,   198,   198,   199,   199,   200,
    1221      200,   201,   201,   202,   202,   202,   202,   202,   203,   203,
    1222      203,   204,   204,   204,   205,   205,   205,   205,   205,   206,
    1223      206,   206,   207,   207,   208,   208,   208,   209,   209,   209,
    1224      209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
    1225      213,   213,   213,   213,   214,   214,   214,   214,   215,   215,
    1226      216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
    1227      218,   220,   220,   220,   221,   221,   222,   223,   223,   223,
    1228      223,   223,   223,   223,   223,   224,   224,   224,   224,   224,
    1229      224,   224,   224,   224,   224,   224,   224,   225,   225,   225,
    1230      225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
    1231      228,   228,   229,   229,   229,   229,   230,   230,   230,   231,
    1232      231,   231,   231,   232,   232,   232,   233,   233,   234,   234,
    1233      234,   234,   234,   235,   235,   236,   236,   237,   237,   237,
    1234      237,   238,   238,   238,   238,   239,   239,   240,   240,   240,
    1235      240,   240,   241,   241,   242,   243,   244,   244,   244,   245,
    1236      245,   246,   246,   247,   247,   248,   248,   248,   248,   248,
    1237      249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
    1238      253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
    1239      255,   255,   255,   255,   256,   256,   257,   257,   258,   258,
    1240      259,   259,   259,   260,   260,   260,   261,   261,   261,   262,
    1241      262,   262,   263,   263,   263,   263,   264,   264,   265,   265,
    1242      266,   266,   266,   266,   267,   267,   268,   268,   269,   269,
    1243      269,   269,   269,   270,   270,   270,   270,   271,   271,   271,
    1244      272,   273,   273,   275,   274,   274,   276,   276,   276,   277,
    1245      277,   278,   278,   278,   279,   279,   279,   279,   280,   280,
    1246      280,   281,   281,   282,   282,   283,   284,   283,   285,   285,
    1247      286,   286,   287,   287,   287,   288,   288,   289,   289,   290,
    1248      290,   291,   291,   292,   292,   292,   293,   292,   292,   294,
    1249      294,   294,   295,   295,   295,   295,   295,   295,   295,   295,
    1250      295,   296,   296,   296,   297,   298,   298,   299,   299,   300,
    1251      300,   301,   302,   302,   303,   303,   303,   304,   304,   304,
    1252      304,   305,   305,   305,   305,   306,   306,   307,   307,   307,
    1253      308,   308,   308,   308,   309,   309,   310,   310,   310,   311,
    1254      311,   311,   312,   312,   312,   313,   313,   313,   314,   314,
    1255      314,   315,   315,   315,   316,   316,   316,   317,   317,   317,
    1256      318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
    1257      321,   321,   321,   322,   322,   322,   323,   323,   323,   323,
    1258      324,   324,   324,   325,   325,   325,   325,   326,   326,   326,
    1259      327,   327,   327,   327,   328,   328,   329,   329,   329,   330,
    1260      330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
    1261      333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
    1262      336,   337,   337,   337,   337,   338,   338,   338,   339,   339,
    1263      339,   339,   339,   340,   340,   340,   340,   341,   341,   341,
    1264      342,   342,   342,   343,   343,   343,   343,   343,   343,   344,
    1265      344,   344,   345,   345,   345,   345,   345,   346,   346,   346,
    1266      346,   347,   347,   348,   348,   348,   349,   349,   350,   350,
    1267      350,   350,   350,   350,   351,   351,   351,   351,   351,   351,
    1268      351,   351,   351,   351,   352,   352,   352,   352,   353,   353,
    1269      353,   354,   354,   355,   355,   355,   355,   355,   355,   356,
    1270      356,   356,   356,   356,   356,   357,   358,   358,   358,   359,
    1271      359,   360,   360
     1225     189,   190,   190,   191,   191,   192,   192,   193,   193,   194,
     1226     194,   194,   195,   195,   196,   196,   197,   197,   198,   198,
     1227     199,   199,   200,   200,   201,   201,   195,   195,   202,   202,
     1228     203,   203,   203,   203,   203,   204,   204,   204,   205,   205,
     1229     205,   206,   206,   206,   206,   206,   207,   207,   207,   208,
     1230     208,   209,   209,   209,   210,   210,   210,   210,   210,   211,
     1231     211,   212,   212,   212,   212,   213,   213,   214,   214,   214,
     1232     214,   215,   215,   215,   215,   216,   216,   217,   217,   218,
     1233     218,   219,   219,   219,   219,   219,   220,   219,   221,   221,
     1234     221,   222,   222,   223,   224,   224,   224,   224,   224,   224,
     1235     224,   224,   225,   225,   225,   225,   225,   225,   225,   225,
     1236     225,   225,   225,   225,   226,   226,   226,   226,   226,   227,
     1237     227,   228,   228,   228,   228,   229,   229,   229,   229,   230,
     1238     230,   230,   230,   231,   231,   231,   232,   232,   232,   232,
     1239     233,   233,   233,   234,   234,   235,   235,   235,   235,   235,
     1240     236,   236,   237,   237,   238,   238,   238,   238,   239,   239,
     1241     239,   239,   240,   240,   241,   241,   241,   241,   241,   242,
     1242     242,   243,   244,   245,   245,   245,   246,   246,   247,   247,
     1243     248,   248,   249,   249,   249,   249,   249,   250,   250,   250,
     1244     250,   251,   251,   252,   252,   253,   253,   254,   254,   254,
     1245     254,   255,   255,   255,   255,   255,   256,   256,   256,   256,
     1246     256,   257,   257,   258,   258,   259,   259,   260,   260,   260,
     1247     261,   261,   261,   262,   262,   262,   263,   263,   263,   264,
     1248     264,   264,   264,   265,   265,   266,   266,   267,   267,   267,
     1249     267,   268,   268,   269,   269,   270,   270,   270,   270,   270,
     1250     271,   271,   271,   271,   272,   272,   272,   273,   274,   274,
     1251     276,   275,   275,   277,   277,   277,   278,   278,   279,   279,
     1252     279,   280,   280,   280,   280,   281,   281,   281,   282,   282,
     1253     283,   283,   284,   285,   284,   286,   286,   287,   287,   288,
     1254     288,   288,   289,   289,   290,   290,   291,   291,   292,   292,
     1255     293,   293,   293,   294,   293,   293,   295,   295,   295,   296,
     1256     296,   296,   296,   296,   296,   296,   296,   296,   297,   297,
     1257     297,   298,   299,   299,   300,   300,   301,   301,   302,   303,
     1258     303,   304,   304,   304,   305,   305,   305,   305,   306,   306,
     1259     306,   306,   307,   307,   308,   308,   308,   309,   309,   309,
     1260     309,   310,   310,   311,   311,   311,   312,   312,   312,   313,
     1261     313,   313,   314,   314,   314,   315,   315,   315,   316,   316,
     1262     316,   317,   317,   317,   318,   318,   318,   319,   319,   319,
     1263     319,   320,   320,   321,   321,   321,   322,   322,   322,   322,
     1264     323,   323,   323,   324,   324,   324,   324,   325,   325,   325,
     1265     326,   326,   326,   326,   327,   327,   327,   328,   328,   328,
     1266     328,   329,   329,   330,   330,   330,   331,   331,   332,   332,
     1267     333,   333,   333,   334,   334,   334,   334,   334,   335,   335,
     1268     335,   335,   336,   336,   336,   337,   337,   337,   338,   338,
     1269     338,   338,   339,   339,   339,   340,   340,   340,   340,   340,
     1270     341,   341,   341,   341,   342,   342,   342,   343,   343,   343,
     1271     344,   344,   344,   344,   344,   344,   345,   345,   345,   346,
     1272     346,   346,   346,   346,   347,   347,   347,   347,   348,   348,
     1273     349,   349,   349,   350,   350,   351,   351,   351,   351,   351,
     1274     351,   352,   352,   352,   352,   352,   352,   352,   352,   352,
     1275     352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
     1276     356,   356,   356,   356,   356,   356,   357,   357,   357,   357,
     1277     357,   357,   358,   359,   359,   359,   360,   360,   361,   361
    12721278};
    12731279
     
    12961302       3,     2,     3,     3,     4,     1,     5,     6,     9,    10,
    12971303       2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
    1298        0,     1,     1,     3,     4,     1,     3,     1,     1,     1,
    1299        3,     1,     1,     1,     3,     0,     1,     3,     4,     1,
    1300        3,     1,     1,     3,     3,     3,     3,     3,     2,     3,
    1301        6,     3,     3,     4,     1,     2,     2,     3,     5,     8,
    1302        7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
    1303        3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
    1304        1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
    1305        1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
    1306        5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
     1304      14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
     1305       1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
     1306       1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
     1307       3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
     1308       4,     1,     2,     2,     3,     5,     8,     7,     7,     5,
     1309       9,     2,     2,     5,     3,     5,     4,     3,     4,     4,
     1310       7,     3,     3,     3,     3,     4,     6,     1,     1,     1,
     1311       1,     1,     1,     1,     1,     0,     1,     1,     2,     1,
     1312       1,     1,     1,     1,     1,     1,     0,     5,     1,     2,
     1313       3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
    13071314       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1308        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
    1309        3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
    1310        4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
    1311        2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
    1312        5,     7,     2,     2,     2,     1,     2,     2,     3,     2,
    1313        3,     1,     2,     3,     2,     2,     4,     0,     1,     2,
    1314        2,     1,     0,     1,     2,     2,     5,     6,     2,     2,
    1315        4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
    1316        1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
    1317        1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
    1318        1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
    1319        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1320        1,     2,     1,     1,     1,     2,     0,     2,     1,     4,
    1321        1,     2,     3,     4,     2,     2,     1,     2,     2,     5,
    1322        5,     7,     6,     1,     2,     2,     3,     1,     2,     2,
    1323        4,     2,     4,     0,     4,     2,     1,     1,     1,     0,
    1324        2,     5,     5,    13,     1,     1,     3,     3,     2,     3,
    1325        3,     2,     4,     1,     6,     9,     0,    11,     1,     3,
    1326        3,     3,     1,     1,     5,     2,     5,     0,     1,     1,
    1327        3,     0,     1,     1,     1,     1,     0,     6,     2,     1,
    1328        2,     4,     2,     3,     3,     3,     4,     5,     5,     5,
    1329        6,     1,     1,     1,     3,     0,     5,     0,     1,     1,
    1330        2,     6,     1,     3,     0,     1,     4,     1,     1,     1,
    1331        1,     2,     1,     2,     2,     1,     3,     2,     3,     3,
    1332        2,     4,     4,     3,     8,     3,     2,     1,     2,     6,
    1333        8,     3,     2,     3,     3,     4,     4,     3,     1,     1,
    1334        1,     4,     6,     3,     2,     3,     3,     4,     4,     3,
    1335        2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
    1336        4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
    1337        2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1338        2,     1,     2,     2,     1,     1,     2,     3,     3,     2,
    1339        4,     6,     8,     1,     2,     2,     1,     2,     2,     3,
    1340        3,     1,     4,     4,     3,     5,     8,     3,     2,     3,
    1341        1,     5,     5,     6,     6,     1,     2,     2,     1,     2,
    1342        2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
    1343        1,     2,     1,     2,     6,     5,     6,     7,     7,     1,
    1344        2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
    1345        3,     8,     3,     1,     1,     2,     1,     1,     2,     3,
    1346        2,     3,     2,     3,     3,     2,     4,     3,     2,     3,
    1347        2,     4,     3,     2,     6,     6,     6,     7,     1,     2,
    1348        1,     1,     1,     2,     3,     2,     3,     2,     3,     3,
    1349        4,     2,     3,     4,     2,     5,     5,     6,     6,     0,
    1350        1,     0,     2
     1315       1,     1,     1,     1,     1,     2,     2,     3,     3,     1,
     1316       3,     1,     2,     2,     2,     4,     4,     4,     4,     1,
     1317       2,     2,     3,     1,     2,     2,     1,     2,     2,     3,
     1318       1,     2,     2,     1,     1,     4,     2,     5,     7,     2,
     1319       2,     2,     1,     2,     2,     3,     2,     3,     1,     2,
     1320       3,     2,     2,     4,     0,     1,     2,     2,     1,     0,
     1321       1,     2,     2,     5,     6,     2,     2,     4,     0,     2,
     1322       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1323       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1324       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1325       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     1326       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1327       1,     1,     2,     0,     2,     1,     4,     1,     2,     3,
     1328       4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
     1329       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
     1330       0,     4,     2,     1,     1,     1,     0,     2,     5,     5,
     1331      13,     1,     1,     3,     3,     2,     3,     3,     2,     4,
     1332       1,     6,     9,     0,    11,     1,     3,     3,     3,     1,
     1333       1,     5,     2,     5,     0,     1,     1,     3,     0,     1,
     1334       1,     1,     1,     0,     6,     2,     1,     2,     4,     2,
     1335       3,     3,     3,     4,     5,     5,     5,     6,     1,     1,
     1336       1,     3,     0,     5,     0,     1,     1,     2,     6,     1,
     1337       3,     0,     1,     4,     1,     1,     1,     1,     2,     1,
     1338       2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
     1339       3,     8,     3,     2,     1,     2,     6,     8,     3,     2,
     1340       3,     3,     4,     4,     3,     1,     1,     1,     4,     6,
     1341       3,     2,     3,     3,     4,     4,     3,     2,     1,     2,
     1342       2,     1,     3,     2,     3,     3,     2,     4,     4,     3,
     1343       6,     8,     3,     2,     1,     2,     2,     2,     3,     3,
     1344       2,     4,     4,     3,     6,     8,     3,     2,     1,     2,
     1345       2,     1,     1,     2,     3,     3,     2,     4,     6,     8,
     1346       1,     2,     2,     1,     2,     2,     3,     3,     1,     4,
     1347       4,     3,     5,     8,     3,     2,     3,     1,     5,     5,
     1348       6,     6,     1,     2,     2,     1,     2,     2,     3,     3,
     1349       1,     4,     4,     3,     5,     8,     3,     1,     2,     1,
     1350       2,     6,     5,     6,     7,     7,     1,     2,     2,     1,
     1351       2,     2,     3,     3,     1,     4,     4,     3,     8,     3,
     1352       1,     1,     2,     1,     1,     2,     3,     2,     3,     2,
     1353       3,     3,     2,     4,     3,     2,     3,     2,     4,     3,
     1354       2,     6,     6,     6,     7,     1,     2,     1,     1,     1,
     1355       2,     3,     2,     3,     2,     3,     3,     4,     2,     3,
     1356       4,     2,     5,     5,     6,     6,     0,     1,     0,     2
    13511357};
    13521358
     
    13561362static const yytype_uint16 yydefact[] =
    13571363{
    1358      278,   278,   299,   297,   300,   298,   301,   302,   284,   286,
    1359      285,     0,   287,   313,   305,   310,   308,   309,   307,   306,
    1360      311,   312,   314,   315,   316,   527,   527,   527,     0,     0,
    1361        0,   278,   278,   288,   303,   304,     7,   343,     0,     8,
    1362       13,    14,     0,     2,   278,   545,     9,   505,   503,   231,
    1363        3,   436,     3,   244,     0,     3,     3,     3,   232,     3,
    1364        0,     0,     0,   279,   280,   282,   278,   291,   294,   296,
    1365      324,   270,   317,   322,   271,   332,   272,   339,   336,   346,
    1366        0,     0,   347,   273,   453,   457,     3,     3,     0,     2,
    1367      499,   504,   509,   283,     0,     0,   527,   557,   527,     2,
    1368      568,   569,   570,   278,     0,   711,   712,     0,    12,   278,
    1369        0,   254,   255,     0,   279,   274,   275,   276,   277,   506,
    1370      289,   375,   528,   529,   353,   354,    12,   427,   428,    11,
    1371      423,   426,     0,   483,   478,   469,   427,   428,     0,     0,
    1372      508,     0,   279,   278,     0,     0,     0,     0,     0,     0,
    1373        0,     0,   278,   278,     2,     0,   713,   279,   562,   574,
    1374      717,   710,   708,   715,     0,     0,   238,     2,     0,   512,
    1375      421,   422,   420,     0,     0,     0,     0,   527,     0,   614,
    1376      615,     0,     0,   525,   521,   527,   542,   527,   527,   522,
    1377        2,   523,   527,   581,   527,   527,   584,     0,     0,     0,
    1378      278,   278,   297,   344,     2,   278,   245,   281,   292,   325,
    1379      337,   458,     0,     2,     0,   436,   246,   279,   318,   333,
    1380      340,   454,     0,     2,     0,   295,   319,   326,   327,     0,
    1381      334,   338,   341,   345,   428,   278,   278,   349,   352,     0,
    1382      378,   455,   459,     0,     0,     0,     1,   278,     2,   510,
    1383      556,   558,   278,     2,   721,   279,   724,   525,   525,   279,
    1384        0,     0,     0,   257,   527,   522,     2,   278,     0,     0,
    1385      278,   530,     2,   481,     2,   534,     0,     0,     0,     0,
    1386       17,    56,     4,     5,     6,    15,     0,     0,     0,   278,
    1387        2,     0,   278,    62,    63,    64,    65,    19,    18,    20,
    1388       23,    47,    66,     0,    69,    73,    76,    79,    84,    87,
    1389       89,    91,    93,    95,    97,   102,   475,   731,   434,   474,
    1390        0,   432,   433,     0,   546,   561,   564,   567,   573,   576,
    1391      579,   343,     0,     2,   719,     0,   278,   722,     2,   278,
    1392        3,   408,     0,   416,   279,   278,   291,   317,   271,   332,
    1393      339,     3,     3,   390,   394,   404,   409,   453,   278,   410,
    1394      686,   687,   278,   411,   413,   278,     2,   563,   575,   709,
    1395        2,     2,   233,     2,     0,     0,   438,   437,   137,     2,
    1396        2,   235,     2,     2,   234,     2,   265,     2,   266,     0,
    1397      264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1398      547,   586,     0,   436,     2,   541,   550,   640,   543,   544,
    1399      513,   278,     2,   580,   589,   582,   583,     0,   260,   278,
    1400      278,   323,     0,   279,     0,   278,   714,   718,   716,   514,
    1401      278,   525,   239,   247,   293,     0,     2,   515,   278,   479,
    1402      320,   321,   267,   335,   342,     0,   278,     2,   367,   278,
    1403      355,     0,     0,   361,   708,   278,   729,   381,     0,   456,
    1404      480,   236,   237,   500,   278,   418,     0,   278,   221,     0,
    1405        2,   223,     0,   279,     0,   241,     2,   242,   262,     0,
    1406        0,     2,   278,   525,   278,   466,   468,   467,     0,     0,
    1407      731,     0,   278,     0,   278,   470,   278,   540,   538,   539,
    1408      537,     0,   532,   535,    66,   101,     0,   278,    54,    50,
    1409      278,    59,   278,   278,    48,    49,    61,     2,   124,     0,
    1410        0,   430,     0,   429,   108,   278,    52,    53,    16,     0,
    1411       30,    31,    35,     2,     0,   114,   115,   116,   117,   118,
    1412      119,   120,   121,   122,   123,     0,     0,    51,     0,     0,
     1364     285,   285,   306,   304,   307,   305,   308,   309,   291,   293,
     1365     292,     0,   294,   320,   312,   317,   315,   316,   314,   313,
     1366     318,   319,   321,   322,   323,   534,   534,   534,     0,     0,
     1367       0,   285,   211,   295,   310,   311,     7,   350,     0,     8,
     1368      13,    14,     0,     2,   285,   552,     9,   512,   510,   238,
     1369       3,   443,     3,   251,     0,     3,     3,     3,   239,     3,
     1370       0,     0,     0,   286,   287,   289,   285,   298,   301,   303,
     1371     331,   277,   324,   329,   278,   339,   279,   346,   343,   353,
     1372       0,     0,   354,   280,   460,   464,     3,     3,     0,     2,
     1373     506,   511,   516,   290,     0,     0,   534,   564,   534,     2,
     1374     575,   576,   577,   285,     0,   718,   719,     0,    12,   285,
     1375       0,   261,   262,     0,   286,   281,   282,   283,   284,   513,
     1376     296,   382,   535,   536,   360,   361,    12,   434,   435,    11,
     1377     430,   433,     0,   490,   485,   476,   434,   435,     0,     0,
     1378     515,   212,     0,   285,     0,     0,     0,     0,     0,     0,
     1379       0,     0,   285,   285,     2,     0,   720,   286,   569,   581,
     1380     724,   717,   715,   722,     0,     0,   245,     2,     0,   519,
     1381     428,   429,   427,     0,     0,     0,     0,   534,     0,   621,
     1382     622,     0,     0,   532,   528,   534,   549,   534,   534,   529,
     1383       2,   530,   534,   588,   534,   534,   591,     0,     0,     0,
     1384     285,   285,   304,   351,     2,   285,   252,   288,   299,   332,
     1385     344,   465,     0,     2,     0,   443,   253,   286,   325,   340,
     1386     347,   461,     0,     2,     0,   302,   326,   333,   334,     0,
     1387     341,   345,   348,   352,   435,   285,   285,   356,   359,     0,
     1388     385,   462,   466,     0,     0,     0,     1,   285,     2,   517,
     1389     563,   565,   285,     2,   728,   286,   731,   532,   532,   286,
     1390       0,     0,     0,   264,   534,   529,     2,   285,     0,     0,
     1391     285,   537,     2,   488,     2,   541,     0,     0,     0,     0,
     1392       0,    17,    56,     4,     5,     6,    15,     0,     0,     0,
     1393     285,     2,     0,   285,    62,    63,    64,    65,    19,    18,
     1394      20,    23,    47,    66,     0,    69,    73,    76,    79,    84,
     1395      87,    89,    91,    93,    95,    97,   102,   482,   738,   441,
     1396     481,     0,   439,   440,     0,   553,   568,   571,   574,   580,
     1397     583,   586,   350,     0,     2,   726,     0,   285,   729,     2,
     1398     285,     3,   415,     0,   423,   286,   285,   298,   324,   278,
     1399     339,   346,     3,     3,   397,   401,   411,   416,   460,   285,
     1400     417,   693,   694,   285,   418,   420,   285,     2,   570,   582,
     1401     716,     2,     2,   240,     2,     0,     0,   445,   444,   137,
     1402       2,     2,   242,     2,     2,   241,     2,   272,     2,   273,
     1403       0,   271,     0,     0,     0,     0,     0,     0,     0,     0,
     1404       0,   554,   593,     0,   443,     2,   548,   557,   647,   550,
     1405     551,   520,   285,     2,   587,   596,   589,   590,     0,   267,
     1406     285,   285,   330,   286,     0,   286,     0,   285,   721,   725,
     1407     723,   521,   285,   532,   246,   254,   300,     0,     2,   522,
     1408     285,   486,   327,   328,   274,   342,   349,     0,   285,     2,
     1409     374,   285,   362,     0,     0,   368,   715,   285,   736,   388,
     1410       0,   463,   487,   243,   244,   507,   285,   425,     0,   285,
     1411     228,     0,     2,   230,     0,   286,     0,   248,     2,   249,
     1412     269,     0,     0,     2,   285,   532,   285,   473,   475,   474,
     1413       0,     0,   738,     0,   285,     0,   285,   477,   285,   547,
     1414     545,   546,   544,     0,   539,   542,     0,     0,   285,    54,
     1415      66,    50,   285,    59,   285,   285,    48,    49,    61,     2,
     1416     124,     0,     0,   437,     0,   436,   108,   285,    52,    53,
     1417      16,     0,    30,    31,    35,     2,     0,   114,   115,   116,
     1418     117,   118,   119,   120,   121,   122,   123,     0,     0,    51,
    14131419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1414        0,     0,     0,     0,     0,     0,     0,     0,   105,     2,
    1415      626,   435,   623,   527,   527,   631,   460,   278,     2,   565,
    1416      566,     0,   577,   578,     0,     2,   720,   723,   108,   278,
    1417        2,   278,     0,   688,   279,   692,   683,   684,   690,     0,
    1418        2,     2,   648,   527,   731,   597,   527,   527,   731,   527,
    1419      611,   527,   527,   662,   417,   645,   527,   527,   653,   660,
    1420      278,   412,   279,     0,     0,   278,   698,   279,   703,   731,
    1421      695,   278,   700,   731,   278,   278,   278,     0,   108,     0,
    1422       17,     2,     0,     0,   440,   729,     0,     0,   446,   225,
    1423        0,   278,     0,     0,     0,   525,   549,   553,   555,   585,
    1424      588,   592,   595,   548,   587,     0,   268,   638,     0,   278,
    1425      261,     0,     0,     0,     0,   259,     2,     0,   243,   516,
    1426      278,     0,     0,     0,     0,   278,   278,     0,     0,   672,
    1427      365,   368,   372,   527,   372,   677,   371,   669,   527,   527,
    1428      348,   356,   364,   357,   527,   359,   362,   278,   730,     0,
    1429        0,   379,   729,   279,     3,   397,     3,   401,   400,   571,
    1430        0,   511,   278,     3,     3,   278,   416,   279,     3,   410,
    1431      411,     2,     0,     0,     0,   465,   290,   278,   461,   463,
    1432        3,     2,     2,     0,   482,     3,     0,   534,   126,     0,
    1433      210,     0,     0,     2,     0,     0,    36,     0,     0,   108,
    1434      278,    21,     0,    22,     0,   672,   431,     0,   106,     3,
    1435        2,    28,     2,     0,    33,     0,     2,    26,   103,   104,
    1436       70,    71,    72,    74,    75,    77,    78,    82,    83,    80,
    1437       81,    85,    86,    88,    90,    92,    94,    96,     0,     0,
    1438      732,   278,     0,     0,     0,   627,   628,   624,   625,   477,
    1439      476,   278,     0,     3,   278,   694,   278,   699,   279,   278,
    1440      278,   278,   642,   685,   641,     2,   278,     0,     0,     0,
    1441        0,     0,     0,     0,     0,   663,     0,   649,   600,   616,
    1442      650,     2,   596,   603,   414,   598,   599,   415,     2,   610,
    1443      619,   612,   613,   646,   647,   661,   689,   693,   691,   731,
    1444      252,     2,   725,     2,   405,   697,   702,   406,     0,   384,
    1445        3,     3,     3,     3,   436,     3,     0,     2,   448,   445,
    1446      730,     0,   441,     2,   444,   447,     0,   278,   226,   248,
    1447        3,   256,   258,     0,   436,     2,   551,   552,     2,   590,
    1448      591,     0,   639,   517,     3,   329,   328,   331,   330,   278,
    1449      518,     0,   519,   278,   358,   360,     2,     0,     0,     0,
    1450        0,   374,   673,   674,   369,   373,   370,   670,   671,   363,
    1451      367,   350,   381,   376,   382,     0,     0,     0,   419,   224,
    1452        0,     0,     3,     2,   648,   412,     0,   507,     0,   731,
    1453      469,     0,   278,   278,   278,     0,   531,   533,   127,     0,
    1454      206,     0,     0,   211,   212,    55,    60,   278,     0,    58,
    1455       57,     0,   125,   673,     0,    67,    68,   107,   112,     3,
    1456      106,     0,     0,     0,    25,    35,     3,     0,    99,     0,
    1457        3,   630,   634,   637,   629,     3,   572,     3,   696,   701,
    1458        2,   278,     3,     3,   279,     0,     3,   602,   606,   609,
    1459      618,   652,   656,   659,   278,     3,   601,   617,   651,   278,
    1460      278,   407,   278,   278,   726,     0,     0,     0,     0,   240,
    1461        0,   101,     0,     3,     3,     0,   442,     0,   439,     0,
    1462        0,   229,   278,     0,     0,   126,     0,     0,     0,     0,
    1463        0,   126,     0,     0,     0,     2,     0,     0,     3,   128,
    1464      129,     2,   139,   130,   131,   132,   133,   134,   135,   141,
    1465      143,     0,     0,     0,   269,   278,   278,   527,     0,   520,
    1466      278,   108,   676,   680,   682,   675,   366,   380,   377,   559,
    1467        2,   644,   643,     0,   649,     2,   462,   464,   484,     3,
    1468      492,   493,     0,     2,   488,     3,     3,     0,     0,   536,
    1469        0,     0,   210,     0,     3,    37,   729,   106,     0,     3,
    1470      641,    42,     3,    40,     3,    34,     0,     3,    98,   100,
    1471        0,     2,   632,   633,     0,     0,   278,     0,     0,     0,
    1472        3,   618,     0,     2,   604,   605,     2,   620,     2,   654,
    1473      655,     0,     0,     3,     0,     3,     3,     3,     3,   392,
    1474      391,   395,     2,     2,   728,   727,   109,     0,     0,     0,
    1475        0,     3,   443,     3,     0,   227,   142,     3,   279,   278,
    1476        0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
    1477        0,     0,     0,     0,   191,     0,   108,   527,   147,   144,
    1478      278,     0,     0,   251,   263,     3,     3,   526,   593,   351,
    1479        2,   678,   679,   278,   250,   278,     0,   495,   472,   278,
    1480        0,     0,   471,   486,     0,   207,     0,   213,   106,     0,
    1481        0,   113,   110,     0,     0,     0,     0,     0,     0,    24,
    1482        0,   635,   278,   560,   249,   704,   705,   706,     0,   657,
    1483      278,   278,   278,     3,     3,     0,   665,     0,     0,     0,
    1484        0,   278,   278,     3,   524,   109,   450,     0,     0,   230,
    1485      279,     0,     0,     0,     0,   278,   188,   186,     0,   183,
    1486      189,     0,     0,     0,   192,   195,   193,   190,   126,   140,
    1487      138,   228,     0,     0,   278,   399,   403,   402,     0,   489,
    1488        2,   490,     2,   491,   485,   278,   214,     0,     0,     3,
    1489      641,    32,   111,     2,    45,     2,    43,    41,    29,   109,
    1490       27,     3,   707,     3,     3,     3,     0,     0,   664,   666,
    1491      607,   621,   253,     2,   389,     3,   388,     0,   452,   449,
    1492      126,     0,     0,   126,     3,     0,   126,   184,     0,     2,
    1493      200,   194,     0,   136,   554,   594,     3,     2,     0,     0,
    1494        2,   208,   215,     0,     0,     0,     0,     0,     0,     0,
    1495        0,     0,   667,   668,   278,     0,   451,   148,     0,     0,
    1496        2,   161,   126,   150,     0,   178,     0,   126,     0,     2,
    1497      152,     0,     2,     2,     0,   278,   494,   496,   487,     0,
    1498        0,   111,    38,     3,     3,   636,   608,   622,   658,   393,
    1499      126,   154,   157,     0,   156,   160,     3,   163,   162,     0,
    1500      126,   180,   126,     3,     0,   278,     0,     2,   681,     2,
    1501      209,   216,     0,     0,     0,   149,     0,     0,   159,   217,
    1502      164,     2,   219,   179,     0,   182,   168,   196,     3,   201,
    1503      205,     0,   278,     0,    39,    46,    44,   155,   158,   126,
    1504        0,   165,   278,   126,   126,     0,   169,     0,     0,   672,
    1505      202,   203,   204,   197,     3,   278,   145,   166,   151,   126,
    1506      220,   181,   176,   174,   170,   153,   126,     0,   673,     0,
    1507        0,   146,   167,   177,   171,   175,   174,   172,     3,     0,
    1508      473,   173,   198,     3,   199
     1420       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1421     105,     2,   633,   442,   630,   534,   534,   638,   467,   285,
     1422       2,   572,   573,     0,   584,   585,     0,     2,   727,   730,
     1423     108,   285,     2,   285,     0,   695,   286,   699,   690,   691,
     1424     697,     0,     2,     2,   655,   534,   738,   604,   534,   534,
     1425     738,   534,   618,   534,   534,   669,   424,   652,   534,   534,
     1426     660,   667,   285,   419,   286,     0,     0,   285,   705,   286,
     1427     710,   738,   702,   285,   707,   738,   285,   285,   285,     0,
     1428     108,     0,    17,     2,     0,     0,   447,   736,     0,     0,
     1429     453,   232,     0,   285,     0,     0,     0,   532,   556,   560,
     1430     562,   592,   595,   599,   602,   555,   594,     0,   275,   645,
     1431       0,   285,   268,     0,     0,     0,     0,   266,     2,     0,
     1432     250,   523,   285,     0,     0,     0,     0,   285,   285,     0,
     1433       0,   679,   372,   375,   379,   534,   379,   684,   378,   676,
     1434     534,   534,   355,   363,   371,   364,   534,   366,   369,   285,
     1435     737,     0,     0,   386,   736,   286,     3,   404,     3,   408,
     1436     407,   578,     0,   518,   285,     3,     3,   285,   423,   286,
     1437       3,   417,   418,     2,     0,     0,     0,   472,   297,   285,
     1438     468,   470,     3,     2,     2,     0,   489,     3,     0,   541,
     1439     126,     0,     0,   213,     0,     0,     2,     0,     0,    36,
     1440       0,     0,   108,   285,    21,     0,    22,     0,   679,   438,
     1441       0,   106,     3,     2,    28,     2,     0,    33,     0,     2,
     1442      26,   103,   104,    70,    71,    72,    74,    75,    77,    78,
     1443      82,    83,    80,    81,    85,    86,    88,    90,    92,    94,
     1444      96,     0,     0,   739,   285,     0,     0,     0,   634,   635,
     1445     631,   632,   484,   483,   285,     0,     3,   285,   701,   285,
     1446     706,   286,   285,   285,   285,   649,   692,   648,     2,   285,
     1447       0,     0,     0,     0,     0,     0,     0,     0,   670,     0,
     1448     656,   607,   623,   657,     2,   603,   610,   421,   605,   606,
     1449     422,     2,   617,   626,   619,   620,   653,   654,   668,   696,
     1450     700,   698,   738,   259,     2,   732,     2,   412,   704,   709,
     1451     413,     0,   391,     3,     3,     3,     3,   443,     3,     0,
     1452       2,   455,   452,   737,     0,   448,     2,   451,   454,     0,
     1453     285,   233,   255,     3,   263,   265,     0,   443,     2,   558,
     1454     559,     2,   597,   598,     0,   646,   524,     3,   336,   335,
     1455     338,   337,   285,   525,     0,   526,   285,   365,   367,     2,
     1456       0,     0,     0,     0,   101,   381,   680,   681,   376,   380,
     1457     377,   677,   678,   370,   374,   357,   388,   383,   389,     0,
     1458       0,     0,   426,   231,     0,     0,     3,     2,   655,   419,
     1459       0,   514,     0,   738,   476,     0,   285,   285,   285,     0,
     1460     538,   540,   127,     0,     0,   206,     0,     0,     0,   214,
     1461     215,    55,    60,   285,     0,    58,    57,     0,   125,   680,
     1462       0,    67,    68,   107,   112,     3,   106,     0,     0,     0,
     1463      25,    35,     3,     0,    99,     0,     3,   637,   641,   644,
     1464     636,     3,   579,     3,   703,   708,     2,   285,     3,     3,
     1465     286,     0,     3,   609,   613,   616,   625,   659,   663,   666,
     1466     285,     3,   608,   624,   658,   285,   285,   414,   285,   285,
     1467     733,     0,     0,     0,     0,   247,     0,   101,     0,     3,
     1468       3,     0,   449,     0,   446,     0,   222,     0,   236,   285,
     1469       0,     0,   126,     0,     0,     0,     0,     0,   126,     0,
     1470       0,     0,     2,     0,     0,     3,   128,   129,     2,   139,
     1471     130,   131,   132,   133,   134,   135,   141,   143,     0,     0,
     1472       0,   276,   285,   285,   534,     0,   527,   285,   108,   683,
     1473     687,   689,   682,   373,   387,   384,   566,     2,   651,   650,
     1474       0,   656,     2,   469,   471,   491,     3,   499,   500,     0,
     1475       2,   495,     3,     3,     0,     0,   543,   213,     0,     0,
     1476       0,   213,     0,     3,    37,   736,   106,     0,     3,   648,
     1477      42,     3,    40,     3,    34,     0,     3,    98,   100,     0,
     1478       2,   639,   640,     0,     0,   285,     0,     0,     0,     3,
     1479     625,     0,     2,   611,   612,     2,   627,     2,   661,   662,
     1480       0,     0,     3,     0,     3,     3,     3,     3,   399,   398,
     1481     402,     2,     2,   735,   734,   109,     0,     0,     0,     0,
     1482       3,   450,     3,     0,   234,   142,     3,   286,   285,     0,
     1483       0,     0,     0,     2,   187,     0,   185,     0,     0,     0,
     1484       0,     0,     0,   191,     0,   108,   534,   147,   144,   285,
     1485       0,     0,   258,   270,     3,     3,   533,   600,   358,     2,
     1486     685,   686,   285,   257,   285,     0,   502,   479,   285,     0,
     1487       0,   478,   493,     0,     0,     0,   207,     0,   216,   106,
     1488       0,     0,   113,   110,     0,     0,     0,     0,     0,     0,
     1489      24,     0,   642,   285,   567,   256,   711,   712,   713,     0,
     1490     664,   285,   285,   285,     3,     3,     0,   672,     0,     0,
     1491       0,     0,   285,   285,     3,   531,   109,   457,     0,     0,
     1492     223,   237,   286,     0,     0,     0,     0,   285,   188,   186,
     1493       0,   183,   189,     0,     0,     0,   192,   195,   193,   190,
     1494     126,   140,   138,   235,     0,     0,   285,   406,   410,   409,
     1495       0,   496,     2,   497,     2,   498,   492,   285,   219,     0,
     1496     217,     0,   219,     3,   648,    32,   111,     2,    45,     2,
     1497      43,    41,    29,   109,    27,     3,   714,     3,     3,     3,
     1498       0,     0,   671,   673,   614,   628,   260,     2,   396,     3,
     1499     395,     0,   459,   456,   126,     0,     0,   126,     3,     0,
     1500     126,   184,     0,     2,   200,   194,     0,   136,   561,   601,
     1501       3,     2,     0,     0,     2,   220,     0,     0,   208,     0,
     1502       0,     0,     0,     0,     0,     0,     0,     0,   674,   675,
     1503     285,     0,   458,   148,     0,     0,     2,   161,   126,   150,
     1504       0,   178,     0,   126,     0,     2,   152,     0,     2,     2,
     1505       0,   285,   501,   503,   494,     0,     0,     0,     0,   111,
     1506      38,     3,     3,   643,   615,   629,   665,   400,   126,   154,
     1507     157,     0,   156,   160,     3,   163,   162,     0,   126,   180,
     1508     126,     3,     0,   285,     0,     2,   688,     2,   221,     0,
     1509     218,   209,     0,     0,     0,   149,     0,     0,   159,   224,
     1510     164,     2,   226,   179,     0,   182,   168,   196,     3,   201,
     1511     205,     0,   285,     0,     0,    39,    46,    44,   155,   158,
     1512     126,     0,   165,   285,   126,   126,     0,   169,     0,     0,
     1513     679,   202,   203,   204,   197,     3,   285,   210,   145,   166,
     1514     151,   126,   227,   181,   176,   174,   170,   153,   126,     0,
     1515     680,     0,     0,   146,   167,   177,   171,   175,   174,   172,
     1516       3,     0,   480,   173,   198,     3,   199
    15091517};
    15101518
     
    15121520static const yytype_int16 yydefgoto[] =
    15131521{
    1514       -1,   826,   468,   297,    45,   130,   131,   298,   299,   300,
    1515      301,   773,   755,  1122,  1123,   302,   303,   304,   305,   306,
    1516      307,   308,   309,   310,   311,   312,   313,   314,   315,  1032,
    1517      518,   978,   317,   979,   546,   958,  1057,  1476,  1059,  1060,
    1518     1061,  1062,  1477,  1063,  1064,  1412,  1413,  1381,  1382,  1383,
    1519     1460,  1461,  1465,  1466,  1494,  1495,  1065,  1345,  1066,  1067,
    1520     1284,  1285,  1286,  1448,  1068,   962,   963,   964,  1363,  1440,
    1521     1441,   469,   470,   887,   888,  1040,    48,    49,    50,    51,
    1522       52,   341,   155,    55,    56,    57,    58,    59,   343,    61,
    1523       62,   259,    64,    65,   270,   345,   346,    68,    69,    70,
    1524       71,   115,    73,   200,   348,   116,    76,   117,    78,    79,
    1525       80,   449,   450,   451,   452,   690,   924,   691,    81,    82,
    1526      456,   711,   868,   869,   351,   352,   714,   715,   716,   353,
    1527      354,   355,   356,   466,   335,   132,   133,   522,   319,   166,
    1528      644,   645,   646,   647,   648,    83,   118,    85,   489,   490,
    1529      950,   491,   273,   495,   320,    86,   134,   135,    87,  1305,
    1530     1103,  1104,  1105,  1106,    88,    89,   732,    90,   269,    91,
    1531       92,   183,  1034,   678,   405,   122,    93,   501,   502,   503,
    1532      184,   264,   186,   187,   188,   265,    96,    97,    98,    99,
    1533      100,   101,   102,   191,   192,   193,   194,   195,   838,   605,
    1534      606,   607,   608,   196,   610,   611,   612,   571,   572,   573,
    1535      574,   695,   103,   614,   615,   616,   617,   618,   619,   923,
    1536      697,   698,   699,   595,   359,   360,   361,   362,   321,   161,
    1537      105,   106,   107,   364,   709,   568
     1522      -1,   829,   470,   298,    45,   130,   131,   299,   300,   301,
     1523     302,   776,   758,  1131,  1132,   303,   304,   305,   306,   307,
     1524     308,   309,   310,   311,   312,   313,   314,   315,   316,  1038,
     1525     520,   984,   318,   985,   548,   962,  1064,  1498,  1066,  1067,
     1526    1068,  1069,  1499,  1070,  1071,  1430,  1431,  1397,  1398,  1399,
     1527    1481,  1482,  1486,  1487,  1516,  1517,  1072,  1359,  1073,  1074,
     1528    1296,  1297,  1298,  1468,  1075,   142,   968,   969,   970,  1376,
     1529    1047,  1460,  1461,   471,   472,   890,   891,    48,    49,    50,
     1530      51,    52,   342,   155,    55,    56,    57,    58,    59,   344,
     1531      61,    62,   259,    64,    65,   270,   346,   347,    68,    69,
     1532      70,    71,   115,    73,   200,   349,   116,    76,   117,    78,
     1533      79,    80,   451,   452,   453,   454,   692,   928,   693,    81,
     1534      82,   458,   713,   871,   872,   352,   353,   716,   717,   718,
     1535     354,   355,   356,   357,   468,   336,   132,   133,   524,   320,
     1536     166,   646,   647,   648,   649,   650,    83,   118,    85,   491,
     1537     492,   954,   493,   273,   497,   321,    86,   134,   135,    87,
     1538    1317,  1110,  1111,  1112,  1113,    88,    89,   734,    90,   269,
     1539      91,    92,   183,  1040,   680,   406,   122,    93,   503,   504,
     1540     505,   184,   264,   186,   187,   188,   265,    96,    97,    98,
     1541      99,   100,   101,   102,   191,   192,   193,   194,   195,   841,
     1542     607,   608,   609,   610,   196,   612,   613,   614,   573,   574,
     1543     575,   576,   697,   103,   616,   617,   618,   619,   620,   621,
     1544     927,   699,   700,   701,   597,   360,   361,   362,   363,   322,
     1545     161,   105,   106,   107,   365,   711,   570
    15381546};
    15391547
    15401548/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15411549   STATE-NUM.  */
    1542 #define YYPACT_NINF -1269
     1550#define YYPACT_NINF -1398
    15431551static const yytype_int16 yypact[] =
    15441552{
    1545     5632,  9056, -1269,    25, -1269, -1269, -1269, -1269, -1269, -1269,
    1546    -1269,    17, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1547    -1269, -1269, -1269, -1269, -1269,   113,   113,   113,   803,   791,
    1548       56,  6940,   839, -1269, -1269, -1269, -1269, -1269,    59, -1269,
    1549    -1269, -1269,   628,    90,  8532, -1269, -1269, -1269, -1269, -1269,
    1550    -1269,    88,   155, -1269,   911, -1269, -1269, -1269, -1269,   140,
    1551     1450,   287,    96,  4240, -1269, -1269,  8601,  1048, -1269, -1269,
    1552    -1269,  1246,   329,  6299,  1010,   880,  1246,  1728, -1269, -1269,
    1553      332,   328, -1269,  1246,  1769, -1269,   227, -1269,   369,   379,
    1554    -1269, -1269, -1269, -1269,   256,   155,   113, -1269,   113, -1269,
    1555    -1269, -1269, -1269,  9292,   911, -1269, -1269,   911, -1269,  9351,
    1556      266, -1269, -1269,  1507,  9410, -1269,   839,   839,   839, -1269,
    1557    -1269, -1269,   113, -1269, -1269, -1269,   291,   341,   348, -1269,
    1558    -1269, -1269,   361, -1269, -1269, -1269, -1269, -1269,   391,   401,
    1559    -1269,   469,   839,  8040,  1076,   326,   352,   486,   522,   542,
    1560      576,   588,  8805,  6382,   474,   482, -1269,  8669, -1269, -1269,
    1561    -1269, -1269,   571, -1269,    47,  5492, -1269,   596,   239, -1269,
    1562    -1269, -1269, -1269,   597,   315,   324,   359,   113,   614, -1269,
    1563    -1269,  1450,  2466,   659, -1269,   128, -1269,   113,   113,   155,
    1564    -1269, -1269,   131, -1269,   113,   113, -1269,  3629,   647,   656,
    1565      839, 10211, -1269, -1269,   665,  8532, -1269, -1269,  1246, -1269,
    1566    -1269, -1269,   155, -1269,   911,    88, -1269,  7183, -1269,   839,
    1567      839,   839,   155, -1269,   803, -1269,  6072, -1269, -1269,   652,
    1568      839, -1269,   839, -1269,    59,  8040,  9115,   675, -1269,   791,
    1569      684,   839, -1269,   803,   674,   681, -1269,  6940,   744, -1269,
    1570    -1269, -1269,  8471, -1269, -1269,  5138, -1269,   659,    73,  9410,
    1571    10491,  1507,  3629, -1269,   138, -1269, -1269,  9351,   911,   708,
    1572    11267, -1269, -1269,   713, -1269, 11002, 10719, 10776, 10719, 10833,
    1573    -1269,   737, -1269, -1269, -1269, -1269, 10890, 10890,   744,  4439,
    1574      751, 10719,  8146, -1269, -1269, -1269, -1269, -1269, -1269,   766,
    1575    -1269,   828,  1924, 10719, -1269,   465,   544,   763,   389,   621,
    1576      755,   754,   759,   813,    65, -1269, -1269,   782,   510, -1269,
    1577      307, -1269, -1269,  1076, -1269, -1269,   774,   807, -1269,   784,
    1578      807,   815,    59, -1269, -1269,   821,  9292, -1269,   826,  7828,
    1579    -1269, -1269,   715,  2130,  7574, 10211,  1246, -1269,  1246,   839,
    1580      839, -1269, -1269, -1269, -1269, -1269, -1269,   839,  9469,   911,
    1581    -1269, -1269,  9528,  1378, -1269,  9174, -1269, -1269, -1269, -1269,
    1582    -1269, -1269, -1269,   831,  4897, 10719, -1269, -1269, -1269, -1269,
    1583    -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1507,
    1584    -1269,   728,   842,   859,   891,   817,   925,   926,   927,  2466,
    1585    -1269, -1269,   865,    88,   869, -1269, -1269,   928, -1269, -1269,
    1586    -1269,  8471, -1269, -1269, -1269, -1269, -1269,  3629, -1269,  8040,
    1587     8040, -1269,  1507, 11295,   911,  7639, -1269, -1269, -1269, -1269,
    1588     8471,    73, -1269, -1269,  1246,   155, -1269, -1269,  8471, -1269,
    1589     6187, -1269, -1269,   839,   839,   339,  9587,   909,  1932,  2385,
    1590    -1269,   377,   414,   791, -1269,  9115,   924,   912,   791,   839,
    1591    -1269, -1269, -1269, -1269,  9947, -1269,   512,  7494, -1269,   155,
    1592      930, -1269,  1507, 11077, 10548, -1269, -1269, -1269, -1269,   824,
    1593     3629, -1269,  7704,   659,  6831, -1269, -1269, -1269,   746,   592,
    1594      782,   791, 11267,   530,  9351, -1269, 11267, -1269, -1269, -1269,
    1595    -1269,   613, -1269,   932, -1269, -1269,    12,  4439, -1269, -1269,
    1596     4439, -1269,  7934,  4439, -1269, -1269, -1269,   933, -1269,   625,
    1597      936,   545,   939, -1269,  8873,  5389, -1269, -1269, -1269,    67,
    1598    -1269, -1269, 10605, -1269,   249, -1269, -1269, -1269, -1269, -1269,
    1599    -1269, -1269, -1269, -1269, -1269, 10491, 10491, -1269, 10719, 10719,
    1600    10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719,
    1601    10719, 10719, 10719, 10719, 10719, 10719,  4719, 10491, -1269,   510,
    1602     1578, -1269, -1269,   113,   113, -1269, -1269,  8040, -1269, -1269,
    1603      928,   744, -1269,   928, 10662, -1269, -1269, -1269,  4020,  5389,
    1604      938,  8252,   941, -1269,  9646, -1269, -1269,   571, -1269,   942,
    1605     1657,   947,  1802,   198,   782, -1269,   113,   113,   782,   245,
    1606    -1269,   113,   113,   928, -1269, -1269,   113,   113, -1269,   807,
    1607     9705,   911, 11208,   419,   426,  9705, -1269,  9882, -1269,   782,
    1608    -1269,  9469, -1269,   144,  7291,  7291,  7291,   911, -1269, 10434,
    1609      934,   831,   353,   949, -1269,   951,  5492,   583, -1269,  1032,
    1610      911,  7291,   744,  1507,   744,   659,   795,   807, -1269, -1269,
    1611      800,   807, -1269, -1269, -1269,   986, -1269,   807,   155,  9947,
    1612    -1269,   635,   960,   638,   961, -1269,   962,   155, -1269, -1269,
    1613     8471,   155,   958,   436,   443,  9764,  6494,  2437, 10719,  2673,
    1614    -1269, -1269,   956,    32,   956, -1269, -1269, -1269,   113,   113,
    1615    -1269, -1269,   791, -1269,   113, -1269, -1269,  2798,   791,   968,
    1616    10719, -1269,   924, 11208, -1269, -1269,   967, -1269, -1269, -1269,
    1617      744, -1269, 11143, 10719, -1269,  7291,   584,  7574, -1269, -1269,
    1618      571,   969,   972,   746,  2082, -1269, -1269, 11267, -1269, -1269,
    1619      965, -1269, -1269,   984, -1269,   965,   989, 11002, 10491,   944,
    1620     1017,   991,   992,   751,   987,   996, -1269,   997,  1000,  2971,
    1621     6158, -1269, 10491, -1269,   545,  1808, -1269,  5683, 10491,   998,
    1622    -1269, -1269,   831,   639, -1269, 10491, -1269, -1269, -1269, -1269,
    1623    -1269, -1269, -1269,   465,   465,   544,   544,   763,   763,   763,
    1624      763,   389,   389,   621,   755,   754,   759,   813, 10719,   616,
    1625    -1269,  9947,  1005,  1006,  1007,  1578, -1269, -1269, -1269, -1269,
    1626    -1269,  9947,   643, 10719,  7291, -1269,  9469, -1269,  6606,  8358,
    1627     9233,  6382, -1269, -1269, -1269,  1657,  9947,   846,  1012,  1013,
    1628     1015,  1019,  1020,  1023,  1024, -1269,  3182,  1802, -1269, -1269,
    1629    -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1630    -1269, -1269, -1269, -1269, -1269,   928, -1269, -1269, -1269,   782,
    1631    -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1025, -1269,
    1632     1026,  1029, -1269, -1269,    88,   998, 10434, -1269, -1269, -1269,
    1633     4897,  1028, -1269, -1269, -1269, -1269,   791,  5798,  1104, -1269,
    1634    -1269, -1269, -1269,  1027,    88, -1269, -1269,   928, -1269, -1269,
    1635      928,   142,   928, -1269, -1269, -1269, -1269, -1269, -1269,  8737,
    1636    -1269,   155, -1269,  9115, -1269, -1269,  1034,   761,  1031,  1038,
    1637     1041, -1269,  2673, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1638     1932, -1269,   912, -1269, -1269,  1044,  1046,  1047, -1269, -1269,
    1639     1042,  1050, -1269,   584,  1953, -1269,   534, -1269,  2082,   782,
    1640    -1269,  1054, 11267,  9823,  8040,  1055, -1269, -1269,  1051,  1056,
    1641    -1269,  1059,   169,  1057, -1269,  1058,  1058,  5389, 10491, -1269,
    1642    -1269,  1058, -1269,  1808,  4897, -1269, -1269, -1269, -1269,  1060,
    1643    10491,  1062,   744, 10434, -1269, 10605, -1269,   744, -1269, 10491,
    1644    -1269,   840,   807, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1645      831,  7828, -1269, -1269,  6718,  1067, -1269,   864,   807, -1269,
    1646      871,   882,   807, -1269,   839,  3327, -1269, -1269, -1269,  9947,
    1647     9947, -1269,  7639,  7639, -1269,  1063,  1064,  1068,  1071, -1269,
    1648     1074,   541,    48,   998, -1269,   744, -1269,  5492, -1269, 10491,
    1649      455, -1269,  6043,  1080,  1081, 10377,  1083,  1084,    55,   173,
    1650       23, 10491,  1085,   155,  4287,  1089,  1086,  1065, -1269, -1269,
    1651    -1269,  1087, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1652    -1269,   791,  1094, 10491, -1269,  9947,  9947,   113,  1095, -1269,
    1653     8997,  8935,   889,   807, -1269, -1269, -1269, -1269, -1269, -1269,
    1654    -1269, -1269, -1269,  1098,  1953, -1269, -1269,  1082, -1269,   965,
    1655    -1269, -1269,  1507,  1097, -1269, -1269, -1269,   650,  1096, -1269,
    1656    10719,  1077,  1017,  1017,  1102, -1269,   951, 10491,  1111,  1060,
    1657      559,    61,  1108, -1269,  1102, -1269,  1113,  1108, -1269, -1269,
    1658     1118, -1269, -1269,   928,  1120,  1121,  6270,  1123,  1124,  1125,
    1659    -1269, -1269,  1122, -1269, -1269,   928, -1269, -1269, -1269, -1269,
    1660      928, 10491, 10491, 10719,  1127, -1269, -1269, -1269, -1269, -1269,
    1661    -1269, -1269, -1269, -1269, -1269, -1269, -1269, 10719, 10719,  1128,
    1662     1133,  1108, -1269, -1269,   791, -1269, -1269, -1269,  7118,  9823,
    1663    10491, 10491,  1180, 10491, -1269, -1269,  1114, -1269,  1117, 10491,
    1664     1135,  1137, 10491,   901, -1269,  1138,  8499,   113, -1269, -1269,
    1665     5798,  1140,   467, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
    1666    -1269, -1269,   928, 10183, -1269,  7704,  1147, -1269, -1269,  9823,
    1667      476,   481, -1269,  1157,  1165, -1269,   201, -1269, 10491,  1166,
    1668     1167, -1269, -1269,  1168,   257,   313,   744,  1169,  1171, -1269,
    1669     1172, -1269,  9947, -1269, -1269, -1269, -1269, -1269,  1174, -1269,
    1670     9947,  9947,  9947, -1269, -1269,  1175, -1269,  1179,  1182,  1183,
    1671      573,  7358,  7466, -1269, -1269,   609, -1269,  1184,  1185, -1269,
    1672     7769,   651,   662,  1141,   664,  5921, -1269, -1269,   508, -1269,
    1673    -1269,   687,  1189,   155,  1237,  1240, -1269, -1269, 10377, -1269,
    1674    -1269, -1269,  1193,  1197,  9947, -1269, -1269, -1269,  1196, -1269,
    1675    -1269, -1269, -1269, -1269, -1269,  9823, -1269,  1190,  1231,  1060,
    1676      253, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1204,
    1677    -1269, -1269, -1269, -1269, -1269, -1269,  1211,  1215, -1269, -1269,
    1678    -1269, -1269, -1269, -1269, -1269,  1219, -1269,  1218, -1269, -1269,
    1679    10377,   147, 10491, 10377, -1269,  1225, 10491, -1269,   264,  1239,
    1680    -1269, -1269,  1229, -1269, -1269, -1269, -1269, -1269,   911,  1507,
    1681     1233, -1269, -1269,   704,  1228, 10491,   744,   744,  1248,  1249,
    1682     1250,  1251, -1269, -1269,  7639,  1256, -1269,  1301, 10719,  1259,
    1683    -1269, -1269, 10297, -1269,   716, -1269,  1224, 10377,  1235, -1269,
    1684    -1269,  1268, -1269,  1282,  1270,  9823, -1269, -1269, -1269,  1252,
    1685     1302,  1273, -1269,  1108,  1108, -1269, -1269, -1269, -1269, -1269,
    1686    10377,    54, -1269,   897, -1269, -1269,  7049, -1269, -1269,  1255,
    1687    10491, -1269, 10491,  7049,   155,  9587,  1283, -1269, -1269,  1280,
    1688    -1269, -1269, 10491,  1284,  1285, -1269, 10719, 10719, -1269, -1269,
    1689      966,    99, -1269, -1269,  1266, -1269,   966, -1269, -1269,  2561,
    1690      744,   155,  9587,  1290, -1269, -1269, -1269, -1269, -1269, 10297,
    1691     1286,   966,  3510, 10491, 10217,  1287,   966,  1294,  2561,  3047,
    1692    -1269, -1269, -1269, -1269, -1269,  8040, -1269, 10062, -1269, 10297,
    1693    -1269, -1269,  1274,  9981, -1269, -1269, 10217,   155,  3047,  1297,
    1694      717, -1269, 10062, -1269, -1269, -1269,  9981, -1269, -1269,   155,
    1695    -1269, -1269, -1269, -1269, -1269
     1553    6576,  9185, -1398,   -17, -1398, -1398, -1398, -1398, -1398, -1398,
     1554   -1398,    52, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1555   -1398, -1398, -1398, -1398, -1398,    68,    68,    68,   896,   827,
     1556     110,  6794,   119, -1398, -1398, -1398, -1398, -1398,   113, -1398,
     1557   -1398, -1398,   846,    99,  4087, -1398, -1398, -1398, -1398, -1398,
     1558   -1398,   127,   187, -1398,  1172, -1398, -1398, -1398, -1398,   213,
     1559    1319,   377,    73,  6903, -1398, -1398,  8670,  1020, -1398, -1398,
     1560   -1398,  1108,   405,  3263,   735,   755,  1108,  1297, -1398, -1398,
     1561     270,   375, -1398,  1108,  1712, -1398,   310, -1398,   433,   467,
     1562   -1398, -1398, -1398, -1398,   344,   187,    68, -1398,    68, -1398,
     1563   -1398, -1398, -1398,  9421,  1172, -1398, -1398,  1172, -1398,  9480,
     1564     347, -1398, -1398,  1683,  9539, -1398,   566,   566,   566, -1398,
     1565   -1398, -1398,    68, -1398, -1398, -1398,   411,   520,   539, -1398,
     1566   -1398, -1398,   571, -1398, -1398, -1398, -1398, -1398,   586,   589,
     1567   -1398, -1398,    44,  8109,  1146,   170,   593,   601,   620,   627,
     1568     643,   650,  8875,  6124,   653,   671, -1398,  8739, -1398, -1398,
     1569   -1398, -1398,   683, -1398,   200,  4814, -1398,   686,   231, -1398,
     1570   -1398, -1398, -1398,   695,   241,   266,   303,    68,   715, -1398,
     1571   -1398,  1319,  3193,   789, -1398,    79, -1398,    68,    68,   187,
     1572   -1398, -1398,    90, -1398,    68,    68, -1398,  3463,   774,   781,
     1573     566,  7457, -1398, -1398,   708,  4087, -1398, -1398,  1108, -1398,
     1574   -1398, -1398,   187, -1398,  1172,   127, -1398,  7213, -1398,   566,
     1575     566,   566,   187, -1398,   896, -1398,  3674, -1398, -1398,   783,
     1576     566, -1398,   566, -1398,   113,  8109,  9244,   811, -1398,   827,
     1577     836,   566, -1398,   896,   822,   831, -1398,  6794,   895, -1398,
     1578   -1398, -1398,  8540, -1398, -1398, 10011, -1398,   789,    72,  9539,
     1579    5124,  1683,  3463, -1398,    95, -1398, -1398,  9480,  1172,   867,
     1580   11227, -1398, -1398,   335, -1398, 10962,   874,   903,  4451,  4561,
     1581   10793, -1398,   884, -1398, -1398, -1398, -1398, 10850, 10850,   895,
     1582    7791,   900,  4561,  8215, -1398, -1398, -1398, -1398, -1398, -1398,
     1583     935, -1398,   534,  1879,  4561, -1398,   434,   167,   528,   511,
     1584     647,   906,   892,   901,   943,   107, -1398, -1398,   910,   568,
     1585   -1398,   304, -1398, -1398,  1146, -1398, -1398,   379,   936, -1398,
     1586     445,   936,   940,   113, -1398, -1398,   949,  9421, -1398,   954,
     1587    7897, -1398, -1398,  1152,   795,  7537,  7457,  1108, -1398,  1108,
     1588     566,   566, -1398, -1398, -1398, -1398, -1398, -1398,   566,  9598,
     1589    1172, -1398, -1398,  9657,  1548, -1398,  9303, -1398, -1398, -1398,
     1590   -1398, -1398, -1398, -1398,   955,  3974,  4561, -1398, -1398, -1398,
     1591   -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1592    1683, -1398,   659,   951,   958,   961,   828,   965,   973,   974,
     1593    3193, -1398, -1398,   967,   127,   977, -1398, -1398,   975, -1398,
     1594   -1398, -1398,  8540, -1398, -1398, -1398, -1398, -1398,  3463, -1398,
     1595    8109,  8109, -1398,   566,  1683, 10399,  1172,  7602, -1398, -1398,
     1596   -1398, -1398,  8540,    72, -1398, -1398,  1108,   187, -1398, -1398,
     1597    8540, -1398,  5815, -1398, -1398,   566,   566,   400,  9716,   983,
     1598    1482,  4359, -1398,   391,   402,   827, -1398,  9244,   981,   970,
     1599     827,   566, -1398, -1398, -1398, -1398, 10135, -1398,   542,  7349,
     1600   -1398,   187,   984, -1398,  1683, 11037, 10622, -1398, -1398, -1398,
     1601   -1398,   866,  3463, -1398,  7667,   789,  6685, -1398, -1398, -1398,
     1602    1369,   559,   910,   827, 11227,   331,  9480, -1398, 11227, -1398,
     1603   -1398, -1398, -1398,   598, -1398,   993,   903,    83,  7791, -1398,
     1604   -1398, -1398,  7791, -1398,  8003,  7791, -1398, -1398, -1398,   992,
     1605   -1398,   603,   995,   614,   998, -1398,  2814,  5314, -1398, -1398,
     1606   -1398,   102, -1398, -1398, 10679, -1398,   276, -1398, -1398, -1398,
     1607   -1398, -1398, -1398, -1398, -1398, -1398, -1398,  5124,  5124, -1398,
     1608    4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,
     1609    4561,  4561,  4561,  4561,  4561,  4561,  4561,  4561,  5021,  5124,
     1610   -1398,   568,   890, -1398, -1398,    68,    68, -1398, -1398,  8109,
     1611   -1398, -1398,   975,   895, -1398,   975, 10736, -1398, -1398, -1398,
     1612    8568,  5314,   997,  8321,  1000, -1398,  9775, -1398, -1398,   683,
     1613   -1398,  1001,  1078,  1002,  2554,   101,   910, -1398,    68,    68,
     1614     910,   137, -1398,    68,    68,   975, -1398, -1398,    68,    68,
     1615   -1398,   936,  9834,  1172, 11168,   212,   299,  9834, -1398, 10070,
     1616   -1398,   910, -1398,  9598, -1398,   130,  4245,  4245,  4245,  1172,
     1617   -1398,  4107,  1009,   955,   371,  1011, -1398,   994,  4814,   625,
     1618   -1398,  1079,  1172,  4245,   895,  1683,   895,   789,   688,   936,
     1619   -1398, -1398,   725,   936, -1398, -1398, -1398,   903, -1398,   936,
     1620     187, 10135, -1398,   673,  1007,   674,  1021, -1398,  1018,   187,
     1621   -1398, -1398,  8540,   187,  1024,   466,   483,  9893,  6236,  1773,
     1622    4561,  2687, -1398, -1398,  1015,    65,  1015, -1398, -1398, -1398,
     1623      68,    68, -1398, -1398,   827, -1398,    68, -1398, -1398,  9005,
     1624     827,  1025,  4561, -1398,   981, 11168, -1398, -1398,  1031, -1398,
     1625   -1398, -1398,   895, -1398, 11103,  4561, -1398,  4245,   697,  7537,
     1626   -1398, -1398,   683,  1034,  1035,  1369,  3328, -1398, -1398, 11227,
     1627   -1398, -1398,  1019, -1398, -1398,  1047, -1398,  1019,  1048, 10962,
     1628    5124,   150,  1027,   125,  1050,  1051,   900,  1053,  1061, -1398,
     1629    1062,  1064,  9064,  5898, -1398,  5124, -1398,   614,  1586, -1398,
     1630    5526,  5124,  1060, -1398, -1398,   955,   709, -1398,  5124, -1398,
     1631   -1398, -1398, -1398, -1398, -1398, -1398,   434,   434,   167,   167,
     1632     528,   528,   528,   528,   511,   511,   647,   906,   892,   901,
     1633     943,  4561,   640, -1398, 10135,  1071,  1072,  1073,   890, -1398,
     1634   -1398, -1398, -1398, -1398, 10135,   711,  4561,  4245, -1398,  9598,
     1635   -1398,  6348,  8427,  9362,  6124, -1398, -1398, -1398,  1078, 10135,
     1636     893,  1074,  1076,  1083,  1086,  1088,  1092,  1093, -1398,  3022,
     1637    2554, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1638   -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   975, -1398,
     1639   -1398, -1398,   910, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1640   -1398,  1094, -1398,  1095,  1100, -1398, -1398,   127,  1060,  4107,
     1641   -1398, -1398, -1398,  3974,  1096, -1398, -1398, -1398, -1398,   827,
     1642    5662,  1176, -1398, -1398, -1398, -1398,  1082,   127, -1398, -1398,
     1643     975, -1398, -1398,   975,    60,   975, -1398, -1398, -1398, -1398,
     1644   -1398, -1398,  8807, -1398,   187, -1398,  9244, -1398, -1398,  1110,
     1645     753,  1114,  1122,  1124, -1398, -1398,  2687, -1398, -1398, -1398,
     1646   -1398, -1398, -1398, -1398,  1482, -1398,   970, -1398, -1398,  1105,
     1647    1130,  1126, -1398, -1398,  1131,  1139, -1398,   697,  1707, -1398,
     1648     399, -1398,  3328,   910, -1398,  1148, 11227,  9952,  8109,  1150,
     1649   -1398, -1398,  1147,  1154,  1145, -1398,  4561,   131,   259,  1151,
     1650   -1398,  1156,  1156,  5314,  5124, -1398, -1398,  1156, -1398,  1586,
     1651    3974, -1398, -1398, -1398, -1398,  1157,  5124,  1162,   895,  4107,
     1652   -1398, 10679, -1398,   895, -1398,  5124, -1398,   784,   936, -1398,
     1653   -1398, -1398, -1398, -1398, -1398, -1398,   955,  7897, -1398, -1398,
     1654    6460,  1158, -1398,   796,   936, -1398,   807,   817,   936, -1398,
     1655     566,  3298, -1398, -1398, -1398, 10135, 10135, -1398,  7602,  7602,
     1656   -1398,  1160,  1164,  1168,  1173, -1398,  1174,   417,   121,  1060,
     1657   -1398,   895, -1398,  4814, -1398,  5124, -1398,   491, -1398,  5786,
     1658    1179,  1180, 10565,  1185,  1186,    55,    77,   104,  5124,  1187,
     1659     187,  3868,  1190,  1149,  1153, -1398, -1398, -1398,  1182, -1398,
     1660   -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,   827,  1188,
     1661    5124, -1398, 10135, 10135,    68,  1195, -1398,  9126,  8943,   842,
     1662     936, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1663    1199,  1707, -1398, -1398,  1183, -1398,  1019, -1398, -1398,  1683,
     1664    1196, -1398, -1398, -1398,   719,  1210, -1398,   125,  1215,  4561,
     1665    1200,   125,   125,  1212, -1398,   994,  5124,  1221,  1157,   612,
     1666     157,  1218, -1398,  1212, -1398,  1224,  1218, -1398, -1398,  1228,
     1667   -1398, -1398,   975,  1229,  1238,  6011,  1240,  1241,  1242, -1398,
     1668   -1398,  1247, -1398, -1398,   975, -1398, -1398, -1398, -1398,   975,
     1669    5124,  5124,  4561,  1246, -1398, -1398, -1398, -1398, -1398, -1398,
     1670   -1398, -1398, -1398, -1398, -1398, -1398,  4561,  4561,  1248,  1250,
     1671    1218, -1398, -1398,   827, -1398, -1398, -1398,  7148,  9952,  5124,
     1672    5124,  1310,  5124, -1398, -1398,  1234, -1398,  1235,  5124,  1236,
     1673    1237,  5124,   858, -1398,  1243,  8637,    68, -1398, -1398,  5662,
     1674    1255,   500, -1398, -1398, -1398, -1398, -1398, -1398, -1398, -1398,
     1675   -1398,   975, 10371, -1398,  7667,  1262, -1398, -1398,  9952,   523,
     1676     540, -1398,  1258,  1233,   903,  1268, -1398,   573, -1398,  5124,
     1677    1272,  1265, -1398, -1398,  1273,   288,   298,   895,  1276,  1281,
     1678   -1398,  1285, -1398, 10135, -1398, -1398, -1398, -1398, -1398,  1286,
     1679   -1398, 10135, 10135, 10135, -1398, -1398,  1287, -1398,  1288,  1292,
     1680    1298,   480,  7321,  7429, -1398, -1398,   700, -1398,  1300,  1303,
     1681   -1398, -1398,  7732,   721,   729,  1308,   741,  5468, -1398, -1398,
     1682     541, -1398, -1398,   745,  1311,   187,  1362,  1364, -1398, -1398,
     1683   10565, -1398, -1398, -1398,  1317,  1326, 10135, -1398, -1398, -1398,
     1684    1315, -1398, -1398, -1398, -1398, -1398, -1398,  9952,   903,   164,
     1685   -1398,  1305,   903,  1157,   370, -1398, -1398, -1398, -1398, -1398,
     1686   -1398, -1398, -1398,  1322, -1398, -1398, -1398, -1398, -1398, -1398,
     1687    1331,  1332, -1398, -1398, -1398, -1398, -1398, -1398, -1398,  1339,
     1688   -1398,  1340, -1398, -1398, 10565,   146,  5124, 10565, -1398,  1341,
     1689    5124, -1398,   203,  1360, -1398, -1398,  1350, -1398, -1398, -1398,
     1690   -1398, -1398,  1172,  1683,  1349,   935,   843,  4561, -1398,   749,
     1691    1353,  5124,   895,   895,  1359,  1361,  1366,  1370, -1398, -1398,
     1692    7602,  1354, -1398,  1424,  4561,  1365, -1398, -1398, 10485, -1398,
     1693     768, -1398,  1351, 10565,  1352, -1398, -1398,  1371, -1398,  1389,
     1694    1379,  9952, -1398, -1398, -1398,   903,   827,  1383,  1363,  1387,
     1695   -1398,  1218,  1218, -1398, -1398, -1398, -1398, -1398, 10565,   207,
     1696   -1398,   872, -1398, -1398,  7012, -1398, -1398,  1375,  5124, -1398,
     1697    5124,  7012,   187,  9716,  1399, -1398, -1398,  1398,   935,   778,
     1698   -1398, -1398,  5124,  1402,  1404, -1398,  4561,  4561, -1398, -1398,
     1699     957,   135, -1398, -1398,  1385, -1398,   957, -1398, -1398,  1825,
     1700     895,   187,  9716,  1409,  1391, -1398, -1398, -1398, -1398, -1398,
     1701   10485,  1411,   957,  7081,  5124, 10405,  1412,   957,  1419,  1825,
     1702    2940, -1398, -1398, -1398, -1398, -1398,  8109, -1398, -1398, 10250,
     1703   -1398, 10485, -1398, -1398,  1400, 10169, -1398, -1398, 10405,   187,
     1704    2940,  1431,   782, -1398, 10250, -1398, -1398, -1398, 10169, -1398,
     1705   -1398,   187, -1398, -1398, -1398, -1398, -1398
    16961706};
    16971707
     
    16991709static const yytype_int16 yypgoto[] =
    17001710{
    1701    -1269,  3902,  2604, -1269,   354, -1269,    -1,     2,   742, -1269,
    1702    -1269, -1269,  -489,  -961,  -282,  4749, -1269,   570,   459,   468,
    1703      357,   464,   844,   848,   849,   847,   850, -1269,  -229,  -231,
    1704     4555,   296,  -694,  -919, -1269,   166,  -721,   143, -1269,    86,
    1705    -1269,   216, -1143, -1269, -1269,   -17, -1269, -1146, -1036,    71,
    1706    -1269, -1269, -1269, -1269,   -75, -1160, -1269, -1269, -1269, -1269,
    1707    -1269, -1269,   141,   -26,    21,   316, -1269,   320, -1269,    13,
    1708    -1269,  -294, -1269, -1269, -1269,   364,  -829, -1269, -1269,    11,
    1709     -963,   125,  1704, -1269, -1269, -1269,   -72, -1269,    82,    49,
    1710      -18,  1039,  3754, -1269, -1269,    81,   133,   536,  -256,  1629,
    1711    -1269,  1307, -1269, -1269,   224,  1625, -1269,  1893,  1163, -1269,
    1712    -1269,  -426,  -421,   993,   994,   507,   747,   306, -1269, -1269,
    1713      980,   516,  -433, -1269,  -199,    75,   591, -1269, -1269,  -894,
    1714    -1000,     6,   910,   861,   176, -1269,   721,   158,  -317,  -210,
    1715     -149,   478,   577, -1269,   809, -1269,  2211,   740,  -443,   722,
    1716    -1269, -1269,   511, -1269,  -232, -1269,   -46, -1269, -1269, -1269,
    1717    -1268,   243, -1269, -1269, -1269,   981, -1269,    -7, -1269, -1269,
    1718     -827,   -35, -1227,  -161,  1978, -1269,  3527, -1269,   719, -1269,
    1719     -157,    41,  -172,  -170,  -163,     4,   -41,   -36,   -34,   777,
    1720       24,    33,    45,  -143,  -151,  -150,  -145,  -139,  -288,  -529,
    1721     -505,  -476,  -564,  -323,  -560, -1269, -1269,  -516,   899,   906,
    1722      915,  1643,  4256,  -522,  -566,  -549,  -514,  -546, -1269,  -372,
    1723     -680,  -674,  -672,  -603,  -208,  -186, -1269, -1269,    64,   293,
    1724      -93, -1269,  3162,   208,  -613,  -396
     1711   -1398,  3548,  2440, -1398,   359, -1398,    -1,     2,  -248, -1398,
     1712   -1398, -1398,  -508,  -818,  -239,  4695, -1398,  -128,   484,   490,
     1713     457,   486,   963,   971,   969,   972,   985, -1398,   623,  -468,
     1714    4060,   410,  -704,  -934, -1398,   -64,  -728,  -419, -1398,   165,
     1715   -1398,   330, -1091, -1398, -1398,    84, -1398, -1055,  -804,   178,
     1716   -1398, -1398, -1398, -1398,    24, -1397, -1398, -1398, -1398, -1398,
     1717   -1398, -1398,   248,    76,    53, -1398,  -499, -1398,   438,   233,
     1718   -1038,   115, -1398,  -309, -1398, -1398, -1398,  -878, -1398, -1398,
     1719       5,  -977,    86,  1230, -1398, -1398, -1398,   -65, -1398,    82,
     1720     326,  -195,   939,  3408, -1398, -1398,    54,   724,   990,  -258,
     1721    1989, -1398,   966, -1398, -1398,   112,  1459, -1398,  1633,  1584,
     1722   -1398, -1398,  -421,  -417,  1115,  1120,   628,   875,   262, -1398,
     1723   -1398,  1113,   634,  -519, -1398,   -67,   383,   999, -1398, -1398,
     1724    -990,  -956,  -329,   988,   991,    29, -1398,    -6,    45,   -37,
     1725    -170,  -152,   599,   699, -1398,   929, -1398,  1962,  1701,  -437,
     1726     845, -1398, -1398,   633, -1398,  -232, -1398,    32, -1398, -1398,
     1727   -1398, -1239,   360, -1398, -1398, -1398,  1104, -1398,    38, -1398,
     1728   -1398,  -858,  -106, -1287,  -102,  2356, -1398,  2384, -1398,   852,
     1729   -1398,  -163,    97,  -172,  -171,  -166,     4,   -41,   -34,   -31,
     1730    1423,     0,     9,    37,   -68,  -160,  -157,  -153,  -151,  -324,
     1731    -522,  -480,  -478,  -541,  -297,  -552, -1398, -1398,  -495,  1023,
     1732    1037,  1038,  2410,  4141,  -567,  -561,  -559,  -542,  -556, -1398,
     1733    -425,  -675,  -673,  -671,  -591,    91,  -238, -1398, -1398,   353,
     1734     294,   -76, -1398,  3086,   180,  -588,  -295
    17251735};
    17261736
     
    17281738   positive, shift that token.  If negative, reduce the rule which
    17291739   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1730 #define YYTABLE_NINF -503
     1740#define YYTABLE_NINF -510
    17311741static const yytype_int16 yytable[] =
    17321742{
    1733      110,   146,    46,   445,    95,   432,   147,   918,   148,   392,
    1734      256,   393,   111,   919,   141,   920,   377,   857,   394,   498,
    1735      609,    47,   403,  1161,   140,   400,  1127,   959,   701,   707,
    1736      395,   396,   881,    46,   832,    95,   397,  1360,   839,   401,
    1737      831,    94,   398,   774,    46,   506,    46,   505,   158,   740,
    1738      113,   833,    47,   745,   806,   604,    46,   843,  1069,   337,
    1739     1070,  1119,    46,   850,   189,    46,   149,   212,    46,    30,
    1740      222,   828,    94,   976,  1171,   150,   696,   215,   263,  1177,
    1741      840,    66,    60,   145,   918,    94,   834,   151,   108,   392,
    1742      919,   393,   920,   156,   738,   829,   475,   477,   394,   935,
    1743      119,   185,   672,   674,    94,   400,    46,    94,   160,    46,
    1744      395,   396,    66,    60,   749,    46,   397,   668,   120,   401,
    1745      108,   750,   398,   198,   830,    53,   112,  1429,  1159,  1160,
    1746      402,   596,   108,    67,  1189,   404,   677,  1167,   169,  1234,
    1747      146,  -218,  -218,  1436,   681,   147,    46,   148,   158,   766,
    1748       30,  1414,   254,   565,    46,   371,    53,   139,   156,    46,
    1749      143,   367,   418,  1168,    67,    30,  1235,   199,    30,  1168,
    1750      770,   372,   628,   160,   476,    30,   632,   744,   439,  1185,
    1751      471,   249,   421,    46,    46,    94,   158,   566,   206,  1378,
    1752     1379,   216,   318,   666,   152,   757,   208,   460,    94,    46,
    1753      735,   334,   872,   873,   828,   149,  -218,    46,   844,   158,
    1754     1414,   165,   847,  1176,   150,  1161,    46,   528,   890,    46,
    1755      146,   435,   391,   185,    74,   147,   151,   148,   829,   248,
    1756      173,   404,   412,   864,   404,    30,  1418,   867,   108,   481,
    1757      463,   404,   663,   587,  1077,   476,    94,   465,   177,    46,
    1758      422,    95,   163,  1380,   426,    74,   664,   830,    94,   832,
    1759      810,   167,  1161,    46,    46,  1005,   158,   567,    47,   427,
    1760       46,  1111,   337,  1017,   729,   410,   833,    46,  1112,   609,
    1761      257,   843,    30,   258,   318,   448,   701,   516,    94,   994,
    1762      197,   692,   942,   104,   104,  1129,   828,  1187,   429,   841,
    1763      453,   601,   479,  1307,  1484,   694,  1378,  1379,   437,  1309,
    1764     1308,   834,  1177,  1418,   108,  1018,   426,   163,  1418,   488,
    1765      829,  1483,   108,   663,   104,    46,  1497,   367,    66,    60,
    1766     1191,   427,  -274,  1418,   472,   243,  1492,   664,   521,   471,
    1767     1418,   156,   433,  1496,    46,    46,   848,   380,   601,   830,
    1768      434,   322,   776,   523,   655,  -109,   160,   248,   471,   104,
    1769     1313,    46,  1365,   381,    94,    46,   471,  1159,  1160,   246,
    1770     1389,  1069,    53,  1070,  1161,   520,  -109,   832,   108,  -498,
    1771       67,   997,   670,   596,   603,   586,   911,   675,   593,   260,
    1772      431,    46,   -10,   108,   833,   136,   137,   108,   857,   136,
    1773      234,    46,   817,   367,  1459,  1403,  1404,   626,   172,   576,
    1774     1464,   630,   596,   428,   334,   577,  1315,   596,   108,    46,
    1775      136,   137,   840,   383,    46,  1479,    46,   248,   324,   834,
    1776     1486,   337,   385,   235,   239,   870,   870,   870,   236,   384,
    1777      185,   682,  -424,   322,   483,   866,  1346,   577,   386,  -425,
    1778       46,   500,   870,  1177,   325,   519,   877,   921,   172,   505,
    1779     1177,   172,   272,  1021,  1147,  1149,   110,   387,   318,   318,
    1780      717,    74,   555,   556,    46,   428,    74,   208,   729,   934,
    1781     1409,   505,    46,   388,   367,   702,    46,  1080,    95,   693,
    1782       46,   498,   274,   472,   894,   448,  1125,   882,   448,  1177,
    1783      163,   703,   275,  1230,   448,    47,   172,   557,   558,  1099,
    1784      453,   754,   472,   453,   609,   392,   113,   393,   173,   453,
    1785      472,   679,   704,   860,   394,    94,   870,   861,   771,   603,
    1786      862,   754,   400,   777,   863,   629,   395,   396,   705,   633,
    1787      104,   488,   397,   318,   702,   488,   401,   598,   398,  1016,
    1788     1085,   704,   729,  1096,  1344,   721,   521,   728,   696,   521,
    1789      914,   318,   521,  1174,   726,    66,    60,   915,   172,   988,
    1790      276,   523,  1018,   334,   523,  1174,   548,   523,   365,  1175,
    1791      465,   549,   550,   366,  1300,   671,   673,  1442,   326,  1302,
    1792       46,  1291,   337,   520,  1442,   108,   520,   136,   137,   520,
    1793     1301,  1085,    46,   225,    46,  1303,   208,   226,   471,    53,
    1794      230,   569,   232,   404,   719,   870,   762,    67,   892,   241,
    1795      720,   570,   172,    46,   327,  1388,   318,   322,   322,   172,
    1796      999,   741,  1347,  1480,   817,    74,   742,   815,   862,    46,
    1797      593,   827,  1095,   603,   328,  -102,   764,  1031,   404,  -102,
    1798      939,   891,    46,   893,    74,    46,   765,   551,   552,   701,
    1799     1016,  -109,    74,  -109,  1029,   751,   337,  -109,   752,   856,
    1800      819,   758,   370,   519,   593,   717,   519,  1332,   329,   519,
    1801      865,  1333,  -109,  -109,  1074,   943,   883,   601,   642,    46,
    1802      330,    46,   884,    36,   736,   944,   172,    39,   382,  1444,
    1803      737,  1445,   322,   378,    40,    41,   559,   560,    74,   871,
    1804      871,   871,  -449,   172,  -449,   746,   402,   172,  -449,   938,
    1805      322,   747,  1107,   817,   762,   989,   871,   761,   917,    42,
    1806      693,  1036,   799,   762,   334,    46,    46,   905,   390,   144,
    1807      907,   984,  1481,   762,   225,   996,   762,   985,   419,    46,
    1808      138,   720,  1222,  1340,   903,   434,   448,   420,   577,   762,
    1809     1128,   728,   472,   910,  1341,   663,  1343,   912,   726,   424,
    1810      762,   453,   762,   692,   827,   603,   442,   104,   172,   664,
    1811       36,   455,   170,   171,    39,   322,   488,   694,   918,  1348,
    1812      458,    40,    41,   596,   919,   762,   920,   859,   461,   598,
    1813      871,   237,   240,   211,   472,   462,  1399,   717,   334,   108,
    1814     1031,    36,  1400,   874,   484,    39,   366,   717,  1419,  1500,
    1815      238,   159,    40,    41,   762,   577,   889,    46,   858,   248,
    1816      324,   404,   717,   598,   493,   728,   494,   190,   512,    46,
    1817      213,   528,   726,   223,   553,   554,   208,   733,   509,     8,
    1818        9,    10,    11,    12,   211,   524,   108,   734,   136,   137,
    1819      208,   526,   527,   324,   404,   998,   827,   561,   126,   815,
    1820      127,   128,   129,   547,   562,   578,    30,   404,   603,  1224,
    1821      563,   505,   225,  -275,   230,   581,  1056,   404,  1172,   871,
    1822        8,     9,    10,    11,    12,   817,   895,   211,   404,    33,
    1823      564,   898,   819,   404,    74,   567,   529,   530,   531,   527,
    1824      333,    46,   787,   788,   789,   790,  -421,    30,   412,   659,
    1825      404,   159,   585,   500,    46,   481,   324,   404,   729,   532,
    1826      588,   533,    46,   534,   368,   638,  1263,  1264,   505,   505,
    1827       33,  1131,   172,   404,   656,   527,    74,   841,   324,   601,
    1828       46,   208,  1314,  1316,  1317,  1282,  1283,   211,   815,   159,
    1829      457,   657,   448,   693,  1100,  1143,   665,   404,    66,    60,
    1830      225,   693,  1146,   667,   601,   172,    36,   453,   170,   171,
    1831       39,  1121,   159,  1148,   754,   601,  1121,    40,    41,   603,
    1832     1210,   172,   404,   658,   436,   211,  1151,  1079,   925,   211,
    1833      925,   488,  1102,   318,   172,  1437,  1438,   729,  1378,  1379,
    1834      783,   784,    53,   685,     2,   202,     4,     5,     6,     7,
    1835       67,   785,   786,   791,   792,   717,   717,   660,   661,   662,
    1836     1058,   253,   708,   748,  1121,   710,  -222,   759,   763,    63,
    1837      114,   767,   820,   -12,  1056,   822,   824,  1186,  1188,  1190,
    1838      856,   835,     2,   202,     4,     5,     6,     7,   879,   880,
    1839      886,   285,   906,   908,   913,   688,   909,  1217,   960,  -398,
    1840       63,   142,    34,   737,    35,   933,  -502,  1471,  1101,   947,
    1841      224,   717,   717,   157,   211,   954,     8,     9,    10,    11,
    1842       12,   956,   961,   965,   966,   643,   968,  1158,   969,   970,
    1843      368,   172,   971,   337,    46,   217,   980,   991,   992,   993,
    1844       34,    74,    35,    30,  1007,  1008,  1085,  1009,   780,   781,
    1845      782,  1010,  1011,  1179,   472,  1012,  1013,  1024,  -386,   448,
    1846      815,  -385,  1071,  1082,    -3,  1038,    33,   434,  1081,  1193,
    1847     1083,    36,   255,  1084,   453,    39,  1091,  1411,  1089,   505,
    1848     1073,  1088,    40,    41,  1092,  1090,  1098,  1108,  1109,   762,
    1849     1110,   527,   322,   211,   974,  1113,  1120,    53,  1117,  1141,
    1850     1164,  1162,  1163,  1165,   706,    67,   368,    42,  1166,   457,
    1851      104,  1180,  1181,   323,  1183,  1184,  1192,   144,  1182,  1198,
    1852      215,   255,   344,  1196,    -3,  1197,  1203,  1208,    46,  1056,
    1853     1214,  1225,  1223,   493,  1218,  1457,  1411,   505,   505,   858,
    1854     1228,   728,   739,   211,   743,  1232,  1236,  1239,   726,  1296,
    1855     1241,   399,  1243,  1244,  1249,  1273,   210,  1245,  1246,  1247,
    1856     1100,  1256,  1265,  1121,  1121,  1121,   417,  1266,  1276,   142,
    1857      423,  1277,  1342,  1490,   157,   334,   104,  1290,   717,  1298,
    1858        2,   202,     4,     5,     6,     7,   717,   717,   717,  1279,
    1859      904,  1280,  1287,   172,  1304,   440,    74,  1306,  1102,   443,
    1860     1310,   444,  1312,  1318,  1311,  1319,  1320,   210,  1322,  1328,
    1861      459,    66,    60,  1329,  1330,  1331,    63,  1056,  1338,  1339,
    1862     1349,   473,  1283,   527,  1352,  1354,   392,   726,   393,  1355,
    1863      717,   480,  1357,   206,   216,   394,  1362,    72,    34,   423,
    1864       35,   208,   400,  1365,  1361,  1372,  1100,   395,   396,  1373,
    1865      210,  -387,  1376,   397,  1397,    53,   401,  1387,  1391,   398,
    1866     1393,   663,  1401,    67,   211,   104,  1335,   975,    72,  1056,
    1867     1398,  1410,  1056,  1058,  1101,   664,  1271,  1272,  1420,  1274,
    1868     1405,  1406,  1407,  1408,  1102,  1278,  1179,   472,  1281,  1422,
    1869       46,    46,   211,   878,  1333,  1121,  1121,   211,  1415,  1350,
    1870     1424,  1426,  1428,   218,   718,   255,  1430,  1431,   594,  1443,
    1871      210,  1056,  1432,   527,   622,  1451,  1056,  1453,  1455,  1456,
    1872     1463,  1475,   990,  1478,  1485,   433,  1487,   627,  1493,  1499,
    1873       53,   627,   995,   434,   255,   793,  1100,   901,    67,  1056,
    1874      794,   796,   795,  1231,  1470,   797,  1289,  1006,   210,  1390,
    1875     1458,  1501,   210,   929,    74,  1351,  1474,   146,  1226,   932,
    1876     1101,  1353,   147,  1227,   148,  1202,  1446,  1086,   712,   683,
    1877      684,   926,   812,    36,  1102,   170,   171,    39,  1087,  1472,
    1878      473,    46,  1116,   211,    40,    41,   885,  1037,  1056,   949,
    1879      347,  1097,  1299,  1056,   344,   731,   957,   211,   802,   473,
    1880       46,    46,   104,   158,  1449,   803,  1056,   473,  1056,   370,
    1881        0,     0,  1056,  1377,   804,  1056,  1385,     0,     0,  1450,
    1882       46,  1056,   367,   104,     0,  1056,     0,  1179,   472,    74,
    1883        0,  1449,     0,   713,  1179,   472,   423,   210,  1384,   479,
    1884     1447,     0,   104,     0,     0,    36,  1450,   179,   180,    39,
    1885     1101,   727,     0,    63,   318,  1417,    40,    41,     0,     0,
    1886     1421,   423,     0,   441,  1396,   423,     0,  1473,     0,     0,
    1887        0,    53,     0,  1179,   472,     0,     0,     0,    53,    67,
    1888      172,   181,     0,  1435,    72,     0,    67,     0,   211,    72,
    1889        0,   182,     0,   255,   344,     0,     0,     0,   104,     0,
    1890        0,   527,    36,  1498,   179,   180,    39,     0,     0,   718,
    1891        0,     0,     0,    40,    41,  1503,   210,    53,     8,     9,
    1892       10,    11,    12,     0,     0,    67,     0,     0,   104,     0,
    1893        0,   643,     0,     0,     0,     0,     0,  1041,   261,   805,
    1894     1156,  1157,   509,     0,     0,    30,     0,     0,   262,     0,
    1895     1491,     0,     0,     0,     0,    75,  1491,   627,   818,     0,
    1896      594,     0,     0,     0,     0,  1491,   210,     0,    33,  1491,
    1897       74,   837,     0,     0,     0,     0,     0,    74,     0,     0,
    1898        0,     0,   218,     0,     0,     0,    75,     0,     0,   594,
    1899        0,     0,     0,     0,   594,     0,  1205,  1206,     0,     0,
    1900      627,     0,     0,   344,   344,   344,     0,     0,     0,   569,
    1901        0,   404,     0,   322,     0,     0,    74,     0,   104,   570,
    1902      344,   219,   209,     0,     0,   643,     0,     0,     0,     0,
    1903        0,     0,   228,     0,    54,    54,     0,     0,   713,   104,
    1904        0,   718,   172,     0,     0,     0,   104,     0,    72,   473,
    1905        0,   718,    36,   527,   255,   727,    39,     0,   922,     0,
    1906        0,  -276,   347,    40,    41,    54,   718,    72,     8,     9,
    1907       10,    11,    12,   209,   211,    72,     0,     0,     0,     0,
    1908        0,     0,     0,     0,     0,   104,     0,   210,   825,     0,
    1909      601,   473,     0,     0,   344,    30,     0,    54,   602,     0,
    1910       54,   347,  -277,   948,     0,     0,   423,     0,   349,     8,
    1911        9,    10,    11,    12,     0,   210,   209,     0,    33,   347,
    1912      210,    72,  1041,     0,     0,     0,     0,     0,   255,   727,
    1913        0,     0,     0,     0,   973,     0,    30,     0,     0,     0,
    1914        0,     0,     8,     9,    10,    11,    12,     0,     8,     9,
    1915       10,    11,    12,     0,     0,     0,     0,     0,   406,    33,
    1916        0,     0,   347,  1321,     0,   414,     0,     0,     0,    30,
    1917      713,  1323,  1324,  1325,     0,    30,   209,     0,     0,     0,
    1918      713,     0,     0,   344,     0,   627,     0,   342,  1004,   627,
    1919      818,     0,    33,     0,     0,   713,     0,    36,    33,   179,
    1920      180,    39,    75,     0,     0,  1015,   210,    75,    40,    41,
    1921        0,     0,     0,     0,   209,  1356,     0,     0,   209,     0,
    1922      210,     0,     0,    77,     0,  1269,   347,     0,     0,     0,
    1923        0,     0,     0,   600,   499,   601,     0,   406,     0,   764,
    1924        0,   404,     0,   602,     0,     0,     0,     0,   211,   765,
    1925        0,    54,     0,     0,    77,     0,    63,     0,     0,   718,
    1926      718,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1927        0,   347,   347,   347,     0,     0,     0,     0,   627,     0,
    1928        0,    54,     0,     0,     0,     0,     0,     0,   347,   220,
    1929        0,   575,     0,     8,     9,    10,    11,    12,     0,   579,
    1930      219,     0,   582,   209,     0,     0,   347,     0,     0,     0,
    1931        0,   210,     0,  1094,     0,   718,   718,    72,     0,     0,
    1932       30,   423,   114,   347,     0,     0,     0,    36,     0,   179,
    1933      180,    39,     0,   121,   124,   125,   344,     0,    40,    41,
    1934      211,     0,     0,    33,   535,   536,   537,   538,   539,   540,
    1935      541,   542,   543,   544,     0,     0,     0,     0,     0,    72,
    1936        0,     0,   347,   687,   406,   404,    75,     0,   414,     0,
    1937      594,   688,     0,   689,     0,     0,   350,   545,     0,     0,
    1938      349,     0,   209,   142,   943,    75,   601,     0,   713,   713,
    1939        0,   344,   344,    75,   944,     0,     0,   347,     0,   209,
    1940        0,     0,     0,     0,   250,     0,   251,     0,     0,     0,
    1941        0,  1178,     0,     0,     0,     0,     0,     0,     0,   349,
     1743     110,   146,    46,   447,    95,   422,   111,   263,   147,   393,
     1744     394,   148,  1076,   378,   921,   395,   922,   500,   923,   401,
     1745     606,   396,   963,   138,   397,   698,   777,   256,   398,   507,
     1746     399,   860,  1077,    46,   703,    95,   709,   843,  1168,  1169,
     1747    1211,   835,   149,   836,    46,   434,    46,   611,   158,   846,
     1748     834,   150,  1128,    47,    66,   853,    46,   742,   119,   884,
     1749     837,   747,    46,   842,   189,    46,   982,   212,    46,   140,
     1750     222,   215,  1186,  1170,   237,   240,   338,   809,  1374,   151,
     1751     831,   404,    60,   173,    47,    66,    53,   112,  1506,   393,
     1752     394,   419,   921,   276,   922,   395,   923,    94,   769,   401,
     1753     198,   396,    30,   670,   397,    30,    46,  1432,   398,    46,
     1754     399,  1519,    74,    60,   402,    46,    30,    53,   875,   876,
     1755     108,   630,   832,   679,   833,   634,   939,    30,    94,   403,
     1756     141,   683,    30,   257,   893,   530,   258,   719,    30,   145,
     1757     146,    94,   108,    74,   199,   277,    46,   147,   158,   206,
     1758     148,   511,   216,   120,    46,   477,   479,   185,   530,    46,
     1759      94,   368,  1084,    94,   528,   529,   737,   108,   405,   108,
     1760    1432,  1185,  1447,   478,    30,  1136,   549,  -225,  -225,  1194,
     1761     248,   149,   405,    46,    46,   752,   158,   473,  1394,  1395,
     1762     150,   413,   753,   405,   402,   567,   483,   740,   405,    46,
     1763     286,  1196,   844,   152,   603,   773,   530,    46,   946,   158,
     1764    1176,   139,   529,   831,   143,  1198,    46,   169,   151,    46,
     1765     146,   437,   925,  1180,   163,   530,   521,   147,   966,   568,
     1766     148,   478,  1119,   459,   668,  1245,  1177,   665,   851,   530,
     1767     603,    94,  -225,   433,   938,  1394,  1395,   467,   529,    46,
     1768     165,    95,  1396,   569,    94,   832,   441,   833,   751,   964,
     1769     249,   589,  1246,    46,    46,  1377,   158,   835,  1170,   836,
     1770      46,   248,   325,  1024,   846,   462,  1011,    46,   392,   185,
     1771     553,   554,  1168,  1169,   657,   465,   837,   694,   518,   163,
     1772     338,  1138,   703,   167,   104,   104,  1456,   485,  1003,  1023,
     1773      47,    66,    94,   435,   502,  1323,   831,   611,   372,  1405,
     1774    1186,   847,   672,  1000,    94,   850,   863,  1170,   677,   665,
     1775     864,   177,  1177,   323,   373,   104,    46,   113,   368,    60,
     1776    1200,  1076,   666,    53,   474,   108,   867,   136,   234,   381,
     1777     870,   108,   719,  1436,    94,    46,    46,   473,   832,   384,
     1778     833,  1077,   820,   108,   411,   382,   673,   675,   481,    74,
     1779     104,  1120,    46,   108,    74,   385,    46,   473,  1121,   645,
     1780     156,   235,   173,   914,   386,   473,   236,   431,  1449,   779,
     1781     197,   843,   696,   674,   676,   430,   835,   439,   836,   631,
     1782     387,  1327,    46,   635,  1505,   869,   108,   160,   136,   137,
     1783    1427,  1329,    46,   865,   368,   837,   578,   866,  -281,  1360,
     1784    1514,   388,   579,   172,   666,   323,   860,  1518,   243,   904,
     1785      46,    94,   783,   784,   785,  1436,    46,   389,    46,   254,
     1786    1436,   598,   743,   246,  1170,   156,   108,   744,   136,   137,
     1787     108,   605,   136,   137,   521,   248,  1436,   430,   521,   708,
     1788     338,   521,    46,  1436,   459,   522,   495,  1186,   496,   746,
     1789    1156,  1158,   160,   172,  1186,   529,   172,  -505,   110,   319,
     1790     260,  1065,  -109,   163,   880,   719,    46,   760,   335,  1381,
     1791     580,   239,   405,  1134,    46,   719,   368,   741,    46,   745,
     1792      95,   500,    46,  -109,   474,  1087,   885,   185,  1118,   704,
     1793     719,  1092,   684,   865,   802,   967,  1186,  1102,   579,   698,
     1794     706,   172,   -10,   757,   474,   705,  1022,   393,   394,  1106,
     1795     600,  -102,   474,   395,    74,  -102,   707,   424,   401,   396,
     1796     774,   428,   397,   757,  1024,   780,   398,  1241,   399,    47,
     1797      66,   104,   813,   611,    74,   550,   583,   695,   405,   895,
     1798     551,   552,    74,   754,  1092,   897,  1462,   755,   429,  1358,
     1799     761,   319,   450,  1462,  1421,  1422,   728,  1027,    60,   873,
     1800     873,   873,    53,   172,   704,   731,     8,     9,    10,    11,
     1801      12,  1005,   467,    94,  1346,   820,   873,   605,  1347,   455,
     1802     917,   706,    46,   428,   557,   558,   490,   529,    74,  1183,
     1803     323,   323,   681,    30,    46,  1502,    46,   918,  1183,   555,
     1804     556,   338,   531,   532,   533,  1184,   523,   473,  1233,   156,
     1805     429,  -431,  1237,   402,  1303,    46,    33,   172,  1022,   559,
     1806     560,  1312,  1404,  1191,   172,   534,   723,   535,   881,   536,
     1807    -432,    46,   981,   525,   721,   822,   160,  1313,  1314,   765,
     1808     722,  1235,   862,   894,    46,   896,  1480,    46,  1103,   943,
     1809     873,   738,  1485,   588,  1315,  1361,   595,   739,   877,   571,
     1810     703,   405,   272,   522,   820,  1321,   323,   522,  1501,   572,
     1811     522,   892,  1322,  1508,   598,   628,   338,   274,   529,   632,
     1812     275,    46,   335,    46,   323,   326,   719,   719,   933,   830,
     1813     748,   605,   172,   327,   936,   764,   749,  1035,  1274,  1275,
     1814    1464,   765,  1465,   598,  -109,   767,  -109,   405,   598,   172,
     1815    -109,   942,   328,   172,    67,   768,  1114,  1081,   886,   329,
     1816     644,  1042,   561,   562,   887,  -109,  -109,    46,    46,     2,
     1817     202,     4,     5,     6,     7,   330,   319,   319,   765,   995,
     1818     873,    46,   331,   719,   719,    67,  1503,   366,  -282,   323,
     1819     248,   325,   405,   665,   474,     8,     9,    10,    11,    12,
     1820     728,   694,   367,   600,   450,   908,   910,   450,   502,   731,
     1821     104,   765,   765,   450,   371,   172,   920,   208,   695,   898,
     1822    1065,   405,    30,   379,    74,   113,   383,    34,   947,    35,
     1823     603,   455,   861,  -456,   455,  -456,   474,   600,   948,  -456,
     1824     455,   990,   426,  1002,   921,    33,   922,   991,   923,   722,
     1825     490,  1231,   319,  1354,   490,  1160,   901,   579,   405,   765,
     1826      46,  1355,   830,   605,   523,   906,    74,   765,   523,   391,
     1827     319,   523,    46,  1357,   913,   728,   403,  1362,   915,   765,
     1828     820,  1418,   335,   765,   731,   325,   405,  1415,   666,    -3,
     1829      36,   525,   179,   180,    39,   525,   696,   730,   525,   967,
     1830    1437,    40,    41,   967,   967,   420,   765,   645,   822,   529,
     1831    1474,  1367,   421,  1048,  1522,  1140,  1183,   405,  1046,  1063,
     1832     579,  1181,   108,  1308,   136,   137,   602,  1152,   603,   405,
     1833       8,     9,    10,    11,    12,   319,   604,   444,  1155,  1417,
     1834     603,    36,  1294,  1295,    46,    39,   818,   457,  1157,   595,
     1835     603,   511,    40,    41,   719,   830,  1429,    30,    46,   413,
     1836     661,   405,   719,   719,   719,  1393,    46,   605,  1401,    63,
     1837     114,   436,   460,  1219,    66,   405,   463,    42,   859,   172,
     1838      33,  1415,  1416,   595,    46,   464,   929,   144,   929,   868,
     1839     108,   126,  1107,   127,   128,   129,    72,   483,   325,   405,
     1840      63,    67,    60,   486,   645,   506,    53,   719,   286,  1435,
     1841    1457,  1458,   172,   157,  1439,   514,  1319,  1130,  1478,  1429,
     1842     757,   571,  1130,   405,   844,   325,   603,    72,   172,  1394,
     1843    1395,   572,    74,  1226,   526,   217,  1328,  1330,  1331,  1455,
     1844     530,   172,   564,   335,   790,   791,   792,   793,   563,   874,
     1845     874,   874,   565,   695,     2,   202,     4,     5,     6,     7,
     1846     566,   695,   218,   569,   529,   450,   874,   786,   787,   334,
     1847    1130,  -428,   255,  1108,  1492,   788,   789,   794,   795,   605,
     1848     587,  1063,   224,   658,  1195,  1197,  1199,   225,   590,   640,
     1849     659,   226,   455,   660,   230,   490,   232,   662,   667,   208,
     1850    1375,   730,  1048,   241,  1375,   663,   664,  1046,   253,  1086,
     1851    1513,   669,    34,   324,    35,  1092,  1513,   687,   335,   710,
     1852    -229,   255,   345,   712,   750,  1513,   762,   766,   598,  1513,
     1853     770,   823,   883,  1188,   825,   827,   838,   889,   172,   909,
     1854     874,    46,     2,   202,     4,     5,     6,     7,   -12,   348,
     1855     882,   400,   912,   911,   690,  1283,  1284,   739,  1286,   338,
     1856     916,   474,   937,  -405,  1290,    53,   418,  1293,   323,   423,
     1857     425,  -509,   951,    36,   157,  1004,   730,    39,   958,   818,
     1858     960,   965,   971,   972,    40,    41,     8,     9,    10,    11,
     1859      12,    74,   974,   975,   976,   442,   977,  1448,   986,   445,
     1860      34,   446,    35,   997,   998,   999,  1013,  1281,  1014,   828,
     1861     461,   603,  1280,    30,   104,  1015,    63,   861,  1016,   604,
     1862    1017,   475,   443,   215,  1018,  1019,  1030,  -393,   225,   208,
     1863     874,   482,  -392,  1044,  1078,  1080,    33,    46,  1063,   425,
     1864      67,    36,  1095,    72,  1088,    39,  1089,    36,    72,   170,
     1865     171,    39,    40,    41,  1090,  1202,  1091,   728,    40,    41,
     1866      54,    54,  1096,  1107,  1097,  1098,   731,    36,   818,   170,
     1867     171,    39,   450,  1099,  1130,  1130,  1130,    42,    40,    41,
     1868    1105,   104,  1115,   367,  1117,   765,  1116,   144,  1206,  1122,
     1869    1150,    54,   980,    66,  1512,  1126,  1129,  1413,  1171,   455,
     1870    1173,   172,  1172,   206,   216,  1174,   255,  1207,  1175,   596,
     1871    1189,  1190,   490,  1109,   319,   624,  1192,  1193,  1201,    -3,
     1872    1212,    60,  1400,    54,  1205,    53,    54,  1217,   629,  1063,
     1873    -283,  1223,   629,  1227,   495,   255,   728,     8,     9,    10,
     1874      11,    12,   218,   924,  1108,   731,  1232,   393,   394,  1234,
     1875    1239,    74,  1107,   395,  1236,  1243,  1247,   401,  1250,   396,
     1876    1252,  1254,   397,   859,    30,   924,   398,   225,   399,   230,
     1877    1255,  1188,  1318,   104,  1256,  1257,  1258,   665,   436,  1260,
     1878    1267,   475,  1276,  1063,  1277,  1285,  1063,    33,  1288,  1289,
     1879    1291,  1292,  1302,  1491,  1310,  1316,   345,  1299,   435,   474,
     1880    1320,   475,  1325,    53,    46,    46,  1324,  1326,    72,   475,
     1881    1332,  1130,  1130,   343,    36,  1333,   179,   180,    39,  1334,
     1882    1336,  1342,  1343,   348,  1344,    40,    41,  1063,    72,    74,
     1883    1345,  1412,  1063,  1108,  1352,   715,    72,  1353,   425,  1356,
     1884    1048,  1167,  1363,   450,   818,  1046,  1107,  1295,  1366,  1368,
     1885     181,  1371,   402,   729,   994,    63,   225,  1063,  1369,  1378,
     1886     182,  1381,   348,   425,    36,  1388,  1389,   425,    39,   208,
     1887     455,  -394,   666,  1403,  1392,    40,    41,    54,   146,  1407,
     1888     348,  1409,    72,   208,   720,   147,  1414,  1419,   148,    75,
     1889    1364,  1423,  1347,  1424,  1428,   255,   345,   159,  1425,  1493,
     1890     735,    46,  1426,  1442,  1433,  1438,  1440,    54,  1444,  1063,
     1891     736,  1446,   104,   190,  1063,  1450,   213,  1451,  1188,   223,
     1892      75,    46,    46,   348,   158,  1188,  1452,  1108,  1063,  1463,
     1893    1063,  1471,  1037,   104,  1063,  1473,  1476,  1063,  1477,  1484,
     1894    1496,   808,    46,  1063,   368,  1497,   474,  1063,  1500,  1507,
     1895      53,  1509,   104,   474,  1515,   219,   796,    53,   730,   629,
     1896     821,   335,   596,  1521,   798,   797,  1242,  1188,   799,  1301,
     1897    1406,  1479,  1523,   840,  1365,   208,    74,    36,  1495,   179,
     1898     180,    39,   800,    74,  1109,  1379,  1466,   348,    40,    41,
     1899    1238,   596,  1093,   685,   172,   474,   596,   159,   686,    53,
     1900    1094,   930,   629,   714,   815,   345,   345,   345,   888,  1125,
     1901     369,   104,  1043,   689,   953,   405,   481,  1104,  1311,   924,
     1902     733,   690,   345,   691,   805,    74,     8,     9,    10,    11,
     1903      12,   961,   348,   348,   348,   159,     0,  1467,   806,   807,
     1904     715,   104,   350,    36,    67,   170,   171,    39,  1137,   348,
     1905       0,   475,     0,    30,    40,    41,   255,   729,   159,     0,
     1906     926,     0,     0,    77,     0,     0,  1494,   348,     0,     0,
     1907     438,     0,     0,  1109,     0,     0,    33,   210,    72,   371,
     1908       0,     0,     0,     0,   348,  1349,     0,   343,     0,   720,
     1909       0,     0,     0,   475,    77,     0,   345,     0,  1037,     0,
     1910     907,     0,     0,     0,  1520,   952,   323,     0,   425,     0,
     1911       0,     0,     0,     0,     0,     0,  1525,   767,     0,   405,
     1912      72,     0,     0,   348,     0,     0,     0,   768,   210,   220,
     1913       0,   255,   729,     0,     0,   104,    75,   979,     0,     0,
     1914       0,    75,     0,     0,     0,  -284,    54,     8,     9,    10,
     1915      11,    12,     8,     9,    10,    11,    12,     0,   104,   348,
     1916       0,   172,     0,     0,   436,   104,     0,  1109,     0,     0,
     1917       0,   210,   924,   715,    30,     0,     0,   369,    36,    30,
     1918     179,   180,    39,   715,     0,     0,   345,   343,   629,    40,
     1919      41,  1010,   629,   821,   211,     0,     0,    33,   715,  1469,
     1920     348,     0,    33,    67,     0,     0,     0,   104,  1021,     0,
     1921     348,   238,     0,   348,   261,     0,   351,     0,   218,     0,
     1922     348,     0,   720,     0,   262,   348,  1470,     0,  1469,   924,
     1923     924,   210,   720,   996,     0,   219,     0,     0,   947,     0,
     1924     603,     0,     0,  1001,     0,   211,     0,   720,   948,     0,
     1925       0,   343,   319,   369,     0,  1470,     0,     0,  1012,    63,
     1926       0,     0,     0,     0,     0,     0,     0,     0,    36,   210,
     1927     179,   180,    39,   210,     0,     0,     0,     0,     0,    40,
     1928      41,   629,     0,     0,     0,     0,    72,     0,   211,     0,
     1929       0,     0,     0,     0,     0,     0,   343,   343,   343,     0,
     1930       0,    75,     0,     0,   689,     0,   405,     0,     0,     0,
     1931      77,     0,     0,   343,   691,    77,   350,  1101,     0,     0,
     1932      36,    75,   179,   180,    39,   425,   114,     0,     0,    75,
     1933       0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
     1934       0,   208,   345,     0,     0,     0,     0,     0,   211,     0,
     1935       0,     0,     0,     0,     0,   350,  1489,     0,   405,   210,
     1936       0,     0,     0,    67,     0,     0,  1490,     0,     0,   348,
     1937       0,     0,     0,   350,     0,    75,   596,     0,     0,     0,
     1938       0,     0,     0,     0,     0,     0,   211,   343,     0,   423,
     1939     211,     0,    84,     0,   715,   715,     0,   345,   345,   537,
     1940     538,   539,   540,   541,   542,   543,   544,   545,   546,   220,
     1941       0,     0,     0,     0,     0,     0,   350,     0,  1187,     0,
     1942       0,   348,   348,    84,   348,   348,     0,     0,     0,     0,
     1943     924,     0,   547,     0,     0,     0,   436,     0,     0,   210,
     1944       0,    67,     0,   720,   720,    72,     0,   924,     0,     0,
     1945       0,   715,   715,     0,  1165,  1166,     0,   629,   221,     0,
     1946       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1947       0,     0,     0,     0,     0,    77,   211,   343,   348,   348,
     1948     350,     0,   209,     0,   343,     0,     0,     0,     0,   210,
     1949     351,     0,   228,     0,     0,    77,     0,     0,     0,     0,
     1950     720,   720,     0,    77,     0,     0,     0,     0,     0,   924,
     1951     924,  1214,  1215,     0,   729,     0,     0,     0,     0,     0,
     1952       0,     0,     0,     0,     0,   350,   350,   350,     0,   351,
     1953       0,     0,     0,   209,     0,     0,     0,     0,     0,     0,
     1954       0,   348,   350,     0,     0,   358,     0,   351,     0,    77,
     1955      54,     0,     0,     0,     0,     0,   211,  1282,     0,     0,
     1956     350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1957       0,    75,     0,     0,   255,     0,   209,   350,    63,     0,
     1958       0,     0,     0,     0,   218,     0,     0,     0,    67,     0,
     1959     351,   715,     0,   729,     0,    67,     0,   114,     0,     0,
     1960       0,     0,     0,     0,     0,    72,   211,     0,     0,     0,
     1961     210,     0,     0,    75,     0,     0,   350,    54,   348,     0,
     1962     348,     0,   715,     0,     0,     0,     0,     0,     0,     0,
     1963     715,   715,   715,   343,     0,     0,   209,    67,   210,    84,
     1964    1309,   345,   345,   210,    84,     0,     0,     0,     0,   348,
     1965       0,     0,   350,     0,   351,     0,  1187,   348,   348,   348,
     1966       0,     0,     0,     0,     0,     0,     0,     0,   348,   348,
     1967       0,   720,     0,     0,   209,   715,     0,     0,   209,   720,
     1968     720,   720,  1335,    72,     0,     0,   114,     0,   343,   343,
     1969    1337,  1338,  1339,   350,   501,     0,     0,     0,     0,   351,
     1970     351,   351,   348,   350,     0,     0,   350,     0,     0,    54,
     1971       0,   219,     0,   350,     0,     0,   351,     0,   350,     0,
     1972       0,     0,     0,     0,   720,     0,     0,   211,     0,   210,
     1973       0,     0,     0,     0,   351,  1370,     0,     0,   221,     0,
     1974       0,     0,     0,   210,     0,    77,     0,     0,     0,     0,
     1975       0,   351,     0,     0,     0,   211,     0,     0,     0,   345,
     1976     211,     0,     0,     0,   209,     0,     0,     0,     0,     0,
     1977       0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
     1978     114,     0,     0,     0,     0,     0,   348,    77,     0,     0,
     1979     351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1980       0,     0,     0,  1187,    84,     0,     0,     0,     0,     0,
     1981    1187,   121,   124,   125,     0,     0,     0,     0,     0,   358,
     1982       0,     0,     0,     0,    84,     0,   351,     0,     0,     0,
     1983      72,     0,    84,     0,     0,   210,     0,    72,     0,   123,
     1984     123,   123,     0,     0,   209,     0,   211,    54,    54,     0,
     1985       0,     0,  1187,     0,     0,     0,     0,     0,   358,  1510,
     1986     211,   209,   350,     0,     0,     0,     0,   351,     0,    54,
     1987       0,     0,     0,     0,     0,     0,   358,   351,    84,    72,
     1988     351,     0,   250,     0,   251,   220,     0,   351,    54,     0,
     1989       0,     0,   351,     0,   209,     0,     0,     0,     0,     0,
     1990       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1991     123,     0,   123,     0,   350,   350,     0,   350,   350,   358,
     1992     164,     0,   168,     0,     0,   174,   175,   176,     0,   178,
     1993       0,     0,   343,   343,     0,     0,   271,     0,    75,     0,
     1994       0,     0,    54,     0,   229,     0,     0,    54,     0,     0,
     1995       0,     0,   211,    77,     0,     0,   244,   245,     0,     0,
     1996       0,     0,     0,   390,     0,     0,     0,     0,     0,     0,
     1997       0,   350,   350,   409,   410,     0,     0,    54,   414,     0,
     1998     416,   417,     0,   358,     0,     0,     0,     0,     0,     0,
     1999       0,   123,     0,     0,     8,     9,    10,    11,    12,   123,
     2000       0,   123,   123,     0,     0,     0,   123,     0,   123,   123,
     2001       0,     0,     0,     0,     0,   209,     0,     0,     0,     0,
     2002       0,    30,     0,     0,   210,   407,     0,     0,   358,   358,
     2003     358,     0,   415,     0,   350,     0,   351,     0,     0,     0,
     2004       0,     0,     0,   209,    33,   358,     0,     0,   209,    36,
     2005     343,   179,   180,    39,     0,     0,     0,     0,     0,     0,
     2006      40,    41,     0,   358,     0,     0,     0,     0,     0,     0,
     2007       0,    54,     0,     0,    84,     0,     0,   219,   123,     0,
     2008     358,     0,     0,     0,     0,   602,     0,   603,   351,   351,
     2009       0,   351,   351,     0,    54,   604,     0,     0,    75,     0,
     2010       0,    54,     0,     0,   407,     0,     0,     0,     0,     0,
     2011       0,   350,    77,   350,     0,     0,    84,     0,     0,   358,
     2012       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
     2013      11,    12,     0,     0,   209,     0,     0,     0,     0,     0,
     2014       0,   211,   350,    54,     0,   351,   351,     0,   209,     0,
     2015     350,   350,   350,     0,    30,   358,     0,     0,     0,   577,
     2016       0,   350,   350,     0,     0,     0,     0,   581,   501,     0,
     2017     584,     0,     0,     0,     0,     0,    75,    33,     0,     0,
     2018       0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     2019       0,     0,     0,    40,    41,   350,   358,     0,     0,     0,
     2020       0,   210,     0,     0,     0,     0,   358,     0,   351,   358,
     2021     594,   601,     0,     0,   221,     0,   358,     0,   689,     0,
     2022     405,   358,   625,   626,     0,     0,     0,     0,   691,     0,
     2023       0,     0,   407,     0,     0,     0,   415,     0,     0,     0,
     2024     209,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2025       0,   220,     0,     0,     8,     9,    10,    11,    12,    13,
     2026      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2027      24,  -285,    77,    25,    26,    27,     0,     0,     0,   350,
     2028       0,    30,    84,     0,     0,   351,     0,   351,     0,     0,
     2029       0,     0,     0,     0,     0,     0,   210,     0,     0,     0,
     2030       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2031       0,    37,    38,     0,     0,  -285,   351,     0,   211,     0,
     2032       0,   407,     0,    75,   351,   351,   351,     0,     0,     0,
     2033      75,     0,     0,     0,     0,   351,   351,     0,     0,     0,
     2034       0,     0,     0,     0,     0,   636,     0,   334,     0,     0,
     2035      77,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2036       0,   810,   811,     0,     0,   358,     0,     0,     0,   351,
     2037       0,     0,    75,     0,     0,     0,     0,     0,     0,     0,
     2038       8,     9,    10,    11,    12,     0,     0,     0,     0,   123,
     2039     123,   845,     0,     0,   848,   849,     0,   852,     0,   854,
     2040     855,     0,     0,     0,   856,   857,     0,    30,     0,     0,
     2041       0,   577,   577,   211,     0,     0,     0,   358,   358,   123,
     2042     358,   358,   123,   123,     0,   123,     0,   123,   123,   209,
     2043      33,     0,   123,   123,     0,    36,     0,   179,   180,    39,
     2044       0,    84,     0,     0,     0,     0,    40,    41,     0,     0,
     2045       0,     0,     0,   351,     0,     0,     0,     0,     0,  1020,
    19422046       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    1943        0,     0,   209,     0,     0,     0,     0,   349,   347,    75,
    1944        0,     0,     0,     0,   713,   713,     0,     0,   347,    30,
    1945      627,   347,   406,  1297,     0,     0,   218,     0,   347,   342,
    1946        0,     0,     0,   347,     0,     0,     0,     0,     0,     0,
    1947       77,     0,    33,     0,     0,    77,     0,    36,     0,     0,
    1948      349,    39,   718,     0,     0,   389,     0,     0,    40,    41,
    1949      718,   718,   718,     0,     0,   408,   409,   210,     0,     0,
    1950      413,     0,   415,   416,     0,   727,     0,     0,     0,     0,
    1951        0,     0,     0,   733,     0,     0,     0,     0,    54,     0,
    1952        0,     0,     0,   734,    72,    36,     0,   179,   180,    39,
    1953        0,     0,     0,     0,   718,     0,    40,    41,     0,     0,
    1954        0,    84,   575,   575,   349,     0,     0,     0,  1270,     0,
    1955        0,     0,     0,   209,     0,     0,     0,     0,     0,   342,
    1956        0,   600,     0,   601,     0,   255,     0,     0,   220,    63,
    1957        0,   602,    84,     0,     0,     0,     0,     0,     0,     0,
    1958        0,   209,   713,     0,   727,     0,   209,     0,   114,   349,
    1959      349,   349,     0,     0,     0,     0,     0,     0,     0,     0,
    1960        0,     0,     0,     0,   347,     0,   349,   221,     0,     0,
    1961        0,   713,     0,     0,     0,     0,     0,     0,     0,   713,
    1962      713,   713,     0,   342,   349,     0,     0,     0,     0,   896,
    1963      344,   344,     0,   899,    77,    75,     0,     0,     0,     0,
    1964        0,   349,     0,     0,  1178,     0,     0,     0,   350,     0,
    1965        0,     0,     0,    77,     0,     0,   347,   347,     0,   347,
    1966      347,    77,     0,   713,     0,     0,   406,     0,   342,   342,
    1967      342,   210,   209,     0,   114,     0,     0,    75,     0,    72,
    1968      349,     0,     0,     0,     0,   342,   209,   350,     0,     0,
    1969        0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
    1970        0,     0,     0,     0,     0,   350,   499,    77,     0,     0,
    1971        0,     0,   347,   347,     0,   349,     0,     0,     0,     0,
    1972        0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2047       0,  1489,     0,   405,   358,   358,     0,     0,     0,     0,
     2048       0,  1490,     0,     0,     0,     0,   931,   932,   278,    30,
     2049     279,     0,   934,     0,     0,     0,     0,    77,   899,     0,
     2050       0,     0,   902,     0,    77,     0,     0,     0,     0,   123,
     2051       0,   280,    33,     0,   123,   123,     0,   281,     0,     0,
     2052     123,   282,     0,     0,   283,   284,   285,   286,    40,    41,
     2053       0,   287,   288,     0,     0,   407,     0,   358,     0,   289,
     2054       0,     0,     0,     0,     0,     0,    77,     0,     0,     0,
     2055       0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
     2056     162,     0,   292,   816,   294,   295,   296,   297,     0,     0,
     2057       0,     0,     0,     0,     0,     0,     0,     0,     0,   214,
     2058     221,     0,     0,     0,     0,     0,   940,     0,   941,     0,
     2059       0,     0,     0,     0,     0,   944,   945,     0,     0,     0,
     2060     950,    84,     0,     0,     0,     0,   209,     0,     0,     0,
     2061       0,     0,   955,     0,   358,     0,   358,   959,     0,     0,
     2062       0,     0,     0,     0,     0,   162,     0,     0,     0,     0,
     2063     268,     0,     0,     8,     9,    10,    11,    12,     0,     0,
     2064       0,     0,   987,     0,     0,   358,     0,     0,   577,     0,
     2065       0,     0,     0,   358,   358,   358,     0,     0,     0,   162,
     2066      30,     0,     0,     0,   358,   358,     0,     0,     0,   364,
     2067       0,     0,     0,   370,     0,     0,     0,     0,     0,    84,
     2068       0,     0,     0,    33,     0,     0,   594,     0,    36,     0,
     2069     179,   180,    39,     0,     0,     0,     0,     0,   358,    40,
     2070      41,   209,     0,     8,     9,    10,    11,    12,    13,    14,
     2071      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2072       0,   162,     0,     0,   181,     0,     0,     0,     0,     0,
     2073      30,     0,     0,   214,   182,  1161,     0,     0,     8,     9,
     2074      10,    11,    12,  1031,  1032,  1033,  1034,     0,  1036,     0,
     2075       0,   162,   456,    33,     0,     0,     0,     0,     0,     0,
     2076     407,     0,     0,  1079,   278,    30,   279,     0,     8,     9,
     2077      10,    11,    12,     0,     0,   370,     0,  1085,     0,     0,
     2078       0,     0,   358,   162,     0,     0,     0,   280,    33,     0,
     2079       0,     0,     0,   281,     0,    30,     0,   282,     0,     0,
     2080     283,   284,   285,   286,    40,    41,   456,   287,   288,   162,
     2081       0,     0,     0,     0,     0,   289,  1100,     0,    33,     0,
     2082       0,     0,     0,    36,     0,     0,    84,    39,     0,   290,
     2083       0,   374,     0,    84,    40,    41,     0,  1141,   292,  1162,
     2084     294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
     2085       0,     0,     0,  1153,     0,  1127,   599,     0,     0,   735,
     2086       0,   623,  1135,     0,     0,     0,  1139,     0,     0,   736,
     2087    1216,  1143,     0,  1144,     0,    84,     0,  1146,  1147,  1148,
     2088       0,     0,  1151,     0,     0,     0,     0,     0,     0,     0,
     2089       0,  1163,     0,     0,     0,     0,     0,     0,   123,     0,
     2090       0,   207,     0,     8,     9,    10,    11,    12,     0,  1178,
     2091    1179,   227,     0,   231,     0,   233,     0,     0,     0,     0,
     2092       0,     0,   242,     0,     0,     0,     0,     0,     0,  1220,
     2093      30,     0,     0,     0,     0,  1208,   162,   162,  1210,     0,
     2094       0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
     2095       0,     0,   207,    33,   231,   233,   242,     0,    36,     0,
     2096     179,   180,    39,     0,   456,     0,     0,   456,     0,    40,
     2097      41,     0,     0,   456,     0,     0,  1225,     0,     0,     0,
     2098       0,     0,  1229,  1230,     0,     0,     0,     0,     0,     0,
     2099       0,     0,  1300,  1240,   261,   207,     0,     0,  1244,     0,
     2100     732,  1248,     0,  1249,   262,     0,  1251,     0,     0,     0,
     2101       0,     0,   162,     0,     0,     0,     0,     0,     0,  1259,
     2102     123,   153,     0,     0,   456,     0,     0,     0,   456,     0,
     2103     162,   456,  1266,     0,  1268,  1269,  1270,  1271,     0,     0,
     2104       0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
     2105    1278,     0,  1279,     0,     0,   207,   168,   231,   233,   242,
     2106       0,     0,     0,     0,     0,     0,     0,   247,     0,     0,
     2107       0,     0,     0,     0,     0,     0,     0,   252,     0,     0,
     2108       0,     0,     0,     0,  1304,  1305,     0,     0,     0,     0,
     2109       0,     0,     0,   207,     0,   162,     0,   207,     0,     0,
     2110       0,     0,     0,     0,     0,     0,     0,   364,     0,   599,
     2111       0,     0,   826,   499,     8,     9,    10,    11,    12,    13,
     2112      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2113      24,  -285,   153,     0,  1340,  1341,     0,     0,   599,     0,
     2114       0,    30,     0,   599,  1351,   380,     0,     0,     0,     0,
     2115       0,     0,   364,   364,   364,     0,     0,     0,     0,     0,
     2116       0,     0,   207,     0,    33,     0,     0,     0,   412,   364,
     2117       0,     0,     0,     0,     0,  -285,     0,     0,     0,     0,
     2118       0,     0,   427,   207,     0,     0,     0,     0,   231,   233,
     2119       0,   432,     0,  1380,     0,     0,   242,     0,     0,     0,
     2120       0,   440,     0,     0,   732,  1384,     0,  1385,  1386,  1387,
     2121       0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
     2122       0,     0,     0,     0,     0,   456,   466,     0,  1402,     0,
     2123       0,   476,     0,     0,     0,     0,     0,     0,   207,     0,
     2124    1410,     0,     0,   364,   484,   949,     0,     0,     0,     0,
     2125     494,     0,   498,     0,     0,     0,   207,     0,     0,     0,
     2126       0,   207,     0,   207,     0,     0,     0,     0,     0,   527,
     2127       0,     0,     0,     0,     0,     0,     0,     0,     0,   732,
     2128     207,     0,     0,   207,   207,     0,     0,     0,     0,     0,
     2129       0,  1453,  1454,     0,     0,     0,     0,     0,     0,   207,
     2130       0,     0,     0,     0,  1459,     0,     0,     0,     0,     0,
     2131       0,  1459,   586,   207,     0,     0,     0,   591,     0,     0,
     2132     207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2133       0,     0,     0,   364,   278,     0,   279,   623,  1488,     0,
     2134     364,     0,     0,     0,     0,   637,     0,     0,     0,   638,
     2135     639,     0,   641,     0,     0,     0,     0,   280,   651,   652,
     2136       0,   653,   654,   281,   655,  1511,   656,   282,     0,     0,
     2137     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2138       0,     0,     0,   586,     0,   289,     0,     0,     0,     0,
     2139    1524,   671,     0,     0,     0,  1526,     0,     0,     0,   290,
     2140       0,   374,     0,     0,     0,     0,     0,     0,   292,   376,
     2141     294,   295,   296,   297,     0,     0,   682,     0,     0,     0,
     2142       0,     0,  1203,     0,     0,     0,     0,   688,     0,     0,
     2143       0,     0,   456,     0,   207,     0,     0,     0,     0,     0,
     2144     278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
     2145     724,     0,     0,     0,     0,     0,   727,     0,     0,     0,
     2146       0,   466,   207,   280,     0,     0,     0,   207,     0,   642,
     2147       0,   136,   137,   282,   162,     0,   283,   284,   285,   286,
     2148      40,    41,     0,   287,   288,     0,     0,     0,     0,   364,
     2149       0,   289,     0,     0,     0,     0,     0,   763,     0,     0,
     2150       0,     0,     0,     0,     0,   290,     0,   643,     0,   644,
     2151     375,     0,     0,   778,   292,   376,   294,   295,   296,   297,
     2152       0,     0,     0,   599,     0,     0,     0,     8,     9,    10,
     2153      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2154      21,    22,    23,    24,   364,   364,    25,    26,    27,   804,
     2155       0,     0,     0,   207,    30,     0,     0,     0,   814,     0,
     2156       0,     0,     0,     0,     0,   817,     0,   207,     0,     0,
     2157     824,     0,     0,   278,     0,   279,     0,    33,     0,     0,
     2158       0,   839,    36,     0,    37,    38,    39,   499,     0,     0,
     2159       0,     0,     0,    40,    41,     0,   280,     0,     0,     0,
     2160       0,     0,   281,   456,     0,     0,   282,     0,     0,   283,
     2161     284,   285,   286,    40,    41,     0,   287,   288,    42,     0,
     2162     154,   879,     0,     0,   289,     0,     0,     0,    44,     0,
     2163       0,     0,     0,   317,     0,     0,     0,     0,   290,     0,
     2164     374,     0,     0,   341,     0,   771,   207,   292,   376,   294,
     2165     295,   296,   297,     0,     0,   377,   824,     0,     0,   207,
     2166       0,   732,     0,     0,     0,     0,     0,     0,     0,     0,
     2167       0,     0,     0,     0,     0,     0,     0,     0,   207,     2,
     2168     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    19732169      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    1974       23,    24,     0,   344,    25,    26,    27,     0,   350,     0,
    1975        0,     0,    30,   446,     0,     0,   349,     0,     0,   342,
    1976        0,     0,     0,   210,   114,     0,   349,     0,     0,   349,
    1977        0,     0,     0,   347,   219,    33,   349,   209,   575,     0,
    1978        0,   349,    37,    38,     0,  1178,     0,     0,    84,     0,
    1979        0,     0,  1178,    84,     0,     0,     0,     0,     0,     0,
    1980        0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    1981       12,     0,   350,     0,     0,     0,   218,     0,   447,     0,
    1982        0,     0,   700,     0,     0,     0,   109,     0,     0,     0,
    1983        0,  1178,    36,    30,   179,   180,    39,    72,  1488,     0,
    1984        0,     0,    75,    40,    41,     0,     0,     0,   342,     0,
    1985      347,     0,   347,     0,     0,   342,    33,   350,   350,   350,
    1986        0,    36,     0,   179,   180,    39,     0,     0,   687,     0,
    1987      404,     0,    40,    41,   350,     0,     0,     0,   689,   347,
    1988        0,   807,   808,     0,     0,     0,   221,   347,   347,   347,
    1989      406,     0,   350,     0,     0,     0,     0,   181,   347,   347,
    1990        0,     0,     0,    77,     0,     0,     0,   182,     0,   350,
    1991        0,   842,    72,     0,   845,   846,     0,   849,     0,   851,
    1992      852,    54,   349,     0,   853,   854,     0,     0,     0,     0,
    1993        0,   347,     0,     0,     0,     0,     0,     0,     0,     0,
    1994        0,     0,     0,     0,     0,    77,     0,     0,   350,     0,
    1995        0,     0,    84,     0,     0,     0,    36,     0,   179,   180,
    1996       39,     0,     0,   209,  1132,     0,   357,    40,    41,     0,
    1997        0,    84,     0,     0,   349,   349,     0,   349,   349,    84,
    1998     1144,     0,     0,   350,   164,     0,   168,    54,     0,   174,
    1999      175,   176,  1468,   178,   404,     0,     0,    75,     0,     0,
    2000        0,   342,  1469,     0,     0,   357,   927,   928,   229,     0,
    2001        0,   347,   930,     8,     9,    10,    11,    12,     0,     0,
    2002      244,   245,     0,   357,   350,    84,     0,     0,     0,     0,
    2003      349,   349,     0,     0,   350,     0,     0,   350,     0,     0,
    2004       30,     0,   220,     0,   350,     0,     0,     0,     0,   350,
    2005        0,     0,     0,    72,     0,  1211,   342,   342,     0,     0,
    2006       72,     0,     0,    33,     0,     0,   357,     0,    36,     0,
    2007      179,   180,    39,     0,     0,     0,    54,     0,     0,    40,
    2008       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2009        0,   349,     0,     0,     0,     0,     0,     0,     0,    72,
    2010        0,     0,     0,     0,   687,     0,   404,     0,     0,     0,
    2011       77,     0,     0,     0,   689,     0,     0,     0,     0,     0,
    2012        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2013      357,     0,     0,     0,   219,     0,     0,   209,     8,     9,
    2014       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2015       20,    21,    22,    23,    24,    75,     0,    25,    26,    27,
    2016        0,     0,     0,     0,     0,    30,   446,     0,   349,     0,
    2017      349,     0,     0,     0,     0,   357,   357,   357,     0,     0,
    2018        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2019      350,     0,   357,     0,     0,    37,    38,   349,     0,     0,
    2020        0,     0,     0,     0,     0,   349,   349,   349,     0,     0,
    2021      357,     0,    54,    54,     0,     0,   349,   349,     0,     0,
    2022        0,    84,     0,     0,     0,     0,     0,   357,     0,   209,
    2023       75,   447,     0,     0,    54,   931,     0,     0,     0,   109,
    2024        0,     0,   350,   350,     0,   350,   350,     0,     0,   349,
    2025        0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
    2026        0,     0,     0,    84,     0,    77,   357,     0,     0,     0,
    2027        0,     0,     0,   592,   599,     0,     0,     0,     0,     0,
    2028        0,     0,     0,     0,     0,   623,   624,     0,     0,     0,
    2029        0,     0,     0,     0,     0,   342,   342,     0,   350,   350,
    2030        0,   357,     0,     0,    54,     0,     0,     0,     0,    54,
    2031        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2032       17,    18,    19,    20,    21,    22,    23,    24,  -278,   349,
    2033       25,    26,    27,     0,     0,     0,     0,     0,    30,    54,
    2034        0,     0,   357,     0,     0,     0,     0,     0,     0,     0,
    2035        0,     0,   357,     0,     0,   357,     0,     0,     0,   350,
    2036      221,    33,   357,     0,     0,     0,     0,   357,    37,    38,
    2037        0,    75,  -278,     0,     0,     0,     0,     0,    75,     0,
    2038        0,     0,     0,     0,     0,  1207,     0,     8,     9,    10,
    2039       11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
    2040        0,     0,   220,     0,   333,     0,     0,     0,   342,     0,
    2041        0,     0,   109,     0,    30,     0,     0,    75,     0,     0,
    2042        0,     0,     0,    77,     0,     0,     0,     0,    84,    54,
    2043        0,     0,     0,     0,     0,     0,   350,    33,   350,     0,
    2044        0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
    2045       54,     0,     0,    40,    41,     0,     0,    54,     0,     0,
    2046        0,     0,     0,     0,     0,   350,     0,     0,     0,     0,
    2047        0,     0,     0,   350,   350,   350,     0,     0,  1468,     0,
    2048      404,     0,     0,     0,   350,   350,     0,     0,  1469,     0,
    2049        0,     0,     0,     0,     0,     0,    54,     0,    77,     0,
    2050        0,     0,     0,     0,     0,  1288,     0,     0,   357,     0,
    2051        0,     0,     0,     0,     0,     0,     0,   350,     0,  1014,
    2052        0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2053        0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
    2054        0,     0,     0,     0,     0,     0,     0,     0,   277,    30,
    2055      278,     0,     0,     0,     0,   214,     0,     0,     0,     0,
    2056      357,   357,     0,   357,   357,     0,     0,     0,     0,     0,
    2057        0,   279,    33,     0,     0,     0,     0,   280,     0,     0,
    2058        0,   281,     0,    84,   282,   283,   284,   285,    40,    41,
    2059        0,   286,   287,     0,     0,     0,     0,   350,     0,   288,
    2060        0,   162,     0,     0,     0,     0,   268,     0,     0,     0,
    2061        0,     0,     0,   289,     0,   373,   357,   357,     0,     0,
    2062        0,     0,   291,   813,   293,   294,   295,   296,     0,     0,
    2063        0,     0,     0,     0,     0,   162,     0,     0,     0,    77,
    2064        0,     0,     0,     0,     0,   363,    77,     0,   936,   369,
    2065      937,     0,     0,     0,     0,     0,     0,   940,   941,     0,
    2066        0,     0,   946,     0,  1152,     0,     0,     8,     9,    10,
    2067       11,    12,     0,     0,   951,     0,     0,   357,     0,   955,
    2068        0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
    2069        0,     0,     0,   277,    30,   278,     0,   162,     0,     0,
    2070        0,     0,     0,   981,     0,     0,     0,     0,     0,   214,
    2071        0,     0,     0,     0,     0,     0,   279,    33,     0,     0,
    2072      221,     0,   280,     0,     0,     0,   281,   162,   454,   282,
    2073      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2074        0,    84,     0,     0,   288,     0,     0,   592,     0,     0,
    2075        0,   369,     0,     0,   357,     0,   357,     0,   289,   162,
    2076      373,     0,     0,     0,     0,     0,     0,   291,  1153,   293,
    2077      294,   295,   296,     0,     0,     0,     0,     0,     0,     0,
    2078        0,   454,     0,   357,   162,     0,     0,     0,     0,     0,
    2079        0,   357,   357,   357,     0,     0,     0,     0,     0,     0,
    2080        0,     0,   357,   357,  1025,  1026,  1027,  1028,     0,  1030,
    2081        0,     0,     0,     0,     0,     0,    84,     0,     0,     0,
    2082        0,     0,     0,     0,  1072,     0,     0,     0,     0,     0,
    2083        0,   597,     0,     0,     0,   357,   621,     0,  1078,     0,
    2084        0,     0,     0,     1,     2,   202,     4,     5,     6,     7,
    2085        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2086       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2087       26,    27,    28,     0,     0,    29,  1093,    30,     0,     0,
    2088        0,     0,   123,   123,   123,     0,     0,     0,     0,     0,
    2089        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2090       33,     0,    34,     0,    35,     0,     0,    37,    38,     0,
    2091        0,   162,   162,  1118,     0,   357,     0,   363,     0,     0,
    2092     1126,     0,     0,     0,  1130,     0,     0,     0,     0,  1134,
    2093        0,  1135,     0,     0,     0,  1137,  1138,  1139,   454,     0,
    2094     1142,   454,     0,    43,     0,     0,     0,   454,     0,  1154,
    2095        0,   109,     0,   123,     0,   123,     0,    84,     0,     0,
    2096        0,     0,     0,     0,    84,     0,     0,  1169,  1170,     8,
    2097        9,    10,    11,    12,   730,     0,     0,     0,     0,   271,
    2098        0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
    2099        0,     0,  1199,     0,     0,  1201,    30,     0,     0,   454,
    2100        0,     0,   454,    84,   162,   454,     0,     0,     0,     0,
    2101        0,     0,     0,     0,     0,     0,     0,   363,     0,    33,
    2102        0,     0,     0,     0,    36,     0,   179,   180,    39,     0,
    2103        0,     0,     0,  1216,   123,    40,    41,     0,     0,  1220,
    2104     1221,     0,   123,     0,   123,   123,     0,     0,  1229,   123,
    2105        0,   123,   123,  1233,     0,     0,  1237,     0,  1238,     0,
    2106      261,  1240,     0,     0,     0,     0,     0,     0,     0,   162,
    2107      262,     0,     0,     0,  1248,     0,     0,     0,     0,     0,
    2108        0,   363,     0,   597,     0,     0,   823,  1255,     0,  1257,
    2109     1258,  1259,  1260,     0,     0,     0,     0,     0,     0,     0,
    2110        0,     0,     0,     0,     0,  1267,     0,  1268,     0,     0,
    2111        0,   168,   597,     0,     0,     0,     0,   597,     0,     0,
    2112        0,   123,     0,     0,     0,     0,   363,   363,   363,     0,
    2113        0,     0,     0,     0,     0,     0,     0,     0,     0,  1292,
    2114     1293,     0,     0,   363,     0,     0,     0,   207,     0,     0,
    2115        0,     0,     0,     0,     0,     0,     0,   227,     0,   231,
    2116        0,   233,     0,     0,     0,     0,     0,     0,   242,     0,
    2117        0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
    2118        0,     0,     0,     0,     0,     0,     0,  1326,  1327,     0,
    2119        0,     0,     0,     0,     0,     0,     0,  1337,   207,   454,
    2120      231,   233,   242,     0,     0,     0,     0,     0,     0,     0,
    2121        0,     0,     0,     0,     0,     0,     0,   363,     0,   945,
    2122        0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    2123        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2124        0,   207,     0,  1364,     0,     0,     0,     0,     0,     0,
    2125        0,     0,   730,     0,     0,  1368,     0,  1369,  1370,  1371,
    2126        0,     0,     0,     0,     0,     0,     0,     0,     0,  1375,
    2127        0,     0,     0,     0,     0,   153,     0,     0,  1386,     0,
    2128        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2129     1394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2130        0,   207,     0,   231,   233,   242,   363,     0,     0,     0,
    2131      621,     0,     0,   363,     0,     0,     0,     0,     0,     0,
    2132        0,   247,     0,     0,     0,     0,     0,     0,     0,     0,
    2133        0,   252,     0,     0,     0,     0,     0,  1433,  1434,   207,
    2134        0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
    2135     1439,     0,     0,     0,     0,     0,     0,  1439,     0,   497,
    2136        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2137       18,    19,    20,    21,    22,    23,    24,  -278,     0,    25,
    2138       26,    27,  1467,     0,     0,     0,   153,    30,     0,     0,
    2139        0,     0,     0,     0,     0,     0,     0,     0,     0,   379,
    2140        0,     0,     0,     0,     0,   454,     0,   207,  1489,     0,
    2141       33,     0,     0,     0,     0,    36,     0,   331,   332,    39,
    2142        0,  -278,   411,     0,     0,     0,    40,    41,   207,     0,
    2143      123,   123,  1502,   231,   233,     0,   425,  1504,     0,     0,
    2144        0,   242,     0,     0,     0,   430,   162,     0,     0,     0,
    2145        0,   634,     0,   333,     0,   438,     0,     0,     0,   363,
    2146      123,   625,     0,   123,   123,     0,   123,     0,   123,   123,
    2147        0,     0,     0,   123,   123,     0,     0,     0,     0,     0,
    2148      464,     0,     0,   207,     0,   474,     0,     0,     0,     0,
    2149        0,     0,     0,   597,     0,     0,     0,     0,   482,     0,
    2150        0,   207,     0,     0,   492,     0,   496,   207,     0,     0,
    2151        0,     0,     0,     0,   363,   363,     0,     0,     0,     0,
    2152        0,     0,   525,     0,   207,     0,     0,   207,   207,     0,
    2153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2154        0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
    2155      123,     0,     0,     0,     0,   123,   123,   207,     0,     0,
    2156        0,   123,     0,     0,   207,   584,     0,     0,     0,     0,
    2157      589,     0,   454,   201,     2,   202,     4,     5,     6,     7,
    2158        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2159       18,    19,    20,    21,    22,    23,    24,     0,   635,    25,
    2160       26,    27,   636,   637,     0,   639,     0,    30,     0,     0,
    2161        0,   649,   650,     0,   651,   652,     0,   653,     0,   654,
    2162        0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
    2163       33,     0,    34,     0,    35,    36,   584,   203,    38,    39,
    2164        0,     0,     0,     0,   669,     0,    40,    41,     0,     0,
    2165        0,     0,     0,   277,     0,   278,     0,     0,     0,     0,
    2166        0,     0,     0,     0,     0,     0,     0,     0,   680,     0,
    2167      214,    42,     0,   204,     0,     0,   279,     0,   207,   686,
    2168        0,   205,   280,     0,     0,     0,   281,     0,     0,   282,
    2169      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2170        0,     0,   722,     0,   288,     0,   207,   730,   725,     0,
    2171        0,   207,     0,   464,     0,     0,     0,     0,   289,     0,
    2172      373,     0,     0,     0,     0,     0,     0,   291,   375,   293,
    2173      294,   295,   296,     0,     0,     0,     0,     0,   336,   358,
    2174        0,  1194,     0,     0,     0,     0,     0,     0,     0,   760,
    2175        0,     0,     0,   363,   363,     0,     0,     0,     0,     0,
    2176        0,     0,   214,     0,     0,   775,     0,     0,     0,     0,
    2177        0,   407,     0,     0,     0,     0,     0,     0,   407,     8,
     2170      23,    24,     0,   214,    25,    26,    27,     0,     0,     0,
     2171       0,   247,    30,     0,     0,     0,     0,     0,     0,     0,
     2172       0,   956,   957,   337,   359,   317,     0,     0,     0,     0,
     2173       0,     0,     0,     0,   973,    33,     0,    34,     0,    35,
     2174     732,     0,    37,    38,     0,     0,     0,     0,     0,     0,
     2175     480,   988,     0,   989,     0,     0,   408,   993,     0,     0,
     2176       0,     0,     0,   408,   207,     0,     0,     0,     0,     0,
     2177       0,     0,     0,     0,     0,     0,     0,  -390,   678,     0,
     2178       0,     0,     0,     0,     0,     0,   627,     0,   364,   364,
     2179     207,     0,     0,     0,     0,     0,     0,     0,   214,     8,
    21782180       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    21792181      19,    20,    21,    22,    23,    24,     0,   207,    25,    26,
    2180       27,   801,     0,     0,     0,   277,    30,   278,     0,     0,
    2181      811,   207,     0,     0,     0,     0,     0,   814,     0,     0,
    2182        0,     0,   821,     0,     0,     0,     0,     0,   279,    33,
    2183        0,   497,     0,   836,   280,     0,    37,    38,   281,     0,
    2184        0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
    2185      407,     0,     0,     0,     0,     0,   288,     0,     0,     0,
    2186        0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
    2187      289,     0,   517,   876,     0,   167,     0,     0,     0,   291,
    2188      292,   293,   294,   295,   296,     0,     0,     0,     0,   207,
     2182      27,     0,  1025,     0,     0,     0,    30,   448,     0,  1026,
     2183       0,     0,     0,     0,     0,   408,     0,     0,     0,     0,
     2184       0,     0,  1028,     0,  1029,     0,     0,     0,   207,    33,
     2185       0,     0,     0,     0,     0,     0,    37,    38,  1041,   207,
     2186       0,     0,     0,     0,  1045,   377,     0,     0,     0,     0,
     2187       0,     0,     0,     0,     0,     0,  1082,     0,     0,  1083,
    21892188       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2190        0,     0,   207,     0,   407,     0,     0,     0,   821,     0,
    2191        0,     0,   407,   580,     0,   407,   583,   454,     0,     0,
    2192        0,   207,     0,     0,     0,   358,     0,     0,     0,   613,
    2193        0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
    2194        0,     0,     0,     0,   454,     0,     0,     0,   631,     0,
    2195        0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
    2196        0,     0,     0,   247,     0,     0,     0,   162,     0,     0,
    2197        0,     0,     0,   952,   953,     0,     0,   407,     0,     0,
    2198        0,   407,     0,     0,     0,   967,     0,     0,     0,     0,
     2189     408,     0,   449,     0,     0,     0,   702,   591,   408,   582,
     2190     109,   408,   585,     0,     0,     0,   364,     0,     0,     0,
     2191       0,   359,     0,     0,     0,   615,     0,   278,     0,   279,
    21992192       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2200        0,     0,   982,     0,   983,     0,   207,     0,   987,     0,
    2201        0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
    2202        0,     0,     0,     0,     0,     0,     0,     0,   316,     0,
    2203        0,     0,   207,     0,   407,     0,     0,     0,   340,     0,
     2193       0,     0,     0,     0,   633,     0,     0,   337,     0,   207,
     2194     280,     0,     0,     0,     0,     0,   281,     0,     0,     0,
     2195     282,     0,     0,   283,   284,   285,   286,    40,    41,   456,
     2196     287,   288,     0,   408,     0,     0,   726,   408,   289,     0,
    22042197       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2205      376,     0,     0,     0,   123,     0,     0,   207,     0,     0,
    2206        0,     0,     0,     0,     0,   407,     0,     0,   358,     0,
    2207        0,     0,     0,  1019,     0,     0,     0,     0,     0,     0,
    2208     1020,     0,     0,     0,     0,   277,     0,   278,   207,     0,
    2209        0,     0,     0,  1022,     0,  1023,     0,     0,     0,   207,
    2210        0,     0,     0,     0,     0,     0,     0,   407,   279,  1035,
    2211      336,   358,     0,     0,   280,  1039,     0,     0,   281,     0,
    2212      316,   282,   283,   284,   285,    40,    41,  1075,   286,   287,
    2213     1076,     0,     0,     0,     0,     0,   288,     0,     0,     0,
    2214        0,     0,     0,     0,     0,   478,     0,     0,   589,     0,
    2215      289,     0,   373,     0,     0,   407,   407,     0,   798,   291,
    2216      375,   293,   294,   295,   296,     0,     0,     0,     0,     0,
    2217        0,     0,     0,     0,   816,   358,     0,   358,   207,     0,
    2218        0,     0,     0,     0,     0,     0,   613,     0,   613,   613,
    2219        0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
    2220        0,     0,     0,     0,     0,   855,   358,     0,     0,     0,
    2221        0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
    2222      358,   358,   358,     0,     0,     0,     0,     0,     0,     0,
    2223        0,     0,  1136,     0,     0,     0,     0,   358,     0,     0,
    2224        0,     0,   407,   897,     0,     0,   407,   900,     0,     0,
    2225        0,     0,     0,   902,     0,     0,     0,     0,     0,   376,
    2226        0,     0,   207,   277,     0,   278,     0,     0,     0,     0,
    2227        0,   336,   358,   407,     0,   407,     0,     0,     0,   407,
    2228        0,     0,     0,     0,     0,     0,   279,   525,     0,     0,
    2229        0,     0,   640,  1200,   136,   137,   281,     0,     0,   282,
    2230      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2231        0,   358,   613,     0,   288,     0,     0,     0,     0,     0,
    2232        0,     0,  1213,     0,     0,     0,     0,  1215,   289,     0,
    2233      641,     0,   642,   374,     0,  1219,     0,   291,   375,   293,
    2234      294,   295,   296,     0,     0,   336,   358,     0,     0,     0,
    2235      407,   407,     0,     0,   207,   504,   508,   504,   511,   724,
    2236        0,     0,     0,  1242,     0,   514,   515,     0,     0,     0,
    2237      504,   504,     0,     0,     0,  1250,     0,     0,  1251,     0,
    2238     1252,     0,   504,     0,     0,     0,     0,     0,     0,     0,
    2239        0,   407,     0,     0,  1261,  1262,     0,   756,     0,     0,
    2240      358,     0,     0,     0,     0,     0,   816,   358,     0,     0,
    2241      769,   613,     0,   613,     0,     0,  1275,   756,   504,     0,
    2242        0,     0,     0,   613,     0,     0,     0,     0,     0,     0,
    2243      778,   779,     0,     0,     0,     0,     0,     0,     0,     0,
    2244        0,     0,  1294,     0,     0,     0,     0,     0,     0,     0,
    2245        0,     0,   800,     0,   504,     0,     0,     0,     0,     0,
    2246        0,     0,   809,     0,     0,     0,     0,     0,     0,   340,
    2247        0,     0,     0,     0,   769,     0,     0,     0,     8,     9,
     2198       0,     0,   508,     0,  1145,     0,     0,     0,   456,     0,
     2199       0,   292,   376,   294,   295,   296,   297,     0,   359,     0,
     2200       0,     0,     0,     0,   759,     0,     0,     0,     0,     0,
     2201       0,     0,   162,     0,     0,     0,     0,   772,     0,     0,
     2202       0,   408,     0,     0,   759,   207,     0,   278,     0,   279,
     2203       0,     0,     0,     0,     0,     0,     0,   781,   782,     0,
     2204     527,     0,     0,     0,     0,     0,  1209,     0,     0,     0,
     2205     280,     0,   408,     0,     0,   359,   281,     0,     0,   803,
     2206     282,     0,     0,   283,   284,   285,   286,    40,    41,   812,
     2207     287,   288,     0,     0,     0,  1222,   341,     0,   289,     0,
     2208    1224,   772,     0,     0,     0,     0,     0,     0,  1228,     0,
     2209       0,     0,   290,     0,   408,     0,     0,   337,   359,     0,
     2210       0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
     2211       0,     0,     0,     0,     0,     0,     0,     0,  1253,     0,
     2212     207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2213    1261,   878,     0,  1262,     0,  1263,     0,     0,   377,     0,
     2214       0,     0,   408,   408,     0,     0,     0,     0,     0,  1272,
     2215    1273,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2216       0,   819,   359,     0,   359,     0,     0,     0,     0,     0,
     2217       0,  1287,     0,   615,     0,   615,   615,     0,   341,     0,
     2218       0,     0,   615,     0,     0,     0,     0,     0,     0,     0,
     2219       0,     0,   858,   359,     0,     0,     0,  1306,   359,     0,
     2220       0,     0,     0,     0,     0,     0,     0,   359,   359,   359,
     2221       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,     0,     0,   359,     0,     0,     0,     0,   408,
     2223     900,     0,     0,   408,   903,     0,     0,     0,     0,     0,
     2224     905,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2225       0,     0,     0,   772,     0,   978,     0,     0,   337,   359,
     2226     408,   983,   408,     0,     0,     0,   408,     0,   992,     0,
     2227       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2228     278,     0,   279,     0,     0,     0,     0,     0,     0,     0,
     2229    1372,     0,  1373,     0,     0,     0,     0,     0,   359,   615,
     2230       0,     0,     0,   280,     0,  1382,     0,  1383,     0,   281,
     2231       0,  1008,  1009,   282,   341,     0,   283,   284,   285,   286,
     2232      40,    41,     0,   287,   288,  1390,     0,     0,     0,   341,
     2233       0,   289,     0,   337,   359,     0,     0,     0,   408,   408,
     2234       0,  1408,     0,     0,     0,   290,     0,   374,   207,  1411,
     2235     375,     0,  1228,     0,   292,   376,   294,   295,   296,   297,
     2236       0,     0,     0,     0,     0,     0,     0,     0,     0,  1039,
     2237       0,     0,     0,   377,  1434,     0,     0,     0,     0,   408,
     2238       0,     0,     0,  1441,     0,     0,  1443,  1445,   359,     0,
     2239       0,     0,     0,     0,   819,   359,     0,     0,     0,   615,
     2240       0,   615,     0,   509,   510,   513,     0,     0,     0,     0,
     2241       0,   615,   516,   517,     0,     0,     0,   510,   510,     0,
     2242       0,     0,     0,  1472,     0,  1228,     0,     0,     0,   510,
     2243       0,     0,     0,     0,     0,     0,     0,     0,     0,  1483,
     2244       0,     0,     0,     0,     0,     0,     0,     0,   317,     0,
     2245       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2246       0,     0,     0,  1123,  1124,   510,     0,     0,     0,     0,
     2247     377,     0,     0,     0,     0,     0,   983,     0,     0,  1133,
     2248       0,   759,     0,   819,     0,     0,     0,   278,     0,   279,
     2249       0,   408,     0,     0,     0,     0,     0,   408,     0,     0,
     2250    1149,   510,     0,     0,     0,   408,     0,     0,     0,     0,
     2251     280,  1164,     0,     0,     0,     0,   281,     0,   615,   615,
     2252     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2253     287,   288,     0,   377,     0,  1182,     0,     0,   289,     0,
     2254       0,     0,     0,     0,   359,     0,     0,     0,     0,     0,
     2255     408,  1204,   290,     0,   374,     0,     0,     0,     0,     0,
     2256     801,   292,   376,   294,   295,   296,   297,     0,   408,  1142,
     2257    1213,     0,     0,     0,     0,     0,     0,     0,   359,     0,
     2258       0,     0,     0,     0,   408,  1154,     0,   615,   615,  1159,
     2259     278,     0,   279,     0,     0,     0,     0,     0,     0,   359,
     2260     359,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2261       0,     0,     0,   280,     0,     0,   983,     0,     0,   281,
     2262       0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
     2263      40,    41,     0,   287,   288,   878,     0,     0,     0,     0,
     2264       0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
     2265    1264,  1265,     0,     0,     0,   290,     0,   374,     0,   819,
     2266     408,  1221,     0,     0,   292,   376,   294,   295,   296,   297,
     2267       0,     0,   615,     0,     0,   510,   510,   510,   510,   510,
     2268     510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
     2269     510,   510,   510,     0,     0,     0,     0,     0,     0,     0,
     2270       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2271       0,     0,     0,     0,     0,     0,   359,     0,   510,     0,
     2272       0,     0,     0,     0,     0,     0,     0,     0,     0,   983,
     2273       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     2,   202,
     2275       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2276      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2277      24,     0,     0,    25,    26,    27,   337,     0,     0,     0,
     2278     278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
     2279       0,     0,     0,     0,     0,   359,     0,     0,     0,     0,
     2280       0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
     2281       0,    37,    38,   282,     0,   510,   283,   284,   285,   286,
     2282      40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
     2283       0,   289,     0,     0,     0,     0,     0,   510,     0,     0,
     2284       0,     0,     0,   359,   359,   290,     0,   339,     0,     0,
     2285     510,     0,   771,     0,   292,   340,   294,   295,   296,   297,
     2286       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2287       0,  1420,     0,     0,     0,     0,     0,     0,     0,     0,
     2288       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,     0,     0,   510,     0,     0,     0,     0,
     2290       0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
    22482291      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2249       20,    21,    22,    23,    24,   816,     0,    25,    26,    27,
    2250        0,     0,     0,   407,     0,    30,     0,     0,   407,     0,
    2251        0,     0,     0,     0,     0,     0,   407,     0,     0,     0,
    2252        0,     0,     0,     0,   875,     0,     0,     0,    33,   613,
    2253      613,   376,  1358,     0,  1359,   203,    38,     0,     0,     0,
    2254        0,     0,     0,     0,     0,  1366,     0,  1367,     0,     0,
    2255        0,     0,     0,   358,     0,     0,     0,     0,     0,   407,
    2256        0,     0,     0,     0,     0,  1374,     0,     0,     0,     0,
    2257        0,   340,   207,     0,     0,     0,     0,   407,  1133,   267,
    2258        0,  1392,     0,     0,     0,     0,     0,   358,     0,  1395,
    2259        0,     0,  1219,   407,  1145,     0,   613,   613,  1150,     0,
    2260        0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
    2261        0,     0,  1416,     0,     0,     0,     0,     0,     0,     0,
    2262        0,  1423,     0,     0,  1425,  1427,     0,   504,   504,   504,
    2263      504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
    2264      504,   504,   504,   504,   504,   769,     0,   972,     0,     0,
    2265        0,     0,     0,   977,     0,     0,     0,     0,     0,  1452,
    2266      986,  1219,     0,     0,     0,     0,     0,   816,   407,  1212,
    2267      504,     0,     0,  1462,     0,     0,     0,     0,     0,     0,
    2268      613,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2270        0,     0,     0,  1002,  1003,     0,   340,     0,     0,     0,
    2271        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2272        0,   340,   358,     2,   202,     4,     5,     6,     7,     8,
    2273        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2274       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2275       27,     0,     0,     0,     0,   277,    30,   278,     0,     0,
    2276        0,  1033,     0,     0,     0,   376,     0,   504,     0,     0,
    2277        0,     0,     0,     0,     0,     0,     0,     0,   279,    33,
    2278        0,    34,   336,    35,   280,     0,    37,    38,   281,   504,
    2279        0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
    2280        0,   358,   504,     0,     0,     0,   288,     0,     0,     0,
    2281        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2282      289,     0,   338,     0,     0,     0,     0,   768,     0,   291,
    2283      339,   293,   294,   295,   296,     0,     0,     0,     0,   316,
    2284        0,     0,     0,     0,     0,     0,   504,   358,   358,     0,
    2285        0,     0,  1114,  1115,     0,     0,     0,     0,   277,   376,
    2286      278,     0,     0,     0,     0,   977,     0,     0,  1124,     0,
    2287      756,     0,     0,     0,     0,     0,     0,   504,     0,     0,
    2288        0,   279,     0,     0,     0,     0,     0,   280,     0,  1140,
    2289        0,   281,   504,     0,   282,   283,   284,   285,    40,    41,
    2290     1155,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    2291        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2292        0,     0,   376,   289,  1173,   373,     0,     0,   374,     0,
    2293        0,     0,   291,   375,   293,   294,   295,   296,     0,  1195,
    2294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295        0,     0,     0,     0,     0,     0,     0,     0,  1204,     0,
    2296      358,     0,  -497,     0,     0,     1,     2,     3,     4,     5,
     2292      20,    21,    22,    23,    24,     0,   510,    25,    26,    27,
     2293      28,     0,     0,    29,   278,    30,   279,     0,     0,     0,
     2294       0,   510,  1475,     0,     0,     0,     0,     0,     0,     0,
     2295       0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
     2296      34,   359,    35,   281,     0,    37,    38,   282,     0,     0,
     2297     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2298       0,     0,     0,     0,     0,   289,   317,     0,     0,     0,
     2299       0,     0,   278,     0,   279,     0,     0,     0,     0,   290,
     2300       0,  1062,     0,     0,     0,     0,     0,     0,   292,   293,
     2301     294,   295,   296,   297,     0,   280,     0,     0,     0,     0,
     2302       0,   281,  -126,     0,     0,   282,     0,     0,   283,   284,
     2303     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2304     408,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2305       0,     0,     0,     0,     0,     0,     0,   290,     0,   374,
     2306     408,   408,   980,     0,     0,     0,   292,   376,   294,   295,
     2307     296,   297,     0,     0,     0,     0,     0,     0,     0,     0,
     2308       0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
     2309       0,   510,     0,     0,     0,     1,     2,   202,     4,     5,
    22972310       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    22982311      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2299        0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
    2300       31,     0,   977,     0,     0,     0,     0,     0,     0,     0,
    2301        0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
    2302        0,   875,    33,     0,    34,     0,    35,    36,     0,    37,
    2303       38,    39,     0,     0,     0,   407,  1253,  1254,    40,    41,
    2304        0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
    2305        0,   278,     0,     0,   407,   407,     0,     0,     0,     0,
    2306        0,     0,     0,    42,     0,    43,     0,     0,   504,     0,
    2307        0,     0,   279,    44,   407,     0,     0,     0,   280,     0,
    2308      504,     0,   281,     0,     0,   282,   283,   284,   285,    40,
    2309       41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
    2310      288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2311        0,     0,     0,   977,   289,     0,   373,     0,     0,   974,
    2312        0,   504,     0,   291,   375,   293,   294,   295,   296,     0,
    2313        0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
     2312     510,    25,    26,    27,    28,     0,     0,    29,   278,    30,
     2313    1049,  1050,   510,  1051,     0,     0,  1052,  1053,  1054,  1055,
     2314    1056,  1057,  1058,  1059,     0,  1060,     0,     0,  1061,    32,
     2315       0,   280,    33,     0,    34,     0,    35,   642,     0,    37,
     2316      38,   282,     0,     0,   283,   284,   285,   286,    40,    41,
     2317       0,   287,   288,     0,   510,     0,     0,     0,     0,   289,
     2318       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2319       0,     0,     0,   290,     0,  1062,     0,     0,   167,     0,
     2320       0,     0,   292,   293,   294,   295,   296,   297,     0,     0,
     2321       0,     0,     0,     0,     0,     0,  -126,     0,     0,     1,
     2322       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2323      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2324      22,    23,    24,     0,   510,    25,    26,    27,    28,     0,
     2325       0,    29,   278,    30,   279,     8,     9,    10,    11,    12,
     2326      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2327      23,    24,  -286,     0,     0,   280,    33,     0,    34,     0,
     2328      35,   281,    30,    37,    38,   282,     0,   510,   283,   284,
     2329     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2330       0,   510,   510,   289,     0,    33,     0,     0,     0,     0,
     2331       0,     0,     0,     0,     0,     0,  -286,   290,     0,    43,
     2332       0,     0,     0,     0,     0,     0,   292,   293,   294,   295,
     2333     296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    23142334      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    23152335      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2316       28,     0,     0,    29,   277,    30,  1042,  1043,     0,  1044,
    2317        0,     0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
    2318        0,  1053,     0,     0,  1054,    32,     0,   279,    33,   504,
    2319       34,     0,    35,   640,     0,    37,    38,   281,     0,     0,
    2320      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2321        0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
    2322        0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
    2323        0,  1055,   504,     0,   167,     0,     0,     0,   291,   292,
    2324      293,   294,   295,   296,     0,     0,   504,   504,     0,     0,
    2325     1402,     0,  -126,     0,     1,     2,   202,     4,     5,     6,
     2336       0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
     2337       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2338       0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
     2339      34,     0,    35,   281,     0,    37,    38,   282,     0,     0,
     2340     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2341       0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
     2342       0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
     2343       0,   919,     0,     0,     0,     0,   771,     0,   292,   340,
     2344     294,   295,   296,   297,     0,     2,   202,     4,     5,     6,
    23262345       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23272346      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2328       25,    26,    27,    28,     0,     0,    29,   277,    30,   278,
     2347      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    23292348       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    23302349       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2331      279,    33,     0,    34,     0,    35,   280,  1454,    37,    38,
    2332      281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
    2333      286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2350     280,    33,   510,    34,     0,    35,   281,     0,    37,    38,
     2351     282,     0,     0,   283,   284,   285,   286,    40,    41,   510,
     2352     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    23342353       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2335        0,     0,   289,     0,  1055,     0,     0,     0,     0,     0,
    2336      316,   291,   292,   293,   294,   295,   296,     0,     0,     0,
    2337        0,     0,     0,     0,     0,  -126,     1,     2,   202,     4,
    2338        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2339       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2340        0,     0,    25,    26,    27,    28,     0,     0,    29,   277,
    2341       30,   278,     8,     9,    10,    11,    12,    13,    14,    15,
    2342       16,    17,    18,    19,    20,    21,    22,    23,    24,  -278,
    2343        0,     0,   279,    33,     0,    34,     0,    35,   280,    30,
    2344       37,    38,   281,     0,     0,   282,   283,   284,   285,    40,
    2345       41,     0,   286,   287,     0,     0,     0,   504,     0,     0,
    2346      288,     0,    33,     0,     0,     0,     0,     0,     0,     0,
    2347        0,     0,     0,  -278,   289,     0,    43,     0,     0,     0,
    2348        0,     0,     0,   291,   292,   293,   294,   295,   296,     0,
    2349        0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
    2350       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2351       20,    21,    22,    23,    24,   504,   504,    25,    26,    27,
    2352        0,     0,     0,     0,   277,    30,   278,     8,     9,    10,
    2353       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2354       21,    22,    23,    24,  -279,     0,     0,   279,    33,     0,
    2355       34,     0,    35,   280,    30,    37,    38,   281,     0,     0,
    2356      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2357        0,     0,     0,     0,     0,   288,     0,    33,     0,     0,
    2358        0,     0,     0,     0,     0,     0,     0,     0,  -279,   289,
    2359        0,   916,     0,     0,     0,     0,   768,     0,   291,   339,
    2360      293,   294,   295,   296,     2,   202,     4,     5,     6,     7,
    2361        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2362       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2363       26,    27,     0,     0,     0,     0,   277,    30,   278,     8,
    2364        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2365       19,    20,    21,    22,    23,    24,     0,     0,     0,   279,
    2366       33,     0,    34,     0,    35,   280,    30,    37,    38,   281,
    2367        0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
    2368      287,     0,     0,     0,     0,     0,     0,   288,     0,    33,
    2369        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2370        0,   289,     0,   916,     0,     0,     0,     0,   768,     0,
    2371      291,   591,   293,   294,   295,   296,     2,   202,     4,     5,
    2372        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2373       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2374        0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
    2375      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2376        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2377        0,   279,    33,     0,    34,     0,    35,   280,     0,    37,
    2378       38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
    2379        0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    2380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381        0,     0,     0,   289,     0,   338,     0,     0,     0,     0,
    2382        0,     0,   291,   339,   293,   294,   295,   296,     2,   202,
     2354       0,     0,   290,     0,   919,     0,     0,     0,     0,   771,
     2355       0,   292,   593,   294,   295,   296,   297,     0,     2,   202,
    23832356       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    23842357      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2385       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2386      277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
     2358      24,   510,   510,    25,    26,    27,     0,     0,     0,     0,
     2359     278,    30,   279,     0,     0,     0,     0,     0,     0,     0,
    23872360       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2388        0,     0,     0,   279,    33,     0,    34,     0,    35,   280,
    2389        0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
    2390       40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
    2391        0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
    2392        0,     0,     0,     0,     0,   289,     0,   916,     0,     0,
    2393        0,     0,     0,     0,   291,   339,   293,   294,   295,   296,
     2361       0,     0,     0,   280,    33,     0,    34,     0,    35,   281,
     2362       0,    37,    38,   282,     0,     0,   283,   284,   285,   286,
     2363      40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
     2364       0,   289,     0,     0,     0,     0,     0,     0,     0,     0,
     2365       0,     0,     0,     0,     0,   290,     0,   339,     0,     0,
     2366       0,     0,     0,     0,   292,   340,   294,   295,   296,   297,
    23942367       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    23952368      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    23962369      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2397        0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
     2370       0,     0,   278,    30,   279,     0,     0,     0,     0,     0,
    23982371       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        0,     0,     0,     0,     0,   279,    33,     0,    34,     0,
    2400       35,   280,     0,   203,    38,   281,     0,     0,   282,   283,
    2401      284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
    2402        0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
    2403        0,     0,     0,     0,     0,     0,     0,   289,     0,  1000,
    2404        0,     0,     0,     0,     0,     0,   291,  1001,   293,   294,
    2405      295,   296,     2,   202,     4,     5,     6,     7,     8,     9,
     2372       0,     0,     0,     0,     0,   280,    33,     0,    34,     0,
     2373      35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
     2374     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2375       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2376       0,     0,     0,     0,     0,     0,     0,   290,     0,   919,
     2377       0,     0,     0,     0,     0,     0,   292,   340,   294,   295,
     2378     296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    24062379      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24072380      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2408        0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
     2381       0,     0,     0,     0,   278,    30,   279,     0,     0,     0,
    24092382       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2410        0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
    2411       34,     0,    35,   280,     0,   203,    38,   281,     0,     0,
    2412      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2413        0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
    2414        0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
    2415        0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
    2416      293,   294,   295,   296,     1,     2,     3,     4,     5,     6,
     2383       0,     0,     0,     0,     0,     0,     0,   280,    33,     0,
     2384      34,     0,    35,   281,     0,   203,    38,   282,     0,     0,
     2385     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2386       0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
     2387       0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
     2388       0,  1006,     0,     0,     0,     0,     0,     0,   292,  1007,
     2389     294,   295,   296,   297,     2,   202,     4,     5,     6,     7,
     2390       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2391      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2392      26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
     2393       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2394       0,     0,     0,     0,     0,     0,     0,     0,     0,   280,
     2395      33,     0,    34,     0,    35,   281,     0,   203,    38,   282,
     2396       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2397     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2398       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2399       0,   290,     0,   374,     0,     0,     0,     0,     0,     0,
     2400     292,   376,   294,   295,   296,   297,  -504,     0,     0,     1,
     2401       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     2402      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2403      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2404       0,    29,     0,    30,    31,     0,     0,     0,     0,     0,
     2405       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
     2407      35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
     2408       0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
     2409       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2410       0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
     2411       0,     0,     0,     0,     0,     0,     0,    44,     1,     2,
     2412       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2413      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2414      23,    24,     0,     0,    25,    26,    27,    28,     0,     0,
     2415      29,     0,    30,    31,     0,     0,     0,     0,     0,     0,
     2416       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2417       0,     0,    32,     0,     0,    33,     0,    34,     0,    35,
     2418      36,     0,    37,    38,    39,     0,     0,     0,     0,     0,
     2419       0,    40,    41,     0,     0,     0,     0,     0,     0,     0,
     2420       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2421       0,     0,     0,     0,     0,     0,    42,     0,    43,     0,
     2422       0,     0,  -508,     0,     0,     0,    44,     1,     2,     3,
     2423       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2424      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2425      24,     0,     0,    25,    26,    27,    28,     0,     0,    29,
     2426       0,    30,    31,     0,     0,     0,     0,     0,     0,     0,
     2427       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2428       0,    32,     0,     0,    33,     0,    34,     0,    35,    36,
     2429       0,    37,    38,    39,     0,     0,     0,     0,     0,     0,
     2430      40,    41,     0,     0,     0,     0,     0,     0,     0,     0,
     2431       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2432       0,     0,     0,     0,     0,    42,     0,    43,     0,     0,
     2433       0,     0,     0,     0,     0,    44,   201,     2,   202,     4,
     2434       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2435      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2436       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2437      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2438       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2439       0,     0,     0,    33,     0,    34,     0,    35,    36,     0,
     2440     203,    38,    39,     0,     0,     0,     0,     0,     0,    40,
     2441      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2442       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2443       0,     0,     0,     0,    42,     0,   204,     0,     0,     0,
     2444       0,     0,     0,     0,   205,     1,     2,   202,     4,     5,
     2445       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2446      16,    17,    18,    19,    20,    21,    22,    23,    24,  -285,
     2447       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2448       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2450       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2451      38,     0,     0,  -285,     1,     2,   202,     4,     5,     6,
    24172452       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24182453      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2419       25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
     2454      25,    26,    27,    28,     0,    43,    29,     0,    30,     0,
     2455       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    24202456       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2421        0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
    2422        0,    33,     0,    34,     0,    35,    36,     0,    37,    38,
    2423       39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
    2424        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2425        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2426        0,     0,    42,     0,    43,     0,     0,     0,  -501,     0,
    2427        0,     0,    44,     1,     2,     3,     4,     5,     6,     7,
    2428        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2429       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2430       26,    27,    28,     0,     0,    29,     0,    30,    31,     0,
    2431        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432        0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
    2433       33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
    2434        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2436        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2437        0,    42,     0,    43,     0,     0,     0,     0,     0,     0,
    2438        0,    44,     1,     2,   202,     4,     5,     6,     7,     8,
    2439        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2440       19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
    2441       27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2444        0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
    2445     -278,   201,     2,   202,     4,     5,     6,     7,     8,     9,
     2457       0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
     2458       0,   201,     2,   202,     4,     5,     6,     7,     8,     9,
    24462459      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24472460      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2448        0,     0,    43,     0,     0,    30,     0,     0,     0,     0,
    2449      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2461       0,     0,     0,     0,    43,    30,     0,     0,     0,     0,
     2462       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    24502463       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    24512464      34,     0,    35,     0,     0,   203,    38,     2,   202,     4,
     
    24632476       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    24642477      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2465       25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2478      25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
     2479       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2480      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2481      27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
     2482       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2483       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2484    1348,     0,     0,     0,   108,     0,    37,    38,     0,     0,
     2485       0,     0,     0,     0,   678,     0,     0,     0,     0,     0,
     2486       0,     0,   627,     2,   202,     4,     5,     6,     7,     8,
     2487       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2488      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2489      27,     0,     0,     0,     0,     0,    30,     8,     9,    10,
     2490      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2491      21,    22,    23,    24,     0,     0,    25,    26,    27,    33,
     2492       0,    34,     0,    35,    30,     0,    37,    38,     0,     0,
     2493       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2494       0,     0,     0,     0,     0,     0,     0,    33,  1350,     0,
     2495       0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
     2496       0,     0,   678,     0,     0,     0,     0,     0,     0,     0,
     2497     627,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2498      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2499      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2500       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2501       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2502       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2503       0,    35,     0,     0,   203,    38,     2,   202,     4,     5,
     2504       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2505      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2506       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2507     266,     0,     0,     0,     0,     0,     0,     0,   622,     0,
     2508       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2509       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2510      38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2511      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2512      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2513       0,     0,     0,     0,    30,   678,     0,     0,     0,     0,
     2514       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
     2515       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2516       0,    35,     0,     0,    37,    38,     2,   202,     4,     5,
     2517       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2518      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2519       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2520     592,     0,     0,     0,     0,     0,     0,     0,   627,     0,
     2521       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2522       0,     0,    33,     0,    34,     0,    35,     0,     0,   203,
     2523      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2524      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2525      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
     2526       0,     0,     0,     0,     0,   204,     0,     0,     0,     0,
     2527       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
     2528     280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
     2529     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2530     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,   290,     0,   519,     0,     0,   167,     0,     0,
     2533       0,   292,   293,   294,   295,   296,   297,     8,     9,    10,
     2534      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2535      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2536       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2537       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
     2539       0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
     2540     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2541       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2543     592,    -3,     0,     0,     0,     0,     0,   292,   593,   294,
     2544     295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
     2545      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2546       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2547      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
     2548       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2549       0,     0,   280,    33,     0,     0,     0,     0,   642,     0,
     2550      37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2551      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2552     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2553       0,     0,     0,     0,   290,   -35,   756,     0,     0,     0,
     2554       0,     0,     0,   292,   293,   294,   295,   296,   297,     8,
     2555       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2556      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2557      27,     0,     0,     0,     0,   278,    30,   279,     0,     0,
     2558       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2559       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2560       0,     0,     0,     0,   281,     0,    37,    38,   282,     0,
     2561       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2562       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2563       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2564     290,     0,   291,     0,     0,     0,     0,     0,     0,   292,
     2565     293,   294,   295,   296,   297,     8,     9,    10,    11,    12,
     2566      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2567      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2568       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2569       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2570       0,     0,     0,     0,   280,    33,     0,     0,     0,     0,
     2571     281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
     2572     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2573       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,   290,     0,   154,     0,
     2575       0,     0,     0,     0,     0,   292,   293,   294,   295,   296,
     2576     297,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2577      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2578      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    24662579       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24672580       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2468        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2469        0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
     2581     280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
     2582     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2583     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2584       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2585       0,     0,   290,     0,   592,     0,     0,     0,     0,     0,
     2586       0,   292,   593,   294,   295,   296,   297,     8,     9,    10,
     2587      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2588      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2589       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
     2592       0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
     2593     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2594       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2595       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2596     374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
     2597     295,   296,   297,   469,     2,   202,     4,     5,     6,     7,
     2598       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2599      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2600      26,    27,     0,     0,     0,     0,     0,    30,     8,     9,
    24702601      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2471       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2472        0,     0,     0,  -383,   676,    30,     0,     0,     0,     0,
    2473        0,     0,   625,     0,     0,     0,     0,     0,     0,     0,
     2602      20,    21,    22,    23,    24,  -285,     0,    25,    26,    27,
     2603      33,     0,    34,     0,    35,    30,     0,    37,    38,     0,
     2604       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24742605       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2475       34,     0,    35,     0,     0,    37,    38,     0,     0,     0,
     2606       0,     0,     0,    36,     0,   332,   333,    39,     0,  -285,
     2607       0,     0,     0,     0,    40,    41,    -3,     8,     9,    10,
     2608      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2609      21,    22,    23,    24,  -285,     0,    25,    26,    27,   636,
     2610       0,   334,     0,     0,    30,     0,     0,     0,     0,   627,
     2611       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2612      18,    19,    20,    21,    22,    23,    24,    33,     0,    25,
     2613      26,    27,    36,     0,   332,   333,    39,    30,  -285,     0,
     2614       0,     0,     0,    40,    41,     0,     0,     0,     0,     0,
    24762615       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2477        0,     0,     0,     0,     0,     0,     0,  1334,     0,     0,
    2478        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2479        0,   676,     0,     0,     0,     0,     0,     0,     0,   625,
    2480        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2481       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2482       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2483        0,     0,     0,    30,     8,     9,    10,    11,    12,    13,
    2484       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2485       24,     0,     0,    25,    26,    27,    33,     0,    34,     0,
    2486       35,    30,     0,    37,    38,     0,     0,     0,     0,     0,
    2487        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2488        0,     0,     0,     0,    33,  1336,     0,     0,     0,   108,
    2489        0,    37,    38,     0,     0,     0,     0,     0,     0,   676,
    2490        0,     0,     0,     0,     0,     0,     0,   625,     2,   202,
    2491        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2492       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2493       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2494        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2495        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2496        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2497        0,   203,    38,     2,   202,     4,     5,     6,     7,     8,
     2616      33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
     2617     334,     0,     0,     0,     0,     0,    40,    41,   109,     8,
    24982618       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    24992619      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2500       27,     0,     0,     0,     0,     0,    30,   266,     0,     0,
    2501        0,     0,     0,     0,     0,   620,     0,     0,     0,     0,
    2502        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2503        0,    34,     0,    35,     0,     0,    37,    38,     2,   202,
    2504        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2505       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2506       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2507        0,    30,   676,     0,     0,     0,     0,     0,     0,     0,
    2508      625,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2509        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2510        0,    37,    38,     2,   202,     4,     5,     6,     7,     8,
    2511        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2512       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2513       27,     0,     0,     0,     0,     0,    30,   590,     0,     0,
    2514        0,     0,     0,     0,     0,   625,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2516        0,    34,     0,    35,     0,     0,   203,    38,     8,     9,
    2517       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2518       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2519        0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
    2520        0,     0,   204,     0,     0,     0,     0,     0,     0,     0,
    2521      267,     0,     0,     0,     0,     0,     0,   279,    33,     0,
    2522        0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
    2523      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2524        0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
    2525        0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
    2526        0,   590,    -3,     0,     0,     0,     0,     0,   291,   591,
    2527      293,   294,   295,   296,     8,     9,    10,    11,    12,    13,
    2528       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2529       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2530      277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
    2531        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2532        0,     0,     0,   279,    33,     0,     0,     0,     0,   640,
    2533        0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
    2534       40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
    2535        0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
    2536        0,     0,     0,     0,     0,   289,   -35,   753,     0,     0,
    2537        0,     0,     0,     0,   291,   292,   293,   294,   295,   296,
    2538        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2539       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2540       26,    27,     0,     0,     0,     0,   277,    30,   278,     0,
    2541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
    2543       33,     0,     0,     0,     0,   280,     0,    37,    38,   281,
    2544        0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
    2545      287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
    2546        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2547        0,   289,     0,   290,     0,     0,     0,     0,     0,     0,
    2548      291,   292,   293,   294,   295,   296,     8,     9,    10,    11,
    2549       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2550       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2551        0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
    2552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,   279,    33,     0,     0,     0,
    2554        0,   280,     0,    37,    38,   281,     0,     0,   282,   283,
    2555      284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
    2556        0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
    2557        0,     0,     0,     0,     0,     0,     0,   289,     0,   154,
    2558        0,     0,     0,     0,     0,     0,   291,   292,   293,   294,
    2559      295,   296,     8,     9,    10,    11,    12,    13,    14,    15,
    2560       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2561        0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
    2562      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2563        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2564        0,   279,    33,     0,     0,     0,     0,   280,     0,    37,
    2565       38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
    2566        0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,   289,     0,   590,     0,     0,     0,     0,
    2569        0,     0,   291,   591,   293,   294,   295,   296,     8,     9,
    2570       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2571       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2572        0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
    2573        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2574        0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
    2575        0,     0,     0,   280,     0,    37,    38,   281,     0,     0,
    2576      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2577        0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
    2578        0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
    2579        0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
    2580      293,   294,   295,   296,   467,     2,   202,     4,     5,     6,
    2581        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2582       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2583       25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    2584        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2585       19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
    2586       27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
    2587        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2588       16,    17,    18,    19,    20,    21,    22,    23,    24,    33,
    2589        0,    25,    26,    27,    36,     0,   331,   332,    39,    30,
    2590     -278,     0,     0,     0,     0,    40,    41,    -3,     0,     0,
    2591        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2592        0,     0,    33,     0,     0,     0,     0,    36,     0,    37,
    2593       38,    39,   333,     0,     0,     0,     0,     0,    40,    41,
    2594      109,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2595       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2596       25,    26,    27,    42,     0,   154,     0,     0,    30,     0,
    2597        0,     0,     0,    44,     0,     0,     0,     0,     0,     0,
    2598        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2599        0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
    2600       39,     0,     0,     0,     0,     0,     0,    40,    41,     8,
    2601        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2602       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2603       27,     0,    42,     0,    43,     0,    30,     0,     0,     0,
    2604        0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
     2620      27,    42,     0,    43,     0,     0,    30,     0,     0,     0,
     2621       0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    26052622       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    26062623       0,     0,     0,     0,    36,     0,   203,    38,    39,     0,
     
    26112628     205,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26122629       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2613        0,     0,    36,     0,   331,   332,    39,     0,     0,     0,
     2630       0,     0,    36,     0,   332,   333,    39,     0,     0,     0,
    26142631       0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
    26152632      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2616       23,    24,     0,     0,    25,    26,    27,     0,   634,     0,
    2617      333,     0,    30,     0,     0,     0,     0,     0,   625,     0,
     2633      23,    24,     0,     0,    25,    26,    27,     0,   636,     0,
     2634     334,     0,    30,     0,     0,     0,     0,     0,   627,     0,
    26182635       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26192636       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2620       36,     0,   331,   332,    39,     0,     0,     0,     0,     0,
     2637      36,     0,   332,   333,    39,     0,     0,     0,     0,     0,
    26212638       0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
    26222639      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2623     -278,     0,    25,    26,    27,     0,     0,     0,   333,     0,
     2640    -285,     0,    25,    26,    27,     0,     0,     0,   334,     0,
    26242641      30,     0,     0,     0,     0,     0,   109,     0,     0,     0,
    26252642       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26262643       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2627       37,    38,     0,     0,  -278,     8,     9,    10,    11,    12,
     2644      37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
    26282645      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2629       23,    24,  -278,     0,    25,    26,    27,     0,     0,     0,
    2630        0,     0,    30,     0,   634,     0,   333,     0,     0,     0,
     2646      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2647       0,     0,    30,   448,   636,     0,   334,     0,     0,     0,
     2648       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
     2649       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2650       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2651      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2652      24,  -285,     0,    25,    26,    27,     0,     0,     0,     0,
     2653       0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
     2654       0,     0,   935,     0,     0,     0,   109,     0,     0,     0,
     2655       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2656       0,    37,    38,     0,     0,  -285,     8,     9,    10,    11,
     2657      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2658      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2659       0,     0,     0,    30,   448,     0,     0,   334,     0,     0,
     2660       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2661       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2662       0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2663      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2664      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2665       0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
     2666       0,     0,     0,  1218,     0,     0,     0,   109,     0,     0,
     2667       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2668     108,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2669      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2670      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2671       0,    30,   448,     0,     0,     0,     0,     0,    43,     0,
     2672       0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2673       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2674       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2675      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2676       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2677      30,     0,     0,     0,     0,     0,     0,   449,     0,     0,
     2678       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2679       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2680      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
     2681      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2682       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2683       0,     0,     0,     0,   636,     0,   334,     0,     0,     0,
    26312684       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2633        0,     0,    37,    38,     0,     0,  -278,     8,     9,    10,
     2685       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2686      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2687      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2688      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2689       0,     0,     0,   636,     0,   334,     0,     0,     0,     0,
     2690       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
     2691       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2692       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2693      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2694      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
     2695       0,     0,     0,     0,   253,     0,     0,     0,     0,     0,
     2696       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2697      33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2698       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2699      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2700      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2701       0,     0,     0,   154,     0,     0,     0,     0,     0,     0,
     2702       0,   109,     0,     0,     0,     0,     0,     0,     0,    33,
     2703       0,     0,     0,     0,     0,     0,   203,    38,     8,     9,
     2704      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2705      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2706       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2707       0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
     2708     267,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2709       0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
    26342710      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    26352711      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2636        0,     0,     0,     0,    30,   446,   634,     0,   333,     0,
    2637        0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
     2712       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2713       0,   253,     0,     0,     0,     0,     0,     0,     0,   627,
    26382714       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    26392715       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
     
    26412717      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    26422718       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2643      447,     0,     0,     0,  1209,     0,     0,     0,   109,     0,
     2719     334,     0,     0,     0,     0,     0,     0,     0,   627,     0,
    26442720       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2645        0,   108,     0,    37,    38,     8,     9,    10,    11,    12,
     2721       0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
    26462722      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26472723      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2648        0,     0,    30,   446,     0,     0,     0,     0,     0,    43,
     2724       0,     0,    30,     0,     0,     0,     0,     0,     0,   449,
    26492725       0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
    26502726       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2651        0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2727       0,     0,   203,    38,     8,     9,    10,    11,    12,    13,
    26522728      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26532729      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2654        0,    30,     0,     0,     0,     0,     0,     0,   447,     0,
    2655        0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2730       0,    30,     0,     0,     0,     0,     0,     0,   266,     0,
     2731       0,     0,     0,     0,     0,     0,   622,     0,     0,     0,
    26562732       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    26572733       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    26582734      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26592735       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2660       30,     0,     0,     0,     0,   634,     0,   333,     0,     0,
    2661        0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2736      30,     0,     0,     0,     0,     0,     0,   592,     0,     0,
     2737       0,     0,     0,     0,     0,   627,     0,     0,     0,     0,
    26622738       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    26632739      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    26642740      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    26652741       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2666        0,     0,     0,     0,   634,     0,   333,     0,     0,     0,
    2667        0,     0,     0,     0,   625,     0,     0,     0,     0,     0,
     2742       0,     0,     0,     0,     0,     0,   334,     0,     0,     0,
     2743       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    26682744       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    26692745      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26702746      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    26712747      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
    2672        0,     0,     0,     0,     0,   253,     0,     0,     0,     0,
     2748       0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
    26732749       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2674        0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2750       0,    33,     0,     0,     0,     0,     0,     0,   203,    38,
    26752751       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    26762752      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    26772753      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
    2678        0,     0,     0,     0,   154,     0,     0,     0,     0,     0,
    2679        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
    2680       33,     0,     0,     0,     0,     0,     0,   203,    38,     8,
     2754       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2755       0,     0,   267,     0,     0,     0,     0,     0,     0,     0,
     2756      33,     0,     0,     0,     0,     0,     0,   203,    38,     2,
     2757     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2758      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2759      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2760       0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
     2761       0,   622,     0,     0,     0,     0,     0,     0,     0,     0,
     2762       0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
     2763       0,     0,    37,    38,     0,   278,     0,   279,  1050,     0,
     2764    1051,     0,     0,  1052,  1053,  1054,  1055,  1056,  1057,  1058,
     2765    1059,  1504,  1060,     0,     0,  1061,    32,     0,   280,     0,
     2766       0,     0,     0,     0,   642,     0,     0,  -403,   282,     0,
     2767       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2768       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2769       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2770     290,     0,   374,     0,     0,   167,     0,     0,     0,   292,
     2771     376,   294,   295,   296,   297,     0,   278,     0,   279,  1050,
     2772       0,  1051,     0,  -126,  1052,  1053,  1054,  1055,  1056,  1057,
     2773    1058,  1059,     0,  1060,     0,     0,  1061,    32,     0,   280,
     2774       0,     0,     0,     0,     0,   642,     0,     0,     0,   282,
     2775       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2776     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2777       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2778       0,   290,     0,   374,     0,     0,   167,     0,     0,     0,
     2779     292,   376,   294,   295,   296,   297,     0,     0,     0,     0,
     2780       0,     0,     0,     0,  -126,     2,   202,     4,     5,     6,
     2781       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2782      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2783      25,    26,    27,     0,     0,     0,     0,     0,    30,     8,
    26812784       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    26822785      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2683       27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    2684        0,     0,     0,   266,     0,     0,     0,     0,     0,     0,
    2685        0,   267,     0,     0,     0,     0,     0,     0,     0,    33,
    2686        0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    2687       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2688       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2689        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2690        0,     0,   253,     0,     0,     0,     0,     0,     0,     0,
    2691      625,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2692        0,     0,     0,     0,     0,    37,    38,     8,     9,    10,
    2693       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2694       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2695        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2696        0,   333,     0,     0,     0,     0,     0,     0,     0,   625,
    2697        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    2698        0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
    2699       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2700       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2701        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
    2702      447,     0,     0,     0,     0,     0,     0,     0,   109,     0,
    2703        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2704        0,     0,     0,   203,    38,     8,     9,    10,    11,    12,
    2705       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2706       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2707        0,     0,    30,     0,     0,     0,     0,     0,     0,   266,
    2708        0,     0,     0,     0,     0,     0,     0,   620,     0,     0,
    2709        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2710        0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    2711       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2712       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2713        0,    30,     0,     0,     0,     0,     0,     0,   590,     0,
    2714        0,     0,     0,     0,     0,     0,   625,     0,     0,     0,
    2715        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2716        0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
    2717       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2718        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2719       30,     0,     0,     0,     0,     0,     0,   333,     0,     0,
    2720        0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2721        0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
    2722       37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
    2723       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2724        0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2725        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
    2726        0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
    2727        0,     0,    33,     0,     0,     0,     0,     0,     0,   203,
    2728       38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    2729       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2730       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2731        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
    2732        0,     0,     0,   620,     0,     0,     0,     0,     0,     0,
    2733        0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2734        0,    35,     0,     0,    37,    38,     0,   277,     0,   278,
    2735     1043,     0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,
    2736     1050,  1051,  1052,  1482,  1053,     0,     0,  1054,    32,     0,
    2737      279,     0,     0,     0,     0,     0,   640,     0,     0,  -396,
    2738      281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
    2739      286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2786      27,    33,     0,    34,     0,    35,    30,     0,    37,    38,
     2787       0,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
     2788    1053,  1054,  1055,  1056,  1057,  1058,  1059,  1504,  1060,    33,
     2789    1307,  1061,    32,     0,   280,     0,   203,    38,     0,     0,
     2790     642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2791     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2792       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2793       0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
     2794       0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
     2795     297,   278,     0,   279,  1050,     0,  1051,  1394,  1395,  1052,
     2796    1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
     2797       0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
     2798     642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2799     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2800       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2801       0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
     2802       0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
     2803     297,   278,     0,   279,  1050,     0,  1051,     0,     0,  1052,
     2804    1053,  1054,  1055,  1056,  1057,  1058,  1059,     0,  1060,     0,
     2805       0,  1061,    32,     0,   280,     0,     0,     0,     0,     0,
     2806     642,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2807     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2808       0,     0,   289,     0,     0,     0,     0,     0,   278,     0,
     2809     279,     0,     0,     0,     0,     0,   290,     0,   374,     0,
     2810       0,   167,     0,     0,     0,   292,   376,   294,   295,   296,
     2811     297,   280,     0,     0,     0,     0,     0,   281,     0,     0,
     2812       0,   282,     0,     0,   283,   284,   285,   286,    40,    41,
     2813       0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
     2814       0,     0,     0,     0,     0,   278,     0,   279,     0,     0,
     2815       0,     0,     0,   290,     0,   374,     0,     0,     0,     0,
     2816       0,     0,   292,   725,   294,   295,   296,   297,   280,     0,
     2817       0,     0,     0,     0,   642,     0,     0,     0,   282,     0,
     2818       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2819       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2820       0,     0,   278,     0,   279,     0,     0,     0,     0,     0,
     2821     290,     0,   775,     0,     0,     0,     0,     0,     0,   292,
     2822     376,   294,   295,   296,   297,   280,     0,     0,     0,     0,
     2823       0,   281,     0,     0,     0,   282,     0,     0,   283,   284,
     2824     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2825       0,     0,     0,   289,     0,     0,     0,     0,     0,   278,
     2826       0,   279,     0,     0,     0,     0,     0,   290,     0,   374,
     2827       0,     0,     0,     0,     0,     0,   292,   816,   294,   295,
     2828     296,   297,   280,     0,     0,     0,     0,     0,   281,     0,
     2829       0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
     2830      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2831     289,     0,     0,     0,     0,     0,   278,     0,   279,     0,
     2832       0,     0,     0,     0,   512,     0,     0,     0,     0,     0,
     2833       0,     0,     0,   292,   376,   294,   295,   296,   297,   280,
     2834       0,     0,     0,     0,     0,   281,     0,     0,     0,   282,
     2835       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2836     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    27402837       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2741        0,     0,   289,     0,   373,     0,     0,   167,     0,     0,
    2742        0,   291,   375,   293,   294,   295,   296,     0,   277,     0,
    2743      278,  1043,     0,  1044,     0,  -126,  1045,  1046,  1047,  1048,
    2744     1049,  1050,  1051,  1052,     0,  1053,     0,     0,  1054,    32,
    2745        0,   279,     0,     0,     0,     0,     0,   640,     0,     0,
    2746        0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
    2747        0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    2748        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2749        0,     0,     0,   289,     0,   373,     0,     0,   167,     0,
    2750        0,     0,   291,   375,   293,   294,   295,   296,     0,     0,
    2751        0,     0,     0,     0,     0,     0,  -126,     2,   202,     4,
    2752        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2753       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2754        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2755       30,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2756       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2757       25,    26,    27,    33,     0,    34,     0,    35,    30,     0,
    2758       37,    38,     0,   277,     0,   278,  1043,     0,  1044,  1378,
    2759     1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,  1482,
    2760     1053,    33,  1295,  1054,    32,     0,   279,     0,    37,    38,
    2761        0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
    2762      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2763        0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
    2764        0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
    2765      373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
    2766      294,   295,   296,   277,     0,   278,  1043,     0,  1044,  1378,
    2767     1379,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
    2768     1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
    2769        0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
    2770      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2771        0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
    2772        0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
    2773      373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
    2774      294,   295,   296,   277,     0,   278,  1043,     0,  1044,     0,
    2775        0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
    2776     1053,     0,     0,  1054,    32,     0,   279,     0,     0,     0,
    2777        0,     0,   640,     0,     0,     0,   281,     0,     0,   282,
    2778      283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
    2779        0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
    2780      277,     0,   278,     0,     0,     0,     0,     0,   289,     0,
    2781      373,     0,     0,   167,     0,     0,     0,   291,   375,   293,
    2782      294,   295,   296,   279,     0,     0,     0,     0,     0,   280,
    2783        0,     0,     0,   281,     0,     0,   282,   283,   284,   285,
    2784       40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
    2785        0,   288,     0,     0,     0,     0,     0,   277,     0,   278,
    2786        0,     0,     0,     0,     0,   289,     0,   373,     0,     0,
    2787        0,     0,   768,     0,   291,   375,   293,   294,   295,   296,
    2788      279,     0,     0,     0,     0,     0,   280,     0,     0,     0,
    2789      281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
    2790      286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
    2791        0,     0,     0,     0,   277,     0,   278,     0,     0,     0,
    2792        0,     0,   289,     0,   373,     0,     0,     0,     0,     0,
    2793        0,   291,   375,   293,   294,   295,   296,   279,     0,     0,
    2794        0,     0,     0,   280,     0,     0,     0,   281,     0,     0,
    2795      282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
    2796        0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
    2797        0,   277,     0,   278,     0,     0,     0,     0,     0,   289,
    2798        0,   373,     0,     0,     0,     0,     0,     0,   291,   723,
    2799      293,   294,   295,   296,   279,     0,     0,     0,     0,     0,
    2800      640,     0,     0,     0,   281,     0,     0,   282,   283,   284,
    2801      285,    40,    41,     0,   286,   287,     0,     0,     0,     0,
    2802        0,     0,   288,     0,     0,     0,     0,     0,   277,     0,
    2803      278,     0,     0,     0,     0,     0,   289,     0,   772,     0,
    2804        0,     0,     0,     0,     0,   291,   375,   293,   294,   295,
    2805      296,   279,     0,     0,     0,     0,     0,   280,     0,     0,
    2806        0,   281,     0,     0,   282,   283,   284,   285,    40,    41,
    2807        0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
    2808        0,     0,     0,     0,     0,   277,     0,   278,     0,     0,
    2809        0,     0,     0,   289,     0,   373,     0,     0,     0,     0,
    2810        0,     0,   291,   813,   293,   294,   295,   296,   279,     0,
    2811        0,     0,     0,     0,   280,     0,     0,     0,   281,     0,
    2812        0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
    2813        0,     0,     0,     0,     0,     0,   288,     0,     0,     0,
    2814        0,     0,   277,     0,   278,     0,     0,     0,     0,     0,
    2815      289,     0,     0,     0,     0,     0,     0,     0,     0,   291,
    2816      375,   293,   294,   295,   296,   279,     0,     0,     0,     0,
    2817        0,   280,     0,     0,     0,   281,     0,     0,   282,   283,
    2818      284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
    2819        0,     0,     0,   288,     0,     0,     0,     0,     0,   277,
    2820        0,   278,     0,     0,     0,     0,     0,   507,     0,     0,
    2821        0,     0,     0,     0,     0,     0,   291,   375,   293,   294,
    2822      295,   296,   279,     0,     0,     0,     0,     0,   280,     0,
    2823        0,     0,   281,     0,     0,   282,   283,   284,   285,    40,
    2824       41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
    2825      288,     0,     0,     0,     0,     0,   277,     0,   278,     0,
    2826        0,     0,     0,     0,   510,     0,     0,     0,     0,     0,
    2827        0,     0,     0,   291,   375,   293,   294,   295,   296,   279,
    2828        0,     0,     0,     0,     0,   280,     0,     0,     0,   281,
    2829        0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
    2830      287,     0,     0,     0,     0,     0,     0,   288,     0,     0,
    2831        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832        0,   513,     0,     0,     0,     0,     0,     0,     0,     0,
    2833      291,   375,   293,   294,   295,   296,     2,   202,     4,     5,
     2838       0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
     2839     292,   376,   294,   295,   296,   297,     2,   202,     4,     5,
    28342840       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    28352841      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     
    28452851       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28462852       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
    2847        0,    35,     0,     0,   203,    38,   467,     2,   202,     4,
     2853       0,    35,     0,     0,   203,    38,   469,     2,   202,     4,
    28482854       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28492855      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    28602866      34,     0,    35,     0,     0,   203,    38,     8,     9,    10,
    28612867      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2862       21,    22,    23,    24,     0,     0,    25,    26,    27,   485,
    2863      486,   487,     0,     0,    30,     8,     9,    10,    11,    12,
    2864       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2865       23,    24,     0,     0,    25,    26,    27,    33,     0,     0,
    2866        0,     0,    30,     0,    37,    38,     0,     0,     0,     0,
     2868      21,    22,    23,    24,     0,     0,    25,    26,    27,   487,
     2869     488,   489,     0,     0,    30,     0,     0,     0,     0,     0,
    28672870       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2868        0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
    2869        0,     0,   203,    38
     2871       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2872       0,     0,     0,     0,    37,    38
    28702873};
    28712874
    28722875#define yypact_value_is_default(yystate) \
    2873   ((yystate) == (-1269))
     2876  ((yystate) == (-1398))
    28742877
    28752878#define yytable_value_is_error(yytable_value) \
     
    28782881static const yytype_int16 yycheck[] =
    28792882{
    2880        1,    42,     0,   235,     0,   215,    42,   687,    42,   181,
    2881      103,   181,     1,   687,    32,   687,   165,   620,   181,   275,
    2882      343,     0,   183,  1023,    31,   182,   987,   748,   449,   455,
    2883      181,   181,   645,    31,   600,    31,   181,  1305,   602,   182,
    2884      600,     0,   181,   532,    42,   276,    44,   276,    44,   492,
    2885        1,   600,    31,   496,   570,   343,    54,   603,   887,   152,
    2886      887,   980,    60,   609,    60,    63,    42,    63,    66,    37,
    2887       66,   600,    31,   767,  1035,    42,   448,    66,   113,  1042,
    2888      602,     0,     0,    42,   764,    44,   600,    42,    65,   261,
    2889      764,   261,   764,    44,   490,   600,   257,   258,   261,   712,
    2890       75,    60,   419,   420,    63,   262,   104,    66,    44,   107,
    2891      261,   261,    31,    31,   102,   113,   261,   411,   101,   262,
    2892       65,   109,   261,    27,   600,     0,     1,  1395,  1022,  1023,
    2893       57,   339,    65,     0,   111,   103,   430,    89,    52,    78,
    2894      181,    42,    43,    89,   438,   181,   144,   181,   144,   521,
    2895       37,  1378,   103,    88,   152,   108,    31,   101,   109,   157,
    2896      101,   157,   197,   115,    31,    37,   105,    71,    37,   115,
    2897      103,   124,   358,   109,   101,    37,   362,   494,   224,   124,
    2898      252,    95,   200,   181,   182,   144,   182,   122,    63,    42,
    2899       43,    66,   143,   403,   104,   512,    63,   243,   157,   197,
    2900      488,   152,   635,   636,   733,   181,   107,   205,   604,   205,
    2901     1437,   123,   608,  1042,   181,  1215,   214,    75,   651,   217,
    2902      261,   217,   181,   182,     0,   261,   181,   261,   733,   101,
    2903       54,   103,   101,   629,   103,    37,  1382,   633,    65,   101,
    2904      247,   103,   399,   336,   102,   101,   205,   248,   108,   247,
    2905      201,   247,    44,   106,   205,    31,   399,   733,   217,   825,
    2906      577,   106,  1262,   261,   262,   825,   262,   123,   247,   205,
    2907      268,   102,   365,   837,   482,   189,   825,   275,   109,   602,
    2908      104,   827,    37,   107,   235,   236,   707,   288,   247,   805,
    2909        3,   448,   725,     0,     1,   989,   825,   124,   212,   101,
    2910      236,   103,   261,   102,  1464,   448,    42,    43,   222,  1228,
    2911      109,   825,  1275,  1459,    65,   837,   267,   109,  1464,   270,
    2912      825,  1464,    65,   480,    31,   323,  1486,   323,   247,   247,
    2913     1051,   267,     3,  1479,   252,   108,  1479,   480,   289,   411,
    2914     1486,   292,   217,  1486,   342,   343,   101,   108,   103,   825,
    2915      217,   143,   103,   289,   389,   102,   292,   101,   430,    66,
    2916      103,   359,   109,   124,   323,   363,   438,  1261,  1262,     0,
    2917      106,  1200,   247,  1200,  1374,   289,   123,   943,    65,     0,
    2918      247,   814,   417,   591,   343,   336,   680,   422,   339,   123,
    2919      214,   389,   101,    65,   943,    67,    68,    65,  1001,    67,
    2920       68,   399,   588,   399,  1440,  1366,  1367,   358,    54,   102,
    2921     1446,   362,   620,   205,   365,   108,   103,   625,    65,   417,
    2922       67,    68,   944,   108,   422,  1461,   424,   101,   102,   943,
    2923     1466,   524,   108,   101,   106,   634,   635,   636,   106,   124,
    2924      399,   102,   101,   235,   268,   631,  1275,   108,   124,   101,
    2925      448,   275,   651,  1416,   102,   289,   103,   688,   104,   688,
    2926     1423,   107,   101,   859,  1010,  1011,   467,   108,   419,   420,
    2927      464,   247,    83,    84,   472,   267,   252,   344,   686,   710,
    2928     1374,   710,   480,   124,   480,   108,   484,   913,   484,   448,
    2929      488,   747,   101,   411,   655,   446,   985,   646,   449,  1462,
    2930      292,   124,   101,  1116,   455,   484,   152,   118,   119,   952,
    2931      446,   512,   430,   449,   837,   687,   467,   687,   342,   455,
    2932      438,   435,   108,   104,   687,   484,   725,   108,   529,   488,
    2933      104,   532,   689,   534,   108,   359,   687,   687,   124,   363,
    2934      247,   492,   687,   494,   108,   496,   689,   339,   687,   837,
    2935      922,   108,   760,   949,  1275,   469,   507,   482,   930,   510,
    2936      124,   512,   513,   108,   482,   484,   484,   124,   214,   798,
    2937      101,   507,  1094,   524,   510,   108,   111,   513,   104,   124,
    2938      581,   116,   117,   101,   108,   419,   420,  1416,   102,   108,
    2939      588,   124,   685,   507,  1423,    65,   510,    67,    68,   513,
    2940      124,   973,   600,    67,   602,   124,   473,    71,   680,   484,
    2941       74,   101,    76,   103,   102,   814,   108,   484,   653,    83,
    2942      108,   111,   268,   621,   102,  1346,   577,   419,   420,   275,
    2943      816,   101,   124,  1462,   820,   411,   106,   588,   104,   637,
    2944      591,   600,   108,   602,   102,   104,   101,   876,   103,   108,
    2945      722,   652,   650,   654,   430,   653,   111,   113,   114,  1080,
    2946      948,   102,   438,   104,   874,   507,   759,   108,   510,   620,
    2947      589,   513,   101,   507,   625,   669,   510,   104,   102,   513,
    2948      631,   108,   123,   124,   894,   101,   103,   103,   105,   687,
    2949      102,   689,   109,    65,   102,   111,   342,    69,   101,  1420,
    2950      108,  1422,   494,   107,    76,    77,    85,    86,   484,   634,
    2951      635,   636,   103,   359,   105,   102,    57,   363,   109,   720,
    2952      512,   108,   954,   909,   108,   109,   651,   102,   687,   101,
    2953      689,   880,   566,   108,   685,   733,   734,   102,   124,   111,
    2954      102,   102,  1463,   108,   208,   102,   108,   108,   101,   747,
    2955       29,   108,   102,   102,   668,   622,   707,   101,   108,   108,
    2956      989,   686,   680,   677,   102,   922,   102,   681,   686,   104,
    2957      108,   707,   108,   930,   733,   734,   124,   484,   424,   922,
    2958       65,   106,    67,    68,    69,   577,   737,   930,  1468,   102,
    2959      106,    76,    77,  1001,  1468,   108,  1468,   621,   124,   591,
    2960      725,    80,    81,    63,   722,   124,   102,   801,   759,    65,
    2961     1039,    65,   108,   637,   106,    69,   101,   811,   102,   102,
    2962       80,    44,    76,    77,   108,   108,   650,   825,   620,   101,
    2963      102,   103,   826,   625,   121,   760,   123,    60,   101,   837,
    2964       63,    75,   760,    66,    81,    82,   713,   101,   278,    10,
    2965       11,    12,    13,    14,   114,   104,    65,   111,    67,    68,
    2966      727,   291,   292,   102,   103,   816,   825,   112,    65,   820,
    2967       67,    68,    69,   303,   120,   101,    37,   103,   837,  1110,
    2968      121,  1110,   346,     3,   348,   101,   887,   103,  1037,   814,
    2969       10,    11,    12,    13,    14,  1081,   101,   157,   103,    60,
    2970       87,   101,   821,   103,   680,   123,    78,    79,    80,   339,
    2971      103,   909,   555,   556,   557,   558,   101,    37,   101,   102,
    2972      103,   144,   101,   747,   922,   101,   102,   103,  1136,   101,
    2973      104,   103,   930,   105,   157,   104,  1167,  1168,  1167,  1168,
    2974       60,   101,   588,   103,   102,   375,   722,   101,   102,   103,
    2975      948,   818,  1234,  1235,  1236,    54,    55,   217,   909,   182,
    2976      239,   102,   913,   922,   953,   101,   101,   103,   887,   887,
    2977      434,   930,   101,   104,   103,   621,    65,   913,    67,    68,
    2978       69,   982,   205,   101,   985,   103,   987,    76,    77,   948,
    2979      101,   637,   103,   102,   217,   255,  1014,   911,   692,   259,
    2980      694,   952,   953,   954,   650,   108,   109,  1215,    42,    43,
    2981      551,   552,   887,   104,     4,     5,     6,     7,     8,     9,
    2982      887,   553,   554,   559,   560,  1019,  1020,   102,   102,   102,
    2983      887,   103,   108,   101,  1035,   123,   106,   104,   102,     0,
    2984        1,   102,   104,   109,  1045,   104,   104,  1048,  1049,  1050,
    2985     1001,   104,     4,     5,     6,     7,     8,     9,   109,   108,
    2986       28,    75,   102,   102,   106,   109,   104,  1102,   124,   102,
    2987       31,    32,    62,   108,    64,   107,   107,  1449,   953,   107,
    2988       32,  1075,  1076,    44,   344,   101,    10,    11,    12,    13,
    2989       14,   102,    75,   102,   102,   374,   109,  1022,   102,   102,
    2990      323,   747,   102,  1196,  1102,    66,   108,   102,   102,   102,
    2991       62,   887,    64,    37,   102,   102,  1488,   102,   548,   549,
    2992      550,   102,   102,  1042,  1042,   102,   102,   102,   102,  1080,
    2993     1081,   102,    28,   102,   124,   107,    60,  1004,   104,  1053,
    2994      102,    65,   103,   102,  1080,    69,   104,  1378,   102,  1378,
    2995      123,   107,    76,    77,   104,   108,   102,   102,   102,   108,
    2996      101,   591,   954,   423,   106,   108,   104,  1042,   108,   102,
    2997      102,   108,   108,   102,   453,  1042,   399,   101,   104,   458,
    2998      887,   101,   101,   144,   101,   101,   101,   111,  1045,   124,
    2999     1179,   152,   153,   104,   107,   109,   102,   102,  1196,  1200,
    3000      102,   124,   106,   121,   107,  1436,  1437,  1436,  1437,  1001,
    3001      108,  1136,   491,   473,   493,   104,   108,   104,  1136,  1213,
    3002      102,   182,   102,   102,   102,    45,    63,   104,   104,   104,
    3003     1219,   104,   104,  1234,  1235,  1236,   197,   104,   124,   200,
    3004      201,   124,   101,  1475,   205,  1196,   953,   107,  1242,   102,
    3005        4,     5,     6,     7,     8,     9,  1250,  1251,  1252,   124,
    3006      669,   124,   124,   909,   107,   226,  1042,   102,  1219,   230,
    3007      104,   232,   104,   104,   107,   104,   104,   114,   104,   104,
    3008      241,  1200,  1200,   104,   102,   102,   247,  1288,   104,   104,
    3009      101,   252,    55,   723,    54,   102,  1468,  1215,  1468,   102,
    3010     1294,   262,   106,  1178,  1179,  1468,    75,     0,    62,   270,
    3011       64,  1178,  1469,   109,   124,   104,  1305,  1468,  1468,   104,
    3012      157,   102,   104,  1468,  1359,  1200,  1469,   102,    89,  1468,
    3013      101,  1488,   104,  1200,   594,  1042,  1261,   767,    31,  1340,
    3014      107,    40,  1343,  1200,  1219,  1488,  1180,  1181,   124,  1183,
    3015      102,   102,   102,   102,  1305,  1189,  1275,  1275,  1192,   124,
    3016     1358,  1359,   622,   642,   108,  1366,  1367,   627,   109,  1283,
    3017      102,    89,   102,    66,   464,   336,   124,    75,   339,   124,
    3018      217,  1382,   109,   813,   345,   102,  1387,   107,   104,   104,
    3019      124,   101,   801,   107,   107,  1270,   102,   358,   124,   102,
    3020     1275,   362,   811,  1270,   365,   561,  1395,   665,  1275,  1410,
    3021      562,   564,   563,  1117,  1449,   565,  1200,   826,   255,  1348,
    3022     1437,  1496,   259,   702,  1200,  1284,  1452,  1468,  1112,   708,
    3023     1305,  1288,  1468,  1113,  1468,  1071,  1423,   930,   458,   446,
    3024      446,   694,   581,    65,  1395,    67,    68,    69,   932,  1450,
    3025      411,  1449,   974,   713,    76,    77,   647,   880,  1459,   737,
    3026      153,   950,  1219,  1464,   425,   484,   747,   727,   569,   430,
    3027     1468,  1469,  1179,  1469,  1425,   569,  1477,   438,  1479,   101,
    3028       -1,    -1,  1483,  1340,   569,  1486,  1343,    -1,    -1,  1425,
    3029     1488,  1492,  1488,  1200,    -1,  1496,    -1,  1416,  1416,  1275,
    3030       -1,  1452,    -1,   464,  1423,  1423,   467,   344,  1342,  1468,
    3031     1424,    -1,  1219,    -1,    -1,    65,  1452,    67,    68,    69,
    3032     1395,   482,    -1,   484,  1475,  1382,    76,    77,    -1,    -1,
    3033     1387,   492,    -1,   226,  1358,   496,    -1,  1451,    -1,    -1,
    3034       -1,  1416,    -1,  1462,  1462,    -1,    -1,    -1,  1423,  1416,
    3035     1196,   101,    -1,  1410,   247,    -1,  1423,    -1,   818,   252,
    3036       -1,   111,    -1,   524,   525,    -1,    -1,    -1,  1275,    -1,
    3037       -1,  1001,    65,  1487,    67,    68,    69,    -1,    -1,   669,
    3038       -1,    -1,    -1,    76,    77,  1499,   423,  1462,    10,    11,
    3039       12,    13,    14,    -1,    -1,  1462,    -1,    -1,  1305,    -1,
    3040       -1,   880,    -1,    -1,    -1,    -1,    -1,   886,   101,   570,
    3041     1019,  1020,  1042,    -1,    -1,    37,    -1,    -1,   111,    -1,
    3042     1477,    -1,    -1,    -1,    -1,     0,  1483,   588,   589,    -1,
    3043      591,    -1,    -1,    -1,    -1,  1492,   473,    -1,    60,  1496,
    3044     1416,   602,    -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,
    3045       -1,    -1,   345,    -1,    -1,    -1,    31,    -1,    -1,   620,
    3046       -1,    -1,    -1,    -1,   625,    -1,  1075,  1076,    -1,    -1,
    3047      631,    -1,    -1,   634,   635,   636,    -1,    -1,    -1,   101,
    3048       -1,   103,    -1,  1475,    -1,    -1,  1462,    -1,  1395,   111,
    3049      651,    66,    63,    -1,    -1,   974,    -1,    -1,    -1,    -1,
    3050       -1,    -1,    73,    -1,     0,     1,    -1,    -1,   669,  1416,
    3051       -1,   801,  1358,    -1,    -1,    -1,  1423,    -1,   411,   680,
    3052       -1,   811,    65,  1153,   685,   686,    69,    -1,   689,    -1,
    3053       -1,     3,   425,    76,    77,    31,   826,   430,    10,    11,
    3054       12,    13,    14,   114,  1004,   438,    -1,    -1,    -1,    -1,
    3055       -1,    -1,    -1,    -1,    -1,  1462,    -1,   594,   101,    -1,
    3056      103,   722,    -1,    -1,   725,    37,    -1,    63,   111,    -1,
    3057       66,   464,     3,   734,    -1,    -1,   737,    -1,   153,    10,
    3058       11,    12,    13,    14,    -1,   622,   157,    -1,    60,   482,
    3059      627,   484,  1071,    -1,    -1,    -1,    -1,    -1,   759,   760,
    3060       -1,    -1,    -1,    -1,   765,    -1,    37,    -1,    -1,    -1,
    3061       -1,    -1,    10,    11,    12,    13,    14,    -1,    10,    11,
    3062       12,    13,    14,    -1,    -1,    -1,    -1,    -1,   185,    60,
    3063       -1,    -1,   525,  1242,    -1,   192,    -1,    -1,    -1,    37,
    3064      801,  1250,  1251,  1252,    -1,    37,   217,    -1,    -1,    -1,
    3065      811,    -1,    -1,   814,    -1,   816,    -1,   153,   819,   820,
    3066      821,    -1,    60,    -1,    -1,   826,    -1,    65,    60,    67,
    3067       68,    69,   247,    -1,    -1,   836,   713,   252,    76,    77,
    3068       -1,    -1,    -1,    -1,   255,  1294,    -1,    -1,   259,    -1,
    3069      727,    -1,    -1,     0,    -1,  1174,   589,    -1,    -1,    -1,
    3070       -1,    -1,    -1,   101,   275,   103,    -1,   264,    -1,   101,
    3071       -1,   103,    -1,   111,    -1,    -1,    -1,    -1,  1178,   111,
    3072       -1,   217,    -1,    -1,    31,    -1,   887,    -1,    -1,  1019,
    3073     1020,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3074       -1,   634,   635,   636,    -1,    -1,    -1,    -1,   909,    -1,
    3075       -1,   247,    -1,    -1,    -1,    -1,    -1,    -1,   651,    66,
    3076       -1,   318,    -1,    10,    11,    12,    13,    14,    -1,   326,
    3077      345,    -1,   329,   344,    -1,    -1,   669,    -1,    -1,    -1,
    3078       -1,   818,    -1,   944,    -1,  1075,  1076,   680,    -1,    -1,
    3079       37,   952,   953,   686,    -1,    -1,    -1,    65,    -1,    67,
    3080       68,    69,    -1,    25,    26,    27,   967,    -1,    76,    77,
    3081     1270,    -1,    -1,    60,    90,    91,    92,    93,    94,    95,
    3082       96,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,   722,
    3083       -1,    -1,   725,   101,   391,   103,   411,    -1,   395,    -1,
    3084     1001,   109,    -1,   111,    -1,    -1,   153,   123,    -1,    -1,
    3085      425,    -1,   423,  1014,   101,   430,   103,    -1,  1019,  1020,
    3086       -1,  1022,  1023,   438,   111,    -1,    -1,   760,    -1,   440,
    3087       -1,    -1,    -1,    -1,    96,    -1,    98,    -1,    -1,    -1,
    3088       -1,  1042,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   464,
     2883       1,    42,     0,   235,     0,   200,     1,   113,    42,   181,
     2884     181,    42,   890,   165,   689,   181,   689,   275,   689,   182,
     2885     344,   181,   750,    29,   181,   450,   534,   103,   181,   277,
     2886     181,   622,   890,    31,   451,    31,   457,   604,  1028,  1029,
     2887    1078,   602,    42,   602,    42,   215,    44,   344,    44,   605,
     2888     602,    42,   986,     0,     0,   611,    54,   494,    75,   647,
     2889     602,   498,    60,   604,    60,    63,   770,    63,    66,    31,
     2890      66,    66,  1049,  1029,    80,    81,   152,   572,  1317,    42,
     2891     602,   183,     0,    54,    31,    31,     0,     1,  1485,   261,
     2892     261,   197,   767,    49,   767,   261,   767,     0,   523,   262,
     2893      27,   261,    37,   412,   261,    37,   104,  1394,   261,   107,
     2894     261,  1508,     0,    31,   182,   113,    37,    31,   637,   638,
     2895      65,   359,   602,   432,   602,   363,   714,    37,    31,    57,
     2896      11,   440,    37,   104,   653,    75,   107,   466,    37,    42,
     2897     181,    44,    65,    31,    71,   101,   144,   181,   144,    63,
     2898     181,   279,    66,   101,   152,   257,   258,    60,    75,   157,
     2899      63,   157,   102,    66,   292,   293,   490,    65,   103,    65,
     2900    1457,  1049,  1411,   101,    37,   993,   304,    42,    43,   124,
     2901     101,   181,   103,   181,   182,   102,   182,   252,    42,    43,
     2902     181,   101,   109,   103,   262,    88,   101,   492,   103,   197,
     2903      75,   124,   101,   104,   103,   103,    75,   205,   727,   205,
     2904      89,   101,   340,   735,   101,   111,   214,    52,   181,   217,
     2905     261,   217,   690,  1041,    44,    75,   290,   261,   103,   122,
     2906     261,   101,   101,   239,   404,    78,   115,   400,   101,    75,
     2907     103,   144,   107,   214,   712,    42,    43,   248,   376,   247,
     2908     123,   247,   106,   123,   157,   735,   224,   735,   506,   109,
     2909      95,   337,   105,   261,   262,   101,   262,   828,  1224,   828,
     2910     268,   101,   102,   840,   830,   243,   828,   275,   181,   182,
     2911     113,   114,  1272,  1273,   390,   247,   828,   450,   289,   109,
     2912     366,   995,   709,   106,     0,     1,    89,   268,   817,   840,
     2913     247,   247,   205,   217,   275,  1239,   828,   604,   108,   106,
     2914    1287,   606,   418,   808,   217,   610,   104,  1273,   424,   482,
     2915     108,   108,   115,   143,   124,    31,   324,     1,   324,   247,
     2916    1058,  1209,   400,   247,   252,    65,   631,    67,    68,   108,
     2917     635,    65,   671,  1398,   247,   343,   344,   412,   828,   108,
     2918     828,  1209,   590,    65,   189,   124,   420,   421,   261,   247,
     2919      66,   102,   360,    65,   252,   124,   364,   432,   109,   375,
     2920      44,   101,   343,   682,   108,   440,   106,   212,  1416,   103,
     2921       3,   948,   450,   420,   421,   205,   947,   222,   947,   360,
     2922     124,   103,   390,   364,  1485,   633,    65,    44,    67,    68,
     2923    1390,   103,   400,   104,   400,   947,   102,   108,     3,  1287,
     2924    1501,   108,   108,    54,   482,   235,  1007,  1508,   108,   667,
     2925     418,   324,   550,   551,   552,  1480,   424,   124,   426,   103,
     2926    1485,   340,   101,     0,  1390,   109,    65,   106,    67,    68,
     2927      65,   344,    67,    68,   508,   101,  1501,   267,   512,   455,
     2928     526,   515,   450,  1508,   460,   290,   121,  1434,   123,   496,
     2929    1016,  1017,   109,   104,  1441,   593,   107,     0,   469,   143,
     2930     123,   890,   102,   293,   103,   804,   474,   514,   152,   109,
     2931     101,   106,   103,   991,   482,   814,   482,   493,   486,   495,
     2932     486,   749,   490,   123,   412,   916,   648,   400,   966,   108,
     2933     829,   926,   102,   104,   568,   753,  1483,   108,   108,   934,
     2934     108,   152,   101,   514,   432,   124,   840,   689,   689,   956,
     2935     340,   104,   440,   689,   412,   108,   124,   201,   691,   689,
     2936     531,   205,   689,   534,  1101,   536,   689,  1125,   689,   486,
     2937     486,   247,   579,   840,   432,   111,   101,   450,   103,   655,
     2938     116,   117,   440,   508,   979,   657,  1434,   512,   205,  1287,
     2939     515,   235,   236,  1441,  1382,  1383,   484,   862,   486,   636,
     2940     637,   638,   486,   214,   108,   484,    10,    11,    12,    13,
     2941      14,   819,   583,   486,   104,   823,   653,   490,   108,   236,
     2942     124,   108,   590,   267,    83,    84,   270,   725,   486,   108,
     2943     420,   421,   437,    37,   602,  1483,   604,   124,   108,    81,
     2944      82,   687,    78,    79,    80,   124,   290,   682,  1117,   293,
     2945     267,   101,  1121,   691,   124,   623,    60,   268,   952,   118,
     2946     119,   108,  1360,  1052,   275,   101,   471,   103,   644,   105,
     2947     101,   639,   770,   290,   102,   591,   293,   124,   108,   108,
     2948     108,  1119,   623,   654,   652,   656,  1460,   655,   953,   724,
     2949     727,   102,  1466,   337,   124,   124,   340,   108,   639,   101,
     2950    1087,   103,   101,   508,   912,   102,   496,   512,  1482,   111,
     2951     515,   652,   109,  1487,   593,   359,   762,   101,   816,   363,
     2952     101,   689,   366,   691,   514,   102,  1025,  1026,   704,   602,
     2953     102,   604,   343,   102,   710,   102,   108,   877,  1176,  1177,
     2954    1438,   108,  1440,   622,   102,   101,   104,   103,   627,   360,
     2955     108,   722,   102,   364,     0,   111,   958,   897,   103,   102,
     2956     105,   883,    85,    86,   109,   123,   124,   735,   736,     4,
     2957       5,     6,     7,     8,     9,   102,   420,   421,   108,   109,
     2958     817,   749,   102,  1082,  1083,    31,  1484,   104,     3,   579,
     2959     101,   102,   103,   926,   682,    10,    11,    12,    13,    14,
     2960     688,   934,   101,   593,   448,   102,   102,   451,   749,   688,
     2961     486,   108,   108,   457,   101,   426,   689,    63,   691,   101,
     2962    1209,   103,    37,   107,   682,   469,   101,    62,   101,    64,
     2963     103,   448,   622,   103,   451,   105,   724,   627,   111,   109,
     2964     457,   102,   104,   102,  1489,    60,  1489,   108,  1489,   108,
     2965     494,   102,   496,   102,   498,  1020,   101,   108,   103,   108,
     2966     828,   102,   735,   736,   508,   670,   724,   108,   512,   124,
     2967     514,   515,   840,   102,   679,   763,    57,   102,   683,   108,
     2968    1088,   102,   526,   108,   763,   102,   103,   108,   926,   124,
     2969      65,   508,    67,    68,    69,   512,   934,   484,   515,  1117,
     2970     102,    76,    77,  1121,  1122,   101,   108,   883,   824,  1007,
     2971     102,  1300,   101,   889,   102,   101,   108,   103,   889,   890,
     2972     108,  1043,    65,  1222,    67,    68,   101,   101,   103,   103,
     2973      10,    11,    12,    13,    14,   579,   111,   124,   101,  1377,
     2974     103,    65,    54,    55,   912,    69,   590,   106,   101,   593,
     2975     103,  1049,    76,    77,  1253,   828,  1394,    37,   926,   101,
     2976     102,   103,  1261,  1262,  1263,  1354,   934,   840,  1357,     0,
     2977       1,   217,   106,   101,   890,   103,   124,   101,   622,   590,
     2978      60,   108,   109,   627,   952,   124,   694,   111,   696,   633,
     2979      65,    65,   957,    67,    68,    69,     0,   101,   102,   103,
     2980      31,   247,   890,   106,   980,   101,   890,  1306,    75,  1398,
     2981     108,   109,   623,    44,  1403,   101,  1234,   988,  1456,  1457,
     2982     991,   101,   993,   103,   101,   102,   103,    31,   639,    42,
     2983      43,   111,   890,  1109,   104,    66,  1245,  1246,  1247,  1428,
     2984      75,   652,   120,   687,   557,   558,   559,   560,   112,   636,
     2985     637,   638,   121,   926,     4,     5,     6,     7,     8,     9,
     2986      87,   934,    66,   123,  1162,   709,   653,   553,   554,   103,
     2987    1041,   101,   103,   957,  1469,   555,   556,   561,   562,   952,
     2988     101,  1052,    32,   102,  1055,  1056,  1057,    67,   104,   104,
     2989     102,    71,   709,   102,    74,   739,    76,   102,   101,   345,
     2990    1318,   688,  1078,    83,  1322,   102,   102,  1078,   103,   914,
     2991    1499,   104,    62,   144,    64,  1510,  1505,   104,   762,   108,
     2992     106,   152,   153,   123,   101,  1514,   104,   102,  1007,  1518,
     2993     102,   104,   108,  1049,   104,   104,   104,    28,   749,   102,
     2994     727,  1109,     4,     5,     6,     7,     8,     9,   109,   153,
     2995     109,   182,   104,   102,   109,  1189,  1190,   108,  1192,  1205,
     2996     106,  1049,   107,   102,  1198,  1049,   197,  1201,   958,   200,
     2997     201,   107,   107,    65,   205,   819,   763,    69,   101,   823,
     2998     102,   124,   102,   102,    76,    77,    10,    11,    12,    13,
     2999      14,  1049,   109,   102,   102,   226,   102,  1415,   108,   230,
     3000      62,   232,    64,   102,   102,   102,   102,  1183,   102,   101,
     3001     241,   103,  1183,    37,   890,   102,   247,  1007,   102,   111,
     3002     102,   252,   226,  1188,   102,   102,   102,   102,   208,   475,
     3003     817,   262,   102,   107,    28,   123,    60,  1205,  1209,   270,
     3004     486,    65,   107,   247,   104,    69,   102,    65,   252,    67,
     3005      68,    69,    76,    77,   102,  1060,   102,  1145,    76,    77,
     3006       0,     1,   102,  1228,   108,   104,  1145,    65,   912,    67,
     3007      68,    69,   916,   104,  1245,  1246,  1247,   101,    76,    77,
     3008     102,   957,   102,   101,   109,   108,   102,   111,   109,   108,
     3009     102,    31,   106,  1209,  1496,   108,   104,  1373,   108,   916,
     3010     102,   912,   108,  1187,  1188,   102,   337,   124,   104,   340,
     3011     101,   101,   956,   957,   958,   346,   101,   101,   101,   107,
     3012     102,  1209,  1356,    63,   104,  1209,    66,   102,   359,  1300,
     3013       3,   102,   363,   107,   121,   366,  1224,    10,    11,    12,
     3014      13,    14,   346,   690,  1228,  1224,   106,  1489,  1489,   104,
     3015     108,  1209,  1317,  1489,   124,   104,   108,  1490,   104,  1489,
     3016     102,   102,  1489,  1007,    37,   712,  1489,   347,  1489,   349,
     3017     102,  1287,   109,  1049,   104,   104,   104,  1510,   624,   102,
     3018     104,   412,   104,  1354,   104,    45,  1357,    60,   124,   124,
     3019     124,   124,   107,  1469,   102,   107,   427,   124,  1282,  1287,
     3020     102,   432,   107,  1287,  1372,  1373,   104,   104,   412,   440,
     3021     104,  1382,  1383,   153,    65,   104,    67,    68,    69,   104,
     3022     104,   104,   104,   427,   102,    76,    77,  1398,   432,  1287,
     3023     102,  1372,  1403,  1317,   104,   466,   440,   104,   469,   101,
     3024    1416,  1028,   101,  1087,  1088,  1416,  1411,    55,    54,   102,
     3025     101,   106,  1490,   484,   801,   486,   436,  1428,   102,   124,
     3026     111,   109,   466,   494,    65,   104,   104,   498,    69,   715,
     3027    1087,   102,  1510,   102,   104,    76,    77,   217,  1489,    89,
     3028     484,   101,   486,   729,   466,  1489,   107,   104,  1489,     0,
     3029    1295,   102,   108,   102,    40,   526,   527,    44,   102,  1470,
     3030     101,  1469,   102,   102,   109,   124,   124,   247,    89,  1480,
     3031     111,   102,  1188,    60,  1485,   102,    63,   124,  1434,    66,
     3032      31,  1489,  1490,   527,  1490,  1441,   109,  1411,  1499,   124,
     3033    1501,   102,   879,  1209,  1505,   107,   104,  1508,   104,   124,
     3034     101,   572,  1510,  1514,  1510,   124,  1434,  1518,   107,   107,
     3035    1434,   102,  1228,  1441,   124,    66,   563,  1441,  1145,   590,
     3036     591,  1205,   593,   102,   565,   564,  1126,  1483,   566,  1209,
     3037    1362,  1457,  1518,   604,  1296,   821,  1434,    65,  1472,    67,
     3038      68,    69,   567,  1441,  1228,  1322,  1441,   591,    76,    77,
     3039    1122,   622,   934,   448,  1205,  1483,   627,   144,   448,  1483,
     3040     936,   696,   633,   460,   583,   636,   637,   638,   649,   980,
     3041     157,  1287,   883,   101,   739,   103,  1489,   954,  1228,   966,
     3042     486,   109,   653,   111,   571,  1483,    10,    11,    12,    13,
     3043      14,   749,   636,   637,   638,   182,    -1,  1442,   571,   571,
     3044     671,  1317,   153,    65,   890,    67,    68,    69,   995,   653,
     3045      -1,   682,    -1,    37,    76,    77,   687,   688,   205,    -1,
     3046     691,    -1,    -1,     0,    -1,    -1,  1471,   671,    -1,    -1,
     3047     217,    -1,    -1,  1317,    -1,    -1,    60,    63,   682,   101,
     3048      -1,    -1,    -1,    -1,   688,  1272,    -1,   427,    -1,   671,
     3049      -1,    -1,    -1,   724,    31,    -1,   727,    -1,  1045,    -1,
     3050     671,    -1,    -1,    -1,  1509,   736,  1496,    -1,   739,    -1,
     3051      -1,    -1,    -1,    -1,    -1,    -1,  1521,   101,    -1,   103,
     3052     724,    -1,    -1,   727,    -1,    -1,    -1,   111,   114,    66,
     3053      -1,   762,   763,    -1,    -1,  1411,   247,   768,    -1,    -1,
     3054      -1,   252,    -1,    -1,    -1,     3,   486,    10,    11,    12,
     3055      13,    14,    10,    11,    12,    13,    14,    -1,  1434,   763,
     3056      -1,  1372,    -1,    -1,  1010,  1441,    -1,  1411,    -1,    -1,
     3057      -1,   157,  1119,   804,    37,    -1,    -1,   324,    65,    37,
     3058      67,    68,    69,   814,    -1,    -1,   817,   527,   819,    76,
     3059      77,   822,   823,   824,    63,    -1,    -1,    60,   829,  1443,
     3060     804,    -1,    60,  1049,    -1,    -1,    -1,  1483,   839,    -1,
     3061     814,    80,    -1,   817,   101,    -1,   153,    -1,   822,    -1,
     3062     824,    -1,   804,    -1,   111,   829,  1443,    -1,  1472,  1176,
     3063    1177,   217,   814,   804,    -1,   346,    -1,    -1,   101,    -1,
     3064     103,    -1,    -1,   814,    -1,   114,    -1,   829,   111,    -1,
     3065      -1,   591,  1496,   400,    -1,  1472,    -1,    -1,   829,   890,
     3066      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,   255,
     3067      67,    68,    69,   259,    -1,    -1,    -1,    -1,    -1,    76,
     3068      77,   912,    -1,    -1,    -1,    -1,   890,    -1,   157,    -1,
     3069      -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,
     3070      -1,   412,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3071     247,    -1,    -1,   653,   111,   252,   427,   948,    -1,    -1,
     3072      65,   432,    67,    68,    69,   956,   957,    -1,    -1,   440,
     3073      -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3074      -1,  1187,   973,    -1,    -1,    -1,    -1,    -1,   217,    -1,
     3075      -1,    -1,    -1,    -1,    -1,   466,   101,    -1,   103,   345,
     3076      -1,    -1,    -1,  1209,    -1,    -1,   111,    -1,    -1,   973,
     3077      -1,    -1,    -1,   484,    -1,   486,  1007,    -1,    -1,    -1,
     3078      -1,    -1,    -1,    -1,    -1,    -1,   255,   727,    -1,  1020,
     3079     259,    -1,     0,    -1,  1025,  1026,    -1,  1028,  1029,    90,
     3080      91,    92,    93,    94,    95,    96,    97,    98,    99,   346,
     3081      -1,    -1,    -1,    -1,    -1,    -1,   527,    -1,  1049,    -1,
     3082      -1,  1025,  1026,    31,  1028,  1029,    -1,    -1,    -1,    -1,
     3083    1377,    -1,   123,    -1,    -1,    -1,  1282,    -1,    -1,   425,
     3084      -1,  1287,    -1,  1025,  1026,  1049,    -1,  1394,    -1,    -1,
     3085      -1,  1082,  1083,    -1,  1025,  1026,    -1,  1088,    66,    -1,
     3086      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3087      -1,    -1,    -1,    -1,    -1,   412,   345,   817,  1082,  1083,
     3088     591,    -1,    63,    -1,   824,    -1,    -1,    -1,    -1,   475,
     3089     427,    -1,    73,    -1,    -1,   432,    -1,    -1,    -1,    -1,
     3090    1082,  1083,    -1,   440,    -1,    -1,    -1,    -1,    -1,  1456,
     3091    1457,  1082,  1083,    -1,  1145,    -1,    -1,    -1,    -1,    -1,
     3092      -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,   466,
     3093      -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,
     3094      -1,  1145,   653,    -1,    -1,   153,    -1,   484,    -1,   486,
     3095     890,    -1,    -1,    -1,    -1,    -1,   425,  1188,    -1,    -1,
     3096     671,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3097      -1,   682,    -1,    -1,  1205,    -1,   157,   688,  1209,    -1,
     3098      -1,    -1,    -1,    -1,  1188,    -1,    -1,    -1,  1434,    -1,
     3099     527,  1222,    -1,  1224,    -1,  1441,    -1,  1228,    -1,    -1,
     3100      -1,    -1,    -1,    -1,    -1,  1209,   475,    -1,    -1,    -1,
     3101     596,    -1,    -1,   724,    -1,    -1,   727,   957,  1222,    -1,
     3102    1224,    -1,  1253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3103    1261,  1262,  1263,   973,    -1,    -1,   217,  1483,   624,   247,
     3104    1222,  1272,  1273,   629,   252,    -1,    -1,    -1,    -1,  1253,
     3105      -1,    -1,   763,    -1,   591,    -1,  1287,  1261,  1262,  1263,
     3106      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1272,  1273,
     3107      -1,  1253,    -1,    -1,   255,  1306,    -1,    -1,   259,  1261,
     3108    1262,  1263,  1253,  1287,    -1,    -1,  1317,    -1,  1028,  1029,
     3109    1261,  1262,  1263,   804,   275,    -1,    -1,    -1,    -1,   636,
     3110     637,   638,  1306,   814,    -1,    -1,   817,    -1,    -1,  1049,
     3111      -1,   822,    -1,   824,    -1,    -1,   653,    -1,   829,    -1,
     3112      -1,    -1,    -1,    -1,  1306,    -1,    -1,   596,    -1,   715,
     3113      -1,    -1,    -1,    -1,   671,  1306,    -1,    -1,   346,    -1,
     3114      -1,    -1,    -1,   729,    -1,   682,    -1,    -1,    -1,    -1,
     3115      -1,   688,    -1,    -1,    -1,   624,    -1,    -1,    -1,  1390,
     3116     629,    -1,    -1,    -1,   345,    -1,    -1,    -1,    -1,    -1,
     3117      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,
     3118    1411,    -1,    -1,    -1,    -1,    -1,  1390,   724,    -1,    -1,
     3119     727,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3120      -1,    -1,    -1,  1434,   412,    -1,    -1,    -1,    -1,    -1,
     3121    1441,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,   427,
     3122      -1,    -1,    -1,    -1,   432,    -1,   763,    -1,    -1,    -1,
     3123    1434,    -1,   440,    -1,    -1,   821,    -1,  1441,    -1,    25,
     3124      26,    27,    -1,    -1,   425,    -1,   715,  1187,  1188,    -1,
     3125      -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,   466,  1490,
     3126     729,   442,   973,    -1,    -1,    -1,    -1,   804,    -1,  1209,
     3127      -1,    -1,    -1,    -1,    -1,    -1,   484,   814,   486,  1483,
     3128     817,    -1,    96,    -1,    98,   822,    -1,   824,  1228,    -1,
     3129      -1,    -1,   829,    -1,   475,    -1,    -1,    -1,    -1,    -1,
     3130      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3131      96,    -1,    98,    -1,  1025,  1026,    -1,  1028,  1029,   527,
     3132      50,    -1,    52,    -1,    -1,    55,    56,    57,    -1,    59,
     3133      -1,    -1,  1272,  1273,    -1,    -1,   122,    -1,  1049,    -1,
     3134      -1,    -1,  1282,    -1,    74,    -1,    -1,  1287,    -1,    -1,
     3135      -1,    -1,   821,   890,    -1,    -1,    86,    87,    -1,    -1,
     3136      -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
     3137      -1,  1082,  1083,   187,   188,    -1,    -1,  1317,   192,    -1,
     3138     194,   195,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
     3139      -1,   177,    -1,    -1,    10,    11,    12,    13,    14,   185,
     3140      -1,   187,   188,    -1,    -1,    -1,   192,    -1,   194,   195,
     3141      -1,    -1,    -1,    -1,    -1,   596,    -1,    -1,    -1,    -1,
     3142      -1,    37,    -1,    -1,  1010,   185,    -1,    -1,   636,   637,
     3143     638,    -1,   192,    -1,  1145,    -1,   973,    -1,    -1,    -1,
     3144      -1,    -1,    -1,   624,    60,   653,    -1,    -1,   629,    65,
     3145    1390,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
     3146      76,    77,    -1,   671,    -1,    -1,    -1,    -1,    -1,    -1,
     3147      -1,  1411,    -1,    -1,   682,    -1,    -1,  1188,   264,    -1,
     3148     688,    -1,    -1,    -1,    -1,   101,    -1,   103,  1025,  1026,
     3149      -1,  1028,  1029,    -1,  1434,   111,    -1,    -1,  1209,    -1,
     3150      -1,  1441,    -1,    -1,   264,    -1,    -1,    -1,    -1,    -1,
     3151      -1,  1222,  1049,  1224,    -1,    -1,   724,    -1,    -1,   727,
     3152      -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,
     3153      13,    14,    -1,    -1,   715,    -1,    -1,    -1,    -1,    -1,
     3154      -1,  1010,  1253,  1483,    -1,  1082,  1083,    -1,   729,    -1,
     3155    1261,  1262,  1263,    -1,    37,   763,    -1,    -1,    -1,   319,
     3156      -1,  1272,  1273,    -1,    -1,    -1,    -1,   327,   749,    -1,
     3157     330,    -1,    -1,    -1,    -1,    -1,  1287,    60,    -1,    -1,
     3158      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3159      -1,    -1,    -1,    76,    77,  1306,   804,    -1,    -1,    -1,
     3160      -1,  1187,    -1,    -1,    -1,    -1,   814,    -1,  1145,   817,
     3161     340,   341,    -1,    -1,   822,    -1,   824,    -1,   101,    -1,
     3162     103,   829,   352,   353,    -1,    -1,    -1,    -1,   111,    -1,
     3163      -1,    -1,   392,    -1,    -1,    -1,   396,    -1,    -1,    -1,
     3164     821,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3165      -1,  1188,    -1,    -1,    10,    11,    12,    13,    14,    15,
     3166      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3167      26,    27,  1209,    29,    30,    31,    -1,    -1,    -1,  1390,
     3168      -1,    37,   890,    -1,    -1,  1222,    -1,  1224,    -1,    -1,
     3169      -1,    -1,    -1,    -1,    -1,    -1,  1282,    -1,    -1,    -1,
     3170      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3171      -1,    67,    68,    -1,    -1,    71,  1253,    -1,  1187,    -1,
     3172      -1,   481,    -1,  1434,  1261,  1262,  1263,    -1,    -1,    -1,
     3173    1441,    -1,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,
     3174      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3175    1287,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3176      -1,   575,   576,    -1,    -1,   973,    -1,    -1,    -1,  1306,
     3177      -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3178      10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,   575,
     3179     576,   605,    -1,    -1,   608,   609,    -1,   611,    -1,   613,
     3180     614,    -1,    -1,    -1,   618,   619,    -1,    37,    -1,    -1,
     3181      -1,   571,   572,  1282,    -1,    -1,    -1,  1025,  1026,   605,
     3182    1028,  1029,   608,   609,    -1,   611,    -1,   613,   614,  1010,
     3183      60,    -1,   618,   619,    -1,    65,    -1,    67,    68,    69,
     3184      -1,  1049,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3185      -1,    -1,    -1,  1390,    -1,    -1,    -1,    -1,    -1,     7,
    30893186      -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3090       -1,    -1,   473,    -1,    -1,    -1,    -1,   482,   801,   484,
    3091       -1,    -1,    -1,    -1,  1075,  1076,    -1,    -1,   811,    37,
    3092     1081,   814,   479,  1213,    -1,    -1,   819,    -1,   821,   425,
    3093       -1,    -1,    -1,   826,    -1,    -1,    -1,    -1,    -1,    -1,
    3094      247,    -1,    60,    -1,    -1,   252,    -1,    65,    -1,    -1,
    3095      525,    69,  1242,    -1,    -1,   177,    -1,    -1,    76,    77,
    3096     1250,  1251,  1252,    -1,    -1,   187,   188,  1004,    -1,    -1,
    3097      192,    -1,   194,   195,    -1,  1136,    -1,    -1,    -1,    -1,
    3098       -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,   484,    -1,
    3099       -1,    -1,    -1,   111,   887,    65,    -1,    67,    68,    69,
    3100       -1,    -1,    -1,    -1,  1294,    -1,    76,    77,    -1,    -1,
    3101       -1,     0,   569,   570,   589,    -1,    -1,    -1,  1179,    -1,
    3102       -1,    -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,   525,
    3103       -1,   101,    -1,   103,    -1,  1196,    -1,    -1,   345,  1200,
    3104       -1,   111,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3105       -1,   622,  1213,    -1,  1215,    -1,   627,    -1,  1219,   634,
    3106      635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3107       -1,    -1,    -1,    -1,   967,    -1,   651,    66,    -1,    -1,
    3108       -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1250,
    3109     1251,  1252,    -1,   589,   669,    -1,    -1,    -1,    -1,   656,
    3110     1261,  1262,    -1,   660,   411,   680,    -1,    -1,    -1,    -1,
    3111       -1,   686,    -1,    -1,  1275,    -1,    -1,    -1,   425,    -1,
    3112       -1,    -1,    -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,
    3113     1023,   438,    -1,  1294,    -1,    -1,   693,    -1,   634,   635,
    3114      636,  1178,   713,    -1,  1305,    -1,    -1,   722,    -1,  1042,
    3115      725,    -1,    -1,    -1,    -1,   651,   727,   464,    -1,    -1,
    3116       -1,    -1,    -1,    -1,   153,    -1,    -1,    -1,    -1,    -1,
    3117       -1,    -1,    -1,    -1,    -1,   482,   747,   484,    -1,    -1,
    3118       -1,    -1,  1075,  1076,    -1,   760,    -1,    -1,    -1,    -1,
    3119       -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3187      -1,   101,    -1,   103,  1082,  1083,    -1,    -1,    -1,    -1,
     3188      -1,   111,    -1,    -1,    -1,    -1,   700,   701,    36,    37,
     3189      38,    -1,   706,    -1,    -1,    -1,    -1,  1434,   658,    -1,
     3190      -1,    -1,   662,    -1,  1441,    -1,    -1,    -1,    -1,   695,
     3191      -1,    59,    60,    -1,   700,   701,    -1,    65,    -1,    -1,
     3192     706,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3193      -1,    79,    80,    -1,    -1,   695,    -1,  1145,    -1,    87,
     3194      -1,    -1,    -1,    -1,    -1,    -1,  1483,    -1,    -1,    -1,
     3195      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3196      44,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3197      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
     3198    1188,    -1,    -1,    -1,    -1,    -1,   716,    -1,   718,    -1,
     3199      -1,    -1,    -1,    -1,    -1,   725,   726,    -1,    -1,    -1,
     3200     730,  1209,    -1,    -1,    -1,    -1,  1187,    -1,    -1,    -1,
     3201      -1,    -1,   742,    -1,  1222,    -1,  1224,   747,    -1,    -1,
     3202      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     3203     114,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
     3204      -1,    -1,   772,    -1,    -1,  1253,    -1,    -1,   808,    -1,
     3205      -1,    -1,    -1,  1261,  1262,  1263,    -1,    -1,    -1,   143,
     3206      37,    -1,    -1,    -1,  1272,  1273,    -1,    -1,    -1,   153,
     3207      -1,    -1,    -1,   157,    -1,    -1,    -1,    -1,    -1,  1287,
     3208      -1,    -1,    -1,    60,    -1,    -1,   816,    -1,    65,    -1,
     3209      67,    68,    69,    -1,    -1,    -1,    -1,    -1,  1306,    76,
     3210      77,  1282,    -1,    10,    11,    12,    13,    14,    15,    16,
     3211      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3212      -1,   205,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
     3213      37,    -1,    -1,   217,   111,     7,    -1,    -1,    10,    11,
     3214      12,    13,    14,   873,   874,   875,   876,    -1,   878,    -1,
     3215      -1,   235,   236,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3216     920,    -1,    -1,   893,    36,    37,    38,    -1,    10,    11,
     3217      12,    13,    14,    -1,    -1,   259,    -1,   907,    -1,    -1,
     3218      -1,    -1,  1390,   267,    -1,    -1,    -1,    59,    60,    -1,
     3219      -1,    -1,    -1,    65,    -1,    37,    -1,    69,    -1,    -1,
     3220      72,    73,    74,    75,    76,    77,   290,    79,    80,   293,
     3221      -1,    -1,    -1,    -1,    -1,    87,   946,    -1,    60,    -1,
     3222      -1,    -1,    -1,    65,    -1,    -1,  1434,    69,    -1,   101,
     3223      -1,   103,    -1,  1441,    76,    77,    -1,   997,   110,   111,
     3224     112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
     3225      -1,    -1,    -1,  1013,    -1,   985,   340,    -1,    -1,   101,
     3226      -1,   345,   992,    -1,    -1,    -1,   996,    -1,    -1,   111,
     3227    1084,  1001,    -1,  1003,    -1,  1483,    -1,  1007,  1008,  1009,
     3228      -1,    -1,  1012,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3229      -1,  1021,    -1,    -1,    -1,    -1,    -1,    -1,  1084,    -1,
     3230      -1,    63,    -1,    10,    11,    12,    13,    14,    -1,  1039,
     3231    1040,    73,    -1,    75,    -1,    77,    -1,    -1,    -1,    -1,
     3232      -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,  1089,
     3233      37,    -1,    -1,    -1,    -1,  1065,   420,   421,  1068,    -1,
     3234      -1,    -1,    -1,   427,    -1,    -1,    -1,    -1,    -1,    -1,
     3235      -1,    -1,   114,    60,   116,   117,   118,    -1,    65,    -1,
     3236      67,    68,    69,    -1,   448,    -1,    -1,   451,    -1,    76,
     3237      77,    -1,    -1,   457,    -1,    -1,  1106,    -1,    -1,    -1,
     3238      -1,    -1,  1112,  1113,    -1,    -1,    -1,    -1,    -1,    -1,
     3239      -1,    -1,  1206,  1123,   101,   157,    -1,    -1,  1128,    -1,
     3240     484,  1131,    -1,  1133,   111,    -1,  1136,    -1,    -1,    -1,
     3241      -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,  1149,
     3242    1206,    43,    -1,    -1,   508,    -1,    -1,    -1,   512,    -1,
     3243     514,   515,  1162,    -1,  1164,  1165,  1166,  1167,    -1,    -1,
     3244      -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,    -1,
     3245    1180,    -1,  1182,    -1,    -1,   217,  1186,   219,   220,   221,
     3246      -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
     3247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,
     3248      -1,    -1,    -1,    -1,  1214,  1215,    -1,    -1,    -1,    -1,
     3249      -1,    -1,    -1,   255,    -1,   579,    -1,   259,    -1,    -1,
     3250      -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,    -1,   593,
     3251      -1,    -1,   596,   275,    10,    11,    12,    13,    14,    15,
     3252      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3253      26,    27,   154,    -1,  1264,  1265,    -1,    -1,   622,    -1,
     3254      -1,    37,    -1,   627,  1274,   167,    -1,    -1,    -1,    -1,
     3255      -1,    -1,   636,   637,   638,    -1,    -1,    -1,    -1,    -1,
     3256      -1,    -1,   324,    -1,    60,    -1,    -1,    -1,   190,   653,
     3257      -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
     3258      -1,    -1,   204,   345,    -1,    -1,    -1,    -1,   350,   351,
     3259      -1,   213,    -1,  1323,    -1,    -1,   358,    -1,    -1,    -1,
     3260      -1,   223,    -1,    -1,   688,  1335,    -1,  1337,  1338,  1339,
     3261      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1349,
     3262      -1,    -1,    -1,    -1,    -1,   709,   248,    -1,  1358,    -1,
     3263      -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,
     3264    1370,    -1,    -1,   727,   266,   729,    -1,    -1,    -1,    -1,
     3265     272,    -1,   274,    -1,    -1,    -1,   418,    -1,    -1,    -1,
     3266      -1,   423,    -1,   425,    -1,    -1,    -1,    -1,    -1,   291,
     3267      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   763,
     3268     442,    -1,    -1,   445,   446,    -1,    -1,    -1,    -1,    -1,
     3269      -1,  1421,  1422,    -1,    -1,    -1,    -1,    -1,    -1,   461,
     3270      -1,    -1,    -1,    -1,  1434,    -1,    -1,    -1,    -1,    -1,
     3271      -1,  1441,   334,   475,    -1,    -1,    -1,   339,    -1,    -1,
     3272     482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3273      -1,    -1,    -1,   817,    36,    -1,    38,   821,  1468,    -1,
     3274     824,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,   371,
     3275     372,    -1,   374,    -1,    -1,    -1,    -1,    59,   380,   381,
     3276      -1,   383,   384,    65,   386,  1495,   388,    69,    -1,    -1,
     3277      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3278      -1,    -1,    -1,   405,    -1,    87,    -1,    -1,    -1,    -1,
     3279    1520,   413,    -1,    -1,    -1,  1525,    -1,    -1,    -1,   101,
     3280      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3281     112,   113,   114,   115,    -1,    -1,   438,    -1,    -1,    -1,
     3282      -1,    -1,   124,    -1,    -1,    -1,    -1,   449,    -1,    -1,
     3283      -1,    -1,   916,    -1,   596,    -1,    -1,    -1,    -1,    -1,
     3284      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3285     472,    -1,    -1,    -1,    -1,    -1,   478,    -1,    -1,    -1,
     3286      -1,   483,   624,    59,    -1,    -1,    -1,   629,    -1,    65,
     3287      -1,    67,    68,    69,   958,    -1,    72,    73,    74,    75,
     3288      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,   973,
     3289      -1,    87,    -1,    -1,    -1,    -1,    -1,   519,    -1,    -1,
     3290      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,   105,
     3291     106,    -1,    -1,   535,   110,   111,   112,   113,   114,   115,
     3292      -1,    -1,    -1,  1007,    -1,    -1,    -1,    10,    11,    12,
     3293      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3294      23,    24,    25,    26,  1028,  1029,    29,    30,    31,   571,
     3295      -1,    -1,    -1,   715,    37,    -1,    -1,    -1,   580,    -1,
     3296      -1,    -1,    -1,    -1,    -1,   587,    -1,   729,    -1,    -1,
     3297     592,    -1,    -1,    36,    -1,    38,    -1,    60,    -1,    -1,
     3298      -1,   603,    65,    -1,    67,    68,    69,   749,    -1,    -1,
     3299      -1,    -1,    -1,    76,    77,    -1,    59,    -1,    -1,    -1,
     3300      -1,    -1,    65,  1087,    -1,    -1,    69,    -1,    -1,    72,
     3301      73,    74,    75,    76,    77,    -1,    79,    80,   101,    -1,
     3302     103,   643,    -1,    -1,    87,    -1,    -1,    -1,   111,    -1,
     3303      -1,    -1,    -1,   143,    -1,    -1,    -1,    -1,   101,    -1,
     3304     103,    -1,    -1,   153,    -1,   108,   808,   110,   111,   112,
     3305     113,   114,   115,    -1,    -1,   165,   678,    -1,    -1,   821,
     3306      -1,  1145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3307      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   840,     4,
     3308       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    31203309      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3121       25,    26,    -1,  1374,    29,    30,    31,    -1,   525,    -1,
    3122       -1,    -1,    37,    38,    -1,    -1,   801,    -1,    -1,   725,
    3123       -1,    -1,    -1,  1270,  1395,    -1,   811,    -1,    -1,   814,
    3124       -1,    -1,    -1,  1136,   819,    60,   821,   818,   805,    -1,
    3125       -1,   826,    67,    68,    -1,  1416,    -1,    -1,   247,    -1,
    3126       -1,    -1,  1423,   252,    -1,    -1,    -1,    -1,    -1,    -1,
    3127       -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3128       14,    -1,   589,    -1,    -1,    -1,  1179,    -1,   103,    -1,
    3129       -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3130       -1,  1462,    65,    37,    67,    68,    69,  1200,  1469,    -1,
    3131       -1,    -1,   887,    76,    77,    -1,    -1,    -1,   814,    -1,
    3132     1213,    -1,  1215,    -1,    -1,   821,    60,   634,   635,   636,
    3133       -1,    65,    -1,    67,    68,    69,    -1,    -1,   101,    -1,
    3134      103,    -1,    76,    77,   651,    -1,    -1,    -1,   111,  1242,
    3135       -1,   573,   574,    -1,    -1,    -1,   345,  1250,  1251,  1252,
    3136      917,    -1,   669,    -1,    -1,    -1,    -1,   101,  1261,  1262,
    3137       -1,    -1,    -1,   680,    -1,    -1,    -1,   111,    -1,   686,
    3138       -1,   603,  1275,    -1,   606,   607,    -1,   609,    -1,   611,
    3139      612,   887,   967,    -1,   616,   617,    -1,    -1,    -1,    -1,
    3140       -1,  1294,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3141       -1,    -1,    -1,    -1,    -1,   722,    -1,    -1,   725,    -1,
    3142       -1,    -1,   411,    -1,    -1,    -1,    65,    -1,    67,    68,
    3143       69,    -1,    -1,  1004,   991,    -1,   425,    76,    77,    -1,
    3144       -1,   430,    -1,    -1,  1019,  1020,    -1,  1022,  1023,   438,
    3145     1007,    -1,    -1,   760,    50,    -1,    52,   953,    -1,    55,
    3146       56,    57,   101,    59,   103,    -1,    -1,  1042,    -1,    -1,
    3147       -1,   967,   111,    -1,    -1,   464,   698,   699,    74,    -1,
    3148       -1,  1374,   704,    10,    11,    12,    13,    14,    -1,    -1,
    3149       86,    87,    -1,   482,   801,   484,    -1,    -1,    -1,    -1,
    3150     1075,  1076,    -1,    -1,   811,    -1,    -1,   814,    -1,    -1,
    3151       37,    -1,   819,    -1,   821,    -1,    -1,    -1,    -1,   826,
    3152       -1,    -1,    -1,  1416,    -1,  1082,  1022,  1023,    -1,    -1,
    3153     1423,    -1,    -1,    60,    -1,    -1,   525,    -1,    65,    -1,
    3154       67,    68,    69,    -1,    -1,    -1,  1042,    -1,    -1,    76,
    3155       77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3156       -1,  1136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1462,
    3157       -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
    3158      887,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3310      25,    26,    -1,  1187,    29,    30,    31,    -1,    -1,    -1,
     3311      -1,   733,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3312      -1,   743,   744,   152,   153,   235,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    -1,    -1,   756,    60,    -1,    62,    -1,    64,
     3314    1224,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
     3315     260,   773,    -1,   775,    -1,    -1,   185,   779,    -1,    -1,
     3316      -1,    -1,    -1,   192,   926,    -1,    -1,    -1,    -1,    -1,
     3317      -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,
     3318      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,  1272,  1273,
     3319     952,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1282,    10,
     3320      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3321      21,    22,    23,    24,    25,    26,    -1,   979,    29,    30,
     3322      31,    -1,   844,    -1,    -1,    -1,    37,    38,    -1,   851,
     3323      -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,    -1,    -1,
     3324      -1,    -1,   864,    -1,   866,    -1,    -1,    -1,  1010,    60,
     3325      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,   880,  1021,
     3326      -1,    -1,    -1,    -1,   886,   375,    -1,    -1,    -1,    -1,
     3327      -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,    -1,   901,
    31593328      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3160      589,    -1,    -1,    -1,  1179,    -1,    -1,  1178,    10,    11,
     3329     319,    -1,   103,    -1,    -1,    -1,   107,   919,   327,   328,
     3330     111,   330,   331,    -1,    -1,    -1,  1390,    -1,    -1,    -1,
     3331      -1,   340,    -1,    -1,    -1,   344,    -1,    36,    -1,    38,
     3332      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    -1,    -1,   363,    -1,    -1,   366,    -1,  1101,
     3334      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3335      69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1443,
     3336      79,    80,    -1,   392,    -1,    -1,   476,   396,    87,    -1,
     3337      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3338      -1,    -1,   101,    -1,  1006,    -1,    -1,    -1,  1472,    -1,
     3339      -1,   110,   111,   112,   113,   114,   115,    -1,   427,    -1,
     3340      -1,    -1,    -1,    -1,   514,    -1,    -1,    -1,    -1,    -1,
     3341      -1,    -1,  1496,    -1,    -1,    -1,    -1,   527,    -1,    -1,
     3342      -1,   450,    -1,    -1,   534,  1187,    -1,    36,    -1,    38,
     3343      -1,    -1,    -1,    -1,    -1,    -1,    -1,   547,   548,    -1,
     3344    1062,    -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,    -1,
     3345      59,    -1,   481,    -1,    -1,   484,    65,    -1,    -1,   569,
     3346      69,    -1,    -1,    72,    73,    74,    75,    76,    77,   579,
     3347      79,    80,    -1,    -1,    -1,  1097,   586,    -1,    87,    -1,
     3348    1102,   591,    -1,    -1,    -1,    -1,    -1,    -1,  1110,    -1,
     3349      -1,    -1,   101,    -1,   523,    -1,    -1,   526,   527,    -1,
     3350      -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,    -1,
     3352    1282,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3353    1152,   641,    -1,  1155,    -1,  1157,    -1,    -1,   648,    -1,
     3354      -1,    -1,   571,   572,    -1,    -1,    -1,    -1,    -1,  1171,
     3355    1172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3356      -1,   590,   591,    -1,   593,    -1,    -1,    -1,    -1,    -1,
     3357      -1,  1193,    -1,   602,    -1,   604,   605,    -1,   688,    -1,
     3358      -1,    -1,   611,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,   621,   622,    -1,    -1,    -1,  1219,   627,    -1,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,
     3361      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3362      -1,    -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,
     3363     659,    -1,    -1,   662,   663,    -1,    -1,    -1,    -1,    -1,
     3364     669,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,    -1,   763,    -1,   765,    -1,    -1,   687,   688,
     3366     689,   771,   691,    -1,    -1,    -1,   695,    -1,   778,    -1,
     3367      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3368      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3369    1312,    -1,  1314,    -1,    -1,    -1,    -1,    -1,   727,   728,
     3370      -1,    -1,    -1,    59,    -1,  1327,    -1,  1329,    -1,    65,
     3371      -1,   821,   822,    69,   824,    -1,    72,    73,    74,    75,
     3372      76,    77,    -1,    79,    80,  1347,    -1,    -1,    -1,   839,
     3373      -1,    87,    -1,   762,   763,    -1,    -1,    -1,   767,   768,
     3374      -1,  1363,    -1,    -1,    -1,   101,    -1,   103,  1510,  1371,
     3375     106,    -1,  1374,    -1,   110,   111,   112,   113,   114,   115,
     3376      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   879,
     3377      -1,    -1,    -1,   883,  1396,    -1,    -1,    -1,    -1,   808,
     3378      -1,    -1,    -1,  1405,    -1,    -1,  1408,  1409,   817,    -1,
     3379      -1,    -1,    -1,    -1,   823,   824,    -1,    -1,    -1,   828,
     3380      -1,   830,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,
     3381      -1,   840,   287,   288,    -1,    -1,    -1,   292,   293,    -1,
     3382      -1,    -1,    -1,  1445,    -1,  1447,    -1,    -1,    -1,   304,
     3383      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1461,
     3384      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   958,    -1,
     3385      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3386      -1,    -1,    -1,   973,   974,   340,    -1,    -1,    -1,    -1,
     3387     980,    -1,    -1,    -1,    -1,    -1,   986,    -1,    -1,   989,
     3388      -1,   991,    -1,   912,    -1,    -1,    -1,    36,    -1,    38,
     3389      -1,   920,    -1,    -1,    -1,    -1,    -1,   926,    -1,    -1,
     3390    1010,   376,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,
     3391      59,  1021,    -1,    -1,    -1,    -1,    65,    -1,   947,   948,
     3392      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3393      79,    80,    -1,  1043,    -1,  1045,    -1,    -1,    87,    -1,
     3394      -1,    -1,    -1,    -1,   973,    -1,    -1,    -1,    -1,    -1,
     3395     979,  1061,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3396     109,   110,   111,   112,   113,   114,   115,    -1,   997,   998,
     3397    1080,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1007,    -1,
     3398      -1,    -1,    -1,    -1,  1013,  1014,    -1,  1016,  1017,  1018,
     3399      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,  1028,
     3400    1029,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3401      -1,    -1,    -1,    59,    -1,    -1,  1126,    -1,    -1,    65,
     3402      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     3403      76,    77,    -1,    79,    80,  1145,    -1,    -1,    -1,    -1,
     3404      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3405    1160,  1161,    -1,    -1,    -1,   101,    -1,   103,    -1,  1088,
     3406    1089,  1090,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3407      -1,    -1,  1101,    -1,    -1,   550,   551,   552,   553,   554,
     3408     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     3409     565,   566,   567,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3410      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3411      -1,    -1,    -1,    -1,    -1,    -1,  1145,    -1,   593,    -1,
     3412      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1239,
     3413      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3414      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,
     3415       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3416      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3417      26,    -1,    -1,    29,    30,    31,  1205,    -1,    -1,    -1,
     3418      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,  1224,    -1,    -1,    -1,    -1,
     3420      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,
     3421      -1,    67,    68,    69,    -1,   690,    72,    73,    74,    75,
     3422      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3423      -1,    87,    -1,    -1,    -1,    -1,    -1,   712,    -1,    -1,
     3424      -1,    -1,    -1,  1272,  1273,   101,    -1,   103,    -1,    -1,
     3425     725,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
     3426      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3427      -1,  1381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3428      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3429      -1,    -1,    -1,    -1,    -1,   770,    -1,    -1,    -1,    -1,
     3430      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    31613431      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3162       22,    23,    24,    25,    26,  1200,    -1,    29,    30,    31,
    3163       -1,    -1,    -1,    -1,    -1,    37,    38,    -1,  1213,    -1,
    3164     1215,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,    -1,
    3165       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3166      967,    -1,   651,    -1,    -1,    67,    68,  1242,    -1,    -1,
    3167       -1,    -1,    -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,
    3168      669,    -1,  1178,  1179,    -1,    -1,  1261,  1262,    -1,    -1,
    3169       -1,   680,    -1,    -1,    -1,    -1,    -1,   686,    -1,  1270,
    3170     1275,   103,    -1,    -1,  1200,   107,    -1,    -1,    -1,   111,
    3171       -1,    -1,  1019,  1020,    -1,  1022,  1023,    -1,    -1,  1294,
    3172       -1,    -1,    -1,  1219,    -1,    -1,    -1,    -1,    -1,    -1,
    3173       -1,    -1,    -1,   722,    -1,  1042,   725,    -1,    -1,    -1,
    3174       -1,    -1,    -1,   339,   340,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,    -1,   351,   352,    -1,    -1,    -1,
    3176       -1,    -1,    -1,    -1,    -1,  1261,  1262,    -1,  1075,  1076,
    3177       -1,   760,    -1,    -1,  1270,    -1,    -1,    -1,    -1,  1275,
    3178       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3179       19,    20,    21,    22,    23,    24,    25,    26,    27,  1374,
    3180       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,  1305,
    3181       -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3182       -1,    -1,   811,    -1,    -1,   814,    -1,    -1,    -1,  1136,
    3183      819,    60,   821,    -1,    -1,    -1,    -1,   826,    67,    68,
    3184       -1,  1416,    71,    -1,    -1,    -1,    -1,    -1,  1423,    -1,
    3185       -1,    -1,    -1,    -1,    -1,  1077,    -1,    10,    11,    12,
    3186       13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3187       -1,    -1,  1179,    -1,   103,    -1,    -1,    -1,  1374,    -1,
    3188       -1,    -1,   111,    -1,    37,    -1,    -1,  1462,    -1,    -1,
    3189       -1,    -1,    -1,  1200,    -1,    -1,    -1,    -1,   887,  1395,
    3190       -1,    -1,    -1,    -1,    -1,    -1,  1213,    60,  1215,    -1,
    3191       -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
    3192     1416,    -1,    -1,    76,    77,    -1,    -1,  1423,    -1,    -1,
    3193       -1,    -1,    -1,    -1,    -1,  1242,    -1,    -1,    -1,    -1,
    3194       -1,    -1,    -1,  1250,  1251,  1252,    -1,    -1,   101,    -1,
    3195      103,    -1,    -1,    -1,  1261,  1262,    -1,    -1,   111,    -1,
    3196       -1,    -1,    -1,    -1,    -1,    -1,  1462,    -1,  1275,    -1,
    3197       -1,    -1,    -1,    -1,    -1,  1197,    -1,    -1,   967,    -1,
    3198       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,    -1,     7,
    3199       -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3200       -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
    3201       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,    37,
    3202       38,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,
    3203     1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,    -1,    -1,
    3204       -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    3205       -1,    69,    -1,  1042,    72,    73,    74,    75,    76,    77,
    3206       -1,    79,    80,    -1,    -1,    -1,    -1,  1374,    -1,    87,
    3207       -1,   109,    -1,    -1,    -1,    -1,   114,    -1,    -1,    -1,
    3208       -1,    -1,    -1,   101,    -1,   103,  1075,  1076,    -1,    -1,
    3209       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3210       -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,  1416,
    3211       -1,    -1,    -1,    -1,    -1,   153,  1423,    -1,   714,   157,
    3212      716,    -1,    -1,    -1,    -1,    -1,    -1,   723,   724,    -1,
    3213       -1,    -1,   728,    -1,     7,    -1,    -1,    10,    11,    12,
    3214       13,    14,    -1,    -1,   740,    -1,    -1,  1136,    -1,   745,
    3215       -1,    -1,    -1,    -1,    -1,  1462,    -1,    -1,    -1,    -1,
    3216       -1,    -1,    -1,    36,    37,    38,    -1,   205,    -1,    -1,
    3217       -1,    -1,    -1,   769,    -1,    -1,    -1,    -1,    -1,   217,
    3218       -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
    3219     1179,    -1,    65,    -1,    -1,    -1,    69,   235,   236,    72,
    3220       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3221       -1,  1200,    -1,    -1,    87,    -1,    -1,   813,    -1,    -1,
    3222       -1,   259,    -1,    -1,  1213,    -1,  1215,    -1,   101,   267,
    3223      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3224      113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3225       -1,   289,    -1,  1242,   292,    -1,    -1,    -1,    -1,    -1,
    3226       -1,  1250,  1251,  1252,    -1,    -1,    -1,    -1,    -1,    -1,
    3227       -1,    -1,  1261,  1262,   870,   871,   872,   873,    -1,   875,
    3228       -1,    -1,    -1,    -1,    -1,    -1,  1275,    -1,    -1,    -1,
    3229       -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,    -1,    -1,
    3230       -1,   339,    -1,    -1,    -1,  1294,   344,    -1,   904,    -1,
    3231       -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
    3232       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3233       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3234       30,    31,    32,    -1,    -1,    35,   942,    37,    -1,    -1,
    3235       -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
    3236       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3237       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
    3238       -1,   419,   420,   979,    -1,  1374,    -1,   425,    -1,    -1,
    3239      986,    -1,    -1,    -1,   990,    -1,    -1,    -1,    -1,   995,
    3240       -1,   997,    -1,    -1,    -1,  1001,  1002,  1003,   446,    -1,
    3241     1006,   449,    -1,   103,    -1,    -1,    -1,   455,    -1,  1015,
    3242       -1,   111,    -1,    96,    -1,    98,    -1,  1416,    -1,    -1,
    3243       -1,    -1,    -1,    -1,  1423,    -1,    -1,  1033,  1034,    10,
    3244       11,    12,    13,    14,   482,    -1,    -1,    -1,    -1,   122,
    3245       -1,    -1,    -1,    -1,    -1,    -1,   494,    -1,    -1,    -1,
    3246       -1,    -1,  1058,    -1,    -1,  1061,    37,    -1,    -1,   507,
    3247       -1,    -1,   510,  1462,   512,   513,    -1,    -1,    -1,    -1,
    3248       -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,    60,
    3249       -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
    3250       -1,    -1,    -1,  1099,   177,    76,    77,    -1,    -1,  1105,
    3251     1106,    -1,   185,    -1,   187,   188,    -1,    -1,  1114,   192,
    3252       -1,   194,   195,  1119,    -1,    -1,  1122,    -1,  1124,    -1,
    3253      101,  1127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   577,
    3254      111,    -1,    -1,    -1,  1140,    -1,    -1,    -1,    -1,    -1,
    3255       -1,   589,    -1,   591,    -1,    -1,   594,  1153,    -1,  1155,
    3256     1156,  1157,  1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3257       -1,    -1,    -1,    -1,    -1,  1171,    -1,  1173,    -1,    -1,
    3258       -1,  1177,   620,    -1,    -1,    -1,    -1,   625,    -1,    -1,
    3259       -1,   264,    -1,    -1,    -1,    -1,   634,   635,   636,    -1,
    3260       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1205,
    3261     1206,    -1,    -1,   651,    -1,    -1,    -1,    63,    -1,    -1,
    3262       -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    75,
    3263       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
    3264       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,
    3265       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1253,  1254,    -1,
    3266       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1263,   114,   707,
    3267      116,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3268       -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,    -1,   727,
    3269       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
    3270       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271       -1,   157,    -1,  1309,    -1,    -1,    -1,    -1,    -1,    -1,
    3272       -1,    -1,   760,    -1,    -1,  1321,    -1,  1323,  1324,  1325,
    3273       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,
    3274       -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,  1344,    -1,
    3275       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3276     1356,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3277       -1,   217,    -1,   219,   220,   221,   814,    -1,    -1,    -1,
    3278      818,    -1,    -1,   821,    -1,    -1,    -1,    -1,    -1,    -1,
    3279       -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3280       -1,    99,    -1,    -1,    -1,    -1,    -1,  1403,  1404,   255,
    3281       -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,    -1,    -1,
    3282     1416,    -1,    -1,    -1,    -1,    -1,    -1,  1423,    -1,   275,
    3283       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3284       20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
    3285       30,    31,  1448,    -1,    -1,    -1,   154,    37,    -1,    -1,
    3286       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,
    3287       -1,    -1,    -1,    -1,    -1,   913,    -1,   323,  1474,    -1,
    3288       60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
    3289       -1,    71,   190,    -1,    -1,    -1,    76,    77,   344,    -1,
    3290      573,   574,  1498,   349,   350,    -1,   204,  1503,    -1,    -1,
    3291       -1,   357,    -1,    -1,    -1,   213,   954,    -1,    -1,    -1,
    3292       -1,   101,    -1,   103,    -1,   223,    -1,    -1,    -1,   967,
    3293      603,   111,    -1,   606,   607,    -1,   609,    -1,   611,   612,
    3294       -1,    -1,    -1,   616,   617,    -1,    -1,    -1,    -1,    -1,
    3295      248,    -1,    -1,   399,    -1,   253,    -1,    -1,    -1,    -1,
    3296       -1,    -1,    -1,  1001,    -1,    -1,    -1,    -1,   266,    -1,
    3297       -1,   417,    -1,    -1,   272,    -1,   274,   423,    -1,    -1,
    3298       -1,    -1,    -1,    -1,  1022,  1023,    -1,    -1,    -1,    -1,
    3299       -1,    -1,   290,    -1,   440,    -1,    -1,   443,   444,    -1,
    3300       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3301       -1,    -1,    -1,   459,    -1,    -1,    -1,    -1,    -1,    -1,
    3302      693,    -1,    -1,    -1,    -1,   698,   699,   473,    -1,    -1,
    3303       -1,   704,    -1,    -1,   480,   333,    -1,    -1,    -1,    -1,
    3304      338,    -1,  1080,     3,     4,     5,     6,     7,     8,     9,
    3305       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3306       20,    21,    22,    23,    24,    25,    26,    -1,   366,    29,
    3307       30,    31,   370,   371,    -1,   373,    -1,    37,    -1,    -1,
    3308       -1,   379,   380,    -1,   382,   383,    -1,   385,    -1,   387,
    3309       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1136,    -1,
    3310       60,    -1,    62,    -1,    64,    65,   404,    67,    68,    69,
    3311       -1,    -1,    -1,    -1,   412,    -1,    76,    77,    -1,    -1,
    3312       -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
    3313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
    3314     1178,   101,    -1,   103,    -1,    -1,    59,    -1,   594,   447,
    3315       -1,   111,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    3316       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3317       -1,    -1,   470,    -1,    87,    -1,   622,  1215,   476,    -1,
    3318       -1,   627,    -1,   481,    -1,    -1,    -1,    -1,   101,    -1,
    3319      103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
    3320      113,   114,   115,    -1,    -1,    -1,    -1,    -1,   152,   153,
    3321       -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   517,
    3322       -1,    -1,    -1,  1261,  1262,    -1,    -1,    -1,    -1,    -1,
    3323       -1,    -1,  1270,    -1,    -1,   533,    -1,    -1,    -1,    -1,
    3324       -1,   185,    -1,    -1,    -1,    -1,    -1,    -1,   192,    10,
    3325       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3326       21,    22,    23,    24,    25,    26,    -1,   713,    29,    30,
    3327       31,   569,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    3328      578,   727,    -1,    -1,    -1,    -1,    -1,   585,    -1,    -1,
    3329       -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3330       -1,   747,    -1,   601,    65,    -1,    67,    68,    69,    -1,
    3331       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3332      264,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    -1,    -1,  1374,    -1,    -1,    -1,
    3334      101,    -1,   103,   641,    -1,   106,    -1,    -1,    -1,   110,
    3335      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   805,
    3336       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3337       -1,    -1,   818,    -1,   318,    -1,    -1,    -1,   676,    -1,
    3338       -1,    -1,   326,   327,    -1,   329,   330,  1425,    -1,    -1,
    3339       -1,   837,    -1,    -1,    -1,   339,    -1,    -1,    -1,   343,
    3340       -1,    -1,    -1,    -1,  1077,    -1,    -1,    -1,    -1,    -1,
    3341       -1,    -1,    -1,    -1,  1452,    -1,    -1,    -1,   362,    -1,
    3342       -1,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3343       -1,    -1,    -1,   731,    -1,    -1,    -1,  1475,    -1,    -1,
    3344       -1,    -1,    -1,   741,   742,    -1,    -1,   391,    -1,    -1,
    3345       -1,   395,    -1,    -1,    -1,   753,    -1,    -1,    -1,    -1,
    3346       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3347       -1,    -1,   770,    -1,   772,    -1,   922,    -1,   776,    -1,
    3348       -1,   425,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,
    3350       -1,    -1,   948,    -1,   448,    -1,    -1,    -1,   153,    -1,
    3351       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3352      165,    -1,    -1,    -1,  1197,    -1,    -1,   973,    -1,    -1,
    3353       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   482,    -1,
    3354       -1,    -1,    -1,   841,    -1,    -1,    -1,    -1,    -1,    -1,
    3355      848,    -1,    -1,    -1,    -1,    36,    -1,    38,  1004,    -1,
    3356       -1,    -1,    -1,   861,    -1,   863,    -1,    -1,    -1,  1015,
    3357       -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,    59,   877,
    3358      524,   525,    -1,    -1,    65,   883,    -1,    -1,    69,    -1,
    3359      235,    72,    73,    74,    75,    76,    77,   895,    79,    80,
    3360      898,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3361       -1,    -1,    -1,    -1,    -1,   260,    -1,    -1,   916,    -1,
    3362      101,    -1,   103,    -1,    -1,   569,   570,    -1,   109,   110,
    3363      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
    3364       -1,    -1,    -1,    -1,   588,   589,    -1,   591,  1094,    -1,
    3365       -1,    -1,    -1,    -1,    -1,    -1,   600,    -1,   602,   603,
    3366       -1,    -1,    -1,    -1,    -1,   609,    -1,    -1,    -1,    -1,
    3367       -1,    -1,    -1,    -1,    -1,   619,   620,    -1,    -1,    -1,
    3368       -1,   625,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3369      634,   635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3370       -1,    -1,  1000,    -1,    -1,    -1,    -1,   651,    -1,    -1,
    3371       -1,    -1,   656,   657,    -1,    -1,   660,   661,    -1,    -1,
    3372       -1,    -1,    -1,   667,    -1,    -1,    -1,    -1,    -1,   374,
    3373       -1,    -1,  1178,    36,    -1,    38,    -1,    -1,    -1,    -1,
    3374       -1,   685,   686,   687,    -1,   689,    -1,    -1,    -1,   693,
    3375       -1,    -1,    -1,    -1,    -1,    -1,    59,  1055,    -1,    -1,
    3376       -1,    -1,    65,  1061,    67,    68,    69,    -1,    -1,    72,
    3377       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3378       -1,   725,   726,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3379       -1,    -1,  1090,    -1,    -1,    -1,    -1,  1095,   101,    -1,
    3380      103,    -1,   105,   106,    -1,  1103,    -1,   110,   111,   112,
    3381      113,   114,   115,    -1,    -1,   759,   760,    -1,    -1,    -1,
    3382      764,   765,    -1,    -1,  1270,   276,   277,   278,   279,   474,
    3383       -1,    -1,    -1,  1131,    -1,   286,   287,    -1,    -1,    -1,
    3384      291,   292,    -1,    -1,    -1,  1143,    -1,    -1,  1146,    -1,
    3385     1148,    -1,   303,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3386       -1,   805,    -1,    -1,  1162,  1163,    -1,   512,    -1,    -1,
    3387      814,    -1,    -1,    -1,    -1,    -1,   820,   821,    -1,    -1,
    3388      525,   825,    -1,   827,    -1,    -1,  1184,   532,   339,    -1,
    3389       -1,    -1,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
    3390      545,   546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3391       -1,    -1,  1210,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392       -1,    -1,   567,    -1,   375,    -1,    -1,    -1,    -1,    -1,
    3393       -1,    -1,   577,    -1,    -1,    -1,    -1,    -1,    -1,   584,
    3394       -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,    10,    11,
    3395       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3396       22,    23,    24,    25,    26,   909,    -1,    29,    30,    31,
    3397       -1,    -1,    -1,   917,    -1,    37,    -1,    -1,   922,    -1,
    3398       -1,    -1,    -1,    -1,    -1,    -1,   930,    -1,    -1,    -1,
    3399       -1,    -1,    -1,    -1,   639,    -1,    -1,    -1,    60,   943,
    3400      944,   646,  1300,    -1,  1302,    67,    68,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    -1,    -1,  1313,    -1,  1315,    -1,    -1,
    3402       -1,    -1,    -1,   967,    -1,    -1,    -1,    -1,    -1,   973,
    3403       -1,    -1,    -1,    -1,    -1,  1333,    -1,    -1,    -1,    -1,
    3404       -1,   686,  1488,    -1,    -1,    -1,    -1,   991,   992,   111,
    3405       -1,  1349,    -1,    -1,    -1,    -1,    -1,  1001,    -1,  1357,
    3406       -1,    -1,  1360,  1007,  1008,    -1,  1010,  1011,  1012,    -1,
    3407       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1022,  1023,
    3408       -1,    -1,  1380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,  1389,    -1,    -1,  1392,  1393,    -1,   548,   549,   550,
    3410      551,   552,   553,   554,   555,   556,   557,   558,   559,   560,
    3411      561,   562,   563,   564,   565,   760,    -1,   762,    -1,    -1,
    3412       -1,    -1,    -1,   768,    -1,    -1,    -1,    -1,    -1,  1427,
    3413      775,  1429,    -1,    -1,    -1,    -1,    -1,  1081,  1082,  1083,
    3414      591,    -1,    -1,  1441,    -1,    -1,    -1,    -1,    -1,    -1,
    3415     1094,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3416       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3417       -1,    -1,    -1,   818,   819,    -1,   821,    -1,    -1,    -1,
    3418       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3419       -1,   836,  1136,     4,     5,     6,     7,     8,     9,    10,
    3420       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3421       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3422       31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
    3423       -1,   876,    -1,    -1,    -1,   880,    -1,   688,    -1,    -1,
    3424       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
    3425       -1,    62,  1196,    64,    65,    -1,    67,    68,    69,   710,
    3426       -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
    3427       -1,  1215,   723,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    3428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3429      101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,
    3430      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,   954,
    3431       -1,    -1,    -1,    -1,    -1,    -1,   767,  1261,  1262,    -1,
    3432       -1,    -1,   967,   968,    -1,    -1,    -1,    -1,    36,   974,
    3433       38,    -1,    -1,    -1,    -1,   980,    -1,    -1,   983,    -1,
    3434      985,    -1,    -1,    -1,    -1,    -1,    -1,   798,    -1,    -1,
    3435       -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,  1004,
    3436       -1,    69,   813,    -1,    72,    73,    74,    75,    76,    77,
    3437     1015,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    3438       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3439       -1,    -1,  1037,   101,  1039,   103,    -1,    -1,   106,    -1,
    3440       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,  1054,
    3441       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3442       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,
    3443     1374,    -1,     0,    -1,    -1,     3,     4,     5,     6,     7,
     3432      22,    23,    24,    25,    26,    -1,   801,    29,    30,    31,
     3433      32,    -1,    -1,    35,    36,    37,    38,    -1,    -1,    -1,
     3434      -1,   816,  1452,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3435      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
     3436      62,  1390,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3437      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3438      -1,    -1,    -1,    -1,    -1,    87,  1496,    -1,    -1,    -1,
     3439      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,   101,
     3440      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3441     112,   113,   114,   115,    -1,    59,    -1,    -1,    -1,    -1,
     3442      -1,    65,   124,    -1,    -1,    69,    -1,    -1,    72,    73,
     3443      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3444    1469,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3445      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3446    1489,  1490,   106,    -1,    -1,    -1,   110,   111,   112,   113,
     3447     114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3448      -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3449      -1,   966,    -1,    -1,    -1,     3,     4,     5,     6,     7,
    34443450       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    34453451      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3446       -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
    3447       38,    -1,  1117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3448       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
    3449       -1,  1136,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3450       68,    69,    -1,    -1,    -1,  1449,  1151,  1152,    76,    77,
    3451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    36,
    3452       -1,    38,    -1,    -1,  1468,  1469,    -1,    -1,    -1,    -1,
    3453       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   989,    -1,
    3454       -1,    -1,    59,   111,  1488,    -1,    -1,    -1,    65,    -1,
    3455     1001,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3456       77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    3457       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3458       -1,    -1,    -1,  1228,   101,    -1,   103,    -1,    -1,   106,
    3459       -1,  1042,    -1,   110,   111,   112,   113,   114,   115,    -1,
    3460       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3452     995,    29,    30,    31,    32,    -1,    -1,    35,    36,    37,
     3453      38,    39,  1007,    41,    -1,    -1,    44,    45,    46,    47,
     3454      48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
     3455      -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
     3456      68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3457      -1,    79,    80,    -1,  1049,    -1,    -1,    -1,    -1,    87,
     3458      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3459      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
     3460      -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
     3461      -1,    -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,     3,
     3462       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3463      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3464      24,    25,    26,    -1,  1119,    29,    30,    31,    32,    -1,
     3465      -1,    35,    36,    37,    38,    10,    11,    12,    13,    14,
     3466      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3467      25,    26,    27,    -1,    -1,    59,    60,    -1,    62,    -1,
     3468      64,    65,    37,    67,    68,    69,    -1,  1162,    72,    73,
     3469      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3470      -1,  1176,  1177,    87,    -1,    60,    -1,    -1,    -1,    -1,
     3471      -1,    -1,    -1,    -1,    -1,    -1,    71,   101,    -1,   103,
     3472      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
     3473     114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
    34613474      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    34623475      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3463       32,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
    3464       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3465       -1,    53,    -1,    -1,    56,    57,    -1,    59,    60,  1110,
     3476      -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
     3477      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3478      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    34663479      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
    34673480      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    34683481      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    34693482      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3470       -1,   103,  1153,    -1,   106,    -1,    -1,    -1,   110,   111,
    3471      112,   113,   114,   115,    -1,    -1,  1167,  1168,    -1,    -1,
    3472     1365,    -1,   124,    -1,     3,     4,     5,     6,     7,     8,
     3483      -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
     3484     112,   113,   114,   115,    -1,     4,     5,     6,     7,     8,
    34733485       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34743486      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3475       29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3487      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    34763488      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34773489      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3478       59,    60,    -1,    62,    -1,    64,    65,  1432,    67,    68,
    3479       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3490      59,    60,  1377,    62,    -1,    64,    65,    -1,    67,    68,
     3491      69,    -1,    -1,    72,    73,    74,    75,    76,    77,  1394,
    34803492      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    34813493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3482       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3483     1475,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
    3484       -1,    -1,    -1,    -1,    -1,   124,     3,     4,     5,     6,
    3485        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3486       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3487       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3488       37,    38,    10,    11,    12,    13,    14,    15,    16,    17,
    3489       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3490       -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    37,
    3491       67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
    3492       77,    -1,    79,    80,    -1,    -1,    -1,  1378,    -1,    -1,
    3493       87,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3494       -1,    -1,    -1,    71,   101,    -1,   103,    -1,    -1,    -1,
    3495       -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    -1,
    3496       -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
    3497       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3498       22,    23,    24,    25,    26,  1436,  1437,    29,    30,    31,
    3499       -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,    12,
    3500       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3501       23,    24,    25,    26,    27,    -1,    -1,    59,    60,    -1,
    3502       62,    -1,    64,    65,    37,    67,    68,    69,    -1,    -1,
    3503       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3504       -1,    -1,    -1,    -1,    -1,    87,    -1,    60,    -1,    -1,
    3505       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,   101,
    3506       -1,   103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,
    3507      112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
    3508       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3509       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3510       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    10,
    3511       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3512       21,    22,    23,    24,    25,    26,    -1,    -1,    -1,    59,
    3513       60,    -1,    62,    -1,    64,    65,    37,    67,    68,    69,
    3514       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3515       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    60,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3517       -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,
    3518      110,   111,   112,   113,   114,   115,     4,     5,     6,     7,
    3519        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3520       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3521       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3522       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3524       -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,    67,
    3525       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3526       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    3527       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3528       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3529       -1,    -1,   110,   111,   112,   113,   114,   115,     4,     5,
     3494      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,
     3495      -1,   110,   111,   112,   113,   114,   115,    -1,     4,     5,
    35303496       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    35313497      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3532       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3498      26,  1456,  1457,    29,    30,    31,    -1,    -1,    -1,    -1,
    35333499      36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35343500      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    35613527      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    35623528      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3563      112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
     3529     112,   113,   114,   115,     4,     5,     6,     7,     8,     9,
     3530      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3531      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3532      30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
     3533      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3534      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
     3535      60,    -1,    62,    -1,    64,    65,    -1,    67,    68,    69,
     3536      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3537      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3538      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3539      -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3540     110,   111,   112,   113,   114,   115,     0,    -1,    -1,     3,
     3541       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3542      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3543      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3544      -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,
     3545      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3546      -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,
     3547      64,    65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
     3548      -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3550      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3551      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     3,     4,
     3552       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3553      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3554      25,    26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,
     3555      35,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3556      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3557      -1,    -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,
     3558      65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
     3559      -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3561      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3562      -1,    -1,   107,    -1,    -1,    -1,   111,     3,     4,     5,
     3563       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3564      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3565      26,    -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,
     3566      -1,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3567      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3568      -1,    57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,
     3569      -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,
     3570      76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3573      -1,    -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,
     3574       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3575      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3576      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3577      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3579      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
     3580      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3581      77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3584      -1,    -1,    -1,    -1,   111,     3,     4,     5,     6,     7,
     3585       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3586      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3587      -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,    37,
     3588      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3590      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     3591      68,    -1,    -1,    71,     3,     4,     5,     6,     7,     8,
    35643592       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35653593      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3566       29,    30,    31,    32,    -1,    -1,    35,    -1,    37,    38,
     3594      29,    30,    31,    32,    -1,   103,    35,    -1,    37,    -1,
     3595      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    35673596      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
    3569       -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
    3570       69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
    3571       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3573       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,   107,    -1,
    3574       -1,    -1,   111,     3,     4,     5,     6,     7,     8,     9,
    3575       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3576       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3577       30,    31,    32,    -1,    -1,    35,    -1,    37,    38,    -1,
    3578       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
    3580       60,    -1,    62,    -1,    64,    65,    -1,    67,    68,    69,
    3581       -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
    3582       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3584       -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    3585       -1,   111,     3,     4,     5,     6,     7,     8,     9,    10,
    3586       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3587       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3588       31,    32,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3591       -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
    3592       71,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3597      -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
     3598      -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    35933599      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    35943600      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3595       -1,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    3596      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3601      -1,    -1,    -1,    -1,   103,    37,    -1,    -1,    -1,    -1,
     3602      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35973603      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    35983604      62,    -1,    64,    -1,    -1,    67,    68,     4,     5,     6,
     
    36103616       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    36113617      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3612       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3618      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
     3619      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3620      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3621      31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
     3622      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3624      89,    -1,    -1,    -1,    65,    -1,    67,    68,    -1,    -1,
     3625      -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3626      -1,    -1,   111,     4,     5,     6,     7,     8,     9,    10,
     3627      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3628      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3629      31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,    12,
     3630      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3631      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    60,
     3632      -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,    -1,
     3633      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    89,    -1,
     3635      -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,
     3636      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3637     111,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3638      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3639      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3640      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3641      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3643      -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
     3644       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3645      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3646      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3647     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     3650      68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3651      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3652      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3653      -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,
     3654      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3655      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3656      -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
     3657       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3658      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3659      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3660     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3661      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3662      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     3663      68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3664      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3665      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3666      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     3667      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3668      59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3669      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3670      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3671      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3672      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3673      -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
     3674      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3675      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3676      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3677      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3678      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3679      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3680      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3683     103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3684     113,   114,   115,    10,    11,    12,    13,    14,    15,    16,
     3685      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3686      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3687      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3688      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3689      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3690      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3691      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3692      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,
     3694      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    10,
     3695      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3696      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3697      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3698      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3699      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3700      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3701      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3702      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3705     111,   112,   113,   114,   115,    10,    11,    12,    13,    14,
     3706      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3707      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3708      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3709      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3710      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
     3711      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3712      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3713      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3714      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3715      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3716     115,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3717      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3718      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    36133719      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36143720      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3615       -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,
    3616       -1,    -1,     4,     5,     6,     7,     8,     9,    10,    11,
     3721      59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3722      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3723      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3724      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3725      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3726      -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
     3727      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3728      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3729      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3732      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3733      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3734      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3736     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3737     113,   114,   115,     3,     4,     5,     6,     7,     8,     9,
     3738      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3739      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3740      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,    11,
    36173741      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3618       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3619       -1,    -1,    -1,   102,   103,    37,    -1,    -1,    -1,    -1,
    3620       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3742      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
     3743      60,    -1,    62,    -1,    64,    37,    -1,    67,    68,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36213745      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
    3622       62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    71,
     3747      -1,    -1,    -1,    -1,    76,    77,   106,    10,    11,    12,
     3748      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3749      23,    24,    25,    26,    27,    -1,    29,    30,    31,   101,
     3750      -1,   103,    -1,    -1,    37,    -1,    -1,    -1,    -1,   111,
     3751      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3752      20,    21,    22,    23,    24,    25,    26,    60,    -1,    29,
     3753      30,    31,    65,    -1,    67,    68,    69,    37,    71,    -1,
     3754      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,
    36233755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3624       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
    3625       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3626       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
    3627        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3628       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3629       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3630       -1,    -1,    -1,    37,    10,    11,    12,    13,    14,    15,
    3631       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3632       26,    -1,    -1,    29,    30,    31,    60,    -1,    62,    -1,
    3633       64,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
    3634       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3635       -1,    -1,    -1,    -1,    60,    89,    -1,    -1,    -1,    65,
    3636       -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,   103,
    3637       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
    3638        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3639       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3640       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3641       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3643       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
    3644       -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
     3756      60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
     3757     103,    -1,    -1,    -1,    -1,    -1,    76,    77,   111,    10,
    36453758      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    36463759      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3647       31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
    3648       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3649       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3650       -1,    62,    -1,    64,    -1,    -1,    67,    68,     4,     5,
    3651        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3652       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3653       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3654       -1,    37,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3655      111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3656       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
    3657       -1,    67,    68,     4,     5,     6,     7,     8,     9,    10,
    3658       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3659       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3660       31,    -1,    -1,    -1,    -1,    -1,    37,   103,    -1,    -1,
    3661       -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    3663       -1,    62,    -1,    64,    -1,    -1,    67,    68,    10,    11,
    3664       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3665       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3666       -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3667       -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3668      111,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3669       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
    3670       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3671       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3672       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3673       -1,   103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3674      112,   113,   114,   115,    10,    11,    12,    13,    14,    15,
    3675       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3676       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3677       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3678       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3679       -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,
    3680       -1,    67,    68,    69,    -1,    -1,    72,    73,    74,    75,
    3681       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3682       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,
    3684       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
    3685       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3686       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3687       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
    3690       60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,
    3691       -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
    3692       80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
    3695      110,   111,   112,   113,   114,   115,    10,    11,    12,    13,
    3696       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3697       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3698       -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3700       -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
    3701       -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,    73,
    3702       74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    3703       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    3705       -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    3706      114,   115,    10,    11,    12,    13,    14,    15,    16,    17,
    3707       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3708       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3709       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3710       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
    3712       68,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3713       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
    3714       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3715       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    3716       -1,    -1,   110,   111,   112,   113,   114,   115,    10,    11,
    3717       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3718       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3719       -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3720       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
    3722       -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,
    3723       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3724       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3725       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
    3726       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3727      112,   113,   114,   115,     3,     4,     5,     6,     7,     8,
    3728        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3729       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3730       29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
    3731       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3732       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3733       31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
    3734       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3735       18,    19,    20,    21,    22,    23,    24,    25,    26,    60,
    3736       -1,    29,    30,    31,    65,    -1,    67,    68,    69,    37,
    3737       71,    -1,    -1,    -1,    -1,    76,    77,   106,    -1,    -1,
    3738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3739       -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,
    3740       68,    69,   103,    -1,    -1,    -1,    -1,    -1,    76,    77,
    3741      111,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3742       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3743       29,    30,    31,   101,    -1,   103,    -1,    -1,    37,    -1,
    3744       -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746       -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
    3747       69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
    3748       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3749       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3750       31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,
    3751       -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3760      31,   101,    -1,   103,    -1,    -1,    37,    -1,    -1,    -1,
     3761      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37523762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
    37533763      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     
    37743784      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
    37753785      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3776       25,    26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,
    3777       -1,    -1,    37,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3786      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3787      -1,    -1,    37,    38,   101,    -1,   103,    -1,    -1,    -1,
    37783788      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    3779       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    3780       -1,    -1,    67,    68,    -1,    -1,    71,    10,    11,    12,
    3781       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3782       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3783       -1,    -1,    -1,    -1,    37,    38,   101,    -1,   103,    -1,
    3784       -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    3785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
    3786       -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
    3787       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3788       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3789       -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3790      103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
    3791       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
    3792       -1,    65,    -1,    67,    68,    10,    11,    12,    13,    14,
    3793       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3794       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3795       -1,    -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,
    3796       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
    37973789      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    37983790      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
    37993791      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3792      26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3793      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3794      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3795      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3796      -1,    67,    68,    -1,    -1,    71,    10,    11,    12,    13,
     3797      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3798      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3799      -1,    -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3802      -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
     3803      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3804      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3805      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3806      -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,
     3807      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3808      65,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3809      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    38003810      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3801       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3811      -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,
    38023812      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
    38033813      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     
    38053815      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    38063816      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3807       37,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3817      37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
    38083818      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
    38093819      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     
    38173827      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    38183828      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
    3819       -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     3829      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
    38203830      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    38213831      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     
    38733883      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
    38743884      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3875       68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3876       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3877       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3878       -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3885      68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3886      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3887      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3888      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
    38793889      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
    3881       -1,    64,    -1,    -1,    67,    68,    -1,    36,    -1,    38,
    3882       39,    -1,    41,    -1,    -1,    44,    45,    46,    47,    48,
    3883       49,    50,    51,    52,    53,    -1,    -1,    56,    57,    -1,
    3884       59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   102,
    3885       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3886       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3890      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     3891      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3892      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3893      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
    38873894      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3888       -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
    3889       -1,   110,   111,   112,   113,   114,   115,    -1,    36,    -1,
    3890       38,    39,    -1,    41,    -1,   124,    44,    45,    46,    47,
    3891       48,    49,    50,    51,    -1,    53,    -1,    -1,    56,    57,
    3892       -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    3893       -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
    3894       -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
     3895      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3896      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,     4,
     3897       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3898      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3899      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3900      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3901      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3902      -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,
     3903      -1,    -1,    67,    68,    -1,    36,    -1,    38,    39,    -1,
     3904      41,    -1,    -1,    44,    45,    46,    47,    48,    49,    50,
     3905      51,    52,    53,    -1,    -1,    56,    57,    -1,    59,    -1,
     3906      -1,    -1,    -1,    -1,    65,    -1,    -1,   102,    69,    -1,
     3907      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3908      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    38953909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3896       -1,    -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,
    3897       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
    3898       -1,    -1,    -1,    -1,    -1,    -1,   124,     4,     5,     6,
    3899        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3900       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3901       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3902       37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3910     101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,   110,
     3911     111,   112,   113,   114,   115,    -1,    36,    -1,    38,    39,
     3912      -1,    41,    -1,   124,    44,    45,    46,    47,    48,    49,
     3913      50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,    59,
     3914      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3915      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3916      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3917      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3918      -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3919     110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
     3920      -1,    -1,    -1,    -1,   124,     4,     5,     6,     7,     8,
     3921       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    39033922      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3904       29,    30,    31,    60,    -1,    62,    -1,    64,    37,    -1,
    3905       67,    68,    -1,    36,    -1,    38,    39,    -1,    41,    42,
    3906       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    3907       53,    60,    89,    56,    57,    -1,    59,    -1,    67,    68,
    3908       -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    3909       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3910       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3912      103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
    3913      113,   114,   115,    36,    -1,    38,    39,    -1,    41,    42,
    3914       43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
    3915       53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
    3916       -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    3917       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3918       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3919       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3920      103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
    3921      113,   114,   115,    36,    -1,    38,    39,    -1,    41,    -1,
    3922       -1,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
    3923       53,    -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,
    3924       -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
    3925       73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
    3926       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
    3927       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,
    3928      103,    -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,
    3929      113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,
    3930       -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
    3931       76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3932       -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
    3933       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
    3934       -1,    -1,   108,    -1,   110,   111,   112,   113,   114,   115,
    3935       59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3936       69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
    3937       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    3938       -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
    3939       -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
    3940       -1,   110,   111,   112,   113,   114,   115,    59,    -1,    -1,
    3941       -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,
    3942       72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
    3943       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
    3944       -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,
    3945       -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
    3946      112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,
     3923      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    10,
     3924      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3925      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3926      31,    60,    -1,    62,    -1,    64,    37,    -1,    67,    68,
     3927      -1,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
     3928      45,    46,    47,    48,    49,    50,    51,    52,    53,    60,
     3929      89,    56,    57,    -1,    59,    -1,    67,    68,    -1,    -1,
     3930      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     3931      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3932      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3933      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3934      -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3935     115,    36,    -1,    38,    39,    -1,    41,    42,    43,    44,
     3936      45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
     3937      -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
     3938      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     3939      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3940      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3941      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3942      -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3943     115,    36,    -1,    38,    39,    -1,    41,    -1,    -1,    44,
     3944      45,    46,    47,    48,    49,    50,    51,    -1,    53,    -1,
     3945      -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    39473946      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
    39483947      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
    39493948      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,
    39503949      38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
    3951       -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3950      -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,   114,
    39523951     115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
    39533952      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     
    39603959      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
    39613960      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
    3962      101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3961     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
    39633962     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
    39643963      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
    39653964      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
    39663965      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
    3967       -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
     3966      -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
    39683967      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
    39693968     114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     
    40084007      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    40094008      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    4010       33,    34,    -1,    -1,    37,    10,    11,    12,    13,    14,
    4011       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4012       25,    26,    -1,    -1,    29,    30,    31,    60,    -1,    -1,
    4013       -1,    -1,    37,    -1,    67,    68,    -1,    -1,    -1,    -1,
     4009      33,    34,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    40144010      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4015       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
    4016       -1,    -1,    67,    68
     4011      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     4012      -1,    -1,    -1,    -1,    67,    68
    40174013};
    40184014
     
    40254021      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    40264022      37,    38,    57,    60,    62,    64,    65,    67,    68,    69,
    4027       76,    77,   101,   103,   111,   129,   132,   189,   201,   202,
    4028      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
    4029      213,   214,   215,   216,   217,   218,   220,   221,   222,   223,
    4030      224,   225,   226,   227,   229,   230,   231,   232,   233,   234,
    4031      235,   243,   244,   270,   271,   272,   280,   283,   289,   290,
    4032      292,   294,   295,   301,   306,   310,   311,   312,   313,   314,
    4033      315,   316,   317,   337,   354,   355,   356,   357,    65,   111,
    4034      131,   204,   206,   214,   216,   226,   230,   232,   271,    75,
    4035      101,   299,   300,   301,   299,   299,    65,    67,    68,    69,
    4036      130,   131,   260,   261,   281,   282,    67,    68,   261,   101,
    4037      292,   215,   216,   101,   111,   306,   311,   312,   313,   315,
    4038      316,   317,   104,   126,   103,   207,   214,   216,   310,   314,
    4039      353,   354,   357,   358,   127,   123,   264,   106,   127,   164,
    4040       67,    68,   129,   259,   127,   127,   127,   108,   127,    67,
    4041       68,   101,   111,   296,   305,   306,   307,   308,   309,   310,
    4042      314,   318,   319,   320,   321,   322,   328,     3,    27,    71,
    4043      228,     3,     5,    67,   103,   111,   206,   217,   221,   224,
    4044      233,   272,   310,   314,   357,   204,   206,   216,   226,   230,
    4045      232,   271,   310,   314,    32,   222,   222,   217,   224,   127,
    4046      222,   217,   222,   217,    68,   101,   106,   261,   272,   106,
    4047      261,   222,   217,   108,   127,   127,     0,   126,   101,   164,
    4048      299,   299,   126,   103,   214,   216,   355,   259,   259,   216,
    4049      123,   101,   111,   296,   306,   310,   103,   111,   357,   293,
    4050      219,   301,   101,   277,   101,   101,   101,    36,    38,    59,
    4051       65,    69,    72,    73,    74,    75,    79,    80,    87,   101,
    4052      103,   110,   111,   112,   113,   114,   115,   128,   132,   133,
    4053      134,   135,   140,   141,   142,   143,   144,   145,   146,   147,
    4054      148,   149,   150,   151,   152,   153,   155,   157,   214,   263,
    4055      279,   353,   358,   216,   102,   102,   102,   102,   102,   102,
    4056      102,    67,    68,   103,   214,   259,   337,   355,   103,   111,
    4057      155,   206,   207,   213,   216,   220,   221,   226,   229,   230,
    4058      232,   249,   250,   254,   255,   256,   257,   271,   337,   349,
    4059      350,   351,   352,   357,   358,   104,   101,   310,   314,   357,
    4060      101,   108,   124,   103,   106,   111,   155,   265,   107,   126,
    4061      108,   124,   101,   108,   124,   108,   124,   108,   124,   299,
    4062      124,   306,   307,   308,   309,   319,   320,   321,   322,   216,
    4063      305,   318,    57,   298,   103,   299,   336,   337,   299,   299,
    4064      164,   126,   101,   299,   336,   299,   299,   216,   296,   101,
    4065      101,   215,   214,   216,   104,   126,   214,   353,   358,   164,
    4066      126,   259,   264,   206,   221,   310,   314,   164,   126,   281,
    4067      216,   226,   124,   216,   216,   279,    38,   103,   214,   236,
    4068      237,   238,   239,   353,   357,   106,   245,   261,   106,   216,
    4069      281,   124,   124,   292,   126,   131,   258,     3,   127,   196,
    4070      197,   211,   213,   216,   126,   298,   101,   298,   155,   306,
    4071      216,   101,   126,   259,   106,    32,    33,    34,   214,   273,
    4072      274,   276,   126,   121,   123,   278,   126,   217,   223,   224,
    4073      259,   302,   303,   304,   140,   153,   154,   101,   140,   142,
    4074      101,   140,   101,   101,   140,   140,   131,   103,   155,   160,
    4075      164,   214,   262,   353,   104,   126,   142,   142,    75,    78,
    4076       79,    80,   101,   103,   105,    90,    91,    92,    93,    94,
    4077       95,    96,    97,    98,    99,   123,   159,   142,   111,   116,
    4078      117,   113,   114,    81,    82,    83,    84,   118,   119,    85,
    4079       86,   112,   120,   121,    87,    88,   122,   123,   360,   101,
    4080      111,   332,   333,   334,   335,   336,   102,   108,   101,   336,
    4081      337,   101,   336,   337,   126,   101,   214,   355,   104,   126,
    4082      103,   111,   127,   214,   216,   348,   349,   357,   358,   127,
    4083      101,   103,   111,   306,   323,   324,   325,   326,   327,   328,
    4084      329,   330,   331,   337,   338,   339,   340,   341,   342,   343,
    4085      111,   357,   216,   127,   127,   111,   214,   216,   350,   259,
    4086      214,   337,   350,   259,   101,   126,   126,   126,   104,   126,
    4087       65,   103,   105,   261,   265,   266,   267,   268,   269,   126,
    4088      126,   126,   126,   126,   126,   296,   102,   102,   102,   102,
    4089      102,   102,   102,   305,   318,   101,   264,   104,   196,   126,
    4090      296,   160,   263,   160,   263,   296,   103,   196,   298,   164,
    4091      126,   196,   102,   238,   239,   104,   126,   101,   109,   111,
    4092      240,   242,   305,   306,   318,   336,   344,   345,   346,   347,
    4093      107,   237,   108,   124,   108,   124,   261,   236,   108,   359,
    4094      123,   246,   245,   216,   251,   252,   253,   256,   257,   102,
    4095      108,   164,   126,   111,   155,   126,   213,   216,   250,   349,
    4096      357,   290,   291,   101,   111,   323,   102,   108,   360,   261,
    4097      273,   101,   106,   261,   263,   273,   102,   108,   101,   102,
    4098      109,   262,   262,   103,   131,   137,   155,   263,   262,   104,
    4099      126,   102,   108,   102,   101,   111,   344,   102,   108,   155,
    4100      103,   131,   103,   136,   137,   126,   103,   131,   155,   155,
    4101      142,   142,   142,   143,   143,   144,   144,   145,   145,   145,
    4102      145,   146,   146,   147,   148,   149,   150,   151,   109,   160,
    4103      155,   126,   333,   334,   335,   216,   332,   299,   299,   155,
    4104      263,   126,   258,   111,   126,   214,   337,   350,   216,   220,
    4105      104,   126,   104,   357,   104,   101,   126,   306,   324,   325,
    4106      326,   329,   339,   340,   341,   104,   126,   216,   323,   327,
    4107      338,   101,   299,   342,   360,   299,   299,   360,   101,   299,
    4108      342,   299,   299,   299,   299,   337,   214,   348,   358,   259,
    4109      104,   108,   104,   108,   360,   214,   350,   360,   247,   248,
    4110      249,   250,   247,   247,   259,   155,   126,   103,   261,   109,
    4111      108,   359,   265,   103,   109,   269,    28,   198,   199,   259,
    4112      247,   131,   296,   131,   298,   101,   336,   337,   101,   336,
    4113      337,   133,   337,   164,   251,   102,   102,   102,   102,   104,
    4114      164,   196,   164,   106,   124,   124,   103,   306,   345,   346,
    4115      347,   154,   216,   344,   241,   242,   241,   299,   299,   261,
    4116      299,   107,   261,   107,   154,   359,   127,   127,   131,   211,
    4117      127,   127,   247,   101,   111,   357,   127,   107,   216,   274,
    4118      275,   127,   126,   126,   101,   127,   102,   303,   160,   161,
    4119      124,    75,   190,   191,   192,   102,   102,   126,   109,   102,
    4120      102,   102,   155,   216,   106,   142,   157,   155,   156,   158,
    4121      108,   127,   126,   126,   102,   108,   155,   126,   153,   109,
    4122      251,   102,   102,   102,   332,   251,   102,   247,   214,   350,
    4123      103,   111,   155,   155,   216,   329,   251,   102,   102,   102,
    4124      102,   102,   102,   102,     7,   216,   323,   327,   338,   126,
    4125      126,   360,   126,   126,   102,   127,   127,   127,   127,   264,
    4126      127,   153,   154,   155,   297,   126,   265,   267,   107,   126,
    4127      200,   261,    38,    39,    41,    44,    45,    46,    47,    48,
    4128       49,    50,    51,    53,    56,   103,   131,   161,   162,   163,
    4129      164,   165,   166,   168,   169,   181,   183,   184,   189,   201,
    4130      295,    28,   127,   123,   264,   126,   126,   102,   127,   164,
    4131      236,   104,   102,   102,   102,   344,   240,   246,   107,   102,
    4132      108,   104,   104,   127,   216,   108,   360,   277,   102,   273,
    4133      204,   206,   214,   285,   286,   287,   288,   279,   102,   102,
    4134      101,   102,   109,   108,   155,   155,   266,   108,   127,   158,
    4135      104,   131,   138,   139,   155,   137,   127,   138,   153,   157,
    4136      127,   101,   336,   337,   127,   127,   126,   127,   127,   127,
    4137      155,   102,   127,   101,   336,   337,   101,   342,   101,   342,
    4138      337,   215,     7,   111,   127,   155,   251,   251,   250,   254,
    4139      254,   255,   108,   108,   102,   102,   104,    89,   115,   127,
    4140      127,   138,   265,   155,   108,   124,   201,   205,   216,   220,
    4141      101,   101,   162,   101,   101,   124,   131,   124,   131,   111,
    4142      131,   161,   101,   164,   124,   155,   104,   109,   124,   127,
    4143      126,   127,   200,   102,   155,   251,   251,   299,   102,   107,
    4144      101,   336,   337,   126,   102,   126,   127,   296,   107,   126,
    4145      127,   127,   102,   106,   154,   124,   190,   192,   108,   127,
    4146      359,   156,   104,   127,    78,   105,   108,   127,   127,   104,
    4147      127,   102,   126,   102,   102,   104,   104,   104,   127,   102,
    4148      126,   126,   126,   155,   155,   127,   104,   127,   127,   127,
    4149      127,   126,   126,   154,   154,   104,   104,   127,   127,   261,
    4150      216,   160,   160,    45,   160,   126,   124,   124,   160,   124,
    4151      124,   160,    54,    55,   185,   186,   187,   124,   299,   166,
    4152      107,   124,   127,   127,   126,    89,   256,   257,   102,   286,
    4153      108,   124,   108,   124,   107,   284,   102,   102,   109,   158,
    4154      104,   107,   104,   103,   139,   103,   139,   139,   104,   104,
    4155      104,   251,   104,   251,   251,   251,   127,   127,   104,   104,
    4156      102,   102,   104,   108,    89,   250,    89,   127,   104,   104,
    4157      102,   102,   101,   102,   161,   182,   201,   124,   102,   101,
    4158      164,   187,    54,   162,   102,   102,   251,   106,   126,   126,
    4159      285,   124,    75,   193,   127,   109,   126,   126,   127,   127,
    4160      127,   127,   104,   104,   126,   127,   104,   162,    42,    43,
    4161      106,   172,   173,   174,   160,   162,   127,   102,   161,   106,
    4162      174,    89,   126,   101,   127,   126,   259,   296,   107,   102,
    4163      108,   104,   155,   138,   138,   102,   102,   102,   102,   254,
    4164       40,   154,   170,   171,   297,   109,   126,   162,   172,   102,
    4165      124,   162,   124,   126,   102,   126,    89,   126,   102,   285,
    4166      124,    75,   109,   127,   127,   162,    89,   108,   109,   127,
    4167      194,   195,   201,   124,   161,   161,   194,   164,   188,   214,
    4168      353,   102,   126,   107,   155,   104,   104,   154,   170,   173,
    4169      175,   176,   126,   124,   173,   177,   178,   127,   101,   111,
    4170      296,   344,   131,   164,   188,   101,   162,   167,   107,   173,
    4171      201,   161,    52,   167,   180,   107,   173,   102,   216,   127,
    4172      279,   162,   167,   124,   179,   180,   167,   180,   164,   102,
    4173      102,   179,   127,   164,   127
     4023      76,    77,   101,   103,   111,   129,   132,   189,   202,   203,
     4024     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
     4025     214,   215,   216,   217,   218,   219,   221,   222,   223,   224,
     4026     225,   226,   227,   228,   230,   231,   232,   233,   234,   235,
     4027     236,   244,   245,   271,   272,   273,   281,   284,   290,   291,
     4028     293,   295,   296,   302,   307,   311,   312,   313,   314,   315,
     4029     316,   317,   318,   338,   355,   356,   357,   358,    65,   111,
     4030     131,   205,   207,   215,   217,   227,   231,   233,   272,    75,
     4031     101,   300,   301,   302,   300,   300,    65,    67,    68,    69,
     4032     130,   131,   261,   262,   282,   283,    67,    68,   262,   101,
     4033     293,    11,   190,   101,   111,   307,   312,   313,   314,   316,
     4034     317,   318,   104,   126,   103,   208,   215,   217,   311,   315,
     4035     354,   355,   358,   359,   127,   123,   265,   106,   127,   164,
     4036      67,    68,   129,   260,   127,   127,   127,   108,   127,    67,
     4037      68,   101,   111,   297,   306,   307,   308,   309,   310,   311,
     4038     315,   319,   320,   321,   322,   323,   329,     3,    27,    71,
     4039     229,     3,     5,    67,   103,   111,   207,   218,   222,   225,
     4040     234,   273,   311,   315,   358,   205,   207,   217,   227,   231,
     4041     233,   272,   311,   315,    32,   223,   223,   218,   225,   127,
     4042     223,   218,   223,   218,    68,   101,   106,   262,   273,   106,
     4043     262,   223,   218,   108,   127,   127,     0,   126,   101,   164,
     4044     300,   300,   126,   103,   215,   217,   356,   260,   260,   217,
     4045     123,   101,   111,   297,   307,   311,   103,   111,   358,   294,
     4046     220,   302,   101,   278,   101,   101,    49,   101,    36,    38,
     4047      59,    65,    69,    72,    73,    74,    75,    79,    80,    87,
     4048     101,   103,   110,   111,   112,   113,   114,   115,   128,   132,
     4049     133,   134,   135,   140,   141,   142,   143,   144,   145,   146,
     4050     147,   148,   149,   150,   151,   152,   153,   155,   157,   215,
     4051     264,   280,   354,   359,   217,   102,   102,   102,   102,   102,
     4052     102,   102,    67,    68,   103,   215,   260,   338,   356,   103,
     4053     111,   155,   207,   208,   214,   217,   221,   222,   227,   230,
     4054     231,   233,   250,   251,   255,   256,   257,   258,   272,   338,
     4055     350,   351,   352,   353,   358,   359,   104,   101,   311,   315,
     4056     358,   101,   108,   124,   103,   106,   111,   155,   266,   107,
     4057     126,   108,   124,   101,   108,   124,   108,   124,   108,   124,
     4058     300,   124,   307,   308,   309,   310,   320,   321,   322,   323,
     4059     217,   306,   319,    57,   299,   103,   300,   337,   338,   300,
     4060     300,   164,   126,   101,   300,   337,   300,   300,   217,   297,
     4061     101,   101,   216,   217,   215,   217,   104,   126,   215,   354,
     4062     359,   164,   126,   260,   265,   207,   222,   311,   315,   164,
     4063     126,   282,   217,   227,   124,   217,   217,   280,    38,   103,
     4064     215,   237,   238,   239,   240,   354,   358,   106,   246,   262,
     4065     106,   217,   282,   124,   124,   293,   126,   131,   259,     3,
     4066     127,   198,   199,   212,   214,   217,   126,   299,   101,   299,
     4067     155,   307,   217,   101,   126,   260,   106,    32,    33,    34,
     4068     215,   274,   275,   277,   126,   121,   123,   279,   126,   218,
     4069     224,   225,   260,   303,   304,   305,   101,   133,   101,   140,
     4070     140,   142,   101,   140,   101,   101,   140,   140,   131,   103,
     4071     155,   160,   164,   215,   263,   354,   104,   126,   142,   142,
     4072      75,    78,    79,    80,   101,   103,   105,    90,    91,    92,
     4073      93,    94,    95,    96,    97,    98,    99,   123,   159,   142,
     4074     111,   116,   117,   113,   114,    81,    82,    83,    84,   118,
     4075     119,    85,    86,   112,   120,   121,    87,    88,   122,   123,
     4076     361,   101,   111,   333,   334,   335,   336,   337,   102,   108,
     4077     101,   337,   338,   101,   337,   338,   126,   101,   215,   356,
     4078     104,   126,   103,   111,   127,   215,   217,   349,   350,   358,
     4079     359,   127,   101,   103,   111,   307,   324,   325,   326,   327,
     4080     328,   329,   330,   331,   332,   338,   339,   340,   341,   342,
     4081     343,   344,   111,   358,   217,   127,   127,   111,   215,   217,
     4082     351,   260,   215,   338,   351,   260,   101,   126,   126,   126,
     4083     104,   126,    65,   103,   105,   262,   266,   267,   268,   269,
     4084     270,   126,   126,   126,   126,   126,   126,   297,   102,   102,
     4085     102,   102,   102,   102,   102,   306,   319,   101,   265,   104,
     4086     198,   126,   297,   160,   264,   160,   264,   297,   103,   198,
     4087     299,   164,   126,   198,   102,   239,   240,   104,   126,   101,
     4088     109,   111,   241,   243,   306,   307,   319,   337,   345,   346,
     4089     347,   348,   107,   238,   108,   124,   108,   124,   262,   237,
     4090     108,   360,   123,   247,   246,   217,   252,   253,   254,   257,
     4091     258,   102,   108,   164,   126,   111,   155,   126,   214,   217,
     4092     251,   350,   358,   291,   292,   101,   111,   324,   102,   108,
     4093     361,   262,   274,   101,   106,   262,   264,   274,   102,   108,
     4094     101,   133,   102,   109,   263,   263,   103,   131,   137,   155,
     4095     264,   263,   104,   126,   102,   108,   102,   101,   111,   345,
     4096     102,   108,   155,   103,   131,   103,   136,   137,   126,   103,
     4097     131,   155,   155,   142,   142,   142,   143,   143,   144,   144,
     4098     145,   145,   145,   145,   146,   146,   147,   148,   149,   150,
     4099     151,   109,   160,   155,   126,   334,   335,   336,   217,   333,
     4100     300,   300,   155,   264,   126,   259,   111,   126,   215,   338,
     4101     351,   217,   221,   104,   126,   104,   358,   104,   101,   126,
     4102     307,   325,   326,   327,   330,   340,   341,   342,   104,   126,
     4103     217,   324,   328,   339,   101,   300,   343,   361,   300,   300,
     4104     361,   101,   300,   343,   300,   300,   300,   300,   338,   215,
     4105     349,   359,   260,   104,   108,   104,   108,   361,   215,   351,
     4106     361,   248,   249,   250,   251,   248,   248,   260,   155,   126,
     4107     103,   262,   109,   108,   360,   266,   103,   109,   270,    28,
     4108     200,   201,   260,   248,   131,   297,   131,   299,   101,   337,
     4109     338,   101,   337,   338,   133,   338,   164,   252,   102,   102,
     4110     102,   102,   104,   164,   198,   164,   106,   124,   124,   103,
     4111     307,   346,   347,   348,   153,   154,   217,   345,   242,   243,
     4112     242,   300,   300,   262,   300,   107,   262,   107,   154,   360,
     4113     127,   127,   131,   212,   127,   127,   248,   101,   111,   358,
     4114     127,   107,   217,   275,   276,   127,   126,   126,   101,   127,
     4115     102,   304,   160,   161,   109,   124,   103,   133,   191,   192,
     4116     193,   102,   102,   126,   109,   102,   102,   102,   155,   217,
     4117     106,   142,   157,   155,   156,   158,   108,   127,   126,   126,
     4118     102,   108,   155,   126,   153,   109,   252,   102,   102,   102,
     4119     333,   252,   102,   248,   215,   351,   103,   111,   155,   155,
     4120     217,   330,   252,   102,   102,   102,   102,   102,   102,   102,
     4121       7,   217,   324,   328,   339,   126,   126,   361,   126,   126,
     4122     102,   127,   127,   127,   127,   265,   127,   153,   154,   155,
     4123     298,   126,   266,   268,   107,   126,   131,   195,   262,    38,
     4124      39,    41,    44,    45,    46,    47,    48,    49,    50,    51,
     4125      53,    56,   103,   131,   161,   162,   163,   164,   165,   166,
     4126     168,   169,   181,   183,   184,   189,   202,   296,    28,   127,
     4127     123,   265,   126,   126,   102,   127,   164,   237,   104,   102,
     4128     102,   102,   345,   241,   247,   107,   102,   108,   104,   104,
     4129     127,   217,   108,   361,   278,   102,   274,   205,   207,   215,
     4130     286,   287,   288,   289,   280,   102,   102,   109,   154,   101,
     4131     102,   109,   108,   155,   155,   267,   108,   127,   158,   104,
     4132     131,   138,   139,   155,   137,   127,   138,   153,   157,   127,
     4133     101,   337,   338,   127,   127,   126,   127,   127,   127,   155,
     4134     102,   127,   101,   337,   338,   101,   343,   101,   343,   338,
     4135     216,     7,   111,   127,   155,   252,   252,   251,   255,   255,
     4136     256,   108,   108,   102,   102,   104,    89,   115,   127,   127,
     4137     138,   266,   155,   108,   124,   202,   206,   217,   221,   101,
     4138     101,   162,   101,   101,   124,   131,   124,   131,   111,   131,
     4139     161,   101,   164,   124,   155,   104,   109,   124,   127,   126,
     4140     127,   195,   102,   155,   252,   252,   300,   102,   107,   101,
     4141     337,   338,   126,   102,   126,   127,   297,   107,   126,   127,
     4142     127,   102,   106,   191,   104,   154,   124,   191,   193,   108,
     4143     127,   360,   156,   104,   127,    78,   105,   108,   127,   127,
     4144     104,   127,   102,   126,   102,   102,   104,   104,   104,   127,
     4145     102,   126,   126,   126,   155,   155,   127,   104,   127,   127,
     4146     127,   127,   126,   126,   154,   154,   104,   104,   127,   127,
     4147     131,   262,   217,   160,   160,    45,   160,   126,   124,   124,
     4148     160,   124,   124,   160,    54,    55,   185,   186,   187,   124,
     4149     300,   166,   107,   124,   127,   127,   126,    89,   257,   258,
     4150     102,   287,   108,   124,   108,   124,   107,   285,   109,   133,
     4151     102,   102,   109,   158,   104,   107,   104,   103,   139,   103,
     4152     139,   139,   104,   104,   104,   252,   104,   252,   252,   252,
     4153     127,   127,   104,   104,   102,   102,   104,   108,    89,   251,
     4154      89,   127,   104,   104,   102,   102,   101,   102,   161,   182,
     4155     202,   124,   102,   101,   164,   187,    54,   162,   102,   102,
     4156     252,   106,   126,   126,   286,   133,   194,   101,   124,   194,
     4157     127,   109,   126,   126,   127,   127,   127,   127,   104,   104,
     4158     126,   127,   104,   162,    42,    43,   106,   172,   173,   174,
     4159     160,   162,   127,   102,   161,   106,   174,    89,   126,   101,
     4160     127,   126,   260,   297,   107,   108,   109,   154,   102,   104,
     4161     155,   138,   138,   102,   102,   102,   102,   255,    40,   154,
     4162     170,   171,   298,   109,   126,   162,   172,   102,   124,   162,
     4163     124,   126,   102,   126,    89,   126,   102,   286,   133,   195,
     4164     102,   124,   109,   127,   127,   162,    89,   108,   109,   127,
     4165     196,   197,   202,   124,   161,   161,   196,   164,   188,   215,
     4166     354,   102,   126,   107,   102,   155,   104,   104,   154,   170,
     4167     173,   175,   176,   126,   124,   173,   177,   178,   127,   101,
     4168     111,   297,   345,   131,   164,   188,   101,   124,   162,   167,
     4169     107,   173,   202,   161,    52,   167,   180,   107,   173,   102,
     4170     217,   127,   280,   162,   167,   124,   179,   180,   167,   180,
     4171     164,   102,   102,   179,   127,   164,   127
    41744172};
    41754173
     
    50085006
    50095007/* Line 1806 of yacc.c  */
    5010 #line 282 "parser.yy"
     5008#line 288 "parser.yy"
    50115009    {
    50125010                        typedefTable.enterScope();
     
    50175015
    50185016/* Line 1806 of yacc.c  */
    5019 #line 288 "parser.yy"
     5017#line 294 "parser.yy"
    50205018    {
    50215019                        typedefTable.leaveScope();
     
    50265024
    50275025/* Line 1806 of yacc.c  */
    5028 #line 297 "parser.yy"
     5026#line 303 "parser.yy"
    50295027    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    50305028    break;
     
    50335031
    50345032/* Line 1806 of yacc.c  */
    5035 #line 298 "parser.yy"
     5033#line 304 "parser.yy"
    50365034    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    50375035    break;
     
    50405038
    50415039/* Line 1806 of yacc.c  */
    5042 #line 299 "parser.yy"
     5040#line 305 "parser.yy"
    50435041    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50445042    break;
     
    50475045
    50485046/* Line 1806 of yacc.c  */
    5049 #line 323 "parser.yy"
     5047#line 329 "parser.yy"
    50505048    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    50515049    break;
     
    50545052
    50555053/* Line 1806 of yacc.c  */
    5056 #line 324 "parser.yy"
     5054#line 330 "parser.yy"
    50575055    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    50585056    break;
     
    50615059
    50625060/* Line 1806 of yacc.c  */
    5063 #line 331 "parser.yy"
     5061#line 337 "parser.yy"
    50645062    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50655063    break;
     
    50685066
    50695067/* Line 1806 of yacc.c  */
    5070 #line 333 "parser.yy"
     5068#line 339 "parser.yy"
    50715069    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50725070    break;
     
    50755073
    50765074/* Line 1806 of yacc.c  */
    5077 #line 335 "parser.yy"
     5075#line 341 "parser.yy"
    50785076    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    50795077    break;
     
    50825080
    50835081/* Line 1806 of yacc.c  */
    5084 #line 337 "parser.yy"
     5082#line 343 "parser.yy"
    50855083    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    50865084    break;
     
    50895087
    50905088/* Line 1806 of yacc.c  */
    5091 #line 339 "parser.yy"
     5089#line 345 "parser.yy"
    50925090    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50935091    break;
     
    50965094
    50975095/* Line 1806 of yacc.c  */
    5098 #line 341 "parser.yy"
     5096#line 347 "parser.yy"
    50995097    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    51005098    break;
     
    51035101
    51045102/* Line 1806 of yacc.c  */
    5105 #line 351 "parser.yy"
     5103#line 357 "parser.yy"
    51065104    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    51075105    break;
     
    51105108
    51115109/* Line 1806 of yacc.c  */
    5112 #line 353 "parser.yy"
     5110#line 359 "parser.yy"
    51135111    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    51145112    break;
     
    51175115
    51185116/* Line 1806 of yacc.c  */
    5119 #line 355 "parser.yy"
     5117#line 361 "parser.yy"
    51205118    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51215119    break;
     
    51245122
    51255123/* Line 1806 of yacc.c  */
    5126 #line 358 "parser.yy"
     5124#line 364 "parser.yy"
    51275125    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51285126    break;
     
    51315129
    51325130/* Line 1806 of yacc.c  */
    5133 #line 361 "parser.yy"
     5131#line 367 "parser.yy"
    51345132    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    51355133    break;
     
    51385136
    51395137/* Line 1806 of yacc.c  */
    5140 #line 363 "parser.yy"
     5138#line 369 "parser.yy"
    51415139    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    51425140    break;
     
    51455143
    51465144/* Line 1806 of yacc.c  */
    5147 #line 366 "parser.yy"
     5145#line 372 "parser.yy"
    51485146    { (yyval.en) = 0; }
    51495147    break;
     
    51525150
    51535151/* Line 1806 of yacc.c  */
    5154 #line 372 "parser.yy"
     5152#line 378 "parser.yy"
    51555153    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    51565154    break;
     
    51595157
    51605158/* Line 1806 of yacc.c  */
    5161 #line 377 "parser.yy"
     5159#line 383 "parser.yy"
    51625160    { (yyval.en) = 0; }
    51635161    break;
     
    51665164
    51675165/* Line 1806 of yacc.c  */
    5168 #line 380 "parser.yy"
    5169     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok) ); }
     5166#line 386 "parser.yy"
     5167    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    51705168    break;
    51715169
     
    51735171
    51745172/* Line 1806 of yacc.c  */
    5175 #line 385 "parser.yy"
    5176     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en) ); }
     5173#line 391 "parser.yy"
     5174    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    51775175    break;
    51785176
     
    51805178
    51815179/* Line 1806 of yacc.c  */
    5182 #line 387 "parser.yy"
    5183     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5180#line 393 "parser.yy"
     5181    { (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) )))); }
    51845182    break;
    51855183
     
    51875185
    51885186/* Line 1806 of yacc.c  */
    5189 #line 392 "parser.yy"
     5187#line 398 "parser.yy"
    51905188    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    51915189    break;
     
    51945192
    51955193/* Line 1806 of yacc.c  */
    5196 #line 397 "parser.yy"
     5194#line 403 "parser.yy"
    51975195    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51985196    break;
     
    52015199
    52025200/* Line 1806 of yacc.c  */
    5203 #line 399 "parser.yy"
     5201#line 405 "parser.yy"
    52045202    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52055203    break;
     
    52085206
    52095207/* Line 1806 of yacc.c  */
    5210 #line 401 "parser.yy"
     5208#line 407 "parser.yy"
    52115209    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52125210    break;
     
    52155213
    52165214/* Line 1806 of yacc.c  */
    5217 #line 403 "parser.yy"
     5215#line 409 "parser.yy"
    52185216    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52195217    break;
     
    52225220
    52235221/* Line 1806 of yacc.c  */
    5224 #line 405 "parser.yy"
     5222#line 411 "parser.yy"
    52255223    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52265224    break;
     
    52295227
    52305228/* Line 1806 of yacc.c  */
    5231 #line 411 "parser.yy"
     5229#line 417 "parser.yy"
    52325230    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52335231    break;
     
    52365234
    52375235/* Line 1806 of yacc.c  */
    5238 #line 413 "parser.yy"
     5236#line 419 "parser.yy"
    52395237    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52405238    break;
     
    52435241
    52445242/* Line 1806 of yacc.c  */
    5245 #line 415 "parser.yy"
     5243#line 421 "parser.yy"
    52465244    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    52475245    break;
     
    52505248
    52515249/* Line 1806 of yacc.c  */
    5252 #line 417 "parser.yy"
     5250#line 423 "parser.yy"
    52535251    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    52545252    break;
     
    52575255
    52585256/* Line 1806 of yacc.c  */
    5259 #line 419 "parser.yy"
     5257#line 425 "parser.yy"
    52605258    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    52615259    break;
     
    52645262
    52655263/* Line 1806 of yacc.c  */
    5266 #line 421 "parser.yy"
     5264#line 427 "parser.yy"
    52675265    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    52685266    break;
     
    52715269
    52725270/* Line 1806 of yacc.c  */
    5273 #line 427 "parser.yy"
     5271#line 433 "parser.yy"
    52745272    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    52755273    break;
     
    52785276
    52795277/* Line 1806 of yacc.c  */
    5280 #line 429 "parser.yy"
     5278#line 435 "parser.yy"
    52815279    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52825280    break;
     
    52855283
    52865284/* Line 1806 of yacc.c  */
    5287 #line 431 "parser.yy"
     5285#line 437 "parser.yy"
    52885286    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    52895287    break;
     
    52925290
    52935291/* Line 1806 of yacc.c  */
    5294 #line 433 "parser.yy"
     5292#line 439 "parser.yy"
    52955293    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    52965294    break;
     
    52995297
    53005298/* Line 1806 of yacc.c  */
    5301 #line 435 "parser.yy"
     5299#line 441 "parser.yy"
    53025300    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    53035301    break;
     
    53065304
    53075305/* Line 1806 of yacc.c  */
    5308 #line 437 "parser.yy"
     5306#line 443 "parser.yy"
    53095307    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    53105308    break;
     
    53135311
    53145312/* Line 1806 of yacc.c  */
    5315 #line 439 "parser.yy"
     5313#line 445 "parser.yy"
    53165314    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53175315    break;
     
    53205318
    53215319/* Line 1806 of yacc.c  */
    5322 #line 441 "parser.yy"
     5320#line 447 "parser.yy"
    53235321    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }
    53245322    break;
     
    53275325
    53285326/* Line 1806 of yacc.c  */
    5329 #line 445 "parser.yy"
     5327#line 451 "parser.yy"
    53305328    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    53315329    break;
     
    53345332
    53355333/* Line 1806 of yacc.c  */
    5336 #line 446 "parser.yy"
     5334#line 452 "parser.yy"
    53375335    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    53385336    break;
     
    53415339
    53425340/* Line 1806 of yacc.c  */
    5343 #line 447 "parser.yy"
     5341#line 453 "parser.yy"
    53445342    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    53455343    break;
     
    53485346
    53495347/* Line 1806 of yacc.c  */
    5350 #line 448 "parser.yy"
     5348#line 454 "parser.yy"
    53515349    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    53525350    break;
     
    53555353
    53565354/* Line 1806 of yacc.c  */
    5357 #line 454 "parser.yy"
     5355#line 460 "parser.yy"
    53585356    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    53595357    break;
     
    53625360
    53635361/* Line 1806 of yacc.c  */
    5364 #line 456 "parser.yy"
     5362#line 462 "parser.yy"
    53655363    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    53665364    break;
     
    53695367
    53705368/* Line 1806 of yacc.c  */
    5371 #line 462 "parser.yy"
     5369#line 468 "parser.yy"
    53725370    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53735371    break;
     
    53765374
    53775375/* Line 1806 of yacc.c  */
    5378 #line 464 "parser.yy"
     5376#line 470 "parser.yy"
    53795377    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53805378    break;
     
    53835381
    53845382/* Line 1806 of yacc.c  */
    5385 #line 466 "parser.yy"
     5383#line 472 "parser.yy"
    53865384    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53875385    break;
     
    53905388
    53915389/* Line 1806 of yacc.c  */
    5392 #line 472 "parser.yy"
     5390#line 478 "parser.yy"
    53935391    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    53945392    break;
     
    53975395
    53985396/* Line 1806 of yacc.c  */
    5399 #line 474 "parser.yy"
     5397#line 480 "parser.yy"
    54005398    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54015399    break;
     
    54045402
    54055403/* Line 1806 of yacc.c  */
    5406 #line 480 "parser.yy"
     5404#line 486 "parser.yy"
    54075405    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54085406    break;
     
    54115409
    54125410/* Line 1806 of yacc.c  */
    5413 #line 482 "parser.yy"
     5411#line 488 "parser.yy"
    54145412    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54155413    break;
     
    54185416
    54195417/* Line 1806 of yacc.c  */
    5420 #line 488 "parser.yy"
     5418#line 494 "parser.yy"
    54215419    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54225420    break;
     
    54255423
    54265424/* Line 1806 of yacc.c  */
    5427 #line 490 "parser.yy"
     5425#line 496 "parser.yy"
    54285426    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54295427    break;
     
    54325430
    54335431/* Line 1806 of yacc.c  */
    5434 #line 492 "parser.yy"
     5432#line 498 "parser.yy"
    54355433    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54365434    break;
     
    54395437
    54405438/* Line 1806 of yacc.c  */
    5441 #line 494 "parser.yy"
     5439#line 500 "parser.yy"
    54425440    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54435441    break;
     
    54465444
    54475445/* Line 1806 of yacc.c  */
    5448 #line 500 "parser.yy"
     5446#line 506 "parser.yy"
    54495447    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54505448    break;
     
    54535451
    54545452/* Line 1806 of yacc.c  */
    5455 #line 502 "parser.yy"
     5453#line 508 "parser.yy"
    54565454    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54575455    break;
     
    54605458
    54615459/* Line 1806 of yacc.c  */
    5462 #line 508 "parser.yy"
     5460#line 514 "parser.yy"
    54635461    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54645462    break;
     
    54675465
    54685466/* Line 1806 of yacc.c  */
    5469 #line 514 "parser.yy"
     5467#line 520 "parser.yy"
    54705468    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54715469    break;
     
    54745472
    54755473/* Line 1806 of yacc.c  */
    5476 #line 520 "parser.yy"
     5474#line 526 "parser.yy"
    54775475    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54785476    break;
     
    54815479
    54825480/* Line 1806 of yacc.c  */
    5483 #line 526 "parser.yy"
     5481#line 532 "parser.yy"
    54845482    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54855483    break;
     
    54885486
    54895487/* Line 1806 of yacc.c  */
    5490 #line 532 "parser.yy"
     5488#line 538 "parser.yy"
    54915489    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54925490    break;
     
    54955493
    54965494/* Line 1806 of yacc.c  */
    5497 #line 538 "parser.yy"
     5495#line 544 "parser.yy"
    54985496    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    54995497    break;
     
    55025500
    55035501/* Line 1806 of yacc.c  */
    5504 #line 540 "parser.yy"
     5502#line 546 "parser.yy"
    55055503    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    55065504    break;
     
    55095507
    55105508/* Line 1806 of yacc.c  */
    5511 #line 542 "parser.yy"
     5509#line 548 "parser.yy"
    55125510    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55135511    break;
     
    55165514
    55175515/* Line 1806 of yacc.c  */
    5518 #line 553 "parser.yy"
     5516#line 559 "parser.yy"
    55195517    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55205518    break;
     
    55235521
    55245522/* Line 1806 of yacc.c  */
    5525 #line 555 "parser.yy"
     5523#line 561 "parser.yy"
    55265524    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55275525    break;
     
    55305528
    55315529/* Line 1806 of yacc.c  */
    5532 #line 557 "parser.yy"
     5530#line 563 "parser.yy"
    55335531    { (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) ); }
    55345532    break;
     
    55375535
    55385536/* Line 1806 of yacc.c  */
    5539 #line 562 "parser.yy"
     5537#line 568 "parser.yy"
    55405538    { (yyval.en) = new NullExprNode; }
    55415539    break;
     
    55445542
    55455543/* Line 1806 of yacc.c  */
    5546 #line 570 "parser.yy"
     5544#line 576 "parser.yy"
    55475545    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    55485546    break;
     
    55515549
    55525550/* Line 1806 of yacc.c  */
    5553 #line 572 "parser.yy"
     5551#line 578 "parser.yy"
    55545552    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    55555553    break;
     
    55585556
    55595557/* Line 1806 of yacc.c  */
    5560 #line 574 "parser.yy"
     5558#line 580 "parser.yy"
    55615559    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    55625560    break;
     
    55655563
    55665564/* Line 1806 of yacc.c  */
    5567 #line 576 "parser.yy"
     5565#line 582 "parser.yy"
    55685566    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    55695567    break;
     
    55725570
    55735571/* Line 1806 of yacc.c  */
    5574 #line 582 "parser.yy"
     5572#line 588 "parser.yy"
    55755573    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    55765574    break;
     
    55795577
    55805578/* Line 1806 of yacc.c  */
    5581 #line 586 "parser.yy"
     5579#line 592 "parser.yy"
    55825580    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    55835581    break;
     
    55865584
    55875585/* Line 1806 of yacc.c  */
    5588 #line 587 "parser.yy"
     5586#line 593 "parser.yy"
    55895587    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    55905588    break;
     
    55935591
    55945592/* Line 1806 of yacc.c  */
    5595 #line 588 "parser.yy"
     5593#line 594 "parser.yy"
    55965594    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    55975595    break;
     
    56005598
    56015599/* Line 1806 of yacc.c  */
    5602 #line 589 "parser.yy"
     5600#line 595 "parser.yy"
    56035601    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    56045602    break;
     
    56075605
    56085606/* Line 1806 of yacc.c  */
    5609 #line 590 "parser.yy"
     5607#line 596 "parser.yy"
    56105608    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    56115609    break;
     
    56145612
    56155613/* Line 1806 of yacc.c  */
    5616 #line 591 "parser.yy"
     5614#line 597 "parser.yy"
    56175615    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    56185616    break;
     
    56215619
    56225620/* Line 1806 of yacc.c  */
    5623 #line 592 "parser.yy"
     5621#line 598 "parser.yy"
    56245622    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    56255623    break;
     
    56285626
    56295627/* Line 1806 of yacc.c  */
    5630 #line 593 "parser.yy"
     5628#line 599 "parser.yy"
    56315629    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    56325630    break;
     
    56355633
    56365634/* Line 1806 of yacc.c  */
    5637 #line 594 "parser.yy"
     5635#line 600 "parser.yy"
    56385636    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    56395637    break;
     
    56425640
    56435641/* Line 1806 of yacc.c  */
    5644 #line 595 "parser.yy"
     5642#line 601 "parser.yy"
    56455643    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    56465644    break;
     
    56495647
    56505648/* Line 1806 of yacc.c  */
    5651 #line 601 "parser.yy"
     5649#line 607 "parser.yy"
    56525650    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56535651    break;
     
    56565654
    56575655/* Line 1806 of yacc.c  */
    5658 #line 606 "parser.yy"
     5656#line 612 "parser.yy"
    56595657    { (yyval.en) = 0; }
    56605658    break;
     
    56635661
    56645662/* Line 1806 of yacc.c  */
    5665 #line 615 "parser.yy"
     5663#line 621 "parser.yy"
    56665664    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56675665    break;
     
    56705668
    56715669/* Line 1806 of yacc.c  */
    5672 #line 625 "parser.yy"
     5670#line 631 "parser.yy"
    56735671    {
    56745672                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56795677
    56805678/* Line 1806 of yacc.c  */
    5681 #line 632 "parser.yy"
     5679#line 638 "parser.yy"
    56825680    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56835681    break;
     
    56865684
    56875685/* Line 1806 of yacc.c  */
    5688 #line 639 "parser.yy"
     5686#line 645 "parser.yy"
    56895687    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56905688    break;
     
    56935691
    56945692/* Line 1806 of yacc.c  */
    5695 #line 645 "parser.yy"
     5693#line 651 "parser.yy"
    56965694    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56975695    break;
     
    57005698
    57015699/* Line 1806 of yacc.c  */
    5702 #line 650 "parser.yy"
     5700#line 656 "parser.yy"
    57035701    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57045702    break;
     
    57075705
    57085706/* Line 1806 of yacc.c  */
    5709 #line 652 "parser.yy"
     5707#line 658 "parser.yy"
    57105708    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57115709    break;
     
    57145712
    57155713/* Line 1806 of yacc.c  */
    5716 #line 654 "parser.yy"
     5714#line 660 "parser.yy"
    57175715    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57185716    break;
     
    57215719
    57225720/* Line 1806 of yacc.c  */
    5723 #line 661 "parser.yy"
     5721#line 667 "parser.yy"
    57245722    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57255723    break;
     
    57285726
    57295727/* Line 1806 of yacc.c  */
    5730 #line 666 "parser.yy"
     5728#line 672 "parser.yy"
    57315729    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57325730    break;
     
    57355733
    57365734/* Line 1806 of yacc.c  */
    5737 #line 672 "parser.yy"
     5735#line 678 "parser.yy"
    57385736    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57395737    break;
     
    57425740
    57435741/* Line 1806 of yacc.c  */
    5744 #line 674 "parser.yy"
     5742#line 680 "parser.yy"
    57455743    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57465744    break;
     
    57495747
    57505748/* Line 1806 of yacc.c  */
    5751 #line 676 "parser.yy"
     5749#line 682 "parser.yy"
    57525750    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57535751    break;
     
    57565754
    57575755/* Line 1806 of yacc.c  */
    5758 #line 678 "parser.yy"
     5756#line 684 "parser.yy"
    57595757    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57605758    break;
     
    57635761
    57645762/* Line 1806 of yacc.c  */
    5765 #line 683 "parser.yy"
     5763#line 689 "parser.yy"
    57665764    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57675765    break;
     
    57705768
    57715769/* Line 1806 of yacc.c  */
    5772 #line 685 "parser.yy"
     5770#line 691 "parser.yy"
    57735771    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57745772    break;
     
    57775775
    57785776/* Line 1806 of yacc.c  */
    5779 #line 692 "parser.yy"
     5777#line 698 "parser.yy"
    57805778    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57815779    break;
     
    57845782
    57855783/* Line 1806 of yacc.c  */
    5786 #line 694 "parser.yy"
     5784#line 700 "parser.yy"
    57875785    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57885786    break;
     
    57915789
    57925790/* Line 1806 of yacc.c  */
    5793 #line 701 "parser.yy"
     5791#line 707 "parser.yy"
    57945792    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57955793    break;
     
    57985796
    57995797/* Line 1806 of yacc.c  */
    5800 #line 705 "parser.yy"
     5798#line 711 "parser.yy"
    58015799    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    58025800    break;
     
    58055803
    58065804/* Line 1806 of yacc.c  */
    5807 #line 706 "parser.yy"
     5805#line 712 "parser.yy"
    58085806    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58095807    break;
     
    58125810
    58135811/* Line 1806 of yacc.c  */
    5814 #line 712 "parser.yy"
     5812#line 718 "parser.yy"
    58155813    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58165814    break;
     
    58195817
    58205818/* Line 1806 of yacc.c  */
    5821 #line 716 "parser.yy"
     5819#line 722 "parser.yy"
    58225820    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58235821    break;
     
    58265824
    58275825/* Line 1806 of yacc.c  */
    5828 #line 721 "parser.yy"
     5826#line 727 "parser.yy"
    58295827    { (yyval.sn) = 0; }
    58305828    break;
     
    58335831
    58345832/* Line 1806 of yacc.c  */
    5835 #line 727 "parser.yy"
     5833#line 733 "parser.yy"
    58365834    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58375835    break;
     
    58405838
    58415839/* Line 1806 of yacc.c  */
    5842 #line 729 "parser.yy"
     5840#line 735 "parser.yy"
    58435841    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58445842    break;
     
    58475845
    58485846/* Line 1806 of yacc.c  */
    5849 #line 734 "parser.yy"
     5847#line 740 "parser.yy"
    58505848    { (yyval.sn) = 0; }
    58515849    break;
     
    58545852
    58555853/* Line 1806 of yacc.c  */
    5856 #line 740 "parser.yy"
     5854#line 746 "parser.yy"
    58575855    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58585856    break;
     
    58615859
    58625860/* Line 1806 of yacc.c  */
    5863 #line 742 "parser.yy"
     5861#line 748 "parser.yy"
    58645862    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    58655863    break;
     
    58685866
    58695867/* Line 1806 of yacc.c  */
    5870 #line 744 "parser.yy"
     5868#line 750 "parser.yy"
    58715869    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58725870    break;
     
    58755873
    58765874/* Line 1806 of yacc.c  */
    5877 #line 746 "parser.yy"
     5875#line 752 "parser.yy"
    58785876    { (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) ))))); }
    58795877    break;
     
    58825880
    58835881/* Line 1806 of yacc.c  */
    5884 #line 751 "parser.yy"
     5882#line 757 "parser.yy"
    58855883    { (yyval.sn) = 0; }
    58865884    break;
     
    58895887
    58905888/* Line 1806 of yacc.c  */
    5891 #line 756 "parser.yy"
    5892     { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     5889#line 762 "parser.yy"
     5890    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58935891    break;
    58945892
     
    58965894
    58975895/* Line 1806 of yacc.c  */
    5898 #line 757 "parser.yy"
    5899     { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     5896#line 763 "parser.yy"
     5897    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    59005898    break;
    59015899
     
    59035901
    59045902/* Line 1806 of yacc.c  */
    5905 #line 762 "parser.yy"
     5903#line 768 "parser.yy"
    59065904    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59075905    break;
     
    59105908
    59115909/* Line 1806 of yacc.c  */
    5912 #line 764 "parser.yy"
     5910#line 770 "parser.yy"
    59135911    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59145912    break;
     
    59175915
    59185916/* Line 1806 of yacc.c  */
    5919 #line 766 "parser.yy"
     5917#line 772 "parser.yy"
    59205918    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59215919    break;
     
    59245922
    59255923/* Line 1806 of yacc.c  */
    5926 #line 771 "parser.yy"
     5924#line 777 "parser.yy"
    59275925    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59285926    break;
     
    59315929
    59325930/* Line 1806 of yacc.c  */
    5933 #line 773 "parser.yy"
     5931#line 779 "parser.yy"
    59345932    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59355933    break;
     
    59385936
    59395937/* Line 1806 of yacc.c  */
    5940 #line 778 "parser.yy"
     5938#line 784 "parser.yy"
    59415939    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59425940    break;
     
    59455943
    59465944/* Line 1806 of yacc.c  */
    5947 #line 782 "parser.yy"
     5945#line 788 "parser.yy"
    59485946    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59495947    break;
     
    59525950
    59535951/* Line 1806 of yacc.c  */
    5954 #line 785 "parser.yy"
    5955     { (yyval.sn) = new StatementNode( StatementNode::Continue, 0, 0 ); }
     5952#line 791 "parser.yy"
     5953    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59565954    break;
    59575955
     
    59595957
    59605958/* Line 1806 of yacc.c  */
    5961 #line 789 "parser.yy"
     5959#line 795 "parser.yy"
    59625960    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59635961    break;
     
    59665964
    59675965/* Line 1806 of yacc.c  */
    5968 #line 792 "parser.yy"
    5969     { (yyval.sn) = new StatementNode( StatementNode::Break, 0, 0 ); }
     5966#line 798 "parser.yy"
     5967    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59705968    break;
    59715969
     
    59735971
    59745972/* Line 1806 of yacc.c  */
    5975 #line 796 "parser.yy"
     5973#line 802 "parser.yy"
    59765974    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59775975    break;
     
    59805978
    59815979/* Line 1806 of yacc.c  */
    5982 #line 798 "parser.yy"
     5980#line 804 "parser.yy"
    59835981    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59845982    break;
     
    59875985
    59885986/* Line 1806 of yacc.c  */
    5989 #line 800 "parser.yy"
     5987#line 806 "parser.yy"
    59905988    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59915989    break;
     
    59945992
    59955993/* Line 1806 of yacc.c  */
    5996 #line 802 "parser.yy"
    5997     { (yyval.sn) = new StatementNode( StatementNode::Throw, 0, 0 ); }
     5994#line 808 "parser.yy"
     5995    { (yyval.sn) = new StatementNode( StatementNode::Throw ); }
    59985996    break;
    59995997
     
    60015999
    60026000/* Line 1806 of yacc.c  */
    6003 #line 807 "parser.yy"
     6001#line 813 "parser.yy"
    60046002    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60056003    break;
     
    60086006
    60096007/* Line 1806 of yacc.c  */
    6010 #line 809 "parser.yy"
     6008#line 815 "parser.yy"
    60116009    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60126010    break;
     
    60156013
    60166014/* Line 1806 of yacc.c  */
    6017 #line 811 "parser.yy"
     6015#line 817 "parser.yy"
    60186016    {
    60196017                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60256023
    60266024/* Line 1806 of yacc.c  */
    6027 #line 822 "parser.yy"
     6025#line 828 "parser.yy"
    60286026    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60296027    break;
     
    60326030
    60336031/* Line 1806 of yacc.c  */
    6034 #line 824 "parser.yy"
     6032#line 830 "parser.yy"
    60356033    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60366034    break;
     
    60396037
    60406038/* Line 1806 of yacc.c  */
    6041 #line 829 "parser.yy"
     6039#line 835 "parser.yy"
    60426040    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60436041    break;
     
    60466044
    60476045/* Line 1806 of yacc.c  */
    6048 #line 831 "parser.yy"
     6046#line 837 "parser.yy"
    60496047    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60506048    break;
     
    60536051
    60546052/* Line 1806 of yacc.c  */
    6055 #line 836 "parser.yy"
     6053#line 842 "parser.yy"
    60566054    {
    60576055                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60636061
    60646062/* Line 1806 of yacc.c  */
    6065 #line 850 "parser.yy"
     6063#line 856 "parser.yy"
    60666064    {
    60676065                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60736071
    60746072/* Line 1806 of yacc.c  */
    6075 #line 855 "parser.yy"
     6073#line 861 "parser.yy"
    60766074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60776075    break;
     
    60806078
    60816079/* Line 1806 of yacc.c  */
    6082 #line 857 "parser.yy"
     6080#line 863 "parser.yy"
    60836081    {
    60846082                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60906088
    60916089/* Line 1806 of yacc.c  */
    6092 #line 866 "parser.yy"
    6093     { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6090#line 872 "parser.yy"
     6091    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    60946092    break;
    60956093
     
    60976095
    60986096/* Line 1806 of yacc.c  */
    6099 #line 868 "parser.yy"
    6100     { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6097#line 874 "parser.yy"
     6098    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61016099    break;
    61026100
     
    61046102
    61056103/* Line 1806 of yacc.c  */
    6106 #line 870 "parser.yy"
    6107     { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
     6104#line 876 "parser.yy"
     6105    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61086106    break;
    61096107
     
    61116109
    61126110/* Line 1806 of yacc.c  */
    6113 #line 872 "parser.yy"
    6114     { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }
    6115     break;
    6116 
    6117   case 214:
    6118 
    6119 /* Line 1806 of yacc.c  */
    6120 #line 886 "parser.yy"
     6111#line 878 "parser.yy"
     6112    { (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) ); }
     6113    break;
     6114
     6115  case 210:
     6116
     6117/* Line 1806 of yacc.c  */
     6118#line 880 "parser.yy"
     6119    { (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) ); }
     6120    break;
     6121
     6122  case 211:
     6123
     6124/* Line 1806 of yacc.c  */
     6125#line 885 "parser.yy"
     6126    { (yyval.flag) = false; }
     6127    break;
     6128
     6129  case 212:
     6130
     6131/* Line 1806 of yacc.c  */
     6132#line 887 "parser.yy"
     6133    { (yyval.flag) = true; }
     6134    break;
     6135
     6136  case 213:
     6137
     6138/* Line 1806 of yacc.c  */
     6139#line 892 "parser.yy"
     6140    { (yyval.en) = 0; }
     6141    break;
     6142
     6143  case 216:
     6144
     6145/* Line 1806 of yacc.c  */
     6146#line 899 "parser.yy"
     6147    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     6148    break;
     6149
     6150  case 217:
     6151
     6152/* Line 1806 of yacc.c  */
     6153#line 904 "parser.yy"
     6154    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
     6155    break;
     6156
     6157  case 218:
     6158
     6159/* Line 1806 of yacc.c  */
     6160#line 906 "parser.yy"
     6161    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6162    break;
     6163
     6164  case 219:
     6165
     6166/* Line 1806 of yacc.c  */
     6167#line 911 "parser.yy"
     6168    { (yyval.constant) = 0; }
     6169    break;
     6170
     6171  case 220:
     6172
     6173/* Line 1806 of yacc.c  */
     6174#line 913 "parser.yy"
     6175    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6176    break;
     6177
     6178  case 221:
     6179
     6180/* Line 1806 of yacc.c  */
     6181#line 915 "parser.yy"
     6182    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
     6183    break;
     6184
     6185  case 222:
     6186
     6187/* Line 1806 of yacc.c  */
     6188#line 920 "parser.yy"
     6189    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6190    break;
     6191
     6192  case 223:
     6193
     6194/* Line 1806 of yacc.c  */
     6195#line 922 "parser.yy"
     6196    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
     6197    break;
     6198
     6199  case 224:
     6200
     6201/* Line 1806 of yacc.c  */
     6202#line 929 "parser.yy"
     6203    { (yyval.decl) = 0; }
     6204    break;
     6205
     6206  case 227:
     6207
     6208/* Line 1806 of yacc.c  */
     6209#line 936 "parser.yy"
     6210    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6211    break;
     6212
     6213  case 228:
     6214
     6215/* Line 1806 of yacc.c  */
     6216#line 941 "parser.yy"
     6217    { (yyval.decl) = 0; }
     6218    break;
     6219
     6220  case 231:
     6221
     6222/* Line 1806 of yacc.c  */
     6223#line 948 "parser.yy"
     6224    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6225    break;
     6226
     6227  case 236:
     6228
     6229/* Line 1806 of yacc.c  */
     6230#line 962 "parser.yy"
    61216231    {}
    61226232    break;
    61236233
    6124   case 215:
    6125 
    6126 /* Line 1806 of yacc.c  */
    6127 #line 890 "parser.yy"
     6234  case 237:
     6235
     6236/* Line 1806 of yacc.c  */
     6237#line 963 "parser.yy"
    61286238    {}
    61296239    break;
    61306240
    6131   case 217:
    6132 
    6133 /* Line 1806 of yacc.c  */
    6134 #line 898 "parser.yy"
    6135     { (yyval.decl) = 0; }
    6136     break;
    6137 
    6138   case 220:
    6139 
    6140 /* Line 1806 of yacc.c  */
    6141 #line 905 "parser.yy"
    6142     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6143     break;
    6144 
    6145   case 221:
    6146 
    6147 /* Line 1806 of yacc.c  */
    6148 #line 910 "parser.yy"
    6149     { (yyval.decl) = 0; }
    6150     break;
    6151 
    6152   case 224:
    6153 
    6154 /* Line 1806 of yacc.c  */
    6155 #line 917 "parser.yy"
    6156     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6157     break;
    6158 
    6159   case 229:
    6160 
    6161 /* Line 1806 of yacc.c  */
    6162 #line 931 "parser.yy"
    6163     {}
    6164     break;
    6165 
    6166   case 230:
    6167 
    6168 /* Line 1806 of yacc.c  */
    6169 #line 932 "parser.yy"
    6170     {}
    6171     break;
    6172 
    6173   case 238:
    6174 
    6175 /* Line 1806 of yacc.c  */
    6176 #line 961 "parser.yy"
     6241  case 245:
     6242
     6243/* Line 1806 of yacc.c  */
     6244#line 992 "parser.yy"
    61776245    {
    61786246                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61816249    break;
    61826250
    6183   case 239:
    6184 
    6185 /* Line 1806 of yacc.c  */
    6186 #line 968 "parser.yy"
     6251  case 246:
     6252
     6253/* Line 1806 of yacc.c  */
     6254#line 999 "parser.yy"
    61876255    {
    61886256                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61916259    break;
    61926260
    6193   case 240:
    6194 
    6195 /* Line 1806 of yacc.c  */
    6196 #line 973 "parser.yy"
     6261  case 247:
     6262
     6263/* Line 1806 of yacc.c  */
     6264#line 1004 "parser.yy"
    61976265    {
    61986266                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62016269    break;
    62026270
    6203   case 241:
    6204 
    6205 /* Line 1806 of yacc.c  */
    6206 #line 983 "parser.yy"
     6271  case 248:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1014 "parser.yy"
    62076275    {
    62086276                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62116279    break;
    62126280
    6213   case 242:
    6214 
    6215 /* Line 1806 of yacc.c  */
    6216 #line 988 "parser.yy"
     6281  case 249:
     6282
     6283/* Line 1806 of yacc.c  */
     6284#line 1019 "parser.yy"
    62176285    {
    62186286                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62216289    break;
    62226290
    6223   case 243:
    6224 
    6225 /* Line 1806 of yacc.c  */
    6226 #line 993 "parser.yy"
     6291  case 250:
     6292
     6293/* Line 1806 of yacc.c  */
     6294#line 1024 "parser.yy"
    62276295    {
    62286296                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62316299    break;
    62326300
    6233   case 244:
    6234 
    6235 /* Line 1806 of yacc.c  */
    6236 #line 1001 "parser.yy"
     6301  case 251:
     6302
     6303/* Line 1806 of yacc.c  */
     6304#line 1032 "parser.yy"
    62376305    {
    62386306                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62416309    break;
    62426310
    6243   case 245:
    6244 
    6245 /* Line 1806 of yacc.c  */
    6246 #line 1006 "parser.yy"
     6311  case 252:
     6312
     6313/* Line 1806 of yacc.c  */
     6314#line 1037 "parser.yy"
    62476315    {
    62486316                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62516319    break;
    62526320
    6253   case 246:
    6254 
    6255 /* Line 1806 of yacc.c  */
    6256 #line 1011 "parser.yy"
     6321  case 253:
     6322
     6323/* Line 1806 of yacc.c  */
     6324#line 1042 "parser.yy"
    62576325    {
    62586326                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62616329    break;
    62626330
    6263   case 247:
    6264 
    6265 /* Line 1806 of yacc.c  */
    6266 #line 1016 "parser.yy"
     6331  case 254:
     6332
     6333/* Line 1806 of yacc.c  */
     6334#line 1047 "parser.yy"
    62676335    {
    62686336                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62716339    break;
    62726340
    6273   case 248:
    6274 
    6275 /* Line 1806 of yacc.c  */
    6276 #line 1021 "parser.yy"
     6341  case 255:
     6342
     6343/* Line 1806 of yacc.c  */
     6344#line 1052 "parser.yy"
    62776345    {
    62786346                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    62816349    break;
    62826350
    6283   case 249:
    6284 
    6285 /* Line 1806 of yacc.c  */
    6286 #line 1029 "parser.yy"
     6351  case 256:
     6352
     6353/* Line 1806 of yacc.c  */
     6354#line 1060 "parser.yy"
    62876355    {
    62886356                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    62906358    break;
    62916359
    6292   case 250:
    6293 
    6294 /* Line 1806 of yacc.c  */
    6295 #line 1052 "parser.yy"
     6360  case 257:
     6361
     6362/* Line 1806 of yacc.c  */
     6363#line 1083 "parser.yy"
    62966364    {
    62976365                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    62996367    break;
    63006368
    6301   case 251:
    6302 
    6303 /* Line 1806 of yacc.c  */
    6304 #line 1056 "parser.yy"
     6369  case 258:
     6370
     6371/* Line 1806 of yacc.c  */
     6372#line 1087 "parser.yy"
    63056373    {
    63066374                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63086376    break;
    63096377
    6310   case 252:
    6311 
    6312 /* Line 1806 of yacc.c  */
    6313 #line 1063 "parser.yy"
     6378  case 259:
     6379
     6380/* Line 1806 of yacc.c  */
     6381#line 1094 "parser.yy"
    63146382    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    63156383    break;
    63166384
    6317   case 253:
    6318 
    6319 /* Line 1806 of yacc.c  */
    6320 #line 1067 "parser.yy"
     6385  case 260:
     6386
     6387/* Line 1806 of yacc.c  */
     6388#line 1098 "parser.yy"
    63216389    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    63226390    break;
    63236391
    6324   case 254:
    6325 
    6326 /* Line 1806 of yacc.c  */
    6327 #line 1072 "parser.yy"
     6392  case 261:
     6393
     6394/* Line 1806 of yacc.c  */
     6395#line 1103 "parser.yy"
    63286396    {
    63296397                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63326400    break;
    63336401
    6334   case 255:
    6335 
    6336 /* Line 1806 of yacc.c  */
    6337 #line 1077 "parser.yy"
     6402  case 262:
     6403
     6404/* Line 1806 of yacc.c  */
     6405#line 1108 "parser.yy"
    63386406    {
    63396407                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63426410    break;
    63436411
    6344   case 256:
    6345 
    6346 /* Line 1806 of yacc.c  */
    6347 #line 1082 "parser.yy"
     6412  case 263:
     6413
     6414/* Line 1806 of yacc.c  */
     6415#line 1113 "parser.yy"
    63486416    {
    63496417                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    63526420    break;
    63536421
    6354   case 257:
    6355 
    6356 /* Line 1806 of yacc.c  */
    6357 #line 1093 "parser.yy"
     6422  case 264:
     6423
     6424/* Line 1806 of yacc.c  */
     6425#line 1124 "parser.yy"
    63586426    {
    63596427                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63626430    break;
    63636431
    6364   case 258:
    6365 
    6366 /* Line 1806 of yacc.c  */
    6367 #line 1098 "parser.yy"
     6432  case 265:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1129 "parser.yy"
    63686436    {
    63696437                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63726440    break;
    63736441
    6374   case 259:
    6375 
    6376 /* Line 1806 of yacc.c  */
    6377 #line 1103 "parser.yy"
     6442  case 266:
     6443
     6444/* Line 1806 of yacc.c  */
     6445#line 1134 "parser.yy"
    63786446    {
    63796447                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63826450    break;
    63836451
    6384   case 260:
    6385 
    6386 /* Line 1806 of yacc.c  */
    6387 #line 1108 "parser.yy"
     6452  case 267:
     6453
     6454/* Line 1806 of yacc.c  */
     6455#line 1139 "parser.yy"
    63886456    {
    63896457                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63926460    break;
    63936461
    6394   case 261:
    6395 
    6396 /* Line 1806 of yacc.c  */
    6397 #line 1113 "parser.yy"
     6462  case 268:
     6463
     6464/* Line 1806 of yacc.c  */
     6465#line 1144 "parser.yy"
    63986466    {
    63996467                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64026470    break;
    64036471
    6404   case 262:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1122 "parser.yy"
     6472  case 269:
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1153 "parser.yy"
    64086476    {
    64096477                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64126480    break;
    64136481
    6414   case 263:
    6415 
    6416 /* Line 1806 of yacc.c  */
    6417 #line 1127 "parser.yy"
     6482  case 270:
     6483
     6484/* Line 1806 of yacc.c  */
     6485#line 1158 "parser.yy"
    64186486    {
    64196487                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64226490    break;
    64236491
    6424   case 268:
    6425 
    6426 /* Line 1806 of yacc.c  */
    6427 #line 1144 "parser.yy"
     6492  case 275:
     6493
     6494/* Line 1806 of yacc.c  */
     6495#line 1175 "parser.yy"
    64286496    {
    64296497                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64326500    break;
    64336501
    6434   case 269:
    6435 
    6436 /* Line 1806 of yacc.c  */
    6437 #line 1149 "parser.yy"
     6502  case 276:
     6503
     6504/* Line 1806 of yacc.c  */
     6505#line 1180 "parser.yy"
    64386506    {
    64396507                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64426510    break;
    64436511
    6444   case 278:
    6445 
    6446 /* Line 1806 of yacc.c  */
    6447 #line 1171 "parser.yy"
     6512  case 285:
     6513
     6514/* Line 1806 of yacc.c  */
     6515#line 1202 "parser.yy"
    64486516    { (yyval.decl) = 0; }
    64496517    break;
    64506518
    6451   case 281:
    6452 
    6453 /* Line 1806 of yacc.c  */
    6454 #line 1183 "parser.yy"
     6519  case 288:
     6520
     6521/* Line 1806 of yacc.c  */
     6522#line 1214 "parser.yy"
    64556523    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    64566524    break;
    64576525
    6458   case 284:
    6459 
    6460 /* Line 1806 of yacc.c  */
    6461 #line 1194 "parser.yy"
     6526  case 291:
     6527
     6528/* Line 1806 of yacc.c  */
     6529#line 1225 "parser.yy"
    64626530    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    64636531    break;
    64646532
    6465   case 285:
    6466 
    6467 /* Line 1806 of yacc.c  */
    6468 #line 1196 "parser.yy"
     6533  case 292:
     6534
     6535/* Line 1806 of yacc.c  */
     6536#line 1227 "parser.yy"
    64696537    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    64706538    break;
    64716539
    6472   case 286:
    6473 
    6474 /* Line 1806 of yacc.c  */
    6475 #line 1198 "parser.yy"
     6540  case 293:
     6541
     6542/* Line 1806 of yacc.c  */
     6543#line 1229 "parser.yy"
    64766544    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    64776545    break;
    64786546
    6479   case 287:
    6480 
    6481 /* Line 1806 of yacc.c  */
    6482 #line 1200 "parser.yy"
     6547  case 294:
     6548
     6549/* Line 1806 of yacc.c  */
     6550#line 1231 "parser.yy"
    64836551    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    64846552    break;
    64856553
    6486   case 288:
    6487 
    6488 /* Line 1806 of yacc.c  */
    6489 #line 1202 "parser.yy"
     6554  case 295:
     6555
     6556/* Line 1806 of yacc.c  */
     6557#line 1233 "parser.yy"
    64906558    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    64916559    break;
    64926560
    6493   case 289:
    6494 
    6495 /* Line 1806 of yacc.c  */
    6496 #line 1204 "parser.yy"
     6561  case 296:
     6562
     6563/* Line 1806 of yacc.c  */
     6564#line 1235 "parser.yy"
    64976565    {
    64986566                        typedefTable.enterScope();
     
    65006568    break;
    65016569
    6502   case 290:
    6503 
    6504 /* Line 1806 of yacc.c  */
    6505 #line 1208 "parser.yy"
     6570  case 297:
     6571
     6572/* Line 1806 of yacc.c  */
     6573#line 1239 "parser.yy"
    65066574    {
    65076575                        typedefTable.leaveScope();
     
    65106578    break;
    65116579
    6512   case 292:
    6513 
    6514 /* Line 1806 of yacc.c  */
    6515 #line 1217 "parser.yy"
     6580  case 299:
     6581
     6582/* Line 1806 of yacc.c  */
     6583#line 1248 "parser.yy"
    65166584    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65176585    break;
    65186586
    6519   case 293:
    6520 
    6521 /* Line 1806 of yacc.c  */
    6522 #line 1219 "parser.yy"
     6587  case 300:
     6588
     6589/* Line 1806 of yacc.c  */
     6590#line 1250 "parser.yy"
    65236591    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65246592    break;
    65256593
    6526   case 295:
    6527 
    6528 /* Line 1806 of yacc.c  */
    6529 #line 1230 "parser.yy"
     6594  case 302:
     6595
     6596/* Line 1806 of yacc.c  */
     6597#line 1261 "parser.yy"
    65306598    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65316599    break;
    65326600
    6533   case 297:
    6534 
    6535 /* Line 1806 of yacc.c  */
    6536 #line 1239 "parser.yy"
     6601  case 304:
     6602
     6603/* Line 1806 of yacc.c  */
     6604#line 1270 "parser.yy"
    65376605    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    65386606    break;
    65396607
    6540   case 298:
    6541 
    6542 /* Line 1806 of yacc.c  */
    6543 #line 1241 "parser.yy"
     6608  case 305:
     6609
     6610/* Line 1806 of yacc.c  */
     6611#line 1272 "parser.yy"
    65446612    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    65456613    break;
    65466614
    6547   case 299:
    6548 
    6549 /* Line 1806 of yacc.c  */
    6550 #line 1243 "parser.yy"
     6615  case 306:
     6616
     6617/* Line 1806 of yacc.c  */
     6618#line 1274 "parser.yy"
    65516619    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    65526620    break;
    65536621
    6554   case 300:
    6555 
    6556 /* Line 1806 of yacc.c  */
    6557 #line 1245 "parser.yy"
     6622  case 307:
     6623
     6624/* Line 1806 of yacc.c  */
     6625#line 1276 "parser.yy"
    65586626    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    65596627    break;
    65606628
    6561   case 301:
    6562 
    6563 /* Line 1806 of yacc.c  */
    6564 #line 1247 "parser.yy"
     6629  case 308:
     6630
     6631/* Line 1806 of yacc.c  */
     6632#line 1278 "parser.yy"
    65656633    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    65666634    break;
    65676635
    6568   case 302:
    6569 
    6570 /* Line 1806 of yacc.c  */
    6571 #line 1249 "parser.yy"
     6636  case 309:
     6637
     6638/* Line 1806 of yacc.c  */
     6639#line 1280 "parser.yy"
    65726640    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    65736641    break;
    65746642
    6575   case 303:
    6576 
    6577 /* Line 1806 of yacc.c  */
    6578 #line 1251 "parser.yy"
     6643  case 310:
     6644
     6645/* Line 1806 of yacc.c  */
     6646#line 1282 "parser.yy"
    65796647    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    65806648    break;
    65816649
    6582   case 304:
    6583 
    6584 /* Line 1806 of yacc.c  */
    6585 #line 1253 "parser.yy"
     6650  case 311:
     6651
     6652/* Line 1806 of yacc.c  */
     6653#line 1284 "parser.yy"
    65866654    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    65876655    break;
    65886656
    6589   case 305:
    6590 
    6591 /* Line 1806 of yacc.c  */
    6592 #line 1258 "parser.yy"
     6657  case 312:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1289 "parser.yy"
    65936661    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    65946662    break;
    65956663
    6596   case 306:
    6597 
    6598 /* Line 1806 of yacc.c  */
    6599 #line 1260 "parser.yy"
     6664  case 313:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1291 "parser.yy"
    66006668    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    66016669    break;
    66026670
    6603   case 307:
    6604 
    6605 /* Line 1806 of yacc.c  */
    6606 #line 1262 "parser.yy"
     6671  case 314:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1293 "parser.yy"
    66076675    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    66086676    break;
    66096677
    6610   case 308:
    6611 
    6612 /* Line 1806 of yacc.c  */
    6613 #line 1264 "parser.yy"
     6678  case 315:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1295 "parser.yy"
    66146682    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    66156683    break;
    66166684
    6617   case 309:
    6618 
    6619 /* Line 1806 of yacc.c  */
    6620 #line 1266 "parser.yy"
     6685  case 316:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1297 "parser.yy"
    66216689    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    66226690    break;
    66236691
    6624   case 310:
    6625 
    6626 /* Line 1806 of yacc.c  */
    6627 #line 1268 "parser.yy"
     6692  case 317:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1299 "parser.yy"
    66286696    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    66296697    break;
    66306698
    6631   case 311:
    6632 
    6633 /* Line 1806 of yacc.c  */
    6634 #line 1270 "parser.yy"
     6699  case 318:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1301 "parser.yy"
    66356703    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    66366704    break;
    66376705
    6638   case 312:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1272 "parser.yy"
     6706  case 319:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1303 "parser.yy"
    66426710    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    66436711    break;
    66446712
    6645   case 313:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1274 "parser.yy"
     6713  case 320:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1305 "parser.yy"
    66496717    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    66506718    break;
    66516719
    6652   case 314:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1276 "parser.yy"
     6720  case 321:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1307 "parser.yy"
    66566724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    66576725    break;
    66586726
    6659   case 315:
    6660 
    6661 /* Line 1806 of yacc.c  */
    6662 #line 1278 "parser.yy"
     6727  case 322:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1309 "parser.yy"
    66636731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    66646732    break;
    66656733
    6666   case 316:
    6667 
    6668 /* Line 1806 of yacc.c  */
    6669 #line 1280 "parser.yy"
     6734  case 323:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1311 "parser.yy"
    66706738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    66716739    break;
    66726740
    6673   case 318:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1287 "parser.yy"
     6741  case 325:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1318 "parser.yy"
    66776745    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    66786746    break;
    66796747
    6680   case 319:
    6681 
    6682 /* Line 1806 of yacc.c  */
    6683 #line 1289 "parser.yy"
     6748  case 326:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1320 "parser.yy"
    66846752    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66856753    break;
    66866754
    6687   case 320:
    6688 
    6689 /* Line 1806 of yacc.c  */
    6690 #line 1291 "parser.yy"
     6755  case 327:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1322 "parser.yy"
    66916759    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66926760    break;
    66936761
    6694   case 321:
    6695 
    6696 /* Line 1806 of yacc.c  */
    6697 #line 1293 "parser.yy"
     6762  case 328:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1324 "parser.yy"
    66986766    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    66996767    break;
    67006768
    6701   case 323:
    6702 
    6703 /* Line 1806 of yacc.c  */
    6704 #line 1299 "parser.yy"
     6769  case 330:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1330 "parser.yy"
    67056773    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67066774    break;
    67076775
    6708   case 325:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1306 "parser.yy"
    6712     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6713     break;
    6714 
    6715   case 326:
    6716 
    6717 /* Line 1806 of yacc.c  */
    6718 #line 1308 "parser.yy"
    6719     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6720     break;
    6721 
    6722   case 327:
    6723 
    6724 /* Line 1806 of yacc.c  */
    6725 #line 1310 "parser.yy"
    6726     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6727     break;
    6728 
    6729   case 328:
    6730 
    6731 /* Line 1806 of yacc.c  */
    6732 #line 1315 "parser.yy"
    6733     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6734     break;
    6735 
    6736   case 329:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1317 "parser.yy"
    6740     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6741     break;
    6742 
    6743   case 330:
    6744 
    6745 /* Line 1806 of yacc.c  */
    6746 #line 1319 "parser.yy"
    6747     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6748     break;
    6749 
    6750   case 331:
    6751 
    6752 /* Line 1806 of yacc.c  */
    6753 #line 1321 "parser.yy"
    6754     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6755     break;
    6756 
    6757   case 333:
    6758 
    6759 /* Line 1806 of yacc.c  */
    6760 #line 1327 "parser.yy"
    6761     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6762     break;
    6763 
    6764   case 334:
    6765 
    6766 /* Line 1806 of yacc.c  */
    6767 #line 1329 "parser.yy"
    6768     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6769     break;
    6770 
    6771   case 335:
    6772 
    6773 /* Line 1806 of yacc.c  */
    6774 #line 1331 "parser.yy"
    6775     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6776     break;
    6777 
    6778   case 337:
     6776  case 332:
    67796777
    67806778/* Line 1806 of yacc.c  */
     
    67836781    break;
    67846782
    6785   case 338:
     6783  case 333:
    67866784
    67876785/* Line 1806 of yacc.c  */
     
    67906788    break;
    67916789
     6790  case 334:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1341 "parser.yy"
     6794    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6795    break;
     6796
     6797  case 335:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1346 "parser.yy"
     6801    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6802    break;
     6803
     6804  case 336:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1348 "parser.yy"
     6808    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6809    break;
     6810
     6811  case 337:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1350 "parser.yy"
     6815    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6816    break;
     6817
     6818  case 338:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1352 "parser.yy"
     6822    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6823    break;
     6824
    67926825  case 340:
    67936826
    67946827/* Line 1806 of yacc.c  */
    6795 #line 1345 "parser.yy"
     6828#line 1358 "parser.yy"
    67966829    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67976830    break;
     
    68006833
    68016834/* Line 1806 of yacc.c  */
    6802 #line 1347 "parser.yy"
     6835#line 1360 "parser.yy"
    68036836    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68046837    break;
     
    68076840
    68086841/* Line 1806 of yacc.c  */
    6809 #line 1349 "parser.yy"
     6842#line 1362 "parser.yy"
    68106843    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68116844    break;
    68126845
    6813   case 343:
    6814 
    6815 /* Line 1806 of yacc.c  */
    6816 #line 1354 "parser.yy"
     6846  case 344:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1368 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6851    break;
     6852
     6853  case 345:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1370 "parser.yy"
     6857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6858    break;
     6859
     6860  case 347:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1376 "parser.yy"
     6864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6865    break;
     6866
     6867  case 348:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1378 "parser.yy"
     6871    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6872    break;
     6873
     6874  case 349:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1380 "parser.yy"
     6878    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6879    break;
     6880
     6881  case 350:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1385 "parser.yy"
    68176885    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    68186886    break;
    68196887
    6820   case 344:
    6821 
    6822 /* Line 1806 of yacc.c  */
    6823 #line 1356 "parser.yy"
     6888  case 351:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1387 "parser.yy"
    68246892    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68256893    break;
    68266894
    6827   case 345:
    6828 
    6829 /* Line 1806 of yacc.c  */
    6830 #line 1358 "parser.yy"
     6895  case 352:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1389 "parser.yy"
    68316899    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68326900    break;
    68336901
    6834   case 348:
    6835 
    6836 /* Line 1806 of yacc.c  */
    6837 #line 1368 "parser.yy"
     6902  case 355:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1399 "parser.yy"
    68386906    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    68396907    break;
    68406908
    6841   case 349:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1370 "parser.yy"
     6909  case 356:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1401 "parser.yy"
    68456913    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    68466914    break;
    68476915
    6848   case 350:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1372 "parser.yy"
     6916  case 357:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1403 "parser.yy"
    68526920    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    68536921    break;
    68546922
    6855   case 351:
    6856 
    6857 /* Line 1806 of yacc.c  */
    6858 #line 1374 "parser.yy"
     6923  case 358:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1405 "parser.yy"
    68596927    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    68606928    break;
    68616929
    6862   case 352:
    6863 
    6864 /* Line 1806 of yacc.c  */
    6865 #line 1376 "parser.yy"
     6930  case 359:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1407 "parser.yy"
    68666934    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    68676935    break;
    68686936
    6869   case 353:
    6870 
    6871 /* Line 1806 of yacc.c  */
    6872 #line 1381 "parser.yy"
     6937  case 360:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1412 "parser.yy"
    68736941    { (yyval.aggKey) = DeclarationNode::Struct; }
    68746942    break;
    68756943
    6876   case 354:
    6877 
    6878 /* Line 1806 of yacc.c  */
    6879 #line 1383 "parser.yy"
     6944  case 361:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1414 "parser.yy"
    68806948    { (yyval.aggKey) = DeclarationNode::Union; }
    68816949    break;
    68826950
    6883   case 355:
    6884 
    6885 /* Line 1806 of yacc.c  */
    6886 #line 1388 "parser.yy"
     6951  case 362:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1419 "parser.yy"
    68876955    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    68886956    break;
    68896957
    6890   case 356:
    6891 
    6892 /* Line 1806 of yacc.c  */
    6893 #line 1390 "parser.yy"
     6958  case 363:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1421 "parser.yy"
    68946962    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    68956963    break;
    68966964
    6897   case 358:
    6898 
    6899 /* Line 1806 of yacc.c  */
    6900 #line 1396 "parser.yy"
     6965  case 365:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1427 "parser.yy"
    69016969    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69026970    break;
    69036971
    6904   case 360:
    6905 
    6906 /* Line 1806 of yacc.c  */
    6907 #line 1399 "parser.yy"
     6972  case 367:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1430 "parser.yy"
    69086976    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    69096977    break;
    69106978
    6911   case 362:
    6912 
    6913 /* Line 1806 of yacc.c  */
    6914 #line 1405 "parser.yy"
     6979  case 369:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1436 "parser.yy"
    69156983    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    69166984    break;
    69176985
    6918   case 363:
    6919 
    6920 /* Line 1806 of yacc.c  */
    6921 #line 1407 "parser.yy"
     6986  case 370:
     6987
     6988/* Line 1806 of yacc.c  */
     6989#line 1438 "parser.yy"
    69226990    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    69236991    break;
    69246992
    6925   case 364:
    6926 
    6927 /* Line 1806 of yacc.c  */
    6928 #line 1409 "parser.yy"
     6993  case 371:
     6994
     6995/* Line 1806 of yacc.c  */
     6996#line 1440 "parser.yy"
    69296997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    69306998    break;
    69316999
    6932   case 365:
    6933 
    6934 /* Line 1806 of yacc.c  */
    6935 #line 1414 "parser.yy"
     7000  case 372:
     7001
     7002/* Line 1806 of yacc.c  */
     7003#line 1445 "parser.yy"
    69367004    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    69377005    break;
    69387006
    6939   case 366:
    6940 
    6941 /* Line 1806 of yacc.c  */
    6942 #line 1416 "parser.yy"
     7007  case 373:
     7008
     7009/* Line 1806 of yacc.c  */
     7010#line 1447 "parser.yy"
    69437011    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    69447012    break;
    69457013
    6946   case 367:
    6947 
    6948 /* Line 1806 of yacc.c  */
    6949 #line 1421 "parser.yy"
     7014  case 374:
     7015
     7016/* Line 1806 of yacc.c  */
     7017#line 1452 "parser.yy"
    69507018    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    69517019    break;
    69527020
    6953   case 368:
    6954 
    6955 /* Line 1806 of yacc.c  */
    6956 #line 1423 "parser.yy"
     7021  case 375:
     7022
     7023/* Line 1806 of yacc.c  */
     7024#line 1454 "parser.yy"
    69577025    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    69587026    break;
    69597027
    6960   case 369:
    6961 
    6962 /* Line 1806 of yacc.c  */
    6963 #line 1426 "parser.yy"
     7028  case 376:
     7029
     7030/* Line 1806 of yacc.c  */
     7031#line 1457 "parser.yy"
    69647032    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69657033    break;
    69667034
    6967   case 370:
    6968 
    6969 /* Line 1806 of yacc.c  */
    6970 #line 1429 "parser.yy"
     7035  case 377:
     7036
     7037/* Line 1806 of yacc.c  */
     7038#line 1460 "parser.yy"
    69717039    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    69727040    break;
    69737041
    6974   case 372:
    6975 
    6976 /* Line 1806 of yacc.c  */
    6977 #line 1435 "parser.yy"
     7042  case 379:
     7043
     7044/* Line 1806 of yacc.c  */
     7045#line 1466 "parser.yy"
    69787046    { (yyval.en) = 0; }
    69797047    break;
    69807048
    6981   case 373:
    6982 
    6983 /* Line 1806 of yacc.c  */
    6984 #line 1437 "parser.yy"
     7049  case 380:
     7050
     7051/* Line 1806 of yacc.c  */
     7052#line 1468 "parser.yy"
    69857053    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    69867054    break;
    69877055
    6988   case 374:
    6989 
    6990 /* Line 1806 of yacc.c  */
    6991 #line 1442 "parser.yy"
     7056  case 381:
     7057
     7058/* Line 1806 of yacc.c  */
     7059#line 1473 "parser.yy"
    69927060    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    69937061    break;
    69947062
    6995   case 376:
    6996 
    6997 /* Line 1806 of yacc.c  */
    6998 #line 1451 "parser.yy"
     7063  case 383:
     7064
     7065/* Line 1806 of yacc.c  */
     7066#line 1482 "parser.yy"
    69997067    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    70007068    break;
    70017069
    7002   case 377:
    7003 
    7004 /* Line 1806 of yacc.c  */
    7005 #line 1453 "parser.yy"
     7070  case 384:
     7071
     7072/* Line 1806 of yacc.c  */
     7073#line 1484 "parser.yy"
    70067074    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    70077075    break;
    70087076
    7009   case 378:
    7010 
    7011 /* Line 1806 of yacc.c  */
    7012 #line 1455 "parser.yy"
     7077  case 385:
     7078
     7079/* Line 1806 of yacc.c  */
     7080#line 1486 "parser.yy"
    70137081    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    70147082    break;
    70157083
    7016   case 379:
    7017 
    7018 /* Line 1806 of yacc.c  */
    7019 #line 1460 "parser.yy"
     7084  case 386:
     7085
     7086/* Line 1806 of yacc.c  */
     7087#line 1491 "parser.yy"
    70207088    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70217089    break;
    70227090
    7023   case 380:
    7024 
    7025 /* Line 1806 of yacc.c  */
    7026 #line 1462 "parser.yy"
     7091  case 387:
     7092
     7093/* Line 1806 of yacc.c  */
     7094#line 1493 "parser.yy"
    70277095    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    70287096    break;
    70297097
    7030   case 381:
    7031 
    7032 /* Line 1806 of yacc.c  */
    7033 #line 1467 "parser.yy"
     7098  case 388:
     7099
     7100/* Line 1806 of yacc.c  */
     7101#line 1498 "parser.yy"
    70347102    { (yyval.en) = 0; }
    70357103    break;
    70367104
    7037   case 382:
    7038 
    7039 /* Line 1806 of yacc.c  */
    7040 #line 1469 "parser.yy"
     7105  case 389:
     7106
     7107/* Line 1806 of yacc.c  */
     7108#line 1500 "parser.yy"
    70417109    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70427110    break;
    70437111
    7044   case 383:
    7045 
    7046 /* Line 1806 of yacc.c  */
    7047 #line 1476 "parser.yy"
     7112  case 390:
     7113
     7114/* Line 1806 of yacc.c  */
     7115#line 1507 "parser.yy"
    70487116    { (yyval.decl) = 0; }
    70497117    break;
    70507118
    7051   case 387:
    7052 
    7053 /* Line 1806 of yacc.c  */
    7054 #line 1484 "parser.yy"
     7119  case 394:
     7120
     7121/* Line 1806 of yacc.c  */
     7122#line 1515 "parser.yy"
    70557123    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    70567124    break;
    70577125
    7058   case 388:
    7059 
    7060 /* Line 1806 of yacc.c  */
    7061 #line 1486 "parser.yy"
     7126  case 395:
     7127
     7128/* Line 1806 of yacc.c  */
     7129#line 1517 "parser.yy"
    70627130    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    70637131    break;
    70647132
    7065   case 389:
    7066 
    7067 /* Line 1806 of yacc.c  */
    7068 #line 1488 "parser.yy"
     7133  case 396:
     7134
     7135/* Line 1806 of yacc.c  */
     7136#line 1519 "parser.yy"
    70697137    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    70707138    break;
    70717139
    7072   case 391:
    7073 
    7074 /* Line 1806 of yacc.c  */
    7075 #line 1496 "parser.yy"
    7076     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7077     break;
    7078 
    7079   case 392:
    7080 
    7081 /* Line 1806 of yacc.c  */
    7082 #line 1498 "parser.yy"
    7083     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7084     break;
    7085 
    7086   case 393:
    7087 
    7088 /* Line 1806 of yacc.c  */
    7089 #line 1500 "parser.yy"
    7090     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7091     break;
    7092 
    7093   case 395:
    7094 
    7095 /* Line 1806 of yacc.c  */
    7096 #line 1506 "parser.yy"
    7097     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7098     break;
    7099 
    7100   case 396:
    7101 
    7102 /* Line 1806 of yacc.c  */
    7103 #line 1511 "parser.yy"
    7104     { (yyval.decl) = 0; }
    7105     break;
    7106 
    7107   case 399:
    7108 
    7109 /* Line 1806 of yacc.c  */
    7110 #line 1518 "parser.yy"
    7111     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7112     break;
    7113 
    7114   case 402:
    7115 
    7116 /* Line 1806 of yacc.c  */
    7117 #line 1525 "parser.yy"
    7118     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7119     break;
    7120 
    7121   case 403:
     7140  case 398:
    71227141
    71237142/* Line 1806 of yacc.c  */
     
    71267145    break;
    71277146
    7128   case 405:
    7129 
    7130 /* Line 1806 of yacc.c  */
    7131 #line 1536 "parser.yy"
     7147  case 399:
     7148
     7149/* Line 1806 of yacc.c  */
     7150#line 1529 "parser.yy"
     7151    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7152    break;
     7153
     7154  case 400:
     7155
     7156/* Line 1806 of yacc.c  */
     7157#line 1531 "parser.yy"
     7158    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7159    break;
     7160
     7161  case 402:
     7162
     7163/* Line 1806 of yacc.c  */
     7164#line 1537 "parser.yy"
     7165    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7166    break;
     7167
     7168  case 403:
     7169
     7170/* Line 1806 of yacc.c  */
     7171#line 1542 "parser.yy"
     7172    { (yyval.decl) = 0; }
     7173    break;
     7174
     7175  case 406:
     7176
     7177/* Line 1806 of yacc.c  */
     7178#line 1549 "parser.yy"
     7179    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7180    break;
     7181
     7182  case 409:
     7183
     7184/* Line 1806 of yacc.c  */
     7185#line 1556 "parser.yy"
     7186    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7187    break;
     7188
     7189  case 410:
     7190
     7191/* Line 1806 of yacc.c  */
     7192#line 1558 "parser.yy"
     7193    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7194    break;
     7195
     7196  case 412:
     7197
     7198/* Line 1806 of yacc.c  */
     7199#line 1567 "parser.yy"
    71327200    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71337201    break;
    71347202
    7135   case 406:
    7136 
    7137 /* Line 1806 of yacc.c  */
    7138 #line 1539 "parser.yy"
     7203  case 413:
     7204
     7205/* Line 1806 of yacc.c  */
     7206#line 1570 "parser.yy"
    71397207    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71407208    break;
    71417209
    7142   case 407:
    7143 
    7144 /* Line 1806 of yacc.c  */
    7145 #line 1541 "parser.yy"
     7210  case 414:
     7211
     7212/* Line 1806 of yacc.c  */
     7213#line 1572 "parser.yy"
    71467214    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    71477215    break;
    71487216
    7149   case 412:
    7150 
    7151 /* Line 1806 of yacc.c  */
    7152 #line 1551 "parser.yy"
     7217  case 419:
     7218
     7219/* Line 1806 of yacc.c  */
     7220#line 1582 "parser.yy"
    71537221    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71547222    break;
    71557223
    7156   case 414:
    7157 
    7158 /* Line 1806 of yacc.c  */
    7159 #line 1557 "parser.yy"
     7224  case 421:
     7225
     7226/* Line 1806 of yacc.c  */
     7227#line 1588 "parser.yy"
    71607228    {
    71617229                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    71647232    break;
    71657233
    7166   case 415:
    7167 
    7168 /* Line 1806 of yacc.c  */
    7169 #line 1562 "parser.yy"
     7234  case 422:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1593 "parser.yy"
    71707238    {
    71717239                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    71747242    break;
    71757243
    7176   case 417:
    7177 
    7178 /* Line 1806 of yacc.c  */
    7179 #line 1571 "parser.yy"
     7244  case 424:
     7245
     7246/* Line 1806 of yacc.c  */
     7247#line 1602 "parser.yy"
    71807248    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71817249    break;
    71827250
    7183   case 418:
    7184 
    7185 /* Line 1806 of yacc.c  */
    7186 #line 1580 "parser.yy"
     7251  case 425:
     7252
     7253/* Line 1806 of yacc.c  */
     7254#line 1611 "parser.yy"
    71877255    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    71887256    break;
    71897257
    7190   case 419:
    7191 
    7192 /* Line 1806 of yacc.c  */
    7193 #line 1582 "parser.yy"
     7258  case 426:
     7259
     7260/* Line 1806 of yacc.c  */
     7261#line 1613 "parser.yy"
    71947262    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    71957263    break;
    71967264
    7197   case 431:
    7198 
    7199 /* Line 1806 of yacc.c  */
    7200 #line 1607 "parser.yy"
     7265  case 438:
     7266
     7267/* Line 1806 of yacc.c  */
     7268#line 1638 "parser.yy"
    72017269    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72027270    break;
    72037271
    7204   case 435:
    7205 
    7206 /* Line 1806 of yacc.c  */
    7207 #line 1615 "parser.yy"
     7272  case 442:
     7273
     7274/* Line 1806 of yacc.c  */
     7275#line 1646 "parser.yy"
    72087276    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72097277    break;
    72107278
    7211   case 436:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1620 "parser.yy"
     7279  case 443:
     7280
     7281/* Line 1806 of yacc.c  */
     7282#line 1651 "parser.yy"
    72157283    { (yyval.in) = 0; }
    72167284    break;
    72177285
    7218   case 437:
    7219 
    7220 /* Line 1806 of yacc.c  */
    7221 #line 1622 "parser.yy"
     7286  case 444:
     7287
     7288/* Line 1806 of yacc.c  */
     7289#line 1653 "parser.yy"
    72227290    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    72237291    break;
    72247292
    7225   case 438:
    7226 
    7227 /* Line 1806 of yacc.c  */
    7228 #line 1626 "parser.yy"
     7293  case 445:
     7294
     7295/* Line 1806 of yacc.c  */
     7296#line 1657 "parser.yy"
    72297297    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    72307298    break;
    72317299
    7232   case 439:
    7233 
    7234 /* Line 1806 of yacc.c  */
    7235 #line 1627 "parser.yy"
     7300  case 446:
     7301
     7302/* Line 1806 of yacc.c  */
     7303#line 1658 "parser.yy"
    72367304    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    72377305    break;
    72387306
    7239   case 441:
    7240 
    7241 /* Line 1806 of yacc.c  */
    7242 #line 1632 "parser.yy"
     7307  case 448:
     7308
     7309/* Line 1806 of yacc.c  */
     7310#line 1663 "parser.yy"
    72437311    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    72447312    break;
    72457313
    7246   case 442:
    7247 
    7248 /* Line 1806 of yacc.c  */
    7249 #line 1633 "parser.yy"
     7314  case 449:
     7315
     7316/* Line 1806 of yacc.c  */
     7317#line 1664 "parser.yy"
    72507318    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    72517319    break;
    72527320
    7253   case 443:
    7254 
    7255 /* Line 1806 of yacc.c  */
    7256 #line 1635 "parser.yy"
     7321  case 450:
     7322
     7323/* Line 1806 of yacc.c  */
     7324#line 1666 "parser.yy"
    72577325    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    72587326    break;
    72597327
    7260   case 445:
    7261 
    7262 /* Line 1806 of yacc.c  */
    7263 #line 1651 "parser.yy"
     7328  case 452:
     7329
     7330/* Line 1806 of yacc.c  */
     7331#line 1682 "parser.yy"
    72647332    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    72657333    break;
    72667334
    7267   case 447:
    7268 
    7269 /* Line 1806 of yacc.c  */
    7270 #line 1657 "parser.yy"
     7335  case 454:
     7336
     7337/* Line 1806 of yacc.c  */
     7338#line 1688 "parser.yy"
    72717339    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    72727340    break;
    72737341
    7274   case 448:
    7275 
    7276 /* Line 1806 of yacc.c  */
    7277 #line 1663 "parser.yy"
     7342  case 455:
     7343
     7344/* Line 1806 of yacc.c  */
     7345#line 1694 "parser.yy"
    72787346    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    72797347    break;
    72807348
    7281   case 449:
    7282 
    7283 /* Line 1806 of yacc.c  */
    7284 #line 1666 "parser.yy"
     7349  case 456:
     7350
     7351/* Line 1806 of yacc.c  */
     7352#line 1697 "parser.yy"
    72857353    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    72867354    break;
    72877355
    7288   case 450:
    7289 
    7290 /* Line 1806 of yacc.c  */
    7291 #line 1668 "parser.yy"
     7356  case 457:
     7357
     7358/* Line 1806 of yacc.c  */
     7359#line 1699 "parser.yy"
    72927360    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    72937361    break;
    72947362
    7295   case 451:
    7296 
    7297 /* Line 1806 of yacc.c  */
    7298 #line 1670 "parser.yy"
     7363  case 458:
     7364
     7365/* Line 1806 of yacc.c  */
     7366#line 1701 "parser.yy"
    72997367    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); }
    73007368    break;
    73017369
    7302   case 452:
    7303 
    7304 /* Line 1806 of yacc.c  */
    7305 #line 1672 "parser.yy"
     7370  case 459:
     7371
     7372/* Line 1806 of yacc.c  */
     7373#line 1703 "parser.yy"
    73067374    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    73077375    break;
    73087376
    7309   case 454:
    7310 
    7311 /* Line 1806 of yacc.c  */
    7312 #line 1696 "parser.yy"
     7377  case 461:
     7378
     7379/* Line 1806 of yacc.c  */
     7380#line 1727 "parser.yy"
    73137381    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73147382    break;
    73157383
    7316   case 455:
    7317 
    7318 /* Line 1806 of yacc.c  */
    7319 #line 1698 "parser.yy"
     7384  case 462:
     7385
     7386/* Line 1806 of yacc.c  */
     7387#line 1729 "parser.yy"
    73207388    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73217389    break;
    73227390
    7323   case 456:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1700 "parser.yy"
     7391  case 463:
     7392
     7393/* Line 1806 of yacc.c  */
     7394#line 1731 "parser.yy"
    73277395    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    73287396    break;
    73297397
    7330   case 458:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1706 "parser.yy"
     7398  case 465:
     7399
     7400/* Line 1806 of yacc.c  */
     7401#line 1737 "parser.yy"
    73347402    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73357403    break;
    73367404
    7337   case 459:
    7338 
    7339 /* Line 1806 of yacc.c  */
    7340 #line 1708 "parser.yy"
     7405  case 466:
     7406
     7407/* Line 1806 of yacc.c  */
     7408#line 1739 "parser.yy"
    73417409    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73427410    break;
    73437411
    7344   case 460:
    7345 
    7346 /* Line 1806 of yacc.c  */
    7347 #line 1713 "parser.yy"
     7412  case 467:
     7413
     7414/* Line 1806 of yacc.c  */
     7415#line 1744 "parser.yy"
    73487416    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    73497417    break;
    73507418
    7351   case 462:
    7352 
    7353 /* Line 1806 of yacc.c  */
    7354 #line 1719 "parser.yy"
     7419  case 469:
     7420
     7421/* Line 1806 of yacc.c  */
     7422#line 1750 "parser.yy"
    73557423    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    73567424    break;
    73577425
    7358   case 463:
    7359 
    7360 /* Line 1806 of yacc.c  */
    7361 #line 1724 "parser.yy"
     7426  case 470:
     7427
     7428/* Line 1806 of yacc.c  */
     7429#line 1755 "parser.yy"
    73627430    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    73637431    break;
    73647432
    7365   case 464:
    7366 
    7367 /* Line 1806 of yacc.c  */
    7368 #line 1726 "parser.yy"
     7433  case 471:
     7434
     7435/* Line 1806 of yacc.c  */
     7436#line 1757 "parser.yy"
    73697437    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    73707438    break;
    73717439
    7372   case 466:
    7373 
    7374 /* Line 1806 of yacc.c  */
    7375 #line 1732 "parser.yy"
     7440  case 473:
     7441
     7442/* Line 1806 of yacc.c  */
     7443#line 1763 "parser.yy"
    73767444    { (yyval.tclass) = DeclarationNode::Type; }
    73777445    break;
    73787446
    7379   case 467:
    7380 
    7381 /* Line 1806 of yacc.c  */
    7382 #line 1734 "parser.yy"
     7447  case 474:
     7448
     7449/* Line 1806 of yacc.c  */
     7450#line 1765 "parser.yy"
    73837451    { (yyval.tclass) = DeclarationNode::Ftype; }
    73847452    break;
    73857453
    7386   case 468:
    7387 
    7388 /* Line 1806 of yacc.c  */
    7389 #line 1736 "parser.yy"
     7454  case 475:
     7455
     7456/* Line 1806 of yacc.c  */
     7457#line 1767 "parser.yy"
    73907458    { (yyval.tclass) = DeclarationNode::Dtype; }
    73917459    break;
    73927460
    7393   case 469:
    7394 
    7395 /* Line 1806 of yacc.c  */
    7396 #line 1741 "parser.yy"
     7461  case 476:
     7462
     7463/* Line 1806 of yacc.c  */
     7464#line 1772 "parser.yy"
    73977465    { (yyval.decl) = 0; }
    73987466    break;
    73997467
    7400   case 470:
    7401 
    7402 /* Line 1806 of yacc.c  */
    7403 #line 1743 "parser.yy"
     7468  case 477:
     7469
     7470/* Line 1806 of yacc.c  */
     7471#line 1774 "parser.yy"
    74047472    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    74057473    break;
    74067474
    7407   case 471:
    7408 
    7409 /* Line 1806 of yacc.c  */
    7410 #line 1748 "parser.yy"
     7475  case 478:
     7476
     7477/* Line 1806 of yacc.c  */
     7478#line 1779 "parser.yy"
    74117479    {
    74127480                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    74157483    break;
    74167484
    7417   case 472:
    7418 
    7419 /* Line 1806 of yacc.c  */
    7420 #line 1753 "parser.yy"
     7485  case 479:
     7486
     7487/* Line 1806 of yacc.c  */
     7488#line 1784 "parser.yy"
    74217489    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    74227490    break;
    74237491
    7424   case 473:
    7425 
    7426 /* Line 1806 of yacc.c  */
    7427 #line 1755 "parser.yy"
     7492  case 480:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1786 "parser.yy"
    74287496    { (yyval.decl) = 0; }
    74297497    break;
    74307498
    7431   case 474:
    7432 
    7433 /* Line 1806 of yacc.c  */
    7434 #line 1760 "parser.yy"
     7499  case 481:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1791 "parser.yy"
    74357503    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    74367504    break;
    74377505
    7438   case 476:
    7439 
    7440 /* Line 1806 of yacc.c  */
    7441 #line 1763 "parser.yy"
     7506  case 483:
     7507
     7508/* Line 1806 of yacc.c  */
     7509#line 1794 "parser.yy"
    74427510    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    74437511    break;
    74447512
    7445   case 477:
    7446 
    7447 /* Line 1806 of yacc.c  */
    7448 #line 1765 "parser.yy"
     7513  case 484:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1796 "parser.yy"
    74497517    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    74507518    break;
    74517519
    7452   case 478:
    7453 
    7454 /* Line 1806 of yacc.c  */
    7455 #line 1770 "parser.yy"
     7520  case 485:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1801 "parser.yy"
    74567524    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    74577525    break;
    74587526
    7459   case 479:
    7460 
    7461 /* Line 1806 of yacc.c  */
    7462 #line 1772 "parser.yy"
     7527  case 486:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1803 "parser.yy"
    74637531    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    74647532    break;
    74657533
    7466   case 480:
    7467 
    7468 /* Line 1806 of yacc.c  */
    7469 #line 1774 "parser.yy"
     7534  case 487:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1805 "parser.yy"
    74707538    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    74717539    break;
    74727540
    7473   case 481:
    7474 
    7475 /* Line 1806 of yacc.c  */
    7476 #line 1779 "parser.yy"
     7541  case 488:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1810 "parser.yy"
    74777545    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    74787546    break;
    74797547
    7480   case 482:
    7481 
    7482 /* Line 1806 of yacc.c  */
    7483 #line 1781 "parser.yy"
     7548  case 489:
     7549
     7550/* Line 1806 of yacc.c  */
     7551#line 1812 "parser.yy"
    74847552    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    74857553    break;
    74867554
    7487   case 483:
    7488 
    7489 /* Line 1806 of yacc.c  */
    7490 #line 1786 "parser.yy"
     7555  case 490:
     7556
     7557/* Line 1806 of yacc.c  */
     7558#line 1817 "parser.yy"
    74917559    {
    74927560                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    74957563    break;
    74967564
    7497   case 484:
    7498 
    7499 /* Line 1806 of yacc.c  */
    7500 #line 1791 "parser.yy"
     7565  case 491:
     7566
     7567/* Line 1806 of yacc.c  */
     7568#line 1822 "parser.yy"
    75017569    {
    75027570                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75057573    break;
    75067574
    7507   case 485:
    7508 
    7509 /* Line 1806 of yacc.c  */
    7510 #line 1799 "parser.yy"
     7575  case 492:
     7576
     7577/* Line 1806 of yacc.c  */
     7578#line 1830 "parser.yy"
    75117579    {
    75127580                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75157583    break;
    75167584
    7517   case 486:
    7518 
    7519 /* Line 1806 of yacc.c  */
    7520 #line 1804 "parser.yy"
     7585  case 493:
     7586
     7587/* Line 1806 of yacc.c  */
     7588#line 1835 "parser.yy"
    75217589    {
    75227590                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    75257593    break;
    75267594
    7527   case 487:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1809 "parser.yy"
     7595  case 494:
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1840 "parser.yy"
    75317599    {
    75327600                        typedefTable.leaveContext();
     
    75367604    break;
    75377605
    7538   case 489:
    7539 
    7540 /* Line 1806 of yacc.c  */
    7541 #line 1819 "parser.yy"
     7606  case 496:
     7607
     7608/* Line 1806 of yacc.c  */
     7609#line 1850 "parser.yy"
    75427610    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    75437611    break;
    75447612
    7545   case 492:
    7546 
    7547 /* Line 1806 of yacc.c  */
    7548 #line 1829 "parser.yy"
     7613  case 499:
     7614
     7615/* Line 1806 of yacc.c  */
     7616#line 1860 "parser.yy"
    75497617    {
    75507618                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    75537621    break;
    75547622
    7555   case 493:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1834 "parser.yy"
     7623  case 500:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1865 "parser.yy"
    75597627    {
    75607628                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    75637631    break;
    75647632
    7565   case 494:
    7566 
    7567 /* Line 1806 of yacc.c  */
    7568 #line 1839 "parser.yy"
     7633  case 501:
     7634
     7635/* Line 1806 of yacc.c  */
     7636#line 1870 "parser.yy"
    75697637    {
    75707638                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    75737641    break;
    75747642
    7575   case 495:
    7576 
    7577 /* Line 1806 of yacc.c  */
    7578 #line 1847 "parser.yy"
     7643  case 502:
     7644
     7645/* Line 1806 of yacc.c  */
     7646#line 1878 "parser.yy"
    75797647    {
    75807648                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    75837651    break;
    75847652
    7585   case 496:
    7586 
    7587 /* Line 1806 of yacc.c  */
    7588 #line 1852 "parser.yy"
     7653  case 503:
     7654
     7655/* Line 1806 of yacc.c  */
     7656#line 1883 "parser.yy"
    75897657    {
    75907658                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    75937661    break;
    75947662
    7595   case 497:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1862 "parser.yy"
     7663  case 504:
     7664
     7665/* Line 1806 of yacc.c  */
     7666#line 1893 "parser.yy"
    75997667    {}
    76007668    break;
    76017669
    7602   case 498:
    7603 
    7604 /* Line 1806 of yacc.c  */
    7605 #line 1864 "parser.yy"
     7670  case 505:
     7671
     7672/* Line 1806 of yacc.c  */
     7673#line 1895 "parser.yy"
    76067674    {
    76077675                        if ( theTree ) {
     
    76137681    break;
    76147682
    7615   case 500:
    7616 
    7617 /* Line 1806 of yacc.c  */
    7618 #line 1876 "parser.yy"
     7683  case 507:
     7684
     7685/* Line 1806 of yacc.c  */
     7686#line 1907 "parser.yy"
    76197687    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    76207688    break;
    76217689
    7622   case 501:
    7623 
    7624 /* Line 1806 of yacc.c  */
    7625 #line 1881 "parser.yy"
     7690  case 508:
     7691
     7692/* Line 1806 of yacc.c  */
     7693#line 1912 "parser.yy"
    76267694    { (yyval.decl) = 0; }
    76277695    break;
    76287696
    7629   case 505:
    7630 
    7631 /* Line 1806 of yacc.c  */
    7632 #line 1889 "parser.yy"
     7697  case 512:
     7698
     7699/* Line 1806 of yacc.c  */
     7700#line 1920 "parser.yy"
    76337701    {}
    76347702    break;
    76357703
    7636   case 506:
    7637 
    7638 /* Line 1806 of yacc.c  */
    7639 #line 1891 "parser.yy"
     7704  case 513:
     7705
     7706/* Line 1806 of yacc.c  */
     7707#line 1922 "parser.yy"
    76407708    {
    76417709                        linkageStack.push( linkage );
     
    76447712    break;
    76457713
    7646   case 507:
    7647 
    7648 /* Line 1806 of yacc.c  */
    7649 #line 1896 "parser.yy"
     7714  case 514:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1927 "parser.yy"
    76507718    {
    76517719                        linkage = linkageStack.top();
     
    76557723    break;
    76567724
    7657   case 508:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 1902 "parser.yy"
     7725  case 515:
     7726
     7727/* Line 1806 of yacc.c  */
     7728#line 1933 "parser.yy"
    76617729    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76627730    break;
    76637731
    7664   case 510:
    7665 
    7666 /* Line 1806 of yacc.c  */
    7667 #line 1912 "parser.yy"
     7732  case 517:
     7733
     7734/* Line 1806 of yacc.c  */
     7735#line 1943 "parser.yy"
    76687736    {
    76697737                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    76737741    break;
    76747742
    7675   case 511:
    7676 
    7677 /* Line 1806 of yacc.c  */
    7678 #line 1918 "parser.yy"
     7743  case 518:
     7744
     7745/* Line 1806 of yacc.c  */
     7746#line 1949 "parser.yy"
    76797747    {
    76807748                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    76847752    break;
    76857753
    7686   case 512:
    7687 
    7688 /* Line 1806 of yacc.c  */
    7689 #line 1927 "parser.yy"
     7754  case 519:
     7755
     7756/* Line 1806 of yacc.c  */
     7757#line 1958 "parser.yy"
    76907758    {
    76917759                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    76957763    break;
    76967764
    7697   case 513:
    7698 
    7699 /* Line 1806 of yacc.c  */
    7700 #line 1933 "parser.yy"
     7765  case 520:
     7766
     7767/* Line 1806 of yacc.c  */
     7768#line 1964 "parser.yy"
    77017769    {
    77027770                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77067774    break;
    77077775
    7708   case 514:
    7709 
    7710 /* Line 1806 of yacc.c  */
    7711 #line 1939 "parser.yy"
     7776  case 521:
     7777
     7778/* Line 1806 of yacc.c  */
     7779#line 1970 "parser.yy"
    77127780    {
    77137781                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77177785    break;
    77187786
    7719   case 515:
    7720 
    7721 /* Line 1806 of yacc.c  */
    7722 #line 1945 "parser.yy"
     7787  case 522:
     7788
     7789/* Line 1806 of yacc.c  */
     7790#line 1976 "parser.yy"
    77237791    {
    77247792                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77287796    break;
    77297797
    7730   case 516:
    7731 
    7732 /* Line 1806 of yacc.c  */
    7733 #line 1951 "parser.yy"
     7798  case 523:
     7799
     7800/* Line 1806 of yacc.c  */
     7801#line 1982 "parser.yy"
    77347802    {
    77357803                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77397807    break;
    77407808
    7741   case 517:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1959 "parser.yy"
     7809  case 524:
     7810
     7811/* Line 1806 of yacc.c  */
     7812#line 1990 "parser.yy"
    77457813    {
    77467814                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77507818    break;
    77517819
    7752   case 518:
    7753 
    7754 /* Line 1806 of yacc.c  */
    7755 #line 1965 "parser.yy"
     7820  case 525:
     7821
     7822/* Line 1806 of yacc.c  */
     7823#line 1996 "parser.yy"
    77567824    {
    77577825                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77617829    break;
    77627830
    7763   case 519:
    7764 
    7765 /* Line 1806 of yacc.c  */
    7766 #line 1973 "parser.yy"
     7831  case 526:
     7832
     7833/* Line 1806 of yacc.c  */
     7834#line 2004 "parser.yy"
    77677835    {
    77687836                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77727840    break;
    77737841
    7774   case 520:
    7775 
    7776 /* Line 1806 of yacc.c  */
    7777 #line 1979 "parser.yy"
     7842  case 527:
     7843
     7844/* Line 1806 of yacc.c  */
     7845#line 2010 "parser.yy"
    77787846    {
    77797847                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77837851    break;
    77847852
    7785   case 524:
    7786 
    7787 /* Line 1806 of yacc.c  */
    7788 #line 1994 "parser.yy"
     7853  case 531:
     7854
     7855/* Line 1806 of yacc.c  */
     7856#line 2025 "parser.yy"
    77897857    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    77907858    break;
    77917859
    7792   case 527:
    7793 
    7794 /* Line 1806 of yacc.c  */
    7795 #line 2004 "parser.yy"
     7860  case 534:
     7861
     7862/* Line 1806 of yacc.c  */
     7863#line 2035 "parser.yy"
    77967864    { (yyval.decl) = 0; }
    77977865    break;
    77987866
    7799   case 530:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 2011 "parser.yy"
     7867  case 537:
     7868
     7869/* Line 1806 of yacc.c  */
     7870#line 2042 "parser.yy"
    78037871    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78047872    break;
    78057873
    7806   case 531:
    7807 
    7808 /* Line 1806 of yacc.c  */
    7809 #line 2017 "parser.yy"
     7874  case 538:
     7875
     7876/* Line 1806 of yacc.c  */
     7877#line 2048 "parser.yy"
    78107878    { (yyval.decl) = 0; }
    78117879    break;
    78127880
    7813   case 537:
    7814 
    7815 /* Line 1806 of yacc.c  */
    7816 #line 2032 "parser.yy"
     7881  case 544:
     7882
     7883/* Line 1806 of yacc.c  */
     7884#line 2063 "parser.yy"
    78177885    {}
    78187886    break;
    78197887
    7820   case 538:
    7821 
    7822 /* Line 1806 of yacc.c  */
    7823 #line 2033 "parser.yy"
     7888  case 545:
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2064 "parser.yy"
    78247892    {}
    78257893    break;
    78267894
    7827   case 539:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2034 "parser.yy"
     7895  case 546:
     7896
     7897/* Line 1806 of yacc.c  */
     7898#line 2065 "parser.yy"
    78317899    {}
    78327900    break;
    78337901
    7834   case 540:
    7835 
    7836 /* Line 1806 of yacc.c  */
    7837 #line 2035 "parser.yy"
     7902  case 547:
     7903
     7904/* Line 1806 of yacc.c  */
     7905#line 2066 "parser.yy"
    78387906    {}
    78397907    break;
    78407908
    7841   case 541:
    7842 
    7843 /* Line 1806 of yacc.c  */
    7844 #line 2070 "parser.yy"
     7909  case 548:
     7910
     7911/* Line 1806 of yacc.c  */
     7912#line 2101 "parser.yy"
    78457913    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78467914    break;
    78477915
    7848   case 543:
    7849 
    7850 /* Line 1806 of yacc.c  */
    7851 #line 2073 "parser.yy"
     7916  case 550:
     7917
     7918/* Line 1806 of yacc.c  */
     7919#line 2104 "parser.yy"
    78527920    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78537921    break;
    78547922
    7855   case 544:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 2075 "parser.yy"
     7923  case 551:
     7924
     7925/* Line 1806 of yacc.c  */
     7926#line 2106 "parser.yy"
    78597927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78607928    break;
    78617929
    7862   case 545:
    7863 
    7864 /* Line 1806 of yacc.c  */
    7865 #line 2080 "parser.yy"
     7930  case 552:
     7931
     7932/* Line 1806 of yacc.c  */
     7933#line 2111 "parser.yy"
    78667934    {
    78677935                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    78707938    break;
    78717939
    7872   case 546:
    7873 
    7874 /* Line 1806 of yacc.c  */
    7875 #line 2085 "parser.yy"
     7940  case 553:
     7941
     7942/* Line 1806 of yacc.c  */
     7943#line 2116 "parser.yy"
    78767944    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78777945    break;
    78787946
    7879   case 547:
    7880 
    7881 /* Line 1806 of yacc.c  */
    7882 #line 2090 "parser.yy"
     7947  case 554:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2121 "parser.yy"
    78837951    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    78847952    break;
    78857953
    7886   case 548:
    7887 
    7888 /* Line 1806 of yacc.c  */
    7889 #line 2092 "parser.yy"
     7954  case 555:
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2123 "parser.yy"
    78907958    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    78917959    break;
    78927960
    7893   case 549:
    7894 
    7895 /* Line 1806 of yacc.c  */
    7896 #line 2094 "parser.yy"
     7961  case 556:
     7962
     7963/* Line 1806 of yacc.c  */
     7964#line 2125 "parser.yy"
    78977965    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    78987966    break;
    78997967
    7900   case 550:
    7901 
    7902 /* Line 1806 of yacc.c  */
    7903 #line 2099 "parser.yy"
     7968  case 557:
     7969
     7970/* Line 1806 of yacc.c  */
     7971#line 2130 "parser.yy"
    79047972    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    79057973    break;
    79067974
    7907   case 551:
    7908 
    7909 /* Line 1806 of yacc.c  */
    7910 #line 2101 "parser.yy"
     7975  case 558:
     7976
     7977/* Line 1806 of yacc.c  */
     7978#line 2132 "parser.yy"
    79117979    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79127980    break;
    79137981
    7914   case 552:
    7915 
    7916 /* Line 1806 of yacc.c  */
    7917 #line 2103 "parser.yy"
     7982  case 559:
     7983
     7984/* Line 1806 of yacc.c  */
     7985#line 2134 "parser.yy"
    79187986    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79197987    break;
    79207988
    7921   case 553:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 2105 "parser.yy"
     7989  case 560:
     7990
     7991/* Line 1806 of yacc.c  */
     7992#line 2136 "parser.yy"
    79257993    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79267994    break;
    79277995
    7928   case 554:
    7929 
    7930 /* Line 1806 of yacc.c  */
    7931 #line 2110 "parser.yy"
     7996  case 561:
     7997
     7998/* Line 1806 of yacc.c  */
     7999#line 2141 "parser.yy"
    79328000    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    79338001    break;
    79348002
    7935   case 555:
    7936 
    7937 /* Line 1806 of yacc.c  */
    7938 #line 2112 "parser.yy"
    7939     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7940     break;
    7941 
    7942   case 556:
    7943 
    7944 /* Line 1806 of yacc.c  */
    7945 #line 2122 "parser.yy"
    7946     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7947     break;
    7948 
    7949   case 558:
    7950 
    7951 /* Line 1806 of yacc.c  */
    7952 #line 2125 "parser.yy"
    7953     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7954     break;
    7955 
    7956   case 559:
    7957 
    7958 /* Line 1806 of yacc.c  */
    7959 #line 2130 "parser.yy"
    7960     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    7961     break;
    7962 
    7963   case 560:
    7964 
    7965 /* Line 1806 of yacc.c  */
    7966 #line 2132 "parser.yy"
    7967     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    7968     break;
    7969 
    7970   case 561:
    7971 
    7972 /* Line 1806 of yacc.c  */
    7973 #line 2134 "parser.yy"
    7974     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    7975     break;
    7976 
    79778003  case 562:
    7978 
    7979 /* Line 1806 of yacc.c  */
    7980 #line 2139 "parser.yy"
    7981     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    7982     break;
    7983 
    7984   case 563:
    7985 
    7986 /* Line 1806 of yacc.c  */
    7987 #line 2141 "parser.yy"
    7988     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    7989     break;
    7990 
    7991   case 564:
    79928004
    79938005/* Line 1806 of yacc.c  */
     
    79968008    break;
    79978009
     8010  case 563:
     8011
     8012/* Line 1806 of yacc.c  */
     8013#line 2153 "parser.yy"
     8014    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8015    break;
     8016
    79988017  case 565:
    79998018
    80008019/* Line 1806 of yacc.c  */
    8001 #line 2148 "parser.yy"
     8020#line 2156 "parser.yy"
     8021    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8022    break;
     8023
     8024  case 566:
     8025
     8026/* Line 1806 of yacc.c  */
     8027#line 2161 "parser.yy"
     8028    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8029    break;
     8030
     8031  case 567:
     8032
     8033/* Line 1806 of yacc.c  */
     8034#line 2163 "parser.yy"
     8035    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8036    break;
     8037
     8038  case 568:
     8039
     8040/* Line 1806 of yacc.c  */
     8041#line 2165 "parser.yy"
     8042    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8043    break;
     8044
     8045  case 569:
     8046
     8047/* Line 1806 of yacc.c  */
     8048#line 2170 "parser.yy"
     8049    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8050    break;
     8051
     8052  case 570:
     8053
     8054/* Line 1806 of yacc.c  */
     8055#line 2172 "parser.yy"
     8056    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8057    break;
     8058
     8059  case 571:
     8060
     8061/* Line 1806 of yacc.c  */
     8062#line 2174 "parser.yy"
     8063    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8064    break;
     8065
     8066  case 572:
     8067
     8068/* Line 1806 of yacc.c  */
     8069#line 2179 "parser.yy"
    80028070    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80038071    break;
    80048072
    8005   case 566:
    8006 
    8007 /* Line 1806 of yacc.c  */
    8008 #line 2150 "parser.yy"
     8073  case 573:
     8074
     8075/* Line 1806 of yacc.c  */
     8076#line 2181 "parser.yy"
    80098077    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80108078    break;
    80118079
    8012   case 567:
    8013 
    8014 /* Line 1806 of yacc.c  */
    8015 #line 2152 "parser.yy"
     8080  case 574:
     8081
     8082/* Line 1806 of yacc.c  */
     8083#line 2183 "parser.yy"
    80168084    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80178085    break;
    80188086
    8019   case 571:
    8020 
    8021 /* Line 1806 of yacc.c  */
    8022 #line 2167 "parser.yy"
     8087  case 578:
     8088
     8089/* Line 1806 of yacc.c  */
     8090#line 2198 "parser.yy"
    80238091    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    80248092    break;
    80258093
    8026   case 572:
    8027 
    8028 /* Line 1806 of yacc.c  */
    8029 #line 2169 "parser.yy"
     8094  case 579:
     8095
     8096/* Line 1806 of yacc.c  */
     8097#line 2200 "parser.yy"
    80308098    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    80318099    break;
    80328100
    8033   case 573:
    8034 
    8035 /* Line 1806 of yacc.c  */
    8036 #line 2171 "parser.yy"
     8101  case 580:
     8102
     8103/* Line 1806 of yacc.c  */
     8104#line 2202 "parser.yy"
    80378105    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80388106    break;
    80398107
    8040   case 574:
    8041 
    8042 /* Line 1806 of yacc.c  */
    8043 #line 2176 "parser.yy"
     8108  case 581:
     8109
     8110/* Line 1806 of yacc.c  */
     8111#line 2207 "parser.yy"
    80448112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80458113    break;
    80468114
    8047   case 575:
    8048 
    8049 /* Line 1806 of yacc.c  */
    8050 #line 2178 "parser.yy"
     8115  case 582:
     8116
     8117/* Line 1806 of yacc.c  */
     8118#line 2209 "parser.yy"
    80518119    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80528120    break;
    80538121
    8054   case 576:
    8055 
    8056 /* Line 1806 of yacc.c  */
    8057 #line 2180 "parser.yy"
     8122  case 583:
     8123
     8124/* Line 1806 of yacc.c  */
     8125#line 2211 "parser.yy"
    80588126    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80598127    break;
    80608128
    8061   case 577:
    8062 
    8063 /* Line 1806 of yacc.c  */
    8064 #line 2185 "parser.yy"
     8129  case 584:
     8130
     8131/* Line 1806 of yacc.c  */
     8132#line 2216 "parser.yy"
    80658133    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80668134    break;
    80678135
    8068   case 578:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2187 "parser.yy"
     8136  case 585:
     8137
     8138/* Line 1806 of yacc.c  */
     8139#line 2218 "parser.yy"
    80728140    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80738141    break;
    80748142
    8075   case 579:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2189 "parser.yy"
     8143  case 586:
     8144
     8145/* Line 1806 of yacc.c  */
     8146#line 2220 "parser.yy"
    80798147    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80808148    break;
    80818149
    8082   case 580:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2204 "parser.yy"
     8150  case 587:
     8151
     8152/* Line 1806 of yacc.c  */
     8153#line 2235 "parser.yy"
    80868154    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80878155    break;
    80888156
    8089   case 582:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2207 "parser.yy"
     8157  case 589:
     8158
     8159/* Line 1806 of yacc.c  */
     8160#line 2238 "parser.yy"
    80938161    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80948162    break;
    80958163
    8096   case 583:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2209 "parser.yy"
     8164  case 590:
     8165
     8166/* Line 1806 of yacc.c  */
     8167#line 2240 "parser.yy"
    81008168    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81018169    break;
    81028170
    8103   case 585:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2215 "parser.yy"
     8171  case 592:
     8172
     8173/* Line 1806 of yacc.c  */
     8174#line 2246 "parser.yy"
    81078175    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81088176    break;
    81098177
    8110   case 586:
    8111 
    8112 /* Line 1806 of yacc.c  */
    8113 #line 2220 "parser.yy"
     8178  case 593:
     8179
     8180/* Line 1806 of yacc.c  */
     8181#line 2251 "parser.yy"
    81148182    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81158183    break;
    81168184
    8117   case 587:
    8118 
    8119 /* Line 1806 of yacc.c  */
    8120 #line 2222 "parser.yy"
     8185  case 594:
     8186
     8187/* Line 1806 of yacc.c  */
     8188#line 2253 "parser.yy"
    81218189    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81228190    break;
    81238191
    8124   case 588:
    8125 
    8126 /* Line 1806 of yacc.c  */
    8127 #line 2224 "parser.yy"
     8192  case 595:
     8193
     8194/* Line 1806 of yacc.c  */
     8195#line 2255 "parser.yy"
    81288196    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81298197    break;
    81308198
    8131   case 589:
    8132 
    8133 /* Line 1806 of yacc.c  */
    8134 #line 2229 "parser.yy"
     8199  case 596:
     8200
     8201/* Line 1806 of yacc.c  */
     8202#line 2260 "parser.yy"
    81358203    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81368204    break;
    81378205
    8138   case 590:
    8139 
    8140 /* Line 1806 of yacc.c  */
    8141 #line 2231 "parser.yy"
     8206  case 597:
     8207
     8208/* Line 1806 of yacc.c  */
     8209#line 2262 "parser.yy"
    81428210    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81438211    break;
    81448212
    8145   case 591:
    8146 
    8147 /* Line 1806 of yacc.c  */
    8148 #line 2233 "parser.yy"
     8213  case 598:
     8214
     8215/* Line 1806 of yacc.c  */
     8216#line 2264 "parser.yy"
    81498217    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81508218    break;
    81518219
    8152   case 592:
    8153 
    8154 /* Line 1806 of yacc.c  */
    8155 #line 2235 "parser.yy"
     8220  case 599:
     8221
     8222/* Line 1806 of yacc.c  */
     8223#line 2266 "parser.yy"
    81568224    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81578225    break;
    81588226
    8159   case 593:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2240 "parser.yy"
     8227  case 600:
     8228
     8229/* Line 1806 of yacc.c  */
     8230#line 2271 "parser.yy"
    81638231    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81648232    break;
    81658233
    8166   case 594:
    8167 
    8168 /* Line 1806 of yacc.c  */
    8169 #line 2242 "parser.yy"
     8234  case 601:
     8235
     8236/* Line 1806 of yacc.c  */
     8237#line 2273 "parser.yy"
    81708238    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81718239    break;
    81728240
    8173   case 595:
    8174 
    8175 /* Line 1806 of yacc.c  */
    8176 #line 2244 "parser.yy"
     8241  case 602:
     8242
     8243/* Line 1806 of yacc.c  */
     8244#line 2275 "parser.yy"
    81778245    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81788246    break;
    81798247
    8180   case 596:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2254 "parser.yy"
     8248  case 603:
     8249
     8250/* Line 1806 of yacc.c  */
     8251#line 2285 "parser.yy"
    81848252    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81858253    break;
    81868254
    8187   case 598:
    8188 
    8189 /* Line 1806 of yacc.c  */
    8190 #line 2257 "parser.yy"
     8255  case 605:
     8256
     8257/* Line 1806 of yacc.c  */
     8258#line 2288 "parser.yy"
    81918259    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81928260    break;
    81938261
    8194   case 599:
    8195 
    8196 /* Line 1806 of yacc.c  */
    8197 #line 2259 "parser.yy"
     8262  case 606:
     8263
     8264/* Line 1806 of yacc.c  */
     8265#line 2290 "parser.yy"
    81988266    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81998267    break;
    82008268
    8201   case 600:
    8202 
    8203 /* Line 1806 of yacc.c  */
    8204 #line 2264 "parser.yy"
     8269  case 607:
     8270
     8271/* Line 1806 of yacc.c  */
     8272#line 2295 "parser.yy"
    82058273    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82068274    break;
    82078275
    8208   case 601:
    8209 
    8210 /* Line 1806 of yacc.c  */
    8211 #line 2266 "parser.yy"
     8276  case 608:
     8277
     8278/* Line 1806 of yacc.c  */
     8279#line 2297 "parser.yy"
    82128280    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82138281    break;
    82148282
    8215   case 602:
    8216 
    8217 /* Line 1806 of yacc.c  */
    8218 #line 2268 "parser.yy"
     8283  case 609:
     8284
     8285/* Line 1806 of yacc.c  */
     8286#line 2299 "parser.yy"
    82198287    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82208288    break;
    82218289
    8222   case 603:
    8223 
    8224 /* Line 1806 of yacc.c  */
    8225 #line 2273 "parser.yy"
     8290  case 610:
     8291
     8292/* Line 1806 of yacc.c  */
     8293#line 2304 "parser.yy"
    82268294    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82278295    break;
    82288296
    8229   case 604:
    8230 
    8231 /* Line 1806 of yacc.c  */
    8232 #line 2275 "parser.yy"
     8297  case 611:
     8298
     8299/* Line 1806 of yacc.c  */
     8300#line 2306 "parser.yy"
    82338301    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82348302    break;
    82358303
    8236   case 605:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2277 "parser.yy"
     8304  case 612:
     8305
     8306/* Line 1806 of yacc.c  */
     8307#line 2308 "parser.yy"
    82408308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82418309    break;
    82428310
    8243   case 606:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2279 "parser.yy"
     8311  case 613:
     8312
     8313/* Line 1806 of yacc.c  */
     8314#line 2310 "parser.yy"
    82478315    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82488316    break;
    82498317
    8250   case 607:
    8251 
    8252 /* Line 1806 of yacc.c  */
    8253 #line 2284 "parser.yy"
     8318  case 614:
     8319
     8320/* Line 1806 of yacc.c  */
     8321#line 2315 "parser.yy"
    82548322    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82558323    break;
    82568324
    8257   case 608:
    8258 
    8259 /* Line 1806 of yacc.c  */
    8260 #line 2286 "parser.yy"
     8325  case 615:
     8326
     8327/* Line 1806 of yacc.c  */
     8328#line 2317 "parser.yy"
    82618329    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82628330    break;
    82638331
    8264   case 609:
    8265 
    8266 /* Line 1806 of yacc.c  */
    8267 #line 2288 "parser.yy"
     8332  case 616:
     8333
     8334/* Line 1806 of yacc.c  */
     8335#line 2319 "parser.yy"
    82688336    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82698337    break;
    82708338
    8271   case 610:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2319 "parser.yy"
     8339  case 617:
     8340
     8341/* Line 1806 of yacc.c  */
     8342#line 2350 "parser.yy"
    82758343    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82768344    break;
    82778345
    8278   case 612:
    8279 
    8280 /* Line 1806 of yacc.c  */
    8281 #line 2322 "parser.yy"
     8346  case 619:
     8347
     8348/* Line 1806 of yacc.c  */
     8349#line 2353 "parser.yy"
    82828350    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82838351    break;
    82848352
    8285   case 613:
    8286 
    8287 /* Line 1806 of yacc.c  */
    8288 #line 2324 "parser.yy"
     8353  case 620:
     8354
     8355/* Line 1806 of yacc.c  */
     8356#line 2355 "parser.yy"
    82898357    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82908358    break;
    82918359
    8292   case 614:
    8293 
    8294 /* Line 1806 of yacc.c  */
    8295 #line 2329 "parser.yy"
     8360  case 621:
     8361
     8362/* Line 1806 of yacc.c  */
     8363#line 2360 "parser.yy"
    82968364    {
    82978365                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83008368    break;
    83018369
    8302   case 615:
    8303 
    8304 /* Line 1806 of yacc.c  */
    8305 #line 2334 "parser.yy"
     8370  case 622:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2365 "parser.yy"
    83068374    {
    83078375                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83108378    break;
    83118379
    8312   case 616:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2342 "parser.yy"
     8380  case 623:
     8381
     8382/* Line 1806 of yacc.c  */
     8383#line 2373 "parser.yy"
    83168384    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83178385    break;
    83188386
    8319   case 617:
    8320 
    8321 /* Line 1806 of yacc.c  */
    8322 #line 2344 "parser.yy"
     8387  case 624:
     8388
     8389/* Line 1806 of yacc.c  */
     8390#line 2375 "parser.yy"
    83238391    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83248392    break;
    83258393
    8326   case 618:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2346 "parser.yy"
     8394  case 625:
     8395
     8396/* Line 1806 of yacc.c  */
     8397#line 2377 "parser.yy"
    83308398    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83318399    break;
    83328400
    8333   case 619:
    8334 
    8335 /* Line 1806 of yacc.c  */
    8336 #line 2351 "parser.yy"
     8401  case 626:
     8402
     8403/* Line 1806 of yacc.c  */
     8404#line 2382 "parser.yy"
    83378405    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83388406    break;
    83398407
    8340   case 620:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2353 "parser.yy"
     8408  case 627:
     8409
     8410/* Line 1806 of yacc.c  */
     8411#line 2384 "parser.yy"
    83448412    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83458413    break;
    83468414
    8347   case 621:
    8348 
    8349 /* Line 1806 of yacc.c  */
    8350 #line 2358 "parser.yy"
     8415  case 628:
     8416
     8417/* Line 1806 of yacc.c  */
     8418#line 2389 "parser.yy"
    83518419    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83528420    break;
    83538421
    8354   case 622:
    8355 
    8356 /* Line 1806 of yacc.c  */
    8357 #line 2360 "parser.yy"
     8422  case 629:
     8423
     8424/* Line 1806 of yacc.c  */
     8425#line 2391 "parser.yy"
    83588426    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83598427    break;
    83608428
    8361   case 624:
    8362 
    8363 /* Line 1806 of yacc.c  */
    8364 #line 2375 "parser.yy"
     8429  case 631:
     8430
     8431/* Line 1806 of yacc.c  */
     8432#line 2406 "parser.yy"
    83658433    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83668434    break;
    83678435
    8368   case 625:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2377 "parser.yy"
     8436  case 632:
     8437
     8438/* Line 1806 of yacc.c  */
     8439#line 2408 "parser.yy"
    83728440    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83738441    break;
    83748442
    8375   case 626:
    8376 
    8377 /* Line 1806 of yacc.c  */
    8378 #line 2382 "parser.yy"
     8443  case 633:
     8444
     8445/* Line 1806 of yacc.c  */
     8446#line 2413 "parser.yy"
    83798447    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    83808448    break;
    83818449
    8382   case 627:
    8383 
    8384 /* Line 1806 of yacc.c  */
    8385 #line 2384 "parser.yy"
     8450  case 634:
     8451
     8452/* Line 1806 of yacc.c  */
     8453#line 2415 "parser.yy"
    83868454    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    83878455    break;
    83888456
    8389   case 628:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2386 "parser.yy"
     8457  case 635:
     8458
     8459/* Line 1806 of yacc.c  */
     8460#line 2417 "parser.yy"
    83938461    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83948462    break;
    83958463
    8396   case 629:
    8397 
    8398 /* Line 1806 of yacc.c  */
    8399 #line 2388 "parser.yy"
     8464  case 636:
     8465
     8466/* Line 1806 of yacc.c  */
     8467#line 2419 "parser.yy"
    84008468    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84018469    break;
    84028470
    8403   case 630:
    8404 
    8405 /* Line 1806 of yacc.c  */
    8406 #line 2390 "parser.yy"
     8471  case 637:
     8472
     8473/* Line 1806 of yacc.c  */
     8474#line 2421 "parser.yy"
    84078475    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84088476    break;
    84098477
    8410   case 632:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2396 "parser.yy"
     8478  case 639:
     8479
     8480/* Line 1806 of yacc.c  */
     8481#line 2427 "parser.yy"
    84148482    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84158483    break;
    84168484
    8417   case 633:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2398 "parser.yy"
     8485  case 640:
     8486
     8487/* Line 1806 of yacc.c  */
     8488#line 2429 "parser.yy"
    84218489    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84228490    break;
    84238491
    8424   case 634:
    8425 
    8426 /* Line 1806 of yacc.c  */
    8427 #line 2400 "parser.yy"
     8492  case 641:
     8493
     8494/* Line 1806 of yacc.c  */
     8495#line 2431 "parser.yy"
    84288496    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84298497    break;
    84308498
    8431   case 635:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2405 "parser.yy"
     8499  case 642:
     8500
     8501/* Line 1806 of yacc.c  */
     8502#line 2436 "parser.yy"
    84358503    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    84368504    break;
    84378505
    8438   case 636:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2407 "parser.yy"
     8506  case 643:
     8507
     8508/* Line 1806 of yacc.c  */
     8509#line 2438 "parser.yy"
    84428510    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84438511    break;
    84448512
    8445   case 637:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2409 "parser.yy"
     8513  case 644:
     8514
     8515/* Line 1806 of yacc.c  */
     8516#line 2440 "parser.yy"
    84498517    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84508518    break;
    84518519
    8452   case 638:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2415 "parser.yy"
     8520  case 645:
     8521
     8522/* Line 1806 of yacc.c  */
     8523#line 2446 "parser.yy"
    84568524    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    84578525    break;
    84588526
    8459   case 639:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2417 "parser.yy"
     8527  case 646:
     8528
     8529/* Line 1806 of yacc.c  */
     8530#line 2448 "parser.yy"
    84638531    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    84648532    break;
    84658533
    8466   case 641:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2423 "parser.yy"
     8534  case 648:
     8535
     8536/* Line 1806 of yacc.c  */
     8537#line 2454 "parser.yy"
    84708538    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    84718539    break;
    84728540
    8473   case 642:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2425 "parser.yy"
     8541  case 649:
     8542
     8543/* Line 1806 of yacc.c  */
     8544#line 2456 "parser.yy"
    84778545    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    84788546    break;
    84798547
    8480   case 643:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2427 "parser.yy"
     8548  case 650:
     8549
     8550/* Line 1806 of yacc.c  */
     8551#line 2458 "parser.yy"
    84848552    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    84858553    break;
    84868554
    8487   case 644:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2429 "parser.yy"
     8555  case 651:
     8556
     8557/* Line 1806 of yacc.c  */
     8558#line 2460 "parser.yy"
    84918559    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    84928560    break;
    84938561
    8494   case 646:
    8495 
    8496 /* Line 1806 of yacc.c  */
    8497 #line 2444 "parser.yy"
     8562  case 653:
     8563
     8564/* Line 1806 of yacc.c  */
     8565#line 2475 "parser.yy"
    84988566    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84998567    break;
    85008568
    8501   case 647:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2446 "parser.yy"
     8569  case 654:
     8570
     8571/* Line 1806 of yacc.c  */
     8572#line 2477 "parser.yy"
    85058573    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85068574    break;
    85078575
    8508   case 648:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2451 "parser.yy"
     8576  case 655:
     8577
     8578/* Line 1806 of yacc.c  */
     8579#line 2482 "parser.yy"
    85128580    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85138581    break;
    85148582
    8515   case 649:
    8516 
    8517 /* Line 1806 of yacc.c  */
    8518 #line 2453 "parser.yy"
     8583  case 656:
     8584
     8585/* Line 1806 of yacc.c  */
     8586#line 2484 "parser.yy"
    85198587    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85208588    break;
    85218589
    8522   case 650:
    8523 
    8524 /* Line 1806 of yacc.c  */
    8525 #line 2455 "parser.yy"
     8590  case 657:
     8591
     8592/* Line 1806 of yacc.c  */
     8593#line 2486 "parser.yy"
    85268594    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85278595    break;
    85288596
    8529   case 651:
    8530 
    8531 /* Line 1806 of yacc.c  */
    8532 #line 2457 "parser.yy"
     8597  case 658:
     8598
     8599/* Line 1806 of yacc.c  */
     8600#line 2488 "parser.yy"
    85338601    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85348602    break;
    85358603
    8536   case 652:
    8537 
    8538 /* Line 1806 of yacc.c  */
    8539 #line 2459 "parser.yy"
     8604  case 659:
     8605
     8606/* Line 1806 of yacc.c  */
     8607#line 2490 "parser.yy"
    85408608    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85418609    break;
    85428610
    8543   case 654:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2465 "parser.yy"
     8611  case 661:
     8612
     8613/* Line 1806 of yacc.c  */
     8614#line 2496 "parser.yy"
    85478615    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85488616    break;
    85498617
    8550   case 655:
    8551 
    8552 /* Line 1806 of yacc.c  */
    8553 #line 2467 "parser.yy"
     8618  case 662:
     8619
     8620/* Line 1806 of yacc.c  */
     8621#line 2498 "parser.yy"
    85548622    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85558623    break;
    85568624
    8557   case 656:
    8558 
    8559 /* Line 1806 of yacc.c  */
    8560 #line 2469 "parser.yy"
     8625  case 663:
     8626
     8627/* Line 1806 of yacc.c  */
     8628#line 2500 "parser.yy"
    85618629    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85628630    break;
    85638631
    8564   case 657:
    8565 
    8566 /* Line 1806 of yacc.c  */
    8567 #line 2474 "parser.yy"
     8632  case 664:
     8633
     8634/* Line 1806 of yacc.c  */
     8635#line 2505 "parser.yy"
    85688636    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85698637    break;
    85708638
    8571   case 658:
    8572 
    8573 /* Line 1806 of yacc.c  */
    8574 #line 2476 "parser.yy"
     8639  case 665:
     8640
     8641/* Line 1806 of yacc.c  */
     8642#line 2507 "parser.yy"
    85758643    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85768644    break;
    85778645
    8578   case 659:
    8579 
    8580 /* Line 1806 of yacc.c  */
    8581 #line 2478 "parser.yy"
     8646  case 666:
     8647
     8648/* Line 1806 of yacc.c  */
     8649#line 2509 "parser.yy"
    85828650    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85838651    break;
    85848652
    8585   case 661:
    8586 
    8587 /* Line 1806 of yacc.c  */
    8588 #line 2485 "parser.yy"
     8653  case 668:
     8654
     8655/* Line 1806 of yacc.c  */
     8656#line 2516 "parser.yy"
    85898657    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85908658    break;
    85918659
    8592   case 663:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2496 "parser.yy"
     8660  case 670:
     8661
     8662/* Line 1806 of yacc.c  */
     8663#line 2527 "parser.yy"
    85968664    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    85978665    break;
    85988666
    8599   case 664:
    8600 
    8601 /* Line 1806 of yacc.c  */
    8602 #line 2499 "parser.yy"
     8667  case 671:
     8668
     8669/* Line 1806 of yacc.c  */
     8670#line 2530 "parser.yy"
    86038671    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86048672    break;
    86058673
    8606   case 665:
    8607 
    8608 /* Line 1806 of yacc.c  */
    8609 #line 2501 "parser.yy"
     8674  case 672:
     8675
     8676/* Line 1806 of yacc.c  */
     8677#line 2532 "parser.yy"
    86108678    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    86118679    break;
    86128680
    8613   case 666:
    8614 
    8615 /* Line 1806 of yacc.c  */
    8616 #line 2504 "parser.yy"
     8681  case 673:
     8682
     8683/* Line 1806 of yacc.c  */
     8684#line 2535 "parser.yy"
    86178685    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86188686    break;
    86198687
    8620   case 667:
    8621 
    8622 /* Line 1806 of yacc.c  */
    8623 #line 2506 "parser.yy"
     8688  case 674:
     8689
     8690/* Line 1806 of yacc.c  */
     8691#line 2537 "parser.yy"
    86248692    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    86258693    break;
    86268694
    8627   case 668:
    8628 
    8629 /* Line 1806 of yacc.c  */
    8630 #line 2508 "parser.yy"
     8695  case 675:
     8696
     8697/* Line 1806 of yacc.c  */
     8698#line 2539 "parser.yy"
    86318699    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    86328700    break;
    86338701
    8634   case 670:
    8635 
    8636 /* Line 1806 of yacc.c  */
    8637 #line 2522 "parser.yy"
     8702  case 677:
     8703
     8704/* Line 1806 of yacc.c  */
     8705#line 2553 "parser.yy"
    86388706    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86398707    break;
    86408708
    8641   case 671:
    8642 
    8643 /* Line 1806 of yacc.c  */
    8644 #line 2524 "parser.yy"
     8709  case 678:
     8710
     8711/* Line 1806 of yacc.c  */
     8712#line 2555 "parser.yy"
    86458713    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86468714    break;
    86478715
    8648   case 672:
    8649 
    8650 /* Line 1806 of yacc.c  */
    8651 #line 2529 "parser.yy"
     8716  case 679:
     8717
     8718/* Line 1806 of yacc.c  */
     8719#line 2560 "parser.yy"
    86528720    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86538721    break;
    86548722
    8655   case 673:
    8656 
    8657 /* Line 1806 of yacc.c  */
    8658 #line 2531 "parser.yy"
     8723  case 680:
     8724
     8725/* Line 1806 of yacc.c  */
     8726#line 2562 "parser.yy"
    86598727    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86608728    break;
    86618729
    8662   case 674:
    8663 
    8664 /* Line 1806 of yacc.c  */
    8665 #line 2533 "parser.yy"
     8730  case 681:
     8731
     8732/* Line 1806 of yacc.c  */
     8733#line 2564 "parser.yy"
    86668734    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86678735    break;
    86688736
    8669   case 675:
    8670 
    8671 /* Line 1806 of yacc.c  */
    8672 #line 2535 "parser.yy"
     8737  case 682:
     8738
     8739/* Line 1806 of yacc.c  */
     8740#line 2566 "parser.yy"
    86738741    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86748742    break;
    86758743
    8676   case 676:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2537 "parser.yy"
     8744  case 683:
     8745
     8746/* Line 1806 of yacc.c  */
     8747#line 2568 "parser.yy"
    86808748    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86818749    break;
    86828750
    8683   case 678:
    8684 
    8685 /* Line 1806 of yacc.c  */
    8686 #line 2543 "parser.yy"
     8751  case 685:
     8752
     8753/* Line 1806 of yacc.c  */
     8754#line 2574 "parser.yy"
    86878755    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86888756    break;
    86898757
    8690   case 679:
    8691 
    8692 /* Line 1806 of yacc.c  */
    8693 #line 2545 "parser.yy"
     8758  case 686:
     8759
     8760/* Line 1806 of yacc.c  */
     8761#line 2576 "parser.yy"
    86948762    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86958763    break;
    86968764
    8697   case 680:
    8698 
    8699 /* Line 1806 of yacc.c  */
    8700 #line 2547 "parser.yy"
     8765  case 687:
     8766
     8767/* Line 1806 of yacc.c  */
     8768#line 2578 "parser.yy"
    87018769    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87028770    break;
    87038771
    8704   case 681:
    8705 
    8706 /* Line 1806 of yacc.c  */
    8707 #line 2552 "parser.yy"
     8772  case 688:
     8773
     8774/* Line 1806 of yacc.c  */
     8775#line 2583 "parser.yy"
    87088776    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87098777    break;
    87108778
    8711   case 682:
    8712 
    8713 /* Line 1806 of yacc.c  */
    8714 #line 2554 "parser.yy"
     8779  case 689:
     8780
     8781/* Line 1806 of yacc.c  */
     8782#line 2585 "parser.yy"
    87158783    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87168784    break;
    87178785
    8718   case 685:
    8719 
    8720 /* Line 1806 of yacc.c  */
    8721 #line 2564 "parser.yy"
     8786  case 692:
     8787
     8788/* Line 1806 of yacc.c  */
     8789#line 2595 "parser.yy"
    87228790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87238791    break;
    87248792
    8725   case 688:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2574 "parser.yy"
     8793  case 695:
     8794
     8795/* Line 1806 of yacc.c  */
     8796#line 2605 "parser.yy"
    87298797    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87308798    break;
    87318799
    8732   case 689:
    8733 
    8734 /* Line 1806 of yacc.c  */
    8735 #line 2576 "parser.yy"
     8800  case 696:
     8801
     8802/* Line 1806 of yacc.c  */
     8803#line 2607 "parser.yy"
    87368804    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87378805    break;
    87388806
    8739   case 690:
    8740 
    8741 /* Line 1806 of yacc.c  */
    8742 #line 2578 "parser.yy"
     8807  case 697:
     8808
     8809/* Line 1806 of yacc.c  */
     8810#line 2609 "parser.yy"
    87438811    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87448812    break;
    87458813
    8746   case 691:
    8747 
    8748 /* Line 1806 of yacc.c  */
    8749 #line 2580 "parser.yy"
     8814  case 698:
     8815
     8816/* Line 1806 of yacc.c  */
     8817#line 2611 "parser.yy"
    87508818    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87518819    break;
    87528820
    8753   case 692:
    8754 
    8755 /* Line 1806 of yacc.c  */
    8756 #line 2582 "parser.yy"
     8821  case 699:
     8822
     8823/* Line 1806 of yacc.c  */
     8824#line 2613 "parser.yy"
    87578825    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87588826    break;
    87598827
    8760   case 693:
    8761 
    8762 /* Line 1806 of yacc.c  */
    8763 #line 2584 "parser.yy"
     8828  case 700:
     8829
     8830/* Line 1806 of yacc.c  */
     8831#line 2615 "parser.yy"
    87648832    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87658833    break;
    87668834
    8767   case 694:
    8768 
    8769 /* Line 1806 of yacc.c  */
    8770 #line 2591 "parser.yy"
     8835  case 701:
     8836
     8837/* Line 1806 of yacc.c  */
     8838#line 2622 "parser.yy"
    87718839    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    87728840    break;
    87738841
    8774   case 695:
    8775 
    8776 /* Line 1806 of yacc.c  */
    8777 #line 2593 "parser.yy"
     8842  case 702:
     8843
     8844/* Line 1806 of yacc.c  */
     8845#line 2624 "parser.yy"
    87788846    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    87798847    break;
    87808848
    8781   case 696:
    8782 
    8783 /* Line 1806 of yacc.c  */
    8784 #line 2595 "parser.yy"
     8849  case 703:
     8850
     8851/* Line 1806 of yacc.c  */
     8852#line 2626 "parser.yy"
    87858853    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    87868854    break;
    87878855
    8788   case 697:
    8789 
    8790 /* Line 1806 of yacc.c  */
    8791 #line 2597 "parser.yy"
     8856  case 704:
     8857
     8858/* Line 1806 of yacc.c  */
     8859#line 2628 "parser.yy"
    87928860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    87938861    break;
    87948862
    8795   case 698:
    8796 
    8797 /* Line 1806 of yacc.c  */
    8798 #line 2599 "parser.yy"
     8863  case 705:
     8864
     8865/* Line 1806 of yacc.c  */
     8866#line 2630 "parser.yy"
    87998867    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88008868    break;
    88018869
    8802   case 699:
    8803 
    8804 /* Line 1806 of yacc.c  */
    8805 #line 2601 "parser.yy"
     8870  case 706:
     8871
     8872/* Line 1806 of yacc.c  */
     8873#line 2632 "parser.yy"
    88068874    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88078875    break;
    88088876
    8809   case 700:
    8810 
    8811 /* Line 1806 of yacc.c  */
    8812 #line 2603 "parser.yy"
     8877  case 707:
     8878
     8879/* Line 1806 of yacc.c  */
     8880#line 2634 "parser.yy"
    88138881    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88148882    break;
    88158883
    8816   case 701:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2605 "parser.yy"
     8884  case 708:
     8885
     8886/* Line 1806 of yacc.c  */
     8887#line 2636 "parser.yy"
    88208888    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88218889    break;
    88228890
    8823   case 702:
    8824 
    8825 /* Line 1806 of yacc.c  */
    8826 #line 2607 "parser.yy"
     8891  case 709:
     8892
     8893/* Line 1806 of yacc.c  */
     8894#line 2638 "parser.yy"
    88278895    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88288896    break;
    88298897
    8830   case 703:
    8831 
    8832 /* Line 1806 of yacc.c  */
    8833 #line 2609 "parser.yy"
     8898  case 710:
     8899
     8900/* Line 1806 of yacc.c  */
     8901#line 2640 "parser.yy"
    88348902    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88358903    break;
    88368904
    8837   case 704:
    8838 
    8839 /* Line 1806 of yacc.c  */
    8840 #line 2614 "parser.yy"
     8905  case 711:
     8906
     8907/* Line 1806 of yacc.c  */
     8908#line 2645 "parser.yy"
    88418909    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88428910    break;
    88438911
    8844   case 705:
    8845 
    8846 /* Line 1806 of yacc.c  */
    8847 #line 2616 "parser.yy"
     8912  case 712:
     8913
     8914/* Line 1806 of yacc.c  */
     8915#line 2647 "parser.yy"
    88488916    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88498917    break;
    88508918
    8851   case 706:
    8852 
    8853 /* Line 1806 of yacc.c  */
    8854 #line 2621 "parser.yy"
     8919  case 713:
     8920
     8921/* Line 1806 of yacc.c  */
     8922#line 2652 "parser.yy"
    88558923    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    88568924    break;
    88578925
    8858   case 707:
    8859 
    8860 /* Line 1806 of yacc.c  */
    8861 #line 2623 "parser.yy"
     8926  case 714:
     8927
     8928/* Line 1806 of yacc.c  */
     8929#line 2654 "parser.yy"
    88628930    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    88638931    break;
    88648932
    8865   case 709:
    8866 
    8867 /* Line 1806 of yacc.c  */
    8868 #line 2650 "parser.yy"
     8933  case 716:
     8934
     8935/* Line 1806 of yacc.c  */
     8936#line 2681 "parser.yy"
    88698937    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88708938    break;
    88718939
    8872   case 713:
    8873 
    8874 /* Line 1806 of yacc.c  */
    8875 #line 2661 "parser.yy"
     8940  case 720:
     8941
     8942/* Line 1806 of yacc.c  */
     8943#line 2692 "parser.yy"
    88768944    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88778945    break;
    88788946
    8879   case 714:
    8880 
    8881 /* Line 1806 of yacc.c  */
    8882 #line 2663 "parser.yy"
     8947  case 721:
     8948
     8949/* Line 1806 of yacc.c  */
     8950#line 2694 "parser.yy"
    88838951    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88848952    break;
    88858953
    8886   case 715:
    8887 
    8888 /* Line 1806 of yacc.c  */
    8889 #line 2665 "parser.yy"
     8954  case 722:
     8955
     8956/* Line 1806 of yacc.c  */
     8957#line 2696 "parser.yy"
    88908958    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88918959    break;
    88928960
    8893   case 716:
    8894 
    8895 /* Line 1806 of yacc.c  */
    8896 #line 2667 "parser.yy"
     8961  case 723:
     8962
     8963/* Line 1806 of yacc.c  */
     8964#line 2698 "parser.yy"
    88978965    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88988966    break;
    88998967
    8900   case 717:
    8901 
    8902 /* Line 1806 of yacc.c  */
    8903 #line 2669 "parser.yy"
     8968  case 724:
     8969
     8970/* Line 1806 of yacc.c  */
     8971#line 2700 "parser.yy"
    89048972    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89058973    break;
    89068974
    8907   case 718:
    8908 
    8909 /* Line 1806 of yacc.c  */
    8910 #line 2671 "parser.yy"
     8975  case 725:
     8976
     8977/* Line 1806 of yacc.c  */
     8978#line 2702 "parser.yy"
    89118979    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89128980    break;
    89138981
    8914   case 719:
    8915 
    8916 /* Line 1806 of yacc.c  */
    8917 #line 2678 "parser.yy"
     8982  case 726:
     8983
     8984/* Line 1806 of yacc.c  */
     8985#line 2709 "parser.yy"
    89188986    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89198987    break;
    89208988
    8921   case 720:
    8922 
    8923 /* Line 1806 of yacc.c  */
    8924 #line 2680 "parser.yy"
     8989  case 727:
     8990
     8991/* Line 1806 of yacc.c  */
     8992#line 2711 "parser.yy"
    89258993    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89268994    break;
    89278995
    8928   case 721:
    8929 
    8930 /* Line 1806 of yacc.c  */
    8931 #line 2682 "parser.yy"
     8996  case 728:
     8997
     8998/* Line 1806 of yacc.c  */
     8999#line 2713 "parser.yy"
    89329000    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89339001    break;
    89349002
    8935   case 722:
    8936 
    8937 /* Line 1806 of yacc.c  */
    8938 #line 2684 "parser.yy"
     9003  case 729:
     9004
     9005/* Line 1806 of yacc.c  */
     9006#line 2715 "parser.yy"
    89399007    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89409008    break;
    89419009
    8942   case 723:
    8943 
    8944 /* Line 1806 of yacc.c  */
    8945 #line 2686 "parser.yy"
     9010  case 730:
     9011
     9012/* Line 1806 of yacc.c  */
     9013#line 2717 "parser.yy"
    89469014    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89479015    break;
    89489016
    8949   case 724:
    8950 
    8951 /* Line 1806 of yacc.c  */
    8952 #line 2688 "parser.yy"
     9017  case 731:
     9018
     9019/* Line 1806 of yacc.c  */
     9020#line 2719 "parser.yy"
    89539021    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89549022    break;
    89559023
    8956   case 725:
    8957 
    8958 /* Line 1806 of yacc.c  */
    8959 #line 2693 "parser.yy"
     9024  case 732:
     9025
     9026/* Line 1806 of yacc.c  */
     9027#line 2724 "parser.yy"
    89609028    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    89619029    break;
    89629030
    8963   case 726:
    8964 
    8965 /* Line 1806 of yacc.c  */
    8966 #line 2698 "parser.yy"
     9031  case 733:
     9032
     9033/* Line 1806 of yacc.c  */
     9034#line 2729 "parser.yy"
    89679035    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    89689036    break;
    89699037
    8970   case 727:
    8971 
    8972 /* Line 1806 of yacc.c  */
    8973 #line 2700 "parser.yy"
     9038  case 734:
     9039
     9040/* Line 1806 of yacc.c  */
     9041#line 2731 "parser.yy"
    89749042    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    89759043    break;
    89769044
    8977   case 728:
    8978 
    8979 /* Line 1806 of yacc.c  */
    8980 #line 2702 "parser.yy"
     9045  case 735:
     9046
     9047/* Line 1806 of yacc.c  */
     9048#line 2733 "parser.yy"
    89819049    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    89829050    break;
    89839051
    8984   case 731:
    8985 
    8986 /* Line 1806 of yacc.c  */
    8987 #line 2726 "parser.yy"
     9052  case 738:
     9053
     9054/* Line 1806 of yacc.c  */
     9055#line 2757 "parser.yy"
    89889056    { (yyval.en) = 0; }
    89899057    break;
    89909058
    8991   case 732:
    8992 
    8993 /* Line 1806 of yacc.c  */
    8994 #line 2728 "parser.yy"
     9059  case 739:
     9060
     9061/* Line 1806 of yacc.c  */
     9062#line 2759 "parser.yy"
    89959063    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    89969064    break;
     
    89999067
    90009068/* Line 1806 of yacc.c  */
    9001 #line 9002 "Parser/parser.cc"
     9069#line 9070 "Parser/parser.cc"
    90029070      default: break;
    90039071    }
     
    92309298
    92319299/* Line 2067 of yacc.c  */
    9232 #line 2731 "parser.yy"
     9300#line 2762 "parser.yy"
    92339301
    92349302// ----end of grammar----
  • src/Parser/parser.h

    rb29f8f3 r093f1a0  
    256256        StatementNode *sn;
    257257        ConstantNode *constant;
     258        LabelNode *label;
    258259        InitializerNode *in;
     260        bool flag;
    259261
    260262
    261263
    262264/* Line 2068 of yacc.c  */
    263 #line 264 "Parser/parser.h"
     265#line 266 "Parser/parser.h"
    264266} YYSTYPE;
    265267# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    rb29f8f3 r093f1a0  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 16 16:25:12 2015
    13 // Update Count     : 1267
     12// Last Modified On : Thu Jul 30 15:29:19 2015
     13// Update Count     : 1327
    1414//
    1515
     
    115115        StatementNode *sn;
    116116        ConstantNode *constant;
     117        LabelNode *label;
    117118        InitializerNode *in;
     119        bool flag;
    118120}
    119121
     
    134136%type<en> argument_expression_list              argument_expression                     for_control_expression          assignment_opt
    135137%type<en> subrange
     138%type<en> asm_operands_opt asm_operands_list asm_operand
     139%type<label> label_list
     140%type<constant> asm_clobbers_list_opt
     141%type<flag> asm_volatile_opt
    136142
    137143// statements
     
    378384        | assignment_expression
    379385        | no_attr_identifier ':' assignment_expression
    380                 { $$ = $3->set_asArgName( $1 ); }
     386                { $$ = $3->set_argName( $1 ); }
    381387                // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient
    382388                // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used
    383389                // with an appropriate semantic check.
    384390        | '[' push assignment_expression pop ']' ':' assignment_expression
    385                 { $$ = $7->set_asArgName( $3 ); }
     391                { $$ = $7->set_argName( $3 ); }
    386392        | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression
    387                 { $$ = $9->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }
     393                { $$ = $9->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }
    388394        ;
    389395
     
    754760
    755761fall_through:                                                                                   // CFA
    756         FALLTHRU                                                                        { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
    757         | FALLTHRU ';'                                                          { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); }
     762        FALLTHRU                                                                        { $$ = new StatementNode( StatementNode::Fallthru ); }
     763        | FALLTHRU ';'                                                          { $$ = new StatementNode( StatementNode::Fallthru ); }
    758764        ;
    759765
     
    783789        | CONTINUE ';'
    784790                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    785                 { $$ = new StatementNode( StatementNode::Continue, 0, 0 ); }
     791                { $$ = new StatementNode( StatementNode::Continue ); }
    786792        | CONTINUE no_attr_identifier ';'                                       // CFA, multi-level continue
    787793                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
     
    790796        | BREAK ';'
    791797                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
    792                 { $$ = new StatementNode( StatementNode::Break, 0, 0 ); }
     798                { $$ = new StatementNode( StatementNode::Break ); }
    793799        | BREAK no_attr_identifier ';'                                          // CFA, multi-level exit
    794800                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
     
    800806                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
    801807        | THROW ';'
    802                 { $$ = new StatementNode( StatementNode::Throw, 0, 0 ); }
     808                { $$ = new StatementNode( StatementNode::Throw ); }
    803809        ;
    804810
     
    863869
    864870asm_statement:
    865         ASM type_qualifier_list_opt '(' constant_expression ')' ';'
    866                 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
    867         | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ')' ';' // remaining GCC
    868                 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
    869         | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ')' ';'
    870                 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
    871         | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list ')' ';'
    872                 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); }
     871        ASM asm_volatile_opt '(' string_literal_list ')' ';'
     872                { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, 0 ); }
     873        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC
     874                { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6 ); }
     875        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';'
     876                { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8 ); }
     877        | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';'
     878                { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8, $10 ); }
     879        | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';'
     880        { $$ = new AsmStmtNode( StatementNode::Asm, $2, $5, 0, $8, $10, $12 ); }
     881        ;
     882
     883asm_volatile_opt:                                                                               // GCC
     884        // empty
     885                { $$ = false; }
     886        | VOLATILE
     887                { $$ = true; }
    873888        ;
    874889
    875890asm_operands_opt:                                                                               // GCC
    876891        // empty
     892                { $$ = 0; }                                                                             // use default argument
    877893        | asm_operands_list
    878894        ;
     
    881897        asm_operand
    882898        | asm_operands_list ',' asm_operand
     899                { $$ = (ExpressionNode *)$1->set_link( $3 ); }
    883900        ;
    884901
    885902asm_operand:                                                                                    // GCC
    886         STRINGliteral '(' constant_expression ')'       {}
    887         ;
    888 
    889 asm_clobbers_list:                                                                              // GCC
    890         STRINGliteral                                                           {}
    891         | asm_clobbers_list ',' STRINGliteral
     903        string_literal_list '(' constant_expression ')'
     904                { $$ = new AsmExprNode( 0, $1, $3 ); }
     905        | '[' constant_expression ']' string_literal_list '(' constant_expression ')'
     906                { $$ = new AsmExprNode( $2, $4, $6 ); }
     907        ;
     908
     909asm_clobbers_list_opt:                                                                          // GCC
     910        // empty
     911                { $$ = 0; }                                                                             // use default argument
     912        | string_literal_list
     913                { $$ = $1; }
     914        | asm_clobbers_list_opt ',' string_literal_list
     915                { $$ = (ConstantNode *)$1->set_link( $3 ); }
     916        ;
     917
     918label_list:
     919        no_attr_identifier
     920                { $$ = new LabelNode(); $$->append_label( $1 ); }
     921        | label_list ',' no_attr_identifier
     922                { $$ = $1; $1->append_label( $3 ); }
    892923        ;
    893924
     
    929960
    930961label_list:                                                                                             // GCC, local label
    931         no_attr_identifier_or_type_name                 {}
     962        no_attr_identifier_or_type_name                         {}
    932963        | label_list ',' no_attr_identifier_or_type_name {}
    933964        ;
  • src/ResolvExpr/Resolver.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 15 14:54:04 2015
    13 // Update Count     : 167
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jul 24 17:33:54 2015
     13// Update Count     : 178
    1414//
    1515
     
    4141
    4242                virtual void visit( ExprStmt *exprStmt );
     43                virtual void visit( AsmExpr *asmExpr );
     44                virtual void visit( AsmStmt *asmStmt );
    4345                virtual void visit( IfStmt *ifStmt );
    4446                virtual void visit( WhileStmt *whileStmt );
     
    209211                        exprStmt->set_expr( newExpr );
    210212                } // if
     213        }
     214
     215        void Resolver::visit( AsmExpr *asmExpr ) {
     216                Expression *newExpr = findVoidExpression( asmExpr->get_operand(), *this );
     217                delete asmExpr->get_operand();
     218                asmExpr->set_operand( newExpr );
     219                if ( asmExpr->get_inout() ) {
     220                        newExpr = findVoidExpression( asmExpr->get_inout(), *this );
     221                        delete asmExpr->get_inout();
     222                        asmExpr->set_inout( newExpr );
     223                } // if
     224        }
     225
     226        void Resolver::visit( AsmStmt *asmStmt ) {
     227                acceptAll( asmStmt->get_input(), *this);
     228                acceptAll( asmStmt->get_output(), *this);
    211229        }
    212230
  • src/SynTree/Constant.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jun 10 14:41:03 2015
    13 // Update Count     : 8
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Jul 30 15:18:38 2015
     13// Update Count     : 12
    1414//
    1515
     
    2222Constant::Constant( Type *type_, std::string value_ ) : type( type_ ), value( value_ ) {}
    2323
    24 Constant::~Constant() {}
     24Constant::Constant( const Constant &other ) {
     25        type = other.type->clone();
     26        value = other.value;
     27}
    2528
    26 Constant *Constant::clone() const { return 0; }
     29Constant::~Constant() { delete type; }
     30
     31Constant *Constant::clone() const { assert( false ); return 0; }
    2732
    2833void Constant::print( std::ostream &os ) const {
  • src/SynTree/Constant.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:46:37 2015
    13 // Update Count     : 2
     12// Last Modified On : Thu Jul 30 15:19:16 2015
     13// Update Count     : 5
    1414//
    1515
     
    2424  public:
    2525        Constant( Type *type, std::string value );
     26        Constant( const Constant &other );
    2627        virtual ~Constant();
    2728
  • src/SynTree/Expression.cc

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  7 08:40:46 2015
    13 // Update Count     : 16
     12// Last Modified On : Tue Jul 28 16:27:17 2015
     13// Update Count     : 22
    1414//
    1515
     
    3838Expression::~Expression() {
    3939        delete env;
    40         // delete argName;      // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix
     40        delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix
    4141        deleteAll( results );
    4242}
     
    332332}
    333333
     334void AsmExpr::print( std::ostream &os, int indent ) const {
     335        os << "Asm Expression: " << std::endl;
     336        if ( inout ) inout->print( os, indent + 2 );
     337        if ( constraint ) constraint->print( os, indent + 2 );
     338        if ( operand ) operand->print( os, indent + 2 );
     339}
     340
    334341void UntypedValofExpr::print( std::ostream &os, int indent ) const {
    335342        os << std::string( indent, ' ' ) << "Valof Expression: " << std::endl;
  • src/SynTree/Expression.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun  7 22:03:44 2015
    13 // Update Count     : 4
     12// Last Modified On : Fri Jul 24 13:49:28 2015
     13// Update Count     : 18
    1414//
    1515
     
    3030
    3131        std::list<Type *>& get_results() { return results; }
    32         void add_result(Type *t);
     32        void add_result( Type *t );
    3333
    3434        TypeSubstitution *get_env() const { return env; }
     
    446446};
    447447
     448// AsmExpr represents a GCC 'asm constraint operand' used in an asm statement: [output] "=f" (result)
     449class AsmExpr : public Expression {
     450  public:
     451        AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {}
     452        virtual ~AsmExpr() { delete inout; delete constraint; delete operand; };
     453
     454        Expression *get_inout() const { return inout; }
     455        void set_inout( Expression *newValue ) { inout = newValue; }
     456
     457        ConstantExpr *get_constraint() const { return constraint; }
     458        void set_constraint( ConstantExpr *newValue ) { constraint = newValue; }
     459
     460        Expression *get_operand() const { return operand; }
     461        void set_operand( Expression *newValue ) { operand = newValue; }
     462
     463        virtual AsmExpr *clone() const { return new AsmExpr( *this ); }
     464        virtual void accept( Visitor &v ) { v.visit( this ); }
     465        virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
     466        virtual void print( std::ostream &os, int indent = 0 ) const;
     467  private:
     468        // https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Machine-Constraints.html#Machine-Constraints
     469        Expression *inout;
     470        ConstantExpr *constraint;
     471        Expression *operand;
     472};
     473
    448474// ValofExpr represents a GCC 'lambda expression'
    449475class UntypedValofExpr : public Expression {
  • src/SynTree/Mutator.cc

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul 16 16:10:54 2015
    13 // Update Count     : 3
     12// Last Modified On : Sat Jul 25 19:21:33 2015
     13// Update Count     : 11
    1414//
    1515
     
    9595}
    9696
     97Statement *Mutator::mutate( AsmStmt *asmStmt ) {
     98        asmStmt->set_instruction( maybeMutate( asmStmt->get_instruction(), *this ) );
     99        mutateAll( asmStmt->get_output(), *this );
     100        mutateAll( asmStmt->get_input(), *this );
     101        mutateAll( asmStmt->get_clobber(), *this );
     102        return asmStmt;
     103}
     104
    97105Statement *Mutator::mutate( IfStmt *ifStmt ) {
    98106        ifStmt->set_condition( maybeMutate( ifStmt->get_condition(), *this ) );
     
    291299        typeExpr->set_type( maybeMutate( typeExpr->get_type(), *this ) );
    292300        return typeExpr;
     301}
     302
     303Expression *Mutator::mutate( AsmExpr *asmExpr ) {
     304        asmExpr->set_inout( maybeMutate( asmExpr->get_inout(), *this ) );
     305        asmExpr->set_constraint( maybeMutate( asmExpr->get_constraint(), *this ) );
     306        asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) );
     307        return asmExpr;
    293308}
    294309
  • src/SynTree/Mutator.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jul 13 18:14:47 2015
    13 // Update Count     : 5
     12// Last Modified On : Thu Jul 23 23:24:18 2015
     13// Update Count     : 7
    1414//
    1515#include <cassert>
     
    3737        virtual CompoundStmt* mutate( CompoundStmt *compoundStmt );
    3838        virtual Statement* mutate( ExprStmt *exprStmt );
     39        virtual Statement* mutate( AsmStmt *asmStmt );
    3940        virtual Statement* mutate( IfStmt *ifStmt );
    4041        virtual Statement* mutate( WhileStmt *whileStmt );
     
    7071        virtual Expression* mutate( SolvedTupleExpr *tupleExpr );
    7172        virtual Expression* mutate( TypeExpr *typeExpr );
     73        virtual Expression* mutate( AsmExpr *asmExpr );
    7274        virtual Expression* mutate( UntypedValofExpr *valofExpr );
    7375
  • src/SynTree/Statement.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 15 14:57:40 2015
    13 // Update Count     : 27
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Jul 25 12:19:50 2015
     13// Update Count     : 53
    1414//
    1515
     
    4242        expr->print( os, indent + 2 );
    4343}
     44
     45
     46AsmStmt::AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement( labels ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {}
     47
     48AsmStmt::~AsmStmt() {
     49        delete instruction;
     50        deleteAll( output );
     51        deleteAll( input );
     52        deleteAll( clobber );
     53}
     54
     55void AsmStmt::print( std::ostream &os, int indent ) const {
     56        os << "Assembler Statement:" << endl;
     57        os << std::string( indent, ' ' ) << "instruction: " << endl << std::string( indent, ' ' );
     58        instruction->print( os, indent + 2 );
     59        if ( ! output.empty() ) {
     60                os << endl << std::string( indent, ' ' ) << "output: " << endl;
     61                printAll( output, os, indent + 2 );
     62        } // if
     63        if ( ! input.empty() ) {
     64                os << std::string( indent, ' ' ) << "input: " << endl << std::string( indent, ' ' );
     65                printAll( input, os, indent + 2 );
     66        } // if
     67        if ( ! clobber.empty() ) {
     68                os << std::string( indent, ' ' ) << "clobber: " << endl;
     69                printAll( clobber, os, indent + 2 );
     70        } // if
     71}
     72
    4473
    4574const char *BranchStmt::brType[] = { "Goto", "Break", "Continue" };
  • src/SynTree/Statement.h

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Jul 14 12:14:54 2015
    13 // Update Count     : 24
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Jul 25 18:25:37 2015
     13// Update Count     : 44
    1414//
    1515
     
    7070};
    7171
     72class AsmStmt : public Statement {
     73  public:
     74        AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> input, std::list<Expression *> output, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels );
     75        virtual ~AsmStmt();
     76
     77        bool get_voltile() { return voltile; }
     78        void set_voltile( bool newValue ) { voltile = newValue; }
     79        ConstantExpr *get_instruction() { return instruction; }
     80        void set_instruction( ConstantExpr *newValue ) { instruction = newValue; }
     81        std::list<Expression *> &get_output() { return output; }
     82        void set_output( const std::list<Expression *> &newValue ) { output = newValue; }
     83        std::list<Expression *> &get_input() { return input; }
     84        void set_input( const std::list<Expression *> &newValue ) { input = newValue; }
     85        std::list<ConstantExpr *> &get_clobber() { return clobber; }
     86        void set_clobber( const std::list<ConstantExpr *> &newValue ) { clobber = newValue; }
     87        std::list<Label> &get_gotolabels() { return gotolabels; }
     88        void set_gotolabels( const std::list<Label> &newValue ) { gotolabels = newValue; }
     89
     90        virtual AsmStmt *clone() const { return new AsmStmt( *this ); }
     91        virtual void accept( Visitor &v ) { v.visit( this ); }
     92        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
     93        virtual void print( std::ostream &os, int indent = 0 ) const;
     94  private:
     95        bool voltile;
     96        ConstantExpr *instruction;
     97        std::list<Expression *> output, input;
     98        std::list<ConstantExpr *> clobber;
     99        std::list<Label> gotolabels;
     100};
     101
    72102class IfStmt : public Statement {
    73103  public:
     
    100130        void set_condition( Expression *newValue ) { condition = newValue; }
    101131
    102         std::list<Statement *>& get_branches() { return branches; }
     132        std::list<Statement *> & get_branches() { return branches; }
    103133        void add_case( CaseStmt * );
    104134
  • src/SynTree/SynTree.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:58:22 2015
    13 // Update Count     : 1
     12// Last Modified On : Thu Jul 23 23:25:04 2015
     13// Update Count     : 3
    1414//
    1515
     
    4040class CompoundStmt;
    4141class ExprStmt;
     42class AsmStmt;
    4243class IfStmt;
    4344class WhileStmt;
     
    7576class SolvedTupleExpr;
    7677class TypeExpr;
     78class AsmExpr;
    7779class UntypedValofExpr;
    7880
  • src/SynTree/Visitor.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Jul 14 12:31:03 2015
    13 // Update Count     : 3
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jul 24 16:11:05 2015
     13// Update Count     : 15
    1414//
    1515
     
    8282}
    8383
     84void Visitor::visit( AsmStmt *asmStmt ) {
     85        maybeAccept( asmStmt->get_instruction(), *this );
     86        acceptAll( asmStmt->get_output(), *this );
     87        acceptAll( asmStmt->get_input(), *this );
     88        acceptAll( asmStmt->get_clobber(), *this );
     89}
     90
    8491void Visitor::visit( IfStmt *ifStmt ) {
    8592        maybeAccept( ifStmt->get_condition(), *this );
     
    246253}
    247254
     255void Visitor::visit( AsmExpr *asmExpr ) {
     256        maybeAccept( asmExpr->get_inout(), *this );
     257        maybeAccept( asmExpr->get_constraint(), *this );
     258        maybeAccept( asmExpr->get_operand(), *this );
     259}
     260
    248261void Visitor::visit( UntypedValofExpr *valofExpr ) {
    249262        acceptAll( valofExpr->get_results(), *this );
     
    282295
    283296void Visitor::visit( StructInstType *aggregateUseType ) {
    284         visit( static_cast< ReferenceToType* >( aggregateUseType ) );
     297        visit( static_cast< ReferenceToType * >( aggregateUseType ) );
    285298}
    286299
    287300void Visitor::visit( UnionInstType *aggregateUseType ) {
    288         visit( static_cast< ReferenceToType* >( aggregateUseType ) );
     301        visit( static_cast< ReferenceToType * >( aggregateUseType ) );
    289302}
    290303
    291304void Visitor::visit( EnumInstType *aggregateUseType ) {
    292         visit( static_cast< ReferenceToType* >( aggregateUseType ) );
     305        visit( static_cast< ReferenceToType * >( aggregateUseType ) );
    293306}
    294307
    295308void Visitor::visit( ContextInstType *aggregateUseType ) {
    296         visit( static_cast< ReferenceToType* >( aggregateUseType ) );
     309        visit( static_cast< ReferenceToType * >( aggregateUseType ) );
    297310        acceptAll( aggregateUseType->get_members(), *this );
    298311}
    299312
    300313void Visitor::visit( TypeInstType *aggregateUseType ) {
    301         visit( static_cast< ReferenceToType* >( aggregateUseType ) );
     314        visit( static_cast< ReferenceToType * >( aggregateUseType ) );
    302315}
    303316
  • src/SynTree/Visitor.h

    rb29f8f3 r093f1a0  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 11:15:55 2015
    13 // Update Count     : 2
     12// Last Modified On : Thu Jul 23 23:22:23 2015
     13// Update Count     : 4
    1414//
    1515
     
    3737        virtual void visit( CompoundStmt *compoundStmt );
    3838        virtual void visit( ExprStmt *exprStmt );
     39        virtual void visit( AsmStmt *asmStmt );
    3940        virtual void visit( IfStmt *ifStmt );
    4041        virtual void visit( WhileStmt *whileStmt );
     
    7071        virtual void visit( SolvedTupleExpr *tupleExpr );
    7172        virtual void visit( TypeExpr *typeExpr );
     73        virtual void visit( AsmExpr *asmExpr );
    7274        virtual void visit( UntypedValofExpr *valofExpr );
    7375
  • src/main.cc

    rb29f8f3 r093f1a0  
    99// Author           : Richard C. Bilson
    1010// Created On       : Fri May 15 23:12:02 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jul 15 16:45:24 2015
    13 // Update Count     : 145
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Jul 30 15:36:41 2015
     13// Update Count     : 146
    1414//
    1515
     
    339339
    340340        printAll( decls, std::cout );
     341        deleteAll( translationUnit );
    341342}
    342343
Note: See TracChangeset for help on using the changeset viewer.