Changeset f678663


Ignore:
Timestamp:
Jul 30, 2015, 4:08:34 PM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
8c84ebd, ae4c85a
Parents:
5aa708c (diff), 093f1a0 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of /u/cforall/software/cfa/cfa-cc

Conflicts:

src/main.cc

Location:
src
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    r5aa708c rf678663  
    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

    r5aa708c rf678663  
    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

    r5aa708c rf678663  
    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

    r5aa708c rf678663  
    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

    r5aa708c rf678663  
    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

    r5aa708c rf678663  
    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

    <
    r5aa708c rf678663  
    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,