Changes in / [94e0864d:94b4364]
- Location:
- src
- Files:
-
- 30 edited
-
CodeGen/CodeGenerator.cc (modified) (5 diffs)
-
CodeGen/OperatorTable.cc (modified) (2 diffs)
-
CodeGen/OperatorTable.h (modified) (2 diffs)
-
ControlStruct/LabelFixer.cc (modified) (2 diffs)
-
ControlStruct/LabelGenerator.cc (modified) (2 diffs)
-
GenPoly/Box.cc (modified) (2 diffs)
-
GenPoly/Specialize.cc (modified) (2 diffs)
-
Parser/DeclarationNode.cc (modified) (7 diffs)
-
Parser/ExpressionNode.cc (modified) (2 diffs)
-
Parser/ParseNode.h (modified) (3 diffs)
-
Parser/TypeData.cc (modified) (14 diffs)
-
Parser/TypeData.h (modified) (2 diffs)
-
Parser/TypedefTable.cc (modified) (9 diffs)
-
Parser/TypedefTable.h (modified) (3 diffs)
-
Parser/lex.cc (modified) (3 diffs)
-
Parser/lex.ll (modified) (4 diffs)
-
Parser/parser.cc (modified) (435 diffs)
-
Parser/parser.h (modified) (1 diff)
-
Parser/parser.yy (modified) (96 diffs)
-
ResolvExpr/AlternativeFinder.cc (modified) (2 diffs)
-
ResolvExpr/Resolver.cc (modified) (3 diffs)
-
SymTab/Validate.cc (modified) (4 diffs)
-
SynTree/CompoundStmt.cc (modified) (2 diffs)
-
SynTree/DeclStmt.cc (modified) (2 diffs)
-
SynTree/Declaration.h (modified) (4 diffs)
-
SynTree/FunctionDecl.cc (modified) (6 diffs)
-
SynTree/Statement.cc (modified) (20 diffs)
-
SynTree/Statement.h (modified) (20 diffs)
-
driver/cfa.cc (modified) (5 diffs)
-
main.cc (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 24 16:11:41201513 // Update Count : 14 312 // Last Modified On : Mon Jun 15 12:47:16 2015 13 // Update Count : 142 14 14 // 15 15 … … 77 77 if ( functionDecl->get_isInline() ) { 78 78 output << "inline "; 79 } // if80 if ( functionDecl->get_isNoreturn() ) {81 output << "_Noreturn ";82 79 } // if 83 80 output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) ); … … 306 303 case OT_PREFIX: 307 304 case OT_PREFIXASSIGN: 308 case OT_LABELADDRESS:309 305 assert( untypedExpr->get_args().size() == 1 ); 310 306 output << "("; … … 330 326 output << ")"; 331 327 break; 332 328 333 329 case OT_CONSTANT: 334 330 // there are no intrinsic definitions of 0 or 1 as functions … … 646 642 break; 647 643 case DeclarationNode::Inline: 648 output << "inline ";644 // handled as special via isInline flag (FIX) 649 645 break; 650 646 case DeclarationNode::Fortran: 647 // not handled 651 648 output << "fortran "; 652 649 break; 653 650 case DeclarationNode::Noreturn: 651 // not handled 654 652 output << "_Noreturn "; 655 653 break; 656 654 case DeclarationNode::Threadlocal: 655 // not handled 657 656 output << "_Thread_local "; 658 657 break; -
src/CodeGen/OperatorTable.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 17:41:14201513 // Update Count : 512 // Last Modified On : Mon May 18 23:42:07 2015 13 // Update Count : 2 14 14 // 15 15 … … 20 20 namespace { 21 21 const OperatorInfo tableValues[] = { 22 { "?[?]", "", "_operator_index", OT_INDEX},23 { "?()", "", "_operator_call", OT_CALL},24 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN },25 { "?--", "--", "_operator_postdecr", OT_POSTFIXASSIGN },26 { "*?", "*", "_operator_deref", OT_PREFIX},27 { "+?", "+", "_operator_unaryplus", OT_PREFIX},28 { "-?", "-", "_operator_unaryminus", OT_PREFIX},29 { "~?", "~", "_operator_bitnot", OT_PREFIX},30 { "!?", "!", "_operator_lognot", OT_PREFIX},31 { "++?", "++", "_operator_preincr", OT_PREFIXASSIGN },32 { "--?", "--", "_operator_predecr", OT_PREFIXASSIGN },33 { "?*?", "*", "_operator_multiply", OT_INFIX},34 { "?/?", "/", "_operator_divide", OT_INFIX},35 { "?%?", "%", "_operator_modulus", OT_INFIX},36 { "?+?", "+", "_operator_add", OT_INFIX},37 { "?-?", "-", "_operator_subtract", OT_INFIX},38 { "?<<?", "<<", "_operator_shiftleft", OT_INFIX},39 { "?>>?", ">>", "_operator_shiftright", OT_INFIX},40 { "?<?", "<", "_operator_less", OT_INFIX},41 { "?>?", ">", "_operator_greater", OT_INFIX},42 { "?<=?", "<=", "_operator_lessequal", OT_INFIX},43 { "?>=?", ">=", "_operator_greaterequal", OT_INFIX},44 { "?==?", "==", "_operator_equal", OT_INFIX},45 { "?!=?", "!=", "_operator_notequal", OT_INFIX},46 { "?&?", "&", "_operator_bitand", OT_INFIX},47 { "?^?", "^", "_operator_bitxor", OT_INFIX},48 { "?|?", "|", "_operator_bitor", OT_INFIX},49 { "?=?", "=", "_operator_assign", OT_INFIXASSIGN },50 { "?*=?", "*=", "_operator_multassign", OT_INFIXASSIGN },51 { "?/=?", "/=", "_operator_divassign", OT_INFIXASSIGN },52 { "?%=?", "%=", "_operator_modassign", OT_INFIXASSIGN },53 { "?+=?", "+=", "_operator_addassign", OT_INFIXASSIGN },54 { "?-=?", "-=", "_operator_subassign", OT_INFIXASSIGN },22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?()", "", "_operator_call", OT_CALL }, 24 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN }, 25 { "?--", "--", "_operator_postdecr", OT_POSTFIXASSIGN }, 26 { "*?", "*", "_operator_deref", OT_PREFIX }, 27 { "+?", "+", "_operator_unaryplus", OT_PREFIX }, 28 { "-?", "-", "_operator_unaryminus", OT_PREFIX }, 29 { "~?", "~", "_operator_bitnot", OT_PREFIX }, 30 { "!?", "!", "_operator_lognot", OT_PREFIX }, 31 { "++?", "++", "_operator_preincr", OT_PREFIXASSIGN }, 32 { "--?", "--", "_operator_predecr", OT_PREFIXASSIGN }, 33 { "?*?", "*", "_operator_multiply", OT_INFIX }, 34 { "?/?", "/", "_operator_divide", OT_INFIX }, 35 { "?%?", "%", "_operator_modulus", OT_INFIX }, 36 { "?+?", "+", "_operator_add", OT_INFIX }, 37 { "?-?", "-", "_operator_subtract", OT_INFIX }, 38 { "?<<?", "<<", "_operator_shiftleft", OT_INFIX }, 39 { "?>>?", ">>", "_operator_shiftright", OT_INFIX }, 40 { "?<?", "<", "_operator_less", OT_INFIX }, 41 { "?>?", ">", "_operator_greater", OT_INFIX }, 42 { "?<=?", "<=", "_operator_lessequal", OT_INFIX }, 43 { "?>=?", ">=", "_operator_greaterequal", OT_INFIX }, 44 { "?==?", "==", "_operator_equal", OT_INFIX }, 45 { "?!=?", "!=", "_operator_notequal", OT_INFIX }, 46 { "?&?", "&", "_operator_bitand", OT_INFIX }, 47 { "?^?", "^", "_operator_bitxor", OT_INFIX }, 48 { "?|?", "|", "_operator_bitor", OT_INFIX }, 49 { "?=?", "=", "_operator_assign", OT_INFIXASSIGN }, 50 { "?*=?", "*=", "_operator_multassign", OT_INFIXASSIGN }, 51 { "?/=?", "/=", "_operator_divassign", OT_INFIXASSIGN }, 52 { "?%=?", "%=", "_operator_modassign", OT_INFIXASSIGN }, 53 { "?+=?", "+=", "_operator_addassign", OT_INFIXASSIGN }, 54 { "?-=?", "-=", "_operator_subassign", OT_INFIXASSIGN }, 55 55 { "?<<=?", "<<=", "_operator_shiftleftassign", OT_INFIXASSIGN }, 56 56 { "?>>=?", ">>=", "_operator_shiftrightassign", OT_INFIXASSIGN }, 57 { "?&=?", "&=", "_operator_bitandassign", OT_INFIXASSIGN }, 58 { "?^=?", "^=", "_operator_bitxorassign", OT_INFIXASSIGN }, 59 { "?|=?", "|=", "_operator_bitorassign", OT_INFIXASSIGN }, 60 { "&&", "&&", "&&", OT_LABELADDRESS }, 61 { "0", "0", "_constant_zero", OT_CONSTANT }, 62 { "1", "1", "_constant_one", OT_CONSTANT } 57 { "?&=?", "&=", "_operator_bitandassign", OT_INFIXASSIGN }, 58 { "?^=?", "^=", "_operator_bitxorassign", OT_INFIXASSIGN }, 59 { "?|=?", "|=", "_operator_bitorassign", OT_INFIXASSIGN }, 60 { "0", "0", "_constant_zero", OT_CONSTANT }, 61 { "1", "1", "_constant_one", OT_CONSTANT } 63 62 }; 64 63 -
src/CodeGen/OperatorTable.h
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 16:09:27 201513 // Update Count : 312 // Last Modified On : Mon May 18 23:43:07 2015 13 // Update Count : 2 14 14 // 15 15 … … 29 29 OT_POSTFIXASSIGN, 30 30 OT_INFIXASSIGN, 31 OT_LABELADDRESS,32 31 OT_CONSTANT 33 32 }; -
src/ControlStruct/LabelFixer.cc
r94e0864d r94b4364 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue Jun 23 12:42:23201513 // Update Count : 9 611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Jun 02 15:30:32 2015 13 // Update Count : 93 14 14 // 15 15 … … 137 137 Label undef = from.back()->get_target(); 138 138 throw SemanticError ( "'" + undef + "' label not defined"); 139 } // if139 } 140 140 141 // generate a new label, and attach it to its defining statement as the only label on that statement 142 Label finalLabel = generator->newLabel( to->get_labels().back() ); 141 // generate a new label, and attach it to its defining statement 142 // as the only label on that statement 143 Label finalLabel = generator->newLabel(); 143 144 entry->set_label( finalLabel ); 144 145 -
src/ControlStruct/LabelGenerator.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 12:18:34201513 // Update Count : 1 312 // Last Modified On : Mon Jun 8 14:45:07 2015 13 // Update Count : 12 14 14 // 15 15 … … 29 29 } 30 30 31 Label LabelGenerator::newLabel( std::string suffix) {31 Label LabelGenerator::newLabel(std::string suffix) { 32 32 std::ostringstream os; 33 33 os << "__L" << current++ << "__" << suffix; -
src/GenPoly/Box.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 0 9:12:19201513 // Update Count : 412 // Last Modified On : Sat Jun 13 07:13:46 2015 13 // Update Count : 3 14 14 // 15 15 … … 524 524 adapterBody->get_kids().push_back( bodyStmt ); 525 525 std::string adapterName = makeAdapterName( mangleName ); 526 return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false , false);526 return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false ); 527 527 } 528 528 -
src/GenPoly/Specialize.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 15:54:07201513 // Update Count : 612 // Last Modified On : Sat Jun 13 07:14:42 2015 13 // Update Count : 5 14 14 // 15 15 … … 97 97 newEnv.applyFree( newType ); 98 98 } // if 99 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false , false);99 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false ); 100 100 thunkFunc->fixUniqueId(); 101 101 -
src/Parser/DeclarationNode.cc
r94e0864d r94b4364 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 24 15:29:19201513 // Update Count : 8612 // Last Modified On : Sat Jun 13 08:02:03 2015 13 // Update Count : 58 14 14 // 15 15 … … 24 24 #include "SynTree/Declaration.h" 25 25 #include "SynTree/Expression.h" 26 27 #include "Parser.h"28 #include "TypedefTable.h"29 extern TypedefTable typedefTable;30 26 31 27 using namespace std; … … 181 177 newnode->type->aggregate->name = DeclarationNode::anonymous.newName(); 182 178 } // if 183 184 // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified by185 // "struct"186 typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );187 DeclarationNode *typedf = new DeclarationNode;188 typedf->name = newnode->type->aggregate->name;189 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );190 191 179 newnode->type->aggregate->params = formals; 192 180 newnode->type->aggregate->actuals = actuals; … … 203 191 newnode->type->enumeration->name = DeclarationNode::anonymous.newName(); 204 192 } // if 205 206 // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be qualified207 // by "enum"208 typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );209 DeclarationNode *typedf = new DeclarationNode;210 typedf->name = newnode->type->enumeration->name;211 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );212 213 193 newnode->type->enumeration->constants = constants; 214 194 return newnode; … … 852 832 Declaration *DeclarationNode::build() const { 853 833 if ( type ) { 854 Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), build FuncSpecifier( Inline ), buildFuncSpecifier( Noreturn), linkage, maybeBuild< Initializer >(initializer) );834 Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildInline(), linkage, maybeBuild< Initializer >(initializer) ); 855 835 return newDecl; 856 836 } // if 857 if ( ! build FuncSpecifier( Inline ) && ! buildFuncSpecifier( Noreturn) ) {837 if ( ! buildInline() ) { 858 838 return new ObjectDecl( name, buildStorageClass(), linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ); 859 839 } // if 860 throw SemanticError( "invalid function specifierin declaration of ", this );840 throw SemanticError( "invalid inline specification in declaration of ", this ); 861 841 } 862 842 … … 899 879 for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) { 900 880 if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers 881 901 882 if ( ret != DeclarationNode::NoStorageClass ) { // already have a valid storage class ? 902 883 throw SemanticError( "invalid combination of storage classes in declaration of ", this ); … … 907 888 } 908 889 909 bool DeclarationNode::build FuncSpecifier( DeclarationNode::StorageClass key) const {910 std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key);911 if ( first == storageClasses.end() ) return false; // not found912 first = std::find( ++first, storageClasses.end(), key ); // found913 if ( first == storageClasses.end() ) return true; // not found again914 throw SemanticError( "duplicate function specifierin declaration of ", this );890 bool DeclarationNode::buildInline() const { 891 std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), DeclarationNode::Inline ); 892 if ( first == storageClasses.end() ) return false; 893 std::list< DeclarationNode::StorageClass >::const_iterator next = std::find( ++first, storageClasses.end(), DeclarationNode::Inline ); 894 if ( next == storageClasses.end() ) return true; 895 throw SemanticError( "duplicate inline specification in declaration of ", this ); 915 896 } 916 897 -
src/Parser/ExpressionNode.cc
r94e0864d r94b4364 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 24 16:10:47201513 // Update Count : 15 412 // Last Modified On : Wed Jun 10 14:57:52 2015 13 // Update Count : 151 14 14 // 15 15 … … 364 364 // the names that users use to define operator functions 365 365 static const char *opFuncName[] = { 366 "", "","",367 "", "",368 // diadic369 "", "", "", "", "?+?", "?-?", "?*?", "?/?", "?%?", "","",370 "?|?", "?&?", "?^?", "", "?<<?", "?>>?", "?<?", "?>?","?<=?",371 "?>=?", "?==?", "?!=?", "?=?", "?*=?", "?/=?", "?%=?", "?+=?","?-=?",372 "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", "?[?]", "", "","Range",373 // monadic374 "+?", "-?", "", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "&&"366 "", "", "", 367 "", "", 368 // diadic 369 "", "", "", "", "?+?", "?-?", "?*?", "?/?", "?%?", "", "", 370 "?|?", "?&?", "?^?", "", "?<<?", "?>>?", "?<?", "?>?", "?<=?", 371 "?>=?", "?==?", "?!=?", "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", 372 "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", "?[?]", "","","Range", 373 // monadic 374 "+?", "-?", "", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "LabAddress" 375 375 }; 376 376 -
src/Parser/ParseNode.h
r94e0864d r94b4364 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 24 14:09:51201513 // Update Count : 8112 // Last Modified On : Sat Jun 13 07:24:22 2015 13 // Update Count : 79 14 14 // 15 15 … … 329 329 DeclarationNode *cloneBaseType( DeclarationNode *newdecl ); 330 330 331 DeclarationNode *appendList( DeclarationNode *);331 DeclarationNode *appendList( DeclarationNode *); 332 332 333 333 DeclarationNode *clone() const; … … 347 347 private: 348 348 StorageClass buildStorageClass() const; 349 bool build FuncSpecifier( StorageClass key) const;349 bool buildInline() const; 350 350 351 351 TypeData *type; -
src/Parser/TypeData.cc
r94e0864d r94b4364 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 18 22:06:23201513 // Update Count : 2112 // Last Modified On : Sat Jun 13 08:03:20 2015 13 // Update Count : 15 14 14 // 15 15 … … 437 437 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 438 438 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 439 (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false , false) );439 (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false ) ); 440 440 } // if 441 441 } // for 442 442 } 443 443 444 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn,LinkageSpec::Type linkage, Initializer *init ) const {444 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init ) const { 445 445 if ( kind == TypeData::Function ) { 446 446 FunctionDecl *decl; … … 450 450 CompoundStmt *body = dynamic_cast< CompoundStmt* >( stmt ); 451 451 assert( body ); 452 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline , isNoreturn);452 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline ); 453 453 } else { 454 454 // std::list<Label> ls; 455 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline , isNoreturn);455 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline ); 456 456 } // if 457 457 } else { 458 decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline , isNoreturn);458 decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline ); 459 459 } // if 460 460 for ( DeclarationNode *cur = function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_link() ) ) { … … 474 474 return buildVariable(); 475 475 } else { 476 if ( isInline || isNoreturn) {477 throw SemanticError( "invalid inline or _Noreturnspecification in declaration of ", this );476 if ( isInline ) { 477 throw SemanticError( "invalid inline specification in declaration of ", this ); 478 478 } else { 479 479 return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init ); … … 598 598 } // if 599 599 break; 600 600 601 case DeclarationNode::Complex: 601 602 switch ( ret ) { … … 790 791 break; 791 792 default: 792 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, false,LinkageSpec::Cforall ) ) );793 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, LinkageSpec::Cforall ) ) ); 793 794 } // switch 794 795 } else { … … 805 806 at = new StructDecl( aggregate->name ); 806 807 break; 808 807 809 case DeclarationNode::Union: 808 810 at = new UnionDecl( aggregate->name ); 809 811 break; 812 810 813 case DeclarationNode::Context: 811 814 at = new ContextDecl( aggregate->name ); 812 815 break; 816 813 817 default: 814 818 assert( false ); … … 834 838 ReferenceToType *TypeData::buildAggInst() const { 835 839 assert( kind == AggregateInst ); 840 std::string name; 836 841 837 842 ReferenceToType *ret; … … 878 883 TypeDecl *ret = new TypeDecl( variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ variable->tyClass ] ); 879 884 buildList( variable->assertions, ret->get_assertions() ); 885 880 886 return ret; 881 887 } … … 885 891 EnumDecl *ret = new EnumDecl( enumeration->name ); 886 892 buildList( enumeration->constants, ret->get_members() ); 893 887 894 return ret; 888 895 } … … 893 900 buildList( symbolic->actuals, ret->get_parameters() ); 894 901 buildForall( forall, ret->get_forall() ); 902 895 903 return ret; 896 904 } … … 901 909 buildTypeList( tuple->members, ret->get_types() ); 902 910 buildForall( forall, ret->get_forall() ); 911 903 912 return ret; 904 913 } … … 909 918 assert( typeexpr->expr ); 910 919 TypeofType *ret = new TypeofType( buildQualifiers(), typeexpr->expr->build() ); 920 911 921 return ret; 912 922 } … … 922 932 ret = new AttrType( buildQualifiers(), attr->name, attr->type->buildType() ); 923 933 } // if 934 924 935 return ret; 925 936 } -
src/Parser/TypeData.h
r94e0864d r94b4364 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 18 21:03:18201513 // Update Count : 712 // Last Modified On : Sat Jun 13 07:26:16 2015 13 // Update Count : 5 14 14 // 15 15 … … 120 120 TypeData *extractAggregate( bool toplevel = true ) const; 121 121 // helper function for DeclNodeImpl::build 122 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn,LinkageSpec::Type linkage, Initializer *init = 0 ) const;122 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init = 0 ) const; 123 123 // helper functions for build() 124 124 Type::Qualifiers buildQualifiers() const; 125 Type * buildBasicType() const;125 Type *buildBasicType() const; 126 126 PointerType * buildPointer() const; 127 127 ArrayType * buildArray() const; -
src/Parser/TypedefTable.cc
r94e0864d r94b4364 10 10 // Created On : Sat May 16 15:20:13 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un Jun 21 11:46:15201513 // Update Count : 712 // Last Modified On : Sat May 16 15:24:03 2015 13 // Update Count : 2 14 14 // 15 15 … … 29 29 TypedefTable::TypedefTable() : currentScope( 0 ) {} 30 30 31 bool TypedefTable::isKind( const string &identifier, kind_t kind ) const {31 bool TypedefTable::isKind( string identifier, kind_t kind ) const { 32 32 tableType::const_iterator id_pos = table.find( identifier ); 33 if ( id_pos == table.end() ) {33 if ( id_pos == table.end()) { 34 34 return true; 35 35 } else { 36 36 return (*((*id_pos ).second.begin())).kind == kind; 37 } // if37 } 38 38 } 39 39 40 bool TypedefTable::isIdentifier( const string &identifier ) const {40 bool TypedefTable::isIdentifier( string identifier ) const { 41 41 return isKind( identifier, ID ); 42 42 } 43 43 44 bool TypedefTable::isTypedef( const string &identifier ) const {44 bool TypedefTable::isTypedef( string identifier ) const { 45 45 return isKind( identifier, TD ); 46 46 } 47 47 48 bool TypedefTable::isTypegen( const string &identifier ) const {48 bool TypedefTable::isTypegen( string identifier ) const { 49 49 return isKind( identifier, TG ); 50 50 } … … 66 66 while ( listPos != (*curPos ).second.end() && listPos->scope > scope ) { 67 67 listPos++; 68 } // while68 } 69 69 (*curPos ).second.insert( listPos, newEntry ); 70 } // if71 } // if70 } 71 } 72 72 } 73 73 … … 102 102 } 103 103 104 void TypedefTable::openContext( const std::string &contextName ) {104 void TypedefTable::openContext( std::string contextName ) { 105 105 map< string, deferListType >::iterator i = contexts.find( contextName ); 106 106 if ( i != contexts.end() ) { … … 108 108 for ( deferListType::iterator i = entries.begin(); i != entries.end(); i++) { 109 109 addToEnclosingScope( i->identifier, i->kind ); 110 } // for111 } // if110 } 111 } 112 112 } 113 113 114 void TypedefTable::enterScope( ) {114 void TypedefTable::enterScope( void ) { 115 115 currentScope += 1; 116 116 deferListStack.push( deferListType() ); … … 119 119 } 120 120 121 void TypedefTable::leaveScope( ) {121 void TypedefTable::leaveScope( void ) { 122 122 debugPrint( "Leaving scope " << currentScope << endl ); 123 123 for ( tableType::iterator i = table.begin(); i != table.end(); ) { … … 129 129 table.erase( i++ ); 130 130 } else ++i; 131 } // for131 } 132 132 currentScope -= 1; 133 133 for ( deferListType::iterator i = deferListStack.top().begin(); i != deferListStack.top().end(); i++) { 134 134 addToCurrentScope( i->identifier, i->kind ); 135 } // for135 } 136 136 deferListStack.pop(); 137 137 debugPrint( "nextIdentifiers size is " << nextIdentifiers.size() << " top is " << nextIdentifiers.top() << endl ); … … 139 139 } 140 140 141 void TypedefTable::enterContext( const std::string &contextName ) {141 void TypedefTable::enterContext( std::string contextName ) { 142 142 currentContext = contextName; 143 143 contextScope = currentScope; 144 144 } 145 145 146 void TypedefTable::leaveContext( ) {146 void TypedefTable::leaveContext( void ) { 147 147 currentContext = ""; 148 148 } … … 156 156 } 157 157 debugPrint( endl ); 158 } // for158 } 159 159 } 160 160 -
src/Parser/TypedefTable.h
r94e0864d r94b4364 10 10 // Created On : Sat May 16 15:24:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 18 21:03:17201513 // Update Count : 712 // Last Modified On : Sat May 16 15:25:59 2015 13 // Update Count : 3 14 14 // 15 15 … … 49 49 std::stack< std::string > nextIdentifiers; 50 50 51 bool isKind( const std::string &identifier, kind_t kind ) const;51 bool isKind( std::string identifier, kind_t kind ) const; 52 52 void addToScope( const std::string &identifier, kind_t kind, int scope ); 53 53 public: 54 54 TypedefTable(); 55 55 56 bool isIdentifier( const std::string &identifier ) const;57 bool isTypedef( const std::string &identifier ) const;58 bool isTypegen( const std::string &identifier ) const;56 bool isIdentifier( std::string identifier ) const; 57 bool isTypedef( std::string identifier ) const; 58 bool isTypegen( std::string identifier ) const; 59 59 60 // "addToCurrentScope" adds the identifier/type pair to the current scope .This does less than you think it does,60 // "addToCurrentScope" adds the identifier/type pair to the current scope This does less than you think it does, 61 61 // since each declaration is within its own scope. Mostly useful for type parameters. 62 62 void addToCurrentScope( const std::string &identifier, kind_t kind ); … … 77 77 78 78 // dump the definitions from a pre-defined context into the current scope 79 void openContext( const std::string &contextName );79 void openContext( std::string contextName ); 80 80 81 81 void enterScope(); 82 82 void leaveScope(); 83 void enterContext( const std::string &contextName );83 void enterContext( std::string contextName ); 84 84 void leaveContext(); 85 85 -
src/Parser/lex.cc
r94e0864d r94b4364 1390 1390 * Created On : Sat Sep 22 08:58:10 2001 1391 1391 * Last Modified By : Peter A. Buhr 1392 * Last Modified On : Fri Jun 19 11:10:1420151393 * Update Count : 3 921392 * Last Modified On : Thu Jun 11 21:52:35 2015 1393 * Update Count : 382 1394 1394 */ 1395 1395 #line 20 "lex.ll" 1396 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been1397 // performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g.,1398 // line-number directives) and C/C++ style comments, which are ignored.1396 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive 1397 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to 1398 // the compiler (e.g., line-number directives) and C/C++ style comments, which are ignored. 1399 1399 1400 1400 //**************************** Includes and Defines **************************** … … 1409 1409 std::string *strtext; // accumulate parts of character and string constant value 1410 1410 1411 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x)1412 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x)1413 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x)1414 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x)1411 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x) 1412 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x) 1413 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN(x) 1414 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN(x) 1415 1415 1416 1416 #define WHITE_RETURN(x) // do nothing 1417 #define NEWLINE_RETURN() WHITE_RETURN( '\n')1418 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] )// single character operator1419 #define NAMEDOP_RETURN(x) RETURN_VAL( x) // multichar operator, with a name1420 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x) // numeric constant1421 #define KEYWORD_RETURN(x) RETURN_CHAR( x )// keyword1422 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ))1423 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER)1417 #define NEWLINE_RETURN() WHITE_RETURN('\n') 1418 #define ASCIIOP_RETURN() RETURN_CHAR((int)yytext[0]) // single character operator 1419 #define NAMEDOP_RETURN(x) RETURN_VAL(x) // multichar operator, with a name 1420 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL(x) // numeric constant 1421 #define KEYWORD_RETURN(x) RETURN_CHAR(x) // keyword 1422 #define IDENTIFIER_RETURN() RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname)) 1423 #define ATTRIBUTE_RETURN() RETURN_VAL(ATTR_IDENTIFIER) 1424 1424 1425 1425 void rm_underscore() { … … 3652 3652 3653 3653 // Local Variables: // 3654 // fill-column: 110 // 3655 // tab-width: 4 // 3654 3656 // mode: c++ // 3655 // tab-width: 4 //3656 3657 // compile-command: "make install" // 3657 3658 // End: // -
src/Parser/lex.ll
r94e0864d r94b4364 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Fri Jun 19 11:10:14201513 * Update Count : 3 9212 * Last Modified On : Thu Jun 11 21:52:35 2015 13 * Update Count : 382 14 14 */ 15 15 … … 18 18 19 19 %{ 20 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been21 // performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g.,22 // line-number directives) and C/C++ style comments, which are ignored.20 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive 21 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to 22 // the compiler (e.g., line-number directives) and C/C++ style comments, which are ignored. 23 23 24 24 //**************************** Includes and Defines **************************** … … 33 33 std::string *strtext; // accumulate parts of character and string constant value 34 34 35 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x)36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x)37 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x)38 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x)35 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return(x) 36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN(x) 37 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN(x) 38 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN(x) 39 39 40 40 #define WHITE_RETURN(x) // do nothing 41 #define NEWLINE_RETURN() WHITE_RETURN( '\n')42 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] )// single character operator43 #define NAMEDOP_RETURN(x) RETURN_VAL( x) // multichar operator, with a name44 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x) // numeric constant45 #define KEYWORD_RETURN(x) RETURN_CHAR( x )// keyword46 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ))47 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER)41 #define NEWLINE_RETURN() WHITE_RETURN('\n') 42 #define ASCIIOP_RETURN() RETURN_CHAR((int)yytext[0]) // single character operator 43 #define NAMEDOP_RETURN(x) RETURN_VAL(x) // multichar operator, with a name 44 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL(x) // numeric constant 45 #define KEYWORD_RETURN(x) RETURN_CHAR(x) // keyword 46 #define IDENTIFIER_RETURN() RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname)) 47 #define ATTRIBUTE_RETURN() RETURN_VAL(ATTR_IDENTIFIER) 48 48 49 49 void rm_underscore() { … … 398 398 399 399 // Local Variables: // 400 // fill-column: 110 // 401 // tab-width: 4 // 400 402 // mode: c++ // 401 // tab-width: 4 //402 403 // compile-command: "make install" // 403 404 // End: // -
src/Parser/parser.cc
r94e0864d r94b4364 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 4"parser.yy"69 #line 45 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 324 324 325 325 /* Line 293 of yacc.c */ 326 #line 10 7"parser.yy"326 #line 108 "parser.yy" 327 327 328 328 Token tok; … … 570 570 #define YYFINAL 240 571 571 /* YYLAST -- Last index in YYTABLE. */ 572 #define YYLAST 12 266572 #define YYLAST 12141 573 573 574 574 /* YYNTOKENS -- Number of terminals. */ … … 579 579 #define YYNRULES 735 580 580 /* YYNRULES -- Number of states. */ 581 #define YYNSTATES 155 5581 #define YYNSTATES 1552 582 582 583 583 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 669 669 1161, 1166, 1171, 1176, 1178, 1181, 1184, 1188, 1190, 1193, 670 670 1196, 1198, 1201, 1204, 1208, 1210, 1213, 1216, 1218, 1220, 671 1225, 1228, 1234, 1244, 1252, 1263, 1276, 128 2, 1290, 1304,672 130 7, 1310, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334,673 133 8, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361,674 136 3, 1366, 1369, 1375, 1382, 1385, 1388, 1393, 1394, 1397,675 139 8, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436,676 144 6, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475,677 14 81, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507,678 150 9, 1513, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534,679 153 6, 1538, 1540, 1542, 1544, 1546, 1548, 1551, 1553, 1555,680 155 7, 1560, 1561, 1564, 1566, 1571, 1573, 1576, 1580, 1585,681 158 8, 1591, 1593, 1596, 1599, 1605, 1611, 1619, 1626, 1628,682 16 31, 1634, 1638, 1643, 1649, 1652, 1655, 1660, 1661, 1666,683 166 9, 1671, 1673, 1675, 1676, 1679, 1685, 1691, 1705, 1707,684 170 9, 1713, 1717, 1720, 1724, 1728, 1731, 1736, 1738, 1745,685 175 5, 1756, 1768, 1770, 1774, 1778, 1782, 1784, 1786, 1792,686 179 5, 1801, 1802, 1804, 1806, 1810, 1811, 1813, 1815, 1817,687 181 9, 1820, 1827, 1830, 1832, 1835, 1840, 1843, 1847, 1851,688 185 5, 1860, 1866, 1872, 1878, 1885, 1887, 1889, 1891, 1895,689 189 6, 1902, 1903, 1905, 1907, 1910, 1917, 1919, 1923, 1924,690 192 6, 1931, 1933, 1935, 1937, 1939, 1942, 1944, 1947, 1950,691 19 52, 1956, 1959, 1963, 1967, 1970, 1975, 1980, 1984, 1993,692 199 7, 2000, 2002, 2005, 2012, 2021, 2025, 2028, 2032, 2036,693 20 41, 2046, 2050, 2052, 2054, 2056, 2061, 2068, 2072, 2075,694 207 9, 2083, 2088, 2093, 2097, 2100, 2102, 2105, 2108, 2110,695 211 4, 2117, 2121, 2125, 2128, 2133, 2138, 2142, 2149, 2158,696 21 62, 2165, 2167, 2170, 2173, 2176, 2180, 2184, 2187, 2192,697 219 7, 2201, 2208, 2217, 2221, 2224, 2226, 2229, 2232, 2234,698 223 7, 2241, 2245, 2248, 2253, 2260, 2269, 2271, 2274, 2277,699 227 9, 2282, 2285, 2289, 2293, 2295, 2300, 2305, 2309, 2315,700 232 4, 2328, 2333, 2339, 2341, 2347, 2353, 2360, 2367, 2369,701 23 72, 2375, 2377, 2380, 2383, 2387, 2391, 2393, 2398, 2403,702 240 7, 2413, 2422, 2426, 2428, 2431, 2433, 2438, 2445, 2451,703 245 8, 2466, 2474, 2476, 2479, 2482, 2484, 2487, 2490, 2494,704 249 8, 2500, 2505, 2510, 2514, 2523, 2527, 2529, 2531, 2534,705 253 6, 2538, 2541, 2545, 2548, 2552, 2555, 2559, 2565, 2568,706 257 5, 2579, 2582, 2588, 2591, 2598, 2602, 2605, 2612, 2619,707 262 6, 2634, 2636, 2639, 2641, 2643, 2645, 2648, 2652, 2655,708 265 9, 2662, 2666, 2672, 2679, 2682, 2688, 2695, 2698, 2704,709 27 12, 2719, 2726, 2727, 2729, 2730671 1225, 1228, 1234, 1244, 1252, 1263, 1276, 1284, 1298, 1301, 672 1304, 1306, 1309, 1312, 1316, 1319, 1323, 1325, 1328, 1332, 673 1335, 1338, 1343, 1344, 1346, 1349, 1352, 1354, 1355, 1357, 674 1360, 1363, 1369, 1376, 1379, 1382, 1387, 1388, 1391, 1392, 675 1394, 1396, 1398, 1404, 1410, 1416, 1418, 1424, 1430, 1440, 676 1442, 1448, 1449, 1451, 1453, 1459, 1461, 1463, 1469, 1475, 677 1477, 1481, 1485, 1490, 1492, 1494, 1496, 1498, 1501, 1503, 678 1507, 1511, 1513, 1516, 1518, 1522, 1524, 1526, 1528, 1530, 679 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1547, 1549, 1551, 680 1553, 1556, 1557, 1560, 1562, 1567, 1569, 1572, 1576, 1581, 681 1584, 1587, 1589, 1592, 1595, 1601, 1607, 1615, 1622, 1624, 682 1627, 1630, 1634, 1639, 1645, 1648, 1651, 1656, 1657, 1662, 683 1665, 1667, 1669, 1671, 1672, 1675, 1681, 1687, 1701, 1703, 684 1705, 1709, 1713, 1716, 1720, 1724, 1727, 1732, 1734, 1741, 685 1751, 1752, 1764, 1766, 1770, 1774, 1778, 1780, 1782, 1788, 686 1791, 1797, 1798, 1800, 1802, 1806, 1807, 1809, 1811, 1813, 687 1815, 1816, 1823, 1826, 1828, 1831, 1836, 1839, 1843, 1847, 688 1851, 1856, 1862, 1868, 1874, 1881, 1883, 1885, 1887, 1891, 689 1892, 1898, 1899, 1901, 1903, 1906, 1913, 1915, 1919, 1920, 690 1922, 1927, 1929, 1931, 1933, 1935, 1938, 1940, 1943, 1946, 691 1948, 1952, 1955, 1959, 1963, 1966, 1971, 1976, 1980, 1989, 692 1993, 1996, 1998, 2001, 2008, 2017, 2021, 2024, 2028, 2032, 693 2037, 2042, 2046, 2048, 2050, 2052, 2057, 2064, 2068, 2071, 694 2075, 2079, 2084, 2089, 2093, 2096, 2098, 2101, 2104, 2106, 695 2110, 2113, 2117, 2121, 2124, 2129, 2134, 2138, 2145, 2154, 696 2158, 2161, 2163, 2166, 2169, 2172, 2176, 2180, 2183, 2188, 697 2193, 2197, 2204, 2213, 2217, 2220, 2222, 2225, 2228, 2230, 698 2233, 2237, 2241, 2244, 2249, 2256, 2265, 2267, 2270, 2273, 699 2275, 2278, 2281, 2285, 2289, 2291, 2296, 2301, 2305, 2311, 700 2320, 2324, 2329, 2335, 2337, 2343, 2349, 2356, 2363, 2365, 701 2368, 2371, 2373, 2376, 2379, 2383, 2387, 2389, 2394, 2399, 702 2403, 2409, 2418, 2422, 2424, 2427, 2429, 2434, 2441, 2447, 703 2454, 2462, 2470, 2472, 2475, 2478, 2480, 2483, 2486, 2490, 704 2494, 2496, 2501, 2506, 2510, 2519, 2523, 2525, 2527, 2530, 705 2532, 2534, 2537, 2541, 2544, 2548, 2551, 2555, 2561, 2564, 706 2571, 2575, 2578, 2584, 2587, 2594, 2598, 2601, 2608, 2615, 707 2622, 2630, 2632, 2635, 2637, 2639, 2641, 2644, 2648, 2651, 708 2655, 2658, 2662, 2668, 2675, 2678, 2684, 2691, 2694, 2700, 709 2708, 2715, 2722, 2723, 2725, 2726 710 710 }; 711 711 … … 840 840 261, -1, 235, 101, 126, 272, 127, 102, 261, 106, 841 841 236, 107, -1, 235, 101, 126, 272, 127, 102, 101, 842 278, 102, 106, 236, 107, -1, 235, 68, 101, 278, 843 102, -1, 235, 101, 126, 278, 127, 102, 261, -1, 844 235, 101, 126, 272, 127, 102, 101, 278, 102, 261, 845 106, 236, 107, -1, 30, 298, -1, 31, 298, -1, 846 237, -1, 236, 237, -1, 238, 124, -1, 38, 238, 847 124, -1, 239, 124, -1, 38, 239, 124, -1, 352, 848 -1, 352, 261, -1, 238, 108, 261, -1, 238, 108, 849 -1, 214, 240, -1, 239, 108, 298, 240, -1, -1, 850 242, -1, 304, 241, -1, 317, 241, -1, 343, -1, 851 -1, 242, -1, 109, 154, -1, 29, 298, -1, 243, 852 106, 245, 358, 107, -1, 243, 261, 106, 245, 358, 853 107, -1, 243, 261, -1, 261, 246, -1, 245, 108, 854 261, 246, -1, -1, 123, 154, -1, -1, 248, -1, 855 250, -1, 249, -1, 249, 127, 108, 126, 250, -1, 856 250, 127, 108, 126, 89, -1, 249, 127, 108, 126, 857 89, -1, 254, -1, 250, 127, 108, 126, 254, -1, 858 249, 127, 108, 126, 254, -1, 249, 127, 108, 126, 859 250, 127, 108, 126, 254, -1, 255, -1, 250, 127, 860 108, 126, 255, -1, -1, 252, -1, 253, -1, 253, 861 127, 108, 126, 89, -1, 257, -1, 256, -1, 253, 862 127, 108, 126, 257, -1, 253, 127, 108, 126, 256, 863 -1, 256, -1, 348, 259, 359, -1, 356, 259, 359, 864 -1, 216, 356, 259, 359, -1, 206, -1, 257, -1, 865 348, -1, 356, -1, 216, 356, -1, 357, -1, 213, 866 322, 359, -1, 213, 326, 359, -1, 213, -1, 213, 867 337, -1, 131, -1, 258, 108, 131, -1, 129, -1, 868 67, -1, 68, -1, 130, -1, 67, -1, 68, -1, 869 131, -1, 67, -1, 352, -1, 214, -1, 214, 343, 870 -1, 352, -1, 357, -1, 214, -1, 214, 331, -1, 871 -1, 123, 265, -1, 155, -1, 106, 266, 358, 107, 872 -1, 265, -1, 267, 265, -1, 266, 108, 265, -1, 873 266, 108, 267, 265, -1, 268, 109, -1, 261, 109, 874 -1, 269, -1, 268, 269, -1, 105, 261, -1, 103, 875 126, 155, 127, 104, -1, 103, 126, 296, 127, 104, 876 -1, 103, 126, 154, 89, 154, 127, 104, -1, 105, 877 103, 126, 138, 127, 104, -1, 271, -1, 220, 271, 878 -1, 270, 222, -1, 270, 222, 216, -1, 68, 101, 879 278, 102, -1, 216, 68, 101, 278, 102, -1, 271, 880 217, -1, 273, 359, -1, 272, 108, 273, 359, -1, 881 -1, 275, 261, 274, 276, -1, 214, 322, -1, 32, 882 -1, 34, -1, 33, -1, -1, 276, 277, -1, 121, 883 261, 101, 278, 102, -1, 121, 106, 126, 284, 107, 884 -1, 121, 101, 126, 272, 127, 102, 106, 126, 284, 885 107, 101, 278, 102, -1, 263, -1, 155, -1, 278, 886 108, 263, -1, 278, 108, 155, -1, 32, 280, -1, 887 221, 32, 280, -1, 279, 108, 280, -1, 281, 276, 888 -1, 281, 276, 123, 263, -1, 261, -1, 260, 101, 889 126, 272, 127, 102, -1, 35, 261, 101, 126, 272, 890 127, 102, 106, 107, -1, -1, 35, 261, 101, 126, 891 272, 127, 102, 106, 283, 284, 107, -1, 285, -1, 892 284, 126, 285, -1, 286, 127, 124, -1, 287, 127, 893 124, -1, 204, -1, 206, -1, 286, 127, 108, 126, 894 259, -1, 214, 295, -1, 287, 127, 108, 126, 295, 895 -1, -1, 289, -1, 291, -1, 289, 126, 291, -1, 896 -1, 289, -1, 201, -1, 293, -1, 189, -1, -1, 897 5, 75, 292, 106, 290, 107, -1, 38, 291, -1, 898 294, -1, 309, 164, -1, 313, 126, 196, 164, -1, 899 205, 164, -1, 213, 309, 164, -1, 216, 309, 164, 900 -1, 220, 309, 164, -1, 220, 216, 309, 164, -1, 901 213, 313, 126, 196, 164, -1, 216, 313, 126, 196, 902 164, -1, 220, 313, 126, 196, 164, -1, 220, 216, 903 313, 126, 196, 164, -1, 304, -1, 309, -1, 317, 904 -1, 154, 115, 154, -1, -1, 57, 101, 133, 102, 905 298, -1, -1, 299, -1, 300, -1, 299, 300, -1, 906 37, 101, 101, 301, 102, 102, -1, 302, -1, 301, 907 108, 302, -1, -1, 303, -1, 303, 101, 161, 102, 908 -1, 259, -1, 223, -1, 224, -1, 217, -1, 305, 909 298, -1, 306, -1, 307, 298, -1, 308, 298, -1, 910 129, -1, 101, 305, 102, -1, 111, 304, -1, 111, 911 216, 304, -1, 101, 306, 102, -1, 305, 335, -1, 912 101, 306, 102, 335, -1, 101, 307, 102, 336, -1, 913 101, 307, 102, -1, 101, 306, 102, 101, 126, 251, 914 127, 102, -1, 101, 308, 102, -1, 310, 298, -1, 915 311, -1, 312, 298, -1, 305, 101, 126, 251, 127, 916 102, -1, 101, 311, 102, 101, 126, 251, 127, 102, 917 -1, 101, 310, 102, -1, 111, 309, -1, 111, 216, 918 309, -1, 101, 311, 102, -1, 101, 311, 102, 335, 919 -1, 101, 312, 102, 336, -1, 101, 312, 102, -1, 920 314, -1, 315, -1, 316, -1, 305, 101, 258, 102, 921 -1, 101, 315, 102, 101, 258, 102, -1, 101, 314, 922 102, -1, 111, 313, -1, 111, 216, 313, -1, 101, 923 315, 102, -1, 101, 315, 102, 335, -1, 101, 316, 924 102, 336, -1, 101, 316, 102, -1, 318, 298, -1, 925 319, -1, 320, 298, -1, 321, 298, -1, 67, -1, 926 101, 318, 102, -1, 111, 317, -1, 111, 216, 317, 927 -1, 101, 319, 102, -1, 318, 335, -1, 101, 319, 928 102, 335, -1, 101, 320, 102, 336, -1, 101, 320, 929 102, -1, 318, 101, 126, 251, 127, 102, -1, 101, 930 319, 102, 101, 126, 251, 127, 102, -1, 101, 321, 931 102, -1, 305, 298, -1, 323, -1, 324, 298, -1, 932 325, 298, -1, 111, 322, -1, 111, 216, 322, -1, 933 101, 323, 102, -1, 305, 341, -1, 101, 323, 102, 934 335, -1, 101, 324, 102, 336, -1, 101, 324, 102, 935 -1, 305, 101, 126, 251, 127, 102, -1, 101, 323, 936 102, 101, 126, 251, 127, 102, -1, 101, 325, 102, 937 -1, 327, 298, -1, 328, -1, 329, 298, -1, 330, 938 298, -1, 67, -1, 111, 326, -1, 111, 216, 326, 939 -1, 101, 328, 102, -1, 327, 341, -1, 101, 328, 940 102, 341, -1, 327, 101, 126, 251, 127, 102, -1, 941 101, 328, 102, 101, 126, 251, 127, 102, -1, 332, 942 -1, 333, 298, -1, 334, 298, -1, 111, -1, 111, 943 216, -1, 111, 331, -1, 111, 216, 331, -1, 101, 944 332, 102, -1, 335, -1, 101, 332, 102, 335, -1, 945 101, 333, 102, 336, -1, 101, 333, 102, -1, 101, 946 126, 251, 127, 102, -1, 101, 332, 102, 101, 126, 947 251, 127, 102, -1, 101, 334, 102, -1, 103, 126, 948 127, 104, -1, 103, 126, 127, 104, 336, -1, 336, 949 -1, 103, 126, 155, 127, 104, -1, 103, 126, 111, 950 127, 104, -1, 336, 103, 126, 155, 127, 104, -1, 951 336, 103, 126, 111, 127, 104, -1, 338, -1, 339, 952 298, -1, 340, 298, -1, 111, -1, 111, 216, -1, 953 111, 337, -1, 111, 216, 337, -1, 101, 338, 102, 954 -1, 341, -1, 101, 338, 102, 341, -1, 101, 339, 955 102, 336, -1, 101, 339, 102, -1, 101, 126, 251, 956 127, 102, -1, 101, 338, 102, 101, 126, 251, 127, 957 102, -1, 101, 340, 102, -1, 342, -1, 342, 336, 958 -1, 336, -1, 103, 126, 127, 104, -1, 103, 126, 959 216, 111, 127, 104, -1, 103, 126, 216, 127, 104, 960 -1, 103, 126, 216, 155, 127, 104, -1, 103, 126, 961 7, 215, 155, 127, 104, -1, 103, 126, 216, 7, 962 155, 127, 104, -1, 344, -1, 345, 298, -1, 346, 963 298, -1, 111, -1, 111, 216, -1, 111, 343, -1, 964 111, 216, 343, -1, 101, 344, 102, -1, 335, -1, 965 101, 344, 102, 335, -1, 101, 345, 102, 336, -1, 966 101, 345, 102, -1, 101, 344, 102, 101, 126, 251, 967 127, 102, -1, 101, 346, 102, -1, 348, -1, 356, 968 -1, 216, 356, -1, 349, -1, 350, -1, 111, 214, 969 -1, 216, 111, 214, -1, 111, 357, -1, 216, 111, 970 357, -1, 111, 347, -1, 216, 111, 347, -1, 103, 971 126, 127, 104, 214, -1, 351, 214, -1, 103, 126, 972 127, 104, 336, 214, -1, 351, 336, 214, -1, 336, 973 214, -1, 103, 126, 127, 104, 349, -1, 351, 349, 974 -1, 103, 126, 127, 104, 336, 349, -1, 351, 336, 975 349, -1, 336, 349, -1, 103, 126, 216, 111, 127, 976 104, -1, 103, 126, 216, 155, 127, 104, -1, 103, 977 126, 220, 155, 127, 104, -1, 103, 126, 220, 216, 978 155, 127, 104, -1, 356, -1, 216, 356, -1, 353, 979 -1, 354, -1, 355, -1, 111, 214, -1, 216, 111, 980 214, -1, 111, 357, -1, 216, 111, 357, -1, 111, 981 352, -1, 216, 111, 352, -1, 103, 126, 127, 104, 982 214, -1, 103, 126, 127, 104, 336, 214, -1, 336, 983 214, -1, 103, 126, 127, 104, 354, -1, 103, 126, 984 127, 104, 336, 354, -1, 336, 354, -1, 103, 126, 985 250, 127, 104, -1, 103, 126, 127, 104, 101, 247, 986 102, -1, 356, 101, 126, 247, 127, 102, -1, 207, 987 101, 126, 247, 127, 102, -1, -1, 108, -1, -1, 988 123, 155, -1 842 278, 102, 106, 236, 107, -1, 235, 101, 126, 278, 843 127, 102, 261, -1, 235, 101, 126, 272, 127, 102, 844 101, 278, 102, 261, 106, 236, 107, -1, 30, 298, 845 -1, 31, 298, -1, 237, -1, 236, 237, -1, 238, 846 124, -1, 38, 238, 124, -1, 239, 124, -1, 38, 847 239, 124, -1, 352, -1, 352, 261, -1, 238, 108, 848 261, -1, 238, 108, -1, 214, 240, -1, 239, 108, 849 298, 240, -1, -1, 242, -1, 304, 241, -1, 317, 850 241, -1, 343, -1, -1, 242, -1, 109, 154, -1, 851 29, 298, -1, 243, 106, 245, 358, 107, -1, 243, 852 261, 106, 245, 358, 107, -1, 243, 261, -1, 261, 853 246, -1, 245, 108, 261, 246, -1, -1, 123, 154, 854 -1, -1, 248, -1, 250, -1, 249, -1, 249, 127, 855 108, 126, 250, -1, 250, 127, 108, 126, 89, -1, 856 249, 127, 108, 126, 89, -1, 254, -1, 250, 127, 857 108, 126, 254, -1, 249, 127, 108, 126, 254, -1, 858 249, 127, 108, 126, 250, 127, 108, 126, 254, -1, 859 255, -1, 250, 127, 108, 126, 255, -1, -1, 252, 860 -1, 253, -1, 253, 127, 108, 126, 89, -1, 257, 861 -1, 256, -1, 253, 127, 108, 126, 257, -1, 253, 862 127, 108, 126, 256, -1, 256, -1, 348, 259, 359, 863 -1, 356, 259, 359, -1, 216, 356, 259, 359, -1, 864 206, -1, 257, -1, 348, -1, 356, -1, 216, 356, 865 -1, 357, -1, 213, 322, 359, -1, 213, 326, 359, 866 -1, 213, -1, 213, 337, -1, 131, -1, 258, 108, 867 131, -1, 129, -1, 67, -1, 68, -1, 130, -1, 868 67, -1, 68, -1, 131, -1, 67, -1, 68, -1, 869 352, -1, 214, -1, 214, 343, -1, 352, -1, 357, 870 -1, 214, -1, 214, 331, -1, -1, 123, 265, -1, 871 155, -1, 106, 266, 358, 107, -1, 265, -1, 267, 872 265, -1, 266, 108, 265, -1, 266, 108, 267, 265, 873 -1, 268, 109, -1, 261, 109, -1, 269, -1, 268, 874 269, -1, 105, 261, -1, 103, 126, 155, 127, 104, 875 -1, 103, 126, 296, 127, 104, -1, 103, 126, 154, 876 89, 154, 127, 104, -1, 105, 103, 126, 138, 127, 877 104, -1, 271, -1, 220, 271, -1, 270, 222, -1, 878 270, 222, 216, -1, 68, 101, 278, 102, -1, 216, 879 68, 101, 278, 102, -1, 271, 217, -1, 273, 359, 880 -1, 272, 108, 273, 359, -1, -1, 275, 261, 274, 881 276, -1, 214, 322, -1, 32, -1, 34, -1, 33, 882 -1, -1, 276, 277, -1, 121, 261, 101, 278, 102, 883 -1, 121, 106, 126, 284, 107, -1, 121, 101, 126, 884 272, 127, 102, 106, 126, 284, 107, 101, 278, 102, 885 -1, 263, -1, 155, -1, 278, 108, 263, -1, 278, 886 108, 155, -1, 32, 280, -1, 221, 32, 280, -1, 887 279, 108, 280, -1, 281, 276, -1, 281, 276, 123, 888 263, -1, 261, -1, 260, 101, 126, 272, 127, 102, 889 -1, 35, 261, 101, 126, 272, 127, 102, 106, 107, 890 -1, -1, 35, 261, 101, 126, 272, 127, 102, 106, 891 283, 284, 107, -1, 285, -1, 284, 126, 285, -1, 892 286, 127, 124, -1, 287, 127, 124, -1, 204, -1, 893 206, -1, 286, 127, 108, 126, 259, -1, 214, 295, 894 -1, 287, 127, 108, 126, 295, -1, -1, 289, -1, 895 291, -1, 289, 126, 291, -1, -1, 289, -1, 201, 896 -1, 293, -1, 189, -1, -1, 5, 75, 292, 106, 897 290, 107, -1, 38, 291, -1, 294, -1, 309, 164, 898 -1, 313, 126, 196, 164, -1, 205, 164, -1, 213, 899 309, 164, -1, 216, 309, 164, -1, 220, 309, 164, 900 -1, 220, 216, 309, 164, -1, 213, 313, 126, 196, 901 164, -1, 216, 313, 126, 196, 164, -1, 220, 313, 902 126, 196, 164, -1, 220, 216, 313, 126, 196, 164, 903 -1, 304, -1, 309, -1, 317, -1, 154, 115, 154, 904 -1, -1, 57, 101, 133, 102, 298, -1, -1, 299, 905 -1, 300, -1, 299, 300, -1, 37, 101, 101, 301, 906 102, 102, -1, 302, -1, 301, 108, 302, -1, -1, 907 303, -1, 303, 101, 161, 102, -1, 259, -1, 223, 908 -1, 224, -1, 217, -1, 305, 298, -1, 306, -1, 909 307, 298, -1, 308, 298, -1, 129, -1, 101, 305, 910 102, -1, 111, 304, -1, 111, 216, 304, -1, 101, 911 306, 102, -1, 305, 335, -1, 101, 306, 102, 335, 912 -1, 101, 307, 102, 336, -1, 101, 307, 102, -1, 913 101, 306, 102, 101, 126, 251, 127, 102, -1, 101, 914 308, 102, -1, 310, 298, -1, 311, -1, 312, 298, 915 -1, 305, 101, 126, 251, 127, 102, -1, 101, 311, 916 102, 101, 126, 251, 127, 102, -1, 101, 310, 102, 917 -1, 111, 309, -1, 111, 216, 309, -1, 101, 311, 918 102, -1, 101, 311, 102, 335, -1, 101, 312, 102, 919 336, -1, 101, 312, 102, -1, 314, -1, 315, -1, 920 316, -1, 305, 101, 258, 102, -1, 101, 315, 102, 921 101, 258, 102, -1, 101, 314, 102, -1, 111, 313, 922 -1, 111, 216, 313, -1, 101, 315, 102, -1, 101, 923 315, 102, 335, -1, 101, 316, 102, 336, -1, 101, 924 316, 102, -1, 318, 298, -1, 319, -1, 320, 298, 925 -1, 321, 298, -1, 67, -1, 101, 318, 102, -1, 926 111, 317, -1, 111, 216, 317, -1, 101, 319, 102, 927 -1, 318, 335, -1, 101, 319, 102, 335, -1, 101, 928 320, 102, 336, -1, 101, 320, 102, -1, 318, 101, 929 126, 251, 127, 102, -1, 101, 319, 102, 101, 126, 930 251, 127, 102, -1, 101, 321, 102, -1, 305, 298, 931 -1, 323, -1, 324, 298, -1, 325, 298, -1, 111, 932 322, -1, 111, 216, 322, -1, 101, 323, 102, -1, 933 305, 341, -1, 101, 323, 102, 335, -1, 101, 324, 934 102, 336, -1, 101, 324, 102, -1, 305, 101, 126, 935 251, 127, 102, -1, 101, 323, 102, 101, 126, 251, 936 127, 102, -1, 101, 325, 102, -1, 327, 298, -1, 937 328, -1, 329, 298, -1, 330, 298, -1, 67, -1, 938 111, 326, -1, 111, 216, 326, -1, 101, 328, 102, 939 -1, 327, 341, -1, 101, 328, 102, 341, -1, 327, 940 101, 126, 251, 127, 102, -1, 101, 328, 102, 101, 941 126, 251, 127, 102, -1, 332, -1, 333, 298, -1, 942 334, 298, -1, 111, -1, 111, 216, -1, 111, 331, 943 -1, 111, 216, 331, -1, 101, 332, 102, -1, 335, 944 -1, 101, 332, 102, 335, -1, 101, 333, 102, 336, 945 -1, 101, 333, 102, -1, 101, 126, 251, 127, 102, 946 -1, 101, 332, 102, 101, 126, 251, 127, 102, -1, 947 101, 334, 102, -1, 103, 126, 127, 104, -1, 103, 948 126, 127, 104, 336, -1, 336, -1, 103, 126, 155, 949 127, 104, -1, 103, 126, 111, 127, 104, -1, 336, 950 103, 126, 155, 127, 104, -1, 336, 103, 126, 111, 951 127, 104, -1, 338, -1, 339, 298, -1, 340, 298, 952 -1, 111, -1, 111, 216, -1, 111, 337, -1, 111, 953 216, 337, -1, 101, 338, 102, -1, 341, -1, 101, 954 338, 102, 341, -1, 101, 339, 102, 336, -1, 101, 955 339, 102, -1, 101, 126, 251, 127, 102, -1, 101, 956 338, 102, 101, 126, 251, 127, 102, -1, 101, 340, 957 102, -1, 342, -1, 342, 336, -1, 336, -1, 103, 958 126, 127, 104, -1, 103, 126, 216, 111, 127, 104, 959 -1, 103, 126, 216, 127, 104, -1, 103, 126, 216, 960 155, 127, 104, -1, 103, 126, 7, 215, 155, 127, 961 104, -1, 103, 126, 216, 7, 155, 127, 104, -1, 962 344, -1, 345, 298, -1, 346, 298, -1, 111, -1, 963 111, 216, -1, 111, 343, -1, 111, 216, 343, -1, 964 101, 344, 102, -1, 335, -1, 101, 344, 102, 335, 965 -1, 101, 345, 102, 336, -1, 101, 345, 102, -1, 966 101, 344, 102, 101, 126, 251, 127, 102, -1, 101, 967 346, 102, -1, 348, -1, 356, -1, 216, 356, -1, 968 349, -1, 350, -1, 111, 214, -1, 216, 111, 214, 969 -1, 111, 357, -1, 216, 111, 357, -1, 111, 347, 970 -1, 216, 111, 347, -1, 103, 126, 127, 104, 214, 971 -1, 351, 214, -1, 103, 126, 127, 104, 336, 214, 972 -1, 351, 336, 214, -1, 336, 214, -1, 103, 126, 973 127, 104, 349, -1, 351, 349, -1, 103, 126, 127, 974 104, 336, 349, -1, 351, 336, 349, -1, 336, 349, 975 -1, 103, 126, 216, 111, 127, 104, -1, 103, 126, 976 216, 155, 127, 104, -1, 103, 126, 220, 155, 127, 977 104, -1, 103, 126, 220, 216, 155, 127, 104, -1, 978 356, -1, 216, 356, -1, 353, -1, 354, -1, 355, 979 -1, 111, 214, -1, 216, 111, 214, -1, 111, 357, 980 -1, 216, 111, 357, -1, 111, 352, -1, 216, 111, 981 352, -1, 103, 126, 127, 104, 214, -1, 103, 126, 982 127, 104, 336, 214, -1, 336, 214, -1, 103, 126, 983 127, 104, 354, -1, 103, 126, 127, 104, 336, 354, 984 -1, 336, 354, -1, 103, 126, 250, 127, 104, -1, 985 103, 126, 127, 104, 101, 247, 102, -1, 356, 101, 986 126, 247, 127, 102, -1, 207, 101, 126, 247, 127, 987 102, -1, -1, 108, -1, -1, 123, 155, -1 989 988 }; 990 989 … … 992 991 static const yytype_uint16 yyrline[] = 993 992 { 994 0, 2 79, 279, 285, 294, 295, 296, 300, 301, 302,995 3 06, 307, 311, 315, 316, 320, 321, 327, 329, 331,996 33 3, 335, 337, 342, 343, 349, 351, 353, 354, 356,997 3 57, 359, 362, 367, 368, 374, 375, 376, 381, 383,998 3 88, 389, 393, 395, 397, 399, 401, 406, 407, 409,999 41 1, 413, 415, 417, 423, 425, 427, 429, 431, 433,1000 43 5, 437, 442, 443, 444, 445, 449, 450, 452, 457,1001 4 58, 460, 462, 467, 468, 470, 475, 476, 478, 483,1002 48 4, 486, 488, 490, 495, 496, 498, 503, 504, 509,1003 51 0, 515, 516, 521, 522, 527, 528, 533, 534, 536,1004 5 38, 543, 548, 549, 551, 553, 559, 560, 566, 568,1005 57 0, 572, 577, 578, 583, 584, 585, 586, 587, 588,1006 5 89, 590, 591, 592, 596, 597, 603, 604, 610, 611,1007 61 2, 613, 614, 615, 616, 617, 621, 626, 628, 638,1008 6 39, 644, 646, 648, 650, 654, 655, 660, 665, 668,1009 67 0, 672, 677, 679, 687, 688, 690, 694, 695, 700,1010 70 1, 706, 707, 711, 716, 717, 721, 723, 729, 730,1011 73 4, 736, 738, 740, 746, 747, 751, 752, 756, 758,1012 76 0, 765, 767, 772, 774, 778, 781, 785, 788, 792,1013 794, 796, 801, 803, 805, 814, 816, 818, 823, 825,1014 83 0, 843, 844, 849, 851, 856, 860, 862, 864, 866,1015 87 0, 872, 876, 877, 881, 885, 886, 892, 894, 898,1016 899, 904, 906, 910, 911, 915, 917, 921, 922, 926,1017 9 27, 931, 932, 947, 948, 949, 950, 951, 955, 960,1018 9 67, 977, 982, 987, 995, 1000, 1005, 1010, 1015, 1023,1019 10 28, 1040, 1045, 1052, 1054, 1061, 1066, 1071, 1082, 1087,1020 1 092, 1097, 1102, 1110, 1115, 1123, 1124, 1125, 1126, 1132,1021 11 37, 1145, 1146, 1147, 1148, 1152, 1153, 1154, 1155, 1160,1022 11 61, 1170, 1171, 1176, 1177, 1182, 1184, 1186, 1188, 1190,1023 1 193, 1192, 1204, 1205, 1207, 1217, 1218, 1223, 1227, 1229,1024 12 31, 1233, 1235, 1237, 1239, 1241, 1246, 1248, 1250, 1252,1025 12 54, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1274, 1275,1026 12 77, 1279, 1281, 1286, 1287, 1293, 1294, 1296, 1298, 1303,1027 13 05, 1307, 1309, 1314, 1315, 1317, 1319, 1324, 1325, 1327,1028 13 32, 1333, 1335, 1337, 1342, 1344, 1346, 1351, 1352, 1356,1029 13 58, 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1375, 1380,1030 13 82, 1387, 1389, 1394, 1395, 1397, 1398, 1403, 1404, 1406,1031 14 08, 1413, 1415, 1421, 1422, 1424, 1427, 1430, 1435, 1436,1032 14 41, 1446, 1450, 1452, 1454, 1459, 1461, 1467, 1468, 1476,1033 14 77, 1481, 1482, 1483, 1485, 1487, 1494, 1495, 1497, 1499,1034 15 04, 1505, 1511, 1512, 1516, 1517, 1522, 1523, 1524, 1526,1035 15 34, 1535, 1537, 1540, 1542, 1546, 1547, 1548, 1550, 1552,1036 15 56, 1561, 1569, 1570, 1579, 1581, 1586, 1587, 1588, 1592,1037 1 593, 1594, 1598, 1599, 1604, 1605, 1606, 1611, 1612, 1613,1038 16 14, 1620, 1621, 1625, 1626, 1630, 1631, 1632, 1633, 1648,1039 16 49, 1654, 1655, 1660, 1662, 1665, 1667, 1669, 1692, 1693,1040 1 695, 1697, 1702, 1704, 1706, 1711, 1712, 1718, 1717, 1721,1041 17 25, 1727, 1729, 1735, 1736, 1741, 1746, 1748, 1753, 1755,1042 17 56, 1758, 1763, 1765, 1767, 1772, 1774, 1779, 1784, 1792,1043 1 798, 1797, 1811, 1812, 1817, 1818, 1822, 1827, 1832, 1840,1044 18 45, 1856, 1857, 1868, 1869, 1875, 1876, 1880, 1881, 1882,1045 18 85, 1884, 1895, 1900, 1906, 1912, 1921, 1927, 1933, 1939,1046 19 45, 1953, 1959, 1967, 1973, 1982, 1983, 1984, 1988, 1992,1047 1994, 1997, 1999, 2003, 2004, 2008, 2012, 2013, 2016, 2018,1048 20 19, 2023, 2024, 2025, 2026, 2060, 2061, 2062, 2063, 2067,1049 20 72, 2077, 2079, 2081, 2086, 2088, 2090, 2092, 2097, 2099,1050 21 09, 2110, 2111, 2115, 2117, 2119, 2124, 2126, 2128, 2133,1051 21 35, 2137, 2146, 2147, 2148, 2152, 2154, 2156, 2161, 2163,1052 21 65, 2170, 2172, 2174, 2189, 2190, 2191, 2192, 2196, 2201,1053 22 06, 2208, 2210, 2215, 2217, 2219, 2221, 2226, 2228, 2230,1054 22 40, 2241, 2242, 2243, 2247, 2249, 2251, 2256, 2258, 2260,1055 22 62, 2267, 2269, 2271, 2302, 2303, 2304, 2305, 2309, 2317,1056 23 19, 2321, 2326, 2328, 2333, 2335, 2349, 2350, 2351, 2355,1057 23 57, 2359, 2361, 2363, 2368, 2369, 2371, 2373, 2378, 2380,1058 23 82, 2388, 2390, 2392, 2396, 2398, 2400, 2402, 2416, 2417,1059 24 18, 2422, 2424, 2426, 2428, 2430, 2435, 2436, 2438, 2440,1060 24 45, 2447, 2449, 2455, 2456, 2458, 2467, 2470, 2472, 2475,1061 24 77, 2479, 2492, 2493, 2494, 2498, 2500, 2502, 2504, 2506,1062 25 11, 2512, 2514, 2516, 2521, 2523, 2531, 2532, 2533, 2538,1063 25 39, 2543, 2545, 2547, 2549, 2551, 2553, 2560, 2562, 2564,1064 25 66, 2568, 2570, 2572, 2574, 2576, 2578, 2583, 2585, 2587,1065 2 592, 2618, 2619, 2621, 2625, 2626, 2630, 2632, 2634, 2636,1066 26 38, 2640, 2647, 2649, 2651, 2653, 2655, 2657, 2662, 2667,1067 26 69, 2671, 2689, 2691, 2696, 2697993 0, 282, 282, 288, 298, 299, 300, 304, 305, 306, 994 310, 311, 315, 319, 320, 324, 325, 331, 333, 335, 995 337, 339, 341, 346, 347, 353, 355, 357, 358, 360, 996 361, 363, 366, 371, 372, 378, 379, 380, 385, 387, 997 392, 393, 397, 399, 401, 403, 405, 410, 411, 413, 998 415, 417, 419, 421, 427, 429, 431, 433, 435, 437, 999 439, 441, 446, 447, 448, 449, 453, 454, 456, 461, 1000 462, 464, 466, 471, 472, 474, 479, 480, 482, 487, 1001 488, 490, 492, 494, 499, 500, 502, 507, 508, 513, 1002 514, 519, 520, 525, 526, 531, 532, 537, 538, 540, 1003 542, 547, 552, 553, 555, 557, 563, 564, 570, 572, 1004 574, 576, 581, 582, 587, 588, 589, 590, 591, 592, 1005 593, 594, 595, 596, 600, 601, 607, 608, 614, 615, 1006 616, 617, 618, 619, 620, 621, 625, 630, 632, 642, 1007 643, 648, 650, 652, 654, 658, 659, 664, 669, 672, 1008 674, 676, 682, 684, 692, 693, 695, 699, 700, 705, 1009 706, 711, 712, 716, 721, 722, 726, 728, 734, 735, 1010 739, 741, 743, 745, 751, 752, 756, 757, 761, 763, 1011 765, 770, 772, 777, 779, 783, 787, 791, 795, 799, 1012 801, 803, 808, 810, 812, 821, 824, 826, 831, 833, 1013 838, 851, 852, 857, 859, 864, 868, 870, 872, 874, 1014 878, 880, 884, 885, 889, 893, 894, 900, 902, 906, 1015 907, 912, 914, 918, 919, 923, 925, 929, 930, 934, 1016 935, 939, 940, 956, 957, 958, 959, 960, 964, 969, 1017 976, 986, 991, 996, 1004, 1009, 1014, 1019, 1024, 1032, 1018 1037, 1050, 1056, 1063, 1065, 1072, 1077, 1082, 1094, 1099, 1019 1104, 1109, 1114, 1122, 1127, 1135, 1136, 1137, 1138, 1144, 1020 1149, 1157, 1158, 1159, 1160, 1164, 1165, 1166, 1167, 1172, 1021 1173, 1183, 1184, 1189, 1190, 1195, 1197, 1199, 1201, 1203, 1022 1206, 1205, 1217, 1218, 1220, 1230, 1231, 1236, 1240, 1242, 1023 1244, 1246, 1248, 1250, 1252, 1254, 1259, 1261, 1263, 1265, 1024 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1287, 1288, 1025 1290, 1292, 1294, 1299, 1300, 1306, 1307, 1309, 1311, 1316, 1026 1318, 1320, 1322, 1327, 1328, 1330, 1332, 1337, 1338, 1340, 1027 1345, 1346, 1348, 1350, 1355, 1357, 1359, 1364, 1365, 1369, 1028 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1386, 1391, 1393, 1029 1398, 1400, 1405, 1406, 1408, 1409, 1414, 1415, 1417, 1419, 1030 1424, 1426, 1432, 1433, 1435, 1438, 1441, 1446, 1447, 1452, 1031 1457, 1461, 1463, 1465, 1470, 1472, 1478, 1479, 1487, 1488, 1032 1492, 1493, 1494, 1496, 1498, 1506, 1507, 1509, 1511, 1516, 1033 1517, 1523, 1524, 1528, 1529, 1534, 1535, 1536, 1538, 1547, 1034 1548, 1550, 1553, 1555, 1559, 1560, 1561, 1563, 1565, 1569, 1035 1574, 1582, 1583, 1592, 1594, 1599, 1600, 1601, 1605, 1606, 1036 1607, 1611, 1612, 1613, 1617, 1618, 1619, 1624, 1625, 1626, 1037 1627, 1633, 1634, 1638, 1639, 1643, 1644, 1645, 1646, 1661, 1038 1662, 1667, 1668, 1672, 1674, 1678, 1680, 1682, 1706, 1707, 1039 1709, 1711, 1716, 1718, 1720, 1725, 1726, 1732, 1731, 1735, 1040 1739, 1741, 1743, 1749, 1750, 1755, 1760, 1762, 1767, 1769, 1041 1770, 1772, 1777, 1779, 1781, 1786, 1788, 1793, 1798, 1806, 1042 1812, 1811, 1825, 1826, 1831, 1832, 1836, 1841, 1846, 1854, 1043 1859, 1870, 1871, 1882, 1883, 1889, 1890, 1894, 1895, 1896, 1044 1899, 1898, 1909, 1914, 1921, 1927, 1936, 1942, 1948, 1954, 1045 1960, 1968, 1974, 1982, 1988, 1997, 1998, 1999, 2003, 2007, 1046 2009, 2012, 2014, 2018, 2019, 2023, 2027, 2028, 2031, 2033, 1047 2034, 2038, 2039, 2040, 2041, 2076, 2077, 2078, 2079, 2083, 1048 2088, 2093, 2095, 2097, 2102, 2104, 2106, 2108, 2113, 2115, 1049 2125, 2126, 2127, 2131, 2133, 2135, 2140, 2142, 2144, 2149, 1050 2151, 2153, 2162, 2163, 2164, 2168, 2170, 2172, 2177, 2179, 1051 2181, 2186, 2188, 2190, 2205, 2206, 2207, 2208, 2212, 2217, 1052 2222, 2224, 2226, 2231, 2233, 2235, 2237, 2242, 2244, 2246, 1053 2256, 2257, 2258, 2259, 2263, 2265, 2267, 2272, 2274, 2276, 1054 2278, 2283, 2285, 2287, 2318, 2319, 2320, 2321, 2325, 2333, 1055 2335, 2337, 2342, 2344, 2349, 2351, 2365, 2366, 2367, 2371, 1056 2373, 2375, 2377, 2379, 2384, 2385, 2387, 2389, 2394, 2396, 1057 2398, 2404, 2406, 2408, 2412, 2414, 2416, 2418, 2432, 2433, 1058 2434, 2438, 2440, 2442, 2444, 2446, 2451, 2452, 2454, 2456, 1059 2461, 2463, 2465, 2471, 2472, 2474, 2484, 2487, 2489, 2492, 1060 2494, 2496, 2509, 2510, 2511, 2515, 2517, 2519, 2521, 2523, 1061 2528, 2529, 2531, 2533, 2538, 2540, 2548, 2549, 2550, 2555, 1062 2556, 2560, 2562, 2564, 2566, 2568, 2570, 2577, 2579, 2581, 1063 2583, 2585, 2587, 2589, 2591, 2593, 2595, 2600, 2602, 2604, 1064 2609, 2635, 2636, 2638, 2642, 2643, 2647, 2649, 2651, 2653, 1065 2655, 2657, 2664, 2666, 2668, 2670, 2672, 2674, 2679, 2684, 1066 2686, 2688, 2708, 2710, 2715, 2716 1068 1067 }; 1069 1068 #endif … … 1240 1239 228, 228, 228, 229, 229, 229, 229, 230, 230, 230, 1241 1240 231, 231, 231, 231, 232, 232, 232, 233, 233, 234, 1242 234, 234, 234, 234, 234, 234, 234, 234, 23 4, 235,1243 23 5, 236, 236, 237, 237, 237, 237, 238, 238, 238,1244 23 8, 239, 239, 240, 240, 240, 240, 240, 241, 241,1245 24 2, 243, 244, 244, 244, 245, 245, 246, 246, 247,1246 24 7, 248, 248, 248, 248, 248, 249, 249, 249, 249,1247 250, 25 0, 251, 251, 252, 252, 253, 253, 253, 253,1248 254, 254, 254, 254, 25 4, 255, 255, 255, 255, 255,1249 256, 25 6, 257, 257, 258, 258, 259, 259, 259, 260,1250 260, 26 0, 261, 261, 262, 262, 262, 263, 263, 263,1241 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 1242 236, 236, 237, 237, 237, 237, 238, 238, 238, 238, 1243 239, 239, 240, 240, 240, 240, 240, 241, 241, 242, 1244 243, 244, 244, 244, 245, 245, 246, 246, 247, 247, 1245 248, 248, 248, 248, 248, 249, 249, 249, 249, 250, 1246 250, 251, 251, 252, 252, 253, 253, 253, 253, 254, 1247 254, 254, 254, 254, 255, 255, 255, 255, 255, 256, 1248 256, 257, 257, 258, 258, 259, 259, 259, 260, 260, 1249 260, 261, 261, 261, 262, 262, 262, 263, 263, 263, 1251 1250 263, 264, 264, 265, 265, 266, 266, 266, 266, 267, 1252 1251 267, 268, 268, 269, 269, 269, 269, 269, 270, 270, … … 1319 1318 4, 4, 4, 1, 2, 2, 3, 1, 2, 2, 1320 1319 1, 2, 2, 3, 1, 2, 2, 1, 1, 4, 1321 2, 5, 9, 7, 10, 12, 5, 7, 13, 2,1322 2, 1, 2, 2, 3, 2, 3, 1, 2, 3,1323 2, 2, 4, 0, 1, 2, 2, 1, 0, 1,1324 2, 2, 5, 6, 2, 2, 4, 0, 2, 0,1325 1, 1, 1, 5, 5, 5, 1, 5, 5, 9,1326 1, 5, 0, 1, 1, 5, 1, 1, 5, 5,1327 1, 3, 3, 4, 1, 1, 1, 1, 2, 1,1328 3, 3, 1, 2, 1, 3, 1, 1, 1, 1,1320 2, 5, 9, 7, 10, 12, 7, 13, 2, 2, 1321 1, 2, 2, 3, 2, 3, 1, 2, 3, 2, 1322 2, 4, 0, 1, 2, 2, 1, 0, 1, 2, 1323 2, 5, 6, 2, 2, 4, 0, 2, 0, 1, 1324 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 1325 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 1326 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 1327 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1329 1328 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1330 1329 2, 0, 2, 1, 4, 1, 2, 3, 4, 2, … … 1377 1376 573, 574, 279, 0, 714, 715, 0, 12, 279, 0, 1378 1377 255, 256, 0, 280, 275, 276, 277, 278, 510, 290, 1379 38 1, 532, 533, 359, 360, 12, 433, 431, 11, 429,1380 43 2, 0, 487, 482, 473, 433, 0, 0, 512, 0,1381 280, 279, 0, 0, 0, 0, 0, 0, 0, 0,1382 279, 2, 0, 716, 280, 566, 578, 720, 713, 711,1383 71 8, 0, 0, 238, 2, 0, 516, 427, 428, 426,1384 0, 0, 0, 0, 531, 0, 588, 0, 0, 529,1385 52 5, 531, 546, 531, 531, 526, 2, 527, 531, 585,1386 5 31, 531, 0, 0, 0, 279, 279, 298, 345, 0,1387 2, 279, 245, 282, 293, 326, 338, 0, 2, 0,1388 441, 246, 280, 319, 334, 341, 459, 0, 2, 0,1389 296, 320, 327, 328, 0, 335, 339, 342, 346, 0,1390 2, 279, 350, 0, 38 4, 460, 464, 0, 0, 0,1378 380, 532, 533, 358, 359, 12, 432, 433, 11, 428, 1379 431, 0, 487, 482, 473, 432, 433, 0, 0, 512, 1380 0, 280, 279, 0, 0, 0, 0, 0, 0, 0, 1381 0, 279, 2, 0, 716, 280, 566, 578, 720, 713, 1382 711, 718, 0, 0, 238, 2, 0, 516, 426, 427, 1383 425, 0, 0, 0, 0, 531, 0, 588, 0, 0, 1384 529, 525, 531, 546, 531, 531, 526, 2, 527, 531, 1385 585, 531, 531, 0, 0, 0, 279, 279, 298, 345, 1386 0, 2, 279, 245, 282, 293, 326, 338, 0, 2, 1387 0, 441, 246, 280, 319, 334, 341, 459, 0, 2, 1388 0, 296, 320, 327, 328, 0, 335, 339, 342, 346, 1389 2, 279, 350, 0, 383, 460, 464, 0, 0, 0, 1391 1390 1, 279, 2, 514, 560, 562, 279, 2, 724, 280, 1392 1391 727, 529, 529, 280, 0, 0, 0, 258, 531, 526, … … 1397 1396 76, 79, 84, 87, 89, 91, 93, 95, 97, 102, 1398 1397 479, 734, 439, 478, 0, 437, 438, 0, 550, 565, 1399 568, 571, 577, 580, 583, 2, 279, 0, 3, 41 4,1400 0, 42 2, 280, 279, 292, 318, 272, 333, 340, 3,1401 3, 39 6, 400, 410, 415, 458, 279, 416, 689, 690,1402 279, 41 7, 419, 279, 2, 567, 579, 712, 2, 2,1398 568, 571, 577, 580, 583, 2, 279, 0, 3, 413, 1399 0, 421, 280, 279, 292, 318, 272, 333, 340, 3, 1400 3, 395, 399, 409, 414, 458, 279, 415, 689, 690, 1401 279, 416, 418, 279, 2, 567, 579, 712, 2, 2, 1403 1402 233, 2, 0, 0, 443, 442, 137, 2, 2, 235, 1404 1403 2, 2, 234, 2, 266, 2, 267, 0, 265, 0, … … 1408 1407 0, 280, 279, 279, 717, 721, 719, 518, 279, 529, 1409 1408 239, 247, 294, 0, 2, 519, 279, 483, 321, 322, 1410 268, 336, 343, 279, 279, 279, 2, 373, 279, 361,1411 0, 0, 367, 711, 279, 732, 387, 0, 461, 484,1412 23 6, 237, 504, 279, 424, 0, 279, 221, 0, 2,1413 223, 0, 280, 0, 241, 2, 242, 263, 0, 0,1414 2, 279, 529, 279, 470, 472, 471, 0, 0, 734,1415 0, 279, 0, 279, 474, 279, 544, 542, 543, 541,1416 0, 536, 539, 66, 101, 0, 279, 54, 50, 279,1417 59, 279, 279, 48, 49, 61, 2, 124, 0, 0,1418 435, 0, 434, 279, 52, 53, 16, 0, 30, 31,1419 35, 2, 0, 114, 115, 116, 117, 118, 119, 120,1420 12 1, 122, 123, 0, 0, 51, 0, 0, 0, 0,1409 268, 336, 343, 279, 279, 2, 372, 279, 360, 0, 1410 0, 366, 711, 279, 732, 386, 0, 461, 484, 236, 1411 237, 504, 279, 423, 0, 279, 221, 0, 2, 223, 1412 0, 280, 0, 241, 2, 242, 263, 0, 0, 2, 1413 279, 529, 279, 470, 472, 471, 0, 0, 734, 0, 1414 279, 0, 279, 474, 279, 544, 542, 543, 541, 0, 1415 536, 539, 66, 101, 0, 279, 54, 50, 279, 59, 1416 279, 279, 48, 49, 61, 2, 124, 0, 0, 435, 1417 0, 434, 279, 52, 53, 16, 0, 30, 31, 35, 1418 2, 0, 114, 115, 116, 117, 118, 119, 120, 121, 1419 122, 123, 0, 0, 51, 0, 0, 0, 0, 0, 1421 1420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1422 0, 0, 0, 0, 0, 0, 105, 2, 629, 440,1423 626, 531, 531, 634, 462, 279, 2, 569, 2, 570,1424 0, 581, 582, 279, 2, 279, 0, 691, 280, 695,1425 68 6, 687, 693, 279, 0, 618, 2, 2, 651, 531,1426 734, 601, 531, 531, 734, 531, 615, 531, 531, 665,1427 423, 648, 531, 531, 656, 663, 279, 418, 280, 0,1428 0, 279, 701, 280, 706, 734, 698, 279, 703, 734,1429 0, 279, 279, 0, 3, 17, 2, 0, 0, 445,1430 732, 0, 0, 451, 225, 0, 279, 0, 0, 0,1431 5 29, 553, 557, 559, 589, 592, 596, 599, 552, 591,1432 0, 269, 3, 0, 279, 262, 0, 0, 0,0,1433 260, 0, 2, 0, 0, 243, 520, 279, 0, 0,1434 439, 3, 3, 0, 0, 279, 0, 0, 675, 371,1435 374, 378, 531, 378, 680, 377, 672, 531, 531, 349,1436 362, 370, 363, 531, 365, 368, 279, 733, 0, 0,1437 385, 732, 280, 3, 403, 3, 407, 406, 575, 0,1438 515, 279, 3, 3, 279, 422, 280, 3, 416, 417,1439 2, 0, 0, 0, 469, 291, 279, 465, 467, 3,1440 2, 2, 0, 486, 3, 0, 538, 126, 0, 210,1441 0, 0, 2, 0, 0, 36, 0, 0, 279, 21,1442 0, 22, 0, 675, 436, 0, 106, 0, 3, 2,1443 28, 2, 0, 33, 0, 2, 26, 103, 104, 70,1444 7 1, 72, 74, 75, 77, 78, 82, 83, 80, 81,1445 8 5, 86, 88, 90, 92, 94, 96, 0, 0, 735,1446 279, 0, 0, 0, 630, 631, 627, 628, 481, 480,1447 279, 0, 0, 0, 280, 279, 279, 645, 688, 344,1448 0, 722, 279, 725, 644, 2, 279, 0, 0, 0,1449 0, 0, 0, 0, 0, 3, 652, 604, 619, 653,1450 2, 600, 607, 420, 602, 603, 421, 2, 614, 622,1451 6 16, 617, 649, 650, 664, 692, 696, 694, 734, 253,1452 2, 728, 2, 411, 700, 705, 412, 279, 3, 390,1453 3, 3, 3, 441, 0, 3, 3, 2, 453, 450,1454 733, 0, 446, 2, 449, 452, 0, 279, 226, 248,1455 3, 257, 259, 0, 441, 2, 555, 556, 2, 594,1456 595, 0, 3, 0, 521, 3, 330, 329, 332, 331,1457 463, 279, 0, 522, 0, 523, 356, 2, 629, 0,1458 0, 364, 366, 2, 0, 0, 0, 0, 0, 380,1459 676, 677, 375, 379, 376, 673, 674, 369, 373, 351,1460 387, 382, 388, 0, 0, 0, 425, 224, 0, 0,1461 3, 2, 651, 418, 0, 511, 0, 734, 473, 0,1462 279, 279, 279, 0, 535, 537, 127, 0, 206, 0,1463 0, 211, 212, 55, 60, 279, 0, 58, 57, 0,1464 0, 125, 676, 0, 67, 68, 107, 112, 3, 108,1465 106, 0, 0, 3, 25, 35, 3, 0, 99, 0,1466 3, 633, 637, 640, 632, 3, 576, 108, 2, 279,1467 3, 3, 280, 0, 2, 2, 723, 726, 0,3,1468 6 06, 610, 613, 621, 655, 659, 662, 279, 0, 3,1469 605, 620, 654, 279, 279, 413, 279, 279, 279, 0,1470 0, 0, 0, 240, 108, 0, 101, 0, 3, 3,1471 0, 447, 0, 444, 0, 0, 229, 279, 0, 0,1472 126, 0, 0, 0, 0, 0, 126, 0, 0, 0,1473 2, 0, 0, 3, 128, 129, 2, 139, 130, 131,1474 13 2, 133, 134, 135, 141, 143, 0, 0, 0, 270,1475 279, 279, 531, 641, 0, 0, 0, 524, 630, 0,1476 0, 279, 279, 679, 683, 685, 678, 372, 386, 383,1477 563, 2, 647, 646, 0, 652, 2, 466, 468, 488,1478 3, 496, 497, 0, 2, 492, 3, 3, 0, 0,1479 540, 0, 0, 210, 0, 3, 37, 108, 732, 106,1480 0, 3, 644, 42, 3, 40, 3, 34, 0, 3,1481 98, 100, 0, 2, 635, 636, 0, 697, 279, 702,1482 279, 0, 0, 0, 3, 279, 279, 279, 621, 0,1483 2, 6 08, 609, 2, 623, 2, 657, 658, 0, 666,1484 0, 3, 0, 3, 3, 3, 3, 398, 397, 401,1485 0, 731, 2, 2, 730, 109, 0, 0, 0, 0,1486 3, 448, 3, 0, 227, 142, 3, 280, 279, 0,1487 0, 0, 0, 2, 187, 0, 185, 0, 0, 0,1488 0, 0, 0, 191, 0, 279, 531, 147, 144, 279,1489 0, 0, 252, 264, 3, 3, 530, 642, 597, 279,1490 279, 279, 353, 357, 0, 2, 681, 682, 279, 251,1491 279, 0, 499, 476, 279, 0, 0, 475, 490, 0,1492 207, 0, 213, 106, 0, 0, 113, 110, 0, 0,1493 0, 0, 0, 0, 24, 0, 638, 279, 564, 699,1494 70 4, 707, 708, 709, 0, 3, 3, 660, 279, 279,1495 279, 3, 3, 0, 668, 0, 0, 0, 0, 729,1496 279, 279, 3, 528, 109, 455, 0, 0, 230, 280,1497 0, 0, 0, 0, 279, 188, 186, 0, 183, 189,1498 0, 0, 0, 192, 195, 193, 190, 0, 126, 140,1499 138, 228, 0, 0, 0, 279, 279, 108, 279, 405,1500 4 09, 408, 0, 493, 2, 494, 2, 495, 489, 279,1501 214, 0, 0, 3, 644, 32, 111, 2, 45, 2,1502 43, 41, 29, 109, 27, 3, 710, 0, 0, 3,1503 3, 3, 0, 0, 667, 669, 611, 624, 254, 2,1504 395, 3, 394, 0, 457, 454, 126, 0, 0, 126,1505 3, 0, 126, 184, 0, 2, 200, 194, 0, 108,1506 136, 558, 598, 0, 352, 279, 3, 2, 0, 0,1507 2, 208, 215, 0, 0, 0, 0, 0, 0, 250,1508 249, 0, 0, 0, 670, 671, 279, 0, 456, 148,1509 0, 0, 2, 161, 126, 150, 0, 178, 0, 126,1510 0, 2, 152, 0, 2, 2, 279, 0, 354,0,1511 279, 498, 500, 491, 0, 0, 111, 38, 3, 3,1512 6 39, 612, 625, 661, 399, 126, 154, 157, 0, 156,1513 16 0, 3, 163, 162, 0, 126, 180, 126, 3, 0,1514 279, 0, 2, 279, 279, 684, 2, 209, 216, 0,1515 0, 0, 1 49, 0, 0, 159, 217, 164, 2, 219,1516 1 79, 0, 182, 168, 196, 3, 201, 205, 0, 279,1517 355, 279, 0, 39, 46, 44, 155, 158, 126, 0,1518 1 65, 279, 126, 126, 0, 169, 0, 0, 675, 202,1519 203, 204, 197, 3, 358, 279, 145, 166, 151, 126,1520 220, 181, 176, 174, 170, 153, 126, 0, 676, 0,1521 0, 146, 167, 177, 171, 175, 174, 172, 3, 0,1522 477, 173, 198,3, 1991421 0, 0, 0, 0, 0, 105, 2, 629, 440, 626, 1422 531, 531, 634, 462, 279, 2, 569, 2, 570, 0, 1423 581, 582, 279, 2, 279, 0, 691, 280, 695, 686, 1424 687, 693, 279, 0, 618, 2, 2, 651, 531, 734, 1425 601, 531, 531, 734, 531, 615, 531, 531, 665, 422, 1426 648, 531, 531, 656, 663, 279, 417, 280, 0, 0, 1427 279, 701, 280, 706, 734, 698, 279, 703, 734, 0, 1428 279, 279, 0, 3, 17, 2, 0, 0, 445, 732, 1429 0, 0, 451, 225, 0, 279, 0, 0, 0, 529, 1430 553, 557, 559, 589, 592, 596, 599, 552, 591, 0, 1431 269, 3, 0, 279, 262, 0, 0, 0, 0, 260, 1432 0, 2, 0, 0, 243, 520, 279, 0, 439, 3, 1433 3, 0, 0, 279, 0, 0, 675, 370, 373, 377, 1434 531, 377, 680, 376, 672, 531, 531, 349, 361, 369, 1435 362, 531, 364, 367, 279, 733, 0, 0, 384, 732, 1436 280, 3, 402, 3, 406, 405, 575, 0, 515, 279, 1437 3, 3, 279, 421, 280, 3, 415, 416, 2, 0, 1438 0, 0, 469, 291, 279, 465, 467, 3, 2, 2, 1439 0, 486, 3, 0, 538, 126, 0, 210, 0, 0, 1440 2, 0, 0, 36, 0, 0, 279, 21, 0, 22, 1441 0, 675, 436, 0, 106, 0, 3, 2, 28, 2, 1442 0, 33, 0, 2, 26, 103, 104, 70, 71, 72, 1443 74, 75, 77, 78, 82, 83, 80, 81, 85, 86, 1444 88, 90, 92, 94, 96, 0, 0, 735, 279, 0, 1445 0, 0, 630, 631, 627, 628, 481, 480, 279, 0, 1446 0, 0, 280, 279, 279, 645, 688, 344, 0, 722, 1447 279, 725, 644, 2, 279, 0, 0, 0, 0, 0, 1448 0, 0, 0, 3, 652, 604, 619, 653, 2, 600, 1449 607, 419, 602, 603, 420, 2, 614, 622, 616, 617, 1450 649, 650, 664, 692, 696, 694, 734, 253, 2, 728, 1451 2, 410, 700, 705, 411, 279, 3, 389, 3, 3, 1452 3, 441, 0, 3, 3, 2, 453, 450, 733, 0, 1453 446, 2, 449, 452, 0, 279, 226, 248, 3, 257, 1454 259, 0, 441, 2, 555, 556, 2, 594, 595, 0, 1455 3, 0, 521, 3, 330, 329, 332, 331, 463, 279, 1456 0, 522, 0, 523, 2, 629, 0, 0, 363, 365, 1457 2, 0, 0, 0, 0, 0, 379, 676, 677, 374, 1458 378, 375, 673, 674, 368, 372, 351, 386, 381, 387, 1459 0, 0, 0, 424, 224, 0, 0, 3, 2, 651, 1460 417, 0, 511, 0, 734, 473, 0, 279, 279, 279, 1461 0, 535, 537, 127, 0, 206, 0, 0, 211, 212, 1462 55, 60, 279, 0, 58, 57, 0, 0, 125, 676, 1463 0, 67, 68, 107, 112, 3, 108, 106, 0, 0, 1464 3, 25, 35, 3, 0, 99, 0, 3, 633, 637, 1465 640, 632, 3, 576, 108, 2, 279, 3, 3, 280, 1466 0, 2, 2, 723, 726, 0, 3, 606, 610, 613, 1467 621, 655, 659, 662, 279, 0, 3, 605, 620, 654, 1468 279, 279, 412, 279, 279, 279, 0, 0, 0, 0, 1469 240, 108, 0, 101, 0, 3, 3, 0, 447, 0, 1470 444, 0, 0, 229, 279, 0, 0, 126, 0, 0, 1471 0, 0, 0, 126, 0, 0, 0, 2, 0, 0, 1472 3, 128, 129, 2, 139, 130, 131, 132, 133, 134, 1473 135, 141, 143, 0, 0, 0, 270, 279, 279, 531, 1474 641, 0, 0, 0, 524, 630, 0, 0, 279, 279, 1475 679, 683, 685, 678, 371, 385, 382, 563, 2, 647, 1476 646, 0, 652, 2, 466, 468, 488, 3, 496, 497, 1477 0, 2, 492, 3, 3, 0, 0, 540, 0, 0, 1478 210, 0, 3, 37, 108, 732, 106, 0, 3, 644, 1479 42, 3, 40, 3, 34, 0, 3, 98, 100, 0, 1480 2, 635, 636, 0, 697, 279, 702, 279, 0, 0, 1481 0, 3, 279, 279, 279, 621, 0, 2, 608, 609, 1482 2, 623, 2, 657, 658, 0, 666, 0, 3, 0, 1483 3, 3, 3, 3, 397, 396, 400, 0, 731, 2, 1484 2, 730, 109, 0, 0, 0, 0, 3, 448, 3, 1485 0, 227, 142, 3, 280, 279, 0, 0, 0, 0, 1486 2, 187, 0, 185, 0, 0, 0, 0, 0, 0, 1487 191, 0, 279, 531, 147, 144, 279, 0, 0, 252, 1488 264, 3, 3, 530, 642, 597, 279, 279, 279, 353, 1489 356, 0, 2, 681, 682, 279, 251, 279, 0, 499, 1490 476, 279, 0, 0, 475, 490, 0, 207, 0, 213, 1491 106, 0, 0, 113, 110, 0, 0, 0, 0, 0, 1492 0, 24, 0, 638, 279, 564, 699, 704, 707, 708, 1493 709, 0, 3, 3, 660, 279, 279, 279, 3, 3, 1494 0, 668, 0, 0, 0, 0, 729, 279, 279, 3, 1495 528, 109, 455, 0, 0, 230, 280, 0, 0, 0, 1496 0, 279, 188, 186, 0, 183, 189, 0, 0, 0, 1497 192, 195, 193, 190, 0, 126, 140, 138, 228, 0, 1498 0, 0, 279, 279, 108, 279, 404, 408, 407, 0, 1499 493, 2, 494, 2, 495, 489, 279, 214, 0, 0, 1500 3, 644, 32, 111, 2, 45, 2, 43, 41, 29, 1501 109, 27, 3, 710, 0, 0, 3, 3, 3, 0, 1502 0, 667, 669, 611, 624, 254, 2, 394, 3, 393, 1503 0, 457, 454, 126, 0, 0, 126, 3, 0, 126, 1504 184, 0, 2, 200, 194, 0, 108, 136, 558, 598, 1505 0, 352, 279, 3, 2, 0, 0, 2, 208, 215, 1506 0, 0, 0, 0, 0, 0, 250, 249, 0, 0, 1507 0, 670, 671, 279, 0, 456, 148, 0, 0, 2, 1508 161, 126, 150, 0, 178, 0, 126, 0, 2, 152, 1509 0, 2, 2, 279, 0, 354, 0, 279, 498, 500, 1510 491, 0, 0, 111, 38, 3, 3, 639, 612, 625, 1511 661, 398, 126, 154, 157, 0, 156, 160, 3, 163, 1512 162, 0, 126, 180, 126, 3, 0, 279, 0, 2, 1513 279, 279, 684, 2, 209, 216, 0, 0, 0, 149, 1514 0, 0, 159, 217, 164, 2, 219, 179, 0, 182, 1515 168, 196, 3, 201, 205, 0, 279, 355, 279, 0, 1516 39, 46, 44, 155, 158, 126, 0, 165, 279, 126, 1517 126, 0, 169, 0, 0, 675, 202, 203, 204, 197, 1518 3, 357, 279, 145, 166, 151, 126, 220, 181, 176, 1519 174, 170, 153, 126, 0, 676, 0, 0, 146, 167, 1520 177, 171, 175, 174, 172, 3, 0, 477, 173, 198, 1521 3, 199 1523 1522 }; 1524 1523 … … 1526 1525 static const yytype_int16 yydefgoto[] = 1527 1526 { 1528 -1, 81 6, 457, 291, 45, 129, 130, 292, 293, 294,1529 295, 76 2, 744, 1134, 1135, 296, 297, 298, 299, 300,1530 301, 302, 303, 304, 305, 306, 307, 308, 309, 103 7,1531 50 7, 977, 311, 978, 534, 956, 1062, 1526, 1064, 1065,1532 106 6, 1067, 1527, 1068, 1069, 1457, 1458, 1423, 1424, 1425,1533 150 9, 1510, 1514, 1515, 1544, 1545, 1070, 1381, 1071, 1072,1534 131 3, 1314, 1315, 1495, 1073, 960, 961, 962, 1403, 1487,1535 148 8, 458, 459, 877, 878, 1045, 48, 49, 50, 51,1536 52, 329, 15 2, 55, 56, 57, 58, 59, 331, 61,1527 -1, 814, 456, 291, 45, 129, 130, 292, 293, 294, 1528 295, 760, 742, 1131, 1132, 296, 297, 298, 299, 300, 1529 301, 302, 303, 304, 305, 306, 307, 308, 309, 1034, 1530 506, 974, 311, 975, 533, 953, 1059, 1523, 1061, 1062, 1531 1063, 1064, 1524, 1065, 1066, 1454, 1455, 1420, 1421, 1422, 1532 1506, 1507, 1511, 1512, 1541, 1542, 1067, 1378, 1068, 1069, 1533 1310, 1311, 1312, 1492, 1070, 957, 958, 959, 1400, 1484, 1534 1485, 457, 458, 875, 876, 1042, 48, 49, 50, 51, 1535 52, 329, 153, 55, 56, 57, 58, 59, 331, 61, 1537 1536 62, 253, 64, 65, 264, 333, 334, 68, 69, 70, 1538 71, 114, 73, 19 5, 336, 115, 76, 116, 78, 79,1539 80, 43 8, 439, 440, 441, 679, 922, 680, 81, 82,1540 44 5, 700, 858, 859, 339, 340, 703, 704, 705, 341,1541 342, 343, 344, 45 5, 170, 131, 132, 511, 313, 163,1542 62 9, 630, 631, 632, 633, 83, 117, 478, 479, 948,1543 4 80, 267, 484, 314, 85, 133, 134, 86, 1339, 1114,1544 111 5, 1116, 1117, 87, 88, 721, 89, 263, 90, 91,1545 1 79, 1039, 665, 393, 121, 92, 490, 491, 492, 180,1546 258, 18 2, 183, 184, 259, 95, 96, 97, 98, 99,1547 100, 101, 18 7, 188, 189, 190, 191, 827, 591, 592,1548 59 3, 594, 595, 596, 597, 598, 559, 560, 561, 562,1549 68 4, 102, 600, 601, 602, 603, 604, 605, 921, 686,1550 68 7, 688, 579, 347, 348, 349, 350, 442, 158, 104,1551 105, 351, 352, 69 8, 5561537 71, 114, 73, 196, 336, 115, 76, 116, 78, 79, 1538 80, 437, 438, 439, 440, 677, 919, 678, 81, 82, 1539 444, 698, 856, 857, 339, 340, 701, 702, 703, 341, 1540 342, 343, 344, 454, 171, 131, 132, 510, 313, 164, 1541 628, 629, 630, 631, 632, 83, 117, 477, 478, 945, 1542 479, 267, 483, 314, 85, 133, 134, 86, 1336, 1111, 1543 1112, 1113, 1114, 87, 88, 719, 89, 263, 90, 91, 1544 180, 1036, 664, 393, 121, 92, 489, 490, 491, 181, 1545 258, 183, 184, 185, 259, 95, 96, 97, 98, 99, 1546 100, 101, 188, 189, 190, 191, 192, 825, 590, 591, 1547 592, 593, 594, 595, 596, 597, 558, 559, 560, 561, 1548 682, 102, 599, 600, 601, 602, 603, 604, 918, 684, 1549 685, 686, 578, 347, 348, 349, 350, 441, 159, 104, 1550 105, 351, 352, 696, 555 1552 1551 }; 1553 1552 1554 1553 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1555 1554 STATE-NUM. */ 1556 #define YYPACT_NINF -1 2971555 #define YYPACT_NINF -1306 1557 1556 static const yytype_int16 yypact[] = 1558 1557 { 1559 5063, 10209, -1297, 115, -1297, -1297, -1297, -1297, -1297, -1297,1560 -1 297, 109, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297,1561 -1 297, -1297, -1297, -1297, -1297, 252, 252, 252, 866, 397,1562 123, 7705, 771, -1297, -1297, -1297, -1297, -1297, 225, -1297,1563 -1 297, -1297, 776, -1297, 9574, -1297, -1297, -1297, -1297, -1297,1564 -1 297, 208, 239, -1297, 1099, -1297, -1297, -1297, -1297, 242,1565 5 05, 360, 130, 7814, -1297, -1297, 9642, 626, -1297, -1297,1566 -1 297, 693, 365, 5846, 163, 733, 693, 1021, -1297, -1297,1567 289, 218, -1297, 693, 1254, 275, -1297, 401, 413, -1297,1568 -1 297, -1297, -1297, 327, 239, 252, -1297, 252, -1297, -1297,1569 -1 297, -1297, 10445, 1099, -1297, -1297, 1099, -1297, 10504, 344,1570 -1 297, -1297, 638, 10563, -1297, 771, 771, 771, -1297, -1297,1571 -1 297, 252, -1297, -1297, -1297, 380, 384, -1297, -1297, -1297,1572 -1 297, 400, -1297, -1297, -1297, -1297, 457, 466, -1297, 486,1573 771, 9150, 2777, 75, 495, 519, 568, 584, 594, 602,1574 3892, -1297, 608, -1297, 9710, -1297, -1297, -1297, -1297, 617,1575 -1297, 206, 4815, -1297, 643, 243, -1297, -1297, -1297, -1297,1576 639, 325, 326, 385, 252, 663, -1297, 505, 1914, 735,1577 -1297, 84, -1297, 252, 252, 239, -1297, -1297, 105, -1297,1578 252, 252, 2563, 705, 742, 771, 11342, -1297, -1297, 746,1579 -1297, 9574, -1297, -1297, 693, -1297, -1297, 239, -1297, 1099,1580 208, -1297, 3694, -1297, 771, 771, 771, 239, -1297, 866,1581 -1297, 3561, -1297, -1297, 691, 771, -1297, 771, -1297, 769,1582 -1 297, 10268, 768, 397, 795, 771, -1297, 866, 782, 789,1583 -1 297, 7705, 852, -1297, -1297, -1297, 3826, -1297, -1297, 11035,1584 -1 297, 735, 121, 10563, 6255, 638, 2563, -1297, 136, -1297,1585 -1 297, 10504, 1099, 814, 12170, -1297, -1297, 422, -1297, 11905,1586 11 622, 11679, 11622, 11736, -1297, 824, -1297, -1297, -1297, -1297,1587 117 93, 11793, 852, 8832, -1297, 11622, 9256, -1297, -1297, -1297,1588 -1 297, -1297, -1297, 872, -1297, 996, 2005, 11622, -1297, 482,1589 140, 497, 633, 675, 843, 844, 870, 901, 28, -1297,1590 -1 297, 884, 516, -1297, 314, -1297, -1297, 2777, -1297, -1297,1591 551, 911, -1297, 588, 911, -1297, 8938, 933, -1297, -1297,1592 1 002, 1428, 8472, 11342, 693, -1297, 693, 771, 771, -1297,1593 -1 297, -1297, -1297, -1297, -1297, 771, 10622, 1099, -1297, -1297,1594 10 681, 1019, -1297, 3892, -1297, -1297, -1297, -1297, -1297, -1297,1595 -1 297, -1297, 4608, 11622, -1297, -1297, -1297, -1297, -1297, -1297,1596 -1 297, -1297, -1297, -1297, -1297, -1297, -1297, 638, -1297, 839,1597 916, 938, 940, 867, 949, 963, 970, 1914, -1297, -1297,1598 979, 208, -1297, -1297, -1297, 980, -1297, -1297, -1297, 3826,1599 -1 297, -1297, -1297, -1297, -1297, 2563, -1297, 9150, 9150, -1297,1600 638, 12198, 9150, 8124, -1297, -1297, -1297, -1297, 3826, 121,1601 -1 297, -1297, 693, 239, -1297, -1297, 3826, -1297, 4002, -1297,1602 -1 297, 771, 771, 9150, 8726, 10740, -1297, 377, 4504, -1297,1603 388, 402, 397, -1297, 10268, 981, 975, 397, 771, -1297,1604 -1 297, -1297, -1297, 11159, -1297, 339, 8392, -1297, 239, 994,1605 -1297, 638, 11980, 6754, -1297, -1297, -1297, -1297, 926, 2563,1606 -1297, 8537, 735, 6493, -1297, -1297, -1297, 944, 540, 884,1607 397, 12170, 276, 10504, -1297, 12170, -1297, -1297, -1297, -1297,1608 571, -1297, 1009, -1297, -1297, 18, 8832, -1297, -1297, 8832,1609 -1297, 9044, 8832, -1297, -1297, -1297, -1297, -1297, 604, 1010,1610 581, 1012, -1297, 7016, -1297, -1297, -1297, 147, -1297, -1297,1611 6903, -1297, 152, -1297, -1297, -1297, -1297, -1297, -1297, -1297,1612 -1 297, -1297, -1297, 6255, 6255, -1297, 11622, 11622, 11622, 11622,1613 11 622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622,1614 11 622, 11622, 11622, 11622, 5083, 6255, -1297, 516, 886, -1297,1615 -1297, 252, 252, -1297, -1297, 9150, -1297, -1297, -1297, 980,1616 852, -1297, 980, 7016, -1297, 9362, 1015, -1297, 10799, -1297,1617 -1297, 617, -1297, 9846, 1017, -1297, 804, -1297, 1782, 146,1618 884, -1297, 252, 252, 884, 236, -1297, 252, 252, 980,1619 -1 297, -1297, 252, 252, -1297, 911, 10858, 1099, 12111, 198,1620 427, 10858, -1297, 11094, -1297, 884, -1297, 10622, -1297, 14,1621 1020, 8189, 8189, 1099, 5252, 1014, -1297, 210, 1022, -1297,1622 1025, 4815, 367, -1297, 1106, 1099, 8189, 852, 638, 852,1623 7 35, 737, 911, -1297, -1297, 753, 911, -1297, -1297, -1297,1624 1060, -1297, 11565, 239, 11159, -1297, 629, 1035, 670, 1036,1625 -1297, 699, -1297, 1037, 239, -1297, -1297, 3826, 239, 701,1626 889, 1032, 1034, 405, 425, 7368, 1486, 11622, 2366, -1297,1627 -1297, 1039, 125, 1039, -1297, -1297, -1297, 252, 252, -1297,1628 -1 297, 397, -1297, 252, -1297, -1297, 9914, 397, 1038, 11622,1629 -1297, 981, 12111, -1297, -1297, 1047, -1297, -1297, -1297, 852,1630 -1297, 12046, 11622, -1297, 8189, 610, 8472, -1297, -1297, 617,1631 1 048, 1050, 944, 2999, -1297, -1297, 12170, -1297, -1297, 1032,1632 -1297, -1297, 1053, -1297, 1032, 1056, 11905, 6255, 1045, 1085,1633 1059, 1061, -1297, 1062, 1068, -1297, 1075, 1077, 7128, -1297,1634 6255, -1297, 581, 1714, -1297, 5360, 6255, 1076, 1078, -1297,1635 -1297, -1297, 711, -1297, 6255, -1297, -1297, -1297, -1297, -1297,1636 -1297, -1297, 482, 482, 140, 140, 497, 497, 497, 497,1637 633, 633, 675, 843, 844, 870, 901, 11622, 667, -1297,1638 11159, 1081, 1082, 1083, 886, -1297, -1297, -1297, -1297, -1297,1639 11159, 11565, 714, 1084, 7480, 9468, 3892, -1297, -1297, 1086,1640 1088, -1297, 10445, -1297, -1297, 804, 11159, 945, 1089, 1090,1641 10 93, 1094, 1095, 1096, 1100, 4041, 1782, -1297, -1297, -1297,1642 -1 297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297,1643 -1 297, -1297, -1297, -1297, 980, -1297, -1297, -1297, 884, -1297,1644 -1 297, -1297, -1297, -1297, -1297, -1297, -1297, 10327, -1297, -1297,1645 1103, 1105, -1297, 208, 1104, 1078, 5252, -1297, -1297, -1297,1646 4608, 1114, -1297, -1297, -1297, -1297, 397, 6608, 1162, -1297,1647 -1 297, -1297, -1297, 1087, 208, -1297, -1297, 980, -1297, -1297,1648 980, 203, 11622, 1109, -1297, -1297, -1297, -1297, -1297, -1297,1649 -1297, 3892, 721, -1297, 239, -1297, -1297, 889, 2623, 1120,1650 1124, -1297, -1297, -1297, 1123, 848, 1128, 1130, 1132, -1297,1651 2366, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 377, -1297,1652 975, -1297, -1297, 1133, 1135, 1127, -1297, -1297, 1139, 1140,1653 -1 297, 610, 1909, -1297, 496, -1297, 2999, 884, -1297, 1137,1654 12170, 10917, 9150, 1144, -1297, -1297, 1141, 1145, -1297, 1147,1655 301, 1148, -1297, 1146, 1146, 7016, 6255, -1297, -1297, 1146,1656 1149, -1297, 1714, 4608, -1297, -1297, -1297, -1297, 1153, 5205,1657 6255, 1158, 852, 5252, -1297, 6903, -1297, 852, -1297, 6255,1658 -1 297, 788, 911, -1297, -1297, -1297, -1297, 5490, -1297, 8938,1659 -1297, -1297, 7592, 1159, -1297, -1297, -1297, -1297, 1167, -1297,1660 87 7, 911, -1297, 882, 907, 911, -1297, 771, 1168, 4314,1661 -1297, -1297, -1297, 11159, 11159, -1297, 8602, 8602, 8189, 1171,1662 1169, 1170, 1177, -1297, -1297, 1176, 557, 37, 1078, -1297,1663 852, -1297, 4815, -1297, 6255, 444, -1297, 6884, 1180, 1181,1664 11508, 1189, 1191, 15, 96, 38, 6255, 1193, 239, 4178,1665 -1 297, 1187, 1173, -1297, -1297, -1297, 1192, -1297, -1297, -1297,1666 -1 297, -1297, -1297, -1297, -1297, -1297, 397, 1198, 6255, -1297,1667 11159, 11159, 252, 911, 1200, 1201, 1086, -1297, 2623, 331,1668 397, 7016, 10976, 914, 911, -1297, -1297, -1297, -1297, -1297,1669 -1 297, -1297, -1297, -1297, 1205, 1909, -1297, -1297, 1188, -1297,1670 1032, -1297, -1297, 638, 1203, -1297, -1297, -1297, 722, 1202,1671 -1297, 11622, 1194, 1085, 1085, 1207, -1297, 6185, 1025, 6255,1672 1212, 1153, 307, 288, 1211, -1297, 1207, -1297, 1216, 1211,1673 -1 297, -1297, 1209, -1297, -1297, 980, 1219, -1297, 10622, -1297,1674 7241, 1222, 1223, 1224, -1297, 10386, 8189, 8189, -1297, 1221,1675 -1 297, -1297, 980, -1297, -1297, -1297, -1297, 980, 6255, -1297,1676 6255, 11622, 1228, -1297, -1297, -1297, -1297, -1297, -1297, -1297,1677 1231, -1297, -1297, -1297, -1297, -1297, 11622, 11622, 1230, 1234,1678 1211, -1297, -1297, 397, -1297, -1297, -1297, 8059, 10917, 6255,1679 6255, 1294, 6255, -1297, -1297, 1217, -1297, 1218, 6255, 1220,1680 1226, 6255, 831, -1297, 1232, 7016, 252, -1297, -1297, 6608,1681 1233, 452, -1297, -1297, -1297, -1297, -1297, 980, -1297, 9778,1682 9150, 10268, 1237, -1297, 1243, -1297, -1297, 980, 11314, -1297,1683 8537, 1246, -1297, -1297, 10917, 467, 542, -1297, 1251, 1260,1684 -1297, 359, -1297, 6255, 1263, 1261, -1297, -1297, 1265, 245,1685 257, 852, 1267, 1269, -1297, 1270, -1297, 11159, -1297, -1297,1686 -1 297, -1297, -1297, -1297, 1272, -1297, -1297, -1297, 11159, 11159,1687 11159, -1297, -1297, 1276, -1297, 1277, 1280, 1281, 619, -1297,1688 8256, 8364, -1297, -1297, 625, -1297, 1283, 1284, -1297, 8667,1689 72 7, 731, 1288, 740, 6735, -1297, -1297, 543, -1297, -1297,1690 756, 1289, 239, 1329, 1338, -1297, -1297, 1290, 11508, -1297,1691 -1297, -1297, 1291, 1293, 780, 9973, 10268, 6075, 11159, -1297,1692 -1 297, -1297, 1292, -1297, -1297, -1297, -1297, -1297, -1297, 10917,1693 -1297, 1275, 1327, 1153, 537, -1297, -1297, -1297, -1297, -1297,1694 -1297, -1297, -1297, 1295, -1297, -1297, -1297, 1301, 1305, -1297,1695 -1297, -1297, 1306, 1308, -1297, -1297, -1297, -1297, -1297, -1297,1696 -1297, 1307, -1297, 1309, -1297, -1297, 11508, 90, 6255, 11508,1697 -1 297, 1313, 6255, -1297, 187, 1328, -1297, -1297, 1315, 5778,1698 -1297, -1297, -1297, 332, -1297, 10032, -1297, -1297, 1099, 638,1699 1311, -1297, -1297, 800, 1317, 6255, 852, 852, 1320, -1297,1700 -1297, 1322, 1323, 1324, -1297, -1297, 8602, 1321, -1297, 1379,1701 11622, 1325, -1297, -1297, 11428, -1297, 810, -1297, 1312, 11508,1702 13 18, -1297, -1297, 1333, -1297, 1341, 10268, 1335, -1297, 1343,1703 10917, -1297, -1297, -1297, 1319, 1356, 1339, -1297, 1211, 1211,1704 -1 297, -1297, -1297, -1297, -1297, 11508, 270, -1297, 951, -1297,1705 -1 297, 7923, -1297, -1297, 1326, 6255, -1297, 6255, 7923, 239,1706 10 740, 1345, -1297, 10091, 10268, -1297, 1342, -1297, -1297, 6255,1707 1347, 1348, -1297, 11622, 11622, -1297, -1297, 952, 237, -1297,1708 -1297, 1331, -1297, 952, -1297, -1297, 1642, 852, 239, 10740,1709 -1 297, 10150, 1355, -1297, -1297, -1297, -1297, -1297, 11428, 1353,1710 952, 7992, 6255, 11348, 1354, 952, 1360, 1642, 2460, -1297,1711 -1 297, -1297, -1297, -1297, -1297, 9150, -1297, 11193, -1297, 11428,1712 -1297, -1297, 1340, 4905, -1297, -1297, 11348, 239, 2460, 1361,1713 819, -1297, 11193, -1297, -1297, -1297, 4905, -1297, -1297, 239,1714 -1 297, -1297, -1297, -1297, -12971558 6112, 10121, -1306, 45, -1306, -1306, -1306, -1306, -1306, -1306, 1559 -1306, 27, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1560 -1306, -1306, -1306, -1306, -1306, 94, 94, 94, 808, 829, 1561 69, 7553, 431, -1306, -1306, -1306, -1306, -1306, 134, -1306, 1562 -1306, -1306, 1527, -1306, 4935, -1306, -1306, -1306, -1306, -1306, 1563 -1306, 26, 185, -1306, 1590, -1306, -1306, -1306, -1306, 194, 1564 544, 310, 103, 4656, -1306, -1306, 9491, 1148, -1306, -1306, 1565 -1306, 779, 321, 3969, 180, 1184, 779, 1266, -1306, -1306, 1566 614, 276, -1306, 779, 1398, 228, -1306, 350, 396, -1306, 1567 -1306, -1306, -1306, 244, 185, 94, -1306, 94, -1306, -1306, 1568 -1306, -1306, 10357, 1590, -1306, -1306, 1590, -1306, 10416, 306, 1569 -1306, -1306, 946, 10475, -1306, 431, 431, 431, -1306, -1306, 1570 -1306, 94, -1306, -1306, -1306, 360, 406, 415, -1306, -1306, 1571 -1306, 427, -1306, -1306, -1306, -1306, -1306, 436, 460, -1306, 1572 463, 431, 8930, 3037, 712, 484, 502, 510, 513, 524, 1573 541, 6995, -1306, 566, -1306, 9560, -1306, -1306, -1306, -1306, 1574 571, -1306, 234, 4195, -1306, 344, 251, -1306, -1306, -1306, 1575 -1306, 601, 345, 349, 389, 94, 611, -1306, 544, 2525, 1576 633, -1306, 129, -1306, 94, 94, 185, -1306, -1306, 222, 1577 -1306, 94, 94, 2900, 637, 644, 431, 11276, -1306, -1306, 1578 661, -1306, 4935, -1306, -1306, 779, -1306, -1306, 185, -1306, 1579 1590, 26, -1306, 7796, -1306, 431, 431, 431, 185, -1306, 1580 808, -1306, 6454, -1306, -1306, 657, 431, -1306, 431, -1306, 1581 -1306, 10180, 647, 829, 671, 431, -1306, 808, 669, 673, 1582 -1306, 7553, 752, -1306, -1306, -1306, 9361, -1306, -1306, 5911, 1583 -1306, 633, 191, 10475, 5789, 946, 2900, -1306, 291, -1306, 1584 -1306, 10416, 1590, 704, 2725, -1306, -1306, 255, -1306, 11839, 1585 11556, 11613, 11556, 11670, -1306, 734, -1306, -1306, -1306, -1306, 1586 11727, 11727, 752, 8612, -1306, 11556, 9036, -1306, -1306, -1306, 1587 -1306, -1306, -1306, 770, -1306, 468, 1857, 11556, -1306, 446, 1588 717, 853, 280, 793, 751, 737, 733, 795, 166, -1306, 1589 -1306, 778, 551, -1306, 298, -1306, -1306, 3037, -1306, -1306, 1590 401, 802, -1306, 490, 802, -1306, 8718, 811, -1306, -1306, 1591 1169, 608, 8252, 11276, 779, -1306, 779, 431, 431, -1306, 1592 -1306, -1306, -1306, -1306, -1306, 431, 10534, 1590, -1306, -1306, 1593 10593, 1775, -1306, 6995, -1306, -1306, -1306, -1306, -1306, -1306, 1594 -1306, -1306, 4717, 11556, -1306, -1306, -1306, -1306, -1306, -1306, 1595 -1306, -1306, -1306, -1306, -1306, -1306, -1306, 946, -1306, 807, 1596 826, 840, 846, 849, 855, 868, 875, 2525, -1306, -1306, 1597 820, 26, -1306, -1306, -1306, 881, -1306, -1306, -1306, 9361, 1598 -1306, -1306, -1306, -1306, -1306, 2900, -1306, 8930, 8930, -1306, 1599 946, 12073, 8930, 7904, -1306, -1306, -1306, -1306, 9361, 191, 1600 -1306, -1306, 779, 185, -1306, -1306, 9361, -1306, 6576, -1306, 1601 -1306, 431, 431, 8506, 10652, -1306, 1231, 3253, -1306, 400, 1602 418, 829, -1306, 10180, 884, 864, 829, 431, -1306, -1306, 1603 -1306, -1306, 11012, -1306, 521, 8172, -1306, 185, 891, -1306, 1604 946, 11914, 5969, -1306, -1306, -1306, -1306, 916, 2900, -1306, 1605 8317, 633, 7444, -1306, -1306, -1306, 1642, 538, 778, 829, 1606 2725, 700, 10416, -1306, 2725, -1306, -1306, -1306, -1306, 572, 1607 -1306, 901, -1306, -1306, 122, 8612, -1306, -1306, 8612, -1306, 1608 8824, 8612, -1306, -1306, -1306, -1306, -1306, 581, 912, 557, 1609 918, -1306, 6659, -1306, -1306, -1306, 100, -1306, -1306, 6125, 1610 -1306, 113, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1611 -1306, -1306, 5789, 5789, -1306, 11556, 11556, 11556, 11556, 11556, 1612 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 1613 11556, 11556, 11556, 4485, 5789, -1306, 551, 858, -1306, -1306, 1614 94, 94, -1306, -1306, 8930, -1306, -1306, -1306, 881, 752, 1615 -1306, 881, 6659, -1306, 9142, 924, -1306, 10711, -1306, -1306, 1616 571, -1306, 9696, 928, -1306, 1037, -1306, 2282, 292, 778, 1617 -1306, 94, 94, 778, 300, -1306, 94, 94, 881, -1306, 1618 -1306, 94, 94, -1306, 802, 10770, 1590, 12045, 172, 352, 1619 10770, -1306, 10947, -1306, 778, -1306, 10534, -1306, 171, 931, 1620 7969, 7969, 1590, 4778, 929, -1306, 372, 935, -1306, 956, 1621 4195, 607, -1306, 1042, 1590, 7969, 752, 946, 752, 633, 1622 763, 802, -1306, -1306, 797, 802, -1306, -1306, -1306, 997, 1623 -1306, 11499, 185, 11012, -1306, 589, 976, 605, 984, -1306, 1624 626, -1306, 986, 185, -1306, -1306, 9361, 185, 1612, 980, 1625 983, 435, 443, 7107, 1354, 11556, 2791, -1306, -1306, 987, 1626 87, 987, -1306, -1306, -1306, 94, 94, -1306, -1306, 829, 1627 -1306, 94, -1306, -1306, 9764, 829, 996, 11556, -1306, 884, 1628 12045, -1306, -1306, 1003, -1306, -1306, -1306, 752, -1306, 11980, 1629 11556, -1306, 7969, 585, 8252, -1306, -1306, 571, 1001, 1002, 1630 1642, 3314, -1306, -1306, 2725, -1306, -1306, 980, -1306, -1306, 1631 1010, -1306, 980, 1013, 11839, 5789, 992, 1044, 1018, 1019, 1632 -1306, 1015, 1025, -1306, 1026, 1027, 6771, -1306, 5789, -1306, 1633 557, 926, -1306, 5040, 5789, 1029, 1022, -1306, -1306, -1306, 1634 629, -1306, 5789, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1635 446, 446, 717, 717, 853, 853, 853, 853, 280, 280, 1636 793, 751, 737, 733, 795, 11556, 886, -1306, 11012, 1032, 1637 1034, 1035, 858, -1306, -1306, -1306, -1306, -1306, 11012, 11499, 1638 653, 1038, 7219, 9248, 6995, -1306, -1306, 1030, 1043, -1306, 1639 10357, -1306, -1306, 1037, 11012, 923, 1045, 1048, 1049, 1056, 1640 1057, 1058, 1060, 3551, 2282, -1306, -1306, -1306, -1306, -1306, 1641 -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1642 -1306, -1306, 881, -1306, -1306, -1306, 778, -1306, -1306, -1306, 1643 -1306, -1306, -1306, -1306, -1306, 10239, -1306, -1306, 1061, 1062, 1644 -1306, 26, 1041, 1022, 4778, -1306, -1306, -1306, 4717, 1039, 1645 -1306, -1306, -1306, -1306, 829, 6270, 1111, -1306, -1306, -1306, 1646 -1306, 1047, 26, -1306, -1306, 881, -1306, -1306, 881, 347, 1647 11556, 1063, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 6995, 1648 899, -1306, 185, -1306, 1612, 2196, 1070, 1074, -1306, -1306, 1649 -1306, 1077, 953, 1076, 1086, 1087, -1306, 2791, -1306, -1306, 1650 -1306, -1306, -1306, -1306, -1306, 1231, -1306, 864, -1306, -1306, 1651 1083, 1089, 1084, -1306, -1306, 1095, 1107, -1306, 585, 1172, 1652 -1306, 375, -1306, 3314, 778, -1306, 1091, 2725, 10829, 8930, 1653 1114, -1306, -1306, 1109, 1116, -1306, 1118, 295, 1112, -1306, 1654 1117, 1117, 6659, 5789, -1306, -1306, 1117, 1120, -1306, 926, 1655 4717, -1306, -1306, -1306, -1306, 1119, 5240, 5789, 1121, 752, 1656 4778, -1306, 6125, -1306, 752, -1306, 5789, -1306, 828, 802, 1657 -1306, -1306, -1306, -1306, 9389, -1306, 8718, -1306, -1306, 7331, 1658 1127, -1306, -1306, -1306, -1306, 1131, -1306, 852, 802, -1306, 1659 870, 879, 802, -1306, 431, 1135, 5490, -1306, -1306, -1306, 1660 11012, 11012, -1306, 8382, 8382, 7969, 1133, 1132, 1134, 1139, 1661 -1306, -1306, 1144, 596, 62, 1022, -1306, 752, -1306, 4195, 1662 -1306, 5789, 458, -1306, 6547, 1149, 1151, 11442, 1152, 1153, 1663 52, 75, 37, 5789, 1158, 185, 4069, -1306, 1113, 1138, 1664 -1306, -1306, -1306, 1156, -1306, -1306, -1306, -1306, -1306, -1306, 1665 -1306, -1306, -1306, 829, 1162, 5789, -1306, 11012, 11012, 94, 1666 802, 1164, 1163, 1030, -1306, 2196, 819, 829, 6659, 10888, 1667 887, 802, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1668 -1306, 1179, 1172, -1306, -1306, 1165, -1306, 980, -1306, -1306, 1669 946, 1167, -1306, -1306, -1306, 662, 1183, -1306, 11556, 1161, 1670 1044, 1044, 1182, -1306, 9823, 956, 5789, 1189, 1119, 540, 1671 74, 1186, -1306, 1182, -1306, 1191, 1186, -1306, -1306, 1195, 1672 -1306, -1306, 881, 1197, -1306, 10534, -1306, 6883, 1198, 1200, 1673 1205, -1306, 10298, 7969, 7969, -1306, 1208, -1306, -1306, 881, 1674 -1306, -1306, -1306, -1306, 881, 5789, -1306, 5789, 11556, 1209, 1675 -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1213, -1306, -1306, 1676 -1306, -1306, -1306, 11556, 11556, 1212, 1214, 1186, -1306, -1306, 1677 829, -1306, -1306, -1306, 3779, 10829, 5789, 5789, 1272, 5789, 1678 -1306, -1306, 1203, -1306, 1204, 5789, 1206, 1207, 5789, 1006, 1679 -1306, 1215, 6659, 94, -1306, -1306, 6270, 1222, 477, -1306, 1680 -1306, -1306, -1306, -1306, 881, -1306, 9628, 8930, 10180, 1216, 1681 -1306, 1229, -1306, -1306, 881, 11248, -1306, 8317, 1217, -1306, 1682 -1306, 10829, 486, 495, -1306, 1230, 1245, -1306, 308, -1306, 1683 5789, 1244, 1242, -1306, -1306, 1248, 136, 146, 752, 1251, 1684 1254, -1306, 1256, -1306, 11012, -1306, -1306, -1306, -1306, -1306, 1685 -1306, 1257, -1306, -1306, -1306, 11012, 11012, 11012, -1306, -1306, 1686 1260, -1306, 1264, 1267, 1268, 646, -1306, 8036, 8144, -1306, 1687 -1306, 715, -1306, 1270, 1273, -1306, 8447, 690, 721, 1275, 1688 725, 6425, -1306, -1306, 508, -1306, -1306, 730, 1277, 185, 1689 1316, 1326, -1306, -1306, 1278, 11442, -1306, -1306, -1306, 1279, 1690 1282, 740, 9885, 10180, 5774, 11012, -1306, -1306, -1306, 1281, 1691 -1306, -1306, -1306, -1306, -1306, -1306, 10829, -1306, 1261, 1315, 1692 1119, 357, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1693 1283, -1306, -1306, -1306, 1289, 1293, -1306, -1306, -1306, 1295, 1694 1296, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1302, -1306, 1695 1301, -1306, -1306, 11442, 130, 5789, 11442, -1306, 1304, 5789, 1696 -1306, 155, 1328, -1306, -1306, 1314, 9458, -1306, -1306, -1306, 1697 320, -1306, 9944, -1306, -1306, 1590, 946, 1311, -1306, -1306, 1698 742, 1320, 5789, 752, 752, 1325, -1306, -1306, 1330, 1331, 1699 1334, -1306, -1306, 8382, 1329, -1306, 1401, 11556, 1333, -1306, 1700 -1306, 11362, -1306, 745, -1306, 1319, 11442, 1324, -1306, -1306, 1701 1336, -1306, 1355, 10180, 1343, -1306, 1352, 10829, -1306, -1306, 1702 -1306, 1332, 1387, 1358, -1306, 1186, 1186, -1306, -1306, -1306, 1703 -1306, -1306, 11442, 118, -1306, 954, -1306, -1306, 7662, -1306, 1704 -1306, 1339, 5789, -1306, 5789, 7662, 185, 10652, 1362, -1306, 1705 10003, 10180, -1306, 1364, -1306, -1306, 5789, 1365, 1370, -1306, 1706 11556, 11556, -1306, -1306, 1024, 101, -1306, -1306, 1356, -1306, 1707 1024, -1306, -1306, 1567, 752, 185, 10652, -1306, 10062, 1375, 1708 -1306, -1306, -1306, -1306, -1306, 11362, 1372, 1024, 7731, 5789, 1709 11282, 1377, 1024, 1380, 1567, 2919, -1306, -1306, -1306, -1306, 1710 -1306, -1306, 8930, -1306, 11127, -1306, 11362, -1306, -1306, 1361, 1711 11046, -1306, -1306, 11282, 185, 2919, 1385, 747, -1306, 11127, 1712 -1306, -1306, -1306, 11046, -1306, -1306, 185, -1306, -1306, -1306, 1713 -1306, -1306 1715 1714 }; 1716 1715 … … 1718 1717 static const yytype_int16 yypgoto[] = 1719 1718 { 1720 -1 297, 4539, 3474, -1297, 22, -1297, -1, 2, 817, -1297,1721 -1 297, -1297, -495, -902, -132, 5887, -1297, 1449, 523, 552,1722 430, 558, 919, 920, 921, 922, 924, -1297, 150, -242,1723 5 319, 346, -694, -917, -1297, 87, -701, 234, -1297, 157,1724 -1 297, 254, -1077, -1297, -1297, -6, -1297, -1273, -892, 95,1725 -1 297, -1297, -1297, -1297, -60, -1267, -1297, -1297, -1297, -1297,1726 -1 297, -1297, 168, -11, 51, 368, -1297, 375, -1297, 33,1727 -1 297, -295, -1297, -1297, -1297, 432, -848, -1297, -1297, 6,1728 -9 70, 26, 2983, -1297, -1297, -1297, -117, -1297, 66, 718,1729 - 14, 1458, 4231, -1297, -1297, 55, 134, 124, -247, 1805,1730 -1 297, 1752, -1297, -1297, 135, 2146, -1297, 2351, 1577, -1297,1731 -1 297, -431, -435, 1074, 1079, 582, 830, 342, -1297, -1297,1732 1 070, 585, -481, -1297, -462, -65, -412, -1297, -1297, -973,1733 -9 68, 783, 1252, 948, 156, -1297, 83, 233, -297, -199,1734 -1 48, 548, 655, -1297, 904, -1297, 2844, -402, 807, -1297,1735 -1 297, 590, -1297, -393, -1297, 101, -1297, -1297, -1297, -1251,1736 299, -1297, -1297, -1297, 1071, -1297, 63, -1297, -1297, -839,1737 -1 11, -1296, -104, 2118, -1297, 3091, -1297, 811, -1297, -172,1738 14 40, -168, -165, -162, 4, -37, -34, -32, 611, 36,1739 67, 71, -161, -156, -154, -153, -138, -284, -490, -488,1740 -4 86, -538, -1297, -480, -1297, -1297, -524, -520, -505, -499,1741 1 640, 5025, -528, -541, -515, -512, -459, -1297, -388, -645,1742 -6 34, -633, -576, -124, -277, -1297, -1297, 710, 153, -86,1743 -1 297, 361, 821, -610, -3041719 -1306, 4178, 3354, -1306, 1595, -1306, -1, 2, 839, -1306, 1720 -1306, -1306, -497, -915, -215, 4919, -1306, 975, 537, 542, 1721 346, 554, 941, 943, 950, 945, 949, -1306, 17, -251, 1722 5020, 377, -700, -894, -1306, -198, -684, -459, -1306, 77, 1723 -1306, 290, -1062, -1306, -1306, 40, -1306, -1305, -1076, 127, 1724 -1306, -1306, -1306, -1306, -21, -1283, -1306, -1306, -1306, -1306, 1725 -1306, -1306, 216, 31, 14, 408, -1306, 414, -1306, 76, 1726 -1306, -305, -1306, -1306, -1306, 467, -851, -1306, -1306, 8, 1727 -929, 10, 2660, -1306, -1306, -1306, -110, -1306, 299, 597, 1728 -29, 1428, 4046, -1306, -1306, 55, 49, 79, -229, 1809, 1729 -1306, 1752, -1306, -1306, 66, 2021, -1306, 2437, 1677, -1306, 1730 -1306, -412, -376, 1122, 1124, 625, 871, -270, -1306, -1306, 1731 1105, 627, -558, -1306, -460, -395, 48, -1306, -1306, -855, 1732 -990, 470, 652, 990, -16, -1306, 727, -5, -244, -195, 1733 -127, 583, 692, -1306, 930, -1306, 2734, -373, 841, -1306, 1734 -1306, 619, -1306, -405, -1306, 85, -1306, -1306, -1306, -1245, 1735 327, -1306, -1306, -1306, 1097, -1306, 28, -1306, -1306, -832, 1736 -104, -1279, -133, 2533, -1306, 3317, -1306, 836, -1306, -122, 1737 1439, -163, -160, -157, 4, -41, -37, -36, 587, 42, 1738 51, 90, -121, -155, -152, -151, -149, -294, -486, -446, 1739 -427, -545, -1306, -531, -1306, -1306, -525, -485, -484, -477, 1740 1927, 4727, -549, -504, -503, -475, -461, -1306, -386, -662, 1741 -654, -649, -575, -248, -333, -1306, -1306, 226, 125, -50, 1742 -1306, 339, 169, -590, -241 1744 1743 }; 1745 1744 … … 1750 1749 static const yytype_int16 yytable[] = 1751 1750 { 1752 109, 257, 46, 690, 94, 144, 388, 110, 145, 380, 1753 146, 420, 381, 696, 365, 382, 250, 389, 139, 661, 1754 871, 383, 487, 384, 385, 763, 53, 111, 495, 1074, 1755 846, 916, 671, 46, 795, 94, 957, 791, 1075, 386, 1756 669, 672, 917, 918, 46, 822, 46, 590, 155, 685, 1757 828, 47, 792, 1177, 1178, 66, 46, 53, 793, 1179, 1758 829, 975, 46, 1131, 185, 46, 60, 207, 46, 614, 1759 217, 823, 210, 618, 824, 391, 169, 1196, 147, 729, 1760 107, 406, 47, 734, 388, 1139, 66, 380, 1400, 202, 1761 381, 933, 211, 382, 138, 389, 818, 60, 819, 383, 1762 820, 384, 385, 107, 653, 46, 821, 916, 46, 148, 1763 657, 659, 136, 149, 46, 465, 553, 386, 917, 918, 1764 738, 30, 754, 664, 1459, 169, 1186, 739, 169, 460, 1765 832, 668, 1420, 1421, 67, 74, 839, 555, 1190, 1204, 1766 144, 862, 30, 145, 46, 146, 155, 464, 466, 1208, 1767 554, 1463, 1187, 103, 103, 880, 46, 193, 355, 860, 1768 860, 107, 30, 232, 234, 67, 74, 2, 197, 4, 1769 5, 6, 7, 30, 860, 727, 242, 318, 390, 46, 1770 46, 409, 155, 30, 103, 242, 733, 392, 1459, 1476, 1771 118, 220, 651, 724, 46, 221, 1422, 204, 225, 1195, 1772 227, 194, 580, 46, 746, 155, 400, 235, 392, 166, 1773 119, 46, 107, 147, 46, 648, 423, 107, 144, 103, 1774 1206, 145, 465, 146, 137, 34, 649, 35, 392, 1420, 1775 1421, 169, 818, 940, 819, 1463, 820, 470, 421, 392, 1776 1463, 454, 895, 46, 148, 94, 1534, 830, 149, 587, 1777 759, 243, 860, 539, 540, 765, 1463, 46, 46, 251, 1778 155, 690, 252, 1463, 46, 681, 640, 53, 799, 1547, 1779 994, 46, 1179, 30, 822, 107, 683, 135, 516, -218, 1780 -218, 505, 460, 107, 169, 135, 833, -3, 1021, 30, 1781 836, 169, 47, 1431, 655, 1141, 66, 648, 1022, 660, 1782 823, 460, 849, 824, 452, 1082, 850, 60, 649, 460, 1783 107, 853, 461, 867, 359, 856, 446, 1177, 1178, 46, 1784 427, 355, 107, 1179, 233, 818, 141, 819, 220, 820, 1785 360, 162, 46, 46, 1196, 1008, 1343, 837, 449, 587, 1786 855, 107, 398, 135, -218, 164, 422, 718, 1347, 46, 1787 174, 368, 169, 46, 107, 1210, 135, 229, 832, 1483, 1788 1349, 106, 106, 192, 417, 419, 1259, 369, -275, 169, 1789 508, 1074, 904, 169, 425, 67, 74, 730, 990, 46, 1790 1075, 74, 731, 237, 795, 1187, 724, 791, 995, 46, 1791 230, 355, 106, 1260, 103, 231, 107, 107, 135, 135, 1792 822, 240, 792, 1122, 1009, 159, 717, 46, 793, -109, 1793 1123, -109, 46, -502, 829, -109, 564, 818, 472, 819, 1794 494, 820, 565, 846, 209, 489, 823, 106, 242, 824, 1795 -109, -109, 1230, 371, 373, 919, 1533, 1231, 1436, 46, 1796 509, 708, 36, 1454, 176, 628, 39, 709, 1179, 372, 1797 374, 580, 1542, 40, 41, 109, 1382, 932, 220, 1546, 1798 225, 1341, 107, 46, 135, 461, 204, 254, 1342, 159, 1799 873, 46, 627, 355, 262, 46, 874, 94, 676, 46, 1800 392, -10, 580, 872, 461, -430, 677, 580, 678, 487, 1801 1137, 1196, 461, 375, 656, 658, 691, 813, 1196, 53, 1802 743, 266, 159, 615, 1448, 1449, 388, 619, 380, 376, 1803 693, 381, 692, 691, 382, 357, 760, 389, 1255, 743, 1804 383, 766, 384, 385, 47, 695, 694, 882, 66, 911, 1805 446, 851, 1096, 693, 74, 852, 884, 715, 386, 60, 1806 685, 1196, 1020, 482, 1025, 483, 220, 1180, 1110, 912, 1807 460, 718, 1193, 74, 1164, 1166, 861, 861, 268, 1118, 1808 1193, 74, 159, 728, 994, 732, 860, 269, 1194, 454, 1809 36, 861, 176, 209, 39, 1334, 1321, 1022, 541, 542, 1810 666, 40, 41, 508, 1096, 46, 508, 270, 46, 508, 1811 46, 1335, 443, 536, 937, 1508, 204, 319, 537, 538, 1812 851, 1513, 106, 1380, 1106, 810, 177, 67, 74, 46, 1813 717, 1174, 1175, 1489, 357, 710, 178, 557, 1529, 392, 1814 1489, 320, 159, 1536, 718, 46, 103, 558, 805, 169, 1815 2, 197, 4, 5, 6, 7, 881, 46, 883, -109, 1816 46, 788, 725, 1107, 443, 169, 1405, 159, 726, 861, 1817 1336, 750, 566, 509, 392, 156, 509, 169, 219, 509, 1818 -109, -102, 1020, 1530, 1033, -102, 1337, 1383, 1224, 1225, 1819 321, 186, 46, 735, 208, 1275, 1276, 218, 46, 736, 1820 46, 1430, 752, 717, 392, 1079, 322, 581, 34, 570, 1821 35, 392, 753, 607, 860, 860, 323, 2, 197, 4, 1822 5, 6, 7, 36, 324, 176, 749, 39, 936, 354, 1823 868, 941, 750, 587, 40, 41, 543, 544, 358, 112, 1824 1149, 942, 1041, 1368, 46, 46, 1007, 1369, -454, 740, 1825 -454, 896, 741, 461, -454, 747, -276, 750, 46, 255, 1826 370, 715, 422, 8, 9, 10, 11, 12, 648, 256, 1827 366, 545, 546, 156, 157, 34, 681, 35, 169, 649, 1828 547, 548, 153, 848, 1491, 356, 1492, 683, 159, 159, 1829 30, 813, 898, 159, 927, 750, 989, 461, 750, 863, 1830 930, 8, 9, 10, 11, 12, 36, 378, 1086, 156, 1831 39, 879, 390, 33, 159, 159, 443, 40, 41, 443, 1832 1325, 900, 74, 906, 1020, 443, 407, 565, 30, 565, 1833 894, 1531, 156, 984, 715, 430, 996, 46, 157, 985, 1834 248, 903, 709, 424, 1247, 905, 153, 494, 46, 1376, 1835 565, 33, 719, 1377, 106, 750, 204, 1324, 885, 750, 1836 392, 36, 1379, 408, 159, 39, 74, 412, 750, 494, 1837 204, 315, 40, 41, 888, 1355, 392, 443, 1384, 312, 1838 443, 805, 159, 443, 750, 160, 1359, 1360, 1361, 36, 1839 433, 1270, 916, 39, 444, 580, 1061, 42, 1149, 1249, 1840 40, 41, 1393, 917, 918, 1311, 1312, 142, 565, 1143, 1841 690, 392, 489, 813, 1191, 1395, 8, 9, 10, 11, 1842 12, 447, 1444, 53, 46, 815, 450, 587, 1445, 46, 1843 46, 415, 1464, 451, 410, 588, 1396, 107, 750, 414, 1844 473, 1550, 46, 30, 810, 501, 159, 565, 356, 160, 1845 46, 125, 66, 126, 127, 128, 581, 988, 204, 808, 1846 242, 318, 392, 60, 1292, 1293, 33, 516, 46, 437, 1847 318, 392, 1149, 628, 36, 549, 805, 1111, 39, 1046, 1848 690, 1176, 316, 861, 550, 40, 41, 581, 400, 644, 1849 392, 415, 581, 776, 777, 778, 779, 1112, 1160, 414, 1850 392, 1133, 477, 1163, 743, 587, 1133, 557, 552, 392, 1851 907, 551, 392, 512, 1420, 1421, 157, 558, 356, 46, 1852 908, 510, 1242, 1168, 153, 1473, 813, 555, 1165, 36, 1853 587, 67, 74, 39, 568, 1235, 1036, 392, 641, 810, 1854 40, 41, 416, 923, -277, 923, 718, 470, 318, 392, 1855 103, 8, 9, 10, 11, 12, 719, 583, 690, 1133, 1856 642, 813, 643, 1501, 577, 722, 830, 318, 587, 1061, 1857 1149, 645, 1205, 1207, 1209, 723, 628, 443, 30, 1484, 1858 1485, 1087, 772, 773, 612, 646, 690, 36, 616, 167, 1859 168, 39, 647, 53, 517, 518, 519, 943, 40, 41, 1860 650, 33, 416, 247, 36, 717, 167, 168, 39, 697, 1861 46, 861, 861, 774, 775, 40, 41, 520, 699, 521, 1862 -222, 522, 1198, 354, 103, 780, 781, 160, 1520, 719, 1863 737, 1063, 751, 461, 755, 46, 718, 315, 315, 807, 1864 358, 814, 315, -12, 857, 312, 312, 1348, 1350, 1351, 1865 312, 869, 1540, 870, 876, 279, 422, 897, 899, 1140, 1866 726, 902, 565, 315, 315, 931, 805, 582, 677, -404, 1867 1096, 312, 670, 437, 952, -506, 437, 945, 954, 1046, 1868 959, 963, 437, 964, 36, 607, 167, 168, 39, 958, 1869 967, 966, 1232, 1233, 112, 40, 41, 968, 1456, 969, 1870 979, 67, 74, 991, 992, 993, 980, 1004, 997, 1005, 1871 1076, 1010, 1011, 315, 1036, 1012, 1013, 1014, 1015, 477, 1872 103, 312, 1016, 477, 210, -392, 512, -391, 1034, 512, 1873 1078, 315, 512, 1083, 510, 1212, 715, 510, 1061, 312, 1874 510, 1043, 1089, 202, 211, 1371, 1090, 1092, 316, 316, 1875 1093, 46, 1094, 316, 1095, 1101, 706, 1100, 106, 1109, 1876 1099, 1506, 1456, 1102, 1103, 53, 1119, 1120, 1121, 750, 1877 1111, 810, 973, 1127, 316, 316, 1124, -278, 1133, 1133, 1878 1133, 1129, 1132, 1155, 8, 9, 10, 11, 12, 1158, 1879 1112, 494, 1169, 1181, 66, 315, 1298, 1182, 1183, 1184, 1880 1185, 1199, 1200, 312, 1201, 60, 1300, 1301, 1442, 1303, 1881 1202, 30, 1203, 577, 1211, 1307, 1216, 1217, 1310, -3, 1882 1222, 811, 1228, 813, 316, 1229, 715, 1239, 1248, 482, 1883 1243, 1266, 106, 159, 33, 1253, 1257, 1061, 1250, 1261, 1884 1264, 1268, 316, 1277, 845, 421, 1271, 1272, 1273, 577, 1885 53, 204, 1284, 1289, 1294, 854, 494, 494, 1295, 1302, 1886 1320, 1305, 1306, 1326, 1308, 1111, 388, 1327, 1332, 380, 1887 1309, 103, 381, 67, 74, 382, 1316, 389, 1338, 1198, 1888 581, 383, 1340, 384, 385, 1112, 648, 1344, 1345, 1346, 1889 461, 1352, 103, 1353, 1354, 1061, 1356, 649, 1061, 386, 1890 1364, 1365, 1366, 1367, 1312, 1519, 316, 1374, 1375, 1378, 1891 1385, 46, 1388, 1391, 1389, 1392, 582, 103, 1397, 1401, 1892 46, 46, 1402, 1409, 1405, 1133, 1133, 1410, 106, -393, 1893 1414, 810, 1415, 1418, 437, 1429, 1435, 1433, 1443, 1455, 1894 169, 1446, 1450, 1061, 1451, 1452, 1453, 847, 1061, 1369, 1895 1471, 1478, 582, 422, 1460, 1469, 1465, 706, 67, 74, 1896 93, 1474, 1467, 1477, 477, 1475, 1111, 1498, 1479, 1502, 1897 1490, 1504, 1505, 1063, 1061, 1512, 1525, 103, 63, 113, 1898 1528, 1535, 1537, 1549, 1543, 1426, 1112, 891, 782, 1386, 1899 783, 93, 784, 1319, 785, 1256, 1437, 786, 1507, 1432, 1900 144, 1387, 143, 145, 93, 146, 1551, 53, 1523, 63, 1901 140, 1251, 103, 36, 53, 585, 1521, 39, 46, 1252, 1902 181, 1493, 154, 93, 40, 41, 93, 1061, 1221, 673, 1903 1097, 719, 1061, 924, 674, 1098, 1198, 701, 802, 46, 1904 46, 1128, 155, 1198, 212, 1042, 1061, 461, 1061, 586, 1905 1006, 587, 1061, 947, 461, 1061, 875, 53, 1108, 588, 1906 46, 1061, 355, 1333, 720, 1061, 0, 955, 0, 0, 1907 0, 36, 1390, 176, 1441, 39, 0, 0, 209, 106, 1908 249, 0, 40, 41, 0, 0, 1198, 0, 0, 0, 1909 494, 0, 0, 706, 0, 811, 0, 461, 0, 0, 1910 106, 0, 93, 706, 0, 0, 0, 676, 0, 392, 1911 0, 159, 443, 103, 93, 67, 74, 678, 0, 706, 1912 317, 719, 67, 74, 0, 106, 0, 0, 332, 0, 1913 1419, 0, 0, 1427, 103, 0, 0, 379, 181, 0, 1914 0, 103, 0, 0, 0, 0, 1494, 0, 0, 0, 1915 0, 0, 0, 494, 494, 0, 387, 0, 0, 0, 1916 206, 93, 0, 0, 0, 67, 74, 0, 0, 0, 1917 405, 0, 93, 140, 411, 1522, 0, 0, 1462, 154, 1918 209, 0, 315, 1466, 103, 106, 0, 0, 477, 1113, 1919 312, 0, 0, 0, 0, 0, 0, 0, 0, 428, 1920 0, 93, 0, 431, 0, 432, 443, 443, 0, 1482, 1921 206, 0, 0, 448, 1548, 468, 0, 811, 0, 63, 1922 106, 0, 0, 0, 462, 707, 1553, 36, 0, 176, 1923 0, 39, 0, 0, 469, 1147, 0, 845, 40, 41, 1924 0, 498, 411, 0, 8, 9, 10, 11, 12, 0, 1925 0, 206, 0, 0, 514, 515, 0, 0, 0, 0, 1926 0, 0, 0, 1517, 0, 392, 535, 0, 0, 0, 1927 0, 30, 72, 1518, 0, 0, 443, 93, 0, 0, 1928 0, 1541, 0, 0, 0, 0, 0, 1541, 0, 0, 1929 0, 589, 0, 316, 33, 515, 1541, 0, 0, 0, 1930 1541, 0, 0, 72, 578, 0, 0, 0, 0, 206, 1931 0, 608, 8, 9, 10, 11, 12, 443, 0, 0, 1932 0, 106, 0, 0, 613, 0, 706, 706, 613, 0, 1933 811, 332, 515, 0, 0, 752, 0, 392, 213, 30, 1934 847, 394, 106, 0, 0, 753, 206, 181, 402, 106, 1935 206, 443, 0, 0, 443, 443, 0, 0, 0, 0, 1936 0, 0, 33, 0, 0, 811, 0, 36, 0, 585, 1937 0, 39, 0, 0, 0, 0, 0, 462, 40, 41, 1938 443, 0, 443, 706, 706, 0, 1269, 0, 205, 0, 1939 0, 332, 106, 1147, 0, 0, 462, 682, 223, 0, 1940 0, 0, 0, 586, 462, 587, 159, 0, 0, 0, 1941 0, 0, 0, 588, 0, 0, 0, 0, 394, 0, 1942 0, 0, 335, 0, 0, 0, 707, 0, 0, 206, 1943 0, 702, 0, 93, 411, 0, 0, 589, 205, 8, 1944 9, 10, 11, 12, 8, 9, 10, 11, 12, 716, 1945 0, 63, 0, 0, 0, 0, 0, 0, 0, 411, 1946 315, 0, 0, 411, 0, 0, 30, 1147, 312, 437, 1947 0, 30, 563, 0, 0, 0, 0, 0, 0, 205, 1948 567, 0, 1113, 571, 0, 0, 0, 0, 0, 33, 1949 0, 332, 0, 429, 33, 0, 0, 0, 0, 36, 1950 0, 176, 0, 39, 0, 769, 770, 771, 206, 0, 1951 40, 41, 0, 72, 0, 0, 0, 0, 72, 0, 1751 109, 145, 46, 140, 94, 146, 147, 660, 257, 110, 1752 53, 111, 913, 613, 47, 380, 420, 617, 381, 494, 1753 914, 382, 761, 383, 1071, 915, 384, 385, 670, 386, 1754 844, 694, 793, 46, 1176, 94, 365, 589, 827, 869, 1755 486, 53, 826, 1072, 46, 47, 46, 391, 156, 67, 1756 683, 954, 250, 972, 819, 66, 46, 388, 389, 139, 1757 669, 688, 46, 860, 186, 46, 74, 208, 46, 1136, 1758 218, 789, 790, 203, 211, 715, 212, 878, 579, 791, 1759 67, 820, 821, 1128, 148, 507, 66, 251, 913, 406, 1760 252, 1397, 380, 149, 652, 381, 914, 74, 382, 816, 1761 383, 915, 107, 384, 385, 46, 386, 727, 46, 930, 1762 822, 732, 205, 663, 46, 1193, 1460, 107, 463, 465, 1763 118, 667, 1187, 752, 30, 103, 103, 830, 119, 167, 1764 194, 30, 150, 837, 388, 389, 459, 145, 1456, 817, 1765 107, 146, 147, -218, -218, 46, 221, 156, 1205, 163, 1766 222, 1183, 1256, 226, 937, 228, 103, 46, 818, 355, 1767 858, 858, 235, 656, 658, 107, 30, 409, 1174, 1175, 1768 138, 243, 1417, 1418, 195, 858, 1201, 1184, 107, 1257, 1769 46, 46, 722, 156, 2, 198, 4, 5, 6, 7, 1770 392, 103, 1473, 1192, 419, 46, 650, 1417, 1418, 1203, 1771 1460, 107, 1456, 757, 46, 1460, 156, 1480, -218, 655, 1772 657, 107, 46, 161, 145, 46, 763, 423, 146, 147, 1773 148, 1460, 716, 421, 736, 859, 859, 1531, 1460, 149, 1774 242, 737, 392, 1184, 816, 142, 1419, 725, 731, 1344, 1775 859, 453, 34, 46, 35, 94, 471, 1176, 390, 1346, 1776 1544, 53, 858, 488, 552, 47, 744, 46, 46, 30, 1777 156, 1428, 422, 398, 46, 647, 648, 991, 150, 451, 1778 158, 46, 464, 639, 817, 1019, 847, 161, 715, 1018, 1779 848, 504, 1005, 853, 221, 417, 1138, 493, 553, 459, 1780 67, 165, 464, 818, 554, 425, 66, 507, 1176, 60, 1781 507, 654, 175, 507, -3, 427, 659, 74, 459, 820, 1782 821, 316, 74, 193, 679, 681, 459, 859, 688, 46, 1783 797, 355, 448, 400, -275, 392, 579, 816, 30, 30, 1784 60, 614, 46, 46, 158, 618, 237, 30, 822, 106, 1785 106, 107, 359, 135, 136, 242, 647, 648, 831, 46, 1786 240, 715, 834, 46, 830, 786, 1340, 579, 360, 368, 1787 508, 902, 579, 542, 543, 1071, 103, 817, 315, 1207, 1788 106, 416, 1193, 851, 722, 369, 481, 854, 482, 46, 1789 793, 205, 233, 160, 1072, 107, 818, 135, 136, 46, 1790 827, 355, 469, 828, 392, 586, -502, 1119, 544, 545, 1791 563, 835, 210, 586, 1120, 106, 564, 46, 1505, 920, 1792 1338, 920, 46, 221, 1510, 226, 1060, 1339, 816, 789, 1793 790, 844, 515, 1176, 916, 716, 1433, 791, 415, 254, 1794 416, 1526, 1174, 1175, 820, 821, 1533, 107, 46, 135, 1795 136, 8, 9, 10, 11, 12, 929, 160, 1530, 1079, 1796 1379, 366, 262, 371, 109, 161, 849, 373, 817, -109, 1797 850, -10, 46, 822, 1539, 74, 1402, 1177, 30, 372, 1798 46, 1543, 355, 374, 46, 865, 94, 818, 46, 849, 1799 -109, 160, 53, 1103, 74, 1134, 47, 415, 1445, 1446, 1800 738, 33, 74, 739, 357, 581, 745, 375, 716, 741, 1801 665, 221, 565, 870, 392, 486, 882, -429, 689, 511, 1802 205, 380, 158, 376, 381, 758, -430, 382, 741, 383, 1803 764, 67, 384, 385, 690, 386, 691, 66, 266, 1193, 1804 1017, 1093, 811, 880, 708, 1252, 1193, 268, 74, 683, 1805 60, 160, 692, 689, 1115, 460, 516, 517, 518, 1161, 1806 1163, 691, 210, 1019, 388, 389, 459, 535, 1451, 908, 1807 991, 269, 536, 537, 270, 858, 1190, 909, 453, 519, 1808 442, 520, 508, 521, 1107, 508, 316, 316, 508, 1193, 1809 106, 316, 1191, 1093, 46, 1190, 319, 46, 1198, 46, 1810 846, 569, 357, 392, 1331, 1272, 1273, 103, 112, 934, 1811 160, 1318, 316, 1333, 320, 1022, 861, 1486, 46, 36, 1812 1332, 177, 321, 39, 1486, 322, 748, 1377, 877, 1334, 1813 40, 41, 442, 706, 46, 160, 323, 803, 1173, 707, 1814 859, 157, 1380, 315, 315, 879, 46, 881, 315, 46, 1815 723, 154, -109, 324, -109, 178, 724, 187, -109, 1017, 1816 209, 316, 556, 219, 392, 179, 422, 1527, 750, 315, 1817 392, 1146, 557, -109, -109, 580, 1030, 354, 751, 316, 1818 46, 606, 358, 36, 733, 584, 46, 39, 46, 107, 1819 734, 135, 136, 747, 40, 41, 938, 1076, 586, 748, 1820 390, 894, 493, 858, 858, 1427, 939, 748, 460, 248, 1821 -102, 893, 370, 1104, -102, 154, 933, 896, 315, 585, 1822 871, 586, 626, 748, 493, 230, 872, 460, 488, 587, 1823 231, 511, 46, 46, 511, 460, 315, 511, 898, 892, 1824 157, 981, 74, 316, 564, 378, 46, 982, 407, 312, 1825 901, 1038, 356, 581, 903, 408, 160, 160, 579, 205, 1826 1365, 160, 715, 443, 1366, 993, 137, 1060, 859, 859, 1827 1004, 707, 412, 205, 1244, 107, 157, 135, 136, 713, 1828 564, 60, 160, 442, 845, 74, 442, 446, 1488, 581, 1829 1489, 430, 442, 2, 198, 4, 5, 6, 7, 157, 1830 315, 1017, 1373, 449, 410, 647, 648, 450, 748, 414, 1831 424, 728, 985, 679, 681, 811, 729, 232, 234, 717, 1832 472, 106, 1267, 242, 318, 46, 1322, 107, -454, 1146, 1833 -454, 160, 1321, 1374, -454, 1528, 46, 1376, 436, 748, 1834 538, 539, 1381, 748, 442, 500, 987, 442, 748, 160, 1835 442, 34, 1390, 35, 1441, 515, 992, 1461, 564, 1547, 1836 1442, 205, 913, 748, 550, 564, 1387, 549, 414, 803, 1837 914, 476, 1006, 548, 883, 915, 392, 1246, 8, 9, 1838 10, 11, 12, 125, 1058, 126, 127, 128, 546, 547, 1839 509, 1033, 551, 154, 107, 53, 135, 136, 774, 775, 1840 776, 777, 1368, 1146, 107, 30, 135, 136, 886, 716, 1841 392, 554, 46, 160, 356, 567, 46, 46, 242, 318, 1842 392, 1392, 1188, 580, 1416, 582, 806, 1424, 33, 46, 1843 1227, 649, 704, 576, 67, 1228, 811, 46, 640, 1140, 1844 66, 392, 1289, 1290, 540, 541, 8, 9, 10, 11, 1845 12, 74, 641, 611, 580, 46, 688, 615, 642, 580, 1846 400, 643, 392, 1157, 803, 392, 1108, 644, 1109, 556, 1847 445, 392, 1459, 30, 36, 460, 1083, 1463, 39, 557, 1848 645, 1160, 713, 586, 356, 40, 41, 646, 1130, 1084, 1849 1162, 741, 586, 1130, 247, 1165, 33, 697, 1232, 716, 1850 392, 1146, 695, 1479, 748, 986, 46, -222, 1297, 1298, 1851 103, 1300, 735, 1137, 312, 312, 1239, 1304, 460, 312, 1852 1307, 36, 717, 177, 749, 39, 688, 469, 318, 392, 1853 753, 1470, 40, 41, 828, 318, 586, 750, 805, 392, 1854 668, 436, 812, 442, 436, 855, 1130, 751, -12, 811, 1855 436, 1345, 1347, 1348, 867, 713, 1058, 255, 422, 1202, 1856 1204, 1206, 112, 940, 53, 318, 392, 256, 1033, 1498, 1857 1308, 1309, 1481, 1482, 868, 1538, 1417, 1418, 1171, 1172, 1858 874, 1538, 279, 103, 811, 770, 771, 476, 895, 312, 1859 1538, 476, 772, 773, 1538, 717, 897, 46, 724, 627, 1860 900, 564, 509, 67, 688, 509, 675, 312, 509, 1195, 1861 778, 779, 36, 928, 705, -403, 39, 1517, -506, 942, 1862 74, 949, 46, 40, 41, 951, 955, 1537, 316, 956, 1863 960, 961, 688, 704, 963, 1221, 1222, 964, 965, 966, 1864 977, 1001, 1209, 976, 988, 493, 989, 990, 813, 1073, 1865 586, 606, 994, 803, 1002, 1031, 1040, 1007, 587, 1093, 1866 1008, 1009, 2, 198, 4, 5, 6, 7, 1010, 1011, 1867 1012, 312, 1013, -391, -390, 845, 1453, 1080, 693, 103, 1868 1075, 576, 1086, 445, 60, 315, 1087, 1423, 1090, 809, 1869 220, 1089, 8, 9, 10, 11, 12, -276, 1091, 1092, 1870 1096, 1097, 1098, 1106, 8, 9, 10, 11, 12, 1099, 1871 493, 493, 843, 211, 203, 212, 726, 576, 730, 30, 1872 34, 1100, 35, 852, 106, 1058, 1116, 748, 1117, 1118, 1873 1121, 30, 1213, 970, 1124, 1129, 53, 1126, 46, 1503, 1874 1453, 1152, 33, 1155, 36, 1178, 168, 169, 39, 1166, 1875 1179, 1181, 1180, 205, 33, 40, 41, 497, 1182, 1108, 1876 1196, 1109, 1197, 1199, 1200, 1130, 1130, 1130, 704, 1208, 1877 513, 514, 1214, -3, 1219, 67, 1225, 1226, 704, -277, 1878 354, 66, 534, 938, 1240, 586, 8, 9, 10, 11, 1879 12, 1236, 74, 939, 704, 1247, 481, 106, 160, 1245, 1880 1250, 436, 1439, 1254, 1258, 1261, 36, 1263, 177, 1265, 1881 39, 514, 1268, 30, 1269, 705, 421, 40, 41, 1270, 1882 1274, 53, 1352, 1281, 1058, 1286, 1291, 1299, 1292, 1329, 1883 103, 476, 1323, 1356, 1357, 1358, 33, 1302, 1303, 1317, 1884 1305, 1306, 674, 1324, 392, 580, 811, 1335, 514, 1313, 1885 675, 103, 676, 460, 1108, 422, 1109, 1337, 1341, 1342, 1886 67, 380, 1343, 866, 381, 1349, 1195, 382, 1350, 383, 1887 1351, 1353, 384, 385, 1361, 386, 103, 74, 1362, 1363, 1888 1364, 1309, 1058, 1393, 1371, 1058, 1375, 1372, 1382, 1438, 1889 1385, 1388, 1386, 106, 1389, 1398, 1383, 1394, 46, 1516, 1890 1399, 1406, 1402, 388, 389, 1407, 316, 46, 46, 1411, 1891 1412, -278, 1130, 1130, -392, 1415, 1426, 1003, 8, 9, 1892 10, 11, 12, 647, 648, 1432, 924, 1430, 1440, 36, 1893 1058, 177, 927, 39, 1443, 1058, 103, 1447, 63, 113, 1894 40, 41, 1448, 1449, 493, 30, 1450, 1366, 1466, 93, 1895 705, 1452, 1457, 1462, 1468, 1108, 713, 1109, 1464, 1471, 1896 705, 1058, 809, 315, 1472, 674, 1474, 392, 33, 63, 1897 141, 103, 1475, 1487, 1495, 676, 705, 1476, 53, 1501, 1898 93, 1499, 155, 145, 1502, 53, 1522, 146, 147, 1525, 1899 1509, 144, 1534, 93, 1532, 1540, 717, 1546, 889, 780, 1900 704, 704, 781, 1518, 213, 46, 783, 493, 493, 182, 1901 782, 784, 93, 1253, 1058, 93, 1316, 67, 1429, 1058, 1902 767, 768, 769, 1195, 67, 60, 46, 46, 53, 156, 1903 1195, 1504, 1548, 1058, 74, 1058, 1384, 1520, 1248, 1058, 1904 249, 74, 1058, 210, 106, 1249, 713, 46, 1058, 355, 1905 1218, 1490, 1058, 1491, 476, 1110, 312, 704, 704, 514, 1906 1094, 699, 921, 1125, 1095, 106, 671, 67, 672, 800, 1907 1039, 873, 103, 1195, 1105, 944, 160, 442, 1330, 718, 1908 952, 317, 1519, 809, 74, 0, 717, 0, 0, 332, 1909 106, 0, 93, 103, 0, 0, 0, 0, 0, 0, 1910 103, 1144, 36, 843, 93, 627, 39, 0, 0, 0, 1911 460, 1043, 0, 40, 41, 0, 0, 387, 0, 0, 1912 0, 1545, 0, 0, 0, 0, 0, 379, 182, 0, 1913 0, 405, 0, 1550, 141, 411, 0, 0, 42, 0, 1914 155, 0, 36, 103, 177, 210, 39, 0, 143, 0, 1915 106, 93, 0, 40, 41, 0, 0, 0, 0, 170, 1916 428, 0, 93, 0, 431, 36, 432, 168, 169, 39, 1917 0, 442, 442, 447, 0, 0, 40, 41, 1514, 63, 1918 392, 0, 705, 705, 461, 106, 0, 36, 1515, 0, 1919 93, 39, 0, 0, 468, 514, 809, 0, 40, 41, 1920 0, 316, 411, 1494, 467, 0, 0, 627, 170, 0, 1921 0, 170, 0, 0, 0, 1327, 0, 36, 0, 0, 1922 0, 39, 0, 904, 0, 392, 0, 0, 40, 41, 1923 0, 809, 1494, 905, 0, 0, 0, 0, 971, 705, 1924 705, 442, 0, 0, 704, 0, 0, 0, 0, 0, 1925 207, 0, 1266, 720, 0, 704, 704, 704, 315, 1144, 1926 0, 0, 72, 721, 577, 0, 93, 460, 0, 0, 1927 0, 607, 0, 0, 460, 0, 0, 0, 0, 0, 1928 588, 0, 442, 0, 612, 0, 106, 0, 612, 0, 1929 0, 332, 0, 72, 0, 0, 0, 0, 0, 0, 1930 207, 0, 0, 0, 0, 704, 0, 106, 0, 0, 1931 1043, 0, 0, 0, 106, 170, 442, 460, 0, 442, 1932 442, 0, 0, 1229, 1230, 0, 0, 0, 214, 0, 1933 0, 0, 0, 1144, 312, 436, 182, 461, 0, 0, 1934 0, 0, 207, 0, 0, 442, 0, 442, 1110, 0, 1935 36, 332, 168, 169, 39, 0, 461, 106, 0, 0, 1936 0, 40, 41, 0, 461, 0, 0, 170, 0, 0, 1937 0, 160, 0, 0, 170, 514, 0, 0, 0, 0, 1938 0, 0, 206, 0, 0, 680, 358, 0, 0, 0, 1939 700, 0, 224, 411, 0, 0, 0, 1328, 0, 0, 1940 207, 0, 0, 0, 0, 0, 0, 0, 714, 0, 1941 63, 0, 0, 335, 0, 0, 0, 0, 411, 0, 1942 0, 93, 411, 0, 0, 588, 705, 1295, 0, 436, 1943 436, 1144, 206, 0, 0, 170, 207, 705, 705, 705, 1944 207, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 1945 332, 0, 170, 0, 0, 0, 170, 522, 523, 524, 1946 525, 526, 527, 528, 529, 530, 531, 0, 0, 0, 1947 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 1948 0, 514, 0, 0, 429, 0, 0, 705, 0, 0, 1949 532, 0, 0, 809, 0, 792, 0, 0, 0, 436, 1950 0, 0, 0, 72, 0, 0, 0, 0, 72, 0, 1951 802, 0, 577, 0, 0, 0, 0, 0, 0, 207, 1952 249, 0, 0, 0, 0, 824, 0, 0, 0, 497, 1953 0, 75, 206, 0, 815, 0, 588, 0, 0, 0, 1954 436, 0, 0, 577, 1110, 0, 0, 0, 577, 0, 1955 0, 0, 0, 0, 612, 0, 0, 0, 332, 332, 1956 0, 0, 75, 0, 0, 0, 0, 0, 206, 0, 1957 0, 0, 206, 332, 1493, 0, 0, 436, 436, 0, 1958 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 1959 0, 700, 0, 0, 0, 214, 0, 215, 207, 0, 1960 0, 0, 0, 1493, 461, 436, 0, 0, 0, 0, 1961 0, 714, 0, 0, 917, 335, 0, 588, 0, 394, 1962 0, 0, 0, 912, 0, 680, 402, 1434, 0, 312, 1952 1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1953 941, 0, 587, 0, 0, 177, 794, 205, 0, 394, 1954 942, 1330, 0, 402, 515, 178, 817, 0, 589, 0, 1955 0, 804, 0, 578, 0, 0, 0, 0, 0, 206, 1956 0, 249, 707, 437, 437, 1147, 826, 0, 0, 0, 1957 706, 316, 707, 0, 205, 0, 0, 1113, 205, 0, 1958 0, 706, 706, 706, 578, 0, 0, 0, 707, 578, 1959 0, 0, 0, 0, 488, 613, 0, 0, 0, 332, 1960 332, 0, 0, 0, 0, 213, 0, 0, 0, 0, 1961 0, 0, 0, 0, 332, 523, 524, 525, 526, 527, 1962 528, 529, 530, 531, 532, 335, 0, 811, 394, 0, 1963 589, 706, 702, 437, 0, 0, 915, 0, 682, 0, 1964 0, 0, 0, 0, 0, 462, 0, 0, 533, 0, 1965 0, 0, 0, 716, 0, 0, 920, 205, 0, 0, 1966 0, 0, 0, 120, 123, 124, 75, 0, 0, 0, 1967 0, 72, 0, 0, 437, 206, 0, 0, 1113, 0, 1968 0, 515, 817, 589, 0, 335, 0, 0, 0, 462, 1969 72, 0, 332, 0, 0, 0, 0, 75, 72, 0, 1970 1497, 946, 0, 0, 411, 206, 0, 0, 1496, 0, 1971 206, 437, 437, 0, 0, 0, 0, 563, 563, 0, 1972 0, 0, 0, 0, 974, 335, 716, 0, 0, 1497, 1973 0, 972, 214, 244, 0, 245, 205, 1496, 0, 437, 1974 0, 0, 0, 335, 0, 72, 0, 0, 0, 0, 1975 0, 0, 0, 205, 0, 315, 0, 0, 0, 0, 1976 0, 0, 0, 312, 0, 0, 0, 0, 702, 0, 1977 0, 0, 0, 0, 0, 817, 0, 0, 702, 0, 1978 0, 0, 0, 1002, 804, 335, 589, 205, 0, 0, 1979 249, 0, 0, 0, 702, 707, 707, 0, 0, 206, 1980 0, 886, 0, 1019, 0, 889, 0, 0, 0, 0, 1981 0, 0, 377, 206, 0, 0, 337, 0, 0, 0, 1982 0, 396, 397, 0, 0, 0, 401, 0, 403, 404, 1983 563, 0, 0, 0, 0, 249, 0, 0, 0, 0, 1984 0, 0, 394, 0, 0, 335, 0, 0, 0, 0, 1985 0, 0, 707, 707, 0, 63, 0, 0, 0, 0, 1986 0, 515, 0, 0, 0, 0, 316, 817, 589, 0, 1987 0, 77, 0, 0, 0, 0, 0, 0, 0, 804, 1988 682, 0, 0, 0, 0, 0, 1088, 0, 682, 0, 1989 0, 0, 0, 335, 335, 0, 8, 9, 10, 11, 1990 12, 206, 77, 205, 0, 0, 589, 75, 335, 0, 1991 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 1992 1105, 0, 0, 30, 0, 0, 335, 0, 411, 113, 1993 0, 0, 0, 205, 0, 0, 0, 215, 205, 72, 1994 0, 0, 0, 332, 0, 0, 33, 335, 0, 0, 1995 0, 36, 0, 176, 563, 39, 0, 249, 0, 0, 1996 0, 0, 40, 41, 0, 0, 0, 0, 515, 0, 1997 0, 0, 0, 0, 0, 613, 0, 578, 0, 0, 1998 0, 0, 0, 72, 0, 0, 335, 676, 0, 392, 1999 8, 9, 10, 11, 12, 140, 0, 678, 0, 214, 2000 0, 702, 702, 0, 332, 332, 332, 0, 0, 0, 2001 1331, 0, 0, 0, 0, 0, 498, 30, 0, 337, 2002 335, 338, 0, 0, 0, 1197, 0, 205, 0, 0, 2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 707, 2004 33, 205, 0, 0, 0, 36, 0, 176, 589, 39, 2005 707, 707, 707, 0, 0, 0, 40, 41, 702, 702, 2006 0, 488, 335, 0, 0, 75, 0, 563, 563, 804, 2007 249, 0, 335, 0, 0, 394, 0, 213, 335, 337, 2008 0, 1517, 0, 392, 75, 0, 0, 0, 335, 0, 2009 0, 1518, 75, 8, 9, 10, 11, 12, 0, 206, 2010 707, 0, 0, 0, 0, 249, 0, 0, 0, 0, 2011 0, 0, 77, 0, 0, 0, 0, 77, 0, 337, 2012 30, 0, 0, 0, 0, 0, 613, 0, 716, 205, 2013 0, 0, 0, 613, 332, 332, 0, 337, 0, 75, 2014 515, 0, 0, 33, 0, 0, 0, 0, 36, 72, 2015 176, 1144, 39, 8, 9, 10, 11, 12, 0, 40, 2016 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2017 1161, 0, 0, 335, 0, 0, 1299, 0, 0, 337, 2018 30, 0, 0, 0, 255, 0, 0, 0, 0, 0, 2019 0, 0, 0, 332, 256, 0, 0, 63, 0, 796, 2020 797, 0, 0, 33, 215, 0, 0, 613, 36, 0, 2021 0, 0, 39, 0, 0, 0, 702, 0, 716, 40, 2022 41, 0, 113, 0, 338, 0, 0, 831, 0, 0, 2023 834, 835, 0, 838, 0, 840, 841, 335, 0, 337, 2024 842, 843, 0, 0, 907, 702, 392, 0, 563, 0, 2025 0, 0, 0, 1236, 908, 0, 702, 702, 702, 0, 2026 0, 0, 0, 0, 0, 0, 0, 0, 332, 332, 2027 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028 0, 0, 1197, 0, 338, 0, 0, 337, 337, 77, 2029 0, 0, 0, 0, 206, 335, 335, 77, 335, 335, 2030 335, 0, 337, 0, 0, 613, 702, 8, 9, 10, 2031 11, 12, 0, 0, 0, 0, 0, 113, 0, 72, 2032 337, 0, 0, 0, 338, 925, 926, 205, 0, 0, 2033 0, 928, 0, 75, 30, 0, 0, 0, 0, 0, 2034 0, 337, 338, 0, 77, 0, 0, 0, 0, 0, 2035 0, 0, 335, 335, 0, 0, 0, 33, 0, 0, 2036 0, 0, 36, 335, 84, 0, 39, 249, 0, 0, 2037 0, 0, 0, 40, 41, 0, 0, 75, 0, 0, 2038 337, 0, 0, 0, 338, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 332, 84, 206, 0, 42, 0, 2040 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, 2041 0, 0, 0, 0, 337, 0, 0, 0, 113, 0, 2042 0, 0, 335, 0, 0, 0, 0, 0, 335, 335, 2043 216, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 2044 0, 0, 0, 0, 338, 0, 1197, 0, 0, 0, 2045 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 2046 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 2047 213, 214, 337, 0, 0, 0, 0, 468, 0, 0, 2048 0, 0, 337, 0, 0, 0, 0, 335, 0, 1197, 2049 0, 72, 338, 338, 0, 0, 1538, 0, 0, 0, 2050 0, 0, 0, 54, 54, 0, 0, 338, 0, 0, 2051 335, 0, 335, 0, 345, 0, 0, 0, 0, 0, 2052 0, 0, 205, 0, 0, 338, 0, 0, 0, 8, 2053 9, 10, 11, 12, 54, 0, 0, 0, 77, 335, 2054 0, 0, 0, 75, 0, 0, 338, 0, 0, 0, 2055 335, 335, 335, 0, 0, 0, 30, 0, 0, 0, 2056 0, 0, 335, 335, 0, 0, 54, 337, 0, 54, 2057 0, 0, 0, 0, 0, 0, 72, 0, 0, 33, 2058 0, 0, 77, 0, 36, 338, 0, 0, 39, 0, 2059 0, 0, 0, 0, 0, 40, 41, 0, 0, 0, 2060 335, 0, 0, 0, 0, 84, 0, 0, 0, 0, 2061 84, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2062 722, 0, 0, 0, 205, 0, 0, 0, 0, 0, 2063 723, 337, 0, 0, 0, 0, 122, 122, 122, 0, 1964 0, 0, 0, 0, 0, 0, 0, 461, 207, 0, 1965 332, 206, 0, 514, 0, 0, 0, 0, 0, 943, 1966 0, 72, 411, 0, 0, 0, 0, 0, 0, 815, 1967 588, 0, 0, 0, 0, 335, 0, 0, 0, 0, 1968 72, 0, 337, 0, 714, 0, 0, 808, 72, 969, 1969 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 2064 1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1971 0, 170, 0, 0, 335, 0, 8, 9, 10, 11, 1972 12, 0, 0, 0, 0, 0, 700, 170, 0, 0, 1973 206, 0, 335, 0, 72, 0, 700, 0, 0, 170, 1974 0, 999, 802, 30, 0, 0, 0, 206, 249, 562, 1975 0, 0, 700, 0, 0, 0, 0, 566, 0, 0, 1976 570, 1016, 815, 0, 207, 0, 33, 0, 0, 0, 1977 0, 36, 75, 588, 335, 39, 0, 75, 0, 0, 1978 206, 0, 40, 41, 0, 0, 0, 0, 0, 0, 1979 0, 0, 0, 249, 207, 0, 0, 0, 0, 207, 1980 0, 0, 8, 9, 10, 11, 12, 904, 0, 392, 1981 0, 0, 0, 63, 0, 0, 394, 905, 0, 0, 1982 402, 0, 0, 0, 0, 0, 0, 0, 0, 30, 1983 0, 0, 0, 0, 335, 0, 0, 802, 0, 170, 1984 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 1985 0, 0, 33, 815, 588, 0, 0, 36, 0, 584, 1986 0, 39, 0, 0, 215, 0, 680, 0, 40, 41, 1987 0, 0, 0, 0, 680, 0, 0, 1102, 0, 0, 1988 0, 0, 335, 335, 337, 411, 113, 207, 0, 0, 1989 0, 0, 588, 585, 0, 586, 206, 335, 0, 0, 1990 332, 207, 0, 587, 394, 0, 0, 0, 0, 0, 1991 0, 0, 0, 0, 249, 335, 0, 0, 0, 0, 1992 0, 0, 0, 0, 0, 0, 206, 0, 72, 0, 1993 75, 206, 612, 0, 577, 335, 0, 0, 0, 0, 1994 0, 0, 0, 0, 337, 0, 0, 77, 0, 75, 1995 0, 0, 141, 0, 0, 0, 0, 75, 700, 700, 1996 0, 332, 332, 332, 0, 0, 0, 0, 0, 0, 1997 0, 72, 0, 0, 335, 0, 0, 0, 77, 0, 1998 0, 0, 1194, 337, 0, 0, 0, 0, 0, 207, 1999 0, 0, 0, 562, 562, 0, 0, 0, 0, 0, 2000 0, 337, 0, 75, 0, 808, 0, 0, 335, 0, 2001 0, 0, 0, 216, 0, 700, 700, 0, 0, 206, 2002 0, 0, 0, 0, 0, 0, 802, 249, 0, 0, 2003 0, 0, 0, 206, 588, 0, 0, 0, 0, 0, 2004 0, 0, 0, 337, 0, 8, 9, 10, 11, 12, 2005 335, 0, 0, 487, 0, 0, 0, 0, 0, 0, 2006 335, 0, 249, 0, 0, 214, 335, 0, 120, 123, 2007 124, 0, 30, 0, 0, 0, 335, 884, 0, 0, 2008 0, 887, 0, 612, 0, 714, 0, 0, 0, 0, 2009 612, 332, 332, 0, 0, 33, 0, 0, 338, 808, 2010 36, 0, 177, 337, 39, 562, 0, 0, 0, 0, 2011 0, 40, 41, 0, 0, 0, 0, 394, 0, 0, 2012 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 1296, 0, 0, 178, 72, 244, 0, 2014 245, 0, 0, 0, 0, 0, 179, 0, 0, 0, 2015 332, 337, 337, 0, 63, 0, 0, 0, 0, 0, 2016 0, 335, 0, 0, 612, 0, 337, 0, 0, 0, 2017 54, 54, 0, 700, 0, 714, 0, 0, 0, 113, 2018 0, 0, 0, 0, 337, 0, 207, 0, 77, 0, 2019 0, 0, 0, 77, 0, 0, 0, 75, 0, 0, 2020 0, 54, 700, 0, 337, 0, 0, 0, 0, 0, 2021 0, 0, 0, 700, 700, 700, 0, 0, 377, 0, 2022 0, 0, 0, 0, 335, 332, 332, 396, 397, 562, 2023 0, 0, 401, 54, 403, 404, 54, 0, 0, 1194, 2024 75, 0, 0, 337, 84, 8, 9, 10, 11, 12, 2025 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2026 23, 24, 612, 700, 25, 26, 27, 473, 474, 475, 2027 0, 0, 30, 0, 113, 84, 0, 337, 0, 0, 2028 216, 0, 335, 335, 0, 335, 335, 335, 0, 0, 2029 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2030 338, 0, 37, 38, 0, 0, 72, 0, 0, 0, 2031 217, 8, 9, 10, 11, 12, 0, 0, 206, 337, 2032 0, 330, 0, 0, 249, 0, 0, 0, 0, 337, 2033 0, 808, 0, 0, 215, 337, 0, 0, 30, 335, 2034 335, 562, 562, 0, 0, 337, 77, 0, 0, 394, 2035 335, 332, 0, 0, 0, 0, 0, 0, 0, 0, 2036 338, 33, 0, 0, 0, 77, 36, 0, 177, 0, 2037 39, 0, 0, 77, 0, 113, 0, 40, 41, 0, 2038 0, 207, 0, 54, 0, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 0, 345, 1194, 0, 0, 338, 2040 0, 0, 674, 1194, 392, 0, 75, 0, 0, 335, 2041 0, 54, 676, 0, 0, 335, 335, 338, 0, 77, 2042 8, 9, 10, 11, 12, 1141, 0, 0, 0, 0, 2043 337, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2044 9, 10, 11, 12, 1158, 0, 1194, 30, 0, 0, 2045 0, 0, 0, 1535, 0, 0, 0, 214, 0, 338, 2046 0, 0, 0, 467, 0, 0, 30, 0, 0, 0, 2047 33, 0, 0, 0, 335, 36, 0, 177, 72, 39, 2048 0, 0, 0, 207, 0, 84, 40, 41, 0, 33, 2049 84, 808, 0, 337, 36, 0, 177, 335, 39, 335, 2050 170, 0, 0, 0, 0, 40, 41, 0, 0, 0, 2051 0, 255, 0, 206, 0, 0, 0, 0, 0, 338, 2052 0, 256, 562, 330, 0, 0, 335, 1233, 0, 0, 2053 1514, 0, 392, 0, 0, 0, 0, 335, 335, 335, 2054 1515, 0, 0, 0, 0, 0, 0, 0, 0, 335, 2055 335, 337, 337, 0, 337, 337, 337, 8, 9, 10, 2056 11, 12, 0, 72, 0, 0, 0, 338, 338, 0, 2057 0, 0, 0, 0, 0, 75, 0, 217, 0, 0, 2058 0, 0, 338, 330, 30, 0, 0, 335, 0, 0, 2059 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 2060 338, 0, 0, 794, 795, 0, 0, 33, 337, 337, 2061 0, 0, 36, 77, 0, 206, 39, 0, 0, 337, 2062 338, 0, 0, 40, 41, 0, 0, 0, 0, 0, 2063 0, 829, 0, 0, 832, 833, 0, 836, 0, 838, 2064 839, 0, 54, 84, 840, 841, 0, 0, 42, 0, 2065 0, 0, 0, 0, 0, 0, 77, 345, 143, 338, 2066 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 2067 84, 0, 0, 0, 0, 335, 0, 0, 337, 0, 2068 0, 0, 330, 0, 337, 337, 0, 0, 0, 0, 2069 0, 0, 0, 338, 0, 0, 345, 0, 0, 0, 2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071 0, 0, 0, 0, 345, 0, 84, 0, 0, 0, 2072 72, 0, 0, 0, 0, 0, 215, 72, 922, 923, 2073 0, 0, 0, 0, 925, 338, 0, 0, 0, 0, 2074 0, 0, 330, 337, 0, 338, 0, 75, 0, 0, 2075 216, 338, 0, 0, 0, 0, 345, 0, 0, 0, 2076 0, 338, 0, 0, 0, 0, 337, 0, 337, 0, 2077 72, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2078 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2079 330, 330, 25, 26, 27, 337, 0, 0, 0, 0, 2080 30, 434, 0, 0, 0, 330, 337, 337, 337, 0, 2081 0, 0, 0, 0, 0, 0, 345, 0, 337, 337, 2082 0, 0, 77, 33, 0, 0, 0, 0, 0, 0, 2083 37, 38, 75, 0, 8, 9, 10, 11, 12, 0, 2084 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 2085 0, 0, 122, 122, 122, 0, 337, 0, 0, 0, 2086 0, 30, 0, 0, 345, 345, 435, 0, 0, 0, 2087 687, 0, 0, 0, 108, 0, 0, 0, 0, 345, 2088 0, 0, 330, 0, 33, 0, 0, 0, 0, 36, 2089 0, 0, 0, 39, 0, 0, 0, 345, 0, 0, 2090 40, 41, 0, 0, 0, 0, 0, 0, 0, 338, 2091 84, 0, 0, 0, 162, 0, 166, 345, 0, 172, 2092 173, 174, 122, 176, 122, 720, 0, 0, 0, 0, 2093 0, 0, 0, 0, 0, 721, 0, 0, 225, 0, 2094 0, 0, 0, 0, 337, 0, 0, 0, 265, 238, 2095 239, 0, 0, 84, 0, 0, 345, 0, 0, 0, 2096 0, 0, 0, 0, 0, 0, 0, 338, 338, 0, 2097 338, 338, 338, 0, 330, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2099 345, 77, 0, 0, 0, 0, 75, 0, 0, 0, 2100 0, 0, 122, 0, 0, 0, 0, 0, 0, 122, 2101 0, 122, 122, 0, 0, 327, 122, 0, 122, 122, 2102 0, 0, 0, 0, 338, 338, 0, 0, 0, 0, 2103 0, 0, 345, 0, 0, 338, 0, 0, 0, 75, 2104 0, 0, 345, 0, 0, 54, 0, 217, 345, 0, 2105 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 1014, 330, 2107 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2108 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 2109 0, 0, 0, 0, 338, 0, 0, 271, 30, 272, 2110 338, 338, 0, 0, 0, 0, 0, 0, 0, 0, 2111 0, 0, 0, 0, 0, 0, 0, 0, 54, 84, 2112 273, 33, 1223, 0, 0, 0, 274, 0, 0, 0, 2113 275, 0, 330, 276, 277, 278, 279, 40, 41, 0, 2114 280, 281, 216, 345, 0, 0, 0, 0, 282, 0, 2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2116 0, 0, 283, 77, 361, 0, 0, 0, 0, 0, 2117 0, 285, 890, 287, 288, 289, 290, 0, 0, 0, 2118 0, 0, 338, 0, 338, 0, 0, 0, 0, 0, 2119 575, 0, 583, 330, 330, 330, 0, 0, 0, 0, 2120 0, 0, 0, 608, 609, 0, 345, 0, 0, 0, 2121 0, 338, 0, 0, 54, 0, 0, 619, 0, 0, 2122 0, 0, 338, 338, 338, 0, 0, 0, 0, 0, 2123 0, 0, 0, 0, 338, 338, 0, 0, 0, 0, 2124 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 2125 0, 0, 0, 0, 0, 0, 1315, 0, 330, 0, 2126 0, 0, 0, 0, 345, 345, 0, 345, 345, 345, 2127 0, 0, 338, 0, 0, 0, 0, 662, 0, 0, 2128 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 2129 0, 0, 197, 2, 198, 4, 5, 6, 7, 8, 2130 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2131 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2132 27, 345, 345, 330, 330, 0, 30, 0, 0, 0, 2133 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2135 0, 34, 0, 35, 0, 0, 199, 200, 0, 0, 2136 338, 0, 0, 0, 54, 54, 0, 0, 0, 0, 2137 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, 2138 0, 0, 330, 0, 0, 0, 54, 122, 122, 0, 2139 0, 345, 201, 0, 0, 0, 0, 345, 345, 0, 2140 261, 0, 0, 0, 0, 77, 0, 0, 0, 0, 2141 0, 54, 77, 0, 0, 122, 0, 0, 122, 122, 2142 0, 122, 0, 122, 122, 0, 0, 0, 122, 122, 2143 0, 0, 0, 0, 0, 0, 801, 0, 0, 217, 2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2145 0, 0, 0, 0, 0, 77, 345, 330, 330, 0, 2146 84, 0, 0, 0, 0, 0, 54, 0, 0, 0, 2147 0, 54, 0, 0, 0, 0, 0, 0, 0, 345, 2148 0, 345, 0, 0, 0, 0, 0, 862, 0, 8, 2149 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2150 19, 20, 21, 22, 23, 24, 54, 122, 345, 0, 2151 0, 0, 122, 122, 0, 891, 30, 0, 122, 345, 2152 345, 345, 0, 0, 0, 0, 0, 0, 0, 0, 2153 0, 345, 345, 906, 907, 0, 0, 911, 0, 33, 2154 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 931, 0, 932, 0, 345, 2157 0, 0, 0, 0, 935, 936, 0, 0, 0, 941, 2065 2158 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 2066 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 2067 0, 338, 0, 0, 0, 0, 215, 338, 0, 0, 2068 0, 0, 0, 0, 0, 0, 0, 338, 335, 337, 2069 337, 0, 337, 337, 337, 0, 0, 216, 0, 0, 2070 0, 0, 0, 0, 0, 0, 122, 0, 122, 0, 2071 0, 0, 0, 75, 0, 54, 0, 345, 0, 0, 2072 1226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073 0, 0, 265, 72, 0, 0, 0, 0, 0, 0, 2074 72, 0, 0, 0, 54, 0, 337, 337, 77, 0, 2075 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 2076 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 2077 0, 0, 338, 0, 0, 0, 0, 345, 0, 0, 2078 0, 0, 84, 72, 0, 122, 0, 0, 0, 0, 2079 84, 0, 122, 0, 122, 122, 0, 0, 0, 122, 2080 0, 122, 122, 0, 0, 0, 0, 0, 0, 0, 2081 0, 0, 0, 0, 0, 0, 337, 345, 0, 0, 2082 0, 0, 337, 337, 0, 0, 0, 0, 0, 0, 2083 0, 0, 0, 0, 0, 345, 338, 84, 0, 0, 2159 0, 946, 0, 0, 0, 0, 950, 0, 0, 0, 2160 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 2161 967, 0, 0, 0, 0, 271, 0, 272, 0, 204, 2162 978, 0, 0, 0, 0, 0, 0, 0, 54, 223, 2163 0, 227, 0, 229, 0, 54, 0, 0, 273, 0, 2164 236, 0, 0, 0, 274, 0, 0, 0, 275, 0, 2165 0, 276, 277, 278, 279, 40, 41, 345, 280, 281, 2166 0, 0, 0, 0, 0, 0, 282, 0, 1000, 204, 2167 0, 227, 229, 236, 0, 0, 0, 0, 54, 0, 2168 283, 0, 361, 0, 0, 0, 0, 1015, 0, 285, 2169 363, 287, 288, 289, 290, 0, 0, 204, 0, 0, 2170 0, 0, 84, 1210, 0, 0, 0, 0, 0, 84, 2171 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 2172 1026, 0, 1027, 1028, 1029, 0, 0, 1032, 862, 0, 2173 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 2174 0, 271, 1074, 272, 0, 0, 0, 0, 0, 0, 2175 0, 0, 84, 0, 575, 0, 0, 1081, 0, 0, 2176 0, 0, 0, 1082, 273, 0, 0, 0, 0, 204, 2177 274, 227, 229, 236, 275, 0, 241, 276, 277, 278, 2178 279, 40, 41, 0, 280, 281, 246, 0, 0, 0, 2179 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2180 0, 1101, 0, 0, 0, 204, 283, 0, 361, 204, 2181 0, 362, 0, 0, 0, 285, 363, 287, 288, 289, 2182 290, 0, 0, 0, 0, 485, 755, 0, 0, 0, 2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 1127, 2184 353, 0, 0, 0, 862, 0, 0, 1135, 0, 0, 2185 0, 1139, 0, 367, 0, 0, 1143, 0, 0, 0, 2186 1148, 1149, 1150, 0, 0, 0, 0, 0, 0, 0, 2187 1156, 0, 0, 204, 0, 399, 0, 0, 0, 0, 2188 1169, 0, 0, 0, 0, 0, 0, 0, 204, 413, 2189 0, 0, 0, 227, 229, 0, 0, 418, 0, 1185, 2190 1186, 236, 0, 0, 0, 0, 122, 426, 0, 0, 2191 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 2192 0, 0, 0, 0, 1215, 0, 0, 1217, 0, 0, 2193 452, 0, 0, 0, 0, 462, 0, 0, 0, 0, 2194 0, 0, 0, 204, 0, 0, 0, 0, 470, 0, 2195 0, 0, 1231, 0, 480, 0, 484, 0, 0, 0, 2196 0, 204, 0, 0, 0, 0, 0, 204, 0, 0, 2197 0, 1238, 512, 0, 0, 0, 0, 1242, 1243, 0, 2198 0, 0, 0, 0, 204, 0, 1251, 204, 204, 0, 2199 0, 0, 1255, 0, 0, 1259, 0, 1260, 0, 0, 2200 1262, 0, 0, 204, 0, 0, 0, 0, 0, 0, 2201 0, 862, 0, 572, 0, 1271, 0, 204, 0, 0, 2202 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 2203 0, 271, 1280, 272, 1282, 1283, 1284, 1285, 0, 0, 2204 122, 0, 620, 0, 0, 0, 621, 622, 0, 623, 2205 0, 1293, 0, 1294, 273, 633, 634, 166, 635, 636, 2206 274, 637, 0, 638, 275, 0, 0, 276, 277, 278, 2207 279, 40, 41, 0, 280, 281, 1314, 0, 0, 0, 2208 651, 0, 282, 0, 0, 1319, 1320, 0, 653, 0, 2209 0, 0, 0, 0, 0, 0, 283, 0, 361, 0, 2210 0, 0, 0, 0, 785, 285, 363, 287, 288, 289, 2211 290, 0, 666, 0, 0, 0, 0, 0, 0, 0, 2212 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 2213 0, 0, 0, 204, 0, 0, 1354, 1355, 0, 0, 2214 0, 0, 1359, 1360, 0, 0, 709, 0, 0, 0, 2215 0, 0, 712, 1370, 0, 0, 0, 452, 0, 0, 2216 0, 0, 0, 204, 0, 0, 0, 0, 204, 197, 2217 2, 198, 4, 5, 6, 7, 8, 9, 10, 11, 2218 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2219 22, 23, 24, 746, 0, 25, 26, 27, 0, 0, 2220 0, 0, 0, 30, 1401, 0, 0, 0, 762, 0, 2221 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, 2222 1408, 1409, 1410, 0, 0, 0, 33, 0, 34, 0, 2223 35, 36, 1414, 199, 200, 39, 0, 0, 0, 0, 2224 0, 1425, 40, 41, 788, 0, 0, 0, 0, 0, 2225 0, 0, 0, 798, 0, 799, 204, 1436, 0, 0, 2226 0, 804, 0, 271, 0, 272, 0, 42, 0, 201, 2227 204, 0, 0, 0, 823, 0, 0, 202, 0, 0, 2228 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 2229 485, 0, 624, 0, 135, 136, 275, 0, 0, 276, 2230 277, 278, 279, 40, 41, 0, 280, 281, 0, 1477, 2231 1478, 0, 0, 864, 282, 0, 0, 0, 0, 0, 2232 0, 0, 1483, 0, 271, 0, 272, 0, 283, 1483, 2233 625, 0, 626, 362, 0, 0, 0, 285, 363, 287, 2234 288, 289, 290, 0, 0, 0, 0, 273, 204, 899, 2235 0, 0, 0, 274, 0, 0, 1513, 275, 204, 0, 2236 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2237 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2238 204, 0, 0, 0, 1536, 0, 0, 0, 346, 283, 2239 0, 361, 0, 0, 0, 0, 754, 0, 285, 363, 2240 287, 288, 289, 290, 0, 0, 241, 0, 0, 1549, 2241 0, 0, 0, 0, 1551, 0, 947, 948, 0, 395, 2242 0, 0, 0, 0, 0, 0, 395, 0, 962, 0, 2084 2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085 0, 0, 0, 0, 1318, 0, 330, 0, 0, 0, 2086 0, 0, 0, 0, 214, 0, 0, 0, 0, 122, 2087 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 2088 0, 337, 0, 0, 0, 75, 0, 0, 0, 0, 2089 0, 0, 0, 0, 338, 338, 0, 338, 338, 338, 2090 0, 0, 0, 0, 337, 0, 337, 0, 0, 0, 2091 0, 0, 0, 0, 0, 0, 330, 0, 77, 0, 2244 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 2245 0, 984, 0, 0, 0, 8, 9, 10, 11, 12, 2246 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2247 23, 24, 0, 204, 25, 26, 27, 0, 0, 0, 2248 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2249 0, 0, 0, 0, 0, 395, 0, 0, 0, 204, 2250 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2251 36, 0, 37, 38, 39, 0, 1020, 0, 0, 0, 2252 0, 40, 41, 1021, 0, 204, 0, 0, 0, 0, 2253 0, 0, 0, 0, 0, 0, 1023, 0, 1024, 0, 2254 0, 0, 0, 0, 0, 0, 42, 0, 152, 395, 2255 0, 0, 0, 1037, 0, 204, 44, 395, 568, 1041, 2256 395, 571, 0, 346, 0, 0, 0, 0, 598, 0, 2257 0, 1077, 204, 0, 1078, 0, 0, 0, 0, 0, 2258 0, 0, 0, 0, 0, 0, 271, 616, 272, 0, 2259 346, 0, 788, 0, 0, 0, 0, 0, 1088, 0, 2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 2261 0, 0, 0, 0, 0, 274, 395, 0, 0, 275, 2262 395, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2263 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2264 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 2265 346, 283, 0, 361, 0, 0, 970, 0, 204, 0, 2266 285, 363, 287, 288, 289, 290, 0, 0, 0, 0, 2267 0, 0, 310, 395, 0, 0, 0, 0, 0, 0, 2268 0, 328, 0, 1147, 0, 0, 0, 0, 0, 1153, 2269 1154, 0, 0, 364, 0, 0, 0, 0, 0, 492, 2270 496, 492, 499, 0, 395, 0, 0, 346, 0, 502, 2271 503, 0, 0, 0, 492, 492, 0, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 2092 2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2093 0, 0, 0, 337, 0, 0, 0, 345, 0, 0, 2094 0, 0, 0, 0, 337, 337, 337, 0, 0, 0, 2095 0, 338, 338, 0, 0, 0, 337, 337, 0, 0, 2096 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 2097 75, 0, 0, 0, 0, 0, 54, 0, 0, 0, 2098 0, 0, 0, 0, 0, 345, 345, 0, 0, 0, 2099 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 2100 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 330, 0, 345, 0, 2102 0, 338, 0, 0, 0, 0, 0, 338, 338, 0, 2103 0, 84, 0, 0, 0, 0, 0, 0, 0, 345, 2104 0, 0, 0, 0, 161, 0, 165, 0, 0, 171, 2105 172, 173, 0, 175, 0, 0, 0, 0, 0, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 224, 215, 2107 0, 0, 0, 0, 0, 84, 330, 0, 345, 238, 2108 239, 0, 337, 0, 0, 0, 338, 0, 0, 0, 2109 77, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2110 17, 18, 19, 20, 21, 22, 23, 24, -279, 338, 2111 0, 338, 345, 0, 0, 0, 0, 0, 30, 0, 2112 0, 0, 0, 0, 330, 330, 0, 75, 0, 0, 2113 0, 0, 0, 0, 75, 0, 0, 0, 338, 330, 2114 0, 33, 0, 0, 327, 0, 0, 0, 0, 338, 2115 338, 338, -279, 0, 345, 0, 0, 0, 0, 0, 2116 0, 338, 338, 0, 345, 0, 0, 0, 0, 216, 2117 345, 0, 122, 122, 0, 77, 0, 75, 0, 0, 2118 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2120 122, 0, 0, 122, 122, 0, 122, 0, 122, 122, 2121 0, 0, 0, 122, 122, 0, 0, 330, 2, 197, 2122 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2274 0, 0, 0, 0, 0, 1212, 395, 0, 0, 346, 2275 204, 1216, 0, 0, 0, 492, 0, 0, 0, 0, 2276 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2277 18, 19, 20, 21, 22, 23, 24, -279, 0, 25, 2278 26, 27, 0, 0, 466, 0, 1235, 30, 0, 0, 2279 0, 1237, 492, 395, 395, 0, 0, 0, 0, 1241, 2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 2281 33, 346, 0, 0, 0, 0, 0, 37, 38, 810, 2282 0, -279, 598, 0, 598, 598, 0, 0, 1264, 0, 2283 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 2284 0, 842, 346, 0, 0, 1275, 0, 346, 1276, 0, 2285 1277, 1025, 204, 567, 0, 0, 0, 346, 346, 0, 2286 0, 108, 0, 0, 0, 0, 0, 1287, 1288, 0, 2287 0, 0, 346, 0, 0, 0, 0, 395, 885, 0, 2288 0, 395, 888, 328, 0, 0, 0, 0, 1301, 0, 2289 0, 0, 364, 0, 0, 0, 0, 0, 0, 0, 2290 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 2291 346, 395, 0, 395, 0, 0, 0, 395, 0, 0, 2292 1325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 0, 0, 310, 0, 0, 0, 0, 0, 0, 346, 2295 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 310, 492, 492, 492, 492, 492, 492, 2297 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 2298 492, 492, 0, 346, 0, 0, 0, 395, 395, 0, 2299 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 2300 0, 0, 0, 492, 0, 0, 0, 1167, 0, 0, 2301 8, 9, 10, 11, 12, 0, 0, 0, 0, 1395, 2302 0, 1396, 0, 0, 0, 0, 0, 0, 0, 395, 2303 743, 0, 1403, 0, 1404, 0, 271, 30, 272, 0, 2304 0, 346, 756, 0, 0, 0, 0, 0, 0, 743, 2305 598, 0, 598, 0, 1413, 0, 0, 0, 0, 273, 2306 33, 598, 765, 766, 0, 274, 0, 0, 0, 275, 2307 1431, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2308 281, 0, 1437, 0, 787, 1241, 0, 282, 0, 0, 2309 0, 204, 810, 0, 796, 0, 0, 0, 0, 0, 2310 0, 283, 756, 361, 492, 0, 0, 1458, 0, 0, 2311 285, 1168, 287, 288, 289, 290, 1465, 0, 0, 1467, 2312 1469, 0, 0, 0, 0, 0, 492, 0, 0, 0, 2313 0, 0, 0, 0, 0, 0, 346, 0, 0, 492, 2314 0, 395, 395, 0, 0, 0, 0, 0, 0, 395, 2315 0, 0, 0, 863, 395, 0, 0, 1496, 0, 0, 2316 364, 1241, 395, 0, 0, 0, 0, 0, 0, 0, 2317 0, 0, 0, 1508, 0, 598, 598, 0, 0, 0, 2318 0, 328, 492, 0, 0, 0, 0, 0, 0, 0, 2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 2320 0, 0, 0, 328, 0, 0, 395, 0, 0, 0, 2321 0, 0, 0, 810, 492, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 0, 395, 1142, 0, 0, 0, 2323 0, 1145, 0, 346, 0, 0, 0, 0, 0, 0, 2324 0, 0, 0, 0, 395, 1159, 0, 598, 598, 1164, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 346, 346, 346, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 0, 0, 0, 0, 756, 0, 968, 0, 2328 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 2329 0, 0, 983, 0, 8, 9, 10, 11, 12, 13, 2123 2330 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2124 24, 84, 0, 25, 26, 27, 0, 0, 0, 0, 2125 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2126 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 2127 0, 0, 0, 0, 33, 0, 34, 0, 35, 36, 2128 0, 198, 199, 39, 0, 0, 0, 338, 0, 0, 2129 40, 41, 0, 122, 0, 0, 0, 0, 122, 122, 2130 0, 0, 0, 0, 122, 0, 0, 0, 0, 330, 2131 0, 0, 0, 0, 0, 42, 0, 200, 0, 0, 2132 576, 0, 584, 0, 0, 201, 0, 0, 0, 345, 2133 0, 0, 77, 609, 610, 0, 0, 0, 0, 77, 2134 0, 0, 0, 0, 0, 0, 0, 620, 0, 456, 2135 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2136 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2137 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2138 54, 0, 77, 30, 0, 0, 0, 345, 345, 0, 2139 345, 345, 345, 0, 0, 0, 0, 0, 0, 0, 2140 0, 0, 0, 0, 330, 0, 33, 663, 34, 0, 2141 35, 84, 0, 37, 38, 0, 2, 197, 4, 5, 2331 24, -279, 0, 25, 26, 27, 0, 1224, 0, 492, 2332 0, 30, 395, 0, 0, 346, 810, 395, 1234, 328, 2333 0, 0, 997, 998, 328, 271, 0, 272, 0, 598, 2334 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2335 0, 37, 38, 328, 0, -279, 0, 0, 273, 0, 2336 0, 810, 0, 0, 274, 0, 0, 0, 275, 0, 2337 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2338 0, 0, 0, 0, 346, 1025, 282, 567, 0, 1145, 2339 346, 346, 0, 0, 1035, 610, 0, 0, 364, 0, 2340 283, 0, 361, 0, 0, 0, 0, 0, 0, 285, 2341 363, 287, 288, 289, 290, 492, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 492, 0, 0, 0, 328, 2343 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2344 17, 18, 19, 20, 21, 22, 23, 24, 0, 346, 2345 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2346 0, 0, 0, 1145, 0, 0, 0, 0, 0, 0, 2347 0, 0, 0, 492, 346, 0, 0, 0, 0, 310, 2348 0, 33, 0, 0, 0, 0, 0, 0, 199, 200, 2349 0, 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 2350 364, 0, 0, 0, 0, 0, 0, 973, 0, 0, 2351 1133, 0, 743, 0, 0, 271, 0, 272, 0, 0, 2352 0, 0, 0, 0, 346, 346, 0, 0, 0, 1151, 2353 0, 0, 261, 0, 0, 0, 0, 0, 273, 0, 2354 0, 0, 0, 0, 274, 0, 1170, 492, 275, 0, 2355 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2356 0, 1145, 0, 0, 0, 0, 282, 0, 0, 364, 2357 0, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 2358 283, 0, 361, 0, 0, 0, 1211, 0, 0, 285, 2359 710, 287, 288, 289, 290, 0, 0, 492, 0, 0, 2360 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 2361 0, 0, 492, 492, 0, 0, 0, 0, 756, 0, 2362 0, 0, -501, 810, 0, 1, 2, 3, 4, 5, 2142 2363 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2143 2364 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2144 0, 25, 26, 27, 345, 345, 0, 0, 271, 30, 2145 272, 0, -3, 0, 54, 345, 0, 0, 0, 0, 2146 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, 2147 0, 273, 33, 0, 34, 0, 35, 274, 0, 37, 2148 38, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2149 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2150 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 2151 0, 0, 0, 283, 345, 325, -3, 0, 0, 0, 2152 345, 345, 285, 326, 287, 288, 289, 290, 0, 330, 2153 330, 330, 8, 9, 10, 11, 12, 13, 14, 15, 2154 16, 17, 18, 19, 20, 21, 22, 23, 24, -280, 2155 54, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2156 0, 0, 216, 0, 0, 0, 0, 803, 1017, 0, 2157 0, 8, 9, 10, 11, 12, 0, 0, 0, 345, 2158 0, 0, 33, 84, 0, 0, 0, 0, 0, 0, 2159 0, 0, 0, -280, 330, 0, 0, 271, 30, 272, 2160 0, 0, 345, 0, 345, 0, 0, 0, 0, 0, 2161 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 2162 273, 33, 0, 0, 0, 0, 274, 0, 0, 0, 2163 275, 345, 0, 276, 277, 278, 279, 40, 41, 0, 2164 280, 281, 345, 345, 345, 0, 893, 0, 282, 0, 2165 0, 0, 0, 0, 345, 345, 0, 0, 0, 330, 2166 330, 0, 283, 0, 361, 909, 910, 0, 84, 914, 2167 0, 285, 892, 287, 288, 289, 290, 0, 0, 0, 2365 346, 25, 26, 27, 28, 0, 973, 29, 0, 30, 2366 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367 0, 271, 0, 272, 0, 0, 0, 863, 0, 32, 2368 0, 0, 33, 0, 34, 0, 35, 36, 0, 37, 2369 38, 39, 0, 0, 273, 1278, 0, 1279, 40, 41, 2370 624, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2371 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2372 0, 0, 282, 42, 0, 43, 0, 0, 0, 0, 2373 395, 0, 0, 44, 0, 0, 283, 0, 759, 0, 2374 0, 0, 756, 0, 0, 285, 363, 287, 288, 289, 2375 290, 395, 395, 0, 0, 0, 0, 310, 0, 0, 2168 2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 0, 345, 122, 0, 0, 0, 934, 0, 935, 2170 54, 54, 0, 0, 0, 0, 938, 939, 0, 0, 2171 0, 944, 0, 0, 0, 0, 0, 0, 330, 0, 2172 0, 0, 54, 949, 0, 0, 0, 0, 953, 0, 2173 0, 0, 0, 0, 271, 0, 272, 0, 0, 0, 2174 0, 0, 970, 0, 0, 0, 0, 54, 0, 0, 2175 0, 0, 981, 0, 0, 0, 0, 273, 0, 0, 2176 0, 0, 0, 274, 0, 0, 0, 275, 0, 0, 2177 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2178 345, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2179 0, 0, 0, 330, 330, 0, 0, 0, 0, 283, 2180 1003, 361, 54, 0, 0, 0, 0, 54, 285, 363, 2181 287, 288, 289, 290, 203, 0, 0, 0, 0, 1018, 2182 0, 0, 1213, 0, 222, 84, 226, 122, 228, 0, 2183 0, 0, 84, 0, 0, 236, 0, 0, 0, 0, 2184 0, 1170, 54, 0, 8, 9, 10, 11, 12, 0, 2185 0, 0, 1029, 0, 1030, 1031, 1032, 0, 0, 1035, 2186 864, 0, 0, 0, 203, 0, 226, 228, 236, 0, 2187 271, 30, 272, 0, 1077, 84, 0, 0, 0, 0, 2188 0, 0, 0, 0, 0, 0, 576, 0, 0, 1084, 2189 0, 203, 0, 273, 33, 1085, 0, 0, 0, 274, 2190 0, 0, 0, 275, 0, 203, 276, 277, 278, 279, 2191 40, 41, 0, 280, 281, 0, 0, 0, 0, 330, 2192 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 2193 0, 0, 0, 0, 1104, 283, 0, 361, 0, 0, 2194 0, 0, 0, 54, 285, 1171, 287, 288, 289, 290, 2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 757, 2196 0, 0, 0, 203, 54, 226, 228, 236, 0, 0, 2197 0, 54, 1130, 0, 0, 0, 0, 864, 0, 0, 2198 1138, 0, 0, 0, 1142, 0, 0, 0, 0, 1146, 2199 0, 0, 0, 1151, 1152, 1153, 0, 0, 0, 0, 2200 203, 0, 0, 1159, 203, 0, 0, 0, 0, 0, 2201 0, 0, 0, 1172, 54, 0, 0, 0, 0, 0, 2202 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2203 0, 0, 1188, 1189, 8, 9, 10, 11, 12, 13, 2204 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2205 24, 0, 0, 25, 26, 27, 0, 1218, 0, 0, 2206 1220, 30, 435, 0, 0, 0, 0, 0, 203, 0, 2377 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 2378 973, 0, 0, 1, 2, 198, 4, 5, 6, 7, 2379 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2380 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2381 26, 27, 28, 0, 0, 29, 271, 30, 1044, 1045, 2382 0, 1046, 0, 0, 1047, 1048, 1049, 1050, 1051, 1052, 2383 1053, 1054, 0, 1055, 0, 0, 1056, 32, 0, 273, 2384 33, 0, 34, 0, 35, 624, 492, 37, 38, 275, 2385 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2386 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2207 2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2208 0, 0, 0, 203, 33, 1234, 0, 0, 226, 228, 2209 0, 37, 38, 0, 0, 0, 236, 0, 0, 0, 2210 0, 0, 150, 0, 1241, 0, 0, 0, 0, 0, 2211 1245, 1246, 0, 0, 0, 0, 0, 0, 0, 1254, 2212 0, 0, 0, 0, 0, 1258, 0, 436, 1262, 0, 2213 1263, 689, 0, 1265, 0, 108, 0, 0, 203, 0, 2214 0, 0, 0, 0, 864, 0, 0, 241, 1274, 0, 2215 0, 0, 0, 0, 0, 0, 203, 246, 0, 0, 2216 0, 0, 203, 0, 271, 1283, 272, 1285, 1286, 1287, 2217 1288, 0, 0, 0, 0, 0, 0, 0, 0, 203, 2218 0, 0, 203, 203, 1296, 0, 1297, 273, 0, 0, 2219 165, 0, 0, 625, 0, 135, 0, 275, 0, 203, 2220 276, 277, 278, 279, 40, 41, 0, 280, 281, 1317, 2221 353, 0, 0, 203, 0, 282, 0, 0, 1322, 1323, 2222 203, 0, 0, 367, 0, 0, 0, 0, 0, 283, 2223 0, 626, 0, 627, 362, 0, 0, 0, 285, 363, 2224 287, 288, 289, 290, 0, 399, 0, 0, 0, 0, 2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 2226 0, 0, 0, 0, 0, 0, 0, 418, 0, 1357, 2227 1358, 0, 0, 0, 0, 1362, 1363, 426, 0, 0, 2228 0, 0, 0, 0, 0, 0, 1373, 0, 0, 434, 2388 0, 283, 0, 1057, 0, 0, 165, 0, 0, 0, 2389 285, 286, 287, 288, 289, 290, 0, 0, 0, 0, 2390 0, 0, 0, 0, -126, 0, 0, 0, 0, 492, 2391 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2229 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2230 0, 453, 0, 0, 0, 0, 463, 0, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 2232 0, 0, 0, 0, 0, 481, 0, 485, 0, 203, 2233 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, 2234 0, 0, 0, 513, 0, 0, 0, 0, 0, 1408, 2235 0, 0, 0, 1411, 1412, 1413, 0, 0, 0, 203, 2236 0, 0, 0, 0, 203, 1417, 0, 0, 0, 0, 2237 0, 271, 0, 272, 1428, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 2239 1439, 0, 0, 0, 273, 0, 0, 0, 0, 0, 2240 274, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2241 279, 40, 41, 621, 280, 281, 0, 622, 623, 0, 2242 624, 0, 282, 0, 0, 0, 634, 635, 0, 636, 2243 637, 0, 638, 0, 639, 0, 283, 0, 361, 0, 2244 0, 362, 1480, 1481, 0, 285, 363, 287, 288, 289, 2245 290, 652, 0, 203, 0, 1486, 0, 0, 0, 654, 2246 0, 271, 1486, 272, 1048, 0, 1049, 203, 0, 1050, 2247 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1532, 1058, 0, 2248 0, 1059, 32, 667, 273, 0, 0, 486, 0, 1516, 2249 625, 0, 0, 0, 275, 675, 0, 276, 277, 278, 2250 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2251 0, 0, 282, 0, 0, 0, 0, 1539, 711, 0, 2252 0, 0, 0, 0, 714, 0, 283, 0, 361, 453, 2253 0, 164, 0, 0, 0, 285, 363, 287, 288, 289, 2254 290, 0, 1552, 0, 0, 203, 0, 1554, 0, -126, 2255 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 2256 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 2257 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 2258 764, 0, 0, -501, 0, 0, 1, 2, 3, 4, 2259 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2260 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2261 0, 0, 25, 26, 27, 28, 790, 0, 29, 0, 2262 30, 31, 0, 0, 0, 800, 0, 801, 0, 0, 2263 0, 0, 0, 806, 0, 0, 0, 0, 0, 271, 2264 32, 272, 0, 33, 0, 34, 825, 35, 36, 0, 2265 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2266 41, 0, 273, 0, 0, 0, 0, 0, 274, 0, 2267 0, 203, 275, 0, 0, 276, 277, 278, 279, 40, 2268 41, 0, 280, 281, 42, 866, 43, 0, 0, 0, 2269 282, 0, 0, 0, 44, 346, 0, 203, 0, 0, 2270 0, 0, 0, 0, 283, 0, 361, 0, 0, 0, 2271 0, 0, 787, 285, 363, 287, 288, 289, 290, 0, 2272 0, 901, 0, 203, 0, 0, 395, 0, 0, 0, 2273 0, 0, 0, 395, 0, 8, 9, 10, 11, 12, 2274 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2275 23, 24, -279, 203, 25, 26, 27, 0, 0, 0, 2276 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2277 203, 0, 0, 0, 0, 0, 0, 0, 0, 241, 2278 0, 0, 0, 0, 0, 33, 0, 0, 0, 950, 2279 951, 0, 37, 38, 0, 0, -279, 0, 0, 0, 2280 0, 965, 0, 395, 0, 0, 0, 0, 271, 0, 2281 272, 0, 0, 0, 0, 0, 0, 0, 982, 0, 2282 983, 0, 0, 0, 987, 0, 1028, 0, 568, 0, 2283 0, 273, 0, 0, 0, 0, 108, 274, 0, 203, 2284 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2285 0, 280, 281, 0, 0, 0, 203, 395, 0, 282, 2286 0, 0, 0, 0, 0, 395, 569, 0, 395, 572, 2287 0, 346, 0, 283, 0, 361, 599, 0, 0, 0, 2288 756, 0, 285, 363, 287, 288, 289, 290, 0, 1023, 2289 0, 0, 0, 0, 0, 617, 1024, 0, 346, 0, 2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 2291 0, 1027, 0, 0, 0, 0, 271, 0, 272, 0, 2292 0, 0, 0, 0, 395, 0, 1040, 0, 395, 0, 2293 0, 0, 1044, 0, 0, 0, 0, 0, 0, 273, 2294 0, 0, 0, 0, 1080, 274, 0, 1081, 203, 275, 2295 0, 0, 276, 277, 278, 279, 40, 41, 346, 280, 2296 281, 0, 0, 0, 0, 0, 790, 282, 0, 0, 2297 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 2298 310, 283, 395, 361, 0, 0, 973, 0, 0, 328, 2299 285, 363, 287, 288, 289, 290, 0, 0, 0, 0, 2300 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 2301 0, 0, 0, 395, 0, 0, 346, 0, 0, 0, 2302 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2303 18, 19, 20, 21, 22, 23, 24, -279, 0, 25, 2304 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2305 203, 0, 0, 0, 0, 395, 0, 1150, 346, 0, 2306 0, 0, 0, 1156, 1157, 0, 0, 0, 0, 0, 2307 33, 0, 0, 0, 0, 36, 0, 809, 38, 39, 2308 0, -279, 0, 0, 0, 0, 40, 41, 0, 0, 2309 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 2310 0, 0, 395, 395, 0, 0, 0, 0, 0, 0, 2311 0, 1028, 0, 568, 0, 0, 0, 0, 346, 1215, 2312 346, 611, 0, 0, 0, 1219, 0, 0, 812, 0, 2313 0, 599, 0, 599, 599, 0, 0, 0, 0, 0, 2314 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2315 844, 346, 0, 0, 0, 0, 346, 0, 0, 0, 2316 1238, 0, 0, 0, 0, 1240, 346, 346, 0, 0, 2317 0, 0, 0, 1244, 0, 0, 0, 0, 0, 0, 2318 0, 346, 0, 0, 0, 0, 395, 887, 0, 0, 2319 395, 890, 328, 0, 0, 0, 0, 0, 0, 0, 2320 0, 364, 1267, 0, 0, 0, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 395, 0, 0, 0, 1278, 2322 346, 395, 1279, 395, 1280, 0, 0, 395, 0, 0, 2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2324 0, 1290, 1291, 0, 0, 0, 0, 0, 0, 0, 2325 0, 310, 0, 0, 0, 0, 0, 0, 0, 346, 2326 599, 0, 1304, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 2328 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 2329 0, 0, 0, 346, 1328, 0, 0, 395, 395, 0, 2330 0, 0, 713, 0, 0, 0, 0, 0, 8, 9, 2331 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2332 20, 21, 22, 23, 24, -279, 0, 25, 26, 27, 2333 0, 0, 0, 0, 0, 30, 0, 0, 0, 395, 2334 745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2335 0, 346, 758, 0, 0, 0, 0, 0, 33, 745, 2336 599, 0, 599, 36, 0, 809, 38, 39, 0, -279, 2337 0, 599, 767, 768, 40, 41, 8, 9, 10, 11, 2338 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2339 22, 23, 24, 1398, 789, 1399, 0, 0, 0, 0, 2340 0, 568, 812, 30, 798, 0, 1406, 0, 1407, 108, 2341 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 0, 33, 0, 1416, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 0, 0, 0, 1434, 0, 346, 0, 0, 0, 2345 0, 0, 395, 395, 0, 0, 1440, 0, 0, 1244, 2346 395, 0, 0, 865, 0, 395, 0, 0, 0, 0, 2347 364, 0, 0, 395, 0, 0, 0, 0, 0, 0, 2348 0, 1461, 0, 0, 0, 0, 599, 599, 0, 0, 2349 1468, 328, 0, 1470, 1472, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2351 346, 0, 0, 0, 328, 0, 0, 395, 0, 0, 2352 0, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2353 0, 1499, 0, 0, 0, 1244, 395, 1145, 0, 0, 2354 0, 0, 1148, 0, 346, 0, 0, 1511, 0, 0, 2355 0, 0, 0, 0, 0, 395, 1162, 0, 599, 599, 2356 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357 0, 346, 346, 346, 0, 0, 0, 0, 0, 0, 2358 0, 0, 0, 0, 0, 0, 0, 758, 0, 971, 2359 0, 0, 0, 0, 0, 976, 0, 0, 0, 0, 2360 0, 0, 0, 986, 0, 8, 9, 10, 11, 12, 2361 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2362 23, 24, -279, 0, 25, 26, 27, 0, 1227, 0, 2363 0, 0, 30, 395, 0, 0, 346, 812, 395, 1237, 2364 328, 0, 0, 1000, 1001, 328, 0, 0, 0, 0, 2365 599, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2366 0, 0, 37, 38, 328, 0, -279, 0, 0, 0, 2367 0, 0, 812, 0, 0, 0, 0, 493, 497, 493, 2368 500, 0, 0, 0, 0, 0, 0, 503, 504, 0, 2369 0, 0, 493, 493, 0, 346, 1028, 0, 568, 0, 2370 1148, 346, 346, 0, 493, 1038, 611, 0, 0, 364, 2371 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2372 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2373 23, 24, -279, 493, 25, 26, 27, 0, 0, 0, 2374 328, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2376 346, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2377 493, 0, 37, 38, 1148, 0, -279, 0, 0, 0, 2378 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 2379 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 1125, 1126, 0, 0, 568, 0, 2381 0, 271, 364, 272, 0, 0, 108, 0, 0, 976, 2382 0, 0, 1136, 0, 745, 0, 0, 0, 0, 0, 2383 0, 0, 0, 0, 273, 346, 346, 0, 0, 0, 2384 274, 1154, 0, 0, 275, 0, 0, 276, 277, 278, 2385 279, 40, 41, 0, 280, 281, 0, 0, 1173, 0, 2386 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2387 0, 0, 1148, 0, 0, 0, 283, 0, 361, 0, 2388 0, 364, 0, 1192, 0, 285, 363, 287, 288, 289, 2389 290, 0, 0, 0, 0, 0, 0, 0, 1214, 0, 2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 758, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2394 0, 0, 0, 493, 493, 493, 493, 493, 493, 493, 2395 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 2396 493, 346, 0, 0, 0, 0, 0, 0, 976, 0, 2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2398 0, 0, 493, 0, 0, 0, 0, 0, 0, 865, 2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2400 0, 0, 0, 0, 0, 0, 0, 1281, 0, 1282, 2401 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 2402 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2403 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2404 0, 395, 25, 26, 27, 28, 0, 0, 29, 0, 2405 30, 31, 0, 0, 758, 0, 0, 0, 0, 0, 2406 0, 0, 395, 395, 0, 0, 0, 0, 0, 310, 2407 32, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2408 37, 38, 39, 395, 493, 0, 0, 0, 0, 40, 2409 41, 0, 976, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 2411 0, 0, 0, 0, 42, 0, 43, 0, 0, 493, 2412 -505, 0, 0, 0, 44, 0, 0, 0, 0, 0, 2413 0, 1, 2, 197, 4, 5, 6, 7, 8, 9, 2414 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2415 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2416 28, 0, 493, 29, 271, 30, 1047, 1048, 0, 1049, 2417 0, 0, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2418 0, 1058, 0, 0, 1059, 32, 0, 273, 33, 0, 2419 34, 0, 35, 625, 493, 37, 38, 275, 0, 0, 2420 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2421 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2423 0, 1060, 0, 0, 164, 0, 0, 0, 285, 286, 2424 287, 288, 289, 290, 1447, 0, 0, 0, 0, 0, 2425 0, 0, -126, 0, 0, 0, 0, 0, 1, 2, 2426 197, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2393 0, 0, 1444, 0, 0, 0, 0, 0, 1, 2, 2394 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2427 2395 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2428 2396 23, 24, 0, 0, 25, 26, 27, 28, 0, 0, 2429 29, 271, 30, 272, 0, 0, 0, 0, 0, 493, 2397 29, 271, 30, 272, 8, 9, 10, 11, 12, 13, 2398 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2399 24, -279, 0, 0, 273, 33, 0, 34, 0, 35, 2400 274, 30, 37, 38, 275, 0, 1500, 276, 277, 278, 2401 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2402 0, 0, 282, 0, 33, 0, 0, 0, 0, 0, 2403 0, 0, 0, 0, 0, -279, 283, 0, 1057, 0, 2404 0, 0, 0, 0, 0, 285, 286, 287, 288, 289, 2405 290, 0, 310, 0, 0, 0, 0, 0, 0, -126, 2406 1, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2407 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2408 21, 22, 23, 24, 0, 0, 25, 26, 27, 28, 2409 0, 0, 29, 271, 30, 272, 8, 9, 10, 11, 2410 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2411 22, 23, 24, -280, 0, 0, 273, 33, 0, 34, 2412 0, 35, 274, 30, 37, 38, 275, 0, 0, 276, 2413 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2414 0, 0, 0, 0, 282, 0, 33, 0, 0, 0, 2415 0, 0, 0, 0, 0, 0, 0, -280, 283, 0, 2416 43, 0, 0, 0, 0, 0, 0, 285, 286, 287, 2417 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2418 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2419 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2420 27, 0, 0, 0, 0, 271, 30, 272, 0, 0, 2430 2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 271, 0, 272, 0, 273, 33, 0, 34, 1503, 35, 2432 274, 0, 37, 38, 275, 0, 0, 276, 277, 278, 2433 279, 40, 41, 273, 280, 281, 0, 0, 0, 274, 2434 0, 0, 282, 275, 0, 0, 276, 277, 278, 279, 2435 40, 41, 0, 280, 281, 0, 283, 0, 1060, 0, 2436 0, 282, 0, 0, 310, 285, 286, 287, 288, 289, 2437 290, 0, 0, 0, 0, 283, 0, 361, 0, -126, 2438 0, 0, 0, 0, 285, 712, 287, 288, 289, 290, 2439 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 493, 1, 2, 197, 2441 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2442 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2443 24, 0, 0, 25, 26, 27, 28, 0, 0, 29, 2444 271, 30, 272, 0, 0, 0, 0, 0, 0, 0, 2445 0, 0, 0, 0, 493, 0, 0, 0, 0, 271, 2446 0, 272, 0, 273, 33, 0, 34, 0, 35, 274, 2447 0, 37, 38, 275, 0, 0, 276, 277, 278, 279, 2448 40, 41, 273, 280, 281, 0, 0, 0, 625, 0, 2449 0, 282, 275, 0, 0, 276, 277, 278, 279, 40, 2450 41, 0, 280, 281, 0, 283, 0, 43, 0, 0, 2451 282, 0, 0, 0, 285, 286, 287, 288, 289, 290, 2452 0, 0, 0, 0, 283, 0, 761, 0, 493, 0, 2453 0, 0, 0, 285, 363, 287, 288, 289, 290, 0, 2454 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2455 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2456 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2457 0, 0, 271, 30, 272, 0, 0, 0, 493, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 273, 33, 2423 0, 34, 0, 35, 274, 0, 37, 38, 275, 0, 2424 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2425 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2458 2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2459 0, 0, 0, 493, 493, 273, 33, 0, 34, 0, 2460 35, 274, 0, 37, 38, 275, 0, 0, 276, 277, 2461 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2462 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 2463 0, 0, 0, 0, 0, 0, 0, 283, 0, 325, 2464 -3, 0, 0, 0, 756, 0, 285, 326, 287, 288, 2465 289, 290, 2, 197, 4, 5, 6, 7, 8, 9, 2466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2467 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2468 0, 0, 0, 0, 271, 30, 272, 0, 0, 0, 2469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2470 0, 0, 0, 0, 0, 0, 0, 273, 33, 0, 2471 34, 0, 35, 274, 0, 37, 38, 275, 0, 0, 2472 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2473 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2475 0, 913, -3, 0, 0, 0, 756, 0, 285, 326, 2476 287, 288, 289, 290, 0, 2, 197, 4, 5, 6, 2427 283, 0, 325, -3, 0, 0, 0, 754, 0, 285, 2428 326, 287, 288, 289, 290, 2, 198, 4, 5, 6, 2477 2429 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2478 2430 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, … … 2480 2432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2481 2433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482 273, 33, 0, 34, 0, 35, 274, 493, 37, 38,2434 273, 33, 0, 34, 0, 35, 274, 0, 37, 38, 2483 2435 275, 0, 0, 276, 277, 278, 279, 40, 41, 0, 2484 2436 280, 281, 0, 0, 0, 0, 0, 0, 282, 0, 2485 2437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486 0, 0, 283, 0, 913, -3, 0, 0, 0, 756, 2487 0, 285, 575, 287, 288, 289, 290, 0, 0, 0, 2438 0, 0, 283, 0, 910, -3, 0, 0, 0, 754, 2439 0, 285, 326, 287, 288, 289, 290, 2, 198, 4, 2440 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2441 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2442 0, 0, 25, 26, 27, 0, 0, 0, 0, 271, 2443 30, 272, 0, 0, 0, 0, 0, 0, 0, 0, 2488 2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2489 493, 493, 2, 197, 4, 5, 6, 7, 8, 9, 2490 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2491 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2492 0, 0, 0, 0, 271, 30, 272, 0, 0, 0, 2445 0, 0, 273, 33, 0, 34, 0, 35, 274, 0, 2446 37, 38, 275, 0, 0, 276, 277, 278, 279, 40, 2447 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2448 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2449 0, 0, 0, 0, 283, 0, 910, -3, 0, 0, 2450 0, 754, 0, 285, 574, 287, 288, 289, 290, 2, 2451 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2452 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2453 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2454 0, 271, 30, 272, 0, 0, 0, 0, 0, 0, 2493 2455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 0, 0, 0, 0, 0, 273, 33, 0,2495 34, 0, 35, 274, 0, 37, 38, 275, 0, 0,2496 27 6, 277, 278, 279, 40, 41, 0, 280, 281, 0,2497 0, 0, 0, 0, 0, 282, 0, 0, 0, 0,2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 283,2499 0, 913, -3, 0, 0, 0, 0, 0, 285, 326,2500 2 87, 288, 289, 290, 2, 197, 4, 5, 6, 7,2501 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,2502 18, 19, 20, 21, 22, 23, 24, 0, 0, 25,2503 26, 27, 0, 0, 0, 0, 271, 30, 272, 0,2456 0, 0, 0, 0, 273, 33, 0, 34, 0, 35, 2457 274, 0, 37, 38, 275, 0, 0, 276, 277, 278, 2458 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2459 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2460 0, 0, 0, 0, 0, 0, 283, 0, 325, -3, 2461 0, 0, 0, 0, 0, 285, 326, 287, 288, 289, 2462 290, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2463 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2464 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2465 0, 0, 0, 271, 30, 272, 0, 0, 0, 0, 2504 2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 2506 33, 0, 34, 0, 35, 274, 0, 198, 199, 275, 2507 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2508 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2467 0, 0, 0, 0, 0, 0, 273, 33, 0, 34, 2468 0, 35, 274, 0, 37, 38, 275, 0, 0, 276, 2469 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2470 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 2472 910, -3, 0, 0, 0, 0, 0, 285, 326, 287, 2473 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2474 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2475 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2476 27, 0, 0, 0, 0, 271, 30, 272, 0, 0, 2509 2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510 0, 283, 0, 998, 0, 0, 0, 0, 0, 0, 2511 285, 999, 287, 288, 289, 290, 2, 197, 4, 5, 2478 0, 0, 0, 0, 0, 0, 0, 0, 273, 33, 2479 0, 34, 0, 35, 274, 0, 199, 200, 275, 0, 2480 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2481 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2483 283, 0, 995, 0, 0, 0, 0, 0, 0, 285, 2484 996, 287, 288, 289, 290, 2, 198, 4, 5, 6, 2485 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2486 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2487 25, 26, 27, 0, 0, 0, 0, 271, 30, 272, 2488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2490 273, 33, 0, 34, 0, 35, 274, 0, 199, 200, 2491 275, 0, 0, 276, 277, 278, 279, 40, 41, 0, 2492 280, 281, 0, 0, 0, 0, 0, 0, 282, 0, 2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 283, 0, 361, 0, 0, 0, 0, 0, 2495 0, 285, 363, 287, 288, 289, 290, 1, 2, 3, 2496 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2497 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2498 24, 0, 0, 25, 26, 27, 28, 0, 0, 29, 2499 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 2500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501 0, 32, 0, 0, 33, 0, 34, 0, 35, 36, 2502 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 2503 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 0, 42, 0, 43, 0, 0, 2506 0, -505, 0, 0, 0, 44, 1, 2, 3, 4, 2507 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2508 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2509 0, 0, 25, 26, 27, 28, 0, 0, 29, 0, 2510 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2512 32, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2513 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2514 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 0, 0, 0, 0, 42, 0, 43, 0, 0, 0, 2517 0, 0, 0, 0, 44, 1, 2, 198, 4, 5, 2512 2518 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2513 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2514 0, 25, 26, 27, 0, 0, 0, 0, 271, 30, 2515 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519 16, 17, 18, 19, 20, 21, 22, 23, 24, -279, 2520 0, 25, 26, 27, 28, 0, 0, 29, 0, 30, 2516 2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517 0, 273, 33, 0, 34, 0, 35, 274, 0, 198,2518 199, 275, 0, 0, 276, 277, 278, 279, 40, 41,2519 0, 280, 281, 0, 0, 0, 0, 0, 0, 282,2520 2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 283, 0, 361, 0, 0, 0, 0,2522 0, 0, 285, 363, 287, 288, 289, 290, 1, 2,2523 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,2524 1 3, 14, 15, 16, 17, 18, 19, 20, 21, 22,2525 2 3, 24, 0, 0, 25, 26, 27, 28,0, 0,2526 29, 0, 30, 31, 0, 0, 0, 0, 0, 0,2523 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2524 38, 0, 0, -279, 1, 2, 198, 4, 5, 6, 2525 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2526 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2527 25, 26, 27, 28, 0, 43, 29, 0, 30, 0, 2528 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2527 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2528 0, 0, 32, 0, 0, 33, 0, 34, 0, 35, 2529 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 2530 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 2530 0, 33, 0, 34, 0, 35, 0, 0, 37, 38, 2531 2, 198, 4, 5, 6, 7, 8, 9, 10, 11, 2532 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2533 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2534 0, 0, 0, 30, 43, 0, 0, 0, 0, 0, 2535 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 2536 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2537 35, 36, 0, 199, 200, 39, 0, 0, 0, 0, 2538 0, 0, 40, 41, 0, 0, 0, 0, 0, 0, 2531 2539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 42, 0, 43, 0,2533 0, 0, 0, 0, 0, 0, 44, 196, 2, 197,2540 0, 0, 0, 0, 0, 0, 0, 42, 0, 201, 2541 0, 0, 0, 0, 0, 0, 0, 202, 2, 198, 2534 2542 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2535 2543 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2537 2545 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2538 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 33, 0, 34, 0, 35, 36, 2540 0, 198, 199, 39, 0, 0, 0, 0, 0, 0, 2541 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 42, 0, 200, 0, 0, 2544 0, 0, 0, 0, 0, 201, 1, 2, 197, 4, 2545 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2546 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2547 -279, 0, 25, 26, 27, 28, 0, 0, 29, 0, 2548 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 33, 0, 34, 0, 35, 0, 0, 2551 37, 38, 0, 0, -279, 1, 2, 197, 4, 5, 2552 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2553 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2554 0, 25, 26, 27, 28, 0, 43, 29, 0, 30, 2555 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2558 38, 0, 196, 2, 197, 4, 5, 6, 7, 8, 2547 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2548 0, 37, 38, 2, 198, 4, 5, 6, 7, 8, 2559 2549 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2560 2550 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2561 27, 0, 0, 0, 0, 43, 30, 0, 0, 0, 2562 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2564 0, 34, 0, 35, 0, 0, 198, 199, 2, 197, 2565 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2566 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2567 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2568 0, 30, 200, 0, 0, 0, 0, 0, 0, 0, 2569 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2571 0, 37, 38, 2, 197, 4, 5, 6, 7, 8, 2572 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2573 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2574 27, 0, 0, 0, 0, 0, 30, 662, -3, 0, 2575 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 2551 27, 0, 0, 0, 0, 0, 30, 661, -3, 0, 2552 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 2576 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2577 2554 0, 34, 0, 35, 0, 0, 37, 38, 0, 0, 2578 2, 19 7, 4, 5, 6, 7, 8, 9, 10, 11,2555 2, 198, 4, 5, 6, 7, 8, 9, 10, 11, 2579 2556 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2580 2557 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2581 0, -38 9, 662, 30, 0, 0, 0, 0, 0, 0,2582 61 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,2558 0, -388, 661, 30, 0, 0, 0, 0, 0, 0, 2559 610, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583 2560 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2584 2561 35, 0, 0, 37, 38, 0, 0, 0, 0, 0, 2585 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 0, 0, 13 70, 0, 0, 0, 0,2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 66 2,2588 0, 0, 0, 0, 0, 0, 0, 61 1, 2, 197,2563 0, 0, 0, 0, 0, 1367, 0, 0, 0, 0, 2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 2565 0, 0, 0, 0, 0, 0, 0, 610, 2, 198, 2589 2566 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2590 2567 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2595 2572 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 2596 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2597 0, 0, 33, 13 72, 0, 0, 0, 107, 0, 37,2598 38, 0, 0, 0, 0, 0, 0, 66 2, 0, 0,2599 0, 0, 0, 0, 0, 61 1, 2, 197, 4, 5,2574 0, 0, 33, 1369, 0, 0, 0, 107, 0, 37, 2575 38, 0, 0, 0, 0, 0, 0, 661, 0, 0, 2576 0, 0, 0, 0, 0, 610, 2, 198, 4, 5, 2600 2577 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2601 2578 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, … … 2603 2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2604 2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605 0, 0, 33, 0, 34, 0, 35, 0, 0, 19 8,2606 199, 2, 197, 4, 5, 6, 7, 8, 9, 10,2582 0, 0, 33, 0, 34, 0, 35, 0, 0, 199, 2583 200, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2607 2584 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2608 2585 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2609 2586 0, 0, 0, 0, 30, 260, 0, 0, 0, 0, 2610 0, 0, 0, 60 6, 0, 0, 0, 0, 0, 0,2587 0, 0, 0, 605, 0, 0, 0, 0, 0, 0, 2611 2588 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2612 0, 35, 0, 0, 37, 38, 2, 19 7, 4, 5,2589 0, 35, 0, 0, 37, 38, 2, 198, 4, 5, 2613 2590 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2614 2591 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2615 2592 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2616 57 4, 0, 0, 0, 0, 0, 0, 0, 611, 0,2593 573, 0, 0, 0, 0, 0, 0, 0, 610, 0, 2617 2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2618 2595 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2619 38, 2, 19 7, 4, 5, 6, 7, 8, 9, 10,2596 38, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2620 2597 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2621 2598 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2622 0, 0, 0, 0, 30, 66 2, 0, 0, 0, 0,2623 0, 0, 0, 61 1, 0, 0, 0, 0, 0, 0,2599 0, 0, 0, 0, 30, 661, 0, 0, 0, 0, 2600 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 2624 2601 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2625 0, 35, 0, 0, 19 8, 199, 8, 9, 10, 11,2602 0, 35, 0, 0, 199, 200, 8, 9, 10, 11, 2626 2603 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2627 22, 23, 24, 0, 0, 25, 26, 27, 47 4, 475,2628 47 6, 0, 271, 30, 272, 0, 0, 0, 0, 0,2629 20 0, 0, 0, 0, 0, 0, 0, 0, 261, 0,2604 22, 23, 24, 0, 0, 25, 26, 27, 473, 474, 2605 475, 0, 271, 30, 272, 0, 0, 0, 0, 0, 2606 201, 0, 0, 0, 0, 0, 0, 0, 261, 0, 2630 2607 0, 0, 0, 0, 0, 273, 33, 0, 0, 0, 2631 2608 0, 274, 0, 37, 38, 275, 0, 0, 276, 277, … … 2643 2620 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2644 2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2645 0, 0, 0, 283, 0, 50 6, 0, 0, 164, 0,2622 0, 0, 0, 283, 0, 505, 0, 0, 165, 0, 2646 2623 0, 0, 285, 286, 287, 288, 289, 290, 8, 9, 2647 2624 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 2654 2631 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2655 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2656 0, 57 4, -3, 0, 0, 0, 0, 0, 285, 575,2633 0, 573, -3, 0, 0, 0, 0, 0, 285, 574, 2657 2634 287, 288, 289, 290, 8, 9, 10, 11, 12, 13, 2658 2635 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2660 2637 271, 30, 272, 0, 0, 0, 0, 0, 0, 0, 2661 2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662 0, 0, 0, 273, 33, 0, 0, 0, 0, 62 5,2639 0, 0, 0, 273, 33, 0, 0, 0, 0, 624, 2663 2640 0, 37, 38, 275, 0, 0, 276, 277, 278, 279, 2664 2641 40, 41, 0, 280, 281, 0, 0, 0, 0, 0, 2665 2642 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 0, 283, -35, 74 2, 0, 0,2643 0, 0, 0, 0, 0, 283, -35, 740, 0, 0, 2667 2644 0, 0, 0, 0, 285, 286, 287, 288, 289, 290, 2668 2645 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … … 2685 2662 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2686 2663 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 2687 0, 0, 0, 0, 0, 0, 0, 283, 0, 15 1,2664 0, 0, 0, 0, 0, 0, 0, 283, 0, 152, 2688 2665 0, 0, 0, 0, 0, 0, 285, 286, 287, 288, 2689 2666 289, 290, 8, 9, 10, 11, 12, 13, 14, 15, … … 2696 2673 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2697 2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2698 0, 0, 0, 283, 0, 57 4, 0, 0, 0, 0,2699 0, 0, 285, 57 5, 287, 288, 289, 290, 8, 9,2675 0, 0, 0, 283, 0, 573, 0, 0, 0, 0, 2676 0, 0, 285, 574, 287, 288, 289, 290, 8, 9, 2700 2677 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2701 2678 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, … … 2708 2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2709 2686 0, 361, 0, 0, 0, 0, 0, 0, 285, 363, 2710 287, 288, 289, 290, 8, 9, 10, 11, 12, 13, 2711 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2712 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2713 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2687 287, 288, 289, 290, 455, 2, 198, 4, 5, 6, 2688 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2689 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2690 25, 26, 27, 0, 0, 0, 0, 0, 30, 8, 2691 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2692 19, 20, 21, 22, 23, 24, -279, 0, 25, 26, 2693 27, 33, 0, 34, 0, 35, 30, 0, 37, 38, 2714 2694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 0, 0, 0, 33, 0, 0, 0, 0, 36, 2716 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 2717 40, 41, 8, 9, 10, 11, 12, 13, 14, 15, 2718 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2719 0, 25, 26, 27, 0, 42, 0, 151, 0, 30, 2720 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2696 0, 0, 0, 0, 36, 0, 807, 38, 39, 0, 2697 -279, 0, 0, 0, 0, 40, 41, -3, 8, 9, 2698 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2699 20, 21, 22, 23, 24, -279, 0, 25, 26, 27, 2700 1025, 0, 567, 0, 0, 30, 0, 0, 0, 0, 2701 610, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2702 17, 18, 19, 20, 21, 22, 23, 24, 33, 0, 2703 25, 26, 27, 36, 0, 807, 38, 39, 30, -279, 2704 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, 2721 2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2722 0, 0, 33, 0, 0, 0, 0, 36, 0, 37,2723 3 8, 39, 0, 0, 0, 0, 0, 0, 40, 41,2706 0, 33, 0, 0, 0, 0, 36, 0, 37, 38, 2707 39, 567, 0, 0, 0, 0, 0, 40, 41, 108, 2724 2708 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2725 2709 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2726 26, 27, 0, 42, 0, 43, 0, 30, 0, 0,2727 0, 0, 0, 44, 0, 0, 0, 0, 0, 0,2710 26, 27, 42, 0, 43, 0, 0, 30, 0, 0, 2711 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2728 2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2729 33, 0, 0, 0, 0, 36, 0, 19 8, 199, 39,2713 33, 0, 0, 0, 0, 36, 0, 199, 200, 39, 2730 2714 0, 0, 0, 0, 0, 0, 40, 41, 8, 9, 2731 2715 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2732 2716 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2733 2717 0, 42, 0, 260, 0, 30, 0, 0, 0, 0, 2734 0, 20 1, 0, 0, 0, 0, 0, 0, 0, 0,2718 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 2735 2719 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2736 0, 0, 0, 36, 0, 80 9, 38, 39, 0, 0,2720 0, 0, 0, 36, 0, 807, 38, 39, 0, 0, 2737 2721 0, 0, 0, 0, 40, 41, 8, 9, 10, 11, 2738 2722 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2739 22, 23, 24, 0, 0, 25, 26, 27, 0, 102 8,2740 0, 56 8, 0, 30, 0, 0, 0, 0, 0, 611,2723 22, 23, 24, 0, 0, 25, 26, 27, 0, 1025, 2724 0, 567, 0, 30, 0, 0, 0, 0, 0, 610, 2741 2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2742 2726 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2743 0, 36, 0, 80 9, 38, 39, 0, 0, 0, 0,2727 0, 36, 0, 807, 38, 39, 0, 0, 0, 0, 2744 2728 0, 0, 40, 41, 8, 9, 10, 11, 12, 13, 2745 2729 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2746 24, 0, 0, 25, 26, 27, 0, 0, 0, 56 8,2747 0, 30, 43 5, 0, 0, 0, 0, 108, 0, 0,2730 24, 0, 0, 25, 26, 27, 0, 0, 0, 567, 2731 0, 30, 434, 0, 0, 0, 0, 108, 0, 0, 2748 2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2749 2733 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2750 2734 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2751 2735 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2736 -279, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2737 30, 0, 0, 0, 0, 0, 0, 435, 0, 0, 2738 0, 926, 0, 0, 0, 108, 0, 0, 0, 0, 2739 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2740 37, 38, 0, 0, -279, 8, 9, 10, 11, 12, 2741 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2742 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2743 0, 0, 30, 434, 0, 0, 567, 0, 0, 0, 2744 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 2745 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2746 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2747 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2748 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2749 0, 30, 434, 0, 0, 0, 0, 0, 435, 0, 2750 0, 0, 1391, 0, 0, 0, 108, 0, 0, 0, 2751 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2752 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2753 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2752 2754 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2753 30, 43 5, 0, 0, 0, 0, 0, 436, 0, 0,2754 0, 929, 0, 0, 0, 108, 0, 0, 0, 0,2755 30, 434, 0, 0, 0, 0, 0, 435, 0, 0, 2756 0, 1435, 0, 0, 0, 108, 0, 0, 0, 0, 2755 2757 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2756 2758 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2757 2759 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2758 2760 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2759 43 5, 0, 0, 0, 0, 0, 436, 0, 0, 0,2760 1 394, 0, 0, 0, 108, 0, 0, 0, 0, 0,2761 434, 0, 0, 0, 0, 0, 435, 0, 0, 0, 2762 1497, 0, 0, 0, 108, 0, 0, 0, 0, 0, 2761 2763 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2762 2764 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2763 2765 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2764 25, 26, 27, 0, 0, 0, 0, 0, 30, 435,2765 0, 0, 0, 0, 0, 43 6, 0, 0, 0, 1438,2766 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2767 0, 0, 0, 0, 0, 435, 0, 0, 0, 1521, 2766 2768 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2767 0, 33, 0, 0, 0, 0, 0, 0, 37, 38,2769 0, 33, 0, 0, 0, 0, 107, 0, 37, 38, 2768 2770 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2769 2771 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2770 26, 27, 0, 0, 0, 0, 0, 30, 43 5, 0,2771 0, 0, 0, 0, 436, 0, 0, 0, 1500, 0,2772 26, 27, 0, 0, 0, 0, 0, 30, 434, 0, 2773 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2772 2774 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 2773 2775 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, … … 2775 2777 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2776 2778 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2777 0, 0, 0, 43 6, 0, 0, 0, 1524, 0, 0,2779 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 2778 2780 0, 108, 0, 0, 0, 0, 0, 0, 0, 33, 2779 0, 0, 0, 0, 107, 0, 37, 38, 8, 9,2781 0, 0, 0, 0, 0, 0, 37, 38, 8, 9, 2780 2782 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2781 2783 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2782 0, 0, 0, 0, 0, 30, 435, 0, 0, 0, 2784 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2785 1025, 0, 567, 0, 0, 0, 0, 0, 0, 0, 2786 108, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2787 0, 0, 0, 0, 0, 37, 38, 8, 9, 10, 2788 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2789 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2790 0, 0, 0, 0, 30, 0, 0, 0, 0, 1025, 2791 0, 567, 0, 0, 0, 0, 0, 0, 0, 610, 2792 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2793 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2794 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2795 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2796 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2797 247, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2798 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2799 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2800 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2801 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2802 0, 0, 30, 0, 0, 0, 0, 0, 0, 152, 2803 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 2804 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2805 0, 0, 199, 200, 8, 9, 10, 11, 12, 13, 2806 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2807 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2808 0, 30, 0, 0, 0, 0, 0, 0, 260, 0, 2809 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 2810 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2811 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2812 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2813 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2814 30, 0, 0, 0, 0, 0, 0, 247, 0, 0, 2815 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 2816 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2817 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2818 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2819 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2820 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 2821 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 2822 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2823 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2824 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2825 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2826 0, 0, 0, 0, 0, 435, 0, 0, 0, 0, 2827 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2828 0, 33, 0, 0, 0, 0, 0, 0, 199, 200, 2829 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2830 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2831 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2832 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 2833 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 2834 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, 2835 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2836 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2837 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2838 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 2839 0, 610, 0, 0, 0, 0, 0, 0, 0, 33, 2840 0, 0, 0, 0, 0, 0, 37, 38, 8, 9, 2841 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2842 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2843 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2783 2844 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2784 2845 108, 0, 0, 0, 0, 0, 0, 0, 33, 0, … … 2787 2848 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2788 2849 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2789 0, 436, 0, 0, 0, 0, 0, 0, 0, 108,2850 0, 567, 0, 0, 0, 0, 0, 0, 0, 108, 2790 2851 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2791 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2792 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2793 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2794 0, 0, 0, 30, 0, 0, 0, 0, 1028, 0, 2795 568, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2796 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2797 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2798 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2799 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2800 0, 0, 30, 0, 0, 0, 0, 1028, 0, 568, 2801 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 2802 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2803 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2804 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2805 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2806 0, 30, 0, 0, 0, 0, 0, 0, 247, 0, 2807 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 2808 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2809 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2810 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2811 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2812 30, 0, 0, 0, 0, 0, 0, 151, 0, 0, 2813 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 2814 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2815 198, 199, 8, 9, 10, 11, 12, 13, 14, 15, 2852 0, 0, 0, 0, 199, 200, 2, 198, 4, 5, 2853 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2816 2854 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2817 2855 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2818 0, 0, 0, 0, 0, 0, 260, 0, 0, 0,2819 0, 0, 0, 0, 261, 0, 0, 0, 0, 0,2820 0, 0, 33, 0, 0, 0, 0, 0, 0, 37,2821 38, 8, 9, 10, 11, 12, 13, 14, 15, 16,2822 17, 18, 19, 20, 21, 22, 23, 24, 0, 0,2823 25, 26, 27, 0, 0, 0, 0, 0, 30, 0,2824 0, 0, 0, 0, 0, 247, 0, 0, 0, 0,2825 0, 0, 0, 611, 0, 0, 0, 0, 0, 0,2826 0, 33, 0, 0, 0, 0, 0, 0, 37, 38,2827 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,2828 18, 19, 20, 21, 22, 23, 24, 0, 0, 25,2829 26, 27, 0, 0, 0, 0, 0, 30, 0, 0,2830 0, 0, 0, 0, 568, 0, 0, 0, 0, 0,2831 0, 0, 611, 0, 0, 0, 0, 0, 0, 0,2832 33, 0, 0, 0, 0, 0, 0, 37, 38, 8,2833 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,2834 19, 20, 21, 22, 23, 24, 0, 0, 25, 26,2835 27, 0, 0, 0, 0, 0, 30, 0, 0, 0,2836 0, 0, 0, 436, 0, 0, 0, 0, 0, 0,2837 0, 108, 0, 0, 0, 0, 0, 0, 0, 33,2838 0, 0, 0, 0, 0, 0, 198, 199, 8, 9,2856 0, 0, 0, 0, 0, 0, 0, 0, 605, 0, 2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2859 38, 0, 271, 0, 272, 1045, 0, 1046, 0, 0, 2860 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1529, 1055, 2861 0, 0, 1056, 32, 0, 273, 0, 0, 0, 0, 2862 0, 624, 0, 0, -401, 275, 0, 0, 276, 277, 2863 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2864 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 2865 0, 0, 0, 0, 0, 0, 0, 283, 0, 361, 2866 0, 0, 165, 0, 0, 0, 285, 363, 287, 288, 2867 289, 290, 0, 271, 0, 272, 1045, 0, 1046, 0, 2868 -126, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 0, 2869 1055, 0, 0, 1056, 32, 0, 273, 0, 0, 0, 2870 0, 0, 624, 0, 0, 0, 275, 0, 0, 276, 2871 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2872 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 2874 361, 0, 0, 165, 0, 0, 0, 285, 363, 287, 2875 288, 289, 290, 0, 0, 0, 0, 0, 0, 0, 2876 0, -126, 2, 198, 4, 5, 6, 7, 8, 9, 2839 2877 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2840 2878 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2841 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2842 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 2843 606, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2844 0, 0, 0, 0, 0, 37, 38, 8, 9, 10, 2845 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2846 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2847 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2848 0, 574, 0, 0, 0, 0, 0, 0, 0, 611, 2849 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2850 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2879 0, 0, 0, 0, 0, 30, 8, 9, 10, 11, 2851 2880 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2852 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2853 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2854 43, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2855 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2856 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2857 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2858 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2859 0, 0, 30, 0, 0, 0, 0, 0, 0, 568, 2860 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 2861 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2862 0, 0, 198, 199, 8, 9, 10, 11, 12, 13, 2863 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2864 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2865 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2866 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 2867 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2868 0, 198, 199, 2, 197, 4, 5, 6, 7, 8, 2869 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2870 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2871 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2872 0, 0, 0, 0, 0, 606, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2874 0, 34, 0, 35, 0, 0, 37, 38, 0, 271, 2875 0, 272, 1048, 0, 1049, 0, 0, 1050, 1051, 1052, 2876 1053, 1054, 1055, 1056, 1057, 0, 1058, 0, 0, 1059, 2877 32, 0, 273, 0, 0, 0, 0, 0, 625, 0, 2878 0, -402, 275, 0, 0, 276, 277, 278, 279, 40, 2879 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2880 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2881 0, 0, 0, 0, 283, 0, 361, 0, 0, 164, 2882 0, 0, 0, 285, 363, 287, 288, 289, 290, 0, 2883 0, 0, 0, 0, 0, 0, 0, -126, 2, 197, 2884 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2885 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2886 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2887 0, 30, 8, 9, 10, 11, 12, 13, 14, 15, 2888 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2889 0, 25, 26, 27, 33, 0, 34, 0, 35, 30, 2890 0, 37, 38, 0, 271, 0, 272, 1048, 0, 1049, 2891 1420, 1421, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2892 1532, 1058, 33, 1329, 1059, 32, 0, 273, 0, 37, 2893 38, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2894 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2895 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2897 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2898 287, 288, 289, 290, 271, 0, 272, 1048, 0, 1049, 2899 1420, 1421, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2900 0, 1058, 0, 0, 1059, 32, 0, 273, 0, 0, 2901 0, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2902 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2903 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2905 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2906 287, 288, 289, 290, 271, 0, 272, 1048, 0, 1049, 2907 0, 0, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2908 0, 1058, 0, 0, 1059, 32, 0, 273, 0, 0, 2909 0, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2910 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2911 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2912 0, 271, 0, 272, 0, 0, 0, 0, 0, 283, 2913 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2914 287, 288, 289, 290, 273, 0, 0, 0, 0, 0, 2915 274, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2916 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2917 0, 0, 282, 0, 0, 0, 0, 0, 271, 0, 2918 272, 0, 0, 0, 0, 0, 283, 0, 361, 0, 2919 0, 0, 0, 0, 0, 285, 892, 287, 288, 289, 2920 290, 273, 0, 0, 0, 0, 0, 274, 0, 0, 2881 22, 23, 24, 0, 0, 25, 26, 27, 33, 0, 2882 34, 0, 35, 30, 0, 37, 38, 0, 271, 0, 2883 272, 1045, 0, 1046, 1417, 1418, 1047, 1048, 1049, 1050, 2884 1051, 1052, 1053, 1054, 1529, 1055, 33, 1326, 1056, 32, 2885 0, 273, 0, 37, 38, 0, 0, 624, 0, 0, 2886 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2887 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2889 0, 0, 0, 283, 0, 361, 0, 0, 165, 0, 2890 0, 0, 285, 363, 287, 288, 289, 290, 271, 0, 2891 272, 1045, 0, 1046, 1417, 1418, 1047, 1048, 1049, 1050, 2892 1051, 1052, 1053, 1054, 0, 1055, 0, 0, 1056, 32, 2893 0, 273, 0, 0, 0, 0, 0, 624, 0, 0, 2894 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2895 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2897 0, 0, 0, 283, 0, 361, 0, 0, 165, 0, 2898 0, 0, 285, 363, 287, 288, 289, 290, 271, 0, 2899 272, 1045, 0, 1046, 0, 0, 1047, 1048, 1049, 1050, 2900 1051, 1052, 1053, 1054, 0, 1055, 0, 0, 1056, 32, 2901 0, 273, 0, 0, 0, 0, 0, 624, 0, 0, 2921 2902 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2922 2903 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2923 2904 0, 0, 0, 0, 0, 271, 0, 272, 0, 0, 2924 0, 0, 0, 283, 0, 0, 0, 0, 0, 0,2905 0, 0, 0, 283, 0, 361, 0, 0, 165, 0, 2925 2906 0, 0, 285, 363, 287, 288, 289, 290, 273, 0, 2926 2907 0, 0, 0, 0, 274, 0, 0, 0, 275, 0, … … 2928 2909 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2929 2910 0, 0, 271, 0, 272, 0, 0, 0, 0, 0, 2930 496, 0, 0, 0, 0, 0, 0, 0, 0, 285,2931 363, 287, 288, 289, 290, 273, 0, 0, 0, 0,2911 283, 0, 361, 0, 0, 0, 0, 0, 0, 285, 2912 890, 287, 288, 289, 290, 273, 0, 0, 0, 0, 2932 2913 0, 274, 0, 0, 0, 275, 0, 0, 276, 277, 2933 2914 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2934 2915 0, 0, 0, 282, 0, 0, 0, 0, 0, 271, 2935 0, 272, 0, 0, 0, 0, 0, 499, 0, 0,2916 0, 272, 0, 0, 0, 0, 0, 283, 0, 0, 2936 2917 0, 0, 0, 0, 0, 0, 285, 363, 287, 288, 2937 2918 289, 290, 273, 0, 0, 0, 0, 0, 274, 0, 2938 2919 0, 0, 275, 0, 0, 276, 277, 278, 279, 40, 2939 2920 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2940 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2941 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 2942 0, 0, 0, 285, 363, 287, 288, 289, 290, 2, 2943 197, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2944 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2945 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 2946 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2921 282, 0, 0, 0, 0, 0, 271, 0, 272, 0, 2922 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 2923 0, 0, 0, 285, 363, 287, 288, 289, 290, 273, 2924 0, 0, 0, 0, 0, 274, 0, 0, 0, 275, 2925 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2926 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2927 0, 0, 0, 271, 0, 272, 0, 0, 0, 0, 2928 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 2929 285, 363, 287, 288, 289, 290, 273, 0, 0, 0, 2930 0, 0, 274, 0, 0, 0, 275, 0, 0, 276, 2931 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2932 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 2933 0, 0, 0, 0, 0, 0, 0, 0, 501, 0, 2934 0, 0, 0, 0, 0, 0, 0, 285, 363, 287, 2935 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2936 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2937 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 2938 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2947 2939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2948 0, 0, 0, 0, 0, 33, 0, 34, 0, 35, 2949 36, 0, 167, 168, 39, 0, 0, 0, 0, 0, 2950 0, 40, 41, 196, 2, 197, 4, 5, 6, 7, 2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2941 0, 34, 0, 35, 36, 0, 168, 169, 39, 0, 2942 0, 0, 0, 0, 0, 40, 41, 197, 2, 198, 2943 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2944 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2945 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2946 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2948 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2949 0, 199, 200, 455, 2, 198, 4, 5, 6, 7, 2951 2950 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2952 2951 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, … … 2954 2953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2955 2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2956 33, 0, 34, 0, 35, 0, 0, 198, 199, 456, 2957 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2958 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2959 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2960 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2955 33, 0, 34, 0, 35, 0, 0, 37, 38, 2, 2956 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2957 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2958 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2959 0, 0, 30, 8, 9, 10, 11, 12, 13, 14, 2960 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2961 0, 0, 25, 26, 27, 33, 0, 34, 0, 35, 2962 30, 0, 199, 200, 0, 0, 0, 0, 0, 0, 2961 2963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2962 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2963 35, 0, 0, 37, 38, 2, 197, 4, 5, 6, 2964 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2965 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2966 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2969 0, 33, 0, 34, 0, 35, 0, 0, 198, 199, 2970 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2971 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2972 26, 27, 474, 475, 476, 0, 0, 30, 8, 9, 2973 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2974 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2975 33, 0, 0, 0, 0, 30, 0, 37, 38, 0, 2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2977 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2978 0, 0, 0, 0, 0, 198, 199 2964 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2965 199, 200 2979 2966 }; 2980 2967 2981 2968 #define yypact_value_is_default(yystate) \ 2982 ((yystate) == (-1 297))2969 ((yystate) == (-1306)) 2983 2970 2984 2971 #define yytable_value_is_error(yytable_value) \ … … 2987 2974 static const yytype_int16 yycheck[] = 2988 2975 { 2989 1, 112, 0, 438, 0, 42, 178, 1, 42, 177, 2990 42, 210, 177, 444, 162, 177, 102, 178, 32, 412, 2991 630, 177, 269, 177, 177, 520, 0, 1, 270, 877, 2992 606, 676, 434, 31, 558, 31, 737, 557, 877, 177, 2993 433, 434, 676, 676, 42, 586, 44, 331, 44, 437, 2994 588, 0, 557, 1026, 1027, 0, 54, 31, 557, 1027, 2995 588, 755, 60, 980, 60, 63, 0, 63, 66, 346, 2996 66, 586, 66, 350, 586, 179, 54, 1047, 42, 481, 2997 65, 192, 31, 485, 256, 987, 31, 255, 1339, 63, 2998 255, 701, 66, 255, 31, 256, 586, 31, 586, 255, 2999 586, 255, 255, 65, 399, 103, 586, 752, 106, 42, 3000 407, 408, 29, 42, 112, 101, 88, 255, 752, 752, 3001 102, 37, 510, 418, 1420, 103, 89, 109, 106, 246, 3002 589, 426, 42, 43, 0, 0, 595, 123, 1040, 124, 3003 177, 622, 37, 177, 142, 177, 142, 251, 252, 111, 3004 122, 1424, 115, 0, 1, 636, 154, 27, 154, 621, 3005 622, 65, 37, 80, 81, 31, 31, 4, 5, 6, 3006 7, 8, 9, 37, 636, 479, 101, 102, 57, 177, 3007 178, 195, 178, 37, 31, 101, 483, 103, 1484, 1440, 3008 75, 67, 391, 477, 192, 71, 106, 63, 74, 1047, 3009 76, 71, 326, 201, 501, 201, 101, 83, 103, 52, 3010 101, 209, 65, 177, 212, 387, 212, 65, 255, 66, 3011 124, 255, 101, 255, 101, 62, 387, 64, 103, 42, 3012 43, 209, 722, 714, 722, 1508, 722, 101, 212, 103, 3013 1513, 242, 654, 241, 177, 241, 1513, 101, 177, 103, 3014 103, 94, 714, 113, 114, 103, 1529, 255, 256, 103, 3015 256, 696, 106, 1536, 262, 437, 377, 241, 565, 1536, 3016 794, 269, 1240, 37, 815, 65, 437, 67, 75, 42, 3017 43, 282, 399, 65, 262, 67, 590, 124, 826, 37, 3018 594, 269, 241, 106, 405, 989, 241, 469, 826, 410, 3019 815, 418, 104, 815, 241, 102, 108, 241, 469, 426, 3020 65, 615, 246, 103, 108, 619, 233, 1290, 1291, 317, 3021 219, 317, 65, 1291, 106, 815, 101, 815, 204, 815, 3022 124, 123, 330, 331, 1304, 815, 1253, 101, 237, 103, 3023 617, 65, 185, 67, 107, 106, 212, 471, 103, 347, 3024 108, 108, 330, 351, 65, 1056, 67, 68, 817, 89, 3025 103, 0, 1, 3, 207, 209, 78, 124, 3, 347, 3026 283, 1219, 667, 351, 217, 241, 241, 101, 790, 377, 3027 1219, 246, 106, 108, 908, 115, 670, 907, 800, 387, 3028 101, 387, 31, 105, 241, 106, 65, 65, 67, 67, 3029 941, 0, 907, 102, 816, 44, 471, 405, 907, 102, 3030 109, 104, 410, 0, 942, 108, 102, 907, 262, 907, 3031 270, 907, 108, 999, 63, 269, 941, 66, 101, 941, 3032 123, 124, 101, 108, 108, 677, 1513, 106, 106, 437, 3033 283, 102, 65, 1416, 67, 362, 69, 108, 1416, 124, 3034 124, 575, 1529, 76, 77, 456, 1304, 699, 334, 1536, 3035 336, 102, 65, 461, 67, 399, 332, 123, 109, 108, 3036 103, 469, 105, 469, 113, 473, 109, 473, 101, 477, 3037 103, 101, 606, 631, 418, 101, 109, 611, 111, 736, 3038 985, 1461, 426, 108, 407, 408, 108, 583, 1468, 473, 3039 501, 101, 141, 347, 1406, 1407, 678, 351, 676, 124, 3040 108, 676, 124, 108, 676, 154, 517, 678, 1128, 520, 3041 676, 522, 676, 676, 473, 442, 124, 638, 473, 124, 3042 447, 104, 920, 108, 399, 108, 640, 471, 676, 473, 3043 928, 1511, 826, 121, 848, 123, 422, 1028, 950, 124, 3044 667, 675, 108, 418, 1013, 1014, 621, 622, 101, 952, 3045 108, 426, 201, 480, 1088, 482, 1028, 101, 124, 570, 3046 65, 636, 67, 212, 69, 108, 124, 1105, 81, 82, 3047 423, 76, 77, 496, 972, 583, 499, 101, 586, 502, 3048 588, 124, 231, 111, 711, 1487, 462, 102, 116, 117, 3049 104, 1493, 241, 1304, 108, 583, 101, 473, 473, 607, 3050 675, 1023, 1024, 1461, 253, 458, 111, 101, 1510, 103, 3051 1468, 102, 261, 1515, 748, 623, 473, 111, 573, 607, 3052 4, 5, 6, 7, 8, 9, 637, 635, 639, 102, 3053 638, 554, 102, 947, 283, 623, 109, 286, 108, 714, 3054 108, 108, 101, 496, 103, 44, 499, 635, 32, 502, 3055 123, 104, 946, 1511, 863, 108, 124, 124, 1080, 1081, 3056 102, 60, 670, 102, 63, 1156, 1157, 66, 676, 108, 3057 678, 1382, 101, 748, 103, 884, 102, 326, 62, 101, 3058 64, 103, 111, 332, 1156, 1157, 102, 4, 5, 6, 3059 7, 8, 9, 65, 102, 67, 102, 69, 709, 101, 3060 627, 101, 108, 103, 76, 77, 83, 84, 101, 1, 3061 997, 111, 870, 104, 722, 723, 812, 108, 103, 496, 3062 105, 102, 499, 667, 109, 502, 3, 108, 736, 101, 3063 101, 675, 608, 10, 11, 12, 13, 14, 920, 111, 3064 107, 118, 119, 142, 44, 62, 928, 64, 736, 920, 3065 85, 86, 44, 607, 1465, 154, 1467, 928, 407, 408, 3066 37, 857, 102, 412, 691, 108, 109, 711, 108, 623, 3067 697, 10, 11, 12, 13, 14, 65, 124, 67, 178, 3068 69, 635, 57, 60, 433, 434, 435, 76, 77, 438, 3069 1231, 102, 667, 102, 1088, 444, 101, 108, 37, 108, 3070 653, 1512, 201, 102, 748, 124, 102, 815, 108, 108, 3071 102, 664, 108, 212, 102, 668, 108, 677, 826, 102, 3072 108, 60, 471, 102, 473, 108, 702, 1230, 101, 108, 3073 103, 65, 102, 101, 483, 69, 711, 101, 108, 699, 3074 716, 141, 76, 77, 101, 1267, 103, 496, 102, 141, 3075 499, 806, 501, 502, 108, 44, 1278, 1279, 1280, 65, 3076 101, 1148, 1517, 69, 106, 999, 877, 101, 1155, 1121, 3077 76, 77, 102, 1517, 1517, 54, 55, 111, 108, 101, 3078 1325, 103, 736, 979, 1042, 1326, 10, 11, 12, 13, 3079 14, 106, 102, 877, 902, 101, 124, 103, 108, 907, 3080 908, 201, 102, 124, 196, 111, 1328, 65, 108, 201, 3081 106, 102, 920, 37, 902, 101, 565, 108, 317, 108, 3082 928, 65, 877, 67, 68, 69, 575, 787, 804, 578, 3083 101, 102, 103, 877, 1186, 1187, 60, 75, 946, 231, 3084 102, 103, 1229, 870, 65, 112, 901, 951, 69, 876, 3085 1395, 1026, 141, 1028, 120, 76, 77, 606, 101, 102, 3086 103, 261, 611, 543, 544, 545, 546, 951, 101, 261, 3087 103, 982, 264, 101, 985, 103, 987, 101, 87, 103, 3088 101, 121, 103, 283, 42, 43, 286, 111, 387, 997, 3089 111, 283, 1113, 1017, 286, 1436, 1092, 123, 101, 65, 3090 103, 877, 877, 69, 103, 101, 866, 103, 102, 997, 3091 76, 77, 201, 681, 3, 683, 1150, 101, 102, 103, 3092 877, 10, 11, 12, 13, 14, 675, 104, 1473, 1040, 3093 102, 1127, 102, 1474, 326, 101, 101, 102, 103, 1050, 3094 1327, 102, 1053, 1054, 1055, 111, 973, 696, 37, 108, 3095 109, 904, 539, 540, 346, 102, 1501, 65, 350, 67, 3096 68, 69, 102, 1047, 78, 79, 80, 716, 76, 77, 3097 101, 60, 261, 103, 65, 1150, 67, 68, 69, 108, 3098 1088, 1156, 1157, 541, 542, 76, 77, 101, 123, 103, 3099 106, 105, 1047, 101, 951, 547, 548, 286, 1496, 748, 3100 101, 877, 102, 1047, 102, 1113, 1240, 407, 408, 104, 3101 101, 104, 412, 109, 104, 407, 408, 1259, 1260, 1261, 3102 412, 109, 1525, 108, 28, 75, 1002, 102, 102, 989, 3103 108, 104, 108, 433, 434, 107, 1091, 326, 109, 102, 3104 1538, 433, 434, 435, 101, 107, 438, 107, 102, 1076, 3105 75, 102, 444, 102, 65, 804, 67, 68, 69, 124, 3106 102, 109, 1089, 1090, 456, 76, 77, 102, 1420, 102, 3107 104, 1047, 1047, 102, 102, 102, 108, 101, 104, 101, 3108 28, 102, 102, 483, 1044, 102, 102, 102, 102, 481, 3109 1047, 483, 102, 485, 1198, 102, 496, 102, 104, 499, 3110 123, 501, 502, 104, 496, 1058, 1150, 499, 1219, 501, 3111 502, 107, 102, 1197, 1198, 1290, 102, 104, 407, 408, 3112 102, 1229, 102, 412, 102, 108, 453, 102, 877, 102, 3113 107, 1483, 1484, 104, 104, 1219, 102, 102, 101, 108, 3114 1244, 1229, 106, 104, 433, 434, 108, 3, 1259, 1260, 3115 1261, 108, 104, 104, 10, 11, 12, 13, 14, 102, 3116 1244, 1121, 104, 102, 1219, 565, 1193, 108, 108, 102, 3117 104, 101, 101, 565, 1050, 1219, 1199, 1200, 1399, 1202, 3118 101, 37, 101, 575, 101, 1208, 109, 124, 1211, 107, 3119 102, 583, 102, 1389, 483, 104, 1240, 102, 106, 121, 3120 107, 102, 951, 952, 60, 108, 104, 1318, 124, 108, 3121 104, 102, 501, 102, 606, 1299, 104, 104, 104, 611, 3122 1304, 1197, 104, 102, 104, 617, 1186, 1187, 104, 45, 3123 107, 124, 124, 106, 124, 1339, 1518, 104, 102, 1517, 3124 124, 1198, 1517, 1219, 1219, 1517, 124, 1518, 107, 1304, 3125 999, 1517, 102, 1517, 1517, 1339, 1538, 104, 107, 104, 3126 1304, 104, 1219, 104, 104, 1376, 104, 1538, 1379, 1517, 3127 104, 104, 102, 102, 55, 1496, 565, 104, 104, 101, 3128 101, 1389, 54, 102, 104, 102, 575, 1244, 106, 124, 3129 1398, 1399, 75, 102, 109, 1406, 1407, 102, 1047, 102, 3130 104, 1389, 104, 104, 696, 102, 101, 89, 107, 40, 3131 1398, 104, 102, 1424, 102, 102, 102, 606, 1429, 108, 3132 89, 75, 611, 1299, 109, 102, 124, 654, 1304, 1304, 3133 0, 106, 124, 124, 726, 102, 1440, 102, 109, 107, 3134 124, 104, 104, 1219, 1455, 124, 101, 1304, 0, 1, 3135 107, 107, 102, 102, 124, 1378, 1440, 650, 549, 1312, 3136 550, 31, 551, 1219, 552, 1129, 1393, 553, 1484, 1384, 3137 1517, 1313, 42, 1517, 44, 1517, 1546, 1461, 1499, 31, 3138 32, 1123, 1339, 65, 1468, 67, 1497, 69, 1496, 1124, 3139 60, 1468, 44, 63, 76, 77, 66, 1508, 1076, 435, 3140 928, 1150, 1513, 683, 435, 930, 1461, 447, 570, 1517, 3141 1518, 973, 1518, 1468, 66, 870, 1527, 1461, 1529, 101, 3142 812, 103, 1533, 726, 1468, 1536, 632, 1511, 948, 111, 3143 1538, 1542, 1538, 1244, 473, 1546, -1, 736, -1, -1, 3144 -1, 65, 1318, 67, 1398, 69, -1, -1, 1197, 1198, 3145 102, -1, 76, 77, -1, -1, 1511, -1, -1, -1, 3146 1420, -1, -1, 790, -1, 857, -1, 1511, -1, -1, 3147 1219, -1, 142, 800, -1, -1, -1, 101, -1, 103, 3148 -1, 1230, 1231, 1440, 154, 1461, 1461, 111, -1, 816, 3149 142, 1240, 1468, 1468, -1, 1244, -1, -1, 150, -1, 3150 1376, -1, -1, 1379, 1461, -1, -1, 177, 178, -1, 3151 -1, 1468, -1, -1, -1, -1, 1469, -1, -1, -1, 3152 -1, -1, -1, 1483, 1484, -1, 178, -1, -1, -1, 3153 63, 201, -1, -1, -1, 1511, 1511, -1, -1, -1, 3154 192, -1, 212, 195, 196, 1498, -1, -1, 1424, 201, 3155 1299, -1, 952, 1429, 1511, 1304, -1, -1, 950, 951, 3156 952, -1, -1, -1, -1, -1, -1, -1, -1, 221, 3157 -1, 241, -1, 225, -1, 227, 1325, 1326, -1, 1455, 3158 113, -1, -1, 235, 1537, 255, -1, 979, -1, 241, 3159 1339, -1, -1, -1, 246, 453, 1549, 65, -1, 67, 3160 -1, 69, -1, -1, 256, 997, -1, 999, 76, 77, 3161 -1, 272, 264, -1, 10, 11, 12, 13, 14, -1, 3162 -1, 154, -1, -1, 285, 286, -1, -1, -1, -1, 3163 -1, -1, -1, 101, -1, 103, 297, -1, -1, -1, 3164 -1, 37, 0, 111, -1, -1, 1395, 317, -1, -1, 3165 -1, 1527, -1, -1, -1, -1, -1, 1533, -1, -1, 3166 -1, 331, -1, 952, 60, 326, 1542, -1, -1, -1, 3167 1546, -1, -1, 31, 326, -1, -1, -1, -1, 212, 3168 -1, 333, 10, 11, 12, 13, 14, 1436, -1, -1, 3169 -1, 1440, -1, -1, 346, -1, 1023, 1024, 350, -1, 3170 1092, 353, 363, -1, -1, 101, -1, 103, 66, 37, 3171 999, 181, 1461, -1, -1, 111, 249, 387, 188, 1468, 3172 253, 1470, -1, -1, 1473, 1474, -1, -1, -1, -1, 3173 -1, -1, 60, -1, -1, 1127, -1, 65, -1, 67, 3174 -1, 69, -1, -1, -1, -1, -1, 399, 76, 77, 3175 1499, -1, 1501, 1080, 1081, -1, 1148, -1, 63, -1, 3176 -1, 413, 1511, 1155, -1, -1, 418, 437, 73, -1, 3177 -1, -1, -1, 101, 426, 103, 1525, -1, -1, -1, 3178 -1, -1, -1, 111, -1, -1, -1, -1, 258, -1, 3179 -1, -1, 150, -1, -1, -1, 654, -1, -1, 332, 3180 -1, 453, -1, 473, 456, -1, -1, 477, 113, 10, 3181 11, 12, 13, 14, 10, 11, 12, 13, 14, 471, 3182 -1, 473, -1, -1, -1, -1, -1, -1, -1, 481, 3183 1230, -1, -1, 485, -1, -1, 37, 1229, 1230, 1231, 3184 -1, 37, 312, -1, -1, -1, -1, -1, -1, 154, 3185 320, -1, 1244, 323, -1, -1, -1, -1, -1, 60, 3186 -1, 513, -1, 221, 60, -1, -1, -1, -1, 65, 3187 -1, 67, -1, 69, -1, 536, 537, 538, 411, -1, 3188 76, 77, -1, 241, -1, -1, -1, -1, 246, -1, 2976 1, 42, 0, 32, 0, 42, 42, 412, 112, 1, 2977 0, 1, 674, 346, 0, 178, 211, 350, 178, 270, 2978 674, 178, 519, 178, 875, 674, 178, 178, 433, 178, 2979 605, 443, 557, 31, 1024, 31, 163, 331, 587, 629, 2980 269, 31, 587, 875, 42, 31, 44, 180, 44, 0, 2981 436, 735, 102, 753, 585, 0, 54, 179, 179, 31, 2982 433, 437, 60, 621, 60, 63, 0, 63, 66, 984, 2983 66, 556, 556, 63, 66, 470, 66, 635, 326, 556, 2984 31, 585, 585, 977, 42, 283, 31, 103, 750, 193, 2985 106, 1336, 255, 42, 399, 255, 750, 31, 255, 585, 2986 255, 750, 65, 255, 255, 103, 255, 480, 106, 699, 2987 585, 484, 63, 418, 112, 1044, 1421, 65, 251, 252, 2988 75, 426, 1037, 509, 37, 0, 1, 588, 101, 52, 2989 27, 37, 42, 594, 256, 256, 246, 178, 1417, 585, 2990 65, 178, 178, 42, 43, 143, 67, 143, 111, 123, 2991 71, 89, 78, 74, 712, 76, 31, 155, 585, 155, 2992 620, 621, 83, 407, 408, 65, 37, 196, 1023, 1024, 2993 101, 94, 42, 43, 71, 635, 124, 115, 65, 105, 2994 178, 179, 476, 179, 4, 5, 6, 7, 8, 9, 2995 103, 66, 1437, 1044, 210, 193, 391, 42, 43, 124, 2996 1505, 65, 1481, 103, 202, 1510, 202, 89, 107, 407, 2997 408, 65, 210, 44, 255, 213, 103, 213, 255, 255, 2998 178, 1526, 470, 213, 102, 620, 621, 1510, 1533, 178, 2999 101, 109, 103, 115, 720, 101, 106, 478, 482, 103, 3000 635, 242, 62, 241, 64, 241, 262, 1237, 57, 103, 3001 1533, 241, 712, 269, 88, 241, 500, 255, 256, 37, 3002 256, 106, 213, 186, 262, 387, 387, 792, 178, 241, 3003 44, 269, 101, 377, 720, 824, 104, 108, 673, 824, 3004 108, 282, 813, 616, 205, 208, 986, 270, 122, 399, 3005 241, 106, 101, 720, 123, 218, 241, 495, 1288, 0, 3006 498, 405, 108, 501, 124, 220, 410, 241, 418, 813, 3007 813, 142, 246, 3, 436, 436, 426, 712, 694, 317, 3008 564, 317, 237, 101, 3, 103, 574, 813, 37, 37, 3009 31, 347, 330, 331, 108, 351, 108, 37, 813, 0, 3010 1, 65, 108, 67, 68, 101, 468, 468, 589, 347, 3011 0, 746, 593, 351, 815, 553, 1250, 605, 124, 108, 3012 283, 666, 610, 83, 84, 1216, 241, 813, 142, 1053, 3013 31, 202, 1301, 614, 668, 124, 121, 618, 123, 377, 3014 905, 332, 106, 44, 1216, 65, 813, 67, 68, 387, 3015 939, 387, 101, 101, 103, 103, 0, 102, 118, 119, 3016 102, 101, 63, 103, 109, 66, 108, 405, 1484, 679, 3017 102, 681, 410, 334, 1490, 336, 875, 109, 904, 904, 3018 904, 996, 75, 1413, 675, 673, 106, 904, 202, 123, 3019 261, 1507, 1287, 1288, 938, 938, 1512, 65, 436, 67, 3020 68, 10, 11, 12, 13, 14, 697, 108, 1510, 102, 3021 1301, 107, 113, 108, 455, 286, 104, 108, 904, 102, 3022 108, 101, 460, 938, 1526, 399, 109, 1025, 37, 124, 3023 468, 1533, 468, 124, 472, 103, 472, 904, 476, 104, 3024 123, 142, 472, 108, 418, 982, 472, 261, 1403, 1404, 3025 495, 60, 426, 498, 155, 326, 501, 108, 746, 500, 3026 423, 422, 101, 630, 103, 734, 639, 101, 108, 283, 3027 461, 674, 286, 124, 674, 516, 101, 674, 519, 674, 3028 521, 472, 674, 674, 124, 674, 108, 472, 101, 1458, 3029 824, 917, 582, 637, 457, 1125, 1465, 101, 472, 925, 3030 241, 202, 124, 108, 949, 246, 78, 79, 80, 1010, 3031 1011, 108, 213, 1102, 676, 676, 666, 111, 1413, 124, 3032 1085, 101, 116, 117, 101, 1025, 108, 124, 569, 101, 3033 231, 103, 495, 105, 947, 498, 407, 408, 501, 1508, 3034 241, 412, 124, 969, 582, 108, 102, 585, 1047, 587, 3035 606, 101, 253, 103, 108, 1153, 1154, 472, 1, 709, 3036 261, 124, 433, 108, 102, 846, 622, 1458, 606, 65, 3037 124, 67, 102, 69, 1465, 102, 108, 1301, 634, 124, 3038 76, 77, 283, 102, 622, 286, 102, 572, 1023, 108, 3039 1025, 44, 124, 407, 408, 636, 634, 638, 412, 637, 3040 102, 44, 102, 102, 104, 101, 108, 60, 108, 943, 3041 63, 482, 101, 66, 103, 111, 607, 1508, 101, 433, 3042 103, 994, 111, 123, 124, 326, 861, 101, 111, 500, 3043 668, 332, 101, 65, 102, 67, 674, 69, 676, 65, 3044 108, 67, 68, 102, 76, 77, 101, 882, 103, 108, 3045 57, 102, 675, 1153, 1154, 1379, 111, 108, 399, 102, 3046 104, 653, 101, 944, 108, 108, 707, 102, 482, 101, 3047 103, 103, 105, 108, 697, 101, 109, 418, 734, 111, 3048 106, 495, 720, 721, 498, 426, 500, 501, 102, 652, 3049 143, 102, 666, 564, 108, 124, 734, 108, 101, 142, 3050 663, 868, 155, 574, 667, 101, 407, 408, 996, 700, 3051 104, 412, 1147, 106, 108, 102, 29, 1216, 1153, 1154, 3052 810, 108, 101, 714, 102, 65, 179, 67, 68, 470, 3053 108, 472, 433, 434, 605, 709, 437, 106, 1462, 610, 3054 1464, 124, 443, 4, 5, 6, 7, 8, 9, 202, 3055 564, 1085, 102, 124, 197, 917, 917, 124, 108, 202, 3056 213, 101, 785, 925, 925, 855, 106, 80, 81, 470, 3057 106, 472, 1145, 101, 102, 813, 1228, 65, 103, 1152, 3058 105, 482, 1227, 102, 109, 1509, 824, 102, 231, 108, 3059 113, 114, 102, 108, 495, 101, 788, 498, 108, 500, 3060 501, 62, 102, 64, 102, 75, 798, 102, 108, 102, 3061 108, 802, 1514, 108, 121, 108, 1315, 120, 261, 804, 3062 1514, 264, 814, 112, 101, 1514, 103, 1118, 10, 11, 3063 12, 13, 14, 65, 875, 67, 68, 69, 85, 86, 3064 283, 864, 87, 286, 65, 875, 67, 68, 542, 543, 3065 544, 545, 1287, 1226, 65, 37, 67, 68, 101, 1147, 3066 103, 123, 900, 564, 317, 103, 904, 905, 101, 102, 3067 103, 1323, 1039, 574, 1373, 104, 577, 1376, 60, 917, 3068 101, 101, 452, 326, 875, 106, 976, 925, 102, 101, 3069 875, 103, 1183, 1184, 81, 82, 10, 11, 12, 13, 3070 14, 875, 102, 346, 605, 943, 1322, 350, 102, 610, 3071 101, 102, 103, 101, 899, 103, 948, 102, 948, 101, 3072 233, 103, 1421, 37, 65, 666, 67, 1426, 69, 111, 3073 102, 101, 673, 103, 387, 76, 77, 102, 979, 902, 3074 101, 982, 103, 984, 103, 1014, 60, 123, 101, 1237, 3075 103, 1324, 108, 1452, 108, 109, 994, 106, 1196, 1197, 3076 875, 1199, 101, 986, 407, 408, 1110, 1205, 709, 412, 3077 1208, 65, 673, 67, 102, 69, 1392, 101, 102, 103, 3078 102, 1433, 76, 77, 101, 102, 103, 101, 104, 103, 3079 433, 434, 104, 694, 437, 104, 1037, 111, 109, 1089, 3080 443, 1256, 1257, 1258, 109, 746, 1047, 101, 999, 1050, 3081 1051, 1052, 455, 714, 1044, 102, 103, 111, 1041, 1471, 3082 54, 55, 108, 109, 108, 1524, 42, 43, 1020, 1021, 3083 28, 1530, 75, 948, 1124, 538, 539, 480, 102, 482, 3084 1539, 484, 540, 541, 1543, 746, 102, 1085, 108, 362, 3085 104, 108, 495, 1044, 1470, 498, 109, 500, 501, 1044, 3086 546, 547, 65, 107, 452, 102, 69, 1493, 107, 107, 3087 1044, 101, 1110, 76, 77, 102, 124, 1522, 949, 75, 3088 102, 102, 1498, 653, 109, 1077, 1078, 102, 102, 102, 3089 108, 101, 1055, 104, 102, 1118, 102, 102, 101, 28, 3090 103, 802, 104, 1088, 101, 104, 107, 102, 111, 1535, 3091 102, 102, 4, 5, 6, 7, 8, 9, 102, 102, 3092 102, 564, 102, 102, 102, 996, 1417, 104, 441, 1044, 3093 123, 574, 102, 446, 875, 949, 102, 1375, 102, 582, 3094 32, 104, 10, 11, 12, 13, 14, 3, 102, 102, 3095 107, 102, 108, 102, 10, 11, 12, 13, 14, 104, 3096 1183, 1184, 605, 1195, 1194, 1195, 479, 610, 481, 37, 3097 62, 104, 64, 616, 875, 1216, 102, 108, 102, 101, 3098 108, 37, 109, 106, 104, 104, 1216, 108, 1226, 1480, 3099 1481, 104, 60, 102, 65, 102, 67, 68, 69, 104, 3100 108, 102, 108, 1194, 60, 76, 77, 272, 104, 1241, 3101 101, 1241, 101, 101, 101, 1256, 1257, 1258, 788, 101, 3102 285, 286, 124, 107, 102, 1216, 102, 104, 798, 3, 3103 101, 1216, 297, 101, 107, 103, 10, 11, 12, 13, 3104 14, 102, 1216, 111, 814, 124, 121, 948, 949, 106, 3105 108, 694, 1396, 104, 108, 104, 65, 102, 67, 102, 3106 69, 326, 104, 37, 104, 653, 1296, 76, 77, 104, 3107 102, 1301, 1264, 104, 1315, 102, 104, 45, 104, 102, 3108 1195, 724, 106, 1275, 1276, 1277, 60, 124, 124, 107, 3109 124, 124, 101, 104, 103, 996, 1386, 107, 363, 124, 3110 109, 1216, 111, 1044, 1336, 1296, 1336, 102, 104, 107, 3111 1301, 1514, 104, 626, 1514, 104, 1301, 1514, 104, 1514, 3112 104, 104, 1514, 1514, 104, 1514, 1241, 1301, 104, 102, 3113 102, 55, 1373, 1325, 104, 1376, 101, 104, 101, 1395, 3114 54, 102, 104, 1044, 102, 124, 1309, 106, 1386, 1493, 3115 75, 102, 109, 1515, 1515, 102, 1227, 1395, 1396, 104, 3116 104, 3, 1403, 1404, 102, 104, 102, 810, 10, 11, 3117 12, 13, 14, 1535, 1535, 101, 689, 89, 107, 65, 3118 1421, 67, 695, 69, 104, 1426, 1301, 102, 0, 1, 3119 76, 77, 102, 102, 1417, 37, 102, 108, 102, 0, 3120 788, 40, 109, 124, 89, 1437, 1147, 1437, 124, 106, 3121 798, 1452, 855, 1227, 102, 101, 124, 103, 60, 31, 3122 32, 1336, 75, 124, 102, 111, 814, 109, 1458, 104, 3123 31, 107, 44, 1514, 104, 1465, 101, 1514, 1514, 107, 3124 124, 42, 102, 44, 107, 124, 1147, 102, 649, 548, 3125 1020, 1021, 549, 1494, 66, 1493, 551, 1480, 1481, 60, 3126 550, 552, 63, 1126, 1505, 66, 1216, 1458, 1381, 1510, 3127 535, 536, 537, 1458, 1465, 1216, 1514, 1515, 1508, 1515, 3128 1465, 1481, 1543, 1524, 1458, 1526, 1310, 1496, 1120, 1530, 3129 102, 1465, 1533, 1194, 1195, 1121, 1237, 1535, 1539, 1535, 3130 1073, 1465, 1543, 1466, 947, 948, 949, 1077, 1078, 574, 3131 925, 446, 681, 970, 927, 1216, 434, 1508, 434, 569, 3132 868, 631, 1437, 1508, 945, 724, 1227, 1228, 1241, 472, 3133 734, 143, 1495, 976, 1508, -1, 1237, -1, -1, 151, 3134 1241, -1, 143, 1458, -1, -1, -1, -1, -1, -1, 3135 1465, 994, 65, 996, 155, 868, 69, -1, -1, -1, 3136 1301, 874, -1, 76, 77, -1, -1, 179, -1, -1, 3137 -1, 1534, -1, -1, -1, -1, -1, 178, 179, -1, 3138 -1, 193, -1, 1546, 196, 197, -1, -1, 101, -1, 3139 202, -1, 65, 1508, 67, 1296, 69, -1, 111, -1, 3140 1301, 202, -1, 76, 77, -1, -1, -1, -1, 54, 3141 222, -1, 213, -1, 226, 65, 228, 67, 68, 69, 3142 -1, 1322, 1323, 235, -1, -1, 76, 77, 101, 241, 3143 103, -1, 1020, 1021, 246, 1336, -1, 65, 111, -1, 3144 241, 69, -1, -1, 256, 710, 1089, -1, 76, 77, 3145 -1, 1522, 264, 1467, 255, -1, -1, 970, 103, -1, 3146 -1, 106, -1, -1, -1, 1235, -1, 65, -1, -1, 3147 -1, 69, -1, 101, -1, 103, -1, -1, 76, 77, 3148 -1, 1124, 1496, 111, -1, -1, -1, -1, 753, 1077, 3149 1078, 1392, -1, -1, 1264, -1, -1, -1, -1, -1, 3150 63, -1, 1145, 101, -1, 1275, 1276, 1277, 1522, 1152, 3151 -1, -1, 0, 111, 326, -1, 317, 1458, -1, -1, 3152 -1, 333, -1, -1, 1465, -1, -1, -1, -1, -1, 3153 331, -1, 1433, -1, 346, -1, 1437, -1, 350, -1, 3154 -1, 353, -1, 31, -1, -1, -1, -1, -1, -1, 3155 113, -1, -1, -1, -1, 1325, -1, 1458, -1, -1, 3156 1073, -1, -1, -1, 1465, 210, 1467, 1508, -1, 1470, 3157 1471, -1, -1, 1086, 1087, -1, -1, -1, 66, -1, 3158 -1, -1, -1, 1226, 1227, 1228, 387, 399, -1, -1, 3159 -1, -1, 155, -1, -1, 1496, -1, 1498, 1241, -1, 3160 65, 413, 67, 68, 69, -1, 418, 1508, -1, -1, 3161 -1, 76, 77, -1, 426, -1, -1, 262, -1, -1, 3162 -1, 1522, -1, -1, 269, 890, -1, -1, -1, -1, 3163 -1, -1, 63, -1, -1, 436, 101, -1, -1, -1, 3164 452, -1, 73, 455, -1, -1, -1, 1235, -1, -1, 3165 213, -1, -1, -1, -1, -1, -1, -1, 470, -1, 3166 472, -1, -1, 151, -1, -1, -1, -1, 480, -1, 3167 -1, 472, 484, -1, -1, 476, 1264, 1190, -1, 1322, 3168 1323, 1324, 113, -1, -1, 330, 249, 1275, 1276, 1277, 3169 253, -1, -1, 1336, -1, -1, -1, -1, -1, -1, 3170 512, -1, 347, -1, -1, -1, 351, 90, 91, 92, 3171 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, 3172 -1, -1, -1, -1, 155, -1, -1, -1, -1, -1, 3173 -1, 996, -1, -1, 222, -1, -1, 1325, -1, -1, 3174 123, -1, -1, 1386, -1, 557, -1, -1, -1, 1392, 3175 -1, -1, -1, 241, -1, -1, -1, -1, 246, -1, 3176 572, -1, 574, -1, -1, -1, -1, -1, -1, 332, 3177 582, -1, -1, -1, -1, 587, -1, -1, -1, 1044, 3178 -1, 0, 213, -1, 585, -1, 587, -1, -1, -1, 3179 1433, -1, -1, 605, 1437, -1, -1, -1, 610, -1, 3180 -1, -1, -1, -1, 616, -1, -1, -1, 620, 621, 3181 -1, -1, 31, -1, -1, -1, -1, -1, 249, -1, 3182 -1, -1, 253, 635, 1467, -1, -1, 1470, 1471, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 269, -1, 3184 -1, 653, -1, -1, -1, 333, -1, 66, 411, -1, 3185 -1, -1, -1, 1496, 666, 1498, -1, -1, -1, -1, 3186 -1, 673, -1, -1, 676, 353, -1, 668, -1, 182, 3187 -1, -1, -1, 674, -1, 676, 189, 1390, -1, 1522, 3189 3188 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3190 101, -1, 103, -1, -1, 101, 558, 212, -1, 379, 3191 111, 1238, -1, 383, 575, 111, 586, -1, 588, -1, 3192 -1, 573, -1, 575, -1, -1, -1, -1, -1, 462, 3193 -1, 583, 790, 1325, 1326, 1327, 588, -1, -1, -1, 3194 1267, 1230, 800, -1, 249, -1, -1, 1339, 253, -1, 3195 -1, 1278, 1279, 1280, 606, -1, -1, -1, 816, 611, 3196 -1, -1, -1, -1, 269, 617, -1, -1, -1, 621, 3197 622, -1, -1, -1, -1, 333, -1, -1, -1, -1, 3198 -1, -1, -1, -1, 636, 90, 91, 92, 93, 94, 3199 95, 96, 97, 98, 99, 353, -1, 1389, 468, -1, 3200 670, 1328, 654, 1395, -1, -1, 676, -1, 678, -1, 3201 -1, -1, -1, -1, -1, 667, -1, -1, 123, -1, 3202 -1, -1, -1, 675, -1, -1, 678, 332, -1, -1, 3203 -1, -1, -1, 25, 26, 27, 0, -1, -1, -1, 3204 -1, 399, -1, -1, 1436, 578, -1, -1, 1440, -1, 3205 -1, 712, 722, 723, -1, 413, -1, -1, -1, 711, 3206 418, -1, 714, -1, -1, -1, -1, 31, 426, -1, 3207 1470, 723, -1, -1, 726, 608, -1, -1, 1470, -1, 3208 613, 1473, 1474, -1, -1, -1, -1, 557, 558, -1, 3209 -1, -1, -1, -1, 755, 453, 748, -1, -1, 1499, 3210 -1, 753, 66, 95, -1, 97, 411, 1499, -1, 1501, 3211 -1, -1, -1, 471, -1, 473, -1, -1, -1, -1, 3212 -1, -1, -1, 428, -1, 1525, -1, -1, -1, -1, 3213 -1, -1, -1, 1525, -1, -1, -1, -1, 790, -1, 3214 -1, -1, -1, -1, -1, 815, -1, -1, 800, -1, 3215 -1, -1, -1, 805, 806, 513, 826, 462, -1, -1, 3216 812, -1, -1, -1, 816, 1023, 1024, -1, -1, 702, 3217 -1, 641, -1, 825, -1, 645, -1, -1, -1, -1, 3218 -1, -1, 174, 716, -1, -1, 150, -1, -1, -1, 3219 -1, 183, 184, -1, -1, -1, 188, -1, 190, 191, 3220 670, -1, -1, -1, -1, 857, -1, -1, -1, -1, 3221 -1, -1, 682, -1, -1, 573, -1, -1, -1, -1, 3222 -1, -1, 1080, 1081, -1, 877, -1, -1, -1, -1, 3223 -1, 892, -1, -1, -1, -1, 1525, 907, 908, -1, 3224 -1, 0, -1, -1, -1, -1, -1, -1, -1, 901, 3225 920, -1, -1, -1, -1, -1, 908, -1, 928, -1, 3226 -1, -1, -1, 621, 622, -1, 10, 11, 12, 13, 3227 14, 804, 31, 578, -1, -1, 946, 241, 636, -1, 3228 -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, 3229 942, -1, -1, 37, -1, -1, 654, -1, 950, 951, 3230 -1, -1, -1, 608, -1, -1, -1, 66, 613, 667, 3231 -1, -1, -1, 965, -1, -1, 60, 675, -1, -1, 3232 -1, 65, -1, 67, 794, 69, -1, 979, -1, -1, 3233 -1, -1, 76, 77, -1, -1, -1, -1, 999, -1, 3234 -1, -1, -1, -1, -1, 997, -1, 999, -1, -1, 3235 -1, -1, -1, 711, -1, -1, 714, 101, -1, 103, 3236 10, 11, 12, 13, 14, 1017, -1, 111, -1, 333, 3237 -1, 1023, 1024, -1, 1026, 1027, 1028, -1, -1, -1, 3238 1238, -1, -1, -1, -1, -1, 1047, 37, -1, 353, 3239 748, 150, -1, -1, -1, 1047, -1, 702, -1, -1, 3240 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1267, 3241 60, 716, -1, -1, -1, 65, -1, 67, 1088, 69, 3242 1278, 1279, 1280, -1, -1, -1, 76, 77, 1080, 1081, 3243 -1, 736, 790, -1, -1, 399, -1, 907, 908, 1091, 3244 1092, -1, 800, -1, -1, 915, -1, 805, 806, 413, 3245 -1, 101, -1, 103, 418, -1, -1, -1, 816, -1, 3246 -1, 111, 426, 10, 11, 12, 13, 14, -1, 1002, 3247 1328, -1, -1, -1, -1, 1127, -1, -1, -1, -1, 3248 -1, -1, 241, -1, -1, -1, -1, 246, -1, 453, 3249 37, -1, -1, -1, -1, -1, 1148, -1, 1150, 804, 3250 -1, -1, -1, 1155, 1156, 1157, -1, 471, -1, 473, 3251 1171, -1, -1, 60, -1, -1, -1, -1, 65, 877, 3252 67, 991, 69, 10, 11, 12, 13, 14, -1, 76, 3253 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254 1010, -1, -1, 901, -1, -1, 1198, -1, -1, 513, 3255 37, -1, -1, -1, 101, -1, -1, -1, -1, -1, 3256 -1, -1, -1, 1215, 111, -1, -1, 1219, -1, 561, 3257 562, -1, -1, 60, 333, -1, -1, 1229, 65, -1, 3258 -1, -1, 69, -1, -1, -1, 1238, -1, 1240, 76, 3259 77, -1, 1244, -1, 353, -1, -1, 589, -1, -1, 3260 592, 593, -1, 595, -1, 597, 598, 965, -1, 573, 3261 602, 603, -1, -1, 101, 1267, 103, -1, 1088, -1, 3262 -1, -1, -1, 1093, 111, -1, 1278, 1279, 1280, -1, 3263 -1, -1, -1, -1, -1, -1, -1, -1, 1290, 1291, 3264 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3265 -1, -1, 1304, -1, 413, -1, -1, 621, 622, 418, 3266 -1, -1, -1, -1, 1197, 1023, 1024, 426, 1026, 1027, 3267 1028, -1, 636, -1, -1, 1327, 1328, 10, 11, 12, 3268 13, 14, -1, -1, -1, -1, -1, 1339, -1, 1047, 3269 654, -1, -1, -1, 453, 687, 688, 1002, -1, -1, 3270 -1, 693, -1, 667, 37, -1, -1, -1, -1, -1, 3271 -1, 675, 471, -1, 473, -1, -1, -1, -1, -1, 3272 -1, -1, 1080, 1081, -1, -1, -1, 60, -1, -1, 3273 -1, -1, 65, 1091, 0, -1, 69, 1389, -1, -1, 3274 -1, -1, -1, 76, 77, -1, -1, 711, -1, -1, 3275 714, -1, -1, -1, 513, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, 1416, 31, 1299, -1, 101, -1, 3277 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 3278 -1, -1, -1, -1, 748, -1, -1, -1, 1440, -1, 3279 -1, -1, 1150, -1, -1, -1, -1, -1, 1156, 1157, 3280 66, -1, -1, -1, -1, -1, -1, -1, -1, 1461, 3281 -1, -1, -1, -1, 573, -1, 1468, -1, -1, -1, 3282 -1, -1, -1, -1, -1, -1, 790, -1, -1, -1, 3283 -1, -1, -1, -1, -1, -1, 800, -1, -1, -1, 3284 1198, 805, 806, -1, -1, -1, -1, 1517, -1, -1, 3285 -1, -1, 816, -1, -1, -1, -1, 1215, -1, 1511, 3286 -1, 1219, 621, 622, -1, -1, 1518, -1, -1, -1, 3287 -1, -1, -1, 0, 1, -1, -1, 636, -1, -1, 3288 1238, -1, 1240, -1, 150, -1, -1, -1, -1, -1, 3289 -1, -1, 1197, -1, -1, 654, -1, -1, -1, 10, 3290 11, 12, 13, 14, 31, -1, -1, -1, 667, 1267, 3291 -1, -1, -1, 877, -1, -1, 675, -1, -1, -1, 3292 1278, 1279, 1280, -1, -1, -1, 37, -1, -1, -1, 3293 -1, -1, 1290, 1291, -1, -1, 63, 901, -1, 66, 3294 -1, -1, -1, -1, -1, -1, 1304, -1, -1, 60, 3295 -1, -1, 711, -1, 65, 714, -1, -1, 69, -1, 3296 -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, 3297 1328, -1, -1, -1, -1, 241, -1, -1, -1, -1, 3298 246, -1, -1, -1, -1, -1, -1, -1, -1, 748, 3299 101, -1, -1, -1, 1299, -1, -1, -1, -1, -1, 3300 111, 965, -1, -1, -1, -1, 25, 26, 27, -1, 3189 -1, -1, -1, -1, -1, -1, -1, 709, 461, -1, 3190 712, 332, -1, 1168, -1, -1, -1, -1, -1, 721, 3191 -1, 399, 724, -1, -1, -1, -1, -1, -1, 720, 3192 721, -1, -1, -1, -1, 413, -1, -1, -1, -1, 3193 418, -1, 151, -1, 746, -1, -1, 582, 426, 751, 3194 -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, 3301 3195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3302 -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, 3303 -1, 790, -1, -1, -1, -1, -1, -1, -1, -1, 3304 -1, 800, -1, -1, -1, -1, 805, 806, -1, -1, 3305 -1, -1, -1, -1, -1, -1, -1, 816, 1416, 1023, 3306 1024, -1, 1026, 1027, 1028, -1, -1, 333, -1, -1, 3307 -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, 3308 -1, -1, -1, 1047, -1, 212, -1, 353, -1, -1, 3309 1082, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3310 -1, -1, 121, 1461, -1, -1, -1, -1, -1, -1, 3311 1468, -1, -1, -1, 241, -1, 1080, 1081, 877, -1, 3312 -1, -1, -1, -1, -1, -1, -1, 1091, -1, -1, 3313 -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, 3314 -1, -1, 901, -1, -1, -1, -1, 413, -1, -1, 3315 -1, -1, 418, 1511, -1, 174, -1, -1, -1, -1, 3316 426, -1, 181, -1, 183, 184, -1, -1, -1, 188, 3317 -1, 190, 191, -1, -1, -1, -1, -1, -1, -1, 3318 -1, -1, -1, -1, -1, -1, 1150, 453, -1, -1, 3319 -1, -1, 1156, 1157, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, -1, 471, 965, 473, -1, -1, 3196 -1, 606, -1, -1, 452, -1, 10, 11, 12, 13, 3197 14, -1, -1, -1, -1, -1, 788, 622, -1, -1, 3198 411, -1, 470, -1, 472, -1, 798, -1, -1, 634, 3199 -1, 803, 804, 37, -1, -1, -1, 428, 810, 312, 3200 -1, -1, 814, -1, -1, -1, -1, 320, -1, -1, 3201 323, 823, 813, -1, 577, -1, 60, -1, -1, -1, 3202 -1, 65, 241, 824, 512, 69, -1, 246, -1, -1, 3203 461, -1, 76, 77, -1, -1, -1, -1, -1, -1, 3204 -1, -1, -1, 855, 607, -1, -1, -1, -1, 612, 3205 -1, -1, 10, 11, 12, 13, 14, 101, -1, 103, 3206 -1, -1, -1, 875, -1, -1, 379, 111, -1, -1, 3207 383, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3208 -1, -1, -1, -1, 572, -1, -1, 899, -1, 734, 3209 -1, -1, -1, 905, -1, -1, -1, -1, -1, -1, 3210 -1, -1, 60, 904, 905, -1, -1, 65, -1, 67, 3211 -1, 69, -1, -1, 333, -1, 917, -1, 76, 77, 3212 -1, -1, -1, -1, 925, -1, -1, 939, -1, -1, 3213 -1, -1, 620, 621, 353, 947, 948, 700, -1, -1, 3214 -1, -1, 943, 101, -1, 103, 577, 635, -1, -1, 3215 962, 714, -1, 111, 467, -1, -1, -1, -1, -1, 3216 -1, -1, -1, -1, 976, 653, -1, -1, -1, -1, 3217 -1, -1, -1, -1, -1, -1, 607, -1, 666, -1, 3218 399, 612, 994, -1, 996, 673, -1, -1, -1, -1, 3219 -1, -1, -1, -1, 413, -1, -1, 0, -1, 418, 3220 -1, -1, 1014, -1, -1, -1, -1, 426, 1020, 1021, 3221 -1, 1023, 1024, 1025, -1, -1, -1, -1, -1, -1, 3222 -1, 709, -1, -1, 712, -1, -1, -1, 31, -1, 3223 -1, -1, 1044, 452, -1, -1, -1, -1, -1, 802, 3224 -1, -1, -1, 556, 557, -1, -1, -1, -1, -1, 3225 -1, 470, -1, 472, -1, 900, -1, -1, 746, -1, 3226 -1, -1, -1, 66, -1, 1077, 1078, -1, -1, 700, 3227 -1, -1, -1, -1, -1, -1, 1088, 1089, -1, -1, 3228 -1, -1, -1, 714, 1085, -1, -1, -1, -1, -1, 3229 -1, -1, -1, 512, -1, 10, 11, 12, 13, 14, 3230 788, -1, -1, 734, -1, -1, -1, -1, -1, -1, 3231 798, -1, 1124, -1, -1, 803, 804, -1, 25, 26, 3232 27, -1, 37, -1, -1, -1, 814, 640, -1, -1, 3233 -1, 644, -1, 1145, -1, 1147, -1, -1, -1, -1, 3234 1152, 1153, 1154, -1, -1, 60, -1, -1, 151, 994, 3235 65, -1, 67, 572, 69, 668, -1, -1, -1, -1, 3236 -1, 76, 77, -1, -1, -1, -1, 680, -1, -1, 3237 -1, 802, -1, -1, -1, -1, -1, -1, -1, -1, 3238 -1, -1, -1, 1195, -1, -1, 101, 875, 95, -1, 3239 97, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3240 1212, 620, 621, -1, 1216, -1, -1, -1, -1, -1, 3241 -1, 899, -1, -1, 1226, -1, 635, -1, -1, -1, 3242 0, 1, -1, 1235, -1, 1237, -1, -1, -1, 1241, 3243 -1, -1, -1, -1, 653, -1, 999, -1, 241, -1, 3244 -1, -1, -1, 246, -1, -1, -1, 666, -1, -1, 3245 -1, 31, 1264, -1, 673, -1, -1, -1, -1, -1, 3246 -1, -1, -1, 1275, 1276, 1277, -1, -1, 175, -1, 3247 -1, -1, -1, -1, 962, 1287, 1288, 184, 185, 792, 3248 -1, -1, 189, 63, 191, 192, 66, -1, -1, 1301, 3249 709, -1, -1, 712, 0, 10, 11, 12, 13, 14, 3250 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3251 25, 26, 1324, 1325, 29, 30, 31, 32, 33, 34, 3252 -1, -1, 37, -1, 1336, 31, -1, 746, -1, -1, 3253 333, -1, 1020, 1021, -1, 1023, 1024, 1025, -1, -1, 3254 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3255 353, -1, 67, 68, -1, -1, 1044, -1, -1, -1, 3256 66, 10, 11, 12, 13, 14, -1, -1, 999, 788, 3257 -1, 151, -1, -1, 1386, -1, -1, -1, -1, 798, 3258 -1, 1226, -1, -1, 803, 804, -1, -1, 37, 1077, 3259 1078, 904, 905, -1, -1, 814, 399, -1, -1, 912, 3260 1088, 1413, -1, -1, -1, -1, -1, -1, -1, -1, 3261 413, 60, -1, -1, -1, 418, 65, -1, 67, -1, 3262 69, -1, -1, 426, -1, 1437, -1, 76, 77, -1, 3263 -1, 1194, -1, 213, -1, -1, -1, -1, -1, -1, 3264 -1, -1, -1, -1, -1, 151, 1458, -1, -1, 452, 3265 -1, -1, 101, 1465, 103, -1, 875, -1, -1, 1147, 3266 -1, 241, 111, -1, -1, 1153, 1154, 470, -1, 472, 3267 10, 11, 12, 13, 14, 988, -1, -1, -1, -1, 3268 899, -1, -1, -1, -1, -1, -1, -1, -1, 10, 3269 11, 12, 13, 14, 1007, -1, 1508, 37, -1, -1, 3270 -1, -1, -1, 1515, -1, -1, -1, 1195, -1, 512, 3271 -1, -1, -1, 1514, -1, -1, 37, -1, -1, -1, 3272 60, -1, -1, -1, 1212, 65, -1, 67, 1216, 69, 3273 -1, -1, -1, 1296, -1, 241, 76, 77, -1, 60, 3274 246, 1386, -1, 962, 65, -1, 67, 1235, 69, 1237, 3275 1395, -1, -1, -1, -1, 76, 77, -1, -1, -1, 3276 -1, 101, -1, 1194, -1, -1, -1, -1, -1, 572, 3277 -1, 111, 1085, 353, -1, -1, 1264, 1090, -1, -1, 3278 101, -1, 103, -1, -1, -1, -1, 1275, 1276, 1277, 3279 111, -1, -1, -1, -1, -1, -1, -1, -1, 1287, 3280 1288, 1020, 1021, -1, 1023, 1024, 1025, 10, 11, 12, 3281 13, 14, -1, 1301, -1, -1, -1, 620, 621, -1, 3282 -1, -1, -1, -1, -1, 1044, -1, 333, -1, -1, 3283 -1, -1, 635, 413, 37, -1, -1, 1325, -1, -1, 3284 -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, 3285 653, -1, -1, 560, 561, -1, -1, 60, 1077, 1078, 3286 -1, -1, 65, 666, -1, 1296, 69, -1, -1, 1088, 3287 673, -1, -1, 76, 77, -1, -1, -1, -1, -1, 3288 -1, 588, -1, -1, 591, 592, -1, 594, -1, 596, 3289 597, -1, 472, 399, 601, 602, -1, -1, 101, -1, 3290 -1, -1, -1, -1, -1, -1, 709, 413, 111, 712, 3291 -1, -1, 418, -1, -1, -1, -1, -1, -1, -1, 3292 426, -1, -1, -1, -1, 1413, -1, -1, 1147, -1, 3293 -1, -1, 512, -1, 1153, 1154, -1, -1, -1, -1, 3294 -1, -1, -1, 746, -1, -1, 452, -1, -1, -1, 3321 3295 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3322 -1, -1, -1, -1, 1216, -1, 353, -1, -1, -1, 3323 -1, -1, -1, -1, 1198, -1, -1, -1, -1, 258, 3324 -1, -1, -1, -1, -1, -1, -1, 513, -1, -1, 3325 -1, 1215, -1, -1, -1, 1219, -1, -1, -1, -1, 3326 -1, -1, -1, -1, 1023, 1024, -1, 1026, 1027, 1028, 3327 -1, -1, -1, -1, 1238, -1, 1240, -1, -1, -1, 3328 -1, -1, -1, -1, -1, -1, 413, -1, 1047, -1, 3296 -1, -1, -1, -1, 470, -1, 472, -1, -1, -1, 3297 1458, -1, -1, -1, -1, -1, 1195, 1465, 685, 686, 3298 -1, -1, -1, -1, 691, 788, -1, -1, -1, -1, 3299 -1, -1, 572, 1212, -1, 798, -1, 1216, -1, -1, 3300 803, 804, -1, -1, -1, -1, 512, -1, -1, -1, 3301 -1, 814, -1, -1, -1, -1, 1235, -1, 1237, -1, 3302 1508, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3303 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3304 620, 621, 29, 30, 31, 1264, -1, -1, -1, -1, 3305 37, 38, -1, -1, -1, 635, 1275, 1276, 1277, -1, 3306 -1, -1, -1, -1, -1, -1, 572, -1, 1287, 1288, 3307 -1, -1, 875, 60, -1, -1, -1, -1, -1, -1, 3308 67, 68, 1301, -1, 10, 11, 12, 13, 14, -1, 3309 -1, -1, -1, -1, -1, -1, 899, -1, -1, -1, 3310 -1, -1, 25, 26, 27, -1, 1325, -1, -1, -1, 3311 -1, 37, -1, -1, 620, 621, 103, -1, -1, -1, 3312 107, -1, -1, -1, 111, -1, -1, -1, -1, 635, 3313 -1, -1, 712, -1, 60, -1, -1, -1, -1, 65, 3314 -1, -1, -1, 69, -1, -1, -1, 653, -1, -1, 3315 76, 77, -1, -1, -1, -1, -1, -1, -1, 962, 3316 666, -1, -1, -1, 50, -1, 52, 673, -1, 55, 3317 56, 57, 95, 59, 97, 101, -1, -1, -1, -1, 3318 -1, -1, -1, -1, -1, 111, -1, -1, 74, -1, 3319 -1, -1, -1, -1, 1413, -1, -1, -1, 121, 85, 3320 86, -1, -1, 709, -1, -1, 712, -1, -1, -1, 3321 -1, -1, -1, -1, -1, -1, -1, 1020, 1021, -1, 3322 1023, 1024, 1025, -1, 804, -1, -1, -1, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, 3324 746, 1044, -1, -1, -1, -1, 1465, -1, -1, -1, 3325 -1, -1, 175, -1, -1, -1, -1, -1, -1, 182, 3326 -1, 184, 185, -1, -1, 151, 189, -1, 191, 192, 3327 -1, -1, -1, -1, 1077, 1078, -1, -1, -1, -1, 3328 -1, -1, 788, -1, -1, 1088, -1, -1, -1, 1508, 3329 -1, -1, 798, -1, -1, 875, -1, 803, 804, -1, 3330 -1, -1, -1, -1, -1, -1, -1, -1, 814, -1, 3331 -1, -1, -1, -1, -1, -1, -1, -1, 7, 899, 3332 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, 3334 -1, -1, -1, -1, 1147, -1, -1, 36, 37, 38, 3335 1153, 1154, -1, -1, -1, -1, -1, -1, -1, -1, 3336 -1, -1, -1, -1, -1, -1, -1, -1, 948, 875, 3337 59, 60, 1079, -1, -1, -1, 65, -1, -1, -1, 3338 69, -1, 962, 72, 73, 74, 75, 76, 77, -1, 3339 79, 80, 1195, 899, -1, -1, -1, -1, 87, -1, 3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1212, 3341 -1, -1, 101, 1216, 103, -1, -1, -1, -1, -1, 3342 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3343 -1, -1, 1235, -1, 1237, -1, -1, -1, -1, -1, 3344 326, -1, 328, 1023, 1024, 1025, -1, -1, -1, -1, 3345 -1, -1, -1, 339, 340, -1, 962, -1, -1, -1, 3346 -1, 1264, -1, -1, 1044, -1, -1, 353, -1, -1, 3347 -1, -1, 1275, 1276, 1277, -1, -1, -1, -1, -1, 3348 -1, -1, -1, -1, 1287, 1288, -1, -1, -1, -1, 3349 -1, -1, -1, -1, -1, -1, -1, -1, 1301, -1, 3350 -1, -1, -1, -1, -1, -1, 1213, -1, 1088, -1, 3351 -1, -1, -1, -1, 1020, 1021, -1, 1023, 1024, 1025, 3352 -1, -1, 1325, -1, -1, -1, -1, 413, -1, -1, 3353 -1, -1, -1, -1, -1, -1, -1, -1, 1044, -1, 3354 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3355 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3356 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3357 31, 1077, 1078, 1153, 1154, -1, 37, -1, -1, -1, 3358 -1, -1, 1088, -1, -1, -1, -1, -1, -1, -1, 3359 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3360 -1, 62, -1, 64, -1, -1, 67, 68, -1, -1, 3361 1413, -1, -1, -1, 1194, 1195, -1, -1, -1, -1, 3362 -1, -1, -1, -1, -1, -1, 512, -1, -1, -1, 3363 -1, -1, 1212, -1, -1, -1, 1216, 560, 561, -1, 3364 -1, 1147, 103, -1, -1, -1, -1, 1153, 1154, -1, 3365 111, -1, -1, -1, -1, 1458, -1, -1, -1, -1, 3366 -1, 1241, 1465, -1, -1, 588, -1, -1, 591, 592, 3367 -1, 594, -1, 596, 597, -1, -1, -1, 601, 602, 3368 -1, -1, -1, -1, -1, -1, 572, -1, -1, 1195, 3329 3369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3330 -1, -1, -1, 1267, -1, -1, -1, 573, -1, -1, 3331 -1, -1, -1, -1, 1278, 1279, 1280, -1, -1, -1, 3332 -1, 1080, 1081, -1, -1, -1, 1290, 1291, -1, -1, 3333 -1, -1, 1091, -1, -1, -1, -1, -1, -1, -1, 3334 1304, -1, -1, -1, -1, -1, 473, -1, -1, -1, 3335 -1, -1, -1, -1, -1, 621, 622, -1, -1, -1, 3336 -1, -1, -1, -1, 1328, -1, -1, -1, -1, -1, 3337 636, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3338 -1, -1, -1, -1, -1, -1, 513, -1, 654, -1, 3339 -1, 1150, -1, -1, -1, -1, -1, 1156, 1157, -1, 3340 -1, 667, -1, -1, -1, -1, -1, -1, -1, 675, 3341 -1, -1, -1, -1, 50, -1, 52, -1, -1, 55, 3342 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, 3343 -1, -1, -1, -1, -1, -1, -1, -1, 74, 1198, 3344 -1, -1, -1, -1, -1, 711, 573, -1, 714, 85, 3345 86, -1, 1416, -1, -1, -1, 1215, -1, -1, -1, 3346 1219, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3347 19, 20, 21, 22, 23, 24, 25, 26, 27, 1238, 3348 -1, 1240, 748, -1, -1, -1, -1, -1, 37, -1, 3349 -1, -1, -1, -1, 621, 622, -1, 1461, -1, -1, 3350 -1, -1, -1, -1, 1468, -1, -1, -1, 1267, 636, 3351 -1, 60, -1, -1, 150, -1, -1, -1, -1, 1278, 3352 1279, 1280, 71, -1, 790, -1, -1, -1, -1, -1, 3353 -1, 1290, 1291, -1, 800, -1, -1, -1, -1, 805, 3354 806, -1, 561, 562, -1, 1304, -1, 1511, -1, -1, 3355 816, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3356 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1328, 3357 589, -1, -1, 592, 593, -1, 595, -1, 597, 598, 3358 -1, -1, -1, 602, 603, -1, -1, 714, 4, 5, 3359 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3360 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3361 26, 877, -1, 29, 30, 31, -1, -1, -1, -1, 3362 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3363 -1, -1, -1, -1, -1, 901, -1, -1, -1, -1, 3364 -1, -1, -1, -1, 60, -1, 62, -1, 64, 65, 3365 -1, 67, 68, 69, -1, -1, -1, 1416, -1, -1, 3366 76, 77, -1, 682, -1, -1, -1, -1, 687, 688, 3367 -1, -1, -1, -1, 693, -1, -1, -1, -1, 806, 3368 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3369 326, -1, 328, -1, -1, 111, -1, -1, -1, 965, 3370 -1, -1, 1461, 339, 340, -1, -1, -1, -1, 1468, 3371 -1, -1, -1, -1, -1, -1, -1, 353, -1, 3, 3370 -1, -1, -1, -1, -1, 1508, 1212, 1287, 1288, -1, 3371 1216, -1, -1, -1, -1, -1, 1296, -1, -1, -1, 3372 -1, 1301, -1, -1, -1, -1, -1, -1, -1, 1235, 3373 -1, 1237, -1, -1, -1, -1, -1, 623, -1, 10, 3374 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3375 21, 22, 23, 24, 25, 26, 1336, 680, 1264, -1, 3376 -1, -1, 685, 686, -1, 651, 37, -1, 691, 1275, 3377 1276, 1277, -1, -1, -1, -1, -1, -1, -1, -1, 3378 -1, 1287, 1288, 669, 670, -1, -1, 673, -1, 60, 3379 -1, -1, -1, -1, -1, 1301, -1, -1, -1, -1, 3380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, -1, -1, -1, 701, -1, 703, -1, 1325, 3382 -1, -1, -1, -1, 710, 711, -1, -1, -1, 715, 3383 -1, -1, -1, 1413, -1, -1, -1, -1, -1, -1, 3384 -1, 727, -1, -1, -1, -1, 732, -1, -1, -1, 3385 -1, -1, -1, -1, -1, -1, -1, 1437, -1, -1, 3386 746, -1, -1, -1, -1, 36, -1, 38, -1, 63, 3387 756, -1, -1, -1, -1, -1, -1, -1, 1458, 73, 3388 -1, 75, -1, 77, -1, 1465, -1, -1, 59, -1, 3389 84, -1, -1, -1, 65, -1, -1, -1, 69, -1, 3390 -1, 72, 73, 74, 75, 76, 77, 1413, 79, 80, 3391 -1, -1, -1, -1, -1, -1, 87, -1, 804, 113, 3392 -1, 115, 116, 117, -1, -1, -1, -1, 1508, -1, 3393 101, -1, 103, -1, -1, -1, -1, 823, -1, 110, 3394 111, 112, 113, 114, 115, -1, -1, 141, -1, -1, 3395 -1, -1, 1458, 124, -1, -1, -1, -1, -1, 1465, 3396 -1, 155, -1, -1, -1, -1, -1, -1, -1, -1, 3397 856, -1, 858, 859, 860, -1, -1, 863, 864, -1, 3398 -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, 3399 -1, 36, 878, 38, -1, -1, -1, -1, -1, -1, 3400 -1, -1, 1508, -1, 890, -1, -1, 893, -1, -1, 3401 -1, -1, -1, 899, 59, -1, -1, -1, -1, 213, 3402 65, 215, 216, 217, 69, -1, 88, 72, 73, 74, 3403 75, 76, 77, -1, 79, 80, 98, -1, -1, -1, 3404 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3405 -1, 937, -1, -1, -1, 249, 101, -1, 103, 253, 3406 -1, 106, -1, -1, -1, 110, 111, 112, 113, 114, 3407 115, -1, -1, -1, -1, 269, 962, -1, -1, -1, 3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, 975, 3409 152, -1, -1, -1, 980, -1, -1, 983, -1, -1, 3410 -1, 987, -1, 165, -1, -1, 992, -1, -1, -1, 3411 996, 997, 998, -1, -1, -1, -1, -1, -1, -1, 3412 1006, -1, -1, 317, -1, 187, -1, -1, -1, -1, 3413 1016, -1, -1, -1, -1, -1, -1, -1, 332, 201, 3414 -1, -1, -1, 337, 338, -1, -1, 209, -1, 1035, 3415 1036, 345, -1, -1, -1, -1, 1079, 219, -1, -1, 3416 -1, -1, -1, -1, -1, -1, -1, -1, 230, -1, 3417 -1, -1, -1, -1, 1060, -1, -1, 1063, -1, -1, 3418 242, -1, -1, -1, -1, 247, -1, -1, -1, -1, 3419 -1, -1, -1, 387, -1, -1, -1, -1, 260, -1, 3420 -1, -1, 1088, -1, 266, -1, 268, -1, -1, -1, 3421 -1, 405, -1, -1, -1, -1, -1, 411, -1, -1, 3422 -1, 1107, 284, -1, -1, -1, -1, 1113, 1114, -1, 3423 -1, -1, -1, -1, 428, -1, 1122, 431, 432, -1, 3424 -1, -1, 1128, -1, -1, 1131, -1, 1133, -1, -1, 3425 1136, -1, -1, 447, -1, -1, -1, -1, -1, -1, 3426 -1, 1147, -1, 325, -1, 1151, -1, 461, -1, -1, 3427 -1, -1, -1, -1, 468, -1, -1, -1, -1, -1, 3428 -1, 36, 1168, 38, 1170, 1171, 1172, 1173, -1, -1, 3429 1213, -1, 354, -1, -1, -1, 358, 359, -1, 361, 3430 -1, 1187, -1, 1189, 59, 367, 368, 1193, 370, 371, 3431 65, 373, -1, 375, 69, -1, -1, 72, 73, 74, 3432 75, 76, 77, -1, 79, 80, 1212, -1, -1, -1, 3433 392, -1, 87, -1, -1, 1221, 1222, -1, 400, -1, 3434 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3435 -1, -1, -1, -1, 109, 110, 111, 112, 113, 114, 3436 115, -1, 424, -1, -1, -1, -1, -1, -1, -1, 3437 -1, -1, -1, 435, -1, -1, -1, -1, -1, -1, 3438 -1, -1, -1, 577, -1, -1, 1272, 1273, -1, -1, 3439 -1, -1, 1278, 1279, -1, -1, 458, -1, -1, -1, 3440 -1, -1, 464, 1289, -1, -1, -1, 469, -1, -1, 3441 -1, -1, -1, 607, -1, -1, -1, -1, 612, 3, 3372 3442 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3373 3443 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3374 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3375 877, -1, 1511, 37, -1, -1, -1, 1023, 1024, -1, 3376 1026, 1027, 1028, -1, -1, -1, -1, -1, -1, -1, 3377 -1, -1, -1, -1, 901, -1, 60, 413, 62, -1, 3378 64, 1047, -1, 67, 68, -1, 4, 5, 6, 7, 3444 24, 25, 26, 505, -1, 29, 30, 31, -1, -1, 3445 -1, -1, -1, 37, 1340, -1, -1, -1, 520, -1, 3446 -1, -1, -1, -1, -1, -1, 1352, -1, -1, -1, 3447 1356, 1357, 1358, -1, -1, -1, 60, -1, 62, -1, 3448 64, 65, 1368, 67, 68, 69, -1, -1, -1, -1, 3449 -1, 1377, 76, 77, 556, -1, -1, -1, -1, -1, 3450 -1, -1, -1, 565, -1, 567, 700, 1393, -1, -1, 3451 -1, 573, -1, 36, -1, 38, -1, 101, -1, 103, 3452 714, -1, -1, -1, 586, -1, -1, 111, -1, -1, 3453 -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 3454 734, -1, 65, -1, 67, 68, 69, -1, -1, 72, 3455 73, 74, 75, 76, 77, -1, 79, 80, -1, 1445, 3456 1446, -1, -1, 625, 87, -1, -1, -1, -1, -1, 3457 -1, -1, 1458, -1, 36, -1, 38, -1, 101, 1465, 3458 103, -1, 105, 106, -1, -1, -1, 110, 111, 112, 3459 113, 114, 115, -1, -1, -1, -1, 59, 792, 661, 3460 -1, -1, -1, 65, -1, -1, 1492, 69, 802, -1, 3461 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3462 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3463 824, -1, -1, -1, 1520, -1, -1, -1, 151, 101, 3464 -1, 103, -1, -1, -1, -1, 108, -1, 110, 111, 3465 112, 113, 114, 115, -1, -1, 718, -1, -1, 1545, 3466 -1, -1, -1, -1, 1550, -1, 728, 729, -1, 182, 3467 -1, -1, -1, -1, -1, -1, 189, -1, 740, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3469 -1, -1, -1, -1, -1, 757, -1, 759, -1, -1, 3470 -1, 763, -1, -1, -1, 10, 11, 12, 13, 14, 3471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3472 25, 26, -1, 917, 29, 30, 31, -1, -1, -1, 3473 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, -1, -1, -1, 258, -1, -1, -1, 943, 3475 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3476 65, -1, 67, 68, 69, -1, 828, -1, -1, -1, 3477 -1, 76, 77, 835, -1, 969, -1, -1, -1, -1, 3478 -1, -1, -1, -1, -1, -1, 848, -1, 850, -1, 3479 -1, -1, -1, -1, -1, -1, 101, -1, 103, 312, 3480 -1, -1, -1, 865, -1, 999, 111, 320, 321, 871, 3481 323, 324, -1, 326, -1, -1, -1, -1, 331, -1, 3482 -1, 883, 1016, -1, 886, -1, -1, -1, -1, -1, 3483 -1, -1, -1, -1, -1, -1, 36, 350, 38, -1, 3484 353, -1, 904, -1, -1, -1, -1, -1, 910, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 3486 -1, -1, -1, -1, -1, 65, 379, -1, -1, 69, 3487 383, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3488 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3489 -1, 1085, -1, -1, -1, -1, -1, -1, -1, -1, 3490 413, 101, -1, 103, -1, -1, 106, -1, 1102, -1, 3491 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3492 -1, -1, 142, 436, -1, -1, -1, -1, -1, -1, 3493 -1, 151, -1, 995, -1, -1, -1, -1, -1, 1001, 3494 1002, -1, -1, 163, -1, -1, -1, -1, -1, 270, 3495 271, 272, 273, -1, 467, -1, -1, 470, -1, 280, 3496 281, -1, -1, -1, 285, 286, -1, -1, -1, -1, 3497 -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 3498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3499 -1, -1, -1, -1, -1, 1057, 509, -1, -1, 512, 3500 1194, 1063, -1, -1, -1, 326, -1, -1, -1, -1, 3501 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3502 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 3503 30, 31, -1, -1, 254, -1, 1098, 37, -1, -1, 3504 -1, 1103, 363, 556, 557, -1, -1, -1, -1, 1111, 3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, 572, 3506 60, 574, -1, -1, -1, -1, -1, 67, 68, 582, 3507 -1, 71, 585, -1, 587, 588, -1, -1, 1140, -1, 3508 -1, 594, -1, -1, -1, -1, -1, -1, -1, -1, 3509 -1, 604, 605, -1, -1, 1157, -1, 610, 1160, -1, 3510 1162, 101, 1296, 103, -1, -1, -1, 620, 621, -1, 3511 -1, 111, -1, -1, -1, -1, -1, 1179, 1180, -1, 3512 -1, -1, 635, -1, -1, -1, -1, 640, 641, -1, 3513 -1, 644, 645, 353, -1, -1, -1, -1, 1200, -1, 3514 -1, -1, 362, -1, -1, -1, -1, -1, -1, -1, 3515 -1, -1, -1, -1, -1, 668, -1, -1, -1, -1, 3516 673, 674, -1, 676, -1, -1, -1, 680, -1, -1, 3517 1232, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3519 -1, -1, 412, -1, -1, -1, -1, -1, -1, 712, 3520 713, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3521 -1, -1, -1, 433, 535, 536, 537, 538, 539, 540, 3522 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 3523 551, 552, -1, 746, -1, -1, -1, 750, 751, -1, 3524 -1, -1, 462, -1, -1, -1, -1, -1, -1, -1, 3525 -1, -1, -1, 574, -1, -1, -1, 7, -1, -1, 3526 10, 11, 12, 13, 14, -1, -1, -1, -1, 1331, 3527 -1, 1333, -1, -1, -1, -1, -1, -1, -1, 792, 3528 500, -1, 1344, -1, 1346, -1, 36, 37, 38, -1, 3529 -1, 804, 512, -1, -1, -1, -1, -1, -1, 519, 3530 813, -1, 815, -1, 1366, -1, -1, -1, -1, 59, 3531 60, 824, 532, 533, -1, 65, -1, -1, -1, 69, 3532 1382, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3533 80, -1, 1394, -1, 554, 1397, -1, 87, -1, -1, 3534 -1, 1535, 855, -1, 564, -1, -1, -1, -1, -1, 3535 -1, 101, 572, 103, 675, -1, -1, 1419, -1, -1, 3536 110, 111, 112, 113, 114, 115, 1428, -1, -1, 1431, 3537 1432, -1, -1, -1, -1, -1, 697, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, 899, -1, -1, 710, 3539 -1, 904, 905, -1, -1, -1, -1, -1, -1, 912, 3540 -1, -1, -1, 623, 917, -1, -1, 1469, -1, -1, 3541 630, 1473, 925, -1, -1, -1, -1, -1, -1, -1, 3542 -1, -1, -1, 1485, -1, 938, 939, -1, -1, -1, 3543 -1, 651, 753, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, 962, 3545 -1, -1, -1, 673, -1, -1, 969, -1, -1, -1, 3546 -1, -1, -1, 976, 785, -1, -1, -1, -1, -1, 3547 -1, -1, -1, -1, -1, 988, 989, -1, -1, -1, 3548 -1, 994, -1, 996, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, 1007, 1008, -1, 1010, 1011, 1012, 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3551 1023, 1024, 1025, -1, -1, -1, -1, -1, -1, -1, 3552 -1, -1, -1, -1, -1, -1, 746, -1, 748, -1, 3553 -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, 3554 -1, -1, 762, -1, 10, 11, 12, 13, 14, 15, 3555 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3556 26, 27, -1, 29, 30, 31, -1, 1080, -1, 890, 3557 -1, 37, 1085, -1, -1, 1088, 1089, 1090, 1091, 799, 3558 -1, -1, 802, 803, 804, 36, -1, 38, -1, 1102, 3559 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 3560 -1, 67, 68, 823, -1, 71, -1, -1, 59, -1, 3561 -1, 1124, -1, -1, 65, -1, -1, -1, 69, -1, 3562 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3563 -1, -1, -1, -1, 1147, 101, 87, 103, -1, 1152, 3564 1153, 1154, -1, -1, 864, 111, -1, -1, 868, -1, 3565 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3566 111, 112, 113, 114, 115, 986, -1, -1, -1, -1, 3567 -1, -1, -1, -1, -1, 996, -1, -1, -1, 899, 3568 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3569 19, 20, 21, 22, 23, 24, 25, 26, -1, 1212, 3570 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 3571 -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 3572 -1, -1, -1, 1044, 1237, -1, -1, -1, -1, 949, 3573 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, 3574 -1, -1, 962, 963, -1, -1, -1, -1, -1, -1, 3575 970, -1, -1, -1, -1, -1, -1, 977, -1, -1, 3576 980, -1, 982, -1, -1, 36, -1, 38, -1, -1, 3577 -1, -1, -1, -1, 1287, 1288, -1, -1, -1, 999, 3578 -1, -1, 111, -1, -1, -1, -1, -1, 59, -1, 3579 -1, -1, -1, -1, 65, -1, 1016, 1118, 69, -1, 3580 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3581 -1, 1324, -1, -1, -1, -1, 87, -1, -1, 1039, 3582 -1, 1041, -1, -1, -1, -1, -1, -1, -1, -1, 3583 101, -1, 103, -1, -1, -1, 1056, -1, -1, 110, 3584 111, 112, 113, 114, 115, -1, -1, 1168, -1, -1, 3585 -1, -1, -1, -1, -1, 1075, -1, -1, -1, -1, 3586 -1, -1, 1183, 1184, -1, -1, -1, -1, 1088, -1, 3587 -1, -1, 0, 1386, -1, 3, 4, 5, 6, 7, 3379 3588 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3380 3589 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3381 -1, 29, 30, 31, 1080, 1081, -1, -1, 36, 37, 3382 38, -1, 106, -1, 951, 1091, -1, -1, -1, -1, 3383 -1, -1, -1, -1, -1, -1, -1, -1, 965, -1, 3384 -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, 3385 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3386 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3387 -1, -1, -1, -1, -1, -1, -1, 513, -1, -1, 3388 -1, -1, -1, 101, 1150, 103, 104, -1, -1, -1, 3389 1156, 1157, 110, 111, 112, 113, 114, 115, -1, 1026, 3390 1027, 1028, 10, 11, 12, 13, 14, 15, 16, 17, 3391 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3392 1047, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3393 -1, -1, 1198, -1, -1, -1, -1, 573, 7, -1, 3394 -1, 10, 11, 12, 13, 14, -1, -1, -1, 1215, 3395 -1, -1, 60, 1219, -1, -1, -1, -1, -1, -1, 3396 -1, -1, -1, 71, 1091, -1, -1, 36, 37, 38, 3397 -1, -1, 1238, -1, 1240, -1, -1, -1, -1, -1, 3398 -1, -1, -1, -1, -1, -1, -1, -1, 624, -1, 3399 59, 60, -1, -1, -1, -1, 65, -1, -1, -1, 3400 69, 1267, -1, 72, 73, 74, 75, 76, 77, -1, 3401 79, 80, 1278, 1279, 1280, -1, 652, -1, 87, -1, 3402 -1, -1, -1, -1, 1290, 1291, -1, -1, -1, 1156, 3403 1157, -1, 101, -1, 103, 671, 672, -1, 1304, 675, 3404 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3590 1413, 29, 30, 31, 32, -1, 1126, 35, -1, 37, 3591 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3592 -1, 36, -1, 38, -1, -1, -1, 1147, -1, 57, 3593 -1, -1, 60, -1, 62, -1, 64, 65, -1, 67, 3594 68, 69, -1, -1, 59, 1165, -1, 1167, 76, 77, 3595 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 3596 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3597 -1, -1, 87, 101, -1, 103, -1, -1, -1, -1, 3598 1493, -1, -1, 111, -1, -1, 101, -1, 103, -1, 3599 -1, -1, 1212, -1, -1, 110, 111, 112, 113, 114, 3600 115, 1514, 1515, -1, -1, -1, -1, 1227, -1, -1, 3405 3601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3406 -1, -1, 1328, 1082, -1, -1, -1, 703, -1, 705, 3407 1197, 1198, -1, -1, -1, -1, 712, 713, -1, -1, 3408 -1, 717, -1, -1, -1, -1, -1, -1, 1215, -1, 3409 -1, -1, 1219, 729, -1, -1, -1, -1, 734, -1, 3410 -1, -1, -1, -1, 36, -1, 38, -1, -1, -1, 3411 -1, -1, 748, -1, -1, -1, -1, 1244, -1, -1, 3412 -1, -1, 758, -1, -1, -1, -1, 59, -1, -1, 3413 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 3414 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3415 1416, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3416 -1, -1, -1, 1290, 1291, -1, -1, -1, -1, 101, 3417 806, 103, 1299, -1, -1, -1, -1, 1304, 110, 111, 3418 112, 113, 114, 115, 63, -1, -1, -1, -1, 825, 3419 -1, -1, 124, -1, 73, 1461, 75, 1216, 77, -1, 3420 -1, -1, 1468, -1, -1, 84, -1, -1, -1, -1, 3421 -1, 7, 1339, -1, 10, 11, 12, 13, 14, -1, 3422 -1, -1, 858, -1, 860, 861, 862, -1, -1, 865, 3423 866, -1, -1, -1, 113, -1, 115, 116, 117, -1, 3424 36, 37, 38, -1, 880, 1511, -1, -1, -1, -1, 3425 -1, -1, -1, -1, -1, -1, 892, -1, -1, 895, 3426 -1, 140, -1, 59, 60, 901, -1, -1, -1, 65, 3427 -1, -1, -1, 69, -1, 154, 72, 73, 74, 75, 3428 76, 77, -1, 79, 80, -1, -1, -1, -1, 1416, 3429 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3430 -1, -1, -1, -1, 940, 101, -1, 103, -1, -1, 3431 -1, -1, -1, 1440, 110, 111, 112, 113, 114, 115, 3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, 965, 3433 -1, -1, -1, 212, 1461, 214, 215, 216, -1, -1, 3434 -1, 1468, 978, -1, -1, -1, -1, 983, -1, -1, 3435 986, -1, -1, -1, 990, -1, -1, -1, -1, 995, 3436 -1, -1, -1, 999, 1000, 1001, -1, -1, -1, -1, 3437 249, -1, -1, 1009, 253, -1, -1, -1, -1, -1, 3438 -1, -1, -1, 1019, 1511, -1, -1, -1, -1, -1, 3439 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3440 -1, -1, 1038, 1039, 10, 11, 12, 13, 14, 15, 3441 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3442 26, -1, -1, 29, 30, 31, -1, 1063, -1, -1, 3443 1066, 37, 38, -1, -1, -1, -1, -1, 317, -1, 3602 -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, 3603 1250, -1, -1, 3, 4, 5, 6, 7, 8, 9, 3604 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3605 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3606 30, 31, 32, -1, -1, 35, 36, 37, 38, 39, 3607 -1, 41, -1, -1, 44, 45, 46, 47, 48, 49, 3608 50, 51, -1, 53, -1, -1, 56, 57, -1, 59, 3609 60, -1, 62, -1, 64, 65, 1417, 67, 68, 69, 3610 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3611 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3444 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3445 -1, -1, -1, 332, 60, 1091, -1, -1, 337, 338, 3446 -1, 67, 68, -1, -1, -1, 345, -1, -1, -1, 3447 -1, -1, 43, -1, 1110, -1, -1, -1, -1, -1, 3448 1116, 1117, -1, -1, -1, -1, -1, -1, -1, 1125, 3449 -1, -1, -1, -1, -1, 1131, -1, 103, 1134, -1, 3450 1136, 107, -1, 1139, -1, 111, -1, -1, 387, -1, 3451 -1, -1, -1, -1, 1150, -1, -1, 88, 1154, -1, 3452 -1, -1, -1, -1, -1, -1, 405, 98, -1, -1, 3453 -1, -1, 411, -1, 36, 1171, 38, 1173, 1174, 1175, 3454 1176, -1, -1, -1, -1, -1, -1, -1, -1, 428, 3455 -1, -1, 431, 432, 1190, -1, 1192, 59, -1, -1, 3456 1196, -1, -1, 65, -1, 67, -1, 69, -1, 448, 3457 72, 73, 74, 75, 76, 77, -1, 79, 80, 1215, 3458 151, -1, -1, 462, -1, 87, -1, -1, 1224, 1225, 3459 469, -1, -1, 164, -1, -1, -1, -1, -1, 101, 3460 -1, 103, -1, 105, 106, -1, -1, -1, 110, 111, 3461 112, 113, 114, 115, -1, 186, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, 3463 -1, -1, -1, -1, -1, -1, -1, 208, -1, 1275, 3464 1276, -1, -1, -1, -1, 1281, 1282, 218, -1, -1, 3465 -1, -1, -1, -1, -1, -1, 1292, -1, -1, 230, 3613 -1, 101, -1, 103, -1, -1, 106, -1, -1, -1, 3614 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3615 -1, -1, -1, -1, 124, -1, -1, -1, -1, 1480, 3616 1481, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3466 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3467 -1, 242, -1, -1, -1, -1, 247, -1, -1, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 3469 -1, -1, -1, -1, -1, 266, -1, 268, -1, 578, 3470 -1, -1, -1, -1, -1, -1, -1, 1343, -1, -1, 3471 -1, -1, -1, 284, -1, -1, -1, -1, -1, 1355, 3472 -1, -1, -1, 1359, 1360, 1361, -1, -1, -1, 608, 3473 -1, -1, -1, -1, 613, 1371, -1, -1, -1, -1, 3474 -1, 36, -1, 38, 1380, -1, -1, -1, -1, -1, 3475 -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, 3476 1396, -1, -1, -1, 59, -1, -1, -1, -1, -1, 3477 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 3478 75, 76, 77, 354, 79, 80, -1, 358, 359, -1, 3479 361, -1, 87, -1, -1, -1, 367, 368, -1, 370, 3480 371, -1, 373, -1, 375, -1, 101, -1, 103, -1, 3481 -1, 106, 1448, 1449, -1, 110, 111, 112, 113, 114, 3482 115, 392, -1, 702, -1, 1461, -1, -1, -1, 400, 3483 -1, 36, 1468, 38, 39, -1, 41, 716, -1, 44, 3484 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3485 -1, 56, 57, 424, 59, -1, -1, 736, -1, 1495, 3486 65, -1, -1, -1, 69, 436, -1, 72, 73, 74, 3487 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3488 -1, -1, 87, -1, -1, -1, -1, 1523, 459, -1, 3489 -1, -1, -1, -1, 465, -1, 101, -1, 103, 470, 3490 -1, 106, -1, -1, -1, 110, 111, 112, 113, 114, 3491 115, -1, 1548, -1, -1, 794, -1, 1553, -1, 124, 3492 -1, -1, -1, -1, -1, 804, -1, -1, -1, -1, 3493 -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, -1, -1, 826, -1, -1, 3495 521, -1, -1, 0, -1, -1, 3, 4, 5, 6, 3496 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3497 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3498 -1, -1, 29, 30, 31, 32, 557, -1, 35, -1, 3499 37, 38, -1, -1, -1, 566, -1, 568, -1, -1, 3500 -1, -1, -1, 574, -1, -1, -1, -1, -1, 36, 3501 57, 38, -1, 60, -1, 62, 587, 64, 65, -1, 3502 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3503 77, -1, 59, -1, -1, -1, -1, -1, 65, -1, 3504 -1, 920, 69, -1, -1, 72, 73, 74, 75, 76, 3505 77, -1, 79, 80, 101, 626, 103, -1, -1, -1, 3506 87, -1, -1, -1, 111, 150, -1, 946, -1, -1, 3507 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3508 -1, -1, 109, 110, 111, 112, 113, 114, 115, -1, 3509 -1, 662, -1, 972, -1, -1, 181, -1, -1, -1, 3510 -1, -1, -1, 188, -1, 10, 11, 12, 13, 14, 3511 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3512 25, 26, 27, 1002, 29, 30, 31, -1, -1, -1, 3513 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3514 1019, -1, -1, -1, -1, -1, -1, -1, -1, 720, 3515 -1, -1, -1, -1, -1, 60, -1, -1, -1, 730, 3516 731, -1, 67, 68, -1, -1, 71, -1, -1, -1, 3517 -1, 742, -1, 258, -1, -1, -1, -1, 36, -1, 3518 38, -1, -1, -1, -1, -1, -1, -1, 759, -1, 3519 761, -1, -1, -1, 765, -1, 101, -1, 103, -1, 3520 -1, 59, -1, -1, -1, -1, 111, 65, -1, 1088, 3521 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3522 -1, 79, 80, -1, -1, -1, 1105, 312, -1, 87, 3523 -1, -1, -1, -1, -1, 320, 321, -1, 323, 324, 3524 -1, 326, -1, 101, -1, 103, 331, -1, -1, -1, 3525 108, -1, 110, 111, 112, 113, 114, 115, -1, 830, 3526 -1, -1, -1, -1, -1, 350, 837, -1, 353, -1, 3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, 850, 3528 -1, 852, -1, -1, -1, -1, 36, -1, 38, -1, 3529 -1, -1, -1, -1, 379, -1, 867, -1, 383, -1, 3530 -1, -1, 873, -1, -1, -1, -1, -1, -1, 59, 3531 -1, -1, -1, -1, 885, 65, -1, 888, 1197, 69, 3532 -1, -1, 72, 73, 74, 75, 76, 77, 413, 79, 3533 80, -1, -1, -1, -1, -1, 907, 87, -1, -1, 3534 -1, -1, 913, -1, -1, -1, -1, -1, -1, -1, 3535 141, 101, 437, 103, -1, -1, 106, -1, -1, 150, 3536 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3537 -1, 162, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, 468, -1, -1, 471, -1, -1, -1, 3539 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3540 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 3541 30, 31, -1, -1, -1, -1, -1, 37, -1, -1, 3542 1299, -1, -1, -1, -1, 510, -1, 998, 513, -1, 3543 -1, -1, -1, 1004, 1005, -1, -1, -1, -1, -1, 3544 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, 3545 -1, 71, -1, -1, -1, -1, 76, 77, -1, -1, 3546 -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 3547 -1, -1, 557, 558, -1, -1, -1, -1, -1, -1, 3548 -1, 101, -1, 103, -1, -1, -1, -1, 573, 1060, 3549 575, 111, -1, -1, -1, 1066, -1, -1, 583, -1, 3550 -1, 586, -1, 588, 589, -1, -1, -1, -1, -1, 3551 595, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3552 605, 606, -1, -1, -1, -1, 611, -1, -1, -1, 3553 1101, -1, -1, -1, -1, 1106, 621, 622, -1, -1, 3554 -1, -1, -1, 1114, -1, -1, -1, -1, -1, -1, 3555 -1, 636, -1, -1, -1, -1, 641, 642, -1, -1, 3556 645, 646, 353, -1, -1, -1, -1, -1, -1, -1, 3557 -1, 362, 1143, -1, -1, -1, -1, -1, -1, -1, 3558 -1, -1, -1, -1, -1, 670, -1, -1, -1, 1160, 3559 675, 676, 1163, 678, 1165, -1, -1, 682, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 -1, 1182, 1183, -1, -1, -1, -1, -1, -1, -1, 3562 -1, 412, -1, -1, -1, -1, -1, -1, -1, 714, 3563 715, -1, 1203, -1, -1, -1, -1, -1, -1, -1, 3564 -1, -1, 433, 434, -1, -1, -1, -1, -1, -1, 3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1538, 3566 -1, -1, -1, 748, 1235, -1, -1, 752, 753, -1, 3567 -1, -1, 463, -1, -1, -1, -1, -1, 10, 11, 3568 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3569 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, 3570 -1, -1, -1, -1, -1, 37, -1, -1, -1, 794, 3571 501, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3572 -1, 806, 513, -1, -1, -1, -1, -1, 60, 520, 3573 815, -1, 817, 65, -1, 67, 68, 69, -1, 71, 3574 -1, 826, 533, 534, 76, 77, 10, 11, 12, 13, 3575 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3576 24, 25, 26, 1334, 555, 1336, -1, -1, -1, -1, 3577 -1, 103, 857, 37, 565, -1, 1347, -1, 1349, 111, 3578 -1, -1, 573, -1, -1, -1, -1, -1, -1, -1, 3579 -1, -1, -1, -1, -1, -1, 60, -1, 1369, -1, 3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581 -1, -1, -1, -1, 1385, -1, 901, -1, -1, -1, 3582 -1, -1, 907, 908, -1, -1, 1397, -1, -1, 1400, 3583 915, -1, -1, 624, -1, 920, -1, -1, -1, -1, 3584 631, -1, -1, 928, -1, -1, -1, -1, -1, -1, 3585 -1, 1422, -1, -1, -1, -1, 941, 942, -1, -1, 3586 1431, 652, -1, 1434, 1435, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 965, -1, -1, -1, 675, -1, -1, 972, -1, -1, 3589 -1, -1, -1, -1, 979, -1, -1, -1, -1, -1, 3590 -1, 1472, -1, -1, -1, 1476, 991, 992, -1, -1, 3591 -1, -1, 997, -1, 999, -1, -1, 1488, -1, -1, 3592 -1, -1, -1, -1, -1, 1010, 1011, -1, 1013, 1014, 3593 1015, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3594 -1, 1026, 1027, 1028, -1, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, 748, -1, 750, 3596 -1, -1, -1, -1, -1, 756, -1, -1, -1, -1, 3597 -1, -1, -1, 764, -1, 10, 11, 12, 13, 14, 3598 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3599 25, 26, 27, -1, 29, 30, 31, -1, 1083, -1, 3600 -1, -1, 37, 1088, -1, -1, 1091, 1092, 1093, 1094, 3601 801, -1, -1, 804, 805, 806, -1, -1, -1, -1, 3602 1105, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3603 -1, -1, 67, 68, 825, -1, 71, -1, -1, -1, 3604 -1, -1, 1127, -1, -1, -1, -1, 270, 271, 272, 3605 273, -1, -1, -1, -1, -1, -1, 280, 281, -1, 3606 -1, -1, 285, 286, -1, 1150, 101, -1, 103, -1, 3607 1155, 1156, 1157, -1, 297, 866, 111, -1, -1, 870, 3608 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3609 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3610 25, 26, 27, 326, 29, 30, 31, -1, -1, -1, 3611 901, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 1215, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3614 363, -1, 67, 68, 1229, -1, 71, -1, -1, -1, 3615 -1, -1, -1, -1, -1, 1240, -1, -1, -1, -1, 3616 -1, 952, -1, -1, -1, -1, -1, -1, -1, -1, 3617 -1, -1, -1, -1, 965, 966, -1, -1, 103, -1, 3618 -1, 36, 973, 38, -1, -1, 111, -1, -1, 980, 3619 -1, -1, 983, -1, 985, -1, -1, -1, -1, -1, 3620 -1, -1, -1, -1, 59, 1290, 1291, -1, -1, -1, 3621 65, 1002, -1, -1, 69, -1, -1, 72, 73, 74, 3622 75, 76, 77, -1, 79, 80, -1, -1, 1019, -1, 3623 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3624 -1, -1, 1327, -1, -1, -1, 101, -1, 103, -1, 3625 -1, 1042, -1, 1044, -1, 110, 111, 112, 113, 114, 3626 115, -1, -1, -1, -1, -1, -1, -1, 1059, -1, 3627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, -1, -1, 1078, -1, -1, 3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3630 1091, -1, -1, -1, 1389, -1, -1, -1, -1, -1, 3631 -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, 3632 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 3633 553, 1416, -1, -1, -1, -1, -1, -1, 1129, -1, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, 575, -1, -1, -1, -1, -1, -1, 1150, 3636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, 1168, -1, 1170, 3638 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 3639 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3640 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3641 -1, 1496, 29, 30, 31, 32, -1, -1, 35, -1, 3642 37, 38, -1, -1, 1215, -1, -1, -1, -1, -1, 3643 -1, -1, 1517, 1518, -1, -1, -1, -1, -1, 1230, 3644 57, -1, -1, 60, -1, 62, -1, 64, 65, -1, 3645 67, 68, 69, 1538, 677, -1, -1, -1, -1, 76, 3646 77, -1, 1253, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, 699, -1, -1, -1, 3648 -1, -1, -1, -1, 101, -1, 103, -1, -1, 712, 3649 107, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3650 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3651 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3652 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3653 32, -1, 755, 35, 36, 37, 38, 39, -1, 41, 3654 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 3655 -1, 53, -1, -1, 56, 57, -1, 59, 60, -1, 3656 62, -1, 64, 65, 787, 67, 68, 69, -1, -1, 3657 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3658 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3659 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3660 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 3661 112, 113, 114, 115, 1405, -1, -1, -1, -1, -1, 3662 -1, -1, 124, -1, -1, -1, -1, -1, 3, 4, 3618 -1, -1, 1402, -1, -1, -1, -1, -1, 3, 4, 3663 3619 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3664 3620 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3665 3621 25, 26, -1, -1, 29, 30, 31, 32, -1, -1, 3666 35, 36, 37, 38, -1, -1, -1, -1, -1, 892, 3622 35, 36, 37, 38, 10, 11, 12, 13, 14, 15, 3623 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3624 26, 27, -1, -1, 59, 60, -1, 62, -1, 64, 3625 65, 37, 67, 68, 69, -1, 1476, 72, 73, 74, 3626 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3627 -1, -1, 87, -1, 60, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, 71, 101, -1, 103, -1, 3629 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3630 115, -1, 1522, -1, -1, -1, -1, -1, -1, 124, 3631 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3632 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3633 23, 24, 25, 26, -1, -1, 29, 30, 31, 32, 3634 -1, -1, 35, 36, 37, 38, 10, 11, 12, 13, 3635 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3636 24, 25, 26, 27, -1, -1, 59, 60, -1, 62, 3637 -1, 64, 65, 37, 67, 68, 69, -1, -1, 72, 3638 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3639 -1, -1, -1, -1, 87, -1, 60, -1, -1, -1, 3640 -1, -1, -1, -1, -1, -1, -1, 71, 101, -1, 3641 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3642 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 3643 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3644 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3645 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3667 3646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3668 36, -1, 38, -1, 59, 60, -1, 62, 1479, 64, 3669 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3670 75, 76, 77, 59, 79, 80, -1, -1, -1, 65, 3671 -1, -1, 87, 69, -1, -1, 72, 73, 74, 75, 3672 76, 77, -1, 79, 80, -1, 101, -1, 103, -1, 3673 -1, 87, -1, -1, 1525, 110, 111, 112, 113, 114, 3674 115, -1, -1, -1, -1, 101, -1, 103, -1, 124, 3675 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3676 -1, -1, -1, -1, -1, -1, 989, -1, -1, -1, 3677 -1, -1, -1, -1, -1, -1, 999, 3, 4, 5, 3678 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3679 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3680 26, -1, -1, 29, 30, 31, 32, -1, -1, 35, 3681 36, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3682 -1, -1, -1, -1, 1047, -1, -1, -1, -1, 36, 3683 -1, 38, -1, 59, 60, -1, 62, -1, 64, 65, 3684 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75, 3685 76, 77, 59, 79, 80, -1, -1, -1, 65, -1, 3686 -1, 87, 69, -1, -1, 72, 73, 74, 75, 76, 3687 77, -1, 79, 80, -1, 101, -1, 103, -1, -1, 3688 87, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3689 -1, -1, -1, -1, 101, -1, 103, -1, 1121, -1, 3690 -1, -1, -1, 110, 111, 112, 113, 114, 115, -1, 3691 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3692 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3693 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3694 -1, -1, 36, 37, 38, -1, -1, -1, 1171, -1, 3647 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3648 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3649 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3650 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3695 3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3696 -1, -1, -1, 1186, 1187, 59, 60, -1, 62, -1, 3697 64, 65, -1, 67, 68, 69, -1, -1, 72, 73, 3698 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3699 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3701 104, -1, -1, -1, 108, -1, 110, 111, 112, 113, 3702 114, 115, 4, 5, 6, 7, 8, 9, 10, 11, 3703 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3704 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3705 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3708 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3709 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3710 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3712 -1, 103, 104, -1, -1, -1, 108, -1, 110, 111, 3713 112, 113, 114, 115, -1, 4, 5, 6, 7, 8, 3652 101, -1, 103, 104, -1, -1, -1, 108, -1, 110, 3653 111, 112, 113, 114, 115, 4, 5, 6, 7, 8, 3714 3654 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3715 3655 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, … … 3717 3657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3718 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3719 59, 60, -1, 62, -1, 64, 65, 1420, 67, 68,3659 59, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3720 3660 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3721 3661 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3722 3662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3723 3663 -1, -1, 101, -1, 103, 104, -1, -1, -1, 108, 3724 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3664 -1, 110, 111, 112, 113, 114, 115, 4, 5, 6, 3665 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3666 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3667 -1, -1, 29, 30, 31, -1, -1, -1, -1, 36, 3668 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3725 3669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3726 1483, 1484, 4, 5, 6, 7, 8, 9, 10, 11, 3727 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3728 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3729 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3732 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3733 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3734 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3736 -1, 103, 104, -1, -1, -1, -1, -1, 110, 111, 3737 112, 113, 114, 115, 4, 5, 6, 7, 8, 9, 3738 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3739 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3740 30, 31, -1, -1, -1, -1, 36, 37, 38, -1, 3741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 3743 60, -1, 62, -1, 64, 65, -1, 67, 68, 69, 3744 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3745 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, 101, -1, 103, -1, -1, -1, -1, -1, -1, 3748 110, 111, 112, 113, 114, 115, 4, 5, 6, 7, 3749 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3750 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3751 -1, 29, 30, 31, -1, -1, -1, -1, 36, 37, 3752 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3754 -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, 3755 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3756 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, 3759 -1, -1, 110, 111, 112, 113, 114, 115, 3, 4, 3670 -1, -1, 59, 60, -1, 62, -1, 64, 65, -1, 3671 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, 3672 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3673 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3674 -1, -1, -1, -1, 101, -1, 103, 104, -1, -1, 3675 -1, 108, -1, 110, 111, 112, 113, 114, 115, 4, 3760 3676 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3761 3677 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3762 25, 26, -1, -1, 29, 30, 31, 32, -1, -1,3763 35, -1, 37, 38, -1, -1, -1, -1, -1, -1,3678 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3679 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1, 3764 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3765 -1, -1, 57, -1, -1, 60, -1, 62, -1, 64, 3766 65, -1, 67, 68, 69, -1, -1, -1, -1, -1, 3767 -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, 59, 60, -1, 62, -1, 64, 3682 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3683 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3684 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, 101, -1, 103, 104, 3686 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3687 115, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3688 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3689 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3690 -1, -1, -1, 36, 37, 38, -1, -1, -1, -1, 3768 3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3769 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3770 -1, -1, -1, -1, -1, -1, 111, 3, 4, 5, 3692 -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 3693 -1, 64, 65, -1, 67, 68, 69, -1, -1, 72, 3694 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3695 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3696 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3697 103, 104, -1, -1, -1, -1, -1, 110, 111, 112, 3698 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 3699 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3700 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3701 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3704 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3705 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3706 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3709 111, 112, 113, 114, 115, 4, 5, 6, 7, 8, 3710 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3711 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3712 29, 30, 31, -1, -1, -1, -1, 36, 37, 38, 3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3715 59, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3716 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3717 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3719 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3720 -1, 110, 111, 112, 113, 114, 115, 3, 4, 5, 3721 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3722 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3723 26, -1, -1, 29, 30, 31, 32, -1, -1, 35, 3724 -1, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3726 -1, 57, -1, -1, 60, -1, 62, -1, 64, 65, 3727 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, 3728 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3730 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3731 -1, 107, -1, -1, -1, 111, 3, 4, 5, 6, 3732 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3733 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3734 -1, -1, 29, 30, 31, 32, -1, -1, 35, -1, 3735 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 57, -1, -1, 60, -1, 62, -1, 64, 65, -1, 3738 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3739 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3741 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3742 -1, -1, -1, -1, 111, 3, 4, 5, 6, 7, 3743 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3744 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3745 -1, 29, 30, 31, 32, -1, -1, 35, -1, 37, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 3749 68, -1, -1, 71, 3, 4, 5, 6, 7, 8, 3750 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3751 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3752 29, 30, 31, 32, -1, 103, 35, -1, 37, -1, 3753 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3755 -1, 60, -1, 62, -1, 64, -1, -1, 67, 68, 3756 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3757 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3758 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3759 -1, -1, -1, 37, 103, -1, -1, -1, -1, -1, 3760 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3761 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 3762 64, 65, -1, 67, 68, 69, -1, -1, -1, -1, 3763 -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, 3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3765 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3766 -1, -1, -1, -1, -1, -1, -1, 111, 4, 5, 3771 3767 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3772 3768 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, … … 3774 3770 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3775 3771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3776 -1, -1, -1, -1, 60, -1, 62, -1, 64, 65,3777 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1,3778 76, 77, -1, -1, -1, -1, -1, -1, -1, -1,3779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3780 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1,3781 -1, -1, -1, -1, -1, 111, 3, 4, 5, 6,3782 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,3783 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,3784 27, -1, 29, 30, 31, 32, -1, -1, 35, -1,3785 37, -1, -1, -1, -1, -1, -1, -1, -1, -1,3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3787 -1, -1, -1, 60, -1, 62, -1, 64, -1, -1,3788 67, 68, -1, -1, 71, 3, 4, 5, 6, 7,3789 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,3790 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,3791 -1, 29, 30, 31, 32, -1, 103, 35, -1, 37,3792 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3794 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67,3795 68, -1, 3, 4, 5, 6, 7, 8, 9, 10,3796 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,3797 21, 22, 23, 24, 25, 26, -1, -1, 29, 30,3798 31, -1, -1, -1, -1, 103, 37, -1, -1, -1,3799 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,3801 -1, 62, -1, 64, -1, -1, 67, 68, 4, 5,3802 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,3803 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,3804 26, -1, -1, 29, 30, 31, -1, -1, -1, -1,3805 -1, 37, 103, -1, -1, -1, -1, -1, -1, -1,3806 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,3807 3772 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 3808 3773 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, … … 3945 3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3946 3911 -1, 103, -1, -1, -1, -1, -1, -1, 110, 111, 3947 112, 113, 114, 115, 10, 11, 12, 13, 14, 15, 3948 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3949 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3950 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3912 112, 113, 114, 115, 3, 4, 5, 6, 7, 8, 3913 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3914 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3915 29, 30, 31, -1, -1, -1, -1, -1, 37, 10, 3916 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3917 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, 3918 31, 60, -1, 62, -1, 64, 37, -1, 67, 68, 3951 3919 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3952 -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, 3953 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, 3954 76, 77, 10, 11, 12, 13, 14, 15, 16, 17, 3955 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3956 -1, 29, 30, 31, -1, 101, -1, 103, -1, 37, 3957 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3921 -1, -1, -1, -1, 65, -1, 67, 68, 69, -1, 3922 71, -1, -1, -1, -1, 76, 77, 106, 10, 11, 3923 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3924 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, 3925 101, -1, 103, -1, -1, 37, -1, -1, -1, -1, 3926 111, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3927 19, 20, 21, 22, 23, 24, 25, 26, 60, -1, 3928 29, 30, 31, 65, -1, 67, 68, 69, 37, 71, 3929 -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, 3958 3930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3959 -1, -1, 60, -1, -1, -1, -1, 65, -1, 67,3960 6 8, 69, -1, -1, -1, -1, -1, -1, 76, 77,3931 -1, 60, -1, -1, -1, -1, 65, -1, 67, 68, 3932 69, 103, -1, -1, -1, -1, -1, 76, 77, 111, 3961 3933 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3962 3934 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3963 30, 31, -1, 101, -1, 103, -1, 37, -1, -1,3964 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,3935 30, 31, 101, -1, 103, -1, -1, 37, -1, -1, 3936 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3965 3937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3966 3938 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, … … 3987 3959 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 3988 3960 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3961 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3962 37, -1, -1, -1, -1, -1, -1, 103, -1, -1, 3963 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, 3964 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 3965 67, 68, -1, -1, 71, 10, 11, 12, 13, 14, 3966 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3967 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3968 -1, -1, 37, 38, -1, -1, 103, -1, -1, -1, 3969 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3970 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3971 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15, 3972 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3973 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3974 -1, 37, 38, -1, -1, -1, -1, -1, 103, -1, 3975 -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, 3976 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 3977 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 3978 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3989 3979 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3990 3980 37, 38, -1, -1, -1, -1, -1, 103, -1, -1, … … 3999 3989 68, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4000 3990 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 4001 29, 30, 31, -1, -1, -1, -1, -1, 37, 38,3991 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 4002 3992 -1, -1, -1, -1, -1, 103, -1, -1, -1, 107, 4003 3993 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 4004 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68,3994 -1, 60, -1, -1, -1, -1, 65, -1, 67, 68, 4005 3995 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4006 3996 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 4007 3997 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 4008 -1, -1, -1, -1, 103, -1, -1, -1, 107, -1,3998 -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, 4009 3999 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 4010 4000 60, -1, -1, -1, -1, -1, -1, 67, 68, 10, … … 4012 4002 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 4013 4003 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4014 -1, -1, -1, 103, -1, -1, -1, 107, -1, -1,4004 -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, 4015 4005 -1, 111, -1, -1, -1, -1, -1, -1, -1, 60, 4016 -1, -1, -1, -1, 65, -1, 67, 68, 10, 11,4006 -1, -1, -1, -1, -1, -1, 67, 68, 10, 11, 4017 4007 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4018 4008 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4019 -1, -1, -1, -1, -1, 37, 38, -1, -1, -1,4020 -1, -1, 103, -1, -1, -1, -1, -1, -1, -1,4009 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 4010 101, -1, 103, -1, -1, -1, -1, -1, -1, -1, 4021 4011 111, -1, -1, -1, -1, -1, -1, -1, 60, -1, 4022 4012 -1, -1, -1, -1, -1, 67, 68, 10, 11, 12, 4023 4013 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4024 4014 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 4025 -1, -1, -1, -1, 37, -1, -1, -1, -1, -1,4015 -1, -1, -1, -1, 37, -1, -1, -1, -1, 101, 4026 4016 -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, 4027 4017 -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, … … 4029 4019 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4030 4020 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4031 -1, -1, -1, 37, -1, -1, -1, -1, 101, -1,4021 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4032 4022 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4033 4023 -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, … … 4035 4025 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4036 4026 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4037 -1, -1, 37, -1, -1, -1, -1, 101, -1, 103,4027 -1, -1, 37, -1, -1, -1, -1, -1, -1, 103, 4038 4028 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 4039 4029 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, … … 4085 4075 -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, 4086 4076 -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 4087 -1, -1, -1, -1, 67, 68, 10, 11, 12, 13, 4077 -1, -1, -1, -1, 67, 68, 4, 5, 6, 7, 4078 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4079 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 4080 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 4081 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4083 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 4084 68, -1, 36, -1, 38, 39, -1, 41, -1, -1, 4085 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 4086 -1, -1, 56, 57, -1, 59, -1, -1, -1, -1, 4087 -1, 65, -1, -1, 102, 69, -1, -1, 72, 73, 4088 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 4089 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 4090 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 4091 -1, -1, 106, -1, -1, -1, 110, 111, 112, 113, 4092 114, 115, -1, 36, -1, 38, 39, -1, 41, -1, 4093 124, 44, 45, 46, 47, 48, 49, 50, 51, -1, 4094 53, -1, -1, 56, 57, -1, 59, -1, -1, -1, 4095 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 4096 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 4097 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 4098 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 4099 103, -1, -1, 106, -1, -1, -1, 110, 111, 112, 4100 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, 4101 -1, 124, 4, 5, 6, 7, 8, 9, 10, 11, 4102 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4103 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4104 -1, -1, -1, -1, -1, 37, 10, 11, 12, 13, 4088 4105 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4089 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4090 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4091 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4092 -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, 4093 -1, -1, -1, 67, 68, 10, 11, 12, 13, 14, 4094 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4095 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4096 -1, -1, 37, -1, -1, -1, -1, -1, -1, 103, 4097 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 4098 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 4099 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15, 4100 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4101 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4102 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 4103 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 4104 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 4105 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, 4106 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4107 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 4108 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4109 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 4111 -1, 62, -1, 64, -1, -1, 67, 68, -1, 36, 4112 -1, 38, 39, -1, 41, -1, -1, 44, 45, 46, 4113 47, 48, 49, 50, 51, -1, 53, -1, -1, 56, 4114 57, -1, 59, -1, -1, -1, -1, -1, 65, -1, 4115 -1, 102, 69, -1, -1, 72, 73, 74, 75, 76, 4116 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 4117 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4118 -1, -1, -1, -1, 101, -1, 103, -1, -1, 106, 4119 -1, -1, -1, 110, 111, 112, 113, 114, 115, -1, 4120 -1, -1, -1, -1, -1, -1, -1, 124, 4, 5, 4121 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4122 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4123 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4124 -1, 37, 10, 11, 12, 13, 14, 15, 16, 17, 4125 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 4126 -1, 29, 30, 31, 60, -1, 62, -1, 64, 37, 4127 -1, 67, 68, -1, 36, -1, 38, 39, -1, 41, 4128 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4129 52, 53, 60, 89, 56, 57, -1, 59, -1, 67, 4130 68, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4131 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4132 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4133 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 4134 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4135 112, 113, 114, 115, 36, -1, 38, 39, -1, 41, 4136 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4137 -1, 53, -1, -1, 56, 57, -1, 59, -1, -1, 4138 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4139 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4140 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4141 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 4142 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4143 112, 113, 114, 115, 36, -1, 38, 39, -1, 41, 4144 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 4145 -1, 53, -1, -1, 56, 57, -1, 59, -1, -1, 4146 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4147 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4148 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4149 -1, 36, -1, 38, -1, -1, -1, -1, -1, 101, 4150 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4151 112, 113, 114, 115, 59, -1, -1, -1, -1, -1, 4152 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 4153 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 4154 -1, -1, 87, -1, -1, -1, -1, -1, 36, -1, 4155 38, -1, -1, -1, -1, -1, 101, -1, 103, -1, 4156 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 4157 115, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4106 24, 25, 26, -1, -1, 29, 30, 31, 60, -1, 4107 62, -1, 64, 37, -1, 67, 68, -1, 36, -1, 4108 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 4109 48, 49, 50, 51, 52, 53, 60, 89, 56, 57, 4110 -1, 59, -1, 67, 68, -1, -1, 65, -1, -1, 4111 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4112 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4114 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 4115 -1, -1, 110, 111, 112, 113, 114, 115, 36, -1, 4116 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 4117 48, 49, 50, 51, -1, 53, -1, -1, 56, 57, 4118 -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4119 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4120 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4122 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 4123 -1, -1, 110, 111, 112, 113, 114, 115, 36, -1, 4124 38, 39, -1, 41, -1, -1, 44, 45, 46, 47, 4125 48, 49, 50, 51, -1, 53, -1, -1, 56, 57, 4126 -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4158 4127 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4159 4128 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4160 4129 -1, -1, -1, -1, -1, 36, -1, 38, -1, -1, 4161 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1,4130 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 4162 4131 -1, -1, 110, 111, 112, 113, 114, 115, 59, -1, 4163 4132 -1, -1, -1, -1, 65, -1, -1, -1, 69, -1, … … 4165 4134 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 4166 4135 -1, -1, 36, -1, 38, -1, -1, -1, -1, -1, 4167 101, -1, -1, -1, -1, -1, -1, -1, -1, 110,4136 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 4168 4137 111, 112, 113, 114, 115, 59, -1, -1, -1, -1, 4169 4138 -1, 65, -1, -1, -1, 69, -1, -1, 72, 73, … … 4175 4144 -1, -1, 69, -1, -1, 72, 73, 74, 75, 76, 4176 4145 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 4177 87, -1, -1, -1, -1, -1, -1, -1, -1, -1,4146 87, -1, -1, -1, -1, -1, 36, -1, 38, -1, 4178 4147 -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, 4179 -1, -1, -1, 110, 111, 112, 113, 114, 115, 4, 4180 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4181 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4182 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, 4183 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 4148 -1, -1, -1, 110, 111, 112, 113, 114, 115, 59, 4149 -1, -1, -1, -1, -1, 65, -1, -1, -1, 69, 4150 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 4151 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 4152 -1, -1, -1, 36, -1, 38, -1, -1, -1, -1, 4153 -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 4154 110, 111, 112, 113, 114, 115, 59, -1, -1, -1, 4155 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 4156 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 4157 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 4158 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 4159 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 4160 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 4161 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4162 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, 4163 -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4184 4164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4185 -1, -1, -1, -1, -1, 60, -1, 62, -1, 64, 4186 65, -1, 67, 68, 69, -1, -1, -1, -1, -1, 4187 -1, 76, 77, 3, 4, 5, 6, 7, 8, 9, 4165 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 4166 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 4167 -1, -1, -1, -1, -1, 76, 77, 3, 4, 5, 4168 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4169 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4170 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4171 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 4172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4173 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 4174 -1, 67, 68, 3, 4, 5, 6, 7, 8, 9, 4188 4175 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4189 4176 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, … … 4191 4178 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4192 4179 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4193 60, -1, 62, -1, 64, -1, -1, 67, 68, 3, 4194 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4195 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4196 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4197 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4180 60, -1, 62, -1, 64, -1, -1, 67, 68, 4, 4181 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4182 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4183 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4184 -1, -1, 37, 10, 11, 12, 13, 14, 15, 16, 4185 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4186 -1, -1, 29, 30, 31, 60, -1, 62, -1, 64, 4187 37, -1, 67, 68, -1, -1, -1, -1, -1, -1, 4198 4188 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4199 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 4200 64, -1, -1, 67, 68, 4, 5, 6, 7, 8, 4201 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4202 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 4203 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4206 -1, 60, -1, 62, -1, 64, -1, -1, 67, 68, 4207 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4208 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 4209 30, 31, 32, 33, 34, -1, -1, 37, 10, 11, 4210 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4211 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4212 60, -1, -1, -1, -1, 37, -1, 67, 68, -1, 4213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4214 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 4215 -1, -1, -1, -1, -1, 67, 68 4189 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 4190 67, 68 4216 4191 }; 4217 4192 … … 4233 4208 204, 206, 214, 216, 226, 230, 232, 271, 75, 101, 4234 4209 298, 299, 300, 298, 298, 65, 67, 68, 69, 130, 4235 131, 260, 261, 280, 281, 67, 261, 101, 291, 215,4236 21 6, 101, 111, 305, 310, 311, 312, 314, 315, 316,4237 126, 103, 207, 214, 216, 309, 313, 352, 353, 356,4238 35 7, 127, 123, 264, 106, 127, 164, 67, 68, 129,4239 259, 127, 127, 127, 108, 127, 67, 101, 111, 295,4240 304, 305, 306, 307, 308, 309, 313, 317, 318, 319,4241 3 20, 321, 3, 27, 71, 228, 3, 5, 67, 68,4242 103, 111, 206, 217, 221, 224, 233, 309, 313, 356,4243 204, 206, 216, 226, 230, 232, 271, 309, 313, 32,4244 222, 222, 217, 224, 127, 222, 217, 222, 217, 68,4210 131, 260, 261, 280, 281, 67, 68, 261, 101, 291, 4211 215, 216, 101, 111, 305, 310, 311, 312, 314, 315, 4212 316, 126, 103, 207, 214, 216, 309, 313, 352, 353, 4213 356, 357, 127, 123, 264, 106, 127, 164, 67, 68, 4214 129, 259, 127, 127, 127, 108, 127, 67, 101, 111, 4215 295, 304, 305, 306, 307, 308, 309, 313, 317, 318, 4216 319, 320, 321, 3, 27, 71, 228, 3, 5, 67, 4217 68, 103, 111, 206, 217, 221, 224, 233, 309, 313, 4218 356, 204, 206, 216, 226, 230, 232, 271, 309, 313, 4219 32, 222, 222, 217, 224, 127, 222, 217, 222, 217, 4245 4220 101, 106, 261, 106, 261, 222, 217, 108, 127, 127, 4246 4221 0, 126, 101, 164, 298, 298, 126, 103, 214, 216, … … 4263 4238 214, 216, 101, 126, 214, 352, 357, 164, 126, 259, 4264 4239 264, 206, 221, 309, 313, 164, 126, 280, 216, 226, 4265 124, 216, 216, 1 01, 126, 38, 103, 214, 236, 237,4266 23 8, 239, 352, 356, 106, 245, 261, 106, 216, 280,4267 124, 124, 291, 126, 131, 258, 3, 127, 196, 197,4268 21 1, 213, 216, 126, 297, 101, 297, 155, 305, 216,4269 1 01, 126, 259, 106, 32, 33, 34, 214, 272, 273,4270 275, 126, 121, 123, 277, 126, 217, 223, 224, 259,4271 30 1, 302, 303, 140, 153, 154, 101, 140, 142, 101,4272 1 40, 101, 101, 140, 140, 131, 103, 155, 160, 164,4273 2 14, 262, 352, 126, 142, 142, 75, 78, 79, 80,4274 10 1, 103, 105, 90, 91, 92, 93, 94, 95, 96,4275 9 7, 98, 99, 123, 159, 142, 111, 116, 117, 113,4276 114, 81, 82, 83, 84, 118, 119, 85, 86, 112,4277 12 0, 121, 87, 88, 122, 123, 359, 101, 111, 331,4278 33 2, 333, 334, 335, 102, 108, 101, 335, 103, 336,4279 101, 335, 336, 126, 103, 111, 127, 214, 216, 347,4280 3 48, 356, 357, 104, 127, 67, 101, 103, 111, 305,4281 32 2, 323, 324, 325, 326, 327, 328, 329, 330, 336,4282 33 7, 338, 339, 340, 341, 342, 111, 356, 216, 127,4283 1 27, 111, 214, 216, 349, 259, 214, 336, 349, 259,4284 12 7, 126, 126, 126, 126, 65, 103, 105, 261, 265,4285 26 6, 267, 268, 269, 126, 126, 126, 126, 126, 126,4286 295, 102, 102, 102, 102, 102, 102, 102, 304, 317,4287 101, 264, 126, 196, 126, 295, 160, 263, 160, 263,4288 2 95, 278, 103, 127, 196, 297, 164, 126, 196, 278,4289 2 14, 272, 278, 238, 239, 126, 101, 109, 111, 240,4290 242, 304, 305, 317, 335, 343, 344, 345, 346, 107,4291 237, 108, 124, 108, 124, 261, 236, 108, 358, 123,4292 2 46, 245, 216, 251, 252, 253, 256, 257, 102, 108,4293 1 64, 126, 111, 155, 126, 213, 216, 250, 348, 356,4294 289, 290, 101, 111, 322, 102, 108, 359, 261, 272,4295 101, 106, 261, 263, 272, 102, 108, 101, 102, 109,4296 262, 262, 103, 131, 137, 155, 263, 262, 126, 102,4297 10 8, 102, 101, 111, 343, 102, 108, 127, 155, 103,4298 13 1, 103, 136, 137, 126, 103, 131, 155, 155, 142,4299 14 2, 142, 143, 143, 144, 144, 145, 145, 145, 145,4300 14 6, 146, 147, 148, 149, 150, 151, 109, 160, 155,4301 126, 332, 333, 334, 216, 331, 298, 298, 155, 263,4302 126, 126, 258, 127, 216, 220, 126, 104, 356, 67,4303 129, 214, 336, 354, 104, 101, 126, 305, 323, 324,4304 3 25, 328, 338, 339, 340, 126, 216, 322, 326, 337,4305 101, 298, 341, 359, 298, 298, 359, 101, 298, 341,4306 298, 298, 298, 298, 336, 214, 347, 357, 259, 104,4307 108, 104, 108, 359, 214, 349, 359, 104, 247, 248,4308 24 9, 250, 247, 259, 127, 155, 126, 103, 261, 109,4309 108, 358, 265, 103, 109, 269, 28, 198, 199, 259,4310 2 47, 131, 295, 131, 297, 101, 335, 336, 101, 335,4311 336, 133, 111, 127, 164, 251, 102, 102, 102, 102,4312 10 2, 126, 104, 164, 196, 164, 102, 101, 111, 127,4313 1 27, 124, 124, 103, 127, 305, 344, 345, 346, 154,4314 2 16, 343, 241, 242, 241, 298, 298, 261, 298, 107,4315 261, 107, 154, 358, 127, 127, 131, 211, 127, 127,4316 247, 101, 111, 356, 127, 107, 216, 273, 274, 127,4317 12 6, 126, 101, 127, 102, 302, 160, 161, 124, 75,4318 1 90, 191, 192, 102, 102, 126, 109, 102, 102, 102,4319 1 27, 155, 216, 106, 142, 157, 155, 156, 158, 104,4320 1 08, 127, 126, 126, 102, 108, 155, 126, 153, 109,4321 251, 102, 102, 102, 331, 251, 102, 104, 103, 111,4322 1 55, 155, 216, 127, 101, 101, 214, 354, 328, 251,4323 102, 102, 102, 102, 102, 102, 102, 7, 127, 216,4324 322, 326, 337, 126, 126, 359, 126, 126, 101, 127,4325 127, 127, 127, 264, 104, 127, 153, 154, 155, 296,4326 1 26, 265, 267, 107, 126, 200, 261, 38, 39, 41,4327 4 4, 45, 46, 47, 48, 49, 50, 51, 53, 56,4328 1 03, 131, 161, 162, 163, 164, 165, 166, 168, 169,4329 18 1, 183, 184, 189, 201, 294, 28, 127, 123, 264,4330 1 26, 126, 102, 104, 127, 127, 67, 164, 216, 102,4331 102, 1 26, 104, 102, 102, 102, 343, 240, 246, 107,4332 10 2, 108, 104, 104, 127, 216, 108, 359, 276, 102,4333 2 72, 204, 206, 214, 284, 285, 286, 287, 278, 102,4334 10 2, 101, 102, 109, 108, 155, 155, 104, 266, 108,4335 1 27, 158, 104, 131, 138, 139, 155, 137, 127, 138,4336 1 53, 157, 127, 101, 335, 336, 127, 214, 336, 349,4337 12 6, 127, 127, 127, 155, 104, 126, 126, 102, 127,4338 101, 3 35, 336, 101, 341, 101, 341, 336, 215, 104,4339 7, 111, 127, 155, 251, 251, 250, 254, 254, 255,4340 247, 102, 108, 108, 102, 104, 89, 115, 127, 127,4341 1 38, 265, 155, 108, 124, 201, 205, 216, 220, 101,4342 101, 1 62, 101, 101, 124, 131, 124, 131, 111, 131,4343 1 61, 101, 164, 124, 155, 126, 109, 124, 127, 126,4344 1 27, 200, 102, 155, 251, 251, 298, 336, 102, 104,4345 101, 106, 261, 261, 127, 101, 335, 336, 126, 102,4346 1 26, 127, 295, 107, 126, 127, 127, 102, 106, 154,4347 1 24, 190, 192, 108, 127, 358, 156, 104, 127, 78,4348 1 05, 108, 127, 127, 104, 127, 102, 126, 102, 214,4349 349, 104, 104, 104, 127, 247, 247, 102, 126, 126,4350 12 6, 155, 155, 127, 104, 127, 127, 127, 127, 102,4351 1 26, 126, 154, 154, 104, 104, 127, 127, 261, 216,4352 160, 1 60, 45, 160, 126, 124, 124, 160, 124, 124,4353 1 60, 54, 55, 185, 186, 187, 124, 127, 298, 166,4354 1 07, 124, 127, 127, 278, 236, 106, 104, 126, 89,4355 2 56, 257, 102, 285, 108, 124, 108, 124, 107, 283,4356 1 02, 102, 109, 158, 104, 107, 104, 103, 139, 103,4357 1 39, 139, 104, 104, 104, 251, 104, 127, 127, 251,4358 251, 251, 127, 127, 104, 104, 102, 102, 104, 108,4359 89, 250, 89, 127, 104, 104, 102, 102, 101, 102,4360 1 61, 182, 201, 124, 102, 101, 164, 187, 54, 104,4361 1 62, 102, 102, 102, 107, 236, 251, 106, 126, 126,4362 284, 124, 75, 193, 127, 109, 126, 126, 127, 102,4363 1 02, 127, 127, 127, 104, 104, 126, 127, 104, 162,4364 42, 43, 106, 172, 173, 174, 160, 162, 127, 102,4365 161, 106, 174, 89, 126, 101, 106, 261, 107, 127,4366 1 26, 259, 295, 107, 102, 108, 104, 155, 138, 138,4367 102, 102, 102, 102, 254, 40, 154, 170, 171, 296,4368 1 09, 126, 162, 172, 102, 124, 162, 124, 126, 102,4369 126, 89, 126, 236, 106, 102, 284, 124, 75, 109,4370 127, 127, 162, 89, 108, 109, 127, 194, 195, 201,4371 1 24, 161, 161, 194, 164, 188, 214, 352, 102, 126,4372 1 07, 236, 107, 155, 104, 104, 154, 170, 173, 175,4373 17 6, 126, 124, 173, 177, 178, 127, 101, 111, 295,4374 343, 131, 164, 188, 107, 101, 162, 167, 107, 173,4375 201, 161, 52, 167, 180, 107, 173, 102, 216, 127,4376 278, 162, 167, 124, 179, 180, 167, 180, 164, 102,4377 1 02, 179, 127, 164, 1274240 124, 216, 216, 126, 38, 103, 214, 236, 237, 238, 4241 239, 352, 356, 106, 245, 261, 106, 216, 280, 124, 4242 124, 291, 126, 131, 258, 3, 127, 196, 197, 211, 4243 213, 216, 126, 297, 101, 297, 155, 305, 216, 101, 4244 126, 259, 106, 32, 33, 34, 214, 272, 273, 275, 4245 126, 121, 123, 277, 126, 217, 223, 224, 259, 301, 4246 302, 303, 140, 153, 154, 101, 140, 142, 101, 140, 4247 101, 101, 140, 140, 131, 103, 155, 160, 164, 214, 4248 262, 352, 126, 142, 142, 75, 78, 79, 80, 101, 4249 103, 105, 90, 91, 92, 93, 94, 95, 96, 97, 4250 98, 99, 123, 159, 142, 111, 116, 117, 113, 114, 4251 81, 82, 83, 84, 118, 119, 85, 86, 112, 120, 4252 121, 87, 88, 122, 123, 359, 101, 111, 331, 332, 4253 333, 334, 335, 102, 108, 101, 335, 103, 336, 101, 4254 335, 336, 126, 103, 111, 127, 214, 216, 347, 348, 4255 356, 357, 104, 127, 67, 101, 103, 111, 305, 322, 4256 323, 324, 325, 326, 327, 328, 329, 330, 336, 337, 4257 338, 339, 340, 341, 342, 111, 356, 216, 127, 127, 4258 111, 214, 216, 349, 259, 214, 336, 349, 259, 127, 4259 126, 126, 126, 126, 65, 103, 105, 261, 265, 266, 4260 267, 268, 269, 126, 126, 126, 126, 126, 126, 295, 4261 102, 102, 102, 102, 102, 102, 102, 304, 317, 101, 4262 264, 126, 196, 126, 295, 160, 263, 160, 263, 295, 4263 278, 103, 127, 196, 297, 164, 126, 196, 214, 272, 4264 278, 238, 239, 126, 101, 109, 111, 240, 242, 304, 4265 305, 317, 335, 343, 344, 345, 346, 107, 237, 108, 4266 124, 108, 124, 261, 236, 108, 358, 123, 246, 245, 4267 216, 251, 252, 253, 256, 257, 102, 108, 164, 126, 4268 111, 155, 126, 213, 216, 250, 348, 356, 289, 290, 4269 101, 111, 322, 102, 108, 359, 261, 272, 101, 106, 4270 261, 263, 272, 102, 108, 101, 102, 109, 262, 262, 4271 103, 131, 137, 155, 263, 262, 126, 102, 108, 102, 4272 101, 111, 343, 102, 108, 127, 155, 103, 131, 103, 4273 136, 137, 126, 103, 131, 155, 155, 142, 142, 142, 4274 143, 143, 144, 144, 145, 145, 145, 145, 146, 146, 4275 147, 148, 149, 150, 151, 109, 160, 155, 126, 332, 4276 333, 334, 216, 331, 298, 298, 155, 263, 126, 126, 4277 258, 127, 216, 220, 126, 104, 356, 67, 129, 214, 4278 336, 354, 104, 101, 126, 305, 323, 324, 325, 328, 4279 338, 339, 340, 126, 216, 322, 326, 337, 101, 298, 4280 341, 359, 298, 298, 359, 101, 298, 341, 298, 298, 4281 298, 298, 336, 214, 347, 357, 259, 104, 108, 104, 4282 108, 359, 214, 349, 359, 104, 247, 248, 249, 250, 4283 247, 259, 127, 155, 126, 103, 261, 109, 108, 358, 4284 265, 103, 109, 269, 28, 198, 199, 259, 247, 131, 4285 295, 131, 297, 101, 335, 336, 101, 335, 336, 133, 4286 111, 127, 164, 251, 102, 102, 102, 102, 102, 126, 4287 104, 164, 196, 164, 101, 111, 127, 127, 124, 124, 4288 103, 127, 305, 344, 345, 346, 154, 216, 343, 241, 4289 242, 241, 298, 298, 261, 298, 107, 261, 107, 154, 4290 358, 127, 127, 131, 211, 127, 127, 247, 101, 111, 4291 356, 127, 107, 216, 273, 274, 127, 126, 126, 101, 4292 127, 102, 302, 160, 161, 124, 75, 190, 191, 192, 4293 102, 102, 126, 109, 102, 102, 102, 127, 155, 216, 4294 106, 142, 157, 155, 156, 158, 104, 108, 127, 126, 4295 126, 102, 108, 155, 126, 153, 109, 251, 102, 102, 4296 102, 331, 251, 102, 104, 103, 111, 155, 155, 216, 4297 127, 101, 101, 214, 354, 328, 251, 102, 102, 102, 4298 102, 102, 102, 102, 7, 127, 216, 322, 326, 337, 4299 126, 126, 359, 126, 126, 101, 127, 127, 127, 127, 4300 264, 104, 127, 153, 154, 155, 296, 126, 265, 267, 4301 107, 126, 200, 261, 38, 39, 41, 44, 45, 46, 4302 47, 48, 49, 50, 51, 53, 56, 103, 131, 161, 4303 162, 163, 164, 165, 166, 168, 169, 181, 183, 184, 4304 189, 201, 294, 28, 127, 123, 264, 126, 126, 102, 4305 104, 127, 127, 67, 164, 216, 102, 102, 126, 104, 4306 102, 102, 102, 343, 240, 246, 107, 102, 108, 104, 4307 104, 127, 216, 108, 359, 276, 102, 272, 204, 206, 4308 214, 284, 285, 286, 287, 278, 102, 102, 101, 102, 4309 109, 108, 155, 155, 104, 266, 108, 127, 158, 104, 4310 131, 138, 139, 155, 137, 127, 138, 153, 157, 127, 4311 101, 335, 336, 127, 214, 336, 349, 126, 127, 127, 4312 127, 155, 104, 126, 126, 102, 127, 101, 335, 336, 4313 101, 341, 101, 341, 336, 215, 104, 7, 111, 127, 4314 155, 251, 251, 250, 254, 254, 255, 247, 102, 108, 4315 108, 102, 104, 89, 115, 127, 127, 138, 265, 155, 4316 108, 124, 201, 205, 216, 220, 101, 101, 162, 101, 4317 101, 124, 131, 124, 131, 111, 131, 161, 101, 164, 4318 124, 155, 126, 109, 124, 127, 126, 127, 200, 102, 4319 155, 251, 251, 298, 336, 102, 104, 101, 106, 261, 4320 261, 127, 101, 335, 336, 126, 102, 126, 127, 295, 4321 107, 126, 127, 127, 102, 106, 154, 124, 190, 192, 4322 108, 127, 358, 156, 104, 127, 78, 105, 108, 127, 4323 127, 104, 127, 102, 126, 102, 214, 349, 104, 104, 4324 104, 127, 247, 247, 102, 126, 126, 126, 155, 155, 4325 127, 104, 127, 127, 127, 127, 102, 126, 126, 154, 4326 154, 104, 104, 127, 127, 261, 216, 160, 160, 45, 4327 160, 126, 124, 124, 160, 124, 124, 160, 54, 55, 4328 185, 186, 187, 124, 127, 298, 166, 107, 124, 127, 4329 127, 278, 236, 106, 104, 126, 89, 256, 257, 102, 4330 285, 108, 124, 108, 124, 107, 283, 102, 102, 109, 4331 158, 104, 107, 104, 103, 139, 103, 139, 139, 104, 4332 104, 104, 251, 104, 127, 127, 251, 251, 251, 127, 4333 127, 104, 104, 102, 102, 104, 108, 89, 250, 89, 4334 127, 104, 104, 102, 102, 101, 102, 161, 182, 201, 4335 124, 102, 101, 164, 187, 54, 104, 162, 102, 102, 4336 102, 107, 236, 251, 106, 126, 126, 284, 124, 75, 4337 193, 127, 109, 126, 126, 127, 102, 102, 127, 127, 4338 127, 104, 104, 126, 127, 104, 162, 42, 43, 106, 4339 172, 173, 174, 160, 162, 127, 102, 161, 106, 174, 4340 89, 126, 101, 106, 261, 107, 127, 126, 259, 295, 4341 107, 102, 108, 104, 155, 138, 138, 102, 102, 102, 4342 102, 254, 40, 154, 170, 171, 296, 109, 126, 162, 4343 172, 102, 124, 162, 124, 126, 102, 126, 89, 126, 4344 236, 106, 102, 284, 124, 75, 109, 127, 127, 162, 4345 89, 108, 109, 127, 194, 195, 201, 124, 161, 161, 4346 194, 164, 188, 214, 352, 102, 126, 107, 236, 107, 4347 155, 104, 104, 154, 170, 173, 175, 176, 126, 124, 4348 173, 177, 178, 127, 101, 111, 295, 343, 131, 164, 4349 188, 107, 101, 162, 167, 107, 173, 201, 161, 52, 4350 167, 180, 107, 173, 102, 216, 127, 278, 162, 167, 4351 124, 179, 180, 167, 180, 164, 102, 102, 179, 127, 4352 164, 127 4378 4353 }; 4379 4354 … … 5212 5187 5213 5188 /* Line 1806 of yacc.c */ 5214 #line 2 79"parser.yy"5189 #line 282 "parser.yy" 5215 5190 { 5216 5191 typedefTable.enterScope(); … … 5221 5196 5222 5197 /* Line 1806 of yacc.c */ 5223 #line 28 5"parser.yy"5198 #line 288 "parser.yy" 5224 5199 { 5225 5200 typedefTable.leaveScope(); … … 5230 5205 5231 5206 /* Line 1806 of yacc.c */ 5232 #line 29 4"parser.yy"5207 #line 298 "parser.yy" 5233 5208 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5234 5209 break; … … 5237 5212 5238 5213 /* Line 1806 of yacc.c */ 5239 #line 29 5"parser.yy"5214 #line 299 "parser.yy" 5240 5215 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5241 5216 break; … … 5244 5219 5245 5220 /* Line 1806 of yacc.c */ 5246 #line 296"parser.yy"5221 #line 300 "parser.yy" 5247 5222 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5248 5223 break; … … 5251 5226 5252 5227 /* Line 1806 of yacc.c */ 5253 #line 32 0"parser.yy"5228 #line 324 "parser.yy" 5254 5229 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5255 5230 break; … … 5258 5233 5259 5234 /* Line 1806 of yacc.c */ 5260 #line 32 1"parser.yy"5235 #line 325 "parser.yy" 5261 5236 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5262 5237 break; … … 5265 5240 5266 5241 /* Line 1806 of yacc.c */ 5267 #line 328 "parser.yy" 5242 #line 332 "parser.yy" 5243 { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); } 5244 break; 5245 5246 case 18: 5247 5248 /* Line 1806 of yacc.c */ 5249 #line 334 "parser.yy" 5250 { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); } 5251 break; 5252 5253 case 19: 5254 5255 /* Line 1806 of yacc.c */ 5256 #line 336 "parser.yy" 5257 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5258 break; 5259 5260 case 20: 5261 5262 /* Line 1806 of yacc.c */ 5263 #line 338 "parser.yy" 5264 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5265 break; 5266 5267 case 21: 5268 5269 /* Line 1806 of yacc.c */ 5270 #line 340 "parser.yy" 5271 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5272 break; 5273 5274 case 22: 5275 5276 /* Line 1806 of yacc.c */ 5277 #line 342 "parser.yy" 5278 { (yyval.en) = new ValofExprNode((yyvsp[(2) - (3)].sn)); } 5279 break; 5280 5281 case 24: 5282 5283 /* Line 1806 of yacc.c */ 5284 #line 352 "parser.yy" 5285 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Index), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en)); } 5286 break; 5287 5288 case 25: 5289 5290 /* Line 1806 of yacc.c */ 5291 #line 354 "parser.yy" 5292 { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en)); } 5293 break; 5294 5295 case 26: 5296 5297 /* Line 1806 of yacc.c */ 5298 #line 356 "parser.yy" 5299 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); } 5300 break; 5301 5302 case 28: 5303 5304 /* Line 1806 of yacc.c */ 5305 #line 359 "parser.yy" 5306 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); } 5307 break; 5308 5309 case 30: 5310 5311 /* Line 1806 of yacc.c */ 5312 #line 362 "parser.yy" 5313 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::IncrPost), (yyvsp[(1) - (2)].en)); } 5314 break; 5315 5316 case 31: 5317 5318 /* Line 1806 of yacc.c */ 5319 #line 364 "parser.yy" 5320 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::DecrPost), (yyvsp[(1) - (2)].en)); } 5321 break; 5322 5323 case 32: 5324 5325 /* Line 1806 of yacc.c */ 5326 #line 367 "parser.yy" 5327 { (yyval.en) = 0; } 5328 break; 5329 5330 case 34: 5331 5332 /* Line 1806 of yacc.c */ 5333 #line 373 "parser.yy" 5334 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); } 5335 break; 5336 5337 case 35: 5338 5339 /* Line 1806 of yacc.c */ 5340 #line 378 "parser.yy" 5341 { (yyval.en) = 0; } 5342 break; 5343 5344 case 37: 5345 5346 /* Line 1806 of yacc.c */ 5347 #line 381 "parser.yy" 5348 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName((yyvsp[(1) - (3)].tok)); } 5349 break; 5350 5351 case 38: 5352 5353 /* Line 1806 of yacc.c */ 5354 #line 386 "parser.yy" 5355 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName((yyvsp[(3) - (7)].en)); } 5356 break; 5357 5358 case 39: 5359 5360 /* Line 1806 of yacc.c */ 5361 #line 388 "parser.yy" 5362 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5363 break; 5364 5365 case 41: 5366 5367 /* Line 1806 of yacc.c */ 5368 #line 393 "parser.yy" 5369 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5370 break; 5371 5372 case 42: 5373 5374 /* Line 1806 of yacc.c */ 5375 #line 398 "parser.yy" 5268 5376 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5269 5377 break; 5270 5378 5271 case 18: 5272 5273 /* Line 1806 of yacc.c */ 5274 #line 330 "parser.yy" 5275 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5276 break; 5277 5278 case 19: 5279 5280 /* Line 1806 of yacc.c */ 5281 #line 332 "parser.yy" 5282 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5283 break; 5284 5285 case 20: 5286 5287 /* Line 1806 of yacc.c */ 5288 #line 334 "parser.yy" 5289 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5290 break; 5291 5292 case 21: 5293 5294 /* Line 1806 of yacc.c */ 5295 #line 336 "parser.yy" 5296 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5297 break; 5298 5299 case 22: 5300 5301 /* Line 1806 of yacc.c */ 5302 #line 338 "parser.yy" 5303 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5304 break; 5305 5306 case 24: 5307 5308 /* Line 1806 of yacc.c */ 5309 #line 348 "parser.yy" 5310 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5311 break; 5312 5313 case 25: 5314 5315 /* Line 1806 of yacc.c */ 5316 #line 350 "parser.yy" 5317 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5318 break; 5319 5320 case 26: 5321 5322 /* Line 1806 of yacc.c */ 5323 #line 352 "parser.yy" 5324 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5325 break; 5326 5327 case 28: 5328 5329 /* Line 1806 of yacc.c */ 5330 #line 355 "parser.yy" 5331 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5332 break; 5333 5334 case 30: 5335 5336 /* Line 1806 of yacc.c */ 5337 #line 358 "parser.yy" 5338 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5339 break; 5340 5341 case 31: 5342 5343 /* Line 1806 of yacc.c */ 5344 #line 360 "parser.yy" 5345 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5346 break; 5347 5348 case 32: 5349 5350 /* Line 1806 of yacc.c */ 5351 #line 363 "parser.yy" 5379 case 43: 5380 5381 /* Line 1806 of yacc.c */ 5382 #line 400 "parser.yy" 5383 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); } 5384 break; 5385 5386 case 44: 5387 5388 /* Line 1806 of yacc.c */ 5389 #line 402 "parser.yy" 5390 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); } 5391 break; 5392 5393 case 45: 5394 5395 /* Line 1806 of yacc.c */ 5396 #line 404 "parser.yy" 5397 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); } 5398 break; 5399 5400 case 46: 5401 5402 /* Line 1806 of yacc.c */ 5403 #line 406 "parser.yy" 5404 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); } 5405 break; 5406 5407 case 48: 5408 5409 /* Line 1806 of yacc.c */ 5410 #line 412 "parser.yy" 5411 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Incr), (yyvsp[(2) - (2)].en)); } 5412 break; 5413 5414 case 49: 5415 5416 /* Line 1806 of yacc.c */ 5417 #line 414 "parser.yy" 5418 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Decr), (yyvsp[(2) - (2)].en)); } 5419 break; 5420 5421 case 50: 5422 5423 /* Line 1806 of yacc.c */ 5424 #line 416 "parser.yy" 5425 { (yyval.en) = (yyvsp[(2) - (2)].en); } 5426 break; 5427 5428 case 51: 5429 5430 /* Line 1806 of yacc.c */ 5431 #line 418 "parser.yy" 5432 { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en)); } 5433 break; 5434 5435 case 52: 5436 5437 /* Line 1806 of yacc.c */ 5438 #line 420 "parser.yy" 5439 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neg), (yyvsp[(2) - (2)].en)); } 5440 break; 5441 5442 case 53: 5443 5444 /* Line 1806 of yacc.c */ 5445 #line 422 "parser.yy" 5446 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PointTo), (yyvsp[(2) - (2)].en)); } 5447 break; 5448 5449 case 54: 5450 5451 /* Line 1806 of yacc.c */ 5452 #line 428 "parser.yy" 5453 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), (yyvsp[(2) - (2)].en)); } 5454 break; 5455 5456 case 55: 5457 5458 /* Line 1806 of yacc.c */ 5459 #line 430 "parser.yy" 5460 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); } 5461 break; 5462 5463 case 56: 5464 5465 /* Line 1806 of yacc.c */ 5466 #line 432 "parser.yy" 5467 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (1)].tok))); } 5468 break; 5469 5470 case 57: 5471 5472 /* Line 1806 of yacc.c */ 5473 #line 434 "parser.yy" 5474 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), new TypeValueNode((yyvsp[(3) - (4)].decl))); } 5475 break; 5476 5477 case 58: 5478 5479 /* Line 1806 of yacc.c */ 5480 #line 436 "parser.yy" 5481 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), (yyvsp[(3) - (4)].en)); } 5482 break; 5483 5484 case 59: 5485 5486 /* Line 1806 of yacc.c */ 5487 #line 438 "parser.yy" 5488 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), (yyvsp[(2) - (2)].en)); } 5489 break; 5490 5491 case 60: 5492 5493 /* Line 1806 of yacc.c */ 5494 #line 440 "parser.yy" 5495 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); } 5496 break; 5497 5498 case 61: 5499 5500 /* Line 1806 of yacc.c */ 5501 #line 442 "parser.yy" 5502 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LabelAddress), new VarRefNode((yyvsp[(2) - (2)].tok), true)); } 5503 break; 5504 5505 case 62: 5506 5507 /* Line 1806 of yacc.c */ 5508 #line 446 "parser.yy" 5509 { (yyval.en) = new OperatorNode(OperatorNode::AddressOf); } 5510 break; 5511 5512 case 63: 5513 5514 /* Line 1806 of yacc.c */ 5515 #line 447 "parser.yy" 5516 { (yyval.en) = new OperatorNode(OperatorNode::UnPlus); } 5517 break; 5518 5519 case 64: 5520 5521 /* Line 1806 of yacc.c */ 5522 #line 448 "parser.yy" 5523 { (yyval.en) = new OperatorNode(OperatorNode::UnMinus); } 5524 break; 5525 5526 case 65: 5527 5528 /* Line 1806 of yacc.c */ 5529 #line 449 "parser.yy" 5530 { (yyval.en) = new OperatorNode(OperatorNode::BitNeg); } 5531 break; 5532 5533 case 67: 5534 5535 /* Line 1806 of yacc.c */ 5536 #line 455 "parser.yy" 5537 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); } 5538 break; 5539 5540 case 68: 5541 5542 /* Line 1806 of yacc.c */ 5543 #line 457 "parser.yy" 5544 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); } 5545 break; 5546 5547 case 70: 5548 5549 /* Line 1806 of yacc.c */ 5550 #line 463 "parser.yy" 5551 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mul),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5552 break; 5553 5554 case 71: 5555 5556 /* Line 1806 of yacc.c */ 5557 #line 465 "parser.yy" 5558 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Div),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5559 break; 5560 5561 case 72: 5562 5563 /* Line 1806 of yacc.c */ 5564 #line 467 "parser.yy" 5565 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mod),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5566 break; 5567 5568 case 74: 5569 5570 /* Line 1806 of yacc.c */ 5571 #line 473 "parser.yy" 5572 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Plus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5573 break; 5574 5575 case 75: 5576 5577 /* Line 1806 of yacc.c */ 5578 #line 475 "parser.yy" 5579 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Minus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5580 break; 5581 5582 case 77: 5583 5584 /* Line 1806 of yacc.c */ 5585 #line 481 "parser.yy" 5586 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5587 break; 5588 5589 case 78: 5590 5591 /* Line 1806 of yacc.c */ 5592 #line 483 "parser.yy" 5593 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::RShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5594 break; 5595 5596 case 80: 5597 5598 /* Line 1806 of yacc.c */ 5599 #line 489 "parser.yy" 5600 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5601 break; 5602 5603 case 81: 5604 5605 /* Line 1806 of yacc.c */ 5606 #line 491 "parser.yy" 5607 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5608 break; 5609 5610 case 82: 5611 5612 /* Line 1806 of yacc.c */ 5613 #line 493 "parser.yy" 5614 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5615 break; 5616 5617 case 83: 5618 5619 /* Line 1806 of yacc.c */ 5620 #line 495 "parser.yy" 5621 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5622 break; 5623 5624 case 85: 5625 5626 /* Line 1806 of yacc.c */ 5627 #line 501 "parser.yy" 5628 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Eq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5629 break; 5630 5631 case 86: 5632 5633 /* Line 1806 of yacc.c */ 5634 #line 503 "parser.yy" 5635 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5636 break; 5637 5638 case 88: 5639 5640 /* Line 1806 of yacc.c */ 5641 #line 509 "parser.yy" 5642 { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::BitAnd), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5643 break; 5644 5645 case 90: 5646 5647 /* Line 1806 of yacc.c */ 5648 #line 515 "parser.yy" 5649 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Xor), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5650 break; 5651 5652 case 92: 5653 5654 /* Line 1806 of yacc.c */ 5655 #line 521 "parser.yy" 5656 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::BitOr), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5657 break; 5658 5659 case 94: 5660 5661 /* Line 1806 of yacc.c */ 5662 #line 527 "parser.yy" 5663 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::And), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5664 break; 5665 5666 case 96: 5667 5668 /* Line 1806 of yacc.c */ 5669 #line 533 "parser.yy" 5670 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Or), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5671 break; 5672 5673 case 98: 5674 5675 /* Line 1806 of yacc.c */ 5676 #line 539 "parser.yy" 5677 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5678 break; 5679 5680 case 99: 5681 5682 /* Line 1806 of yacc.c */ 5683 #line 541 "parser.yy" 5684 { (yyval.en)=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),(yyvsp[(1) - (4)].en),(yyvsp[(4) - (4)].en)); } 5685 break; 5686 5687 case 100: 5688 5689 /* Line 1806 of yacc.c */ 5690 #line 543 "parser.yy" 5691 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5692 break; 5693 5694 case 103: 5695 5696 /* Line 1806 of yacc.c */ 5697 #line 554 "parser.yy" 5698 { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::Assign), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5699 break; 5700 5701 case 104: 5702 5703 /* Line 1806 of yacc.c */ 5704 #line 556 "parser.yy" 5705 { (yyval.en) =new CompositeExprNode((yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5706 break; 5707 5708 case 105: 5709 5710 /* Line 1806 of yacc.c */ 5711 #line 558 "parser.yy" 5712 { (yyval.en) = ((yyvsp[(2) - (2)].en) == 0) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5713 break; 5714 5715 case 106: 5716 5717 /* Line 1806 of yacc.c */ 5718 #line 563 "parser.yy" 5719 { (yyval.en) = new NullExprNode; } 5720 break; 5721 5722 case 108: 5723 5724 /* Line 1806 of yacc.c */ 5725 #line 571 "parser.yy" 5726 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5727 break; 5728 5729 case 109: 5730 5731 /* Line 1806 of yacc.c */ 5732 #line 573 "parser.yy" 5733 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5734 break; 5735 5736 case 110: 5737 5738 /* Line 1806 of yacc.c */ 5739 #line 575 "parser.yy" 5740 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5741 break; 5742 5743 case 111: 5744 5745 /* Line 1806 of yacc.c */ 5746 #line 577 "parser.yy" 5747 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5748 break; 5749 5750 case 113: 5751 5752 /* Line 1806 of yacc.c */ 5753 #line 583 "parser.yy" 5754 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5755 break; 5756 5757 case 114: 5758 5759 /* Line 1806 of yacc.c */ 5760 #line 587 "parser.yy" 5761 { (yyval.en) = new OperatorNode(OperatorNode::MulAssn); } 5762 break; 5763 5764 case 115: 5765 5766 /* Line 1806 of yacc.c */ 5767 #line 588 "parser.yy" 5768 { (yyval.en) = new OperatorNode(OperatorNode::DivAssn); } 5769 break; 5770 5771 case 116: 5772 5773 /* Line 1806 of yacc.c */ 5774 #line 589 "parser.yy" 5775 { (yyval.en) = new OperatorNode(OperatorNode::ModAssn); } 5776 break; 5777 5778 case 117: 5779 5780 /* Line 1806 of yacc.c */ 5781 #line 590 "parser.yy" 5782 { (yyval.en) = new OperatorNode(OperatorNode::PlusAssn); } 5783 break; 5784 5785 case 118: 5786 5787 /* Line 1806 of yacc.c */ 5788 #line 591 "parser.yy" 5789 { (yyval.en) = new OperatorNode(OperatorNode::MinusAssn); } 5790 break; 5791 5792 case 119: 5793 5794 /* Line 1806 of yacc.c */ 5795 #line 592 "parser.yy" 5796 { (yyval.en) = new OperatorNode(OperatorNode::LSAssn); } 5797 break; 5798 5799 case 120: 5800 5801 /* Line 1806 of yacc.c */ 5802 #line 593 "parser.yy" 5803 { (yyval.en) = new OperatorNode(OperatorNode::RSAssn); } 5804 break; 5805 5806 case 121: 5807 5808 /* Line 1806 of yacc.c */ 5809 #line 594 "parser.yy" 5810 { (yyval.en) = new OperatorNode(OperatorNode::AndAssn); } 5811 break; 5812 5813 case 122: 5814 5815 /* Line 1806 of yacc.c */ 5816 #line 595 "parser.yy" 5817 { (yyval.en) = new OperatorNode(OperatorNode::ERAssn); } 5818 break; 5819 5820 case 123: 5821 5822 /* Line 1806 of yacc.c */ 5823 #line 596 "parser.yy" 5824 { (yyval.en) = new OperatorNode(OperatorNode::OrAssn); } 5825 break; 5826 5827 case 125: 5828 5829 /* Line 1806 of yacc.c */ 5830 #line 602 "parser.yy" 5831 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Comma),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5832 break; 5833 5834 case 126: 5835 5836 /* Line 1806 of yacc.c */ 5837 #line 607 "parser.yy" 5352 5838 { (yyval.en) = 0; } 5353 5839 break; 5354 5840 5355 case 34:5356 5357 /* Line 1806 of yacc.c */5358 #line 369 "parser.yy"5359 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }5360 break;5361 5362 case 35:5363 5364 /* Line 1806 of yacc.c */5365 #line 374 "parser.yy"5366 { (yyval.en) = 0; }5367 break;5368 5369 case 37:5370 5371 /* Line 1806 of yacc.c */5372 #line 377 "parser.yy"5373 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok) ); }5374 break;5375 5376 case 38:5377 5378 /* Line 1806 of yacc.c */5379 #line 382 "parser.yy"5380 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en) ); }5381 break;5382 5383 case 39:5384 5385 /* Line 1806 of yacc.c */5386 #line 384 "parser.yy"5387 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }5388 break;5389 5390 case 41:5391 5392 /* Line 1806 of yacc.c */5393 #line 389 "parser.yy"5394 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5395 break;5396 5397 case 42:5398 5399 /* Line 1806 of yacc.c */5400 #line 394 "parser.yy"5401 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5402 break;5403 5404 case 43:5405 5406 /* Line 1806 of yacc.c */5407 #line 396 "parser.yy"5408 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5409 break;5410 5411 case 44:5412 5413 /* Line 1806 of yacc.c */5414 #line 398 "parser.yy"5415 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5416 break;5417 5418 case 45:5419 5420 /* Line 1806 of yacc.c */5421 #line 400 "parser.yy"5422 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5423 break;5424 5425 case 46:5426 5427 /* Line 1806 of yacc.c */5428 #line 402 "parser.yy"5429 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5430 break;5431 5432 case 48:5433 5434 /* Line 1806 of yacc.c */5435 #line 408 "parser.yy"5436 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }5437 break;5438 5439 case 49:5440 5441 /* Line 1806 of yacc.c */5442 #line 410 "parser.yy"5443 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }5444 break;5445 5446 case 50:5447 5448 /* Line 1806 of yacc.c */5449 #line 412 "parser.yy"5450 { (yyval.en) = (yyvsp[(2) - (2)].en); }5451 break;5452 5453 case 51:5454 5455 /* Line 1806 of yacc.c */5456 #line 414 "parser.yy"5457 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5458 break;5459 5460 case 52:5461 5462 /* Line 1806 of yacc.c */5463 #line 416 "parser.yy"5464 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }5465 break;5466 5467 case 53:5468 5469 /* Line 1806 of yacc.c */5470 #line 418 "parser.yy"5471 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }5472 break;5473 5474 case 54:5475 5476 /* Line 1806 of yacc.c */5477 #line 424 "parser.yy"5478 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }5479 break;5480 5481 case 55:5482 5483 /* Line 1806 of yacc.c */5484 #line 426 "parser.yy"5485 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5486 break;5487 5488 case 56:5489 5490 /* Line 1806 of yacc.c */5491 #line 428 "parser.yy"5492 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }5493 break;5494 5495 case 57:5496 5497 /* Line 1806 of yacc.c */5498 #line 430 "parser.yy"5499 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5500 break;5501 5502 case 58:5503 5504 /* Line 1806 of yacc.c */5505 #line 432 "parser.yy"5506 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }5507 break;5508 5509 case 59:5510 5511 /* Line 1806 of yacc.c */5512 #line 434 "parser.yy"5513 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }5514 break;5515 5516 case 60:5517 5518 /* Line 1806 of yacc.c */5519 #line 436 "parser.yy"5520 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5521 break;5522 5523 case 61:5524 5525 /* Line 1806 of yacc.c */5526 #line 438 "parser.yy"5527 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }5528 break;5529 5530 case 62:5531 5532 /* Line 1806 of yacc.c */5533 #line 442 "parser.yy"5534 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }5535 break;5536 5537 case 63:5538 5539 /* Line 1806 of yacc.c */5540 #line 443 "parser.yy"5541 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }5542 break;5543 5544 case 64:5545 5546 /* Line 1806 of yacc.c */5547 #line 444 "parser.yy"5548 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }5549 break;5550 5551 case 65:5552 5553 /* Line 1806 of yacc.c */5554 #line 445 "parser.yy"5555 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }5556 break;5557 5558 case 67:5559 5560 /* Line 1806 of yacc.c */5561 #line 451 "parser.yy"5562 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5563 break;5564 5565 case 68:5566 5567 /* Line 1806 of yacc.c */5568 #line 453 "parser.yy"5569 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5570 break;5571 5572 case 70:5573 5574 /* Line 1806 of yacc.c */5575 #line 459 "parser.yy"5576 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5577 break;5578 5579 case 71:5580 5581 /* Line 1806 of yacc.c */5582 #line 461 "parser.yy"5583 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5584 break;5585 5586 case 72:5587 5588 /* Line 1806 of yacc.c */5589 #line 463 "parser.yy"5590 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5591 break;5592 5593 case 74:5594 5595 /* Line 1806 of yacc.c */5596 #line 469 "parser.yy"5597 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5598 break;5599 5600 case 75:5601 5602 /* Line 1806 of yacc.c */5603 #line 471 "parser.yy"5604 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5605 break;5606 5607 case 77:5608 5609 /* Line 1806 of yacc.c */5610 #line 477 "parser.yy"5611 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5612 break;5613 5614 case 78:5615 5616 /* Line 1806 of yacc.c */5617 #line 479 "parser.yy"5618 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5619 break;5620 5621 case 80:5622 5623 /* Line 1806 of yacc.c */5624 #line 485 "parser.yy"5625 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5626 break;5627 5628 case 81:5629 5630 /* Line 1806 of yacc.c */5631 #line 487 "parser.yy"5632 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5633 break;5634 5635 case 82:5636 5637 /* Line 1806 of yacc.c */5638 #line 489 "parser.yy"5639 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5640 break;5641 5642 case 83:5643 5644 /* Line 1806 of yacc.c */5645 #line 491 "parser.yy"5646 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5647 break;5648 5649 case 85:5650 5651 /* Line 1806 of yacc.c */5652 #line 497 "parser.yy"5653 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5654 break;5655 5656 case 86:5657 5658 /* Line 1806 of yacc.c */5659 #line 499 "parser.yy"5660 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5661 break;5662 5663 case 88:5664 5665 /* Line 1806 of yacc.c */5666 #line 505 "parser.yy"5667 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5668 break;5669 5670 case 90:5671 5672 /* Line 1806 of yacc.c */5673 #line 511 "parser.yy"5674 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5675 break;5676 5677 case 92:5678 5679 /* Line 1806 of yacc.c */5680 #line 517 "parser.yy"5681 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5682 break;5683 5684 case 94:5685 5686 /* Line 1806 of yacc.c */5687 #line 523 "parser.yy"5688 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5689 break;5690 5691 case 96:5692 5693 /* Line 1806 of yacc.c */5694 #line 529 "parser.yy"5695 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5696 break;5697 5698 case 98:5699 5700 /* Line 1806 of yacc.c */5701 #line 535 "parser.yy"5702 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }5703 break;5704 5705 case 99:5706 5707 /* Line 1806 of yacc.c */5708 #line 537 "parser.yy"5709 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }5710 break;5711 5712 case 100:5713 5714 /* Line 1806 of yacc.c */5715 #line 539 "parser.yy"5716 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }5717 break;5718 5719 case 103:5720 5721 /* Line 1806 of yacc.c */5722 #line 550 "parser.yy"5723 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5724 break;5725 5726 case 104:5727 5728 /* Line 1806 of yacc.c */5729 #line 552 "parser.yy"5730 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5731 break;5732 5733 case 105:5734 5735 /* Line 1806 of yacc.c */5736 #line 554 "parser.yy"5737 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5738 break;5739 5740 case 106:5741 5742 /* Line 1806 of yacc.c */5743 #line 559 "parser.yy"5744 { (yyval.en) = new NullExprNode; }5745 break;5746 5747 case 108:5748 5749 /* Line 1806 of yacc.c */5750 #line 567 "parser.yy"5751 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }5752 break;5753 5754 case 109:5755 5756 /* Line 1806 of yacc.c */5757 #line 569 "parser.yy"5758 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }5759 break;5760 5761 case 110:5762 5763 /* Line 1806 of yacc.c */5764 #line 571 "parser.yy"5765 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }5766 break;5767 5768 case 111:5769 5770 /* Line 1806 of yacc.c */5771 #line 573 "parser.yy"5772 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }5773 break;5774 5775 case 113:5776 5777 /* Line 1806 of yacc.c */5778 #line 579 "parser.yy"5779 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5780 break;5781 5782 case 114:5783 5784 /* Line 1806 of yacc.c */5785 #line 583 "parser.yy"5786 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }5787 break;5788 5789 case 115:5790 5791 /* Line 1806 of yacc.c */5792 #line 584 "parser.yy"5793 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }5794 break;5795 5796 case 116:5797 5798 /* Line 1806 of yacc.c */5799 #line 585 "parser.yy"5800 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }5801 break;5802 5803 case 117:5804 5805 /* Line 1806 of yacc.c */5806 #line 586 "parser.yy"5807 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }5808 break;5809 5810 case 118:5811 5812 /* Line 1806 of yacc.c */5813 #line 587 "parser.yy"5814 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }5815 break;5816 5817 case 119:5818 5819 /* Line 1806 of yacc.c */5820 #line 588 "parser.yy"5821 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }5822 break;5823 5824 case 120:5825 5826 /* Line 1806 of yacc.c */5827 #line 589 "parser.yy"5828 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }5829 break;5830 5831 case 121:5832 5833 /* Line 1806 of yacc.c */5834 #line 590 "parser.yy"5835 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }5836 break;5837 5838 case 122:5839 5840 /* Line 1806 of yacc.c */5841 #line 591 "parser.yy"5842 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }5843 break;5844 5845 case 123:5846 5847 /* Line 1806 of yacc.c */5848 #line 592 "parser.yy"5849 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }5850 break;5851 5852 case 125:5853 5854 /* Line 1806 of yacc.c */5855 #line 598 "parser.yy"5856 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5857 break;5858 5859 case 126:5860 5861 /* Line 1806 of yacc.c */5862 #line 603 "parser.yy"5863 { (yyval.en) = 0; }5864 break;5865 5866 5841 case 130: 5867 5842 5868 5843 /* Line 1806 of yacc.c */ 5869 #line 61 2"parser.yy"5844 #line 616 "parser.yy" 5870 5845 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5871 5846 break; … … 5874 5849 5875 5850 /* Line 1806 of yacc.c */ 5876 #line 62 2"parser.yy"5877 { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok));}5851 #line 626 "parser.yy" 5852 { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label((yyvsp[(1) - (4)].tok));} 5878 5853 break; 5879 5854 … … 5881 5856 5882 5857 /* Line 1806 of yacc.c */ 5883 #line 6 27"parser.yy"5858 #line 631 "parser.yy" 5884 5859 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5885 5860 break; … … 5888 5863 5889 5864 /* Line 1806 of yacc.c */ 5890 #line 63 4"parser.yy"5865 #line 638 "parser.yy" 5891 5866 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5892 5867 break; … … 5895 5870 5896 5871 /* Line 1806 of yacc.c */ 5897 #line 64 0"parser.yy"5898 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn)); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }5872 #line 644 "parser.yy" 5873 { if ((yyvsp[(1) - (3)].sn) != 0) { (yyvsp[(1) - (3)].sn)->set_link((yyvsp[(3) - (3)].sn)); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5899 5874 break; 5900 5875 5901 5876 case 141: 5902 5903 /* Line 1806 of yacc.c */5904 #line 645 "parser.yy"5905 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }5906 break;5907 5908 case 142:5909 5910 /* Line 1806 of yacc.c */5911 #line 647 "parser.yy"5912 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }5913 break;5914 5915 case 143:5916 5877 5917 5878 /* Line 1806 of yacc.c */ … … 5920 5881 break; 5921 5882 5883 case 142: 5884 5885 /* Line 1806 of yacc.c */ 5886 #line 651 "parser.yy" 5887 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); } 5888 break; 5889 5890 case 143: 5891 5892 /* Line 1806 of yacc.c */ 5893 #line 653 "parser.yy" 5894 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5895 break; 5896 5922 5897 case 146: 5923 5898 5924 5899 /* Line 1806 of yacc.c */ 5925 #line 6 56"parser.yy"5926 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn)); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }5900 #line 660 "parser.yy" 5901 { if ((yyvsp[(1) - (2)].sn) != 0) { (yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn)); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5927 5902 break; 5928 5903 … … 5930 5905 5931 5906 /* Line 1806 of yacc.c */ 5932 #line 66 1"parser.yy"5933 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); }5907 #line 665 "parser.yy" 5908 { (yyval.sn) = new StatementNode(StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); } 5934 5909 break; 5935 5910 … … 5937 5912 5938 5913 /* Line 1806 of yacc.c */ 5939 #line 6 67"parser.yy"5940 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }5914 #line 671 "parser.yy" 5915 { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 5941 5916 break; 5942 5917 … … 5944 5919 5945 5920 /* Line 1806 of yacc.c */ 5946 #line 6 69"parser.yy"5947 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn))) ); }5921 #line 673 "parser.yy" 5922 { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn))) ); } 5948 5923 break; 5949 5924 … … 5951 5926 5952 5927 /* Line 1806 of yacc.c */ 5953 #line 67 1"parser.yy"5954 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }5928 #line 675 "parser.yy" 5929 { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 5955 5930 break; 5956 5931 … … 5958 5933 5959 5934 /* Line 1806 of yacc.c */ 5960 #line 67 3"parser.yy"5961 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); /* xxx */ }5935 #line 677 "parser.yy" 5936 { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); /* xxx */ } 5962 5937 break; 5963 5938 … … 5965 5940 5966 5941 /* Line 1806 of yacc.c */ 5967 #line 6 78"parser.yy"5968 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }5942 #line 683 "parser.yy" 5943 { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 5969 5944 break; 5970 5945 … … 5972 5947 5973 5948 /* Line 1806 of yacc.c */ 5974 #line 68 0"parser.yy"5975 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); }5949 #line 685 "parser.yy" 5950 { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); } 5976 5951 break; 5977 5952 … … 5979 5954 5980 5955 /* Line 1806 of yacc.c */ 5981 #line 6 87"parser.yy"5956 #line 692 "parser.yy" 5982 5957 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5983 5958 break; … … 5986 5961 5987 5962 /* Line 1806 of yacc.c */ 5988 #line 6 89"parser.yy"5989 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5963 #line 694 "parser.yy" 5964 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5990 5965 break; 5991 5966 … … 5993 5968 5994 5969 /* Line 1806 of yacc.c */ 5995 #line 696"parser.yy"5996 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en)) ); }5970 #line 701 "parser.yy" 5971 { (yyval.en) = new CompositeExprNode(new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents((yyvsp[(1) - (3)].en)))->set_link((yyvsp[(3) - (3)].en)) ); } 5997 5972 break; 5998 5973 … … 6000 5975 6001 5976 /* Line 1806 of yacc.c */ 6002 #line 70 0"parser.yy"6003 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0); }5977 #line 705 "parser.yy" 5978 { (yyval.sn) = new StatementNode(StatementNode::Case, (yyvsp[(2) - (3)].en), 0); } 6004 5979 break; 6005 5980 … … 6007 5982 6008 5983 /* Line 1806 of yacc.c */ 6009 #line 70 1"parser.yy"6010 { (yyval.sn) = new StatementNode( StatementNode::Default); }5984 #line 706 "parser.yy" 5985 { (yyval.sn) = new StatementNode(StatementNode::Default); } 6011 5986 break; 6012 5987 … … 6014 5989 6015 5990 /* Line 1806 of yacc.c */ 6016 #line 7 07"parser.yy"6017 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn))); }5991 #line 712 "parser.yy" 5992 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn))); } 6018 5993 break; 6019 5994 … … 6021 5996 6022 5997 /* Line 1806 of yacc.c */ 6023 #line 71 1"parser.yy"6024 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn)); }5998 #line 716 "parser.yy" 5999 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); } 6025 6000 break; 6026 6001 … … 6028 6003 6029 6004 /* Line 1806 of yacc.c */ 6030 #line 7 16"parser.yy"6005 #line 721 "parser.yy" 6031 6006 { (yyval.sn) = 0; } 6032 6007 break; … … 6035 6010 6036 6011 /* Line 1806 of yacc.c */ 6037 #line 72 2"parser.yy"6038 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn)); }6012 #line 727 "parser.yy" 6013 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); } 6039 6014 break; 6040 6015 … … 6042 6017 6043 6018 /* Line 1806 of yacc.c */ 6044 #line 72 4"parser.yy"6045 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn)))); }6019 #line 729 "parser.yy" 6020 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); } 6046 6021 break; 6047 6022 … … 6049 6024 6050 6025 /* Line 1806 of yacc.c */ 6051 #line 7 29"parser.yy"6026 #line 734 "parser.yy" 6052 6027 { (yyval.sn) = 0; } 6053 6028 break; … … 6056 6031 6057 6032 /* Line 1806 of yacc.c */ 6058 #line 7 35"parser.yy"6059 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn)); }6033 #line 740 "parser.yy" 6034 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); } 6060 6035 break; 6061 6036 … … 6063 6038 6064 6039 /* Line 1806 of yacc.c */ 6065 #line 7 37"parser.yy"6066 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }6040 #line 742 "parser.yy" 6041 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn)))); } 6067 6042 break; 6068 6043 … … 6070 6045 6071 6046 /* Line 1806 of yacc.c */ 6072 #line 7 39"parser.yy"6073 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn)))); }6047 #line 744 "parser.yy" 6048 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); } 6074 6049 break; 6075 6050 … … 6077 6052 6078 6053 /* Line 1806 of yacc.c */ 6079 #line 74 1"parser.yy"6080 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn)))))); }6054 #line 746 "parser.yy" 6055 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (4)].sn)->set_link((yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn)))))); } 6081 6056 break; 6082 6057 … … 6084 6059 6085 6060 /* Line 1806 of yacc.c */ 6086 #line 7 46"parser.yy"6061 #line 751 "parser.yy" 6087 6062 { (yyval.sn) = 0; } 6088 6063 break; … … 6091 6066 6092 6067 /* Line 1806 of yacc.c */ 6093 #line 75 1"parser.yy"6094 { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0); }6068 #line 756 "parser.yy" 6069 { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); } 6095 6070 break; 6096 6071 … … 6098 6073 6099 6074 /* Line 1806 of yacc.c */ 6100 #line 75 2"parser.yy"6101 { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0); }6075 #line 757 "parser.yy" 6076 { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); } 6102 6077 break; 6103 6078 … … 6105 6080 6106 6081 /* Line 1806 of yacc.c */ 6107 #line 7 57"parser.yy"6108 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }6082 #line 762 "parser.yy" 6083 { (yyval.sn) = new StatementNode(StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 6109 6084 break; 6110 6085 … … 6112 6087 6113 6088 /* Line 1806 of yacc.c */ 6114 #line 7 59"parser.yy"6115 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn)); }6089 #line 764 "parser.yy" 6090 { (yyval.sn) = new StatementNode(StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn)); } 6116 6091 break; 6117 6092 … … 6119 6094 6120 6095 /* Line 1806 of yacc.c */ 6121 #line 76 1"parser.yy"6122 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn)); }6096 #line 766 "parser.yy" 6097 { (yyval.sn) = new StatementNode(StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn)); } 6123 6098 break; 6124 6099 … … 6126 6101 6127 6102 /* Line 1806 of yacc.c */ 6128 #line 7 66"parser.yy"6129 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en)); }6103 #line 771 "parser.yy" 6104 { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en)); } 6130 6105 break; 6131 6106 … … 6133 6108 6134 6109 /* Line 1806 of yacc.c */ 6135 #line 7 68"parser.yy"6136 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); }6110 #line 773 "parser.yy" 6111 { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); } 6137 6112 break; 6138 6113 … … 6140 6115 6141 6116 /* Line 1806 of yacc.c */ 6142 #line 77 3"parser.yy"6143 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok)); }6117 #line 778 "parser.yy" 6118 { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(2) - (3)].tok)); } 6144 6119 break; 6145 6120 … … 6147 6122 6148 6123 /* Line 1806 of yacc.c */ 6149 #line 7 77"parser.yy"6150 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en)); }6124 #line 782 "parser.yy" 6125 { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(3) - (4)].en)); } 6151 6126 break; 6152 6127 … … 6154 6129 6155 6130 /* Line 1806 of yacc.c */ 6156 #line 78 0"parser.yy"6157 { (yyval.sn) = new StatementNode( StatementNode::Continue, 0, 0); }6131 #line 786 "parser.yy" 6132 { (yyval.sn) = new StatementNode(StatementNode::Continue, 0, 0); } 6158 6133 break; 6159 6134 … … 6161 6136 6162 6137 /* Line 1806 of yacc.c */ 6163 #line 7 84"parser.yy"6164 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }6138 #line 790 "parser.yy" 6139 { (yyval.sn) = new StatementNode(StatementNode::Continue, (yyvsp[(2) - (3)].tok)); } 6165 6140 break; 6166 6141 … … 6168 6143 6169 6144 /* Line 1806 of yacc.c */ 6170 #line 7 87"parser.yy"6171 { (yyval.sn) = new StatementNode( StatementNode::Break, 0, 0); }6145 #line 794 "parser.yy" 6146 { (yyval.sn) = new StatementNode(StatementNode::Break, 0, 0); } 6172 6147 break; 6173 6148 … … 6175 6150 6176 6151 /* Line 1806 of yacc.c */ 6177 #line 79 1"parser.yy"6178 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }6152 #line 798 "parser.yy" 6153 { (yyval.sn) = new StatementNode(StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6179 6154 break; 6180 6155 … … 6182 6157 6183 6158 /* Line 1806 of yacc.c */ 6184 #line 793"parser.yy"6185 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }6159 #line 800 "parser.yy" 6160 { (yyval.sn) = new StatementNode(StatementNode::Return, (yyvsp[(2) - (3)].en), 0); } 6186 6161 break; 6187 6162 … … 6189 6164 6190 6165 /* Line 1806 of yacc.c */ 6191 #line 795"parser.yy"6192 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); }6166 #line 802 "parser.yy" 6167 { (yyval.sn) = new StatementNode(StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); } 6193 6168 break; 6194 6169 … … 6196 6171 6197 6172 /* Line 1806 of yacc.c */ 6198 #line 797"parser.yy"6199 { (yyval.sn) = new StatementNode( StatementNode::Throw, 0, 0); }6173 #line 804 "parser.yy" 6174 { (yyval.sn) = new StatementNode(StatementNode::Throw, 0, 0); } 6200 6175 break; 6201 6176 … … 6203 6178 6204 6179 /* Line 1806 of yacc.c */ 6205 #line 80 2"parser.yy"6206 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }6180 #line 809 "parser.yy" 6181 { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); } 6207 6182 break; 6208 6183 … … 6210 6185 6211 6186 /* Line 1806 of yacc.c */ 6212 #line 8 04"parser.yy"6213 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }6187 #line 811 "parser.yy" 6188 { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); } 6214 6189 break; 6215 6190 … … 6217 6192 6218 6193 /* Line 1806 of yacc.c */ 6219 #line 8 06"parser.yy"6194 #line 813 "parser.yy" 6220 6195 { 6221 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn));6222 (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn)))));6196 (yyvsp[(3) - (4)].pn)->set_link((yyvsp[(4) - (4)].pn)); 6197 (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn))))); 6223 6198 } 6224 6199 break; … … 6227 6202 6228 6203 /* Line 1806 of yacc.c */ 6229 #line 8 17"parser.yy"6204 #line 825 "parser.yy" 6230 6205 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6231 6206 break; … … 6234 6209 6235 6210 /* Line 1806 of yacc.c */ 6236 #line 8 19"parser.yy"6211 #line 827 "parser.yy" 6237 6212 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6238 6213 break; … … 6241 6216 6242 6217 /* Line 1806 of yacc.c */ 6243 #line 8 24"parser.yy"6244 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); }6218 #line 832 "parser.yy" 6219 { (yyval.pn) = StatementNode::newCatchStmt((yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); } 6245 6220 break; 6246 6221 … … 6248 6223 6249 6224 /* Line 1806 of yacc.c */ 6250 #line 8 26"parser.yy"6251 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); }6225 #line 834 "parser.yy" 6226 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt((yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); } 6252 6227 break; 6253 6228 … … 6255 6230 6256 6231 /* Line 1806 of yacc.c */ 6257 #line 83 1"parser.yy"6232 #line 839 "parser.yy" 6258 6233 { 6259 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn));6234 (yyval.pn) = new StatementNode(StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn)); 6260 6235 std::cout << "Just created a finally node" << std::endl; 6261 6236 } … … 6265 6240 6266 6241 /* Line 1806 of yacc.c */ 6267 #line 8 45"parser.yy"6242 #line 853 "parser.yy" 6268 6243 { 6269 6244 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6275 6250 6276 6251 /* Line 1806 of yacc.c */ 6277 #line 85 0"parser.yy"6252 #line 858 "parser.yy" 6278 6253 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6279 6254 break; … … 6282 6257 6283 6258 /* Line 1806 of yacc.c */ 6284 #line 8 52"parser.yy"6259 #line 860 "parser.yy" 6285 6260 { 6286 6261 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6292 6267 6293 6268 /* Line 1806 of yacc.c */ 6294 #line 86 1"parser.yy"6295 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6269 #line 869 "parser.yy" 6270 { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); } 6296 6271 break; 6297 6272 … … 6299 6274 6300 6275 /* Line 1806 of yacc.c */ 6301 #line 8 63"parser.yy"6302 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6276 #line 871 "parser.yy" 6277 { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); } 6303 6278 break; 6304 6279 … … 6306 6281 6307 6282 /* Line 1806 of yacc.c */ 6308 #line 8 65"parser.yy"6309 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6283 #line 873 "parser.yy" 6284 { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); } 6310 6285 break; 6311 6286 … … 6313 6288 6314 6289 /* Line 1806 of yacc.c */ 6315 #line 8 67"parser.yy"6316 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6290 #line 875 "parser.yy" 6291 { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); } 6317 6292 break; 6318 6293 … … 6320 6295 6321 6296 /* Line 1806 of yacc.c */ 6322 #line 88 1"parser.yy"6297 #line 889 "parser.yy" 6323 6298 {} 6324 6299 break; … … 6327 6302 6328 6303 /* Line 1806 of yacc.c */ 6329 #line 8 85"parser.yy"6304 #line 893 "parser.yy" 6330 6305 {} 6331 6306 break; … … 6334 6309 6335 6310 /* Line 1806 of yacc.c */ 6336 #line 893"parser.yy"6311 #line 901 "parser.yy" 6337 6312 { (yyval.decl) = 0; } 6338 6313 break; … … 6341 6316 6342 6317 /* Line 1806 of yacc.c */ 6343 #line 90 0"parser.yy"6318 #line 908 "parser.yy" 6344 6319 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6345 6320 break; … … 6348 6323 6349 6324 /* Line 1806 of yacc.c */ 6350 #line 9 05"parser.yy"6325 #line 913 "parser.yy" 6351 6326 { (yyval.decl) = 0; } 6352 6327 break; … … 6355 6330 6356 6331 /* Line 1806 of yacc.c */ 6357 #line 9 12"parser.yy"6332 #line 920 "parser.yy" 6358 6333 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6359 6334 break; … … 6362 6337 6363 6338 /* Line 1806 of yacc.c */ 6364 #line 9 26"parser.yy"6339 #line 934 "parser.yy" 6365 6340 {} 6366 6341 break; … … 6369 6344 6370 6345 /* Line 1806 of yacc.c */ 6371 #line 9 27"parser.yy"6346 #line 935 "parser.yy" 6372 6347 {} 6373 6348 break; … … 6376 6351 6377 6352 /* Line 1806 of yacc.c */ 6378 #line 9 56"parser.yy"6353 #line 965 "parser.yy" 6379 6354 { 6380 6355 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6386 6361 6387 6362 /* Line 1806 of yacc.c */ 6388 #line 9 63"parser.yy"6363 #line 972 "parser.yy" 6389 6364 { 6390 6365 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6396 6371 6397 6372 /* Line 1806 of yacc.c */ 6398 #line 9 68"parser.yy"6373 #line 977 "parser.yy" 6399 6374 { 6400 6375 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6406 6381 6407 6382 /* Line 1806 of yacc.c */ 6408 #line 9 78"parser.yy"6383 #line 987 "parser.yy" 6409 6384 { 6410 6385 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6416 6391 6417 6392 /* Line 1806 of yacc.c */ 6418 #line 9 83"parser.yy"6393 #line 992 "parser.yy" 6419 6394 { 6420 6395 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6426 6401 6427 6402 /* Line 1806 of yacc.c */ 6428 #line 9 88"parser.yy"6403 #line 997 "parser.yy" 6429 6404 { 6430 6405 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6436 6411 6437 6412 /* Line 1806 of yacc.c */ 6438 #line 996"parser.yy"6413 #line 1005 "parser.yy" 6439 6414 { 6440 6415 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6446 6421 6447 6422 /* Line 1806 of yacc.c */ 6448 #line 10 01"parser.yy"6423 #line 1010 "parser.yy" 6449 6424 { 6450 6425 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6456 6431 6457 6432 /* Line 1806 of yacc.c */ 6458 #line 10 06"parser.yy"6433 #line 1015 "parser.yy" 6459 6434 { 6460 6435 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6466 6441 6467 6442 /* Line 1806 of yacc.c */ 6468 #line 10 11"parser.yy"6443 #line 1020 "parser.yy" 6469 6444 { 6470 6445 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6476 6451 6477 6452 /* Line 1806 of yacc.c */ 6478 #line 10 16"parser.yy"6453 #line 1025 "parser.yy" 6479 6454 { 6480 6455 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6486 6461 6487 6462 /* Line 1806 of yacc.c */ 6488 #line 10 24"parser.yy"6463 #line 1033 "parser.yy" 6489 6464 { 6490 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok)) );6465 typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) ); 6491 6466 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true ); 6492 6467 } … … 6496 6471 6497 6472 /* Line 1806 of yacc.c */ 6498 #line 10 29"parser.yy"6473 #line 1038 "parser.yy" 6499 6474 { 6500 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok)) );6475 typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) ); 6501 6476 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true ); 6502 6477 } … … 6506 6481 6507 6482 /* Line 1806 of yacc.c */ 6508 #line 10 42"parser.yy"6483 #line 1053 "parser.yy" 6509 6484 { 6510 6485 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6515 6490 6516 6491 /* Line 1806 of yacc.c */ 6517 #line 10 46"parser.yy"6492 #line 1057 "parser.yy" 6518 6493 { 6519 6494 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6524 6499 6525 6500 /* Line 1806 of yacc.c */ 6526 #line 10 53"parser.yy"6501 #line 1064 "parser.yy" 6527 6502 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6528 6503 break; … … 6531 6506 6532 6507 /* Line 1806 of yacc.c */ 6533 #line 10 57"parser.yy"6508 #line 1068 "parser.yy" 6534 6509 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6535 6510 break; … … 6538 6513 6539 6514 /* Line 1806 of yacc.c */ 6540 #line 10 62"parser.yy"6515 #line 1073 "parser.yy" 6541 6516 { 6542 typedefTable.addToEnclosingScope( TypedefTable::TD );6517 typedefTable.addToEnclosingScope( TypedefTable::TD); 6543 6518 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 6544 6519 } … … 6548 6523 6549 6524 /* Line 1806 of yacc.c */ 6550 #line 10 67"parser.yy"6525 #line 1078 "parser.yy" 6551 6526 { 6552 typedefTable.addToEnclosingScope( TypedefTable::TD );6527 typedefTable.addToEnclosingScope( TypedefTable::TD); 6553 6528 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 6554 6529 } … … 6558 6533 6559 6534 /* Line 1806 of yacc.c */ 6560 #line 10 72"parser.yy"6535 #line 1083 "parser.yy" 6561 6536 { 6562 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );6537 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD); 6563 6538 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6564 6539 } … … 6568 6543 6569 6544 /* Line 1806 of yacc.c */ 6570 #line 10 83"parser.yy"6545 #line 1095 "parser.yy" 6571 6546 { 6572 typedefTable.addToEnclosingScope( TypedefTable::TD );6547 typedefTable.addToEnclosingScope( TypedefTable::TD); 6573 6548 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 6574 6549 } … … 6578 6553 6579 6554 /* Line 1806 of yacc.c */ 6580 #line 1 088"parser.yy"6555 #line 1100 "parser.yy" 6581 6556 { 6582 typedefTable.addToEnclosingScope( TypedefTable::TD );6557 typedefTable.addToEnclosingScope( TypedefTable::TD); 6583 6558 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 6584 6559 } … … 6588 6563 6589 6564 /* Line 1806 of yacc.c */ 6590 #line 1 093"parser.yy"6565 #line 1105 "parser.yy" 6591 6566 { 6592 typedefTable.addToEnclosingScope( TypedefTable::TD );6567 typedefTable.addToEnclosingScope( TypedefTable::TD); 6593 6568 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 6594 6569 } … … 6598 6573 6599 6574 /* Line 1806 of yacc.c */ 6600 #line 1 098"parser.yy"6575 #line 1110 "parser.yy" 6601 6576 { 6602 typedefTable.addToEnclosingScope( TypedefTable::TD );6577 typedefTable.addToEnclosingScope( TypedefTable::TD); 6603 6578 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 6604 6579 } … … 6608 6583 6609 6584 /* Line 1806 of yacc.c */ 6610 #line 11 03"parser.yy"6585 #line 1115 "parser.yy" 6611 6586 { 6612 typedefTable.addToEnclosingScope( TypedefTable::TD );6613 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl));6587 typedefTable.addToEnclosingScope( TypedefTable::TD); 6588 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers((yyvsp[(1) - (4)].decl))->addTypedef()->addType((yyvsp[(1) - (4)].decl)); 6614 6589 } 6615 6590 break; … … 6618 6593 6619 6594 /* Line 1806 of yacc.c */ 6620 #line 11 11"parser.yy"6595 #line 1123 "parser.yy" 6621 6596 { 6622 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD);6597 typedefTable.addToEnclosingScope(*((yyvsp[(2) - (4)].tok)), TypedefTable::TD); 6623 6598 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6624 6599 } … … 6628 6603 6629 6604 /* Line 1806 of yacc.c */ 6630 #line 11 16"parser.yy"6605 #line 1128 "parser.yy" 6631 6606 { 6632 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD);6607 typedefTable.addToEnclosingScope(*((yyvsp[(5) - (7)].tok)), TypedefTable::TD); 6633 6608 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6634 6609 } … … 6638 6613 6639 6614 /* Line 1806 of yacc.c */ 6640 #line 11 33"parser.yy"6615 #line 1145 "parser.yy" 6641 6616 { 6642 6617 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6643 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in));6618 (yyval.decl) = ((yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer((yyvsp[(4) - (4)].in)); 6644 6619 } 6645 6620 break; … … 6648 6623 6649 6624 /* Line 1806 of yacc.c */ 6650 #line 11 38"parser.yy"6625 #line 1150 "parser.yy" 6651 6626 { 6652 6627 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6653 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in)) ) );6628 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer((yyvsp[(6) - (6)].in)) ) ); 6654 6629 } 6655 6630 break; … … 6658 6633 6659 6634 /* Line 1806 of yacc.c */ 6660 #line 11 60"parser.yy"6635 #line 1172 "parser.yy" 6661 6636 { (yyval.decl) = 0; } 6662 6637 break; … … 6665 6640 6666 6641 /* Line 1806 of yacc.c */ 6667 #line 11 72"parser.yy"6642 #line 1185 "parser.yy" 6668 6643 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6669 6644 break; … … 6672 6647 6673 6648 /* Line 1806 of yacc.c */ 6674 #line 11 78"parser.yy"6649 #line 1191 "parser.yy" 6675 6650 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 6676 6651 break; … … 6679 6654 6680 6655 /* Line 1806 of yacc.c */ 6681 #line 11 83"parser.yy"6656 #line 1196 "parser.yy" 6682 6657 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6683 6658 break; … … 6686 6661 6687 6662 /* Line 1806 of yacc.c */ 6688 #line 11 85"parser.yy"6663 #line 1198 "parser.yy" 6689 6664 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6690 6665 break; … … 6693 6668 6694 6669 /* Line 1806 of yacc.c */ 6695 #line 1 187"parser.yy"6670 #line 1200 "parser.yy" 6696 6671 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6697 6672 break; … … 6700 6675 6701 6676 /* Line 1806 of yacc.c */ 6702 #line 1 189"parser.yy"6677 #line 1202 "parser.yy" 6703 6678 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6704 6679 break; … … 6707 6682 6708 6683 /* Line 1806 of yacc.c */ 6709 #line 1 191"parser.yy"6684 #line 1204 "parser.yy" 6710 6685 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6711 6686 break; … … 6714 6689 6715 6690 /* Line 1806 of yacc.c */ 6716 #line 1 193"parser.yy"6691 #line 1206 "parser.yy" 6717 6692 { 6718 6693 typedefTable.enterScope(); … … 6723 6698 6724 6699 /* Line 1806 of yacc.c */ 6725 #line 1 197"parser.yy"6700 #line 1210 "parser.yy" 6726 6701 { 6727 6702 typedefTable.leaveScope(); … … 6733 6708 6734 6709 /* Line 1806 of yacc.c */ 6735 #line 1206 "parser.yy"6736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6737 break;6738 6739 case 294:6740 6741 /* Line 1806 of yacc.c */6742 #line 1208 "parser.yy"6743 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6744 break;6745 6746 case 296:6747 6748 /* Line 1806 of yacc.c */6749 6710 #line 1219 "parser.yy" 6750 6711 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6751 6712 break; 6752 6713 6714 case 294: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1221 "parser.yy" 6718 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6719 break; 6720 6721 case 296: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1232 "parser.yy" 6725 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6726 break; 6727 6753 6728 case 298: 6754 6729 6755 6730 /* Line 1806 of yacc.c */ 6756 #line 12 28"parser.yy"6731 #line 1241 "parser.yy" 6757 6732 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6758 6733 break; … … 6761 6736 6762 6737 /* Line 1806 of yacc.c */ 6763 #line 12 30"parser.yy"6738 #line 1243 "parser.yy" 6764 6739 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6765 6740 break; … … 6768 6743 6769 6744 /* Line 1806 of yacc.c */ 6770 #line 12 32"parser.yy"6745 #line 1245 "parser.yy" 6771 6746 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6772 6747 break; … … 6775 6750 6776 6751 /* Line 1806 of yacc.c */ 6777 #line 12 34"parser.yy"6752 #line 1247 "parser.yy" 6778 6753 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6779 6754 break; … … 6782 6757 6783 6758 /* Line 1806 of yacc.c */ 6784 #line 12 36"parser.yy"6759 #line 1249 "parser.yy" 6785 6760 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6786 6761 break; … … 6789 6764 6790 6765 /* Line 1806 of yacc.c */ 6791 #line 12 38"parser.yy"6766 #line 1251 "parser.yy" 6792 6767 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6793 6768 break; … … 6796 6771 6797 6772 /* Line 1806 of yacc.c */ 6798 #line 12 40"parser.yy"6773 #line 1253 "parser.yy" 6799 6774 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6800 6775 break; … … 6803 6778 6804 6779 /* Line 1806 of yacc.c */ 6805 #line 12 42"parser.yy"6780 #line 1255 "parser.yy" 6806 6781 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6807 6782 break; … … 6810 6785 6811 6786 /* Line 1806 of yacc.c */ 6812 #line 12 47"parser.yy"6787 #line 1260 "parser.yy" 6813 6788 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6814 6789 break; … … 6817 6792 6818 6793 /* Line 1806 of yacc.c */ 6819 #line 12 49"parser.yy"6794 #line 1262 "parser.yy" 6820 6795 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6821 6796 break; … … 6824 6799 6825 6800 /* Line 1806 of yacc.c */ 6826 #line 12 51"parser.yy"6801 #line 1264 "parser.yy" 6827 6802 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6828 6803 break; … … 6831 6806 6832 6807 /* Line 1806 of yacc.c */ 6833 #line 12 53"parser.yy"6808 #line 1266 "parser.yy" 6834 6809 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6835 6810 break; … … 6838 6813 6839 6814 /* Line 1806 of yacc.c */ 6840 #line 12 55"parser.yy"6815 #line 1268 "parser.yy" 6841 6816 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6842 6817 break; … … 6845 6820 6846 6821 /* Line 1806 of yacc.c */ 6847 #line 12 57"parser.yy"6822 #line 1270 "parser.yy" 6848 6823 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6849 6824 break; … … 6852 6827 6853 6828 /* Line 1806 of yacc.c */ 6854 #line 12 59"parser.yy"6829 #line 1272 "parser.yy" 6855 6830 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6856 6831 break; … … 6859 6834 6860 6835 /* Line 1806 of yacc.c */ 6861 #line 12 61"parser.yy"6836 #line 1274 "parser.yy" 6862 6837 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6863 6838 break; … … 6866 6841 6867 6842 /* Line 1806 of yacc.c */ 6868 #line 12 63"parser.yy"6843 #line 1276 "parser.yy" 6869 6844 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6870 6845 break; … … 6873 6848 6874 6849 /* Line 1806 of yacc.c */ 6875 #line 12 65"parser.yy"6850 #line 1278 "parser.yy" 6876 6851 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6877 6852 break; … … 6880 6855 6881 6856 /* Line 1806 of yacc.c */ 6882 #line 12 67"parser.yy"6857 #line 1280 "parser.yy" 6883 6858 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6884 6859 break; … … 6887 6862 6888 6863 /* Line 1806 of yacc.c */ 6889 #line 12 69"parser.yy"6864 #line 1282 "parser.yy" 6890 6865 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6891 6866 break; … … 6894 6869 6895 6870 /* Line 1806 of yacc.c */ 6896 #line 12 76"parser.yy"6871 #line 1289 "parser.yy" 6897 6872 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6898 6873 break; … … 6901 6876 6902 6877 /* Line 1806 of yacc.c */ 6903 #line 12 78"parser.yy"6878 #line 1291 "parser.yy" 6904 6879 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6905 6880 break; … … 6908 6883 6909 6884 /* Line 1806 of yacc.c */ 6910 #line 12 80"parser.yy"6885 #line 1293 "parser.yy" 6911 6886 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6912 6887 break; … … 6915 6890 6916 6891 /* Line 1806 of yacc.c */ 6917 #line 12 82"parser.yy"6892 #line 1295 "parser.yy" 6918 6893 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6919 6894 break; … … 6922 6897 6923 6898 /* Line 1806 of yacc.c */ 6924 #line 1 288"parser.yy"6899 #line 1301 "parser.yy" 6925 6900 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6926 6901 break; … … 6929 6904 6930 6905 /* Line 1806 of yacc.c */ 6931 #line 1 295"parser.yy"6906 #line 1308 "parser.yy" 6932 6907 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6933 6908 break; … … 6936 6911 6937 6912 /* Line 1806 of yacc.c */ 6938 #line 1 297"parser.yy"6913 #line 1310 "parser.yy" 6939 6914 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6940 6915 break; … … 6943 6918 6944 6919 /* Line 1806 of yacc.c */ 6945 #line 1 299"parser.yy"6920 #line 1312 "parser.yy" 6946 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6947 6922 break; … … 6950 6925 6951 6926 /* Line 1806 of yacc.c */ 6952 #line 13 04"parser.yy"6927 #line 1317 "parser.yy" 6953 6928 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6954 6929 break; … … 6957 6932 6958 6933 /* Line 1806 of yacc.c */ 6959 #line 13 06"parser.yy"6934 #line 1319 "parser.yy" 6960 6935 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6961 6936 break; … … 6964 6939 6965 6940 /* Line 1806 of yacc.c */ 6966 #line 13 08"parser.yy"6941 #line 1321 "parser.yy" 6967 6942 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6968 6943 break; … … 6971 6946 6972 6947 /* Line 1806 of yacc.c */ 6973 #line 13 10"parser.yy"6948 #line 1323 "parser.yy" 6974 6949 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6975 6950 break; … … 6978 6953 6979 6954 /* Line 1806 of yacc.c */ 6980 #line 13 16"parser.yy"6955 #line 1329 "parser.yy" 6981 6956 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6982 6957 break; … … 6985 6960 6986 6961 /* Line 1806 of yacc.c */ 6987 #line 13 18"parser.yy"6962 #line 1331 "parser.yy" 6988 6963 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6989 6964 break; … … 6992 6967 6993 6968 /* Line 1806 of yacc.c */ 6994 #line 13 20"parser.yy"6969 #line 1333 "parser.yy" 6995 6970 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6996 6971 break; … … 6999 6974 7000 6975 /* Line 1806 of yacc.c */ 7001 #line 13 26"parser.yy"6976 #line 1339 "parser.yy" 7002 6977 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7003 6978 break; … … 7006 6981 7007 6982 /* Line 1806 of yacc.c */ 7008 #line 13 28"parser.yy"6983 #line 1341 "parser.yy" 7009 6984 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7010 6985 break; … … 7013 6988 7014 6989 /* Line 1806 of yacc.c */ 7015 #line 13 34"parser.yy"6990 #line 1347 "parser.yy" 7016 6991 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7017 6992 break; … … 7020 6995 7021 6996 /* Line 1806 of yacc.c */ 7022 #line 13 36"parser.yy"6997 #line 1349 "parser.yy" 7023 6998 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7024 6999 break; … … 7027 7002 7028 7003 /* Line 1806 of yacc.c */ 7029 #line 13 38"parser.yy"7004 #line 1351 "parser.yy" 7030 7005 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7031 7006 break; … … 7034 7009 7035 7010 /* Line 1806 of yacc.c */ 7036 #line 13 43"parser.yy"7011 #line 1356 "parser.yy" 7037 7012 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7038 7013 break; … … 7041 7016 7042 7017 /* Line 1806 of yacc.c */ 7043 #line 13 45"parser.yy"7018 #line 1358 "parser.yy" 7044 7019 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7045 7020 break; … … 7048 7023 7049 7024 /* Line 1806 of yacc.c */ 7050 #line 13 47"parser.yy"7025 #line 1360 "parser.yy" 7051 7026 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7052 7027 break; … … 7055 7030 7056 7031 /* Line 1806 of yacc.c */ 7057 #line 13 57"parser.yy"7032 #line 1370 "parser.yy" 7058 7033 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); } 7059 7034 break; … … 7062 7037 7063 7038 /* Line 1806 of yacc.c */ 7064 #line 13 59"parser.yy"7039 #line 1372 "parser.yy" 7065 7040 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); } 7066 7041 break; … … 7069 7044 7070 7045 /* Line 1806 of yacc.c */ 7071 #line 13 61"parser.yy"7046 #line 1374 "parser.yy" 7072 7047 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); } 7073 7048 break; … … 7076 7051 7077 7052 /* Line 1806 of yacc.c */ 7078 #line 13 63"parser.yy"7053 #line 1376 "parser.yy" 7079 7054 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); } 7080 7055 break; … … 7083 7058 7084 7059 /* Line 1806 of yacc.c */ 7085 #line 13 65"parser.yy"7060 #line 1378 "parser.yy" 7086 7061 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); } 7087 7062 break; … … 7090 7065 7091 7066 /* Line 1806 of yacc.c */ 7092 #line 13 67"parser.yy"7067 #line 1380 "parser.yy" 7093 7068 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); } 7094 7069 break; … … 7097 7072 7098 7073 /* Line 1806 of yacc.c */ 7099 #line 13 69"parser.yy"7074 #line 1382 "parser.yy" 7100 7075 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); } 7101 7076 break; … … 7104 7079 7105 7080 /* Line 1806 of yacc.c */ 7106 #line 13 71"parser.yy"7107 { }7081 #line 1385 "parser.yy" 7082 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); } 7108 7083 break; 7109 7084 … … 7111 7086 7112 7087 /* Line 1806 of yacc.c */ 7113 #line 13 74"parser.yy"7114 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - ( 7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0); }7088 #line 1387 "parser.yy" 7089 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); } 7115 7090 break; 7116 7091 … … 7118 7093 7119 7094 /* Line 1806 of yacc.c */ 7120 #line 13 76"parser.yy"7121 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }7095 #line 1392 "parser.yy" 7096 { (yyval.aggKey) = DeclarationNode::Struct; } 7122 7097 break; 7123 7098 … … 7125 7100 7126 7101 /* Line 1806 of yacc.c */ 7127 #line 13 81"parser.yy"7128 { (yyval.aggKey) = DeclarationNode:: Struct; }7102 #line 1394 "parser.yy" 7103 { (yyval.aggKey) = DeclarationNode::Union; } 7129 7104 break; 7130 7105 … … 7132 7107 7133 7108 /* Line 1806 of yacc.c */ 7134 #line 13 83"parser.yy"7135 { (yyval. aggKey) = DeclarationNode::Union; }7109 #line 1399 "parser.yy" 7110 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7136 7111 break; 7137 7112 … … 7139 7114 7140 7115 /* Line 1806 of yacc.c */ 7141 #line 1388 "parser.yy" 7142 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7143 break; 7144 7145 case 362: 7146 7147 /* Line 1806 of yacc.c */ 7148 #line 1390 "parser.yy" 7116 #line 1401 "parser.yy" 7149 7117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7150 7118 break; 7151 7119 7152 case 36 4:7153 7154 /* Line 1806 of yacc.c */ 7155 #line 1 396"parser.yy"7120 case 363: 7121 7122 /* Line 1806 of yacc.c */ 7123 #line 1407 "parser.yy" 7156 7124 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7157 7125 break; 7158 7126 7159 case 36 6:7160 7161 /* Line 1806 of yacc.c */ 7162 #line 1 399"parser.yy"7127 case 365: 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1410 "parser.yy" 7163 7131 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7164 7132 break; 7165 7133 7134 case 367: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1416 "parser.yy" 7138 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7139 break; 7140 7166 7141 case 368: 7167 7142 7168 7143 /* Line 1806 of yacc.c */ 7169 #line 14 05"parser.yy"7170 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7144 #line 1418 "parser.yy" 7145 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7171 7146 break; 7172 7147 … … 7174 7149 7175 7150 /* Line 1806 of yacc.c */ 7176 #line 14 07"parser.yy"7177 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok)) ); }7151 #line 1420 "parser.yy" 7152 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7178 7153 break; 7179 7154 … … 7181 7156 7182 7157 /* Line 1806 of yacc.c */ 7183 #line 14 09"parser.yy"7184 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0) ); }7158 #line 1425 "parser.yy" 7159 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7185 7160 break; 7186 7161 … … 7188 7163 7189 7164 /* Line 1806 of yacc.c */ 7190 #line 14 14"parser.yy"7191 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7165 #line 1427 "parser.yy" 7166 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7192 7167 break; 7193 7168 … … 7195 7170 7196 7171 /* Line 1806 of yacc.c */ 7197 #line 14 16"parser.yy"7198 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) );}7172 #line 1432 "parser.yy" 7173 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7199 7174 break; 7200 7175 … … 7202 7177 7203 7178 /* Line 1806 of yacc.c */ 7204 #line 14 21"parser.yy"7205 { (yyval.decl) = DeclarationNode::new Name( 0 ); /* XXX */}7179 #line 1434 "parser.yy" 7180 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7206 7181 break; 7207 7182 … … 7209 7184 7210 7185 /* Line 1806 of yacc.c */ 7211 #line 14 23"parser.yy"7212 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }7186 #line 1437 "parser.yy" 7187 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7213 7188 break; 7214 7189 … … 7216 7191 7217 7192 /* Line 1806 of yacc.c */ 7218 #line 14 26"parser.yy"7193 #line 1440 "parser.yy" 7219 7194 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7220 7195 break; 7221 7196 7222 case 37 6:7223 7224 /* Line 1806 of yacc.c */ 7225 #line 14 29"parser.yy"7226 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7197 case 377: 7198 7199 /* Line 1806 of yacc.c */ 7200 #line 1446 "parser.yy" 7201 { (yyval.en) = 0; } 7227 7202 break; 7228 7203 … … 7230 7205 7231 7206 /* Line 1806 of yacc.c */ 7232 #line 1435 "parser.yy" 7207 #line 1448 "parser.yy" 7208 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7209 break; 7210 7211 case 379: 7212 7213 /* Line 1806 of yacc.c */ 7214 #line 1453 "parser.yy" 7215 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7216 break; 7217 7218 case 381: 7219 7220 /* Line 1806 of yacc.c */ 7221 #line 1462 "parser.yy" 7222 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7223 break; 7224 7225 case 382: 7226 7227 /* Line 1806 of yacc.c */ 7228 #line 1464 "parser.yy" 7229 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); } 7230 break; 7231 7232 case 383: 7233 7234 /* Line 1806 of yacc.c */ 7235 #line 1466 "parser.yy" 7236 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); } 7237 break; 7238 7239 case 384: 7240 7241 /* Line 1806 of yacc.c */ 7242 #line 1471 "parser.yy" 7243 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7244 break; 7245 7246 case 385: 7247 7248 /* Line 1806 of yacc.c */ 7249 #line 1473 "parser.yy" 7250 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7251 break; 7252 7253 case 386: 7254 7255 /* Line 1806 of yacc.c */ 7256 #line 1478 "parser.yy" 7233 7257 { (yyval.en) = 0; } 7234 7258 break; 7235 7259 7236 case 379: 7237 7238 /* Line 1806 of yacc.c */ 7239 #line 1437 "parser.yy" 7240 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7241 break; 7242 7243 case 380: 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1442 "parser.yy" 7260 case 387: 7261 7262 /* Line 1806 of yacc.c */ 7263 #line 1480 "parser.yy" 7247 7264 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7248 7265 break; 7249 7266 7250 case 382:7251 7252 /* Line 1806 of yacc.c */7253 #line 1451 "parser.yy"7254 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }7255 break;7256 7257 case 383:7258 7259 /* Line 1806 of yacc.c */7260 #line 1453 "parser.yy"7261 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }7262 break;7263 7264 case 384:7265 7266 /* Line 1806 of yacc.c */7267 #line 1455 "parser.yy"7268 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }7269 break;7270 7271 case 385:7272 7273 /* Line 1806 of yacc.c */7274 #line 1460 "parser.yy"7275 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }7276 break;7277 7278 case 386:7279 7280 /* Line 1806 of yacc.c */7281 #line 1462 "parser.yy"7282 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }7283 break;7284 7285 case 387:7286 7287 /* Line 1806 of yacc.c */7288 #line 1467 "parser.yy"7289 { (yyval.en) = 0; }7290 break;7291 7292 7267 case 388: 7293 7268 7294 7269 /* Line 1806 of yacc.c */ 7295 #line 1469 "parser.yy" 7296 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7297 break; 7298 7299 case 389: 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1476 "parser.yy" 7270 #line 1487 "parser.yy" 7303 7271 { (yyval.decl) = 0; } 7304 7272 break; 7305 7273 7274 case 392: 7275 7276 /* Line 1806 of yacc.c */ 7277 #line 1495 "parser.yy" 7278 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7279 break; 7280 7306 7281 case 393: 7307 7282 7308 7283 /* Line 1806 of yacc.c */ 7309 #line 1484 "parser.yy" 7284 #line 1497 "parser.yy" 7285 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7286 break; 7287 7288 case 394: 7289 7290 /* Line 1806 of yacc.c */ 7291 #line 1499 "parser.yy" 7292 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7293 break; 7294 7295 case 396: 7296 7297 /* Line 1806 of yacc.c */ 7298 #line 1508 "parser.yy" 7310 7299 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7311 7300 break; 7312 7301 7313 case 394: 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1486 "parser.yy" 7302 case 397: 7303 7304 /* Line 1806 of yacc.c */ 7305 #line 1510 "parser.yy" 7306 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7307 break; 7308 7309 case 398: 7310 7311 /* Line 1806 of yacc.c */ 7312 #line 1512 "parser.yy" 7313 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7314 break; 7315 7316 case 400: 7317 7318 /* Line 1806 of yacc.c */ 7319 #line 1518 "parser.yy" 7320 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7321 break; 7322 7323 case 401: 7324 7325 /* Line 1806 of yacc.c */ 7326 #line 1523 "parser.yy" 7327 { (yyval.decl) = 0; } 7328 break; 7329 7330 case 404: 7331 7332 /* Line 1806 of yacc.c */ 7333 #line 1530 "parser.yy" 7317 7334 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7318 7335 break; 7319 7336 7320 case 395: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1488 "parser.yy" 7324 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7325 break; 7326 7327 case 397: 7328 7329 /* Line 1806 of yacc.c */ 7330 #line 1496 "parser.yy" 7337 case 407: 7338 7339 /* Line 1806 of yacc.c */ 7340 #line 1537 "parser.yy" 7331 7341 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7332 7342 break; 7333 7343 7334 case 398:7335 7336 /* Line 1806 of yacc.c */ 7337 #line 1 498"parser.yy"7344 case 408: 7345 7346 /* Line 1806 of yacc.c */ 7347 #line 1539 "parser.yy" 7338 7348 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7339 7349 break; 7340 7350 7341 case 399: 7342 7343 /* Line 1806 of yacc.c */ 7344 #line 1500 "parser.yy" 7345 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7346 break; 7347 7348 case 401: 7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1506 "parser.yy" 7352 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7353 break; 7354 7355 case 402: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1511 "parser.yy" 7359 { (yyval.decl) = 0; } 7360 break; 7361 7362 case 405: 7363 7364 /* Line 1806 of yacc.c */ 7365 #line 1518 "parser.yy" 7366 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7367 break; 7368 7369 case 408: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1525 "parser.yy" 7373 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7374 break; 7375 7376 case 409: 7377 7378 /* Line 1806 of yacc.c */ 7379 #line 1527 "parser.yy" 7380 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7351 case 410: 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1549 "parser.yy" 7355 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7381 7356 break; 7382 7357 … … 7384 7359 7385 7360 /* Line 1806 of yacc.c */ 7386 #line 15 36"parser.yy"7361 #line 1552 "parser.yy" 7387 7362 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7388 7363 break; … … 7391 7366 7392 7367 /* Line 1806 of yacc.c */ 7393 #line 1539 "parser.yy" 7394 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7395 break; 7396 7397 case 413: 7398 7399 /* Line 1806 of yacc.c */ 7400 #line 1541 "parser.yy" 7368 #line 1554 "parser.yy" 7401 7369 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7402 7370 break; 7403 7371 7404 case 41 8:7405 7406 /* Line 1806 of yacc.c */ 7407 #line 15 51"parser.yy"7372 case 417: 7373 7374 /* Line 1806 of yacc.c */ 7375 #line 1564 "parser.yy" 7408 7376 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7409 7377 break; 7410 7378 7411 case 4 20:7412 7413 /* Line 1806 of yacc.c */ 7414 #line 15 57"parser.yy"7379 case 419: 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1570 "parser.yy" 7415 7383 { 7416 7384 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7417 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en)) );7385 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode((yyvsp[(3) - (3)].en)) ); 7418 7386 } 7419 7387 break; 7420 7388 7421 case 42 1:7422 7423 /* Line 1806 of yacc.c */ 7424 #line 15 62"parser.yy"7389 case 420: 7390 7391 /* Line 1806 of yacc.c */ 7392 #line 1575 "parser.yy" 7425 7393 { 7426 7394 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7427 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en)) );7395 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode((yyvsp[(3) - (3)].en)) ); 7428 7396 } 7429 7397 break; 7430 7398 7399 case 422: 7400 7401 /* Line 1806 of yacc.c */ 7402 #line 1584 "parser.yy" 7403 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7404 break; 7405 7431 7406 case 423: 7432 7407 7433 7408 /* Line 1806 of yacc.c */ 7434 #line 1571 "parser.yy" 7409 #line 1593 "parser.yy" 7410 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7411 break; 7412 7413 case 424: 7414 7415 /* Line 1806 of yacc.c */ 7416 #line 1595 "parser.yy" 7417 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7418 break; 7419 7420 case 436: 7421 7422 /* Line 1806 of yacc.c */ 7423 #line 1620 "parser.yy" 7435 7424 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7436 7425 break; 7437 7426 7438 case 424: 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1580 "parser.yy" 7442 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7443 break; 7444 7445 case 425: 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1582 "parser.yy" 7449 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7450 break; 7451 7452 case 436: 7453 7454 /* Line 1806 of yacc.c */ 7455 #line 1607 "parser.yy" 7427 case 440: 7428 7429 /* Line 1806 of yacc.c */ 7430 #line 1628 "parser.yy" 7456 7431 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7457 7432 break; 7458 7433 7459 case 440:7460 7461 /* Line 1806 of yacc.c */7462 #line 1615 "parser.yy"7463 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7464 break;7465 7466 7434 case 441: 7467 7435 7468 7436 /* Line 1806 of yacc.c */ 7469 #line 16 20"parser.yy"7437 #line 1633 "parser.yy" 7470 7438 { (yyval.in) = 0; } 7471 7439 break; … … 7474 7442 7475 7443 /* Line 1806 of yacc.c */ 7476 #line 16 21"parser.yy"7444 #line 1634 "parser.yy" 7477 7445 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7478 7446 break; … … 7481 7449 7482 7450 /* Line 1806 of yacc.c */ 7483 #line 16 25"parser.yy"7484 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en)); }7451 #line 1638 "parser.yy" 7452 { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); } 7485 7453 break; 7486 7454 … … 7488 7456 7489 7457 /* Line 1806 of yacc.c */ 7490 #line 16 26"parser.yy"7491 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true); }7458 #line 1639 "parser.yy" 7459 { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); } 7492 7460 break; 7493 7461 … … 7495 7463 7496 7464 /* Line 1806 of yacc.c */ 7497 #line 16 31"parser.yy"7465 #line 1644 "parser.yy" 7498 7466 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7499 7467 break; … … 7502 7470 7503 7471 /* Line 1806 of yacc.c */ 7504 #line 16 32"parser.yy"7505 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in)) ); }7472 #line 1645 "parser.yy" 7473 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); } 7506 7474 break; 7507 7475 … … 7509 7477 7510 7478 /* Line 1806 of yacc.c */ 7511 #line 16 34"parser.yy"7512 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en)) ) ); }7479 #line 1647 "parser.yy" 7480 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); } 7513 7481 break; 7514 7482 … … 7516 7484 7517 7485 /* Line 1806 of yacc.c */ 7518 #line 16 50"parser.yy"7486 #line 1663 "parser.yy" 7519 7487 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7520 7488 break; … … 7523 7491 7524 7492 /* Line 1806 of yacc.c */ 7525 #line 16 55"parser.yy"7526 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }7493 #line 1668 "parser.yy" 7494 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7527 7495 break; 7528 7496 … … 7530 7498 7531 7499 /* Line 1806 of yacc.c */ 7532 #line 16 61"parser.yy"7500 #line 1673 "parser.yy" 7533 7501 { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); } 7534 7502 break; … … 7537 7505 7538 7506 /* Line 1806 of yacc.c */ 7539 #line 16 64"parser.yy"7507 #line 1677 "parser.yy" 7540 7508 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7541 7509 break; … … 7544 7512 7545 7513 /* Line 1806 of yacc.c */ 7546 #line 16 66"parser.yy"7514 #line 1679 "parser.yy" 7547 7515 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7548 7516 break; … … 7551 7519 7552 7520 /* Line 1806 of yacc.c */ 7553 #line 16 68"parser.yy"7554 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }7521 #line 1681 "parser.yy" 7522 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); } 7555 7523 break; 7556 7524 … … 7558 7526 7559 7527 /* Line 1806 of yacc.c */ 7560 #line 16 70"parser.yy"7528 #line 1683 "parser.yy" 7561 7529 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7562 7530 break; … … 7565 7533 7566 7534 /* Line 1806 of yacc.c */ 7567 #line 1 694"parser.yy"7535 #line 1708 "parser.yy" 7568 7536 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7569 7537 break; … … 7572 7540 7573 7541 /* Line 1806 of yacc.c */ 7574 #line 1 696"parser.yy"7542 #line 1710 "parser.yy" 7575 7543 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7576 7544 break; … … 7579 7547 7580 7548 /* Line 1806 of yacc.c */ 7581 #line 1 698"parser.yy"7549 #line 1712 "parser.yy" 7582 7550 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7583 7551 break; … … 7586 7554 7587 7555 /* Line 1806 of yacc.c */ 7588 #line 17 03"parser.yy"7556 #line 1717 "parser.yy" 7589 7557 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7590 7558 break; … … 7593 7561 7594 7562 /* Line 1806 of yacc.c */ 7595 #line 17 05"parser.yy"7563 #line 1719 "parser.yy" 7596 7564 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); } 7597 7565 break; … … 7600 7568 7601 7569 /* Line 1806 of yacc.c */ 7602 #line 17 07"parser.yy"7570 #line 1721 "parser.yy" 7603 7571 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7604 7572 break; … … 7607 7575 7608 7576 /* Line 1806 of yacc.c */ 7609 #line 17 13"parser.yy"7577 #line 1727 "parser.yy" 7610 7578 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7611 7579 break; … … 7614 7582 7615 7583 /* Line 1806 of yacc.c */ 7616 #line 17 18"parser.yy"7617 { typedefTable.addToEnclosingScope(*( (yyvsp[(2) - (2)].tok) ), TypedefTable::TD); }7584 #line 1732 "parser.yy" 7585 { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); } 7618 7586 break; 7619 7587 … … 7621 7589 7622 7590 /* Line 1806 of yacc.c */ 7623 #line 17 20"parser.yy"7591 #line 1734 "parser.yy" 7624 7592 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7625 7593 break; … … 7628 7596 7629 7597 /* Line 1806 of yacc.c */ 7630 #line 17 26"parser.yy"7598 #line 1740 "parser.yy" 7631 7599 { (yyval.tclass) = DeclarationNode::Type; } 7632 7600 break; … … 7635 7603 7636 7604 /* Line 1806 of yacc.c */ 7637 #line 17 28"parser.yy"7605 #line 1742 "parser.yy" 7638 7606 { (yyval.tclass) = DeclarationNode::Ftype; } 7639 7607 break; … … 7642 7610 7643 7611 /* Line 1806 of yacc.c */ 7644 #line 17 30"parser.yy"7612 #line 1744 "parser.yy" 7645 7613 { (yyval.tclass) = DeclarationNode::Dtype; } 7646 7614 break; … … 7649 7617 7650 7618 /* Line 1806 of yacc.c */ 7651 #line 17 35"parser.yy"7619 #line 1749 "parser.yy" 7652 7620 { (yyval.decl) = 0; } 7653 7621 break; … … 7656 7624 7657 7625 /* Line 1806 of yacc.c */ 7658 #line 17 37"parser.yy"7626 #line 1751 "parser.yy" 7659 7627 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7660 7628 break; … … 7663 7631 7664 7632 /* Line 1806 of yacc.c */ 7665 #line 17 42"parser.yy"7633 #line 1756 "parser.yy" 7666 7634 { 7667 typedefTable.openContext( *( (yyvsp[(2) - (5)].tok)) );7635 typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) ); 7668 7636 (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 7669 7637 } … … 7673 7641 7674 7642 /* Line 1806 of yacc.c */ 7675 #line 17 47"parser.yy"7643 #line 1761 "parser.yy" 7676 7644 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7677 7645 break; … … 7680 7648 7681 7649 /* Line 1806 of yacc.c */ 7682 #line 17 49"parser.yy"7650 #line 1763 "parser.yy" 7683 7651 { (yyval.decl) = 0; } 7684 7652 break; … … 7687 7655 7688 7656 /* Line 1806 of yacc.c */ 7689 #line 17 54"parser.yy"7657 #line 1768 "parser.yy" 7690 7658 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7691 7659 break; … … 7694 7662 7695 7663 /* Line 1806 of yacc.c */ 7696 #line 17 57"parser.yy"7697 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }7664 #line 1771 "parser.yy" 7665 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7698 7666 break; 7699 7667 … … 7701 7669 7702 7670 /* Line 1806 of yacc.c */ 7703 #line 17 59"parser.yy"7704 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en))); }7671 #line 1773 "parser.yy" 7672 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); } 7705 7673 break; 7706 7674 … … 7708 7676 7709 7677 /* Line 1806 of yacc.c */ 7710 #line 17 64"parser.yy"7678 #line 1778 "parser.yy" 7711 7679 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7712 7680 break; … … 7715 7683 7716 7684 /* Line 1806 of yacc.c */ 7717 #line 17 66"parser.yy"7685 #line 1780 "parser.yy" 7718 7686 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7719 7687 break; … … 7722 7690 7723 7691 /* Line 1806 of yacc.c */ 7724 #line 17 68"parser.yy"7692 #line 1782 "parser.yy" 7725 7693 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7726 7694 break; … … 7729 7697 7730 7698 /* Line 1806 of yacc.c */ 7731 #line 17 73"parser.yy"7699 #line 1787 "parser.yy" 7732 7700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7733 7701 break; … … 7736 7704 7737 7705 /* Line 1806 of yacc.c */ 7738 #line 17 75"parser.yy"7706 #line 1789 "parser.yy" 7739 7707 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7740 7708 break; … … 7743 7711 7744 7712 /* Line 1806 of yacc.c */ 7745 #line 17 80"parser.yy"7713 #line 1794 "parser.yy" 7746 7714 { 7747 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD);7715 typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD); 7748 7716 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 7749 7717 } … … 7753 7721 7754 7722 /* Line 1806 of yacc.c */ 7755 #line 17 85"parser.yy"7723 #line 1799 "parser.yy" 7756 7724 { 7757 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG);7725 typedefTable.addToEnclosingScope(*((yyvsp[(1) - (6)].tok)), TypedefTable::TG); 7758 7726 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 7759 7727 } … … 7763 7731 7764 7732 /* Line 1806 of yacc.c */ 7765 #line 1 793"parser.yy"7733 #line 1807 "parser.yy" 7766 7734 { 7767 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );7735 typedefTable.addToEnclosingScope(*((yyvsp[(2) - (9)].tok)), TypedefTable::ID ); 7768 7736 (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 7769 7737 } … … 7773 7741 7774 7742 /* Line 1806 of yacc.c */ 7775 #line 1 798"parser.yy"7743 #line 1812 "parser.yy" 7776 7744 { 7777 typedefTable.enterContext( *( yyvsp[(2) - (8)].tok) );7745 typedefTable.enterContext( *((yyvsp[(2) - (8)].tok)) ); 7778 7746 typedefTable.enterScope(); 7779 7747 } … … 7783 7751 7784 7752 /* Line 1806 of yacc.c */ 7785 #line 18 03"parser.yy"7753 #line 1817 "parser.yy" 7786 7754 { 7787 7755 typedefTable.leaveContext(); 7788 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );7756 typedefTable.addToEnclosingScope(*((yyvsp[(2) - (11)].tok)), TypedefTable::ID ); 7789 7757 (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 7790 7758 } … … 7794 7762 7795 7763 /* Line 1806 of yacc.c */ 7796 #line 18 13"parser.yy"7764 #line 1827 "parser.yy" 7797 7765 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7798 7766 break; … … 7801 7769 7802 7770 /* Line 1806 of yacc.c */ 7803 #line 18 23"parser.yy"7771 #line 1837 "parser.yy" 7804 7772 { 7805 7773 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7811 7779 7812 7780 /* Line 1806 of yacc.c */ 7813 #line 18 28"parser.yy"7781 #line 1842 "parser.yy" 7814 7782 { 7815 7783 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7821 7789 7822 7790 /* Line 1806 of yacc.c */ 7823 #line 18 33"parser.yy"7791 #line 1847 "parser.yy" 7824 7792 { 7825 typedefTable.addToEnclosingScope2( *( yyvsp[(5) - (5)].tok), TypedefTable::ID );7793 typedefTable.addToEnclosingScope2( *((yyvsp[(5) - (5)].tok)), TypedefTable::ID ); 7826 7794 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 7827 7795 } … … 7831 7799 7832 7800 /* Line 1806 of yacc.c */ 7833 #line 18 41"parser.yy"7801 #line 1855 "parser.yy" 7834 7802 { 7835 7803 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7841 7809 7842 7810 /* Line 1806 of yacc.c */ 7843 #line 18 46"parser.yy"7811 #line 1860 "parser.yy" 7844 7812 { 7845 7813 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7851 7819 7852 7820 /* Line 1806 of yacc.c */ 7853 #line 18 56"parser.yy"7821 #line 1870 "parser.yy" 7854 7822 {} 7855 7823 break; … … 7858 7826 7859 7827 /* Line 1806 of yacc.c */ 7860 #line 18 58"parser.yy"7828 #line 1872 "parser.yy" 7861 7829 { 7862 7830 if ( theTree ) { … … 7871 7839 7872 7840 /* Line 1806 of yacc.c */ 7873 #line 18 70"parser.yy"7874 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }7841 #line 1884 "parser.yy" 7842 { (yyval.decl) = ((yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7875 7843 break; 7876 7844 … … 7878 7846 7879 7847 /* Line 1806 of yacc.c */ 7880 #line 18 75"parser.yy"7848 #line 1889 "parser.yy" 7881 7849 { (yyval.decl) = 0; } 7882 7850 break; … … 7885 7853 7886 7854 /* Line 1806 of yacc.c */ 7887 #line 18 83"parser.yy"7855 #line 1897 "parser.yy" 7888 7856 {} 7889 7857 break; … … 7892 7860 7893 7861 /* Line 1806 of yacc.c */ 7894 #line 18 85"parser.yy"7862 #line 1899 "parser.yy" 7895 7863 { 7896 7864 linkageStack.push( linkage ); … … 7902 7870 7903 7871 /* Line 1806 of yacc.c */ 7904 #line 1 890"parser.yy"7872 #line 1904 "parser.yy" 7905 7873 { 7906 7874 linkage = linkageStack.top(); … … 7913 7881 7914 7882 /* Line 1806 of yacc.c */ 7915 #line 1 896"parser.yy"7883 #line 1910 "parser.yy" 7916 7884 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7917 7885 break; 7918 7886 7919 7887 case 514: 7920 7921 /* Line 1806 of yacc.c */7922 #line 1907 "parser.yy"7923 {7924 typedefTable.addToEnclosingScope( TypedefTable::ID );7925 typedefTable.leaveScope();7926 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );7927 }7928 break;7929 7930 case 515:7931 7932 /* Line 1806 of yacc.c */7933 #line 1913 "parser.yy"7934 {7935 typedefTable.addToEnclosingScope( TypedefTable::ID );7936 typedefTable.leaveScope();7937 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );7938 }7939 break;7940 7941 case 516:7942 7888 7943 7889 /* Line 1806 of yacc.c */ … … 7950 7896 break; 7951 7897 7898 case 515: 7899 7900 /* Line 1806 of yacc.c */ 7901 #line 1928 "parser.yy" 7902 { 7903 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7904 typedefTable.leaveScope(); 7905 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 7906 } 7907 break; 7908 7909 case 516: 7910 7911 /* Line 1806 of yacc.c */ 7912 #line 1937 "parser.yy" 7913 { 7914 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7915 typedefTable.leaveScope(); 7916 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 7917 } 7918 break; 7919 7952 7920 case 517: 7953 7921 7954 7922 /* Line 1806 of yacc.c */ 7955 #line 19 28"parser.yy"7923 #line 1943 "parser.yy" 7956 7924 { 7957 7925 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7964 7932 7965 7933 /* Line 1806 of yacc.c */ 7966 #line 19 34"parser.yy"7934 #line 1949 "parser.yy" 7967 7935 { 7968 7936 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7975 7943 7976 7944 /* Line 1806 of yacc.c */ 7977 #line 19 40"parser.yy"7945 #line 1955 "parser.yy" 7978 7946 { 7979 7947 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7986 7954 7987 7955 /* Line 1806 of yacc.c */ 7988 #line 19 46"parser.yy"7956 #line 1961 "parser.yy" 7989 7957 { 7990 7958 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7997 7965 7998 7966 /* Line 1806 of yacc.c */ 7999 #line 19 54"parser.yy"7967 #line 1969 "parser.yy" 8000 7968 { 8001 7969 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8008 7976 8009 7977 /* Line 1806 of yacc.c */ 8010 #line 19 60"parser.yy"7978 #line 1975 "parser.yy" 8011 7979 { 8012 7980 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8019 7987 8020 7988 /* Line 1806 of yacc.c */ 8021 #line 19 68"parser.yy"7989 #line 1983 "parser.yy" 8022 7990 { 8023 7991 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8030 7998 8031 7999 /* Line 1806 of yacc.c */ 8032 #line 19 74"parser.yy"8000 #line 1989 "parser.yy" 8033 8001 { 8034 8002 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8041 8009 8042 8010 /* Line 1806 of yacc.c */ 8043 #line 1989"parser.yy"8044 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }8011 #line 2004 "parser.yy" 8012 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 8045 8013 break; 8046 8014 … … 8048 8016 8049 8017 /* Line 1806 of yacc.c */ 8050 #line 20 23"parser.yy"8018 #line 2038 "parser.yy" 8051 8019 {} 8052 8020 break; … … 8055 8023 8056 8024 /* Line 1806 of yacc.c */ 8057 #line 20 24"parser.yy"8025 #line 2039 "parser.yy" 8058 8026 {} 8059 8027 break; … … 8062 8030 8063 8031 /* Line 1806 of yacc.c */ 8064 #line 20 25"parser.yy"8032 #line 2040 "parser.yy" 8065 8033 {} 8066 8034 break; … … 8069 8037 8070 8038 /* Line 1806 of yacc.c */ 8071 #line 20 26"parser.yy"8039 #line 2041 "parser.yy" 8072 8040 {} 8073 8041 break; … … 8076 8044 8077 8045 /* Line 1806 of yacc.c */ 8078 #line 20 68"parser.yy"8046 #line 2084 "parser.yy" 8079 8047 { 8080 typedefTable.setNextIdentifier( *( yyvsp[(1) - (1)].tok) );8048 typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) ); 8081 8049 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8082 8050 } … … 8086 8054 8087 8055 /* Line 1806 of yacc.c */ 8088 #line 20 73"parser.yy"8056 #line 2089 "parser.yy" 8089 8057 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8090 8058 break; … … 8093 8061 8094 8062 /* Line 1806 of yacc.c */ 8095 #line 20 78"parser.yy"8063 #line 2094 "parser.yy" 8096 8064 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8097 8065 break; … … 8100 8068 8101 8069 /* Line 1806 of yacc.c */ 8102 #line 20 80"parser.yy"8070 #line 2096 "parser.yy" 8103 8071 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8104 8072 break; … … 8107 8075 8108 8076 /* Line 1806 of yacc.c */ 8109 #line 20 82"parser.yy"8077 #line 2098 "parser.yy" 8110 8078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8111 8079 break; … … 8114 8082 8115 8083 /* Line 1806 of yacc.c */ 8116 #line 2 087"parser.yy"8084 #line 2103 "parser.yy" 8117 8085 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8118 8086 break; … … 8121 8089 8122 8090 /* Line 1806 of yacc.c */ 8123 #line 2 089"parser.yy"8091 #line 2105 "parser.yy" 8124 8092 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8125 8093 break; … … 8128 8096 8129 8097 /* Line 1806 of yacc.c */ 8130 #line 2 091"parser.yy"8098 #line 2107 "parser.yy" 8131 8099 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8132 8100 break; … … 8135 8103 8136 8104 /* Line 1806 of yacc.c */ 8137 #line 2 093"parser.yy"8105 #line 2109 "parser.yy" 8138 8106 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8139 8107 break; … … 8142 8110 8143 8111 /* Line 1806 of yacc.c */ 8144 #line 2 098"parser.yy"8112 #line 2114 "parser.yy" 8145 8113 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8146 8114 break; … … 8149 8117 8150 8118 /* Line 1806 of yacc.c */ 8151 #line 21 00"parser.yy"8119 #line 2116 "parser.yy" 8152 8120 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8153 8121 break; … … 8156 8124 8157 8125 /* Line 1806 of yacc.c */ 8158 #line 21 16"parser.yy"8126 #line 2132 "parser.yy" 8159 8127 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8160 8128 break; … … 8163 8131 8164 8132 /* Line 1806 of yacc.c */ 8165 #line 21 18"parser.yy"8133 #line 2134 "parser.yy" 8166 8134 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8167 8135 break; … … 8170 8138 8171 8139 /* Line 1806 of yacc.c */ 8172 #line 21 20"parser.yy"8140 #line 2136 "parser.yy" 8173 8141 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8174 8142 break; … … 8177 8145 8178 8146 /* Line 1806 of yacc.c */ 8179 #line 21 25"parser.yy"8147 #line 2141 "parser.yy" 8180 8148 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8181 8149 break; … … 8184 8152 8185 8153 /* Line 1806 of yacc.c */ 8186 #line 21 27"parser.yy"8154 #line 2143 "parser.yy" 8187 8155 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8188 8156 break; … … 8191 8159 8192 8160 /* Line 1806 of yacc.c */ 8193 #line 21 29"parser.yy"8161 #line 2145 "parser.yy" 8194 8162 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8195 8163 break; … … 8198 8166 8199 8167 /* Line 1806 of yacc.c */ 8200 #line 21 34"parser.yy"8168 #line 2150 "parser.yy" 8201 8169 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8202 8170 break; … … 8205 8173 8206 8174 /* Line 1806 of yacc.c */ 8207 #line 21 36"parser.yy"8175 #line 2152 "parser.yy" 8208 8176 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8209 8177 break; … … 8212 8180 8213 8181 /* Line 1806 of yacc.c */ 8214 #line 21 38"parser.yy"8182 #line 2154 "parser.yy" 8215 8183 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8216 8184 break; … … 8219 8187 8220 8188 /* Line 1806 of yacc.c */ 8221 #line 21 53"parser.yy"8189 #line 2169 "parser.yy" 8222 8190 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8223 8191 break; … … 8226 8194 8227 8195 /* Line 1806 of yacc.c */ 8228 #line 21 55"parser.yy"8196 #line 2171 "parser.yy" 8229 8197 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8230 8198 break; … … 8233 8201 8234 8202 /* Line 1806 of yacc.c */ 8235 #line 21 57"parser.yy"8203 #line 2173 "parser.yy" 8236 8204 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8237 8205 break; … … 8240 8208 8241 8209 /* Line 1806 of yacc.c */ 8242 #line 21 62"parser.yy"8210 #line 2178 "parser.yy" 8243 8211 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8244 8212 break; … … 8247 8215 8248 8216 /* Line 1806 of yacc.c */ 8249 #line 21 64"parser.yy"8217 #line 2180 "parser.yy" 8250 8218 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8251 8219 break; … … 8254 8222 8255 8223 /* Line 1806 of yacc.c */ 8256 #line 21 66"parser.yy"8224 #line 2182 "parser.yy" 8257 8225 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8258 8226 break; … … 8261 8229 8262 8230 /* Line 1806 of yacc.c */ 8263 #line 21 71"parser.yy"8231 #line 2187 "parser.yy" 8264 8232 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8265 8233 break; … … 8268 8236 8269 8237 /* Line 1806 of yacc.c */ 8270 #line 21 73"parser.yy"8238 #line 2189 "parser.yy" 8271 8239 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8272 8240 break; … … 8275 8243 8276 8244 /* Line 1806 of yacc.c */ 8277 #line 21 75"parser.yy"8245 #line 2191 "parser.yy" 8278 8246 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8279 8247 break; … … 8282 8250 8283 8251 /* Line 1806 of yacc.c */ 8284 #line 2 197"parser.yy"8252 #line 2213 "parser.yy" 8285 8253 { 8286 typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok)) );8254 typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) ); 8287 8255 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8288 8256 } … … 8292 8260 8293 8261 /* Line 1806 of yacc.c */ 8294 #line 22 02"parser.yy"8262 #line 2218 "parser.yy" 8295 8263 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8296 8264 break; … … 8299 8267 8300 8268 /* Line 1806 of yacc.c */ 8301 #line 22 07"parser.yy"8269 #line 2223 "parser.yy" 8302 8270 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8303 8271 break; … … 8306 8274 8307 8275 /* Line 1806 of yacc.c */ 8308 #line 22 09"parser.yy"8276 #line 2225 "parser.yy" 8309 8277 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8310 8278 break; … … 8313 8281 8314 8282 /* Line 1806 of yacc.c */ 8315 #line 22 11"parser.yy"8283 #line 2227 "parser.yy" 8316 8284 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8317 8285 break; … … 8320 8288 8321 8289 /* Line 1806 of yacc.c */ 8322 #line 22 16"parser.yy"8290 #line 2232 "parser.yy" 8323 8291 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8324 8292 break; … … 8327 8295 8328 8296 /* Line 1806 of yacc.c */ 8329 #line 22 18"parser.yy"8297 #line 2234 "parser.yy" 8330 8298 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8331 8299 break; … … 8334 8302 8335 8303 /* Line 1806 of yacc.c */ 8336 #line 22 20"parser.yy"8304 #line 2236 "parser.yy" 8337 8305 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8338 8306 break; … … 8341 8309 8342 8310 /* Line 1806 of yacc.c */ 8343 #line 22 22"parser.yy"8311 #line 2238 "parser.yy" 8344 8312 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8345 8313 break; … … 8348 8316 8349 8317 /* Line 1806 of yacc.c */ 8350 #line 22 27"parser.yy"8318 #line 2243 "parser.yy" 8351 8319 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8352 8320 break; … … 8355 8323 8356 8324 /* Line 1806 of yacc.c */ 8357 #line 22 29"parser.yy"8325 #line 2245 "parser.yy" 8358 8326 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 8327 break; … … 8362 8330 8363 8331 /* Line 1806 of yacc.c */ 8364 #line 22 31"parser.yy"8332 #line 2247 "parser.yy" 8365 8333 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 8334 break; … … 8369 8337 8370 8338 /* Line 1806 of yacc.c */ 8371 #line 22 48"parser.yy"8339 #line 2264 "parser.yy" 8372 8340 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8373 8341 break; … … 8376 8344 8377 8345 /* Line 1806 of yacc.c */ 8378 #line 22 50"parser.yy"8346 #line 2266 "parser.yy" 8379 8347 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8380 8348 break; … … 8383 8351 8384 8352 /* Line 1806 of yacc.c */ 8385 #line 22 52"parser.yy"8353 #line 2268 "parser.yy" 8386 8354 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8387 8355 break; … … 8390 8358 8391 8359 /* Line 1806 of yacc.c */ 8392 #line 22 57"parser.yy"8360 #line 2273 "parser.yy" 8393 8361 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8394 8362 break; … … 8397 8365 8398 8366 /* Line 1806 of yacc.c */ 8399 #line 22 59"parser.yy"8367 #line 2275 "parser.yy" 8400 8368 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8401 8369 break; … … 8404 8372 8405 8373 /* Line 1806 of yacc.c */ 8406 #line 22 61"parser.yy"8374 #line 2277 "parser.yy" 8407 8375 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8408 8376 break; … … 8411 8379 8412 8380 /* Line 1806 of yacc.c */ 8413 #line 22 63"parser.yy"8381 #line 2279 "parser.yy" 8414 8382 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8415 8383 break; … … 8418 8386 8419 8387 /* Line 1806 of yacc.c */ 8420 #line 22 68"parser.yy"8388 #line 2284 "parser.yy" 8421 8389 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8422 8390 break; … … 8425 8393 8426 8394 /* Line 1806 of yacc.c */ 8427 #line 22 70"parser.yy"8395 #line 2286 "parser.yy" 8428 8396 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8429 8397 break; … … 8432 8400 8433 8401 /* Line 1806 of yacc.c */ 8434 #line 22 72"parser.yy"8402 #line 2288 "parser.yy" 8435 8403 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8436 8404 break; … … 8439 8407 8440 8408 /* Line 1806 of yacc.c */ 8441 #line 23 10"parser.yy"8409 #line 2326 "parser.yy" 8442 8410 { 8443 typedefTable.setNextIdentifier( *( yyvsp[(1) - (1)].tok) );8411 typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) ); 8444 8412 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8445 8413 } … … 8449 8417 8450 8418 /* Line 1806 of yacc.c */ 8451 #line 23 18"parser.yy"8419 #line 2334 "parser.yy" 8452 8420 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8453 8421 break; … … 8456 8424 8457 8425 /* Line 1806 of yacc.c */ 8458 #line 23 20"parser.yy"8426 #line 2336 "parser.yy" 8459 8427 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8460 8428 break; … … 8463 8431 8464 8432 /* Line 1806 of yacc.c */ 8465 #line 23 22"parser.yy"8433 #line 2338 "parser.yy" 8466 8434 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8467 8435 break; … … 8470 8438 8471 8439 /* Line 1806 of yacc.c */ 8472 #line 23 27"parser.yy"8440 #line 2343 "parser.yy" 8473 8441 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8474 8442 break; … … 8477 8445 8478 8446 /* Line 1806 of yacc.c */ 8479 #line 23 29"parser.yy"8447 #line 2345 "parser.yy" 8480 8448 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8481 8449 break; … … 8484 8452 8485 8453 /* Line 1806 of yacc.c */ 8486 #line 23 34"parser.yy"8454 #line 2350 "parser.yy" 8487 8455 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8488 8456 break; … … 8491 8459 8492 8460 /* Line 1806 of yacc.c */ 8493 #line 23 36"parser.yy"8461 #line 2352 "parser.yy" 8494 8462 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8495 8463 break; … … 8498 8466 8499 8467 /* Line 1806 of yacc.c */ 8500 #line 23 56"parser.yy"8468 #line 2372 "parser.yy" 8501 8469 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8502 8470 break; … … 8505 8473 8506 8474 /* Line 1806 of yacc.c */ 8507 #line 23 58"parser.yy"8475 #line 2374 "parser.yy" 8508 8476 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8509 8477 break; … … 8512 8480 8513 8481 /* Line 1806 of yacc.c */ 8514 #line 23 60"parser.yy"8482 #line 2376 "parser.yy" 8515 8483 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8516 8484 break; … … 8519 8487 8520 8488 /* Line 1806 of yacc.c */ 8521 #line 23 62"parser.yy"8489 #line 2378 "parser.yy" 8522 8490 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8523 8491 break; … … 8526 8494 8527 8495 /* Line 1806 of yacc.c */ 8528 #line 23 64"parser.yy"8496 #line 2380 "parser.yy" 8529 8497 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8530 8498 break; … … 8533 8501 8534 8502 /* Line 1806 of yacc.c */ 8535 #line 23 70"parser.yy"8503 #line 2386 "parser.yy" 8536 8504 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8537 8505 break; … … 8540 8508 8541 8509 /* Line 1806 of yacc.c */ 8542 #line 23 72"parser.yy"8510 #line 2388 "parser.yy" 8543 8511 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8544 8512 break; … … 8547 8515 8548 8516 /* Line 1806 of yacc.c */ 8549 #line 23 74"parser.yy"8517 #line 2390 "parser.yy" 8550 8518 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8551 8519 break; … … 8554 8522 8555 8523 /* Line 1806 of yacc.c */ 8556 #line 23 79"parser.yy"8524 #line 2395 "parser.yy" 8557 8525 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8558 8526 break; … … 8561 8529 8562 8530 /* Line 1806 of yacc.c */ 8563 #line 23 81"parser.yy"8531 #line 2397 "parser.yy" 8564 8532 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8565 8533 break; … … 8568 8536 8569 8537 /* Line 1806 of yacc.c */ 8570 #line 23 83"parser.yy"8538 #line 2399 "parser.yy" 8571 8539 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8572 8540 break; … … 8575 8543 8576 8544 /* Line 1806 of yacc.c */ 8577 #line 2 389"parser.yy"8545 #line 2405 "parser.yy" 8578 8546 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8579 8547 break; … … 8582 8550 8583 8551 /* Line 1806 of yacc.c */ 8584 #line 2 391"parser.yy"8552 #line 2407 "parser.yy" 8585 8553 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); } 8586 8554 break; … … 8589 8557 8590 8558 /* Line 1806 of yacc.c */ 8591 #line 2 397"parser.yy"8559 #line 2413 "parser.yy" 8592 8560 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8593 8561 break; … … 8596 8564 8597 8565 /* Line 1806 of yacc.c */ 8598 #line 2 399"parser.yy"8566 #line 2415 "parser.yy" 8599 8567 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8600 8568 break; … … 8603 8571 8604 8572 /* Line 1806 of yacc.c */ 8605 #line 24 01"parser.yy"8573 #line 2417 "parser.yy" 8606 8574 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8607 8575 break; … … 8610 8578 8611 8579 /* Line 1806 of yacc.c */ 8612 #line 24 03"parser.yy"8580 #line 2419 "parser.yy" 8613 8581 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8614 8582 break; … … 8617 8585 8618 8586 /* Line 1806 of yacc.c */ 8619 #line 24 23"parser.yy"8587 #line 2439 "parser.yy" 8620 8588 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8621 8589 break; … … 8624 8592 8625 8593 /* Line 1806 of yacc.c */ 8626 #line 24 25"parser.yy"8594 #line 2441 "parser.yy" 8627 8595 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8628 8596 break; … … 8631 8599 8632 8600 /* Line 1806 of yacc.c */ 8633 #line 24 27"parser.yy"8601 #line 2443 "parser.yy" 8634 8602 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8635 8603 break; … … 8638 8606 8639 8607 /* Line 1806 of yacc.c */ 8640 #line 24 29"parser.yy"8608 #line 2445 "parser.yy" 8641 8609 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8642 8610 break; … … 8645 8613 8646 8614 /* Line 1806 of yacc.c */ 8647 #line 24 31"parser.yy"8615 #line 2447 "parser.yy" 8648 8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8649 8617 break; … … 8652 8620 8653 8621 /* Line 1806 of yacc.c */ 8654 #line 24 37"parser.yy"8622 #line 2453 "parser.yy" 8655 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8656 8624 break; … … 8659 8627 8660 8628 /* Line 1806 of yacc.c */ 8661 #line 24 39"parser.yy"8629 #line 2455 "parser.yy" 8662 8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8663 8631 break; … … 8666 8634 8667 8635 /* Line 1806 of yacc.c */ 8668 #line 24 41"parser.yy"8636 #line 2457 "parser.yy" 8669 8637 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8670 8638 break; … … 8673 8641 8674 8642 /* Line 1806 of yacc.c */ 8675 #line 24 46"parser.yy"8643 #line 2462 "parser.yy" 8676 8644 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8677 8645 break; … … 8680 8648 8681 8649 /* Line 1806 of yacc.c */ 8682 #line 24 48"parser.yy"8650 #line 2464 "parser.yy" 8683 8651 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8684 8652 break; … … 8687 8655 8688 8656 /* Line 1806 of yacc.c */ 8689 #line 24 50"parser.yy"8657 #line 2466 "parser.yy" 8690 8658 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 8659 break; … … 8694 8662 8695 8663 /* Line 1806 of yacc.c */ 8696 #line 24 57"parser.yy"8664 #line 2473 "parser.yy" 8697 8665 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8698 8666 break; … … 8701 8669 8702 8670 /* Line 1806 of yacc.c */ 8703 #line 24 68"parser.yy"8671 #line 2485 "parser.yy" 8704 8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8705 8673 break; … … 8708 8676 8709 8677 /* Line 1806 of yacc.c */ 8710 #line 24 71"parser.yy"8678 #line 2488 "parser.yy" 8711 8679 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8712 8680 break; … … 8715 8683 8716 8684 /* Line 1806 of yacc.c */ 8717 #line 24 73"parser.yy"8685 #line 2490 "parser.yy" 8718 8686 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8719 8687 break; … … 8722 8690 8723 8691 /* Line 1806 of yacc.c */ 8724 #line 24 76"parser.yy"8692 #line 2493 "parser.yy" 8725 8693 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8726 8694 break; … … 8729 8697 8730 8698 /* Line 1806 of yacc.c */ 8731 #line 24 78"parser.yy"8699 #line 2495 "parser.yy" 8732 8700 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8733 8701 break; … … 8736 8704 8737 8705 /* Line 1806 of yacc.c */ 8738 #line 24 80"parser.yy"8706 #line 2497 "parser.yy" 8739 8707 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8740 8708 break; … … 8743 8711 8744 8712 /* Line 1806 of yacc.c */ 8745 #line 2 499"parser.yy"8713 #line 2516 "parser.yy" 8746 8714 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8747 8715 break; … … 8750 8718 8751 8719 /* Line 1806 of yacc.c */ 8752 #line 25 01"parser.yy"8720 #line 2518 "parser.yy" 8753 8721 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8754 8722 break; … … 8757 8725 8758 8726 /* Line 1806 of yacc.c */ 8759 #line 25 03"parser.yy"8727 #line 2520 "parser.yy" 8760 8728 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8761 8729 break; … … 8764 8732 8765 8733 /* Line 1806 of yacc.c */ 8766 #line 25 05"parser.yy"8734 #line 2522 "parser.yy" 8767 8735 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8768 8736 break; 8769 8737 8770 8738 case 679: 8771 8772 /* Line 1806 of yacc.c */8773 #line 2507 "parser.yy"8774 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8775 break;8776 8777 case 681:8778 8779 /* Line 1806 of yacc.c */8780 #line 2513 "parser.yy"8781 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8782 break;8783 8784 case 682:8785 8786 /* Line 1806 of yacc.c */8787 #line 2515 "parser.yy"8788 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8789 break;8790 8791 case 683:8792 8793 /* Line 1806 of yacc.c */8794 #line 2517 "parser.yy"8795 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8796 break;8797 8798 case 684:8799 8800 /* Line 1806 of yacc.c */8801 #line 2522 "parser.yy"8802 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8803 break;8804 8805 case 685:8806 8739 8807 8740 /* Line 1806 of yacc.c */ … … 8810 8743 break; 8811 8744 8745 case 681: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2530 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8750 break; 8751 8752 case 682: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2532 "parser.yy" 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8757 break; 8758 8759 case 683: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2534 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8764 break; 8765 8766 case 684: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2539 "parser.yy" 8770 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8771 break; 8772 8773 case 685: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2541 "parser.yy" 8777 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8778 break; 8779 8812 8780 case 688: 8813 8781 8814 8782 /* Line 1806 of yacc.c */ 8815 #line 25 34"parser.yy"8783 #line 2551 "parser.yy" 8816 8784 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8817 8785 break; … … 8820 8788 8821 8789 /* Line 1806 of yacc.c */ 8822 #line 25 44"parser.yy"8790 #line 2561 "parser.yy" 8823 8791 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8824 8792 break; … … 8827 8795 8828 8796 /* Line 1806 of yacc.c */ 8829 #line 25 46"parser.yy"8797 #line 2563 "parser.yy" 8830 8798 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8831 8799 break; … … 8834 8802 8835 8803 /* Line 1806 of yacc.c */ 8836 #line 25 48"parser.yy"8804 #line 2565 "parser.yy" 8837 8805 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8838 8806 break; … … 8841 8809 8842 8810 /* Line 1806 of yacc.c */ 8843 #line 25 50"parser.yy"8811 #line 2567 "parser.yy" 8844 8812 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8845 8813 break; … … 8848 8816 8849 8817 /* Line 1806 of yacc.c */ 8850 #line 25 52"parser.yy"8818 #line 2569 "parser.yy" 8851 8819 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8852 8820 break; … … 8855 8823 8856 8824 /* Line 1806 of yacc.c */ 8857 #line 25 54"parser.yy"8825 #line 2571 "parser.yy" 8858 8826 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8859 8827 break; … … 8862 8830 8863 8831 /* Line 1806 of yacc.c */ 8864 #line 25 61"parser.yy"8832 #line 2578 "parser.yy" 8865 8833 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8866 8834 break; … … 8869 8837 8870 8838 /* Line 1806 of yacc.c */ 8871 #line 25 63"parser.yy"8839 #line 2580 "parser.yy" 8872 8840 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8873 8841 break; … … 8876 8844 8877 8845 /* Line 1806 of yacc.c */ 8878 #line 25 65"parser.yy"8846 #line 2582 "parser.yy" 8879 8847 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8880 8848 break; … … 8883 8851 8884 8852 /* Line 1806 of yacc.c */ 8885 #line 25 67"parser.yy"8853 #line 2584 "parser.yy" 8886 8854 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8887 8855 break; … … 8890 8858 8891 8859 /* Line 1806 of yacc.c */ 8892 #line 25 69"parser.yy"8860 #line 2586 "parser.yy" 8893 8861 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8894 8862 break; … … 8897 8865 8898 8866 /* Line 1806 of yacc.c */ 8899 #line 25 71"parser.yy"8867 #line 2588 "parser.yy" 8900 8868 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8901 8869 break; … … 8904 8872 8905 8873 /* Line 1806 of yacc.c */ 8906 #line 25 73"parser.yy"8874 #line 2590 "parser.yy" 8907 8875 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8908 8876 break; … … 8911 8879 8912 8880 /* Line 1806 of yacc.c */ 8913 #line 25 75"parser.yy"8881 #line 2592 "parser.yy" 8914 8882 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8915 8883 break; … … 8918 8886 8919 8887 /* Line 1806 of yacc.c */ 8920 #line 25 77"parser.yy"8888 #line 2594 "parser.yy" 8921 8889 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8922 8890 break; … … 8925 8893 8926 8894 /* Line 1806 of yacc.c */ 8927 #line 25 79"parser.yy"8895 #line 2596 "parser.yy" 8928 8896 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8929 8897 break; … … 8932 8900 8933 8901 /* Line 1806 of yacc.c */ 8934 #line 2 584"parser.yy"8902 #line 2601 "parser.yy" 8935 8903 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8936 8904 break; … … 8939 8907 8940 8908 /* Line 1806 of yacc.c */ 8941 #line 2 586"parser.yy"8909 #line 2603 "parser.yy" 8942 8910 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8943 8911 break; … … 8946 8914 8947 8915 /* Line 1806 of yacc.c */ 8948 #line 2 591"parser.yy"8916 #line 2608 "parser.yy" 8949 8917 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8950 8918 break; … … 8953 8921 8954 8922 /* Line 1806 of yacc.c */ 8955 #line 2 593"parser.yy"8923 #line 2610 "parser.yy" 8956 8924 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8957 8925 break; … … 8960 8928 8961 8929 /* Line 1806 of yacc.c */ 8962 #line 26 20"parser.yy"8930 #line 2637 "parser.yy" 8963 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8964 8932 break; … … 8967 8935 8968 8936 /* Line 1806 of yacc.c */ 8969 #line 26 31"parser.yy"8937 #line 2648 "parser.yy" 8970 8938 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8971 8939 break; … … 8974 8942 8975 8943 /* Line 1806 of yacc.c */ 8976 #line 26 33"parser.yy"8944 #line 2650 "parser.yy" 8977 8945 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8978 8946 break; … … 8981 8949 8982 8950 /* Line 1806 of yacc.c */ 8983 #line 26 35"parser.yy"8951 #line 2652 "parser.yy" 8984 8952 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8985 8953 break; … … 8988 8956 8989 8957 /* Line 1806 of yacc.c */ 8990 #line 26 37"parser.yy"8958 #line 2654 "parser.yy" 8991 8959 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8992 8960 break; … … 8995 8963 8996 8964 /* Line 1806 of yacc.c */ 8997 #line 26 39"parser.yy"8965 #line 2656 "parser.yy" 8998 8966 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8999 8967 break; … … 9002 8970 9003 8971 /* Line 1806 of yacc.c */ 9004 #line 26 41"parser.yy"8972 #line 2658 "parser.yy" 9005 8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9006 8974 break; … … 9009 8977 9010 8978 /* Line 1806 of yacc.c */ 9011 #line 26 48"parser.yy"8979 #line 2665 "parser.yy" 9012 8980 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9013 8981 break; … … 9016 8984 9017 8985 /* Line 1806 of yacc.c */ 9018 #line 26 50"parser.yy"8986 #line 2667 "parser.yy" 9019 8987 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9020 8988 break; … … 9023 8991 9024 8992 /* Line 1806 of yacc.c */ 9025 #line 26 52"parser.yy"8993 #line 2669 "parser.yy" 9026 8994 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9027 8995 break; … … 9030 8998 9031 8999 /* Line 1806 of yacc.c */ 9032 #line 26 54"parser.yy"9000 #line 2671 "parser.yy" 9033 9001 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9034 9002 break; … … 9037 9005 9038 9006 /* Line 1806 of yacc.c */ 9039 #line 26 56"parser.yy"9007 #line 2673 "parser.yy" 9040 9008 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9041 9009 break; … … 9044 9012 9045 9013 /* Line 1806 of yacc.c */ 9046 #line 26 58"parser.yy"9014 #line 2675 "parser.yy" 9047 9015 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9048 9016 break; … … 9051 9019 9052 9020 /* Line 1806 of yacc.c */ 9053 #line 26 63"parser.yy"9021 #line 2680 "parser.yy" 9054 9022 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9055 9023 break; … … 9058 9026 9059 9027 /* Line 1806 of yacc.c */ 9060 #line 26 68"parser.yy"9028 #line 2685 "parser.yy" 9061 9029 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); } 9062 9030 break; … … 9065 9033 9066 9034 /* Line 1806 of yacc.c */ 9067 #line 26 70"parser.yy"9035 #line 2687 "parser.yy" 9068 9036 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9069 9037 break; … … 9072 9040 9073 9041 /* Line 1806 of yacc.c */ 9074 #line 26 72"parser.yy"9042 #line 2689 "parser.yy" 9075 9043 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9076 9044 break; … … 9079 9047 9080 9048 /* Line 1806 of yacc.c */ 9081 #line 2 696"parser.yy"9049 #line 2715 "parser.yy" 9082 9050 { (yyval.en) = 0; } 9083 9051 break; … … 9086 9054 9087 9055 /* Line 1806 of yacc.c */ 9088 #line 2 698"parser.yy"9056 #line 2717 "parser.yy" 9089 9057 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9090 9058 break; … … 9093 9061 9094 9062 /* Line 1806 of yacc.c */ 9095 #line 90 96"Parser/parser.cc"9063 #line 9064 "Parser/parser.cc" 9096 9064 default: break; 9097 9065 } … … 9324 9292 9325 9293 /* Line 2067 of yacc.c */ 9326 #line 27 01"parser.yy"9294 #line 2720 "parser.yy" 9327 9295 9328 9296 // ----end of grammar---- … … 9337 9305 9338 9306 // Local Variables: // 9307 // tab-width: 4 // 9339 9308 // mode: c++ // 9340 // tab-width: 4 //9341 9309 // compile-command: "make install" // 9342 9310 // End: // -
src/Parser/parser.h
r94e0864d r94b4364 246 246 247 247 /* Line 2068 of yacc.c */ 248 #line 10 7"parser.yy"248 #line 108 "parser.yy" 249 249 250 250 Token tok; -
src/Parser/parser.yy
r94e0864d r94b4364 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 22 15:19:44201513 // Update Count : 10 8212 // Last Modified On : Sat Jun 13 07:21:45 2015 13 // Update Count : 1048 14 14 // 15 15 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on the C 17 // grammar by James A. Roskind, specifically parts of DECLARATIONS and EXTERNAL DEFINITIONS. While parts have been 18 // copied, important changes have been made in all sections; these changes are sufficient to constitute a new grammar. 19 // In particular, this grammar attempts to be more syntactically precise, i.e., it parses less incorrect language syntax 20 // that must be subsequently rejected by semantic checks. Nevertheless, there are still several semantic checks 21 // required and many are noted in the grammar. Finally, the grammar is extended with GCC and CFA language extensions. 22 23 // Acknowledgments to Richard Bilson, Glen Ditchfield, and Rodolfo Gabriel Esteves who all helped when I got stuck with 24 // the grammar. 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on 17 // the C grammar by James A. Roskind, specifically parts of DECLARATIONS and EXTERNAL DEFINITIONS. While 18 // parts have been copied, important changes have been made in all sections; these changes are sufficient to 19 // constitute a new grammar. In particular, this grammar attempts to be more syntactically precise, i.e., it 20 // parses less incorrect language syntax that must be subsequently rejected by semantic checks. Nevertheless, 21 // there are still several semantic checks required and many are noted in the grammar. Finally, the grammar is 22 // extended with GCC and CFA language extensions. 23 24 // Acknowledgments to Richard Bilson, Glen Ditchfield, and Rodolfo Gabriel Esteves who all helped when I got 25 // stuck with the grammar. 25 26 26 27 // The root language for this grammar is ANSI99/11 C. All of ANSI99/11 is parsed, except for: … … 28 29 // 1. designation with '=' (use ':' instead) 29 30 // 30 // Most of the syntactic extensions from ANSI90 to ANSI11 C are marked with the comment "C99/C11". This grammar also has31 // two levels of extensions. The first extensions cover most of the GCC C extensions, except for:31 // Most of the syntactic extensions from ANSI90 to ANSI11 C are marked with the comment "C99/C11". This 32 // grammar also has two levels of extensions. The first extensions cover most of the GCC C extensions, except for: 32 33 // 33 34 // 1. nested functions … … 36 37 // 4. attributes not allowed in parenthesis of declarator 37 38 // 38 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall39 // (CFA), which fixes several of C's outstanding problems and extends C with many modern language concepts. All of the40 // syntactic extensions for CFA C are marked with the comment "CFA". As noted above, there is one unreconcileable41 // parsing problem between C99 and CFA with respect to designators; this is discussed in detail before the "designation"42 // grammar rule.39 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for 40 // Cforall (CFA), which fixes several of C's outstanding problems and extends C with many modern language 41 // concepts. All of the syntactic extensions for CFA C are marked with the comment "CFA". As noted above, 42 // there is one unreconcileable parsing problem between C99 and CFA with respect to designators; this is 43 // discussed in detail before the "designation" grammar rule. 43 44 44 45 %{ … … 249 250 //************************* Namespace Management ******************************** 250 251 251 // The grammar in the ANSI C standard is not strictly context-free, since it relies upon the distinct terminal symbols 252 // "identifier" and "TYPEDEFname" that are lexically identical. While it is possible to write a purely context-free 253 // grammar, such a grammar would obscure the relationship between syntactic and semantic constructs. Hence, this 254 // grammar uses the ANSI style. 255 // 256 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, those 257 // introduced through "forall" qualifiers), and by introducing "type generators" -- parametrized types. This latter 258 // type name creates a third class of identifiers that must be distinguished by the scanner. 259 // 260 // Since the scanner cannot distinguish among the different classes of identifiers without some context information, it 261 // accesses a data structure (the TypedefTable) to allow classification of an identifier that it has just read. 262 // Semantic actions during the parser update this data structure when the class of identifiers change. 263 // 264 // Because the Cforall language is block-scoped, there is the possibility that an identifier can change its class in a 265 // local scope; it must revert to its original class at the end of the block. Since type names can be local to a 266 // particular declaration, each declaration is itself a scope. This requires distinguishing between type names that are 267 // local to the current declaration scope and those that persist past the end of the declaration (i.e., names defined in 268 // "typedef" or "type" declarations). 269 // 270 // The non-terminals "push" and "pop" derive the empty string; their only use is to denote the opening and closing of 271 // scopes. Every push must have a matching pop, although it is regrettable the matching pairs do not always occur 272 // within the same rule. These non-terminals may appear in more contexts than strictly necessary from a semantic point 273 // of view. Unfortunately, these extra rules are necessary to prevent parsing conflicts -- the parser may not have 274 // enough context and look-ahead information to decide whether a new scope is necessary, so the effect of these extra 275 // rules is to open a new scope unconditionally. As the grammar evolves, it may be neccesary to add or move around 276 // "push" and "pop" nonterminals to resolve conflicts of this sort. 252 // The grammar in the ANSI C standard is not strictly context-free, since it relies upon the distinct terminal 253 // symbols "identifier" and "TYPEDEFname" that are lexically identical. While it is possible to write a 254 // purely context-free grammar, such a grammar would obscure the relationship between syntactic and semantic 255 // constructs. Hence, this grammar uses the ANSI style. 256 // 257 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, 258 // those introduced through "forall" qualifiers), and by introducing "type generators" -- parametrized types. 259 // This latter type name creates a third class of identifiers that must be distinguished by the scanner. 260 // 261 // Since the scanner cannot distinguish among the different classes of identifiers without some context 262 // information, it accesses a data structure (the TypedefTable) to allow classification of an identifier that 263 // it has just read. Semantic actions during the parser update this data structure when the class of 264 // identifiers change. 265 // 266 // Because the Cforall language is block-scoped, there is the possibility that an identifier can change its 267 // class in a local scope; it must revert to its original class at the end of the block. Since type names can 268 // be local to a particular declaration, each declaration is itself a scope. This requires distinguishing 269 // between type names that are local to the current declaration scope and those that persist past the end of 270 // the declaration (i.e., names defined in "typedef" or "type" declarations). 271 // 272 // The non-terminals "push" and "pop" derive the empty string; their only use is to denote the opening and 273 // closing of scopes. Every push must have a matching pop, although it is regrettable the matching pairs do 274 // not always occur within the same rule. These non-terminals may appear in more contexts than strictly 275 // necessary from a semantic point of view. Unfortunately, these extra rules are necessary to prevent parsing 276 // conflicts -- the parser may not have enough context and look-ahead information to decide whether a new 277 // scope is necessary, so the effect of these extra rules is to open a new scope unconditionally. As the 278 // grammar evolves, it may be neccesary to add or move around "push" and "pop" nonterminals to resolve 279 // conflicts of this sort. 277 280 278 281 push: … … 291 294 292 295 constant: 293 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 296 // ENUMERATIONconstant is not included here; it is treated as a variable with type 297 // "enumeration constant". 294 298 INTEGERconstant { $$ = new ConstantNode( ConstantNode::Integer, $1 ); } 295 299 | FLOATINGconstant { $$ = new ConstantNode( ConstantNode::Float, $1 ); } … … 326 330 primary_expression: 327 331 IDENTIFIER // typedef name cannot be used as a variable name 328 { $$ = new VarRefNode( $1); }332 { $$ = new VarRefNode($1); } 329 333 | zero_one 330 { $$ = new VarRefNode( $1); }334 { $$ = new VarRefNode($1); } 331 335 | constant 332 336 { $$ = $1; } … … 336 340 { $$ = $2; } 337 341 | '(' compound_statement ')' // GCC, lambda expression 338 { $$ = new ValofExprNode( $2); }342 { $$ = new ValofExprNode($2); } 339 343 ; 340 344 … … 342 346 primary_expression 343 347 | postfix_expression '[' push assignment_expression pop ']' 344 // CFA, comma_expression disallowed in the context because it results in a commom user error: subscripting a345 // matrix with x[i,j] instead of x[i][j]. While this change is not backwards compatible, there seems to be346 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, whichis347 // equivalent to the old x[i,j].348 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), $1, $4); }348 // CFA, comma_expression disallowed in the context because it results in a commom user error: 349 // subscripting a matrix with x[i,j] instead of x[i][j]. While this change is not backwards 350 // compatible, there seems to be little advantage to this feature and many disadvantages. It is 351 // possible to write x[(i,j)] in CFA, which is equivalent to the old x[i,j]. 352 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Index), $1, $4); } 349 353 | postfix_expression '(' argument_expression_list ')' 350 { $$ = new CompositeExprNode( $1, $3); }354 { $$ = new CompositeExprNode($1, $3); } 351 355 | postfix_expression '.' no_attr_identifier 352 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), $1, new VarRefNode( $3)); }356 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), $1, new VarRefNode($3)); } 353 357 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 354 358 | postfix_expression ARROW no_attr_identifier 355 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), $1, new VarRefNode( $3)); }359 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), $1, new VarRefNode($3)); } 356 360 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 357 361 | postfix_expression ICR 358 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), $1); }362 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::IncrPost), $1); } 359 363 | postfix_expression DECR 360 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1); }364 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::DecrPost), $1); } 361 365 // GCC has priority: cast_expression 362 366 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 … … 367 371 argument_expression 368 372 | argument_expression_list ',' argument_expression 369 { $$ = (ExpressionNode *)( $1->set_link( $3)); }373 { $$ = (ExpressionNode *)($1->set_link($3)); } 370 374 ; 371 375 … … 375 379 | assignment_expression 376 380 | no_attr_identifier ':' assignment_expression 377 { $$ = $3->set_asArgName( $1); }378 // Only a list of no_attr_identifier_or_typedef_name is allowed in this context. However, there is insufficient379 // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used380 // with an appropriate semantic check.381 { $$ = $3->set_asArgName($1); } 382 // Only a list of no_attr_identifier_or_typedef_name is allowed in this context. However, there is 383 // insufficient look ahead to distinguish between this list of parameter names and a tuple, so the 384 // tuple form must be used with an appropriate semantic check. 381 385 | '[' push assignment_expression pop ']' ':' assignment_expression 382 { $$ = $7->set_asArgName( $3); }386 { $$ = $7->set_asArgName($3); } 383 387 | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression 384 388 { $$ = $9->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); } … … 394 398 { $$ = new VarRefNode( $1 ); } 395 399 | no_attr_identifier '.' field 396 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $3); }400 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( $1 ), $3); } 397 401 | no_attr_identifier '.' '[' push field_list pop ']' 398 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $5); }402 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( $1 ), $5); } 399 403 | no_attr_identifier ARROW field 400 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $3); }404 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( $1 ), $3); } 401 405 | no_attr_identifier ARROW '[' push field_list pop ']' 402 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $5); }406 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( $1 ), $5); } 403 407 ; 404 408 … … 406 410 postfix_expression 407 411 | ICR unary_expression 408 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2); }412 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Incr), $2); } 409 413 | DECR unary_expression 410 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2); }414 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Decr), $2); } 411 415 | EXTENSION cast_expression // GCC 412 416 { $$ = $2; } 413 417 | unary_operator cast_expression 414 { $$ = new CompositeExprNode( $1, $2); }418 { $$ = new CompositeExprNode($1, $2); } 415 419 | '!' cast_expression 416 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), $2); }420 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Neg), $2); } 417 421 | '*' cast_expression // CFA 418 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), $2); }422 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::PointTo), $2); } 419 423 // '*' is is separated from unary_operator because of shift/reduce conflict in: 420 424 // { * X; } // dereference X … … 422 426 // '&' must be moved here if C++ reference variables are supported. 423 427 | SIZEOF unary_expression 424 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), $2); }428 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), $2); } 425 429 | SIZEOF '(' type_name_no_function ')' 426 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3)); }430 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), new TypeValueNode($3)); } 427 431 | ATTR_IDENTIFIER 428 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1)); }432 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode($1)); } 429 433 | ATTR_IDENTIFIER '(' type_name ')' 430 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3)); }434 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode($1), new TypeValueNode($3)); } 431 435 | ATTR_IDENTIFIER '(' argument_expression ')' 432 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3); }436 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode($1), $3); } 433 437 | ALIGNOF unary_expression // GCC, variable alignment 434 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), $2); }438 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), $2); } 435 439 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 436 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3)); }440 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), new TypeValueNode($3)); } 437 441 | ANDAND no_attr_identifier // GCC, address of label 438 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true)); }442 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::LabelAddress), new VarRefNode($2, true)); } 439 443 ; 440 444 441 445 unary_operator: 442 '&' { $$ = new OperatorNode( OperatorNode::AddressOf); }443 | '+' { $$ = new OperatorNode( OperatorNode::UnPlus); }444 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus); }445 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg); }446 '&' { $$ = new OperatorNode(OperatorNode::AddressOf); } 447 | '+' { $$ = new OperatorNode(OperatorNode::UnPlus); } 448 | '-' { $$ = new OperatorNode(OperatorNode::UnMinus); } 449 | '~' { $$ = new OperatorNode(OperatorNode::BitNeg); } 446 450 ; 447 451 … … 449 453 unary_expression 450 454 | '(' type_name_no_function ')' cast_expression 451 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }455 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode($2), $4); } 452 456 | '(' type_name_no_function ')' tuple 453 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }457 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode($2), $4); } 454 458 ; 455 459 … … 457 461 cast_expression 458 462 | multiplicative_expression '*' cast_expression 459 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), $1, $3); }463 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Mul),$1,$3); } 460 464 | multiplicative_expression '/' cast_expression 461 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), $1, $3); }465 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Div),$1,$3); } 462 466 | multiplicative_expression '%' cast_expression 463 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), $1, $3); }467 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Mod),$1,$3); } 464 468 ; 465 469 … … 467 471 multiplicative_expression 468 472 | additive_expression '+' multiplicative_expression 469 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), $1, $3); }473 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Plus),$1,$3); } 470 474 | additive_expression '-' multiplicative_expression 471 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), $1, $3); }475 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Minus),$1,$3); } 472 476 ; 473 477 … … 475 479 additive_expression 476 480 | shift_expression LS additive_expression 477 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), $1, $3); }481 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::LShift),$1,$3); } 478 482 | shift_expression RS additive_expression 479 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), $1, $3); }483 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::RShift),$1,$3); } 480 484 ; 481 485 … … 483 487 shift_expression 484 488 | relational_expression '<' shift_expression 485 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), $1, $3); }489 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::LThan),$1,$3); } 486 490 | relational_expression '>' shift_expression 487 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), $1, $3); }491 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::GThan),$1,$3); } 488 492 | relational_expression LE shift_expression 489 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), $1, $3); }493 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::LEThan),$1,$3); } 490 494 | relational_expression GE shift_expression 491 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), $1, $3); }495 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::GEThan),$1,$3); } 492 496 ; 493 497 … … 495 499 relational_expression 496 500 | equality_expression EQ relational_expression 497 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), $1, $3); }501 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Eq), $1, $3); } 498 502 | equality_expression NE relational_expression 499 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), $1, $3); }503 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Neq), $1, $3); } 500 504 ; 501 505 … … 503 507 equality_expression 504 508 | AND_expression '&' equality_expression 505 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), $1, $3); }509 { $$ =new CompositeExprNode(new OperatorNode(OperatorNode::BitAnd), $1, $3); } 506 510 ; 507 511 … … 509 513 AND_expression 510 514 | exclusive_OR_expression '^' AND_expression 511 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), $1, $3); }515 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Xor), $1, $3); } 512 516 ; 513 517 … … 515 519 exclusive_OR_expression 516 520 | inclusive_OR_expression '|' exclusive_OR_expression 517 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), $1, $3); }521 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::BitOr), $1, $3); } 518 522 ; 519 523 … … 521 525 inclusive_OR_expression 522 526 | logical_AND_expression ANDAND inclusive_OR_expression 523 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::And ), $1, $3); }527 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::And), $1, $3); } 524 528 ; 525 529 … … 527 531 logical_AND_expression 528 532 | logical_OR_expression OROR logical_AND_expression 529 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), $1, $3); }533 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Or), $1, $3); } 530 534 ; 531 535 … … 533 537 logical_OR_expression 534 538 | logical_OR_expression '?' comma_expression ':' conditional_expression 535 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); }539 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); } 536 540 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 537 { $$=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4); }541 { $$=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),$1,$4); } 538 542 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 539 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); }543 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); } 540 544 ; 541 545 … … 548 552 conditional_expression 549 553 | unary_expression '=' assignment_expression 550 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3); }554 { $$ =new CompositeExprNode(new OperatorNode(OperatorNode::Assign), $1, $3); } 551 555 | unary_expression assignment_operator assignment_expression 552 { $$ =new CompositeExprNode( $2, $1, $3); }556 { $$ =new CompositeExprNode($2, $1, $3); } 553 557 | tuple assignment_opt // CFA, tuple expression 554 { $$ = ( $2 == 0) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); }558 { $$ = ($2 == 0) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); } 555 559 ; 556 560 … … 562 566 563 567 tuple: // CFA, tuple 564 // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with565 // co mma_expression in new_identifier_parameter_array and new_abstract_array568 // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce 569 // conflict with comma_expression in new_identifier_parameter_array and new_abstract_array 566 570 '[' push pop ']' 567 571 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } … … 581 585 582 586 assignment_operator: 583 MULTassign { $$ = new OperatorNode( OperatorNode::MulAssn); }584 | DIVassign { $$ = new OperatorNode( OperatorNode::DivAssn); }585 | MODassign { $$ = new OperatorNode( OperatorNode::ModAssn); }586 | PLUSassign { $$ = new OperatorNode( OperatorNode::PlusAssn); }587 | MINUSassign { $$ = new OperatorNode( OperatorNode::MinusAssn); }588 | LSassign { $$ = new OperatorNode( OperatorNode::LSAssn); }589 | RSassign { $$ = new OperatorNode( OperatorNode::RSAssn); }590 | ANDassign { $$ = new OperatorNode( OperatorNode::AndAssn); }591 | ERassign { $$ = new OperatorNode( OperatorNode::ERAssn); }592 | ORassign { $$ = new OperatorNode( OperatorNode::OrAssn); }587 MULTassign { $$ = new OperatorNode(OperatorNode::MulAssn); } 588 | DIVassign { $$ = new OperatorNode(OperatorNode::DivAssn); } 589 | MODassign { $$ = new OperatorNode(OperatorNode::ModAssn); } 590 | PLUSassign { $$ = new OperatorNode(OperatorNode::PlusAssn); } 591 | MINUSassign { $$ = new OperatorNode(OperatorNode::MinusAssn); } 592 | LSassign { $$ = new OperatorNode(OperatorNode::LSAssn); } 593 | RSassign { $$ = new OperatorNode(OperatorNode::RSAssn); } 594 | ANDassign { $$ = new OperatorNode(OperatorNode::AndAssn); } 595 | ERassign { $$ = new OperatorNode(OperatorNode::ERAssn); } 596 | ORassign { $$ = new OperatorNode(OperatorNode::OrAssn); } 593 597 ; 594 598 595 599 comma_expression: 596 600 assignment_expression 597 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3); }598 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3); }601 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list($3); } 602 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Comma),$1,$3); } 599 603 ; 600 604 … … 620 624 labeled_statement: 621 625 no_attr_identifier ':' attribute_list_opt statement 622 { $$ = $4->add_label( $1);}626 { $$ = $4->add_label($1);} 623 627 ; 624 628 … … 627 631 { $$ = new CompoundStmtNode( (StatementNode *)0 ); } 628 632 | '{' 629 // Two scopes are necessary because the block itself has a scope, but every declaration within the block also630 // requires its own scope633 // Two scopes are necessary because the block itself has a scope, but every declaration within the 634 // block also requires its own scope 631 635 push push 632 636 label_declaration_opt // GCC, local labels … … 638 642 block_item 639 643 | block_item_list push block_item 640 { if ( $1 != 0 ) { $1->set_link( $3); $$ = $1; } }644 { if ($1 != 0) { $1->set_link($3); $$ = $1; } } 641 645 ; 642 646 … … 654 658 statement 655 659 | statement_list statement 656 { if ( $1 != 0 ) { $1->set_link( $2); $$ = $1; } }660 { if ($1 != 0) { $1->set_link($2); $$ = $1; } } 657 661 ; 658 662 659 663 expression_statement: 660 664 comma_expression_opt ';' 661 { $$ = new StatementNode( StatementNode::Exp, $1, 0); }665 { $$ = new StatementNode(StatementNode::Exp, $1, 0); } 662 666 ; 663 667 … … 665 669 IF '(' comma_expression ')' statement %prec THEN 666 670 // explicitly deal with the shift/reduce conflict on if/else 667 { $$ = new StatementNode( StatementNode::If, $3, $5); }671 { $$ = new StatementNode(StatementNode::If, $3, $5); } 668 672 | IF '(' comma_expression ')' statement ELSE statement 669 { $$ = new StatementNode( StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7)) ); }673 { $$ = new StatementNode(StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7)) ); } 670 674 | SWITCH '(' comma_expression ')' case_clause // CFA 671 { $$ = new StatementNode( StatementNode::Switch, $3, $5); }675 { $$ = new StatementNode(StatementNode::Switch, $3, $5); } 672 676 | SWITCH '(' comma_expression ')' '{' push declaration_list_opt switch_clause_list_opt '}' // CFA 673 { $$ = new StatementNode( StatementNode::Switch, $3, $8 ); /* xxx */ } 674 // The semantics of the declaration list is changed to include any associated initialization, which is performed 675 // *before* the transfer to the appropriate case clause. Statements after the initial declaration list can 676 // never be executed, and therefore, are removed from the grammar even though C allows it. 677 { $$ = new StatementNode(StatementNode::Switch, $3, $8); /* xxx */ } 678 // The semantics of the declaration list is changed to include any associated initialization, which is 679 // performed *before* the transfer to the appropriate case clause. Statements after the initial 680 // declaration list can never be executed, and therefore, are removed from the grammar even though C 681 // allows it. 677 682 | CHOOSE '(' comma_expression ')' case_clause // CFA 678 { $$ = new StatementNode( StatementNode::Choose, $3, $5); }683 { $$ = new StatementNode(StatementNode::Choose, $3, $5); } 679 684 | CHOOSE '(' comma_expression ')' '{' push declaration_list_opt choose_clause_list_opt '}' // CFA 680 { $$ = new StatementNode( StatementNode::Choose, $3, $8); }681 ; 682 683 // CASE and DEFAULT clauses are only allowed in the SWITCH statement, precluding Duff's device. In addition, a case684 // c lause allows a list of values and subranges.685 { $$ = new StatementNode(StatementNode::Choose, $3, $8); } 686 ; 687 688 // CASE and DEFAULT clauses are only allowed in the SWITCH statement, precluding Duff's device. In addition, a 689 // case clause allows a list of values and subranges. 685 690 686 691 case_value: // CFA 687 692 constant_expression { $$ = $1; } 688 693 | constant_expression ELLIPSIS constant_expression // GCC, subrange 689 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $1, $3); }694 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Range),$1,$3); } 690 695 | subrange // CFA, subrange 691 696 ; … … 694 699 case_value 695 700 | case_value_list ',' case_value 696 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( $1 ))->set_link( $3) ); }701 { $$ = new CompositeExprNode(new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents($1))->set_link($3) ); } 697 702 ; 698 703 699 704 case_label: // CFA 700 CASE case_value_list ':' { $$ = new StatementNode( StatementNode::Case, $2, 0); }701 | DEFAULT ':' { $$ = new StatementNode( StatementNode::Default); }705 CASE case_value_list ':' { $$ = new StatementNode(StatementNode::Case, $2, 0); } 706 | DEFAULT ':' { $$ = new StatementNode(StatementNode::Default); } 702 707 // A semantic check is required to ensure only one default clause per switch/choose statement. 703 708 ; … … 705 710 case_label_list: // CFA 706 711 case_label 707 | case_label_list case_label { $$ = (StatementNode *)( $1->set_link( $2)); }712 | case_label_list case_label { $$ = (StatementNode *)($1->set_link($2)); } 708 713 ; 709 714 710 715 case_clause: // CFA 711 case_label_list statement { $$ = $1->append_last_case( $2); }716 case_label_list statement { $$ = $1->append_last_case($2); } 712 717 ; 713 718 … … 720 725 switch_clause_list: // CFA 721 726 case_label_list statement_list 722 { $$ = $1->append_last_case( $2); }727 { $$ = $1->append_last_case($2); } 723 728 | switch_clause_list case_label_list statement_list 724 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case( $3))); }729 { $$ = (StatementNode *)($1->set_link($2->append_last_case($3))); } 725 730 ; 726 731 … … 733 738 choose_clause_list: // CFA 734 739 case_label_list fall_through 735 { $$ = $1->append_last_case( $2); }740 { $$ = $1->append_last_case($2); } 736 741 | case_label_list statement_list fall_through_opt 737 { $$ = $1->append_last_case((StatementNode *)mkList((*$2,*$3 ))); }742 { $$ = $1->append_last_case((StatementNode *)mkList((*$2,*$3))); } 738 743 | choose_clause_list case_label_list fall_through 739 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case( $3))); }744 { $$ = (StatementNode *)($1->set_link($2->append_last_case($3))); } 740 745 | choose_clause_list case_label_list statement_list fall_through_opt 741 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case((StatementNode *)mkList((*$3,*$4))))); }746 { $$ = (StatementNode *)($1->set_link($2->append_last_case((StatementNode *)mkList((*$3,*$4))))); } 742 747 ; 743 748 … … 749 754 750 755 fall_through: // CFA 751 FALLTHRU { $$ = new StatementNode( StatementNode::Fallthru, 0, 0); }752 | FALLTHRU ';' { $$ = new StatementNode( StatementNode::Fallthru, 0, 0); }756 FALLTHRU { $$ = new StatementNode(StatementNode::Fallthru, 0, 0); } 757 | FALLTHRU ';' { $$ = new StatementNode(StatementNode::Fallthru, 0, 0); } 753 758 ; 754 759 755 760 iteration_statement: 756 761 WHILE '(' comma_expression ')' statement 757 { $$ = new StatementNode( StatementNode::While, $3, $5); }762 { $$ = new StatementNode(StatementNode::While, $3, $5); } 758 763 | DO statement WHILE '(' comma_expression ')' ';' 759 { $$ = new StatementNode( StatementNode::Do, $5, $2); }764 { $$ = new StatementNode(StatementNode::Do, $5, $2); } 760 765 | FOR '(' push for_control_expression ')' statement 761 { $$ = new StatementNode( StatementNode::For, $4, $6); }766 { $$ = new StatementNode(StatementNode::For, $4, $6); } 762 767 ; 763 768 764 769 for_control_expression: 765 770 comma_expression_opt pop ';' comma_expression_opt ';' comma_expression_opt 766 { $$ = new ForCtlExprNode( $1, $4, $6); }771 { $$ = new ForCtlExprNode($1, $4, $6); } 767 772 | declaration comma_expression_opt ';' comma_expression_opt // C99 768 { $$ = new ForCtlExprNode( $1, $2, $4); }773 { $$ = new ForCtlExprNode($1, $2, $4); } 769 774 ; 770 775 771 776 jump_statement: 772 777 GOTO no_attr_identifier ';' 773 { $$ = new StatementNode( StatementNode::Goto, $2); }778 { $$ = new StatementNode(StatementNode::Goto, $2); } 774 779 | GOTO '*' comma_expression ';' // GCC, computed goto 775 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3 );776 // whereas normal operator precedence yields goto (*i)+3;777 { $$ = new StatementNode( StatementNode::Goto, $3); }780 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => 781 // goto *(i+3); whereas normal operator precedence yields goto (*i)+3; 782 { $$ = new StatementNode(StatementNode::Goto, $3); } 778 783 | CONTINUE ';' 779 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 780 { $$ = new StatementNode( StatementNode::Continue, 0, 0 ); } 784 // A semantic check is required to ensure this statement appears only in the body of an iteration 785 // statement. 786 { $$ = new StatementNode(StatementNode::Continue, 0, 0); } 781 787 | CONTINUE no_attr_identifier ';' // CFA, multi-level continue 782 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and783 // the target of the transfer appears only at the start of an iteration statement.784 { $$ = new StatementNode( StatementNode::Continue, $2); }788 // A semantic check is required to ensure this statement appears only in the body of an iteration 789 // statement, and the target of the transfer appears only at the start of an iteration statement. 790 { $$ = new StatementNode(StatementNode::Continue, $2); } 785 791 | BREAK ';' 786 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 787 { $$ = new StatementNode( StatementNode::Break, 0, 0 ); } 792 // A semantic check is required to ensure this statement appears only in the body of an iteration 793 // statement. 794 { $$ = new StatementNode(StatementNode::Break, 0, 0); } 788 795 | BREAK no_attr_identifier ';' // CFA, multi-level exit 789 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and790 // the target of the transfer appears only at the start of an iteration statement.791 { $$ = new StatementNode( StatementNode::Break, $2 ); }796 // A semantic check is required to ensure this statement appears only in the body of an iteration 797 // statement, and the target of the transfer appears only at the start of an iteration statement. 798 { $$ = new StatementNode(StatementNode::Break, $2 ); } 792 799 | RETURN comma_expression_opt ';' 793 { $$ = new StatementNode( StatementNode::Return, $2, 0); }800 { $$ = new StatementNode(StatementNode::Return, $2, 0); } 794 801 | THROW assignment_expression ';' 795 { $$ = new StatementNode( StatementNode::Throw, $2, 0); }802 { $$ = new StatementNode(StatementNode::Throw, $2, 0); } 796 803 | THROW ';' 797 { $$ = new StatementNode( StatementNode::Throw, 0, 0); }804 { $$ = new StatementNode(StatementNode::Throw, 0, 0); } 798 805 ; 799 806 800 807 exception_statement: 801 808 TRY compound_statement handler_list 802 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); }809 { $$ = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); } 803 810 | TRY compound_statement finally_clause 804 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); }811 { $$ = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); } 805 812 | TRY compound_statement handler_list finally_clause 806 813 { 807 $3->set_link( $4);808 $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3))));814 $3->set_link($4); 815 $$ = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); 809 816 } 810 817 ; … … 813 820 // There must be at least one catch clause 814 821 handler_clause 815 // ISO/IEC 9899:1999 Section 15.3(6 ) If present, a "..." handler shall be the last handler for its try block. 822 // ISO/IEC 9899:1999 Section 15.3(6) If present, a "..." handler shall be the last handler for its try 823 // block. 816 824 | CATCH '(' ELLIPSIS ')' compound_statement 817 825 { $$ = StatementNode::newCatchStmt( 0, $5, true ); } … … 822 830 handler_clause: 823 831 CATCH '(' push push exception_declaration pop ')' compound_statement pop 824 { $$ = StatementNode::newCatchStmt( $5, $8); }832 { $$ = StatementNode::newCatchStmt($5, $8); } 825 833 | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop 826 { $$ = $1->set_link( StatementNode::newCatchStmt( $6, $9) ); }834 { $$ = $1->set_link( StatementNode::newCatchStmt($6, $9) ); } 827 835 ; 828 836 … … 830 838 FINALLY compound_statement 831 839 { 832 $$ = new StatementNode( StatementNode::Finally, 0, $2);840 $$ = new StatementNode(StatementNode::Finally, 0, $2); 833 841 std::cout << "Just created a finally node" << std::endl; 834 842 } … … 859 867 asm_statement: 860 868 ASM type_qualifier_list_opt '(' constant_expression ')' ';' 861 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }869 { $$ = new StatementNode(StatementNode::Asm, 0, 0); } 862 870 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ')' ';' // remaining GCC 863 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }871 { $$ = new StatementNode(StatementNode::Asm, 0, 0); } 864 872 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ')' ';' 865 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }873 { $$ = new StatementNode(StatementNode::Asm, 0, 0); } 866 874 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list ')' ';' 867 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }875 { $$ = new StatementNode(StatementNode::Asm, 0, 0); } 868 876 ; 869 877 … … 933 941 ; 934 942 935 // C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and function 936 // declarations. CFA declarations use the same declaration tokens as in C; however, CFA places declaration modifiers to 937 // the left of the base type, while C declarations place modifiers to the right of the base type. CFA declaration 938 // modifiers are interpreted from left to right and the entire type specification is distributed across all variables in 939 // the declaration list (as in Pascal). ANSI C and the new CFA declarations may appear together in the same program 940 // block, but cannot be mixed within a specific declaration. 943 // C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and 944 // function declarations. CFA declarations use the same declaration tokens as in C; however, CFA places 945 // declaration modifiers to the left of the base type, while C declarations place modifiers to the right of 946 // the base type. CFA declaration modifiers are interpreted from left to right and the entire type 947 // specification is distributed across all variables in the declaration list (as in Pascal). ANSI C and the 948 // new CFA declarations may appear together in the same program block, but cannot be mixed within a specific 949 // declaration. 941 950 // 942 951 // CFA C … … 959 968 } 960 969 | declaration_qualifier_list new_variable_specifier initializer_opt 961 // declaration_qualifier_list also includes type_qualifier_list, so a semantic check is necessary to preclude962 // them as a type_qualifier cannot appear in that context.970 // declaration_qualifier_list also includes type_qualifier_list, so a semantic check is necessary to 971 // preclude them as a type_qualifier cannot appear in that context. 963 972 { 964 973 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 973 982 974 983 new_variable_specifier: // CFA 975 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static976 // storage-class984 // A semantic check is required to ensure asm_name only appears on declarations with implicit or 985 // explicit static storage-class 977 986 new_abstract_declarator_no_tuple identifier_or_typedef_name asm_name_opt 978 987 { … … 1023 1032 '[' push pop ']' identifier '(' push new_parameter_type_list_opt pop ')' 1024 1033 { 1025 typedefTable.setNextIdentifier( *( $5) );1034 typedefTable.setNextIdentifier( *($5) ); 1026 1035 $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true ); 1027 1036 } 1028 1037 | '[' push pop ']' TYPEDEFname '(' push new_parameter_type_list_opt pop ')' 1029 1038 { 1030 typedefTable.setNextIdentifier( *( $5) );1039 typedefTable.setNextIdentifier( *($5) ); 1031 1040 $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true ); 1032 1041 } … … 1036 1045 // '[' ']' type_specifier 1037 1046 // 1038 // type_specifier can resolve to just TYPEDEFname (e.g. typedef int T; int f( T );). Therefore this must be 1039 // flattened to allow lookahead to the '(' without having to reduce identifier_or_typedef_name. 1047 // type_specifier can resolve to just TYPEDEFname (e.g. typedef int T; int f( T );). Therefore this 1048 // must be flattened to allow lookahead to the '(' without having to reduce 1049 // identifier_or_typedef_name. 1040 1050 | new_abstract_tuple identifier_or_typedef_name '(' push new_parameter_type_list_opt pop ')' 1041 // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator). 1051 // To obtain LR(1), this rule must be factored out from function return type (see 1052 // new_abstract_declarator). 1042 1053 { 1043 1054 $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true ); … … 1053 1064 { $$ = DeclarationNode::newTuple( $3 ); } 1054 1065 | '[' push new_parameter_list pop ',' push new_abstract_parameter_list pop ']' 1055 // To obtain LR(1 ), the last new_abstract_parameter_list is added into this flattened rule to lookahead to the1056 // ']'.1066 // To obtain LR(1), the last new_abstract_parameter_list is added into this flattened rule to 1067 // lookahead to the ']'. 1057 1068 { $$ = DeclarationNode::newTuple( $3->appendList( $7 ) ); } 1058 1069 ; … … 1061 1072 TYPEDEF new_variable_specifier 1062 1073 { 1063 typedefTable.addToEnclosingScope( TypedefTable::TD );1074 typedefTable.addToEnclosingScope( TypedefTable::TD); 1064 1075 $$ = $2->addTypedef(); 1065 1076 } 1066 1077 | TYPEDEF new_function_specifier 1067 1078 { 1068 typedefTable.addToEnclosingScope( TypedefTable::TD );1079 typedefTable.addToEnclosingScope( TypedefTable::TD); 1069 1080 $$ = $2->addTypedef(); 1070 1081 } 1071 1082 | new_typedef_declaration pop ',' push no_attr_identifier 1072 1083 { 1073 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD );1084 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD); 1074 1085 $$ = $1->appendList( $1->cloneType( $5 ) ); 1075 1086 } 1076 1087 ; 1077 1088 1078 // Traditionally typedef is part of storage-class specifier for syntactic convenience only. Here, it is factored out as 1079 // a separate form of declaration, which syntactically precludes storage-class specifiers and initialization. 1089 // Traditionally typedef is part of storage-class specifier for syntactic convenience only. Here, it is 1090 // factored out as a separate form of declaration, which syntactically precludes storage-class specifiers and 1091 // initialization. 1080 1092 1081 1093 typedef_declaration: 1082 1094 TYPEDEF type_specifier declarator 1083 1095 { 1084 typedefTable.addToEnclosingScope( TypedefTable::TD );1096 typedefTable.addToEnclosingScope( TypedefTable::TD); 1085 1097 $$ = $3->addType( $2 )->addTypedef(); 1086 1098 } 1087 1099 | typedef_declaration pop ',' push declarator 1088 1100 { 1089 typedefTable.addToEnclosingScope( TypedefTable::TD );1101 typedefTable.addToEnclosingScope( TypedefTable::TD); 1090 1102 $$ = $1->appendList( $1->cloneBaseType( $5 )->addTypedef() ); 1091 1103 } 1092 | type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2 )1093 { 1094 typedefTable.addToEnclosingScope( TypedefTable::TD );1104 | type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2) 1105 { 1106 typedefTable.addToEnclosingScope( TypedefTable::TD); 1095 1107 $$ = $4->addType( $3 )->addQualifiers( $1 )->addTypedef(); 1096 1108 } 1097 1109 | type_specifier TYPEDEF declarator 1098 1110 { 1099 typedefTable.addToEnclosingScope( TypedefTable::TD );1111 typedefTable.addToEnclosingScope( TypedefTable::TD); 1100 1112 $$ = $3->addType( $1 )->addTypedef(); 1101 1113 } 1102 1114 | type_specifier TYPEDEF type_qualifier_list declarator 1103 1115 { 1104 typedefTable.addToEnclosingScope( TypedefTable::TD );1105 $$ = $4->addQualifiers( $1 )->addTypedef()->addType( $1);1116 typedefTable.addToEnclosingScope( TypedefTable::TD); 1117 $$ = $4->addQualifiers($1)->addTypedef()->addType($1); 1106 1118 } 1107 1119 ; … … 1110 1122 TYPEDEF no_attr_identifier '=' assignment_expression 1111 1123 { 1112 typedefTable.addToEnclosingScope( *$2, TypedefTable::TD);1124 typedefTable.addToEnclosingScope(*($2), TypedefTable::TD); 1113 1125 $$ = DeclarationNode::newName( 0 ); // XXX 1114 1126 } 1115 1127 | typedef_expression pop ',' push no_attr_identifier '=' assignment_expression 1116 1128 { 1117 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD);1129 typedefTable.addToEnclosingScope(*($5), TypedefTable::TD); 1118 1130 $$ = DeclarationNode::newName( 0 ); // XXX 1119 1131 } … … 1128 1140 1129 1141 declaring_list: 1130 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static1131 // storage-class1142 // A semantic check is required to ensure asm_name only appears on declarations with implicit or 1143 // explicit static storage-class 1132 1144 declaration_specifier declarator asm_name_opt initializer_opt 1133 1145 { 1134 1146 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1135 $$ = ( $2->addType( $1 ))->addInitializer( $4);1147 $$ = ($2->addType( $1 ))->addInitializer($4); 1136 1148 } 1137 1149 | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1138 1150 { 1139 1151 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1140 $$ = $1->appendList( $1->cloneBaseType( $4->addInitializer( $6) ) );1152 $$ = $1->appendList( $1->cloneBaseType( $4->addInitializer($6) ) ); 1141 1153 } 1142 1154 ; … … 1163 1175 1164 1176 type_qualifier_list: 1165 // A semantic check is necessary to ensure a type qualifier is appropriate for the kind of declaration. 1177 // A semantic check is necessary to ensure a type qualifier is appropriate for the kind of 1178 // declaration. 1166 1179 // 1167 // ISO/IEC 9899:1999 Section 6.7.3(4 ) : If the same qualifier appears more than once in the same1168 // specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as if it1169 // appeared only once.1180 // ISO/IEC 9899:1999 Section 6.7.3(4) : If the same qualifier appears more than once in the same 1181 // specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as 1182 // if it appeared only once. 1170 1183 type_qualifier 1171 1184 | type_qualifier_list type_qualifier … … 1203 1216 declaration_qualifier_list: 1204 1217 storage_class_list 1205 | type_qualifier_list storage_class_list // remaining OBSOLESCENT (see 2 )1218 | type_qualifier_list storage_class_list // remaining OBSOLESCENT (see 2) 1206 1219 { $$ = $1->addQualifiers( $2 ); } 1207 1220 | declaration_qualifier_list type_qualifier_list storage_class_list … … 1210 1223 1211 1224 storage_class_list: 1212 // A semantic check is necessary to ensure a storage class is appropriate for the kind of declaration and that1213 // only one of each is specified, except for inline, which can appear with the others.1225 // A semantic check is necessary to ensure a storage class is appropriate for the kind of declaration 1226 // and that only one of each is specified, except for inline, which can appear with the others. 1214 1227 // 1215 // ISO/IEC 9899:1999 Section 6.7.1(2) : At most, one storage-class specifier may be given in the declaration1216 // specifiers in a declaration.1228 // ISO/IEC 9899:1999 Section 6.7.1(2) : At most, one storage-class specifier may be given in the 1229 // declaration specifiers in a declaration. 1217 1230 storage_class 1218 1231 | storage_class_list storage_class … … 1368 1381 | aggregate_key '(' push type_parameter_list pop ')' '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1369 1382 { $$ = DeclarationNode::newAggregate( $1, 0, $4, $8, $11 ); } 1370 | aggregate_key TYPEGENname '(' type_name_list ')' // CFA1371 {}1372 1383 | aggregate_key '(' push type_name_list pop ')' no_attr_identifier_or_typedef_name // CFA 1373 1384 // push and pop are only to prevent S/R conflicts … … 1490 1501 1491 1502 new_parameter_list: // CFA 1492 // To obtain LR(1) between new_parameter_list and new_abstract_tuple, the last new_abstract_parameter_list is 1493 // factored out from new_parameter_list, flattening the rules to get lookahead to the ']'. 1503 // To obtain LR(1) between new_parameter_list and new_abstract_tuple, the last 1504 // new_abstract_parameter_list is factored out from new_parameter_list, flattening the rules to get 1505 // lookahead to the ']'. 1494 1506 new_parameter_declaration 1495 1507 | new_abstract_parameter_list pop ',' push new_parameter_declaration … … 1528 1540 ; 1529 1541 1530 // Provides optional identifier names (abstract_declarator/variable_declarator), no initialization, different semantics 1531 // for typedef name by using typedef_parameter_redeclarator instead of typedef_redeclarator, and function prototypes. 1542 // Provides optional identifier names (abstract_declarator/variable_declarator), no initialization, different 1543 // semantics for typedef name by using typedef_parameter_redeclarator instead of typedef_redeclarator, and 1544 // function prototypes. 1532 1545 1533 1546 new_parameter_declaration: // CFA, new & old style parameter declaration … … 1557 1570 { 1558 1571 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1559 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3) );1572 $$ = $2->addType( $1 )->addInitializer( new InitializerNode($3) ); 1560 1573 } 1561 1574 | declaration_specifier typedef_parameter_redeclarator assignment_opt 1562 1575 { 1563 1576 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1564 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3) );1577 $$ = $2->addType( $1 )->addInitializer( new InitializerNode($3) ); 1565 1578 } 1566 1579 ; … … 1573 1586 1574 1587 // ISO/IEC 9899:1999 Section 6.9.1(6) : "An identifier declared as a typedef name shall not be redeclared as a 1575 // parameter." Because the scope of the K&R-style parameter-list sees the typedef first, the following is based only on1576 // identifiers. The ANSI-style parameter-list can redefine a typedef name.1588 // parameter." Because the scope of the K&R-style parameter-list sees the typedef first, the following is 1589 // based only on identifiers. The ANSI-style parameter-list can redefine a typedef name. 1577 1590 1578 1591 identifier_list: // K&R-style parameter list => no types … … 1598 1611 no_attr_identifier 1599 1612 | TYPEDEFname 1600 //| TYPEGENname1613 | TYPEGENname 1601 1614 ; 1602 1615 … … 1623 1636 1624 1637 initializer: 1625 assignment_expression { $$ = new InitializerNode( $1); }1626 | '{' initializer_list comma_opt '}' { $$ = new InitializerNode( $2, true); }1638 assignment_expression { $$ = new InitializerNode($1); } 1639 | '{' initializer_list comma_opt '}' { $$ = new InitializerNode($2, true); } 1627 1640 ; 1628 1641 … … 1630 1643 initializer 1631 1644 | designation initializer { $$ = $2->set_designators( $1 ); } 1632 | initializer_list ',' initializer { $$ = (InitializerNode *)( $1->set_link( $3) ); }1645 | initializer_list ',' initializer { $$ = (InitializerNode *)( $1->set_link($3) ); } 1633 1646 | initializer_list ',' designation initializer 1634 { $$ = (InitializerNode *)( $1->set_link( $4->set_designators( $3) ) ); }1635 ; 1636 1637 // There is an unreconcileable parsing problem between C99 and CFA with respect to designators. The problem is use of1638 // '=' to separator the designator from the initializer value, as in:1647 { $$ = (InitializerNode *)( $1->set_link( $4->set_designators($3) ) ); } 1648 ; 1649 1650 // There is an unreconcileable parsing problem between C99 and CFA with respect to designators. The problem is 1651 // use of '=' to separator the designator from the initializer value, as in: 1639 1652 // 1640 1653 // int x[10] = { [1] = 3 }; 1641 1654 // 1642 // The string "[1] = 3" can be parsed as a designator assignment or a tuple assignment. To disambiguate this case, CFA1643 // c hanges the syntax from "=" to ":" as the separator between the designator and initializer. GCC does uses ":" for1644 // field selection. The optional use of the "=" in GCC, or in this case ":", cannot be supported either due to1645 // s hift/reduce conflicts1655 // The string "[1] = 3" can be parsed as a designator assignment or a tuple assignment. To disambiguate this 1656 // case, CFA changes the syntax from "=" to ":" as the separator between the designator and initializer. GCC 1657 // does uses ":" for field selection. The optional use of the "=" in GCC, or in this case ":", cannot be 1658 // supported either due to shift/reduce conflicts 1646 1659 1647 1660 designation: … … 1653 1666 designator_list: // C99 1654 1667 designator 1655 | designator_list designator { $$ = (ExpressionNode *)( $1->set_link( $2 )); } 1656 //| designator_list designator { $$ = new CompositeExprNode( $1, $2 ); } 1668 | designator_list designator { $$ = (ExpressionNode *)($1->set_link( $2 )); } 1657 1669 ; 1658 1670 … … 1661 1673 { $$ = new VarRefNode( $2 ); } 1662 1674 | '[' push assignment_expression pop ']' // C99, single array element 1663 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple. 1675 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with 1676 // tuple. 1664 1677 { $$ = $3; } 1665 1678 | '[' push subrange pop ']' // CFA, multiple array elements 1666 1679 { $$ = $3; } 1667 1680 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1668 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5); }1681 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Range), $3, $5); } 1669 1682 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1670 1683 { $$ = $4; } 1671 1684 ; 1672 1685 1673 // The CFA type system is based on parametric polymorphism, the ability to declare functions with type parameters,1674 // rather than an object-oriented type system. This required four groups of extensions:1686 // The CFA type system is based on parametric polymorphism, the ability to declare functions with type 1687 // parameters, rather than an object-oriented type system. This required four groups of extensions: 1675 1688 // 1676 1689 // Overloading: function, data, and operator identifiers may be overloaded. 1677 1690 // 1678 // Type declarations: "type" is used to generate new types for declaring objects. Similarly, "dtype" is used for object 1679 // and incomplete types, and "ftype" is used for function types. Type declarations with initializers provide 1680 // definitions of new types. Type declarations with storage class "extern" provide opaque types. 1681 // 1682 // Polymorphic functions: A forall clause declares a type parameter. The corresponding argument is inferred at the call 1683 // site. A polymorphic function is not a template; it is a function, with an address and a type. 1691 // Type declarations: "type" is used to generate new types for declaring objects. Similarly, "dtype" is used 1692 // for object and incomplete types, and "ftype" is used for function types. Type declarations with 1693 // initializers provide definitions of new types. Type declarations with storage class "extern" provide 1694 // opaque types. 1695 // 1696 // Polymorphic functions: A forall clause declares a type parameter. The corresponding argument is inferred at 1697 // the call site. A polymorphic function is not a template; it is a function, with an address and a type. 1684 1698 // 1685 1699 // Specifications and Assertions: Specifications are collections of declarations parameterized by one or more 1686 // types. They serve many of the purposes of abstract classes, and specification hierarchies resemble subclass1687 // hierarchies. Unlike classes, they can define relationships between types. Assertions declare that a type or1688 // t ypes provide the operations declared by a specification. Assertions are normally used to declare requirements1689 // on type arguments of polymorphic functions.1700 // types. They serve many of the purposes of abstract classes, and specification hierarchies resemble 1701 // subclass hierarchies. Unlike classes, they can define relationships between types. Assertions declare 1702 // that a type or types provide the operations declared by a specification. Assertions are normally used 1703 // to declare requirements on type arguments of polymorphic functions. 1690 1704 1691 1705 typegen_declaration_specifier: // CFA … … 1716 1730 type_parameter: // CFA 1717 1731 type_class no_attr_identifier_or_typedef_name 1718 { typedefTable.addToEnclosingScope(*( $2 ), TypedefTable::TD); }1732 { typedefTable.addToEnclosingScope(*($2), TypedefTable::TD); } 1719 1733 assertion_list_opt 1720 1734 { $$ = DeclarationNode::newTypeParam( $1, $2 )->addAssertions( $4 ); } … … 1741 1755 '|' no_attr_identifier_or_typedef_name '(' type_name_list ')' 1742 1756 { 1743 typedefTable.openContext( *( $2) );1757 typedefTable.openContext( *($2) ); 1744 1758 $$ = DeclarationNode::newContextUse( $2, $4 ); 1745 1759 } … … 1755 1769 | assignment_expression 1756 1770 | type_name_list ',' type_name 1757 { $$ = (ExpressionNode *)( $1->set_link(new TypeValueNode( $3 ))); }1771 { $$ = (ExpressionNode *)($1->set_link(new TypeValueNode( $3 ))); } 1758 1772 | type_name_list ',' assignment_expression 1759 { $$ = (ExpressionNode *)( $1->set_link( $3)); }1773 { $$ = (ExpressionNode *)($1->set_link($3)); } 1760 1774 ; 1761 1775 … … 1779 1793 no_attr_identifier_or_typedef_name 1780 1794 { 1781 typedefTable.addToEnclosingScope( *$1, TypedefTable::TD);1795 typedefTable.addToEnclosingScope(*($1), TypedefTable::TD); 1782 1796 $$ = DeclarationNode::newTypeDecl( $1, 0 ); 1783 1797 } 1784 1798 | no_01_identifier_or_typedef_name '(' push type_parameter_list pop ')' 1785 1799 { 1786 typedefTable.addToEnclosingScope( *$1, TypedefTable::TG);1800 typedefTable.addToEnclosingScope(*($1), TypedefTable::TG); 1787 1801 $$ = DeclarationNode::newTypeDecl( $1, $4 ); 1788 1802 } … … 1792 1806 CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{' '}' 1793 1807 { 1794 typedefTable.addToEnclosingScope( *$2, TypedefTable::ID );1808 typedefTable.addToEnclosingScope(*($2), TypedefTable::ID ); 1795 1809 $$ = DeclarationNode::newContext( $2, $5, 0 ); 1796 1810 } 1797 1811 | CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{' 1798 1812 { 1799 typedefTable.enterContext( * $2);1813 typedefTable.enterContext( *($2) ); 1800 1814 typedefTable.enterScope(); 1801 1815 } … … 1803 1817 { 1804 1818 typedefTable.leaveContext(); 1805 typedefTable.addToEnclosingScope( *$2, TypedefTable::ID );1819 typedefTable.addToEnclosingScope(*($2), TypedefTable::ID ); 1806 1820 $$ = DeclarationNode::newContext( $2, $5, $10 ); 1807 1821 } … … 1832 1846 | new_context_declaring_list pop ',' push identifier_or_typedef_name 1833 1847 { 1834 typedefTable.addToEnclosingScope2( * $5, TypedefTable::ID );1848 typedefTable.addToEnclosingScope2( *($5), TypedefTable::ID ); 1835 1849 $$ = $1->appendList( $1->cloneType( $5 ) ); 1836 1850 } … … 1868 1882 external_definition 1869 1883 | external_definition_list push external_definition 1870 { $$ = ( $1 != NULL ) ? $1->appendList( $3 ) : $3; }1884 { $$ = ($1 != NULL ) ? $1->appendList( $3 ) : $3; } 1871 1885 ; 1872 1886 … … 1900 1914 function_definition 1901 1915 1902 // These rules are a concession to the "implicit int" type_specifier because there is a significant amount of 1903 // code with functions missing a type-specifier on the return type. Parsing is possible because 1904 // function_definition does not appear in the context of an expression (nested functions would preclude this 1905 // concession). A function prototype declaration must still have a type_specifier. OBSOLESCENT (see 1) 1916 // These rules are a concession to the "implicit int" type_specifier because there is a significant 1917 // amount of code with functions missing a type-specifier on the return type. Parsing is possible 1918 // because function_definition does not appear in the context of an expression (nested functions would 1919 // preclude this concession). A function prototype declaration must still have a type_specifier. 1920 // OBSOLESCENT (see 1) 1906 1921 | function_declarator compound_statement 1907 1922 { … … 1987 2002 subrange: 1988 2003 constant_expression '~' constant_expression // CFA, integer subrange 1989 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $1, $3); }2004 { $$ = new CompositeExprNode(new OperatorNode(OperatorNode::Range), $1, $3); } 1990 2005 ; 1991 2006 … … 2028 2043 2029 2044 // ============================================================================ 2030 // The following sections are a series of grammar patterns used to parse declarators. Multiple patterns are necessary2031 // because the type of an identifier in wrapped around the identifier in the same form as its usage in an expression, as2032 // in :2045 // The following sections are a series of grammar patterns used to parse declarators. Multiple patterns are 2046 // necessary because the type of an identifier in wrapped around the identifier in the same form as its usage 2047 // in an expression, as in: 2033 2048 // 2034 2049 // int (*f())[10] { ... }; 2035 2050 // ... (*f())[3] += 1; // definition mimics usage 2036 2051 // 2037 // Because these patterns are highly recursive, changes at a lower level in the recursion require copying some or all of 2038 // the pattern. Each of these patterns has some subtle variation to ensure correct syntax in a particular context. 2052 // Because these patterns are highly recursive, changes at a lower level in the recursion require copying some 2053 // or all of the pattern. Each of these patterns has some subtle variation to ensure correct syntax in a 2054 // particular context. 2039 2055 // ============================================================================ 2040 2056 2041 2057 // ---------------------------------------------------------------------------- 2042 // The set of valid declarators before a compound statement for defining a function is less than the set of declarators2043 // to define a variable or function prototype, e.g.:2058 // The set of valid declarators before a compound statement for defining a function is less than the set of 2059 // declarators to define a variable or function prototype, e.g.: 2044 2060 // 2045 2061 // valid declaration invalid definition … … 2050 2066 // int (*f)(int); int (*f)(int) {} 2051 2067 // 2052 // To preclude this syntactic anomaly requires separating the grammar rules for variable and function declarators, hence2053 // variable_declarator and function_declarator.2068 // To preclude this syntactic anomaly requires separating the grammar rules for variable and function 2069 // declarators, hence variable_declarator and function_declarator. 2054 2070 // ---------------------------------------------------------------------------- 2055 2071 2056 // This pattern parses a declaration of a variable that is not redefining a typedef name. The pattern precludes2057 // declaring an array of functions versus a pointer to an array of functions.2072 // This pattern parses a declaration of a variable that is not redefining a typedef name. The pattern 2073 // precludes declaring an array of functions versus a pointer to an array of functions. 2058 2074 2059 2075 variable_declarator: … … 2067 2083 identifier 2068 2084 { 2069 typedefTable.setNextIdentifier( * $1);2085 typedefTable.setNextIdentifier( *($1) ); 2070 2086 $$ = DeclarationNode::newName( $1 ); 2071 2087 } … … 2101 2117 ; 2102 2118 2103 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot be nested,2104 // there is no context where a function definition can redefine a typedef name. To allow nested functions requires2105 // fu rther separation of variable and function declarators in typedef_redeclarator. The pattern precludes returning2106 // arrays and functions versus pointers to arrays and functions.2119 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot 2120 // be nested, there is no context where a function definition can redefine a typedef name. To allow nested 2121 // functions requires further separation of variable and function declarators in typedef_redeclarator. The 2122 // pattern precludes returning arrays and functions versus pointers to arrays and functions. 2107 2123 2108 2124 function_declarator: … … 2139 2155 ; 2140 2156 2141 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) that is not redefining a typedef name2142 // (see function_declarator for additional comments). The pattern precludes returning arrays and functions versus2143 // pointers to arrays and functions.2157 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) that is not redefining a 2158 // typedef name (see function_declarator for additional comments). The pattern precludes returning arrays and 2159 // functions versus pointers to arrays and functions. 2144 2160 2145 2161 old_function_declarator: … … 2183 2199 // } 2184 2200 // 2185 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays2186 // and functions versus pointers to arrays and functions.2201 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2202 // returning arrays and functions versus pointers to arrays and functions. 2187 2203 2188 2204 typedef_redeclarator: … … 2196 2212 TYPEDEFname 2197 2213 { 2198 typedefTable.setNextIdentifier( *( $1) );2214 typedefTable.setNextIdentifier( *($1) ); 2199 2215 $$ = DeclarationNode::newName( $1 ); 2200 2216 } … … 2232 2248 ; 2233 2249 2234 // This pattern parses a declaration for a parameter variable or function prototype that is not redefining a typedef2235 // name and allows the C99 array options, which can only appear in a parameter list. The pattern precludes declaring an2236 // array of functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to2237 // a rrays and functions.2250 // This pattern parses a declaration for a parameter variable or function prototype that is not redefining a 2251 // typedef name and allows the C99 array options, which can only appear in a parameter list. The pattern 2252 // precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2253 // and functions versus pointers to arrays and functions. 2238 2254 2239 2255 identifier_parameter_declarator: … … 2273 2289 ; 2274 2290 2275 // This pattern parses a declaration for a parameter variable or function prototype that is redefining a typedef name,2276 // e.g.:2291 // This pattern parses a declaration for a parameter variable or function prototype that is redefining a 2292 // typedef name, e.g.: 2277 2293 // 2278 2294 // typedef int foo; 2279 2295 // int f( int foo ); // redefine typedef name in new scope 2280 2296 // 2281 // and allows the C99 array options, which can only appear in a parameter list. In addition, the pattern handles the2282 // special meaning of parenthesis around a typedef name:2297 // and allows the C99 array options, which can only appear in a parameter list. In addition, the pattern 2298 // handles the special meaning of parenthesis around a typedef name: 2283 2299 // 2284 2300 // ISO/IEC 9899:1999 Section 6.7.5.3(11) : "In a parameter declaration, a single typedef name in … … 2294 2310 // int g( int g1( T g2( int p ) ) ); // see identifier_parameter_declarator 2295 2311 // 2296 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type list, and2297 // not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes declaring an array of2298 // functions versus a pointer to an array of functions, and returning arrays and functions versus pointers toarrays and2299 // functions .2312 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type 2313 // list, and not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes 2314 // declaring an array of functions versus a pointer to an array of functions, and returning arrays and 2315 // functions versus pointers to arrays and functions. 2300 2316 2301 2317 typedef_parameter_redeclarator: … … 2309 2325 TYPEDEFname 2310 2326 { 2311 typedefTable.setNextIdentifier( * $1);2327 typedefTable.setNextIdentifier( *($1) ); 2312 2328 $$ = DeclarationNode::newName( $1 ); 2313 2329 } … … 2337 2353 ; 2338 2354 2339 // This pattern parses a declaration of an abstract variable or function prototype, i.e., there is no identifier to2340 // which the type applies, e.g.:2355 // This pattern parses a declaration of an abstract variable or function prototype, i.e., there is no 2356 // identifier to which the type applies, e.g.: 2341 2357 // 2342 2358 // sizeof( int ); 2343 2359 // sizeof( int [10] ); 2344 2360 // 2345 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays2346 // and functions versus pointers to arrays and functions.2361 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2362 // returning arrays and functions versus pointers to arrays and functions. 2347 2363 2348 2364 abstract_declarator: … … 2410 2426 // int f( int (int) ); // abstract function-prototype parameter; no parameter name specified 2411 2427 // 2412 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays2413 // and functions versus pointers to arrays and functions.2428 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2429 // returning arrays and functions versus pointers to arrays and functions. 2414 2430 2415 2431 abstract_parameter_declarator: … … 2461 2477 // The declaration of an array parameter has additional syntax over arrays in normal variable declarations: 2462 2478 // 2463 // ISO/IEC 9899:1999 Section 6.7.5.2(1) : "The optional type qualifiers and the keyword static shall appear only in 2464 // a declaration of a function parameter with an array type, and then only in the outermost array type derivation." 2479 // ISO/IEC 9899:1999 Section 6.7.5.2(1) : "The optional type qualifiers and the keyword static shall 2480 // appear only in a declaration of a function parameter with an array type, and then only in the 2481 // outermost array type derivation." 2465 2482 2466 2483 array_parameter_1st_dimension: … … 2481 2498 ; 2482 2499 2483 // This pattern parses a declaration of an abstract variable, i.e., there is no identifier to which the type applies,2484 // e.g.:2500 // This pattern parses a declaration of an abstract variable, i.e., there is no identifier to which the type 2501 // applies, e.g.: 2485 2502 // 2486 2503 // sizeof( int ); // abstract variable; no identifier name specified 2487 2504 // 2488 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays2489 // and functions versus pointers to arrays and functions.2505 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2506 // returning arrays and functions versus pointers to arrays and functions. 2490 2507 2491 2508 variable_abstract_declarator: … … 2525 2542 ; 2526 2543 2527 // This pattern parses a new-style declaration for a parameter variable or function prototype that is either an2528 // identifier or typedef name and allows the C99 array options, which can only appear in a parameter list.2544 // This pattern parses a new-style declaration for a parameter variable or function prototype that is either 2545 // an identifier or typedef name and allows the C99 array options, which can only appear in a parameter list. 2529 2546 2530 2547 new_identifier_parameter_declarator_tuple: // CFA … … 2556 2573 2557 2574 new_identifier_parameter_array: // CFA 2558 // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due to2559 // shift/reduce conflict with new-style empty (void) function return type.2575 // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due 2576 // to shift/reduce conflict with new-style empty (void) function return type. 2560 2577 '[' push pop ']' type_specifier 2561 2578 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } … … 2594 2611 ; 2595 2612 2596 // This pattern parses a new-style declaration of an abstract variable or function prototype, i.e., there is no2597 // identifier to which the type applies, e.g.:2613 // This pattern parses a new-style declaration of an abstract variable or function prototype, i.e., there is 2614 // no identifier to which the type applies, e.g.: 2598 2615 // 2599 2616 // [int] f( int ); // abstract variable parameter; no parameter name specified … … 2611 2628 // 2612 2629 // Therefore, it is necessary to look at the token after identifier_or_typedef_name to know when to reduce 2613 // new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the necessary2614 // lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and tuple declarations are2615 // duplicated when appearing with new_function_specifier.2630 // new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the 2631 // necessary lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and 2632 // tuple declarations are duplicated when appearing with new_function_specifier. 2616 2633 2617 2634 new_abstract_declarator_tuple: // CFA … … 2643 2660 2644 2661 new_abstract_array: // CFA 2645 // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce conflict with2646 // empty (void) function return type.2662 // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce 2663 // conflict with empty (void) function return type. 2647 2664 '[' push pop ']' type_specifier 2648 2665 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } … … 2673 2690 ; 2674 2691 2675 // 1) ISO/IEC 9899:1999 Section 6.7.2(2) : "At least one type specifier shall be given in the declaration specifiers in 2676 // each declaration, and in the specifier-qualifier list in each structure declaration and type name." 2677 // 2678 // 2) ISO/IEC 9899:1999 Section 6.11.5(1) : "The placement of a storage-class specifier other than at the beginning of 2679 // the declaration specifiers in a declaration is an obsolescent feature." 2692 // 1) ISO/IEC 9899:1999 Section 6.7.2(2) : "At least one type specifier shall be given in the declaration 2693 // specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and 2694 // type name." 2695 // 2696 // 2) ISO/IEC 9899:1999 Section 6.11.5(1) : "The placement of a storage-class specifier other than at the 2697 // beginning of the declaration specifiers in a declaration is an obsolescent feature." 2680 2698 // 2681 2699 // 3) ISO/IEC 9899:1999 Section 6.11.6(1) : "The use of function declarators with empty parentheses (not 2682 2700 // prototype-format parameter type declarators) is an obsolescent feature." 2683 2701 // 2684 // 4) ISO/IEC 9899:1999 Section 6.11.7(1) : "The use of function definitions with separate parameter identifier and 2685 // declaration lists (not prototype-format parameter type and identifier declarators) is an obsolescent feature. 2702 // 4) ISO/IEC 9899:1999 Section 6.11.7(1) : "The use of function definitions with separate parameter 2703 // identifier and declaration lists (not prototype-format parameter type and identifier declarators) is an 2704 // obsolescent feature. 2686 2705 2687 2706 //************************* MISCELLANEOUS ******************************** … … 2711 2730 2712 2731 // Local Variables: // 2732 // tab-width: 4 // 2713 2733 // mode: c++ // 2714 // tab-width: 4 //2715 2734 // compile-command: "make install" // 2716 2735 // End: // -
src/ResolvExpr/AlternativeFinder.cc
r94e0864d r94b4364 10 10 // Created On : Sat May 16 23:52:08 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 22 17:19:54201513 // Update Count : 1 712 // Last Modified On : Mon Jun 8 14:53:58 2015 13 // Update Count : 14 14 14 // 15 15 … … 545 545 NameExpr *fname; 546 546 if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function())) 547 && ( fname->get_name() == std::string(" &&")) ) {548 alternatives.push_back( Alternative( untypedExpr ->clone(), env, Cost()) );547 && ( fname->get_name() == std::string("LabAddress")) ) { 548 alternatives.push_back( Alternative( untypedExpr, env, Cost()) ); 549 549 return; 550 550 } -
src/ResolvExpr/Resolver.cc
r94e0864d r94b4364 10 10 // Created On : Sun May 17 12:17:01 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 24 16:08:49201513 // Update Count : 15 512 // Last Modified On : Tue Jun 16 14:50:11 2015 13 // Update Count : 154 14 14 // 15 15 … … 47 47 virtual void visit( ChooseStmt *switchStmt ); 48 48 virtual void visit( CaseStmt *caseStmt ); 49 virtual void visit( BranchStmt *branchStmt );50 49 virtual void visit( ReturnStmt *returnStmt ); 51 50 … … 269 268 void Resolver::visit( CaseStmt *caseStmt ) { 270 269 Visitor::visit( caseStmt ); 271 }272 273 void Resolver::visit( BranchStmt *branchStmt ) {274 // must resolve the argument for a computed goto275 if ( branchStmt->get_type() == BranchStmt::Goto ) { // check for computed goto statement276 if ( NameExpr * arg = dynamic_cast< NameExpr * >( branchStmt->get_computedTarget() ) ) {277 VoidType v = Type::Qualifiers(); // cast to void * for the alternative finder278 PointerType pt( Type::Qualifiers(), v.clone() );279 CastExpr * castExpr = new CastExpr( arg, pt.clone() );280 Expression * newExpr = findSingleExpression( castExpr, *this ); // find best expression281 branchStmt->set_target( newExpr );282 } // if283 } // if284 270 } 285 271 -
src/SymTab/Validate.cc
r94e0864d r94b4364 10 10 // Created On : Sun May 17 21:50:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 17:10:29201513 // Update Count : 2 912 // Last Modified On : Sat Jun 13 08:06:13 2015 13 // Update Count : 26 14 14 // 15 15 … … 555 555 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 556 556 // because each unit generates copies of the default routines for each aggregate. 557 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true , false);557 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true ); 558 558 assignDecl->fixUniqueId(); 559 559 … … 598 598 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 599 599 // because each unit generates copies of the default routines for each aggregate. 600 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true , false);600 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true ); 601 601 assignDecl->fixUniqueId(); 602 602 … … 646 646 type->get_parameters().push_back( dst ); 647 647 type->get_parameters().push_back( src ); 648 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false , false);648 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false ); 649 649 declsToAdd.push_back( func ); 650 650 } -
src/SynTree/CompoundStmt.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 11:37:49201513 // Update Count : 312 // Last Modified On : Fri Jun 5 07:46:03 2015 13 // Update Count : 2 14 14 // 15 15 … … 33 33 } 34 34 35 void CompoundStmt::print( std::ostream &os, int indent ) const{35 void CompoundStmt::print( std::ostream &os, int indent ) { 36 36 os << string( indent, ' ' ) << "CompoundStmt" << endl ; 37 37 printAll( kids, os, indent + 2 ); -
src/SynTree/DeclStmt.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 11:38:15201513 // Update Count : 412 // Last Modified On : Mon Jun 8 17:24:38 2015 13 // Update Count : 3 14 14 // 15 15 … … 28 28 } 29 29 30 void DeclStmt::print( std::ostream &os, int indent ) const{30 void DeclStmt::print( std::ostream &os, int indent ) { 31 31 assert( decl != 0 ); 32 32 os << "Declaration of "; -
src/SynTree/Declaration.h
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 09:10:31201513 // Update Count : 2 512 // Last Modified On : Fri Jun 12 23:55:26 2015 13 // Update Count : 24 14 14 // 15 15 … … 101 101 typedef DeclarationWithType Parent; 102 102 public: 103 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline , bool isNoreturn);103 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline ); 104 104 FunctionDecl( const FunctionDecl &other ); 105 105 virtual ~FunctionDecl(); … … 113 113 void set_statements( CompoundStmt *newValue ) { statements = newValue; } 114 114 bool get_isInline() const { return isInline; } 115 bool get_isNoreturn() const { return isNoreturn; }115 // void set_isInline( bool newValue ) { isInline = newValue; } 116 116 std::list< std::string >& get_oldIdents() { return oldIdents; } 117 117 std::list< Declaration* >& get_oldDecls() { return oldDecls; } … … 125 125 FunctionType *type; 126 126 CompoundStmt *statements; 127 bool isInline , isNoreturn;127 bool isInline; 128 128 std::list< std::string > oldIdents; 129 129 std::list< Declaration* > oldDecls; -
src/SynTree/FunctionDecl.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 0 9:10:32201513 // Update Count : 1 612 // Last Modified On : Sat Jun 13 08:12:20 2015 13 // Update Count : 14 14 14 // 15 15 … … 21 21 #include "utility.h" 22 22 23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline , bool isNoreturn)24 : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) , isNoreturn( isNoreturn ){23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline ) 24 : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) { 25 25 // this is a brazen hack to force the function "main" to have C linkage 26 26 if ( name == "main" ) { … … 30 30 31 31 FunctionDecl::FunctionDecl( const FunctionDecl &other ) 32 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ), isNoreturn( other.isNoreturn) {32 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ) { 33 33 } 34 34 … … 60 60 os << "inline "; 61 61 } // if 62 if ( isNoreturn ) {63 os << "_Noreturn ";64 } // if65 62 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 66 63 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; … … 73 70 74 71 if ( ! oldIdents.empty() ) { 75 os << string( indent +2, ' ' ) << "with parameter names" << endl;72 os << string( indent+2, ' ' ) << "with parameter names" << endl; 76 73 for ( std::list< std::string >::const_iterator i = oldIdents.begin(); i != oldIdents.end(); ++i ) { 77 os << string( indent +4, ' ' ) << *i << endl;74 os << string( indent+4, ' ' ) << *i << endl; 78 75 } // for 79 76 } // if 80 77 81 78 if ( ! oldDecls.empty() ) { 82 os << string( indent +2, ' ' ) << "with parameter declarations" << endl;83 printAll( oldDecls, os, indent +4 );79 os << string( indent+2, ' ' ) << "with parameter declarations" << endl; 80 printAll( oldDecls, os, indent+4 ); 84 81 } // if 85 82 if ( statements ) { 86 os << string( indent +2, ' ' ) << "with body " << endl;87 statements->print( os, indent +4 );83 os << string( indent+2, ' ' ) << "with body " << endl; 84 statements->print( os, indent+4 ); 88 85 } // if 89 86 } … … 98 95 if ( isInline ) { 99 96 os << "inline "; 100 } // if101 if ( isNoreturn ) {102 os << "_Noreturn ";103 97 } // if 104 98 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { -
src/SynTree/Statement.cc
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 11:42:09201513 // Update Count : 2112 // Last Modified On : Fri Jun 5 07:51:04 2015 13 // Update Count : 15 14 14 // 15 15 … … 30 30 Statement::Statement( std::list<Label> _labels ) : labels(_labels ) {} 31 31 32 void Statement::print( std::ostream &, int indent ) const{}32 void Statement::print( std::ostream &, int indent ) {} 33 33 34 34 Statement::~Statement() {} … … 38 38 ExprStmt::~ExprStmt() {} 39 39 40 void ExprStmt::print( std::ostream &os, int indent ) const{40 void ExprStmt::print( std::ostream &os, int indent ) { 41 41 os << string( indent, ' ' ) << "Expression Statement:" << endl; 42 42 expr->print( os, indent + 2 ); … … 58 58 } 59 59 60 void BranchStmt::print( std::ostream &os, int indent ) const{60 void BranchStmt::print( std::ostream &os, int indent ) { 61 61 os << string( indent, ' ' ) << "Branch (" << brType[type] << ")" << endl ; 62 62 } … … 68 68 } 69 69 70 void ReturnStmt::print( std::ostream &os, int indent ) const{70 void ReturnStmt::print( std::ostream &os, int indent ) { 71 71 os << std::string( indent, ' ' ) << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 72 72 if ( expr != 0 ) expr->print( os ); … … 79 79 IfStmt::~IfStmt() {} 80 80 81 void IfStmt::print( std::ostream &os, int indent ) const{81 void IfStmt::print( std::ostream &os, int indent ) { 82 82 os << string( indent, ' ' ) << "If on condition: " << endl ; 83 83 condition->print( os, indent + 4 ); … … 103 103 void SwitchStmt::add_case( CaseStmt *c ) {} 104 104 105 void SwitchStmt::print( std::ostream &os, int indent ) const{105 void SwitchStmt::print( std::ostream &os, int indent ) { 106 106 os << string( indent, ' ' ) << "Switch on condition: "; 107 107 condition->print( os ); … … 109 109 110 110 // branches 111 std::list<Statement *>:: const_iterator i;111 std::list<Statement *>::iterator i; 112 112 for ( i = branches.begin(); i != branches.end(); i++) 113 (*i )->print( os, indent + 4 );113 (*i )->print( os, indent + 4 ); 114 114 115 115 //for_each( branches.begin(), branches.end(), mem_fun( bind1st(&Statement::print ), os )); … … 130 130 } 131 131 132 void CaseStmt::print( std::ostream &os, int indent ) const{132 void CaseStmt::print( std::ostream &os, int indent ) { 133 133 os << string( indent, ' ' ); 134 134 135 if ( isDefault() )135 if ( isDefault()) 136 136 os << "Default "; 137 137 else { … … 142 142 os << endl; 143 143 144 std::list<Statement *>:: const_iterator i;144 std::list<Statement *>::iterator i; 145 145 for ( i = stmts.begin(); i != stmts.end(); i++) 146 146 (*i )->print( os, indent + 4 ); … … 158 158 void ChooseStmt::add_case( CaseStmt *c ) {} 159 159 160 void ChooseStmt::print( std::ostream &os, int indent ) const{160 void ChooseStmt::print( std::ostream &os, int indent ) { 161 161 os << string( indent, ' ' ) << "Choose on condition: "; 162 162 condition->print( os ); … … 164 164 165 165 // branches 166 std::list<Statement *>:: const_iterator i;166 std::list<Statement *>::iterator i; 167 167 for ( i = branches.begin(); i != branches.end(); i++) 168 168 (*i )->print( os, indent + 4 ); … … 171 171 } 172 172 173 void FallthruStmt::print( std::ostream &os, int indent ) const{173 void FallthruStmt::print( std::ostream &os, int indent ) { 174 174 os << string( indent, ' ' ) << "Fall-through statement" << endl; 175 175 } … … 183 183 } 184 184 185 void WhileStmt::print( std::ostream &os, int indent ) const{185 void WhileStmt::print( std::ostream &os, int indent ) { 186 186 os << string( indent, ' ' ) << "While on condition: " << endl ; 187 187 condition->print( os, indent + 4 ); … … 203 203 } 204 204 205 void ForStmt::print( std::ostream &os, int indent ) const{205 void ForStmt::print( std::ostream &os, int indent ) { 206 206 os << string( indent, ' ' ) << "Labels: {"; 207 for ( std::list<Label>::const_iterator it = get_labels().begin(); it != get_labels().end(); ++it) {207 for (std::list<Label>::iterator it = get_labels().begin(); it != get_labels().end(); ++it) { 208 208 os << *it << ","; 209 209 } … … 245 245 } 246 246 247 void TryStmt::print( std::ostream &os, int indent ) const{247 void TryStmt::print( std::ostream &os, int indent ) { 248 248 os << string( indent, ' ' ) << "Try Statement" << endl; 249 249 os << string( indent + 2, ' ' ) << "with block: " << endl; … … 252 252 // handlers 253 253 os << string( indent + 2, ' ' ) << "and handlers: " << endl; 254 for ( std::list<Statement *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) 254 std::list<Statement *>::iterator i; 255 for ( i = handlers.begin(); i != handlers.end(); i++) 255 256 (*i )->print( os, indent + 4 ); 256 257 … … 271 272 } 272 273 273 void CatchStmt::print( std::ostream &os, int indent ) const{274 void CatchStmt::print( std::ostream &os, int indent ) { 274 275 os << string( indent, ' ' ) << "Catch Statement" << endl; 275 276 … … 293 294 } 294 295 295 void FinallyStmt::print( std::ostream &os, int indent ) const{296 void FinallyStmt::print( std::ostream &os, int indent ) { 296 297 os << string( indent, ' ' ) << "Finally Statement" << endl; 297 298 os << string( indent + 2, ' ' ) << "with block: " << endl; … … 303 304 NullStmt::~NullStmt() {} 304 305 305 void NullStmt::print( std::ostream &os, int indent ) const{306 void NullStmt::print( std::ostream &os, int indent ) { 306 307 os << string( indent, ' ' ) << "Null Statement" << endl ; 307 308 } -
src/SynTree/Statement.h
r94e0864d r94b4364 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jun 23 11:44:27201513 // Update Count : 2012 // Last Modified On : Thu Jun 4 14:03:31 2015 13 // Update Count : 14 14 14 // 15 15 … … 28 28 29 29 std::list<Label> & get_labels() { return labels; } 30 const std::list<Label> & get_labels() const { return labels; }31 30 32 31 virtual Statement *clone() const = 0; 33 32 virtual void accept( Visitor &v ) = 0; 34 33 virtual Statement *acceptMutator( Mutator &m ) = 0; 35 virtual void print( std::ostream &os, int indent = 0 ) const;34 virtual void print( std::ostream &os, int indent = 0 ); 36 35 protected: 37 36 std::list<Label> labels; … … 49 48 virtual void accept( Visitor &v ) { v.visit( this ); } 50 49 virtual CompoundStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 51 virtual void print( std::ostream &os, int indent = 0 ) const;50 virtual void print( std::ostream &os, int indent = 0 ); 52 51 private: 53 52 std::list<Statement*> kids; … … 65 64 virtual void accept( Visitor &v ) { v.visit( this ); } 66 65 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 67 virtual void print( std::ostream &os, int indent = 0 ) const;66 virtual void print( std::ostream &os, int indent = 0 ); 68 67 private: 69 68 Expression *expr; … … 85 84 virtual void accept( Visitor &v ) { v.visit( this ); } 86 85 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 87 virtual void print( std::ostream &os, int indent = 0 ) const;86 virtual void print( std::ostream &os, int indent = 0 ); 88 87 private: 89 88 Expression *condition; … … 107 106 108 107 virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); } 109 virtual void print( std::ostream &os, int indent = 0 ) const;108 virtual void print( std::ostream &os, int indent = 0 ); 110 109 private: 111 110 Expression * condition; … … 128 127 129 128 virtual ChooseStmt *clone() const { return new ChooseStmt( *this ); } 130 virtual void print( std::ostream &os, int indent = 0 ) const;129 virtual void print( std::ostream &os, int indent = 0 ); 131 130 private: 132 131 Expression *condition; … … 142 141 143 142 virtual FallthruStmt *clone() const { return new FallthruStmt( *this ); } 144 virtual void print( std::ostream &os, int indent = 0 ) const;143 virtual void print( std::ostream &os, int indent = 0 ); 145 144 }; 146 145 … … 154 153 std::list<Statement *> stmts = std::list<Statement *>() ); 155 154 156 bool isDefault() const{ return _isDefault; }155 bool isDefault() { return _isDefault; } 157 156 void set_default(bool b) { _isDefault = b; } 158 157 … … 167 166 168 167 virtual CaseStmt *clone() const { return new CaseStmt( *this ); } 169 virtual void print( std::ostream &os, int indent = 0 ) const;168 virtual void print( std::ostream &os, int indent = 0 ); 170 169 private: 171 170 Expression * condition; … … 190 189 virtual void accept( Visitor &v ) { v.visit( this ); } 191 190 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 192 virtual void print( std::ostream &os, int indent = 0 ) const;191 virtual void print( std::ostream &os, int indent = 0 ); 193 192 private: 194 193 Expression *condition; … … 215 214 virtual void accept( Visitor &v ) { v.visit( this ); } 216 215 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 217 virtual void print( std::ostream &os, int indent = 0 ) const;216 virtual void print( std::ostream &os, int indent = 0 ); 218 217 private: 219 218 Statement *initialization; … … 225 224 class BranchStmt : public Statement { 226 225 public: 227 enum Type { Goto = 0 , Break, Continue };226 enum Type { Goto = 0 , Break, Continue }; 228 227 229 228 BranchStmt( std::list<Label> labels, Label target, Type ) throw (SemanticError); … … 244 243 virtual void accept( Visitor &v ) { v.visit( this ); } 245 244 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 246 virtual void print( std::ostream &os, int indent = 0 ) const;245 virtual void print( std::ostream &os, int indent = 0 ); 247 246 private: 248 247 static const char *brType[]; … … 264 263 virtual void accept( Visitor &v ) { v.visit( this ); } 265 264 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 266 virtual void print( std::ostream &os, int indent = 0 ) const;265 virtual void print( std::ostream &os, int indent = 0 ); 267 266 private: 268 267 Expression *expr; … … 280 279 virtual void accept( Visitor &v ) { v.visit( this ); } 281 280 virtual NullStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 282 virtual void print( std::ostream &os, int indent = 0 ) const;281 virtual void print( std::ostream &os, int indent = 0 ); 283 282 284 283 private: … … 301 300 virtual void accept( Visitor &v ) { v.visit( this ); } 302 301 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 303 virtual void print( std::ostream &os, int indent = 0 ) const;302 virtual void print( std::ostream &os, int indent = 0 ); 304 303 305 304 private: … … 323 322 virtual void accept( Visitor &v ) { v.visit( this ); } 324 323 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 325 virtual void print( std::ostream &os, int indent = 0 ) const;324 virtual void print( std::ostream &os, int indent = 0 ); 326 325 327 326 private: … … 342 341 virtual void accept( Visitor &v ) { v.visit( this ); } 343 342 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 344 virtual void print( std::ostream &os, int indent = 0 ) const;343 virtual void print( std::ostream &os, int indent = 0 ); 345 344 private: 346 345 CompoundStmt *block; … … 361 360 virtual void accept( Visitor &v ) { v.visit( this ); } 362 361 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 363 virtual void print( std::ostream &os, int indent = 0 ) const;362 virtual void print( std::ostream &os, int indent = 0 ); 364 363 private: 365 364 Declaration *decl; -
src/driver/cfa.cc
r94e0864d r94b4364 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 17:47:03201513 // Update Count : 11 912 // Last Modified On : Sat May 30 10:15:00 2015 13 // Update Count : 116 14 14 // 15 15 … … 85 85 bool CFA_flag = false; // -CFA flag 86 86 bool cpp_flag = false; // -E or -M flag, preprocessor only 87 bool std_flag = false; // -std= flag88 87 bool debugging = false; // -g flag 89 88 … … 153 152 } // if 154 153 155 // C specific arguments154 // C++ specific arguments 156 155 157 156 } else if ( arg == "-v" ) { … … 161 160 } else if ( arg == "-g" ) { 162 161 debugging = true; // symbolic debugging required 163 args[nargs] = argv[i]; // pass the argument along164 nargs += 1;165 } else if ( prefix( arg, "-std=" ) ) {166 std_flag = true; // std=XX provided167 162 args[nargs] = argv[i]; // pass the argument along 168 163 nargs += 1; … … 301 296 args[nargs] = "-Wno-deprecated"; 302 297 nargs += 1; 303 if ( ! std_flag ) { // default c99, if none specified 304 args[nargs] = "-std=c99"; 305 nargs += 1; 306 } // if 298 args[nargs] = "-std=c99"; 299 nargs += 1; 307 300 args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str(); 308 301 nargs += 1; -
src/main.cc
r94e0864d r94b4364 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 22 17:02:11201513 // Update Count : 7 312 // Last Modified On : Fri Jun 12 06:56:40 2015 13 // Update Count : 70 14 14 // 15 15 … … 58 58 bool 59 59 astp = false, 60 bresolvep = false,61 60 exprp = false, 62 61 expraltp = false, 63 62 grammarp = false, 64 63 libcfap = false, 65 nopreludep = false,66 protop = false,67 parsep = false,68 64 resolvep = false, // used in AlternativeFinder 69 65 symtabp = false, 66 parsep = false, 70 67 validp = false, 71 errorp = false, 72 codegenp = false; 73 74 enum { Ast, Bresolver, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, }; 68 preludep = true, 69 protop = false, 70 codegenp = false, 71 errorp = false; 72 73 enum { Ast, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, }; 75 74 76 75 static struct option long_opts[] = { 77 76 { "ast", no_argument, 0, Ast }, 78 { "before-resolver", no_argument, 0, Bresolver },79 77 { "expr", no_argument, 0, Expr }, 80 78 { "expralt", no_argument, 0, ExprAlt }, … … 99 97 100 98 int c; 101 while ( (c = getopt_long( argc, argv, "a befglnpqrsvyzD:", long_opts, &long_index )) != -1 ) {99 while ( (c = getopt_long( argc, argv, "aefglnpqrsvyzD:", long_opts, &long_index )) != -1 ) { 102 100 switch ( c ) { 103 101 case Ast: … … 105 103 astp = true; 106 104 break; 107 case Bresolver:108 case 'b': // print before resolver steps109 bresolvep = true;110 break;111 105 case Expr: 112 106 case 'e': // dump AST after expression analysis … … 127 121 case Nopreamble: 128 122 case 'n': // do not read preamble 129 nopreludep = true;123 preludep = false; 130 124 break; 131 125 case Prototypes: … … 184 178 185 179 // read in the builtins and the prelude 186 if ( ! nopreludep ) {// include gcc builtins180 if ( preludep ) { // include gcc builtins 187 181 FILE * builtins = fopen( CFA_LIBDIR "/builtins.cf", "r" ); 188 182 if ( builtins == NULL ) { … … 257 251 } // if 258 252 259 if ( bresolvep ) {260 printAll( translationUnit, std::cout );261 return 0;262 } // if263 264 253 OPTPRINT( "resolve" ) 265 254 ResolvExpr::resolve( translationUnit );
Note:
See TracChangeset
for help on using the changeset viewer.