Changeset 4999940


Ignore:
Timestamp:
Aug 26, 2016, 12:01:47 PM (6 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
3f1e68f, f2a4f6c
Parents:
60aa49a7 (diff), a839867 (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 plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r60aa49a7 r4999940  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:48:23 2016
    13 // Update Count     : 182
     12// Last Modified On : Thu Aug 25 20:42:25 2016
     13// Update Count     : 232
    1414//
    1515
     
    9393        } // if
    9494
    95         if(storageClass != NoStorageClass) os << DeclarationNode::storageName[storageClass] << ' ';
    96         if(isInline) os << DeclarationNode::storageName[Inline] << ' ';
    97         if(isNoreturn) os << DeclarationNode::storageName[Noreturn] << ' ';
     95        if ( storageClass != NoStorageClass ) os << DeclarationNode::storageName[storageClass] << ' ';
     96        if ( isInline ) os << DeclarationNode::storageName[Inline] << ' ';
     97        if ( isNoreturn ) os << DeclarationNode::storageName[Noreturn] << ' ';
    9898        if ( type ) {
    9999                type->print( os, indent );
     
    147147} // DeclarationNode::newFunction
    148148
    149 DeclarationNode *DeclarationNode::newQualifier( Qualifier q ) {
     149DeclarationNode * DeclarationNode::newQualifier( Qualifier q ) {
    150150        DeclarationNode *newnode = new DeclarationNode;
    151151        newnode->type = new TypeData();
    152         newnode->type->qualifiers.push_back( q );
     152        newnode->type->qualifiers[ q ] = 1;
    153153        return newnode;
    154154} // DeclarationNode::newQualifier
    155155
    156 DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
    157         DeclarationNode *newnode = new DeclarationNode;
    158         switch (sc) {
    159                 case Inline: newnode->isInline = true; break;
    160                 case Noreturn: newnode->isNoreturn = true; break;
    161                 default: newnode->storageClass = sc; break;
    162         }
     156DeclarationNode * DeclarationNode::newForall( DeclarationNode *forall ) {
     157        DeclarationNode *newnode = new DeclarationNode;
     158        newnode->type = new TypeData( TypeData::Unknown );
     159        newnode->type->forall = forall;
     160        return newnode;
     161} // DeclarationNode::newForall
     162
     163DeclarationNode * DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
     164        DeclarationNode *newnode = new DeclarationNode;
     165        //switch (sc) {
     166        //      case Inline: newnode->isInline = true; break;
     167        //      case Noreturn: newnode->isNoreturn = true; break;
     168        //      default: newnode->storageClass = sc; break;
     169        //}
     170        newnode->storageClass = sc;
    163171        return newnode;
    164172} // DeclarationNode::newStorageClass
    165173
    166 DeclarationNode *DeclarationNode::newBasicType( BasicType bt ) {
     174DeclarationNode * DeclarationNode::newBasicType( BasicType bt ) {
    167175        DeclarationNode *newnode = new DeclarationNode;
    168176        newnode->type = new TypeData( TypeData::Basic );
     
    171179} // DeclarationNode::newBasicType
    172180
    173 DeclarationNode *DeclarationNode::newBuiltinType( BuiltinType bt ) {
     181DeclarationNode * DeclarationNode::newModifier( Modifier mod ) {
     182        DeclarationNode *newnode = new DeclarationNode;
     183        newnode->type = new TypeData( TypeData::Basic );
     184        newnode->type->basic->modifiers.push_back( mod );
     185        return newnode;
     186} // DeclarationNode::newModifier
     187
     188DeclarationNode * DeclarationNode::newBuiltinType( BuiltinType bt ) {
    174189        DeclarationNode *newnode = new DeclarationNode;
    175190        newnode->type = new TypeData( TypeData::Builtin );
     
    178193} // DeclarationNode::newBuiltinType
    179194
    180 DeclarationNode *DeclarationNode::newModifier( Modifier mod ) {
    181         DeclarationNode *newnode = new DeclarationNode;
    182         newnode->type = new TypeData( TypeData::Basic );
    183         newnode->type->basic->modifiers.push_back( mod );
    184         return newnode;
    185 } // DeclarationNode::newModifier
    186 
    187 DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) {
    188         DeclarationNode *newnode = new DeclarationNode;
    189         newnode->type = new TypeData( TypeData::Unknown );
    190         newnode->type->forall = forall;
    191         return newnode;
    192 } // DeclarationNode::newForall
    193 
    194 DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) {
     195DeclarationNode * DeclarationNode::newFromTypedef( std::string *name ) {
    195196        DeclarationNode *newnode = new DeclarationNode;
    196197        newnode->type = new TypeData( TypeData::SymbolicInst );
     
    201202} // DeclarationNode::newFromTypedef
    202203
    203 DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) {
     204DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) {
    204205        DeclarationNode *newnode = new DeclarationNode;
    205206        newnode->type = new TypeData( TypeData::Aggregate );
     
    369370                        src = 0;
    370371                } else {
    371                         dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers );
    372                 } // if
    373         } // if
    374 }
     372                        dst->qualifiers |= src->qualifiers;
     373                } // if
     374        } // if
     375}
     376
     377void DeclarationNode::checkQualifiers( TypeData *src, TypeData *dst ) {
     378        TypeData::Qualifiers qsrc = src->qualifiers, qdst = dst->qualifiers;
     379
     380        if ( (qsrc & qdst).any() ) {                                            // common bits between qualifier masks ?
     381                error = "duplicate qualifier ";
     382                int j = 0;                                                                              // separator detector
     383                for ( int i = 0; i < DeclarationNode::NoOfQualifier; i += 1 ) {
     384                        if ( qsrc[i] & qdst[i] ) {                                      // find specific qualifiers in common
     385                                if ( j > 0 ) error += ", ";
     386                                error += DeclarationNode::qualifierName[i];
     387                                j += 1;
     388                        } // if
     389                } // for
     390                error += " in declaration of ";
     391        } // if
     392} // DeclarationNode::checkQualifiers
    375393
    376394DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) {
     
    380398                        if ( ! type ) {
    381399                                type = new TypeData;
     400                        } else {
     401                                checkQualifiers( q->type, type );
    382402                        } // if
    383403                        addQualifiersToType( q->type, type );
     
    405425        isInline = isInline || q->isInline;
    406426        isNoreturn = isNoreturn || q->isNoreturn;
    407         if(storageClass == NoStorageClass) {
     427        if ( storageClass == NoStorageClass ) {
    408428                storageClass = q->storageClass;
    409         }
    410         else if (q->storageClass != NoStorageClass) {
     429        } else if ( q->storageClass != NoStorageClass ) {
    411430                q->error = "invalid combination of storage classes in declaration of ";
    412         }
    413         if(error.empty()) error = q->error;
     431        } // if
     432        if ( error.empty() ) error = q->error;
    414433        return this;
    415434}
     
    430449                        switch ( dst->kind ) {
    431450                          case TypeData::Unknown:
    432                                 src->qualifiers.splice( src->qualifiers.end(), dst->qualifiers );
     451                                src->qualifiers |= dst->qualifiers;
    433452                                dst = src;
    434453                                src = 0;
    435454                                break;
    436455                          case TypeData::Basic:
    437                                 dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers );
     456                                dst->qualifiers |= src->qualifiers;
    438457                                if ( src->kind != TypeData::Unknown ) {
    439458                                        assert( src->kind == TypeData::Basic );
     
    451470                                                dst->base->aggInst->params = maybeClone( src->aggregate->actuals );
    452471                                        } // if
    453                                         dst->base->qualifiers.splice( dst->base->qualifiers.end(), src->qualifiers );
     472                                        dst->base->qualifiers |= src->qualifiers;
    454473                                        src = 0;
    455474                                        break;
     
    480499                                                type->aggInst->params = maybeClone( o->type->aggregate->actuals );
    481500                                        } // if
    482                                         type->qualifiers.splice( type->qualifiers.end(), o->type->qualifiers );
     501                                        type->qualifiers |= o->type->qualifiers;
    483502                                } else {
    484503                                        type = o->type;
     
    615634                                        p->type->base->aggInst->params = maybeClone( type->aggregate->actuals );
    616635                                } // if
    617                                 p->type->base->qualifiers.splice( p->type->base->qualifiers.end(), type->qualifiers );
     636                                p->type->base->qualifiers |= type->qualifiers;
    618637                                break;
    619638
     
    652671                                        lastArray->base->aggInst->params = maybeClone( type->aggregate->actuals );
    653672                                } // if
    654                                 lastArray->base->qualifiers.splice( lastArray->base->qualifiers.end(), type->qualifiers );
     673                                lastArray->base->qualifiers |= type->qualifiers;
    655674                                break;
    656675                          default:
     
    875894
    876895Declaration *DeclarationNode::build() const {
    877         if( !error.empty() ) throw SemanticError( error, this );
     896        if ( ! error.empty() ) throw SemanticError( error, this );
    878897        if ( type ) {
    879898                return type->buildDecl( name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );
  • src/Parser/ExpressionNode.cc

    r60aa49a7 r4999940  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 09:43:31 2016
    13 // Update Count     : 501
     12// Last Modified On : Thu Aug 25 21:39:40 2016
     13// Update Count     : 503
    1414//
    1515
     
    184184        "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",
    185185        "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?",
    186         "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
     186        "?=?", "?@=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
    187187        "?[?]", "...",
    188188        // monadic
  • src/Parser/ParseNode.h

    r60aa49a7 r4999940  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 11:53:59 2016
    13 // Update Count     : 546
     12// Last Modified On : Thu Aug 25 22:46:24 2016
     13// Update Count     : 564
    1414//
    1515
     
    9999        InitializerNode *kids;
    100100        bool maybeConstructed;
    101 };
     101}; // InitializerNode
    102102
    103103//##############################################################################
     
    126126        bool extension = false;
    127127        std::unique_ptr<Expression> expr;
    128 };
     128}; // ExpressionNode
    129129
    130130template< typename T >
     
    145145        SizeOf, AlignOf, OffsetOf, Plus, Minus, Mul, Div, Mod, Or, And,
    146146        BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq,
    147         Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,
     147        Assign, AtAssn, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,
    148148        Index, Range,
    149149        // monadic
    150150        UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress,
    151151        Ctor, Dtor,
    152 };
     152}; // OperKinds
    153153
    154154struct LabelNode {
     
    196196class DeclarationNode : public ParseNode {
    197197  public:
    198         enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic };
     198        enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, NoOfQualifier };
    199199        enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, };
    200200        enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary };
     
    204204        enum BuiltinType { Valist };
    205205
     206        static const char *qualifierName[];
    206207        static const char *storageName[];
    207         static const char *qualifierName[];
    208208        static const char *basicTypeName[];
    209209        static const char *modifierName[];
     
    214214        static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false );
    215215        static DeclarationNode *newQualifier( Qualifier );
     216        static DeclarationNode *newForall( DeclarationNode *);
    216217        static DeclarationNode *newStorageClass( StorageClass );
    217218        static DeclarationNode *newBasicType( BasicType );
    218219        static DeclarationNode *newModifier( Modifier );
    219         static DeclarationNode *newForall( DeclarationNode *);
     220        static DeclarationNode *newBuiltinType( BuiltinType );
    220221        static DeclarationNode *newFromTypedef( std::string *);
    221222        static DeclarationNode *newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body );
     
    236237        static DeclarationNode *newAttr( std::string *, ExpressionNode *expr );
    237238        static DeclarationNode *newAttr( std::string *, DeclarationNode *type );
    238         static DeclarationNode *newBuiltinType( BuiltinType );
    239239
    240240        DeclarationNode();
     
    243243
    244244        DeclarationNode *addQualifiers( DeclarationNode *);
     245        void checkQualifiers( TypeData *, TypeData * );
    245246        DeclarationNode *copyStorageClasses( DeclarationNode *);
    246247        DeclarationNode *addType( DeclarationNode *);
     
    285286        bool get_extension() const { return extension; }
    286287        DeclarationNode *set_extension( bool exten ) { extension = exten; return this; }
    287   private:
     288  public:
    288289        // StorageClass buildStorageClass() const;
    289290        // bool buildFuncSpecifier( StorageClass key ) const;
  • src/Parser/TypeData.cc

    r60aa49a7 r4999940  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:48:44 2016
    13 // Update Count     : 64
     12// Last Modified On : Wed Aug 24 13:46:55 2016
     13// Update Count     : 69
    1414//
    1515
     
    244244        using std::string;
    245245
    246         printEnums( qualifiers.begin(), qualifiers.end(), DeclarationNode::qualifierName, os );
     246        for ( int i = 0; i < DeclarationNode::NoOfQualifier; i += 1 ) {
     247                if ( qualifiers[i] ) os << DeclarationNode::qualifierName[ i ] << ' ';
     248        } // for
    247249
    248250        if ( forall ) {
     
    425427                if ( ! toplevel && aggregate->fields ) {
    426428                        ret = clone();
    427                         ret->qualifiers.clear();
     429//                      ret->qualifiers.reset();
    428430                } // if
    429431                break;
     
    431433                if ( ! toplevel && enumeration->constants ) {
    432434                        ret = clone();
    433                         ret->qualifiers.clear();
     435//                      ret->qualifiers.reset();
    434436                } // if
    435437                break;
     
    554556Type::Qualifiers TypeData::buildQualifiers() const {
    555557        Type::Qualifiers q;
    556         for ( std::list< DeclarationNode::Qualifier >::const_iterator i = qualifiers.begin(); i != qualifiers.end(); ++i ) {
    557                 switch ( *i ) {
    558                   case DeclarationNode::Const:
    559                         q.isConst = true;
    560                         break;
    561                   case DeclarationNode::Volatile:
    562                         q.isVolatile = true;
    563                         break;
    564                   case DeclarationNode::Restrict:
    565                         q.isRestrict = true;
    566                         break;
    567                   case DeclarationNode::Lvalue:
    568                         q.isLvalue = true;
    569                         break;
    570                   case DeclarationNode::Atomic:
    571                         q.isAtomic = true;
    572                         break;
    573                 } // switch
    574         } // for
     558        q.isConst = qualifiers[ DeclarationNode::Const ];
     559        q.isVolatile = qualifiers[ DeclarationNode::Volatile ];
     560        q.isRestrict = qualifiers[ DeclarationNode::Restrict ];
     561        q.isLvalue = qualifiers[ DeclarationNode::Lvalue ];
     562        q.isAtomic = qualifiers[ DeclarationNode::Atomic ];;
    575563        return q;
    576564}
  • src/Parser/TypeData.h

    r60aa49a7 r4999940  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 18 23:48:52 2016
    13 // Update Count     : 22
     12// Last Modified On : Thu Aug 25 17:34:06 2016
     13// Update Count     : 26
    1414//
    1515
     
    1717#define TYPEDATA_H
    1818
    19 #include <list>
     19#include <bitset>
    2020
    2121#include "ParseNode.h"
     
    3535
    3636        TypeData * base;
    37         std::list< DeclarationNode::Qualifier > qualifiers;
     37        typedef std::bitset< DeclarationNode::NoOfQualifier > Qualifiers;
     38        Qualifiers qualifiers;
    3839        DeclarationNode * forall;
    3940
  • src/Parser/lex.cc

    r60aa49a7 r4999940  
    14691469 * Created On       : Sat Sep 22 08:58:10 2001
    14701470 * Last Modified By : Peter A. Buhr
    1471  * Last Modified On : Thu Aug 18 22:17:30 2016
    1472  * Update Count     : 472
     1471 * Last Modified On : Wed Aug 24 13:27:04 2016
     1472 * Update Count     : 487
    14731473 */
    14741474#line 20 "lex.ll"
     
    18271827{
    18281828        /* " stop highlighting */
    1829         static char *filename[FILENAME_MAX];                            // temporarily store current source-file name
     1829        static char filename[FILENAME_MAX];                                     // temporarily store current source-file name
    18301830        char *end_num;
    18311831        char *begin_string, *end_string;
     
    18421842                //std::cout << "file " << filename << " line " << lineno << std::endl;
    18431843                yylineno = lineno;
    1844                 yyfilename = filename[0];
     1844                yyfilename = filename;
    18451845        } // if
    18461846}
     
    24262426YY_RULE_SETUP
    24272427#line 290 "lex.ll"
    2428 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2428{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24292429        YY_BREAK
    24302430case 116:
    24312431YY_RULE_SETUP
    24322432#line 291 "lex.ll"
    2433 { *strtext += std::string( yytext ); }
     2433{ strtext->append( yytext, yyleng ); }
    24342434        YY_BREAK
    24352435case 117:
     
    24372437YY_RULE_SETUP
    24382438#line 292 "lex.ll"
    2439 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
     2439{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24402440        YY_BREAK
    24412441/* ' stop highlighting */
     
    24442444YY_RULE_SETUP
    24452445#line 296 "lex.ll"
    2446 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2446{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24472447        YY_BREAK
    24482448case 119:
    24492449YY_RULE_SETUP
    24502450#line 297 "lex.ll"
    2451 { *strtext += std::string( yytext ); }
     2451{ strtext->append( yytext, yyleng ); }
    24522452        YY_BREAK
    24532453case 120:
     
    24552455YY_RULE_SETUP
    24562456#line 298 "lex.ll"
    2457 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
     2457{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    24582458        YY_BREAK
    24592459/* " stop highlighting */
     
    24622462YY_RULE_SETUP
    24632463#line 302 "lex.ll"
    2464 { rm_underscore(); *strtext += std::string( yytext ); }
     2464{ rm_underscore(); strtext->append( yytext, yyleng ); }
    24652465        YY_BREAK
    24662466case 122:
     
    24732473YY_RULE_SETUP
    24742474#line 304 "lex.ll"
    2475 { *strtext += std::string( yytext ); } // unknown escape character
     2475{ strtext->append( yytext, yyleng ); } // unknown escape character
    24762476        YY_BREAK
    24772477/* punctuation */
  • src/Parser/lex.ll

    r60aa49a7 r4999940  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Aug 18 22:17:30 2016
    13  * Update Count     : 472
     12 * Last Modified On : Wed Aug 24 13:27:04 2016
     13 * Update Count     : 487
    1414 */
    1515
     
    141141^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" {
    142142        /* " stop highlighting */
    143         static char *filename[FILENAME_MAX];                            // temporarily store current source-file name
     143        static char filename[FILENAME_MAX];                                     // temporarily store current source-file name
    144144        char *end_num;
    145145        char *begin_string, *end_string;
     
    156156                //std::cout << "file " << filename << " line " << lineno << std::endl;
    157157                yylineno = lineno;
    158                 yyfilename = filename[0];
     158                yyfilename = filename;
    159159        } // if
    160160}
     
    288288
    289289                                /* character constant, allows empty value */
    290 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    291 <QUOTE>[^'\\\n]* { *strtext += std::string( yytext ); }
    292 <QUOTE>['\n]    { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
     290({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
     291<QUOTE>[^'\\\n]* { strtext->append( yytext, yyleng ); }
     292<QUOTE>['\n]    { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    293293                                /* ' stop highlighting */
    294294
    295295                                /* string constant */
    296 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    297 <STRING>[^"\\\n]* { *strtext += std::string( yytext ); }
    298 <STRING>["\n]   { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
     296({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
     297<STRING>[^"\\\n]* { strtext->append( yytext, yyleng ); }
     298<STRING>["\n]   { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    299299                                /* " stop highlighting */
    300300
    301301                                /* common character/string constant */
    302 <QUOTE,STRING>{escape_seq} { rm_underscore(); *strtext += std::string( yytext ); }
     302<QUOTE,STRING>{escape_seq} { rm_underscore(); strtext->append( yytext, yyleng ); }
    303303<QUOTE,STRING>"\\"{h_white}*"\n" {}                                             // continuation (ALSO HANDLED BY CPP)
    304 <QUOTE,STRING>"\\" { *strtext += std::string( yytext ); } // unknown escape character
     304<QUOTE,STRING>"\\" { strtext->append( yytext, yyleng ); } // unknown escape character
    305305
    306306                                /* punctuation */
  • src/Parser/parser.cc

    r60aa49a7 r4999940  
    8383#include "LinkageSpec.h"
    8484
    85 union DeclQualifiers {
    86         unsigned int value;                                                                     // assume 32-bits
    87         struct {
    88                 bool Extern : 1;
    89                 bool Static : 1;
    90                 bool Auto : 1;
    91                 bool Register : 1;
    92                 bool Inline : 1;
    93                 bool Fortran : 1;
    94                 bool Noreturn : 1;
    95                 bool Threadlocal : 1;
    96                 bool Extension : 1;
    97                 bool Lvalue : 1;
    98                 bool Const : 1;
    99                 bool Volatile : 1;
    100                 bool Restrict : 1;
    101                 bool Atomic : 1;
    102         } qual;
    103 }; // DeclQualifiers
    104 DeclQualifiers declQualifiers = { 0 };
    105 
    106 union DeclType {
    107         unsigned int value;                                                                     // assume 32-bits
    108         struct {
    109                 bool Char : 1;
    110                 bool Bool : 1;
    111                 bool Short : 1;
    112                 bool Int : 1;
    113                 bool Float : 1;
    114                 bool Double : 1;
    115                 bool Long : 1;
    116                 bool Signed : 1;
    117                 bool Unsigned : 1;
    118                 bool Void : 1;
    119                 bool Complex : 1;
    120                 bool Imaginary : 1;
    121                 bool Valist : 1;
    122         } type;
    123 }; // DeclType
    124 DeclType declTypes = { 0 };
    125 
    12685extern DeclarationNode * parseTree;
    12786extern LinkageSpec::Spec linkage;
     
    13796
    13897/* Line 268 of yacc.c  */
    139 #line 140 "Parser/parser.cc"
     98#line 99 "Parser/parser.cc"
    14099
    141100/* Enabling traces.  */
     
    388347
    389348/* Line 293 of yacc.c  */
    390 #line 156 "parser.yy"
     349#line 115 "parser.yy"
    391350
    392351        Token tok;
     
    408367
    409368/* Line 293 of yacc.c  */
    410 #line 411 "Parser/parser.cc"
     369#line 370 "Parser/parser.cc"
    411370} YYSTYPE;
    412371# define YYSTYPE_IS_TRIVIAL 1
     
    420379
    421380/* Line 343 of yacc.c  */
    422 #line 423 "Parser/parser.cc"
     381#line 382 "Parser/parser.cc"
    423382
    424383#ifdef short
     
    639598#define YYFINAL  250
    640599/* YYLAST -- Last index in YYTABLE.  */
    641 #define YYLAST   10841
     600#define YYLAST   10863
    642601
    643602/* YYNTOKENS -- Number of terminals.  */
     
    646605#define YYNNTS  241
    647606/* YYNRULES -- Number of rules.  */
    648 #define YYNRULES  750
     607#define YYNRULES  751
    649608/* YYNRULES -- Number of states.  */
    650 #define YYNSTATES  1554
     609#define YYNSTATES  1555
    651610
    652611/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    716675     326,   331,   337,   339,   341,   345,   348,   349,   351,   353,
    717676     355,   357,   359,   361,   363,   365,   367,   369,   371,   373,
    718      376,   382,   389,   397,   399,   403,   405,   409,   410,   412,
    719      414,   416,   418,   420,   422,   424,   426,   428,   435,   440,
    720      443,   451,   453,   457,   459,   462,   464,   467,   469,   472,
    721      475,   481,   489,   495,   505,   511,   521,   523,   527,   529,
    722      531,   535,   539,   542,   544,   547,   550,   551,   553,   556,
    723      560,   561,   563,   566,   570,   574,   579,   580,   582,   584,
    724      587,   593,   601,   608,   615,   620,   624,   629,   632,   636,
    725      639,   643,   647,   651,   655,   661,   665,   669,   674,   676,
    726      682,   689,   695,   702,   712,   723,   733,   744,   747,   749,
    727      752,   755,   758,   760,   767,   776,   787,   800,   815,   816,
    728      818,   819,   821,   823,   827,   832,   840,   841,   843,   847,
    729      849,   853,   855,   857,   859,   863,   865,   867,   869,   873,
    730      874,   876,   880,   885,   887,   891,   893,   895,   899,   903,
    731      907,   911,   915,   918,   922,   929,   933,   937,   942,   944,
    732      947,   950,   954,   960,   969,   977,   985,   991,  1001,  1004,
    733     1007,  1013,  1017,  1023,  1028,  1032,  1037,  1042,  1050,  1054,
    734     1058,  1062,  1066,  1071,  1078,  1080,  1082,  1084,  1086,  1088,
    735     1090,  1092,  1094,  1095,  1097,  1099,  1102,  1104,  1106,  1108,
    736     1110,  1112,  1114,  1116,  1117,  1123,  1125,  1128,  1132,  1134,
    737     1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
     677     375,   378,   384,   391,   399,   401,   405,   407,   411,   412,
     678     414,   416,   418,   420,   422,   424,   426,   428,   430,   437,
     679     442,   445,   453,   455,   459,   461,   464,   466,   469,   471,
     680     474,   477,   483,   491,   497,   507,   513,   523,   525,   529,
     681     531,   533,   537,   541,   544,   546,   549,   552,   553,   555,
     682     558,   562,   563,   565,   568,   572,   576,   581,   582,   584,
     683     586,   589,   595,   603,   610,   617,   622,   626,   631,   634,
     684     638,   641,   645,   649,   653,   657,   663,   667,   671,   676,
     685     678,   684,   691,   697,   704,   714,   725,   735,   746,   749,
     686     751,   754,   757,   760,   762,   769,   778,   789,   802,   817,
     687     818,   820,   821,   823,   825,   829,   834,   842,   843,   845,
     688     849,   851,   855,   857,   859,   861,   865,   867,   869,   871,
     689     875,   876,   878,   882,   887,   889,   893,   895,   897,   901,
     690     905,   909,   913,   917,   920,   924,   931,   935,   939,   944,
     691     946,   949,   952,   956,   962,   971,   979,   987,   993,  1003,
     692    1006,  1009,  1015,  1019,  1025,  1030,  1034,  1039,  1044,  1052,
     693    1056,  1060,  1064,  1068,  1073,  1080,  1082,  1084,  1086,  1088,
     694    1090,  1092,  1094,  1096,  1097,  1099,  1101,  1104,  1106,  1108,
     695    1110,  1112,  1114,  1116,  1118,  1119,  1125,  1127,  1130,  1134,
     696    1136,  1139,  1141,  1143,  1145,  1147,  1149,  1151,  1153,  1155,
    738697    1157,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    739     1177,  1179,  1181,  1184,  1187,  1191,  1195,  1197,  1201,  1203,
    740     1206,  1209,  1212,  1217,  1222,  1227,  1232,  1234,  1237,  1240,
    741     1244,  1246,  1249,  1252,  1254,  1257,  1260,  1264,  1266,  1269,
    742     1272,  1274,  1276,  1281,  1284,  1285,  1292,  1300,  1303,  1306,
    743     1309,  1310,  1313,  1316,  1320,  1323,  1327,  1329,  1332,  1336,
    744     1339,  1342,  1347,  1348,  1350,  1353,  1356,  1358,  1359,  1361,
    745     1364,  1367,  1373,  1376,  1377,  1385,  1388,  1393,  1394,  1397,
    746     1398,  1400,  1402,  1404,  1410,  1416,  1422,  1424,  1430,  1436,
    747     1446,  1448,  1454,  1455,  1457,  1459,  1465,  1467,  1469,  1475,
    748     1481,  1483,  1487,  1491,  1496,  1498,  1500,  1502,  1504,  1507,
    749     1509,  1513,  1517,  1519,  1522,  1524,  1528,  1530,  1532,  1534,
    750     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1553,  1555,
    751     1557,  1559,  1562,  1563,  1566,  1569,  1571,  1576,  1577,  1579,
    752     1582,  1586,  1591,  1594,  1597,  1599,  1602,  1605,  1611,  1617,
    753     1625,  1632,  1634,  1637,  1640,  1644,  1646,  1649,  1652,  1657,
    754     1660,  1665,  1666,  1671,  1674,  1676,  1678,  1680,  1681,  1684,
    755     1690,  1696,  1710,  1712,  1714,  1718,  1722,  1725,  1729,  1733,
    756     1736,  1741,  1743,  1750,  1760,  1761,  1773,  1775,  1779,  1783,
    757     1787,  1789,  1791,  1797,  1800,  1806,  1807,  1809,  1811,  1815,
    758     1816,  1818,  1820,  1822,  1824,  1825,  1832,  1835,  1837,  1840,
    759     1845,  1848,  1852,  1856,  1860,  1865,  1871,  1877,  1883,  1890,
    760     1892,  1894,  1896,  1900,  1901,  1907,  1908,  1910,  1912,  1915,
    761     1922,  1924,  1928,  1929,  1931,  1936,  1938,  1940,  1942,  1944,
    762     1947,  1949,  1952,  1955,  1957,  1961,  1964,  1968,  1972,  1975,
    763     1980,  1985,  1989,  1998,  2002,  2005,  2007,  2010,  2017,  2026,
    764     2030,  2033,  2037,  2041,  2046,  2051,  2055,  2057,  2059,  2061,
    765     2066,  2073,  2077,  2080,  2084,  2088,  2093,  2098,  2102,  2105,
    766     2107,  2110,  2113,  2115,  2119,  2122,  2126,  2130,  2133,  2138,
    767     2143,  2147,  2154,  2163,  2167,  2170,  2172,  2175,  2178,  2181,
    768     2185,  2189,  2192,  2197,  2202,  2206,  2213,  2222,  2226,  2229,
    769     2231,  2234,  2237,  2239,  2241,  2244,  2248,  2252,  2255,  2260,
    770     2267,  2276,  2278,  2281,  2284,  2286,  2289,  2292,  2296,  2300,
    771     2302,  2307,  2312,  2316,  2322,  2331,  2335,  2338,  2342,  2344,
    772     2350,  2356,  2363,  2370,  2372,  2375,  2378,  2380,  2383,  2386,
    773     2390,  2394,  2396,  2401,  2406,  2410,  2416,  2425,  2429,  2431,
    774     2434,  2436,  2439,  2446,  2452,  2459,  2467,  2475,  2477,  2480,
    775     2483,  2485,  2488,  2491,  2495,  2499,  2501,  2506,  2511,  2515,
    776     2524,  2528,  2530,  2532,  2535,  2537,  2539,  2542,  2546,  2549,
    777     2553,  2556,  2560,  2564,  2567,  2572,  2576,  2579,  2583,  2586,
    778     2591,  2595,  2598,  2605,  2612,  2619,  2627,  2629,  2632,  2634,
    779     2636,  2638,  2641,  2645,  2648,  2652,  2655,  2659,  2663,  2668,
    780     2671,  2675,  2680,  2683,  2689,  2695,  2702,  2709,  2710,  2712,
    781     2713
     698    1177,  1179,  1181,  1183,  1186,  1189,  1193,  1197,  1199,  1203,
     699    1205,  1208,  1211,  1214,  1219,  1224,  1229,  1234,  1236,  1239,
     700    1242,  1246,  1248,  1251,  1254,  1256,  1259,  1262,  1266,  1268,
     701    1271,  1274,  1276,  1278,  1283,  1286,  1287,  1294,  1302,  1305,
     702    1308,  1311,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
     703    1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
     704    1363,  1366,  1369,  1375,  1378,  1379,  1387,  1390,  1395,  1396,
     705    1399,  1400,  1402,  1404,  1406,  1412,  1418,  1424,  1426,  1432,
     706    1438,  1448,  1450,  1456,  1457,  1459,  1461,  1467,  1469,  1471,
     707    1477,  1483,  1485,  1489,  1493,  1498,  1500,  1502,  1504,  1506,
     708    1509,  1511,  1515,  1519,  1521,  1524,  1526,  1530,  1532,  1534,
     709    1536,  1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1555,
     710    1557,  1559,  1561,  1564,  1565,  1568,  1571,  1573,  1578,  1579,
     711    1581,  1584,  1588,  1593,  1596,  1599,  1601,  1604,  1607,  1613,
     712    1619,  1627,  1634,  1636,  1639,  1642,  1646,  1648,  1651,  1654,
     713    1659,  1662,  1667,  1668,  1673,  1676,  1678,  1680,  1682,  1683,
     714    1686,  1692,  1698,  1712,  1714,  1716,  1720,  1724,  1727,  1731,
     715    1735,  1738,  1743,  1745,  1752,  1762,  1763,  1775,  1777,  1781,
     716    1785,  1789,  1791,  1793,  1799,  1802,  1808,  1809,  1811,  1813,
     717    1817,  1818,  1820,  1822,  1824,  1826,  1827,  1834,  1837,  1839,
     718    1842,  1847,  1850,  1854,  1858,  1862,  1867,  1873,  1879,  1885,
     719    1892,  1894,  1896,  1898,  1902,  1903,  1909,  1910,  1912,  1914,
     720    1917,  1924,  1926,  1930,  1931,  1933,  1938,  1940,  1942,  1944,
     721    1946,  1949,  1951,  1954,  1957,  1959,  1963,  1966,  1970,  1974,
     722    1977,  1982,  1987,  1991,  2000,  2004,  2007,  2009,  2012,  2019,
     723    2028,  2032,  2035,  2039,  2043,  2048,  2053,  2057,  2059,  2061,
     724    2063,  2068,  2075,  2079,  2082,  2086,  2090,  2095,  2100,  2104,
     725    2107,  2109,  2112,  2115,  2117,  2121,  2124,  2128,  2132,  2135,
     726    2140,  2145,  2149,  2156,  2165,  2169,  2172,  2174,  2177,  2180,
     727    2183,  2187,  2191,  2194,  2199,  2204,  2208,  2215,  2224,  2228,
     728    2231,  2233,  2236,  2239,  2241,  2243,  2246,  2250,  2254,  2257,
     729    2262,  2269,  2278,  2280,  2283,  2286,  2288,  2291,  2294,  2298,
     730    2302,  2304,  2309,  2314,  2318,  2324,  2333,  2337,  2340,  2344,
     731    2346,  2352,  2358,  2365,  2372,  2374,  2377,  2380,  2382,  2385,
     732    2388,  2392,  2396,  2398,  2403,  2408,  2412,  2418,  2427,  2431,
     733    2433,  2436,  2438,  2441,  2448,  2454,  2461,  2469,  2477,  2479,
     734    2482,  2485,  2487,  2490,  2493,  2497,  2501,  2503,  2508,  2513,
     735    2517,  2526,  2530,  2532,  2534,  2537,  2539,  2541,  2544,  2548,
     736    2551,  2555,  2558,  2562,  2566,  2569,  2574,  2578,  2581,  2585,
     737    2588,  2593,  2597,  2600,  2607,  2614,  2621,  2629,  2631,  2634,
     738    2636,  2638,  2640,  2643,  2647,  2650,  2654,  2657,  2661,  2665,
     739    2670,  2673,  2677,  2682,  2685,  2691,  2697,  2704,  2711,  2712,
     740    2714,  2715
    782741};
    783742
     
    820779      -1,   162,   129,   170,   130,   168,    -1,   163,    -1,   163,
    821780      -1,   149,   167,   165,    -1,   168,   373,    -1,    -1,   165,
    822       -1,   131,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
    823       -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
    824       -1,   106,    -1,   111,   112,    -1,   111,   134,   165,   135,
    825      112,    -1,   111,   134,   116,   169,   135,   112,    -1,   111,
    826      134,   165,   116,   169,   135,   112,    -1,   166,    -1,   169,
    827      116,   166,    -1,   165,    -1,   170,   116,   165,    -1,    -1,
    828      170,    -1,   173,    -1,   174,    -1,   178,    -1,   179,    -1,
    829      191,    -1,   193,    -1,   194,    -1,   199,    -1,   127,   144,
    830      114,   145,   115,   132,    -1,    72,   130,   312,   172,    -1,
    831      114,   115,    -1,   114,   134,   134,   210,   175,   135,   115,
    832       -1,   176,    -1,   175,   134,   176,    -1,   213,    -1,    40,
    833      213,    -1,   308,    -1,   172,   135,    -1,   172,    -1,   177,
    834      172,    -1,   171,   132,    -1,    41,   109,   170,   110,   172,
    835       -1,    41,   109,   170,   110,   172,    42,   172,    -1,    43,
    836      109,   170,   110,   184,    -1,    43,   109,   170,   110,   114,
    837      134,   206,   185,   115,    -1,    53,   109,   170,   110,   184,
    838       -1,    53,   109,   170,   110,   114,   134,   206,   187,   115,
    839       -1,   164,    -1,   164,    96,   164,    -1,   310,    -1,   180,
    840       -1,   181,   116,   180,    -1,    44,   181,   130,    -1,    45,
    841      130,    -1,   182,    -1,   183,   182,    -1,   183,   172,    -1,
    842       -1,   186,    -1,   183,   177,    -1,   186,   183,   177,    -1,
    843       -1,   188,    -1,   183,   190,    -1,   183,   177,   189,    -1,
    844      188,   183,   190,    -1,   188,   183,   177,   189,    -1,    -1,
    845      190,    -1,    56,    -1,    56,   132,    -1,    47,   109,   170,
    846      110,   172,    -1,    46,   172,    47,   109,   170,   110,   132,
    847       -1,    48,   109,   134,   192,   110,   172,    -1,   171,   135,
    848      132,   171,   132,   171,    -1,   213,   171,   132,   171,    -1,
    849       51,    72,   132,    -1,    51,   117,   170,   132,    -1,    50,
    850      132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
    851       72,   132,    -1,    52,   171,   132,    -1,    61,   166,   132,
    852       -1,    62,   166,   132,    -1,    62,   166,    63,   165,   132,
    853       -1,    57,   174,   195,    -1,    57,   174,   197,    -1,    57,
    854      174,   195,   197,    -1,   196,    -1,    58,   109,    96,   110,
    855      174,    -1,   196,    58,   109,    96,   110,   174,    -1,    59,
    856      109,    96,   110,   174,    -1,   196,    59,   109,    96,   110,
    857      174,    -1,    58,   109,   134,   134,   198,   135,   110,   174,
    858      135,    -1,   196,    58,   109,   134,   134,   198,   135,   110,
    859      174,   135,    -1,    59,   109,   134,   134,   198,   135,   110,
    860      174,   135,    -1,   196,    59,   109,   134,   134,   198,   135,
    861      110,   174,   135,    -1,    60,   174,    -1,   226,    -1,   226,
    862      309,    -1,   226,   357,    -1,   366,   139,    -1,   366,    -1,
    863       64,   200,   109,   141,   110,   132,    -1,    64,   200,   109,
    864      141,   130,   201,   110,   132,    -1,    64,   200,   109,   141,
    865      130,   201,   130,   201,   110,   132,    -1,    64,   200,   109,
    866      141,   130,   201,   130,   201,   130,   204,   110,   132,    -1,
    867       64,   200,    51,   109,   141,   130,   130,   201,   130,   204,
    868      130,   205,   110,   132,    -1,    -1,    11,    -1,    -1,   202,
    869       -1,   203,    -1,   202,   116,   203,    -1,   141,   109,   164,
    870      110,    -1,   111,   164,   112,   141,   109,   164,   110,    -1,
    871       -1,   141,    -1,   204,   116,   141,    -1,   139,    -1,   205,
    872      116,   139,    -1,   135,    -1,   207,    -1,   213,    -1,   207,
    873      134,   213,    -1,   135,    -1,   209,    -1,   223,    -1,   209,
    874      134,   223,    -1,    -1,   211,    -1,    29,   212,   132,    -1,
    875      211,    29,   212,   132,    -1,   274,    -1,   212,   116,   274,
    876       -1,   214,    -1,   223,    -1,   215,   135,   132,    -1,   220,
    877      135,   132,    -1,   217,   135,   132,    -1,   293,   135,   132,
    878       -1,   296,   135,   132,    -1,   216,   277,    -1,   232,   216,
    879      277,    -1,   215,   135,   116,   134,   272,   277,    -1,   367,
    880      272,   311,    -1,   370,   272,   311,    -1,   228,   370,   272,
    881      311,    -1,   218,    -1,   228,   218,    -1,   232,   218,    -1,
    882      232,   228,   218,    -1,   217,   135,   116,   134,   272,    -1,
    883      111,   112,   272,   109,   134,   260,   135,   110,    -1,   370,
    884      272,   109,   134,   260,   135,   110,    -1,   219,   272,   109,
    885      134,   260,   135,   110,    -1,   111,   134,   262,   135,   112,
    886       -1,   111,   134,   262,   135,   116,   134,   263,   135,   112,
    887       -1,     3,   216,    -1,     3,   218,    -1,   220,   135,   116,
    888      134,   139,    -1,     3,   226,   309,    -1,   221,   135,   116,
    889      134,   309,    -1,   228,     3,   226,   309,    -1,   226,     3,
    890      309,    -1,   226,     3,   228,   309,    -1,     3,   139,   131,
    891      165,    -1,   222,   135,   116,   134,   139,   131,   165,    -1,
    892      224,   135,   132,    -1,   221,   135,   132,    -1,   222,   135,
    893      132,    -1,   240,   135,   132,    -1,   225,   309,   311,   277,
    894       -1,   224,   116,   312,   309,   311,   277,    -1,   236,    -1,
    895      240,    -1,   242,    -1,   283,    -1,   237,    -1,   241,    -1,
    896      243,    -1,   284,    -1,    -1,   228,    -1,   229,    -1,   228,
    897      229,    -1,   230,    -1,   314,    -1,    10,    -1,    12,    -1,
    898       11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   231,
    899      286,   110,    -1,   233,    -1,   228,   233,    -1,   232,   228,
    900      233,    -1,   234,    -1,   233,   234,    -1,     5,    -1,     7,
    901       -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
    902       -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
    903       -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
    904       -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   237,
    905       -1,   232,   237,    -1,   236,   234,    -1,   236,   234,   228,
    906       -1,   236,   234,   237,    -1,   238,    -1,   227,   239,   227,
    907       -1,   235,    -1,   228,   235,    -1,   238,   229,    -1,   238,
    908      235,    -1,    28,   109,   276,   110,    -1,    28,   109,   170,
    909      110,    -1,    78,   109,   276,   110,    -1,    78,   109,   170,
    910      110,    -1,   241,    -1,   232,   241,    -1,   240,   234,    -1,
    911      240,   234,   228,    -1,   244,    -1,   228,   244,    -1,   241,
    912      229,    -1,   243,    -1,   232,   243,    -1,   242,   234,    -1,
    913      242,   234,   228,    -1,    74,    -1,   228,    74,    -1,   243,
    914      229,    -1,   245,    -1,   256,    -1,   247,   114,   248,   115,
    915       -1,   247,   274,    -1,    -1,   247,   274,   246,   114,   248,
    916      115,    -1,   247,   109,   292,   110,   114,   248,   115,    -1,
    917      247,   285,    -1,    31,   312,    -1,    32,   312,    -1,    -1,
    918      248,   249,    -1,   250,   132,    -1,    40,   250,   132,    -1,
    919      251,   132,    -1,    40,   251,   132,    -1,   366,    -1,   366,
    920      274,    -1,   250,   116,   274,    -1,   250,   116,    -1,   226,
    921      252,    -1,   251,   116,   312,   252,    -1,    -1,   254,    -1,
    922      318,   253,    -1,   331,   253,    -1,   357,    -1,    -1,   254,
    923       -1,   130,   164,    -1,    30,   312,    -1,   255,   114,   258,
    924      372,   115,    -1,   255,   274,    -1,    -1,   255,   274,   257,
    925      114,   258,   372,   115,    -1,   274,   259,    -1,   258,   116,
    926      274,   259,    -1,    -1,   131,   164,    -1,    -1,   261,    -1,
    927      263,    -1,   262,    -1,   262,   135,   116,   134,   263,    -1,
    928      263,   135,   116,   134,    96,    -1,   262,   135,   116,   134,
    929       96,    -1,   267,    -1,   263,   135,   116,   134,   267,    -1,
    930      262,   135,   116,   134,   267,    -1,   262,   135,   116,   134,
    931      263,   135,   116,   134,   267,    -1,   268,    -1,   263,   135,
    932      116,   134,   268,    -1,    -1,   265,    -1,   266,    -1,   266,
    933      135,   116,   134,    96,    -1,   270,    -1,   269,    -1,   266,
    934      135,   116,   134,   270,    -1,   266,   135,   116,   134,   269,
    935       -1,   269,    -1,   362,   272,   373,    -1,   370,   272,   373,
    936       -1,   228,   370,   272,   373,    -1,   218,    -1,   270,    -1,
    937      362,    -1,   370,    -1,   228,   370,    -1,   371,    -1,   225,
    938      336,   373,    -1,   225,   340,   373,    -1,   225,    -1,   225,
    939      351,    -1,   139,    -1,   271,   116,   139,    -1,   137,    -1,
    940       74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
    941      139,    -1,    74,    -1,    75,    -1,   366,    -1,   226,    -1,
    942      226,   357,    -1,   366,    -1,   371,    -1,   226,    -1,   226,
    943      345,    -1,    -1,   131,   278,    -1,   107,   278,    -1,   165,
    944       -1,   114,   279,   372,   115,    -1,    -1,   278,    -1,   280,
    945      278,    -1,   279,   116,   278,    -1,   279,   116,   280,   278,
    946       -1,   281,   130,    -1,   274,   130,    -1,   282,    -1,   281,
    947      282,    -1,   113,   274,    -1,   111,   134,   165,   135,   112,
    948       -1,   111,   134,   310,   135,   112,    -1,   111,   134,   164,
    949       96,   164,   135,   112,    -1,   113,   111,   134,   147,   135,
    950      112,    -1,   284,    -1,   232,   284,    -1,   283,   234,    -1,
    951      283,   234,   228,    -1,   285,    -1,   228,   285,    -1,   284,
    952      229,    -1,    75,   109,   292,   110,    -1,   287,   373,    -1,
    953      286,   116,   287,   373,    -1,    -1,   289,   274,   288,   290,
    954       -1,   226,   336,    -1,    33,    -1,    35,    -1,    34,    -1,
    955       -1,   290,   291,    -1,   128,   274,   109,   292,   110,    -1,
    956      128,   114,   134,   298,   115,    -1,   128,   109,   134,   286,
    957      135,   110,   114,   134,   298,   115,   109,   292,   110,    -1,
    958      276,    -1,   165,    -1,   292,   116,   276,    -1,   292,   116,
    959      165,    -1,    33,   294,    -1,   233,    33,   294,    -1,   293,
    960      116,   294,    -1,   295,   290,    -1,   295,   290,   131,   276,
    961       -1,   274,    -1,   273,   109,   134,   286,   135,   110,    -1,
    962       36,   274,   109,   134,   286,   135,   110,   114,   115,    -1,
    963       -1,    36,   274,   109,   134,   286,   135,   110,   114,   297,
    964      298,   115,    -1,   299,    -1,   298,   134,   299,    -1,   300,
    965      135,   132,    -1,   301,   135,   132,    -1,   216,    -1,   218,
    966       -1,   300,   135,   116,   134,   272,    -1,   226,   309,    -1,
    967      301,   135,   116,   134,   309,    -1,    -1,   303,    -1,   305,
    968       -1,   303,   134,   305,    -1,    -1,   303,    -1,   213,    -1,
    969      307,    -1,   199,    -1,    -1,     5,    82,   306,   114,   304,
    970      115,    -1,    40,   305,    -1,   308,    -1,   323,   174,    -1,
    971      327,   134,   208,   174,    -1,   217,   174,    -1,   225,   323,
    972      174,    -1,   228,   323,   174,    -1,   232,   323,   174,    -1,
    973      232,   228,   323,   174,    -1,   225,   327,   134,   208,   174,
    974       -1,   228,   327,   134,   208,   174,    -1,   232,   327,   134,
    975      208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
    976      318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
    977       -1,    64,   109,   142,   110,   312,    -1,    -1,   313,    -1,
    978      314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
    979      110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
    980       -1,   317,   109,   171,   110,    -1,   272,    -1,   234,    -1,
    981      235,    -1,   229,    -1,   319,   312,    -1,   320,    -1,   321,
    982      312,    -1,   322,   312,    -1,   137,    -1,   109,   319,   110,
    983       -1,   150,   318,    -1,   150,   228,   318,    -1,   109,   320,
    984      110,    -1,   319,   349,    -1,   109,   320,   110,   349,    -1,
    985      109,   321,   110,   350,    -1,   109,   321,   110,    -1,   109,
    986      320,   110,   109,   134,   264,   135,   110,    -1,   109,   322,
    987      110,    -1,   324,   312,    -1,   325,    -1,   326,   312,    -1,
    988      319,   109,   134,   264,   135,   110,    -1,   109,   325,   110,
    989      109,   134,   264,   135,   110,    -1,   109,   324,   110,    -1,
    990      150,   323,    -1,   150,   228,   323,    -1,   109,   325,   110,
    991       -1,   109,   325,   110,   349,    -1,   109,   326,   110,   350,
    992       -1,   109,   326,   110,    -1,   328,    -1,   329,    -1,   330,
    993       -1,   319,   109,   271,   110,    -1,   109,   329,   110,   109,
    994      271,   110,    -1,   109,   328,   110,    -1,   150,   327,    -1,
    995      150,   228,   327,    -1,   109,   329,   110,    -1,   109,   329,
    996      110,   349,    -1,   109,   330,   110,   350,    -1,   109,   330,
    997      110,    -1,   332,   312,    -1,   333,    -1,   334,   312,    -1,
    998      335,   312,    -1,   341,    -1,   109,   332,   110,    -1,   150,
    999      331,    -1,   150,   228,   331,    -1,   109,   333,   110,    -1,
    1000      332,   349,    -1,   109,   333,   110,   349,    -1,   109,   334,
    1001      110,   350,    -1,   109,   334,   110,    -1,   332,   109,   134,
    1002      264,   135,   110,    -1,   109,   333,   110,   109,   134,   264,
    1003      135,   110,    -1,   109,   335,   110,    -1,   319,   312,    -1,
    1004      337,    -1,   338,   312,    -1,   339,   312,    -1,   150,   336,
    1005       -1,   150,   228,   336,    -1,   109,   337,   110,    -1,   319,
    1006      355,    -1,   109,   337,   110,   349,    -1,   109,   338,   110,
    1007      350,    -1,   109,   338,   110,    -1,   319,   109,   134,   264,
    1008      135,   110,    -1,   109,   337,   110,   109,   134,   264,   135,
    1009      110,    -1,   109,   339,   110,    -1,   341,   312,    -1,   342,
    1010       -1,   343,   312,    -1,   344,   312,    -1,    74,    -1,    75,
    1011       -1,   150,   340,    -1,   150,   228,   340,    -1,   109,   342,
    1012      110,    -1,   341,   355,    -1,   109,   342,   110,   355,    -1,
    1013      341,   109,   134,   264,   135,   110,    -1,   109,   342,   110,
    1014      109,   134,   264,   135,   110,    -1,   346,    -1,   347,   312,
    1015       -1,   348,   312,    -1,   150,    -1,   150,   228,    -1,   150,
    1016      345,    -1,   150,   228,   345,    -1,   109,   346,   110,    -1,
    1017      349,    -1,   109,   346,   110,   349,    -1,   109,   347,   110,
    1018      350,    -1,   109,   347,   110,    -1,   109,   134,   264,   135,
    1019      110,    -1,   109,   346,   110,   109,   134,   264,   135,   110,
    1020       -1,   109,   348,   110,    -1,   111,   112,    -1,   111,   112,
    1021      350,    -1,   350,    -1,   111,   134,   165,   135,   112,    -1,
    1022      111,   134,   117,   135,   112,    -1,   350,   111,   134,   165,
    1023      135,   112,    -1,   350,   111,   134,   117,   135,   112,    -1,
    1024      352,    -1,   353,   312,    -1,   354,   312,    -1,   150,    -1,
    1025      150,   228,    -1,   150,   351,    -1,   150,   228,   351,    -1,
    1026      109,   352,   110,    -1,   355,    -1,   109,   352,   110,   355,
    1027       -1,   109,   353,   110,   350,    -1,   109,   353,   110,    -1,
    1028      109,   134,   264,   135,   110,    -1,   109,   352,   110,   109,
    1029      134,   264,   135,   110,    -1,   109,   354,   110,    -1,   356,
    1030       -1,   356,   350,    -1,   350,    -1,   111,   112,    -1,   111,
    1031      134,   228,   117,   135,   112,    -1,   111,   134,   228,   135,
    1032      112,    -1,   111,   134,   228,   165,   135,   112,    -1,   111,
    1033      134,     7,   227,   165,   135,   112,    -1,   111,   134,   228,
    1034        7,   165,   135,   112,    -1,   358,    -1,   359,   312,    -1,
    1035      360,   312,    -1,   150,    -1,   150,   228,    -1,   150,   357,
    1036       -1,   150,   228,   357,    -1,   109,   358,   110,    -1,   349,
    1037       -1,   109,   358,   110,   349,    -1,   109,   359,   110,   350,
    1038       -1,   109,   359,   110,    -1,   109,   358,   110,   109,   134,
    1039      264,   135,   110,    -1,   109,   360,   110,    -1,   362,    -1,
    1040      370,    -1,   228,   370,    -1,   363,    -1,   364,    -1,   150,
    1041      226,    -1,   228,   150,   226,    -1,   150,   371,    -1,   228,
    1042      150,   371,    -1,   150,   361,    -1,   228,   150,   361,    -1,
    1043      111,   112,   226,    -1,   365,   226,    -1,   111,   112,   350,
    1044      226,    -1,   365,   350,   226,    -1,   350,   226,    -1,   111,
    1045      112,   363,    -1,   365,   363,    -1,   111,   112,   350,   363,
    1046       -1,   365,   350,   363,    -1,   350,   363,    -1,   111,   134,
    1047      228,   117,   135,   112,    -1,   111,   134,   228,   165,   135,
    1048      112,    -1,   111,   134,   232,   165,   135,   112,    -1,   111,
    1049      134,   232,   228,   165,   135,   112,    -1,   370,    -1,   228,
    1050      370,    -1,   367,    -1,   368,    -1,   369,    -1,   150,   226,
    1051       -1,   228,   150,   226,    -1,   150,   371,    -1,   228,   150,
    1052      371,    -1,   150,   366,    -1,   228,   150,   366,    -1,   111,
    1053      112,   226,    -1,   111,   112,   350,   226,    -1,   350,   226,
    1054       -1,   111,   112,   368,    -1,   111,   112,   350,   368,    -1,
    1055      350,   368,    -1,   111,   134,   263,   135,   112,    -1,   111,
    1056      112,   109,   260,   110,    -1,   370,   109,   134,   260,   135,
    1057      110,    -1,   219,   109,   134,   260,   135,   110,    -1,    -1,
    1058      116,    -1,    -1,   131,   165,    -1
     781      -1,   131,    -1,   107,    -1,    97,    -1,    98,    -1,    99,
     782      -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,
     783      -1,   105,    -1,   106,    -1,   111,   112,    -1,   111,   134,
     784     165,   135,   112,    -1,   111,   134,   116,   169,   135,   112,
     785      -1,   111,   134,   165,   116,   169,   135,   112,    -1,   166,
     786      -1,   169,   116,   166,    -1,   165,    -1,   170,   116,   165,
     787      -1,    -1,   170,    -1,   173,    -1,   174,    -1,   178,    -1,
     788     179,    -1,   191,    -1,   193,    -1,   194,    -1,   199,    -1,
     789     127,   144,   114,   145,   115,   132,    -1,    72,   130,   312,
     790     172,    -1,   114,   115,    -1,   114,   134,   134,   210,   175,
     791     135,   115,    -1,   176,    -1,   175,   134,   176,    -1,   213,
     792      -1,    40,   213,    -1,   308,    -1,   172,   135,    -1,   172,
     793      -1,   177,   172,    -1,   171,   132,    -1,    41,   109,   170,
     794     110,   172,    -1,    41,   109,   170,   110,   172,    42,   172,
     795      -1,    43,   109,   170,   110,   184,    -1,    43,   109,   170,
     796     110,   114,   134,   206,   185,   115,    -1,    53,   109,   170,
     797     110,   184,    -1,    53,   109,   170,   110,   114,   134,   206,
     798     187,   115,    -1,   164,    -1,   164,    96,   164,    -1,   310,
     799      -1,   180,    -1,   181,   116,   180,    -1,    44,   181,   130,
     800      -1,    45,   130,    -1,   182,    -1,   183,   182,    -1,   183,
     801     172,    -1,    -1,   186,    -1,   183,   177,    -1,   186,   183,
     802     177,    -1,    -1,   188,    -1,   183,   190,    -1,   183,   177,
     803     189,    -1,   188,   183,   190,    -1,   188,   183,   177,   189,
     804      -1,    -1,   190,    -1,    56,    -1,    56,   132,    -1,    47,
     805     109,   170,   110,   172,    -1,    46,   172,    47,   109,   170,
     806     110,   132,    -1,    48,   109,   134,   192,   110,   172,    -1,
     807     171,   135,   132,   171,   132,   171,    -1,   213,   171,   132,
     808     171,    -1,    51,    72,   132,    -1,    51,   117,   170,   132,
     809      -1,    50,   132,    -1,    50,    72,   132,    -1,    49,   132,
     810      -1,    49,    72,   132,    -1,    52,   171,   132,    -1,    61,
     811     166,   132,    -1,    62,   166,   132,    -1,    62,   166,    63,
     812     165,   132,    -1,    57,   174,   195,    -1,    57,   174,   197,
     813      -1,    57,   174,   195,   197,    -1,   196,    -1,    58,   109,
     814      96,   110,   174,    -1,   196,    58,   109,    96,   110,   174,
     815      -1,    59,   109,    96,   110,   174,    -1,   196,    59,   109,
     816      96,   110,   174,    -1,    58,   109,   134,   134,   198,   135,
     817     110,   174,   135,    -1,   196,    58,   109,   134,   134,   198,
     818     135,   110,   174,   135,    -1,    59,   109,   134,   134,   198,
     819     135,   110,   174,   135,    -1,   196,    59,   109,   134,   134,
     820     198,   135,   110,   174,   135,    -1,    60,   174,    -1,   226,
     821      -1,   226,   309,    -1,   226,   357,    -1,   366,   139,    -1,
     822     366,    -1,    64,   200,   109,   141,   110,   132,    -1,    64,
     823     200,   109,   141,   130,   201,   110,   132,    -1,    64,   200,
     824     109,   141,   130,   201,   130,   201,   110,   132,    -1,    64,
     825     200,   109,   141,   130,   201,   130,   201,   130,   204,   110,
     826     132,    -1,    64,   200,    51,   109,   141,   130,   130,   201,
     827     130,   204,   130,   205,   110,   132,    -1,    -1,    11,    -1,
     828      -1,   202,    -1,   203,    -1,   202,   116,   203,    -1,   141,
     829     109,   164,   110,    -1,   111,   164,   112,   141,   109,   164,
     830     110,    -1,    -1,   141,    -1,   204,   116,   141,    -1,   139,
     831      -1,   205,   116,   139,    -1,   135,    -1,   207,    -1,   213,
     832      -1,   207,   134,   213,    -1,   135,    -1,   209,    -1,   223,
     833      -1,   209,   134,   223,    -1,    -1,   211,    -1,    29,   212,
     834     132,    -1,   211,    29,   212,   132,    -1,   274,    -1,   212,
     835     116,   274,    -1,   214,    -1,   223,    -1,   215,   135,   132,
     836      -1,   220,   135,   132,    -1,   217,   135,   132,    -1,   293,
     837     135,   132,    -1,   296,   135,   132,    -1,   216,   277,    -1,
     838     232,   216,   277,    -1,   215,   135,   116,   134,   272,   277,
     839      -1,   367,   272,   311,    -1,   370,   272,   311,    -1,   228,
     840     370,   272,   311,    -1,   218,    -1,   228,   218,    -1,   232,
     841     218,    -1,   232,   228,   218,    -1,   217,   135,   116,   134,
     842     272,    -1,   111,   112,   272,   109,   134,   260,   135,   110,
     843      -1,   370,   272,   109,   134,   260,   135,   110,    -1,   219,
     844     272,   109,   134,   260,   135,   110,    -1,   111,   134,   262,
     845     135,   112,    -1,   111,   134,   262,   135,   116,   134,   263,
     846     135,   112,    -1,     3,   216,    -1,     3,   218,    -1,   220,
     847     135,   116,   134,   139,    -1,     3,   226,   309,    -1,   221,
     848     135,   116,   134,   309,    -1,   228,     3,   226,   309,    -1,
     849     226,     3,   309,    -1,   226,     3,   228,   309,    -1,     3,
     850     139,   131,   165,    -1,   222,   135,   116,   134,   139,   131,
     851     165,    -1,   224,   135,   132,    -1,   221,   135,   132,    -1,
     852     222,   135,   132,    -1,   240,   135,   132,    -1,   225,   309,
     853     311,   277,    -1,   224,   116,   312,   309,   311,   277,    -1,
     854     236,    -1,   240,    -1,   242,    -1,   283,    -1,   237,    -1,
     855     241,    -1,   243,    -1,   284,    -1,    -1,   228,    -1,   229,
     856      -1,   228,   229,    -1,   230,    -1,   314,    -1,    10,    -1,
     857      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
     858     109,   231,   286,   110,    -1,   233,    -1,   228,   233,    -1,
     859     232,   228,   233,    -1,   234,    -1,   233,   234,    -1,     5,
     860      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     861      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     862      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     863      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     864      -1,   237,    -1,   232,   237,    -1,   236,   234,    -1,   236,
     865     234,   228,    -1,   236,   234,   237,    -1,   238,    -1,   227,
     866     239,   227,    -1,   235,    -1,   228,   235,    -1,   238,   229,
     867      -1,   238,   235,    -1,    28,   109,   276,   110,    -1,    28,
     868     109,   170,   110,    -1,    78,   109,   276,   110,    -1,    78,
     869     109,   170,   110,    -1,   241,    -1,   232,   241,    -1,   240,
     870     234,    -1,   240,   234,   228,    -1,   244,    -1,   228,   244,
     871      -1,   241,   229,    -1,   243,    -1,   232,   243,    -1,   242,
     872     234,    -1,   242,   234,   228,    -1,    74,    -1,   228,    74,
     873      -1,   243,   229,    -1,   245,    -1,   256,    -1,   247,   114,
     874     248,   115,    -1,   247,   274,    -1,    -1,   247,   274,   246,
     875     114,   248,   115,    -1,   247,   109,   292,   110,   114,   248,
     876     115,    -1,   247,   285,    -1,    31,   312,    -1,    32,   312,
     877      -1,    -1,   248,   249,    -1,   250,   132,    -1,    40,   250,
     878     132,    -1,   251,   132,    -1,    40,   251,   132,    -1,   366,
     879      -1,   366,   274,    -1,   250,   116,   274,    -1,   250,   116,
     880      -1,   226,   252,    -1,   251,   116,   312,   252,    -1,    -1,
     881     254,    -1,   318,   253,    -1,   331,   253,    -1,   357,    -1,
     882      -1,   254,    -1,   130,   164,    -1,    30,   312,    -1,   255,
     883     114,   258,   372,   115,    -1,   255,   274,    -1,    -1,   255,
     884     274,   257,   114,   258,   372,   115,    -1,   274,   259,    -1,
     885     258,   116,   274,   259,    -1,    -1,   131,   164,    -1,    -1,
     886     261,    -1,   263,    -1,   262,    -1,   262,   135,   116,   134,
     887     263,    -1,   263,   135,   116,   134,    96,    -1,   262,   135,
     888     116,   134,    96,    -1,   267,    -1,   263,   135,   116,   134,
     889     267,    -1,   262,   135,   116,   134,   267,    -1,   262,   135,
     890     116,   134,   263,   135,   116,   134,   267,    -1,   268,    -1,
     891     263,   135,   116,   134,   268,    -1,    -1,   265,    -1,   266,
     892      -1,   266,   135,   116,   134,    96,    -1,   270,    -1,   269,
     893      -1,   266,   135,   116,   134,   270,    -1,   266,   135,   116,
     894     134,   269,    -1,   269,    -1,   362,   272,   373,    -1,   370,
     895     272,   373,    -1,   228,   370,   272,   373,    -1,   218,    -1,
     896     270,    -1,   362,    -1,   370,    -1,   228,   370,    -1,   371,
     897      -1,   225,   336,   373,    -1,   225,   340,   373,    -1,   225,
     898      -1,   225,   351,    -1,   139,    -1,   271,   116,   139,    -1,
     899     137,    -1,    74,    -1,    75,    -1,   138,    -1,    74,    -1,
     900      75,    -1,   139,    -1,    74,    -1,    75,    -1,   366,    -1,
     901     226,    -1,   226,   357,    -1,   366,    -1,   371,    -1,   226,
     902      -1,   226,   345,    -1,    -1,   131,   278,    -1,   107,   278,
     903      -1,   165,    -1,   114,   279,   372,   115,    -1,    -1,   278,
     904      -1,   280,   278,    -1,   279,   116,   278,    -1,   279,   116,
     905     280,   278,    -1,   281,   130,    -1,   274,   130,    -1,   282,
     906      -1,   281,   282,    -1,   113,   274,    -1,   111,   134,   165,
     907     135,   112,    -1,   111,   134,   310,   135,   112,    -1,   111,
     908     134,   164,    96,   164,   135,   112,    -1,   113,   111,   134,
     909     147,   135,   112,    -1,   284,    -1,   232,   284,    -1,   283,
     910     234,    -1,   283,   234,   228,    -1,   285,    -1,   228,   285,
     911      -1,   284,   229,    -1,    75,   109,   292,   110,    -1,   287,
     912     373,    -1,   286,   116,   287,   373,    -1,    -1,   289,   274,
     913     288,   290,    -1,   226,   336,    -1,    33,    -1,    35,    -1,
     914      34,    -1,    -1,   290,   291,    -1,   128,   274,   109,   292,
     915     110,    -1,   128,   114,   134,   298,   115,    -1,   128,   109,
     916     134,   286,   135,   110,   114,   134,   298,   115,   109,   292,
     917     110,    -1,   276,    -1,   165,    -1,   292,   116,   276,    -1,
     918     292,   116,   165,    -1,    33,   294,    -1,   233,    33,   294,
     919      -1,   293,   116,   294,    -1,   295,   290,    -1,   295,   290,
     920     131,   276,    -1,   274,    -1,   273,   109,   134,   286,   135,
     921     110,    -1,    36,   274,   109,   134,   286,   135,   110,   114,
     922     115,    -1,    -1,    36,   274,   109,   134,   286,   135,   110,
     923     114,   297,   298,   115,    -1,   299,    -1,   298,   134,   299,
     924      -1,   300,   135,   132,    -1,   301,   135,   132,    -1,   216,
     925      -1,   218,    -1,   300,   135,   116,   134,   272,    -1,   226,
     926     309,    -1,   301,   135,   116,   134,   309,    -1,    -1,   303,
     927      -1,   305,    -1,   303,   134,   305,    -1,    -1,   303,    -1,
     928     213,    -1,   307,    -1,   199,    -1,    -1,     5,    82,   306,
     929     114,   304,   115,    -1,    40,   305,    -1,   308,    -1,   323,
     930     174,    -1,   327,   134,   208,   174,    -1,   217,   174,    -1,
     931     225,   323,   174,    -1,   228,   323,   174,    -1,   232,   323,
     932     174,    -1,   232,   228,   323,   174,    -1,   225,   327,   134,
     933     208,   174,    -1,   228,   327,   134,   208,   174,    -1,   232,
     934     327,   134,   208,   174,    -1,   232,   228,   327,   134,   208,
     935     174,    -1,   318,    -1,   331,    -1,   323,    -1,   164,   122,
     936     164,    -1,    -1,    64,   109,   142,   110,   312,    -1,    -1,
     937     313,    -1,   314,    -1,   313,   314,    -1,    39,   109,   109,
     938     315,   110,   110,    -1,   316,    -1,   315,   116,   316,    -1,
     939      -1,   317,    -1,   317,   109,   171,   110,    -1,   272,    -1,
     940     234,    -1,   235,    -1,   229,    -1,   319,   312,    -1,   320,
     941      -1,   321,   312,    -1,   322,   312,    -1,   137,    -1,   109,
     942     319,   110,    -1,   150,   318,    -1,   150,   228,   318,    -1,
     943     109,   320,   110,    -1,   319,   349,    -1,   109,   320,   110,
     944     349,    -1,   109,   321,   110,   350,    -1,   109,   321,   110,
     945      -1,   109,   320,   110,   109,   134,   264,   135,   110,    -1,
     946     109,   322,   110,    -1,   324,   312,    -1,   325,    -1,   326,
     947     312,    -1,   319,   109,   134,   264,   135,   110,    -1,   109,
     948     325,   110,   109,   134,   264,   135,   110,    -1,   109,   324,
     949     110,    -1,   150,   323,    -1,   150,   228,   323,    -1,   109,
     950     325,   110,    -1,   109,   325,   110,   349,    -1,   109,   326,
     951     110,   350,    -1,   109,   326,   110,    -1,   328,    -1,   329,
     952      -1,   330,    -1,   319,   109,   271,   110,    -1,   109,   329,
     953     110,   109,   271,   110,    -1,   109,   328,   110,    -1,   150,
     954     327,    -1,   150,   228,   327,    -1,   109,   329,   110,    -1,
     955     109,   329,   110,   349,    -1,   109,   330,   110,   350,    -1,
     956     109,   330,   110,    -1,   332,   312,    -1,   333,    -1,   334,
     957     312,    -1,   335,   312,    -1,   341,    -1,   109,   332,   110,
     958      -1,   150,   331,    -1,   150,   228,   331,    -1,   109,   333,
     959     110,    -1,   332,   349,    -1,   109,   333,   110,   349,    -1,
     960     109,   334,   110,   350,    -1,   109,   334,   110,    -1,   332,
     961     109,   134,   264,   135,   110,    -1,   109,   333,   110,   109,
     962     134,   264,   135,   110,    -1,   109,   335,   110,    -1,   319,
     963     312,    -1,   337,    -1,   338,   312,    -1,   339,   312,    -1,
     964     150,   336,    -1,   150,   228,   336,    -1,   109,   337,   110,
     965      -1,   319,   355,    -1,   109,   337,   110,   349,    -1,   109,
     966     338,   110,   350,    -1,   109,   338,   110,    -1,   319,   109,
     967     134,   264,   135,   110,    -1,   109,   337,   110,   109,   134,
     968     264,   135,   110,    -1,   109,   339,   110,    -1,   341,   312,
     969      -1,   342,    -1,   343,   312,    -1,   344,   312,    -1,    74,
     970      -1,    75,    -1,   150,   340,    -1,   150,   228,   340,    -1,
     971     109,   342,   110,    -1,   341,   355,    -1,   109,   342,   110,
     972     355,    -1,   341,   109,   134,   264,   135,   110,    -1,   109,
     973     342,   110,   109,   134,   264,   135,   110,    -1,   346,    -1,
     974     347,   312,    -1,   348,   312,    -1,   150,    -1,   150,   228,
     975      -1,   150,   345,    -1,   150,   228,   345,    -1,   109,   346,
     976     110,    -1,   349,    -1,   109,   346,   110,   349,    -1,   109,
     977     347,   110,   350,    -1,   109,   347,   110,    -1,   109,   134,
     978     264,   135,   110,    -1,   109,   346,   110,   109,   134,   264,
     979     135,   110,    -1,   109,   348,   110,    -1,   111,   112,    -1,
     980     111,   112,   350,    -1,   350,    -1,   111,   134,   165,   135,
     981     112,    -1,   111,   134,   117,   135,   112,    -1,   350,   111,
     982     134,   165,   135,   112,    -1,   350,   111,   134,   117,   135,
     983     112,    -1,   352,    -1,   353,   312,    -1,   354,   312,    -1,
     984     150,    -1,   150,   228,    -1,   150,   351,    -1,   150,   228,
     985     351,    -1,   109,   352,   110,    -1,   355,    -1,   109,   352,
     986     110,   355,    -1,   109,   353,   110,   350,    -1,   109,   353,
     987     110,    -1,   109,   134,   264,   135,   110,    -1,   109,   352,
     988     110,   109,   134,   264,   135,   110,    -1,   109,   354,   110,
     989      -1,   356,    -1,   356,   350,    -1,   350,    -1,   111,   112,
     990      -1,   111,   134,   228,   117,   135,   112,    -1,   111,   134,
     991     228,   135,   112,    -1,   111,   134,   228,   165,   135,   112,
     992      -1,   111,   134,     7,   227,   165,   135,   112,    -1,   111,
     993     134,   228,     7,   165,   135,   112,    -1,   358,    -1,   359,
     994     312,    -1,   360,   312,    -1,   150,    -1,   150,   228,    -1,
     995     150,   357,    -1,   150,   228,   357,    -1,   109,   358,   110,
     996      -1,   349,    -1,   109,   358,   110,   349,    -1,   109,   359,
     997     110,   350,    -1,   109,   359,   110,    -1,   109,   358,   110,
     998     109,   134,   264,   135,   110,    -1,   109,   360,   110,    -1,
     999     362,    -1,   370,    -1,   228,   370,    -1,   363,    -1,   364,
     1000      -1,   150,   226,    -1,   228,   150,   226,    -1,   150,   371,
     1001      -1,   228,   150,   371,    -1,   150,   361,    -1,   228,   150,
     1002     361,    -1,   111,   112,   226,    -1,   365,   226,    -1,   111,
     1003     112,   350,   226,    -1,   365,   350,   226,    -1,   350,   226,
     1004      -1,   111,   112,   363,    -1,   365,   363,    -1,   111,   112,
     1005     350,   363,    -1,   365,   350,   363,    -1,   350,   363,    -1,
     1006     111,   134,   228,   117,   135,   112,    -1,   111,   134,   228,
     1007     165,   135,   112,    -1,   111,   134,   232,   165,   135,   112,
     1008      -1,   111,   134,   232,   228,   165,   135,   112,    -1,   370,
     1009      -1,   228,   370,    -1,   367,    -1,   368,    -1,   369,    -1,
     1010     150,   226,    -1,   228,   150,   226,    -1,   150,   371,    -1,
     1011     228,   150,   371,    -1,   150,   366,    -1,   228,   150,   366,
     1012      -1,   111,   112,   226,    -1,   111,   112,   350,   226,    -1,
     1013     350,   226,    -1,   111,   112,   368,    -1,   111,   112,   350,
     1014     368,    -1,   350,   368,    -1,   111,   134,   263,   135,   112,
     1015      -1,   111,   112,   109,   260,   110,    -1,   370,   109,   134,
     1016     260,   135,   110,    -1,   219,   109,   134,   260,   135,   110,
     1017      -1,    -1,   116,    -1,    -1,   131,   165,    -1
    10591018};
    10601019
     
    10621021static const yytype_uint16 yyrline[] =
    10631022{
    1064        0,   341,   341,   345,   352,   353,   354,   358,   359,   360,
    1065      364,   365,   369,   370,   374,   375,   379,   383,   384,   395,
    1066      397,   399,   401,   406,   407,   413,   417,   419,   420,   422,
    1067      423,   425,   427,   429,   438,   439,   445,   446,   450,   451,
    1068      455,   459,   461,   463,   465,   470,   473,   475,   477,   482,
    1069      495,   497,   499,   501,   503,   505,   507,   509,   511,   513,
    1070      515,   522,   523,   529,   530,   531,   532,   536,   537,   539,
    1071      544,   545,   547,   549,   554,   555,   557,   562,   563,   565,
    1072      570,   571,   573,   575,   577,   582,   583,   585,   590,   591,
    1073      596,   597,   602,   603,   608,   609,   614,   615,   620,   621,
    1074      624,   626,   631,   636,   637,   639,   645,   646,   650,   651,
    1075      652,   653,   654,   655,   656,   657,   658,   659,   660,   666,
    1076      668,   670,   672,   677,   678,   683,   684,   690,   691,   697,
    1077      698,   699,   700,   701,   702,   703,   704,   705,   715,   722,
    1078      724,   734,   735,   740,   742,   748,   750,   754,   755,   760,
    1079      765,   768,   770,   772,   782,   784,   795,   796,   798,   802,
    1080      804,   808,   809,   814,   815,   819,   824,   825,   829,   831,
    1081      837,   838,   842,   844,   846,   848,   854,   855,   859,   861,
    1082      866,   868,   870,   875,   877,   882,   884,   888,   891,   895,
    1083      898,   902,   904,   906,   908,   913,   915,   917,   922,   924,
    1084      926,   928,   930,   935,   937,   939,   941,   946,   958,   959,
    1085      964,   966,   971,   975,   977,   979,   981,   983,   989,   990,
    1086      996,   997,  1001,  1002,  1007,  1009,  1015,  1016,  1018,  1023,
    1087     1028,  1038,  1040,  1044,  1045,  1050,  1052,  1056,  1057,  1061,
    1088     1063,  1067,  1068,  1072,  1073,  1077,  1078,  1093,  1094,  1095,
    1089     1096,  1097,  1101,  1106,  1113,  1123,  1128,  1133,  1141,  1146,
    1090     1151,  1156,  1161,  1169,  1191,  1196,  1203,  1205,  1212,  1217,
    1091     1222,  1233,  1238,  1243,  1248,  1253,  1262,  1267,  1275,  1276,
    1092     1277,  1278,  1284,  1289,  1297,  1298,  1299,  1300,  1304,  1305,
    1093     1306,  1307,  1312,  1313,  1322,  1323,  1328,  1329,  1334,  1336,
    1094     1338,  1340,  1342,  1345,  1344,  1356,  1357,  1359,  1369,  1370,
    1095     1375,  1377,  1379,  1381,  1383,  1385,  1387,  1389,  1394,  1396,
    1096     1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,
    1097     1418,  1424,  1425,  1427,  1429,  1431,  1436,  1437,  1443,  1444,
    1098     1446,  1448,  1453,  1455,  1457,  1459,  1464,  1465,  1467,  1469,
    1099     1474,  1475,  1477,  1482,  1483,  1485,  1487,  1492,  1494,  1496,
    1100     1501,  1502,  1506,  1508,  1514,  1513,  1517,  1519,  1524,  1526,
    1101     1532,  1533,  1538,  1539,  1541,  1542,  1551,  1552,  1554,  1556,
    1102     1561,  1563,  1569,  1570,  1572,  1575,  1578,  1583,  1584,  1589,
    1103     1594,  1598,  1600,  1606,  1605,  1612,  1614,  1620,  1621,  1629,
    1104     1630,  1634,  1635,  1636,  1638,  1640,  1647,  1648,  1650,  1652,
    1105     1657,  1658,  1664,  1665,  1669,  1670,  1675,  1676,  1677,  1679,
    1106     1687,  1688,  1690,  1693,  1695,  1699,  1700,  1701,  1703,  1705,
    1107     1709,  1714,  1722,  1723,  1732,  1734,  1739,  1740,  1741,  1745,
    1108     1746,  1747,  1751,  1752,  1753,  1757,  1758,  1759,  1764,  1765,
    1109     1766,  1767,  1773,  1774,  1776,  1781,  1782,  1787,  1788,  1789,
    1110     1790,  1791,  1806,  1807,  1812,  1813,  1819,  1821,  1824,  1826,
    1111     1828,  1851,  1852,  1854,  1856,  1861,  1862,  1864,  1869,  1874,
    1112     1875,  1881,  1880,  1884,  1888,  1890,  1892,  1898,  1899,  1904,
    1113     1909,  1911,  1916,  1918,  1919,  1921,  1926,  1928,  1930,  1935,
    1114     1937,  1942,  1947,  1955,  1961,  1960,  1974,  1975,  1980,  1981,
    1115     1985,  1990,  1995,  2003,  2008,  2019,  2020,  2025,  2026,  2032,
    1116     2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
    1117     2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
    1118     2144,  2145,  2149,  2153,  2155,  2161,  2162,  2166,  2167,  2172,
    1119     2178,  2179,  2182,  2184,  2185,  2190,  2191,  2192,  2193,  2227,
    1120     2229,  2230,  2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,
    1121     2260,  2262,  2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,
    1122     2295,  2297,  2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,
    1123     2325,  2327,  2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,
    1124     2363,  2365,  2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,
    1125     2391,  2396,  2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,
    1126     2424,  2429,  2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,
    1127     2478,  2480,  2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,
    1128     2516,  2530,  2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,
    1129     2552,  2554,  2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,
    1130     2581,  2583,  2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,
    1131     2615,  2620,  2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,
    1132     2643,  2652,  2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,
    1133     2685,  2687,  2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,
    1134     2710,  2718,  2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,
    1135     2738,  2740,  2747,  2749,  2751,  2753,  2755,  2757,  2759,  2761,
    1136     2763,  2765,  2770,  2772,  2774,  2779,  2805,  2806,  2808,  2812,
    1137     2813,  2817,  2819,  2821,  2823,  2825,  2827,  2834,  2836,  2838,
    1138     2840,  2842,  2844,  2849,  2854,  2856,  2858,  2876,  2878,  2883,
    1139     2884
     1023       0,   300,   300,   304,   311,   312,   313,   317,   318,   319,
     1024     323,   324,   328,   329,   333,   334,   338,   342,   343,   354,
     1025     356,   358,   360,   365,   366,   372,   376,   378,   379,   381,
     1026     382,   384,   386,   388,   397,   398,   404,   405,   409,   410,
     1027     414,   418,   420,   422,   424,   429,   432,   434,   436,   441,
     1028     454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
     1029     474,   481,   482,   488,   489,   490,   491,   495,   496,   498,
     1030     503,   504,   506,   508,   513,   514,   516,   521,   522,   524,
     1031     529,   530,   532,   534,   536,   541,   542,   544,   549,   550,
     1032     555,   556,   561,   562,   567,   568,   573,   574,   579,   580,
     1033     583,   585,   590,   595,   596,   598,   604,   605,   609,   610,
     1034     611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
     1035     626,   628,   630,   632,   637,   638,   643,   644,   650,   651,
     1036     657,   658,   659,   660,   661,   662,   663,   664,   665,   675,
     1037     682,   684,   694,   695,   700,   702,   708,   710,   714,   715,
     1038     720,   725,   728,   730,   732,   742,   744,   755,   756,   758,
     1039     762,   764,   768,   769,   774,   775,   779,   784,   785,   789,
     1040     791,   797,   798,   802,   804,   806,   808,   814,   815,   819,
     1041     821,   826,   828,   830,   835,   837,   842,   844,   848,   851,
     1042     855,   858,   862,   864,   866,   868,   873,   875,   877,   882,
     1043     884,   886,   888,   890,   895,   897,   899,   901,   906,   918,
     1044     919,   924,   926,   931,   935,   937,   939,   941,   943,   949,
     1045     950,   956,   957,   961,   962,   967,   969,   975,   976,   978,
     1046     983,   988,   998,  1000,  1004,  1005,  1010,  1012,  1016,  1017,
     1047    1021,  1023,  1027,  1028,  1032,  1033,  1037,  1038,  1053,  1054,
     1048    1055,  1056,  1057,  1061,  1066,  1073,  1083,  1088,  1093,  1101,
     1049    1106,  1111,  1116,  1121,  1129,  1151,  1156,  1163,  1165,  1172,
     1050    1177,  1182,  1193,  1198,  1203,  1208,  1213,  1222,  1227,  1235,
     1051    1236,  1237,  1238,  1244,  1249,  1257,  1258,  1259,  1260,  1264,
     1052    1265,  1266,  1267,  1272,  1273,  1282,  1283,  1288,  1289,  1294,
     1053    1296,  1298,  1300,  1302,  1305,  1304,  1316,  1317,  1319,  1329,
     1054    1330,  1335,  1337,  1339,  1341,  1343,  1346,  1348,  1351,  1356,
     1055    1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,
     1056    1378,  1380,  1386,  1387,  1389,  1391,  1393,  1398,  1399,  1405,
     1057    1406,  1408,  1410,  1415,  1417,  1419,  1421,  1426,  1427,  1429,
     1058    1431,  1436,  1437,  1439,  1444,  1445,  1447,  1449,  1454,  1456,
     1059    1458,  1463,  1464,  1468,  1470,  1476,  1475,  1479,  1481,  1486,
     1060    1488,  1494,  1495,  1500,  1501,  1503,  1504,  1513,  1514,  1516,
     1061    1518,  1523,  1525,  1531,  1532,  1534,  1537,  1540,  1545,  1546,
     1062    1551,  1556,  1560,  1562,  1568,  1567,  1574,  1576,  1582,  1583,
     1063    1591,  1592,  1596,  1597,  1598,  1600,  1602,  1609,  1610,  1612,
     1064    1614,  1619,  1620,  1626,  1627,  1631,  1632,  1637,  1638,  1639,
     1065    1641,  1649,  1650,  1652,  1655,  1657,  1661,  1662,  1663,  1665,
     1066    1667,  1671,  1676,  1684,  1685,  1694,  1696,  1701,  1702,  1703,
     1067    1707,  1708,  1709,  1713,  1714,  1715,  1719,  1720,  1721,  1726,
     1068    1727,  1728,  1729,  1735,  1736,  1738,  1743,  1744,  1749,  1750,
     1069    1751,  1752,  1753,  1768,  1769,  1774,  1775,  1781,  1783,  1786,
     1070    1788,  1790,  1813,  1814,  1816,  1818,  1823,  1824,  1826,  1831,
     1071    1836,  1837,  1843,  1842,  1846,  1850,  1852,  1854,  1860,  1861,
     1072    1866,  1871,  1873,  1878,  1880,  1881,  1883,  1888,  1890,  1892,
     1073    1897,  1899,  1904,  1909,  1917,  1923,  1922,  1936,  1937,  1942,
     1074    1943,  1947,  1952,  1957,  1965,  1970,  1981,  1982,  1987,  1988,
     1075    1994,  1995,  1999,  2000,  2001,  2004,  2003,  2014,  2023,  2029,
     1076    2035,  2044,  2050,  2056,  2062,  2068,  2076,  2082,  2090,  2096,
     1077    2105,  2106,  2107,  2111,  2115,  2117,  2122,  2123,  2127,  2128,
     1078    2133,  2139,  2140,  2143,  2145,  2146,  2150,  2151,  2152,  2153,
     1079    2187,  2189,  2190,  2192,  2197,  2202,  2207,  2209,  2211,  2216,
     1080    2218,  2220,  2222,  2227,  2229,  2238,  2240,  2241,  2246,  2248,
     1081    2250,  2255,  2257,  2259,  2264,  2266,  2268,  2277,  2278,  2279,
     1082    2283,  2285,  2287,  2292,  2294,  2296,  2301,  2303,  2305,  2320,
     1083    2322,  2323,  2325,  2330,  2331,  2336,  2338,  2340,  2345,  2347,
     1084    2349,  2351,  2356,  2358,  2360,  2370,  2372,  2373,  2375,  2380,
     1085    2382,  2384,  2389,  2391,  2393,  2395,  2400,  2402,  2404,  2435,
     1086    2437,  2438,  2440,  2445,  2450,  2458,  2460,  2462,  2467,  2469,
     1087    2474,  2476,  2490,  2491,  2493,  2498,  2500,  2502,  2504,  2506,
     1088    2511,  2512,  2514,  2516,  2521,  2523,  2525,  2531,  2533,  2535,
     1089    2539,  2541,  2543,  2545,  2559,  2560,  2562,  2567,  2569,  2571,
     1090    2573,  2575,  2580,  2581,  2583,  2585,  2590,  2592,  2594,  2600,
     1091    2601,  2603,  2612,  2615,  2617,  2620,  2622,  2624,  2637,  2638,
     1092    2640,  2645,  2647,  2649,  2651,  2653,  2658,  2659,  2661,  2663,
     1093    2668,  2670,  2678,  2679,  2680,  2685,  2686,  2690,  2692,  2694,
     1094    2696,  2698,  2700,  2707,  2709,  2711,  2713,  2715,  2717,  2719,
     1095    2721,  2723,  2725,  2730,  2732,  2734,  2739,  2765,  2766,  2768,
     1096    2772,  2773,  2777,  2779,  2781,  2783,  2785,  2787,  2794,  2796,
     1097    2798,  2800,  2802,  2804,  2809,  2814,  2816,  2818,  2836,  2838,
     1098    2843,  2844
    11401099};
    11411100#endif
     
    12901249     159,   159,   160,   160,   161,   161,   162,   162,   163,   163,
    12911250     163,   163,   164,   165,   165,   165,   166,   166,   167,   167,
    1292      167,   167,   167,   167,   167,   167,   167,   167,   167,   168,
    1293      168,   168,   168,   169,   169,   170,   170,   171,   171,   172,
    1294      172,   172,   172,   172,   172,   172,   172,   172,   173,   174,
    1295      174,   175,   175,   176,   176,   176,   176,   177,   177,   178,
    1296      179,   179,   179,   179,   179,   179,   180,   180,   180,   181,
    1297      181,   182,   182,   183,   183,   184,   185,   185,   186,   186,
    1298      187,   187,   188,   188,   188,   188,   189,   189,   190,   190,
    1299      191,   191,   191,   192,   192,   193,   193,   193,   193,   193,
    1300      193,   193,   193,   193,   193,   194,   194,   194,   195,   195,
    1301      195,   195,   195,   196,   196,   196,   196,   197,   198,   198,
    1302      198,   198,   198,   199,   199,   199,   199,   199,   200,   200,
    1303      201,   201,   202,   202,   203,   203,   204,   204,   204,   205,
    1304      205,   206,   206,   207,   207,   208,   208,   209,   209,   210,
    1305      210,   211,   211,   212,   212,   213,   213,   214,   214,   214,
    1306      214,   214,   215,   215,   215,   216,   216,   216,   217,   217,
    1307      217,   217,   217,   218,   218,   218,   219,   219,   220,   220,
    1308      220,   221,   221,   221,   221,   221,   222,   222,   223,   223,
    1309      223,   223,   224,   224,   225,   225,   225,   225,   226,   226,
    1310      226,   226,   227,   227,   228,   228,   229,   229,   230,   230,
    1311      230,   230,   230,   231,   230,   232,   232,   232,   233,   233,
    1312      234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
     1251     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
     1252     168,   168,   168,   168,   169,   169,   170,   170,   171,   171,
     1253     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
     1254     174,   174,   175,   175,   176,   176,   176,   176,   177,   177,
     1255     178,   179,   179,   179,   179,   179,   179,   180,   180,   180,
     1256     181,   181,   182,   182,   183,   183,   184,   185,   185,   186,
     1257     186,   187,   187,   188,   188,   188,   188,   189,   189,   190,
     1258     190,   191,   191,   191,   192,   192,   193,   193,   193,   193,
     1259     193,   193,   193,   193,   193,   193,   194,   194,   194,   195,
     1260     195,   195,   195,   195,   196,   196,   196,   196,   197,   198,
     1261     198,   198,   198,   198,   199,   199,   199,   199,   199,   200,
     1262     200,   201,   201,   202,   202,   203,   203,   204,   204,   204,
     1263     205,   205,   206,   206,   207,   207,   208,   208,   209,   209,
     1264     210,   210,   211,   211,   212,   212,   213,   213,   214,   214,
     1265     214,   214,   214,   215,   215,   215,   216,   216,   216,   217,
     1266     217,   217,   217,   217,   218,   218,   218,   219,   219,   220,
     1267     220,   220,   221,   221,   221,   221,   221,   222,   222,   223,
     1268     223,   223,   223,   224,   224,   225,   225,   225,   225,   226,
     1269     226,   226,   226,   227,   227,   228,   228,   229,   229,   230,
     1270     230,   230,   230,   230,   231,   230,   232,   232,   232,   233,
     1271     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
    13131272     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
    1314      235,   236,   236,   236,   236,   236,   237,   237,   238,   238,
    1315      238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
    1316      241,   241,   241,   242,   242,   242,   242,   243,   243,   243,
    1317      244,   244,   245,   245,   246,   245,   245,   245,   247,   247,
    1318      248,   248,   249,   249,   249,   249,   250,   250,   250,   250,
    1319      251,   251,   252,   252,   252,   252,   252,   253,   253,   254,
    1320      255,   256,   256,   257,   256,   258,   258,   259,   259,   260,
    1321      260,   261,   261,   261,   261,   261,   262,   262,   262,   262,
    1322      263,   263,   264,   264,   265,   265,   266,   266,   266,   266,
    1323      267,   267,   267,   267,   267,   268,   268,   268,   268,   268,
    1324      269,   269,   270,   270,   271,   271,   272,   272,   272,   273,
    1325      273,   273,   274,   274,   274,   275,   275,   275,   276,   276,
    1326      276,   276,   277,   277,   277,   278,   278,   279,   279,   279,
    1327      279,   279,   280,   280,   281,   281,   282,   282,   282,   282,
    1328      282,   283,   283,   283,   283,   284,   284,   284,   285,   286,
    1329      286,   288,   287,   287,   289,   289,   289,   290,   290,   291,
    1330      291,   291,   292,   292,   292,   292,   293,   293,   293,   294,
    1331      294,   295,   295,   296,   297,   296,   298,   298,   299,   299,
    1332      300,   300,   300,   301,   301,   302,   302,   303,   303,   304,
    1333      304,   305,   305,   305,   306,   305,   305,   307,   307,   307,
    1334      308,   308,   308,   308,   308,   308,   308,   308,   308,   309,
    1335      309,   309,   310,   311,   311,   312,   312,   313,   313,   314,
    1336      315,   315,   316,   316,   316,   317,   317,   317,   317,   318,
    1337      318,   318,   318,   319,   319,   320,   320,   320,   321,   321,
    1338      321,   321,   322,   322,   323,   323,   323,   324,   324,   324,
    1339      325,   325,   325,   326,   326,   326,   327,   327,   327,   328,
    1340      328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
    1341      331,   331,   332,   332,   333,   333,   333,   334,   334,   334,
    1342      334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
    1343      337,   338,   338,   338,   338,   339,   339,   339,   340,   340,
    1344      340,   340,   341,   341,   342,   342,   342,   343,   343,   344,
    1345      344,   345,   345,   345,   346,   346,   346,   346,   346,   347,
    1346      347,   347,   347,   348,   348,   348,   349,   349,   349,   350,
    1347      350,   350,   350,   351,   351,   351,   352,   352,   352,   352,
    1348      352,   353,   353,   353,   353,   354,   354,   354,   355,   355,
    1349      355,   356,   356,   356,   356,   356,   356,   357,   357,   357,
    1350      358,   358,   358,   358,   358,   359,   359,   359,   359,   360,
    1351      360,   361,   361,   361,   362,   362,   363,   363,   363,   363,
    1352      363,   363,   364,   364,   364,   364,   364,   364,   364,   364,
    1353      364,   364,   365,   365,   365,   365,   366,   366,   366,   367,
    1354      367,   368,   368,   368,   368,   368,   368,   369,   369,   369,
    1355      369,   369,   369,   370,   371,   371,   371,   372,   372,   373,
    1356      373
     1273     235,   235,   236,   236,   236,   236,   236,   237,   237,   238,
     1274     238,   238,   238,   239,   239,   239,   239,   240,   240,   240,
     1275     240,   241,   241,   241,   242,   242,   242,   242,   243,   243,
     1276     243,   244,   244,   245,   245,   246,   245,   245,   245,   247,
     1277     247,   248,   248,   249,   249,   249,   249,   250,   250,   250,
     1278     250,   251,   251,   252,   252,   252,   252,   252,   253,   253,
     1279     254,   255,   256,   256,   257,   256,   258,   258,   259,   259,
     1280     260,   260,   261,   261,   261,   261,   261,   262,   262,   262,
     1281     262,   263,   263,   264,   264,   265,   265,   266,   266,   266,
     1282     266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
     1283     268,   269,   269,   270,   270,   271,   271,   272,   272,   272,
     1284     273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
     1285     276,   276,   276,   277,   277,   277,   278,   278,   279,   279,
     1286     279,   279,   279,   280,   280,   281,   281,   282,   282,   282,
     1287     282,   282,   283,   283,   283,   283,   284,   284,   284,   285,
     1288     286,   286,   288,   287,   287,   289,   289,   289,   290,   290,
     1289     291,   291,   291,   292,   292,   292,   292,   293,   293,   293,
     1290     294,   294,   295,   295,   296,   297,   296,   298,   298,   299,
     1291     299,   300,   300,   300,   301,   301,   302,   302,   303,   303,
     1292     304,   304,   305,   305,   305,   306,   305,   305,   307,   307,
     1293     307,   308,   308,   308,   308,   308,   308,   308,   308,   308,
     1294     309,   309,   309,   310,   311,   311,   312,   312,   313,   313,
     1295     314,   315,   315,   316,   316,   316,   317,   317,   317,   317,
     1296     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1297     321,   321,   321,   322,   322,   323,   323,   323,   324,   324,
     1298     324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
     1299     328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
     1300     331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
     1301     334,   334,   335,   335,   335,   336,   336,   336,   336,   337,
     1302     337,   337,   338,   338,   338,   338,   339,   339,   339,   340,
     1303     340,   340,   340,   341,   341,   342,   342,   342,   343,   343,
     1304     344,   344,   345,   345,   345,   346,   346,   346,   346,   346,
     1305     347,   347,   347,   347,   348,   348,   348,   349,   349,   349,
     1306     350,   350,   350,   350,   351,   351,   351,   352,   352,   352,
     1307     352,   352,   353,   353,   353,   353,   354,   354,   354,   355,
     1308     355,   355,   356,   356,   356,   356,   356,   356,   357,   357,
     1309     357,   358,   358,   358,   358,   358,   359,   359,   359,   359,
     1310     360,   360,   361,   361,   361,   362,   362,   363,   363,   363,
     1311     363,   363,   363,   364,   364,   364,   364,   364,   364,   364,
     1312     364,   364,   364,   365,   365,   365,   365,   366,   366,   366,
     1313     367,   367,   368,   368,   368,   368,   368,   368,   369,   369,
     1314     369,   369,   369,   369,   370,   371,   371,   371,   372,   372,
     1315     373,   373
    13571316};
    13581317
     
    13711330       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
    13721331       4,     5,     1,     1,     3,     2,     0,     1,     1,     1,
    1373        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
    1374        5,     6,     7,     1,     3,     1,     3,     0,     1,     1,
    1375        1,     1,     1,     1,     1,     1,     1,     6,     4,     2,
    1376        7,     1,     3,     1,     2,     1,     2,     1,     2,     2,
    1377        5,     7,     5,     9,     5,     9,     1,     3,     1,     1,
    1378        3,     3,     2,     1,     2,     2,     0,     1,     2,     3,
    1379        0,     1,     2,     3,     3,     4,     0,     1,     1,     2,
    1380        5,     7,     6,     6,     4,     3,     4,     2,     3,     2,
    1381        3,     3,     3,     3,     5,     3,     3,     4,     1,     5,
    1382        6,     5,     6,     9,    10,     9,    10,     2,     1,     2,
    1383        2,     2,     1,     6,     8,    10,    12,    14,     0,     1,
    1384        0,     1,     1,     3,     4,     7,     0,     1,     3,     1,
    1385        3,     1,     1,     1,     3,     1,     1,     1,     3,     0,
    1386        1,     3,     4,     1,     3,     1,     1,     3,     3,     3,
    1387        3,     3,     2,     3,     6,     3,     3,     4,     1,     2,
    1388        2,     3,     5,     8,     7,     7,     5,     9,     2,     2,
    1389        5,     3,     5,     4,     3,     4,     4,     7,     3,     3,
    1390        3,     3,     4,     6,     1,     1,     1,     1,     1,     1,
    1391        1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
    1392        1,     1,     1,     0,     5,     1,     2,     3,     1,     2,
    13931332       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1333       2,     5,     6,     7,     1,     3,     1,     3,     0,     1,
     1334       1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
     1335       2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
     1336       2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
     1337       1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
     1338       3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
     1339       2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
     1340       2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
     1341       5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
     1342       2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
     1343       1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
     1344       1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
     1345       0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
     1346       3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
     1347       2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
     1348       2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
     1349       3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
     1350       1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
     1351       1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
     1352       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    13941353       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1395        1,     1,     2,     2,     3,     3,     1,     3,     1,     2,
    1396        2,     2,     4,     4,     4,     4,     1,     2,     2,     3,
    1397        1,     2,     2,     1,     2,     2,     3,     1,     2,     2,
    1398        1,     1,     4,     2,     0,     6,     7,     2,     2,     2,
    1399        0,     2,     2,     3,     2,     3,     1,     2,     3,     2,
    1400        2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
    1401        2,     5,     2,     0,     7,     2,     4,     0,     2,     0,
    1402        1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
    1403        1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
    1404        1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
    1405        3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
    1406        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
    1407        1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
    1408        3,     4,     2,     2,     1,     2,     2,     5,     5,     7,
    1409        6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
    1410        4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
    1411        5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
    1412        4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
    1413        1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
    1414        1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
    1415        2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
    1416        1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
    1417        1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1354       1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
     1355       2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
     1356       3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
     1357       2,     1,     1,     4,     2,     0,     6,     7,     2,     2,
     1358       2,     0,     2,     2,     3,     2,     3,     1,     2,     3,
     1359       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1360       2,     2,     5,     2,     0,     7,     2,     4,     0,     2,
     1361       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1362       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1363       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1364       1,     3,     3,     1,     2,     1,     3,     1,     1,     1,
     1365       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1366       1,     1,     2,     0,     2,     2,     1,     4,     0,     1,
     1367       2,     3,     4,     2,     2,     1,     2,     2,     5,     5,
     1368       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1369       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1370       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1371       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1372       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1373       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1374       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1375       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1376       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1377       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1378       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1379       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1380       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    14181381       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1419        4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
    1420        2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
    1421        6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
    1422        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1423        3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
    1424        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1425        2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
    1426        8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1427        4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
    1428        5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
    1429        3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
    1430        1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
    1431        1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
    1432        3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
    1433        2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
    1434        3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
    1435        1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
    1436        3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
    1437        2
     1382       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1383       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1384       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1385       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1386       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1387       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1388       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1389       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1390       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1391       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1392       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1393       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1394       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1395       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1396       0,     2
    14381397};
    14391398
     
    14431402static const yytype_uint16 yydefact[] =
    14441403{
    1445      292,   292,   312,   310,   313,   311,   314,   315,   298,   300,
    1446      299,     0,   301,   326,   318,   323,   321,   322,   320,   319,
    1447      324,   325,   330,   327,   328,   329,   545,   545,   545,     0,
    1448        0,     0,   292,   218,   302,   316,   317,     7,   357,     0,
    1449        8,    14,    15,     0,     2,    61,    62,   563,     9,   292,
    1450      523,   521,   245,     3,   452,     3,   258,     0,     3,     3,
    1451        3,   246,     3,     0,     0,     0,   293,   294,   296,   292,
    1452      305,   308,   338,   284,   331,   336,   285,   346,   286,   353,
    1453      350,   360,     0,     0,   361,   287,   471,   475,     3,     3,
    1454        0,     2,   517,   522,   527,   297,     0,     0,   545,   575,
    1455      545,     2,   586,   587,   588,   292,     0,   729,   730,     0,
    1456       12,     0,    13,   292,   268,   269,     0,   293,   288,   289,
    1457      290,   291,   524,   303,   390,   546,   547,   368,   369,    12,
    1458      443,   444,    11,   439,   442,     0,   501,   496,   487,   443,
    1459      444,     0,     0,   526,   219,     0,   292,     0,     0,     0,
    1460        0,     0,     0,     0,     0,   292,   292,     2,     0,   731,
    1461      293,   580,   592,   735,   728,   726,   733,     0,     0,     0,
    1462      252,     2,     0,   530,   437,   438,   436,     0,     0,     0,
    1463        0,   545,     0,   632,   633,     0,     0,   543,   539,   545,
    1464      560,   545,   545,   541,     2,   540,   545,   599,   545,   545,
    1465      602,     0,     0,     0,   292,   292,   310,   358,     2,   292,
    1466      259,   295,   306,   339,   351,   476,     0,     2,     0,   452,
    1467      260,   293,   332,   347,   354,   472,     0,     2,     0,   309,
    1468      333,   340,   341,     0,   348,   352,   355,   359,   444,   292,
    1469      370,   363,   367,     0,   392,   473,   477,     0,     0,     0,
    1470        1,   292,     2,   528,   574,   576,   292,     2,   739,   293,
    1471      742,   543,   543,     0,   293,     0,     0,   271,   545,   541,
    1472        2,   292,     0,     0,   292,   548,     2,   499,     2,   552,
     1404     293,   293,   313,   311,   314,   312,   315,   316,   299,   301,
     1405     300,     0,   302,   327,   319,   324,   322,   323,   321,   320,
     1406     325,   326,   331,   328,   329,   330,   546,   546,   546,     0,
     1407       0,     0,   293,   219,   303,   317,   318,     7,   358,     0,
     1408       8,    14,    15,     0,     2,    61,    62,   564,     9,   293,
     1409     524,   522,   246,     3,   453,     3,   259,     0,     3,     3,
     1410       3,   247,     3,     0,     0,     0,   294,   295,   297,   293,
     1411     306,   309,   339,   285,   332,   337,   286,   347,   287,   354,
     1412     351,   361,     0,     0,   362,   288,   472,   476,     3,     3,
     1413       0,     2,   518,   523,   528,   298,     0,     0,   546,   576,
     1414     546,     2,   587,   588,   589,   293,     0,   730,   731,     0,
     1415      12,     0,    13,   293,   269,   270,     0,   294,   289,   290,
     1416     291,   292,   525,   304,   391,   547,   548,   369,   370,    12,
     1417     444,   445,    11,   440,   443,     0,   502,   497,   488,   444,
     1418     445,     0,     0,   527,   220,     0,   293,     0,     0,     0,
     1419       0,     0,     0,     0,     0,   293,   293,     2,     0,   732,
     1420     294,   581,   593,   736,   729,   727,   734,     0,     0,     0,
     1421     253,     2,     0,   531,   438,   439,   437,     0,     0,     0,
     1422       0,   546,     0,   633,   634,     0,     0,   544,   540,   546,
     1423     561,   546,   546,   542,     2,   541,   546,   600,   546,   546,
     1424     603,     0,     0,     0,   293,   293,   311,   359,     2,   293,
     1425     260,   296,   307,   340,   352,   477,     0,     2,     0,   453,
     1426     261,   294,   333,   348,   355,   473,     0,     2,     0,   310,
     1427     334,   341,   342,     0,   349,   353,   356,   360,   445,   293,
     1428     371,   364,   368,     0,   393,   474,   478,     0,     0,     0,
     1429       1,   293,     2,   529,   575,   577,   293,     2,   740,   294,
     1430     743,   544,   544,     0,   294,     0,     0,   272,   546,   542,
     1431       2,   293,     0,     0,   293,   549,     2,   500,     2,   553,
    14731432       0,     0,     0,     0,     0,     0,    19,    58,     4,     5,
    1474        6,    17,     0,     0,   292,     2,    63,    64,    65,    66,
    1475       46,    20,    47,    16,    23,    45,    67,   292,     0,    70,
     1433       6,    17,     0,     0,   293,     2,    63,    64,    65,    66,
     1434      46,    20,    47,    16,    23,    45,    67,   293,     0,    70,
    14761435      74,    77,    80,    85,    88,    90,    92,    94,    96,    98,
    1477      103,   493,   749,   450,   492,     0,   448,   449,     0,   564,
    1478      579,   582,   585,   591,   594,   597,   357,     0,     2,   737,
    1479        0,   292,   740,     2,    61,   292,     3,   424,     0,   432,
    1480      293,   292,   305,   331,   285,   346,   353,     3,     3,   406,
    1481      410,   420,   425,   471,   292,   426,   704,   705,   292,   427,
    1482      429,   292,     2,   581,   593,   727,     2,     2,   247,     2,
    1483      457,     0,   455,   454,   453,   139,     2,     2,   249,     2,
    1484        2,   248,     2,   279,     2,   280,     0,   278,     0,     0,
    1485        0,     0,     0,     0,     0,     0,     0,   565,   604,     0,
    1486      452,     2,   559,   568,   658,   561,   562,   531,   292,     2,
    1487      598,   607,   600,   601,     0,   274,   292,   292,   337,   293,
    1488        0,   293,     0,   292,   732,   736,   734,   532,   292,   543,
    1489      253,   261,   307,     0,     2,   533,   292,   497,   334,   335,
    1490      281,   349,   356,     0,   292,     0,   747,   397,     0,   474,
    1491      498,   250,   251,   518,   292,   434,     0,   292,   235,     0,
    1492        2,   237,     0,   293,     0,   255,     2,   256,   276,     0,
    1493        0,     2,   292,   543,   292,   484,   486,   485,     0,     0,
    1494      749,     0,   292,     0,   292,   488,   292,   558,   556,   557,
    1495      555,     0,   550,   553,     0,     0,   292,    53,   292,    67,
    1496       48,   292,    55,   292,   292,    51,    52,     2,   125,     0,
    1497        0,   446,     0,   445,   726,   119,   292,    18,     0,    30,
    1498       31,    36,     2,     0,    36,   109,   110,   111,   112,   113,
    1499      114,   115,   116,   117,   118,   108,     0,    49,    50,     0,
     1436     103,   494,   750,   451,   493,     0,   449,   450,     0,   565,
     1437     580,   583,   586,   592,   595,   598,   358,     0,     2,   738,
     1438       0,   293,   741,     2,    61,   293,     3,   425,     0,   433,
     1439     294,   293,   306,   332,   286,   347,   354,     3,     3,   407,
     1440     411,   421,   426,   472,   293,   427,   705,   706,   293,   428,
     1441     430,   293,     2,   582,   594,   728,     2,     2,   248,     2,
     1442     458,     0,   456,   455,   454,   140,     2,     2,   250,     2,
     1443       2,   249,     2,   280,     2,   281,     0,   279,     0,     0,
     1444       0,     0,     0,     0,     0,     0,     0,   566,   605,     0,
     1445     453,     2,   560,   569,   659,   562,   563,   532,   293,     2,
     1446     599,   608,   601,   602,     0,   275,   293,   293,   338,   294,
     1447       0,   294,     0,   293,   733,   737,   735,   533,   293,   544,
     1448     254,   262,   308,     0,     2,   534,   293,   498,   335,   336,
     1449     282,   350,   357,     0,   293,     0,   748,   398,     0,   475,
     1450     499,   251,   252,   519,   293,   435,     0,   293,   236,     0,
     1451       2,   238,     0,   294,     0,   256,     2,   257,   277,     0,
     1452       0,     2,   293,   544,   293,   485,   487,   486,     0,     0,
     1453     750,     0,   293,     0,   293,   489,   293,   559,   557,   558,
     1454     556,     0,   551,   554,     0,     0,   293,    53,   293,    67,
     1455      48,   293,    55,   293,   293,    51,    52,     2,   126,     0,
     1456       0,   447,     0,   446,   727,   120,   293,    18,     0,    30,
     1457      31,    36,     2,     0,    36,   110,   111,   112,   113,   114,
     1458     115,   116,   117,   118,   119,   109,   108,     0,    49,    50,
    15001459       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1501        0,     0,     0,     0,     0,     0,     0,     0,     0,   105,
    1502        2,   644,   451,   641,   545,   545,   649,   478,   292,     2,
    1503      583,   584,     0,   595,   596,     0,     2,   738,   741,   119,
    1504      292,     0,     2,   706,   293,   710,   701,   702,   708,     0,
    1505        2,     2,   666,   545,   749,   615,   545,   545,   749,   545,
    1506      629,   545,   545,   680,   433,   663,   545,   545,   671,   678,
    1507      292,   428,   293,     0,     0,   292,   716,   293,   721,   749,
    1508      713,   292,   718,   749,   292,   292,   292,     0,   119,     0,
    1509       19,     2,     0,    20,     0,   458,   747,     0,     0,   464,
    1510      239,     0,   292,     0,     0,     0,   543,   567,   571,   573,
    1511      603,   606,   610,   613,   566,   605,     0,   282,   656,     0,
    1512      292,   275,     0,     0,     0,     0,   273,     2,     0,   257,
    1513      534,   292,     0,     0,   292,     2,   362,   382,   371,     0,
    1514        0,   376,   370,   748,     0,     0,   395,     0,   293,     3,
    1515      413,     3,   417,   416,   589,     0,   529,   292,    61,     3,
    1516      292,   432,   293,     3,   426,   427,     2,     0,     0,     0,
    1517      483,   304,   292,   479,   481,     3,     2,     2,     0,   500,
    1518        3,     0,   552,   127,     0,     0,   220,     0,     0,     0,
    1519        0,    37,     0,     0,   119,   292,    21,     0,    22,     0,
    1520      690,   695,   447,   687,   545,   545,     0,   106,     3,     2,
    1521       28,     0,    34,     0,     2,    26,     0,   104,    71,    72,
    1522       73,    75,    76,    78,    79,    83,    84,    81,    82,    86,
    1523       87,    89,    91,    93,    95,    97,     0,     0,   750,   292,
    1524        0,     0,     0,   645,   646,   642,   643,   495,   494,   292,
    1525        0,   292,   712,   292,   717,   293,   292,   660,   292,   292,
    1526      703,   659,     2,   292,     0,     0,     0,     0,     0,     0,
    1527        0,     0,   681,     0,   667,   618,   634,   668,     2,   614,
    1528      621,   430,   616,   617,   431,     2,   628,   637,   630,   631,
    1529      664,   665,   679,   707,   711,   709,   749,   266,     2,   743,
    1530        2,   421,   715,   720,   422,     0,   400,     3,     3,     3,
    1531        3,   452,     3,     0,     2,   466,   463,   748,     0,   459,
    1532        2,   462,   465,     0,   292,   240,   262,     3,   270,   272,
    1533        0,   452,     2,   569,   570,     2,   608,   609,     0,   657,
    1534      535,     3,   343,   342,   345,   344,   292,   536,     0,   537,
    1535      370,     0,     0,   292,   292,     0,     0,   690,   380,   383,
    1536      387,   545,   387,   386,   379,   372,   545,   374,   377,   292,
    1537      397,   391,   102,   398,   747,     0,     0,   435,   238,     0,
    1538        0,     3,     2,   666,   428,     0,   525,     0,   749,   487,
    1539        0,   292,   292,   292,     0,   549,   551,   128,     0,     0,
    1540      213,     0,     0,     0,   221,   222,    54,     0,    56,    59,
    1541       60,     0,     2,   126,     0,     0,     0,   691,   692,   688,
    1542      689,   457,    68,    69,   107,   123,     3,   106,     0,     0,
    1543       25,    36,     3,     0,    33,   100,     0,     3,   648,   652,
    1544      655,   647,     3,   590,     3,   714,   719,     2,    61,   292,
    1545        3,     3,   293,     0,     3,   620,   624,   627,   636,   670,
    1546      674,   677,   292,     3,   619,   635,   669,   292,   292,   423,
    1547      292,   292,   744,     0,     0,     0,     0,   254,     0,   102,
    1548        0,     3,     3,     0,   460,     0,   456,     0,     0,   243,
    1549      292,     0,     0,   127,     0,     0,     0,     0,     0,   127,
    1550        0,     0,   106,   106,    19,     2,     0,     0,     3,   129,
    1551      130,     2,   141,   131,   132,   133,   134,   135,   136,   143,
    1552      145,     0,     0,     0,   283,   292,   292,   545,     0,   538,
    1553      292,   373,   375,     0,   389,   691,   384,   388,   385,   378,
    1554      382,   365,   396,     0,   577,     2,   662,   661,     0,   667,
    1555        2,   480,   482,   502,     3,   510,   511,     0,     2,   506,
    1556        3,     3,     0,     0,   554,   220,     0,     0,     0,   220,
    1557        0,     0,   119,   694,   698,   700,   693,   747,   106,     0,
    1558        3,   659,    40,     3,    38,    35,     0,     3,    99,   101,
    1559        0,     2,   650,   651,     0,     0,   292,     0,     0,     0,
    1560        3,   636,     0,     2,   622,   623,     2,   638,     2,   672,
    1561      673,     0,     0,    61,     0,     3,     3,     3,     3,   408,
    1562      407,   411,     2,     2,   746,   745,   120,     0,     0,     0,
    1563        0,     3,   461,     3,     0,   241,   144,     3,   293,   292,
    1564        0,     0,     0,     0,     2,     0,   189,     0,   187,     0,
    1565        0,     0,     0,     0,     0,     0,   545,   119,     0,   149,
    1566      146,   292,     0,     0,   265,   277,     3,     3,   544,   611,
    1567      366,   381,   394,   292,   264,   292,     0,   513,   490,   292,
    1568        0,     0,   489,   504,     0,     0,     0,   214,     0,   223,
    1569       57,     2,   696,   697,     0,   124,   121,     0,     0,     0,
    1570        0,     0,    24,     0,   653,   292,   578,   263,   722,   723,
    1571      724,     0,   675,   292,   292,   292,     3,     3,     0,   683,
    1572        0,     0,     0,     0,   292,   292,     3,   542,   120,   468,
    1573        0,     0,   244,   293,     0,     0,     0,     0,   292,   190,
    1574      188,   185,     0,   191,     0,     0,     0,     0,   195,   198,
    1575      196,   192,     0,   193,   127,    36,   142,   140,   242,     0,
    1576        0,   415,   419,   418,     0,   507,     2,   508,     2,   509,
    1577      503,   292,   226,     0,   224,     0,   226,   292,    32,   122,
    1578        2,    43,     2,    41,    39,    29,    27,     3,   725,     3,
    1579        3,     3,     0,     0,   682,   684,   625,   639,   267,     2,
    1580      405,     3,   404,     0,   470,   467,   127,     0,     0,   127,
    1581        3,     0,   127,   186,     0,     2,     2,   207,   197,     0,
    1582        0,     0,   138,     0,   572,   612,     2,     0,     0,     2,
    1583      227,     0,     0,   215,     0,     3,     0,     0,     0,     0,
    1584        0,     0,   685,   686,   292,     0,   469,   150,     0,     0,
    1585        2,   163,   127,   152,     0,   180,     0,   127,     0,     2,
    1586      154,     0,     2,     0,     2,     2,     2,   194,    33,   292,
    1587      512,   514,   505,     0,     0,     0,     0,     0,     3,     3,
    1588      654,   626,   640,   676,   409,   127,   156,   159,     0,   158,
    1589      162,     3,   165,   164,     0,   127,   182,   127,     3,     0,
    1590      292,     0,   292,     0,     2,     0,     2,   137,     2,   228,
    1591      229,     0,   225,   216,   699,     0,     0,   151,     0,     0,
    1592      161,   231,   166,     2,   233,   181,     0,   184,   170,   199,
    1593        3,   208,   212,   201,     3,     0,   292,     0,   292,     0,
    1594        0,     0,    44,    42,   157,   160,   127,     0,   167,   292,
    1595      127,   127,     0,   171,     0,     0,   690,   209,   210,   211,
    1596        0,   200,     3,   202,     3,   292,   217,   230,   147,   168,
    1597      153,   127,   234,   183,   178,   176,   172,   155,   127,     0,
    1598      691,     0,     0,     0,     0,   148,   169,   179,   173,   177,
    1599      176,   174,     3,     3,     0,     0,   491,   175,   203,   205,
    1600        3,     3,   204,   206
     1460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1461     105,     2,   645,   452,   642,   546,   546,   650,   479,   293,
     1462       2,   584,   585,     0,   596,   597,     0,     2,   739,   742,
     1463     120,   293,     0,     2,   707,   294,   711,   702,   703,   709,
     1464       0,     2,     2,   667,   546,   750,   616,   546,   546,   750,
     1465     546,   630,   546,   546,   681,   434,   664,   546,   546,   672,
     1466     679,   293,   429,   294,     0,     0,   293,   717,   294,   722,
     1467     750,   714,   293,   719,   750,   293,   293,   293,     0,   120,
     1468       0,    19,     2,     0,    20,     0,   459,   748,     0,     0,
     1469     465,   240,     0,   293,     0,     0,     0,   544,   568,   572,
     1470     574,   604,   607,   611,   614,   567,   606,     0,   283,   657,
     1471       0,   293,   276,     0,     0,     0,     0,   274,     2,     0,
     1472     258,   535,   293,     0,     0,   293,     2,   363,   383,   372,
     1473       0,     0,   377,   371,   749,     0,     0,   396,     0,   294,
     1474       3,   414,     3,   418,   417,   590,     0,   530,   293,    61,
     1475       3,   293,   433,   294,     3,   427,   428,     2,     0,     0,
     1476       0,   484,   305,   293,   480,   482,     3,     2,     2,     0,
     1477     501,     3,     0,   553,   128,     0,     0,   221,     0,     0,
     1478       0,     0,    37,     0,     0,   120,   293,    21,     0,    22,
     1479       0,   691,   696,   448,   688,   546,   546,     0,   106,     3,
     1480       2,    28,     0,    34,     0,     2,    26,     0,   104,    71,
     1481      72,    73,    75,    76,    78,    79,    83,    84,    81,    82,
     1482      86,    87,    89,    91,    93,    95,    97,     0,     0,   751,
     1483     293,     0,     0,     0,   646,   647,   643,   644,   496,   495,
     1484     293,     0,   293,   713,   293,   718,   294,   293,   661,   293,
     1485     293,   704,   660,     2,   293,     0,     0,     0,     0,     0,
     1486       0,     0,     0,   682,     0,   668,   619,   635,   669,     2,
     1487     615,   622,   431,   617,   618,   432,     2,   629,   638,   631,
     1488     632,   665,   666,   680,   708,   712,   710,   750,   267,     2,
     1489     744,     2,   422,   716,   721,   423,     0,   401,     3,     3,
     1490       3,     3,   453,     3,     0,     2,   467,   464,   749,     0,
     1491     460,     2,   463,   466,     0,   293,   241,   263,     3,   271,
     1492     273,     0,   453,     2,   570,   571,     2,   609,   610,     0,
     1493     658,   536,     3,   344,   343,   346,   345,   293,   537,     0,
     1494     538,   371,     0,     0,   293,   293,     0,     0,   691,   381,
     1495     384,   388,   546,   388,   387,   380,   373,   546,   375,   378,
     1496     293,   398,   392,   102,   399,   748,     0,     0,   436,   239,
     1497       0,     0,     3,     2,   667,   429,     0,   526,     0,   750,
     1498     488,     0,   293,   293,   293,     0,   550,   552,   129,     0,
     1499       0,   214,     0,     0,     0,   222,   223,    54,     0,    56,
     1500      59,    60,     0,     2,   127,     0,     0,     0,   692,   693,
     1501     689,   690,   458,    68,    69,   107,   124,     3,   106,     0,
     1502       0,    25,    36,     3,     0,    33,   100,     0,     3,   649,
     1503     653,   656,   648,     3,   591,     3,   715,   720,     2,    61,
     1504     293,     3,     3,   294,     0,     3,   621,   625,   628,   637,
     1505     671,   675,   678,   293,     3,   620,   636,   670,   293,   293,
     1506     424,   293,   293,   745,     0,     0,     0,     0,   255,     0,
     1507     102,     0,     3,     3,     0,   461,     0,   457,     0,     0,
     1508     244,   293,     0,     0,   128,     0,     0,     0,     0,     0,
     1509     128,     0,     0,   106,   106,    19,     2,     0,     0,     3,
     1510     130,   131,     2,   142,   132,   133,   134,   135,   136,   137,
     1511     144,   146,     0,     0,     0,   284,   293,   293,   546,     0,
     1512     539,   293,   374,   376,     0,   390,   692,   385,   389,   386,
     1513     379,   383,   366,   397,     0,   578,     2,   663,   662,     0,
     1514     668,     2,   481,   483,   503,     3,   511,   512,     0,     2,
     1515     507,     3,     3,     0,     0,   555,   221,     0,     0,     0,
     1516     221,     0,     0,   120,   695,   699,   701,   694,   748,   106,
     1517       0,     3,   660,    40,     3,    38,    35,     0,     3,    99,
     1518     101,     0,     2,   651,   652,     0,     0,   293,     0,     0,
     1519       0,     3,   637,     0,     2,   623,   624,     2,   639,     2,
     1520     673,   674,     0,     0,    61,     0,     3,     3,     3,     3,
     1521     409,   408,   412,     2,     2,   747,   746,   121,     0,     0,
     1522       0,     0,     3,   462,     3,     0,   242,   145,     3,   294,
     1523     293,     0,     0,     0,     0,     2,     0,   190,     0,   188,
     1524       0,     0,     0,     0,     0,     0,     0,   546,   120,     0,
     1525     150,   147,   293,     0,     0,   266,   278,     3,     3,   545,
     1526     612,   367,   382,   395,   293,   265,   293,     0,   514,   491,
     1527     293,     0,     0,   490,   505,     0,     0,     0,   215,     0,
     1528     224,    57,     2,   697,   698,     0,   125,   122,     0,     0,
     1529       0,     0,     0,    24,     0,   654,   293,   579,   264,   723,
     1530     724,   725,     0,   676,   293,   293,   293,     3,     3,     0,
     1531     684,     0,     0,     0,     0,   293,   293,     3,   543,   121,
     1532     469,     0,     0,   245,   294,     0,     0,     0,     0,   293,
     1533     191,   189,   186,     0,   192,     0,     0,     0,     0,   196,
     1534     199,   197,   193,     0,   194,   128,    36,   143,   141,   243,
     1535       0,     0,   416,   420,   419,     0,   508,     2,   509,     2,
     1536     510,   504,   293,   227,     0,   225,     0,   227,   293,    32,
     1537     123,     2,    43,     2,    41,    39,    29,    27,     3,   726,
     1538       3,     3,     3,     0,     0,   683,   685,   626,   640,   268,
     1539       2,   406,     3,   405,     0,   471,   468,   128,     0,     0,
     1540     128,     3,     0,   128,   187,     0,     2,     2,   208,   198,
     1541       0,     0,     0,   139,     0,   573,   613,     2,     0,     0,
     1542       2,   228,     0,     0,   216,     0,     3,     0,     0,     0,
     1543       0,     0,     0,   686,   687,   293,     0,   470,   151,     0,
     1544       0,     2,   164,   128,   153,     0,   181,     0,   128,     0,
     1545       2,   155,     0,     2,     0,     2,     2,     2,   195,    33,
     1546     293,   513,   515,   506,     0,     0,     0,     0,     0,     3,
     1547       3,   655,   627,   641,   677,   410,   128,   157,   160,     0,
     1548     159,   163,     3,   166,   165,     0,   128,   183,   128,     3,
     1549       0,   293,     0,   293,     0,     2,     0,     2,   138,     2,
     1550     229,   230,     0,   226,   217,   700,     0,     0,   152,     0,
     1551       0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
     1552     200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
     1553       0,     0,     0,    44,    42,   158,   161,   128,     0,   168,
     1554     293,   128,   128,     0,   172,     0,     0,   691,   210,   211,
     1555     212,     0,   201,     3,   203,     3,   293,   218,   231,   148,
     1556     169,   154,   128,   235,   184,   179,   177,   173,   156,   128,
     1557       0,   692,     0,     0,     0,     0,   149,   170,   180,   174,
     1558     178,   177,   175,     3,     3,     0,     0,   492,   176,   204,
     1559     206,     3,     3,   205,   207
    16011560};
    16021561
     
    16041563static const yytype_int16 yydefgoto[] =
    16051564{
    1606       -1,   813,   468,   300,    47,   133,   134,   301,   302,   303,
    1607      304,   305,   761,   762,  1133,  1134,   306,   381,   308,   309,
     1565      -1,   814,   468,   300,    47,   133,   134,   301,   302,   303,
     1566     304,   305,   762,   763,  1134,  1135,   306,   381,   308,   309,
    16081567     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
    1609      320,  1030,   518,   975,   546,   322,   976,   947,  1057,  1518,
    1610     1059,  1060,  1061,  1062,  1519,  1063,  1064,  1437,  1438,  1401,
    1611     1402,  1403,  1497,  1498,  1502,  1503,  1538,  1539,  1065,  1361,
    1612     1066,  1067,  1298,  1299,  1300,  1480,  1068,   145,   953,   954,
    1613      955,  1381,  1461,  1472,  1473,   469,   470,   874,   875,  1038,
     1568     320,  1031,   518,   976,   547,   322,   977,   948,  1058,  1519,
     1569    1060,  1061,  1062,  1063,  1520,  1064,  1065,  1438,  1439,  1402,
     1570    1403,  1404,  1498,  1499,  1503,  1504,  1539,  1540,  1066,  1362,
     1571    1067,  1068,  1299,  1300,  1301,  1481,  1069,   145,   954,   955,
     1572     956,  1382,  1462,  1473,  1474,   469,   470,   875,   876,  1039,
    16141573      51,    52,    53,    54,    55,   347,   158,    58,    59,    60,
    16151574      61,    62,   349,    64,    65,   264,    67,    68,   274,   351,
    16161575     352,    71,    72,    73,   118,    75,   204,   354,   119,    78,
    1617      120,    80,    81,   455,    82,   454,   688,   689,   690,   908,
    1618     1086,   909,    83,    84,   458,   456,   696,   855,   856,   857,
    1619      858,   699,   700,   701,   359,   360,   361,   362,   466,   340,
    1620      135,   136,   522,   324,   170,   645,   646,   647,   648,   649,
    1621       85,   121,    87,   489,   490,   939,   491,   277,   495,   325,
    1622       88,   137,   138,    89,  1321,  1108,  1109,  1110,  1111,    90,
    1623       91,   717,    92,   273,    93,    94,   187,  1032,   679,   412,
     1576     120,    80,    81,   455,    82,   454,   689,   690,   691,   909,
     1577    1087,   910,    83,    84,   458,   456,   697,   856,   857,   858,
     1578     859,   700,   701,   702,   359,   360,   361,   362,   466,   340,
     1579     135,   136,   522,   324,   170,   646,   647,   648,   649,   650,
     1580      85,   121,    87,   489,   490,   940,   491,   277,   495,   325,
     1581      88,   137,   138,    89,  1322,  1109,  1110,  1111,  1112,    90,
     1582      91,   718,    92,   273,    93,    94,   187,  1033,   680,   412,
    16241583     125,    95,   501,   502,   503,   188,   268,   190,   191,   192,
    16251584     269,    98,    99,   100,   101,   102,   103,   104,   195,   196,
    1626      197,   198,   199,   825,   605,   606,   607,   608,   200,   610,
    1627      611,   612,   572,   573,   574,   575,   751,   105,   614,   615,
    1628      616,   617,   618,   619,   968,   753,   754,   755,   595,   365,
    1629      366,   367,   368,   326,   164,   107,   108,   109,   370,   694,
    1630      569
     1585     197,   198,   199,   826,   606,   607,   608,   609,   200,   611,
     1586     612,   613,   573,   574,   575,   576,   752,   105,   615,   616,
     1587     617,   618,   619,   620,   969,   754,   755,   756,   596,   365,
     1588     366,   367,   368,   326,   164,   107,   108,   109,   370,   695,
     1589     570
    16311590};
    16321591
    16331592/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16341593   STATE-NUM.  */
    1635 #define YYPACT_NINF -1282
     1594#define YYPACT_NINF -1323
    16361595static const yytype_int16 yypact[] =
    16371596{
    1638     7429,  6461, -1282,    36, -1282, -1282, -1282, -1282, -1282, -1282,
    1639    -1282,    83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1640    -1282, -1282, -1282, -1282, -1282, -1282,   131,   131,   131,  1844,
    1641      994,   124,  7661,   230, -1282, -1282, -1282, -1282, -1282,   175,
    1642    -1282, -1282, -1282,   965,   193, -1282, -1282, -1282, -1282,  5932,
    1643    -1282, -1282, -1282, -1282,   122,   216, -1282,  1880, -1282, -1282,
    1644    -1282, -1282,   251,  1298,   387,    61,  7777, -1282, -1282,  9536,
    1645     1247, -1282, -1282,   557,   425,  3682,   886,   409,   557,  1203,
    1646    -1282, -1282,   744,   941, -1282,   557,  1708, -1282,   342, -1282,
    1647      478,   483, -1282, -1282, -1282, -1282,   384,   216,   131, -1282,
    1648      131, -1282, -1282, -1282, -1282,  2963,  1880, -1282, -1282,  1880,
    1649    -1282,   381, -1282,  8264, -1282, -1282,  1830,  9075, -1282,   713,
    1650      713,   713, -1282, -1282, -1282,   131, -1282, -1282, -1282,   410,
    1651      433,   443, -1282, -1282, -1282,   470, -1282, -1282, -1282, -1282,
    1652    -1282,   487,   492, -1282, -1282,    90,  9044,  2201,   567,   421,
    1653      477,   513,   520,   554,   575,  5546,  6949,   504,   495, -1282,
    1654     9574, -1282, -1282, -1282, -1282,   558, -1282,   116,  4885,  4885,
    1655    -1282,   577,   253, -1282, -1282, -1282, -1282,   613,   284,   302,
    1656      335,   131,   616, -1282, -1282,  1298,  2031,   692, -1282,    65,
    1657    -1282,   131,   131,   216, -1282, -1282,   103, -1282,   131,   131,
    1658    -1282,  3459,   673,   678,   713,  6742, -1282, -1282,   702,  5932,
    1659    -1282, -1282,   557, -1282, -1282, -1282,   216, -1282,  1880,   122,
    1660    -1282,  8115, -1282,   713,   713,   713,   216, -1282,  1844, -1282,
    1661     4853, -1282, -1282,   627,   713, -1282,   713, -1282,   175,  9044,
    1662    -1282,   738, -1282,   994,   742,   713, -1282,  1844,   706,   717,
    1663    -1282,  7661,   598, -1282, -1282, -1282,  9503, -1282, -1282,  5769,
    1664    -1282,   692,    43, 10287,  9075,  1830,  3459, -1282,   197, -1282,
    1665    -1282,  8264,  1880,   745,  7808, -1282, -1282,   441, -1282, 10539,
    1666      754,   784,  3526,   766,  3896,  4720, -1282,   770, -1282, -1282,
    1667    -1282, -1282, 10420, 10420,  8818,   772, -1282, -1282, -1282, -1282,
    1668    -1282, -1282, -1282,   805, -1282,  1317,  2104,  9157,  3896, -1282,
    1669      619,   651,   733,   206,   860,   791,   775,   785,   823,   -65,
    1670    -1282, -1282,   794,   596, -1282,   337, -1282, -1282,  2201, -1282,
    1671    -1282,   290,   810, -1282,   298,   810,   819,   175, -1282, -1282,
    1672      836,  2963, -1282,   844,   858,  9270, -1282, -1282,  1515,  1616,
    1673     8533,  6742,   557, -1282,   557,   713,   713, -1282, -1282, -1282,
    1674    -1282, -1282, -1282,   713,  2963,  1880, -1282, -1282,  9188,  1765,
    1675    -1282,  4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,
    1676     6164,  3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1677    -1282, -1282, -1282, -1282, -1282, -1282,  1830, -1282,   592,   881,
    1678      887,   907,   977,   913,   918,   926,  2031, -1282, -1282,   917,
    1679      122,   952, -1282, -1282,   968, -1282, -1282, -1282,  9503, -1282,
    1680    -1282, -1282, -1282, -1282,  3459, -1282,  9044,  9044, -1282,   713,
    1681     1830,  6861,  1880,  8606, -1282, -1282, -1282, -1282,  9503,    43,
    1682    -1282, -1282,   557,   216, -1282, -1282,  9503, -1282,  5584, -1282,
    1683    -1282,   713,   713,   429,  4617,   967,   975,   972,   982,   713,
    1684    -1282, -1282, -1282, -1282,  9803, -1282,   430,  6623, -1282,   216,
    1685      991, -1282,  1830, 10621, 10344, -1282, -1282, -1282, -1282,   984,
    1686     3459, -1282,  8679,   692,  7545, -1282, -1282, -1282,  1025,   534,
    1687      794,   994,  7808,  1044,  8264, -1282,  7808, -1282, -1282, -1282,
    1688    -1282,   539, -1282,   997,   784,    70,  8818, -1282,  9301, -1282,
    1689    -1282,  8818, -1282,  8931,  8818, -1282, -1282,   999, -1282,   564,
    1690     1000,   689,  1003, -1282, -1282,  9650,  6592, -1282,   291, -1282,
    1691    -1282, 10287, -1282,   331, 10287, -1282, -1282, -1282, -1282, -1282,
    1692    -1282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282,  3896,
    1693     3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
    1694     3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1282,
    1695      596,  1665, -1282, -1282,   131,   131, -1282, -1282,  9044, -1282,
    1696    -1282,   968,   598, -1282,   968, 10363, -1282, -1282, -1282,  5001,
    1697     6592,  1005,  1011, -1282,  9075, -1282, -1282,   558, -1282,  1017,
    1698      501,  1020,  3131,   211,   794, -1282,   131,   131,   794,   231,
    1699    -1282,   131,   131,   968, -1282, -1282,   131,   131, -1282,   810,
    1700     9421,  1880, 10766,    79,   605,  9421, -1282,  5769, -1282,   794,
    1701    -1282,  2963, -1282,   183,  8230,  8230,  8230,  1880, -1282, 10173,
    1702     1006,   869,   840,  1015,  1018, -1282,  1008,  4885,   242, -1282,
    1703     1104,  1880,  8230,   598,  1830,   598,   692,   448,   810, -1282,
    1704    -1282,   771,   810, -1282, -1282, -1282,   784, -1282,   810,   216,
    1705     9803, -1282,   637,  1041,   647,  1049, -1282,  1023,   216, -1282,
    1706    -1282,  9503,   216,  1046,  9301,  1053, -1282,   759, -1282,   357,
    1707      422,   994, -1282,   994,  1051,  3896, -1282,   994, 10766, -1282,
    1708    -1282,  1057, -1282, -1282, -1282,   598, -1282, 10694,   858, -1282,
    1709     8230,   851,  8533, -1282, -1282,   558,  1055,  1056,  1025,  2498,
    1710    -1282, -1282,  7808, -1282, -1282,  1062, -1282, -1282,  1070, -1282,
    1711     1062,  1072, 10539, 10287,  1060,  1061,   100,  1073,  1071,  1088,
    1712     1090, -1282,  1094,  1095,  9688,  6711, -1282, 10287, -1282,   689,
    1713     1753, -1282, -1282, -1282,   131,   131, 10230, 10287,  1080, -1282,
    1714    -1282,   650, -1282, 10287, -1282, -1282,   885, -1282, -1282, -1282,
    1715    -1282,   619,   619,   651,   651,   733,   733,   733,   733,   206,
    1716      206,   860,   791,   775,   785,   823,  3896,    14, -1282,  9803,
    1717     1099,  1100,  1102,  1665, -1282, -1282, -1282, -1282, -1282,  9803,
    1718      657,  8230, -1282,  2963, -1282,  7068,  9383, -1282,  4463,  6949,
    1719    -1282, -1282,   501,  9803,  1030,  1108,  1109,  1110,  1111,  1112,
    1720     1114,  1117, -1282,  3725,  3131, -1282, -1282, -1282, -1282, -1282,
    1721    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1722    -1282, -1282,   968, -1282, -1282, -1282,   794, -1282, -1282, -1282,
    1723    -1282, -1282, -1282, -1282, -1282,  1118, -1282,  1120,  1122, -1282,
    1724    -1282,   122,  1080, 10173, -1282, -1282, -1282,  6164,  1123, -1282,
    1725    -1282, -1282, -1282,   994,  6295,  1204, -1282, -1282, -1282, -1282,
    1726     1116,   122, -1282, -1282,   968, -1282, -1282,   968,   125,   968,
    1727    -1282, -1282, -1282, -1282, -1282, -1282,  9612, -1282,   216, -1282,
    1728    -1282,   460,   467,  9188,  7187,  1951,  3896,  3145, -1282, -1282,
    1729     1105,    87,  1105, -1282,   994, -1282,   131, -1282, -1282,  8451,
    1730      972, -1282, -1282, -1282,   975,  1133,  1129, -1282, -1282,  1137,
    1731     1146, -1282,   851,  1870, -1282,   683, -1282,  2498,   794, -1282,
    1732     1149,  7808,  9721,  9044,  1151, -1282, -1282,  1150,  1152,  1138,
    1733    -1282,  3896,  1158,   250,  1153, -1282,  1157,   598,  1157, -1282,
    1734    -1282,  1157,  1160, -1282,  1166,  1169,  1172,  1753, -1282, -1282,
    1735    -1282,  6164, -1282, -1282, -1282, -1282,  1168, 10287,  1175,   598,
    1736    -1282, 10287, -1282,   598, -1282, -1282, 10287, -1282,   809,   810,
    1737    -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,   858,  9270,
    1738    -1282, -1282,  7306,  1180, -1282,   829,   810, -1282,   854,   868,
    1739      810, -1282,   713,  4154, -1282, -1282, -1282,  9803,  9803, -1282,
    1740     8606,  8606, -1282,  1176,  1181,  1183,  1189, -1282,  1179,   724,
    1741      -22,  1080, -1282,   598, -1282,  4885, -1282, 10287,   475, -1282,
    1742     6430,  1191,  1192, 10116,  1193,  1195,    21,    55,   195, 10287,
    1743     1196,   216, 10287, 10287,  1182,  1205,   579,  1209, -1282, -1282,
    1744    -1282,  1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1745    -1282,   994,  1213, 10287, -1282,  9803,  9803,   131,  1214, -1282,
    1746     8962, -1282, -1282,   893, -1282,  3145, -1282, -1282, -1282, -1282,
    1747      759, -1282, -1282,  1218, -1282, -1282, -1282, -1282,  1227,  1870,
    1748    -1282, -1282,  1215, -1282,  1062, -1282, -1282,  1830,  1231, -1282,
    1749    -1282, -1282,   669,  1234, -1282,   100,  1237,  3896,  1220,   100,
    1750      100,  1248,  9650,   876,   810, -1282, -1282,  1008, 10287,  1251,
    1751     1168,   563,   204,  1250, -1282, -1282,  1255,  1250, -1282, -1282,
    1752     1258, -1282, -1282,   968,  1259,  1261,  6830,  1263,  1265,  1267,
    1753    -1282, -1282,  1273, -1282, -1282,   968, -1282, -1282, -1282, -1282,
    1754      968, 10287, 10287,   858,  1275, -1282, -1282, -1282, -1282, -1282,
    1755    -1282, -1282, -1282, -1282, -1282, -1282, -1282,  3896,  3896,  1278,
    1756     1279,  1250, -1282, -1282,   994, -1282, -1282, -1282,  8042,  9721,
    1757    10287, 10287,  1345, 10287, -1282,  1266, -1282,  1268, -1282,  1276,
    1758    10287,  1282, 10287,  1096,  1293,    49,   131,  5155,  1347, -1282,
    1759    -1282,  6295,  1280,   482, -1282, -1282, -1282, -1282, -1282, -1282,
    1760    -1282, -1282, -1282,  9936, -1282,  8679,  1287, -1282, -1282,  9721,
    1761      490,   497, -1282,  1290,  1281,   784,  1319, -1282,   334, -1282,
    1762    -1282, -1282, -1282,   968,  1323, -1282, -1282,  1327,   444,   549,
    1763      598,  1332, -1282,  1333, -1282,  9803, -1282, -1282, -1282, -1282,
    1764    -1282,  1334, -1282,  9803,  9803,  9803, -1282, -1282,  1335, -1282,
    1765     1337,  1341,  1343,   735,  8303,  8418, -1282, -1282,   248, -1282,
    1766     1351,  1356, -1282,  8752,   676,   686,  1350,   707,  6096, -1282,
    1767    -1282, -1282,   537, -1282,   716,  1365,  1367,   216,  1419,   951,
    1768    -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282,  1370,
    1769     1372, -1282, -1282, -1282,  1369, -1282, -1282, -1282, -1282, -1282,
    1770    -1282,  9721,   784,  1375, -1282,  1353,   784,  9803, -1282, -1282,
    1771    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1772    -1282, -1282,  1378,  1379, -1282, -1282, -1282, -1282, -1282, -1282,
    1773    -1282,  1377, -1282,  1382, -1282, -1282, 10116,   104, 10287, 10116,
    1774    -1282,  1387, 10287, -1282,   243,  1402,  1405, -1282, -1282,  1393,
    1775     1394,  1388, -1282,   916, -1282, -1282, -1282,  1880,  1830,  1389,
    1776    -1282,   246,  3896, -1282,   729, -1282,   598,   598,  1399,  1400,
    1777     1404,  1409, -1282, -1282,  8606,  1407, -1282,  1479,  3896,  1395,
    1778    -1282, -1282, 10028, -1282,   757, -1282,  1401, 10116,  1403, -1282,
    1779    -1282,  1416, -1282,  1417, -1282,  1436,  1440, -1282,  1408,  9721,
    1780    -1282, -1282, -1282,   784,   598,  1429,  1411,  1431,  1250,  1250,
    1781    -1282, -1282, -1282, -1282, -1282, 10116,    10, -1282,   370, -1282,
    1782    -1282,  7893, -1282, -1282,  1412, 10287, -1282, 10287,  7893,   216,
    1783     9301,   216,  9301,  1437, -1282,  1438, -1282, -1282,  1434, -1282,
    1784    -1282,   790, -1282, -1282, -1282,  1441,  1442, -1282,  3896,  3896,
    1785    -1282, -1282,   998,    93, -1282, -1282,  1424, -1282,   998, -1282,
    1786    -1282,  2145,   598, -1282, -1282,   216,  9301,   216,  9301,  1446,
    1787     1425,   598, -1282, -1282, -1282, -1282, 10028,  1443,   998,  7969,
    1788    10287,  9940,  1455,   998,  1463,  2145,  3286, -1282, -1282, -1282,
    1789     1465, -1282, -1282, -1282, -1282,  9044, -1282, -1282, -1282,  9807,
    1790    -1282, 10028, -1282, -1282,  1453,  5404, -1282, -1282,  9940,   216,
    1791     3286,   216,  1476,  1478,   831, -1282,  9807, -1282, -1282, -1282,
    1792     5404, -1282, -1282, -1282,   216,   216, -1282, -1282, -1282, -1282,
    1793    -1282, -1282, -1282, -1282
     1597    7329,  8828, -1323,    37, -1323, -1323, -1323, -1323, -1323, -1323,
     1598   -1323,   109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1599   -1323, -1323, -1323, -1323, -1323, -1323,    85,    85,    85,   873,
     1600     733,   178,  7561,   370, -1323, -1323, -1323, -1323, -1323,   191,
     1601   -1323, -1323, -1323,   614,   225, -1323, -1323, -1323, -1323,  4615,
     1602   -1323, -1323, -1323, -1323,   229,   285, -1323,   934, -1323, -1323,
     1603   -1323, -1323,   435,  1196,   579,   110,  7677, -1323, -1323,  4858,
     1604    1038, -1323, -1323,   580,   596,  6761,  1021,   875,   580,  1103,
     1605   -1323, -1323,  1317,   308, -1323,   580,  1224, -1323,   495, -1323,
     1606     616,   623, -1323, -1323, -1323, -1323,   547,   285,    85, -1323,
     1607      85, -1323, -1323, -1323, -1323,  9174,   934, -1323, -1323,   934,
     1608   -1323,   551, -1323,  9403, -1323, -1323,  1899,  9436, -1323,   844,
     1609     844,   844, -1323, -1323, -1323,    85, -1323, -1323, -1323,   584,
     1610     608,   632, -1323, -1323, -1323,   646, -1323, -1323, -1323, -1323,
     1611   -1323,   664,   687, -1323, -1323,   -28,  8797,  2908,   117,   701,
     1612     717,   726,   771,   786,   799,  8715,  6849,   731,   757, -1323,
     1613    5600, -1323, -1323, -1323, -1323,   804, -1323,   223,  5225,  5225,
     1614   -1323,   802,   365, -1323, -1323, -1323, -1323,   816,   443,   480,
     1615     534,    85,   827, -1323, -1323,  1196,  4341,   868, -1323,    50,
     1616   -1323,    85,    85,   285, -1323, -1323,    61, -1323,    85,    85,
     1617   -1323,  4647,   857,   864,   844,  6523, -1323, -1323,   869,  4615,
     1618   -1323, -1323,   580, -1323, -1323, -1323,   285, -1323,   934,   229,
     1619   -1323,  7868, -1323,   844,   844,   844,   285, -1323,   873, -1323,
     1620    5676, -1323, -1323,   852,   844, -1323,   844, -1323,   191,  8797,
     1621   -1323,   884, -1323,   733,   890,   844, -1323,   873,   888,   892,
     1622   -1323,  7561,   631, -1323, -1323, -1323,  9256, -1323, -1323,  9621,
     1623   -1323,   868,   151, 10214,  9436,  1899,  4647, -1323,    88, -1323,
     1624   -1323,  9403,   934,   891,  7708, -1323, -1323,   347, -1323, 10561,
     1625     922,   956, 10347,   945, 10366, 10423, -1323,   954, -1323, -1323,
     1626   -1323, -1323, 10442, 10442,  8571,   952, -1323, -1323, -1323, -1323,
     1627   -1323, -1323, -1323,   988, -1323,   966,  1946,  8910, 10366, -1323,
     1628     756,   338,   485,   411,   635,   955,   947,   957,   984,   237,
     1629   -1323, -1323,   962,   647, -1323,   302, -1323, -1323,  2908, -1323,
     1630   -1323,   235,   985, -1323,   312,   985,   989,   191, -1323, -1323,
     1631     990,  9174, -1323,   999,  1006,  9023, -1323, -1323,  1335,  2030,
     1632    8286,  6523,   580, -1323,   580,   844,   844, -1323, -1323, -1323,
     1633   -1323, -1323, -1323,   844,  9174,   934, -1323, -1323,  9474,  1575,
     1634   -1323,  8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,
     1635    5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1636   -1323, -1323, -1323, -1323, -1323, -1323,  1899, -1323,   973,   991,
     1637     992,  1012,   978,  1017,  1018,  1020,  4341, -1323, -1323,  1029,
     1638     229,  1031, -1323, -1323,  1033, -1323, -1323, -1323,  9256, -1323,
     1639   -1323, -1323, -1323, -1323,  4647, -1323,  8797,  8797, -1323,   844,
     1640    1899,  6642,   934,  8359, -1323, -1323, -1323, -1323,  9256,   151,
     1641   -1323, -1323,   580,   285, -1323, -1323,  9256, -1323,  5770, -1323,
     1642   -1323,   844,   844,   337,  8204,  1032,  1036,  1023,  1042,   844,
     1643   -1323, -1323, -1323, -1323,  9660, -1323,   367,  6404, -1323,   285,
     1644    1044, -1323,  1899, 10643, 10271, -1323, -1323, -1323, -1323,  1015,
     1645    4647, -1323,  8432,   868,  7445, -1323, -1323, -1323,   843,   436,
     1646     962,   733,  7708,  1341,  9403, -1323,  7708, -1323, -1323, -1323,
     1647   -1323,   508, -1323,  1051,   956,   248,  8571, -1323,  9512, -1323,
     1648   -1323,  8571, -1323,  8684,  8571, -1323, -1323,  1049, -1323,   606,
     1649    1057,   682,  1059, -1323, -1323,  3527,  6492, -1323,   362, -1323,
     1650   -1323, 10214, -1323,   368, 10214, -1323, -1323, -1323, -1323, -1323,
     1651   -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,
     1652   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,
     1653   10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,  3593, 10214,
     1654   -1323,   647,  1677, -1323, -1323,    85,    85, -1323, -1323,  8797,
     1655   -1323, -1323,  1033,   631, -1323,  1033, 10290, -1323, -1323, -1323,
     1656    5046,  6492,  1060,  1063, -1323,  9436, -1323, -1323,   804, -1323,
     1657    1067,   750,  1068,  2627,   125,   962, -1323,    85,    85,   962,
     1658     132, -1323,    85,    85,  1033, -1323, -1323,    85,    85, -1323,
     1659     985,  9545,   934, 10788,   532,   656,  9545, -1323,  9621, -1323,
     1660     962, -1323,  9174, -1323,   238,  7983,  7983,  7983,   934, -1323,
     1661    5791,  1047,  1008,   493,  1058,  1061, -1323,  1076,  5225,   528,
     1662   -1323,  1165,   934,  7983,   631,  1899,   631,   868,   430,   985,
     1663   -1323, -1323,   536,   985, -1323, -1323, -1323,   956, -1323,   985,
     1664     285,  9660, -1323,   619,  1086,   633,  1088, -1323,  1087,   285,
     1665   -1323, -1323,  9256,   285,  1089,  9512,  1092, -1323,  1065, -1323,
     1666     538,   552,   733, -1323,   733,  1085, 10366, -1323,   733, 10788,
     1667   -1323, -1323,  1096, -1323, -1323, -1323,   631, -1323, 10716,  1006,
     1668   -1323,  7983,   703,  8286, -1323, -1323,   804,  1095,  1098,   843,
     1669    5016, -1323, -1323,  7708, -1323, -1323,  1091, -1323, -1323,  1102,
     1670   -1323,  1091,  1104, 10561, 10214,  1090,  1093,    94,  1109,  1107,
     1671    1111,  1114, -1323,  1118,  1129,  9365,  6611, -1323, 10214, -1323,
     1672     682,  1717, -1323, -1323, -1323,    85,    85, 10157, 10214,  1125,
     1673   -1323, -1323,   653, -1323, 10214, -1323, -1323,   736, -1323, -1323,
     1674   -1323, -1323,   756,   756,   338,   338,   485,   485,   485,   485,
     1675     411,   411,   635,   955,   947,   957,   984, 10366,   260, -1323,
     1676    9660,  1132,  1136,  1137,  1677, -1323, -1323, -1323, -1323, -1323,
     1677    9660,   708,  7983, -1323,  9174, -1323,  6968,  9136, -1323,  8017,
     1678    6849, -1323, -1323,   750,  9660,  1022,  1140,  1141,  1142,  1143,
     1679    1146,  1149,  1154, -1323,  3715,  2627, -1323, -1323, -1323, -1323,
     1680   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1681   -1323, -1323, -1323,  1033, -1323, -1323, -1323,   962, -1323, -1323,
     1682   -1323, -1323, -1323, -1323, -1323, -1323,  1155, -1323,  1157,  1159,
     1683   -1323, -1323,   229,  1125,  5791, -1323, -1323, -1323,  5958,  1158,
     1684   -1323, -1323, -1323, -1323,   733,  6174,  1248, -1323, -1323, -1323,
     1685   -1323,  1151,   229, -1323, -1323,  1033, -1323, -1323,  1033,    84,
     1686    1033, -1323, -1323, -1323, -1323, -1323, -1323,  9327, -1323,   285,
     1687   -1323, -1323,   559,   562,  9474,  7087,  2137, 10366,  3114, -1323,
     1688   -1323,  1156,    51,  1156, -1323,   733, -1323,    85, -1323, -1323,
     1689    8941,  1023, -1323, -1323, -1323,  1036,  1175,  1171, -1323, -1323,
     1690    1178,  1181, -1323,   703,  1901, -1323,   672, -1323,  5016,   962,
     1691   -1323,  1184,  7708,  9583,  8797,  1185, -1323, -1323,  1180,  1187,
     1692    1170, -1323, 10366,  1197,   326,  1194, -1323,  1202,   631,  1202,
     1693   -1323, -1323,  1202,  1199, -1323,  1208,  1210,  1211,  1717, -1323,
     1694   -1323, -1323,  5958, -1323, -1323, -1323, -1323,  1209, 10214,  1212,
     1695     631, -1323, 10214, -1323,   631, -1323, -1323, 10214, -1323,   558,
     1696     985, -1323, -1323, -1323, -1323, -1323, -1323, -1323,  1008,  1006,
     1697    9023, -1323, -1323,  7206,  1218, -1323,   674,   985, -1323,   813,
     1698     861,   985, -1323,   844,  4029, -1323, -1323, -1323,  9660,  9660,
     1699   -1323,  8359,  8359, -1323,  1215,  1216,  1225,  1230, -1323,  1232,
     1700     685,    82,  1125, -1323,   631, -1323,  5225, -1323, 10214,   564,
     1701   -1323,  6373,  1236,  1240, 10100,  1242,  1243,    70,    79,    96,
     1702   10214,  1244,   285, 10214, 10214,  1227,  1249,   522,  1222, -1323,
     1703   -1323, -1323,  1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1704   -1323, -1323,   733,  1254, 10214, -1323,  9660,  9660,    85,  1257,
     1705   -1323,  9054, -1323, -1323,   752, -1323,  3114, -1323, -1323, -1323,
     1706   -1323,  1065, -1323, -1323,  1255, -1323, -1323, -1323, -1323,  1258,
     1707    1901, -1323, -1323,  1245, -1323,  1091, -1323, -1323,  1899,  1260,
     1708   -1323, -1323, -1323,   713,  1264, -1323,    94,  1269, 10366,  1252,
     1709      94,    94,  1262,  3527,   879,   985, -1323, -1323,  1076, 10214,
     1710    1273,  1209,   358,   204,  1270, -1323, -1323,  1275,  1270, -1323,
     1711   -1323,  1278, -1323, -1323,  1033,  1280,  1284,  6730,  1285,  1290,
     1712    1291, -1323, -1323,  1286, -1323, -1323,  1033, -1323, -1323, -1323,
     1713   -1323,  1033, 10214, 10214,  1006,  1294, -1323, -1323, -1323, -1323,
     1714   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,
     1715    1300,  1302,  1270, -1323, -1323,   733, -1323, -1323, -1323,  5213,
     1716    9583, 10214, 10214,  1374, 10214, -1323,  1295, -1323,  1296, -1323,
     1717    1297, 10214,  1301, 10214,  1105,  1304,    12,    85,  9289,  1625,
     1718   -1323, -1323,  6174,  1322,   573, -1323, -1323, -1323, -1323, -1323,
     1719   -1323, -1323, -1323, -1323,  9920, -1323,  8432,  1330, -1323, -1323,
     1720    9583,   576,   602, -1323,  1331,  1315,   956,  1337, -1323,   329,
     1721   -1323, -1323, -1323, -1323,  1033,  1339, -1323, -1323,  1320,   486,
     1722     509,   631,  1340, -1323,  1344, -1323,  9660, -1323, -1323, -1323,
     1723   -1323, -1323,  1347, -1323,  9660,  9660,  9660, -1323, -1323,  1348,
     1724   -1323,  1351,  1354,  1355,   716,  8056,  8171, -1323, -1323,   529,
     1725   -1323,  1357,  1362, -1323,  8505,   721,   730,  1358,   761,  3837,
     1726   -1323, -1323, -1323,   605, -1323,   766,  1366,  1367,   285,  1419,
     1727     834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,
     1728    1370,  1375, -1323, -1323, -1323,  1372, -1323, -1323, -1323, -1323,
     1729   -1323, -1323,  9583,   956,  1379, -1323,  1352,   956,  9660, -1323,
     1730   -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,
     1731   -1323, -1323, -1323,  1378,  1382, -1323, -1323, -1323, -1323, -1323,
     1732   -1323, -1323,  1387, -1323,  1386, -1323, -1323, 10100,   289, 10214,
     1733   10100, -1323,  1389, 10214, -1323,   318,  1405,  1406, -1323, -1323,
     1734    1399,  1400,  1380, -1323,   821, -1323, -1323, -1323,   934,  1899,
     1735    1396, -1323,   402, 10366, -1323,   785, -1323,   631,   631,  1407,
     1736    1408,  1413,  1415, -1323, -1323,  8359,  1414, -1323,  1490, 10366,
     1737    1385, -1323, -1323, 10012, -1323,   800, -1323,  1402, 10100,  1403,
     1738   -1323, -1323,  1426, -1323,  1427, -1323,  1445,  1446, -1323,  1411,
     1739    9583, -1323, -1323, -1323,   956,   631,  1434,  1417,  1435,  1270,
     1740    1270, -1323, -1323, -1323, -1323, -1323, 10100,   107, -1323,   433,
     1741   -1323, -1323,  7793, -1323, -1323,  1418, 10214, -1323, 10214,  7793,
     1742     285,  9512,   285,  9512,  1436, -1323,  1442, -1323, -1323,  1440,
     1743   -1323, -1323,   825, -1323, -1323, -1323,  1444,  1449, -1323, 10366,
     1744   10366, -1323, -1323,   909,   211, -1323, -1323,  1425, -1323,   909,
     1745   -1323, -1323,  2166,   631, -1323, -1323,   285,  9512,   285,  9512,
     1746    1453,  1431,   631, -1323, -1323, -1323, -1323, 10012,  1443,   909,
     1747    6091, 10214,  9924,  1452,   909,  1454,  2166,  3344, -1323, -1323,
     1748   -1323,  1458, -1323, -1323, -1323, -1323,  8797, -1323, -1323, -1323,
     1749    9791, -1323, 10012, -1323, -1323,  1438,  9703, -1323, -1323,  9924,
     1750     285,  3344,   285,  1464,  1466,   853, -1323,  9791, -1323, -1323,
     1751   -1323,  9703, -1323, -1323, -1323,   285,   285, -1323, -1323, -1323,
     1752   -1323, -1323, -1323, -1323, -1323
    17941753};
    17951754
     
    17971756static const yytype_int16 yypgoto[] =
    17981757{
    1799    -1282,  4519,  3402, -1282,   393, -1282,   353,   929,  -255,   927,
    1800    -1282,   536,  -524,  -496,  -864,   -86,  4763,     0, -1282,  1012,
    1801      494,   506,   417,   512,  1032,  1034,  1040,  1042,  1039, -1282,
    1802     -348,  -520,  3026,  -967, -1282,  -684,   629,   -16,  -590,   453,
    1803    -1282,   172, -1282,   397, -1192, -1282, -1282,   141, -1282, -1281,
    1804    -1043,   247, -1282, -1282, -1282, -1282,    72, -1149, -1282, -1282,
    1805    -1282, -1282, -1282, -1282,   315,  -843,    50, -1282,  -384, -1282,
    1806      498,   288, -1282,   167, -1282,  -343, -1282, -1282, -1282,   546,
    1807     -651, -1282, -1282,     8, -1002,    97,  1423, -1282, -1282, -1282,
    1808     -125, -1282,    23,  1201,  -202,  1925,  4332, -1282, -1282,    52,
    1809      224,   459,  1086, -1282,  1865, -1282, -1282,    25,  2362, -1282,
    1810     2640,  1529, -1282, -1282, -1282,  -646, -1282,   935,   945,   535,
    1811      718,    78, -1282, -1282, -1282,   934,   722,  -464, -1282,   -94,
    1812      -89,   313, -1282, -1282,  -870,  -942,   -24,  1177,  1054,   368,
    1813    -1282,  1732,   548,  -317,  -213,  -127,   662,   776, -1282,   990,
    1814    -1282,  3077,  1178,  -438,   923, -1282, -1282,   710, -1282,  -234,
    1815    -1282,    99, -1282, -1282, -1282, -1240,   423, -1282, -1282, -1282,
    1816     1170, -1282,   -20, -1282, -1282,  -853,  -105, -1239,  -126,  2286,
    1817    -1282,  2146, -1282,   921, -1282,  -146,    59,  -177,  -171,  -166,
    1818        7,   -40,   -28,   -27,   725,     4,    28,    37,   -63,  -154,
    1819     -151,  -150,  -141,  -271,  -540,  -513,  -508,  -569,  -320,  -517,
    1820    -1282, -1282,  -518,  1092,  1093,  1097,  1371,  5065,  -582,  -555,
    1821     -549,  -535,  -441, -1282,  -497,  -722,  -721,  -701,  -607,  -309,
    1822     -346, -1282, -1282,   185,   133,   -15, -1282,  3702,   -45,  -609,
    1823     -238
     1758   -1323,  4572,  3263, -1323,   197, -1323,   601,   950,  -251,   910,
     1759   -1323,   521,  -520,  -467,  -853,   -64,  3183,     0, -1323,  -150,
     1760     423,   446,   477,   450,  1016,  1025,  1019,  1026,  1028, -1323,
     1761    -622,  -408,  5012,  -745, -1323,  -735,   604,   472,  -656,   413,
     1762   -1323,  1279, -1323,   374, -1058, -1323, -1323,   126, -1323,  -823,
     1763   -1106,   222, -1323, -1323, -1323, -1323,    58, -1209, -1323, -1323,
     1764   -1323, -1323, -1323, -1323,   301, -1149,    35, -1323,  -933, -1323,
     1765     482,   274, -1323,   159, -1323,  -303, -1323, -1323, -1323,   535,
     1766    -827, -1323, -1323,    15, -1007,    71,    28, -1323, -1323, -1323,
     1767     -21, -1323,   357,  1253,  -198,  1636,  4113, -1323, -1323,    80,
     1768      54,   422,  1473, -1323,  1886, -1323, -1323,   192,  2183, -1323,
     1769    2495,   898, -1323, -1323, -1323,  -638, -1323,   924,   925,   524,
     1770     699,    83, -1323, -1323, -1323,   915,   695,  -339, -1323,  -106,
     1771      34,  1281, -1323, -1323,  -847,  -986,  1046,  1127,  1039,     5,
     1772   -1323,  1536,   481,  -165,  -210,  -124,   651,   758, -1323,   979,
     1773   -1323,  2789,  1548,  -413,   904, -1323, -1323,   689, -1323,  -235,
     1774   -1323,   158, -1323, -1323, -1323, -1257,   401, -1323, -1323, -1323,
     1775    1148, -1323,    21, -1323, -1323,  -858,  -105, -1322,  -129,  2267,
     1776   -1323,  2391, -1323,   906, -1323,  -184,    59,  -180,  -173,  -170,
     1777       7,   -40,   -35,   -33,    60,    -6,    25,    93,  -168,  -164,
     1778    -158,  -147,  -144,  -292,  -471,  -462,  -452,  -551,  -302,  -537,
     1779   -1323, -1323,  -511,  1069,  1072,  1074,  2608,  4844,  -578,  -514,
     1780    -502,  -495,  -500, -1323,  -508,  -724,  -717,  -708,  -590,  -305,
     1781    -195, -1323, -1323,   246,    19,    36, -1323,  3865,   104,  -623,
     1782    -397
    18241783};
    18251784
     
    18271786   positive, shift that token.  If negative, reduce the rule which
    18281787   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1829 #define YYTABLE_NINF -521
     1788#define YYTABLE_NINF -522
    18301789static const yytype_int16 yytable[] =
    18311790{
    1832       49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
    1833      766,   267,   143,   844,   400,   150,   151,   740,   628,   401,
    1834      827,  1070,   632,    63,   752,    76,   505,   964,   965,   609,
    1835      566,   402,    49,   826,   403,   404,   596,   868,  1187,    97,
    1836      407,   383,   384,   147,   405,   819,   919,   152,   966,    49,
    1837       50,   820,    69,   794,   725,    63,   161,    76,   730,    96,
    1838      815,   410,   357,   186,   567,   821,   209,   358,   166,    49,
    1839      193,   153,   973,   216,  1177,   669,   226,   219,   604,  1171,
    1840      154,  1379,    50,   818,    69,  1204,  1205,   816,   399,   202,
    1841      260,    96,   817,  1195,   400,   678,   425,    56,   115,   401,
    1842     1178,   327,   148,   682,    31,   113,  1468,   409,    96,   673,
    1843      675,   402,  1302,   113,   403,   404,   266,   271,   122,  1137,
    1844      407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
    1845      747,   471,  1178,   106,   106,   475,   477,  -232,  -232,   203,
    1846      342,   280,    31,   948,   986,   149,   307,   147,  1398,  1399,
    1847     1169,  1170,   476,  1196,   161,   113,   345,   150,   151,  1439,
    1848      209,  1245,   830,   210,   436,   106,   220,   373,   837,  1181,
    1849       31,   859,   860,   714,   252,   923,   411,   729,   815,  1458,
    1850      735,  1303,   291,   964,   965,   186,   186,  1198,   877,   152,
    1851      913,   847,   123,   161,   327,   848,   742,   667,   411,   281,
    1852      736,   266,   106,   408,   966,   816,    96,   527,  -232,    49,
    1853      817,   951,   419,   153,   411,  1443,   161,   720,  1400,    96,
    1854     1443,   209,   154,  1069,    70,   149,   436,   173,   443,   168,
    1855     1439,   463,   377,   142,   163,  1077,    31,   150,   151,   307,
    1856     1443,   144,  1016,   804,   398,   189,   931,  1443,   378,   734,
    1857       31,    49,   723,   169,  1080,  1015,    70,   819,    97,   271,
    1858      664,   798,   166,   820,   271,   266,   266,  1199,    96,   253,
    1859       31,   113,   815,   161,    63,   991,    76,   821,   519,   472,
    1860       96,    76,   609,  1171,   146,   853,  1187,  1398,  1399,  1248,
    1861      212,   656,   476,   471,   307,  1003,   556,   557,   163,   816,
    1862      598,    50,  1139,    69,   817,   155,   481,   307,   411,  1525,
    1863       96,   596,  1200,   471,   568,  1093,   596,  1249,   441,   671,
    1864      828,   471,   601,   571,   479,   676,   588,   447,   147,  1536,
    1865      171,   558,   559,  1171,   664,   373,  1540,   994,   898,   357,
    1866      835,   113,   601,   665,   358,   345,   460,   922,    56,   602,
    1867      620,   827,  1526,   870,   111,   642,   342,  1409,  1070,  -467,
    1868     1118,  -467,  1423,   110,   625,   417,   831,   181,   625,   387,
    1869      834,   113,   871,   830,    41,    42,  1424,   819,  -467,  1541,
    1870     1119,   327,   327,   820,   106,   388,  1084,    96,   437,  1186,
    1871      201,   851,   844,   713,   435,   854,   266,   821,   445,   579,
    1872      390,   411,   759,   110,  1169,  1170,   186,   582,   603,   411,
    1873      672,   674,  -289,   373,    41,    42,   391,   665,   392,     8,
    1874        9,    10,    11,    12,   266,   177,   307,   307,  -288,  1496,
    1875      266,  1116,   357,   625,   393,  1501,   714,   358,   985,  1187,
    1876      702,   472,   764,    76,  1325,   442,  1187,   577,    31,   327,
    1877      176,   394,  1171,   578,   113,  1521,   435,   996,   247,  1201,
    1878     1528,   472,   804,    76,  1326,   189,   520,   395,   327,   472,
    1879     1126,    76,   266,   914,   261,    70,    34,   262,   250,   523,
    1880      266,   952,   625,  -516,    49,  1135,  1469,   373,   719,   915,
    1881      519,    97,   163,   252,   113,   519,   357,  1187,   519,   176,
    1882     1470,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
    1883      342,   307,   263,   307,   307,  1029,   110,  1016,  1244,   -10,
    1884      869,   750,  1428,  1429,  1434,   113,   345,    41,    42,   229,
    1885      881,   330,   230,   327,    50,   234,    69,   236,   916,   683,
    1886      704,   910,  -440,    96,   245,   578,   705,   603,   176,   879,
    1887      804,   787,  -441,  1014,   917,  1330,   471,   882,   922,   411,
    1888     1069,     2,   206,     4,     5,     6,     7,  1157,  1159,   493,
    1889      571,   571,   494,    37,   212,   845,   914,    40,   307,   276,
    1890      598,    56,   928,   916,    41,    42,   439,   331,  1126,   625,
    1891      345,  1184,  1081,   913,   620,   714,   278,  1236,  1184,  1082,
    1892      602,   279,   602,   922,   372,   465,  1316,  1185,  1019,  1484,
    1893      812,   176,   601,  1318,  1308,   680,   371,   106,    45,    46,
    1894      625,   110,  1317,   332,   912,   625,    35,   620,    36,  1319,
    1895      333,   625,    41,    42,   625,   625,   625,  1362,  1138,   691,
    1896      483,   706,   806,  1512,   721,  1514,   702,   500,  1027,   731,
    1897      722,   286,   625,   747,   266,   732,   713,  1276,  1277,   814,
    1898     1332,   603,    41,    42,   334,   176,  1014,   376,  1074,  1363,
    1899      110,   229,   176,  -120,   746,  -120,   252,   329,   520,  -120,
    1900      747,    41,    42,   520,   113,   335,   520,   907,   514,  1029,
    1901      596,   523,   385,   523,  -120,  -120,   523,   212,  1360,   523,
    1902     1101,   252,   329,   411,   472,   570,    76,   411,    70,  1112,
    1903      625,   933,   620,    45,    46,   357,   177,   849,   719,   719,
    1904      358,   850,   389,     8,     9,    10,    11,    12,   399,   342,
    1905      472,  1234,    76,   629,   400,  1238,   549,   633,   498,   401,
    1906     1034,   176,   550,   551,   113,   345,   911,   892,   397,   750,
    1907      750,   402,    31,   747,   403,   404,   409,   894,   176,   450,
    1908      980,   407,   176,   747,   405,   702,   981,   993,   711,   922,
    1909      552,   553,  1408,   705,   162,   702,   804,   814,   603,  1232,
    1910       34,  1373,   426,   964,   965,   578,  1356,   427,   194,   702,
    1911     1474,   217,   747,   571,   227,   849,  1357,  1474,   749,  1100,
    1912      411,   625,   747,   625,   966,   999,    45,    46,   625,   345,
    1913     1161,   229,   602,   234,   432,   713,   110,  1359,   139,   238,
    1914      111,   554,   555,   747,   602,   176,  1364,    41,    42,   922,
    1915      922,    37,   747,   183,   184,    40,  -103,   714,   461,  1426,
    1916     -103,   890,    41,    42,   408,  1423,   442,  1348,  1522,   462,
    1917      897,  1349,  -364,   239,   899,  1476,  -393,  1477,   240,   484,
    1918      952,   806,  1425,   504,   952,   952,   291,  1444,   905,   691,
    1919      411,   814,   162,   747,   307,   508,    45,    46,  1436,   513,
    1920      885,   760,   411,   603,   525,   374,   765,   527,   342,   906,
    1921        2,   206,     4,     5,     6,     7,   625,    63,   327,    76,
    1922     1490,   229,   563,   113,   345,   907,  1491,   907,  1182,   562,
    1923     1523,   162,   110,   564,   139,   140,   714,   565,  1141,   113,
    1924      411,   338,   212,    41,    42,   568,    69,   711,  -437,    48,
    1925      112,  1168,   933,   933,   162,   465,   212,   719,  1153,   664,
    1926      411,  1546,   113,   307,   910,   586,   444,   578,  1494,  1436,
    1927     1105,   864,   560,   561,   845,    35,   589,    36,   112,   112,
    1928      932,    48,   601,  1156,  1083,   601,   911,   750,    45,    46,
    1929       -3,    56,    48,   775,   776,   777,   778,  1158,    48,   601,
    1930     1323,   638,   176,   891,  1508,  1241,    48,   411,  1087,   846,
    1931     1087,   657,    48,   702,   702,    48,   603,   658,    48,   345,
    1932      984,   981,  1227,   329,   411,   861,   878,   106,   880,  1369,
    1933     1370,   112,   112,   110,   176,   139,   140,   659,    -3,   876,
    1934      625,   625,   665,   661,    41,    42,   666,   912,   662,   212,
    1935      176,  1418,   981,  1126,   922,    48,   663,    37,    48,  1106,
    1936      307,    40,  1398,  1399,   176,    48,   771,   772,    41,    42,
    1937      922,   702,   702,   374,   737,   243,   738,   713,   927,   739,
    1938      773,   774,   743,   472,   668,    76,   110,  1380,   139,   140,
    1939     1079,  1380,   779,   780,    43,   106,    48,    41,    42,   257,
    1940      113,   692,    45,    46,    48,   907,   419,   660,   411,    48,
    1941      907,   693,  1189,   481,   329,   411,   697,    37,    70,   933,
    1942      500,    40,   987,   695,   691,  -236,   733,   266,    41,    42,
    1943      748,   744,   992,   756,    48,    48,   110,   807,   139,   140,
    1944      922,   922,   625,   808,   867,   176,  1004,    41,    42,   811,
    1945       48,   374,   822,   873,   718,   896,   -12,    56,    48,   828,
    1946      329,   601,    45,    46,   911,   -13,   345,    48,   866,   911,
    1947       48,   893,   213,   726,  1295,  1296,  1297,   112,   727,   895,
    1948      900,   232,  1331,  1333,  1334,   903,   921,  -414,  1459,   711,
    1949     -520,   936,   112,   106,  1284,  1285,   112,  1287,   722,   943,
    1950       48,   112,   945,   956,  1292,  1351,  1294,   957,   271,   113,
    1951      949,   498,   342,   950,    48,    48,   977,   219,   958,  1312,
    1952      959,    48,   116,   213,   960,   961,  -290,   113,    48,   988,
    1953      989,   307,   990,     8,     9,    10,    11,    12,  1005,  1006,
    1954     1007,  1008,  1009,  1203,  1010,   625,   442,  1011,  1022,   113,
    1955     -402,   702,  -401,  1071,    63,   906,    76,  1105,  1036,   702,
    1956      702,   702,    31,  1094,   215,  1095,   213,  1073,   711,  1096,
    1957      159,     2,   206,     4,     5,     6,     7,    48,  1097,  1103,
    1958      242,  1113,  1114,    69,    70,   691,   747,  1117,  1115,  1120,
    1959       34,   971,  1122,  1421,   625,   625,  1123,    48,    48,  1124,
    1960      228,  1534,  1125,   271,  1128,   210,   220,  1131,   307,   176,
    1961     1151,  1176,  1172,  1174,    48,   215,   510,  1173,    48,  1175,
    1962     1190,  1191,  1193,   702,  1194,  1202,   258,   213,    56,   643,
    1963     1121,   472,  1206,    76,   159,    -3,    35,  1207,    36,   547,
    1964      548,   113,   106,  1214,  1219,    48,  1106,  1058,   399,  1105,
    1965     1166,  1167,  1132,  1222,   400,    48,  1132,  1224,   215,   401,
    1966     1189,  1209,  1404,   493,   106,   213,  1228,   323,  1233,  1235,
    1967      213,   402,  1237,    48,   403,   404,   339,   547,  1240,    48,
    1968      407,    48,   106,  1246,   405,   499,  1250,  1252,  1254,  1256,
    1969       37,  1257,   183,   184,    40,  1258,  1507,  1259,   266,  1260,
    1970      441,    41,    42,  1262,   664,    56,  1132,  1269,  1216,  1217,
    1971     1278,  1279,  1286,   547,   625,  1307,   112,  1314,  1289,   215,
    1972     1290,    48,   528,   529,   530,  1320,   430,   185,  1291,    48,
    1973      434,  1322,   212,    48,  1293,    45,    46,    48,  1106,   113,
    1974      112,   106,   112,    57,    57,  1301,   531,  1105,   532,  1324,
    1975      533,   534,   528,   529,   530,    70,   213,   215,  1328,  1329,
    1976      323,   113,   215,   408,  1335,  1336,  1338,  1344,   113,  1345,
    1977      113,  1346,   113,  1347,   106,    57,   531,   112,   532,  1358,
    1978      533,  1305,   112,  1354,   472,   149,    76,   665,  1355,  1367,
    1979      327,   472,   434,    76,  1365,   488,  1366,   150,   151,  1297,
    1980     1374,  1506,  1375,  1376,  1382,  1383,   113,  -403,   113,    57,
    1981     1392,  1393,    57,  1189,  1396,   521,  1192,  1407,  1411,   113,
    1982     1189,  1413,  1415,  1416,  1422,  1506,  1506,   442,   159,  1430,
    1983     1431,   112,    70,   161,  1432,   307,  1106,   213,    48,  1433,
    1984     1417,  1435,   472,  1349,    76,  1440,  1449,  1451,   215,    48,
    1985     1506,    48,  1453,  1445,   213,  1447,  1455,   373,    56,  1462,
    1986     1457,  1464,   587,  1463,  1475,    56,   593,  1485,  1487,  1489,
    1987       48,  1189,   106,  1492,  1493,  1515,  1500,  1516,  1520,   213,
    1988      413,   768,   769,   770,   479,   626,    48,   421,  1337,   630,
    1989     1527,   112,   339,  1529,   106,  1531,  1339,  1340,  1341,   348,
    1990       48,   106,   112,    48,   112,  1537,  1544,    37,  1545,   174,
    1991      175,    40,  1208,   888,   781,   214,    56,   782,    41,    42,
    1992      176,  1132,  1132,  1132,   783,   785,  1130,   784,  1306,   215,
    1993     1495,  1410,  1547,  1368,  1384,  1478,    48,  1213,  1239,   901,
    1994      112,  1479,   112,  1483,   372,  1221,   112,   323,   323,   902,
    1995     1088,   924,   106,  1127,   112,  1482,   800,  1482,   872,   413,
    1996     1385,   703,  1092,  1035,    57,   938,   214,    48,    48,  1102,
    1997        0,   215,  1315,   946,   716,   687,     0,  1511,     0,  1513,
    1998        0,    48,   790,   791,  1058,    70,     0,   792,   116,     0,
    1999        0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
    2000      213,     0,     0,     0,     0,     0,     0,     0,    37,   214,
    2001      183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
    2002       42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
    2003        0,  -291,   521,   213,   323,   521,  1550,  1551,     8,     9,
    2004       10,    11,    12,    70,     0,   600,   339,   601,     0,     0,
    2005        0,     0,    34,    45,    46,     0,     0,     0,     0,  1132,
    2006     1132,    48,     0,     0,     0,  1420,     0,    31,     0,     0,
    2007      214,     0,     0,    48,     0,     0,     0,  1372,     0,     0,
    2008        0,     0,   141,     8,     9,    10,    11,    12,   972,   413,
    2009      176,     0,   215,   421,   570,    34,   411,  1460,     0,   323,
    2010        0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
    2011      802,     0,    31,   214,     0,     0,   643,     0,   213,     0,
    2012      215,     0,   112,     0,     0,   215,     0,     0,     0,  1397,
    2013        0,     0,  1405,     0,   241,   244,     0,     0,   499,     0,
    2014       34,   843,     0,     0,     0,    48,   593,     0,     0,     0,
    2015        0,     0,   852,     0,    48,  1509,    48,    37,     0,   174,
    2016      175,    40,     0,   112,  1517,     0,     0,   703,    41,    42,
    2017      413,     0,     0,     0,     0,  1442,   348,     0,     0,     0,
    2018     1446,     0,   749,     0,   411,    74,    48,     0,     0,     0,
    2019       45,    46,     0,     0,   376,     0,   215,     0,     0,   214,
    2020        8,     9,    10,    11,    12,   687,   112,     0,  1467,     0,
    2021      215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
    2022      643,     0,    37,     0,   183,   184,    40,    57,   112,    31,
    2023        0,     0,   112,    41,    42,     0,   129,     0,   130,   131,
    2024      132,     0,     0,   488,     0,    66,   117,    41,    42,     0,
    2025        0,     0,     0,     0,   222,     0,     0,    34,     0,   265,
    2026        0,   576,   576,     0,     0,   339,     0,    45,    46,   348,
    2027        0,     0,    37,     0,   174,   175,    40,    66,     0,     0,
    2028      214,     0,   112,    41,    42,     0,   703,     0,     0,     0,
    2029        0,     0,  1535,     0,   160,   457,   703,     0,  1535,   932,
    2030        0,   601,     0,   215,     0,     0,     0,    45,    46,  1535,
    2031      703,     0,     0,  1535,   221,     0,     0,     0,     0,     0,
    2032      112,     0,   214,     0,   995,     0,     0,     0,     0,   802,
    2033        0,   547,     0,   348,    48,     0,     0,     0,     0,    48,
    2034        0,   353,     0,    37,     0,   183,   184,    40,   883,     0,
    2035      259,     0,   886,     0,    41,    42,    48,     0,     0,     0,
    2036        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2037        0,     0,   510,     0,     0,     0,     0,   348,   348,   348,
    2038      905,     0,   411,     0,     0,     0,     0,     0,    45,    46,
    2039       31,     0,   328,     0,     0,   348,     0,     0,     0,     0,
    2040      259,   350,     0,     0,     0,     0,     0,     0,   213,     0,
    2041        0,     0,     0,     0,     0,   449,     0,   802,    34,     0,
    2042        0,     0,     0,    37,   339,   183,   184,    40,     0,     0,
    2043        0,   406,   644,   112,    41,    42,    74,     0,     0,     0,
    2044      687,    74,     0,   214,     0,     0,   424,     0,     0,   429,
    2045      431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
    2046      185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
    2047        0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
    2048        0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
    2049      459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
    2050      215,   473,     0,     0,     0,     0,     0,     0,     0,     0,
    2051        0,   480,     0,     0,   703,   703,     0,     0,     0,   431,
    2052      843,   535,   536,   537,   538,   539,   540,   541,   542,   543,
    2053      544,     8,     9,    10,    11,    12,   222,    37,     0,   183,
    2054      184,    40,     0,   724,   348,   728,     0,   214,    41,    42,
    2055        0,     0,   348,     0,     0,   545,     0,     0,     0,     0,
    2056       31,   214,     0,     0,   126,     0,   126,     0,     0,     0,
    2057        0,     0,   703,   703,  1505,     0,   411,     0,     0,     0,
    2058        0,     0,    45,    46,     0,     0,   259,     0,    34,     0,
    2059      594,   275,     0,    37,   213,     0,   622,    40,     0,     0,
    2060        0,   687,   413,    74,    41,    42,     0,     0,     0,   627,
    2061        0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
    2062        0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
    2063       43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
    2064        0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
    2065        0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
    2066        0,     0,   126,   473,   126,   126,     0,   353,     0,    74,
    2067        0,     0,     0,   112,     0,     0,     0,     0,   350,  1142,
    2068        0,     0,    77,   473,     0,    57,   215,     0,     0,   213,
    2069        0,   473,     0,     0,   865,     0,  1154,     0,     0,     0,
    2070        0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
    2071        0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
    2072     1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
    2073       48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
    2074      112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
    2075     1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
    2076      703,   703,   703,   348,   348,     0,     0,     0,     0,     0,
    2077      259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
    2078        0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
    2079        0,     0,     0,     0,     0,     0,     0,   415,   416,     0,
    2080        0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
    2081        0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
    2082      353,   353,     0,     0,   703,     0,     0,     0,     8,     9,
    2083       10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
    2084        0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
    2085        0,   214,     0,     0,     0,   353,     0,    31,     0,     0,
    2086        0,     0,     0,     0,     0,   594,    74,     0,     0,     0,
    2087      594,     0,     0,     0,     0,     0,   627,     0,     0,   350,
    2088      350,   350,     0,     0,     0,    34,     0,     0,     0,     0,
    2089       37,     0,    74,     0,    40,   353,     0,   350,     0,     0,
    2090        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    2091        0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
    2092        0,     0,     0,     0,     0,  1039,   473,   718,     0,     0,
    2093      353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
    2094     1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2095        0,     0,   473,     0,    57,   350,     0,     0,     0,     0,
    2096       79,     0,     0,     0,   937,     0,  1089,   431,     0,     0,
    2097        0,  1481,    57,  1481,   353,     0,     0,     0,     0,     0,
    2098        0,     0,     0,     0,   353,     0,   353,     0,     0,   259,
    2099      712,   222,    79,     0,   353,   967,     0,     0,   353,     0,
    2100        0,     0,     0,     0,     0,     0,     0,  1481,     0,  1481,
    2101        0,     0,     0,     0,     0,     0,     0,   348,   348,     0,
    2102        0,     0,     0,   644,     0,     0,    57,     0,     0,   224,
    2103        0,    57,     0,   223,   698,     0,   323,   214,     0,     0,
    2104      126,   126,     0,     0,   698,     0,   350,     0,   627,     0,
    2105        0,  1002,     0,   627,   805,     0,     0,     0,   698,    74,
    2106        0,     0,     0,     0,    57,     0,     0,     0,  1013,   126,
    2107        0,     0,   126,   126,     0,   126,     0,   126,   126,     0,
    2108        0,     0,   126,   126,     0,     0,     0,     0,     0,   353,
     1791      49,   113,   407,   149,   453,   399,   428,    97,   150,   440,
     1792     151,   267,   400,   753,   767,   401,   114,  1071,   408,   106,
     1793     106,   402,   974,   280,   869,   828,   965,   403,    57,    57,
     1794     505,   845,    49,   966,  1188,    50,  1172,   152,   404,    97,
     1795     597,   405,   967,   147,   383,   384,   741,   610,  1070,    49,
     1796     357,   106,   827,   143,    70,   920,   161,   605,   410,    96,
     1797      57,   795,   177,   186,   819,  1380,   209,    50,   153,    49,
     1798     193,    56,   115,   216,   923,  1303,   226,  1440,   949,   726,
     1799      69,   281,   407,   731,   219,   399,    70,   820,   106,    31,
     1800      31,    96,   400,   724,    57,   401,   425,    57,   408,   821,
     1801      31,   402,   148,    56,   831,   113,   822,   403,    96,   162,
     1802     838,   261,    69,   113,   262,   670,   266,   271,   404,   122,
     1803     212,   405,   189,   194,    31,    96,   217,    31,    96,   227,
     1804     816,  1138,   475,   477,   510,   679,   154,   210,   202,   817,
     1805     220,   260,  1196,   683,  1304,   149,   307,   147,  1440,   818,
     1806     150,  1198,   151,   166,   161,   113,   345,   548,   549,   252,
     1807     209,   411,   411,  1459,    31,   986,   527,   373,  1200,   629,
     1808     419,    31,   411,   633,  1170,  1171,   291,   715,  1178,   152,
     1809     914,  1182,   965,  1235,   348,   186,   186,  1239,   203,   966,
     1810     358,   342,    76,   161,  1078,   548,   721,   481,   967,   411,
     1811     668,   266,  1197,  1469,  1179,   952,    96,   162,   832,    49,
     1812     153,  1199,   835,  1201,  1187,   409,   161,   166,   123,    96,
     1813     374,   209,   665,   439,    76,   149,   252,   329,   443,  1179,
     1814     150,   548,   151,   852,   829,   471,   602,   855,   666,   307,
     1815    1172,   836,  1030,   602,   398,   189,   162,  1017,   816,    57,
     1816     327,    49,  1140,   735,   176,  -233,  -233,   817,    97,   271,
     1817     476,   674,   676,  1081,   271,   266,   266,   818,    96,   162,
     1818     106,   113,   463,   161,  1016,   442,  1004,   483,   154,    57,
     1819      96,   444,  1188,   992,   500,   923,    50,   142,   924,  1249,
     1820    1172,   657,   441,  1527,   307,   163,   665,   860,   861,   820,
     1821     146,   610,  1094,   176,  1485,    70,   176,   307,  1205,  1206,
     1822      96,   821,   666,   436,   878,   831,   597,  1250,   822,   672,
     1823    1542,   597,    56,   572,   479,   677,  -233,   357,   147,   730,
     1824     923,    69,   567,  1399,  1400,   373,   168,   155,  1513,   377,
     1825    1515,   113,   816,   327,   580,   345,   411,   476,   743,   603,
     1826     621,   817,   176,   177,  1071,   378,   828,    63,   736,   163,
     1827     169,   818,  1399,  1400,   626,  1139,   568,  1497,   626,   569,
     1828     630,   113,   932,  1502,   634,   436,   748,   589,   737,   899,
     1829     110,   144,   139,   140,  1246,  1070,   447,    96,   374,    63,
     1830     987,    41,    42,  1522,  1202,   805,   266,   471,  1529,   171,
     1831     769,   770,   771,  1401,   212,   460,   186,   342,   604,  1172,
     1832     845,   166,   578,   373,   799,   176,  1030,   471,   579,   820,
     1833     357,   583,   243,   411,   266,   471,   307,   307,  1170,  1171,
     1834     266,   821,  1410,   626,   110,  1188,  1119,   854,   822,  1326,
     1835     110,   715,  1188,    76,  1526,    41,    42,   684,    76,   599,
     1836    1020,    41,    42,   579,   113,   435,  1120,   553,   554,  1327,
     1837    1127,   348,  1363,   995,  1537,   189,   374,   358,  -121,   176,
     1838    -121,  1541,   266,   760,  -121,   493,   176,   705,   494,   765,
     1839     266,   387,   626,   706,    49,   357,   953,   373,   720,  -121,
     1840    -121,    97,   229,  1188,   113,   230,   923,   388,   234,  1085,
     1841     236,   557,   558,   106,   911,  1245,   307,   245,   113,  1158,
     1842    1160,   307,    57,   307,   307,  1136,   714,   435,  1424,    50,
     1843     913,   751,  1017,   610,   870,   113,   345,   212,   882,  1105,
     1844     327,   327,  1425,  1015,  1429,  1430,   559,   560,    70,   883,
     1845     523,   411,  1102,    96,  1117,   176,   722,   604,  1435,  1470,
     1846     880,   181,   723,   163,   348,    56,   923,   923,   110,   390,
     1847     358,   342,   176,  1471,    69,   110,   176,   139,   140,    41,
     1848      42,   572,   572,   555,   556,   391,    41,    42,  1127,   307,
     1849    1444,   110,   201,   914,     2,   206,     4,     5,     6,     7,
     1850     626,   345,    41,    42,   286,   621,   392,  1331,   327,  -289,
     1851     715,   603,   111,   603,   865,    41,    42,   973,    63,   997,
     1852      76,   247,   393,   472,   805,  1475,   250,   327,   732,   348,
     1853    1333,   626,  1475,  -517,   733,   358,   626,   847,   621,   176,
     1854      76,   514,   626,  1361,   229,   626,   626,   626,    76,   871,
     1855    -468,   643,  -468,   862,   848,   886,  1015,   411,   849,    35,
     1856     394,    36,  1028,   626,   915,   266,   252,   877,   872,  -468,
     1857     815,   471,   604,   348,   348,   348,   395,  1142,   917,   411,
     1858     916,   807,  1075,  1523,  1444,   915,    76,   442,   917,  1444,
     1859    1185,   348,   263,   327,   918,   113,    37,   929,   908,  1185,
     1860      40,  1082,  1317,   -10,  1083,   597,  1186,    41,    42,  1444,
     1861     692,   498,   805,   110,   357,  1309,  1444,  1409,  1318,  1113,
     1862    1237,   626,   934,   621,    41,    42,   747,  -441,  1319,   720,
     1863     720,   748,   748,    43,   407,   846,   399,   561,   562,   893,
     1864     599,    45,    46,   400,  1320,   748,   401,  1364,   500,   348,
     1865     408,  -442,   402,   895,  1035,   113,   345,   912,   403,   748,
     1866     751,   751,   523,   212,   523,   276,   571,   523,   411,   404,
     1867     523,   923,   405,   981,    45,    46,   519,   212,   850,   982,
     1868    1277,  1278,   851,   278,   229,   472,   234,   923,   815,   604,
     1869     714,   342,   965,  1154,   850,   411,  1374,   176,  1101,   966,
     1870    1477,   750,  1478,   411,   572,   472,   279,  -103,   967,    45,
     1871      46,  -103,   626,   472,   626,   110,  1000,   139,   140,   626,
     1872     345,   330,   933,   603,   602,  1162,    41,    42,   994,   176,
     1873      45,    46,    37,  1233,   706,   603,    40,   331,  1349,   579,
     1874     348,  1357,  1350,    41,    42,   176,   332,   748,   348,   712,
     1875    1358,    63,   715,   371,   358,  1524,   748,   923,   923,   176,
     1876     548,   985,   982,   465,     8,     9,    10,    11,    12,   813,
     1877     212,   602,   329,   411,   229,   953,   372,    45,    46,   953,
     1878     953,  1360,   815,   550,    76,   307,  1365,   748,  -290,   551,
     1879     552,   333,   748,    31,   604,     8,     9,    10,    11,    12,
     1880     807,   510,  1370,  1371,   106,  1427,   334,   626,   673,   675,
     1881      76,  1424,   665,    57,   113,   345,   908,   911,   908,   335,
     1882    1445,    34,  1183,   376,    31,    37,   748,   385,   666,    40,
     1883     113,   715,  1157,   913,   602,   389,    41,    42,   805,    70,
     1884     176,   692,   409,   934,   934,  1491,  1419,   982,   720,   714,
     1885     342,  1492,    34,   113,   307,   129,    56,   130,   131,   132,
     1886      48,   112,   719,  1399,  1400,    69,    41,    42,  1106,   397,
     1887      45,    46,   106,  1547,   214,  1084,   426,   912,   751,   579,
     1888    1159,    57,   602,   427,  1509,  1426,   772,   773,   519,   112,
     1889     112,   432,    48,   519,   450,  1324,   519,   738,  1242,   739,
     1890     411,  1437,   740,    48,  1088,   744,  1088,   604,  -365,    48,
     1891     345,   774,   775,  1228,  -394,   484,    37,    48,   174,   175,
     1892      40,   780,   781,    48,  1107,   214,    48,    41,    42,    48,
     1893     461,   626,   626,  1127,   462,     2,   206,     4,     5,     6,
     1894       7,   504,   112,   112,   776,   777,   778,   779,   291,   472,
     1895     788,   307,     2,   206,     4,     5,     6,     7,   327,   348,
     1896     348,   528,   529,   530,   508,  1169,    48,   442,   214,    48,
     1897     106,  1495,  1437,   513,   525,   472,    48,    76,   111,    57,
     1898     527,   228,  1381,   563,   564,   531,  1381,   532,   566,   533,
     1899     534,   113,   252,   329,   411,   565,   908,   419,   661,   411,
     1900      35,   908,    36,   569,   176,    70,   338,    48,  -438,   587,
     1901     934,   658,   659,   712,   846,    48,  -291,    35,   266,    36,
     1902      48,   590,    56,     8,     9,    10,    11,    12,    -3,   214,
     1903     639,  1190,   660,   626,   481,   329,   411,   662,   663,   761,
     1904     664,   829,   329,   602,   766,    48,    48,    37,   667,   183,
     1905     184,    40,    31,   669,   257,   912,   693,   345,    41,    42,
     1906     912,    48,   694,    -3,   696,   498,   698,   214,  -237,    48,
     1907     734,   745,   214,  1296,  1297,  1298,   692,   749,    48,   757,
     1908      34,    48,   808,  1460,   906,   809,   411,   -12,   112,   812,
     1909     823,   714,    45,    46,   465,  1332,  1334,  1335,   -13,   271,
     1910     113,   867,   868,   112,   874,   907,   894,   112,   896,   897,
     1911     922,    48,   112,   901,   904,   219,  -415,   723,   113,   106,
     1912    -521,   944,   307,   937,   946,    48,    48,    57,    57,   957,
     1913     950,   959,    48,   958,   960,   951,   626,  -292,   961,    48,
     1914     113,   106,    63,    76,     8,     9,    10,    11,    12,   962,
     1915      57,   978,   989,   212,   342,  1106,   990,   991,   214,   106,
     1916    1006,  1007,  1008,  1009,   116,   879,  1010,   881,    57,  1011,
     1917     210,   220,   712,    31,  1012,  1023,    70,  -403,    37,  -402,
     1918     183,   184,    40,  1037,  1422,   626,   626,  1072,    48,    41,
     1919      42,  1535,  1074,    56,   271,  1095,   907,  1096,  1059,   307,
     1920    1097,    34,    69,  1098,  1104,  1114,   748,  1115,    48,    48,
     1921    1116,  1107,   159,   348,   348,   185,  1118,   928,   106,  1352,
     1922    1121,  1123,    57,    45,    46,    48,   972,    57,  1124,    48,
     1923    1125,  1126,   113,   407,  1132,  1129,   399,   692,  1152,   214,
     1924     644,  1173,  1174,   400,   173,  1175,   401,  1106,   442,   408,
     1925    1176,   106,   402,    70,  1177,  1191,    48,   665,   403,  1192,
     1926      57,  1194,  1195,  1203,  1210,   441,    48,  1207,   258,   404,
     1927      56,  1208,   405,   666,  1215,    -3,   159,  1220,  1225,  1190,
     1928    1223,   214,  1241,   493,    48,  1229,   253,  1508,  1234,   266,
     1929      48,  1236,    48,  1421,  1238,  1247,  1251,  1253,  1255,   110,
     1930    1257,   139,   238,  1107,  1258,   626,  1263,  1259,   472,   323,
     1931      41,    42,  1260,  1261,    76,   176,  1270,    37,   339,   174,
     1932     175,    40,  1279,   110,  1280,   139,   140,   112,    41,    42,
     1933     113,  1287,    48,   348,    41,    42,   239,  1290,  1291,  1292,
     1934      48,   240,  1330,  1294,    48,  1106,  1302,  1308,    48,   106,
     1935    1315,   112,   113,   112,   372,  1323,  1321,  1325,    57,   113,
     1936     727,   113,  1336,   113,  1329,   728,  1337,  1193,   430,  1339,
     1937    1345,   106,   434,  1346,  1347,  1348,   149,  1359,   106,  1355,
     1938      57,   150,   417,   151,  1356,  1366,  1367,    57,   112,  1298,
     1939    1375,    76,  1507,   112,  1384,  1376,  1377,   113,  1383,   113,
     1940    1393,  1107,   323,   214,  1394,   437,    70,  -404,  1397,  1408,
     1941     113,  1412,  1414,    70,   712,   445,  1507,  1507,  1416,  1417,
     1942     703,  1423,  1418,    56,   161,  1441,   307,  1431,  1432,   106,
     1943      56,   214,  1190,  1433,   434,  1434,   214,   488,    57,  1190,
     1944    1350,  1507,  1436,   112,  1446,  1448,  1450,  1452,   373,   213,
     1945      48,  1454,  1456,  1458,  1463,  1465,  1486,   521,   232,  1464,
     1946    1476,    48,  1488,    48,    70,  1490,  1493,  1501,  1521,  1122,
     1947     159,  1494,  1516,  1517,  1530,   479,   141,  1528,  1532,    63,
     1948    1538,    56,    48,   520,  1545,   176,  1546,   889,  1209,   782,
     1949    1190,  1133,  1131,   712,   784,  1133,  1307,  1411,    48,   783,
     1950     213,   704,   785,   112,   588,   786,  1496,   214,   594,  1548,
     1951    1369,  1385,    48,  1240,   112,    48,   112,  1214,  1479,   902,
     1952     903,   214,  1089,   925,   215,  1222,  1093,   627,   241,   244,
     1953     327,   631,   801,  1128,   339,  1059,  1036,   939,   873,  1103,
     1954     242,  1316,   717,   213,    76,  1133,    66,   117,    48,   947,
     1955     791,    76,   112,   792,   112,   793,   472,    37,   112,   174,
     1956     175,    40,     0,     0,     0,     0,   112,     0,    41,    42,
     1957       0,     0,     0,  1285,  1286,   215,  1288,     0,    66,    48,
     1958      48,     0,     0,  1293,     0,  1295,     0,     0,     0,   323,
     1959     323,     0,     0,    48,   376,   160,     0,     8,     9,    10,
     1960      11,    12,    76,     0,   213,     0,     0,  1483,     0,  1483,
     1961       0,     0,     0,     0,   214,   221,     0,   688,   215,     0,
     1962     528,   529,   530,     0,     0,     0,    31,   703,  1373,     0,
     1963     116,     0,   681,     0,     0,     0,     0,     8,     9,    10,
     1964      11,    12,   213,  1483,   531,  1483,   532,   213,   533,  1306,
     1965       0,   259,     0,     0,    34,   488,     0,   323,   707,   488,
     1966       0,     0,   499,     0,     0,     0,    31,     0,     0,   521,
     1967       0,   521,     0,    48,   521,     0,   323,   521,     0,   215,
     1968    1398,     0,     0,  1406,     0,    48,     0,     0,   339,   457,
     1969       0,     0,     0,   328,    34,   520,   571,     0,   411,     0,
     1970     520,   259,   350,   520,    45,    46,     0,     0,   704,   472,
     1971       0,     0,     0,     0,     0,     0,   472,   215,     0,     0,
     1972       0,     0,   215,     0,     0,     0,  1443,     0,   644,     0,
     1973       0,  1447,   406,   213,   112,     0,   750,     0,   411,     0,
     1974       0,  1405,   323,     0,    45,    46,   703,   424,     0,     0,
     1975     429,   431,     0,   803,     0,   160,   703,    48,     0,  1468,
     1976    1133,  1133,  1133,     0,     0,     0,    48,   472,    48,     0,
     1977     703,     0,     0,     0,     0,   112,   448,     0,     0,     0,
     1978     451,     0,   452,     0,   844,     0,     0,     0,     0,   594,
     1979       0,   459,     0,     0,     0,   853,    74,    66,    48,     0,
     1980       0,     0,   473,     0,     0,     0,     0,     0,   215,     0,
     1981       0,   214,   480,     0,   213,     0,     0,     0,   112,     0,
     1982     431,     8,     9,    10,    11,    12,   645,   704,    74,     0,
     1983       0,   213,   644,     0,     0,     0,     0,   704,     0,     0,
     1984     112,     0,     0,  1536,   112,     0,     0,     0,   688,  1536,
     1985      31,   704,     0,     0,     0,     0,   213,     0,     0,   891,
     1986    1536,     0,   892,     0,  1536,   222,     0,     0,   898,     0,
     1987       0,     0,   900,     0,     0,     0,     0,     0,    34,     0,
     1988       0,    37,     0,   183,   184,    40,   488,   259,     0,   215,
     1989       0,   595,    41,    42,   112,     0,     0,   623,  1133,  1133,
     1990       0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
     1991     628,     0,     0,     0,   628,     0,     0,   259,   265,     0,
     1992     933,     0,   602,     0,     0,     0,    45,    46,    45,    46,
     1993       0,   215,   112,     0,     0,     0,  1461,   725,     0,   729,
     1994       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
     1995       0,    48,   353,   535,   536,   537,   538,   539,   540,   541,
     1996     542,   543,   544,   545,   473,     0,     0,   996,    48,     0,
     1997       0,     0,   803,     0,   703,   703,     0,     0,   213,   350,
     1998       0,   988,     0,     0,   473,     0,     0,   546,     0,     0,
     1999       0,   993,   473,     0,  1510,     0,     0,   214,     0,     0,
     2000       0,     0,     0,  1518,     0,  1005,   213,     0,     0,     0,
     2001     699,   213,    37,   431,   183,   184,    40,     0,     0,     0,
     2002       0,     0,     0,    41,    42,     0,   449,     0,   713,     0,
     2003      66,     0,   703,   703,     0,     0,     0,     0,   431,     0,
     2004       0,     0,   431,     0,     0,   112,     0,    74,     0,   601,
     2005       0,   602,    74,   215,     0,   704,   704,    45,    46,     0,
     2006     803,     0,     0,     0,     0,     0,     0,   339,    48,     0,
     2007       0,   259,   350,     0,     0,     0,     0,     0,     0,     0,
     2008       0,   215,   213,   688,     0,     0,   215,     0,  1080,   866,
     2009       0,     0,   214,    77,     0,     0,   213,     0,     0,     0,
     2010       0,     0,     0,     0,     0,   488,  1108,   323,     0,   112,
     2011     112,   112,     0,   704,   704,     0,   499,     0,   794,    37,
     2012       0,   183,   184,    40,     0,    77,     0,     0,     0,     0,
     2013      41,    42,     0,     0,     0,     0,   628,   806,   919,     0,
     2014     921,     0,     0,     0,   457,     0,     0,   222,    37,   825,
     2015     183,   184,    40,     0,     0,     0,   906,   215,   411,    41,
     2016      42,     0,   223,   844,    45,    46,     0,   595,     0,     0,
     2017       0,   215,   595,     0,     0,     0,     0,     0,   628,     0,
     2018    1313,   350,   350,   350,     0,  1506,     0,   411,     0,   213,
     2019       0,     0,     0,    45,    46,     0,     0,     0,     0,   350,
     2020       0,     0,     0,   124,   127,   128,     0,     0,     0,  1167,
     2021    1168,     0,   703,     0,    74,     0,     0,   699,     0,     0,
     2022     703,   703,   703,     0,     0,     0,     0,     0,   473,   353,
     2023       0,     0,     0,     0,    74,     0,     0,     0,    48,    48,
     2024       0,  1204,    74,     0,   688,     0,     0,   112,   112,   355,
     2025       0,     0,     0,     0,   473,     0,     0,   350,     0,     0,
     2026     353,  1314,     0,     0,   215,     0,   938,  1217,  1218,   431,
     2027       0,     0,     0,     0,     0,   254,     0,   255,   353,     0,
     2028      74,     0,     0,     0,   703,   112,   803,     0,     0,     0,
     2029       0,   259,   713,   704,     0,     0,     0,   968,     0,     0,
     2030       0,   704,   704,   704,     0,     0,     0,     0,     0,     0,
     2031       0,     0,     0,     0,   645,     0,     0,     0,     0,     0,
     2032    1040,     0,   353,     0,     0,     0,     0,   126,   126,   126,
     2033       0,     0,     0,     0,     0,     0,   699,     0,     0,     0,
     2034       0,     0,    48,   112,    77,     0,   699,     0,   350,    77,
     2035     628,     0,   112,  1003,     0,   628,   806,     0,   396,     0,
     2036     699,  1090,     0,     0,     0,   704,    48,    48,   415,   416,
     2037    1014,   339,     0,   420,     0,   422,   423,     0,     0,     0,
     2038       0,     0,     0,     0,     0,     0,   213,   353,     0,     0,
     2039       0,    48,     0,  1108,     0,     0,     0,     0,     0,   126,
     2040       0,   126,     0,     0,     0,    79,     0,     0,     0,     0,
     2041       0,     0,     0,     0,     0,     0,     0,     0,   645,     0,
     2042       0,    66,     0,     0,     0,     0,   275,     0,     0,     0,
     2043       0,   353,   353,   353,     0,     0,     0,    79,     0,     0,
     2044       0,     0,     0,   628,   223,     0,     0,  1338,     0,   353,
     2045     259,   713,     0,     0,  1086,  1340,  1341,  1342,     0,     0,
     2046       0,   215,     0,     0,     0,     0,     0,   353,     0,     0,
     2047       0,     0,     0,     0,   224,     0,     0,     0,    74,     0,
     2048    1100,     0,   126,     0,     0,  1108,     0,  1368,   431,   117,
     2049     126,     0,   126,   126,     0,     0,     0,   126,     0,   126,
     2050     126,     0,     0,     0,    74,     0,     0,   353,     0,     0,
     2051       0,    77,     0,     0,     0,     0,     0,     0,  1040,  1386,
     2052       0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
     2053       0,    77,     0,     0,     0,     0,     0,     0,     0,    77,
     2054       0,     0,   353,     0,     0,     0,   595,     8,     9,    10,
     2055      11,    12,     0,     0,     0,     0,     0,   355,     0,   429,
     2056       0,   356,     0,     0,   699,   699,     0,   350,   350,   126,
     2057       0,     0,   213,     0,     0,   355,    31,    77,     0,     0,
     2058       0,     0,     0,  1108,     0,     0,   353,  1189,     0,     0,
     2059       0,     0,     0,     0,     0,     0,   353,     0,   353,     0,
     2060       0,     0,     0,   222,    34,     0,   353,     0,     0,    37,
     2061     353,   183,   184,    40,  1482,     0,  1482,     0,     0,   355,
     2062      41,    42,   699,   699,     0,     0,     0,     0,     0,     0,
     2063       0,  1283,     0,     0,     0,     0,     0,     0,     0,  1480,
     2064       0,  1484,     0,     0,     0,     0,   601,   215,   602,     0,
     2065    1482,     0,  1482,     0,    45,    46,    79,     0,     0,     0,
     2066       0,    79,     0,     0,     0,     0,     0,   213,     0,   628,
     2067       0,    74,     0,     0,     0,  1512,     0,  1514,     0,   323,
     2068       0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
     2069       0,     0,     0,   713,     0,     0,     0,     0,     0,    86,
     2070       0,   353,     0,     0,     0,     0,     0,   413,     0,     0,
     2071       0,     0,     0,     0,   421,     0,     0,     0,     0,  1543,
     2072       0,  1544,     0,     0,     0,     0,     0,     0,   355,   355,
     2073     355,    86,     0,     0,  1551,  1552,  1284,     0,     0,     0,
     2074       0,     0,   215,     0,     0,     0,   355,     0,     0,     0,
     2075       0,     0,   796,   797,   259,     0,   224,     0,    66,     0,
     2076       0,     0,     0,     0,   355,     0,     0,     0,   225,     0,
     2077     699,     0,   713,     0,     0,    77,   117,     0,     0,     0,
     2078       0,   830,     0,     0,   833,   834,   413,   837,     0,   839,
     2079     840,     0,     0,     0,   841,   842,     0,     0,     0,     0,
     2080       0,    77,   699,     0,   355,     0,     0,     0,     0,     0,
     2081     699,   699,   699,     0,   353,   353,     0,   353,   353,     0,
     2082       0,   350,   350,    79,     0,     0,     0,     0,     8,     9,
     2083      10,    11,    12,     0,     0,  1189,     0,    74,   356,   355,
     2084       0,   577,     0,    79,     0,     0,     0,     0,     0,   581,
     2085       0,    79,   584,     0,     0,   363,     0,    31,     0,     0,
     2086       0,     0,     0,     0,     0,     0,     0,     0,   117,   356,
     2087       0,     0,   353,   353,   699,     0,   126,   126,     0,     0,
     2088       0,     0,     0,   355,     0,    34,     0,   356,     0,    79,
     2089      37,     0,     0,   355,    40,   355,     0,     0,     0,     0,
     2090     223,    41,    42,   355,     0,   126,     0,   355,   126,   126,
     2091       0,   126,     0,   126,   126,     0,   413,     0,   126,   126,
     2092     421,     0,     0,     0,     0,     0,     0,    43,     0,     0,
     2093       0,   356,   970,   971,     0,    45,    46,     0,     0,     0,
     2094       0,   350,     0,   353,     0,     0,     0,     0,     0,     0,
     2095      86,     0,     0,     0,     0,    86,     0,     0,     0,     0,
     2096       0,     0,     0,     0,     0,     0,   117,     0,    77,     0,
    21092097       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2110       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2111        0,     0,     0,     0,     0,   355,   356,     0,     0,    66,
    2112       77,     0,     0,  1039,     0,     0,     0,     0,    77,     0,
    2113        0,     0,   214,     0,     0,     0,     0,   348,     0,     0,
    2114        0,   627,     0,     0,     0,     0,   355,     0,   259,   712,
    2115        0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
    2116        0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
    2117        0,     0,     0,     0,     0,     0,     0,     0,  1099,     0,
    2118      795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
    2119        0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
    2120        0,     0,   353,   353,     0,   353,   353,     0,   355,   829,
    2121        0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
    2122      126,   126,   840,   841,     0,    74,     0,     0,     0,     0,
    2123        0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
    2124        0,     0,    57,     0,   594,     0,     0,     0,     0,     0,
    2125        0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
    2126      353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
    2127        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
    2128        0,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
    2129        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2098       0,     0,     0,     0,     0,     0,   222,     0,  1189,     0,
     2099       0,     0,     0,     0,     0,  1189,   356,   413,   355,     0,
     2100       0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
     2101       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2102     353,     0,   353,     0,     0,     0,     0,     0,     0,     0,
     2103       0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
     2104     356,   356,   356,     0,     0,     0,  1189,     0,     0,     0,
     2105     225,     0,   353,  1531,     0,     0,   126,   126,   356,     0,
     2106     353,   353,   353,    31,     0,     0,     0,     0,     0,     0,
     2107       0,   353,   353,     0,     0,     0,   356,     0,     0,     0,
     2108       0,     0,     0,     0,     0,    74,     0,    79,     0,   577,
     2109     577,    34,     0,     0,  1091,     0,    37,     0,   183,   184,
     2110      40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2111       0,   355,   355,    79,   355,   355,   356,    86,     0,     0,
     2112       0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
     2113       0,     0,   363,   906,    77,   411,     0,    86,     0,     0,
     2114       0,    45,    46,     0,     0,    86,     0,     0,     0,     0,
     2115       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2116       0,     0,     0,   363,     0,     0,     0,     0,     0,   355,
     2117     355,     0,     0,     0,     0,     0,   884,     0,     0,     0,
     2118     887,   363,     0,    86,     0,     0,     0,     0,     0,     0,
     2119       0,   353,     0,     0,     0,   356,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,   356,     0,   356,     0,     0,
     2121       0,     0,   224,   126,     0,   356,     0,     0,   126,   356,
     2122       0,     0,     0,     0,     0,   363,   167,     0,   172,     0,
     2123       0,   178,   179,   180,     0,   182,     0,     0,    74,     0,
     2124     355,     0,     0,     0,     0,    74,     0,     0,     0,   233,
     2125       0,     0,     0,     0,     0,  1219,     0,     0,     0,     0,
     2126       0,   248,   249,     0,     8,     9,    10,    11,    12,     0,
     2127       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2128      79,     0,     0,   223,     0,     0,     0,     0,     0,     0,
     2129     363,     0,     0,    31,     0,     0,    74,     0,     0,     0,
     2130       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2131     356,     0,   577,     0,     0,     0,     0,   355,     0,   355,
     2132       0,    34,     0,     0,     0,     0,    37,     0,   183,   184,
     2133      40,     0,     0,     0,   363,   363,   363,    41,    42,     0,
     2134       0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
     2135       0,     0,   363,     0,     0,     0,     0,   355,   355,   355,
     2136       0,     0,     0,  1506,     0,   411,     0,     0,   355,   355,
     2137     363,    45,    46,     0,     0,   507,     0,   509,   512,   126,
     2138       0,    86,    77,     0,  1305,   515,   516,     0,     0,     0,
     2139       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2140     509,   509,     0,     0,     0,     0,     0,    86,     0,     0,
     2141     363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2142       0,   355,     0,   356,   356,     0,   356,   356,     0,     0,
     2143     413,     0,     0,     0,     0,     0,     0,     0,   509,     0,
     2144       0,     0,     0,     0,     0,   363,    79,     8,     9,    10,
     2145      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2146      21,    22,    23,    24,    25,  -293,     0,    26,    27,    28,
     2147       0,     0,     0,     0,   509,     0,    31,     0,     0,     0,
     2148       0,   356,   356,     0,     0,     0,     0,     0,   355,   363,
     2149       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2150       0,   363,     0,     0,    34,     0,   225,  1143,   126,   363,
     2151       0,    38,    39,   363,     0,  -293,     0,   592,     0,   600,
     2152       0,     0,     0,     0,  1155,     0,     0,     0,     0,     0,
     2153     624,   625,     0,     0,     0,    77,     0,     0,     0,     0,
     2154     282,   283,    77,   284,     0,     0,   635,     0,   338,     0,
     2155       0,     0,   356,     0,    45,    46,     0,     0,     0,     0,
     2156       0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
     2157       0,     0,     0,     0,    86,   286,     0,     0,     0,   287,
     2158       0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
     2159     293,     0,     0,    77,     0,   224,     0,     0,     0,     0,
     2160       0,     0,   413,     0,   363,     0,     0,     0,     0,     0,
     2161       0,     0,   294,     0,   379,     0,     0,    79,     0,     0,
     2162      45,    46,   296,   297,   298,   299,     0,     0,     0,   356,
     2163       0,   356,  1013,   787,     0,     8,     9,    10,    11,    12,
     2164       0,     0,  1243,   509,   509,   509,   509,   509,   509,   509,
     2165     509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
     2166     509,   356,   282,   283,    31,   284,     0,     0,     0,   356,
     2167     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2168     356,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2169       0,   285,    34,     0,    79,     0,     0,   286,     0,     0,
     2170       0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
     2171       0,   292,   293,     0,     0,     0,     0,   363,   363,     0,
     2172     363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
     2173       0,     0,     0,   356,   294,     0,   379,     0,     0,     0,
     2174      86,     0,   344,    46,   296,   297,   298,   299,     0,     0,
     2175       1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
     2176      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2177      21,    22,    23,    24,    25,   363,   363,    26,    27,    28,
     2178      29,     0,     0,    30,   282,   283,    31,   284,     0,   509,
     2179       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2180     356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2181       0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
     2182       0,    38,    39,   287,   165,     0,   288,   289,   290,   291,
     2183      41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
     2184       0,   218,     0,     0,     0,     0,   363,    79,     0,     0,
     2185     509,     0,     0,     0,    79,     0,   294,     0,  1056,     0,
     2186       0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
     2187       0,     0,     0,   926,     0,   927,     0,     0,     0,  -128,
     2188     509,     0,   930,   931,     0,     0,     0,   936,   165,   225,
     2189       0,     0,   272,     0,     0,     0,     0,     0,     0,   941,
     2190       0,     0,     0,     0,   945,    79,     0,     0,     0,     0,
     2191       0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
     2192       0,   165,     0,   363,     0,   363,     0,     0,     0,     0,
     2193       0,   369,   979,     0,     0,   375,     0,     0,     0,     0,
     2194       0,     0,     0,     0,     0,     0,  1163,     0,     0,     8,
     2195       9,    10,    11,    12,     0,   363,     0,     0,     0,     0,
     2196       0,     0,     0,   363,   363,   363,     0,     0,     0,     0,
     2197       0,     0,     0,     0,   363,   363,   282,   283,    31,   284,
     2198       0,     0,     0,     0,   165,     0,     0,     0,    86,     0,
     2199       0,     0,     0,     0,     0,     0,   218,     0,     0,     0,
     2200     509,     0,     0,     0,     0,   285,    34,     0,     0,     0,
     2201       0,   286,     0,     0,   165,   287,     0,     0,   288,   289,
     2202     290,   291,    41,    42,     0,   292,   293,   363,     0,     0,
     2203       0,  1024,  1025,  1026,  1027,     0,  1029,     0,     0,   375,
     2204       0,     0,     0,     0,     0,   509,   165,     0,   294,     0,
     2205     379,  1073,     0,     0,     0,     0,  1164,    46,   296,   297,
     2206     298,   299,     0,     0,     0,  1079,     0,     0,     0,   524,
     2207       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2208     509,     0,   165,     0,     0,     0,     0,     0,     0,   211,
     2209       0,     0,     0,   509,   363,     0,     0,     0,   231,     0,
     2210     235,     0,   237,     0,     0,  1099,     0,     0,     0,   246,
     2211       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2212     598,     0,     0,     0,     0,   622,     0,     0,     0,     0,
     2213       0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
     2214     211,    86,   235,   237,   246,     0,     0,     0,    86,     0,
     2215    1130,     0,     0,     0,     0,     0,  1137,     0,     0,     0,
     2216       0,  1141,     0,     0,     0,     0,  1145,     0,  1146,     0,
     2217       0,     0,  1148,     0,  1149,  1150,     0,     0,  1153,     0,
     2218       0,     0,     0,   211,     0,     0,     0,  1165,     0,     0,
     2219       0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
     2220       0,   165,   165,     0,     0,  1180,  1181,     0,   369,     0,
     2221       0,   509,     0,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,     0,     0,     0,     0,     0,     0,     0,   524,
     2223       0,     0,  1211,     0,     0,  1213,     0,     0,     0,     0,
     2224       0,     0,     0,     0,   211,     0,   235,   237,   246,     0,
     2225       0,     0,     0,     0,     0,     0,     0,   716,     0,     0,
     2226       0,     8,     9,    10,    11,    12,     0,     0,     0,   165,
     2227       0,   509,   509,     0,     0,     0,     0,     0,  1227,     0,
     2228       0,   524,   211,   524,  1231,  1232,   524,   211,   165,   524,
     2229      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2230       0,   369,   497,     0,  1248,     0,     0,  1252,     0,     0,
     2231       0,  1254,     0,     0,     0,     0,     0,     0,    34,     0,
     2232       0,     0,     0,    37,  1262,   183,   184,    40,     0,     0,
     2233       0,     0,     0,     0,    41,    42,     0,  1269,     0,  1271,
     2234    1272,  1273,  1274,     0,     0,     0,     0,     0,     0,     0,
     2235       0,   211,     0,     0,   165,  1281,     0,  1282,     0,     0,
     2236     185,   172,     0,     0,     0,     0,   369,     0,    45,    46,
     2237     811,     0,     0,   211,     0,     0,     0,     0,   235,   237,
     2238       0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
     2239    1310,  1311,     0,     0,     0,     0,   598,     0,     0,     0,
     2240       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
     2241     369,   369,   369,     0,     0,     0,     0,     0,     0,     0,
     2242       0,     0,     0,     0,     0,     0,     0,     0,   369,   211,
     2243       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2244    1343,  1344,     0,     0,     0,     0,     0,   211,     0,     0,
     2245    1354,     0,   211,     0,   211,     0,     0,     0,     0,     0,
     2246     524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2247       0,   211,     0,     0,   211,   211,   509,     0,     0,     0,
     2248       0,     0,   211,     0,     0,     0,   369,     0,   935,     0,
     2249       0,     0,   509,     0,     0,     0,   211,     0,     0,     0,
     2250       0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
     2251       0,  1389,     0,  1390,  1391,  1392,     0,     0,     0,     0,
     2252       0,   716,     0,     0,     0,  1396,   156,     0,     0,     0,
     2253       0,     0,     0,     0,  1407,     8,     9,    10,    11,    12,
     2254      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2255      23,    24,    25,     0,     0,    26,    27,    28,     0,  1428,
     2256       0,     0,   509,   509,    31,     0,     0,     8,     9,    10,
     2257      11,    12,     0,   251,     0,     0,     0,   369,     0,     0,
     2258       0,   622,     0,   256,     0,   369,     0,     0,     0,     0,
     2259       0,     0,    34,     0,     0,     0,    31,    37,     0,    38,
     2260      39,    40,  1466,  1467,     0,     0,     0,     0,    41,    42,
     2261       0,     0,     0,     0,     0,  1472,     0,     0,   211,     0,
     2262       0,     0,  1472,     0,    34,     0,     0,     0,     0,    37,
     2263       0,   183,   184,    40,    43,     0,   157,     0,     0,   156,
     2264      41,    42,    45,    46,     0,     0,   211,     0,     0,     0,
     2265       0,   211,     0,   386,  1505,     0,     0,     0,  1511,     0,
     2266       0,     0,     0,     0,     0,     0,   265,     0,     0,     0,
     2267       0,     0,     0,     0,    45,    46,   418,     0,     0,     0,
     2268     716,     0,     0,     0,     0,     0,  1533,     0,  1534,     0,
     2269     433,     0,     0,     0,     0,   524,     0,     0,     0,   438,
     2270       0,     0,     0,     0,     0,     0,     0,     0,     0,   446,
     2271       0,     0,     0,     0,     0,     0,  1549,  1550,     0,   165,
     2272       0,     0,   211,     0,  1553,  1554,     0,     0,     0,     0,
     2273       0,     0,     0,     0,   464,     0,   211,     0,     0,   474,
     2274       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2275       0,     0,   482,     0,     0,     0,   497,     0,   492,     0,
     2276     496,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2277       0,     0,     0,     0,     0,   598,     0,   526,     8,     9,
     2278      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2279      20,    21,    22,    23,    24,    25,   369,   369,    26,    27,
     2280      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
     2281       0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
     2282     586,     0,     0,     0,     0,   591,     0,     0,     0,   211,
     2283       0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
     2284      37,     0,    38,    39,    40,     0,     0,     0,   211,     0,
     2285       0,    41,    42,     0,   636,     0,   524,     0,   637,   638,
     2286       0,   640,     0,     0,     0,     0,     0,     0,   651,   652,
     2287       0,   653,   654,     0,   655,     0,   656,    43,     0,    44,
     2288       0,     0,     0,     0,     0,    45,    46,     0,     0,     0,
     2289       0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
     2290       0,   671,     0,     0,     0,     0,     0,     0,     0,   341,
     2291     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2292       0,     0,   716,     0,     0,     0,   682,     0,     0,     0,
     2293       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2294      12,     0,     0,   414,     0,     0,     0,     0,     0,     0,
     2295     414,     0,   708,     0,     0,     0,     0,     0,   711,     0,
     2296       0,   211,     0,   464,   218,    31,     8,     9,    10,    11,
     2297      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2298      22,    23,    24,    25,  -293,     0,    26,    27,    28,     0,
     2299       0,   211,     0,    34,     0,    31,     0,     0,    37,   746,
     2300       0,   716,    40,     0,     0,     0,     0,     0,     0,    41,
     2301      42,     0,     0,     0,   764,     0,     0,     0,     0,     0,
     2302       0,     0,   414,    34,     0,     0,   211,     0,    37,     0,
     2303     336,   337,    40,     0,  -293,   719,     0,   211,     0,    41,
     2304      42,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2305     369,   369,     0,   790,     0,     0,     0,     0,     0,   218,
     2306       0,     0,   800,     0,     0,   635,     0,   338,   321,   802,
     2307       0,     0,     0,    45,    46,   810,     0,   414,   346,     0,
     2308       0,     0,     0,     0,   824,   414,   582,     0,   414,   585,
     2309     382,   382,     0,     0,     0,     0,     0,     0,     0,   364,
     2310       0,     0,     0,   614,     0,     0,     0,     0,     0,   211,
     2311       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2312       0,     0,   632,   211,   864,   341,   205,     2,   206,     4,
     2313       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    21302314      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2131       25,   224,     0,    26,    27,    28,   355,   355,   355,     0,
    2132      698,   698,    31,     0,     0,     0,     0,     0,     0,     0,
    2133        0,   353,     0,     0,   355,     0,     0,     0,     0,     0,
     2315      25,     0,   414,    26,    27,    28,   414,     0,     0,     0,
     2316     810,   321,    31,     0,     0,     0,     0,     0,   905,     0,
     2317     369,     0,   282,   283,     0,   284,     0,     0,     0,     0,
     2318       0,     0,     0,     0,     0,   478,     0,   364,     0,     0,
     2319      34,     0,    35,     0,    36,     0,     0,   207,    39,   251,
     2320       0,   285,     0,     0,     0,     0,     0,   286,     0,   942,
     2321     943,   287,   211,     0,   288,   289,   290,   291,    41,    42,
     2322       0,   292,   293,     0,     0,     0,   524,     0,   524,     0,
     2323       0,     0,     0,   414,   208,     0,   364,     0,     0,     0,
     2324      45,    46,   980,     0,   294,     0,   379,   984,     0,   380,
     2325       0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
     2326       0,     0,   524,     0,   524,     0,     0,     0,     0,     0,
     2327       0,     0,     0,     0,     0,   414,     0,     0,     0,   341,
     2328     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2329       0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
     2330       0,     0,   382,     0,     0,     0,     0,   211,     0,     0,
     2331       0,  1018,     0,     0,     0,     0,     0,     0,  1019,     0,
     2332       0,     0,     0,     0,     0,   414,   414,     0,     0,     0,
     2333       0,  1021,     0,  1022,     0,     0,     0,     0,     0,     0,
     2334       0,     0,     0,     0,   804,   364,     0,  1034,     0,     0,
     2335       0,     0,     0,  1038,     0,   614,     0,   614,   614,     0,
     2336       0,     0,     0,     0,   614,  1076,     0,     0,  1077,     0,
     2337       0,     0,     0,     0,   843,   364,     0,     0,     0,     0,
     2338     364,     0,     0,     0,     0,     0,     0,     0,     0,   364,
     2339     364,   364,     0,     0,     0,     0,   710,     0,     0,     0,
     2340       0,     0,     0,     0,     0,     0,     0,   364,     0,     0,
     2341       0,     0,   414,   885,     0,     0,   414,   888,     0,     0,
     2342       0,     0,     0,   890,     0,     0,     0,     0,     0,     0,
     2343       0,     0,     0,     0,     0,   742,     0,     0,     0,     0,
     2344       0,     0,   414,     0,     0,   591,     0,     0,   759,     0,
     2345       0,     0,     0,   742,     0,     0,   742,     0,     0,     0,
     2346       0,     0,     0,     0,     0,   364,   614,     0,     0,   768,
    21342347       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2135       34,     0,   355,     0,     0,     0,     0,    38,    39,     0,
    2136      969,   970,     0,    77,     0,     0,     0,   627,     0,     0,
    2137        0,     0,     0,     0,   222,     0,     0,   126,    79,     0,
    2138        0,     0,   126,     0,     0,     0,     0,     0,     0,    77,
    2139        0,   712,   355,   356,   257,     0,    74,    86,    79,     0,
    2140       45,    46,     0,     0,     0,     0,    79,     0,   353,     0,
    2141      353,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2142        0,     0,     0,     0,   356,     0,     0,   355,     0,    86,
    2143        0,     0,     0,     0,  1283,     0,     0,     0,     0,     0,
    2144      353,     0,   356,     0,    79,     0,     0,     0,   353,   353,
    2145      353,     0,   259,     0,     0,     0,    66,     0,     0,   353,
    2146      353,     8,     9,    10,    11,    12,   225,     0,   698,     0,
    2147      712,   355,     0,    74,   117,     8,     9,    10,    11,    12,
    2148        0,   355,     0,   355,     0,     0,   356,     0,   223,     0,
    2149       31,   355,   321,     0,     0,   355,     0,     0,     0,     0,
    2150      698,     0,   346,     0,    31,     0,     0,     0,   698,   698,
    2151      698,     0,   353,     0,   382,   382,     0,     0,    34,   350,
    2152      350,     0,  1090,    37,     0,   183,   184,    40,     0,     0,
    2153        0,     0,    34,  1188,    41,    42,     0,    37,     0,   183,
    2154      184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
    2155      356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
    2156      600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
    2157        0,     0,   698,     0,   905,     0,   411,     0,     0,   353,
    2158        0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
    2159        0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
    2160        0,     0,     0,     0,     0,     0,     0,     0,     0,   478,
    2161        0,     0,   356,     0,     0,     0,     8,     9,    10,    11,
    2162       12,     0,     0,     0,     0,     0,    74,     0,     0,     0,
    2163      356,     0,     0,    74,     0,     0,     0,     0,     0,   350,
    2164        0,    79,     0,     0,     0,    31,     0,     0,    86,     0,
    2165        0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
    2166        0,     0,     0,     0,   117,     0,     0,    79,     0,     0,
    2167      356,     0,   126,    34,     0,     0,     0,     0,    37,     0,
    2168      183,   184,    40,  1218,    74,     0,  1188,     0,     0,    41,
    2169       42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
    2170      355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
    2171        0,     0,     0,     0,     0,  1505,     0,   411,     0,     0,
    2172        0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
     2348    1147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2349       0,   789,     0,     0,     0,     0,     0,     0,     0,   341,
     2350     364,   798,     0,     0,   414,   414,     0,     0,   346,     0,
     2351       0,     0,     0,   759,     0,     0,     0,     0,     0,     0,
     2352       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2353      18,    19,    20,    21,    22,    23,    24,    25,   526,     0,
     2354      26,    27,    28,     0,  1212,     0,     0,     0,   414,    31,
     2355       0,     0,     0,     0,   211,     0,   364,     0,     0,     0,
     2356       0,     0,   863,   804,   364,     0,     0,   614,     0,   614,
     2357     382,     0,     0,     0,     0,     0,     0,    34,  1224,   614,
     2358       0,     0,    37,  1226,   207,    39,    40,     0,     0,     0,
     2359       0,  1230,     0,    41,    42,     0,     8,     9,    10,    11,
     2360      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2361      22,    23,    24,    25,  -293,     0,     0,     0,     0,    43,
     2362       0,   270,     0,     0,  1256,    31,     0,    45,    46,     0,
     2363       0,     0,     0,     0,     0,     0,  1264,     0,     0,  1265,
     2364       0,  1266,     0,     0,     0,     0,     0,     0,     0,     0,
     2365       0,   804,     0,    34,     0,  1275,  1276,     0,   341,   364,
     2366     414,     0,   414,     0,  -293,     0,   414,     0,   759,     0,
     2367     964,     0,     0,     0,     0,     0,     0,  1289,     0,     0,
     2368     975,     0,     0,     0,     0,     0,   983,   614,   614,     0,
     2369       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2370      18,    19,    20,    21,    22,    23,    24,    25,  -294,     0,
     2371       0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
     2372       0,     0,   414,     0,  1328,     0,     0,     0,  1001,  1002,
     2373       0,     0,   346,     0,     0,     0,     0,     0,   282,   283,
     2374       0,   284,     0,   414,  1144,     0,   346,    34,     0,     0,
     2375       0,     0,     0,     0,   364,     0,     0,     0,  -294,     0,
     2376     414,  1156,     0,   614,   614,  1161,     0,   285,     0,     0,
     2377       0,     0,     0,   286,     0,   364,   364,   287,     0,     0,
     2378     288,   289,   290,   291,    41,    42,  1032,   292,   293,     0,
     2379     382,     0,     0,     0,     0,     0,     0,     0,     0,  1378,
     2380       0,  1379,     0,     0,     0,     0,     0,     0,     0,     0,
     2381     294,     0,   379,  1387,     0,  1388,     0,   758,    45,    46,
     2382     296,   297,   298,   299,     0,     0,     0,   346,     0,     0,
     2383       0,     0,  1395,     0,     0,     0,     0,     0,   414,     0,
     2384     414,     0,     0,     0,     0,   414,     0,     0,  1413,  1415,
     2385       0,     0,     0,     0,   614,     0,     0,     0,     0,  1420,
     2386       0,     0,  1230,     0,     0,     0,   321,     0,     0,     0,
     2387       0,     0,     0,     0,     0,     0,     0,   804,   414,  1244,
     2388       0,     0,     0,  1442,     0,     0,     0,     0,     0,     0,
     2389       0,     0,  1449,     0,   382,  1451,     0,  1453,  1455,  1457,
     2390     975,   364,     0,     0,   742,   282,   283,     0,   284,     0,
    21732391       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2174        0,     0,     0,     0,  1188,     0,     0,     0,   225,   356,
    2175        0,  1530,     0,     0,     0,     0,     0,   355,   355,   356,
    2176        0,   356,     0,     0,     0,     0,   224,     0,     0,   356,
    2177        0,     0,     0,   356,     0,   167,     0,   172,     0,     0,
    2178      178,   179,   180,     0,   182,     0,     0,     0,     0,     8,
    2179        9,    10,    11,    12,     0,     0,     0,     0,   233,     0,
    2180        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181      248,   249,  1304,     0,     0,    86,     0,     0,    31,     0,
    2182      709,     0,     0,     0,     0,     0,     0,     0,   355,     0,
    2183      363,     0,     0,     0,    79,    86,     0,     0,     0,     0,
    2184        0,     0,     0,    86,     0,     0,    34,     0,     0,     0,
    2185        0,    37,     0,   183,   184,    40,     0,     0,     0,   741,
    2186        0,   363,    41,    42,   356,     0,     0,     0,     0,     0,
    2187        0,   223,   758,     0,     0,     0,     0,   741,     0,   363,
    2188      741,    86,     0,   282,   283,     0,   284,     0,   265,     0,
    2189        0,     0,   767,    77,     0,     0,    45,    46,     0,     0,
    2190        0,     0,     0,     0,     0,   355,     0,   355,     0,     0,
    2191        0,     0,   285,     0,   788,     0,     0,     0,   286,     0,
    2192        0,     0,   287,   363,   797,   288,   289,   290,   291,    41,
    2193       42,   346,   292,   293,     0,     0,   758,   355,     0,     0,
    2194        0,     0,     0,     0,     0,   355,   355,   355,     0,     0,
    2195        0,     0,     0,     0,     0,   506,   355,   355,     0,     0,
    2196        0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2197       77,     0,     0,     0,     0,     0,     0,   356,   356,     0,
    2198      356,   356,     0,     0,     0,   862,     0,   363,     0,     0,
    2199        0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
    2200       79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2201        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2202       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2203        0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
    2204        0,    31,     0,     0,     0,     0,     0,     0,     0,   363,
    2205        0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
    2206        0,     0,     0,     0,     0,     0,   591,   363,   599,    34,
    2207        0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
    2208      624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
    2209        0,   758,     0,   963,     0,     0,     0,     0,     0,     0,
    2210        0,     0,     0,   974,    86,     0,   356,   363,     0,   982,
    2211        0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
    2212        0,   287,     0,    77,   288,   289,   290,   291,    41,    42,
    2213       77,   292,   293,     0,     0,   165,     0,     0,     0,   272,
    2214        0,     0,   363,     0,     0,     0,     0,     0,     0,   224,
    2215        0,  1000,  1001,     0,   294,   346,   379,     0,     0,     0,
    2216        0,     0,   344,    46,   296,   297,   298,   299,   165,   346,
    2217        0,    79,     0,     0,     0,     0,     0,     0,   369,     0,
    2218        0,    77,   375,   356,     0,   356,   363,     0,     0,     0,
    2219        0,     0,     0,     0,     0,     0,   363,     0,   363,     0,
    2220        0,     0,     0,   225,     0,     0,   363,     0,     0,  1031,
    2221      363,     0,     0,   382,     0,   356,     0,     0,     0,     0,
    2222        0,     0,     0,   356,   356,   356,     0,     0,     0,     0,
    2223        0,   165,     0,     0,   356,   356,     0,     0,     0,     0,
    2224        0,     0,     0,   218,     0,     0,     0,     0,    79,     0,
    2225      346,     0,     0,   282,   283,     0,   284,     0,     0,     0,
    2226        0,   165,     0,     0,     0,     0,     0,     0,     0,     0,
    2227        0,    86,     0,     0,     0,     0,     0,     0,     0,     0,
    2228        0,     0,   285,     0,     0,     0,   375,   356,   286,   321,
    2229        0,     0,   287,   165,     0,   288,   289,   290,   291,    41,
    2230       42,   363,   292,   293,     0,     0,     0,     0,     0,     0,
    2231        0,     0,     0,     0,     0,     0,   524,   382,     0,     0,
    2232        0,     0,     0,   974,     0,   294,     0,   741,     0,   165,
    2233        0,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2234        0,     0,     0,     0,     0,     0,     0,     0,  1150,     0,
    2235        0,     0,     0,     0,   356,     0,     0,     0,     0,  1165,
    2236        0,     0,     0,     0,     0,     0,     0,   597,     0,     0,
    2237        0,     0,   621,     0,     0,     0,     0,     0,     0,     0,
    2238        0,   382,     0,  1183,     0,     0,     0,     0,     0,     0,
    2239        0,     0,     0,     0,     0,     0,     0,     0,   974,   974,
    2240        0,    79,     0,     0,     0,     0,     0,     0,    79,     0,
    2241        0,     0,     0,     0,   363,   363,     0,   363,   363,  1215,
    2242        0,   925,     0,   926,     0,     0,     0,     0,     0,     0,
    2243      929,   930,     0,     0,     0,   935,     0,    86,     0,     0,
    2244        0,     0,     0,     0,     0,     0,     0,   940,   165,   165,
    2245        0,     0,   944,     0,     0,   369,     0,     0,     0,    79,
    2246        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2247        0,     0,   363,   363,   974,     0,   524,     0,     0,     0,
    2248      978,  1162,     0,     0,     8,     9,    10,    11,    12,     0,
    2249        0,     0,   862,     0,     0,     0,     0,     0,     0,     0,
    2250        0,     0,     0,     0,   715,     0,     0,  1266,  1267,     0,
    2251        0,   282,   283,    31,   284,     0,   165,     0,     0,     0,
    2252        0,     0,     0,     0,     0,     0,     0,     0,   524,     0,
    2253      524,     0,     0,   524,     0,   165,   524,     0,     0,     0,
    2254      285,    34,     0,   363,     0,     0,   286,     0,   369,     0,
    2255      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2256      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2257        0,     0,     0,     0,     0,     0,     0,     0,     0,  1023,
    2258     1024,  1025,  1026,   294,  1028,   379,   225,     0,     0,     0,
    2259        0,  1163,    46,   296,   297,   298,   299,     0,     0,  1072,
    2260      165,     0,     0,     0,     0,     0,     0,     0,    86,     0,
    2261        0,     0,   369,  1078,     0,     0,   810,     0,     0,     0,
    2262      363,     0,   363,     0,     0,     0,     0,     0,     0,     0,
    2263        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2264        0,     0,   597,     0,     0,     0,     0,   597,  1371,     0,
    2265        0,   741,   363,  1098,     0,     0,   369,   369,   369,     0,
    2266      363,   363,   363,     0,     0,     0,     0,     0,     0,     0,
    2267        0,   363,   363,     0,   369,     0,     0,     0,     0,     0,
    2268        0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
    2269        0,     0,     0,     0,     0,     0,     0,     0,  1129,     0,
    2270        0,     0,     0,     0,  1136,     0,   524,     0,     0,  1140,
    2271        0,     0,     0,     0,  1144,     0,  1145,     0,   211,     0,
    2272     1147,     0,  1148,  1149,   363,     0,  1152,   231,     0,   235,
    2273        0,   237,   369,     0,   934,  1164,     0,     0,   246,     0,
    2274        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2275        0,     0,     0,  1179,  1180,     0,     0,     0,     0,     0,
    2276        0,     0,     0,     0,     0,     0,     0,   715,     0,   211,
    2277        0,   235,   237,   246,     0,     0,     0,     0,     0,     0,
    2278     1210,     0,     0,  1212,     0,     0,     0,     0,     0,     0,
    2279        0,   363,     0,     8,     9,    10,    11,    12,    13,    14,
    2280       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2281       25,     0,   211,    26,    27,    28,     0,     0,     0,     0,
    2282        0,     0,    31,   369,     0,     0,  1226,   621,     0,     0,
    2283        0,   369,  1230,  1231,     0,     0,     0,     0,    86,     0,
    2284        0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
    2285       34,     0,  1247,     0,     0,  1251,     0,    38,    39,  1253,
    2286        0,   321,     0,     0,     0,     0,     0,     0,     0,     0,
    2287        0,     0,  1261,   211,     0,   235,   237,   246,     0,     0,
    2288        0,     0,     0,   156,     0,  1268,     0,  1270,  1271,  1272,
    2289     1273,     0,   634,     0,   338,     0,    86,     0,     0,     0,
    2290       45,    46,     0,  1280,     0,  1281,     0,     0,     0,   172,
    2291        0,   211,     0,     0,     0,     0,   211,     0,     0,     0,
    2292        0,     0,     0,     0,     0,     0,   715,     0,     0,     0,
    2293      251,   497,     0,     0,     0,     0,     0,     0,  1309,  1310,
    2294      256,   524,     0,     0,     0,     0,     0,     8,     9,    10,
    2295       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2296       21,    22,    23,    24,    25,   165,     0,    26,    27,    28,
    2297        0,     0,     0,     0,     0,     0,    31,   684,     0,     0,
    2298      211,     0,     0,     0,     0,     0,     0,     0,  1342,  1343,
    2299        0,     0,     0,     0,     0,     0,   156,     0,  1353,     0,
    2300        0,     0,   211,     0,    34,     0,     0,   235,   237,     0,
    2301      386,    38,    39,     0,     0,   246,     0,     0,     0,     0,
    2302        0,   597,     0,     0,     0,     0,     0,     0,     0,     0,
    2303        0,     0,     0,   418,     0,     0,     0,     0,     0,     0,
    2304        0,     0,   369,   369,     0,     0,     0,   433,   685,     0,
    2305        0,     0,   686,     0,    45,    46,   438,     0,   211,  1388,
    2306        0,  1389,  1390,  1391,     0,     0,   446,     0,     0,     0,
    2307        0,     0,     0,  1395,     0,     0,   211,   282,   283,     0,
    2308      284,   211,  1406,   211,     0,     0,     0,     0,     0,     0,
    2309        0,   464,     0,     0,     0,     0,   474,     0,     0,     0,
    2310      211,     0,   524,   211,   211,     0,   285,  1427,     0,   482,
    2311        0,   211,   286,     0,     0,   492,   287,   496,     0,   288,
    2312      289,   290,   291,    41,    42,   211,   292,   293,     0,     0,
    2313        0,     0,   211,     0,   526,     0,     0,     0,     0,     0,
    2314        0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
    2315     1465,  1466,     0,     0,     0,     0,     0,    45,    46,   296,
    2316      297,   298,   299,  1471,     0,     0,     0,     0,   715,     0,
    2317     1471,     0,     0,     0,     0,     0,     0,   585,     0,     0,
    2318        0,     0,   590,     8,     9,    10,    11,    12,    13,    14,
    2319       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2320       25,  -292,  1504,     0,     0,     0,  1510,     0,     0,     0,
    2321      218,   635,    31,     0,     0,   636,   637,     0,   639,     0,
    2322        0,     0,     0,     0,     0,   650,   651,     0,   652,   653,
    2323        0,   654,     0,   655,  1532,     0,  1533,     0,     0,     0,
    2324       34,     0,   282,   283,     0,   284,   211,   715,     0,     0,
    2325      585,  -292,     0,     0,     0,     0,     0,     0,   670,     0,
    2326        0,     0,     0,     0,  1548,  1549,     0,     0,     0,     0,
    2327        0,   285,  1552,  1553,   211,     0,     0,   286,     0,   211,
    2328        0,   287,     0,   681,   288,   289,   290,   291,    41,    42,
    2329        0,   292,   293,     0,     0,     0,   369,   369,     0,     0,
    2330        0,     0,     0,     0,     0,   218,     0,     0,     0,   707,
    2331        0,     0,     0,     0,   294,   710,   379,     0,     0,   380,
    2332      464,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2333        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2334       17,    18,    19,    20,    21,    22,    23,    24,    25,  -292,
    2335      211,    26,    27,    28,     0,     0,   745,     0,     0,     0,
    2336       31,     0,     0,     0,   211,   507,     0,   509,   512,     0,
    2337        0,   763,     0,     0,     0,   515,   516,     0,     0,     0,
    2338        0,     0,     0,     0,   497,     0,     0,     0,    34,     0,
    2339      509,   509,     0,    37,     0,   336,   337,    40,     0,  -292,
    2340        0,     0,     0,     0,    41,    42,     0,     0,     0,   789,
    2341        0,     0,     0,     0,     0,     0,   369,     0,   799,     0,
    2342        0,     0,     0,     0,     0,   801,     0,     0,   509,     0,
    2343      634,   809,   338,     0,     0,     0,     0,     0,    45,    46,
    2344      823,     0,     0,     0,     0,   211,     0,     0,     0,     0,
    2345        0,     0,     0,     0,     0,     0,     0,   211,     0,     0,
    2346        0,     0,     0,     0,   509,     0,     0,     0,     0,     0,
    2347        0,     0,   524,     0,   524,     0,   211,     0,     0,     0,
    2348      863,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    2349       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2350       23,    24,    25,  -292,     0,    26,    27,    28,   524,     0,
    2351      524,     0,     0,     0,    31,     0,   809,     0,     0,     0,
    2352        0,     0,     0,     0,   904,     0,     0,     0,     0,     0,
    2353        0,     0,     0,   282,   283,     0,   284,   165,     0,     0,
    2354      341,   364,    34,     0,     0,     0,     0,    37,     0,   336,
    2355      337,    40,     0,  -292,     0,   251,     0,     0,    41,    42,
    2356        0,     0,   285,     0,     0,   941,   942,     0,   286,     0,
    2357        0,     0,   287,     0,   414,   288,   289,   290,   291,    41,
    2358       42,   414,   292,   293,     0,     0,   338,     0,     0,   211,
    2359        0,     0,    45,    46,     0,     0,     0,     0,   979,     0,
    2360        0,     0,     0,   983,     0,   294,     0,   379,     0,     0,
    2361        0,     0,     0,    45,    46,   296,   297,   298,   299,   211,
    2362        0,     0,     0,     0,     0,     0,   786,     0,     0,     0,
    2363        0,     0,   509,   509,   509,   509,   509,   509,   509,   509,
    2364      509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
    2365        0,     0,     0,   414,   211,     0,     0,     0,     0,     0,
    2366        0,     0,     0,     0,     0,   211,     0,  1017,     0,     0,
    2367        0,     0,     0,     0,  1018,     0,     0,     0,     0,     0,
    2368        0,     0,     0,     0,     0,     0,     0,  1020,     0,  1021,
    2369        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2370        0,     0,     0,  1033,     0,     0,     0,     0,   414,  1037,
    2371        0,     0,     0,     0,     0,     0,   414,   581,     0,   414,
    2372      584,  1075,     0,     0,  1076,     0,     0,     0,     0,     0,
    2373      364,     0,     0,     0,   613,     0,     0,   211,     0,     0,
    2374        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2375        0,   211,     0,   631,     0,     0,   341,     0,     0,     0,
    2376        0,   282,   283,     0,   284,  1041,     0,  1042,     0,     0,
    2377     1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,   509,     0,
    2378     1524,  1051,     0,   414,     0,  1052,  1053,   414,    33,     0,
    2379      285,     0,     0,     0,     0,     0,  1054,     0,     0,     0,
    2380      287,   590,     0,   288,   289,   290,   291,    41,    42,     0,
    2381      292,   293,     0,     0,     0,     0,     0,     0,   364,     0,
    2382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383        0,     0,     0,   294,     0,   379,  1146,     0,   171,   509,
    2384      211,    45,    46,   296,   297,   298,   299,     0,     0,     0,
    2385        0,  1056,     0,     0,     0,     0,  -127,     0,     0,     0,
    2386        0,     0,     0,     0,   414,     0,     0,   364,     0,   509,
    2387        0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    2388       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2389       22,    23,    24,    25,   526,     0,    26,    27,    28,     0,
    2390     1211,     0,     0,     0,     0,    31,   414,     0,     0,     0,
    2391      341,   364,     0,     0,     8,     9,    10,    11,    12,    13,
     2392       0,     0,     0,     0,     0,  1151,     0,     0,     0,     0,
     2393       0,     0,     0,     0,   285,     0,  1166,  1487,     0,  1489,
     2394     641,  1230,   139,   140,   287,     0,     0,   288,   289,   290,
     2395     291,    41,    42,     0,   292,   293,  1500,     0,   382,     0,
     2396    1184,     0,   341,     0,     0,     0,     0,     0,     0,     0,
     2397       0,     0,     0,     0,     0,   975,   975,   294,     0,   642,
     2398     364,   643,   380,     0,     0,    45,    46,   296,   297,   298,
     2399     299,     0,     0,     0,     0,     0,  1216,     0,     0,     0,
     2400       0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
     2401       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2402      17,    18,    19,    20,    21,    22,    23,    24,    25,   364,
     2403     364,    26,    27,    28,    29,     0,     0,    30,     0,     0,
     2404      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2405       0,   975,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,    34,   863,
     2407      35,     0,    36,     0,     0,    38,    39,     0,     0,     0,
     2408       0,     0,     0,     0,  1267,  1268,     0,     1,     2,   206,
     2409       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    23922410      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2393       24,    25,  -293,    34,  1223,   211,     0,     0,    37,  1225,
    2394      336,   337,    40,    31,     0,     0,     0,  1229,     0,    41,
    2395       42,     0,     0,     0,     0,   414,   414,     0,     0,     0,
    2396        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2397        0,    34,     0,     0,   803,   364,     0,   338,     0,     0,
    2398     1255,     0,  -293,    45,    46,   613,     0,   613,   613,   509,
    2399        0,     0,  1263,     0,   613,  1264,     0,  1265,     0,     0,
    2400        0,     0,     0,     0,   842,   364,     0,     0,     0,     0,
    2401      364,  1274,  1275,     0,     0,     0,     0,     0,     0,   364,
    2402      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2403        0,     0,     0,  1288,   509,     0,     0,   364,     0,     0,
    2404        0,     0,   414,   884,     0,     0,   414,   887,     0,     0,
    2405        0,     0,     0,   889,     0,     0,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
    2407        0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
    2408     1327,     0,   509,     0,     0,     0,     0,     0,     0,     0,
    2409        0,     0,     0,     0,     0,   364,   613,     0,     0,     8,
    2410        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2411       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2412       27,    28,     0,   509,     0,     0,     0,     0,    31,   341,
    2413      364,     0,     0,     0,   414,   414,     0,     0,     0,     0,
    2414        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2415        0,     0,     0,     0,     0,  1377,    34,  1378,     0,     0,
    2416        0,     0,     0,   207,    39,     0,     0,     0,     0,  1386,
    2417        0,  1387,     0,     0,     0,     0,     0,     0,   414,     0,
    2418        0,     0,   211,     0,     0,     0,   364,     0,  1394,     0,
    2419        0,     0,     0,   803,   364,     0,     0,   613,     0,   613,
    2420      509,     0,     0,     0,  1412,  1414,    45,    46,     0,   613,
    2421        0,     0,     0,     0,     0,  1419,     0,     0,  1229,     0,
    2422        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2423        0,     0,     0,     0,     0,     0,     0,     0,     0,  1441,
    2424        0,     0,     0,     0,     0,     0,     0,     0,  1448,     0,
    2425        0,  1450,     0,  1452,  1454,  1456,     0,     0,     0,     0,
    2426      509,   509,     8,     9,    10,    11,    12,    13,    14,    15,
    2427       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2428        0,   803,    26,    27,    28,     0,     0,     0,   341,   364,
    2429      414,    31,   414,  1486,     0,  1488,   414,  1229,     0,     0,
    2430        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2431        0,     0,  1499,     0,     0,     0,     0,   613,   613,    34,
    2432        0,     0,     0,     0,    37,     0,    38,    39,    40,     0,
    2433        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    2434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2435        0,     0,   414,     0,     0,     0,     0,     0,     0,     0,
    2436        0,    43,     0,   157,