Changeset d60ccbf
- Timestamp:
- Aug 12, 2015, 2:27:31 PM (10 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- f32c7f4
- Parents:
- e45215c (diff), e869d663 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 4 added
- 62 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 15 14:47:42201513 // Update Count : 17711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 27 14:40:06 2015 13 // Update Count : 218 14 14 // 15 15 … … 52 52 } 53 53 54 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { }54 CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ) { } 55 55 56 56 CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp ) 57 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {57 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) { 58 58 //output << std::string( init ); 59 59 } 60 60 61 61 CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp ) 62 : indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {62 : indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ) { 63 63 //output << std::string( init ); 64 64 } … … 91 91 // acceptAll( functionDecl->get_oldDecls(), *this ); 92 92 if ( functionDecl->get_statements() ) { 93 functionDecl->get_statements()->accept( *this );93 functionDecl->get_statements()->accept( *this ); 94 94 } // if 95 95 } … … 121 121 for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end(); i++) { 122 122 output << indent; 123 (*i)->accept( *this );123 (*i)->accept( *this ); 124 124 output << ";" << endl; 125 125 } … … 159 159 if ( obj->get_init() ) { 160 160 output << " = "; 161 obj->get_init()->accept( *this );161 obj->get_init()->accept( *this ); 162 162 } // if 163 163 output << "," << endl; … … 478 478 void CodeGenerator::visit( TypeExpr *typeExpr ) {} 479 479 480 void CodeGenerator::visit( AsmExpr *asmExpr ) { 481 if ( asmExpr->get_inout() ) { 482 output << "[ "; 483 asmExpr->get_inout()->accept( *this ); 484 output << " ] "; 485 } // if 486 asmExpr->get_constraint()->accept( *this ); 487 output << " ( "; 488 asmExpr->get_operand()->accept( *this ); 489 output << " )"; 490 } 491 480 492 //*** Statements 481 493 void CodeGenerator::visit( CompoundStmt *compoundStmt ) { … … 485 497 cur_indent += CodeGenerator::tabsize; 486 498 487 for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end(); i++ ) {499 for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end(); i++ ) { 488 500 output << indent << printLabels( (*i)->get_labels() ); 489 (*i)->accept( *this );501 (*i)->accept( *this ); 490 502 491 503 output << endl; … … 511 523 } 512 524 525 void CodeGenerator::visit( AsmStmt *asmStmt ) { 526 output << "asm "; 527 if ( asmStmt->get_voltile() ) output << "volatile "; 528 if ( ! asmStmt->get_gotolabels().empty() ) output << "goto "; 529 output << "( "; 530 if ( asmStmt->get_instruction() ) asmStmt->get_instruction()->accept( *this ); 531 output << " : "; 532 genCommaList( asmStmt->get_output().begin(), asmStmt->get_output().end() ); 533 output << " : "; 534 genCommaList( asmStmt->get_input().begin(), asmStmt->get_input().end() ); 535 output << " : "; 536 genCommaList( asmStmt->get_clobber().begin(), asmStmt->get_clobber().end() ); 537 if ( ! asmStmt->get_gotolabels().empty() ) { 538 output << " : "; 539 for ( std::list<Label>::iterator begin = asmStmt->get_gotolabels().begin();; ) { 540 output << *begin++; 541 if ( begin == asmStmt->get_gotolabels().end() ) break; 542 output << ", "; 543 } // for 544 } // if 545 output << " );" ; 546 } 547 513 548 void CodeGenerator::visit( IfStmt *ifStmt ) { 514 output << "if ( ";515 ifStmt->get_condition()->accept( *this );516 output << " ) ";517 518 ifStmt->get_thenPart()->accept( *this );549 output << "if ( "; 550 ifStmt->get_condition()->accept( *this ); 551 output << " ) "; 552 553 ifStmt->get_thenPart()->accept( *this ); 519 554 520 555 if ( ifStmt->get_elsePart() != 0) { 521 556 output << " else "; 522 ifStmt->get_elsePart()->accept( *this );557 ifStmt->get_elsePart()->accept( *this ); 523 558 } // if 524 559 } 525 560 526 561 void CodeGenerator::visit( SwitchStmt *switchStmt ) { 527 output << "switch ( " ;528 switchStmt->get_condition()->accept( *this );529 output << " ) ";562 output << "switch ( " ; 563 switchStmt->get_condition()->accept( *this ); 564 output << " ) "; 530 565 531 566 output << "{" << std::endl; … … 545 580 } else { 546 581 output << "case "; 547 caseStmt->get_condition()->accept( *this );582 caseStmt->get_condition()->accept( *this ); 548 583 } // if 549 584 output << ":\n"; … … 554 589 for ( std::list<Statement *>::iterator i = sts.begin(); i != sts.end(); i++) { 555 590 output << indent << printLabels( (*i)->get_labels() ) ; 556 (*i)->accept( *this );591 (*i)->accept( *this ); 557 592 output << endl; 558 593 } … … 598 633 else { 599 634 output << "while (" ; 600 whileStmt->get_condition()->accept( *this );635 whileStmt->get_condition()->accept( *this ); 601 636 output << ")"; 602 637 } // if … … 610 645 if ( whileStmt->get_isDoWhile() ) { 611 646 output << " while (" ; 612 whileStmt->get_condition()->accept( *this );647 whileStmt->get_condition()->accept( *this ); 613 648 output << ");"; 614 649 } // if -
src/CodeGen/CodeGenerator.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 17 11:10:58201513 // Update Count : 2 512 // Last Modified On : Wed Aug 12 14:27:14 2015 13 // Update Count : 27 14 14 // 15 15 … … 65 65 virtual void visit( TupleExpr *tupleExpr ); 66 66 virtual void visit( TypeExpr *typeExpr ); 67 virtual void visit( AsmExpr * ); 67 68 68 69 //*** Statements 69 70 virtual void visit( CompoundStmt * ); 70 71 virtual void visit( ExprStmt * ); 72 virtual void visit( AsmStmt * ); 71 73 virtual void visit( IfStmt * ); 72 74 virtual void visit( SwitchStmt * ); -
src/CodeGen/FixNames.h
re45215c rd60ccbf 20 20 21 21 namespace CodeGen { 22 /// mangles object and function names 22 23 void fixNames( std::list< Declaration* > translationUnit ); 23 24 } // namespace CodeGen -
src/CodeGen/GenType.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 08 16:08:24201513 // Update Count : 1 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 9 16:43:52 2015 13 // Update Count : 13 14 14 // 15 15 … … 93 93 os << "_Atomic "; 94 94 } // if 95 if ( qualifiers.isAttribute ) { 96 os << "__attribute(( )) "; 97 } // if 95 98 if ( dimension != 0 ) { 96 99 CodeGenerator cg( os ); 97 100 dimension->accept( cg ); 98 101 } else if ( isVarLen ) { 99 // no dimension expression on a VLA 100 // means it came in with the * token 102 // no dimension expression on a VLA means it came in with the * token 101 103 os << "*"; 102 104 } // if … … 202 204 typeString = "_Atomic " + typeString; 203 205 } // if 206 if ( type->get_isAttribute() ) { 207 typeString = "__attribute(( )) " + typeString; 208 } // if 204 209 } 205 210 } // namespace CodeGen -
src/CodeGen/Generate.h
re45215c rd60ccbf 23 23 24 24 namespace CodeGen { 25 /// Generates code 25 26 void generate( std::list< Declaration* > translationUnit, std::ostream &os, bool doIntrinsics ); 26 27 } // namespace CodeGen -
src/ControlStruct/CaseRangeMutator.h
re45215c rd60ccbf 22 22 23 23 namespace ControlStruct { 24 /// expand case ranges and turn fallthru into a null statement 24 25 class CaseRangeMutator : public Mutator { 25 26 public: -
src/ControlStruct/ChooseMutator.h
re45215c rd60ccbf 22 22 23 23 namespace ControlStruct { 24 /// transform choose statements into switch statements 24 25 class ChooseMutator : public Mutator { 25 26 public: -
src/ControlStruct/LabelFixer.cc
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jul 08 12:36:46201513 // Update Count : 1 4512 // Last Modified On : Tue Jul 28 13:32:43 2015 13 // Update Count : 156 14 14 // 15 15 … … 27 27 28 28 namespace ControlStruct { 29 LabelFixer::Entry::Entry( Statement *to, Statement *from ) : definition ( to ) {30 if ( from != 0 ) {31 UsageLoc loc; loc.stmt = from;32 usage.push_back( loc );33 }34 }35 36 LabelFixer::Entry::Entry( Statement *to, Expression *from ) : definition ( to ) {37 if ( from != 0 ) {38 UsageLoc loc; loc.expr = from;39 usage.push_back( loc );40 }41 }42 43 44 29 bool LabelFixer::Entry::insideLoop() { 45 30 return ( dynamic_cast< ForStmt * > ( definition ) || 46 31 dynamic_cast< WhileStmt * > ( definition ) ); 47 }48 49 void LabelFixer::Entry::UsageLoc::accept( Visitor & visitor ) {50 if ( dynamic_cast< Statement * >( stmt ) ) {51 stmt->accept( visitor );52 } else {53 expr->accept( visitor );54 }55 32 } 56 33 … … 77 54 // prune to at most one label definition for each statement 78 55 void LabelFixer::visit( Statement *stmt ) { 79 currentStatement = stmt;80 56 std::list< Label > &labels = stmt->get_labels(); 81 57 … … 83 59 // only remember one label for each statement 84 60 Label current = setLabelsDef( labels, stmt ); 85 labels.clear();86 labels.push_front( current );87 61 } // if 88 62 } … … 130 104 } else { 131 105 // used previously, but undefined until now -> link with this entry 132 Entry * oldEntry = labelTable[ *i ]; 133 e->add_uses( *oldEntry ); 106 delete labelTable[ *i ]; 134 107 labelTable[ *i ] = e; 135 108 } // if … … 141 114 } 142 115 143 // Remember all uses of a label.116 // A label was used, add it ot the table if it isn't already there 144 117 template< typename UsageNode > 145 118 void LabelFixer::setLabelsUsg( Label orgValue, UsageNode *use ) { 146 119 assert( use != 0 ); 147 120 148 if ( labelTable.find( orgValue ) != labelTable.end() ) { 149 // the label has been defined or used before 150 labelTable[ orgValue ]->add_use( use ); 151 } else { 152 labelTable[ orgValue ] = new Entry( 0, use ); 121 // add label with an unknown origin 122 if ( labelTable.find( orgValue ) == labelTable.end() ) { 123 labelTable[ orgValue ] = new Entry( 0 ); 153 124 } 154 125 } 155 126 156 class LabelGetter : public Visitor { 157 public: 158 LabelGetter( Label &label ) : label( label ) {} 159 160 virtual void visit( BranchStmt * branchStmt ) { 161 label = branchStmt->get_target(); 162 } 163 164 virtual void visit( UntypedExpr * untyped ) { 165 NameExpr * name = dynamic_cast< NameExpr * >( untyped->get_function() ); 166 assert( name ); 167 assert( name->get_name() == "&&" ); 168 NameExpr * arg = dynamic_cast< NameExpr * >( untyped->get_args().front() ); 169 assert( arg ); 170 label = arg->get_name(); 171 } 172 173 private: 174 Label &label; 175 }; 176 177 class LabelSetter : public Visitor { 178 public: 179 LabelSetter( Label label ) : label( label ) {} 180 181 virtual void visit( BranchStmt * branchStmt ) { 182 branchStmt->set_target( label ); 183 } 184 185 virtual void visit( UntypedExpr * untyped ) { 186 NameExpr * name = dynamic_cast< NameExpr * >( untyped->get_function() ); 187 assert( name ); 188 assert( name->get_name() == "&&" ); 189 NameExpr * arg = dynamic_cast< NameExpr * >( untyped->get_args().front() ); 190 assert( arg ); 191 arg->set_name( label ); 192 } 193 194 private: 195 Label label; 196 }; 197 198 // Ultimately builds a table that maps a label to its defining statement. 199 // In the process, 127 // Builds a table that maps a label to its defining statement. 200 128 std::map<Label, Statement * > *LabelFixer::resolveJumps() throw ( SemanticError ) { 201 std::map< Statement *, Entry * > def_us; 202 203 // combine the entries for all labels that target the same location 204 for ( std::map< Label, Entry *>::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) { 205 Entry *e = i->second; 206 207 if ( def_us.find ( e->get_definition() ) == def_us.end() ) { 208 def_us[ e->get_definition() ] = e; 209 } else if ( e->used() ) { 210 def_us[ e->get_definition() ]->add_uses( *e ); 129 std::map< Label, Statement * > *ret = new std::map< Label, Statement * >(); 130 for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) { 131 if ( ! i->second->defined() ) { 132 throw SemanticError( "Use of undefined label: " + i->first ); 211 133 } 212 } 213 214 // create a unique label for each target location. 215 for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); ++i ) { 216 Statement *to = (*i).first; 217 Entry * entry = (*i).second; 218 std::list< Entry::UsageLoc > &from = entry->get_uses(); 219 220 // no label definition found 221 if ( to == 0 ) { 222 Label undef; 223 LabelGetter getLabel( undef ); 224 from.back().accept( getLabel ); 225 // Label undef = getLabel( from.back()->get_target() ); 226 throw SemanticError ( "'" + undef + "' label not defined"); 227 } // if 228 229 // generate a new label, and attach it to its defining statement as the only label on that statement 230 Label finalLabel = generator->newLabel( to->get_labels().back() ); 231 entry->set_label( finalLabel ); 232 233 to->get_labels().clear(); 234 to->get_labels().push_back( finalLabel ); 235 236 // redirect each of the source branch statements to the new target label 237 for ( std::list< Entry::UsageLoc >::iterator j = from.begin(); j != from.end(); ++j ) { 238 LabelSetter setLabel( finalLabel ); 239 (*j).accept( setLabel ); 240 // setLabel( *j, finalLabel ); 241 242 // BranchStmt *jump = *j; 243 // assert( jump != 0 ); 244 // jump->set_target( finalLabel ); 245 } // for 246 } // for 247 248 // create a table where each label maps to its defining statement 249 std::map< Label, Statement * > *ret = new std::map< Label, Statement * >(); 250 for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); ++i ) { 251 (*ret)[ (*i).second->get_label() ] = (*i).first; 134 (*ret)[ i->first ] = i->second->get_definition(); 252 135 } 253 136 -
src/ControlStruct/LabelFixer.h
re45215c rd60ccbf 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 : Mon Jun 29 17:24:39201513 // Update Count : 2911 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Jul 28 13:09:02 2015 13 // Update Count : 31 14 14 // 15 15 … … 25 25 26 26 namespace ControlStruct { 27 /// normalizes label definitions and generates multi-level exit labels 27 28 class LabelFixer : public Visitor { 28 29 typedef Visitor Parent; … … 62 63 class Entry { 63 64 public: 64 union UsageLoc {65 Statement * stmt;66 Expression * expr;67 68 void accept( Visitor &visitor );69 };70 71 65 Entry( Statement *to ) : definition( to ) {} 72 Entry( Statement *to, Statement *from );73 Entry( Statement *to, Expression *from );74 bool used() { return ( usage.empty() ); }75 66 bool defined() { return ( definition != 0 ); } 76 67 bool insideLoop(); … … 82 73 void set_definition( Statement *def ) { definition = def; } 83 74 84 std::list< UsageLoc > &get_uses() { return usage; }85 void add_use( Statement *use ) {86 UsageLoc loc;87 loc.stmt = use;88 usage.push_back( loc );89 }90 void add_use( Expression *use ) {91 UsageLoc loc;92 loc.expr = use;93 usage.push_back( loc );94 }95 96 void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), other.usage.end() ); }97 75 private: 98 76 Label label; 99 77 Statement *definition; 100 std::list<UsageLoc> usage;101 78 }; 102 79 103 80 std::map < Label, Entry *> labelTable; 104 81 LabelGenerator *generator; 105 Statement * currentStatement;106 82 }; 107 83 } // namespace ControlStruct -
src/ControlStruct/MLEMutator.cc
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Sat Jun 27 10:56:14 2015 13 // Update Count : 174 14 // 12 // Last Modified On : Mon Jul 20 13:58:35 2015 13 // Update Count : 176 14 // 15 16 // NOTE: There are two known subtle differences from the code that uC++ 17 // generates for the same input 18 // -CFA puts the break label inside at the end of a switch, uC++ puts it after 19 // -CFA puts the break label after a block, uC++ puts it inside at the end 20 // we don't yet know if these differences are important, but if they are then 21 // the fix would go in this file, since this is where these labels are generated. 15 22 16 23 #include <cassert> -
src/ControlStruct/Mutate.h
re45215c rd60ccbf 23 23 24 24 namespace ControlStruct { 25 /// Desugars Cforall control structures 25 26 void mutate( std::list< Declaration* > translationUnit ); 26 27 } // namespace ControlStruct -
src/GenPoly/Box.cc
re45215c rd60ccbf 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:19:07201513 // Update Count : 1012 // Last Modified On : Tue Aug 11 16:22:35 2015 13 // Update Count : 89 14 14 // 15 15 … … 77 77 Expression *handleIntrinsics( ApplicationExpr *appExpr ); 78 78 ObjectDecl *makeTemporary( Type *type ); 79 79 80 typedef std::map< std::string, FunctionDecl *> AdapterMap; 80 81 std::map< std::string, DeclarationWithType *> assignOps; 81 typedef std::map< std::string, FunctionDecl *> AdapterMap;82 82 std::stack< AdapterMap > adapters; 83 83 DeclarationWithType *retval; … … 170 170 } 171 171 172 bool isPolyRet( FunctionType *function, const TyVarMap &otherTyVars ) { 173 std::string dummyString; 174 return isPolyRet( function, dummyString, otherTyVars ); 175 } 176 172 177 Pass1::Pass1() 173 178 : useRetval( false ), tempNamer( "_temp" ) { … … 204 209 } 205 210 206 DeclarationWithType * 207 Pass1::mutate( FunctionDecl *functionDecl ) { 211 DeclarationWithType *Pass1::mutate( FunctionDecl *functionDecl ) { 208 212 if ( functionDecl->get_statements() ) { 209 213 TyVarMap oldtyVars = scopeTyVars; … … 527 531 } 528 532 529 void Pass1::passAdapters( ApplicationExpr *appExpr, FunctionType *functionType, const TyVarMap &exprTyVars ) { 533 void Pass1::passAdapters( ApplicationExpr * appExpr, FunctionType * functionType, const TyVarMap & exprTyVars ) { 534 // collect a list of function types passed as parameters or implicit parameters (assertions) 530 535 std::list< DeclarationWithType *> ¶mList = functionType->get_parameters(); 531 536 std::list< FunctionType *> functions; … … 538 543 findFunction( (*arg)->get_type(), functions, exprTyVars, needsAdapter ); 539 544 } // for 545 546 // parameter function types for which an appropriate adapter has been generated. 547 // we cannot use the types after applying substitutions, since two different 548 // parameter types may be unified to the same type 540 549 std::set< std::string > adaptersDone; 550 541 551 for ( std::list< FunctionType *>::iterator funType = functions.begin(); funType != functions.end(); ++funType ) { 552 FunctionType *originalFunction = (*funType)->clone(); 542 553 FunctionType *realFunction = (*funType)->clone(); 543 assert( env );544 env->apply( realFunction );545 546 554 std::string mangleName = SymTab::Mangler::mangle( realFunction ); 555 556 // only attempt to create an adapter or pass one as a parameter if we haven't 557 // already done so for this pre-substitution parameter function type. 547 558 if ( adaptersDone.find( mangleName ) == adaptersDone.end() ) { 548 AdapterMap & adapters = Pass1::adapters.top(); 549 AdapterMap::iterator adapter = adapters.find( mangleName ); 559 std::string mangleName = SymTab::Mangler::mangle( realFunction ); 560 adaptersDone.insert( adaptersDone.begin(), mangleName ); 561 562 // apply substitution to type variables to figure out what the 563 // adapter's type should look like 564 assert( env ); 565 env->apply( realFunction ); 566 mangleName = SymTab::Mangler::mangle( realFunction ); 550 567 551 568 if ( needsAdapter( realFunction, exprTyVars, true ) ) { … … 554 571 // create a new adapter. 555 572 appExpr->get_args().push_front( new NameExpr( makeAdapterName ( mangleName ) ) ); 556 continue; 557 } else if ( adapter == adapters.end() ) { 558 FunctionDecl *newAdapter = makeAdapter( *funType, realFunction, mangleName, exprTyVars ); 559 adapter = adapters.insert( adapters.begin(), std::pair< std::string, FunctionDecl *>( mangleName, newAdapter ) ); 560 stmtsToAdd.push_back( new DeclStmt( noLabels, newAdapter ) ); 573 } else { 574 if ( isPolyRet( originalFunction, exprTyVars ) ) { 575 // if the return type involved polymorphic types, then 576 // the adapter will need to take those polymorphic types 577 // as pointers. Therefore, there can be two different 578 // functions with the same mangled name, so we need two adapter map 579 // stacks and also we need the mangled names to be different. 580 mangleName += "polyret_"; 581 } 582 583 AdapterMap & adapters = Pass1::adapters.top(); 584 AdapterMap::iterator adapter = adapters.find( mangleName ); 585 if ( adapter == adapters.end() ) { 586 // adapter has not been created yet in the current scope, so define it 587 FunctionDecl *newAdapter = makeAdapter( *funType, realFunction, mangleName, exprTyVars ); 588 adapter = adapters.insert( adapters.begin(), std::pair< std::string, FunctionDecl *>( mangleName, newAdapter ) ); 589 stmtsToAdd.push_back( new DeclStmt( noLabels, newAdapter ) ); 590 } // if 591 assert( adapter != adapters.end() ); 592 593 // add the appropriate adapter as a parameter 594 appExpr->get_args().push_front( new VariableExpr( adapter->second ) ); 561 595 } // if 562 assert( adapter != adapters.end() );563 appExpr->get_args().push_front( new VariableExpr( adapter->second ) );564 // appExpr->get_args().push_front( new NameExpr( makeAdapterName ( mangleName ) ) );565 adaptersDone.insert( adaptersDone.begin(), mangleName );566 596 } // if 567 597 } // for … … 881 911 882 912 void Pass1::doBeginScope() { 913 // actually, maybe this could (should?) push 914 // a copy of the current map 883 915 adapters.push(AdapterMap()); 884 916 } … … 1052 1084 if ( ObjectDecl *objectDecl = dynamic_cast< ObjectDecl *>( declStmt->get_decl() ) ) { 1053 1085 if ( isPolyVal( objectDecl->get_type(), scopeTyVars ) ) { 1086 // change initialization of a polymorphic value object 1087 // to allocate storage with alloca 1054 1088 TypeInstType *typeInst = dynamic_cast< TypeInstType *>( objectDecl->get_type() ); 1055 1089 assert( typeInst ); 1056 1090 UntypedExpr *alloc = new UntypedExpr( new NameExpr( "__builtin_alloca" ) ); 1057 1091 alloc->get_args().push_back( new NameExpr( typeInst->get_name() ) ); 1058 UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) ); 1059 assign->get_args().push_back( new VariableExpr( objectDecl ) ); 1060 assign->get_args().push_back( alloc ); 1061 stmtsToAddAfter.push_back( new ExprStmt( noLabels, assign ) ); 1092 1093 delete objectDecl->get_init(); 1094 1095 std::list<Expression*> designators; 1096 objectDecl->set_init( new SingleInit( alloc, designators ) ); 1062 1097 } 1063 1098 } -
src/GenPoly/Box.h
re45215c rd60ccbf 21 21 22 22 namespace GenPoly { 23 /// boxes polymorphic function calls 23 24 void box( std::list< Declaration* >& translationUnit ); 24 25 } // namespace GenPoly -
src/GenPoly/CopyParams.h
re45215c rd60ccbf 20 20 21 21 namespace GenPoly { 22 /// Clones by-value parameters which have been passed by-reference for polymorphism 22 23 void copyParams( std::list< Declaration* > &translationUnit ); 23 24 } // namespace GenPoly -
src/GenPoly/Lvalue.h
re45215c rd60ccbf 22 22 23 23 namespace GenPoly { 24 /// replaces return type of `lvalue T` with `T*`, along with appropriate address-of and dereference operators 24 25 void convertLvalue( std::list< Declaration* >& translationUnit ); 25 26 } // namespace GenPoly -
src/GenPoly/Specialize.h
re45215c rd60ccbf 22 22 23 23 namespace GenPoly { 24 /// generates thunks where needed 24 25 void convertSpecializations( std::list< Declaration* >& translationUnit ); 25 26 } // namespace GenPoly -
src/InitTweak/RemoveInit.h
re45215c rd60ccbf 25 25 26 26 namespace InitTweak { 27 /// Adds assignment statements for polymorphic type initializers 27 28 void tweak( std::list< Declaration * > translationUnit ); 28 29 -
src/Parser/DeclarationNode.cc
re45215c rd60ccbf 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 12:34:05 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 08 16:40:37201513 // Update Count : 12 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 14 14:46:32 2015 13 // Update Count : 126 14 14 // 15 15 … … 472 472 if ( o->get_link() ) { 473 473 set_link( o->get_link()->clone() ); 474 } 475 474 } // if 476 475 } // if 477 476 delete o; -
src/Parser/ExpressionNode.cc
re45215c rd60ccbf 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:20:00201513 // Update Count : 15812 // Last Modified On : Wed Aug 12 13:51:11 2015 13 // Update Count : 254 14 14 // 15 15 … … 32 32 ExpressionNode::ExpressionNode() : ParseNode(), argName( 0 ) {} 33 33 34 ExpressionNode::ExpressionNode( const string *name _ ) : ParseNode( name_), argName( 0 ) {}34 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ), argName( 0 ) {} 35 35 36 36 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) { … … 42 42 } 43 43 44 ExpressionNode * ExpressionNode::set_a sArgName( const std::string *aName ) {44 ExpressionNode * ExpressionNode::set_argName( const std::string *aName ) { 45 45 argName = new VarRefNode( aName ); 46 46 return this; 47 47 } 48 48 49 ExpressionNode * ExpressionNode::set_a sArgName( ExpressionNode *aDesignator ) {49 ExpressionNode * ExpressionNode::set_argName( ExpressionNode *aDesignator ) { 50 50 argName = aDesignator; 51 51 return this; … … 210 210 assert( type == String ); 211 211 212 // "abc" "def" "ghi" => "abcdefghi", soremove new text from quotes and insert before last quote in old string.212 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 213 213 value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) ); 214 214 … … 284 284 os << "Variable: " << get_name(); 285 285 os << endl; 286 } 287 288 //############################################################################## 289 290 DesignatorNode::DesignatorNode( ExpressionNode *expr, bool isArrayIndex ) : isArrayIndex( isArrayIndex ) { 291 set_argName( expr ); 292 assert( get_argName() ); 293 294 if ( ! isArrayIndex ) { 295 if ( VarRefNode * var = dynamic_cast< VarRefNode * >( expr ) ) { 296 297 stringstream ss( var->get_name() ); 298 double value; 299 if ( ss >> value ) { 300 // this is a floating point constant. It MUST be 301 // ".0" or ".1", otherwise the program is invalid 302 if ( ! (var->get_name() == ".0" || var->get_name() == ".1") ) { 303 throw SemanticError( "invalid designator name: " + var->get_name() ); 304 } // if 305 var->set_name( var->get_name().substr(1) ); 306 } // if 307 } // if 308 } // if 309 } 310 311 DesignatorNode::DesignatorNode( const DesignatorNode &other ) : ExpressionNode( other ), isArrayIndex( other.isArrayIndex ) { 312 } 313 314 class DesignatorFixer : public Mutator { 315 public: 316 virtual Expression* mutate( NameExpr *nameExpr ) { 317 if ( nameExpr->get_name() == "0" || nameExpr->get_name() == "1" ) { 318 Constant val( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nameExpr->get_name() ); 319 delete nameExpr; 320 return new ConstantExpr( val ); 321 } 322 return nameExpr; 323 } 324 }; 325 326 Expression *DesignatorNode::build() const { 327 Expression * ret = get_argName()->build(); 328 329 if ( isArrayIndex ) { 330 // need to traverse entire structure and change any instances of 0 or 1 to 331 // ConstantExpr 332 DesignatorFixer fixer; 333 ret = ret->acceptMutator( fixer ); 334 } // if 335 336 return ret; 337 } 338 339 void DesignatorNode::printOneLine( std::ostream &os, int indent ) const { 340 if ( get_argName() ) { 341 if ( isArrayIndex ) { 342 os << "["; 343 get_argName()->printOneLine( os, indent ); 344 os << "]"; 345 } else { 346 os << "."; 347 get_argName()->printOneLine( os, indent ); 348 } 349 } // if 350 } 351 352 void DesignatorNode::print( std::ostream &os, int indent ) const { 353 if ( get_argName() ) { 354 if ( isArrayIndex ) { 355 os << "["; 356 get_argName()->print( os, indent ); 357 os << "]"; 358 } else { 359 os << "."; 360 get_argName()->print( os, indent ); 361 } 362 } // if 286 363 } 287 364 … … 330 407 //############################################################################## 331 408 332 CompositeExprNode::CompositeExprNode( void) : ExpressionNode(), function( 0 ), arguments( 0 ) {409 CompositeExprNode::CompositeExprNode() : ExpressionNode(), function( 0 ), arguments( 0 ) { 333 410 } 334 411 … … 541 618 { 542 619 assert( args.size() == 3); 543 std::list< Expression * >::const_iterator i = args.begin();620 std::list< Expression * >::const_iterator i = args.begin(); 544 621 Expression *arg1 = notZeroExpr( *i++ ); 545 622 Expression *arg2 = *i++; … … 552 629 { 553 630 assert( args.size() == 2); 554 std::list< Expression * >::const_iterator i = args.begin();631 std::list< Expression * >::const_iterator i = args.begin(); 555 632 Expression *ret = *i++; 556 633 while ( i != args.end() ) { … … 617 694 set_args( arg ); 618 695 } 696 697 //############################################################################## 698 699 Expression *AsmExprNode::build() const { 700 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)constraint->build(), operand->build() ); 701 } 702 703 void AsmExprNode::print( std::ostream &os, int indent ) const { 704 os << string( indent, ' ' ) << "Assembler Expression:" << endl; 705 if ( inout ) { 706 os << string( indent, ' ' ) << "inout: " << std::endl; 707 inout->print( os, indent + 2 ); 708 } // if 709 if ( constraint ) { 710 os << string( indent, ' ' ) << "constraint: " << std::endl; 711 constraint->print( os, indent + 2 ); 712 } // if 713 if ( operand ) { 714 os << string( indent, ' ' ) << "operand: " << std::endl; 715 operand->print( os, indent + 2 ); 716 } // if 717 } 718 719 void AsmExprNode::printOneLine( std::ostream &os, int indent ) const { 720 printDesignation( os ); 721 os << "( "; 722 if ( inout ) inout->printOneLine( os, indent + 2 ); 723 os << ", "; 724 if ( constraint ) constraint->printOneLine( os, indent + 2 ); 725 os << ", "; 726 if ( operand ) operand->printOneLine( os, indent + 2 ); 727 os << ") "; 728 } 729 730 //############################################################################## 731 732 void LabelNode::print( std::ostream &os, int indent ) const {} 733 734 void LabelNode::printOneLine( std::ostream &os, int indent ) const {} 619 735 620 736 //############################################################################## -
src/Parser/ParseNode.cc
re45215c rd60ccbf 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jul 08 14:46:45201513 // Update Count : 2512 // Last Modified On : Wed Aug 12 13:26:00 2015 13 // Update Count : 36 14 14 // 15 15 … … 20 20 int ParseNode::indent_by = 4; 21 21 22 ParseNode::ParseNode() : name( 0 ), next( 0 ) {}; 23 ParseNode::ParseNode( const string *name_ ) : name( name_ ), next( 0 ) {} 22 ParseNode::ParseNode() : next( 0 ) {}; 23 ParseNode::ParseNode( const string *name ) : name( *name ), next( 0 ) { delete name; } 24 ParseNode::ParseNode( const string &name ) : name( name ), next( 0 ) { } 24 25 25 26 ParseNode::~ParseNode() { -
src/Parser/ParseNode.h
re45215c rd60ccbf 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:28:16 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu Jul 2 17:57:05201513 // Update Count : 8411 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 13:27:11 2015 13 // Update Count : 172 14 14 // 15 15 … … 40 40 ParseNode(); 41 41 ParseNode( const std::string * ); 42 ParseNode( const std::string & ); // for copy constructing subclasses 42 43 virtual ~ParseNode(); 43 44 … … 49 50 virtual ParseNode *clone() const { return 0; }; 50 51 51 const std::string &get_name() const { return *name; } 52 const std::string &get_name() const { return name; } 53 void set_name( const std::string &newValue ) { name = newValue; } 54 52 55 virtual void print( std::ostream &, int indent = 0 ) const; 53 56 virtual void printList( std::ostream &, int indent = 0 ) const; … … 55 58 ParseNode &operator,( ParseNode &); 56 59 protected: 57 const std::string *name;60 std::string name; 58 61 ParseNode *next; 59 62 static int indent_by; … … 67 70 ExpressionNode( const std::string * ); 68 71 ExpressionNode( const ExpressionNode &other ); 69 virtual ~ExpressionNode() { } // cannot delete asArgName because it might be referenced elsewhere72 virtual ~ExpressionNode() { delete argName; } // cannot delete argName because it might be referenced elsewhere 70 73 71 74 virtual ExpressionNode *clone() const = 0; … … 74 77 75 78 ExpressionNode *get_argName() const { return argName; } 76 ExpressionNode *set_a sArgName( const std::string *aName );77 ExpressionNode *set_a sArgName( ExpressionNode *aDesignator );79 ExpressionNode *set_argName( const std::string *aName ); 80 ExpressionNode *set_argName( ExpressionNode *aDesignator ); 78 81 79 82 virtual void print( std::ostream &, int indent = 0) const = 0; … … 105 108 106 109 ConstantNode( Type, std::string * ); 110 ~ConstantNode() { delete &value; } 107 111 108 112 virtual ConstantNode *clone() const { return new ConstantNode( *this ); } … … 135 139 private: 136 140 bool isLabel; 141 }; 142 143 class DesignatorNode : public ExpressionNode { 144 public: 145 DesignatorNode( ExpressionNode *expr, bool isArrayIndex = false ); 146 DesignatorNode( const DesignatorNode &other ); 147 148 virtual Expression *build() const ; 149 virtual DesignatorNode *clone() const { return new DesignatorNode( *this ); } 150 151 virtual void print( std::ostream &, int indent = 0 ) const; 152 virtual void printOneLine( std::ostream &, int indent = 0 ) const; 153 private: 154 bool isArrayIndex; 137 155 }; 138 156 … … 183 201 }; 184 202 185 186 203 class CompositeExprNode : public ExpressionNode { 187 204 public: … … 211 228 }; 212 229 230 class AsmExprNode : public ExpressionNode { 231 public: 232 AsmExprNode(); 233 AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 234 virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; } 235 236 virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); } 237 virtual Expression *build() const; 238 239 virtual void print( std::ostream &, int indent = 0) const; 240 virtual void printOneLine( std::ostream &, int indent = 0) const; 241 242 ExpressionNode *get_inout() const { return inout; }; 243 void set_inout( ExpressionNode *newValue ) { inout = newValue; } 244 245 ConstantNode *get_constraint() const { return constraint; }; 246 void set_constraint( ConstantNode *newValue ) { constraint = newValue; } 247 248 ExpressionNode *get_operand() const { return operand; }; 249 void set_operand( ExpressionNode *newValue ) { operand = newValue; } 250 private: 251 ExpressionNode *inout; 252 ConstantNode *constraint; 253 ExpressionNode *operand; 254 }; 255 256 class LabelNode : public ExpressionNode { 257 public: 258 virtual Expression *build() const { return NULL; } 259 virtual LabelNode *clone() const { return new LabelNode( *this ); } 260 261 virtual void print( std::ostream &, int indent = 0) const; 262 virtual void printOneLine( std::ostream &, int indent = 0) const; 263 264 const std::list< std::string > &get_labels() const { return labels; }; 265 void append_label( std::string *label ) { labels.push_back( *label ); delete label; } 266 private: 267 std::list< std::string > labels; 268 }; 269 213 270 class CommaExprNode : public CompositeExprNode { 214 271 public: … … 265 322 class DeclarationNode : public ParseNode { 266 323 public: 267 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic , Attribute};324 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic }; 268 325 enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, }; 269 326 enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary }; … … 279 336 static const char *typeClassName[]; 280 337 281 static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, 282 StatementNode *body, bool newStyle = false ); 338 static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false ); 283 339 static DeclarationNode *newQualifier( Qualifier ); 284 340 static DeclarationNode *newStorageClass( StorageClass ); … … 352 408 std::string name; 353 409 std::list< StorageClass > storageClasses; 410 std::list< std::string > attributes; 354 411 ExpressionNode *bitfieldWidth; 355 412 InitializerNode *initializer; … … 358 415 359 416 static UniqueName anonymous; 360 }; 417 }; // DeclarationNode 361 418 362 419 class StatementNode : public ParseNode { … … 370 427 371 428 StatementNode(); 372 StatementNode( const std::string * );373 StatementNode( Type , ExpressionNode *e = 0, StatementNode *s= 0 );374 StatementNode( Type , std::string *target );429 StatementNode( const std::string *name ); 430 StatementNode( Type t, ExpressionNode *control = 0, StatementNode *block = 0 ); 431 StatementNode( Type t, std::string *target ); 375 432 StatementNode( DeclarationNode *decl ); 376 433 377 378 434 ~StatementNode(); 379 435 380 436 static StatementNode *newCatchStmt( DeclarationNode *d = 0, StatementNode *s = 0, bool catchRestP = false ); 381 437 382 void set_control( ExpressionNode * ); 383 StatementNode * set_block( StatementNode * ); 384 385 ExpressionNode *get_control() const ; 386 StatementNode *get_block() const; 387 StatementNode::Type get_type() const; 438 StatementNode *set_block( StatementNode *b ) { block = b; return this; } 439 StatementNode *get_block() const { return block; } 440 441 void set_control( ExpressionNode *c ) { control = c; } 442 ExpressionNode *get_control() const { return control; } 443 444 StatementNode::Type get_type() const { return type; } 388 445 389 446 StatementNode *add_label( const std::string * ); 390 std::list<std::string> *get_labels() const;447 const std::list<std::string> &get_labels() const { return labels; } 391 448 392 449 void addDeclaration( DeclarationNode *newDecl ) { decl = newDecl; } … … 400 457 401 458 void print( std::ostream &, int indent = 0) const; 402 403 459 virtual StatementNode *clone() const; 404 405 460 virtual Statement *build() const; 406 461 private: … … 409 464 ExpressionNode *control; 410 465 StatementNode *block; 411 std::list<std::string> *labels;466 std::list<std::string> labels; 412 467 std::string *target; // target label for jump statements 413 468 DeclarationNode *decl; 414 415 469 bool isCatchRest; 416 }; 470 }; // StatementNode 417 471 418 472 class CompoundStmtNode : public StatementNode { … … 426 480 427 481 void print( std::ostream &, int indent = 0 ) const; 428 429 482 virtual Statement *build() const; 430 483 private: … … 432 485 }; 433 486 487 class AsmStmtNode : public StatementNode { 488 public: 489 AsmStmtNode( Type, bool voltile, ConstantNode *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ConstantNode *clobber = 0, LabelNode *gotolabels = 0 ); 490 ~AsmStmtNode(); 491 492 void print( std::ostream &, int indent = 0 ) const; 493 Statement *build() const; 494 private: 495 bool voltile; 496 ConstantNode *instruction; 497 ExpressionNode *output, *input; 498 ConstantNode *clobber; 499 std::list<std::string> gotolabels; 500 }; 501 434 502 class NullStmtNode : public CompoundStmtNode { 435 503 public: 436 504 Statement *build() const; 437 void print( std::ostream &, int indent = 0 ) const;505 void print( std::ostream &, int indent = 0 ) const; 438 506 }; 439 507 … … 461 529 InitializerNode *kids; 462 530 }; 463 464 465 531 466 532 template< typename SynTreeType, typename NodeType > -
src/Parser/StatementNode.cc
re45215c rd60ccbf 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 14:59:41 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T ue Jul 14 12:20:44201513 // Update Count : 2111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 30 14:39:39 2015 13 // Update Count : 130 14 14 // 15 15 … … 36 36 StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {} 37 37 38 StatementNode::StatementNode( const string *name _ ) : ParseNode( name_), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}38 StatementNode::StatementNode( const string *name ) : ParseNode( name ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {} 39 39 40 40 StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), isCatchRest ( false ) { … … 60 60 } 61 61 62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block_ ) : 63 type( t ), control( ctrl_label ), block( block_), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) { 64 if ( t == Default ) 65 control = 0; 62 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) { 63 this->control = ( t == Default ) ? 0 : control; 66 64 } 67 65 68 StatementNode::StatementNode( Type t, string *_target ) : 69 type( t ), control( 0 ), block( 0 ), labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {} 66 StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), isCatchRest ( false ) {} 70 67 71 68 StatementNode::~StatementNode() { 72 69 delete control; 73 70 delete block; 74 delete labels;75 71 delete target; 76 72 delete decl; … … 103 99 } 104 100 105 void StatementNode::set_control( ExpressionNode *c ) {106 control = c;107 }108 109 StatementNode * StatementNode::set_block( StatementNode *b ) {110 block = b;111 112 return this;113 }114 115 ExpressionNode *StatementNode::get_control() const {116 return control;117 }118 119 StatementNode *StatementNode::get_block() const {120 return block;121 }122 123 StatementNode::Type StatementNode::get_type() const {124 return type;125 }126 127 101 StatementNode *StatementNode::add_label( const std::string *l ) { 128 102 if ( l != 0 ) { 129 if ( labels == 0 ) 130 labels = new std::list<std::string>(); 131 132 labels->push_front(*l ); 103 labels.push_front( *l ); 133 104 delete l; 134 105 } // if 135 106 return this; 136 107 } 137 138 std::list<std::string> *StatementNode::get_labels() const { return labels; }139 108 140 109 StatementNode *StatementNode::add_controlexp( ExpressionNode *e ) { 141 110 if ( control && e ) 142 111 control->add_to_list( e ); // xxx - check this 143 144 112 return this; 145 113 } … … 170 138 171 139 void StatementNode::print( std::ostream &os, int indent ) const { 172 if ( labels != 0 ) { 173 if ( ! labels->empty()) { 174 std::list<std::string>::const_iterator i; 175 176 os << string( indent, ' ' ); 177 for ( i = labels->begin(); i != labels->end(); i++ ) 178 os << *i << ":"; 179 os << endl; 180 } // if 140 if ( ! labels.empty() ) { 141 std::list<std::string>::const_iterator i; 142 143 os << string( indent, ' ' ); 144 for ( i = labels.begin(); i != labels.end(); i++ ) 145 os << *i << ":"; 146 os << endl; 181 147 } // if 182 148 … … 198 164 if ( decl ) { 199 165 os << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl; 200 decl->print( os, indent + 2 *ParseNode::indent_by );166 decl->print( os, indent + 2 * ParseNode::indent_by ); 201 167 } else if ( isCatchRest ) { 202 168 os << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl; … … 206 172 } // if 207 173 if ( control ) { 208 os << string( indent + ParseNode::indent_by, ' ' ) << " Expression: " << endl;209 control->printList( os, indent + 2 *ParseNode::indent_by );174 os << string( indent + ParseNode::indent_by, ' ' ) << "Control: " << endl; 175 control->printList( os, indent + 2 * ParseNode::indent_by ); 210 176 } // if 211 177 if ( block ) { 212 178 os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl; 213 block->printList( os, indent + 2 *ParseNode::indent_by );179 block->printList( os, indent + 2 * ParseNode::indent_by ); 214 180 } // if 215 181 if ( target ) { … … 225 191 std::list<Label> labs; 226 192 227 if ( labels != 0) {193 if ( ! labels.empty() ) { 228 194 std::back_insert_iterator< std::list<Label> > lab_it( labs ); 229 copy( labels ->begin(), labels->end(), lab_it );195 copy( labels.begin(), labels.end(), lab_it ); 230 196 } // if 231 197 … … 274 240 if ( ctl->get_init() != 0 ) { 275 241 buildList( ctl->get_init(), init ); 276 } 242 } // if 277 243 278 244 Expression *cond = 0; … … 341 307 return new FinallyStmt( labs, block ); 342 308 } 309 case Asm: 310 assert( false ); 343 311 default: 344 312 // shouldn't be here … … 346 314 } // switch 347 315 } 316 348 317 349 318 CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {} … … 378 347 Statement *CompoundStmtNode::build() const { 379 348 std::list<Label> labs; 380 std::list<std::string> *labels = get_labels();381 382 if ( labels != 0) {349 const std::list<std::string> &labels = get_labels(); 350 351 if ( ! labels.empty() ) { 383 352 std::back_insert_iterator< std::list<Label> > lab_it( labs ); 384 copy( labels ->begin(), labels->end(), lab_it );353 copy( labels.begin(), labels.end(), lab_it ); 385 354 } // if 386 355 … … 389 358 return cs; 390 359 } 360 361 362 AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantNode *instruction, ExpressionNode *output, ExpressionNode *input, ConstantNode *clobber, LabelNode *gotolabels ) : 363 StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) { 364 if ( gotolabels ) { 365 this->gotolabels = gotolabels->get_labels(); 366 delete gotolabels; 367 } // if 368 } 369 370 AsmStmtNode::~AsmStmtNode() { 371 delete instruction; delete output; delete input; delete clobber; 372 } 373 374 void AsmStmtNode::print( std::ostream &os, int indent ) const { 375 StatementNode::print( os, indent ); // print statement labels 376 os << string( indent + ParseNode::indent_by, ' ' ) << "volatile:" << voltile << endl; 377 if ( instruction ) { 378 os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl; 379 instruction->printList( os, indent + 2 * ParseNode::indent_by ); 380 } // if 381 if ( output ) { 382 os << string( indent + ParseNode::indent_by, ' ' ) << "Output:" << endl; 383 output->printList( os, indent + 2 * ParseNode::indent_by ); 384 } // if 385 if ( input ) { 386 os << string( indent + ParseNode::indent_by, ' ' ) << "Input:" << endl; 387 input->printList( os, indent + 2 * ParseNode::indent_by ); 388 } // if 389 if ( clobber ) { 390 os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl; 391 clobber->printList( os, indent + 2 * ParseNode::indent_by ); 392 } // if 393 if ( ! gotolabels.empty() ) { 394 os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl; 395 os << string( indent + 2 * ParseNode::indent_by, ' ' ); 396 for ( std::list<std::string>::const_iterator i = gotolabels.begin();; ) { 397 os << *i; 398 i++; 399 if ( i == gotolabels.end() ) break; 400 os << ", "; 401 } 402 os << endl; 403 } // if 404 } 405 406 Statement *AsmStmtNode::build() const { 407 std::list<Label> labs; 408 409 if ( ! get_labels().empty() ) { 410 std::back_insert_iterator< std::list<Label> > lab_it( labs ); 411 copy( get_labels().begin(), get_labels().end(), lab_it ); 412 } // if 413 414 std::list< Expression * > out, in; 415 std::list< ConstantExpr * > clob; 416 buildList( output, out ); 417 buildList( input, in ); 418 buildList( clobber, clob ); 419 std::list< Label > gotolabs = gotolabels; 420 return new AsmStmt( labs, voltile, (ConstantExpr *)maybeBuild< Expression >( instruction ), out, in, clob, gotolabs ); 421 } 422 391 423 392 424 void NullStmtNode::print( ostream &os, int indent ) const { -
src/Parser/TypeData.cc
re45215c rd60ccbf 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 26 07:30:06201513 // Update Count : 2612 // Last Modified On : Tue Jul 14 14:57:23 2015 13 // Update Count : 32 14 14 // 15 15 … … 397 397 } // if 398 398 break; 399 default: 400 os << "internal error: TypeData::print " << kind << endl; 401 assert( false ); 399 402 } // switch 400 403 } … … 474 477 return buildVariable(); 475 478 } else { 476 if ( isInline || isNoreturn ) { 477 throw SemanticError( "invalid inline or _Noreturn specification in declaration of ", this ); 478 } else { 479 return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init ); 480 } // if 479 return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init, isInline, isNoreturn ); 481 480 } // if 482 481 return 0; … … 536 535 case DeclarationNode::Atomic: 537 536 q.isAtomic = true; 538 break;539 case DeclarationNode::Attribute:540 q.isAttribute = true;541 537 break; 542 538 } // switch -
src/Parser/parser.cc
re45215c rd60ccbf 80 80 #include "lex.h" 81 81 #include "ParseNode.h" 82 #include "TypeData.h" 82 83 #include "LinkageSpec.h" 83 84 … … 89 90 90 91 /* Line 268 of yacc.c */ 91 #line 9 2"Parser/parser.cc"92 #line 93 "Parser/parser.cc" 92 93 93 94 /* Enabling traces. */ … … 324 325 325 326 /* Line 293 of yacc.c */ 326 #line 10 7"parser.yy"327 #line 108 "parser.yy" 327 328 328 329 Token tok; … … 334 335 StatementNode *sn; 335 336 ConstantNode *constant; 337 LabelNode *label; 336 338 InitializerNode *in; 339 bool flag; 337 340 338 341 339 342 340 343 /* Line 293 of yacc.c */ 341 #line 34 2"Parser/parser.cc"344 #line 345 "Parser/parser.cc" 342 345 } YYSTYPE; 343 346 # define YYSTYPE_IS_TRIVIAL 1 … … 351 354 352 355 /* Line 343 of yacc.c */ 353 #line 35 4"Parser/parser.cc"356 #line 357 "Parser/parser.cc" 354 357 355 358 #ifdef short … … 570 573 #define YYFINAL 246 571 574 /* YYLAST -- Last index in YYTABLE. */ 572 #define YYLAST 113 63575 #define YYLAST 11329 573 576 574 577 /* YYNTOKENS -- Number of terminals. */ 575 578 #define YYNTOKENS 125 576 579 /* YYNNTS -- Number of nonterminals. */ 577 #define YYNNTS 23 6580 #define YYNNTS 238 578 581 /* YYNRULES -- Number of rules. */ 579 #define YYNRULES 7 32582 #define YYNRULES 740 580 583 /* YYNRULES -- Number of states. */ 581 #define YYNSTATES 15 05584 #define YYNSTATES 1530 582 585 583 586 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 636 639 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 637 640 17, 19, 21, 23, 25, 27, 29, 32, 34, 36, 638 38, 40, 44, 48, 50, 57, 62, 66, 74, 78,639 8 6, 89, 92, 100, 102, 106, 107, 109, 113, 121,640 13 1, 133, 137, 139, 143, 151, 155, 163, 165, 168,641 40, 44, 46, 53, 58, 62, 70, 74, 82, 85, 642 88, 96, 98, 102, 103, 105, 109, 117, 127, 129, 643 133, 135, 139, 147, 151, 159, 161, 163, 165, 168, 641 644 171, 174, 177, 180, 183, 186, 191, 193, 198, 203, 642 645 206, 211, 214, 216, 218, 220, 222, 224, 229, 234, … … 655 658 650, 654, 657, 661, 665, 670, 672, 678, 685, 695, 656 659 706, 709, 711, 714, 717, 720, 722, 729, 738, 749, 657 762, 763, 765, 767, 771, 776, 778, 782, 784, 786, 658 788, 792, 794, 796, 798, 802, 803, 805, 809, 814, 659 816, 820, 822, 824, 828, 832, 836, 840, 844, 847, 660 851, 858, 862, 866, 871, 873, 876, 879, 883, 889, 661 898, 906, 914, 920, 930, 933, 936, 942, 946, 952, 662 957, 961, 966, 971, 979, 983, 987, 991, 995, 1000, 663 1007, 1009, 1011, 1013, 1015, 1017, 1019, 1021, 1023, 1024, 664 1026, 1028, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1045, 665 1046, 1052, 1054, 1057, 1061, 1063, 1066, 1068, 1070, 1072, 666 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092, 667 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, 1110, 1113, 668 1116, 1120, 1124, 1126, 1130, 1132, 1135, 1138, 1141, 1146, 669 1151, 1156, 1161, 1163, 1166, 1169, 1173, 1175, 1178, 1181, 670 1183, 1186, 1189, 1193, 1195, 1198, 1201, 1203, 1205, 1210, 671 1213, 1219, 1227, 1230, 1233, 1236, 1238, 1241, 1244, 1248, 672 1251, 1255, 1257, 1260, 1264, 1267, 1270, 1275, 1276, 1278, 673 1281, 1284, 1286, 1287, 1289, 1292, 1295, 1301, 1308, 1311, 674 1314, 1319, 1320, 1323, 1324, 1326, 1328, 1330, 1336, 1342, 675 1348, 1350, 1356, 1362, 1372, 1374, 1380, 1381, 1383, 1385, 676 1391, 1393, 1395, 1401, 1407, 1409, 1413, 1417, 1422, 1424, 677 1426, 1428, 1430, 1433, 1435, 1439, 1443, 1445, 1448, 1450, 678 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470, 1472, 679 1474, 1476, 1479, 1481, 1483, 1485, 1488, 1489, 1492, 1494, 680 1499, 1501, 1504, 1508, 1513, 1516, 1519, 1521, 1524, 1527, 681 1533, 1539, 1547, 1554, 1556, 1559, 1562, 1566, 1568, 1571, 682 1574, 1579, 1582, 1587, 1588, 1593, 1596, 1598, 1600, 1602, 683 1603, 1606, 1612, 1618, 1632, 1634, 1636, 1640, 1644, 1647, 684 1651, 1655, 1658, 1663, 1665, 1672, 1682, 1683, 1695, 1697, 685 1701, 1705, 1709, 1711, 1713, 1719, 1722, 1728, 1729, 1731, 686 1733, 1737, 1738, 1740, 1742, 1744, 1746, 1747, 1754, 1757, 687 1759, 1762, 1767, 1770, 1774, 1778, 1782, 1787, 1793, 1799, 688 1805, 1812, 1814, 1816, 1818, 1822, 1823, 1829, 1830, 1832, 689 1834, 1837, 1844, 1846, 1850, 1851, 1853, 1858, 1860, 1862, 690 1864, 1866, 1869, 1871, 1874, 1877, 1879, 1883, 1886, 1890, 691 1894, 1897, 1902, 1907, 1911, 1920, 1924, 1927, 1929, 1932, 692 1939, 1948, 1952, 1955, 1959, 1963, 1968, 1973, 1977, 1979, 693 1981, 1983, 1988, 1995, 1999, 2002, 2006, 2010, 2015, 2020, 694 2024, 2027, 2029, 2032, 2035, 2037, 2041, 2044, 2048, 2052, 695 2055, 2060, 2065, 2069, 2076, 2085, 2089, 2092, 2094, 2097, 696 2100, 2103, 2107, 2111, 2114, 2119, 2124, 2128, 2135, 2144, 697 2148, 2151, 2153, 2156, 2159, 2161, 2163, 2166, 2170, 2174, 698 2177, 2182, 2189, 2198, 2200, 2203, 2206, 2208, 2211, 2214, 699 2218, 2222, 2224, 2229, 2234, 2238, 2244, 2253, 2257, 2260, 700 2264, 2266, 2272, 2278, 2285, 2292, 2294, 2297, 2300, 2302, 701 2305, 2308, 2312, 2316, 2318, 2323, 2328, 2332, 2338, 2347, 702 2351, 2353, 2356, 2358, 2361, 2368, 2374, 2381, 2389, 2397, 703 2399, 2402, 2405, 2407, 2410, 2413, 2417, 2421, 2423, 2428, 704 2433, 2437, 2446, 2450, 2452, 2454, 2457, 2459, 2461, 2464, 705 2468, 2471, 2475, 2478, 2482, 2486, 2489, 2494, 2498, 2501, 706 2505, 2508, 2513, 2517, 2520, 2527, 2534, 2541, 2549, 2551, 707 2554, 2556, 2558, 2560, 2563, 2567, 2570, 2574, 2577, 2581, 708 2585, 2590, 2593, 2597, 2602, 2605, 2611, 2617, 2624, 2631, 709 2632, 2634, 2635 660 762, 777, 778, 780, 781, 783, 785, 789, 794, 802, 661 803, 805, 809, 811, 815, 817, 819, 821, 825, 827, 662 829, 831, 835, 836, 838, 842, 847, 849, 853, 855, 663 857, 861, 865, 869, 873, 877, 880, 884, 891, 895, 664 899, 904, 906, 909, 912, 916, 922, 931, 939, 947, 665 953, 963, 966, 969, 975, 979, 985, 990, 994, 999, 666 1004, 1012, 1016, 1020, 1024, 1028, 1033, 1040, 1042, 1044, 667 1046, 1048, 1050, 1052, 1054, 1056, 1057, 1059, 1061, 1064, 668 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1079, 1085, 1087, 669 1090, 1094, 1096, 1099, 1101, 1103, 1105, 1107, 1109, 1111, 670 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131, 671 1133, 1135, 1137, 1139, 1141, 1143, 1146, 1149, 1153, 1157, 672 1159, 1163, 1165, 1168, 1171, 1174, 1179, 1184, 1189, 1194, 673 1196, 1199, 1202, 1206, 1208, 1211, 1214, 1216, 1219, 1222, 674 1226, 1228, 1231, 1234, 1236, 1238, 1243, 1246, 1252, 1260, 675 1263, 1266, 1269, 1271, 1274, 1277, 1281, 1284, 1288, 1290, 676 1293, 1297, 1300, 1303, 1308, 1309, 1311, 1314, 1317, 1319, 677 1320, 1322, 1325, 1328, 1334, 1341, 1344, 1347, 1352, 1353, 678 1356, 1357, 1359, 1361, 1363, 1369, 1375, 1381, 1383, 1389, 679 1395, 1405, 1407, 1413, 1414, 1416, 1418, 1424, 1426, 1428, 680 1434, 1440, 1442, 1446, 1450, 1455, 1457, 1459, 1461, 1463, 681 1466, 1468, 1472, 1476, 1478, 1481, 1483, 1487, 1489, 1491, 682 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1512, 683 1514, 1516, 1518, 1521, 1522, 1525, 1527, 1532, 1534, 1537, 684 1541, 1546, 1549, 1552, 1554, 1557, 1559, 1562, 1568, 1574, 685 1582, 1589, 1591, 1594, 1597, 1601, 1603, 1606, 1609, 1614, 686 1617, 1622, 1623, 1628, 1631, 1633, 1635, 1637, 1638, 1641, 687 1647, 1653, 1667, 1669, 1671, 1675, 1679, 1682, 1686, 1690, 688 1693, 1698, 1700, 1707, 1717, 1718, 1730, 1732, 1736, 1740, 689 1744, 1746, 1748, 1754, 1757, 1763, 1764, 1766, 1768, 1772, 690 1773, 1775, 1777, 1779, 1781, 1782, 1789, 1792, 1794, 1797, 691 1802, 1805, 1809, 1813, 1817, 1822, 1828, 1834, 1840, 1847, 692 1849, 1851, 1853, 1857, 1858, 1864, 1865, 1867, 1869, 1872, 693 1879, 1881, 1885, 1886, 1888, 1893, 1895, 1897, 1899, 1901, 694 1904, 1906, 1909, 1912, 1914, 1918, 1921, 1925, 1929, 1932, 695 1937, 1942, 1946, 1955, 1959, 1962, 1964, 1967, 1974, 1983, 696 1987, 1990, 1994, 1998, 2003, 2008, 2012, 2014, 2016, 2018, 697 2023, 2030, 2034, 2037, 2041, 2045, 2050, 2055, 2059, 2062, 698 2064, 2067, 2070, 2072, 2076, 2079, 2083, 2087, 2090, 2095, 699 2100, 2104, 2111, 2120, 2124, 2127, 2129, 2132, 2135, 2138, 700 2142, 2146, 2149, 2154, 2159, 2163, 2170, 2179, 2183, 2186, 701 2188, 2191, 2194, 2196, 2198, 2201, 2205, 2209, 2212, 2217, 702 2224, 2233, 2235, 2238, 2241, 2243, 2246, 2249, 2253, 2257, 703 2259, 2264, 2269, 2273, 2279, 2288, 2292, 2295, 2299, 2301, 704 2307, 2313, 2320, 2327, 2329, 2332, 2335, 2337, 2340, 2343, 705 2347, 2351, 2353, 2358, 2363, 2367, 2373, 2382, 2386, 2388, 706 2391, 2393, 2396, 2403, 2409, 2416, 2424, 2432, 2434, 2437, 707 2440, 2442, 2445, 2448, 2452, 2456, 2458, 2463, 2468, 2472, 708 2481, 2485, 2487, 2489, 2492, 2494, 2496, 2499, 2503, 2506, 709 2510, 2513, 2517, 2521, 2524, 2529, 2533, 2536, 2540, 2543, 710 2548, 2552, 2555, 2562, 2569, 2576, 2584, 2586, 2589, 2591, 711 2593, 2595, 2598, 2602, 2605, 2609, 2612, 2616, 2620, 2625, 712 2628, 2632, 2637, 2640, 2646, 2652, 2659, 2666, 2667, 2669, 713 2670 710 714 }; 711 715 … … 713 717 static const yytype_int16 yyrhs[] = 714 718 { 715 2 89, 0, -1, -1, -1, 72, -1, 73, -1, 74,719 291, 0, -1, -1, -1, 72, -1, 73, -1, 74, 716 720 -1, 65, -1, 69, -1, 132, -1, 65, -1, 69, 717 721 -1, 65, -1, 76, -1, 77, -1, 75, -1, 133, 718 75, -1, 65, -1, 132, -1, 1 28, -1, 133, -1,719 101, 16 0, 102, -1, 101, 164, 102, -1, 134, -1,720 1 35, 103, 126, 155, 127, 104, -1, 135, 101, 136,721 1 02, -1, 135, 105, 131, -1, 135, 105, 103, 126,722 13 8, 127, 104, -1, 135, 78, 131, -1, 135, 78,723 10 3, 126, 138, 127, 104, -1, 135, 79, -1, 135,724 80, -1, 101, 262, 102, 106, 266, 359, 107, -1,725 137, -1, 136, 108, 137, -1, -1, 155, -1, 131,726 1 09, 155, -1, 103, 126, 155, 127, 104, 109, 155,727 -1, 103, 126, 155, 108, 158, 127, 104, 109, 155,728 -1, 139, -1, 138, 108, 139, -1, 131, -1, 131,729 105, 1 39, -1, 131, 105, 103, 126, 138, 127, 104,730 -1, 131, 78, 1 39, -1, 131, 78, 103, 126, 138,731 127, 104, -1, 135, -1, 79, 140, -1, 80, 140,722 75, -1, 65, -1, 132, -1, 101, 160, 102, -1, 723 101, 164, 102, -1, 134, -1, 135, 103, 126, 155, 724 127, 104, -1, 135, 101, 136, 102, -1, 135, 105, 725 131, -1, 135, 105, 103, 126, 138, 127, 104, -1, 726 135, 78, 131, -1, 135, 78, 103, 126, 138, 127, 727 104, -1, 135, 79, -1, 135, 80, -1, 101, 264, 728 102, 106, 268, 361, 107, -1, 137, -1, 136, 108, 729 137, -1, -1, 155, -1, 131, 109, 155, -1, 103, 730 126, 155, 127, 104, 109, 155, -1, 103, 126, 155, 731 108, 158, 127, 104, 109, 155, -1, 139, -1, 138, 732 108, 139, -1, 131, -1, 131, 105, 139, -1, 131, 733 105, 103, 126, 138, 127, 104, -1, 131, 78, 139, 734 -1, 131, 78, 103, 126, 138, 127, 104, -1, 135, 735 -1, 128, -1, 133, -1, 79, 140, -1, 80, 140, 732 736 -1, 38, 142, -1, 141, 142, -1, 110, 142, -1, 733 111, 142, -1, 36, 140, -1, 36, 101, 26 2, 102,734 -1, 69, -1, 69, 101, 26 3, 102, -1, 69, 101,735 137, 102, -1, 59, 140, -1, 59, 101, 26 2, 102,737 111, 142, -1, 36, 140, -1, 36, 101, 264, 102, 738 -1, 69, -1, 69, 101, 265, 102, -1, 69, 101, 739 137, 102, -1, 59, 140, -1, 59, 101, 264, 102, 736 740 -1, 87, 131, -1, 112, -1, 113, -1, 114, -1, 737 115, -1, 140, -1, 101, 26 2, 102, 142, -1, 101,738 26 2, 102, 157, -1, 142, -1, 143, 111, 142, -1,741 115, -1, 140, -1, 101, 264, 102, 142, -1, 101, 742 264, 102, 157, -1, 142, -1, 143, 111, 142, -1, 739 743 143, 116, 142, -1, 143, 117, 142, -1, 143, -1, 740 744 144, 113, 143, -1, 144, 114, 143, -1, 144, -1, … … 748 752 160, 109, 153, -1, 152, 122, 109, 153, -1, 152, 749 753 122, 160, 109, 157, -1, 153, -1, 153, -1, 140, 750 123, 155, -1, 140, 159, 155, -1, 157, 36 0, -1,754 123, 155, -1, 140, 159, 155, -1, 157, 362, -1, 751 755 -1, 155, -1, 103, 104, -1, 103, 126, 155, 127, 752 756 104, -1, 103, 126, 108, 158, 127, 104, -1, 103, … … 757 761 160, -1, 163, -1, 164, -1, 168, -1, 169, -1, 758 762 181, -1, 183, -1, 184, -1, 189, -1, 131, 109, 759 299, 162, -1, 106, 107, -1, 106, 126, 126, 198,763 301, 162, -1, 106, 107, -1, 106, 126, 126, 200, 760 764 165, 127, 107, -1, 166, -1, 165, 126, 166, -1, 761 20 1, -1, 38, 201, -1, 295, -1, 162, 127, -1,765 203, -1, 38, 203, -1, 297, -1, 162, 127, -1, 762 766 162, -1, 167, 162, -1, 161, 124, -1, 39, 101, 763 767 160, 102, 162, -1, 39, 101, 160, 102, 162, 40, 764 768 162, -1, 41, 101, 160, 102, 174, -1, 41, 101, 765 160, 102, 106, 126, 19 4, 175, 107, -1, 51, 101,769 160, 102, 106, 126, 196, 175, 107, -1, 51, 101, 766 770 160, 102, 174, -1, 51, 101, 160, 102, 106, 126, 767 19 4, 177, 107, -1, 154, -1, 154, 89, 154, -1,768 29 7, -1, 170, -1, 171, 108, 170, -1, 42, 171,771 196, 177, 107, -1, 154, -1, 154, 89, 154, -1, 772 299, -1, 170, -1, 171, 108, 170, -1, 42, 171, 769 773 109, -1, 43, 109, -1, 172, -1, 173, 172, -1, 770 774 173, 162, -1, -1, 176, -1, 173, 167, -1, 176, … … 774 778 45, 101, 160, 102, 162, -1, 44, 162, 45, 101, 775 779 160, 102, 124, -1, 46, 101, 126, 182, 102, 162, 776 -1, 161, 127, 124, 161, 124, 161, -1, 20 1, 161,780 -1, 161, 127, 124, 161, 124, 161, -1, 203, 161, 777 781 124, 161, -1, 49, 131, 124, -1, 49, 111, 160, 778 782 124, -1, 48, 124, -1, 48, 131, 124, -1, 47, … … 783 787 101, 89, 102, 164, -1, 54, 101, 126, 126, 188, 784 788 127, 102, 164, 127, -1, 186, 54, 101, 126, 126, 785 188, 127, 102, 164, 127, -1, 55, 164, -1, 214, 786 -1, 214, 296, -1, 214, 344, -1, 353, 131, -1, 787 353, -1, 57, 215, 101, 154, 102, 124, -1, 57, 788 215, 101, 154, 109, 190, 102, 124, -1, 57, 215, 789 101, 154, 109, 190, 109, 190, 102, 124, -1, 57, 790 215, 101, 154, 109, 190, 109, 190, 109, 193, 102, 791 124, -1, -1, 191, -1, 192, -1, 191, 108, 192, 792 -1, 75, 101, 154, 102, -1, 75, -1, 193, 108, 793 75, -1, 127, -1, 195, -1, 201, -1, 195, 126, 794 201, -1, 127, -1, 197, -1, 211, -1, 197, 126, 795 211, -1, -1, 199, -1, 28, 200, 124, -1, 199, 796 28, 200, 124, -1, 261, -1, 200, 108, 261, -1, 797 202, -1, 211, -1, 203, 127, 124, -1, 208, 127, 798 124, -1, 205, 127, 124, -1, 280, 127, 124, -1, 799 283, 127, 124, -1, 204, 264, -1, 220, 204, 264, 800 -1, 203, 127, 108, 126, 259, 264, -1, 354, 259, 801 298, -1, 357, 259, 298, -1, 216, 357, 259, 298, 802 -1, 206, -1, 216, 206, -1, 220, 206, -1, 220, 803 216, 206, -1, 205, 127, 108, 126, 259, -1, 103, 804 104, 259, 101, 126, 247, 127, 102, -1, 357, 259, 805 101, 126, 247, 127, 102, -1, 207, 259, 101, 126, 806 247, 127, 102, -1, 103, 126, 249, 127, 104, -1, 807 103, 126, 249, 127, 108, 126, 250, 127, 104, -1, 808 3, 204, -1, 3, 206, -1, 208, 127, 108, 126, 809 131, -1, 3, 214, 296, -1, 209, 127, 108, 126, 810 296, -1, 216, 3, 214, 296, -1, 214, 3, 296, 811 -1, 214, 3, 216, 296, -1, 3, 131, 123, 155, 812 -1, 210, 127, 108, 126, 131, 123, 155, -1, 212, 813 127, 124, -1, 209, 127, 124, -1, 210, 127, 124, 814 -1, 229, 127, 124, -1, 213, 296, 298, 264, -1, 815 212, 108, 299, 296, 298, 264, -1, 225, -1, 229, 816 -1, 231, -1, 270, -1, 226, -1, 230, -1, 232, 817 -1, 271, -1, -1, 216, -1, 217, -1, 216, 217, 818 -1, 218, -1, 301, -1, 10, -1, 12, -1, 11, 819 -1, 14, -1, 60, -1, -1, 13, 101, 219, 273, 820 102, -1, 221, -1, 216, 221, -1, 220, 216, 221, 821 -1, 222, -1, 221, 222, -1, 223, -1, 5, -1, 822 7, -1, 4, -1, 6, -1, 8, -1, 9, -1, 823 62, -1, 64, -1, 16, -1, 21, -1, 20, -1, 824 18, -1, 19, -1, 17, -1, 22, -1, 23, -1, 825 15, -1, 24, -1, 25, -1, 26, -1, 226, -1, 826 220, 226, -1, 225, 222, -1, 225, 222, 216, -1, 827 225, 222, 226, -1, 227, -1, 215, 228, 215, -1, 828 224, -1, 216, 224, -1, 227, 217, -1, 227, 224, 829 -1, 27, 101, 263, 102, -1, 27, 101, 160, 102, 830 -1, 71, 101, 263, 102, -1, 71, 101, 160, 102, 831 -1, 230, -1, 220, 230, -1, 229, 222, -1, 229, 832 222, 216, -1, 233, -1, 216, 233, -1, 230, 217, 833 -1, 232, -1, 220, 232, -1, 231, 222, -1, 231, 834 222, 216, -1, 67, -1, 216, 67, -1, 232, 217, 835 -1, 234, -1, 244, -1, 235, 106, 236, 107, -1, 836 235, 261, -1, 235, 261, 106, 236, 107, -1, 235, 837 101, 279, 102, 106, 236, 107, -1, 235, 272, -1, 838 30, 299, -1, 31, 299, -1, 237, -1, 236, 237, 839 -1, 238, 124, -1, 38, 238, 124, -1, 239, 124, 840 -1, 38, 239, 124, -1, 353, -1, 353, 261, -1, 841 238, 108, 261, -1, 238, 108, -1, 214, 240, -1, 842 239, 108, 299, 240, -1, -1, 242, -1, 305, 241, 843 -1, 318, 241, -1, 344, -1, -1, 242, -1, 109, 844 154, -1, 29, 299, -1, 243, 106, 245, 359, 107, 845 -1, 243, 261, 106, 245, 359, 107, -1, 243, 261, 846 -1, 261, 246, -1, 245, 108, 261, 246, -1, -1, 847 123, 154, -1, -1, 248, -1, 250, -1, 249, -1, 848 249, 127, 108, 126, 250, -1, 250, 127, 108, 126, 849 89, -1, 249, 127, 108, 126, 89, -1, 254, -1, 850 250, 127, 108, 126, 254, -1, 249, 127, 108, 126, 851 254, -1, 249, 127, 108, 126, 250, 127, 108, 126, 852 254, -1, 255, -1, 250, 127, 108, 126, 255, -1, 853 -1, 252, -1, 253, -1, 253, 127, 108, 126, 89, 854 -1, 257, -1, 256, -1, 253, 127, 108, 126, 257, 855 -1, 253, 127, 108, 126, 256, -1, 256, -1, 349, 856 259, 360, -1, 357, 259, 360, -1, 216, 357, 259, 857 360, -1, 206, -1, 257, -1, 349, -1, 357, -1, 858 216, 357, -1, 358, -1, 213, 323, 360, -1, 213, 859 327, 360, -1, 213, -1, 213, 338, -1, 131, -1, 860 258, 108, 131, -1, 129, -1, 67, -1, 68, -1, 861 130, -1, 67, -1, 68, -1, 131, -1, 67, -1, 862 68, -1, 353, -1, 214, -1, 214, 344, -1, 353, 863 -1, 358, -1, 214, -1, 214, 332, -1, -1, 123, 864 265, -1, 155, -1, 106, 266, 359, 107, -1, 265, 865 -1, 267, 265, -1, 266, 108, 265, -1, 266, 108, 866 267, 265, -1, 268, 109, -1, 261, 109, -1, 269, 867 -1, 268, 269, -1, 105, 261, -1, 103, 126, 155, 868 127, 104, -1, 103, 126, 297, 127, 104, -1, 103, 869 126, 154, 89, 154, 127, 104, -1, 105, 103, 126, 870 138, 127, 104, -1, 271, -1, 220, 271, -1, 270, 871 222, -1, 270, 222, 216, -1, 272, -1, 216, 272, 872 -1, 271, 217, -1, 68, 101, 279, 102, -1, 274, 873 360, -1, 273, 108, 274, 360, -1, -1, 276, 261, 874 275, 277, -1, 214, 323, -1, 32, -1, 34, -1, 875 33, -1, -1, 277, 278, -1, 121, 261, 101, 279, 876 102, -1, 121, 106, 126, 285, 107, -1, 121, 101, 877 126, 273, 127, 102, 106, 126, 285, 107, 101, 279, 878 102, -1, 263, -1, 155, -1, 279, 108, 263, -1, 879 279, 108, 155, -1, 32, 281, -1, 221, 32, 281, 880 -1, 280, 108, 281, -1, 282, 277, -1, 282, 277, 881 123, 263, -1, 261, -1, 260, 101, 126, 273, 127, 882 102, -1, 35, 261, 101, 126, 273, 127, 102, 106, 883 107, -1, -1, 35, 261, 101, 126, 273, 127, 102, 884 106, 284, 285, 107, -1, 286, -1, 285, 126, 286, 885 -1, 287, 127, 124, -1, 288, 127, 124, -1, 204, 886 -1, 206, -1, 287, 127, 108, 126, 259, -1, 214, 887 296, -1, 288, 127, 108, 126, 296, -1, -1, 290, 888 -1, 292, -1, 290, 126, 292, -1, -1, 290, -1, 889 201, -1, 294, -1, 189, -1, -1, 5, 75, 293, 890 106, 291, 107, -1, 38, 292, -1, 295, -1, 310, 891 164, -1, 314, 126, 196, 164, -1, 205, 164, -1, 892 213, 310, 164, -1, 216, 310, 164, -1, 220, 310, 893 164, -1, 220, 216, 310, 164, -1, 213, 314, 126, 894 196, 164, -1, 216, 314, 126, 196, 164, -1, 220, 895 314, 126, 196, 164, -1, 220, 216, 314, 126, 196, 896 164, -1, 305, -1, 310, -1, 318, -1, 154, 115, 897 154, -1, -1, 57, 101, 133, 102, 299, -1, -1, 898 300, -1, 301, -1, 300, 301, -1, 37, 101, 101, 899 302, 102, 102, -1, 303, -1, 302, 108, 303, -1, 900 -1, 304, -1, 304, 101, 161, 102, -1, 259, -1, 901 223, -1, 224, -1, 217, -1, 306, 299, -1, 307, 902 -1, 308, 299, -1, 309, 299, -1, 129, -1, 101, 903 306, 102, -1, 111, 305, -1, 111, 216, 305, -1, 904 101, 307, 102, -1, 306, 336, -1, 101, 307, 102, 905 336, -1, 101, 308, 102, 337, -1, 101, 308, 102, 906 -1, 101, 307, 102, 101, 126, 251, 127, 102, -1, 907 101, 309, 102, -1, 311, 299, -1, 312, -1, 313, 908 299, -1, 306, 101, 126, 251, 127, 102, -1, 101, 909 312, 102, 101, 126, 251, 127, 102, -1, 101, 311, 910 102, -1, 111, 310, -1, 111, 216, 310, -1, 101, 911 312, 102, -1, 101, 312, 102, 336, -1, 101, 313, 912 102, 337, -1, 101, 313, 102, -1, 315, -1, 316, 913 -1, 317, -1, 306, 101, 258, 102, -1, 101, 316, 914 102, 101, 258, 102, -1, 101, 315, 102, -1, 111, 915 314, -1, 111, 216, 314, -1, 101, 316, 102, -1, 916 101, 316, 102, 336, -1, 101, 317, 102, 337, -1, 917 101, 317, 102, -1, 319, 299, -1, 320, -1, 321, 918 299, -1, 322, 299, -1, 328, -1, 101, 319, 102, 919 -1, 111, 318, -1, 111, 216, 318, -1, 101, 320, 920 102, -1, 319, 336, -1, 101, 320, 102, 336, -1, 921 101, 321, 102, 337, -1, 101, 321, 102, -1, 319, 922 101, 126, 251, 127, 102, -1, 101, 320, 102, 101, 923 126, 251, 127, 102, -1, 101, 322, 102, -1, 306, 924 299, -1, 324, -1, 325, 299, -1, 326, 299, -1, 925 111, 323, -1, 111, 216, 323, -1, 101, 324, 102, 926 -1, 306, 342, -1, 101, 324, 102, 336, -1, 101, 927 325, 102, 337, -1, 101, 325, 102, -1, 306, 101, 928 126, 251, 127, 102, -1, 101, 324, 102, 101, 126, 929 251, 127, 102, -1, 101, 326, 102, -1, 328, 299, 930 -1, 329, -1, 330, 299, -1, 331, 299, -1, 67, 931 -1, 68, -1, 111, 327, -1, 111, 216, 327, -1, 932 101, 329, 102, -1, 328, 342, -1, 101, 329, 102, 933 342, -1, 328, 101, 126, 251, 127, 102, -1, 101, 934 329, 102, 101, 126, 251, 127, 102, -1, 333, -1, 935 334, 299, -1, 335, 299, -1, 111, -1, 111, 216, 936 -1, 111, 332, -1, 111, 216, 332, -1, 101, 333, 937 102, -1, 336, -1, 101, 333, 102, 336, -1, 101, 938 334, 102, 337, -1, 101, 334, 102, -1, 101, 126, 939 251, 127, 102, -1, 101, 333, 102, 101, 126, 251, 940 127, 102, -1, 101, 335, 102, -1, 103, 104, -1, 941 103, 104, 337, -1, 337, -1, 103, 126, 155, 127, 942 104, -1, 103, 126, 111, 127, 104, -1, 337, 103, 943 126, 155, 127, 104, -1, 337, 103, 126, 111, 127, 944 104, -1, 339, -1, 340, 299, -1, 341, 299, -1, 945 111, -1, 111, 216, -1, 111, 338, -1, 111, 216, 946 338, -1, 101, 339, 102, -1, 342, -1, 101, 339, 947 102, 342, -1, 101, 340, 102, 337, -1, 101, 340, 948 102, -1, 101, 126, 251, 127, 102, -1, 101, 339, 949 102, 101, 126, 251, 127, 102, -1, 101, 341, 102, 950 -1, 343, -1, 343, 337, -1, 337, -1, 103, 104, 951 -1, 103, 126, 216, 111, 127, 104, -1, 103, 126, 952 216, 127, 104, -1, 103, 126, 216, 155, 127, 104, 953 -1, 103, 126, 7, 215, 155, 127, 104, -1, 103, 954 126, 216, 7, 155, 127, 104, -1, 345, -1, 346, 955 299, -1, 347, 299, -1, 111, -1, 111, 216, -1, 956 111, 344, -1, 111, 216, 344, -1, 101, 345, 102, 957 -1, 336, -1, 101, 345, 102, 336, -1, 101, 346, 958 102, 337, -1, 101, 346, 102, -1, 101, 345, 102, 959 101, 126, 251, 127, 102, -1, 101, 347, 102, -1, 960 349, -1, 357, -1, 216, 357, -1, 350, -1, 351, 961 -1, 111, 214, -1, 216, 111, 214, -1, 111, 358, 962 -1, 216, 111, 358, -1, 111, 348, -1, 216, 111, 963 348, -1, 103, 104, 214, -1, 352, 214, -1, 103, 964 104, 337, 214, -1, 352, 337, 214, -1, 337, 214, 965 -1, 103, 104, 350, -1, 352, 350, -1, 103, 104, 966 337, 350, -1, 352, 337, 350, -1, 337, 350, -1, 967 103, 126, 216, 111, 127, 104, -1, 103, 126, 216, 968 155, 127, 104, -1, 103, 126, 220, 155, 127, 104, 969 -1, 103, 126, 220, 216, 155, 127, 104, -1, 357, 970 -1, 216, 357, -1, 354, -1, 355, -1, 356, -1, 971 111, 214, -1, 216, 111, 214, -1, 111, 358, -1, 972 216, 111, 358, -1, 111, 353, -1, 216, 111, 353, 973 -1, 103, 104, 214, -1, 103, 104, 337, 214, -1, 974 337, 214, -1, 103, 104, 355, -1, 103, 104, 337, 975 355, -1, 337, 355, -1, 103, 126, 250, 127, 104, 976 -1, 103, 104, 101, 247, 102, -1, 357, 101, 126, 977 247, 127, 102, -1, 207, 101, 126, 247, 127, 102, 978 -1, -1, 108, -1, -1, 123, 155, -1 789 188, 127, 102, 164, 127, -1, 55, 164, -1, 216, 790 -1, 216, 298, -1, 216, 346, -1, 355, 131, -1, 791 355, -1, 57, 190, 101, 133, 102, 124, -1, 57, 792 190, 101, 133, 109, 191, 102, 124, -1, 57, 190, 793 101, 133, 109, 191, 109, 191, 102, 124, -1, 57, 794 190, 101, 133, 109, 191, 109, 191, 109, 194, 102, 795 124, -1, 57, 190, 49, 101, 133, 109, 109, 191, 796 109, 194, 109, 195, 102, 124, -1, -1, 11, -1, 797 -1, 192, -1, 193, -1, 192, 108, 193, -1, 133, 798 101, 154, 102, -1, 103, 154, 104, 133, 101, 154, 799 102, -1, -1, 133, -1, 194, 108, 133, -1, 131, 800 -1, 195, 108, 131, -1, 127, -1, 197, -1, 203, 801 -1, 197, 126, 203, -1, 127, -1, 199, -1, 213, 802 -1, 199, 126, 213, -1, -1, 201, -1, 28, 202, 803 124, -1, 201, 28, 202, 124, -1, 263, -1, 202, 804 108, 263, -1, 204, -1, 213, -1, 205, 127, 124, 805 -1, 210, 127, 124, -1, 207, 127, 124, -1, 282, 806 127, 124, -1, 285, 127, 124, -1, 206, 266, -1, 807 222, 206, 266, -1, 205, 127, 108, 126, 261, 266, 808 -1, 356, 261, 300, -1, 359, 261, 300, -1, 218, 809 359, 261, 300, -1, 208, -1, 218, 208, -1, 222, 810 208, -1, 222, 218, 208, -1, 207, 127, 108, 126, 811 261, -1, 103, 104, 261, 101, 126, 249, 127, 102, 812 -1, 359, 261, 101, 126, 249, 127, 102, -1, 209, 813 261, 101, 126, 249, 127, 102, -1, 103, 126, 251, 814 127, 104, -1, 103, 126, 251, 127, 108, 126, 252, 815 127, 104, -1, 3, 206, -1, 3, 208, -1, 210, 816 127, 108, 126, 131, -1, 3, 216, 298, -1, 211, 817 127, 108, 126, 298, -1, 218, 3, 216, 298, -1, 818 216, 3, 298, -1, 216, 3, 218, 298, -1, 3, 819 131, 123, 155, -1, 212, 127, 108, 126, 131, 123, 820 155, -1, 214, 127, 124, -1, 211, 127, 124, -1, 821 212, 127, 124, -1, 231, 127, 124, -1, 215, 298, 822 300, 266, -1, 214, 108, 301, 298, 300, 266, -1, 823 227, -1, 231, -1, 233, -1, 272, -1, 228, -1, 824 232, -1, 234, -1, 273, -1, -1, 218, -1, 219, 825 -1, 218, 219, -1, 220, -1, 303, -1, 10, -1, 826 12, -1, 11, -1, 14, -1, 60, -1, -1, 13, 827 101, 221, 275, 102, -1, 223, -1, 218, 223, -1, 828 222, 218, 223, -1, 224, -1, 223, 224, -1, 225, 829 -1, 5, -1, 7, -1, 4, -1, 6, -1, 8, 830 -1, 9, -1, 62, -1, 64, -1, 16, -1, 21, 831 -1, 20, -1, 18, -1, 19, -1, 17, -1, 22, 832 -1, 23, -1, 15, -1, 24, -1, 25, -1, 26, 833 -1, 228, -1, 222, 228, -1, 227, 224, -1, 227, 834 224, 218, -1, 227, 224, 228, -1, 229, -1, 217, 835 230, 217, -1, 226, -1, 218, 226, -1, 229, 219, 836 -1, 229, 226, -1, 27, 101, 265, 102, -1, 27, 837 101, 160, 102, -1, 71, 101, 265, 102, -1, 71, 838 101, 160, 102, -1, 232, -1, 222, 232, -1, 231, 839 224, -1, 231, 224, 218, -1, 235, -1, 218, 235, 840 -1, 232, 219, -1, 234, -1, 222, 234, -1, 233, 841 224, -1, 233, 224, 218, -1, 67, -1, 218, 67, 842 -1, 234, 219, -1, 236, -1, 246, -1, 237, 106, 843 238, 107, -1, 237, 263, -1, 237, 263, 106, 238, 844 107, -1, 237, 101, 281, 102, 106, 238, 107, -1, 845 237, 274, -1, 30, 301, -1, 31, 301, -1, 239, 846 -1, 238, 239, -1, 240, 124, -1, 38, 240, 124, 847 -1, 241, 124, -1, 38, 241, 124, -1, 355, -1, 848 355, 263, -1, 240, 108, 263, -1, 240, 108, -1, 849 216, 242, -1, 241, 108, 301, 242, -1, -1, 244, 850 -1, 307, 243, -1, 320, 243, -1, 346, -1, -1, 851 244, -1, 109, 154, -1, 29, 301, -1, 245, 106, 852 247, 361, 107, -1, 245, 263, 106, 247, 361, 107, 853 -1, 245, 263, -1, 263, 248, -1, 247, 108, 263, 854 248, -1, -1, 123, 154, -1, -1, 250, -1, 252, 855 -1, 251, -1, 251, 127, 108, 126, 252, -1, 252, 856 127, 108, 126, 89, -1, 251, 127, 108, 126, 89, 857 -1, 256, -1, 252, 127, 108, 126, 256, -1, 251, 858 127, 108, 126, 256, -1, 251, 127, 108, 126, 252, 859 127, 108, 126, 256, -1, 257, -1, 252, 127, 108, 860 126, 257, -1, -1, 254, -1, 255, -1, 255, 127, 861 108, 126, 89, -1, 259, -1, 258, -1, 255, 127, 862 108, 126, 259, -1, 255, 127, 108, 126, 258, -1, 863 258, -1, 351, 261, 362, -1, 359, 261, 362, -1, 864 218, 359, 261, 362, -1, 208, -1, 259, -1, 351, 865 -1, 359, -1, 218, 359, -1, 360, -1, 215, 325, 866 362, -1, 215, 329, 362, -1, 215, -1, 215, 340, 867 -1, 131, -1, 260, 108, 131, -1, 129, -1, 67, 868 -1, 68, -1, 130, -1, 67, -1, 68, -1, 131, 869 -1, 67, -1, 68, -1, 355, -1, 216, -1, 216, 870 346, -1, 355, -1, 360, -1, 216, -1, 216, 334, 871 -1, -1, 123, 267, -1, 155, -1, 106, 268, 361, 872 107, -1, 267, -1, 269, 267, -1, 268, 108, 267, 873 -1, 268, 108, 269, 267, -1, 270, 109, -1, 263, 874 109, -1, 271, -1, 270, 271, -1, 73, -1, 105, 875 263, -1, 103, 126, 155, 127, 104, -1, 103, 126, 876 299, 127, 104, -1, 103, 126, 154, 89, 154, 127, 877 104, -1, 105, 103, 126, 138, 127, 104, -1, 273, 878 -1, 222, 273, -1, 272, 224, -1, 272, 224, 218, 879 -1, 274, -1, 218, 274, -1, 273, 219, -1, 68, 880 101, 281, 102, -1, 276, 362, -1, 275, 108, 276, 881 362, -1, -1, 278, 263, 277, 279, -1, 216, 325, 882 -1, 32, -1, 34, -1, 33, -1, -1, 279, 280, 883 -1, 121, 263, 101, 281, 102, -1, 121, 106, 126, 884 287, 107, -1, 121, 101, 126, 275, 127, 102, 106, 885 126, 287, 107, 101, 281, 102, -1, 265, -1, 155, 886 -1, 281, 108, 265, -1, 281, 108, 155, -1, 32, 887 283, -1, 223, 32, 283, -1, 282, 108, 283, -1, 888 284, 279, -1, 284, 279, 123, 265, -1, 263, -1, 889 262, 101, 126, 275, 127, 102, -1, 35, 263, 101, 890 126, 275, 127, 102, 106, 107, -1, -1, 35, 263, 891 101, 126, 275, 127, 102, 106, 286, 287, 107, -1, 892 288, -1, 287, 126, 288, -1, 289, 127, 124, -1, 893 290, 127, 124, -1, 206, -1, 208, -1, 289, 127, 894 108, 126, 261, -1, 216, 298, -1, 290, 127, 108, 895 126, 298, -1, -1, 292, -1, 294, -1, 292, 126, 896 294, -1, -1, 292, -1, 203, -1, 296, -1, 189, 897 -1, -1, 5, 75, 295, 106, 293, 107, -1, 38, 898 294, -1, 297, -1, 312, 164, -1, 316, 126, 198, 899 164, -1, 207, 164, -1, 215, 312, 164, -1, 218, 900 312, 164, -1, 222, 312, 164, -1, 222, 218, 312, 901 164, -1, 215, 316, 126, 198, 164, -1, 218, 316, 902 126, 198, 164, -1, 222, 316, 126, 198, 164, -1, 903 222, 218, 316, 126, 198, 164, -1, 307, -1, 312, 904 -1, 320, -1, 154, 115, 154, -1, -1, 57, 101, 905 133, 102, 301, -1, -1, 302, -1, 303, -1, 302, 906 303, -1, 37, 101, 101, 304, 102, 102, -1, 305, 907 -1, 304, 108, 305, -1, -1, 306, -1, 306, 101, 908 161, 102, -1, 261, -1, 225, -1, 226, -1, 219, 909 -1, 308, 301, -1, 309, -1, 310, 301, -1, 311, 910 301, -1, 129, -1, 101, 308, 102, -1, 111, 307, 911 -1, 111, 218, 307, -1, 101, 309, 102, -1, 308, 912 338, -1, 101, 309, 102, 338, -1, 101, 310, 102, 913 339, -1, 101, 310, 102, -1, 101, 309, 102, 101, 914 126, 253, 127, 102, -1, 101, 311, 102, -1, 313, 915 301, -1, 314, -1, 315, 301, -1, 308, 101, 126, 916 253, 127, 102, -1, 101, 314, 102, 101, 126, 253, 917 127, 102, -1, 101, 313, 102, -1, 111, 312, -1, 918 111, 218, 312, -1, 101, 314, 102, -1, 101, 314, 919 102, 338, -1, 101, 315, 102, 339, -1, 101, 315, 920 102, -1, 317, -1, 318, -1, 319, -1, 308, 101, 921 260, 102, -1, 101, 318, 102, 101, 260, 102, -1, 922 101, 317, 102, -1, 111, 316, -1, 111, 218, 316, 923 -1, 101, 318, 102, -1, 101, 318, 102, 338, -1, 924 101, 319, 102, 339, -1, 101, 319, 102, -1, 321, 925 301, -1, 322, -1, 323, 301, -1, 324, 301, -1, 926 330, -1, 101, 321, 102, -1, 111, 320, -1, 111, 927 218, 320, -1, 101, 322, 102, -1, 321, 338, -1, 928 101, 322, 102, 338, -1, 101, 323, 102, 339, -1, 929 101, 323, 102, -1, 321, 101, 126, 253, 127, 102, 930 -1, 101, 322, 102, 101, 126, 253, 127, 102, -1, 931 101, 324, 102, -1, 308, 301, -1, 326, -1, 327, 932 301, -1, 328, 301, -1, 111, 325, -1, 111, 218, 933 325, -1, 101, 326, 102, -1, 308, 344, -1, 101, 934 326, 102, 338, -1, 101, 327, 102, 339, -1, 101, 935 327, 102, -1, 308, 101, 126, 253, 127, 102, -1, 936 101, 326, 102, 101, 126, 253, 127, 102, -1, 101, 937 328, 102, -1, 330, 301, -1, 331, -1, 332, 301, 938 -1, 333, 301, -1, 67, -1, 68, -1, 111, 329, 939 -1, 111, 218, 329, -1, 101, 331, 102, -1, 330, 940 344, -1, 101, 331, 102, 344, -1, 330, 101, 126, 941 253, 127, 102, -1, 101, 331, 102, 101, 126, 253, 942 127, 102, -1, 335, -1, 336, 301, -1, 337, 301, 943 -1, 111, -1, 111, 218, -1, 111, 334, -1, 111, 944 218, 334, -1, 101, 335, 102, -1, 338, -1, 101, 945 335, 102, 338, -1, 101, 336, 102, 339, -1, 101, 946 336, 102, -1, 101, 126, 253, 127, 102, -1, 101, 947 335, 102, 101, 126, 253, 127, 102, -1, 101, 337, 948 102, -1, 103, 104, -1, 103, 104, 339, -1, 339, 949 -1, 103, 126, 155, 127, 104, -1, 103, 126, 111, 950 127, 104, -1, 339, 103, 126, 155, 127, 104, -1, 951 339, 103, 126, 111, 127, 104, -1, 341, -1, 342, 952 301, -1, 343, 301, -1, 111, -1, 111, 218, -1, 953 111, 340, -1, 111, 218, 340, -1, 101, 341, 102, 954 -1, 344, -1, 101, 341, 102, 344, -1, 101, 342, 955 102, 339, -1, 101, 342, 102, -1, 101, 126, 253, 956 127, 102, -1, 101, 341, 102, 101, 126, 253, 127, 957 102, -1, 101, 343, 102, -1, 345, -1, 345, 339, 958 -1, 339, -1, 103, 104, -1, 103, 126, 218, 111, 959 127, 104, -1, 103, 126, 218, 127, 104, -1, 103, 960 126, 218, 155, 127, 104, -1, 103, 126, 7, 217, 961 155, 127, 104, -1, 103, 126, 218, 7, 155, 127, 962 104, -1, 347, -1, 348, 301, -1, 349, 301, -1, 963 111, -1, 111, 218, -1, 111, 346, -1, 111, 218, 964 346, -1, 101, 347, 102, -1, 338, -1, 101, 347, 965 102, 338, -1, 101, 348, 102, 339, -1, 101, 348, 966 102, -1, 101, 347, 102, 101, 126, 253, 127, 102, 967 -1, 101, 349, 102, -1, 351, -1, 359, -1, 218, 968 359, -1, 352, -1, 353, -1, 111, 216, -1, 218, 969 111, 216, -1, 111, 360, -1, 218, 111, 360, -1, 970 111, 350, -1, 218, 111, 350, -1, 103, 104, 216, 971 -1, 354, 216, -1, 103, 104, 339, 216, -1, 354, 972 339, 216, -1, 339, 216, -1, 103, 104, 352, -1, 973 354, 352, -1, 103, 104, 339, 352, -1, 354, 339, 974 352, -1, 339, 352, -1, 103, 126, 218, 111, 127, 975 104, -1, 103, 126, 218, 155, 127, 104, -1, 103, 976 126, 222, 155, 127, 104, -1, 103, 126, 222, 218, 977 155, 127, 104, -1, 359, -1, 218, 359, -1, 356, 978 -1, 357, -1, 358, -1, 111, 216, -1, 218, 111, 979 216, -1, 111, 360, -1, 218, 111, 360, -1, 111, 980 355, -1, 218, 111, 355, -1, 103, 104, 216, -1, 981 103, 104, 339, 216, -1, 339, 216, -1, 103, 104, 982 357, -1, 103, 104, 339, 357, -1, 339, 357, -1, 983 103, 126, 252, 127, 104, -1, 103, 104, 101, 249, 984 102, -1, 359, 101, 126, 249, 127, 102, -1, 209, 985 101, 126, 249, 127, 102, -1, -1, 108, -1, -1, 986 123, 155, -1 979 987 }; 980 988 … … 982 990 static const yytype_uint16 yyrline[] = 983 991 { 984 0, 279, 279, 285, 294, 295, 296, 300, 301, 302, 985 306, 307, 311, 315, 316, 320, 321, 327, 329, 331, 986 333, 335, 337, 342, 343, 349, 351, 353, 354, 356, 987 357, 359, 362, 367, 368, 374, 375, 376, 381, 383, 988 388, 389, 393, 395, 397, 399, 401, 406, 407, 409, 989 411, 413, 415, 417, 423, 425, 427, 429, 431, 433, 990 435, 437, 442, 443, 444, 445, 449, 450, 452, 457, 991 458, 460, 462, 467, 468, 470, 475, 476, 478, 483, 992 484, 486, 488, 490, 495, 496, 498, 503, 504, 509, 993 510, 515, 516, 521, 522, 527, 528, 533, 534, 536, 994 538, 543, 548, 549, 551, 553, 559, 560, 566, 568, 995 570, 572, 577, 578, 583, 584, 585, 586, 587, 588, 996 589, 590, 591, 592, 596, 597, 603, 604, 610, 611, 997 612, 613, 614, 615, 616, 617, 621, 626, 628, 638, 998 639, 644, 646, 648, 650, 654, 655, 660, 665, 668, 999 670, 672, 677, 679, 687, 688, 690, 694, 695, 700, 1000 701, 706, 707, 711, 716, 717, 721, 723, 729, 730, 1001 734, 736, 738, 740, 746, 747, 751, 752, 756, 758, 1002 760, 765, 767, 772, 774, 778, 781, 785, 788, 792, 1003 794, 796, 801, 803, 805, 814, 816, 818, 823, 825, 1004 830, 843, 844, 849, 851, 856, 860, 862, 864, 866, 1005 870, 872, 876, 877, 881, 885, 886, 892, 894, 898, 1006 899, 904, 906, 910, 911, 915, 917, 921, 922, 926, 1007 927, 931, 932, 947, 948, 949, 950, 951, 955, 960, 1008 967, 977, 982, 987, 995, 1000, 1005, 1010, 1015, 1023, 1009 1045, 1050, 1057, 1059, 1066, 1071, 1076, 1087, 1092, 1097, 1010 1102, 1107, 1116, 1121, 1129, 1130, 1131, 1132, 1138, 1143, 1011 1151, 1152, 1153, 1154, 1158, 1159, 1160, 1161, 1166, 1167, 1012 1176, 1177, 1182, 1183, 1188, 1190, 1192, 1194, 1196, 1199, 1013 1198, 1210, 1211, 1213, 1223, 1224, 1229, 1233, 1235, 1237, 1014 1239, 1241, 1243, 1245, 1247, 1252, 1254, 1256, 1258, 1260, 1015 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1280, 1281, 1283, 1016 1285, 1287, 1292, 1293, 1299, 1300, 1302, 1304, 1309, 1311, 1017 1313, 1315, 1320, 1321, 1323, 1325, 1330, 1331, 1333, 1338, 1018 1339, 1341, 1343, 1348, 1350, 1352, 1357, 1358, 1362, 1364, 1019 1366, 1368, 1370, 1375, 1377, 1382, 1384, 1389, 1390, 1392, 1020 1393, 1398, 1399, 1401, 1403, 1408, 1410, 1416, 1417, 1419, 1021 1422, 1425, 1430, 1431, 1436, 1441, 1445, 1447, 1449, 1454, 1022 1456, 1462, 1463, 1471, 1472, 1476, 1477, 1478, 1480, 1482, 1023 1489, 1490, 1492, 1494, 1499, 1500, 1506, 1507, 1511, 1512, 1024 1517, 1518, 1519, 1521, 1529, 1530, 1532, 1535, 1537, 1541, 1025 1542, 1543, 1545, 1547, 1551, 1556, 1564, 1565, 1574, 1576, 1026 1581, 1582, 1583, 1587, 1588, 1589, 1593, 1594, 1595, 1599, 1027 1600, 1601, 1606, 1607, 1608, 1609, 1615, 1616, 1621, 1622, 1028 1626, 1627, 1628, 1629, 1644, 1645, 1650, 1651, 1657, 1659, 1029 1662, 1664, 1666, 1689, 1690, 1692, 1694, 1699, 1700, 1702, 1030 1707, 1712, 1713, 1719, 1718, 1722, 1726, 1728, 1730, 1736, 1031 1737, 1742, 1747, 1749, 1754, 1756, 1757, 1759, 1764, 1766, 1032 1768, 1773, 1775, 1780, 1785, 1793, 1799, 1798, 1812, 1813, 1033 1818, 1819, 1823, 1828, 1833, 1841, 1846, 1857, 1858, 1869, 1034 1870, 1876, 1877, 1881, 1882, 1883, 1886, 1885, 1896, 1901, 1035 1906, 1912, 1921, 1927, 1933, 1939, 1945, 1953, 1959, 1967, 1036 1973, 1982, 1983, 1984, 1988, 1992, 1994, 1997, 1999, 2003, 1037 2004, 2008, 2012, 2013, 2016, 2018, 2019, 2023, 2024, 2025, 1038 2026, 2060, 2061, 2062, 2063, 2067, 2072, 2077, 2079, 2081, 1039 2086, 2088, 2090, 2092, 2097, 2099, 2109, 2110, 2111, 2115, 1040 2117, 2119, 2124, 2126, 2128, 2133, 2135, 2137, 2146, 2147, 1041 2148, 2152, 2154, 2156, 2161, 2163, 2165, 2170, 2172, 2174, 1042 2189, 2190, 2191, 2192, 2196, 2197, 2202, 2204, 2206, 2211, 1043 2213, 2215, 2217, 2222, 2224, 2226, 2236, 2237, 2238, 2239, 1044 2243, 2245, 2247, 2252, 2254, 2256, 2258, 2263, 2265, 2267, 1045 2298, 2299, 2300, 2301, 2305, 2310, 2318, 2320, 2322, 2327, 1046 2329, 2334, 2336, 2350, 2351, 2352, 2356, 2358, 2360, 2362, 1047 2364, 2369, 2370, 2372, 2374, 2379, 2381, 2383, 2389, 2391, 1048 2393, 2397, 2399, 2401, 2403, 2417, 2418, 2419, 2423, 2425, 1049 2427, 2429, 2431, 2436, 2437, 2439, 2441, 2446, 2448, 2450, 1050 2456, 2457, 2459, 2468, 2471, 2473, 2476, 2478, 2480, 2493, 1051 2494, 2495, 2499, 2501, 2503, 2505, 2507, 2512, 2513, 2515, 1052 2517, 2522, 2524, 2532, 2533, 2534, 2539, 2540, 2544, 2546, 1053 2548, 2550, 2552, 2554, 2561, 2563, 2565, 2567, 2569, 2571, 1054 2573, 2575, 2577, 2579, 2584, 2586, 2588, 2593, 2619, 2620, 1055 2622, 2626, 2627, 2631, 2633, 2635, 2637, 2639, 2641, 2648, 1056 2650, 2652, 2654, 2656, 2658, 2663, 2668, 2670, 2672, 2690, 1057 2692, 2697, 2698 992 0, 288, 288, 294, 303, 304, 305, 309, 310, 311, 993 315, 316, 320, 324, 325, 329, 330, 336, 338, 340, 994 342, 347, 348, 354, 356, 358, 359, 361, 362, 364, 995 367, 372, 373, 379, 380, 381, 386, 388, 393, 394, 996 398, 400, 402, 404, 406, 411, 414, 416, 418, 420, 997 422, 424, 426, 428, 434, 436, 438, 440, 442, 444, 998 446, 448, 453, 454, 455, 456, 460, 461, 463, 468, 999 469, 471, 473, 478, 479, 481, 486, 487, 489, 494, 1000 495, 497, 499, 501, 506, 507, 509, 514, 515, 520, 1001 521, 526, 527, 532, 533, 538, 539, 544, 545, 547, 1002 549, 554, 559, 560, 562, 564, 570, 571, 577, 579, 1003 581, 583, 588, 589, 594, 595, 596, 597, 598, 599, 1004 600, 601, 602, 603, 607, 608, 614, 615, 621, 622, 1005 623, 624, 625, 626, 627, 628, 632, 639, 641, 651, 1006 652, 657, 659, 661, 663, 667, 668, 673, 678, 681, 1007 683, 685, 690, 692, 700, 701, 703, 707, 708, 713, 1008 714, 719, 720, 724, 729, 730, 734, 736, 742, 743, 1009 747, 749, 751, 753, 759, 760, 764, 765, 769, 771, 1010 773, 778, 780, 785, 787, 791, 794, 798, 801, 805, 1011 807, 809, 814, 816, 818, 827, 829, 831, 836, 838, 1012 843, 856, 857, 862, 864, 869, 873, 875, 877, 879, 1013 881, 887, 888, 894, 895, 899, 900, 905, 907, 913, 1014 914, 916, 921, 923, 930, 932, 936, 937, 942, 944, 1015 948, 949, 953, 955, 959, 960, 964, 965, 969, 970, 1016 985, 986, 987, 988, 989, 993, 998, 1005, 1015, 1020, 1017 1025, 1033, 1038, 1043, 1048, 1053, 1061, 1083, 1088, 1095, 1018 1097, 1104, 1109, 1114, 1125, 1130, 1135, 1140, 1145, 1154, 1019 1159, 1167, 1168, 1169, 1170, 1176, 1181, 1189, 1190, 1191, 1020 1192, 1196, 1197, 1198, 1199, 1204, 1205, 1214, 1215, 1220, 1021 1221, 1226, 1228, 1230, 1232, 1234, 1237, 1236, 1248, 1249, 1022 1251, 1261, 1262, 1267, 1271, 1273, 1275, 1277, 1279, 1281, 1023 1283, 1285, 1290, 1292, 1294, 1296, 1298, 1300, 1302, 1304, 1024 1306, 1308, 1310, 1312, 1318, 1319, 1321, 1323, 1325, 1330, 1025 1331, 1337, 1338, 1340, 1342, 1347, 1349, 1351, 1353, 1358, 1026 1359, 1361, 1363, 1368, 1369, 1371, 1376, 1377, 1379, 1381, 1027 1386, 1388, 1390, 1395, 1396, 1400, 1402, 1404, 1406, 1408, 1028 1413, 1415, 1420, 1422, 1427, 1428, 1430, 1431, 1436, 1437, 1029 1439, 1441, 1446, 1448, 1454, 1455, 1457, 1460, 1463, 1468, 1030 1469, 1474, 1479, 1483, 1485, 1487, 1492, 1494, 1500, 1501, 1031 1509, 1510, 1514, 1515, 1516, 1518, 1520, 1527, 1528, 1530, 1032 1532, 1537, 1538, 1544, 1545, 1549, 1550, 1555, 1556, 1557, 1033 1559, 1567, 1568, 1570, 1573, 1575, 1579, 1580, 1581, 1583, 1034 1585, 1589, 1594, 1602, 1603, 1612, 1614, 1619, 1620, 1621, 1035 1625, 1626, 1627, 1631, 1632, 1633, 1637, 1638, 1639, 1644, 1036 1645, 1646, 1647, 1653, 1654, 1659, 1660, 1664, 1665, 1666, 1037 1667, 1682, 1683, 1688, 1689, 1696, 1698, 1700, 1703, 1705, 1038 1707, 1730, 1731, 1733, 1735, 1740, 1741, 1743, 1748, 1753, 1039 1754, 1760, 1759, 1763, 1767, 1769, 1771, 1777, 1778, 1783, 1040 1788, 1790, 1795, 1797, 1798, 1800, 1805, 1807, 1809, 1814, 1041 1816, 1821, 1826, 1834, 1840, 1839, 1853, 1854, 1859, 1860, 1042 1864, 1869, 1874, 1882, 1887, 1898, 1899, 1910, 1911, 1917, 1043 1918, 1922, 1923, 1924, 1927, 1926, 1937, 1942, 1947, 1953, 1044 1962, 1968, 1974, 1980, 1986, 1994, 2000, 2008, 2014, 2023, 1045 2024, 2025, 2029, 2033, 2035, 2040, 2041, 2045, 2046, 2051, 1046 2057, 2058, 2061, 2063, 2064, 2068, 2069, 2070, 2071, 2105, 1047 2107, 2108, 2110, 2115, 2120, 2125, 2127, 2129, 2134, 2136, 1048 2138, 2140, 2145, 2147, 2157, 2159, 2160, 2165, 2167, 2169, 1049 2174, 2176, 2178, 2183, 2185, 2187, 2196, 2197, 2198, 2202, 1050 2204, 2206, 2211, 2213, 2215, 2220, 2222, 2224, 2239, 2241, 1051 2242, 2244, 2249, 2250, 2255, 2257, 2259, 2264, 2266, 2268, 1052 2270, 2275, 2277, 2279, 2289, 2291, 2292, 2294, 2299, 2301, 1053 2303, 2308, 2310, 2312, 2314, 2319, 2321, 2323, 2354, 2356, 1054 2357, 2359, 2364, 2369, 2377, 2379, 2381, 2386, 2388, 2393, 1055 2395, 2409, 2410, 2412, 2417, 2419, 2421, 2423, 2425, 2430, 1056 2431, 2433, 2435, 2440, 2442, 2444, 2450, 2452, 2454, 2458, 1057 2460, 2462, 2464, 2478, 2479, 2481, 2486, 2488, 2490, 2492, 1058 2494, 2499, 2500, 2502, 2504, 2509, 2511, 2513, 2519, 2520, 1059 2522, 2531, 2534, 2536, 2539, 2541, 2543, 2556, 2557, 2559, 1060 2564, 2566, 2568, 2570, 2572, 2577, 2578, 2580, 2582, 2587, 1061 2589, 2597, 2598, 2599, 2604, 2605, 2609, 2611, 2613, 2615, 1062 2617, 2619, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, 1063 2642, 2644, 2649, 2651, 2653, 2658, 2684, 2685, 2687, 2691, 1064 2692, 2696, 2698, 2700, 2702, 2704, 2706, 2713, 2715, 2717, 1065 2719, 2721, 2723, 2728, 2733, 2735, 2737, 2755, 2757, 2762, 1066 2763 1058 1067 }; 1059 1068 #endif … … 1103 1112 "exception_statement", "handler_list", "handler_clause", 1104 1113 "finally_clause", "exception_declaration", "asm_statement", 1105 "asm_ operands_opt", "asm_operands_list", "asm_operand",1106 "asm_ clobbers_list", "declaration_list_opt", "declaration_list",1107 " old_declaration_list_opt", "old_declaration_list",1108 " label_declaration_opt", "label_declaration_list", "label_list",1109 " declaration", "new_declaration", "new_variable_declaration",1110 "new_ variable_specifier", "new_function_declaration",1111 "new_function_ specifier", "new_function_return",1112 "new_ typedef_declaration", "typedef_declaration", "typedef_expression",1113 " old_declaration", "declaring_list", "declaration_specifier",1114 " type_specifier", "type_qualifier_list_opt", "type_qualifier_list",1115 "type_qualifier ", "type_qualifier_name", "$@1",1114 "asm_volatile_opt", "asm_operands_opt", "asm_operands_list", 1115 "asm_operand", "asm_clobbers_list_opt", "label_list", 1116 "declaration_list_opt", "declaration_list", "old_declaration_list_opt", 1117 "old_declaration_list", "local_label_declaration_opt", 1118 "local_label_declaration_list", "local_label_list", "declaration", 1119 "new_declaration", "new_variable_declaration", "new_variable_specifier", 1120 "new_function_declaration", "new_function_specifier", 1121 "new_function_return", "new_typedef_declaration", "typedef_declaration", 1122 "typedef_expression", "old_declaration", "declaring_list", 1123 "declaration_specifier", "type_specifier", "type_qualifier_list_opt", 1124 "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1", 1116 1125 "declaration_qualifier_list", "storage_class_list", "storage_class", 1117 1126 "storage_class_name", "basic_type_name", "basic_declaration_specifier", … … 1197 1206 0, 125, 126, 127, 128, 128, 128, 129, 129, 129, 1198 1207 130, 130, 131, 132, 132, 133, 133, 134, 134, 134, 1199 134, 13 4, 134, 135, 135, 135, 135, 135, 135, 135,1200 135, 13 5, 135, 136, 136, 137, 137, 137, 137, 137,1201 13 8, 138, 139, 139, 139, 139, 139, 140, 140, 140,1208 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, 1209 135, 136, 136, 137, 137, 137, 137, 137, 138, 138, 1210 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, 1202 1211 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 1203 1212 140, 140, 141, 141, 141, 141, 142, 142, 142, 143, … … 1216 1225 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 1217 1226 187, 188, 188, 188, 188, 188, 189, 189, 189, 189, 1218 190, 190, 191, 191, 192, 193, 193, 194, 194, 195, 1219 195, 196, 196, 197, 197, 198, 198, 199, 199, 200, 1220 200, 201, 201, 202, 202, 202, 202, 202, 203, 203, 1221 203, 204, 204, 204, 205, 205, 205, 205, 205, 206, 1222 206, 206, 207, 207, 208, 208, 208, 209, 209, 209, 1223 209, 209, 210, 210, 211, 211, 211, 211, 212, 212, 1224 213, 213, 213, 213, 214, 214, 214, 214, 215, 215, 1225 216, 216, 217, 217, 218, 218, 218, 218, 218, 219, 1226 218, 220, 220, 220, 221, 221, 222, 223, 223, 223, 1227 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 1228 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 1229 225, 225, 226, 226, 227, 227, 227, 227, 228, 228, 1230 228, 228, 229, 229, 229, 229, 230, 230, 230, 231, 1231 231, 231, 231, 232, 232, 232, 233, 233, 234, 234, 1232 234, 234, 234, 235, 235, 236, 236, 237, 237, 237, 1233 237, 238, 238, 238, 238, 239, 239, 240, 240, 240, 1234 240, 240, 241, 241, 242, 243, 244, 244, 244, 245, 1235 245, 246, 246, 247, 247, 248, 248, 248, 248, 248, 1236 249, 249, 249, 249, 250, 250, 251, 251, 252, 252, 1237 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 1238 255, 255, 255, 255, 256, 256, 257, 257, 258, 258, 1239 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 1240 262, 262, 263, 263, 263, 263, 264, 264, 265, 265, 1241 266, 266, 266, 266, 267, 267, 268, 268, 269, 269, 1242 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 1243 272, 273, 273, 275, 274, 274, 276, 276, 276, 277, 1244 277, 278, 278, 278, 279, 279, 279, 279, 280, 280, 1245 280, 281, 281, 282, 282, 283, 284, 283, 285, 285, 1246 286, 286, 287, 287, 287, 288, 288, 289, 289, 290, 1247 290, 291, 291, 292, 292, 292, 293, 292, 292, 294, 1248 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 1249 295, 296, 296, 296, 297, 298, 298, 299, 299, 300, 1250 300, 301, 302, 302, 303, 303, 303, 304, 304, 304, 1251 304, 305, 305, 305, 305, 306, 306, 307, 307, 307, 1252 308, 308, 308, 308, 309, 309, 310, 310, 310, 311, 1253 311, 311, 312, 312, 312, 313, 313, 313, 314, 314, 1254 314, 315, 315, 315, 316, 316, 316, 317, 317, 317, 1255 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1256 321, 321, 321, 322, 322, 322, 323, 323, 323, 323, 1257 324, 324, 324, 325, 325, 325, 325, 326, 326, 326, 1258 327, 327, 327, 327, 328, 328, 329, 329, 329, 330, 1259 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 1260 333, 334, 334, 334, 334, 335, 335, 335, 336, 336, 1261 336, 337, 337, 337, 337, 338, 338, 338, 339, 339, 1262 339, 339, 339, 340, 340, 340, 340, 341, 341, 341, 1263 342, 342, 342, 343, 343, 343, 343, 343, 343, 344, 1264 344, 344, 345, 345, 345, 345, 345, 346, 346, 346, 1265 346, 347, 347, 348, 348, 348, 349, 349, 350, 350, 1266 350, 350, 350, 350, 351, 351, 351, 351, 351, 351, 1267 351, 351, 351, 351, 352, 352, 352, 352, 353, 353, 1268 353, 354, 354, 355, 355, 355, 355, 355, 355, 356, 1269 356, 356, 356, 356, 356, 357, 358, 358, 358, 359, 1270 359, 360, 360 1227 189, 190, 190, 191, 191, 192, 192, 193, 193, 194, 1228 194, 194, 195, 195, 196, 196, 197, 197, 198, 198, 1229 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, 1230 204, 204, 204, 204, 204, 205, 205, 205, 206, 206, 1231 206, 207, 207, 207, 207, 207, 208, 208, 208, 209, 1232 209, 210, 210, 210, 211, 211, 211, 211, 211, 212, 1233 212, 213, 213, 213, 213, 214, 214, 215, 215, 215, 1234 215, 216, 216, 216, 216, 217, 217, 218, 218, 219, 1235 219, 220, 220, 220, 220, 220, 221, 220, 222, 222, 1236 222, 223, 223, 224, 225, 225, 225, 225, 225, 225, 1237 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 1238 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 1239 228, 229, 229, 229, 229, 230, 230, 230, 230, 231, 1240 231, 231, 231, 232, 232, 232, 233, 233, 233, 233, 1241 234, 234, 234, 235, 235, 236, 236, 236, 236, 236, 1242 237, 237, 238, 238, 239, 239, 239, 239, 240, 240, 1243 240, 240, 241, 241, 242, 242, 242, 242, 242, 243, 1244 243, 244, 245, 246, 246, 246, 247, 247, 248, 248, 1245 249, 249, 250, 250, 250, 250, 250, 251, 251, 251, 1246 251, 252, 252, 253, 253, 254, 254, 255, 255, 255, 1247 255, 256, 256, 256, 256, 256, 257, 257, 257, 257, 1248 257, 258, 258, 259, 259, 260, 260, 261, 261, 261, 1249 262, 262, 262, 263, 263, 263, 264, 264, 264, 265, 1250 265, 265, 265, 266, 266, 267, 267, 268, 268, 268, 1251 268, 269, 269, 270, 270, 271, 271, 271, 271, 271, 1252 271, 272, 272, 272, 272, 273, 273, 273, 274, 275, 1253 275, 277, 276, 276, 278, 278, 278, 279, 279, 280, 1254 280, 280, 281, 281, 281, 281, 282, 282, 282, 283, 1255 283, 284, 284, 285, 286, 285, 287, 287, 288, 288, 1256 289, 289, 289, 290, 290, 291, 291, 292, 292, 293, 1257 293, 294, 294, 294, 295, 294, 294, 296, 296, 296, 1258 297, 297, 297, 297, 297, 297, 297, 297, 297, 298, 1259 298, 298, 299, 300, 300, 301, 301, 302, 302, 303, 1260 304, 304, 305, 305, 305, 306, 306, 306, 306, 307, 1261 307, 307, 307, 308, 308, 309, 309, 309, 310, 310, 1262 310, 310, 311, 311, 312, 312, 312, 313, 313, 313, 1263 314, 314, 314, 315, 315, 315, 316, 316, 316, 317, 1264 317, 317, 318, 318, 318, 319, 319, 319, 320, 320, 1265 320, 320, 321, 321, 322, 322, 322, 323, 323, 323, 1266 323, 324, 324, 324, 325, 325, 325, 325, 326, 326, 1267 326, 327, 327, 327, 327, 328, 328, 328, 329, 329, 1268 329, 329, 330, 330, 331, 331, 331, 332, 332, 333, 1269 333, 334, 334, 334, 335, 335, 335, 335, 335, 336, 1270 336, 336, 336, 337, 337, 337, 338, 338, 338, 339, 1271 339, 339, 339, 340, 340, 340, 341, 341, 341, 341, 1272 341, 342, 342, 342, 342, 343, 343, 343, 344, 344, 1273 344, 345, 345, 345, 345, 345, 345, 346, 346, 346, 1274 347, 347, 347, 347, 347, 348, 348, 348, 348, 349, 1275 349, 350, 350, 350, 351, 351, 352, 352, 352, 352, 1276 352, 352, 353, 353, 353, 353, 353, 353, 353, 353, 1277 353, 353, 354, 354, 354, 354, 355, 355, 355, 356, 1278 356, 357, 357, 357, 357, 357, 357, 358, 358, 358, 1279 358, 358, 358, 359, 360, 360, 360, 361, 361, 362, 1280 362 1271 1281 }; 1272 1282 … … 1275 1285 { 1276 1286 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1277 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,1278 1, 3, 3, 1, 6, 4, 3, 7, 3, 7,1279 2, 2, 7, 1, 3, 0, 1, 3, 7, 9,1280 1, 3, 1, 3, 7, 3, 7, 1, 2, 2,1287 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1288 3, 1, 6, 4, 3, 7, 3, 7, 2, 2, 1289 7, 1, 3, 0, 1, 3, 7, 9, 1, 3, 1290 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1281 1291 2, 2, 2, 2, 2, 4, 1, 4, 4, 2, 1282 1292 4, 2, 1, 1, 1, 1, 1, 4, 4, 1, … … 1295 1305 3, 2, 3, 3, 4, 1, 5, 6, 9, 10, 1296 1306 2, 1, 2, 2, 2, 1, 6, 8, 10, 12, 1297 0, 1, 1, 3, 4, 1, 3, 1, 1, 1, 1298 3, 1, 1, 1, 3, 0, 1, 3, 4, 1, 1299 3, 1, 1, 3, 3, 3, 3, 3, 2, 3, 1300 6, 3, 3, 4, 1, 2, 2, 3, 5, 8, 1301 7, 7, 5, 9, 2, 2, 5, 3, 5, 4, 1302 3, 4, 4, 7, 3, 3, 3, 3, 4, 6, 1303 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1304 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1305 5, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1307 14, 0, 1, 0, 1, 1, 3, 4, 7, 0, 1308 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1309 1, 3, 0, 1, 3, 4, 1, 3, 1, 1, 1310 3, 3, 3, 3, 3, 2, 3, 6, 3, 3, 1311 4, 1, 2, 2, 3, 5, 8, 7, 7, 5, 1312 9, 2, 2, 5, 3, 5, 4, 3, 4, 4, 1313 7, 3, 3, 3, 3, 4, 6, 1, 1, 1, 1314 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1315 1, 1, 1, 1, 1, 1, 0, 5, 1, 2, 1316 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1306 1317 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1307 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,1308 3, 3, 1, 3, 1, 2, 2, 2, 4, 4,1309 4, 4, 1, 2, 2, 3, 1, 2, 2, 1,1310 2, 2, 3, 1, 2, 2, 1, 1, 4, 2,1311 5, 7, 2, 2, 2, 1, 2, 2, 3, 2,1312 3, 1, 2, 3, 2, 2, 4, 0, 1, 2,1313 2, 1, 0, 1, 2, 2, 5, 6, 2, 2,1314 4, 0, 2, 0, 1, 1, 1, 5, 5, 5,1315 1, 5, 5, 9, 1, 5, 0, 1, 1, 5,1316 1, 1, 5, 5, 1, 3, 3, 4, 1, 1,1317 1, 1, 2, 1, 3, 3, 1, 2, 1, 3,1318 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1319 1, 2, 1, 1, 1, 2, 0, 2, 1, 4,1320 1, 2, 3, 4, 2, 2, 1, 2, 2, 5,1321 5, 7, 6, 1, 2, 2, 3, 1, 2, 2,1322 4, 2, 4, 0, 4, 2, 1, 1, 1, 0,1323 2, 5, 5, 13, 1, 1, 3, 3, 2, 3,1324 3, 2, 4, 1, 6, 9, 0, 11, 1, 3,1325 3, 3, 1, 1, 5, 2, 5, 0, 1, 1,1326 3, 0, 1, 1, 1, 1, 0, 6, 2, 1,1327 2, 4, 2, 3, 3, 3, 4, 5, 5, 5,1328 6, 1, 1, 1, 3, 0, 5, 0, 1, 1,1329 2, 6, 1, 3, 0, 1, 4, 1, 1, 1,1330 1, 2, 1, 2, 2, 1, 3, 2, 3, 3,1331 2, 4, 4, 3, 8, 3, 2, 1, 2, 6,1332 8, 3, 2, 3, 3, 4, 4, 3, 1, 1,1333 1, 4, 6, 3, 2, 3, 3, 4, 4, 3,1334 2, 1, 2, 2, 1, 3, 2, 3, 3, 2,1335 4, 4, 3, 6, 8, 3, 2, 1, 2, 2,1336 2, 3, 3, 2, 4, 4, 3, 6, 8, 3,1337 2, 1, 2, 2, 1, 1, 2, 3, 3, 2,1338 4, 6, 8, 1, 2, 2, 1, 2, 2, 3,1339 3, 1, 4, 4, 3, 5, 8, 3, 2, 3,1340 1, 5, 5, 6, 6, 1, 2, 2, 1, 2,1341 2, 3, 3, 1, 4, 4, 3, 5, 8, 3,1342 1, 2, 1, 2, 6, 5, 6, 7, 7, 1,1343 2, 2, 1, 2, 2, 3, 3, 1, 4, 4,1344 3, 8, 3, 1, 1, 2, 1, 1, 2, 3,1345 2, 3, 2, 3, 3, 2, 4, 3, 2, 3,1346 2, 4, 3, 2, 6, 6, 6, 7, 1, 2,1347 1, 1, 1, 2, 3, 2, 3, 2, 3, 3,1348 4, 2, 3, 4, 2, 5, 5, 6, 6, 0,1349 1, 0,21318 1, 1, 1, 1, 1, 2, 2, 3, 3, 1, 1319 3, 1, 2, 2, 2, 4, 4, 4, 4, 1, 1320 2, 2, 3, 1, 2, 2, 1, 2, 2, 3, 1321 1, 2, 2, 1, 1, 4, 2, 5, 7, 2, 1322 2, 2, 1, 2, 2, 3, 2, 3, 1, 2, 1323 3, 2, 2, 4, 0, 1, 2, 2, 1, 0, 1324 1, 2, 2, 5, 6, 2, 2, 4, 0, 2, 1325 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1326 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1327 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1328 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1329 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1330 1, 1, 2, 0, 2, 1, 4, 1, 2, 3, 1331 4, 2, 2, 1, 2, 1, 2, 5, 5, 7, 1332 6, 1, 2, 2, 3, 1, 2, 2, 4, 2, 1333 4, 0, 4, 2, 1, 1, 1, 0, 2, 5, 1334 5, 13, 1, 1, 3, 3, 2, 3, 3, 2, 1335 4, 1, 6, 9, 0, 11, 1, 3, 3, 3, 1336 1, 1, 5, 2, 5, 0, 1, 1, 3, 0, 1337 1, 1, 1, 1, 0, 6, 2, 1, 2, 4, 1338 2, 3, 3, 3, 4, 5, 5, 5, 6, 1, 1339 1, 1, 3, 0, 5, 0, 1, 1, 2, 6, 1340 1, 3, 0, 1, 4, 1, 1, 1, 1, 2, 1341 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1342 4, 3, 8, 3, 2, 1, 2, 6, 8, 3, 1343 2, 3, 3, 4, 4, 3, 1, 1, 1, 4, 1344 6, 3, 2, 3, 3, 4, 4, 3, 2, 1, 1345 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1346 3, 6, 8, 3, 2, 1, 2, 2, 2, 3, 1347 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1348 2, 2, 1, 1, 2, 3, 3, 2, 4, 6, 1349 8, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1350 4, 4, 3, 5, 8, 3, 2, 3, 1, 5, 1351 5, 6, 6, 1, 2, 2, 1, 2, 2, 3, 1352 3, 1, 4, 4, 3, 5, 8, 3, 1, 2, 1353 1, 2, 6, 5, 6, 7, 7, 1, 2, 2, 1354 1, 2, 2, 3, 3, 1, 4, 4, 3, 8, 1355 3, 1, 1, 2, 1, 1, 2, 3, 2, 3, 1356 2, 3, 3, 2, 4, 3, 2, 3, 2, 4, 1357 3, 2, 6, 6, 6, 7, 1, 2, 1, 1, 1358 1, 2, 3, 2, 3, 2, 3, 3, 4, 2, 1359 3, 4, 2, 5, 5, 6, 6, 0, 1, 0, 1360 2 1350 1361 }; 1351 1362 … … 1355 1366 static const yytype_uint16 yydefact[] = 1356 1367 { 1357 2 78, 278, 299, 297, 300, 298, 301, 302, 284, 286,1358 2 85, 0, 287, 313, 305, 310, 308, 309, 307, 306,1359 31 1, 312, 314, 315, 316, 527, 527, 527, 0, 0,1360 0, 2 78, 278, 288, 303, 304, 7, 343, 0, 8,1361 13, 14, 0, 2, 2 78, 545, 9, 505, 503, 231,1362 3, 4 36, 3, 244, 0, 3, 3, 3, 232, 3,1363 0, 0, 0, 2 79, 280, 282, 278, 291, 294, 296,1364 3 24, 270, 317, 322, 271, 332, 272, 339, 336, 346,1365 0, 0, 3 47, 273, 453, 457, 3, 3, 0, 2,1366 499, 504, 509, 283, 0, 0, 527, 557, 527, 2,1367 5 68, 569, 570, 278, 0, 711, 712, 0, 12, 278,1368 0, 2 54, 255, 0, 279, 274, 275, 276, 277, 506,1369 2 89, 375, 528, 529, 353, 354, 12, 427, 428, 11,1370 4 23, 426, 0, 483, 478, 469, 427, 428, 0, 0,1371 5 08, 0, 279, 278, 0, 0, 0, 0, 0, 0,1372 0, 0, 2 78, 278, 2, 0, 713, 279, 562, 574,1373 7 17, 710, 708, 715, 0, 0, 238, 2, 0, 512,1374 42 1, 422, 420, 0, 0, 0, 0, 527, 0, 614,1375 6 15, 0, 0, 525, 521, 527, 542, 527, 527, 522,1376 2, 5 23, 527, 581, 527, 527, 584, 0, 0, 0,1377 2 78, 278, 297, 344, 2, 278, 245, 281, 292, 325,1378 3 37, 458, 0, 2, 0, 436, 246, 279, 318, 333,1379 34 0, 454, 0, 2, 0, 295, 319, 326, 327, 0,1380 3 34, 338, 341, 345, 428, 278, 278, 349, 352, 0,1381 3 78, 455, 459, 0, 0, 0, 1, 278, 2, 510,1382 5 56, 558, 278, 2, 721, 279, 724, 525, 525, 279,1383 0, 0, 0, 2 57, 527, 522, 2, 278, 0, 0,1384 2 78, 530, 2, 481, 2, 534, 0, 0, 0, 0,1385 17, 56, 4, 5, 6, 15, 0, 0, 0, 278,1386 2, 0, 278, 62, 63, 64, 65, 19, 18, 20,1387 23, 47, 66, 0, 69, 73, 76, 79, 84, 87,1388 8 9, 91, 93, 95, 97, 102, 475, 731, 434, 474,1389 0, 432, 433, 0, 546, 561, 564, 567, 573, 576,1390 5 79, 343, 0, 2, 719, 0, 278, 722, 2, 278,1391 3, 408, 0, 416, 279, 278, 291, 317, 271, 332,1392 339, 3, 3, 390, 394, 404, 409, 453, 278, 410,1393 686, 687, 278, 411, 413, 278, 2, 563, 575, 709,1394 2, 2, 233, 2, 0, 0, 438, 437, 137, 2,1395 2, 235, 2, 2, 234, 2, 265, 2, 266, 0,1396 264, 0, 0, 0, 0, 0, 0, 0, 0, 0,1397 547, 586, 0, 436, 2, 541, 550, 640, 543, 544,1398 5 13, 278, 2, 580, 589, 582, 583, 0, 260, 278,1399 2 78, 323, 0, 279, 0, 278, 714, 718, 716, 514,1400 278, 525, 239, 247, 293, 0, 2, 515, 278, 479,1401 320, 321, 267, 335, 342, 0, 278, 2, 367, 278,1402 3 55, 0, 0, 361, 708, 278, 729, 381, 0, 456,1403 480, 236, 237, 500, 278, 418, 0, 278, 221, 0,1404 2, 223, 0, 279, 0, 241, 2, 242, 262, 0,1405 0, 2, 278, 525, 278, 466, 468, 467, 0, 0,1406 731, 0, 278, 0, 278, 470, 278, 540, 538, 539,1407 5 37, 0, 532, 535, 66, 101, 0, 278, 54, 50,1408 278, 59, 278, 278, 48, 49, 61, 2, 124, 0,1409 0, 430, 0, 429, 108, 278, 52, 53, 16, 0,1410 30, 31, 35, 2, 0, 114, 115, 116, 117, 118,1411 11 9, 120, 121, 122, 123, 0, 0, 51, 0, 0,1368 285, 285, 306, 304, 307, 305, 308, 309, 291, 293, 1369 292, 0, 294, 320, 312, 317, 315, 316, 314, 313, 1370 318, 319, 321, 322, 323, 535, 535, 535, 0, 0, 1371 0, 285, 211, 295, 310, 311, 7, 350, 0, 8, 1372 13, 14, 0, 2, 285, 553, 9, 513, 511, 238, 1373 3, 443, 3, 251, 0, 3, 3, 3, 239, 3, 1374 0, 0, 0, 286, 287, 289, 285, 298, 301, 303, 1375 331, 277, 324, 329, 278, 339, 279, 346, 343, 353, 1376 0, 0, 354, 280, 461, 465, 3, 3, 0, 2, 1377 507, 512, 517, 290, 0, 0, 535, 565, 535, 2, 1378 576, 577, 578, 285, 0, 719, 720, 0, 12, 285, 1379 0, 261, 262, 0, 286, 281, 282, 283, 284, 514, 1380 296, 382, 536, 537, 360, 361, 12, 434, 435, 11, 1381 430, 433, 0, 491, 486, 477, 434, 435, 0, 0, 1382 516, 212, 0, 285, 0, 0, 0, 0, 0, 0, 1383 0, 0, 285, 285, 2, 0, 721, 286, 570, 582, 1384 725, 718, 716, 723, 0, 0, 245, 2, 0, 520, 1385 428, 429, 427, 0, 0, 0, 0, 535, 0, 622, 1386 623, 0, 0, 533, 529, 535, 550, 535, 535, 530, 1387 2, 531, 535, 589, 535, 535, 592, 0, 0, 0, 1388 285, 285, 304, 351, 2, 285, 252, 288, 299, 332, 1389 344, 466, 0, 2, 0, 443, 253, 286, 325, 340, 1390 347, 462, 0, 2, 0, 302, 326, 333, 334, 0, 1391 341, 345, 348, 352, 435, 285, 285, 356, 359, 0, 1392 385, 463, 467, 0, 0, 0, 1, 285, 2, 518, 1393 564, 566, 285, 2, 729, 286, 732, 533, 533, 286, 1394 0, 0, 0, 264, 535, 530, 2, 285, 0, 0, 1395 285, 538, 2, 489, 2, 542, 0, 0, 0, 0, 1396 0, 17, 56, 4, 5, 6, 15, 0, 0, 0, 1397 285, 2, 0, 285, 62, 63, 64, 65, 46, 18, 1398 47, 21, 45, 66, 0, 69, 73, 76, 79, 84, 1399 87, 89, 91, 93, 95, 97, 102, 483, 739, 441, 1400 482, 0, 439, 440, 0, 554, 569, 572, 575, 581, 1401 584, 587, 350, 0, 2, 727, 0, 285, 730, 2, 1402 285, 3, 415, 0, 423, 286, 285, 298, 324, 278, 1403 339, 346, 3, 3, 397, 401, 411, 416, 461, 285, 1404 417, 694, 695, 285, 418, 420, 285, 2, 571, 583, 1405 717, 2, 2, 240, 2, 0, 0, 445, 444, 137, 1406 2, 2, 242, 2, 2, 241, 2, 272, 2, 273, 1407 0, 271, 0, 0, 0, 0, 0, 0, 0, 0, 1408 0, 555, 594, 0, 443, 2, 549, 558, 648, 551, 1409 552, 521, 285, 2, 588, 597, 590, 591, 0, 267, 1410 285, 285, 330, 286, 0, 286, 0, 285, 722, 726, 1411 724, 522, 285, 533, 246, 254, 300, 0, 2, 523, 1412 285, 487, 327, 328, 274, 342, 349, 0, 285, 2, 1413 374, 285, 362, 0, 0, 368, 716, 285, 737, 388, 1414 0, 464, 488, 243, 244, 508, 285, 425, 0, 285, 1415 228, 0, 2, 230, 0, 286, 0, 248, 2, 249, 1416 269, 0, 0, 2, 285, 533, 285, 474, 476, 475, 1417 0, 0, 739, 0, 285, 0, 285, 478, 285, 548, 1418 546, 547, 545, 0, 540, 543, 0, 0, 285, 54, 1419 66, 50, 285, 59, 285, 285, 48, 49, 61, 2, 1420 124, 0, 0, 437, 0, 436, 108, 285, 52, 53, 1421 16, 0, 28, 29, 33, 2, 0, 114, 115, 116, 1422 117, 118, 119, 120, 121, 122, 123, 0, 0, 51, 1412 1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1413 0, 0, 0, 0, 0, 0, 0, 0, 105, 2, 1414 626, 435, 623, 527, 527, 631, 460, 278, 2, 565, 1415 566, 0, 577, 578, 0, 2, 720, 723, 108, 278, 1416 2, 278, 0, 688, 279, 692, 683, 684, 690, 0, 1417 2, 2, 648, 527, 731, 597, 527, 527, 731, 527, 1418 611, 527, 527, 662, 417, 645, 527, 527, 653, 660, 1419 278, 412, 279, 0, 0, 278, 698, 279, 703, 731, 1420 695, 278, 700, 731, 278, 278, 278, 0, 108, 0, 1421 17, 2, 0, 0, 440, 729, 0, 0, 446, 225, 1422 0, 278, 0, 0, 0, 525, 549, 553, 555, 585, 1423 588, 592, 595, 548, 587, 0, 268, 638, 0, 278, 1424 261, 0, 0, 0, 0, 259, 2, 0, 243, 516, 1425 278, 0, 0, 0, 0, 278, 278, 0, 0, 672, 1426 365, 368, 372, 527, 372, 677, 371, 669, 527, 527, 1427 348, 356, 364, 357, 527, 359, 362, 278, 730, 0, 1428 0, 379, 729, 279, 3, 397, 3, 401, 400, 571, 1429 0, 511, 278, 3, 3, 278, 416, 279, 3, 410, 1430 411, 2, 0, 0, 0, 465, 290, 278, 461, 463, 1431 3, 2, 2, 0, 482, 3, 0, 534, 126, 0, 1432 210, 0, 0, 2, 0, 0, 36, 0, 0, 108, 1433 278, 21, 0, 22, 0, 672, 431, 0, 106, 3, 1434 2, 28, 2, 0, 33, 0, 2, 26, 103, 104, 1435 70, 71, 72, 74, 75, 77, 78, 82, 83, 80, 1436 81, 85, 86, 88, 90, 92, 94, 96, 0, 0, 1437 732, 278, 0, 0, 0, 627, 628, 624, 625, 477, 1438 476, 278, 0, 3, 278, 694, 278, 699, 279, 278, 1439 278, 278, 642, 685, 641, 2, 278, 0, 0, 0, 1440 0, 0, 0, 0, 0, 663, 0, 649, 600, 616, 1441 650, 2, 596, 603, 414, 598, 599, 415, 2, 610, 1442 619, 612, 613, 646, 647, 661, 689, 693, 691, 731, 1443 252, 2, 725, 2, 405, 697, 702, 406, 0, 384, 1444 3, 3, 3, 3, 436, 3, 0, 2, 448, 445, 1445 730, 0, 441, 2, 444, 447, 0, 278, 226, 248, 1446 3, 256, 258, 0, 436, 2, 551, 552, 2, 590, 1447 591, 0, 639, 517, 3, 329, 328, 331, 330, 278, 1448 518, 0, 519, 278, 358, 360, 2, 0, 0, 0, 1449 0, 374, 673, 674, 369, 373, 370, 670, 671, 363, 1450 367, 350, 381, 376, 382, 0, 0, 0, 419, 224, 1451 0, 0, 3, 2, 648, 412, 0, 507, 0, 731, 1452 469, 0, 278, 278, 278, 0, 531, 533, 127, 0, 1453 206, 0, 0, 211, 212, 55, 60, 278, 0, 58, 1454 57, 0, 125, 673, 0, 67, 68, 107, 112, 3, 1455 106, 0, 0, 0, 25, 35, 3, 0, 99, 0, 1456 3, 630, 634, 637, 629, 3, 572, 3, 696, 701, 1457 2, 278, 3, 3, 279, 0, 3, 602, 606, 609, 1458 618, 652, 656, 659, 278, 3, 601, 617, 651, 278, 1459 278, 407, 278, 278, 726, 0, 0, 0, 0, 240, 1460 0, 101, 0, 3, 3, 0, 442, 0, 439, 0, 1461 0, 229, 278, 0, 0, 126, 0, 0, 0, 0, 1462 0, 126, 0, 0, 0, 2, 0, 0, 3, 128, 1463 129, 2, 139, 130, 131, 132, 133, 134, 135, 141, 1464 143, 0, 0, 0, 269, 278, 278, 527, 0, 520, 1465 278, 108, 676, 680, 682, 675, 366, 380, 377, 559, 1466 2, 644, 643, 0, 649, 2, 462, 464, 484, 3, 1467 492, 493, 0, 2, 488, 3, 3, 0, 0, 536, 1468 0, 0, 210, 0, 3, 37, 729, 106, 0, 3, 1469 641, 42, 3, 40, 3, 34, 0, 3, 98, 100, 1470 0, 2, 632, 633, 0, 0, 278, 0, 0, 0, 1471 3, 618, 0, 2, 604, 605, 2, 620, 2, 654, 1472 655, 0, 0, 3, 0, 3, 3, 3, 3, 392, 1473 391, 395, 2, 2, 728, 727, 109, 0, 0, 0, 1474 0, 3, 443, 3, 0, 227, 142, 3, 279, 278, 1424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1425 105, 2, 634, 442, 631, 535, 535, 639, 468, 285, 1426 2, 573, 574, 0, 585, 586, 0, 2, 728, 731, 1427 108, 285, 2, 285, 0, 696, 286, 700, 691, 692, 1428 698, 0, 2, 2, 656, 535, 739, 605, 535, 535, 1429 739, 535, 619, 535, 535, 670, 424, 653, 535, 535, 1430 661, 668, 285, 419, 286, 0, 0, 285, 706, 286, 1431 711, 739, 703, 285, 708, 739, 285, 285, 285, 0, 1432 108, 0, 17, 5, 2, 0, 0, 447, 737, 0, 1433 0, 453, 232, 0, 285, 0, 0, 0, 533, 557, 1434 561, 563, 593, 596, 600, 603, 556, 595, 0, 275, 1435 646, 0, 285, 268, 0, 0, 0, 0, 266, 2, 1436 0, 250, 524, 285, 0, 0, 0, 0, 285, 285, 1437 0, 0, 680, 372, 375, 379, 535, 379, 685, 378, 1438 677, 535, 535, 355, 363, 371, 364, 535, 366, 369, 1439 285, 738, 0, 0, 386, 737, 286, 3, 404, 3, 1440 408, 407, 579, 0, 519, 285, 3, 3, 285, 423, 1441 286, 3, 417, 418, 2, 0, 0, 0, 473, 297, 1442 285, 469, 471, 3, 2, 2, 0, 490, 3, 0, 1443 542, 126, 0, 0, 213, 0, 0, 2, 0, 0, 1444 34, 0, 0, 108, 285, 19, 0, 20, 0, 680, 1445 438, 0, 106, 3, 2, 26, 2, 0, 31, 0, 1446 2, 24, 103, 104, 70, 71, 72, 74, 75, 77, 1447 78, 82, 83, 80, 81, 85, 86, 88, 90, 92, 1448 94, 96, 0, 0, 740, 285, 0, 0, 0, 635, 1449 636, 632, 633, 485, 484, 285, 0, 3, 285, 702, 1450 285, 707, 286, 285, 285, 285, 650, 693, 649, 2, 1451 285, 0, 0, 0, 0, 0, 0, 0, 0, 671, 1452 0, 657, 608, 624, 658, 2, 604, 611, 421, 606, 1453 607, 422, 2, 618, 627, 620, 621, 654, 655, 669, 1454 697, 701, 699, 739, 259, 2, 733, 2, 412, 705, 1455 710, 413, 0, 391, 3, 3, 3, 3, 443, 3, 1456 0, 2, 456, 452, 738, 0, 448, 455, 2, 451, 1457 454, 0, 285, 233, 255, 3, 263, 265, 0, 443, 1458 2, 559, 560, 2, 598, 599, 0, 647, 525, 3, 1459 336, 335, 338, 337, 285, 526, 0, 527, 285, 365, 1460 367, 2, 0, 0, 0, 0, 101, 381, 681, 682, 1461 376, 380, 377, 678, 679, 370, 374, 357, 388, 383, 1462 389, 0, 0, 0, 426, 231, 0, 0, 3, 2, 1463 656, 419, 0, 515, 0, 739, 477, 0, 285, 285, 1464 285, 0, 539, 541, 127, 0, 0, 206, 0, 0, 1465 0, 214, 215, 55, 60, 285, 0, 58, 57, 0, 1466 125, 681, 0, 67, 68, 107, 112, 3, 106, 0, 1467 0, 0, 23, 33, 3, 0, 99, 0, 3, 638, 1468 642, 645, 637, 3, 580, 3, 704, 709, 2, 285, 1469 3, 3, 286, 0, 3, 610, 614, 617, 626, 660, 1470 664, 667, 285, 3, 609, 625, 659, 285, 285, 414, 1471 285, 285, 734, 0, 0, 0, 0, 247, 0, 101, 1472 0, 3, 3, 0, 449, 0, 446, 0, 0, 236, 1473 285, 0, 0, 126, 0, 0, 0, 0, 0, 126, 1474 0, 0, 0, 2, 0, 0, 3, 128, 129, 2, 1475 139, 130, 131, 132, 133, 134, 135, 141, 143, 0, 1476 0, 0, 276, 285, 285, 535, 0, 528, 285, 108, 1477 684, 688, 690, 683, 373, 387, 384, 567, 2, 652, 1478 651, 0, 657, 2, 470, 472, 492, 3, 500, 501, 1479 0, 2, 496, 3, 3, 0, 0, 544, 213, 0, 1480 0, 0, 213, 0, 3, 35, 737, 106, 0, 3, 1481 649, 40, 3, 38, 3, 32, 0, 3, 98, 100, 1482 0, 2, 640, 641, 0, 0, 285, 0, 0, 0, 1483 3, 626, 0, 2, 612, 613, 2, 628, 2, 662, 1484 663, 0, 0, 3, 0, 3, 3, 3, 3, 399, 1485 398, 402, 2, 2, 736, 735, 109, 0, 0, 0, 1486 0, 3, 450, 3, 0, 234, 142, 3, 286, 285, 1475 1487 0, 0, 0, 0, 2, 187, 0, 185, 0, 0, 1476 0, 0, 0, 0, 191, 0, 108, 527, 147, 144, 1477 278, 0, 0, 251, 263, 3, 3, 526, 593, 351, 1478 2, 678, 679, 278, 250, 278, 0, 495, 472, 278, 1479 0, 0, 471, 486, 0, 207, 0, 213, 106, 0, 1480 0, 113, 110, 0, 0, 0, 0, 0, 0, 24, 1481 0, 635, 278, 560, 249, 704, 705, 706, 0, 657, 1482 278, 278, 278, 3, 3, 0, 665, 0, 0, 0, 1483 0, 278, 278, 3, 524, 109, 450, 0, 0, 230, 1484 279, 0, 0, 0, 0, 278, 188, 186, 0, 183, 1485 189, 0, 0, 0, 192, 195, 193, 190, 126, 140, 1486 138, 228, 0, 0, 278, 399, 403, 402, 0, 489, 1487 2, 490, 2, 491, 485, 278, 214, 0, 0, 3, 1488 641, 32, 111, 2, 45, 2, 43, 41, 29, 109, 1489 27, 3, 707, 3, 3, 3, 0, 0, 664, 666, 1490 607, 621, 253, 2, 389, 3, 388, 0, 452, 449, 1491 126, 0, 0, 126, 3, 0, 126, 184, 0, 2, 1492 200, 194, 0, 136, 554, 594, 3, 2, 0, 0, 1493 2, 208, 215, 0, 0, 0, 0, 0, 0, 0, 1494 0, 0, 667, 668, 278, 0, 451, 148, 0, 0, 1495 2, 161, 126, 150, 0, 178, 0, 126, 0, 2, 1496 152, 0, 2, 2, 0, 278, 494, 496, 487, 0, 1497 0, 111, 38, 3, 3, 636, 608, 622, 658, 393, 1498 126, 154, 157, 0, 156, 160, 3, 163, 162, 0, 1499 126, 180, 126, 3, 0, 278, 0, 2, 681, 2, 1500 209, 216, 0, 0, 0, 149, 0, 0, 159, 217, 1501 164, 2, 219, 179, 0, 182, 168, 196, 3, 201, 1502 205, 0, 278, 0, 39, 46, 44, 155, 158, 126, 1503 0, 165, 278, 126, 126, 0, 169, 0, 0, 672, 1504 202, 203, 204, 197, 3, 278, 145, 166, 151, 126, 1505 220, 181, 176, 174, 170, 153, 126, 0, 673, 0, 1506 0, 146, 167, 177, 171, 175, 174, 172, 3, 0, 1507 473, 173, 198, 3, 199 1488 0, 0, 0, 0, 191, 0, 108, 535, 147, 144, 1489 285, 0, 0, 258, 270, 3, 3, 534, 601, 358, 1490 2, 686, 687, 285, 257, 285, 0, 503, 480, 285, 1491 0, 0, 479, 494, 0, 0, 0, 207, 0, 216, 1492 106, 0, 0, 113, 110, 0, 0, 0, 0, 0, 1493 0, 22, 0, 643, 285, 568, 256, 712, 713, 714, 1494 0, 665, 285, 285, 285, 3, 3, 0, 673, 0, 1495 0, 0, 0, 285, 285, 3, 532, 457, 458, 0, 1496 0, 237, 286, 0, 0, 0, 0, 285, 188, 186, 1497 0, 183, 189, 0, 0, 0, 192, 195, 193, 190, 1498 126, 140, 138, 235, 0, 0, 285, 406, 410, 409, 1499 0, 497, 2, 498, 2, 499, 493, 285, 219, 0, 1500 217, 0, 219, 3, 649, 30, 111, 2, 43, 2, 1501 41, 39, 27, 109, 25, 3, 715, 3, 3, 3, 1502 0, 0, 672, 674, 615, 629, 260, 2, 396, 3, 1503 395, 0, 460, 457, 126, 0, 0, 126, 3, 0, 1504 126, 184, 0, 2, 200, 194, 0, 136, 562, 602, 1505 3, 2, 0, 0, 2, 220, 0, 0, 208, 0, 1506 0, 0, 0, 0, 0, 0, 0, 0, 675, 676, 1507 285, 0, 459, 148, 0, 0, 2, 161, 126, 150, 1508 0, 178, 0, 126, 0, 2, 152, 0, 2, 2, 1509 0, 285, 502, 504, 495, 0, 0, 0, 0, 111, 1510 36, 3, 3, 644, 616, 630, 666, 400, 126, 154, 1511 157, 0, 156, 160, 3, 163, 162, 0, 126, 180, 1512 126, 3, 0, 285, 0, 2, 689, 2, 221, 222, 1513 0, 218, 209, 0, 0, 0, 149, 0, 0, 159, 1514 224, 164, 2, 226, 179, 0, 182, 168, 196, 3, 1515 201, 205, 0, 285, 0, 0, 0, 37, 44, 42, 1516 155, 158, 126, 0, 165, 285, 126, 126, 0, 169, 1517 0, 0, 680, 202, 203, 204, 197, 3, 285, 210, 1518 223, 145, 166, 151, 126, 227, 181, 176, 174, 170, 1519 153, 126, 0, 681, 0, 0, 146, 167, 177, 171, 1520 175, 174, 172, 3, 0, 481, 173, 198, 3, 199 1508 1521 }; 1509 1522 … … 1511 1524 static const yytype_int16 yydefgoto[] = 1512 1525 { 1513 -1, 8 26, 468, 297, 45, 130, 131, 298, 299, 300,1514 30 1, 773, 755, 1122, 1123, 302, 303, 304, 305, 306,1515 30 7, 308, 309, 310, 311, 312, 313, 314, 315, 1032,1516 5 18, 978, 317, 979, 546, 958, 1057, 1476, 1059, 1060,1517 106 1, 1062, 1477, 1063, 1064, 1412, 1413, 1381, 1382, 1383,1518 14 60, 1461, 1465, 1466, 1494, 1495, 1065, 1345, 1066, 1067,1519 12 84, 1285, 1286, 1448, 1068, 962, 963, 964, 1363, 1440,1520 14 41, 469, 470, 887, 888, 1040, 48, 49, 50, 51,1521 5 2, 341, 155, 55, 56, 57, 58, 59, 343, 61,1522 62, 259, 64, 65, 270, 345, 346, 68, 69, 70,1523 71, 115, 73, 200, 348, 116, 76, 117, 78, 79,1524 80, 449, 450, 451, 452, 690, 924, 691, 81, 82,1525 456, 711, 868, 869, 351, 352, 714, 715, 716, 353,1526 354, 355, 356, 466, 335, 132, 133, 522, 319, 166,1527 644, 645, 646, 647, 648, 83, 118, 85, 489, 490,1528 950, 491, 273, 495, 320, 86, 134, 135, 87, 1305,1529 1103, 1104, 1105, 1106, 88, 89, 732, 90, 269, 91,1530 92, 183, 1034, 678, 405, 122, 93, 501, 502, 503,1531 184, 264, 186, 187, 188, 265, 96, 97, 98, 99,1532 100, 101, 102, 191, 192, 193, 194, 195, 838, 605,1533 606, 607, 608, 196, 610, 611, 612, 571, 572, 573,1534 574, 695, 103, 614, 615, 616, 617, 618, 619, 923,1535 6 97, 698, 699, 595, 359, 360, 361, 362, 321, 161,1536 105, 106, 107, 364, 709, 5681526 -1, 830, 470, 298, 45, 130, 131, 299, 300, 301, 1527 302, 777, 759, 1132, 1133, 303, 304, 305, 306, 307, 1528 308, 309, 310, 311, 312, 313, 314, 315, 316, 1040, 1529 520, 986, 318, 987, 548, 964, 1065, 1501, 1067, 1068, 1530 1069, 1070, 1502, 1071, 1072, 1430, 1431, 1397, 1398, 1399, 1531 1483, 1484, 1488, 1489, 1519, 1520, 1073, 1359, 1074, 1075, 1532 1296, 1297, 1298, 1469, 1076, 142, 970, 971, 972, 1376, 1533 1450, 1461, 1462, 471, 472, 892, 893, 1048, 48, 49, 1534 50, 51, 52, 342, 155, 55, 56, 57, 58, 59, 1535 344, 61, 62, 259, 64, 65, 270, 346, 347, 68, 1536 69, 70, 71, 115, 73, 200, 349, 116, 76, 117, 1537 78, 79, 80, 451, 452, 453, 454, 693, 930, 694, 1538 81, 82, 458, 714, 872, 873, 352, 353, 717, 718, 1539 719, 354, 355, 356, 357, 468, 336, 132, 133, 524, 1540 320, 166, 647, 648, 649, 650, 651, 83, 118, 85, 1541 491, 492, 956, 493, 273, 497, 321, 86, 134, 135, 1542 87, 1317, 1111, 1112, 1113, 1114, 88, 89, 735, 90, 1543 269, 91, 92, 183, 1042, 681, 406, 122, 93, 503, 1544 504, 505, 184, 264, 186, 187, 188, 265, 96, 97, 1545 98, 99, 100, 101, 102, 191, 192, 193, 194, 195, 1546 842, 607, 608, 609, 610, 196, 612, 613, 614, 573, 1547 574, 575, 576, 698, 103, 616, 617, 618, 619, 620, 1548 621, 929, 700, 701, 702, 597, 360, 361, 362, 363, 1549 322, 161, 105, 106, 107, 365, 712, 570 1537 1550 }; 1538 1551 1539 1552 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1540 1553 STATE-NUM. */ 1541 #define YYPACT_NINF -1 2691554 #define YYPACT_NINF -1318 1542 1555 static const yytype_int16 yypact[] = 1543 1556 { 1544 5632, 9056, -1269, 25, -1269, -1269, -1269, -1269, -1269, -1269, 1545 -1269, 17, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1546 -1269, -1269, -1269, -1269, -1269, 113, 113, 113, 803, 791, 1547 56, 6940, 839, -1269, -1269, -1269, -1269, -1269, 59, -1269, 1548 -1269, -1269, 628, 90, 8532, -1269, -1269, -1269, -1269, -1269, 1549 -1269, 88, 155, -1269, 911, -1269, -1269, -1269, -1269, 140, 1550 1450, 287, 96, 4240, -1269, -1269, 8601, 1048, -1269, -1269, 1551 -1269, 1246, 329, 6299, 1010, 880, 1246, 1728, -1269, -1269, 1552 332, 328, -1269, 1246, 1769, -1269, 227, -1269, 369, 379, 1553 -1269, -1269, -1269, -1269, 256, 155, 113, -1269, 113, -1269, 1554 -1269, -1269, -1269, 9292, 911, -1269, -1269, 911, -1269, 9351, 1555 266, -1269, -1269, 1507, 9410, -1269, 839, 839, 839, -1269, 1556 -1269, -1269, 113, -1269, -1269, -1269, 291, 341, 348, -1269, 1557 -1269, -1269, 361, -1269, -1269, -1269, -1269, -1269, 391, 401, 1558 -1269, 469, 839, 8040, 1076, 326, 352, 486, 522, 542, 1559 576, 588, 8805, 6382, 474, 482, -1269, 8669, -1269, -1269, 1560 -1269, -1269, 571, -1269, 47, 5492, -1269, 596, 239, -1269, 1561 -1269, -1269, -1269, 597, 315, 324, 359, 113, 614, -1269, 1562 -1269, 1450, 2466, 659, -1269, 128, -1269, 113, 113, 155, 1563 -1269, -1269, 131, -1269, 113, 113, -1269, 3629, 647, 656, 1564 839, 10211, -1269, -1269, 665, 8532, -1269, -1269, 1246, -1269, 1565 -1269, -1269, 155, -1269, 911, 88, -1269, 7183, -1269, 839, 1566 839, 839, 155, -1269, 803, -1269, 6072, -1269, -1269, 652, 1567 839, -1269, 839, -1269, 59, 8040, 9115, 675, -1269, 791, 1568 684, 839, -1269, 803, 674, 681, -1269, 6940, 744, -1269, 1569 -1269, -1269, 8471, -1269, -1269, 5138, -1269, 659, 73, 9410, 1570 10491, 1507, 3629, -1269, 138, -1269, -1269, 9351, 911, 708, 1571 11267, -1269, -1269, 713, -1269, 11002, 10719, 10776, 10719, 10833, 1572 -1269, 737, -1269, -1269, -1269, -1269, 10890, 10890, 744, 4439, 1573 751, 10719, 8146, -1269, -1269, -1269, -1269, -1269, -1269, 766, 1574 -1269, 828, 1924, 10719, -1269, 465, 544, 763, 389, 621, 1575 755, 754, 759, 813, 65, -1269, -1269, 782, 510, -1269, 1576 307, -1269, -1269, 1076, -1269, -1269, 774, 807, -1269, 784, 1577 807, 815, 59, -1269, -1269, 821, 9292, -1269, 826, 7828, 1578 -1269, -1269, 715, 2130, 7574, 10211, 1246, -1269, 1246, 839, 1579 839, -1269, -1269, -1269, -1269, -1269, -1269, 839, 9469, 911, 1580 -1269, -1269, 9528, 1378, -1269, 9174, -1269, -1269, -1269, -1269, 1581 -1269, -1269, -1269, 831, 4897, 10719, -1269, -1269, -1269, -1269, 1582 -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1507, 1583 -1269, 728, 842, 859, 891, 817, 925, 926, 927, 2466, 1584 -1269, -1269, 865, 88, 869, -1269, -1269, 928, -1269, -1269, 1585 -1269, 8471, -1269, -1269, -1269, -1269, -1269, 3629, -1269, 8040, 1586 8040, -1269, 1507, 11295, 911, 7639, -1269, -1269, -1269, -1269, 1587 8471, 73, -1269, -1269, 1246, 155, -1269, -1269, 8471, -1269, 1588 6187, -1269, -1269, 839, 839, 339, 9587, 909, 1932, 2385, 1589 -1269, 377, 414, 791, -1269, 9115, 924, 912, 791, 839, 1590 -1269, -1269, -1269, -1269, 9947, -1269, 512, 7494, -1269, 155, 1591 930, -1269, 1507, 11077, 10548, -1269, -1269, -1269, -1269, 824, 1592 3629, -1269, 7704, 659, 6831, -1269, -1269, -1269, 746, 592, 1593 782, 791, 11267, 530, 9351, -1269, 11267, -1269, -1269, -1269, 1594 -1269, 613, -1269, 932, -1269, -1269, 12, 4439, -1269, -1269, 1595 4439, -1269, 7934, 4439, -1269, -1269, -1269, 933, -1269, 625, 1596 936, 545, 939, -1269, 8873, 5389, -1269, -1269, -1269, 67, 1597 -1269, -1269, 10605, -1269, 249, -1269, -1269, -1269, -1269, -1269, 1598 -1269, -1269, -1269, -1269, -1269, 10491, 10491, -1269, 10719, 10719, 1599 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 1600 10719, 10719, 10719, 10719, 10719, 10719, 4719, 10491, -1269, 510, 1601 1578, -1269, -1269, 113, 113, -1269, -1269, 8040, -1269, -1269, 1602 928, 744, -1269, 928, 10662, -1269, -1269, -1269, 4020, 5389, 1603 938, 8252, 941, -1269, 9646, -1269, -1269, 571, -1269, 942, 1604 1657, 947, 1802, 198, 782, -1269, 113, 113, 782, 245, 1605 -1269, 113, 113, 928, -1269, -1269, 113, 113, -1269, 807, 1606 9705, 911, 11208, 419, 426, 9705, -1269, 9882, -1269, 782, 1607 -1269, 9469, -1269, 144, 7291, 7291, 7291, 911, -1269, 10434, 1608 934, 831, 353, 949, -1269, 951, 5492, 583, -1269, 1032, 1609 911, 7291, 744, 1507, 744, 659, 795, 807, -1269, -1269, 1610 800, 807, -1269, -1269, -1269, 986, -1269, 807, 155, 9947, 1611 -1269, 635, 960, 638, 961, -1269, 962, 155, -1269, -1269, 1612 8471, 155, 958, 436, 443, 9764, 6494, 2437, 10719, 2673, 1613 -1269, -1269, 956, 32, 956, -1269, -1269, -1269, 113, 113, 1614 -1269, -1269, 791, -1269, 113, -1269, -1269, 2798, 791, 968, 1615 10719, -1269, 924, 11208, -1269, -1269, 967, -1269, -1269, -1269, 1616 744, -1269, 11143, 10719, -1269, 7291, 584, 7574, -1269, -1269, 1617 571, 969, 972, 746, 2082, -1269, -1269, 11267, -1269, -1269, 1618 965, -1269, -1269, 984, -1269, 965, 989, 11002, 10491, 944, 1619 1017, 991, 992, 751, 987, 996, -1269, 997, 1000, 2971, 1620 6158, -1269, 10491, -1269, 545, 1808, -1269, 5683, 10491, 998, 1621 -1269, -1269, 831, 639, -1269, 10491, -1269, -1269, -1269, -1269, 1622 -1269, -1269, -1269, 465, 465, 544, 544, 763, 763, 763, 1623 763, 389, 389, 621, 755, 754, 759, 813, 10719, 616, 1624 -1269, 9947, 1005, 1006, 1007, 1578, -1269, -1269, -1269, -1269, 1625 -1269, 9947, 643, 10719, 7291, -1269, 9469, -1269, 6606, 8358, 1626 9233, 6382, -1269, -1269, -1269, 1657, 9947, 846, 1012, 1013, 1627 1015, 1019, 1020, 1023, 1024, -1269, 3182, 1802, -1269, -1269, 1628 -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1629 -1269, -1269, -1269, -1269, -1269, 928, -1269, -1269, -1269, 782, 1630 -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1025, -1269, 1631 1026, 1029, -1269, -1269, 88, 998, 10434, -1269, -1269, -1269, 1632 4897, 1028, -1269, -1269, -1269, -1269, 791, 5798, 1104, -1269, 1633 -1269, -1269, -1269, 1027, 88, -1269, -1269, 928, -1269, -1269, 1634 928, 142, 928, -1269, -1269, -1269, -1269, -1269, -1269, 8737, 1635 -1269, 155, -1269, 9115, -1269, -1269, 1034, 761, 1031, 1038, 1636 1041, -1269, 2673, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1637 1932, -1269, 912, -1269, -1269, 1044, 1046, 1047, -1269, -1269, 1638 1042, 1050, -1269, 584, 1953, -1269, 534, -1269, 2082, 782, 1639 -1269, 1054, 11267, 9823, 8040, 1055, -1269, -1269, 1051, 1056, 1640 -1269, 1059, 169, 1057, -1269, 1058, 1058, 5389, 10491, -1269, 1641 -1269, 1058, -1269, 1808, 4897, -1269, -1269, -1269, -1269, 1060, 1642 10491, 1062, 744, 10434, -1269, 10605, -1269, 744, -1269, 10491, 1643 -1269, 840, 807, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1644 831, 7828, -1269, -1269, 6718, 1067, -1269, 864, 807, -1269, 1645 871, 882, 807, -1269, 839, 3327, -1269, -1269, -1269, 9947, 1646 9947, -1269, 7639, 7639, -1269, 1063, 1064, 1068, 1071, -1269, 1647 1074, 541, 48, 998, -1269, 744, -1269, 5492, -1269, 10491, 1648 455, -1269, 6043, 1080, 1081, 10377, 1083, 1084, 55, 173, 1649 23, 10491, 1085, 155, 4287, 1089, 1086, 1065, -1269, -1269, 1650 -1269, 1087, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1651 -1269, 791, 1094, 10491, -1269, 9947, 9947, 113, 1095, -1269, 1652 8997, 8935, 889, 807, -1269, -1269, -1269, -1269, -1269, -1269, 1653 -1269, -1269, -1269, 1098, 1953, -1269, -1269, 1082, -1269, 965, 1654 -1269, -1269, 1507, 1097, -1269, -1269, -1269, 650, 1096, -1269, 1655 10719, 1077, 1017, 1017, 1102, -1269, 951, 10491, 1111, 1060, 1656 559, 61, 1108, -1269, 1102, -1269, 1113, 1108, -1269, -1269, 1657 1118, -1269, -1269, 928, 1120, 1121, 6270, 1123, 1124, 1125, 1658 -1269, -1269, 1122, -1269, -1269, 928, -1269, -1269, -1269, -1269, 1659 928, 10491, 10491, 10719, 1127, -1269, -1269, -1269, -1269, -1269, 1660 -1269, -1269, -1269, -1269, -1269, -1269, -1269, 10719, 10719, 1128, 1661 1133, 1108, -1269, -1269, 791, -1269, -1269, -1269, 7118, 9823, 1662 10491, 10491, 1180, 10491, -1269, -1269, 1114, -1269, 1117, 10491, 1663 1135, 1137, 10491, 901, -1269, 1138, 8499, 113, -1269, -1269, 1664 5798, 1140, 467, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1665 -1269, -1269, 928, 10183, -1269, 7704, 1147, -1269, -1269, 9823, 1666 476, 481, -1269, 1157, 1165, -1269, 201, -1269, 10491, 1166, 1667 1167, -1269, -1269, 1168, 257, 313, 744, 1169, 1171, -1269, 1668 1172, -1269, 9947, -1269, -1269, -1269, -1269, -1269, 1174, -1269, 1669 9947, 9947, 9947, -1269, -1269, 1175, -1269, 1179, 1182, 1183, 1670 573, 7358, 7466, -1269, -1269, 609, -1269, 1184, 1185, -1269, 1671 7769, 651, 662, 1141, 664, 5921, -1269, -1269, 508, -1269, 1672 -1269, 687, 1189, 155, 1237, 1240, -1269, -1269, 10377, -1269, 1673 -1269, -1269, 1193, 1197, 9947, -1269, -1269, -1269, 1196, -1269, 1674 -1269, -1269, -1269, -1269, -1269, 9823, -1269, 1190, 1231, 1060, 1675 253, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, 1204, 1676 -1269, -1269, -1269, -1269, -1269, -1269, 1211, 1215, -1269, -1269, 1677 -1269, -1269, -1269, -1269, -1269, 1219, -1269, 1218, -1269, -1269, 1678 10377, 147, 10491, 10377, -1269, 1225, 10491, -1269, 264, 1239, 1679 -1269, -1269, 1229, -1269, -1269, -1269, -1269, -1269, 911, 1507, 1680 1233, -1269, -1269, 704, 1228, 10491, 744, 744, 1248, 1249, 1681 1250, 1251, -1269, -1269, 7639, 1256, -1269, 1301, 10719, 1259, 1682 -1269, -1269, 10297, -1269, 716, -1269, 1224, 10377, 1235, -1269, 1683 -1269, 1268, -1269, 1282, 1270, 9823, -1269, -1269, -1269, 1252, 1684 1302, 1273, -1269, 1108, 1108, -1269, -1269, -1269, -1269, -1269, 1685 10377, 54, -1269, 897, -1269, -1269, 7049, -1269, -1269, 1255, 1686 10491, -1269, 10491, 7049, 155, 9587, 1283, -1269, -1269, 1280, 1687 -1269, -1269, 10491, 1284, 1285, -1269, 10719, 10719, -1269, -1269, 1688 966, 99, -1269, -1269, 1266, -1269, 966, -1269, -1269, 2561, 1689 744, 155, 9587, 1290, -1269, -1269, -1269, -1269, -1269, 10297, 1690 1286, 966, 3510, 10491, 10217, 1287, 966, 1294, 2561, 3047, 1691 -1269, -1269, -1269, -1269, -1269, 8040, -1269, 10062, -1269, 10297, 1692 -1269, -1269, 1274, 9981, -1269, -1269, 10217, 155, 3047, 1297, 1693 717, -1269, 10062, -1269, -1269, -1269, 9981, -1269, -1269, 155, 1694 -1269, -1269, -1269, -1269, -1269 1557 4413, 9104, -1318, 42, -1318, -1318, -1318, -1318, -1318, -1318, 1558 -1318, -27, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1559 -1318, -1318, -1318, -1318, -1318, 95, 95, 95, 954, 850, 1560 71, 5300, 201, -1318, -1318, -1318, -1318, -1318, 123, -1318, 1561 -1318, -1318, 776, 164, 8401, -1318, -1318, -1318, -1318, -1318, 1562 -1318, 226, 169, -1318, 1184, -1318, -1318, -1318, -1318, 272, 1563 1531, 387, 89, 3759, -1318, -1318, 8469, 1998, -1318, -1318, 1564 -1318, 935, 392, 5420, 741, 1183, 935, 1282, -1318, -1318, 1565 356, 326, -1318, 935, 1429, -1318, 340, -1318, 453, 463, 1566 -1318, -1318, -1318, -1318, 370, 169, 95, -1318, 95, -1318, 1567 -1318, -1318, -1318, 9340, 1184, -1318, -1318, 1184, -1318, 9399, 1568 389, -1318, -1318, 1617, 9458, -1318, 1087, 1087, 1087, -1318, 1569 -1318, -1318, 95, -1318, -1318, -1318, 386, 435, 438, -1318, 1570 -1318, -1318, 498, -1318, -1318, -1318, -1318, -1318, 510, 531, 1571 -1318, -1318, 34, 7909, 1795, 48, 452, 575, 578, 583, 1572 588, 593, 8673, 6319, 543, 605, -1318, 8537, -1318, -1318, 1573 -1318, -1318, 652, -1318, 172, 5550, -1318, 473, 232, -1318, 1574 -1318, -1318, -1318, 661, 301, 325, 403, 95, 646, -1318, 1575 -1318, 1531, 2279, 739, -1318, 21, -1318, 95, 95, 169, 1576 -1318, -1318, 35, -1318, 95, 95, -1318, 2781, 700, 710, 1577 1087, 10200, -1318, -1318, 717, 8401, -1318, -1318, 935, -1318, 1578 -1318, -1318, 169, -1318, 1184, 226, -1318, 7011, -1318, 1087, 1579 1087, 1087, 169, -1318, 954, -1318, 3330, -1318, -1318, 704, 1580 1087, -1318, 1087, -1318, 123, 7909, 9163, 736, -1318, 850, 1581 769, 1087, -1318, 954, 737, 747, -1318, 5300, 814, -1318, 1582 -1318, -1318, 2451, -1318, -1318, 3603, -1318, 739, 61, 9458, 1583 10457, 1617, 2781, -1318, 68, -1318, -1318, 9399, 1184, 778, 1584 11233, -1318, -1318, 428, -1318, 10968, 787, 870, 10685, 10742, 1585 10799, -1318, 824, -1318, -1318, -1318, -1318, 10856, 10856, 814, 1586 7591, 827, 10742, 8015, -1318, -1318, -1318, -1318, -1318, -1318, 1587 874, -1318, 901, 2137, 10742, -1318, 237, 407, 632, 476, 1588 638, 859, 855, 869, 890, 101, -1318, -1318, 877, 616, 1589 -1318, 336, -1318, -1318, 1795, -1318, -1318, 518, 907, -1318, 1590 633, 907, 892, 123, -1318, -1318, 914, 9340, -1318, 916, 1591 7697, -1318, -1318, 1197, 771, 5233, 10200, 935, -1318, 935, 1592 1087, 1087, -1318, -1318, -1318, -1318, -1318, -1318, 1087, 9517, 1593 1184, -1318, -1318, 9576, 1658, -1318, 9222, -1318, -1318, -1318, 1594 -1318, -1318, -1318, -1318, 924, 4543, 10742, -1318, -1318, -1318, 1595 -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1596 1617, -1318, 676, 942, 945, 946, 690, 947, 948, 958, 1597 2279, -1318, -1318, 952, 226, 957, -1318, -1318, 959, -1318, 1598 -1318, -1318, 2451, -1318, -1318, -1318, -1318, -1318, 2781, -1318, 1599 7909, 7909, -1318, 1087, 1617, 11261, 1184, 7402, -1318, -1318, 1600 -1318, -1318, 2451, 61, -1318, -1318, 935, 169, -1318, -1318, 1601 2451, -1318, 5128, -1318, -1318, 1087, 1087, 364, 9635, 960, 1602 2086, 8865, -1318, 432, 454, 850, -1318, 9163, 955, 944, 1603 850, 1087, -1318, -1318, -1318, -1318, 9936, -1318, 383, 7322, 1604 -1318, 169, 962, -1318, 1617, 11043, 10514, -1318, -1318, -1318, 1605 -1318, 755, 2781, -1318, 7467, 739, 6768, -1318, -1318, -1318, 1606 885, 414, 877, 850, 11233, 619, 9399, -1318, 11233, -1318, 1607 -1318, -1318, -1318, 479, -1318, 964, 870, 125, 7591, -1318, 1608 -1318, -1318, 7591, -1318, 7803, 7591, -1318, -1318, -1318, 969, 1609 -1318, 544, 972, 640, 974, -1318, 8741, 5983, -1318, -1318, 1610 -1318, 103, -1318, -1318, 10571, -1318, 112, -1318, -1318, -1318, 1611 -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10457, 10457, -1318, 1612 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 1613 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10343, 10457, 1614 -1318, 616, 900, -1318, -1318, 95, 95, -1318, -1318, 7909, 1615 -1318, -1318, 959, 814, -1318, 959, 10628, -1318, -1318, -1318, 1616 8333, 5983, 973, 8121, 976, -1318, 9694, -1318, -1318, 652, 1617 -1318, 978, 378, 980, 1782, 139, 877, -1318, 95, 95, 1618 877, 166, -1318, 95, 95, 959, -1318, -1318, 95, 95, 1619 -1318, 907, 9753, 1184, 11174, 137, 273, 9753, -1318, 4101, 1620 -1318, 877, -1318, 9517, -1318, 278, 7119, 7119, 7119, 1184, 1621 -1318, 3868, 982, 220, 924, 302, 984, -1318, 977, 5550, 1622 238, -1318, 1061, 1184, 7119, 814, 1617, 814, 739, 705, 1623 907, -1318, -1318, 765, 907, -1318, -1318, -1318, 870, -1318, 1624 907, 169, 9936, -1318, 570, 1000, 655, 1005, -1318, 1004, 1625 169, -1318, -1318, 2451, 169, 1003, 464, 465, 9812, 6431, 1626 1947, 10742, 2536, -1318, -1318, 1001, 20, 1001, -1318, -1318, 1627 -1318, 95, 95, -1318, -1318, 850, -1318, 95, -1318, -1318, 1628 8924, 850, 1006, 10742, -1318, 955, 11174, -1318, -1318, 1017, 1629 -1318, -1318, -1318, 814, -1318, 11109, 10742, -1318, 7119, 671, 1630 5233, -1318, -1318, 652, 1013, 1014, 885, 2927, -1318, -1318, 1631 11233, -1318, -1318, 1015, -1318, -1318, 1021, -1318, 1015, 1023, 1632 10968, 10457, 243, 1002, 53, 1025, 1026, 827, 1027, 1028, 1633 -1318, 1030, 1032, 8983, 6095, -1318, 10457, -1318, 640, 1104, 1634 -1318, 10400, 10457, 1034, -1318, -1318, 924, 678, -1318, 10457, 1635 -1318, -1318, -1318, -1318, -1318, -1318, -1318, 237, 237, 407, 1636 407, 632, 632, 632, 632, 476, 476, 638, 859, 855, 1637 869, 890, 10742, 716, -1318, 9936, 1038, 1041, 1042, 900, 1638 -1318, -1318, -1318, -1318, -1318, 9936, 679, 10742, 7119, -1318, 1639 9517, -1318, 6543, 8227, 9281, 6319, -1318, -1318, -1318, 378, 1640 9936, 820, 1047, 1051, 1052, 1057, 1058, 1059, 1060, -1318, 1641 3170, 1782, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1642 -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 959, 1643 -1318, -1318, -1318, 877, -1318, -1318, -1318, -1318, -1318, -1318, 1644 -1318, -1318, 1063, -1318, 1064, 1065, -1318, -1318, 226, 1034, 1645 3868, -1318, -1318, -1318, 4543, 1066, -1318, -1318, -1318, -1318, 1646 -1318, 850, 5481, 1140, -1318, -1318, -1318, -1318, 1049, 226, 1647 -1318, -1318, 959, -1318, -1318, 959, 127, 959, -1318, -1318, 1648 -1318, -1318, -1318, -1318, 8605, -1318, 169, -1318, 9163, -1318, 1649 -1318, 1070, 856, 1073, 1076, 1077, -1318, -1318, 2536, -1318, 1650 -1318, -1318, -1318, -1318, -1318, -1318, 2086, -1318, 944, -1318, 1651 -1318, 1075, 1078, 1082, -1318, -1318, 1080, 1096, -1318, 671, 1652 1985, -1318, 514, -1318, 2927, 877, -1318, 1100, 11233, 9871, 1653 7909, 1102, -1318, -1318, 1098, 1110, 1107, -1318, 10742, 12, 1654 400, 1114, -1318, 1112, 1112, 5983, 10457, -1318, -1318, 1112, 1655 -1318, 1104, 4543, -1318, -1318, -1318, -1318, 1115, 10457, 1120, 1656 814, 3868, -1318, 10571, -1318, 814, -1318, 10457, -1318, 825, 1657 907, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 924, 7697, 1658 -1318, -1318, 6655, 1125, -1318, 833, 907, -1318, 845, 852, 1659 907, -1318, 1087, 4145, -1318, -1318, -1318, 9936, 9936, -1318, 1660 7402, 7402, -1318, 1123, 1124, 1126, 1133, -1318, 1134, 553, 1661 38, 1034, -1318, 814, -1318, 5550, -1318, 10457, 466, -1318, 1662 5871, 1136, 1141, 5631, 1149, 1155, 13, 17, 14, 10457, 1663 1156, 169, 3019, 1137, 1150, 1143, -1318, -1318, -1318, 1161, 1664 -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 850, 1665 1167, 10457, -1318, 9936, 9936, 95, 1169, -1318, 9045, 8803, 1666 867, 907, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1667 -1318, 1174, 1985, -1318, -1318, 1158, -1318, 1015, -1318, -1318, 1668 1617, 1173, -1318, -1318, -1318, 686, 1175, -1318, 53, 1178, 1669 10742, 1159, 53, 53, 1176, -1318, 977, 10457, 1185, 1115, 1670 607, 130, 1192, -1318, 1176, -1318, 1198, 1192, -1318, -1318, 1671 1199, -1318, -1318, 959, 1201, 1203, 6207, 1202, 1205, 1207, 1672 -1318, -1318, 1210, -1318, -1318, 959, -1318, -1318, -1318, -1318, 1673 959, 10457, 10457, 10742, 1209, -1318, -1318, -1318, -1318, -1318, 1674 -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10742, 10742, 1212, 1675 1219, 1192, -1318, -1318, 850, -1318, -1318, -1318, 4876, 9871, 1676 10457, 10457, 1262, 10457, -1318, -1318, 1213, -1318, 1214, 10457, 1677 1216, 1220, 10457, 929, -1318, 1223, 5017, 95, -1318, -1318, 1678 5481, 1224, 469, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1679 -1318, -1318, 959, 10172, -1318, 7467, 1232, -1318, -1318, 9871, 1680 478, 509, -1318, 1236, 1239, 870, 1248, -1318, 541, -1318, 1681 10457, 1250, 1245, -1318, -1318, 1251, 128, 133, 814, 1253, 1682 1254, -1318, 1256, -1318, 9936, -1318, -1318, -1318, -1318, -1318, 1683 1258, -1318, 9936, 9936, 9936, -1318, -1318, 1260, -1318, 1263, 1684 1269, 1270, 589, 7186, 7294, -1318, -1318, 351, -1318, 1273, 1685 1275, -1318, 7532, 721, 742, 1272, 752, 5749, -1318, -1318, 1686 545, -1318, -1318, 768, 1279, 169, 1330, 1332, -1318, -1318, 1687 5631, -1318, -1318, -1318, 1285, 1286, 9936, -1318, -1318, -1318, 1688 1283, -1318, -1318, -1318, -1318, -1318, -1318, 9871, 870, 206, 1689 -1318, 1268, 870, 1115, 327, -1318, -1318, -1318, -1318, -1318, 1690 -1318, -1318, -1318, 1284, -1318, -1318, -1318, -1318, -1318, -1318, 1691 1291, 1294, -1318, -1318, -1318, -1318, -1318, -1318, -1318, 1297, 1692 -1318, 1296, -1318, -1318, 5631, 124, 10457, 5631, -1318, 1299, 1693 10457, -1318, 270, 1314, -1318, -1318, 1306, -1318, -1318, -1318, 1694 -1318, -1318, 1184, 1617, 1301, 874, 879, 10742, -1318, 790, 1695 1307, 10457, 814, 814, 1308, 1310, 1316, 1317, -1318, -1318, 1696 7402, 1320, -1318, 1376, 10742, 1313, -1318, -1318, 10286, -1318, 1697 791, -1318, 1300, 5631, 1305, -1318, -1318, 1323, -1318, 1341, 1698 1329, 9871, -1318, -1318, -1318, 870, 814, 1334, 1327, 1325, 1699 -1318, 1192, 1192, -1318, -1318, -1318, -1318, -1318, 5631, 246, 1700 -1318, 917, -1318, -1318, 6877, -1318, -1318, 1335, 10457, -1318, 1701 10457, 6877, 169, 9635, 1342, -1318, -1318, 1351, 874, -1318, 1702 793, -1318, -1318, 10457, 1357, 1359, -1318, 10742, 10742, -1318, 1703 -1318, 989, 88, -1318, -1318, 1340, -1318, 989, -1318, -1318, 1704 2035, 814, 169, 9635, 1364, 1345, 814, -1318, -1318, -1318, 1705 -1318, -1318, 10286, 1369, 989, 6946, 10457, 10206, 1373, 989, 1706 1380, 2035, 2697, -1318, -1318, -1318, -1318, -1318, 7909, -1318, 1707 -1318, -1318, 10051, -1318, 10286, -1318, -1318, 1347, 9970, -1318, 1708 -1318, 10206, 169, 2697, 1383, 794, -1318, 10051, -1318, -1318, 1709 -1318, 9970, -1318, -1318, 169, -1318, -1318, -1318, -1318, -1318 1695 1710 }; 1696 1711 … … 1698 1713 static const yytype_int16 yypgoto[] = 1699 1714 { 1700 -1 269, 3902, 2604, -1269, 354, -1269, -1, 2, 742, -1269,1701 -1 269, -1269, -489, -961, -282, 4749, -1269, 570, 459, 468,1702 3 57, 464, 844, 848, 849, 847, 850, -1269, -229, -231,1703 45 55, 296, -694, -919, -1269, 166, -721, 143, -1269, 86,1704 -1 269, 216, -1143, -1269, -1269, -17, -1269, -1146, -1036, 71,1705 -1 269, -1269, -1269, -1269, -75, -1160, -1269, -1269, -1269, -1269,1706 -1 269, -1269, 141, -26, 21, 316, -1269, 320, -1269, 13,1707 -1 269, -294, -1269, -1269, -1269, 364, -829, -1269, -1269, 11,1708 -963, 125, 1704, -1269, -1269, -1269, -72, -1269, 82, 49,1709 -18, 1039, 3754, -1269, -1269, 81, 133, 536, -256, 1629,1710 -1269, 1307, -1269, -1269, 224, 1625, -1269, 1893, 1163, -1269,1711 -1269, -426, -421, 993, 994, 507, 747, 306, -1269, -1269,1712 980, 516, -433, -1269, -199, 75, 591, -1269, -1269, -894,1713 -1 000, 6, 910, 861, 176, -1269, 721, 158, -317, -210,1714 - 149, 478, 577, -1269, 809, -1269, 2211, 740, -443, 722,1715 -1269, -1269, 511, -1269, -232, -1269, -46, -1269, -1269, -1269,1716 -1 268, 243, -1269, -1269, -1269, 981, -1269, -7, -1269, -1269,1717 -827, -35, -1227, -161, 1978, -1269, 3527, -1269, 719, -1269,1718 -157, 41, -172, -170, -163, 4, -41, -36, -34, 777,1719 24, 33, 45, -143, -151, -150, -145, -139, -288, -529,1720 - 505, -476, -564, -323, -560, -1269, -1269, -516, 899, 906,1721 9 15, 1643, 4256, -522, -566, -549, -514, -546, -1269, -372,1722 -680, -674, -672, -603, -208, -186, -1269, -1269, 64, 293,1723 -93, -1269, 3162, 208, -613, -3961715 -1318, 3762, 2543, -1318, 1454, -1318, -1, 2, -89, -1318, 1716 -1318, -1318, -483, -942, -282, 4006, -1318, 1670, 483, 485, 1717 347, 484, 927, 931, 926, 932, 937, -1318, 792, -594, 1718 4587, 375, -691, -946, -1318, -112, -722, -695, -1318, 412, 1719 -1318, 304, -1184, -1318, -1318, 54, -1318, -1317, -763, 149, 1720 -1318, -1318, -1318, -1318, -3, -1151, -1318, -1318, -1318, -1318, 1721 -1318, -1318, 223, 51, 55, -1318, -364, -1318, 402, 204, 1722 -1318, 86, -1318, -320, -1318, -1318, -1318, 450, -745, -1318, 1723 -1318, 10, -865, 258, 180, -1318, -1318, -1318, -222, -1318, 1724 126, 49, -187, 951, 3574, -1318, -1318, 213, 151, 363, 1725 -251, 2053, -1318, 1304, -1318, -1318, 344, 1615, -1318, 1898, 1726 1496, -1318, -1318, -417, -439, 1083, 1084, 597, 837, 279, 1727 -1318, -1318, 1086, 598, -23, -1318, 37, -463, 807, -1318, 1728 -1318, -923, -977, 142, 669, 965, 280, -1318, 175, -35, 1729 -257, -199, -156, 555, 651, -1318, 888, -1318, 1925, 1031, 1730 -460, 803, -1318, -1318, 594, -1318, -228, -1318, 140, -1318, 1731 -1318, -1318, -1268, 320, -1318, -1318, -1318, 1067, -1318, 6, 1732 -1318, -1318, -851, -86, -1303, -124, 2887, -1318, 2837, -1318, 1733 812, -1318, -168, 585, -176, -173, -171, 4, -41, -39, 1734 -36, 834, 47, 56, 79, -167, -162, -161, -159, -158, 1735 -273, -557, -498, -458, -543, -318, -539, -1318, -1318, -499, 1736 986, 992, 993, 1485, 4182, -565, -577, -550, -542, -536, 1737 -1318, -384, -672, -658, -654, -591, -211, -316, -1318, -1318, 1738 152, 299, -75, -1318, 2880, 592, -631, -200 1724 1739 }; 1725 1740 … … 1727 1742 positive, shift that token. If negative, reduce the rule which 1728 1743 number is the opposite. If YYTABLE_NINF, syntax error. */ 1729 #define YYTABLE_NINF -5 031744 #define YYTABLE_NINF -511 1730 1745 static const yytype_int16 yytable[] = 1731 1746 { 1732 110, 146, 46, 445, 95, 432, 147, 918, 148, 392, 1733 256, 393, 111, 919, 141, 920, 377, 857, 394, 498, 1734 609, 47, 403, 1161, 140, 400, 1127, 959, 701, 707, 1735 395, 396, 881, 46, 832, 95, 397, 1360, 839, 401, 1736 831, 94, 398, 774, 46, 506, 46, 505, 158, 740, 1737 113, 833, 47, 745, 806, 604, 46, 843, 1069, 337, 1738 1070, 1119, 46, 850, 189, 46, 149, 212, 46, 30, 1739 222, 828, 94, 976, 1171, 150, 696, 215, 263, 1177, 1740 840, 66, 60, 145, 918, 94, 834, 151, 108, 392, 1741 919, 393, 920, 156, 738, 829, 475, 477, 394, 935, 1742 119, 185, 672, 674, 94, 400, 46, 94, 160, 46, 1743 395, 396, 66, 60, 749, 46, 397, 668, 120, 401, 1744 108, 750, 398, 198, 830, 53, 112, 1429, 1159, 1160, 1745 402, 596, 108, 67, 1189, 404, 677, 1167, 169, 1234, 1746 146, -218, -218, 1436, 681, 147, 46, 148, 158, 766, 1747 30, 1414, 254, 565, 46, 371, 53, 139, 156, 46, 1748 143, 367, 418, 1168, 67, 30, 1235, 199, 30, 1168, 1749 770, 372, 628, 160, 476, 30, 632, 744, 439, 1185, 1750 471, 249, 421, 46, 46, 94, 158, 566, 206, 1378, 1751 1379, 216, 318, 666, 152, 757, 208, 460, 94, 46, 1752 735, 334, 872, 873, 828, 149, -218, 46, 844, 158, 1753 1414, 165, 847, 1176, 150, 1161, 46, 528, 890, 46, 1754 146, 435, 391, 185, 74, 147, 151, 148, 829, 248, 1755 173, 404, 412, 864, 404, 30, 1418, 867, 108, 481, 1756 463, 404, 663, 587, 1077, 476, 94, 465, 177, 46, 1757 422, 95, 163, 1380, 426, 74, 664, 830, 94, 832, 1758 810, 167, 1161, 46, 46, 1005, 158, 567, 47, 427, 1759 46, 1111, 337, 1017, 729, 410, 833, 46, 1112, 609, 1760 257, 843, 30, 258, 318, 448, 701, 516, 94, 994, 1761 197, 692, 942, 104, 104, 1129, 828, 1187, 429, 841, 1762 453, 601, 479, 1307, 1484, 694, 1378, 1379, 437, 1309, 1763 1308, 834, 1177, 1418, 108, 1018, 426, 163, 1418, 488, 1764 829, 1483, 108, 663, 104, 46, 1497, 367, 66, 60, 1765 1191, 427, -274, 1418, 472, 243, 1492, 664, 521, 471, 1766 1418, 156, 433, 1496, 46, 46, 848, 380, 601, 830, 1767 434, 322, 776, 523, 655, -109, 160, 248, 471, 104, 1768 1313, 46, 1365, 381, 94, 46, 471, 1159, 1160, 246, 1769 1389, 1069, 53, 1070, 1161, 520, -109, 832, 108, -498, 1770 67, 997, 670, 596, 603, 586, 911, 675, 593, 260, 1771 431, 46, -10, 108, 833, 136, 137, 108, 857, 136, 1772 234, 46, 817, 367, 1459, 1403, 1404, 626, 172, 576, 1773 1464, 630, 596, 428, 334, 577, 1315, 596, 108, 46, 1774 136, 137, 840, 383, 46, 1479, 46, 248, 324, 834, 1775 1486, 337, 385, 235, 239, 870, 870, 870, 236, 384, 1776 185, 682, -424, 322, 483, 866, 1346, 577, 386, -425, 1777 46, 500, 870, 1177, 325, 519, 877, 921, 172, 505, 1778 1177, 172, 272, 1021, 1147, 1149, 110, 387, 318, 318, 1779 717, 74, 555, 556, 46, 428, 74, 208, 729, 934, 1780 1409, 505, 46, 388, 367, 702, 46, 1080, 95, 693, 1781 46, 498, 274, 472, 894, 448, 1125, 882, 448, 1177, 1782 163, 703, 275, 1230, 448, 47, 172, 557, 558, 1099, 1783 453, 754, 472, 453, 609, 392, 113, 393, 173, 453, 1784 472, 679, 704, 860, 394, 94, 870, 861, 771, 603, 1785 862, 754, 400, 777, 863, 629, 395, 396, 705, 633, 1786 104, 488, 397, 318, 702, 488, 401, 598, 398, 1016, 1787 1085, 704, 729, 1096, 1344, 721, 521, 728, 696, 521, 1788 914, 318, 521, 1174, 726, 66, 60, 915, 172, 988, 1789 276, 523, 1018, 334, 523, 1174, 548, 523, 365, 1175, 1790 465, 549, 550, 366, 1300, 671, 673, 1442, 326, 1302, 1791 46, 1291, 337, 520, 1442, 108, 520, 136, 137, 520, 1792 1301, 1085, 46, 225, 46, 1303, 208, 226, 471, 53, 1793 230, 569, 232, 404, 719, 870, 762, 67, 892, 241, 1794 720, 570, 172, 46, 327, 1388, 318, 322, 322, 172, 1795 999, 741, 1347, 1480, 817, 74, 742, 815, 862, 46, 1796 593, 827, 1095, 603, 328, -102, 764, 1031, 404, -102, 1797 939, 891, 46, 893, 74, 46, 765, 551, 552, 701, 1798 1016, -109, 74, -109, 1029, 751, 337, -109, 752, 856, 1799 819, 758, 370, 519, 593, 717, 519, 1332, 329, 519, 1800 865, 1333, -109, -109, 1074, 943, 883, 601, 642, 46, 1801 330, 46, 884, 36, 736, 944, 172, 39, 382, 1444, 1802 737, 1445, 322, 378, 40, 41, 559, 560, 74, 871, 1803 871, 871, -449, 172, -449, 746, 402, 172, -449, 938, 1804 322, 747, 1107, 817, 762, 989, 871, 761, 917, 42, 1805 693, 1036, 799, 762, 334, 46, 46, 905, 390, 144, 1806 907, 984, 1481, 762, 225, 996, 762, 985, 419, 46, 1807 138, 720, 1222, 1340, 903, 434, 448, 420, 577, 762, 1808 1128, 728, 472, 910, 1341, 663, 1343, 912, 726, 424, 1809 762, 453, 762, 692, 827, 603, 442, 104, 172, 664, 1810 36, 455, 170, 171, 39, 322, 488, 694, 918, 1348, 1811 458, 40, 41, 596, 919, 762, 920, 859, 461, 598, 1812 871, 237, 240, 211, 472, 462, 1399, 717, 334, 108, 1813 1031, 36, 1400, 874, 484, 39, 366, 717, 1419, 1500, 1814 238, 159, 40, 41, 762, 577, 889, 46, 858, 248, 1815 324, 404, 717, 598, 493, 728, 494, 190, 512, 46, 1816 213, 528, 726, 223, 553, 554, 208, 733, 509, 8, 1817 9, 10, 11, 12, 211, 524, 108, 734, 136, 137, 1818 208, 526, 527, 324, 404, 998, 827, 561, 126, 815, 1819 127, 128, 129, 547, 562, 578, 30, 404, 603, 1224, 1820 563, 505, 225, -275, 230, 581, 1056, 404, 1172, 871, 1821 8, 9, 10, 11, 12, 817, 895, 211, 404, 33, 1822 564, 898, 819, 404, 74, 567, 529, 530, 531, 527, 1823 333, 46, 787, 788, 789, 790, -421, 30, 412, 659, 1824 404, 159, 585, 500, 46, 481, 324, 404, 729, 532, 1825 588, 533, 46, 534, 368, 638, 1263, 1264, 505, 505, 1826 33, 1131, 172, 404, 656, 527, 74, 841, 324, 601, 1827 46, 208, 1314, 1316, 1317, 1282, 1283, 211, 815, 159, 1828 457, 657, 448, 693, 1100, 1143, 665, 404, 66, 60, 1829 225, 693, 1146, 667, 601, 172, 36, 453, 170, 171, 1830 39, 1121, 159, 1148, 754, 601, 1121, 40, 41, 603, 1831 1210, 172, 404, 658, 436, 211, 1151, 1079, 925, 211, 1832 925, 488, 1102, 318, 172, 1437, 1438, 729, 1378, 1379, 1833 783, 784, 53, 685, 2, 202, 4, 5, 6, 7, 1834 67, 785, 786, 791, 792, 717, 717, 660, 661, 662, 1835 1058, 253, 708, 748, 1121, 710, -222, 759, 763, 63, 1836 114, 767, 820, -12, 1056, 822, 824, 1186, 1188, 1190, 1837 856, 835, 2, 202, 4, 5, 6, 7, 879, 880, 1838 886, 285, 906, 908, 913, 688, 909, 1217, 960, -398, 1839 63, 142, 34, 737, 35, 933, -502, 1471, 1101, 947, 1840 224, 717, 717, 157, 211, 954, 8, 9, 10, 11, 1841 12, 956, 961, 965, 966, 643, 968, 1158, 969, 970, 1842 368, 172, 971, 337, 46, 217, 980, 991, 992, 993, 1843 34, 74, 35, 30, 1007, 1008, 1085, 1009, 780, 781, 1844 782, 1010, 1011, 1179, 472, 1012, 1013, 1024, -386, 448, 1845 815, -385, 1071, 1082, -3, 1038, 33, 434, 1081, 1193, 1846 1083, 36, 255, 1084, 453, 39, 1091, 1411, 1089, 505, 1847 1073, 1088, 40, 41, 1092, 1090, 1098, 1108, 1109, 762, 1848 1110, 527, 322, 211, 974, 1113, 1120, 53, 1117, 1141, 1849 1164, 1162, 1163, 1165, 706, 67, 368, 42, 1166, 457, 1850 104, 1180, 1181, 323, 1183, 1184, 1192, 144, 1182, 1198, 1851 215, 255, 344, 1196, -3, 1197, 1203, 1208, 46, 1056, 1852 1214, 1225, 1223, 493, 1218, 1457, 1411, 505, 505, 858, 1853 1228, 728, 739, 211, 743, 1232, 1236, 1239, 726, 1296, 1854 1241, 399, 1243, 1244, 1249, 1273, 210, 1245, 1246, 1247, 1855 1100, 1256, 1265, 1121, 1121, 1121, 417, 1266, 1276, 142, 1856 423, 1277, 1342, 1490, 157, 334, 104, 1290, 717, 1298, 1857 2, 202, 4, 5, 6, 7, 717, 717, 717, 1279, 1858 904, 1280, 1287, 172, 1304, 440, 74, 1306, 1102, 443, 1859 1310, 444, 1312, 1318, 1311, 1319, 1320, 210, 1322, 1328, 1860 459, 66, 60, 1329, 1330, 1331, 63, 1056, 1338, 1339, 1861 1349, 473, 1283, 527, 1352, 1354, 392, 726, 393, 1355, 1862 717, 480, 1357, 206, 216, 394, 1362, 72, 34, 423, 1863 35, 208, 400, 1365, 1361, 1372, 1100, 395, 396, 1373, 1864 210, -387, 1376, 397, 1397, 53, 401, 1387, 1391, 398, 1865 1393, 663, 1401, 67, 211, 104, 1335, 975, 72, 1056, 1866 1398, 1410, 1056, 1058, 1101, 664, 1271, 1272, 1420, 1274, 1867 1405, 1406, 1407, 1408, 1102, 1278, 1179, 472, 1281, 1422, 1868 46, 46, 211, 878, 1333, 1121, 1121, 211, 1415, 1350, 1869 1424, 1426, 1428, 218, 718, 255, 1430, 1431, 594, 1443, 1870 210, 1056, 1432, 527, 622, 1451, 1056, 1453, 1455, 1456, 1871 1463, 1475, 990, 1478, 1485, 433, 1487, 627, 1493, 1499, 1872 53, 627, 995, 434, 255, 793, 1100, 901, 67, 1056, 1873 794, 796, 795, 1231, 1470, 797, 1289, 1006, 210, 1390, 1874 1458, 1501, 210, 929, 74, 1351, 1474, 146, 1226, 932, 1875 1101, 1353, 147, 1227, 148, 1202, 1446, 1086, 712, 683, 1876 684, 926, 812, 36, 1102, 170, 171, 39, 1087, 1472, 1877 473, 46, 1116, 211, 40, 41, 885, 1037, 1056, 949, 1878 347, 1097, 1299, 1056, 344, 731, 957, 211, 802, 473, 1879 46, 46, 104, 158, 1449, 803, 1056, 473, 1056, 370, 1880 0, 0, 1056, 1377, 804, 1056, 1385, 0, 0, 1450, 1881 46, 1056, 367, 104, 0, 1056, 0, 1179, 472, 74, 1882 0, 1449, 0, 713, 1179, 472, 423, 210, 1384, 479, 1883 1447, 0, 104, 0, 0, 36, 1450, 179, 180, 39, 1884 1101, 727, 0, 63, 318, 1417, 40, 41, 0, 0, 1885 1421, 423, 0, 441, 1396, 423, 0, 1473, 0, 0, 1886 0, 53, 0, 1179, 472, 0, 0, 0, 53, 67, 1887 172, 181, 0, 1435, 72, 0, 67, 0, 211, 72, 1888 0, 182, 0, 255, 344, 0, 0, 0, 104, 0, 1889 0, 527, 36, 1498, 179, 180, 39, 0, 0, 718, 1890 0, 0, 0, 40, 41, 1503, 210, 53, 8, 9, 1891 10, 11, 12, 0, 0, 67, 0, 0, 104, 0, 1892 0, 643, 0, 0, 0, 0, 0, 1041, 261, 805, 1893 1156, 1157, 509, 0, 0, 30, 0, 0, 262, 0, 1894 1491, 0, 0, 0, 0, 75, 1491, 627, 818, 0, 1895 594, 0, 0, 0, 0, 1491, 210, 0, 33, 1491, 1896 74, 837, 0, 0, 0, 0, 0, 74, 0, 0, 1897 0, 0, 218, 0, 0, 0, 75, 0, 0, 594, 1898 0, 0, 0, 0, 594, 0, 1205, 1206, 0, 0, 1899 627, 0, 0, 344, 344, 344, 0, 0, 0, 569, 1900 0, 404, 0, 322, 0, 0, 74, 0, 104, 570, 1901 344, 219, 209, 0, 0, 643, 0, 0, 0, 0, 1902 0, 0, 228, 0, 54, 54, 0, 0, 713, 104, 1903 0, 718, 172, 0, 0, 0, 104, 0, 72, 473, 1904 0, 718, 36, 527, 255, 727, 39, 0, 922, 0, 1905 0, -276, 347, 40, 41, 54, 718, 72, 8, 9, 1906 10, 11, 12, 209, 211, 72, 0, 0, 0, 0, 1907 0, 0, 0, 0, 0, 104, 0, 210, 825, 0, 1908 601, 473, 0, 0, 344, 30, 0, 54, 602, 0, 1909 54, 347, -277, 948, 0, 0, 423, 0, 349, 8, 1910 9, 10, 11, 12, 0, 210, 209, 0, 33, 347, 1911 210, 72, 1041, 0, 0, 0, 0, 0, 255, 727, 1912 0, 0, 0, 0, 973, 0, 30, 0, 0, 0, 1913 0, 0, 8, 9, 10, 11, 12, 0, 8, 9, 1914 10, 11, 12, 0, 0, 0, 0, 0, 406, 33, 1915 0, 0, 347, 1321, 0, 414, 0, 0, 0, 30, 1916 713, 1323, 1324, 1325, 0, 30, 209, 0, 0, 0, 1917 713, 0, 0, 344, 0, 627, 0, 342, 1004, 627, 1918 818, 0, 33, 0, 0, 713, 0, 36, 33, 179, 1919 180, 39, 75, 0, 0, 1015, 210, 75, 40, 41, 1920 0, 0, 0, 0, 209, 1356, 0, 0, 209, 0, 1921 210, 0, 0, 77, 0, 1269, 347, 0, 0, 0, 1922 0, 0, 0, 600, 499, 601, 0, 406, 0, 764, 1923 0, 404, 0, 602, 0, 0, 0, 0, 211, 765, 1924 0, 54, 0, 0, 77, 0, 63, 0, 0, 718, 1925 718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926 0, 347, 347, 347, 0, 0, 0, 0, 627, 0, 1927 0, 54, 0, 0, 0, 0, 0, 0, 347, 220, 1928 0, 575, 0, 8, 9, 10, 11, 12, 0, 579, 1929 219, 0, 582, 209, 0, 0, 347, 0, 0, 0, 1930 0, 210, 0, 1094, 0, 718, 718, 72, 0, 0, 1931 30, 423, 114, 347, 0, 0, 0, 36, 0, 179, 1932 180, 39, 0, 121, 124, 125, 344, 0, 40, 41, 1933 211, 0, 0, 33, 535, 536, 537, 538, 539, 540, 1934 541, 542, 543, 544, 0, 0, 0, 0, 0, 72, 1935 0, 0, 347, 687, 406, 404, 75, 0, 414, 0, 1936 594, 688, 0, 689, 0, 0, 350, 545, 0, 0, 1937 349, 0, 209, 142, 943, 75, 601, 0, 713, 713, 1938 0, 344, 344, 75, 944, 0, 0, 347, 0, 209, 1939 0, 0, 0, 0, 250, 0, 251, 0, 0, 0, 1940 0, 1178, 0, 0, 0, 0, 0, 0, 0, 349, 1941 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 1942 0, 0, 209, 0, 0, 0, 0, 349, 347, 75, 1943 0, 0, 0, 0, 713, 713, 0, 0, 347, 30, 1944 627, 347, 406, 1297, 0, 0, 218, 0, 347, 342, 1945 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 1946 77, 0, 33, 0, 0, 77, 0, 36, 0, 0, 1947 349, 39, 718, 0, 0, 389, 0, 0, 40, 41, 1948 718, 718, 718, 0, 0, 408, 409, 210, 0, 0, 1949 413, 0, 415, 416, 0, 727, 0, 0, 0, 0, 1950 0, 0, 0, 733, 0, 0, 0, 0, 54, 0, 1951 0, 0, 0, 734, 72, 36, 0, 179, 180, 39, 1952 0, 0, 0, 0, 718, 0, 40, 41, 0, 0, 1953 0, 84, 575, 575, 349, 0, 0, 0, 1270, 0, 1954 0, 0, 0, 209, 0, 0, 0, 0, 0, 342, 1955 0, 600, 0, 601, 0, 255, 0, 0, 220, 63, 1956 0, 602, 84, 0, 0, 0, 0, 0, 0, 0, 1957 0, 209, 713, 0, 727, 0, 209, 0, 114, 349, 1958 349, 349, 0, 0, 0, 0, 0, 0, 0, 0, 1959 0, 0, 0, 0, 347, 0, 349, 221, 0, 0, 1960 0, 713, 0, 0, 0, 0, 0, 0, 0, 713, 1961 713, 713, 0, 342, 349, 0, 0, 0, 0, 896, 1962 344, 344, 0, 899, 77, 75, 0, 0, 0, 0, 1963 0, 349, 0, 0, 1178, 0, 0, 0, 350, 0, 1964 0, 0, 0, 77, 0, 0, 347, 347, 0, 347, 1965 347, 77, 0, 713, 0, 0, 406, 0, 342, 342, 1966 342, 210, 209, 0, 114, 0, 0, 75, 0, 72, 1967 349, 0, 0, 0, 0, 342, 209, 350, 0, 0, 1968 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 1969 0, 0, 0, 0, 0, 350, 499, 77, 0, 0, 1970 0, 0, 347, 347, 0, 349, 0, 0, 0, 0, 1971 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 1972 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 1973 23, 24, 0, 344, 25, 26, 27, 0, 350, 0, 1974 0, 0, 30, 446, 0, 0, 349, 0, 0, 342, 1975 0, 0, 0, 210, 114, 0, 349, 0, 0, 349, 1976 0, 0, 0, 347, 219, 33, 349, 209, 575, 0, 1977 0, 349, 37, 38, 0, 1178, 0, 0, 84, 0, 1978 0, 0, 1178, 84, 0, 0, 0, 0, 0, 0, 1747 110, 146, 46, 147, 95, 393, 148, 447, 394, 378, 1748 395, 111, 704, 422, 401, 402, 434, 885, 923, 396, 1749 397, 731, 398, 399, 500, 836, 611, 263, 256, 965, 1750 473, 861, 924, 46, 743, 95, 925, 140, 748, 844, 1751 710, 1078, 1129, 630, 46, 832, 46, 634, 158, 1374, 1752 113, 778, 837, 1137, 1171, 47, 46, 30, 30, 404, 1753 838, 843, 46, 835, 189, 46, 699, 212, 46, 847, 1754 222, 606, 30, 810, 120, 854, 215, 338, 108, 108, 1755 984, 1436, 108, 276, 941, 393, 47, 530, 394, 149, 1756 395, 1432, 671, 156, 401, 402, 923, 927, 150, 396, 1757 397, 1181, 398, 399, 833, 30, 46, 1169, 1170, 46, 1758 924, 419, 680, 1120, 925, 46, 198, 119, 403, 940, 1759 684, 151, 248, 405, 405, 1199, 60, 1177, 286, 598, 1760 -225, -225, 30, 477, 479, 277, 413, 1195, 405, 770, 1761 146, 1197, 147, 1447, 834, 148, 46, 1077, 158, 248, 1762 325, 67, 254, 1178, 46, 1432, 968, 60, 156, 46, 1763 199, 368, 478, 675, 677, 1436, 1394, 1395, 108, 483, 1764 1436, 405, 139, 875, 875, 875, 30, 108, 521, 832, 1765 54, 54, 67, 46, 46, 1187, 158, 1436, 507, 567, 1766 473, 875, 319, 108, 1436, -225, 160, 1066, 108, 46, 1767 530, 335, 530, 30, 138, 669, 774, 46, 1246, 158, 1768 473, 54, 141, 66, 208, 780, 46, 738, 473, 46, 1769 146, 437, 147, 568, 143, 148, 731, 753, 149, 1085, 1770 1396, 1327, 666, 667, 754, 1247, 1329, 150, 833, 747, 1771 845, 864, 603, 54, 66, 865, 54, 467, 1171, 46, 1772 424, 95, 836, 465, 428, 237, 240, 761, 53, 112, 1773 151, 160, 589, 46, 46, 875, 158, 852, 152, 603, 1774 46, 704, 832, 732, 821, 167, 1026, 46, 834, 837, 1775 372, 530, 695, 697, 319, 450, 611, 838, 518, 53, 1776 1013, 338, 741, -455, 1323, 847, 373, 1171, 1025, 104, 1777 104, 731, 47, 1508, 658, 1186, 1139, 1377, 674, 676, 1778 1002, 887, 1394, 1395, 666, 667, 428, 870, 530, 490, 1779 1517, 206, 814, -455, 216, -455, 46, 1521, 368, -455, 1780 104, 833, 673, 343, 173, 1457, 1509, 1201, 678, 523, 1781 381, 888, 156, 645, 74, 46, 46, 889, 550, 165, 1782 1169, 1170, 966, 551, 552, 875, 382, 429, 1192, 1078, 1783 1522, 1178, 46, 916, 441, 104, 46, 108, 436, 136, 1784 137, 834, 836, 60, 1119, 74, 1405, 866, 474, 478, 1785 177, 867, 598, 462, 257, 844, 588, 258, 455, 595, 1786 197, 108, 46, 136, 137, -281, 521, 54, 67, 837, 1787 521, 569, 46, 521, 368, 881, 848, 838, 628, 384, 1788 851, 598, 632, 1171, 459, 335, 598, 752, 861, 429, 1789 46, 108, 1187, 136, 234, 385, 46, 54, 46, -109, 1790 225, 868, 239, 386, 226, 871, 1381, 230, 578, 232, 1791 1421, 1422, 525, 36, 579, 160, 241, 39, 243, 387, 1792 -109, 338, 46, 246, 40, 41, 803, 235, -109, -109, 1793 66, 473, 236, -506, 169, 1077, 685, 1427, 110, 319, 1794 319, 248, 579, 755, -109, 435, 46, 756, 732, 829, 1795 762, 603, 1157, 1159, 46, 722, 368, -10, 46, 604, 1796 95, 723, 46, 886, 433, 1242, 208, 450, 1107, 500, 1797 450, 1088, 1121, 945, 1007, 53, 450, 249, 821, 1122, 1798 1135, 388, 260, 758, 393, 1066, 739, 394, 113, 395, 1799 553, 554, 740, 611, 401, 402, 1236, 389, 396, 397, 1800 775, 398, 399, 758, 899, 781, -431, 1026, 474, -432, 1801 705, 47, 1360, 490, 1093, 319, 104, 490, 485, 495, 1802 646, 496, 699, 732, 326, 502, 706, 523, 474, 557, 1803 558, 523, 707, 319, 523, 1358, 474, 1168, 1024, 1187, 1804 897, 225, 705, 707, 1184, 335, 1187, 1184, 708, 906, 1805 379, 749, 467, 1275, 1276, 94, 1312, 750, 919, 920, 1806 1185, 74, 46, 1303, 559, 560, 74, 1093, 821, 272, 1807 455, 411, 1313, 455, 46, 1367, 46, 343, 720, 455, 1808 729, 274, 60, 338, 876, 877, 94, 1314, 866, 580, 1809 1187, 405, 1103, 173, 431, 46, 208, 145, 319, 94, 1810 709, 895, 275, 1315, 439, 459, 163, 67, 1404, 819, 1811 631, 46, 595, 1321, 635, 185, 765, 366, 94, 704, 1812 1322, 94, 766, 766, 896, 46, 898, -102, 46, 1393, 1813 525, -102, 1401, 1029, 525, 969, 54, 525, 742, 1361, 1814 746, 860, 910, 874, 874, 874, 595, 327, 766, 1037, 1815 328, 1024, 869, 731, 108, 329, 136, 137, 338, 1463, 1816 330, 874, 46, 1346, 46, 331, 1463, 1347, 1482, 66, 1817 1082, 163, 522, 1435, 1487, 948, 367, 343, 1439, -109, 1818 225, -109, 230, 555, 556, -109, 1465, 571, 1466, 405, 1819 744, 1504, 944, 561, 562, 745, 1511, 572, 1044, 94, 1820 -109, -109, 1115, 1456, 583, 323, 405, 335, 46, 46, 1821 1505, 768, 94, 405, 53, 2, 202, 4, 5, 6, 1822 7, 769, 46, 371, 1234, 1104, 74, 912, 1238, 450, 1823 666, 667, 383, 766, 1506, 874, 392, 185, 695, 697, 1824 391, 343, 949, 821, 603, 436, 74, 248, 325, 405, 1825 992, 1004, 950, 1417, 74, 104, 993, 723, 1232, 490, 1826 94, 413, 662, 405, 579, 1005, 403, 430, 598, 225, 1827 1429, 420, 94, 34, 823, 35, 900, 1516, 405, 474, 1828 1349, 421, 335, 1516, 720, 729, 343, 343, 343, 923, 1829 882, 426, 1516, 1354, 766, 997, 1516, 323, 444, 766, 1830 74, 46, 94, 924, 343, 1161, 36, 925, 179, 180, 1831 39, 36, 457, 46, 1355, 39, 481, 40, 41, 682, 1832 766, 474, 40, 41, 1357, 874, 483, 325, 405, 430, 1833 766, 463, 455, 1480, 1429, -3, 903, 208, 405, 1006, 1834 1362, 464, 602, 819, 603, 460, 766, 42, 159, 108, 1835 935, 208, 604, 724, 486, 163, 938, 144, 506, 1182, 1836 729, 1064, 1418, 1437, 190, 1475, 1525, 213, 1415, 766, 1837 223, 1476, 579, 863, 791, 792, 793, 794, 343, 94, 1838 8, 9, 10, 11, 12, 108, 46, 136, 137, 878, 1839 522, 845, 325, 603, 522, 514, 1141, 522, 405, 605, 1840 46, 526, 600, 894, 1153, 732, 405, 30, 46, 2, 1841 202, 4, 5, 6, 7, 286, 1156, 720, 603, 530, 1842 36, 63, 114, 1158, 39, 603, 46, 720, 325, 405, 1843 33, 40, 41, 819, 1328, 1330, 1331, 450, 1220, 1108, 1844 405, 563, 720, 208, 931, 564, 931, 566, 159, 531, 1845 532, 533, 63, 1294, 1295, 185, 736, 1415, 1416, 1131, 1846 565, 369, 758, -428, 1131, 157, 737, 34, 343, 35, 1847 569, 571, 534, 405, 535, 343, 536, 490, 1110, 319, 1848 334, 572, 323, 323, 732, 587, 159, 217, 60, 126, 1849 590, 127, 128, 129, 1227, 1458, 1459, 74, 640, 969, 1850 502, 1394, 1395, 969, 969, 696, 787, 788, 823, 159, 1851 789, 790, 1131, 67, 659, 795, 796, 660, 661, 663, 1852 664, 438, 1064, 668, 255, 1196, 1198, 1200, 860, 646, 1853 665, 670, 253, 711, 688, 751, 1049, 713, -229, 74, 1854 455, 94, 54, 763, 767, 605, 771, 824, 1283, 1284, 1855 826, 1286, 828, 908, 839, 884, 1494, 1290, 323, 891, 1856 1293, -12, 915, 883, 211, 324, 917, 8, 9, 10, 1857 11, 12, 911, 255, 345, 66, 323, 913, 914, 918, 1858 691, 238, 46, 939, 8, 9, 10, 11, 12, -405, 1859 -510, 953, 960, 740, 30, 962, 967, 973, 974, 1093, 1860 977, 338, 978, 400, 979, 721, 976, 450, 819, 54, 1861 999, 30, 988, 1000, 1001, 211, 1319, 33, 418, 1015, 1862 53, 423, 425, 1016, 1017, 343, 157, 646, 369, 1018, 1863 1019, 1020, 1021, 436, 33, 1032, -393, -392, 1079, 720, 1864 720, 323, 1081, 1046, 1089, 1090, 474, 442, 1091, 1092, 1865 1097, 445, 1096, 446, 1099, 600, -282, 831, 211, 605, 1866 1098, 104, 461, 8, 9, 10, 11, 12, 63, 215, 1867 1100, 67, 1106, 475, 1116, 768, 766, 405, 46, 1064, 1868 343, 343, 1117, 482, 862, 769, 1118, 1109, 982, 600, 1869 30, 425, 1123, 1127, 1130, 720, 720, 1151, 1174, 1375, 1870 54, 1172, 1173, 1375, 369, 1175, 74, 1190, 1176, 1108, 1871 455, 1206, 1191, 33, 1400, 1131, 1131, 1131, 211, 36, 1872 1193, 170, 171, 39, 1049, 335, 1194, 1202, 104, 1207, 1873 40, 41, 36, 1189, 170, 171, 39, 1208, -3, 1213, 1874 1515, 1218, 729, 40, 41, 922, 1224, 696, 1110, 495, 1875 1228, 1233, 1235, 1237, 1240, -283, 211, 1413, 255, 1244, 1876 211, 596, 8, 9, 10, 11, 12, 624, 367, 1064, 1877 1248, 1253, 1251, 1255, 72, 1256, 1257, 1285, 53, 1258, 1878 629, 1259, 1261, 1268, 629, 393, 1277, 255, 394, 30, 1879 395, 831, 605, 1278, 401, 402, 1448, 1108, 1087, 396, 1880 397, 1302, 398, 399, 1310, 72, 60, 1288, 1289, 208, 1881 1291, 721, 33, 1316, 1292, 666, 667, 1299, 1318, 104, 1882 1320, 729, 1325, 1064, 1324, 1326, 1064, 1332, 1333, 1281, 1883 1334, 67, 1336, 475, 1342, 1308, 1110, 1343, 54, 54, 1884 218, 1344, 1345, 1356, 46, 46, 211, 1352, 345, 1353, 1885 1363, 1131, 1131, 475, 1493, 1295, 1366, 1368, 1369, 1371, 1886 54, 475, 1378, 1381, 74, 1388, 720, 1064, 1389, -394, 1887 1392, 1403, 1064, 1407, 720, 720, 720, 1409, 1414, 54, 1888 1423, 1419, 1424, 474, 831, 1449, 1428, 716, 1425, 1426, 1889 425, 1108, 1433, 66, 1438, 1442, 605, 1064, 1347, 1440, 1890 1444, 1446, -284, 436, 1453, 730, 1451, 63, 67, 8, 1891 9, 10, 11, 12, 1472, 425, 206, 216, 720, 425, 1892 146, 1452, 147, 343, 343, 148, 211, 348, 1474, 1464, 1893 1110, 1478, 54, 1479, 1486, 1498, 30, 54, 53, 1499, 1894 1495, 1518, 46, 1203, 721, 1500, 1503, 255, 345, 909, 1895 1510, 1064, 1512, 926, 721, 1524, 1064, 1109, 104, 33, 1896 797, 799, 1470, 46, 46, 798, 158, 54, 800, 721, 1897 1189, 1064, 1243, 1064, 801, 926, 211, 1064, 172, 104, 1898 1064, 1406, 1481, 696, 1301, 46, 1064, 368, 1526, 1365, 1899 1064, 696, 1470, 809, 1497, 1239, 1379, 1467, 104, 1212, 1900 443, 686, 687, 1094, 932, 1045, 1095, 1126, 890, 605, 1901 435, 629, 822, 955, 596, 53, 715, 319, 816, 1311, 1902 1105, 72, 323, 734, 74, 841, 72, 806, 172, 210, 1903 474, 172, 963, 807, 808, 0, 0, 474, 0, 0, 1904 343, 0, 0, 596, 0, 1109, 0, 0, 596, 0, 1905 0, 0, 0, 0, 629, 67, 104, 345, 345, 345, 1906 0, 54, 67, 0, 996, 1471, 36, 0, 179, 180, 1907 39, 862, 0, 0, 0, 345, 172, 40, 41, 0, 1908 210, 474, 998, 0, 54, 75, 104, 0, 0, 0, 1909 0, 54, 1003, 716, 0, 1471, 0, 211, 0, 0, 1910 0, 74, 181, 0, 475, 0, 67, 1014, 0, 255, 1911 730, 0, 182, 928, 0, 0, 75, 1189, 0, 0, 1912 218, 0, 1412, 210, 1189, 211, 0, 0, 0, 0, 1913 211, 0, 0, 0, 0, 54, 0, 0, 172, 1109, 1914 407, 0, 1039, 0, 0, 0, 475, 415, 0, 345, 1915 0, 219, 36, 0, 179, 180, 39, 0, 954, 0, 1916 0, 425, 53, 40, 41, 0, 721, 721, 1189, 53, 1917 0, 0, 0, 0, 0, 0, 0, 1364, 0, 0, 1918 104, 0, 0, 210, 255, 730, 72, 0, 261, 0, 1919 981, 0, 172, 36, 0, 170, 171, 39, 262, 172, 1920 0, 348, 0, 104, 40, 41, 72, 0, 0, 0, 1921 104, 0, 0, 53, 72, 0, 0, 211, 0, 407, 1922 0, 210, 721, 721, 0, 210, 716, 0, 0, 371, 1923 926, 211, 0, 0, 0, 0, 716, 0, 350, 345, 1924 348, 629, 0, 0, 1012, 629, 822, 0, 74, 0, 1925 0, 716, 0, 0, 104, 74, 0, 0, 348, 1138, 1926 72, 1023, 8, 9, 10, 11, 12, 172, 0, 0, 1927 0, 0, 0, 0, 577, 8, 9, 10, 11, 12, 1928 0, 0, 581, 0, 172, 584, 0, 0, 172, 30, 1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 1930 0, 348, 30, 0, 1166, 1167, 0, 0, 0, 1039, 1931 0, 210, 33, 63, 0, 0, 0, 36, 0, 179, 1932 180, 39, 0, 211, 1468, 33, 0, 0, 40, 41, 1933 36, 0, 75, 0, 39, 629, 0, 75, 0, 0, 1934 0, 40, 41, 0, 0, 0, 0, 407, 0, 0, 1935 172, 415, 0, 602, 1496, 603, 0, 0, 0, 0, 1936 1215, 1216, 1309, 604, 0, 348, 42, 0, 77, 0, 1937 0, 1102, 0, 0, 0, 0, 144, 0, 0, 425, 1938 114, 0, 926, 0, 0, 0, 0, 0, 0, 0, 1939 0, 210, 0, 721, 1523, 84, 345, 0, 0, 77, 1940 0, 721, 721, 721, 0, 0, 1528, 0, 0, 0, 1941 348, 348, 348, 0, 0, 0, 0, 0, 0, 511, 1942 0, 0, 0, 0, 0, 0, 84, 0, 348, 0, 1943 596, 219, 528, 529, 220, 0, 407, 0, 0, 926, 1944 926, 210, 0, 423, 549, 721, 348, 0, 716, 716, 1945 0, 345, 345, 0, 0, 0, 0, 72, 0, 0, 1946 0, 221, 0, 348, 0, 8, 9, 10, 11, 12, 1947 0, 1188, 2, 202, 4, 5, 6, 7, 0, 0, 1948 529, 0, 36, 0, 179, 180, 39, 0, 0, 0, 1949 0, 0, 30, 40, 41, 0, 0, 75, 0, 72, 1950 224, 0, 348, 0, 716, 716, 0, 0, 0, 0, 1951 629, 0, 350, 211, 172, 33, 529, 75, 690, 0, 1952 405, 351, 0, 0, 0, 75, 577, 577, 692, 0, 1953 34, 1335, 35, 0, 0, 0, 0, 0, 348, 1337, 1954 1338, 1339, 0, 0, 0, 0, 481, 172, 358, 0, 1955 0, 350, 0, 0, 0, 0, 949, 0, 603, 0, 1956 323, 0, 210, 172, 0, 0, 950, 730, 0, 350, 1957 36, 75, 179, 180, 39, 0, 0, 172, 0, 348, 1958 0, 40, 41, 1370, 0, 0, 209, 0, 0, 348, 1959 210, 0, 348, 0, 0, 210, 228, 218, 0, 348, 1960 0, 0, 0, 0, 348, 0, 1491, 0, 405, 0, 1961 1282, 0, 350, 0, 901, 77, 1492, 0, 904, 0, 1962 77, 36, 0, 179, 180, 39, 0, 255, 0, 0, 1963 0, 63, 40, 41, 0, 0, 0, 209, 0, 926, 1964 0, 0, 84, 0, 716, 0, 730, 84, 0, 0, 1965 114, 407, 0, 0, 0, 0, 926, 690, 0, 405, 1966 0, 0, 0, 0, 0, 691, 72, 692, 0, 0, 1967 0, 0, 0, 0, 172, 716, 350, 0, 0, 0, 1968 209, 0, 210, 716, 716, 716, 0, 0, 0, 211, 1969 784, 785, 786, 0, 345, 345, 210, 537, 538, 539, 1970 540, 541, 542, 543, 544, 545, 546, 0, 1188, 0, 1971 0, 0, 0, 0, 220, 0, 0, 0, 0, 926, 1972 926, 350, 350, 350, 0, 0, 0, 716, 0, 0, 1973 547, 0, 0, 529, 0, 0, 0, 0, 114, 350, 1974 209, 221, 0, 0, 0, 0, 0, 0, 0, 348, 1975 0, 0, 0, 0, 0, 0, 0, 350, 0, 8, 1976 9, 10, 11, 12, 577, 0, 0, 0, 75, 0, 1977 0, 0, 0, 0, 350, 0, 0, 0, 209, 0, 1978 77, 0, 209, 211, 0, 0, 30, 0, 210, 0, 1979 0, 0, 0, 0, 0, 351, 0, 0, 501, 0, 1980 77, 348, 348, 0, 348, 348, 0, 84, 77, 33, 1981 75, 345, 0, 350, 36, 0, 179, 180, 39, 0, 1982 0, 0, 358, 0, 72, 40, 41, 84, 0, 0, 1983 0, 0, 114, 0, 351, 84, 0, 0, 172, 0, 1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, 1985 181, 0, 351, 0, 77, 1188, 0, 348, 348, 0, 1986 182, 358, 1188, 0, 0, 0, 529, 0, 209, 0, 1987 0, 0, 0, 0, 0, 0, 0, 407, 0, 358, 1988 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 1989 350, 0, 0, 0, 0, 351, 0, 0, 0, 0, 1990 350, 0, 0, 350, 0, 0, 1188, 0, 219, 0, 1991 350, 983, 0, 1513, 0, 350, 0, 0, 0, 0, 1992 348, 0, 358, 0, 469, 2, 202, 4, 5, 6, 1993 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1994 17, 18, 19, 20, 21, 22, 23, 24, 209, 0, 1995 25, 26, 27, 0, 1142, 0, 0, 529, 30, 351, 1996 0, 0, 0, 218, 0, 209, 0, 0, 0, 0, 1997 1154, 0, 0, 0, 0, 0, 0, 75, 210, 0, 1998 0, 33, 0, 34, 72, 35, 358, 0, 37, 38, 1999 0, 0, 0, 0, 0, 0, 0, 348, 209, 348, 2000 0, 0, 0, 0, 351, 351, 351, 0, 0, 0, 1979 2001 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 1980 12, 0, 350, 0, 0, 0, 218, 0, 447, 0, 1981 0, 0, 700, 0, 0, 0, 109, 0, 0, 0, 1982 0, 1178, 36, 30, 179, 180, 39, 72, 1488, 0, 1983 0, 0, 75, 40, 41, 0, 0, 0, 342, 0, 1984 347, 0, 347, 0, 0, 342, 33, 350, 350, 350, 1985 0, 36, 0, 179, 180, 39, 0, 0, 687, 0, 1986 404, 0, 40, 41, 350, 0, 0, 0, 689, 347, 1987 0, 807, 808, 0, 0, 0, 221, 347, 347, 347, 1988 406, 0, 350, 0, 0, 0, 0, 181, 347, 347, 1989 0, 0, 0, 77, 0, 0, 0, 182, 0, 350, 1990 0, 842, 72, 0, 845, 846, 0, 849, 0, 851, 1991 852, 54, 349, 0, 853, 854, 0, 0, 0, 0, 1992 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 1993 0, 0, 0, 0, 0, 77, 0, 0, 350, 0, 1994 0, 0, 84, 0, 0, 0, 36, 0, 179, 180, 1995 39, 0, 0, 209, 1132, 0, 357, 40, 41, 0, 1996 0, 84, 0, 0, 349, 349, 0, 349, 349, 84, 1997 1144, 0, 0, 350, 164, 0, 168, 54, 0, 174, 1998 175, 176, 1468, 178, 404, 0, 0, 75, 0, 0, 1999 0, 342, 1469, 0, 0, 357, 927, 928, 229, 0, 2000 0, 347, 930, 8, 9, 10, 11, 12, 0, 0, 2001 244, 245, 0, 357, 350, 84, 0, 0, 0, 0, 2002 349, 349, 0, 0, 350, 0, 0, 350, 0, 0, 2003 30, 0, 220, 0, 350, 0, 0, 0, 0, 350, 2004 0, 0, 0, 72, 0, 1211, 342, 342, 0, 0, 2005 72, 0, 0, 33, 0, 0, 357, 0, 36, 0, 2006 179, 180, 39, 0, 0, 0, 54, 0, 0, 40, 2007 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2008 0, 349, 0, 0, 0, 0, 0, 0, 0, 72, 2009 0, 0, 0, 0, 687, 0, 404, 0, 0, 0, 2010 77, 0, 0, 0, 689, 0, 0, 0, 0, 0, 2002 12, 0, 351, 0, 0, 0, 0, -3, 348, 0, 2003 0, 358, 358, 358, 0, 0, 348, 348, 348, 0, 2004 351, 0, 0, 30, 0, 1221, 0, 348, 348, 358, 2005 0, 77, 0, 0, 0, 0, 0, 351, 0, 0, 2006 350, 72, 0, 164, 0, 168, 33, 358, 174, 175, 2007 176, 36, 178, 179, 180, 39, 0, 0, 84, 0, 2008 348, 0, 40, 41, 358, 0, 0, 229, 0, 0, 2009 0, 0, 0, 77, 0, 0, 351, 0, 0, 244, 2010 245, 0, 0, 0, 0, 0, 0, 690, 0, 405, 2011 0, 0, 350, 350, 0, 350, 350, 692, 0, 209, 2012 84, 0, 0, 358, 0, 0, 0, 0, 0, 0, 2013 172, 0, 351, 0, 0, 75, 0, 0, 0, 0, 2014 0, 0, 0, 0, 0, 0, 0, 209, 0, 529, 2015 0, 0, 209, 0, 210, 0, 0, 0, 0, 358, 2016 0, 0, 0, 0, 348, 0, 0, 0, 350, 350, 2017 0, 0, 0, 351, 0, 0, 0, 8, 9, 10, 2018 11, 12, 0, 351, 0, 0, 351, 0, 0, 0, 2019 511, 220, 0, 351, 0, 0, 0, 0, 351, 0, 2020 358, 0, 0, 0, 30, 0, 0, 0, 72, 0, 2021 358, 0, 0, 358, 0, 72, 0, 0, 221, 0, 2022 358, 0, 0, 0, 0, 358, 0, 33, 0, 0, 2023 0, 350, 36, 0, 179, 180, 39, 0, 0, 209, 2024 0, 0, 0, 40, 41, 0, 0, 0, 210, 0, 2025 0, 0, 0, 209, 0, 0, 0, 0, 0, 72, 2026 77, 8, 9, 10, 11, 12, 0, 0, 1491, 0, 2027 405, 0, 0, 501, 219, 0, 0, 0, 1492, 0, 2028 0, 0, 0, 0, 0, 0, 0, 84, 30, 0, 2029 0, 0, 0, 0, 0, 75, 172, 0, 0, 0, 2030 0, 0, 0, 529, 0, 0, 0, 0, 350, 0, 2031 350, 33, 0, 0, 0, 0, 36, 0, 179, 180, 2032 39, 0, 0, 0, 0, 0, 0, 40, 41, 0, 2033 0, 0, 123, 123, 123, 0, 0, 0, 0, 350, 2034 0, 0, 0, 351, 0, 209, 0, 350, 350, 350, 2035 0, 0, 261, 594, 601, 0, 0, 0, 350, 350, 2036 0, 0, 262, 0, 0, 625, 626, 0, 0, 0, 2037 358, 0, 75, 0, 0, 0, 0, 0, 0, 0, 2038 0, 0, 121, 124, 125, 0, 0, 0, 0, 0, 2039 0, 350, 0, 0, 162, 351, 351, 0, 351, 351, 2040 0, 0, 0, 123, 0, 123, 0, 8, 9, 10, 2041 11, 12, 0, 214, 0, 0, 0, 0, 77, 0, 2042 0, 0, 358, 358, 0, 358, 358, 0, 0, 271, 2043 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2044 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 2045 0, 351, 351, 250, 0, 251, 0, 33, 0, 162, 2046 0, 0, 36, 0, 268, 0, 39, 0, 0, 0, 2047 0, 0, 0, 40, 41, 350, 0, 0, 358, 358, 2048 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 2049 0, 0, 123, 162, 123, 123, 0, 0, 736, 123, 2050 0, 123, 123, 364, 0, 0, 0, 370, 737, 0, 2051 0, 0, 0, 0, 351, 0, 0, 0, 0, 75, 2052 0, 0, 0, 0, 0, 278, 75, 279, 0, 0, 2053 0, 0, 0, 0, 390, 209, 0, 0, 0, 0, 2054 0, 358, 0, 0, 409, 410, 0, 0, 280, 414, 2055 0, 416, 417, 0, 281, 162, 0, 220, 282, 0, 2056 0, 283, 284, 285, 286, 40, 41, 214, 287, 288, 2057 75, 123, 0, 0, 0, 0, 289, 0, 77, 0, 2058 0, 0, 0, 0, 221, 162, 456, 0, 0, 0, 2059 290, 351, 374, 351, 0, 0, 0, 0, 0, 292, 2060 376, 294, 295, 296, 297, 84, 0, 0, 0, 370, 2061 0, 0, 0, 1204, 0, 0, 0, 162, 358, 0, 2062 358, 0, 351, 0, 0, 0, 0, 0, 0, 0, 2063 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 2064 456, 351, 351, 162, 0, 0, 0, 1022, 0, 358, 2065 8, 9, 10, 11, 12, 77, 0, 358, 358, 358, 2066 0, 0, 0, 0, 0, 0, 0, 0, 358, 358, 2067 0, 0, 0, 0, 351, 0, 278, 30, 279, 0, 2068 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 2069 599, 0, 0, 0, 0, 623, 0, 0, 0, 280, 2070 33, 358, 0, 0, 0, 281, 0, 0, 0, 282, 2071 0, 209, 283, 284, 285, 286, 40, 41, 0, 287, 2072 288, 0, 0, 0, 0, 0, 0, 289, 0, 0, 2073 942, 0, 943, 0, 0, 0, 0, 0, 0, 946, 2074 947, 290, 0, 374, 952, 0, 0, 0, 0, 0, 2075 292, 817, 294, 295, 296, 297, 957, 0, 351, 0, 2076 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 2077 162, 162, 0, 0, 0, 0, 0, 364, 0, 0, 2078 0, 0, 0, 0, 0, 358, 989, 0, 0, 0, 2079 0, 0, 0, 0, 0, 0, 0, 0, 456, 0, 2080 0, 456, 77, 0, 0, 209, 0, 456, 0, 77, 2081 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2082 18, 19, 20, 21, 22, 23, 24, -285, 0, 84, 2083 594, 0, 0, 0, 733, 0, 84, 30, 0, 0, 2084 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 2085 0, 0, 0, 77, 0, 0, 0, 0, 456, 0, 2086 33, 0, 456, 0, 162, 456, 0, 0, 0, 0, 2087 0, -285, 0, 0, 0, 0, 0, 364, 0, 0, 2088 84, 0, 123, 123, 0, 0, 0, 1033, 1034, 1035, 2089 1036, 0, 1038, 0, 0, 0, 0, 0, 0, 0, 2090 0, 0, 0, 0, 0, 0, 0, 0, 1080, 0, 2091 0, 0, 123, 0, 0, 123, 123, 0, 123, 0, 2092 123, 123, 1086, 0, 0, 123, 123, 0, 0, 162, 2093 0, 0, 811, 812, 0, 0, 0, 0, 0, 0, 2094 0, 364, 0, 599, 0, 0, 827, 0, 0, 0, 2011 2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2012 357, 0, 0, 0, 219, 0, 0, 209, 8, 9, 2013 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2014 20, 21, 22, 23, 24, 75, 0, 25, 26, 27, 2015 0, 0, 0, 0, 0, 30, 446, 0, 349, 0, 2016 349, 0, 0, 0, 0, 357, 357, 357, 0, 0, 2017 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2018 350, 0, 357, 0, 0, 37, 38, 349, 0, 0, 2019 0, 0, 0, 0, 0, 349, 349, 349, 0, 0, 2020 357, 0, 54, 54, 0, 0, 349, 349, 0, 0, 2021 0, 84, 0, 0, 0, 0, 0, 357, 0, 209, 2022 75, 447, 0, 0, 54, 931, 0, 0, 0, 109, 2023 0, 0, 350, 350, 0, 350, 350, 0, 0, 349, 2024 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 2025 0, 0, 0, 84, 0, 77, 357, 0, 0, 0, 2026 0, 0, 0, 592, 599, 0, 0, 0, 0, 0, 2027 0, 0, 0, 0, 0, 623, 624, 0, 0, 0, 2028 0, 0, 0, 0, 0, 342, 342, 0, 350, 350, 2029 0, 357, 0, 0, 54, 0, 0, 0, 0, 54, 2030 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2031 17, 18, 19, 20, 21, 22, 23, 24, -278, 349, 2032 25, 26, 27, 0, 0, 0, 0, 0, 30, 54, 2033 0, 0, 357, 0, 0, 0, 0, 0, 0, 0, 2034 0, 0, 357, 0, 0, 357, 0, 0, 0, 350, 2035 221, 33, 357, 0, 0, 0, 0, 357, 37, 38, 2036 0, 75, -278, 0, 0, 0, 0, 0, 75, 0, 2037 0, 0, 0, 0, 0, 1207, 0, 8, 9, 10, 2038 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 2039 0, 0, 220, 0, 333, 0, 0, 0, 342, 0, 2040 0, 0, 109, 0, 30, 0, 0, 75, 0, 0, 2041 0, 0, 0, 77, 0, 0, 0, 0, 84, 54, 2042 0, 0, 0, 0, 0, 0, 350, 33, 350, 0, 2043 0, 0, 36, 0, 179, 180, 39, 0, 0, 0, 2044 54, 0, 0, 40, 41, 0, 0, 54, 0, 0, 2045 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 2046 0, 0, 0, 350, 350, 350, 0, 0, 1468, 0, 2047 404, 0, 0, 0, 350, 350, 0, 0, 1469, 0, 2048 0, 0, 0, 0, 0, 0, 54, 0, 77, 0, 2049 0, 0, 0, 0, 0, 1288, 0, 0, 357, 0, 2050 0, 0, 0, 0, 0, 0, 0, 350, 0, 1014, 2051 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2052 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 2053 0, 0, 0, 0, 0, 0, 0, 0, 277, 30, 2054 278, 0, 0, 0, 0, 214, 0, 0, 0, 0, 2055 357, 357, 0, 357, 357, 0, 0, 0, 0, 0, 2056 0, 279, 33, 0, 0, 0, 0, 280, 0, 0, 2057 0, 281, 0, 84, 282, 283, 284, 285, 40, 41, 2058 0, 286, 287, 0, 0, 0, 0, 350, 0, 288, 2059 0, 162, 0, 0, 0, 0, 268, 0, 0, 0, 2060 0, 0, 0, 289, 0, 373, 357, 357, 0, 0, 2061 0, 0, 291, 813, 293, 294, 295, 296, 0, 0, 2062 0, 0, 0, 0, 0, 162, 0, 0, 0, 77, 2063 0, 0, 0, 0, 0, 363, 77, 0, 936, 369, 2064 937, 0, 0, 0, 0, 0, 0, 940, 941, 0, 2065 0, 0, 946, 0, 1152, 0, 0, 8, 9, 10, 2066 11, 12, 0, 0, 951, 0, 0, 357, 0, 955, 2067 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 2068 0, 0, 0, 277, 30, 278, 0, 162, 0, 0, 2069 0, 0, 0, 981, 0, 0, 0, 0, 0, 214, 2070 0, 0, 0, 0, 0, 0, 279, 33, 0, 0, 2071 221, 0, 280, 0, 0, 0, 281, 162, 454, 282, 2072 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2073 0, 84, 0, 0, 288, 0, 0, 592, 0, 0, 2074 0, 369, 0, 0, 357, 0, 357, 0, 289, 162, 2075 373, 0, 0, 0, 0, 0, 0, 291, 1153, 293, 2076 294, 295, 296, 0, 0, 0, 0, 0, 0, 0, 2077 0, 454, 0, 357, 162, 0, 0, 0, 0, 0, 2078 0, 357, 357, 357, 0, 0, 0, 0, 0, 0, 2079 0, 0, 357, 357, 1025, 1026, 1027, 1028, 0, 1030, 2080 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 2081 0, 0, 0, 0, 1072, 0, 0, 0, 0, 0, 2082 0, 597, 0, 0, 0, 357, 621, 0, 1078, 0, 2083 0, 0, 0, 1, 2, 202, 4, 5, 6, 7, 2084 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2085 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2086 26, 27, 28, 0, 0, 29, 1093, 30, 0, 0, 2087 0, 0, 123, 123, 123, 0, 0, 0, 0, 0, 2096 0, 1101, 846, 0, 0, 849, 850, 0, 853, 0, 2097 855, 856, 599, 0, 0, 857, 858, 599, 0, 0, 2098 0, 0, 0, 0, 0, 0, 364, 364, 364, 0, 2088 2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2089 33, 0, 34, 0, 35, 0, 0, 37, 38, 0, 2090 0, 162, 162, 1118, 0, 357, 0, 363, 0, 0, 2091 1126, 0, 0, 0, 1130, 0, 0, 0, 0, 1134, 2092 0, 1135, 0, 0, 0, 1137, 1138, 1139, 454, 0, 2093 1142, 454, 0, 43, 0, 0, 0, 454, 0, 1154, 2094 0, 109, 0, 123, 0, 123, 0, 84, 0, 0, 2095 0, 0, 0, 0, 84, 0, 0, 1169, 1170, 8, 2096 9, 10, 11, 12, 730, 0, 0, 0, 0, 271, 2097 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 2098 0, 0, 1199, 0, 0, 1201, 30, 0, 0, 454, 2099 0, 0, 454, 84, 162, 454, 0, 0, 0, 0, 2100 0, 0, 0, 0, 0, 0, 0, 363, 0, 33, 2101 0, 0, 0, 0, 36, 0, 179, 180, 39, 0, 2102 0, 0, 0, 1216, 123, 40, 41, 0, 0, 1220, 2103 1221, 0, 123, 0, 123, 123, 0, 0, 1229, 123, 2104 0, 123, 123, 1233, 0, 0, 1237, 0, 1238, 0, 2105 261, 1240, 0, 0, 0, 0, 0, 0, 0, 162, 2106 262, 0, 0, 0, 1248, 0, 0, 0, 0, 0, 2107 0, 363, 0, 597, 0, 0, 823, 1255, 0, 1257, 2108 1258, 1259, 1260, 0, 0, 0, 0, 0, 0, 0, 2109 0, 0, 0, 0, 0, 1267, 0, 1268, 0, 0, 2110 0, 168, 597, 0, 0, 0, 0, 597, 0, 0, 2111 0, 123, 0, 0, 0, 0, 363, 363, 363, 0, 2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 1292, 2113 1293, 0, 0, 363, 0, 0, 0, 207, 0, 0, 2114 0, 0, 0, 0, 0, 0, 0, 227, 0, 231, 2115 0, 233, 0, 0, 0, 0, 0, 0, 242, 0, 2116 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 2117 0, 0, 0, 0, 0, 0, 0, 1326, 1327, 0, 2118 0, 0, 0, 0, 0, 0, 0, 1337, 207, 454, 2119 231, 233, 242, 0, 0, 0, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 0, 0, 363, 0, 945, 2121 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 2100 1128, 0, 0, 123, 364, 0, 0, 1136, 123, 123, 2101 0, 1140, 0, 0, 123, 0, 1144, 0, 1145, 0, 2102 0, 0, 1147, 1148, 1149, 0, 0, 1152, 0, 0, 2103 0, 0, 0, 0, 0, 0, 1164, 0, 0, 733, 2122 2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2123 0, 207, 0, 1364, 0, 0, 0, 0, 0, 0, 2124 0, 0, 730, 0, 0, 1368, 0, 1369, 1370, 1371, 2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 1375, 2126 0, 0, 0, 0, 0, 153, 0, 0, 1386, 0, 2105 0, 0, 0, 0, 1179, 1180, 0, 0, 933, 934, 2106 456, 0, 0, 0, 936, 0, 0, 0, 0, 0, 2107 0, 0, 0, 0, 0, 0, 0, 0, 364, 1209, 2108 951, 0, 1211, 8, 9, 10, 11, 12, 13, 14, 2109 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2110 0, 0, 25, 26, 27, 0, 0, 207, 0, 0, 2111 30, 0, 0, 0, 733, 0, 0, 227, 0, 231, 2112 1226, 233, 0, 0, 0, 0, 1230, 1231, 242, 0, 2113 0, 0, 0, 33, 0, 0, 0, 1241, 0, 0, 2114 203, 38, 1245, 0, 0, 1249, 0, 1250, 0, 0, 2115 1252, 0, 0, 0, 0, 0, 0, 0, 207, 0, 2116 231, 233, 242, 1260, 0, 0, 0, 0, 364, 0, 2117 0, 0, 623, 0, 0, 364, 1267, 0, 1269, 1270, 2118 1271, 1272, 0, 0, 267, 0, 0, 0, 0, 0, 2119 0, 0, 0, 0, 1279, 0, 1280, 0, 0, 0, 2120 168, 207, 0, 0, 0, 0, 0, 0, 0, 0, 2127 2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128 1394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2129 0, 207, 0, 231, 233, 242, 363, 0, 0, 0, 2130 621, 0, 0, 363, 0, 0, 0, 0, 0, 0, 2131 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, 2132 0, 252, 0, 0, 0, 0, 0, 1433, 1434, 207, 2133 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 2134 1439, 0, 0, 0, 0, 0, 0, 1439, 0, 497, 2135 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2136 18, 19, 20, 21, 22, 23, 24, -278, 0, 25, 2137 26, 27, 1467, 0, 0, 0, 153, 30, 0, 0, 2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 2139 0, 0, 0, 0, 0, 454, 0, 207, 1489, 0, 2140 33, 0, 0, 0, 0, 36, 0, 331, 332, 39, 2141 0, -278, 411, 0, 0, 0, 40, 41, 207, 0, 2142 123, 123, 1502, 231, 233, 0, 425, 1504, 0, 0, 2143 0, 242, 0, 0, 0, 430, 162, 0, 0, 0, 2144 0, 634, 0, 333, 0, 438, 0, 0, 0, 363, 2145 123, 625, 0, 123, 123, 0, 123, 0, 123, 123, 2146 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 2147 464, 0, 0, 207, 0, 474, 0, 0, 0, 0, 2148 0, 0, 0, 597, 0, 0, 0, 0, 482, 0, 2149 0, 207, 0, 0, 492, 0, 496, 207, 0, 0, 2150 0, 0, 0, 0, 363, 363, 0, 0, 0, 0, 2151 0, 0, 525, 0, 207, 0, 0, 207, 207, 0, 2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 2154 123, 0, 0, 0, 0, 123, 123, 207, 0, 0, 2155 0, 123, 0, 0, 207, 584, 0, 0, 0, 0, 2156 589, 0, 454, 201, 2, 202, 4, 5, 6, 7, 2157 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2158 18, 19, 20, 21, 22, 23, 24, 0, 635, 25, 2159 26, 27, 636, 637, 0, 639, 0, 30, 0, 0, 2160 0, 649, 650, 0, 651, 652, 0, 653, 0, 654, 2161 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 2162 33, 0, 34, 0, 35, 36, 584, 203, 38, 39, 2163 0, 0, 0, 0, 669, 0, 40, 41, 0, 0, 2164 0, 0, 0, 277, 0, 278, 0, 0, 0, 0, 2165 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, 2166 214, 42, 0, 204, 0, 0, 279, 0, 207, 686, 2167 0, 205, 280, 0, 0, 0, 281, 0, 0, 282, 2168 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2169 0, 0, 722, 0, 288, 0, 207, 730, 725, 0, 2170 0, 207, 0, 464, 0, 0, 0, 0, 289, 0, 2171 373, 0, 0, 0, 0, 0, 0, 291, 375, 293, 2172 294, 295, 296, 0, 0, 0, 0, 0, 336, 358, 2173 0, 1194, 0, 0, 0, 0, 0, 0, 0, 760, 2174 0, 0, 0, 363, 363, 0, 0, 0, 0, 0, 2175 0, 0, 214, 0, 0, 775, 0, 0, 0, 0, 2176 0, 407, 0, 0, 0, 0, 0, 0, 407, 8, 2177 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2178 19, 20, 21, 22, 23, 24, 0, 207, 25, 26, 2179 27, 801, 0, 0, 0, 277, 30, 278, 0, 0, 2180 811, 207, 0, 0, 0, 0, 0, 814, 0, 0, 2181 0, 0, 821, 0, 0, 0, 0, 0, 279, 33, 2182 0, 497, 0, 836, 280, 0, 37, 38, 281, 0, 2183 0, 282, 283, 284, 285, 40, 41, 0, 286, 287, 2184 407, 0, 0, 0, 0, 0, 288, 0, 0, 0, 2185 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2186 289, 0, 517, 876, 0, 167, 0, 0, 0, 291, 2187 292, 293, 294, 295, 296, 0, 0, 0, 0, 207, 2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2189 0, 0, 207, 0, 407, 0, 0, 0, 821, 0, 2190 0, 0, 407, 580, 0, 407, 583, 454, 0, 0, 2191 0, 207, 0, 0, 0, 358, 0, 0, 0, 613, 2192 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 2193 0, 0, 0, 0, 454, 0, 0, 0, 631, 0, 2194 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, 2195 0, 0, 0, 247, 0, 0, 0, 162, 0, 0, 2196 0, 0, 0, 952, 953, 0, 0, 407, 0, 0, 2197 0, 407, 0, 0, 0, 967, 0, 0, 0, 0, 2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2199 0, 0, 982, 0, 983, 0, 207, 0, 987, 0, 2200 0, 358, 0, 0, 0, 0, 0, 0, 0, 0, 2201 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 2202 0, 0, 207, 0, 407, 0, 0, 0, 340, 0, 2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2204 376, 0, 0, 0, 123, 0, 0, 207, 0, 0, 2205 0, 0, 0, 0, 0, 407, 0, 0, 358, 0, 2206 0, 0, 0, 1019, 0, 0, 0, 0, 0, 0, 2207 1020, 0, 0, 0, 0, 277, 0, 278, 207, 0, 2208 0, 0, 0, 1022, 0, 1023, 0, 0, 0, 207, 2209 0, 0, 0, 0, 0, 0, 0, 407, 279, 1035, 2210 336, 358, 0, 0, 280, 1039, 0, 0, 281, 0, 2211 316, 282, 283, 284, 285, 40, 41, 1075, 286, 287, 2212 1076, 0, 0, 0, 0, 0, 288, 0, 0, 0, 2213 0, 0, 0, 0, 0, 478, 0, 0, 589, 0, 2214 289, 0, 373, 0, 0, 407, 407, 0, 798, 291, 2215 375, 293, 294, 295, 296, 0, 0, 0, 0, 0, 2216 0, 0, 0, 0, 816, 358, 0, 358, 207, 0, 2217 0, 0, 0, 0, 0, 0, 613, 0, 613, 613, 2218 0, 0, 0, 0, 0, 613, 0, 0, 0, 0, 2219 0, 0, 0, 0, 0, 855, 358, 0, 0, 0, 2220 0, 358, 0, 0, 0, 0, 0, 0, 0, 0, 2221 358, 358, 358, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 1136, 0, 0, 0, 0, 358, 0, 0, 2223 0, 0, 407, 897, 0, 0, 407, 900, 0, 0, 2224 0, 0, 0, 902, 0, 0, 0, 0, 0, 376, 2225 0, 0, 207, 277, 0, 278, 0, 0, 0, 0, 2226 0, 336, 358, 407, 0, 407, 0, 0, 0, 407, 2227 0, 0, 0, 0, 0, 0, 279, 525, 0, 0, 2228 0, 0, 640, 1200, 136, 137, 281, 0, 0, 282, 2229 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2230 0, 358, 613, 0, 288, 0, 0, 0, 0, 0, 2231 0, 0, 1213, 0, 0, 0, 0, 1215, 289, 0, 2232 641, 0, 642, 374, 0, 1219, 0, 291, 375, 293, 2233 294, 295, 296, 0, 0, 336, 358, 0, 0, 0, 2234 407, 407, 0, 0, 207, 504, 508, 504, 511, 724, 2235 0, 0, 0, 1242, 0, 514, 515, 0, 0, 0, 2236 504, 504, 0, 0, 0, 1250, 0, 0, 1251, 0, 2237 1252, 0, 504, 0, 0, 0, 0, 0, 0, 0, 2238 0, 407, 0, 0, 1261, 1262, 0, 756, 0, 0, 2239 358, 0, 0, 0, 0, 0, 816, 358, 0, 0, 2240 769, 613, 0, 613, 0, 0, 1275, 756, 504, 0, 2241 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, 2242 778, 779, 0, 0, 0, 0, 0, 0, 0, 0, 2243 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 2244 0, 0, 800, 0, 504, 0, 0, 0, 0, 0, 2245 0, 0, 809, 0, 0, 0, 0, 0, 0, 340, 2246 0, 0, 0, 0, 769, 0, 0, 0, 8, 9, 2247 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2248 20, 21, 22, 23, 24, 816, 0, 25, 26, 27, 2249 0, 0, 0, 407, 0, 30, 0, 0, 407, 0, 2250 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 2251 0, 0, 0, 0, 875, 0, 0, 0, 33, 613, 2252 613, 376, 1358, 0, 1359, 203, 38, 0, 0, 0, 2253 0, 0, 0, 0, 0, 1366, 0, 1367, 0, 0, 2254 0, 0, 0, 358, 0, 0, 0, 0, 0, 407, 2255 0, 0, 0, 0, 0, 1374, 0, 0, 0, 0, 2256 0, 340, 207, 0, 0, 0, 0, 407, 1133, 267, 2257 0, 1392, 0, 0, 0, 0, 0, 358, 0, 1395, 2258 0, 0, 1219, 407, 1145, 0, 613, 613, 1150, 0, 2259 0, 0, 0, 0, 0, 0, 0, 0, 358, 358, 2260 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, 2261 0, 1423, 0, 0, 1425, 1427, 0, 504, 504, 504, 2262 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 2263 504, 504, 504, 504, 504, 769, 0, 972, 0, 0, 2264 0, 0, 0, 977, 0, 0, 0, 0, 0, 1452, 2265 986, 1219, 0, 0, 0, 0, 0, 816, 407, 1212, 2266 504, 0, 0, 1462, 0, 0, 0, 0, 0, 0, 2267 613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269 0, 0, 0, 1002, 1003, 0, 340, 0, 0, 0, 2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2271 0, 340, 358, 2, 202, 4, 5, 6, 7, 8, 2122 0, 0, 0, 0, 0, 0, 0, 0, 1304, 1305, 2123 0, 0, 201, 2, 202, 4, 5, 6, 7, 8, 2272 2124 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2273 2125 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2274 27, 0, 0, 0, 0, 277, 30, 278, 0, 0, 2275 0, 1033, 0, 0, 0, 376, 0, 504, 0, 0, 2276 0, 0, 0, 0, 0, 0, 0, 0, 279, 33, 2277 0, 34, 336, 35, 280, 0, 37, 38, 281, 504, 2278 0, 282, 283, 284, 285, 40, 41, 0, 286, 287, 2279 0, 358, 504, 0, 0, 0, 288, 0, 0, 0, 2126 27, 207, 0, 231, 233, 242, 30, 0, 456, 0, 2127 0, 0, 0, 0, 0, 153, 0, 0, 1340, 1341, 2128 0, 0, 0, 0, 0, 0, 0, 0, 1351, 33, 2129 0, 34, 0, 35, 36, 0, 203, 38, 39, 207, 2130 0, 0, 0, 207, 0, 40, 41, 0, 0, 0, 2131 162, 0, 0, 0, 0, 0, 0, 0, 0, 499, 2132 0, 247, 0, 0, 0, 364, 0, 0, 0, 0, 2133 42, 252, 204, 0, 0, 0, 1380, 0, 0, 0, 2134 205, 0, 0, 0, 0, 0, 0, 0, 1384, 0, 2135 1385, 1386, 1387, 0, 0, 0, 0, 0, 0, 599, 2136 0, 0, 1391, 0, 0, 0, 0, 0, 207, 0, 2137 0, 1402, 0, 0, 278, 0, 279, 0, 0, 0, 2138 364, 364, 0, 1410, 0, 0, 153, 0, 0, 207, 2139 0, 0, 123, 0, 231, 233, 0, 280, 0, 380, 2140 0, 0, 242, 281, 0, 0, 0, 282, 0, 0, 2141 283, 284, 285, 286, 40, 41, 0, 287, 288, 0, 2142 0, 0, 412, 0, 0, 289, 0, 0, 0, 0, 2143 0, 0, 0, 0, 1454, 1455, 427, 0, 456, 290, 2144 0, 374, 1217, 0, 207, 432, 772, 1460, 292, 376, 2145 294, 295, 296, 297, 1460, 440, 0, 0, 0, 0, 2146 0, 0, 207, 0, 0, 0, 0, 207, 0, 207, 2280 2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2281 289, 0, 338, 0, 0, 0, 0, 768, 0, 291, 2282 339, 293, 294, 295, 296, 0, 0, 0, 0, 316, 2283 0, 0, 0, 0, 0, 0, 504, 358, 358, 0, 2284 0, 0, 1114, 1115, 0, 0, 0, 0, 277, 376, 2285 278, 0, 0, 0, 0, 977, 0, 0, 1124, 0, 2286 756, 0, 0, 0, 0, 0, 0, 504, 0, 0, 2287 0, 279, 0, 0, 0, 0, 0, 280, 0, 1140, 2288 0, 281, 504, 0, 282, 283, 284, 285, 40, 41, 2289 1155, 286, 287, 0, 0, 0, 0, 0, 0, 288, 2148 466, 0, 1490, 0, 0, 476, 207, 0, 0, 207, 2149 207, 0, 0, 0, 0, 0, 733, 0, 484, 0, 2150 0, 0, 0, 0, 494, 207, 498, 0, 0, 0, 2151 1514, 0, 0, 0, 123, 0, 0, 0, 0, 207, 2152 0, 0, 0, 527, 0, 0, 207, 0, 0, 0, 2153 0, 0, 0, 0, 0, 0, 1527, 0, 214, 0, 2154 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 2290 2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2291 0, 0, 376, 289, 1173, 373, 0, 0, 374, 0, 2292 0, 0, 291, 375, 293, 294, 295, 296, 0, 1195, 2156 0, 0, 0, 0, 1300, 0, 586, 0, 0, 0, 2157 0, 591, 0, 0, 0, 733, 0, 0, 0, 0, 2158 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2159 17, 18, 19, 20, 21, 22, 23, 24, 0, 637, 2160 25, 26, 27, 638, 639, 0, 641, 0, 30, 0, 2161 0, 0, 652, 653, 0, 654, 655, 0, 656, 0, 2162 657, 0, 1162, 364, 364, 8, 9, 10, 11, 12, 2163 0, 33, 214, 0, 0, 0, 0, 586, 203, 38, 2164 207, 0, 0, 0, 0, 672, 0, 0, 0, 0, 2165 0, 278, 30, 279, 0, 0, 0, 0, 0, 0, 2166 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 2167 683, 0, 0, 207, 280, 33, 0, 0, 0, 0, 2168 281, 689, 622, 0, 282, 0, 0, 283, 284, 285, 2169 286, 40, 41, 0, 287, 288, 0, 0, 0, 0, 2170 0, 0, 289, 0, 725, 0, 0, 0, 0, 0, 2171 728, 0, 0, 0, 0, 466, 290, 0, 374, 0, 2172 0, 0, 0, 0, 0, 292, 1163, 294, 295, 296, 2173 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2174 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2175 0, 764, 0, 0, 509, 510, 513, 0, 0, 0, 2176 207, 0, 0, 516, 517, 0, 0, 779, 510, 510, 2177 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 2178 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179 0, 0, 0, 456, 499, 0, 0, 0, 0, 0, 2180 0, 0, 0, 805, 337, 359, 0, 0, 0, 0, 2181 0, 0, 815, 0, 0, 0, 510, 0, 0, 818, 2182 0, 0, 0, 456, 825, 0, 0, 0, 0, 0, 2183 0, 0, 0, 0, 0, 840, 0, 408, 0, 0, 2184 0, 0, 0, 0, 408, 0, 0, 0, 162, 0, 2185 0, 0, 510, 207, 0, 0, 0, 0, 0, 0, 2186 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 2187 0, 0, 0, 0, 0, 0, 880, 0, 0, 0, 2188 0, 0, 0, -505, 0, 207, 1, 2, 3, 4, 2189 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2190 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2191 0, 825, 25, 26, 27, 28, 408, 0, 29, 0, 2192 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2293 2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 0, 0, 1204, 0, 2295 358, 0, -497, 0, 0, 1, 2, 3, 4, 5, 2296 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2297 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2298 0, 25, 26, 27, 28, 0, 0, 29, 0, 30, 2299 31, 0, 977, 0, 0, 0, 0, 0, 0, 0, 2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 2301 0, 875, 33, 0, 34, 0, 35, 36, 0, 37, 2302 38, 39, 0, 0, 0, 407, 1253, 1254, 40, 41, 2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 2304 0, 278, 0, 0, 407, 407, 0, 0, 0, 0, 2305 0, 0, 0, 42, 0, 43, 0, 0, 504, 0, 2306 0, 0, 279, 44, 407, 0, 0, 0, 280, 0, 2307 504, 0, 281, 0, 0, 282, 283, 284, 285, 40, 2308 41, 0, 286, 287, 0, 0, 0, 0, 0, 0, 2309 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 0, 0, 977, 289, 0, 373, 0, 0, 974, 2311 0, 504, 0, 291, 375, 293, 294, 295, 296, 0, 2312 0, 1, 2, 202, 4, 5, 6, 7, 8, 9, 2194 32, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2195 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2196 41, 0, 0, 0, 0, 0, 247, 0, 0, 0, 2197 0, 408, 207, 0, 0, 0, 958, 959, 0, 408, 2198 582, 0, 408, 585, 42, 0, 43, 0, 0, 975, 2199 0, 0, 359, 0, 44, 0, 615, 0, 207, 0, 2200 0, 0, 0, 0, 0, 0, 990, 0, 991, 0, 2201 0, 0, 995, 0, 0, 633, 0, 0, 337, 0, 2202 0, 0, 0, 0, 0, 207, 510, 510, 510, 510, 2203 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, 2204 510, 510, 510, 510, 408, 0, 0, 0, 408, 278, 2205 0, 279, 0, 0, 0, 0, 207, 0, 0, 0, 2206 0, 0, 0, 0, 0, 0, 0, 207, 0, 510, 2207 0, 0, 280, 0, 0, 0, 0, 1027, 642, 359, 2208 136, 137, 282, 0, 1028, 283, 643, 285, 286, 40, 2209 41, 0, 287, 288, 0, 0, 0, 1030, 0, 1031, 2210 289, 0, 408, 0, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 1043, 290, 0, 644, 0, 645, 375, 2212 1047, 0, 0, 292, 376, 294, 295, 296, 297, 0, 2213 0, 0, 1083, 408, 0, 1084, 359, 0, 0, 0, 2214 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 2215 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 2216 0, 0, 0, 0, 0, 0, 0, 510, 0, 0, 2217 0, 0, 0, 0, 0, 408, 0, 0, 337, 359, 2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2220 317, 0, 510, 0, 0, 0, 0, 0, 0, 0, 2221 341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 377, 408, 408, 0, 0, 0, 0, 0, 2223 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 2224 1146, 0, 820, 359, 0, 359, 0, 510, 0, 0, 2225 0, 0, 0, 0, 615, 0, 615, 615, 0, 0, 2226 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, 2227 0, 0, 0, 859, 359, 0, 0, 0, 510, 359, 2228 0, 0, 0, 0, 0, 0, 0, 0, 359, 359, 2229 359, 0, 317, 510, 0, 527, 0, 0, 0, 0, 2230 0, 1210, 0, 0, 0, 0, 359, 0, 0, 0, 2231 0, 408, 902, 0, 0, 408, 905, 480, 0, 0, 2232 0, 0, 907, 0, 0, 0, 207, 0, 0, 0, 2233 1223, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 2234 337, 359, 408, 1229, 408, 0, 0, 0, 408, 201, 2235 2, 202, 4, 5, 6, 7, 8, 9, 10, 11, 2236 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2237 22, 23, 24, 1254, 0, 25, 26, 27, 0, 0, 2238 359, 615, 0, 30, 0, 1262, 0, 0, 1263, 0, 2239 1264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2240 0, 0, 0, 0, 1273, 1274, 33, 0, 34, 0, 2241 35, 0, 0, 203, 38, 337, 359, 0, 0, 0, 2242 408, 408, 0, 0, 0, 0, 1287, 0, 0, 0, 2243 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 2244 0, 0, 0, 0, 510, 0, 0, 0, 0, 204, 2245 0, 0, 1306, 0, 0, 0, 0, 267, 0, 0, 2246 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 2247 359, 0, 0, 510, 0, 0, 820, 359, 0, 0, 2248 0, 615, 0, 615, 0, 510, 0, 0, 0, 0, 2249 0, 0, 0, 615, 0, 0, 0, 8, 9, 10, 2250 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2251 21, 22, 23, 24, -285, 0, 25, 26, 27, 0, 2252 0, 0, 0, 0, 30, 0, 510, 0, 0, 0, 2253 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 2254 0, 0, 0, 0, 1372, 0, 1373, 33, 0, 0, 2255 0, 0, 36, 0, 332, 333, 39, 207, -285, 1382, 2256 0, 1383, 0, 40, 41, 0, 820, 0, 0, 0, 2257 0, 760, 0, 0, 408, 0, 0, 0, 0, 1390, 2258 408, 0, 0, 0, 773, 0, 0, 0, 408, 0, 2259 334, 760, 0, 0, 0, 1408, 510, 0, 109, 0, 2260 0, 615, 615, 1411, 782, 783, 1229, 0, 8, 9, 2261 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2262 20, 21, 22, 23, 24, -286, 804, 359, 1434, 0, 2263 0, 0, 0, 408, 0, 30, 813, 1441, 0, 510, 2264 1443, 1445, 0, 341, 0, 0, 0, 0, 773, 0, 2265 0, 408, 1143, 510, 510, 0, 0, 0, 33, 0, 2266 0, 359, 0, 0, 0, 0, 0, 408, 1155, -286, 2267 615, 615, 1160, 0, 0, 0, 0, 1473, 0, 1229, 2268 0, 0, 359, 359, 0, 0, 0, 0, 0, 0, 2269 0, 0, 0, 0, 1485, 0, 0, 0, 879, 0, 2270 0, 0, 0, 0, 0, 0, 377, 2, 202, 4, 2271 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2272 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2273 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2274 30, 820, 408, 1222, 0, 0, 341, 0, 0, 0, 2275 0, 0, 0, 0, 615, 0, 0, 0, 0, 0, 2276 0, 0, 0, 33, 0, 34, 0, 35, 0, 0, 2277 203, 38, 0, 1, 2, 3, 4, 5, 6, 7, 2278 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2279 18, 19, 20, 21, 22, 23, 24, 0, 359, 25, 2280 26, 27, 28, 0, 0, 29, 266, 30, 31, 0, 2281 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 2282 0, 773, 0, 980, 0, 0, 0, 32, 0, 985, 2283 33, 0, 34, 0, 35, 36, 994, 37, 38, 39, 2284 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, 2285 0, 0, 0, 510, 0, 0, 0, 0, 337, 0, 2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2287 510, 42, 0, 43, 0, 0, 0, 359, 0, 1010, 2288 1011, 44, 341, 0, 0, 0, 0, 0, 0, 0, 2289 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 2290 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2291 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 2292 0, 0, 0, 0, 0, 359, 359, 30, 0, 0, 2293 0, 0, 0, 510, 510, 0, 0, 1041, 0, 0, 2294 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 2295 33, 0, 0, 0, 1, 2, 202, 4, 5, 6, 2296 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2297 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2298 25, 26, 27, 28, 0, 0, 29, 278, 30, 1050, 2299 1051, 0, 1052, 0, 0, 1053, 1054, 1055, 1056, 1057, 2300 1058, 1059, 1060, 0, 1061, 0, 0, 1062, 32, 0, 2301 280, 33, 0, 34, 0, 35, 642, 317, 37, 38, 2302 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2303 287, 288, 1124, 1125, 0, 0, 0, 0, 289, 377, 2304 0, 0, 359, 0, 0, 985, 0, 0, 1134, 0, 2305 760, 0, 290, 0, 1063, 0, 278, 167, 279, 0, 2306 0, 292, 293, 294, 295, 296, 297, 0, 0, 1150, 2307 0, 0, 0, 0, 0, -126, 0, 0, 0, 280, 2308 1165, 0, 0, 0, 0, 281, 0, 0, 0, 282, 2309 0, 0, 283, 284, 285, 286, 40, 41, 0, 287, 2310 288, 0, 377, 0, 1183, 0, 0, 289, 0, 0, 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, 2312 0, 290, 408, 374, 0, 0, 375, 0, 0, 0, 2313 292, 376, 294, 295, 296, 297, 0, 278, 1214, 279, 2314 1051, 0, 1052, 408, 408, 1053, 1054, 1055, 1056, 1057, 2315 1058, 1059, 1060, 0, 1061, 0, 0, 1062, 32, 0, 2316 280, 0, 0, 0, 0, 408, 642, 0, 0, 0, 2317 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2318 287, 288, 0, 0, 985, 0, 0, 0, 289, 0, 2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2320 0, 0, 290, 879, 374, 0, 0, 167, 0, 0, 2321 0, 292, 376, 294, 295, 296, 297, 0, 1265, 1266, 2322 0, 0, 1, 2, 202, 4, 5, 6, 7, 8, 2323 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2324 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2325 27, 28, 0, 0, 29, 278, 30, 279, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 0, 0, 0, 0, 0, 0, 280, 33, 2328 0, 34, 0, 35, 281, 0, 37, 38, 282, 0, 2329 0, 283, 284, 285, 286, 40, 41, 985, 287, 288, 2330 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2332 290, 0, 1063, 0, 0, 0, 0, 0, 0, 292, 2333 293, 294, 295, 296, 297, 0, 0, 0, 0, 0, 2334 0, 0, 0, -126, 1, 2, 202, 4, 5, 6, 2335 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2336 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2337 25, 26, 27, 28, 0, 0, 29, 278, 30, 279, 2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2340 280, 33, 0, 34, 0, 35, 281, 0, 37, 38, 2341 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2342 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 1420, 0, 2344 0, 0, 290, 0, 43, 0, 0, 0, 0, 0, 2345 0, 292, 293, 294, 295, 296, 297, 2, 202, 4, 2346 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2347 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2348 0, 0, 25, 26, 27, 0, 0, 0, 0, 278, 2349 30, 279, 0, 0, 0, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2351 1477, 0, 280, 33, 0, 34, 0, 35, 281, 0, 2352 37, 38, 282, 0, 0, 283, 284, 285, 286, 40, 2353 41, 0, 287, 288, 0, 0, 0, 0, 0, 0, 2354 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2355 0, 0, 0, 0, 290, 317, 339, 0, 0, 0, 2356 0, 772, 0, 292, 340, 294, 295, 296, 297, 2, 2357 202, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2358 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2359 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2360 0, 278, 30, 279, 0, 0, 0, 0, 0, 0, 2361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2362 0, 0, 0, 0, 280, 33, 0, 34, 0, 35, 2363 281, 0, 37, 38, 282, 0, 0, 283, 284, 285, 2364 286, 40, 41, 0, 287, 288, 0, 0, 0, 0, 2365 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 2366 0, 0, 0, 0, 0, 0, 290, 0, 921, 0, 2367 0, 0, 0, 772, 0, 292, 340, 294, 295, 296, 2368 297, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2369 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2370 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2371 0, 0, 0, 278, 30, 279, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373 0, 0, 0, 0, 0, 0, 280, 33, 0, 34, 2374 0, 35, 281, 0, 37, 38, 282, 0, 0, 283, 2375 284, 285, 286, 40, 41, 0, 287, 288, 0, 0, 2376 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 2377 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 2378 921, 0, 0, 0, 0, 772, 0, 292, 593, 294, 2379 295, 296, 297, 2, 202, 4, 5, 6, 7, 8, 2380 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2381 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2382 27, 0, 0, 0, 0, 278, 30, 279, 0, 0, 2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 0, 0, 0, 0, 0, 0, 0, 0, 280, 33, 2385 0, 34, 0, 35, 281, 0, 37, 38, 282, 0, 2386 0, 283, 284, 285, 286, 40, 41, 0, 287, 288, 2387 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2389 290, 0, 339, 0, 0, 0, 0, 0, 0, 292, 2390 340, 294, 295, 296, 297, 2, 202, 4, 5, 6, 2391 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2392 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2393 25, 26, 27, 0, 0, 0, 0, 278, 30, 279, 2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2396 280, 33, 0, 34, 0, 35, 281, 0, 37, 38, 2397 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2398 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2400 0, 0, 290, 0, 921, 0, 0, 0, 0, 0, 2401 0, 292, 340, 294, 295, 296, 297, 2, 202, 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, 0, 25, 26, 27, 0, 0, 0, 0, 278, 2405 30, 279, 0, 0, 0, 0, 0, 0, 0, 0, 2406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2407 0, 0, 280, 33, 0, 34, 0, 35, 281, 0, 2408 203, 38, 282, 0, 0, 283, 284, 285, 286, 40, 2409 41, 0, 287, 288, 0, 0, 0, 0, 0, 0, 2410 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2411 0, 0, 0, 0, 290, 0, 1008, 0, 0, 0, 2412 0, 0, 0, 292, 1009, 294, 295, 296, 297, 2, 2413 202, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2414 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2415 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2416 0, 278, 30, 279, 0, 0, 0, 0, 0, 0, 2417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2418 0, 0, 0, 0, 280, 33, 0, 34, 0, 35, 2419 281, 0, 203, 38, 282, 0, 0, 283, 284, 285, 2420 286, 40, 41, 0, 287, 288, 0, 0, 0, 0, 2421 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 290, 0, 374, 0, 2423 0, 0, 0, 0, 0, 292, 376, 294, 295, 296, 2424 297, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2313 2425 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2314 2426 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2315 28, 0, 0, 29, 277, 30, 1042, 1043, 0, 1044, 2316 0, 0, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 2317 0, 1053, 0, 0, 1054, 32, 0, 279, 33, 504, 2318 34, 0, 35, 640, 0, 37, 38, 281, 0, 0, 2319 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2320 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 2322 0, 1055, 504, 0, 167, 0, 0, 0, 291, 292, 2323 293, 294, 295, 296, 0, 0, 504, 504, 0, 0, 2324 1402, 0, -126, 0, 1, 2, 202, 4, 5, 6, 2427 28, 0, 0, 29, 0, 30, 31, 0, 0, 0, 2428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429 0, 0, 0, 0, 0, 32, 0, 0, 33, 0, 2430 34, 0, 35, 36, 0, 37, 38, 39, 0, 0, 2431 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, 2432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2433 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2434 0, 43, 0, 0, 0, -509, 0, 0, 0, 44, 2435 1, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2436 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2437 21, 22, 23, 24, -285, 0, 25, 26, 27, 28, 2438 0, 0, 29, 0, 30, 0, 0, 0, 0, 0, 2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2441 0, 35, 0, 0, 37, 38, 0, 0, -285, 1, 2442 2, 202, 4, 5, 6, 7, 8, 9, 10, 11, 2443 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2444 22, 23, 24, 0, 0, 25, 26, 27, 28, 0, 2445 43, 29, 0, 30, 0, 0, 0, 0, 109, 0, 2446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2448 35, 0, 0, 37, 38, 2, 202, 4, 5, 6, 2325 2449 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2326 2450 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2327 25, 26, 27, 28, 0, 0, 29, 277, 30, 278, 2451 25, 26, 27, 0, 0, 0, 0, 0, 30, 43, 2452 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454 0, 33, 0, 34, 0, 35, 36, 0, 203, 38, 2455 39, 0, 0, 0, 0, 0, 0, 40, 41, 0, 2328 2456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329 2457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2330 279, 33, 0, 34, 0, 35, 280, 1454, 37, 38, 2331 281, 0, 0, 282, 283, 284, 285, 40, 41, 0, 2332 286, 287, 0, 0, 0, 0, 0, 0, 288, 0, 2458 0, 0, 42, 0, 204, 0, 0, 0, 0, 0, 2459 0, 0, 205, 2, 202, 4, 5, 6, 7, 8, 2460 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2461 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2462 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2333 2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2334 0, 0, 289, 0, 1055, 0, 0, 0, 0, 0, 2335 316, 291, 292, 293, 294, 295, 296, 0, 0, 0, 2336 0, 0, 0, 0, 0, -126, 1, 2, 202, 4, 2337 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2338 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2339 0, 0, 25, 26, 27, 28, 0, 0, 29, 277, 2340 30, 278, 8, 9, 10, 11, 12, 13, 14, 15, 2341 16, 17, 18, 19, 20, 21, 22, 23, 24, -278, 2342 0, 0, 279, 33, 0, 34, 0, 35, 280, 30, 2343 37, 38, 281, 0, 0, 282, 283, 284, 285, 40, 2344 41, 0, 286, 287, 0, 0, 0, 504, 0, 0, 2345 288, 0, 33, 0, 0, 0, 0, 0, 0, 0, 2346 0, 0, 0, -278, 289, 0, 43, 0, 0, 0, 2347 0, 0, 0, 291, 292, 293, 294, 295, 296, 0, 2348 0, 0, 2, 202, 4, 5, 6, 7, 8, 9, 2349 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2350 20, 21, 22, 23, 24, 504, 504, 25, 26, 27, 2351 0, 0, 0, 0, 277, 30, 278, 8, 9, 10, 2352 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2353 21, 22, 23, 24, -279, 0, 0, 279, 33, 0, 2354 34, 0, 35, 280, 30, 37, 38, 281, 0, 0, 2355 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2356 0, 0, 0, 0, 0, 288, 0, 33, 0, 0, 2357 0, 0, 0, 0, 0, 0, 0, 0, -279, 289, 2358 0, 916, 0, 0, 0, 0, 768, 0, 291, 339, 2359 293, 294, 295, 296, 2, 202, 4, 5, 6, 7, 2360 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2361 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2362 26, 27, 0, 0, 0, 0, 277, 30, 278, 8, 2363 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2364 19, 20, 21, 22, 23, 24, 0, 0, 0, 279, 2365 33, 0, 34, 0, 35, 280, 30, 37, 38, 281, 2366 0, 0, 282, 283, 284, 285, 40, 41, 0, 286, 2367 287, 0, 0, 0, 0, 0, 0, 288, 0, 33, 2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2465 0, 34, 0, 35, 0, 0, 37, 38, 0, 0, 2466 2, 202, 4, 5, 6, 7, 8, 9, 10, 11, 2467 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2468 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2469 0, -390, 679, 30, 0, 0, 0, 0, 0, 0, 2470 627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2472 35, 0, 0, 37, 38, 0, 0, 0, 0, 0, 2368 2473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2369 0, 289, 0, 916, 0, 0, 0, 0, 768, 0, 2370 291, 591, 293, 294, 295, 296, 2, 202, 4, 5, 2371 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2372 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2373 0, 25, 26, 27, 0, 0, 0, 0, 277, 30, 2374 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2376 0, 279, 33, 0, 34, 0, 35, 280, 0, 37, 2377 38, 281, 0, 0, 282, 283, 284, 285, 40, 41, 2378 0, 286, 287, 0, 0, 0, 0, 0, 0, 288, 2379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 289, 0, 338, 0, 0, 0, 0, 2381 0, 0, 291, 339, 293, 294, 295, 296, 2, 202, 2474 0, 0, 0, 0, 0, 1348, 0, 0, 0, 0, 2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 2476 0, 0, 0, 0, 0, 0, 0, 627, 2, 202, 2382 2477 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2383 2478 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2384 2479 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2385 277, 30, 278, 0, 0, 0, 0, 0, 0, 0, 2480 0, 30, 8, 9, 10, 11, 12, 13, 14, 15, 2481 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2482 0, 25, 26, 27, 33, 0, 34, 0, 35, 30, 2483 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 2386 2484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2387 0, 0, 0, 279, 33, 0, 34, 0, 35, 280, 2388 0, 37, 38, 281, 0, 0, 282, 283, 284, 285, 2389 40, 41, 0, 286, 287, 0, 0, 0, 0, 0, 2390 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 289, 0, 916, 0, 0, 2392 0, 0, 0, 0, 291, 339, 293, 294, 295, 296, 2485 0, 0, 33, 1350, 0, 0, 0, 108, 0, 37, 2486 38, 0, 0, 0, 0, 0, 0, 679, 0, 0, 2487 0, 0, 0, 0, 0, 627, 2, 202, 4, 5, 2488 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2489 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2490 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2494 38, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2495 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2496 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2497 0, 0, 0, 0, 30, 679, 0, 0, 0, 0, 2498 0, 0, 0, 627, 0, 0, 0, 0, 0, 0, 2499 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2500 0, 35, 0, 0, 37, 38, 2, 202, 4, 5, 2501 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2502 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2503 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2504 592, 0, 0, 0, 0, 0, 0, 0, 627, 0, 2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506 0, 0, 33, 0, 34, 0, 35, 0, 0, 203, 2507 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2508 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2509 25, 26, 27, 0, 0, 0, 0, 278, 30, 279, 2510 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 2511 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 2512 280, 33, 0, 0, 0, 0, 281, 0, 37, 38, 2513 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2514 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 0, 0, 290, 0, 519, 0, 0, 167, 0, 0, 2517 0, 292, 293, 294, 295, 296, 297, 8, 9, 10, 2518 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2519 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2520 0, 0, 0, 278, 30, 279, 0, 0, 0, 0, 2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522 0, 0, 0, 0, 0, 0, 280, 33, 0, 0, 2523 0, 0, 281, 0, 37, 38, 282, 0, 0, 283, 2524 284, 285, 286, 40, 41, 0, 287, 288, 0, 0, 2525 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 2526 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 2527 592, -3, 0, 0, 0, 0, 0, 292, 593, 294, 2528 295, 296, 297, 8, 9, 10, 11, 12, 13, 14, 2529 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2530 0, 0, 25, 26, 27, 0, 0, 0, 0, 278, 2531 30, 279, 0, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 0, 280, 33, 0, 0, 0, 0, 642, 0, 2534 37, 38, 282, 0, 0, 283, 284, 285, 286, 40, 2535 41, 0, 287, 288, 0, 0, 0, 0, 0, 0, 2536 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2537 0, 0, 0, 0, 290, -33, 757, 0, 0, 0, 2538 0, 0, 0, 292, 293, 294, 295, 296, 297, 8, 2539 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2540 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2541 27, 0, 0, 0, 0, 278, 30, 279, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 0, 0, 280, 33, 2544 0, 0, 0, 0, 281, 0, 37, 38, 282, 0, 2545 0, 283, 284, 285, 286, 40, 41, 0, 287, 288, 2546 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2548 290, 0, 291, 0, 0, 0, 0, 0, 0, 292, 2549 293, 294, 295, 296, 297, 8, 9, 10, 11, 12, 2550 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2551 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2552 0, 278, 30, 279, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 280, 33, 0, 0, 0, 0, 2555 281, 0, 37, 38, 282, 0, 0, 283, 284, 285, 2556 286, 40, 41, 0, 287, 288, 0, 0, 0, 0, 2557 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 2558 0, 0, 0, 0, 0, 0, 290, 0, 154, 0, 2559 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 2560 297, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2561 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2562 25, 26, 27, 0, 0, 0, 0, 278, 30, 279, 2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565 280, 33, 0, 0, 0, 0, 281, 0, 37, 38, 2566 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2567 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 290, 0, 592, 0, 0, 0, 0, 0, 2570 0, 292, 593, 294, 295, 296, 297, 8, 9, 10, 2571 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2572 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2573 0, 0, 0, 278, 30, 279, 0, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 280, 33, 0, 0, 2576 0, 0, 281, 0, 37, 38, 282, 0, 0, 283, 2577 284, 285, 286, 40, 41, 0, 287, 288, 0, 0, 2578 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 2579 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 2580 374, 0, 0, 0, 0, 0, 0, 292, 376, 294, 2581 295, 296, 297, 8, 9, 10, 11, 12, 13, 14, 2582 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2583 -285, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2584 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 33, 0, 0, 0, 0, 36, 0, 2587 332, 333, 39, 0, -285, 0, 0, 0, 0, 40, 2588 41, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2589 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2590 25, 26, 27, 0, 636, 0, 334, 0, 30, 0, 2591 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 33, 0, 0, 0, 0, 36, 0, 37, 38, 2594 39, 0, 0, 0, 0, 0, 0, 40, 41, 8, 2595 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2596 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2597 27, 0, 42, 0, 154, 0, 30, 0, 0, 0, 2598 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2600 0, 0, 0, 0, 36, 0, 37, 38, 39, 0, 2601 0, 0, 0, 0, 0, 40, 41, 8, 9, 10, 2602 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2603 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2604 42, 0, 43, 0, 30, 0, 0, 0, 0, 0, 2605 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2606 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2607 0, 0, 36, 0, 203, 38, 39, 0, 0, 0, 2608 0, 0, 0, 40, 41, 8, 9, 10, 11, 12, 2609 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2610 23, 24, 0, 0, 25, 26, 27, 0, 42, 0, 2611 266, 0, 30, 0, 0, 0, 0, 0, 205, 0, 2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2613 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2614 36, 0, 332, 333, 39, 0, 0, 0, 0, 0, 2615 0, 40, 41, 8, 9, 10, 11, 12, 13, 14, 2616 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2617 0, 0, 25, 26, 27, 0, 636, 0, 334, 0, 2618 30, 0, 0, 0, 0, 0, 627, 0, 0, 0, 2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2620 0, 0, 0, 33, 0, 0, 0, 0, 36, 0, 2621 332, 333, 39, 0, 0, 0, 0, 0, 0, 40, 2622 41, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2623 17, 18, 19, 20, 21, 22, 23, 24, -285, 0, 2624 25, 26, 27, 0, 0, 0, 334, 0, 30, 0, 2625 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2627 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2628 0, 0, -285, 8, 9, 10, 11, 12, 13, 14, 2629 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2630 -285, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2631 30, 0, 636, 0, 334, 0, 0, 0, 0, 0, 2632 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2634 37, 38, 0, 0, -285, 8, 9, 10, 11, 12, 2635 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2636 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2637 0, 0, 30, 448, 636, 0, 334, 0, 0, 0, 2638 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 2639 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2640 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2641 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2642 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2643 0, 30, 448, 0, 0, 0, 0, 0, 449, 0, 2644 0, 0, 703, 0, 0, 0, 109, 0, 0, 0, 2645 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2646 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2647 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2648 -285, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2649 30, 0, 0, 0, 0, 0, 0, 449, 0, 0, 2650 0, 937, 0, 0, 0, 109, 0, 0, 0, 0, 2651 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2652 37, 38, 0, 0, -285, 8, 9, 10, 11, 12, 2653 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2654 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2655 0, 0, 30, 448, 0, 0, 334, 0, 0, 0, 2656 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 2657 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2658 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2659 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2660 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2661 0, 30, 0, 0, 0, 0, 0, 0, 449, 0, 2662 0, 0, 1219, 0, 0, 0, 109, 0, 0, 0, 2663 0, 0, 0, 0, 33, 0, 0, 0, 0, 108, 2664 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2665 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2666 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2667 30, 448, 0, 0, 0, 0, 0, 43, 0, 0, 2668 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 2669 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2670 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2671 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2672 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2673 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 2674 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 2675 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2676 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2677 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2678 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2679 0, 0, 0, 636, 0, 334, 0, 0, 0, 0, 2680 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 2681 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2682 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2683 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2684 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2685 0, 0, 636, 0, 334, 0, 0, 0, 0, 0, 2686 0, 0, 627, 0, 0, 0, 0, 0, 0, 0, 2687 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, 2688 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2689 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2690 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2691 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 2692 0, 109, 0, 0, 0, 0, 0, 0, 0, 33, 2693 0, 0, 0, 0, 0, 0, 37, 38, 8, 9, 2694 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2695 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2696 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2697 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 2698 109, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2699 0, 0, 0, 0, 0, 203, 38, 8, 9, 10, 2700 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2701 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2702 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2703 0, 266, 0, 0, 0, 0, 0, 0, 0, 267, 2704 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2705 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2706 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2707 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2708 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2709 253, 0, 0, 0, 0, 0, 0, 0, 627, 0, 2710 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2711 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2712 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2713 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2714 0, 0, 30, 0, 0, 0, 0, 0, 0, 334, 2715 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 2716 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2717 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2718 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2719 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2720 0, 30, 0, 0, 0, 0, 0, 0, 449, 0, 2721 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 2722 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2723 0, 203, 38, 8, 9, 10, 11, 12, 13, 14, 2724 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2725 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2726 30, 0, 0, 0, 0, 0, 0, 266, 0, 0, 2727 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 2728 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2729 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2730 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2731 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2732 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 2733 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 2734 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2735 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2736 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2737 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2738 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 2739 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 2740 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2393 2741 2, 202, 4, 5, 6, 7, 8, 9, 10, 11, 2394 2742 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2395 2743 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2396 0, 0, 277, 30, 278, 0, 0, 0, 0, 0, 2744 0, 0, 0, 30, 43, 0, 0, 0, 0, 0, 2745 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 2746 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2747 35, 0, 0, 37, 38, 0, 278, 0, 279, 1051, 2748 0, 1052, 0, 0, 1053, 1054, 1055, 1056, 1057, 1058, 2749 1059, 1060, 1507, 1061, 0, 0, 1062, 32, 0, 280, 2750 0, 0, 0, 0, 0, 642, 0, 0, -403, 282, 2751 0, 0, 283, 284, 285, 286, 40, 41, 0, 287, 2752 288, 0, 0, 0, 0, 0, 0, 289, 0, 0, 2397 2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2398 0, 0, 0, 0, 0, 279, 33, 0, 34, 0, 2399 35, 280, 0, 203, 38, 281, 0, 0, 282, 283, 2400 284, 285, 40, 41, 0, 286, 287, 0, 0, 0, 2401 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 2402 0, 0, 0, 0, 0, 0, 0, 289, 0, 1000, 2403 0, 0, 0, 0, 0, 0, 291, 1001, 293, 294, 2404 295, 296, 2, 202, 4, 5, 6, 7, 8, 9, 2405 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2406 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2407 0, 0, 0, 0, 277, 30, 278, 0, 0, 0, 2754 0, 290, 0, 374, 0, 0, 167, 0, 0, 0, 2755 292, 376, 294, 295, 296, 297, 0, 278, 0, 279, 2756 1051, 0, 1052, 0, -126, 1053, 1054, 1055, 1056, 1057, 2757 1058, 1059, 1060, 0, 1061, 0, 0, 1062, 32, 0, 2758 280, 0, 0, 0, 0, 0, 642, 0, 0, 0, 2759 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2760 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2408 2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 279, 33, 0, 2410 34, 0, 35, 280, 0, 203, 38, 281, 0, 0, 2411 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2412 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 2414 0, 373, 0, 0, 0, 0, 0, 0, 291, 375, 2415 293, 294, 295, 296, 1, 2, 3, 4, 5, 6, 2416 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2417 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2418 25, 26, 27, 28, 0, 0, 29, 0, 30, 31, 2419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 2421 0, 33, 0, 34, 0, 35, 36, 0, 37, 38, 2422 39, 0, 0, 0, 0, 0, 0, 40, 41, 0, 2423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 42, 0, 43, 0, 0, 0, -501, 0, 2426 0, 0, 44, 1, 2, 3, 4, 5, 6, 7, 2762 0, 0, 290, 0, 374, 0, 0, 167, 0, 0, 2763 0, 292, 376, 294, 295, 296, 297, 0, 0, 0, 2764 0, 0, 0, 0, 0, -126, 2, 202, 4, 5, 2765 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2766 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2767 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2427 2768 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2428 2769 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2429 26, 27, 28, 0, 0, 29, 0, 30, 31, 0, 2770 26, 27, 33, 0, 34, 0, 35, 30, 0, 37, 2771 38, 0, 278, 0, 279, 1051, 0, 1052, 1394, 1395, 2772 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1507, 1061, 2773 33, 1307, 1062, 32, 0, 280, 0, 37, 38, 0, 2774 0, 642, 0, 0, 0, 282, 0, 0, 283, 284, 2775 285, 286, 40, 41, 0, 287, 288, 0, 0, 0, 2776 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 2777 0, 0, 0, 0, 0, 0, 0, 290, 0, 374, 2778 0, 0, 167, 0, 0, 0, 292, 376, 294, 295, 2779 296, 297, 278, 0, 279, 1051, 0, 1052, 1394, 1395, 2780 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 0, 1061, 2781 0, 0, 1062, 32, 0, 280, 0, 0, 0, 0, 2782 0, 642, 0, 0, 0, 282, 0, 0, 283, 284, 2783 285, 286, 40, 41, 0, 287, 288, 0, 0, 0, 2784 0, 0, 0, 289, 0, 0, 0, 0, 0, 278, 2785 0, 279, 0, 0, 0, 0, 0, 290, 0, 374, 2786 0, 0, 167, 0, 0, 0, 292, 376, 294, 295, 2787 296, 297, 280, 0, 0, 0, 0, 0, 281, 0, 2788 0, 0, 282, 0, 0, 283, 284, 285, 286, 40, 2789 41, 0, 287, 288, 0, 0, 0, 0, 0, 0, 2790 289, 0, 0, 0, 0, 0, 278, 0, 279, 0, 2791 0, 0, 0, 0, 290, 0, 374, 0, 0, 0, 2792 0, 0, 802, 292, 376, 294, 295, 296, 297, 280, 2793 0, 0, 0, 0, 0, 281, 0, 0, 0, 282, 2794 0, 0, 283, 284, 285, 286, 40, 41, 0, 287, 2795 288, 0, 0, 0, 0, 0, 0, 289, 0, 0, 2796 0, 0, 0, 278, 0, 279, 0, 0, 0, 0, 2797 0, 290, 0, 374, 0, 0, 982, 0, 0, 0, 2798 292, 376, 294, 295, 296, 297, 280, 0, 0, 0, 2799 0, 0, 281, 0, 0, 0, 282, 0, 0, 283, 2800 284, 285, 286, 40, 41, 0, 287, 288, 0, 0, 2801 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 2802 278, 0, 279, 0, 0, 0, 0, 0, 290, 0, 2803 374, 0, 0, 0, 0, 0, 0, 292, 376, 294, 2804 295, 296, 297, 280, 0, 0, 0, 0, 0, 281, 2805 0, 0, 0, 282, 0, 0, 283, 284, 285, 286, 2806 40, 41, 0, 287, 288, 0, 0, 0, 0, 0, 2807 0, 289, 0, 0, 0, 0, 0, 278, 0, 279, 2808 0, 0, 0, 0, 0, 290, 0, 374, 0, 0, 2809 0, 0, 0, 0, 292, 726, 294, 295, 296, 297, 2810 280, 0, 0, 0, 0, 0, 642, 0, 0, 0, 2811 282, 0, 0, 283, 284, 285, 286, 40, 41, 0, 2812 287, 288, 0, 0, 0, 0, 0, 0, 289, 0, 2813 0, 0, 0, 0, 278, 0, 279, 0, 0, 0, 2814 0, 0, 290, 0, 776, 0, 0, 0, 0, 0, 2815 0, 292, 376, 294, 295, 296, 297, 280, 0, 0, 2816 0, 0, 0, 281, 0, 0, 0, 282, 0, 0, 2817 283, 284, 285, 286, 40, 41, 0, 287, 288, 0, 2818 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 2819 0, 278, 0, 279, 0, 0, 0, 0, 0, 290, 2820 0, 374, 0, 0, 0, 0, 0, 0, 292, 817, 2821 294, 295, 296, 297, 280, 0, 0, 0, 0, 0, 2822 281, 0, 0, 0, 282, 0, 0, 283, 284, 285, 2823 286, 40, 41, 0, 287, 288, 0, 0, 0, 0, 2824 0, 0, 289, 0, 0, 0, 0, 0, 278, 0, 2825 279, 0, 0, 0, 0, 0, 508, 0, 0, 0, 2826 0, 0, 0, 0, 0, 292, 376, 294, 295, 296, 2827 297, 280, 0, 0, 0, 0, 0, 281, 0, 0, 2828 0, 282, 0, 0, 283, 284, 285, 286, 40, 41, 2829 0, 287, 288, 0, 0, 0, 0, 0, 0, 289, 2830 0, 0, 0, 0, 0, 278, 0, 279, 0, 0, 2831 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 2832 0, 0, 292, 376, 294, 295, 296, 297, 280, 0, 2833 0, 0, 0, 0, 281, 0, 0, 0, 282, 0, 2834 0, 283, 284, 285, 286, 40, 41, 0, 287, 288, 2835 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 2836 0, 0, 278, 0, 279, 0, 0, 0, 0, 0, 2837 512, 0, 0, 0, 0, 0, 0, 0, 0, 292, 2838 376, 294, 295, 296, 297, 280, 0, 0, 0, 0, 2839 0, 281, 0, 0, 0, 282, 0, 0, 283, 284, 2840 285, 286, 40, 41, 0, 287, 288, 0, 0, 0, 2841 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 0, 0, 0, 0, 515, 0, 0, 2843 0, 0, 0, 0, 0, 0, 292, 376, 294, 295, 2844 296, 297, 2, 202, 4, 5, 6, 7, 8, 9, 2845 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2846 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 2847 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2430 2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,2432 33, 0, 34, 0, 35, 36, 0, 37, 38, 39,2433 0, 0, 0, 0, 0, 0, 40, 41, 0, 0,2434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2436 0, 42, 0, 43, 0, 0, 0, 0, 0, 0,2437 0, 44, 1, 2, 202, 4, 5, 6, 7, 8,2438 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,2439 19, 20, 21, 22, 23, 24, -278, 0, 25, 26,2440 27, 28, 0, 0, 29, 0, 30, 0, 0, 0,2441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2442 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,2443 0, 34, 0, 35, 0, 0, 37, 38, 0, 0,2444 -278, 201, 2, 202, 4, 5, 6, 7, 8, 9,2445 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,2446 20, 21, 22, 23, 24, 0, 0, 25, 26, 27,2447 0, 0, 43, 0, 0, 30, 0, 0, 0, 0,2448 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,2449 2849 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2450 34, 0, 35, 0, 0, 203, 38, 2, 202, 4, 2850 34, 0, 35, 36, 0, 170, 171, 39, 0, 0, 2851 0, 0, 0, 0, 40, 41, 201, 2, 202, 4, 2451 2852 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2452 2853 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2453 2854 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2454 30, 204, 0, 0, 0, 0, 0, 0, 0, 267,2855 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455 2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2456 0, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2457 203, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2458 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2857 0, 0, 0, 33, 0, 34, 0, 35, 0, 0, 2858 203, 38, 469, 2, 202, 4, 5, 6, 7, 8, 2859 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2860 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2861 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2459 2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2460 0, 0, 0, 0, 42, 0, 204, 0, 0, 0, 2461 0, 0, 0, 0, 205, 2, 202, 4, 5, 6, 2462 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2463 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2464 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2467 0, 33, 0, 34, 0, 35, 0, 0, 37, 38, 2468 0, 0, 2, 202, 4, 5, 6, 7, 8, 9, 2469 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2470 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2471 0, 0, 0, -383, 676, 30, 0, 0, 0, 0, 2472 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 2473 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2474 34, 0, 35, 0, 0, 37, 38, 0, 0, 0, 2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2476 0, 0, 0, 0, 0, 0, 0, 1334, 0, 0, 2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2478 0, 676, 0, 0, 0, 0, 0, 0, 0, 625, 2479 2, 202, 4, 5, 6, 7, 8, 9, 10, 11, 2480 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2481 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2482 0, 0, 0, 30, 8, 9, 10, 11, 12, 13, 2483 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2484 24, 0, 0, 25, 26, 27, 33, 0, 34, 0, 2485 35, 30, 0, 37, 38, 0, 0, 0, 0, 0, 2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2487 0, 0, 0, 0, 33, 1336, 0, 0, 0, 108, 2488 0, 37, 38, 0, 0, 0, 0, 0, 0, 676, 2489 0, 0, 0, 0, 0, 0, 0, 625, 2, 202, 2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2864 0, 34, 0, 35, 0, 0, 37, 38, 2, 202, 2490 2865 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2491 2866 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2494 2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495 2870 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2496 0, 203, 38, 2, 202, 4, 5, 6, 7, 8, 2871 0, 203, 38, 8, 9, 10, 11, 12, 13, 14, 2872 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2873 0, 0, 25, 26, 27, 487, 488, 489, 0, 0, 2874 30, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2875 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2876 25, 26, 27, 33, 0, 0, 0, 0, 30, 0, 2877 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2879 0, 33, 0, 0, 0, 0, 0, 0, 203, 38 2880 }; 2881 2882 #define yypact_value_is_default(yystate) \ 2883 ((yystate) == (-1318)) 2884 2885 #define yytable_value_is_error(yytable_value) \ 2886 YYID (0) 2887 2888 static const yytype_int16 yycheck[] = 2889 { 2890 1, 42, 0, 42, 0, 181, 42, 235, 181, 165, 2891 181, 1, 451, 200, 182, 182, 215, 648, 690, 181, 2892 181, 484, 181, 181, 275, 602, 344, 113, 103, 751, 2893 252, 622, 690, 31, 494, 31, 690, 31, 498, 604, 2894 457, 892, 988, 359, 42, 602, 44, 363, 44, 1317, 2895 1, 534, 602, 995, 1031, 0, 54, 37, 37, 183, 2896 602, 604, 60, 602, 60, 63, 450, 63, 66, 605, 2897 66, 344, 37, 572, 101, 611, 66, 152, 65, 65, 2898 771, 1398, 65, 49, 715, 261, 31, 75, 261, 42, 2899 261, 1394, 412, 44, 262, 262, 768, 691, 42, 261, 2900 261, 1043, 261, 261, 602, 37, 104, 1030, 1031, 107, 2901 768, 197, 432, 101, 768, 113, 27, 75, 57, 713, 2902 440, 42, 101, 103, 103, 111, 0, 89, 75, 340, 2903 42, 43, 37, 257, 258, 101, 101, 124, 103, 523, 2904 181, 124, 181, 1411, 602, 181, 144, 892, 144, 101, 2905 102, 0, 103, 115, 152, 1458, 103, 31, 109, 157, 2906 71, 157, 101, 420, 421, 1482, 42, 43, 65, 101, 2907 1487, 103, 101, 636, 637, 638, 37, 65, 290, 736, 2908 0, 1, 31, 181, 182, 1050, 182, 1504, 277, 88, 2909 412, 654, 143, 65, 1511, 107, 44, 892, 65, 197, 2910 75, 152, 75, 37, 29, 404, 103, 205, 78, 205, 2911 432, 31, 11, 0, 63, 103, 214, 490, 440, 217, 2912 261, 217, 261, 122, 101, 261, 689, 102, 181, 102, 2913 106, 103, 400, 400, 109, 105, 103, 181, 736, 496, 2914 101, 104, 103, 63, 31, 108, 66, 248, 1225, 247, 2915 201, 247, 829, 247, 205, 80, 81, 514, 0, 1, 2916 181, 109, 337, 261, 262, 728, 262, 101, 104, 103, 2917 268, 710, 829, 484, 590, 106, 841, 275, 736, 829, 2918 108, 75, 450, 450, 235, 236, 604, 829, 289, 31, 2919 829, 366, 492, 73, 1240, 831, 124, 1274, 841, 0, 2920 1, 764, 247, 1487, 390, 1050, 997, 101, 420, 421, 2921 809, 73, 42, 43, 482, 482, 267, 633, 75, 270, 2922 1504, 63, 579, 103, 66, 105, 324, 1511, 324, 109, 2923 31, 829, 418, 153, 54, 89, 1487, 1059, 424, 290, 2924 108, 103, 293, 105, 0, 343, 344, 109, 111, 123, 2925 1273, 1274, 109, 116, 117, 818, 124, 205, 1053, 1210, 2926 1511, 115, 360, 683, 224, 66, 364, 65, 217, 67, 2927 68, 829, 949, 247, 968, 31, 106, 104, 252, 101, 2928 108, 108, 593, 243, 104, 950, 337, 107, 236, 340, 2929 3, 65, 390, 67, 68, 3, 508, 217, 247, 949, 2930 512, 123, 400, 515, 400, 103, 606, 949, 359, 108, 2931 610, 622, 363, 1390, 239, 366, 627, 506, 1009, 267, 2932 418, 65, 1287, 67, 68, 124, 424, 247, 426, 102, 2933 67, 631, 106, 108, 71, 635, 109, 74, 102, 76, 2934 1382, 1383, 290, 65, 108, 293, 83, 69, 108, 124, 2935 123, 526, 450, 0, 76, 77, 568, 101, 107, 108, 2936 247, 683, 106, 0, 52, 1210, 102, 1390, 469, 420, 2937 421, 101, 108, 508, 123, 217, 474, 512, 689, 101, 2938 515, 103, 1018, 1019, 482, 102, 482, 101, 486, 111, 2939 486, 108, 490, 649, 214, 1126, 345, 448, 958, 750, 2940 451, 918, 102, 725, 820, 247, 457, 95, 824, 109, 2941 993, 108, 123, 514, 690, 1210, 102, 690, 469, 690, 2942 113, 114, 108, 841, 692, 692, 1120, 124, 690, 690, 2943 531, 690, 690, 534, 658, 536, 101, 1102, 412, 101, 2944 108, 486, 1287, 494, 928, 496, 247, 498, 268, 121, 2945 375, 123, 936, 764, 102, 275, 124, 508, 432, 83, 2946 84, 512, 108, 514, 515, 1287, 440, 1030, 841, 1434, 2947 656, 208, 108, 108, 108, 526, 1441, 108, 124, 668, 2948 107, 102, 583, 1177, 1178, 0, 108, 108, 124, 124, 2949 124, 247, 590, 124, 118, 119, 252, 981, 914, 101, 2950 448, 189, 124, 451, 602, 1300, 604, 427, 466, 457, 2951 484, 101, 486, 688, 637, 638, 31, 108, 104, 101, 2952 1485, 103, 108, 343, 212, 623, 475, 42, 579, 44, 2953 455, 654, 101, 124, 222, 460, 44, 486, 1360, 590, 2954 360, 639, 593, 102, 364, 60, 102, 104, 63, 1088, 2955 109, 66, 108, 108, 655, 653, 657, 104, 656, 1354, 2956 508, 108, 1357, 863, 512, 754, 486, 515, 493, 124, 2957 495, 622, 102, 636, 637, 638, 627, 102, 108, 878, 2958 102, 954, 633, 1146, 65, 102, 67, 68, 763, 1434, 2959 102, 654, 690, 104, 692, 102, 1441, 108, 1461, 486, 2960 899, 109, 290, 1398, 1467, 728, 101, 527, 1403, 102, 2961 347, 104, 349, 81, 82, 108, 1438, 101, 1440, 103, 2962 101, 1484, 723, 85, 86, 106, 1489, 111, 884, 144, 2963 123, 124, 960, 1428, 101, 143, 103, 688, 736, 737, 2964 1485, 101, 157, 103, 486, 4, 5, 6, 7, 8, 2965 9, 111, 750, 101, 1118, 955, 412, 102, 1122, 710, 2966 928, 928, 101, 108, 1486, 728, 181, 182, 936, 936, 2967 124, 591, 101, 1089, 103, 624, 432, 101, 102, 103, 2968 102, 102, 111, 1377, 440, 486, 108, 108, 102, 740, 2969 205, 101, 102, 103, 108, 818, 57, 205, 1009, 436, 2970 1394, 101, 217, 62, 591, 64, 101, 1502, 103, 683, 2971 1273, 101, 763, 1508, 672, 689, 636, 637, 638, 1491, 2972 645, 104, 1517, 102, 108, 109, 1521, 235, 124, 108, 2973 486, 829, 247, 1491, 654, 1022, 65, 1491, 67, 68, 2974 69, 65, 106, 841, 102, 69, 261, 76, 77, 437, 2975 108, 725, 76, 77, 102, 818, 101, 102, 103, 267, 2976 108, 124, 710, 1457, 1458, 124, 101, 716, 103, 820, 2977 102, 124, 101, 824, 103, 106, 108, 101, 44, 65, 2978 705, 730, 111, 471, 106, 293, 711, 111, 101, 1045, 2979 764, 892, 102, 102, 60, 102, 102, 63, 108, 108, 2980 66, 108, 108, 623, 557, 558, 559, 560, 728, 324, 2981 10, 11, 12, 13, 14, 65, 914, 67, 68, 639, 2982 508, 101, 102, 103, 512, 101, 101, 515, 103, 344, 2983 928, 104, 340, 653, 101, 1146, 103, 37, 936, 4, 2984 5, 6, 7, 8, 9, 75, 101, 805, 103, 75, 2985 65, 0, 1, 101, 69, 103, 954, 815, 102, 103, 2986 60, 76, 77, 914, 1246, 1247, 1248, 918, 101, 959, 2987 103, 112, 830, 822, 695, 120, 697, 87, 144, 78, 2988 79, 80, 31, 54, 55, 400, 101, 108, 109, 990, 2989 121, 157, 993, 101, 995, 44, 111, 62, 818, 64, 2990 123, 101, 101, 103, 103, 825, 105, 958, 959, 960, 2991 103, 111, 420, 421, 1225, 101, 182, 66, 892, 65, 2992 104, 67, 68, 69, 1110, 108, 109, 683, 104, 1118, 2993 750, 42, 43, 1122, 1123, 450, 553, 554, 825, 205, 2994 555, 556, 1043, 892, 102, 561, 562, 102, 102, 102, 2995 102, 217, 1053, 101, 103, 1056, 1057, 1058, 1009, 884, 2996 102, 104, 103, 108, 104, 101, 891, 123, 106, 725, 2997 918, 486, 892, 104, 102, 490, 102, 104, 1190, 1191, 2998 104, 1193, 104, 671, 104, 108, 1470, 1199, 496, 28, 2999 1202, 109, 680, 109, 63, 144, 684, 10, 11, 12, 3000 13, 14, 102, 152, 153, 892, 514, 102, 104, 106, 3001 109, 80, 1110, 107, 10, 11, 12, 13, 14, 102, 3002 107, 107, 101, 108, 37, 102, 124, 102, 102, 1513, 3003 102, 1206, 102, 182, 102, 466, 109, 1088, 1089, 959, 3004 102, 37, 108, 102, 102, 114, 1235, 60, 197, 102, 3005 892, 200, 201, 102, 102, 975, 205, 982, 324, 102, 3006 102, 102, 102, 1012, 60, 102, 102, 102, 28, 1027, 3007 1028, 579, 123, 107, 104, 102, 1050, 226, 102, 102, 3008 102, 230, 107, 232, 104, 593, 3, 602, 157, 604, 3009 108, 892, 241, 10, 11, 12, 13, 14, 247, 1189, 3010 104, 1050, 102, 252, 102, 101, 108, 103, 1206, 1210, 3011 1030, 1031, 102, 262, 622, 111, 109, 959, 106, 627, 3012 37, 270, 108, 108, 104, 1083, 1084, 102, 102, 1318, 3013 1050, 108, 108, 1322, 400, 102, 892, 101, 104, 1229, 3014 1088, 104, 101, 60, 1356, 1246, 1247, 1248, 217, 65, 3015 101, 67, 68, 69, 1079, 1206, 101, 101, 959, 109, 3016 76, 77, 65, 1050, 67, 68, 69, 124, 107, 102, 3017 1498, 102, 1146, 76, 77, 690, 102, 692, 1229, 121, 3018 107, 106, 104, 124, 108, 3, 255, 1373, 337, 104, 3019 259, 340, 10, 11, 12, 13, 14, 346, 101, 1300, 3020 108, 102, 104, 102, 0, 102, 104, 45, 1050, 104, 3021 359, 104, 102, 104, 363, 1491, 104, 366, 1491, 37, 3022 1491, 736, 737, 104, 1492, 1492, 1415, 1317, 916, 1491, 3023 1491, 107, 1491, 1491, 102, 31, 1210, 124, 124, 1188, 3024 124, 672, 60, 107, 124, 1513, 1513, 124, 109, 1050, 3025 102, 1225, 107, 1354, 104, 104, 1357, 104, 104, 1184, 3026 104, 1210, 104, 412, 104, 1223, 1317, 104, 1188, 1189, 3027 66, 102, 102, 101, 1372, 1373, 345, 104, 427, 104, 3028 101, 1382, 1383, 432, 1470, 55, 54, 102, 102, 106, 3029 1210, 440, 124, 109, 1050, 104, 1254, 1398, 104, 102, 3030 104, 102, 1403, 89, 1262, 1263, 1264, 101, 107, 1229, 3031 102, 104, 102, 1287, 829, 1416, 40, 466, 102, 102, 3032 469, 1411, 109, 1210, 124, 102, 841, 1428, 108, 124, 3033 89, 102, 3, 1282, 109, 484, 102, 486, 1287, 10, 3034 11, 12, 13, 14, 102, 494, 1188, 1189, 1306, 498, 3035 1491, 124, 1491, 1273, 1274, 1491, 425, 153, 107, 124, 3036 1411, 104, 1282, 104, 124, 101, 37, 1287, 1210, 124, 3037 1471, 124, 1470, 1061, 805, 1476, 107, 526, 527, 672, 3038 107, 1482, 102, 691, 815, 102, 1487, 1229, 1189, 60, 3039 563, 565, 1443, 1491, 1492, 564, 1492, 1317, 566, 830, 3040 1287, 1502, 1127, 1504, 567, 713, 475, 1508, 54, 1210, 3041 1511, 1362, 1458, 928, 1210, 1513, 1517, 1513, 1521, 1296, 3042 1521, 936, 1473, 572, 1473, 1123, 1322, 1441, 1229, 1079, 3043 226, 448, 448, 936, 697, 884, 938, 982, 650, 954, 3044 1282, 590, 591, 740, 593, 1287, 460, 1498, 583, 1229, 3045 956, 247, 960, 486, 1210, 604, 252, 571, 104, 63, 3046 1434, 107, 750, 571, 571, -1, -1, 1441, -1, -1, 3047 1390, -1, -1, 622, -1, 1317, -1, -1, 627, -1, 3048 -1, -1, -1, -1, 633, 1434, 1287, 636, 637, 638, 3049 -1, 1411, 1441, -1, 802, 1443, 65, -1, 67, 68, 3050 69, 1009, -1, -1, -1, 654, 152, 76, 77, -1, 3051 114, 1485, 805, -1, 1434, 0, 1317, -1, -1, -1, 3052 -1, 1441, 815, 672, -1, 1473, -1, 596, -1, -1, 3053 -1, 1287, 101, -1, 683, -1, 1485, 830, -1, 688, 3054 689, -1, 111, 692, -1, -1, 31, 1434, -1, -1, 3055 346, -1, 1372, 157, 1441, 624, -1, -1, -1, -1, 3056 629, -1, -1, -1, -1, 1485, -1, -1, 214, 1411, 3057 185, -1, 880, -1, -1, -1, 725, 192, -1, 728, 3058 -1, 66, 65, -1, 67, 68, 69, -1, 737, -1, 3059 -1, 740, 1434, 76, 77, -1, 1027, 1028, 1485, 1441, 3060 -1, -1, -1, -1, -1, -1, -1, 1295, -1, -1, 3061 1411, -1, -1, 217, 763, 764, 412, -1, 101, -1, 3062 769, -1, 268, 65, -1, 67, 68, 69, 111, 275, 3063 -1, 427, -1, 1434, 76, 77, 432, -1, -1, -1, 3064 1441, -1, -1, 1485, 440, -1, -1, 716, -1, 264, 3065 -1, 255, 1083, 1084, -1, 259, 805, -1, -1, 101, 3066 968, 730, -1, -1, -1, -1, 815, -1, 153, 818, 3067 466, 820, -1, -1, 823, 824, 825, -1, 1434, -1, 3068 -1, 830, -1, -1, 1485, 1441, -1, -1, 484, 997, 3069 486, 840, 10, 11, 12, 13, 14, 343, -1, -1, 3070 -1, -1, -1, -1, 319, 10, 11, 12, 13, 14, 3071 -1, -1, 327, -1, 360, 330, -1, -1, 364, 37, 3072 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1485, 3073 -1, 527, 37, -1, 1027, 1028, -1, -1, -1, 1047, 3074 -1, 345, 60, 892, -1, -1, -1, 65, -1, 67, 3075 68, 69, -1, 822, 1442, 60, -1, -1, 76, 77, 3076 65, -1, 247, -1, 69, 914, -1, 252, -1, -1, 3077 -1, 76, 77, -1, -1, -1, -1, 392, -1, -1, 3078 426, 396, -1, 101, 1472, 103, -1, -1, -1, -1, 3079 1083, 1084, 1223, 111, -1, 591, 101, -1, 0, -1, 3080 -1, 950, -1, -1, -1, -1, 111, -1, -1, 958, 3081 959, -1, 1120, -1, -1, -1, -1, -1, -1, -1, 3082 -1, 425, -1, 1254, 1512, 0, 975, -1, -1, 31, 3083 -1, 1262, 1263, 1264, -1, -1, 1524, -1, -1, -1, 3084 636, 637, 638, -1, -1, -1, -1, -1, -1, 279, 3085 -1, -1, -1, -1, -1, -1, 31, -1, 654, -1, 3086 1009, 346, 292, 293, 66, -1, 481, -1, -1, 1177, 3087 1178, 475, -1, 1022, 304, 1306, 672, -1, 1027, 1028, 3088 -1, 1030, 1031, -1, -1, -1, -1, 683, -1, -1, 3089 -1, 66, -1, 689, -1, 10, 11, 12, 13, 14, 3090 -1, 1050, 4, 5, 6, 7, 8, 9, -1, -1, 3091 340, -1, 65, -1, 67, 68, 69, -1, -1, -1, 3092 -1, -1, 37, 76, 77, -1, -1, 412, -1, 725, 3093 32, -1, 728, -1, 1083, 1084, -1, -1, -1, -1, 3094 1089, -1, 427, 1012, 590, 60, 376, 432, 101, -1, 3095 103, 153, -1, -1, -1, 440, 571, 572, 111, -1, 3096 62, 1254, 64, -1, -1, -1, -1, -1, 764, 1262, 3097 1263, 1264, -1, -1, -1, -1, 1491, 623, 153, -1, 3098 -1, 466, -1, -1, -1, -1, 101, -1, 103, -1, 3099 1498, -1, 596, 639, -1, -1, 111, 1146, -1, 484, 3100 65, 486, 67, 68, 69, -1, -1, 653, -1, 805, 3101 -1, 76, 77, 1306, -1, -1, 63, -1, -1, 815, 3102 624, -1, 818, -1, -1, 629, 73, 823, -1, 825, 3103 -1, -1, -1, -1, 830, -1, 101, -1, 103, -1, 3104 1189, -1, 527, -1, 659, 247, 111, -1, 663, -1, 3105 252, 65, -1, 67, 68, 69, -1, 1206, -1, -1, 3106 -1, 1210, 76, 77, -1, -1, -1, 114, -1, 1377, 3107 -1, -1, 247, -1, 1223, -1, 1225, 252, -1, -1, 3108 1229, 696, -1, -1, -1, -1, 1394, 101, -1, 103, 3109 -1, -1, -1, -1, -1, 109, 892, 111, -1, -1, 3110 -1, -1, -1, -1, 750, 1254, 591, -1, -1, -1, 3111 157, -1, 716, 1262, 1263, 1264, -1, -1, -1, 1188, 3112 550, 551, 552, -1, 1273, 1274, 730, 90, 91, 92, 3113 93, 94, 95, 96, 97, 98, 99, -1, 1287, -1, 3114 -1, -1, -1, -1, 346, -1, -1, -1, -1, 1457, 3115 1458, 636, 637, 638, -1, -1, -1, 1306, -1, -1, 3116 123, -1, -1, 593, -1, -1, -1, -1, 1317, 654, 3117 217, 346, -1, -1, -1, -1, -1, -1, -1, 975, 3118 -1, -1, -1, -1, -1, -1, -1, 672, -1, 10, 3119 11, 12, 13, 14, 809, -1, -1, -1, 683, -1, 3120 -1, -1, -1, -1, 689, -1, -1, -1, 255, -1, 3121 412, -1, 259, 1282, -1, -1, 37, -1, 822, -1, 3122 -1, -1, -1, -1, -1, 427, -1, -1, 275, -1, 3123 432, 1027, 1028, -1, 1030, 1031, -1, 412, 440, 60, 3124 725, 1390, -1, 728, 65, -1, 67, 68, 69, -1, 3125 -1, -1, 427, -1, 1050, 76, 77, 432, -1, -1, 3126 -1, -1, 1411, -1, 466, 440, -1, -1, 914, -1, 3127 -1, -1, -1, -1, -1, -1, -1, -1, -1, 764, 3128 101, -1, 484, -1, 486, 1434, -1, 1083, 1084, -1, 3129 111, 466, 1441, -1, -1, -1, 726, -1, 345, -1, 3130 -1, -1, -1, -1, -1, -1, -1, 922, -1, 484, 3131 -1, 486, -1, -1, -1, -1, -1, -1, -1, -1, 3132 805, -1, -1, -1, -1, 527, -1, -1, -1, -1, 3133 815, -1, -1, 818, -1, -1, 1485, -1, 823, -1, 3134 825, 771, -1, 1492, -1, 830, -1, -1, -1, -1, 3135 1146, -1, 527, -1, 3, 4, 5, 6, 7, 8, 2497 3136 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2498 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2499 27, 0, 0, 0, 0, 0, 30, 266, 0, 0, 2500 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2502 0, 34, 0, 35, 0, 0, 37, 38, 2, 202, 3137 19, 20, 21, 22, 23, 24, 25, 26, 425, -1, 3138 29, 30, 31, -1, 999, -1, -1, 817, 37, 591, 3139 -1, -1, -1, 1189, -1, 442, -1, -1, -1, -1, 3140 1015, -1, -1, -1, -1, -1, -1, 892, 1012, -1, 3141 -1, 60, -1, 62, 1210, 64, 591, -1, 67, 68, 3142 -1, -1, -1, -1, -1, -1, -1, 1223, 475, 1225, 3143 -1, -1, -1, -1, 636, 637, 638, -1, -1, -1, 3144 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3145 14, -1, 654, -1, -1, -1, -1, 106, 1254, -1, 3146 -1, 636, 637, 638, -1, -1, 1262, 1263, 1264, -1, 3147 672, -1, -1, 37, -1, 1090, -1, 1273, 1274, 654, 3148 -1, 683, -1, -1, -1, -1, -1, 689, -1, -1, 3149 975, 1287, -1, 50, -1, 52, 60, 672, 55, 56, 3150 57, 65, 59, 67, 68, 69, -1, -1, 683, -1, 3151 1306, -1, 76, 77, 689, -1, -1, 74, -1, -1, 3152 -1, -1, -1, 725, -1, -1, 728, -1, -1, 86, 3153 87, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3154 -1, -1, 1027, 1028, -1, 1030, 1031, 111, -1, 596, 3155 725, -1, -1, 728, -1, -1, -1, -1, -1, -1, 3156 1206, -1, 764, -1, -1, 1050, -1, -1, -1, -1, 3157 -1, -1, -1, -1, -1, -1, -1, 624, -1, 1009, 3158 -1, -1, 629, -1, 1188, -1, -1, -1, -1, 764, 3159 -1, -1, -1, -1, 1390, -1, -1, -1, 1083, 1084, 3160 -1, -1, -1, 805, -1, -1, -1, 10, 11, 12, 3161 13, 14, -1, 815, -1, -1, 818, -1, -1, -1, 3162 1050, 823, -1, 825, -1, -1, -1, -1, 830, -1, 3163 805, -1, -1, -1, 37, -1, -1, -1, 1434, -1, 3164 815, -1, -1, 818, -1, 1441, -1, -1, 823, -1, 3165 825, -1, -1, -1, -1, 830, -1, 60, -1, -1, 3166 -1, 1146, 65, -1, 67, 68, 69, -1, -1, 716, 3167 -1, -1, -1, 76, 77, -1, -1, -1, 1282, -1, 3168 -1, -1, -1, 730, -1, -1, -1, -1, -1, 1485, 3169 892, 10, 11, 12, 13, 14, -1, -1, 101, -1, 3170 103, -1, -1, 750, 1189, -1, -1, -1, 111, -1, 3171 -1, -1, -1, -1, -1, -1, -1, 892, 37, -1, 3172 -1, -1, -1, -1, -1, 1210, 1372, -1, -1, -1, 3173 -1, -1, -1, 1163, -1, -1, -1, -1, 1223, -1, 3174 1225, 60, -1, -1, -1, -1, 65, -1, 67, 68, 3175 69, -1, -1, -1, -1, -1, -1, 76, 77, -1, 3176 -1, -1, 25, 26, 27, -1, -1, -1, -1, 1254, 3177 -1, -1, -1, 975, -1, 822, -1, 1262, 1263, 1264, 3178 -1, -1, 101, 340, 341, -1, -1, -1, 1273, 1274, 3179 -1, -1, 111, -1, -1, 352, 353, -1, -1, -1, 3180 975, -1, 1287, -1, -1, -1, -1, -1, -1, -1, 3181 -1, -1, 25, 26, 27, -1, -1, -1, -1, -1, 3182 -1, 1306, -1, -1, 44, 1027, 1028, -1, 1030, 1031, 3183 -1, -1, -1, 96, -1, 98, -1, 10, 11, 12, 3184 13, 14, -1, 63, -1, -1, -1, -1, 1050, -1, 3185 -1, -1, 1027, 1028, -1, 1030, 1031, -1, -1, 122, 3186 -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 3187 -1, -1, -1, -1, -1, 1050, -1, -1, -1, -1, 3188 -1, 1083, 1084, 96, -1, 98, -1, 60, -1, 109, 3189 -1, -1, 65, -1, 114, -1, 69, -1, -1, -1, 3190 -1, -1, -1, 76, 77, 1390, -1, -1, 1083, 1084, 3191 -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, 3192 -1, -1, 185, 143, 187, 188, -1, -1, 101, 192, 3193 -1, 194, 195, 153, -1, -1, -1, 157, 111, -1, 3194 -1, -1, -1, -1, 1146, -1, -1, -1, -1, 1434, 3195 -1, -1, -1, -1, -1, 36, 1441, 38, -1, -1, 3196 -1, -1, -1, -1, 177, 1012, -1, -1, -1, -1, 3197 -1, 1146, -1, -1, 187, 188, -1, -1, 59, 192, 3198 -1, 194, 195, -1, 65, 205, -1, 1189, 69, -1, 3199 -1, 72, 73, 74, 75, 76, 77, 217, 79, 80, 3200 1485, 264, -1, -1, -1, -1, 87, -1, 1210, -1, 3201 -1, -1, -1, -1, 1189, 235, 236, -1, -1, -1, 3202 101, 1223, 103, 1225, -1, -1, -1, -1, -1, 110, 3203 111, 112, 113, 114, 115, 1210, -1, -1, -1, 259, 3204 -1, -1, -1, 124, -1, -1, -1, 267, 1223, -1, 3205 1225, -1, 1254, -1, -1, -1, -1, -1, -1, -1, 3206 1262, 1263, 1264, -1, -1, -1, -1, -1, -1, -1, 3207 290, 1273, 1274, 293, -1, -1, -1, 7, -1, 1254, 3208 10, 11, 12, 13, 14, 1287, -1, 1262, 1263, 1264, 3209 -1, -1, -1, -1, -1, -1, -1, -1, 1273, 1274, 3210 -1, -1, -1, -1, 1306, -1, 36, 37, 38, -1, 3211 -1, -1, 1287, -1, -1, -1, -1, -1, -1, -1, 3212 340, -1, -1, -1, -1, 345, -1, -1, -1, 59, 3213 60, 1306, -1, -1, -1, 65, -1, -1, -1, 69, 3214 -1, 1188, 72, 73, 74, 75, 76, 77, -1, 79, 3215 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3216 717, -1, 719, -1, -1, -1, -1, -1, -1, 726, 3217 727, 101, -1, 103, 731, -1, -1, -1, -1, -1, 3218 110, 111, 112, 113, 114, 115, 743, -1, 1390, -1, 3219 -1, 748, -1, -1, -1, -1, -1, -1, -1, -1, 3220 420, 421, -1, -1, -1, -1, -1, 427, -1, -1, 3221 -1, -1, -1, -1, -1, 1390, 773, -1, -1, -1, 3222 -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, 3223 -1, 451, 1434, -1, -1, 1282, -1, 457, -1, 1441, 3224 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3225 20, 21, 22, 23, 24, 25, 26, 27, -1, 1434, 3226 817, -1, -1, -1, 484, -1, 1441, 37, -1, -1, 3227 -1, -1, -1, -1, -1, -1, 496, -1, -1, -1, 3228 -1, -1, -1, 1485, -1, -1, -1, -1, 508, -1, 3229 60, -1, 512, -1, 514, 515, -1, -1, -1, -1, 3230 -1, 71, -1, -1, -1, -1, -1, 527, -1, -1, 3231 1485, -1, 575, 576, -1, -1, -1, 874, 875, 876, 3232 877, -1, 879, -1, -1, -1, -1, -1, -1, -1, 3233 -1, -1, -1, -1, -1, -1, -1, -1, 895, -1, 3234 -1, -1, 605, -1, -1, 608, 609, -1, 611, -1, 3235 613, 614, 909, -1, -1, 618, 619, -1, -1, 579, 3236 -1, -1, 575, 576, -1, -1, -1, -1, -1, -1, 3237 -1, 591, -1, 593, -1, -1, 596, -1, -1, -1, 3238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239 -1, 948, 605, -1, -1, 608, 609, -1, 611, -1, 3240 613, 614, 622, -1, -1, 618, 619, 627, -1, -1, 3241 -1, -1, -1, -1, -1, -1, 636, 637, 638, -1, 3242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3243 987, -1, -1, 696, 654, -1, -1, 994, 701, 702, 3244 -1, 998, -1, -1, 707, -1, 1003, -1, 1005, -1, 3245 -1, -1, 1009, 1010, 1011, -1, -1, 1014, -1, -1, 3246 -1, -1, -1, -1, -1, -1, 1023, -1, -1, 689, 3247 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3248 -1, -1, -1, -1, 1041, 1042, -1, -1, 701, 702, 3249 710, -1, -1, -1, 707, -1, -1, -1, -1, -1, 3250 -1, -1, -1, -1, -1, -1, -1, -1, 728, 1066, 3251 730, -1, 1069, 10, 11, 12, 13, 14, 15, 16, 3252 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3253 -1, -1, 29, 30, 31, -1, -1, 63, -1, -1, 3254 37, -1, -1, -1, 764, -1, -1, 73, -1, 75, 3255 1107, 77, -1, -1, -1, -1, 1113, 1114, 84, -1, 3256 -1, -1, -1, 60, -1, -1, -1, 1124, -1, -1, 3257 67, 68, 1129, -1, -1, 1132, -1, 1134, -1, -1, 3258 1137, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3259 116, 117, 118, 1150, -1, -1, -1, -1, 818, -1, 3260 -1, -1, 822, -1, -1, 825, 1163, -1, 1165, 1166, 3261 1167, 1168, -1, -1, 111, -1, -1, -1, -1, -1, 3262 -1, -1, -1, -1, 1181, -1, 1183, -1, -1, -1, 3263 1187, 157, -1, -1, -1, -1, -1, -1, -1, -1, 3264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3265 -1, -1, -1, -1, -1, -1, -1, -1, 1215, 1216, 3266 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3267 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3268 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3269 31, 217, -1, 219, 220, 221, 37, -1, 918, -1, 3270 -1, -1, -1, -1, -1, 43, -1, -1, 1265, 1266, 3271 -1, -1, -1, -1, -1, -1, -1, -1, 1275, 60, 3272 -1, 62, -1, 64, 65, -1, 67, 68, 69, 255, 3273 -1, -1, -1, 259, -1, 76, 77, -1, -1, -1, 3274 960, -1, -1, -1, -1, -1, -1, -1, -1, 275, 3275 -1, 89, -1, -1, -1, 975, -1, -1, -1, -1, 3276 101, 99, 103, -1, -1, -1, 1323, -1, -1, -1, 3277 111, -1, -1, -1, -1, -1, -1, -1, 1335, -1, 3278 1337, 1338, 1339, -1, -1, -1, -1, -1, -1, 1009, 3279 -1, -1, 1349, -1, -1, -1, -1, -1, 324, -1, 3280 -1, 1358, -1, -1, 36, -1, 38, -1, -1, -1, 3281 1030, 1031, -1, 1370, -1, -1, 154, -1, -1, 345, 3282 -1, -1, 1085, -1, 350, 351, -1, 59, -1, 167, 3283 -1, -1, 358, 65, -1, -1, -1, 69, -1, -1, 3284 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3285 -1, -1, 190, -1, -1, 87, -1, -1, -1, -1, 3286 -1, -1, -1, -1, 1421, 1422, 204, -1, 1088, 101, 3287 -1, 103, 1085, -1, 400, 213, 108, 1434, 110, 111, 3288 112, 113, 114, 115, 1441, 223, -1, -1, -1, -1, 3289 -1, -1, 418, -1, -1, -1, -1, 423, -1, 425, 3290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3291 248, -1, 1469, -1, -1, 253, 442, -1, -1, 445, 3292 446, -1, -1, -1, -1, -1, 1146, -1, 266, -1, 3293 -1, -1, -1, -1, 272, 461, 274, -1, -1, -1, 3294 1497, -1, -1, -1, 1207, -1, -1, -1, -1, 475, 3295 -1, -1, -1, 291, -1, -1, 482, -1, -1, -1, 3296 -1, -1, -1, -1, -1, -1, 1523, -1, 1188, -1, 3297 -1, 1528, -1, -1, -1, -1, -1, -1, -1, -1, 3298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3299 -1, -1, -1, -1, 1207, -1, 334, -1, -1, -1, 3300 -1, 339, -1, -1, -1, 1225, -1, -1, -1, -1, 3301 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3302 19, 20, 21, 22, 23, 24, 25, 26, -1, 367, 3303 29, 30, 31, 371, 372, -1, 374, -1, 37, -1, 3304 -1, -1, 380, 381, -1, 383, 384, -1, 386, -1, 3305 388, -1, 7, 1273, 1274, 10, 11, 12, 13, 14, 3306 -1, 60, 1282, -1, -1, -1, -1, 405, 67, 68, 3307 596, -1, -1, -1, -1, 413, -1, -1, -1, -1, 3308 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1, 3309 -1, -1, -1, -1, -1, -1, -1, -1, 624, -1, 3310 438, -1, -1, 629, 59, 60, -1, -1, -1, -1, 3311 65, 449, 111, -1, 69, -1, -1, 72, 73, 74, 3312 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3313 -1, -1, 87, -1, 472, -1, -1, -1, -1, -1, 3314 478, -1, -1, -1, -1, 483, 101, -1, 103, -1, 3315 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3316 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3317 1390, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3318 -1, 519, -1, -1, 278, 279, 280, -1, -1, -1, 3319 716, -1, -1, 287, 288, -1, -1, 535, 292, 293, 3320 -1, -1, -1, -1, 730, -1, -1, -1, -1, -1, 3321 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3322 -1, -1, -1, 1443, 750, -1, -1, -1, -1, -1, 3323 -1, -1, -1, 571, 152, 153, -1, -1, -1, -1, 3324 -1, -1, 580, -1, -1, -1, 340, -1, -1, 587, 3325 -1, -1, -1, 1473, 592, -1, -1, -1, -1, -1, 3326 -1, -1, -1, -1, -1, 603, -1, 185, -1, -1, 3327 -1, -1, -1, -1, 192, -1, -1, -1, 1498, -1, 3328 -1, -1, 376, 809, -1, -1, -1, -1, -1, -1, 3329 -1, -1, -1, -1, -1, -1, 822, -1, -1, -1, 3330 -1, -1, -1, -1, -1, -1, 644, -1, -1, -1, 3331 -1, -1, -1, 0, -1, 841, 3, 4, 5, 6, 3332 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3333 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3334 -1, 679, 29, 30, 31, 32, 264, -1, 35, -1, 3335 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3336 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3337 57, -1, -1, 60, -1, 62, -1, 64, 65, -1, 3338 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3339 77, -1, -1, -1, -1, -1, 734, -1, -1, -1, 3340 -1, 319, 928, -1, -1, -1, 744, 745, -1, 327, 3341 328, -1, 330, 331, 101, -1, 103, -1, -1, 757, 3342 -1, -1, 340, -1, 111, -1, 344, -1, 954, -1, 3343 -1, -1, -1, -1, -1, -1, 774, -1, 776, -1, 3344 -1, -1, 780, -1, -1, 363, -1, -1, 366, -1, 3345 -1, -1, -1, -1, -1, 981, 550, 551, 552, 553, 3346 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3347 564, 565, 566, 567, 392, -1, -1, -1, 396, 36, 3348 -1, 38, -1, -1, -1, -1, 1012, -1, -1, -1, 3349 -1, -1, -1, -1, -1, -1, -1, 1023, -1, 593, 3350 -1, -1, 59, -1, -1, -1, -1, 845, 65, 427, 3351 67, 68, 69, -1, 852, 72, 73, 74, 75, 76, 3352 77, -1, 79, 80, -1, -1, -1, 865, -1, 867, 3353 87, -1, 450, -1, -1, -1, -1, -1, -1, -1, 3354 -1, -1, -1, 881, 101, -1, 103, -1, 105, 106, 3355 888, -1, -1, 110, 111, 112, 113, 114, 115, -1, 3356 -1, -1, 900, 481, -1, 903, 484, -1, -1, -1, 3357 -1, -1, -1, -1, -1, -1, 1102, -1, -1, -1, 3358 -1, -1, -1, 921, -1, -1, -1, -1, -1, -1, 3359 -1, -1, -1, -1, -1, -1, -1, 691, -1, -1, 3360 -1, -1, -1, -1, -1, 523, -1, -1, 526, 527, 3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, 713, 3362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3363 143, -1, 726, -1, -1, -1, -1, -1, -1, -1, 3364 153, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3365 -1, -1, 165, 571, 572, -1, -1, -1, -1, -1, 3366 -1, -1, 1188, -1, -1, -1, -1, -1, -1, -1, 3367 1008, -1, 590, 591, -1, 593, -1, 771, -1, -1, 3368 -1, -1, -1, -1, 602, -1, 604, 605, -1, -1, 3369 -1, -1, -1, 611, -1, -1, -1, -1, -1, -1, 3370 -1, -1, -1, 621, 622, -1, -1, -1, 802, 627, 3371 -1, -1, -1, -1, -1, -1, -1, -1, 636, 637, 3372 638, -1, 235, 817, -1, 1063, -1, -1, -1, -1, 3373 -1, 1069, -1, -1, -1, -1, 654, -1, -1, -1, 3374 -1, 659, 660, -1, -1, 663, 664, 260, -1, -1, 3375 -1, -1, 670, -1, -1, -1, 1282, -1, -1, -1, 3376 1098, -1, -1, -1, -1, 1103, -1, -1, -1, -1, 3377 688, 689, 690, 1111, 692, -1, -1, -1, 696, 3, 2503 3378 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2504 3379 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2505 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2506 0, 30, 676, 0, 0, 0, 0, 0, 0, 0, 2507 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2509 0, 37, 38, 2, 202, 4, 5, 6, 7, 8, 3380 24, 25, 26, 1141, -1, 29, 30, 31, -1, -1, 3381 728, 729, -1, 37, -1, 1153, -1, -1, 1156, -1, 3382 1158, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3383 -1, -1, -1, -1, 1172, 1173, 60, -1, 62, -1, 3384 64, -1, -1, 67, 68, 763, 764, -1, -1, -1, 3385 768, 769, -1, -1, -1, -1, 1194, -1, -1, -1, 3386 -1, -1, 375, -1, -1, -1, -1, -1, -1, -1, 3387 -1, -1, -1, -1, 968, -1, -1, -1, -1, 103, 3388 -1, -1, 1220, -1, -1, -1, -1, 111, -1, -1, 3389 -1, 809, -1, -1, -1, -1, -1, -1, -1, -1, 3390 818, -1, -1, 997, -1, -1, 824, 825, -1, -1, 3391 -1, 829, -1, 831, -1, 1009, -1, -1, -1, -1, 3392 -1, -1, -1, 841, -1, -1, -1, 10, 11, 12, 3393 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3394 23, 24, 25, 26, 27, -1, 29, 30, 31, -1, 3395 -1, -1, -1, -1, 37, -1, 1050, -1, -1, -1, 3396 -1, -1, -1, 476, -1, -1, -1, -1, -1, -1, 3397 -1, -1, -1, -1, 1312, -1, 1314, 60, -1, -1, 3398 -1, -1, 65, -1, 67, 68, 69, 1513, 71, 1327, 3399 -1, 1329, -1, 76, 77, -1, 914, -1, -1, -1, 3400 -1, 514, -1, -1, 922, -1, -1, -1, -1, 1347, 3401 928, -1, -1, -1, 527, -1, -1, -1, 936, -1, 3402 103, 534, -1, -1, -1, 1363, 1120, -1, 111, -1, 3403 -1, 949, 950, 1371, 547, 548, 1374, -1, 10, 11, 3404 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3405 22, 23, 24, 25, 26, 27, 569, 975, 1396, -1, 3406 -1, -1, -1, 981, -1, 37, 579, 1405, -1, 1163, 3407 1408, 1409, -1, 586, -1, -1, -1, -1, 591, -1, 3408 -1, 999, 1000, 1177, 1178, -1, -1, -1, 60, -1, 3409 -1, 1009, -1, -1, -1, -1, -1, 1015, 1016, 71, 3410 1018, 1019, 1020, -1, -1, -1, -1, 1445, -1, 1447, 3411 -1, -1, 1030, 1031, -1, -1, -1, -1, -1, -1, 3412 -1, -1, -1, -1, 1462, -1, -1, -1, 641, -1, 3413 -1, -1, -1, -1, -1, -1, 649, 4, 5, 6, 3414 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3415 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3416 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3417 37, 1089, 1090, 1091, -1, -1, 689, -1, -1, -1, 3418 -1, -1, -1, -1, 1102, -1, -1, -1, -1, -1, 3419 -1, -1, -1, 60, -1, 62, -1, 64, -1, -1, 3420 67, 68, -1, 3, 4, 5, 6, 7, 8, 9, 3421 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3422 20, 21, 22, 23, 24, 25, 26, -1, 1146, 29, 3423 30, 31, 32, -1, -1, 35, 103, 37, 38, -1, 3424 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3425 -1, 764, -1, 766, -1, -1, -1, 57, -1, 772, 3426 60, -1, 62, -1, 64, 65, 779, 67, 68, 69, 3427 -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, 3428 -1, -1, -1, 1377, -1, -1, -1, -1, 1206, -1, 3429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3430 1394, 101, -1, 103, -1, -1, -1, 1225, -1, 822, 3431 823, 111, 825, -1, -1, -1, -1, -1, -1, -1, 3432 -1, -1, -1, -1, -1, -1, -1, 840, -1, -1, 3433 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3434 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, 3435 -1, -1, -1, -1, -1, 1273, 1274, 37, -1, -1, 3436 -1, -1, -1, 1457, 1458, -1, -1, 880, -1, -1, 3437 -1, 884, -1, -1, -1, -1, -1, -1, -1, -1, 3438 60, -1, -1, -1, 3, 4, 5, 6, 7, 8, 2510 3439 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2511 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2512 27, 0, 0, 0, 0, 0, 30, 590, 0, 0, 2513 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2515 0, 34, 0, 35, 0, 0, 203, 38, 8, 9, 2516 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2517 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2518 0, 0, 0, 0, 277, 30, 278, 0, 0, 0, 2519 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 2520 267, 0, 0, 0, 0, 0, 0, 279, 33, 0, 2521 0, 0, 0, 280, 0, 37, 38, 281, 0, 0, 2522 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2523 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 2524 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 2525 0, 590, -3, 0, 0, 0, 0, 0, 291, 591, 2526 293, 294, 295, 296, 8, 9, 10, 11, 12, 13, 2527 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2528 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2529 277, 30, 278, 0, 0, 0, 0, 0, 0, 0, 2530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 279, 33, 0, 0, 0, 0, 640, 2532 0, 37, 38, 281, 0, 0, 282, 283, 284, 285, 2533 40, 41, 0, 286, 287, 0, 0, 0, 0, 0, 2534 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 2535 0, 0, 0, 0, 0, 289, -35, 753, 0, 0, 2536 0, 0, 0, 0, 291, 292, 293, 294, 295, 296, 2537 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2538 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2539 26, 27, 0, 0, 0, 0, 277, 30, 278, 0, 2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 2542 33, 0, 0, 0, 0, 280, 0, 37, 38, 281, 2543 0, 0, 282, 283, 284, 285, 40, 41, 0, 286, 2544 287, 0, 0, 0, 0, 0, 0, 288, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2546 0, 289, 0, 290, 0, 0, 0, 0, 0, 0, 2547 291, 292, 293, 294, 295, 296, 8, 9, 10, 11, 2548 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2549 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2550 0, 0, 277, 30, 278, 0, 0, 0, 0, 0, 2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 0, 0, 279, 33, 0, 0, 0, 2553 0, 280, 0, 37, 38, 281, 0, 0, 282, 283, 2554 284, 285, 40, 41, 0, 286, 287, 0, 0, 0, 2555 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 289, 0, 154, 2557 0, 0, 0, 0, 0, 0, 291, 292, 293, 294, 2558 295, 296, 8, 9, 10, 11, 12, 13, 14, 15, 2559 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2560 0, 25, 26, 27, 0, 0, 0, 0, 277, 30, 2561 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2563 0, 279, 33, 0, 0, 0, 0, 280, 0, 37, 2564 38, 281, 0, 0, 282, 283, 284, 285, 40, 41, 2565 0, 286, 287, 0, 0, 0, 0, 0, 0, 288, 2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2567 0, 0, 0, 289, 0, 590, 0, 0, 0, 0, 2568 0, 0, 291, 591, 293, 294, 295, 296, 8, 9, 2569 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2570 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2571 0, 0, 0, 0, 277, 30, 278, 0, 0, 0, 2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 279, 33, 0, 2574 0, 0, 0, 280, 0, 37, 38, 281, 0, 0, 2575 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2576 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 2578 0, 373, 0, 0, 0, 0, 0, 0, 291, 375, 2579 293, 294, 295, 296, 467, 2, 202, 4, 5, 6, 2580 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2581 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2582 25, 26, 27, 0, 0, 0, 0, 0, 30, 8, 2583 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2584 19, 20, 21, 22, 23, 24, -278, 0, 25, 26, 2585 27, 33, 0, 34, 0, 35, 30, 0, 37, 38, 2586 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2587 16, 17, 18, 19, 20, 21, 22, 23, 24, 33, 2588 0, 25, 26, 27, 36, 0, 331, 332, 39, 30, 2589 -278, 0, 0, 0, 0, 40, 41, -3, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2591 0, 0, 33, 0, 0, 0, 0, 36, 0, 37, 2592 38, 39, 333, 0, 0, 0, 0, 0, 40, 41, 2593 109, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2594 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2595 25, 26, 27, 42, 0, 154, 0, 0, 30, 0, 2596 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 0, 33, 0, 0, 0, 0, 36, 0, 37, 38, 2599 39, 0, 0, 0, 0, 0, 0, 40, 41, 8, 2600 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2601 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2602 27, 0, 42, 0, 43, 0, 30, 0, 0, 0, 2603 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2605 0, 0, 0, 0, 36, 0, 203, 38, 39, 0, 2606 0, 0, 0, 0, 0, 40, 41, 8, 9, 10, 2607 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2608 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2609 42, 0, 266, 0, 30, 0, 0, 0, 0, 0, 2610 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2612 0, 0, 36, 0, 331, 332, 39, 0, 0, 0, 2613 0, 0, 0, 40, 41, 8, 9, 10, 11, 12, 2614 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2615 23, 24, 0, 0, 25, 26, 27, 0, 634, 0, 2616 333, 0, 30, 0, 0, 0, 0, 0, 625, 0, 2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2618 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2619 36, 0, 331, 332, 39, 0, 0, 0, 0, 0, 2620 0, 40, 41, 8, 9, 10, 11, 12, 13, 14, 2621 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2622 -278, 0, 25, 26, 27, 0, 0, 0, 333, 0, 2623 30, 0, 0, 0, 0, 0, 109, 0, 0, 0, 2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2626 37, 38, 0, 0, -278, 8, 9, 10, 11, 12, 2627 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2628 23, 24, -278, 0, 25, 26, 27, 0, 0, 0, 2629 0, 0, 30, 0, 634, 0, 333, 0, 0, 0, 2630 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 2631 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2632 0, 0, 37, 38, 0, 0, -278, 8, 9, 10, 2633 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2634 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2635 0, 0, 0, 0, 30, 446, 634, 0, 333, 0, 2636 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 2637 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2638 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2639 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2640 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2641 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2642 447, 0, 0, 0, 1209, 0, 0, 0, 109, 0, 2643 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2644 0, 108, 0, 37, 38, 8, 9, 10, 11, 12, 2645 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2646 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2647 0, 0, 30, 446, 0, 0, 0, 0, 0, 43, 2648 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 2649 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2650 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2651 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2652 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2653 0, 30, 0, 0, 0, 0, 0, 0, 447, 0, 2654 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, 2655 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2656 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2657 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2658 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2659 30, 0, 0, 0, 0, 634, 0, 333, 0, 0, 2660 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 2661 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2662 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2663 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2664 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2665 0, 0, 0, 0, 634, 0, 333, 0, 0, 0, 2666 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 2667 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2668 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2669 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2670 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2671 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 2672 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 2673 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2674 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2675 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2676 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2677 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 2678 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 2679 33, 0, 0, 0, 0, 0, 0, 203, 38, 8, 2680 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2681 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2682 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2683 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 2684 0, 267, 0, 0, 0, 0, 0, 0, 0, 33, 2685 0, 0, 0, 0, 0, 0, 37, 38, 8, 9, 2686 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2687 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2688 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2689 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 2690 625, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2691 0, 0, 0, 0, 0, 37, 38, 8, 9, 10, 2692 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2693 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2694 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2695 0, 333, 0, 0, 0, 0, 0, 0, 0, 625, 2696 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2697 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2698 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2699 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2700 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2701 447, 0, 0, 0, 0, 0, 0, 0, 109, 0, 2702 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2703 0, 0, 0, 203, 38, 8, 9, 10, 11, 12, 2704 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2705 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2706 0, 0, 30, 0, 0, 0, 0, 0, 0, 266, 2707 0, 0, 0, 0, 0, 0, 0, 620, 0, 0, 2708 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2709 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2710 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2711 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2712 0, 30, 0, 0, 0, 0, 0, 0, 590, 0, 2713 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 2714 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2715 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2716 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2717 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2718 30, 0, 0, 0, 0, 0, 0, 333, 0, 0, 2719 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 2720 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2721 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2722 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2723 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2724 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2725 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 2726 0, 0, 33, 0, 0, 0, 0, 0, 0, 203, 2727 38, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2728 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2729 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2730 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2731 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2733 0, 35, 0, 0, 37, 38, 0, 277, 0, 278, 2734 1043, 0, 1044, 0, 0, 1045, 1046, 1047, 1048, 1049, 2735 1050, 1051, 1052, 1482, 1053, 0, 0, 1054, 32, 0, 2736 279, 0, 0, 0, 0, 0, 640, 0, 0, -396, 2737 281, 0, 0, 282, 283, 284, 285, 40, 41, 0, 2738 286, 287, 0, 0, 0, 0, 0, 0, 288, 0, 2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740 0, 0, 289, 0, 373, 0, 0, 167, 0, 0, 2741 0, 291, 375, 293, 294, 295, 296, 0, 277, 0, 2742 278, 1043, 0, 1044, 0, -126, 1045, 1046, 1047, 1048, 2743 1049, 1050, 1051, 1052, 0, 1053, 0, 0, 1054, 32, 2744 0, 279, 0, 0, 0, 0, 0, 640, 0, 0, 2745 0, 281, 0, 0, 282, 283, 284, 285, 40, 41, 2746 0, 286, 287, 0, 0, 0, 0, 0, 0, 288, 2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2748 0, 0, 0, 289, 0, 373, 0, 0, 167, 0, 2749 0, 0, 291, 375, 293, 294, 295, 296, 0, 0, 2750 0, 0, 0, 0, 0, 0, -126, 2, 202, 4, 2751 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2752 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2753 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2754 30, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2755 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2756 25, 26, 27, 33, 0, 34, 0, 35, 30, 0, 2757 37, 38, 0, 277, 0, 278, 1043, 0, 1044, 1378, 2758 1379, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1482, 2759 1053, 33, 1295, 1054, 32, 0, 279, 0, 37, 38, 2760 0, 0, 640, 0, 0, 0, 281, 0, 0, 282, 2761 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2762 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 2763 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 2764 373, 0, 0, 167, 0, 0, 0, 291, 375, 293, 2765 294, 295, 296, 277, 0, 278, 1043, 0, 1044, 1378, 2766 1379, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 2767 1053, 0, 0, 1054, 32, 0, 279, 0, 0, 0, 2768 0, 0, 640, 0, 0, 0, 281, 0, 0, 282, 2769 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2770 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 2771 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 2772 373, 0, 0, 167, 0, 0, 0, 291, 375, 293, 2773 294, 295, 296, 277, 0, 278, 1043, 0, 1044, 0, 2774 0, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 2775 1053, 0, 0, 1054, 32, 0, 279, 0, 0, 0, 2776 0, 0, 640, 0, 0, 0, 281, 0, 0, 282, 2777 283, 284, 285, 40, 41, 0, 286, 287, 0, 0, 2778 0, 0, 0, 0, 288, 0, 0, 0, 0, 0, 2779 277, 0, 278, 0, 0, 0, 0, 0, 289, 0, 2780 373, 0, 0, 167, 0, 0, 0, 291, 375, 293, 2781 294, 295, 296, 279, 0, 0, 0, 0, 0, 280, 2782 0, 0, 0, 281, 0, 0, 282, 283, 284, 285, 2783 40, 41, 0, 286, 287, 0, 0, 0, 0, 0, 2784 0, 288, 0, 0, 0, 0, 0, 277, 0, 278, 2785 0, 0, 0, 0, 0, 289, 0, 373, 0, 0, 2786 0, 0, 768, 0, 291, 375, 293, 294, 295, 296, 2787 279, 0, 0, 0, 0, 0, 280, 0, 0, 0, 2788 281, 0, 0, 282, 283, 284, 285, 40, 41, 0, 2789 286, 287, 0, 0, 0, 0, 0, 0, 288, 0, 2790 0, 0, 0, 0, 277, 0, 278, 0, 0, 0, 2791 0, 0, 289, 0, 373, 0, 0, 0, 0, 0, 2792 0, 291, 375, 293, 294, 295, 296, 279, 0, 0, 2793 0, 0, 0, 280, 0, 0, 0, 281, 0, 0, 2794 282, 283, 284, 285, 40, 41, 0, 286, 287, 0, 2795 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, 2796 0, 277, 0, 278, 0, 0, 0, 0, 0, 289, 2797 0, 373, 0, 0, 0, 0, 0, 0, 291, 723, 2798 293, 294, 295, 296, 279, 0, 0, 0, 0, 0, 2799 640, 0, 0, 0, 281, 0, 0, 282, 283, 284, 2800 285, 40, 41, 0, 286, 287, 0, 0, 0, 0, 2801 0, 0, 288, 0, 0, 0, 0, 0, 277, 0, 2802 278, 0, 0, 0, 0, 0, 289, 0, 772, 0, 2803 0, 0, 0, 0, 0, 291, 375, 293, 294, 295, 2804 296, 279, 0, 0, 0, 0, 0, 280, 0, 0, 2805 0, 281, 0, 0, 282, 283, 284, 285, 40, 41, 2806 0, 286, 287, 0, 0, 0, 0, 0, 0, 288, 2807 0, 0, 0, 0, 0, 277, 0, 278, 0, 0, 2808 0, 0, 0, 289, 0, 373, 0, 0, 0, 0, 2809 0, 0, 291, 813, 293, 294, 295, 296, 279, 0, 2810 0, 0, 0, 0, 280, 0, 0, 0, 281, 0, 2811 0, 282, 283, 284, 285, 40, 41, 0, 286, 287, 2812 0, 0, 0, 0, 0, 0, 288, 0, 0, 0, 2813 0, 0, 277, 0, 278, 0, 0, 0, 0, 0, 2814 289, 0, 0, 0, 0, 0, 0, 0, 0, 291, 2815 375, 293, 294, 295, 296, 279, 0, 0, 0, 0, 2816 0, 280, 0, 0, 0, 281, 0, 0, 282, 283, 2817 284, 285, 40, 41, 0, 286, 287, 0, 0, 0, 2818 0, 0, 0, 288, 0, 0, 0, 0, 0, 277, 2819 0, 278, 0, 0, 0, 0, 0, 507, 0, 0, 2820 0, 0, 0, 0, 0, 0, 291, 375, 293, 294, 2821 295, 296, 279, 0, 0, 0, 0, 0, 280, 0, 2822 0, 0, 281, 0, 0, 282, 283, 284, 285, 40, 2823 41, 0, 286, 287, 0, 0, 0, 0, 0, 0, 2824 288, 0, 0, 0, 0, 0, 277, 0, 278, 0, 2825 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 2826 0, 0, 0, 291, 375, 293, 294, 295, 296, 279, 2827 0, 0, 0, 0, 0, 280, 0, 0, 0, 281, 2828 0, 0, 282, 283, 284, 285, 40, 41, 0, 286, 2829 287, 0, 0, 0, 0, 0, 0, 288, 0, 0, 2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2831 0, 513, 0, 0, 0, 0, 0, 0, 0, 0, 2832 291, 375, 293, 294, 295, 296, 2, 202, 4, 5, 2833 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2834 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2838 0, 0, 33, 0, 34, 0, 35, 36, 0, 170, 2839 171, 39, 0, 0, 0, 0, 0, 0, 40, 41, 2840 201, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2841 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2842 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2843 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2845 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2846 0, 35, 0, 0, 203, 38, 467, 2, 202, 4, 2847 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2848 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2849 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2850 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852 0, 0, 0, 33, 0, 34, 0, 35, 0, 0, 2853 37, 38, 2, 202, 4, 5, 6, 7, 8, 9, 2854 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2855 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2856 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2859 34, 0, 35, 0, 0, 203, 38, 8, 9, 10, 2860 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2861 21, 22, 23, 24, 0, 0, 25, 26, 27, 485, 2862 486, 487, 0, 0, 30, 8, 9, 10, 11, 12, 2863 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2864 23, 24, 0, 0, 25, 26, 27, 33, 0, 0, 2865 0, 0, 30, 0, 37, 38, 0, 0, 0, 0, 2866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2867 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2868 0, 0, 203, 38 2869 }; 2870 2871 #define yypact_value_is_default(yystate) \ 2872 ((yystate) == (-1269)) 2873 2874 #define yytable_value_is_error(yytable_value) \ 2875 YYID (0) 2876 2877 static const yytype_int16 yycheck[] = 2878 { 2879 1, 42, 0, 235, 0, 215, 42, 687, 42, 181, 2880 103, 181, 1, 687, 32, 687, 165, 620, 181, 275, 2881 343, 0, 183, 1023, 31, 182, 987, 748, 449, 455, 2882 181, 181, 645, 31, 600, 31, 181, 1305, 602, 182, 2883 600, 0, 181, 532, 42, 276, 44, 276, 44, 492, 2884 1, 600, 31, 496, 570, 343, 54, 603, 887, 152, 2885 887, 980, 60, 609, 60, 63, 42, 63, 66, 37, 2886 66, 600, 31, 767, 1035, 42, 448, 66, 113, 1042, 2887 602, 0, 0, 42, 764, 44, 600, 42, 65, 261, 2888 764, 261, 764, 44, 490, 600, 257, 258, 261, 712, 2889 75, 60, 419, 420, 63, 262, 104, 66, 44, 107, 2890 261, 261, 31, 31, 102, 113, 261, 411, 101, 262, 2891 65, 109, 261, 27, 600, 0, 1, 1395, 1022, 1023, 2892 57, 339, 65, 0, 111, 103, 430, 89, 52, 78, 2893 181, 42, 43, 89, 438, 181, 144, 181, 144, 521, 2894 37, 1378, 103, 88, 152, 108, 31, 101, 109, 157, 2895 101, 157, 197, 115, 31, 37, 105, 71, 37, 115, 2896 103, 124, 358, 109, 101, 37, 362, 494, 224, 124, 2897 252, 95, 200, 181, 182, 144, 182, 122, 63, 42, 2898 43, 66, 143, 403, 104, 512, 63, 243, 157, 197, 2899 488, 152, 635, 636, 733, 181, 107, 205, 604, 205, 2900 1437, 123, 608, 1042, 181, 1215, 214, 75, 651, 217, 2901 261, 217, 181, 182, 0, 261, 181, 261, 733, 101, 2902 54, 103, 101, 629, 103, 37, 1382, 633, 65, 101, 2903 247, 103, 399, 336, 102, 101, 205, 248, 108, 247, 2904 201, 247, 44, 106, 205, 31, 399, 733, 217, 825, 2905 577, 106, 1262, 261, 262, 825, 262, 123, 247, 205, 2906 268, 102, 365, 837, 482, 189, 825, 275, 109, 602, 2907 104, 827, 37, 107, 235, 236, 707, 288, 247, 805, 2908 3, 448, 725, 0, 1, 989, 825, 124, 212, 101, 2909 236, 103, 261, 102, 1464, 448, 42, 43, 222, 1228, 2910 109, 825, 1275, 1459, 65, 837, 267, 109, 1464, 270, 2911 825, 1464, 65, 480, 31, 323, 1486, 323, 247, 247, 2912 1051, 267, 3, 1479, 252, 108, 1479, 480, 289, 411, 2913 1486, 292, 217, 1486, 342, 343, 101, 108, 103, 825, 2914 217, 143, 103, 289, 389, 102, 292, 101, 430, 66, 2915 103, 359, 109, 124, 323, 363, 438, 1261, 1262, 0, 2916 106, 1200, 247, 1200, 1374, 289, 123, 943, 65, 0, 2917 247, 814, 417, 591, 343, 336, 680, 422, 339, 123, 2918 214, 389, 101, 65, 943, 67, 68, 65, 1001, 67, 2919 68, 399, 588, 399, 1440, 1366, 1367, 358, 54, 102, 2920 1446, 362, 620, 205, 365, 108, 103, 625, 65, 417, 2921 67, 68, 944, 108, 422, 1461, 424, 101, 102, 943, 2922 1466, 524, 108, 101, 106, 634, 635, 636, 106, 124, 2923 399, 102, 101, 235, 268, 631, 1275, 108, 124, 101, 2924 448, 275, 651, 1416, 102, 289, 103, 688, 104, 688, 2925 1423, 107, 101, 859, 1010, 1011, 467, 108, 419, 420, 2926 464, 247, 83, 84, 472, 267, 252, 344, 686, 710, 2927 1374, 710, 480, 124, 480, 108, 484, 913, 484, 448, 2928 488, 747, 101, 411, 655, 446, 985, 646, 449, 1462, 2929 292, 124, 101, 1116, 455, 484, 152, 118, 119, 952, 2930 446, 512, 430, 449, 837, 687, 467, 687, 342, 455, 2931 438, 435, 108, 104, 687, 484, 725, 108, 529, 488, 2932 104, 532, 689, 534, 108, 359, 687, 687, 124, 363, 2933 247, 492, 687, 494, 108, 496, 689, 339, 687, 837, 2934 922, 108, 760, 949, 1275, 469, 507, 482, 930, 510, 2935 124, 512, 513, 108, 482, 484, 484, 124, 214, 798, 2936 101, 507, 1094, 524, 510, 108, 111, 513, 104, 124, 2937 581, 116, 117, 101, 108, 419, 420, 1416, 102, 108, 2938 588, 124, 685, 507, 1423, 65, 510, 67, 68, 513, 2939 124, 973, 600, 67, 602, 124, 473, 71, 680, 484, 2940 74, 101, 76, 103, 102, 814, 108, 484, 653, 83, 2941 108, 111, 268, 621, 102, 1346, 577, 419, 420, 275, 2942 816, 101, 124, 1462, 820, 411, 106, 588, 104, 637, 2943 591, 600, 108, 602, 102, 104, 101, 876, 103, 108, 2944 722, 652, 650, 654, 430, 653, 111, 113, 114, 1080, 2945 948, 102, 438, 104, 874, 507, 759, 108, 510, 620, 2946 589, 513, 101, 507, 625, 669, 510, 104, 102, 513, 2947 631, 108, 123, 124, 894, 101, 103, 103, 105, 687, 2948 102, 689, 109, 65, 102, 111, 342, 69, 101, 1420, 2949 108, 1422, 494, 107, 76, 77, 85, 86, 484, 634, 2950 635, 636, 103, 359, 105, 102, 57, 363, 109, 720, 2951 512, 108, 954, 909, 108, 109, 651, 102, 687, 101, 2952 689, 880, 566, 108, 685, 733, 734, 102, 124, 111, 2953 102, 102, 1463, 108, 208, 102, 108, 108, 101, 747, 2954 29, 108, 102, 102, 668, 622, 707, 101, 108, 108, 2955 989, 686, 680, 677, 102, 922, 102, 681, 686, 104, 2956 108, 707, 108, 930, 733, 734, 124, 484, 424, 922, 2957 65, 106, 67, 68, 69, 577, 737, 930, 1468, 102, 2958 106, 76, 77, 1001, 1468, 108, 1468, 621, 124, 591, 2959 725, 80, 81, 63, 722, 124, 102, 801, 759, 65, 2960 1039, 65, 108, 637, 106, 69, 101, 811, 102, 102, 2961 80, 44, 76, 77, 108, 108, 650, 825, 620, 101, 2962 102, 103, 826, 625, 121, 760, 123, 60, 101, 837, 2963 63, 75, 760, 66, 81, 82, 713, 101, 278, 10, 2964 11, 12, 13, 14, 114, 104, 65, 111, 67, 68, 2965 727, 291, 292, 102, 103, 816, 825, 112, 65, 820, 2966 67, 68, 69, 303, 120, 101, 37, 103, 837, 1110, 2967 121, 1110, 346, 3, 348, 101, 887, 103, 1037, 814, 2968 10, 11, 12, 13, 14, 1081, 101, 157, 103, 60, 2969 87, 101, 821, 103, 680, 123, 78, 79, 80, 339, 2970 103, 909, 555, 556, 557, 558, 101, 37, 101, 102, 2971 103, 144, 101, 747, 922, 101, 102, 103, 1136, 101, 2972 104, 103, 930, 105, 157, 104, 1167, 1168, 1167, 1168, 2973 60, 101, 588, 103, 102, 375, 722, 101, 102, 103, 2974 948, 818, 1234, 1235, 1236, 54, 55, 217, 909, 182, 2975 239, 102, 913, 922, 953, 101, 101, 103, 887, 887, 2976 434, 930, 101, 104, 103, 621, 65, 913, 67, 68, 2977 69, 982, 205, 101, 985, 103, 987, 76, 77, 948, 2978 101, 637, 103, 102, 217, 255, 1014, 911, 692, 259, 2979 694, 952, 953, 954, 650, 108, 109, 1215, 42, 43, 2980 551, 552, 887, 104, 4, 5, 6, 7, 8, 9, 2981 887, 553, 554, 559, 560, 1019, 1020, 102, 102, 102, 2982 887, 103, 108, 101, 1035, 123, 106, 104, 102, 0, 2983 1, 102, 104, 109, 1045, 104, 104, 1048, 1049, 1050, 2984 1001, 104, 4, 5, 6, 7, 8, 9, 109, 108, 2985 28, 75, 102, 102, 106, 109, 104, 1102, 124, 102, 2986 31, 32, 62, 108, 64, 107, 107, 1449, 953, 107, 2987 32, 1075, 1076, 44, 344, 101, 10, 11, 12, 13, 2988 14, 102, 75, 102, 102, 374, 109, 1022, 102, 102, 2989 323, 747, 102, 1196, 1102, 66, 108, 102, 102, 102, 2990 62, 887, 64, 37, 102, 102, 1488, 102, 548, 549, 2991 550, 102, 102, 1042, 1042, 102, 102, 102, 102, 1080, 2992 1081, 102, 28, 102, 124, 107, 60, 1004, 104, 1053, 2993 102, 65, 103, 102, 1080, 69, 104, 1378, 102, 1378, 2994 123, 107, 76, 77, 104, 108, 102, 102, 102, 108, 2995 101, 591, 954, 423, 106, 108, 104, 1042, 108, 102, 2996 102, 108, 108, 102, 453, 1042, 399, 101, 104, 458, 2997 887, 101, 101, 144, 101, 101, 101, 111, 1045, 124, 2998 1179, 152, 153, 104, 107, 109, 102, 102, 1196, 1200, 2999 102, 124, 106, 121, 107, 1436, 1437, 1436, 1437, 1001, 3000 108, 1136, 491, 473, 493, 104, 108, 104, 1136, 1213, 3001 102, 182, 102, 102, 102, 45, 63, 104, 104, 104, 3002 1219, 104, 104, 1234, 1235, 1236, 197, 104, 124, 200, 3003 201, 124, 101, 1475, 205, 1196, 953, 107, 1242, 102, 3004 4, 5, 6, 7, 8, 9, 1250, 1251, 1252, 124, 3005 669, 124, 124, 909, 107, 226, 1042, 102, 1219, 230, 3006 104, 232, 104, 104, 107, 104, 104, 114, 104, 104, 3007 241, 1200, 1200, 104, 102, 102, 247, 1288, 104, 104, 3008 101, 252, 55, 723, 54, 102, 1468, 1215, 1468, 102, 3009 1294, 262, 106, 1178, 1179, 1468, 75, 0, 62, 270, 3010 64, 1178, 1469, 109, 124, 104, 1305, 1468, 1468, 104, 3011 157, 102, 104, 1468, 1359, 1200, 1469, 102, 89, 1468, 3012 101, 1488, 104, 1200, 594, 1042, 1261, 767, 31, 1340, 3013 107, 40, 1343, 1200, 1219, 1488, 1180, 1181, 124, 1183, 3014 102, 102, 102, 102, 1305, 1189, 1275, 1275, 1192, 124, 3015 1358, 1359, 622, 642, 108, 1366, 1367, 627, 109, 1283, 3016 102, 89, 102, 66, 464, 336, 124, 75, 339, 124, 3017 217, 1382, 109, 813, 345, 102, 1387, 107, 104, 104, 3018 124, 101, 801, 107, 107, 1270, 102, 358, 124, 102, 3019 1275, 362, 811, 1270, 365, 561, 1395, 665, 1275, 1410, 3020 562, 564, 563, 1117, 1449, 565, 1200, 826, 255, 1348, 3021 1437, 1496, 259, 702, 1200, 1284, 1452, 1468, 1112, 708, 3022 1305, 1288, 1468, 1113, 1468, 1071, 1423, 930, 458, 446, 3023 446, 694, 581, 65, 1395, 67, 68, 69, 932, 1450, 3024 411, 1449, 974, 713, 76, 77, 647, 880, 1459, 737, 3025 153, 950, 1219, 1464, 425, 484, 747, 727, 569, 430, 3026 1468, 1469, 1179, 1469, 1425, 569, 1477, 438, 1479, 101, 3027 -1, -1, 1483, 1340, 569, 1486, 1343, -1, -1, 1425, 3028 1488, 1492, 1488, 1200, -1, 1496, -1, 1416, 1416, 1275, 3029 -1, 1452, -1, 464, 1423, 1423, 467, 344, 1342, 1468, 3030 1424, -1, 1219, -1, -1, 65, 1452, 67, 68, 69, 3031 1395, 482, -1, 484, 1475, 1382, 76, 77, -1, -1, 3032 1387, 492, -1, 226, 1358, 496, -1, 1451, -1, -1, 3033 -1, 1416, -1, 1462, 1462, -1, -1, -1, 1423, 1416, 3034 1196, 101, -1, 1410, 247, -1, 1423, -1, 818, 252, 3035 -1, 111, -1, 524, 525, -1, -1, -1, 1275, -1, 3036 -1, 1001, 65, 1487, 67, 68, 69, -1, -1, 669, 3037 -1, -1, -1, 76, 77, 1499, 423, 1462, 10, 11, 3038 12, 13, 14, -1, -1, 1462, -1, -1, 1305, -1, 3039 -1, 880, -1, -1, -1, -1, -1, 886, 101, 570, 3040 1019, 1020, 1042, -1, -1, 37, -1, -1, 111, -1, 3041 1477, -1, -1, -1, -1, 0, 1483, 588, 589, -1, 3042 591, -1, -1, -1, -1, 1492, 473, -1, 60, 1496, 3043 1416, 602, -1, -1, -1, -1, -1, 1423, -1, -1, 3044 -1, -1, 345, -1, -1, -1, 31, -1, -1, 620, 3045 -1, -1, -1, -1, 625, -1, 1075, 1076, -1, -1, 3046 631, -1, -1, 634, 635, 636, -1, -1, -1, 101, 3047 -1, 103, -1, 1475, -1, -1, 1462, -1, 1395, 111, 3048 651, 66, 63, -1, -1, 974, -1, -1, -1, -1, 3049 -1, -1, 73, -1, 0, 1, -1, -1, 669, 1416, 3050 -1, 801, 1358, -1, -1, -1, 1423, -1, 411, 680, 3051 -1, 811, 65, 1153, 685, 686, 69, -1, 689, -1, 3052 -1, 3, 425, 76, 77, 31, 826, 430, 10, 11, 3053 12, 13, 14, 114, 1004, 438, -1, -1, -1, -1, 3054 -1, -1, -1, -1, -1, 1462, -1, 594, 101, -1, 3055 103, 722, -1, -1, 725, 37, -1, 63, 111, -1, 3056 66, 464, 3, 734, -1, -1, 737, -1, 153, 10, 3057 11, 12, 13, 14, -1, 622, 157, -1, 60, 482, 3058 627, 484, 1071, -1, -1, -1, -1, -1, 759, 760, 3059 -1, -1, -1, -1, 765, -1, 37, -1, -1, -1, 3060 -1, -1, 10, 11, 12, 13, 14, -1, 10, 11, 3061 12, 13, 14, -1, -1, -1, -1, -1, 185, 60, 3062 -1, -1, 525, 1242, -1, 192, -1, -1, -1, 37, 3063 801, 1250, 1251, 1252, -1, 37, 217, -1, -1, -1, 3064 811, -1, -1, 814, -1, 816, -1, 153, 819, 820, 3065 821, -1, 60, -1, -1, 826, -1, 65, 60, 67, 3066 68, 69, 247, -1, -1, 836, 713, 252, 76, 77, 3067 -1, -1, -1, -1, 255, 1294, -1, -1, 259, -1, 3068 727, -1, -1, 0, -1, 1174, 589, -1, -1, -1, 3069 -1, -1, -1, 101, 275, 103, -1, 264, -1, 101, 3070 -1, 103, -1, 111, -1, -1, -1, -1, 1178, 111, 3071 -1, 217, -1, -1, 31, -1, 887, -1, -1, 1019, 3072 1020, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3073 -1, 634, 635, 636, -1, -1, -1, -1, 909, -1, 3074 -1, 247, -1, -1, -1, -1, -1, -1, 651, 66, 3075 -1, 318, -1, 10, 11, 12, 13, 14, -1, 326, 3076 345, -1, 329, 344, -1, -1, 669, -1, -1, -1, 3077 -1, 818, -1, 944, -1, 1075, 1076, 680, -1, -1, 3078 37, 952, 953, 686, -1, -1, -1, 65, -1, 67, 3079 68, 69, -1, 25, 26, 27, 967, -1, 76, 77, 3080 1270, -1, -1, 60, 90, 91, 92, 93, 94, 95, 3081 96, 97, 98, 99, -1, -1, -1, -1, -1, 722, 3082 -1, -1, 725, 101, 391, 103, 411, -1, 395, -1, 3083 1001, 109, -1, 111, -1, -1, 153, 123, -1, -1, 3084 425, -1, 423, 1014, 101, 430, 103, -1, 1019, 1020, 3085 -1, 1022, 1023, 438, 111, -1, -1, 760, -1, 440, 3086 -1, -1, -1, -1, 96, -1, 98, -1, -1, -1, 3087 -1, 1042, -1, -1, -1, -1, -1, -1, -1, 464, 3088 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3089 -1, -1, 473, -1, -1, -1, -1, 482, 801, 484, 3090 -1, -1, -1, -1, 1075, 1076, -1, -1, 811, 37, 3091 1081, 814, 479, 1213, -1, -1, 819, -1, 821, 425, 3092 -1, -1, -1, 826, -1, -1, -1, -1, -1, -1, 3093 247, -1, 60, -1, -1, 252, -1, 65, -1, -1, 3094 525, 69, 1242, -1, -1, 177, -1, -1, 76, 77, 3095 1250, 1251, 1252, -1, -1, 187, 188, 1004, -1, -1, 3096 192, -1, 194, 195, -1, 1136, -1, -1, -1, -1, 3097 -1, -1, -1, 101, -1, -1, -1, -1, 484, -1, 3098 -1, -1, -1, 111, 887, 65, -1, 67, 68, 69, 3099 -1, -1, -1, -1, 1294, -1, 76, 77, -1, -1, 3100 -1, 0, 569, 570, 589, -1, -1, -1, 1179, -1, 3101 -1, -1, -1, 594, -1, -1, -1, -1, -1, 525, 3102 -1, 101, -1, 103, -1, 1196, -1, -1, 345, 1200, 3103 -1, 111, 31, -1, -1, -1, -1, -1, -1, -1, 3104 -1, 622, 1213, -1, 1215, -1, 627, -1, 1219, 634, 3105 635, 636, -1, -1, -1, -1, -1, -1, -1, -1, 3106 -1, -1, -1, -1, 967, -1, 651, 66, -1, -1, 3107 -1, 1242, -1, -1, -1, -1, -1, -1, -1, 1250, 3108 1251, 1252, -1, 589, 669, -1, -1, -1, -1, 656, 3109 1261, 1262, -1, 660, 411, 680, -1, -1, -1, -1, 3110 -1, 686, -1, -1, 1275, -1, -1, -1, 425, -1, 3111 -1, -1, -1, 430, -1, -1, 1019, 1020, -1, 1022, 3112 1023, 438, -1, 1294, -1, -1, 693, -1, 634, 635, 3113 636, 1178, 713, -1, 1305, -1, -1, 722, -1, 1042, 3114 725, -1, -1, -1, -1, 651, 727, 464, -1, -1, 3115 -1, -1, -1, -1, 153, -1, -1, -1, -1, -1, 3116 -1, -1, -1, -1, -1, 482, 747, 484, -1, -1, 3117 -1, -1, 1075, 1076, -1, 760, -1, -1, -1, -1, 3118 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3119 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3120 25, 26, -1, 1374, 29, 30, 31, -1, 525, -1, 3121 -1, -1, 37, 38, -1, -1, 801, -1, -1, 725, 3122 -1, -1, -1, 1270, 1395, -1, 811, -1, -1, 814, 3123 -1, -1, -1, 1136, 819, 60, 821, 818, 805, -1, 3124 -1, 826, 67, 68, -1, 1416, -1, -1, 247, -1, 3125 -1, -1, 1423, 252, -1, -1, -1, -1, -1, -1, 3126 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3127 14, -1, 589, -1, -1, -1, 1179, -1, 103, -1, 3128 -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, 3129 -1, 1462, 65, 37, 67, 68, 69, 1200, 1469, -1, 3130 -1, -1, 887, 76, 77, -1, -1, -1, 814, -1, 3131 1213, -1, 1215, -1, -1, 821, 60, 634, 635, 636, 3132 -1, 65, -1, 67, 68, 69, -1, -1, 101, -1, 3133 103, -1, 76, 77, 651, -1, -1, -1, 111, 1242, 3134 -1, 573, 574, -1, -1, -1, 345, 1250, 1251, 1252, 3135 917, -1, 669, -1, -1, -1, -1, 101, 1261, 1262, 3136 -1, -1, -1, 680, -1, -1, -1, 111, -1, 686, 3137 -1, 603, 1275, -1, 606, 607, -1, 609, -1, 611, 3138 612, 887, 967, -1, 616, 617, -1, -1, -1, -1, 3139 -1, 1294, -1, -1, -1, -1, -1, -1, -1, -1, 3140 -1, -1, -1, -1, -1, 722, -1, -1, 725, -1, 3141 -1, -1, 411, -1, -1, -1, 65, -1, 67, 68, 3142 69, -1, -1, 1004, 991, -1, 425, 76, 77, -1, 3143 -1, 430, -1, -1, 1019, 1020, -1, 1022, 1023, 438, 3144 1007, -1, -1, 760, 50, -1, 52, 953, -1, 55, 3145 56, 57, 101, 59, 103, -1, -1, 1042, -1, -1, 3146 -1, 967, 111, -1, -1, 464, 698, 699, 74, -1, 3147 -1, 1374, 704, 10, 11, 12, 13, 14, -1, -1, 3148 86, 87, -1, 482, 801, 484, -1, -1, -1, -1, 3149 1075, 1076, -1, -1, 811, -1, -1, 814, -1, -1, 3150 37, -1, 819, -1, 821, -1, -1, -1, -1, 826, 3151 -1, -1, -1, 1416, -1, 1082, 1022, 1023, -1, -1, 3152 1423, -1, -1, 60, -1, -1, 525, -1, 65, -1, 3153 67, 68, 69, -1, -1, -1, 1042, -1, -1, 76, 3154 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3155 -1, 1136, -1, -1, -1, -1, -1, -1, -1, 1462, 3156 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3157 887, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3440 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3441 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, 3442 39, -1, 41, -1, -1, 44, 45, 46, 47, 48, 3443 49, 50, 51, -1, 53, -1, -1, 56, 57, -1, 3444 59, 60, -1, 62, -1, 64, 65, 960, 67, 68, 3445 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3446 79, 80, 975, 976, -1, -1, -1, -1, 87, 982, 3447 -1, -1, 1390, -1, -1, 988, -1, -1, 991, -1, 3448 993, -1, 101, -1, 103, -1, 36, 106, 38, -1, 3449 -1, 110, 111, 112, 113, 114, 115, -1, -1, 1012, 3450 -1, -1, -1, -1, -1, 124, -1, -1, -1, 59, 3451 1023, -1, -1, -1, -1, 65, -1, -1, -1, 69, 3452 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3453 80, -1, 1045, -1, 1047, -1, -1, 87, -1, -1, 3454 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1062, 3455 -1, 101, 1470, 103, -1, -1, 106, -1, -1, -1, 3456 110, 111, 112, 113, 114, 115, -1, 36, 1081, 38, 3457 39, -1, 41, 1491, 1492, 44, 45, 46, 47, 48, 3458 49, 50, 51, -1, 53, -1, -1, 56, 57, -1, 3459 59, -1, -1, -1, -1, 1513, 65, -1, -1, -1, 3460 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3461 79, 80, -1, -1, 1127, -1, -1, -1, 87, -1, 3158 3462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3159 589, -1, -1, -1, 1179, -1, -1, 1178, 10, 11, 3160 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3161 22, 23, 24, 25, 26, 1200, -1, 29, 30, 31, 3162 -1, -1, -1, -1, -1, 37, 38, -1, 1213, -1, 3163 1215, -1, -1, -1, -1, 634, 635, 636, -1, -1, 3164 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 3165 967, -1, 651, -1, -1, 67, 68, 1242, -1, -1, 3166 -1, -1, -1, -1, -1, 1250, 1251, 1252, -1, -1, 3167 669, -1, 1178, 1179, -1, -1, 1261, 1262, -1, -1, 3168 -1, 680, -1, -1, -1, -1, -1, 686, -1, 1270, 3169 1275, 103, -1, -1, 1200, 107, -1, -1, -1, 111, 3170 -1, -1, 1019, 1020, -1, 1022, 1023, -1, -1, 1294, 3171 -1, -1, -1, 1219, -1, -1, -1, -1, -1, -1, 3172 -1, -1, -1, 722, -1, 1042, 725, -1, -1, -1, 3173 -1, -1, -1, 339, 340, -1, -1, -1, -1, -1, 3174 -1, -1, -1, -1, -1, 351, 352, -1, -1, -1, 3175 -1, -1, -1, -1, -1, 1261, 1262, -1, 1075, 1076, 3176 -1, 760, -1, -1, 1270, -1, -1, -1, -1, 1275, 3177 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3178 19, 20, 21, 22, 23, 24, 25, 26, 27, 1374, 3179 29, 30, 31, -1, -1, -1, -1, -1, 37, 1305, 3180 -1, -1, 801, -1, -1, -1, -1, -1, -1, -1, 3181 -1, -1, 811, -1, -1, 814, -1, -1, -1, 1136, 3182 819, 60, 821, -1, -1, -1, -1, 826, 67, 68, 3183 -1, 1416, 71, -1, -1, -1, -1, -1, 1423, -1, 3184 -1, -1, -1, -1, -1, 1077, -1, 10, 11, 12, 3185 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, 3186 -1, -1, 1179, -1, 103, -1, -1, -1, 1374, -1, 3187 -1, -1, 111, -1, 37, -1, -1, 1462, -1, -1, 3188 -1, -1, -1, 1200, -1, -1, -1, -1, 887, 1395, 3189 -1, -1, -1, -1, -1, -1, 1213, 60, 1215, -1, 3190 -1, -1, 65, -1, 67, 68, 69, -1, -1, -1, 3191 1416, -1, -1, 76, 77, -1, -1, 1423, -1, -1, 3192 -1, -1, -1, -1, -1, 1242, -1, -1, -1, -1, 3193 -1, -1, -1, 1250, 1251, 1252, -1, -1, 101, -1, 3194 103, -1, -1, -1, 1261, 1262, -1, -1, 111, -1, 3195 -1, -1, -1, -1, -1, -1, 1462, -1, 1275, -1, 3196 -1, -1, -1, -1, -1, 1197, -1, -1, 967, -1, 3197 -1, -1, -1, -1, -1, -1, -1, 1294, -1, 7, 3198 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3199 -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, 3200 -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, 3201 38, -1, -1, -1, -1, 63, -1, -1, -1, -1, 3202 1019, 1020, -1, 1022, 1023, -1, -1, -1, -1, -1, 3203 -1, 59, 60, -1, -1, -1, -1, 65, -1, -1, 3204 -1, 69, -1, 1042, 72, 73, 74, 75, 76, 77, 3205 -1, 79, 80, -1, -1, -1, -1, 1374, -1, 87, 3206 -1, 109, -1, -1, -1, -1, 114, -1, -1, -1, 3207 -1, -1, -1, 101, -1, 103, 1075, 1076, -1, -1, 3208 -1, -1, 110, 111, 112, 113, 114, 115, -1, -1, 3209 -1, -1, -1, -1, -1, 143, -1, -1, -1, 1416, 3210 -1, -1, -1, -1, -1, 153, 1423, -1, 714, 157, 3211 716, -1, -1, -1, -1, -1, -1, 723, 724, -1, 3212 -1, -1, 728, -1, 7, -1, -1, 10, 11, 12, 3213 13, 14, -1, -1, 740, -1, -1, 1136, -1, 745, 3214 -1, -1, -1, -1, -1, 1462, -1, -1, -1, -1, 3215 -1, -1, -1, 36, 37, 38, -1, 205, -1, -1, 3216 -1, -1, -1, 769, -1, -1, -1, -1, -1, 217, 3217 -1, -1, -1, -1, -1, -1, 59, 60, -1, -1, 3218 1179, -1, 65, -1, -1, -1, 69, 235, 236, 72, 3219 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3220 -1, 1200, -1, -1, 87, -1, -1, 813, -1, -1, 3221 -1, 259, -1, -1, 1213, -1, 1215, -1, 101, 267, 3222 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3223 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, 3224 -1, 289, -1, 1242, 292, -1, -1, -1, -1, -1, 3225 -1, 1250, 1251, 1252, -1, -1, -1, -1, -1, -1, 3226 -1, -1, 1261, 1262, 870, 871, 872, 873, -1, 875, 3227 -1, -1, -1, -1, -1, -1, 1275, -1, -1, -1, 3228 -1, -1, -1, -1, 890, -1, -1, -1, -1, -1, 3229 -1, 339, -1, -1, -1, 1294, 344, -1, 904, -1, 3230 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 3231 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3232 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3233 30, 31, 32, -1, -1, 35, 942, 37, -1, -1, 3234 -1, -1, 25, 26, 27, -1, -1, -1, -1, -1, 3235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3236 60, -1, 62, -1, 64, -1, -1, 67, 68, -1, 3237 -1, 419, 420, 979, -1, 1374, -1, 425, -1, -1, 3238 986, -1, -1, -1, 990, -1, -1, -1, -1, 995, 3239 -1, 997, -1, -1, -1, 1001, 1002, 1003, 446, -1, 3240 1006, 449, -1, 103, -1, -1, -1, 455, -1, 1015, 3241 -1, 111, -1, 96, -1, 98, -1, 1416, -1, -1, 3242 -1, -1, -1, -1, 1423, -1, -1, 1033, 1034, 10, 3243 11, 12, 13, 14, 482, -1, -1, -1, -1, 122, 3244 -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, 3245 -1, -1, 1058, -1, -1, 1061, 37, -1, -1, 507, 3246 -1, -1, 510, 1462, 512, 513, -1, -1, -1, -1, 3247 -1, -1, -1, -1, -1, -1, -1, 525, -1, 60, 3248 -1, -1, -1, -1, 65, -1, 67, 68, 69, -1, 3249 -1, -1, -1, 1099, 177, 76, 77, -1, -1, 1105, 3250 1106, -1, 185, -1, 187, 188, -1, -1, 1114, 192, 3251 -1, 194, 195, 1119, -1, -1, 1122, -1, 1124, -1, 3252 101, 1127, -1, -1, -1, -1, -1, -1, -1, 577, 3253 111, -1, -1, -1, 1140, -1, -1, -1, -1, -1, 3254 -1, 589, -1, 591, -1, -1, 594, 1153, -1, 1155, 3255 1156, 1157, 1158, -1, -1, -1, -1, -1, -1, -1, 3256 -1, -1, -1, -1, -1, 1171, -1, 1173, -1, -1, 3257 -1, 1177, 620, -1, -1, -1, -1, 625, -1, -1, 3258 -1, 264, -1, -1, -1, -1, 634, 635, 636, -1, 3259 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1205, 3260 1206, -1, -1, 651, -1, -1, -1, 63, -1, -1, 3261 -1, -1, -1, -1, -1, -1, -1, 73, -1, 75, 3262 -1, 77, -1, -1, -1, -1, -1, -1, 84, -1, 3263 -1, -1, -1, -1, -1, -1, -1, -1, 686, -1, 3264 -1, -1, -1, -1, -1, -1, -1, 1253, 1254, -1, 3265 -1, -1, -1, -1, -1, -1, -1, 1263, 114, 707, 3266 116, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3267 -1, -1, -1, -1, -1, -1, -1, 725, -1, 727, 3268 -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, 3269 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3270 -1, 157, -1, 1309, -1, -1, -1, -1, -1, -1, 3271 -1, -1, 760, -1, -1, 1321, -1, 1323, 1324, 1325, 3272 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1335, 3273 -1, -1, -1, -1, -1, 43, -1, -1, 1344, -1, 3274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3275 1356, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3276 -1, 217, -1, 219, 220, 221, 814, -1, -1, -1, 3277 818, -1, -1, 821, -1, -1, -1, -1, -1, -1, 3278 -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, 3279 -1, 99, -1, -1, -1, -1, -1, 1403, 1404, 255, 3280 -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, 3281 1416, -1, -1, -1, -1, -1, -1, 1423, -1, 275, 3282 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3283 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 3284 30, 31, 1448, -1, -1, -1, 154, 37, -1, -1, 3285 -1, -1, -1, -1, -1, -1, -1, -1, -1, 167, 3286 -1, -1, -1, -1, -1, 913, -1, 323, 1474, -1, 3287 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, 3288 -1, 71, 190, -1, -1, -1, 76, 77, 344, -1, 3289 573, 574, 1498, 349, 350, -1, 204, 1503, -1, -1, 3290 -1, 357, -1, -1, -1, 213, 954, -1, -1, -1, 3291 -1, 101, -1, 103, -1, 223, -1, -1, -1, 967, 3292 603, 111, -1, 606, 607, -1, 609, -1, 611, 612, 3293 -1, -1, -1, 616, 617, -1, -1, -1, -1, -1, 3294 248, -1, -1, 399, -1, 253, -1, -1, -1, -1, 3295 -1, -1, -1, 1001, -1, -1, -1, -1, 266, -1, 3296 -1, 417, -1, -1, 272, -1, 274, 423, -1, -1, 3297 -1, -1, -1, -1, 1022, 1023, -1, -1, -1, -1, 3298 -1, -1, 290, -1, 440, -1, -1, 443, 444, -1, 3299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3300 -1, -1, -1, 459, -1, -1, -1, -1, -1, -1, 3301 693, -1, -1, -1, -1, 698, 699, 473, -1, -1, 3302 -1, 704, -1, -1, 480, 333, -1, -1, -1, -1, 3303 338, -1, 1080, 3, 4, 5, 6, 7, 8, 9, 3304 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3305 20, 21, 22, 23, 24, 25, 26, -1, 366, 29, 3306 30, 31, 370, 371, -1, 373, -1, 37, -1, -1, 3307 -1, 379, 380, -1, 382, 383, -1, 385, -1, 387, 3308 -1, -1, -1, -1, -1, -1, -1, -1, 1136, -1, 3309 60, -1, 62, -1, 64, 65, 404, 67, 68, 69, 3310 -1, -1, -1, -1, 412, -1, 76, 77, -1, -1, 3311 -1, -1, -1, 36, -1, 38, -1, -1, -1, -1, 3312 -1, -1, -1, -1, -1, -1, -1, -1, 436, -1, 3313 1178, 101, -1, 103, -1, -1, 59, -1, 594, 447, 3314 -1, 111, 65, -1, -1, -1, 69, -1, -1, 72, 3315 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3316 -1, -1, 470, -1, 87, -1, 622, 1215, 476, -1, 3317 -1, 627, -1, 481, -1, -1, -1, -1, 101, -1, 3318 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3319 113, 114, 115, -1, -1, -1, -1, -1, 152, 153, 3320 -1, 124, -1, -1, -1, -1, -1, -1, -1, 517, 3321 -1, -1, -1, 1261, 1262, -1, -1, -1, -1, -1, 3322 -1, -1, 1270, -1, -1, 533, -1, -1, -1, -1, 3323 -1, 185, -1, -1, -1, -1, -1, -1, 192, 10, 3324 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3325 21, 22, 23, 24, 25, 26, -1, 713, 29, 30, 3326 31, 569, -1, -1, -1, 36, 37, 38, -1, -1, 3327 578, 727, -1, -1, -1, -1, -1, 585, -1, -1, 3328 -1, -1, 590, -1, -1, -1, -1, -1, 59, 60, 3329 -1, 747, -1, 601, 65, -1, 67, 68, 69, -1, 3330 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3331 264, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3332 -1, -1, -1, -1, -1, -1, 1374, -1, -1, -1, 3333 101, -1, 103, 641, -1, 106, -1, -1, -1, 110, 3334 111, 112, 113, 114, 115, -1, -1, -1, -1, 805, 3335 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3336 -1, -1, 818, -1, 318, -1, -1, -1, 676, -1, 3337 -1, -1, 326, 327, -1, 329, 330, 1425, -1, -1, 3338 -1, 837, -1, -1, -1, 339, -1, -1, -1, 343, 3339 -1, -1, -1, -1, 1077, -1, -1, -1, -1, -1, 3340 -1, -1, -1, -1, 1452, -1, -1, -1, 362, -1, 3341 -1, 365, -1, -1, -1, -1, -1, -1, -1, -1, 3342 -1, -1, -1, 731, -1, -1, -1, 1475, -1, -1, 3343 -1, -1, -1, 741, 742, -1, -1, 391, -1, -1, 3344 -1, 395, -1, -1, -1, 753, -1, -1, -1, -1, 3345 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3346 -1, -1, 770, -1, 772, -1, 922, -1, 776, -1, 3347 -1, 425, -1, -1, -1, -1, -1, -1, -1, -1, 3348 -1, -1, -1, -1, -1, -1, -1, -1, 143, -1, 3349 -1, -1, 948, -1, 448, -1, -1, -1, 153, -1, 3350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3351 165, -1, -1, -1, 1197, -1, -1, 973, -1, -1, 3352 -1, -1, -1, -1, -1, 479, -1, -1, 482, -1, 3353 -1, -1, -1, 841, -1, -1, -1, -1, -1, -1, 3354 848, -1, -1, -1, -1, 36, -1, 38, 1004, -1, 3355 -1, -1, -1, 861, -1, 863, -1, -1, -1, 1015, 3356 -1, -1, -1, -1, -1, -1, -1, 521, 59, 877, 3357 524, 525, -1, -1, 65, 883, -1, -1, 69, -1, 3358 235, 72, 73, 74, 75, 76, 77, 895, 79, 80, 3359 898, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3360 -1, -1, -1, -1, -1, 260, -1, -1, 916, -1, 3361 101, -1, 103, -1, -1, 569, 570, -1, 109, 110, 3362 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, 3363 -1, -1, -1, -1, 588, 589, -1, 591, 1094, -1, 3364 -1, -1, -1, -1, -1, -1, 600, -1, 602, 603, 3365 -1, -1, -1, -1, -1, 609, -1, -1, -1, -1, 3366 -1, -1, -1, -1, -1, 619, 620, -1, -1, -1, 3367 -1, 625, -1, -1, -1, -1, -1, -1, -1, -1, 3368 634, 635, 636, -1, -1, -1, -1, -1, -1, -1, 3369 -1, -1, 1000, -1, -1, -1, -1, 651, -1, -1, 3370 -1, -1, 656, 657, -1, -1, 660, 661, -1, -1, 3371 -1, -1, -1, 667, -1, -1, -1, -1, -1, 374, 3372 -1, -1, 1178, 36, -1, 38, -1, -1, -1, -1, 3373 -1, 685, 686, 687, -1, 689, -1, -1, -1, 693, 3374 -1, -1, -1, -1, -1, -1, 59, 1055, -1, -1, 3375 -1, -1, 65, 1061, 67, 68, 69, -1, -1, 72, 3376 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3377 -1, 725, 726, -1, 87, -1, -1, -1, -1, -1, 3378 -1, -1, 1090, -1, -1, -1, -1, 1095, 101, -1, 3379 103, -1, 105, 106, -1, 1103, -1, 110, 111, 112, 3380 113, 114, 115, -1, -1, 759, 760, -1, -1, -1, 3381 764, 765, -1, -1, 1270, 276, 277, 278, 279, 474, 3382 -1, -1, -1, 1131, -1, 286, 287, -1, -1, -1, 3383 291, 292, -1, -1, -1, 1143, -1, -1, 1146, -1, 3384 1148, -1, 303, -1, -1, -1, -1, -1, -1, -1, 3385 -1, 805, -1, -1, 1162, 1163, -1, 512, -1, -1, 3386 814, -1, -1, -1, -1, -1, 820, 821, -1, -1, 3387 525, 825, -1, 827, -1, -1, 1184, 532, 339, -1, 3388 -1, -1, -1, 837, -1, -1, -1, -1, -1, -1, 3389 545, 546, -1, -1, -1, -1, -1, -1, -1, -1, 3390 -1, -1, 1210, -1, -1, -1, -1, -1, -1, -1, 3391 -1, -1, 567, -1, 375, -1, -1, -1, -1, -1, 3392 -1, -1, 577, -1, -1, -1, -1, -1, -1, 584, 3393 -1, -1, -1, -1, 589, -1, -1, -1, 10, 11, 3394 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3395 22, 23, 24, 25, 26, 909, -1, 29, 30, 31, 3396 -1, -1, -1, 917, -1, 37, -1, -1, 922, -1, 3397 -1, -1, -1, -1, -1, -1, 930, -1, -1, -1, 3398 -1, -1, -1, -1, 639, -1, -1, -1, 60, 943, 3399 944, 646, 1300, -1, 1302, 67, 68, -1, -1, -1, 3400 -1, -1, -1, -1, -1, 1313, -1, 1315, -1, -1, 3401 -1, -1, -1, 967, -1, -1, -1, -1, -1, 973, 3402 -1, -1, -1, -1, -1, 1333, -1, -1, -1, -1, 3403 -1, 686, 1488, -1, -1, -1, -1, 991, 992, 111, 3404 -1, 1349, -1, -1, -1, -1, -1, 1001, -1, 1357, 3405 -1, -1, 1360, 1007, 1008, -1, 1010, 1011, 1012, -1, 3406 -1, -1, -1, -1, -1, -1, -1, -1, 1022, 1023, 3407 -1, -1, 1380, -1, -1, -1, -1, -1, -1, -1, 3408 -1, 1389, -1, -1, 1392, 1393, -1, 548, 549, 550, 3409 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 3410 561, 562, 563, 564, 565, 760, -1, 762, -1, -1, 3411 -1, -1, -1, 768, -1, -1, -1, -1, -1, 1427, 3412 775, 1429, -1, -1, -1, -1, -1, 1081, 1082, 1083, 3413 591, -1, -1, 1441, -1, -1, -1, -1, -1, -1, 3414 1094, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3415 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3416 -1, -1, -1, 818, 819, -1, 821, -1, -1, -1, 3417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3418 -1, 836, 1136, 4, 5, 6, 7, 8, 9, 10, 3463 -1, -1, 101, 1146, 103, -1, -1, 106, -1, -1, 3464 -1, 110, 111, 112, 113, 114, 115, -1, 1161, 1162, 3465 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3419 3466 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3420 3467 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3421 31, -1, -1, -1, -1, 36, 37, 38, -1, -1,3422 -1, 876, -1, -1, -1, 880, -1, 688, -1, -1,3468 31, 32, -1, -1, 35, 36, 37, 38, -1, -1, 3469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3423 3470 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3424 -1, 62, 1196, 64, 65, -1, 67, 68, 69, 710,3425 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80,3426 -1, 1215, 723, -1, -1, -1, 87, -1, -1, -1,3471 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3472 -1, 72, 73, 74, 75, 76, 77, 1240, 79, 80, 3473 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3427 3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3428 101, -1, 103, -1, -1, -1, -1, 108, -1, 110, 3429 111, 112, 113, 114, 115, -1, -1, -1, -1, 954, 3430 -1, -1, -1, -1, -1, -1, 767, 1261, 1262, -1, 3431 -1, -1, 967, 968, -1, -1, -1, -1, 36, 974, 3432 38, -1, -1, -1, -1, 980, -1, -1, 983, -1, 3433 985, -1, -1, -1, -1, -1, -1, 798, -1, -1, 3434 -1, 59, -1, -1, -1, -1, -1, 65, -1, 1004, 3435 -1, 69, 813, -1, 72, 73, 74, 75, 76, 77, 3436 1015, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3438 -1, -1, 1037, 101, 1039, 103, -1, -1, 106, -1, 3439 -1, -1, 110, 111, 112, 113, 114, 115, -1, 1054, 3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441 -1, -1, -1, -1, -1, -1, -1, -1, 1073, -1, 3442 1374, -1, 0, -1, -1, 3, 4, 5, 6, 7, 3443 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3444 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3445 -1, 29, 30, 31, 32, -1, -1, 35, -1, 37, 3446 38, -1, 1117, -1, -1, -1, -1, -1, -1, -1, 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 3448 -1, 1136, 60, -1, 62, -1, 64, 65, -1, 67, 3449 68, 69, -1, -1, -1, 1449, 1151, 1152, 76, 77, 3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 3451 -1, 38, -1, -1, 1468, 1469, -1, -1, -1, -1, 3452 -1, -1, -1, 101, -1, 103, -1, -1, 989, -1, 3453 -1, -1, 59, 111, 1488, -1, -1, -1, 65, -1, 3454 1001, -1, 69, -1, -1, 72, 73, 74, 75, 76, 3455 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3456 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457 -1, -1, -1, 1228, 101, -1, 103, -1, -1, 106, 3458 -1, 1042, -1, 110, 111, 112, 113, 114, 115, -1, 3459 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3460 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3461 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3462 32, -1, -1, 35, 36, 37, 38, 39, -1, 41, 3463 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 3464 -1, 53, -1, -1, 56, 57, -1, 59, 60, 1110, 3465 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3466 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3467 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3469 -1, 103, 1153, -1, 106, -1, -1, -1, 110, 111, 3470 112, 113, 114, 115, -1, -1, 1167, 1168, -1, -1, 3471 1365, -1, 124, -1, 3, 4, 5, 6, 7, 8, 3475 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3476 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, 3477 -1, -1, -1, 124, 3, 4, 5, 6, 7, 8, 3472 3478 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3473 3479 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, … … 3475 3481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3476 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3477 59, 60, -1, 62, -1, 64, 65, 1432, 67, 68, 3483 59, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3484 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3485 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3486 -1, -1, -1, -1, -1, -1, -1, -1, 1381, -1, 3487 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3488 -1, 110, 111, 112, 113, 114, 115, 4, 5, 6, 3489 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3490 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3491 -1, -1, 29, 30, 31, -1, -1, -1, -1, 36, 3492 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3494 1453, -1, 59, 60, -1, 62, -1, 64, 65, -1, 3495 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, 3496 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3497 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3498 -1, -1, -1, -1, 101, 1498, 103, -1, -1, -1, 3499 -1, 108, -1, 110, 111, 112, 113, 114, 115, 4, 3500 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3501 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3502 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3503 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1, 3504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3505 -1, -1, -1, -1, 59, 60, -1, 62, -1, 64, 3506 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3507 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3508 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3509 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3510 -1, -1, -1, 108, -1, 110, 111, 112, 113, 114, 3511 115, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3512 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3513 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3514 -1, -1, -1, 36, 37, 38, -1, -1, -1, -1, 3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3516 -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 3517 -1, 64, 65, -1, 67, 68, 69, -1, -1, 72, 3518 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3519 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3521 103, -1, -1, -1, -1, 108, -1, 110, 111, 112, 3522 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 3523 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3524 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3525 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3527 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3528 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3529 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3530 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3532 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3533 111, 112, 113, 114, 115, 4, 5, 6, 7, 8, 3534 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3535 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3536 29, 30, 31, -1, -1, -1, -1, 36, 37, 38, 3537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3539 59, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3478 3540 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3479 3541 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3480 3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 3543 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3482 1475, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3483 -1, -1, -1, -1, -1, 124, 3, 4, 5, 6, 3544 -1, 110, 111, 112, 113, 114, 115, 4, 5, 6, 3484 3545 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3485 3546 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3486 -1, -1, 29, 30, 31, 32, -1, -1, 35, 36,3487 37, 38, 10, 11, 12, 13, 14, 15, 16, 17,3488 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,3489 -1, -1, 59, 60, -1, 62, -1, 64, 65, 37,3547 -1, -1, 29, 30, 31, -1, -1, -1, -1, 36, 3548 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3550 -1, -1, 59, 60, -1, 62, -1, 64, 65, -1, 3490 3551 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, 3491 77, -1, 79, 80, -1, -1, -1, 1378, -1, -1, 3492 87, -1, 60, -1, -1, -1, -1, -1, -1, -1, 3493 -1, -1, -1, 71, 101, -1, 103, -1, -1, -1, 3494 -1, -1, -1, 110, 111, 112, 113, 114, 115, -1, 3495 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11, 3552 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3553 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3554 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3555 -1, -1, -1, 110, 111, 112, 113, 114, 115, 4, 3556 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3557 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3558 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3559 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 -1, -1, -1, -1, 59, 60, -1, 62, -1, 64, 3562 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3563 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3564 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3565 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3566 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3567 115, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3496 3568 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3497 22, 23, 24, 25, 26, 1436, 1437, 29, 30, 31, 3498 -1, -1, -1, -1, 36, 37, 38, 10, 11, 12, 3569 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3570 32, -1, -1, 35, -1, 37, 38, -1, -1, -1, 3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3572 -1, -1, -1, -1, -1, 57, -1, -1, 60, -1, 3573 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3574 -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3576 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3577 -1, 103, -1, -1, -1, 107, -1, -1, -1, 111, 3578 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3499 3579 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3500 23, 24, 25, 26, 27, -1, -1, 59, 60, -1, 3501 62, -1, 64, 65, 37, 67, 68, 69, -1, -1, 3502 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3503 -1, -1, -1, -1, -1, 87, -1, 60, -1, -1, 3504 -1, -1, -1, -1, -1, -1, -1, -1, 71, 101, 3505 -1, 103, -1, -1, -1, -1, 108, -1, 110, 111, 3506 112, 113, 114, 115, 4, 5, 6, 7, 8, 9, 3507 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3508 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3509 30, 31, -1, -1, -1, -1, 36, 37, 38, 10, 3510 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3511 21, 22, 23, 24, 25, 26, -1, -1, -1, 59, 3512 60, -1, 62, -1, 64, 65, 37, 67, 68, 69, 3513 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3514 80, -1, -1, -1, -1, -1, -1, 87, -1, 60, 3580 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 3581 -1, -1, 35, -1, 37, -1, -1, -1, -1, -1, 3515 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3516 -1, 101, -1, 103, -1, -1, -1, -1, 108, -1, 3517 110, 111, 112, 113, 114, 115, 4, 5, 6, 7, 3518 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3519 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3520 -1, 29, 30, 31, -1, -1, -1, -1, 36, 37, 3521 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3523 -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, 3524 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3525 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3527 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, 3528 -1, -1, 110, 111, 112, 113, 114, 115, 4, 5, 3529 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3530 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3531 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3532 36, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3534 -1, -1, -1, 59, 60, -1, 62, -1, 64, 65, 3535 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75, 3536 76, 77, -1, 79, 80, -1, -1, -1, -1, -1, 3537 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3539 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3583 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 3584 -1, 64, -1, -1, 67, 68, -1, -1, 71, 3, 3540 3585 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3541 3586 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3542 24, 25, 26, -1, -1, 29, 30, 31, -1, -1,3543 -1, -1, 36, 37, 38, -1, -1, -1, -1, -1,3587 24, 25, 26, -1, -1, 29, 30, 31, 32, -1, 3588 103, 35, -1, 37, -1, -1, -1, -1, 111, -1, 3544 3589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, -1, -1, 59, 60, -1, 62, -1, 3546 64, 65, -1, 67, 68, 69, -1, -1, 72, 73, 3547 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3548 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3550 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 3551 114, 115, 4, 5, 6, 7, 8, 9, 10, 11, 3552 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3553 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3554 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3556 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3557 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3558 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3559 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3561 -1, 103, -1, -1, -1, -1, -1, -1, 110, 111, 3562 112, 113, 114, 115, 3, 4, 5, 6, 7, 8, 3590 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 3591 64, -1, -1, 67, 68, 4, 5, 6, 7, 8, 3563 3592 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3564 3593 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3565 29, 30, 31, 32, -1, -1, 35, -1, 37, 38, 3594 29, 30, 31, -1, -1, -1, -1, -1, 37, 103, 3595 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3566 3596 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3567 -1, -1, -1, -1, -1, -1, -1, -1, 57, -1,3568 3597 -1, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3569 3598 69, -1, -1, -1, -1, -1, -1, 76, 77, -1, 3570 3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3571 3600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3572 -1, -1, 101, -1, 103, -1, -1, -1, 107, -1, 3573 -1, -1, 111, 3, 4, 5, 6, 7, 8, 9, 3574 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3575 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3576 30, 31, 32, -1, -1, 35, -1, 37, 38, -1, 3577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, 3579 60, -1, 62, -1, 64, 65, -1, 67, 68, 69, 3580 -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, 3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3583 -1, 101, -1, 103, -1, -1, -1, -1, -1, -1, 3584 -1, 111, 3, 4, 5, 6, 7, 8, 9, 10, 3601 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3602 -1, -1, 111, 4, 5, 6, 7, 8, 9, 10, 3585 3603 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3586 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,3587 31, 32, -1, -1, 35, -1, 37, -1, -1, -1,3604 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3605 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 3588 3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3589 3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3590 3608 -1, 62, -1, 64, -1, -1, 67, 68, -1, -1, 3591 71, 3, 4, 5, 6, 7, 8, 9, 10, 11,3592 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,3593 22, 23, 24, 25, 26, -1, -1, 29, 30, 31,3594 -1, -1, 103, -1, -1, 37, -1, -1, -1, -1,3595 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,3596 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,3597 62, -1, 64, -1, -1, 67, 68, 4, 5, 6,3598 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,3599 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,3600 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1,3601 37, 103, -1, -1, -1, -1, -1, -1, -1, 111,3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3603 -1, -1, -1, 60, -1, 62, -1, 64, 65, -1,3604 67, 68, 69, -1, -1, -1, -1, -1, -1, 76,3605 77, -1, -1, -1, -1, -1, -1, -1, -1, -1,3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3607 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1,3608 -1, -1, -1, -1, 111, 4, 5, 6, 7, 8,3609 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,3610 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,3611 29, 30, 31, -1, -1, -1, -1, -1, 37, -1,3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3614 -1, 60, -1, 62, -1, 64, -1, -1, 67, 68,3615 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,3616 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,3617 22, 23, 24, 25, 26, -1, -1, 29, 30, 31,3618 -1, -1, -1, 102, 103, 37, -1, -1, -1, -1,3619 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,3620 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,3621 62, -1, 64, -1, -1, 67, 68, -1, -1, -1,3622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3623 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3625 -1, 103, -1, -1, -1, -1, -1, -1, -1, 111,3626 3609 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3627 3610 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3628 3611 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3629 -1, -1, -1, 37, 10, 11, 12, 13, 14, 15,3630 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,3631 26, -1, -1, 29, 30, 31, 60, -1, 62, -1,3632 64, 37, -1, 67, 68, -1, -1, -1, -1, -1,3612 -1, 102, 103, 37, -1, -1, -1, -1, -1, -1, 3613 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3614 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 3615 64, -1, -1, 67, 68, -1, -1, -1, -1, -1, 3633 3616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3634 -1, -1, -1, -1, 60, 89, -1, -1, -1, 65,3635 -1, 67, 68, -1, -1, -1, -1, -1, -1, 103,3617 -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, 3618 -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 3636 3619 -1, -1, -1, -1, -1, -1, -1, 111, 4, 5, 3637 3620 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3638 3621 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3639 3622 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3640 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3623 -1, 37, 10, 11, 12, 13, 14, 15, 16, 17, 3624 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3625 -1, 29, 30, 31, 60, -1, 62, -1, 64, 37, 3626 -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, 3641 3627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 3643 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, 3628 -1, -1, 60, 89, -1, -1, -1, 65, -1, 67, 3629 68, -1, -1, -1, -1, -1, -1, 103, -1, -1, 3630 -1, -1, -1, -1, -1, 111, 4, 5, 6, 7, 3631 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3632 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3633 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3636 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 3637 68, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3638 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3639 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3640 -1, -1, -1, -1, 37, 103, -1, -1, -1, -1, 3641 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3642 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 3643 -1, 64, -1, -1, 67, 68, 4, 5, 6, 7, 3644 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3645 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3646 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 3647 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, 3648 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3649 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 3650 68, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3651 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3652 29, 30, 31, -1, -1, -1, -1, 36, 37, 38, 3653 -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 3654 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3655 59, 60, -1, -1, -1, -1, 65, -1, 67, 68, 3656 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3657 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 -1, -1, 101, -1, 103, -1, -1, 106, -1, -1, 3660 -1, 110, 111, 112, 113, 114, 115, 10, 11, 12, 3661 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3662 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3663 -1, -1, -1, 36, 37, 38, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, -1, 59, 60, -1, -1, 3666 -1, -1, 65, -1, 67, 68, 69, -1, -1, 72, 3667 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3668 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3669 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3670 103, 104, -1, -1, -1, -1, -1, 110, 111, 112, 3671 113, 114, 115, 10, 11, 12, 13, 14, 15, 16, 3672 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3673 -1, -1, 29, 30, 31, -1, -1, -1, -1, 36, 3674 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676 -1, -1, 59, 60, -1, -1, -1, -1, 65, -1, 3677 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, 3678 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3679 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, 101, 102, 103, -1, -1, -1, 3681 -1, -1, -1, 110, 111, 112, 113, 114, 115, 10, 3644 3682 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3645 3683 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3646 31, -1, -1, -1, -1, -1, 37, 103, -1, -1, 3647 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3648 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3649 -1, 62, -1, 64, -1, -1, 67, 68, 4, 5, 3650 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3651 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3652 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3653 -1, 37, 103, -1, -1, -1, -1, -1, -1, -1, 3654 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 3656 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, 3657 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3658 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3659 31, -1, -1, -1, -1, -1, 37, 103, -1, -1, 3660 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3662 -1, 62, -1, 64, -1, -1, 67, 68, 10, 11, 3663 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3664 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3665 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3666 -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, 3667 111, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3668 -1, -1, -1, 65, -1, 67, 68, 69, -1, -1, 3669 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3670 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3671 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3672 -1, 103, 104, -1, -1, -1, -1, -1, 110, 111, 3673 112, 113, 114, 115, 10, 11, 12, 13, 14, 15, 3674 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3675 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3676 36, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3684 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3677 3685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3678 -1, -1, -1, 59, 60, -1, -1, -1, -1, 65, 3679 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75, 3680 76, 77, -1, 79, 80, -1, -1, -1, -1, -1, 3681 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3682 -1, -1, -1, -1, -1, 101, 102, 103, -1, -1, 3683 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3684 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3685 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3686 30, 31, -1, -1, -1, -1, 36, 37, 38, -1, 3686 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3687 -1, -1, -1, -1, 65, -1, 67, 68, 69, -1, 3688 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3689 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3687 3690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 3689 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, 3690 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3691 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3691 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3692 111, 112, 113, 114, 115, 10, 11, 12, 13, 14, 3693 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3694 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3695 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1, 3692 3696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, 101, -1, 103, -1, -1, -1, -1, -1, -1, 3694 110, 111, 112, 113, 114, 115, 10, 11, 12, 13, 3695 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3696 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3697 -1, -1, 36, 37, 38, -1, -1, -1, -1, -1, 3697 -1, -1, -1, -1, 59, 60, -1, -1, -1, -1, 3698 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3699 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3700 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3701 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3702 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3703 115, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3704 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3705 29, 30, 31, -1, -1, -1, -1, 36, 37, 38, 3698 3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, 59, 60, -1, -1, -1,3700 -1, 65, -1, 67, 68, 69, -1, -1, 72, 73,3701 74, 75, 76, 77, -1, 79, 80, -1, -1, -1,3702 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1,3703 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103,3704 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113,3705 114, 115, 10, 11, 12, 13, 14, 15, 16, 17,3706 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,3707 -1, 29, 30, 31, -1, -1, -1, -1, 36, 37,3708 38, -1, -1, -1, -1, -1, -1, -1, -1, -1,3709 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3710 -1, 59, 60, -1, -1, -1, -1, 65, -1, 67,3711 6 8, 69, -1, -1, 72, 73, 74, 75, 76, 77,3712 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87,3708 59, 60, -1, -1, -1, -1, 65, -1, 67, 68, 3709 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3710 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3713 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1,3715 -1, -1, 110, 111, 112, 113, 114, 115, 10, 11,3716 1 2, 13, 14, 15, 16, 17, 18, 19, 20, 21,3717 2 2, 23, 24, 25, 26, -1, -1, 29, 30, 31,3718 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1,3712 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3713 -1, 110, 111, 112, 113, 114, 115, 10, 11, 12, 3714 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3715 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3716 -1, -1, -1, 36, 37, 38, -1, -1, -1, -1, 3719 3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3720 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3721 -1, -1, -1, 65, -1, 67, 68, 69, -1, -1, 3722 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3723 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3724 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3725 -1, 103, -1, -1, -1, -1, -1, -1, 110, 111, 3726 112, 113, 114, 115, 3, 4, 5, 6, 7, 8, 3727 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3718 -1, -1, -1, -1, -1, -1, 59, 60, -1, -1, 3719 -1, -1, 65, -1, 67, 68, 69, -1, -1, 72, 3720 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3721 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3722 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3723 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3724 113, 114, 115, 10, 11, 12, 13, 14, 15, 16, 3725 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3726 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3727 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, 3730 67, 68, 69, -1, 71, -1, -1, -1, -1, 76, 3731 77, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3728 3732 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3729 29, 30, 31, -1, -1, -1, -1, -1, 37, 10, 3730 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3731 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, 3732 31, 60, -1, 62, -1, 64, 37, -1, 67, 68, 3733 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3734 18, 19, 20, 21, 22, 23, 24, 25, 26, 60, 3735 -1, 29, 30, 31, 65, -1, 67, 68, 69, 37, 3736 71, -1, -1, -1, -1, 76, 77, 106, -1, -1, 3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3738 -1, -1, 60, -1, -1, -1, -1, 65, -1, 67, 3739 68, 69, 103, -1, -1, -1, -1, -1, 76, 77, 3740 111, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3741 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3742 29, 30, 31, 101, -1, 103, -1, -1, 37, -1, 3743 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3733 29, 30, 31, -1, 101, -1, 103, -1, 37, -1, 3734 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3744 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3745 3736 -1, 60, -1, -1, -1, -1, 65, -1, 67, 68, … … 3767 3758 -1, 76, 77, 10, 11, 12, 13, 14, 15, 16, 3768 3759 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3769 27, -1, 29, 30, 31, -1, -1, -1, 103, -1,3760 -1, -1, 29, 30, 31, -1, 101, -1, 103, -1, 3770 3761 37, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3771 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, -1, 60, -1, -1, -1, -1, 65, -1, 3764 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3765 77, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3766 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3767 29, 30, 31, -1, -1, -1, 103, -1, 37, -1, 3768 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3770 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, 3771 -1, -1, 71, 10, 11, 12, 13, 14, 15, 16, 3772 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3773 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3774 37, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3775 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3772 3776 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 3773 3777 67, 68, -1, -1, 71, 10, 11, 12, 13, 14, 3774 3778 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3775 25, 26, 27, -1, 29, 30, 31, -1, -1, -1,3776 -1, -1, 37, -1, 101, -1, 103, -1, -1, -1,3779 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3780 -1, -1, 37, 38, 101, -1, 103, -1, -1, -1, 3777 3781 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3778 3782 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3779 -1, -1, 67, 68, -1, -1, 71, 10, 11, 12,3780 1 3, 14, 15, 16, 17, 18, 19, 20, 21, 22,3781 2 3, 24, 25, 26, -1, -1, 29, 30, 31, -1,3782 -1, -1, -1, -1, 37, 38, 101, -1, 103, -1,3783 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1,3784 -1, -1, -1, -1, -1, -1, -1, 60, -1, -1,3785 -1, -1, -1, -1, 67, 68, 10, 11, 12, 13,3786 1 4, 15, 16, 17, 18, 19, 20, 21, 22, 23,3787 2 4, 25, 26, -1, -1, 29, 30, 31, -1, -1,3788 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1,3789 103, -1, -1, -1, 107, -1, -1, -1, 111, -1,3790 -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,3791 -1, 65, -1, 67, 68, 10, 11, 12, 13, 14,3783 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15, 3784 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3785 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3786 -1, 37, 38, -1, -1, -1, -1, -1, 103, -1, 3787 -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, 3788 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 3789 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 3790 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3791 27, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3792 37, -1, -1, -1, -1, -1, -1, 103, -1, -1, 3793 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, 3794 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 3795 67, 68, -1, -1, 71, 10, 11, 12, 13, 14, 3792 3796 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3793 3797 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 3794 -1, -1, 37, 38, -1, -1, -1, -1, -1, 103,3795 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1,3798 -1, -1, 37, 38, -1, -1, 103, -1, -1, -1, 3799 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3796 3800 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3797 3801 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15, … … 3799 3803 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3800 3804 -1, 37, -1, -1, -1, -1, -1, -1, 103, -1, 3801 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1,3802 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1,3805 -1, -1, 107, -1, -1, -1, 111, -1, -1, -1, 3806 -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, 3803 3807 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 3804 3808 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3805 3809 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3806 37, -1, -1, -1, -1, 101, -1, 103, -1, -1,3810 37, 38, -1, -1, -1, -1, -1, 103, -1, -1, 3807 3811 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3808 3812 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, … … 3810 3814 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3811 3815 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 3812 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1,3816 -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, 3813 3817 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3814 3818 -1, -1, 60, -1, -1, -1, -1, -1, -1, 67, … … 3816 3820 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3817 3821 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 3818 -1, -1, -1, -1, -1, 103, -1, -1, -1, -1,3822 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, 3819 3823 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3820 3824 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, … … 3822 3826 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3823 3827 30, 31, -1, -1, -1, -1, -1, 37, -1, -1, 3824 -1, -1, -1, -1, 103, -1, -1, -1, -1, -1,3828 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3825 3829 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3826 3830 60, -1, -1, -1, -1, -1, -1, 67, 68, 10, … … 3872 3876 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3873 3877 -1, -1, 60, -1, -1, -1, -1, -1, -1, 67, 3874 68, 4, 5, 6, 7, 8, 9, 10, 11, 12,3875 1 3, 14, 15, 16, 17, 18, 19, 20, 21, 22,3876 2 3, 24, 25, 26, -1, -1, 29, 30, 31, -1,3877 -1, -1, -1, -1, 37, -1, -1, -1, -1, -1,3878 68, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3879 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3880 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 3881 -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, 3878 3882 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3879 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 3880 -1, 64, -1, -1, 67, 68, -1, 36, -1, 38, 3881 39, -1, 41, -1, -1, 44, 45, 46, 47, 48, 3882 49, 50, 51, 52, 53, -1, -1, 56, 57, -1, 3883 59, -1, -1, -1, -1, -1, 65, -1, -1, 102, 3883 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, 3884 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3885 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3886 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3887 -1, -1, -1, 37, 103, -1, -1, -1, -1, -1, 3888 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3889 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 3890 64, -1, -1, 67, 68, -1, 36, -1, 38, 39, 3891 -1, 41, -1, -1, 44, 45, 46, 47, 48, 49, 3892 50, 51, 52, 53, -1, -1, 56, 57, -1, 59, 3893 -1, -1, -1, -1, -1, 65, -1, -1, 102, 69, 3894 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3895 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3897 -1, 101, -1, 103, -1, -1, 106, -1, -1, -1, 3898 110, 111, 112, 113, 114, 115, -1, 36, -1, 38, 3899 39, -1, 41, -1, 124, 44, 45, 46, 47, 48, 3900 49, 50, 51, -1, 53, -1, -1, 56, 57, -1, 3901 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, 3884 3902 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3885 3903 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3886 3904 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 3905 -1, -1, 101, -1, 103, -1, -1, 106, -1, -1, 3888 -1, 110, 111, 112, 113, 114, 115, -1, 36, -1, 3889 38, 39, -1, 41, -1, 124, 44, 45, 46, 47, 3890 48, 49, 50, 51, -1, 53, -1, -1, 56, 57, 3891 -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, 3892 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3893 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3895 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 3896 -1, -1, 110, 111, 112, 113, 114, 115, -1, -1, 3897 -1, -1, -1, -1, -1, -1, 124, 4, 5, 6, 3898 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3899 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3900 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3901 37, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3902 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3903 29, 30, 31, 60, -1, 62, -1, 64, 37, -1, 3904 67, 68, -1, 36, -1, 38, 39, -1, 41, 42, 3905 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 3906 53, 60, 89, 56, 57, -1, 59, -1, 67, 68, 3907 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 3908 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3909 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3910 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3911 103, -1, -1, 106, -1, -1, -1, 110, 111, 112, 3912 113, 114, 115, 36, -1, 38, 39, -1, 41, 42, 3913 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, 3914 53, -1, -1, 56, 57, -1, 59, -1, -1, -1, 3915 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 3916 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3917 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3918 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3919 103, -1, -1, 106, -1, -1, -1, 110, 111, 112, 3920 113, 114, 115, 36, -1, 38, 39, -1, 41, -1, 3921 -1, 44, 45, 46, 47, 48, 49, 50, 51, -1, 3922 53, -1, -1, 56, 57, -1, 59, -1, -1, -1, 3906 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3907 -1, -1, -1, -1, -1, 124, 4, 5, 6, 7, 3908 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3909 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3910 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 3911 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3912 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3913 30, 31, 60, -1, 62, -1, 64, 37, -1, 67, 3914 68, -1, 36, -1, 38, 39, -1, 41, 42, 43, 3915 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3916 60, 89, 56, 57, -1, 59, -1, 67, 68, -1, 3917 -1, 65, -1, -1, -1, 69, -1, -1, 72, 73, 3918 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3919 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 3920 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3921 -1, -1, 106, -1, -1, -1, 110, 111, 112, 113, 3922 114, 115, 36, -1, 38, 39, -1, 41, 42, 43, 3923 44, 45, 46, 47, 48, 49, 50, 51, -1, 53, 3924 -1, -1, 56, 57, -1, 59, -1, -1, -1, -1, 3925 -1, 65, -1, -1, -1, 69, -1, -1, 72, 73, 3926 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3927 -1, -1, -1, 87, -1, -1, -1, -1, -1, 36, 3928 -1, 38, -1, -1, -1, -1, -1, 101, -1, 103, 3929 -1, -1, 106, -1, -1, -1, 110, 111, 112, 113, 3930 114, 115, 59, -1, -1, -1, -1, -1, 65, -1, 3931 -1, -1, 69, -1, -1, 72, 73, 74, 75, 76, 3932 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3933 87, -1, -1, -1, -1, -1, 36, -1, 38, -1, 3934 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3935 -1, -1, 109, 110, 111, 112, 113, 114, 115, 59, 3936 -1, -1, -1, -1, -1, 65, -1, -1, -1, 69, 3937 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3938 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3939 -1, -1, -1, 36, -1, 38, -1, -1, -1, -1, 3940 -1, 101, -1, 103, -1, -1, 106, -1, -1, -1, 3941 110, 111, 112, 113, 114, 115, 59, -1, -1, -1, 3923 3942 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 3924 3943 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3925 3944 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3926 3945 36, -1, 38, -1, -1, -1, -1, -1, 101, -1, 3927 103, -1, -1, 106, -1, -1, -1, 110, 111, 112,3946 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3928 3947 113, 114, 115, 59, -1, -1, -1, -1, -1, 65, 3929 3948 -1, -1, -1, 69, -1, -1, 72, 73, 74, 75, … … 3931 3950 -1, 87, -1, -1, -1, -1, -1, 36, -1, 38, 3932 3951 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3933 -1, -1, 108, -1, 110, 111, 112, 113, 114, 115,3952 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3934 3953 59, -1, -1, -1, -1, -1, 65, -1, -1, -1, 3935 3954 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, … … 3947 3966 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3948 3967 -1, -1, 87, -1, -1, -1, -1, -1, 36, -1, 3949 38, -1, -1, -1, -1, -1, 101, -1, 103, -1,3968 38, -1, -1, -1, -1, -1, 101, -1, -1, -1, 3950 3969 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3951 3970 115, 59, -1, -1, -1, -1, -1, 65, -1, -1, … … 3953 3972 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3954 3973 -1, -1, -1, -1, -1, 36, -1, 38, -1, -1, 3955 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1,3974 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 3956 3975 -1, -1, 110, 111, 112, 113, 114, 115, 59, -1, 3957 3976 -1, -1, -1, -1, 65, -1, -1, -1, 69, -1, … … 3963 3982 -1, 65, -1, -1, -1, 69, -1, -1, 72, 73, 3964 3983 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3965 -1, -1, -1, 87, -1, -1, -1, -1, -1, 36,3966 -1, 38, -1, -1, -1, -1, -1, 101, -1, -1,3984 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 3985 -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, 3967 3986 -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, 3968 114, 115, 59, -1, -1, -1, -1, -1, 65, -1, 3969 -1, -1, 69, -1, -1, 72, 73, 74, 75, 76, 3970 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3971 87, -1, -1, -1, -1, -1, 36, -1, 38, -1, 3972 -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, 3973 -1, -1, -1, 110, 111, 112, 113, 114, 115, 59, 3974 -1, -1, -1, -1, -1, 65, -1, -1, -1, 69, 3975 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3976 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3987 114, 115, 4, 5, 6, 7, 8, 9, 10, 11, 3988 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3989 22, 23, 24, 25, 26, -1, -1, -1, -1, -1, 3990 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, 3977 3991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3978 -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 3979 110, 111, 112, 113, 114, 115, 4, 5, 6, 7, 3980 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3981 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3982 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3983 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3984 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3985 -1, -1, 60, -1, 62, -1, 64, 65, -1, 67, 3986 68, 69, -1, -1, -1, -1, -1, -1, 76, 77, 3987 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3988 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3989 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3990 -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 3991 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3992 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 3993 -1, 64, -1, -1, 67, 68, 3, 4, 5, 6, 3992 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 3993 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3994 -1, -1, -1, -1, 76, 77, 3, 4, 5, 6, 3994 3995 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3995 3996 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, … … 3998 3999 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3999 4000 -1, -1, -1, 60, -1, 62, -1, 64, -1, -1, 4000 67, 68, 4, 5, 6, 7, 8, 9, 10, 11,4001 1 2, 13, 14, 15, 16, 17, 18, 19, 20, 21,4002 2 2, 23, 24, 25, 26, -1, -1, 29, 30, 31,4003 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,4001 67, 68, 3, 4, 5, 6, 7, 8, 9, 10, 4002 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4003 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 4004 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4004 4005 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4005 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 4006 62, -1, 64, -1, -1, 67, 68, 10, 11, 12, 4007 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4008 23, 24, 25, 26, -1, -1, 29, 30, 31, 32, 4009 33, 34, -1, -1, 37, 10, 11, 12, 13, 14, 4010 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4011 25, 26, -1, -1, 29, 30, 31, 60, -1, -1, 4012 -1, -1, 37, -1, 67, 68, -1, -1, -1, -1, 4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 4007 -1, 62, -1, 64, -1, -1, 67, 68, 4, 5, 4008 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4009 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4010 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4011 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 4013 4012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4014 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 4015 -1, -1, 67, 68 4013 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 4014 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 4015 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4016 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, 4017 37, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4018 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 4019 29, 30, 31, 60, -1, -1, -1, -1, 37, -1, 4020 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, 4021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4022 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68 4016 4023 }; 4017 4024 … … 4024 4031 22, 23, 24, 25, 26, 29, 30, 31, 32, 35, 4025 4032 37, 38, 57, 60, 62, 64, 65, 67, 68, 69, 4026 76, 77, 101, 103, 111, 129, 132, 189, 201, 202, 4027 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 4028 213, 214, 215, 216, 217, 218, 220, 221, 222, 223, 4029 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 4030 235, 243, 244, 270, 271, 272, 280, 283, 289, 290, 4031 292, 294, 295, 301, 306, 310, 311, 312, 313, 314, 4032 315, 316, 317, 337, 354, 355, 356, 357, 65, 111, 4033 131, 204, 206, 214, 216, 226, 230, 232, 271, 75, 4034 101, 299, 300, 301, 299, 299, 65, 67, 68, 69, 4035 130, 131, 260, 261, 281, 282, 67, 68, 261, 101, 4036 292, 215, 216, 101, 111, 306, 311, 312, 313, 315, 4037 316, 317, 104, 126, 103, 207, 214, 216, 310, 314, 4038 353, 354, 357, 358, 127, 123, 264, 106, 127, 164, 4039 67, 68, 129, 259, 127, 127, 127, 108, 127, 67, 4040 68, 101, 111, 296, 305, 306, 307, 308, 309, 310, 4041 314, 318, 319, 320, 321, 322, 328, 3, 27, 71, 4042 228, 3, 5, 67, 103, 111, 206, 217, 221, 224, 4043 233, 272, 310, 314, 357, 204, 206, 216, 226, 230, 4044 232, 271, 310, 314, 32, 222, 222, 217, 224, 127, 4045 222, 217, 222, 217, 68, 101, 106, 261, 272, 106, 4046 261, 222, 217, 108, 127, 127, 0, 126, 101, 164, 4047 299, 299, 126, 103, 214, 216, 355, 259, 259, 216, 4048 123, 101, 111, 296, 306, 310, 103, 111, 357, 293, 4049 219, 301, 101, 277, 101, 101, 101, 36, 38, 59, 4050 65, 69, 72, 73, 74, 75, 79, 80, 87, 101, 4051 103, 110, 111, 112, 113, 114, 115, 128, 132, 133, 4052 134, 135, 140, 141, 142, 143, 144, 145, 146, 147, 4053 148, 149, 150, 151, 152, 153, 155, 157, 214, 263, 4054 279, 353, 358, 216, 102, 102, 102, 102, 102, 102, 4055 102, 67, 68, 103, 214, 259, 337, 355, 103, 111, 4056 155, 206, 207, 213, 216, 220, 221, 226, 229, 230, 4057 232, 249, 250, 254, 255, 256, 257, 271, 337, 349, 4058 350, 351, 352, 357, 358, 104, 101, 310, 314, 357, 4059 101, 108, 124, 103, 106, 111, 155, 265, 107, 126, 4060 108, 124, 101, 108, 124, 108, 124, 108, 124, 299, 4061 124, 306, 307, 308, 309, 319, 320, 321, 322, 216, 4062 305, 318, 57, 298, 103, 299, 336, 337, 299, 299, 4063 164, 126, 101, 299, 336, 299, 299, 216, 296, 101, 4064 101, 215, 214, 216, 104, 126, 214, 353, 358, 164, 4065 126, 259, 264, 206, 221, 310, 314, 164, 126, 281, 4066 216, 226, 124, 216, 216, 279, 38, 103, 214, 236, 4067 237, 238, 239, 353, 357, 106, 245, 261, 106, 216, 4068 281, 124, 124, 292, 126, 131, 258, 3, 127, 196, 4069 197, 211, 213, 216, 126, 298, 101, 298, 155, 306, 4070 216, 101, 126, 259, 106, 32, 33, 34, 214, 273, 4071 274, 276, 126, 121, 123, 278, 126, 217, 223, 224, 4072 259, 302, 303, 304, 140, 153, 154, 101, 140, 142, 4073 101, 140, 101, 101, 140, 140, 131, 103, 155, 160, 4074 164, 214, 262, 353, 104, 126, 142, 142, 75, 78, 4075 79, 80, 101, 103, 105, 90, 91, 92, 93, 94, 4076 95, 96, 97, 98, 99, 123, 159, 142, 111, 116, 4077 117, 113, 114, 81, 82, 83, 84, 118, 119, 85, 4078 86, 112, 120, 121, 87, 88, 122, 123, 360, 101, 4079 111, 332, 333, 334, 335, 336, 102, 108, 101, 336, 4080 337, 101, 336, 337, 126, 101, 214, 355, 104, 126, 4081 103, 111, 127, 214, 216, 348, 349, 357, 358, 127, 4082 101, 103, 111, 306, 323, 324, 325, 326, 327, 328, 4083 329, 330, 331, 337, 338, 339, 340, 341, 342, 343, 4084 111, 357, 216, 127, 127, 111, 214, 216, 350, 259, 4085 214, 337, 350, 259, 101, 126, 126, 126, 104, 126, 4086 65, 103, 105, 261, 265, 266, 267, 268, 269, 126, 4087 126, 126, 126, 126, 126, 296, 102, 102, 102, 102, 4088 102, 102, 102, 305, 318, 101, 264, 104, 196, 126, 4089 296, 160, 263, 160, 263, 296, 103, 196, 298, 164, 4090 126, 196, 102, 238, 239, 104, 126, 101, 109, 111, 4091 240, 242, 305, 306, 318, 336, 344, 345, 346, 347, 4092 107, 237, 108, 124, 108, 124, 261, 236, 108, 359, 4093 123, 246, 245, 216, 251, 252, 253, 256, 257, 102, 4094 108, 164, 126, 111, 155, 126, 213, 216, 250, 349, 4095 357, 290, 291, 101, 111, 323, 102, 108, 360, 261, 4096 273, 101, 106, 261, 263, 273, 102, 108, 101, 102, 4097 109, 262, 262, 103, 131, 137, 155, 263, 262, 104, 4098 126, 102, 108, 102, 101, 111, 344, 102, 108, 155, 4099 103, 131, 103, 136, 137, 126, 103, 131, 155, 155, 4100 142, 142, 142, 143, 143, 144, 144, 145, 145, 145, 4101 145, 146, 146, 147, 148, 149, 150, 151, 109, 160, 4102 155, 126, 333, 334, 335, 216, 332, 299, 299, 155, 4103 263, 126, 258, 111, 126, 214, 337, 350, 216, 220, 4104 104, 126, 104, 357, 104, 101, 126, 306, 324, 325, 4105 326, 329, 339, 340, 341, 104, 126, 216, 323, 327, 4106 338, 101, 299, 342, 360, 299, 299, 360, 101, 299, 4107 342, 299, 299, 299, 299, 337, 214, 348, 358, 259, 4108 104, 108, 104, 108, 360, 214, 350, 360, 247, 248, 4109 249, 250, 247, 247, 259, 155, 126, 103, 261, 109, 4110 108, 359, 265, 103, 109, 269, 28, 198, 199, 259, 4111 247, 131, 296, 131, 298, 101, 336, 337, 101, 336, 4112 337, 133, 337, 164, 251, 102, 102, 102, 102, 104, 4113 164, 196, 164, 106, 124, 124, 103, 306, 345, 346, 4114 347, 154, 216, 344, 241, 242, 241, 299, 299, 261, 4115 299, 107, 261, 107, 154, 359, 127, 127, 131, 211, 4116 127, 127, 247, 101, 111, 357, 127, 107, 216, 274, 4117 275, 127, 126, 126, 101, 127, 102, 303, 160, 161, 4118 124, 75, 190, 191, 192, 102, 102, 126, 109, 102, 4119 102, 102, 155, 216, 106, 142, 157, 155, 156, 158, 4120 108, 127, 126, 126, 102, 108, 155, 126, 153, 109, 4121 251, 102, 102, 102, 332, 251, 102, 247, 214, 350, 4122 103, 111, 155, 155, 216, 329, 251, 102, 102, 102, 4123 102, 102, 102, 102, 7, 216, 323, 327, 338, 126, 4124 126, 360, 126, 126, 102, 127, 127, 127, 127, 264, 4125 127, 153, 154, 155, 297, 126, 265, 267, 107, 126, 4126 200, 261, 38, 39, 41, 44, 45, 46, 47, 48, 4127 49, 50, 51, 53, 56, 103, 131, 161, 162, 163, 4128 164, 165, 166, 168, 169, 181, 183, 184, 189, 201, 4129 295, 28, 127, 123, 264, 126, 126, 102, 127, 164, 4130 236, 104, 102, 102, 102, 344, 240, 246, 107, 102, 4131 108, 104, 104, 127, 216, 108, 360, 277, 102, 273, 4132 204, 206, 214, 285, 286, 287, 288, 279, 102, 102, 4133 101, 102, 109, 108, 155, 155, 266, 108, 127, 158, 4033 76, 77, 101, 103, 111, 129, 132, 189, 203, 204, 4034 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 4035 215, 216, 217, 218, 219, 220, 222, 223, 224, 225, 4036 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 4037 237, 245, 246, 272, 273, 274, 282, 285, 291, 292, 4038 294, 296, 297, 303, 308, 312, 313, 314, 315, 316, 4039 317, 318, 319, 339, 356, 357, 358, 359, 65, 111, 4040 131, 206, 208, 216, 218, 228, 232, 234, 273, 75, 4041 101, 301, 302, 303, 301, 301, 65, 67, 68, 69, 4042 130, 131, 262, 263, 283, 284, 67, 68, 263, 101, 4043 294, 11, 190, 101, 111, 308, 313, 314, 315, 317, 4044 318, 319, 104, 126, 103, 209, 216, 218, 312, 316, 4045 355, 356, 359, 360, 127, 123, 266, 106, 127, 164, 4046 67, 68, 129, 261, 127, 127, 127, 108, 127, 67, 4047 68, 101, 111, 298, 307, 308, 309, 310, 311, 312, 4048 316, 320, 321, 322, 323, 324, 330, 3, 27, 71, 4049 230, 3, 5, 67, 103, 111, 208, 219, 223, 226, 4050 235, 274, 312, 316, 359, 206, 208, 218, 228, 232, 4051 234, 273, 312, 316, 32, 224, 224, 219, 226, 127, 4052 224, 219, 224, 219, 68, 101, 106, 263, 274, 106, 4053 263, 224, 219, 108, 127, 127, 0, 126, 101, 164, 4054 301, 301, 126, 103, 216, 218, 357, 261, 261, 218, 4055 123, 101, 111, 298, 308, 312, 103, 111, 359, 295, 4056 221, 303, 101, 279, 101, 101, 49, 101, 36, 38, 4057 59, 65, 69, 72, 73, 74, 75, 79, 80, 87, 4058 101, 103, 110, 111, 112, 113, 114, 115, 128, 132, 4059 133, 134, 135, 140, 141, 142, 143, 144, 145, 146, 4060 147, 148, 149, 150, 151, 152, 153, 155, 157, 216, 4061 265, 281, 355, 360, 218, 102, 102, 102, 102, 102, 4062 102, 102, 67, 68, 103, 216, 261, 339, 357, 103, 4063 111, 155, 208, 209, 215, 218, 222, 223, 228, 231, 4064 232, 234, 251, 252, 256, 257, 258, 259, 273, 339, 4065 351, 352, 353, 354, 359, 360, 104, 101, 312, 316, 4066 359, 101, 108, 124, 103, 106, 111, 155, 267, 107, 4067 126, 108, 124, 101, 108, 124, 108, 124, 108, 124, 4068 301, 124, 308, 309, 310, 311, 321, 322, 323, 324, 4069 218, 307, 320, 57, 300, 103, 301, 338, 339, 301, 4070 301, 164, 126, 101, 301, 338, 301, 301, 218, 298, 4071 101, 101, 217, 218, 216, 218, 104, 126, 216, 355, 4072 360, 164, 126, 261, 266, 208, 223, 312, 316, 164, 4073 126, 283, 218, 228, 124, 218, 218, 281, 38, 103, 4074 216, 238, 239, 240, 241, 355, 359, 106, 247, 263, 4075 106, 218, 283, 124, 124, 294, 126, 131, 260, 3, 4076 127, 198, 199, 213, 215, 218, 126, 300, 101, 300, 4077 155, 308, 218, 101, 126, 261, 106, 32, 33, 34, 4078 216, 275, 276, 278, 126, 121, 123, 280, 126, 219, 4079 225, 226, 261, 304, 305, 306, 101, 133, 101, 140, 4080 140, 142, 101, 140, 101, 101, 140, 140, 131, 103, 4081 155, 160, 164, 216, 264, 355, 104, 126, 142, 142, 4082 75, 78, 79, 80, 101, 103, 105, 90, 91, 92, 4083 93, 94, 95, 96, 97, 98, 99, 123, 159, 142, 4084 111, 116, 117, 113, 114, 81, 82, 83, 84, 118, 4085 119, 85, 86, 112, 120, 121, 87, 88, 122, 123, 4086 362, 101, 111, 334, 335, 336, 337, 338, 102, 108, 4087 101, 338, 339, 101, 338, 339, 126, 101, 216, 357, 4088 104, 126, 103, 111, 127, 216, 218, 350, 351, 359, 4089 360, 127, 101, 103, 111, 308, 325, 326, 327, 328, 4090 329, 330, 331, 332, 333, 339, 340, 341, 342, 343, 4091 344, 345, 111, 359, 218, 127, 127, 111, 216, 218, 4092 352, 261, 216, 339, 352, 261, 101, 126, 126, 126, 4093 104, 126, 65, 73, 103, 105, 263, 267, 268, 269, 4094 270, 271, 126, 126, 126, 126, 126, 126, 298, 102, 4095 102, 102, 102, 102, 102, 102, 307, 320, 101, 266, 4096 104, 198, 126, 298, 160, 265, 160, 265, 298, 103, 4097 198, 300, 164, 126, 198, 102, 240, 241, 104, 126, 4098 101, 109, 111, 242, 244, 307, 308, 320, 338, 346, 4099 347, 348, 349, 107, 239, 108, 124, 108, 124, 263, 4100 238, 108, 361, 123, 248, 247, 218, 253, 254, 255, 4101 258, 259, 102, 108, 164, 126, 111, 155, 126, 215, 4102 218, 252, 351, 359, 292, 293, 101, 111, 325, 102, 4103 108, 362, 263, 275, 101, 106, 263, 265, 275, 102, 4104 108, 101, 133, 102, 109, 264, 264, 103, 131, 137, 4105 155, 265, 264, 104, 126, 102, 108, 102, 101, 111, 4106 346, 102, 108, 155, 103, 131, 103, 136, 137, 126, 4107 103, 131, 155, 155, 142, 142, 142, 143, 143, 144, 4108 144, 145, 145, 145, 145, 146, 146, 147, 148, 149, 4109 150, 151, 109, 160, 155, 126, 335, 336, 337, 218, 4110 334, 301, 301, 155, 265, 126, 260, 111, 126, 216, 4111 339, 352, 218, 222, 104, 126, 104, 359, 104, 101, 4112 126, 308, 326, 327, 328, 331, 341, 342, 343, 104, 4113 126, 218, 325, 329, 340, 101, 301, 344, 362, 301, 4114 301, 362, 101, 301, 344, 301, 301, 301, 301, 339, 4115 216, 350, 360, 261, 104, 108, 104, 108, 362, 216, 4116 352, 362, 249, 250, 251, 252, 249, 249, 261, 155, 4117 126, 103, 263, 109, 108, 361, 267, 73, 103, 109, 4118 271, 28, 200, 201, 261, 249, 131, 298, 131, 300, 4119 101, 338, 339, 101, 338, 339, 133, 339, 164, 253, 4120 102, 102, 102, 102, 104, 164, 198, 164, 106, 124, 4121 124, 103, 308, 347, 348, 349, 153, 154, 218, 346, 4122 243, 244, 243, 301, 301, 263, 301, 107, 263, 107, 4123 154, 361, 127, 127, 131, 213, 127, 127, 249, 101, 4124 111, 359, 127, 107, 218, 276, 277, 127, 126, 126, 4125 101, 127, 102, 305, 160, 161, 109, 124, 103, 133, 4126 191, 192, 193, 102, 102, 126, 109, 102, 102, 102, 4127 155, 218, 106, 142, 157, 155, 156, 158, 108, 127, 4128 126, 126, 102, 108, 155, 126, 153, 109, 253, 102, 4129 102, 102, 334, 253, 102, 249, 216, 352, 103, 111, 4130 155, 155, 218, 331, 253, 102, 102, 102, 102, 102, 4131 102, 102, 7, 218, 325, 329, 340, 126, 126, 362, 4132 126, 126, 102, 127, 127, 127, 127, 266, 127, 153, 4133 154, 155, 299, 126, 267, 269, 107, 126, 202, 263, 4134 38, 39, 41, 44, 45, 46, 47, 48, 49, 50, 4135 51, 53, 56, 103, 131, 161, 162, 163, 164, 165, 4136 166, 168, 169, 181, 183, 184, 189, 203, 297, 28, 4137 127, 123, 266, 126, 126, 102, 127, 164, 238, 104, 4138 102, 102, 102, 346, 242, 248, 107, 102, 108, 104, 4139 104, 127, 218, 108, 362, 279, 102, 275, 206, 208, 4140 216, 287, 288, 289, 290, 281, 102, 102, 109, 154, 4141 101, 102, 109, 108, 155, 155, 268, 108, 127, 158, 4134 4142 104, 131, 138, 139, 155, 137, 127, 138, 153, 157, 4135 127, 101, 33 6, 337, 127, 127, 126, 127, 127, 127,4136 155, 102, 127, 101, 33 6, 337, 101, 342, 101, 342,4137 33 7, 215, 7, 111, 127, 155, 251, 251, 250, 254,4138 25 4, 255, 108, 108, 102, 102, 104, 89, 115, 127,4139 127, 138, 26 5, 155, 108, 124, 201, 205, 216, 220,4143 127, 101, 338, 339, 127, 127, 126, 127, 127, 127, 4144 155, 102, 127, 101, 338, 339, 101, 344, 101, 344, 4145 339, 217, 7, 111, 127, 155, 253, 253, 252, 256, 4146 256, 257, 108, 108, 102, 102, 104, 89, 115, 127, 4147 127, 138, 267, 155, 108, 124, 203, 207, 218, 222, 4140 4148 101, 101, 162, 101, 101, 124, 131, 124, 131, 111, 4141 4149 131, 161, 101, 164, 124, 155, 104, 109, 124, 127, 4142 126, 127, 200, 102, 155, 251, 251, 299, 102, 107, 4143 101, 336, 337, 126, 102, 126, 127, 296, 107, 126, 4144 127, 127, 102, 106, 154, 124, 190, 192, 108, 127, 4145 359, 156, 104, 127, 78, 105, 108, 127, 127, 104, 4146 127, 102, 126, 102, 102, 104, 104, 104, 127, 102, 4147 126, 126, 126, 155, 155, 127, 104, 127, 127, 127, 4148 127, 126, 126, 154, 154, 104, 104, 127, 127, 261, 4149 216, 160, 160, 45, 160, 126, 124, 124, 160, 124, 4150 124, 160, 54, 55, 185, 186, 187, 124, 299, 166, 4151 107, 124, 127, 127, 126, 89, 256, 257, 102, 286, 4152 108, 124, 108, 124, 107, 284, 102, 102, 109, 158, 4153 104, 107, 104, 103, 139, 103, 139, 139, 104, 104, 4154 104, 251, 104, 251, 251, 251, 127, 127, 104, 104, 4155 102, 102, 104, 108, 89, 250, 89, 127, 104, 104, 4156 102, 102, 101, 102, 161, 182, 201, 124, 102, 101, 4157 164, 187, 54, 162, 102, 102, 251, 106, 126, 126, 4158 285, 124, 75, 193, 127, 109, 126, 126, 127, 127, 4159 127, 127, 104, 104, 126, 127, 104, 162, 42, 43, 4160 106, 172, 173, 174, 160, 162, 127, 102, 161, 106, 4161 174, 89, 126, 101, 127, 126, 259, 296, 107, 102, 4162 108, 104, 155, 138, 138, 102, 102, 102, 102, 254, 4163 40, 154, 170, 171, 297, 109, 126, 162, 172, 102, 4164 124, 162, 124, 126, 102, 126, 89, 126, 102, 285, 4165 124, 75, 109, 127, 127, 162, 89, 108, 109, 127, 4166 194, 195, 201, 124, 161, 161, 194, 164, 188, 214, 4167 353, 102, 126, 107, 155, 104, 104, 154, 170, 173, 4168 175, 176, 126, 124, 173, 177, 178, 127, 101, 111, 4169 296, 344, 131, 164, 188, 101, 162, 167, 107, 173, 4170 201, 161, 52, 167, 180, 107, 173, 102, 216, 127, 4171 279, 162, 167, 124, 179, 180, 167, 180, 164, 102, 4172 102, 179, 127, 164, 127 4150 126, 127, 202, 102, 155, 253, 253, 301, 102, 107, 4151 101, 338, 339, 126, 102, 126, 127, 298, 107, 126, 4152 127, 127, 102, 106, 191, 104, 154, 124, 191, 193, 4153 108, 127, 361, 156, 104, 127, 78, 105, 108, 127, 4154 127, 104, 127, 102, 126, 102, 102, 104, 104, 104, 4155 127, 102, 126, 126, 126, 155, 155, 127, 104, 127, 4156 127, 127, 127, 126, 126, 154, 154, 104, 104, 127, 4157 127, 263, 218, 160, 160, 45, 160, 126, 124, 124, 4158 160, 124, 124, 160, 54, 55, 185, 186, 187, 124, 4159 301, 166, 107, 124, 127, 127, 126, 89, 258, 259, 4160 102, 288, 108, 124, 108, 124, 107, 286, 109, 133, 4161 102, 102, 109, 158, 104, 107, 104, 103, 139, 103, 4162 139, 139, 104, 104, 104, 253, 104, 253, 253, 253, 4163 127, 127, 104, 104, 102, 102, 104, 108, 89, 252, 4164 89, 127, 104, 104, 102, 102, 101, 102, 161, 182, 4165 203, 124, 102, 101, 164, 187, 54, 162, 102, 102, 4166 253, 106, 126, 126, 287, 133, 194, 101, 124, 194, 4167 127, 109, 126, 126, 127, 127, 127, 127, 104, 104, 4168 126, 127, 104, 162, 42, 43, 106, 172, 173, 174, 4169 160, 162, 127, 102, 161, 106, 174, 89, 126, 101, 4170 127, 126, 261, 298, 107, 108, 109, 154, 102, 104, 4171 155, 138, 138, 102, 102, 102, 102, 256, 40, 154, 4172 170, 171, 299, 109, 126, 162, 172, 102, 124, 162, 4173 124, 126, 102, 126, 89, 126, 102, 287, 133, 131, 4174 195, 102, 124, 109, 127, 127, 162, 89, 108, 109, 4175 127, 196, 197, 203, 124, 161, 161, 196, 164, 188, 4176 216, 355, 102, 126, 107, 102, 108, 155, 104, 104, 4177 154, 170, 173, 175, 176, 126, 124, 173, 177, 178, 4178 127, 101, 111, 298, 346, 131, 164, 188, 101, 124, 4179 131, 162, 167, 107, 173, 203, 161, 52, 167, 180, 4180 107, 173, 102, 218, 127, 281, 162, 167, 124, 179, 4181 180, 167, 180, 164, 102, 102, 179, 127, 164, 127 4173 4182 }; 4174 4183 … … 5007 5016 5008 5017 /* Line 1806 of yacc.c */ 5009 #line 2 79"parser.yy"5018 #line 288 "parser.yy" 5010 5019 { 5011 5020 typedefTable.enterScope(); … … 5016 5025 5017 5026 /* Line 1806 of yacc.c */ 5018 #line 2 85"parser.yy"5027 #line 294 "parser.yy" 5019 5028 { 5020 5029 typedefTable.leaveScope(); … … 5025 5034 5026 5035 /* Line 1806 of yacc.c */ 5027 #line 294"parser.yy"5036 #line 303 "parser.yy" 5028 5037 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5029 5038 break; … … 5032 5041 5033 5042 /* Line 1806 of yacc.c */ 5034 #line 295"parser.yy"5043 #line 304 "parser.yy" 5035 5044 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5036 5045 break; … … 5039 5048 5040 5049 /* Line 1806 of yacc.c */ 5041 #line 296"parser.yy"5050 #line 305 "parser.yy" 5042 5051 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5043 5052 break; … … 5046 5055 5047 5056 /* Line 1806 of yacc.c */ 5048 #line 32 0"parser.yy"5057 #line 329 "parser.yy" 5049 5058 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5050 5059 break; … … 5053 5062 5054 5063 /* Line 1806 of yacc.c */ 5055 #line 3 21"parser.yy"5064 #line 330 "parser.yy" 5056 5065 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5057 5066 break; … … 5060 5069 5061 5070 /* Line 1806 of yacc.c */ 5062 #line 3 28"parser.yy"5071 #line 337 "parser.yy" 5063 5072 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5064 5073 break; … … 5067 5076 5068 5077 /* Line 1806 of yacc.c */ 5069 #line 33 0"parser.yy"5078 #line 339 "parser.yy" 5070 5079 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5071 5080 break; … … 5074 5083 5075 5084 /* Line 1806 of yacc.c */ 5076 #line 332 "parser.yy" 5085 #line 341 "parser.yy" 5086 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5087 break; 5088 5089 case 20: 5090 5091 /* Line 1806 of yacc.c */ 5092 #line 343 "parser.yy" 5093 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5094 break; 5095 5096 case 22: 5097 5098 /* Line 1806 of yacc.c */ 5099 #line 353 "parser.yy" 5100 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5101 break; 5102 5103 case 23: 5104 5105 /* Line 1806 of yacc.c */ 5106 #line 355 "parser.yy" 5107 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5108 break; 5109 5110 case 24: 5111 5112 /* Line 1806 of yacc.c */ 5113 #line 357 "parser.yy" 5114 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5115 break; 5116 5117 case 26: 5118 5119 /* Line 1806 of yacc.c */ 5120 #line 360 "parser.yy" 5121 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5122 break; 5123 5124 case 28: 5125 5126 /* Line 1806 of yacc.c */ 5127 #line 363 "parser.yy" 5128 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5129 break; 5130 5131 case 29: 5132 5133 /* Line 1806 of yacc.c */ 5134 #line 365 "parser.yy" 5135 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5136 break; 5137 5138 case 30: 5139 5140 /* Line 1806 of yacc.c */ 5141 #line 368 "parser.yy" 5142 { (yyval.en) = 0; } 5143 break; 5144 5145 case 32: 5146 5147 /* Line 1806 of yacc.c */ 5148 #line 374 "parser.yy" 5149 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5150 break; 5151 5152 case 33: 5153 5154 /* Line 1806 of yacc.c */ 5155 #line 379 "parser.yy" 5156 { (yyval.en) = 0; } 5157 break; 5158 5159 case 35: 5160 5161 /* Line 1806 of yacc.c */ 5162 #line 382 "parser.yy" 5163 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); } 5164 break; 5165 5166 case 36: 5167 5168 /* Line 1806 of yacc.c */ 5169 #line 387 "parser.yy" 5170 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); } 5171 break; 5172 5173 case 37: 5174 5175 /* Line 1806 of yacc.c */ 5176 #line 389 "parser.yy" 5177 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5178 break; 5179 5180 case 39: 5181 5182 /* Line 1806 of yacc.c */ 5183 #line 394 "parser.yy" 5184 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5185 break; 5186 5187 case 40: 5188 5189 /* Line 1806 of yacc.c */ 5190 #line 399 "parser.yy" 5191 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5192 break; 5193 5194 case 41: 5195 5196 /* Line 1806 of yacc.c */ 5197 #line 401 "parser.yy" 5198 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5199 break; 5200 5201 case 42: 5202 5203 /* Line 1806 of yacc.c */ 5204 #line 403 "parser.yy" 5205 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5206 break; 5207 5208 case 43: 5209 5210 /* Line 1806 of yacc.c */ 5211 #line 405 "parser.yy" 5212 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5213 break; 5214 5215 case 44: 5216 5217 /* Line 1806 of yacc.c */ 5218 #line 407 "parser.yy" 5219 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5220 break; 5221 5222 case 46: 5223 5224 /* Line 1806 of yacc.c */ 5225 #line 415 "parser.yy" 5077 5226 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5078 5227 break; 5079 5228 5080 case 20:5081 5082 /* Line 1806 of yacc.c */ 5083 #line 334"parser.yy"5229 case 47: 5230 5231 /* Line 1806 of yacc.c */ 5232 #line 417 "parser.yy" 5084 5233 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5085 5234 break; 5086 5235 5087 case 21: 5088 5089 /* Line 1806 of yacc.c */ 5090 #line 336 "parser.yy" 5091 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5092 break; 5093 5094 case 22: 5095 5096 /* Line 1806 of yacc.c */ 5097 #line 338 "parser.yy" 5098 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5099 break; 5100 5101 case 24: 5102 5103 /* Line 1806 of yacc.c */ 5104 #line 348 "parser.yy" 5105 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5106 break; 5107 5108 case 25: 5109 5110 /* Line 1806 of yacc.c */ 5111 #line 350 "parser.yy" 5112 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5113 break; 5114 5115 case 26: 5116 5117 /* Line 1806 of yacc.c */ 5118 #line 352 "parser.yy" 5119 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5120 break; 5121 5122 case 28: 5123 5124 /* Line 1806 of yacc.c */ 5125 #line 355 "parser.yy" 5126 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5127 break; 5128 5129 case 30: 5130 5131 /* Line 1806 of yacc.c */ 5132 #line 358 "parser.yy" 5133 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5134 break; 5135 5136 case 31: 5137 5138 /* Line 1806 of yacc.c */ 5139 #line 360 "parser.yy" 5140 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5141 break; 5142 5143 case 32: 5144 5145 /* Line 1806 of yacc.c */ 5146 #line 363 "parser.yy" 5236 case 48: 5237 5238 /* Line 1806 of yacc.c */ 5239 #line 419 "parser.yy" 5240 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); } 5241 break; 5242 5243 case 49: 5244 5245 /* Line 1806 of yacc.c */ 5246 #line 421 "parser.yy" 5247 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); } 5248 break; 5249 5250 case 50: 5251 5252 /* Line 1806 of yacc.c */ 5253 #line 423 "parser.yy" 5254 { (yyval.en) = (yyvsp[(2) - (2)].en); } 5255 break; 5256 5257 case 51: 5258 5259 /* Line 1806 of yacc.c */ 5260 #line 425 "parser.yy" 5261 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5262 break; 5263 5264 case 52: 5265 5266 /* Line 1806 of yacc.c */ 5267 #line 427 "parser.yy" 5268 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); } 5269 break; 5270 5271 case 53: 5272 5273 /* Line 1806 of yacc.c */ 5274 #line 429 "parser.yy" 5275 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); } 5276 break; 5277 5278 case 54: 5279 5280 /* Line 1806 of yacc.c */ 5281 #line 435 "parser.yy" 5282 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); } 5283 break; 5284 5285 case 55: 5286 5287 /* Line 1806 of yacc.c */ 5288 #line 437 "parser.yy" 5289 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5290 break; 5291 5292 case 56: 5293 5294 /* Line 1806 of yacc.c */ 5295 #line 439 "parser.yy" 5296 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); } 5297 break; 5298 5299 case 57: 5300 5301 /* Line 1806 of yacc.c */ 5302 #line 441 "parser.yy" 5303 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5304 break; 5305 5306 case 58: 5307 5308 /* Line 1806 of yacc.c */ 5309 #line 443 "parser.yy" 5310 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5311 break; 5312 5313 case 59: 5314 5315 /* Line 1806 of yacc.c */ 5316 #line 445 "parser.yy" 5317 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); } 5318 break; 5319 5320 case 60: 5321 5322 /* Line 1806 of yacc.c */ 5323 #line 447 "parser.yy" 5324 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5325 break; 5326 5327 case 61: 5328 5329 /* Line 1806 of yacc.c */ 5330 #line 449 "parser.yy" 5331 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); } 5332 break; 5333 5334 case 62: 5335 5336 /* Line 1806 of yacc.c */ 5337 #line 453 "parser.yy" 5338 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); } 5339 break; 5340 5341 case 63: 5342 5343 /* Line 1806 of yacc.c */ 5344 #line 454 "parser.yy" 5345 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5346 break; 5347 5348 case 64: 5349 5350 /* Line 1806 of yacc.c */ 5351 #line 455 "parser.yy" 5352 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5353 break; 5354 5355 case 65: 5356 5357 /* Line 1806 of yacc.c */ 5358 #line 456 "parser.yy" 5359 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5360 break; 5361 5362 case 67: 5363 5364 /* Line 1806 of yacc.c */ 5365 #line 462 "parser.yy" 5366 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5367 break; 5368 5369 case 68: 5370 5371 /* Line 1806 of yacc.c */ 5372 #line 464 "parser.yy" 5373 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5374 break; 5375 5376 case 70: 5377 5378 /* Line 1806 of yacc.c */ 5379 #line 470 "parser.yy" 5380 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5381 break; 5382 5383 case 71: 5384 5385 /* Line 1806 of yacc.c */ 5386 #line 472 "parser.yy" 5387 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5388 break; 5389 5390 case 72: 5391 5392 /* Line 1806 of yacc.c */ 5393 #line 474 "parser.yy" 5394 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5395 break; 5396 5397 case 74: 5398 5399 /* Line 1806 of yacc.c */ 5400 #line 480 "parser.yy" 5401 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5402 break; 5403 5404 case 75: 5405 5406 /* Line 1806 of yacc.c */ 5407 #line 482 "parser.yy" 5408 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5409 break; 5410 5411 case 77: 5412 5413 /* Line 1806 of yacc.c */ 5414 #line 488 "parser.yy" 5415 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5416 break; 5417 5418 case 78: 5419 5420 /* Line 1806 of yacc.c */ 5421 #line 490 "parser.yy" 5422 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5423 break; 5424 5425 case 80: 5426 5427 /* Line 1806 of yacc.c */ 5428 #line 496 "parser.yy" 5429 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5430 break; 5431 5432 case 81: 5433 5434 /* Line 1806 of yacc.c */ 5435 #line 498 "parser.yy" 5436 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5437 break; 5438 5439 case 82: 5440 5441 /* Line 1806 of yacc.c */ 5442 #line 500 "parser.yy" 5443 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5444 break; 5445 5446 case 83: 5447 5448 /* Line 1806 of yacc.c */ 5449 #line 502 "parser.yy" 5450 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5451 break; 5452 5453 case 85: 5454 5455 /* Line 1806 of yacc.c */ 5456 #line 508 "parser.yy" 5457 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5458 break; 5459 5460 case 86: 5461 5462 /* Line 1806 of yacc.c */ 5463 #line 510 "parser.yy" 5464 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5465 break; 5466 5467 case 88: 5468 5469 /* Line 1806 of yacc.c */ 5470 #line 516 "parser.yy" 5471 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5472 break; 5473 5474 case 90: 5475 5476 /* Line 1806 of yacc.c */ 5477 #line 522 "parser.yy" 5478 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5479 break; 5480 5481 case 92: 5482 5483 /* Line 1806 of yacc.c */ 5484 #line 528 "parser.yy" 5485 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5486 break; 5487 5488 case 94: 5489 5490 /* Line 1806 of yacc.c */ 5491 #line 534 "parser.yy" 5492 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5493 break; 5494 5495 case 96: 5496 5497 /* Line 1806 of yacc.c */ 5498 #line 540 "parser.yy" 5499 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5500 break; 5501 5502 case 98: 5503 5504 /* Line 1806 of yacc.c */ 5505 #line 546 "parser.yy" 5506 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5507 break; 5508 5509 case 99: 5510 5511 /* Line 1806 of yacc.c */ 5512 #line 548 "parser.yy" 5513 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5514 break; 5515 5516 case 100: 5517 5518 /* Line 1806 of yacc.c */ 5519 #line 550 "parser.yy" 5520 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5521 break; 5522 5523 case 103: 5524 5525 /* Line 1806 of yacc.c */ 5526 #line 561 "parser.yy" 5527 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5528 break; 5529 5530 case 104: 5531 5532 /* Line 1806 of yacc.c */ 5533 #line 563 "parser.yy" 5534 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5535 break; 5536 5537 case 105: 5538 5539 /* Line 1806 of yacc.c */ 5540 #line 565 "parser.yy" 5541 { (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) ); } 5542 break; 5543 5544 case 106: 5545 5546 /* Line 1806 of yacc.c */ 5547 #line 570 "parser.yy" 5548 { (yyval.en) = new NullExprNode; } 5549 break; 5550 5551 case 108: 5552 5553 /* Line 1806 of yacc.c */ 5554 #line 578 "parser.yy" 5555 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5556 break; 5557 5558 case 109: 5559 5560 /* Line 1806 of yacc.c */ 5561 #line 580 "parser.yy" 5562 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5563 break; 5564 5565 case 110: 5566 5567 /* Line 1806 of yacc.c */ 5568 #line 582 "parser.yy" 5569 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5570 break; 5571 5572 case 111: 5573 5574 /* Line 1806 of yacc.c */ 5575 #line 584 "parser.yy" 5576 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5577 break; 5578 5579 case 113: 5580 5581 /* Line 1806 of yacc.c */ 5582 #line 590 "parser.yy" 5583 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5584 break; 5585 5586 case 114: 5587 5588 /* Line 1806 of yacc.c */ 5589 #line 594 "parser.yy" 5590 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5591 break; 5592 5593 case 115: 5594 5595 /* Line 1806 of yacc.c */ 5596 #line 595 "parser.yy" 5597 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5598 break; 5599 5600 case 116: 5601 5602 /* Line 1806 of yacc.c */ 5603 #line 596 "parser.yy" 5604 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5605 break; 5606 5607 case 117: 5608 5609 /* Line 1806 of yacc.c */ 5610 #line 597 "parser.yy" 5611 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5612 break; 5613 5614 case 118: 5615 5616 /* Line 1806 of yacc.c */ 5617 #line 598 "parser.yy" 5618 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5619 break; 5620 5621 case 119: 5622 5623 /* Line 1806 of yacc.c */ 5624 #line 599 "parser.yy" 5625 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5626 break; 5627 5628 case 120: 5629 5630 /* Line 1806 of yacc.c */ 5631 #line 600 "parser.yy" 5632 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5633 break; 5634 5635 case 121: 5636 5637 /* Line 1806 of yacc.c */ 5638 #line 601 "parser.yy" 5639 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5640 break; 5641 5642 case 122: 5643 5644 /* Line 1806 of yacc.c */ 5645 #line 602 "parser.yy" 5646 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5647 break; 5648 5649 case 123: 5650 5651 /* Line 1806 of yacc.c */ 5652 #line 603 "parser.yy" 5653 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5654 break; 5655 5656 case 125: 5657 5658 /* Line 1806 of yacc.c */ 5659 #line 609 "parser.yy" 5660 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5661 break; 5662 5663 case 126: 5664 5665 /* Line 1806 of yacc.c */ 5666 #line 614 "parser.yy" 5147 5667 { (yyval.en) = 0; } 5148 5668 break; 5149 5669 5150 case 34:5151 5152 /* Line 1806 of yacc.c */5153 #line 369 "parser.yy"5154 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }5155 break;5156 5157 case 35:5158 5159 /* Line 1806 of yacc.c */5160 #line 374 "parser.yy"5161 { (yyval.en) = 0; }5162 break;5163 5164 case 37:5165 5166 /* Line 1806 of yacc.c */5167 #line 377 "parser.yy"5168 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok) ); }5169 break;5170 5171 case 38:5172 5173 /* Line 1806 of yacc.c */5174 #line 382 "parser.yy"5175 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en) ); }5176 break;5177 5178 case 39:5179 5180 /* Line 1806 of yacc.c */5181 #line 384 "parser.yy"5182 { (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) )))); }5183 break;5184 5185 case 41:5186 5187 /* Line 1806 of yacc.c */5188 #line 389 "parser.yy"5189 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5190 break;5191 5192 case 42:5193 5194 /* Line 1806 of yacc.c */5195 #line 394 "parser.yy"5196 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5197 break;5198 5199 case 43:5200 5201 /* Line 1806 of yacc.c */5202 #line 396 "parser.yy"5203 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5204 break;5205 5206 case 44:5207 5208 /* Line 1806 of yacc.c */5209 #line 398 "parser.yy"5210 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5211 break;5212 5213 case 45:5214 5215 /* Line 1806 of yacc.c */5216 #line 400 "parser.yy"5217 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5218 break;5219 5220 case 46:5221 5222 /* Line 1806 of yacc.c */5223 #line 402 "parser.yy"5224 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5225 break;5226 5227 case 48:5228 5229 /* Line 1806 of yacc.c */5230 #line 408 "parser.yy"5231 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }5232 break;5233 5234 case 49:5235 5236 /* Line 1806 of yacc.c */5237 #line 410 "parser.yy"5238 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }5239 break;5240 5241 case 50:5242 5243 /* Line 1806 of yacc.c */5244 #line 412 "parser.yy"5245 { (yyval.en) = (yyvsp[(2) - (2)].en); }5246 break;5247 5248 case 51:5249 5250 /* Line 1806 of yacc.c */5251 #line 414 "parser.yy"5252 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5253 break;5254 5255 case 52:5256 5257 /* Line 1806 of yacc.c */5258 #line 416 "parser.yy"5259 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }5260 break;5261 5262 case 53:5263 5264 /* Line 1806 of yacc.c */5265 #line 418 "parser.yy"5266 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }5267 break;5268 5269 case 54:5270 5271 /* Line 1806 of yacc.c */5272 #line 424 "parser.yy"5273 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }5274 break;5275 5276 case 55:5277 5278 /* Line 1806 of yacc.c */5279 #line 426 "parser.yy"5280 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5281 break;5282 5283 case 56:5284 5285 /* Line 1806 of yacc.c */5286 #line 428 "parser.yy"5287 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }5288 break;5289 5290 case 57:5291 5292 /* Line 1806 of yacc.c */5293 #line 430 "parser.yy"5294 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5295 break;5296 5297 case 58:5298 5299 /* Line 1806 of yacc.c */5300 #line 432 "parser.yy"5301 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }5302 break;5303 5304 case 59:5305 5306 /* Line 1806 of yacc.c */5307 #line 434 "parser.yy"5308 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }5309 break;5310 5311 case 60:5312 5313 /* Line 1806 of yacc.c */5314 #line 436 "parser.yy"5315 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5316 break;5317 5318 case 61:5319 5320 /* Line 1806 of yacc.c */5321 #line 438 "parser.yy"5322 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }5323 break;5324 5325 case 62:5326 5327 /* Line 1806 of yacc.c */5328 #line 442 "parser.yy"5329 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }5330 break;5331 5332 case 63:5333 5334 /* Line 1806 of yacc.c */5335 #line 443 "parser.yy"5336 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }5337 break;5338 5339 case 64:5340 5341 /* Line 1806 of yacc.c */5342 #line 444 "parser.yy"5343 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }5344 break;5345 5346 case 65:5347 5348 /* Line 1806 of yacc.c */5349 #line 445 "parser.yy"5350 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }5351 break;5352 5353 case 67:5354 5355 /* Line 1806 of yacc.c */5356 #line 451 "parser.yy"5357 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5358 break;5359 5360 case 68:5361 5362 /* Line 1806 of yacc.c */5363 #line 453 "parser.yy"5364 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5365 break;5366 5367 case 70:5368 5369 /* Line 1806 of yacc.c */5370 #line 459 "parser.yy"5371 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5372 break;5373 5374 case 71:5375 5376 /* Line 1806 of yacc.c */5377 #line 461 "parser.yy"5378 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5379 break;5380 5381 case 72:5382 5383 /* Line 1806 of yacc.c */5384 #line 463 "parser.yy"5385 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5386 break;5387 5388 case 74:5389 5390 /* Line 1806 of yacc.c */5391 #line 469 "parser.yy"5392 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5393 break;5394 5395 case 75:5396 5397 /* Line 1806 of yacc.c */5398 #line 471 "parser.yy"5399 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5400 break;5401 5402 case 77:5403 5404 /* Line 1806 of yacc.c */5405 #line 477 "parser.yy"5406 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5407 break;5408 5409 case 78:5410 5411 /* Line 1806 of yacc.c */5412 #line 479 "parser.yy"5413 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5414 break;5415 5416 case 80:5417 5418 /* Line 1806 of yacc.c */5419 #line 485 "parser.yy"5420 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5421 break;5422 5423 case 81:5424 5425 /* Line 1806 of yacc.c */5426 #line 487 "parser.yy"5427 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5428 break;5429 5430 case 82:5431 5432 /* Line 1806 of yacc.c */5433 #line 489 "parser.yy"5434 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5435 break;5436 5437 case 83:5438 5439 /* Line 1806 of yacc.c */5440 #line 491 "parser.yy"5441 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5442 break;5443 5444 case 85:5445 5446 /* Line 1806 of yacc.c */5447 #line 497 "parser.yy"5448 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5449 break;5450 5451 case 86:5452 5453 /* Line 1806 of yacc.c */5454 #line 499 "parser.yy"5455 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5456 break;5457 5458 case 88:5459 5460 /* Line 1806 of yacc.c */5461 #line 505 "parser.yy"5462 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5463 break;5464 5465 case 90:5466 5467 /* Line 1806 of yacc.c */5468 #line 511 "parser.yy"5469 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5470 break;5471 5472 case 92:5473 5474 /* Line 1806 of yacc.c */5475 #line 517 "parser.yy"5476 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5477 break;5478 5479 case 94:5480 5481 /* Line 1806 of yacc.c */5482 #line 523 "parser.yy"5483 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5484 break;5485 5486 case 96:5487 5488 /* Line 1806 of yacc.c */5489 #line 529 "parser.yy"5490 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5491 break;5492 5493 case 98:5494 5495 /* Line 1806 of yacc.c */5496 #line 535 "parser.yy"5497 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }5498 break;5499 5500 case 99:5501 5502 /* Line 1806 of yacc.c */5503 #line 537 "parser.yy"5504 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }5505 break;5506 5507 case 100:5508 5509 /* Line 1806 of yacc.c */5510 #line 539 "parser.yy"5511 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }5512 break;5513 5514 case 103:5515 5516 /* Line 1806 of yacc.c */5517 #line 550 "parser.yy"5518 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5519 break;5520 5521 case 104:5522 5523 /* Line 1806 of yacc.c */5524 #line 552 "parser.yy"5525 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5526 break;5527 5528 case 105:5529 5530 /* Line 1806 of yacc.c */5531 #line 554 "parser.yy"5532 { (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) ); }5533 break;5534 5535 case 106:5536 5537 /* Line 1806 of yacc.c */5538 #line 559 "parser.yy"5539 { (yyval.en) = new NullExprNode; }5540 break;5541 5542 case 108:5543 5544 /* Line 1806 of yacc.c */5545 #line 567 "parser.yy"5546 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }5547 break;5548 5549 case 109:5550 5551 /* Line 1806 of yacc.c */5552 #line 569 "parser.yy"5553 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }5554 break;5555 5556 case 110:5557 5558 /* Line 1806 of yacc.c */5559 #line 571 "parser.yy"5560 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }5561 break;5562 5563 case 111:5564 5565 /* Line 1806 of yacc.c */5566 #line 573 "parser.yy"5567 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }5568 break;5569 5570 case 113:5571 5572 /* Line 1806 of yacc.c */5573 #line 579 "parser.yy"5574 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5575 break;5576 5577 case 114:5578 5579 /* Line 1806 of yacc.c */5580 #line 583 "parser.yy"5581 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }5582 break;5583 5584 case 115:5585 5586 /* Line 1806 of yacc.c */5587 #line 584 "parser.yy"5588 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }5589 break;5590 5591 case 116:5592 5593 /* Line 1806 of yacc.c */5594 #line 585 "parser.yy"5595 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }5596 break;5597 5598 case 117:5599 5600 /* Line 1806 of yacc.c */5601 #line 586 "parser.yy"5602 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }5603 break;5604 5605 case 118:5606 5607 /* Line 1806 of yacc.c */5608 #line 587 "parser.yy"5609 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }5610 break;5611 5612 case 119:5613 5614 /* Line 1806 of yacc.c */5615 #line 588 "parser.yy"5616 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }5617 break;5618 5619 case 120:5620 5621 /* Line 1806 of yacc.c */5622 #line 589 "parser.yy"5623 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }5624 break;5625 5626 case 121:5627 5628 /* Line 1806 of yacc.c */5629 #line 590 "parser.yy"5630 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }5631 break;5632 5633 case 122:5634 5635 /* Line 1806 of yacc.c */5636 #line 591 "parser.yy"5637 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }5638 break;5639 5640 case 123:5641 5642 /* Line 1806 of yacc.c */5643 #line 592 "parser.yy"5644 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }5645 break;5646 5647 case 125:5648 5649 /* Line 1806 of yacc.c */5650 #line 598 "parser.yy"5651 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5652 break;5653 5654 case 126:5655 5656 /* Line 1806 of yacc.c */5657 #line 603 "parser.yy"5658 { (yyval.en) = 0; }5659 break;5660 5661 5670 case 130: 5662 5671 5663 5672 /* Line 1806 of yacc.c */ 5664 #line 6 12"parser.yy"5673 #line 623 "parser.yy" 5665 5674 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5666 5675 break; … … 5669 5678 5670 5679 /* Line 1806 of yacc.c */ 5671 #line 622 "parser.yy" 5672 { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );} 5680 #line 633 "parser.yy" 5681 { 5682 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5683 } 5673 5684 break; 5674 5685 … … 5676 5687 5677 5688 /* Line 1806 of yacc.c */ 5678 #line 6 27"parser.yy"5689 #line 640 "parser.yy" 5679 5690 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5680 5691 break; … … 5683 5694 5684 5695 /* Line 1806 of yacc.c */ 5685 #line 6 34"parser.yy"5696 #line 647 "parser.yy" 5686 5697 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5687 5698 break; … … 5690 5701 5691 5702 /* Line 1806 of yacc.c */ 5692 #line 6 40"parser.yy"5703 #line 653 "parser.yy" 5693 5704 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5694 5705 break; … … 5697 5708 5698 5709 /* Line 1806 of yacc.c */ 5699 #line 6 45"parser.yy"5710 #line 658 "parser.yy" 5700 5711 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5701 5712 break; … … 5704 5715 5705 5716 /* Line 1806 of yacc.c */ 5706 #line 6 47"parser.yy"5717 #line 660 "parser.yy" 5707 5718 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); } 5708 5719 break; … … 5711 5722 5712 5723 /* Line 1806 of yacc.c */ 5713 #line 6 49"parser.yy"5724 #line 662 "parser.yy" 5714 5725 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5715 5726 break; … … 5718 5729 5719 5730 /* Line 1806 of yacc.c */ 5720 #line 6 56"parser.yy"5731 #line 669 "parser.yy" 5721 5732 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5722 5733 break; … … 5725 5736 5726 5737 /* Line 1806 of yacc.c */ 5727 #line 6 61"parser.yy"5738 #line 674 "parser.yy" 5728 5739 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5729 5740 break; … … 5732 5743 5733 5744 /* Line 1806 of yacc.c */ 5734 #line 6 67"parser.yy"5745 #line 680 "parser.yy" 5735 5746 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5736 5747 break; … … 5739 5750 5740 5751 /* Line 1806 of yacc.c */ 5741 #line 6 69"parser.yy"5752 #line 682 "parser.yy" 5742 5753 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5743 5754 break; … … 5746 5757 5747 5758 /* Line 1806 of yacc.c */ 5748 #line 6 71"parser.yy"5759 #line 684 "parser.yy" 5749 5760 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5750 5761 break; … … 5753 5764 5754 5765 /* Line 1806 of yacc.c */ 5755 #line 6 73"parser.yy"5766 #line 686 "parser.yy" 5756 5767 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ } 5757 5768 break; … … 5760 5771 5761 5772 /* Line 1806 of yacc.c */ 5762 #line 6 78"parser.yy"5773 #line 691 "parser.yy" 5763 5774 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5764 5775 break; … … 5767 5778 5768 5779 /* Line 1806 of yacc.c */ 5769 #line 6 80"parser.yy"5780 #line 693 "parser.yy" 5770 5781 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); } 5771 5782 break; … … 5774 5785 5775 5786 /* Line 1806 of yacc.c */ 5776 #line 687"parser.yy"5787 #line 700 "parser.yy" 5777 5788 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5778 5789 break; … … 5781 5792 5782 5793 /* Line 1806 of yacc.c */ 5783 #line 689"parser.yy"5794 #line 702 "parser.yy" 5784 5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5785 5796 break; … … 5788 5799 5789 5800 /* Line 1806 of yacc.c */ 5790 #line 696"parser.yy"5801 #line 709 "parser.yy" 5791 5802 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); } 5792 5803 break; … … 5795 5806 5796 5807 /* Line 1806 of yacc.c */ 5797 #line 7 00"parser.yy"5808 #line 713 "parser.yy" 5798 5809 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); } 5799 5810 break; … … 5802 5813 5803 5814 /* Line 1806 of yacc.c */ 5804 #line 7 01"parser.yy"5815 #line 714 "parser.yy" 5805 5816 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 5806 5817 break; … … 5809 5820 5810 5821 /* Line 1806 of yacc.c */ 5811 #line 7 07"parser.yy"5822 #line 720 "parser.yy" 5812 5823 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5813 5824 break; … … 5816 5827 5817 5828 /* Line 1806 of yacc.c */ 5818 #line 7 11"parser.yy"5829 #line 724 "parser.yy" 5819 5830 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5820 5831 break; 5821 5832 5822 5833 case 164: 5823 5824 /* Line 1806 of yacc.c */5825 #line 716 "parser.yy"5826 { (yyval.sn) = 0; }5827 break;5828 5829 case 166:5830 5831 /* Line 1806 of yacc.c */5832 #line 722 "parser.yy"5833 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }5834 break;5835 5836 case 167:5837 5838 /* Line 1806 of yacc.c */5839 #line 724 "parser.yy"5840 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }5841 break;5842 5843 case 168:5844 5834 5845 5835 /* Line 1806 of yacc.c */ … … 5848 5838 break; 5849 5839 5850 case 1 70:5840 case 166: 5851 5841 5852 5842 /* Line 1806 of yacc.c */ … … 5855 5845 break; 5856 5846 5847 case 167: 5848 5849 /* Line 1806 of yacc.c */ 5850 #line 737 "parser.yy" 5851 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5852 break; 5853 5854 case 168: 5855 5856 /* Line 1806 of yacc.c */ 5857 #line 742 "parser.yy" 5858 { (yyval.sn) = 0; } 5859 break; 5860 5861 case 170: 5862 5863 /* Line 1806 of yacc.c */ 5864 #line 748 "parser.yy" 5865 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5866 break; 5867 5857 5868 case 171: 5858 5869 5859 5870 /* Line 1806 of yacc.c */ 5860 #line 7 37"parser.yy"5871 #line 750 "parser.yy" 5861 5872 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); } 5862 5873 break; … … 5865 5876 5866 5877 /* Line 1806 of yacc.c */ 5867 #line 7 39"parser.yy"5878 #line 752 "parser.yy" 5868 5879 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5869 5880 break; … … 5872 5883 5873 5884 /* Line 1806 of yacc.c */ 5874 #line 7 41"parser.yy"5885 #line 754 "parser.yy" 5875 5886 { (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) ))))); } 5876 5887 break; … … 5879 5890 5880 5891 /* Line 1806 of yacc.c */ 5881 #line 7 46"parser.yy"5892 #line 759 "parser.yy" 5882 5893 { (yyval.sn) = 0; } 5883 5894 break; … … 5886 5897 5887 5898 /* Line 1806 of yacc.c */ 5888 #line 7 51"parser.yy"5889 { (yyval.sn) = new StatementNode( StatementNode::Fallthru , 0, 0); }5899 #line 764 "parser.yy" 5900 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 5890 5901 break; 5891 5902 … … 5893 5904 5894 5905 /* Line 1806 of yacc.c */ 5895 #line 7 52"parser.yy"5896 { (yyval.sn) = new StatementNode( StatementNode::Fallthru , 0, 0); }5906 #line 765 "parser.yy" 5907 { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); } 5897 5908 break; 5898 5909 … … 5900 5911 5901 5912 /* Line 1806 of yacc.c */ 5902 #line 7 57"parser.yy"5913 #line 770 "parser.yy" 5903 5914 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5904 5915 break; … … 5907 5918 5908 5919 /* Line 1806 of yacc.c */ 5909 #line 7 59"parser.yy"5920 #line 772 "parser.yy" 5910 5921 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 5911 5922 break; … … 5914 5925 5915 5926 /* Line 1806 of yacc.c */ 5916 #line 7 61"parser.yy"5927 #line 774 "parser.yy" 5917 5928 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 5918 5929 break; … … 5921 5932 5922 5933 /* Line 1806 of yacc.c */ 5923 #line 7 66"parser.yy"5934 #line 779 "parser.yy" 5924 5935 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5925 5936 break; … … 5928 5939 5929 5940 /* Line 1806 of yacc.c */ 5930 #line 7 68"parser.yy"5941 #line 781 "parser.yy" 5931 5942 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5932 5943 break; … … 5935 5946 5936 5947 /* Line 1806 of yacc.c */ 5937 #line 7 73"parser.yy"5948 #line 786 "parser.yy" 5938 5949 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 5939 5950 break; … … 5942 5953 5943 5954 /* Line 1806 of yacc.c */ 5944 #line 7 77"parser.yy"5955 #line 790 "parser.yy" 5945 5956 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 5946 5957 break; … … 5949 5960 5950 5961 /* Line 1806 of yacc.c */ 5951 #line 7 80"parser.yy"5952 { (yyval.sn) = new StatementNode( StatementNode::Continue , 0, 0); }5962 #line 793 "parser.yy" 5963 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 5953 5964 break; 5954 5965 … … 5956 5967 5957 5968 /* Line 1806 of yacc.c */ 5958 #line 7 84"parser.yy"5969 #line 797 "parser.yy" 5959 5970 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 5960 5971 break; … … 5963 5974 5964 5975 /* Line 1806 of yacc.c */ 5965 #line 787"parser.yy"5966 { (yyval.sn) = new StatementNode( StatementNode::Break , 0, 0); }5976 #line 800 "parser.yy" 5977 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5967 5978 break; 5968 5979 … … 5970 5981 5971 5982 /* Line 1806 of yacc.c */ 5972 #line 791"parser.yy"5983 #line 804 "parser.yy" 5973 5984 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 5974 5985 break; … … 5977 5988 5978 5989 /* Line 1806 of yacc.c */ 5979 #line 793"parser.yy"5990 #line 806 "parser.yy" 5980 5991 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 5981 5992 break; … … 5984 5995 5985 5996 /* Line 1806 of yacc.c */ 5986 #line 795"parser.yy"5997 #line 808 "parser.yy" 5987 5998 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 5988 5999 break; … … 5991 6002 5992 6003 /* Line 1806 of yacc.c */ 5993 #line 797"parser.yy"5994 { (yyval.sn) = new StatementNode( StatementNode::Throw , 0, 0); }6004 #line 810 "parser.yy" 6005 { (yyval.sn) = new StatementNode( StatementNode::Throw ); } 5995 6006 break; 5996 6007 … … 5998 6009 5999 6010 /* Line 1806 of yacc.c */ 6000 #line 8 02"parser.yy"6011 #line 815 "parser.yy" 6001 6012 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6002 6013 break; … … 6005 6016 6006 6017 /* Line 1806 of yacc.c */ 6007 #line 8 04"parser.yy"6018 #line 817 "parser.yy" 6008 6019 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6009 6020 break; … … 6012 6023 6013 6024 /* Line 1806 of yacc.c */ 6014 #line 8 06"parser.yy"6025 #line 819 "parser.yy" 6015 6026 { 6016 6027 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6022 6033 6023 6034 /* Line 1806 of yacc.c */ 6024 #line 8 17"parser.yy"6035 #line 830 "parser.yy" 6025 6036 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6026 6037 break; … … 6029 6040 6030 6041 /* Line 1806 of yacc.c */ 6031 #line 8 19"parser.yy"6042 #line 832 "parser.yy" 6032 6043 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6033 6044 break; … … 6036 6047 6037 6048 /* Line 1806 of yacc.c */ 6038 #line 8 24"parser.yy"6049 #line 837 "parser.yy" 6039 6050 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6040 6051 break; … … 6043 6054 6044 6055 /* Line 1806 of yacc.c */ 6045 #line 8 26"parser.yy"6056 #line 839 "parser.yy" 6046 6057 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6047 6058 break; … … 6050 6061 6051 6062 /* Line 1806 of yacc.c */ 6052 #line 8 31"parser.yy"6063 #line 844 "parser.yy" 6053 6064 { 6054 6065 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6060 6071 6061 6072 /* Line 1806 of yacc.c */ 6062 #line 8 45"parser.yy"6073 #line 858 "parser.yy" 6063 6074 { 6064 6075 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6070 6081 6071 6082 /* Line 1806 of yacc.c */ 6072 #line 8 50"parser.yy"6083 #line 863 "parser.yy" 6073 6084 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6074 6085 break; … … 6077 6088 6078 6089 /* Line 1806 of yacc.c */ 6079 #line 8 52"parser.yy"6090 #line 865 "parser.yy" 6080 6091 { 6081 6092 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6087 6098 6088 6099 /* Line 1806 of yacc.c */ 6089 #line 8 61"parser.yy"6090 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); }6100 #line 874 "parser.yy" 6101 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6091 6102 break; 6092 6103 … … 6094 6105 6095 6106 /* Line 1806 of yacc.c */ 6096 #line 8 63"parser.yy"6097 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6107 #line 876 "parser.yy" 6108 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6098 6109 break; 6099 6110 … … 6101 6112 6102 6113 /* Line 1806 of yacc.c */ 6103 #line 8 65"parser.yy"6104 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6114 #line 878 "parser.yy" 6115 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6105 6116 break; 6106 6117 … … 6108 6119 6109 6120 /* Line 1806 of yacc.c */ 6110 #line 867 "parser.yy" 6111 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); } 6112 break; 6113 6114 case 214: 6115 6116 /* Line 1806 of yacc.c */ 6117 #line 881 "parser.yy" 6121 #line 880 "parser.yy" 6122 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6123 break; 6124 6125 case 210: 6126 6127 /* Line 1806 of yacc.c */ 6128 #line 882 "parser.yy" 6129 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6130 break; 6131 6132 case 211: 6133 6134 /* Line 1806 of yacc.c */ 6135 #line 887 "parser.yy" 6136 { (yyval.flag) = false; } 6137 break; 6138 6139 case 212: 6140 6141 /* Line 1806 of yacc.c */ 6142 #line 889 "parser.yy" 6143 { (yyval.flag) = true; } 6144 break; 6145 6146 case 213: 6147 6148 /* Line 1806 of yacc.c */ 6149 #line 894 "parser.yy" 6150 { (yyval.en) = 0; } 6151 break; 6152 6153 case 216: 6154 6155 /* Line 1806 of yacc.c */ 6156 #line 901 "parser.yy" 6157 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6158 break; 6159 6160 case 217: 6161 6162 /* Line 1806 of yacc.c */ 6163 #line 906 "parser.yy" 6164 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6165 break; 6166 6167 case 218: 6168 6169 /* Line 1806 of yacc.c */ 6170 #line 908 "parser.yy" 6171 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6172 break; 6173 6174 case 219: 6175 6176 /* Line 1806 of yacc.c */ 6177 #line 913 "parser.yy" 6178 { (yyval.constant) = 0; } 6179 break; 6180 6181 case 220: 6182 6183 /* Line 1806 of yacc.c */ 6184 #line 915 "parser.yy" 6185 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6186 break; 6187 6188 case 221: 6189 6190 /* Line 1806 of yacc.c */ 6191 #line 917 "parser.yy" 6192 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6193 break; 6194 6195 case 222: 6196 6197 /* Line 1806 of yacc.c */ 6198 #line 922 "parser.yy" 6199 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6200 break; 6201 6202 case 223: 6203 6204 /* Line 1806 of yacc.c */ 6205 #line 924 "parser.yy" 6206 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6207 break; 6208 6209 case 224: 6210 6211 /* Line 1806 of yacc.c */ 6212 #line 931 "parser.yy" 6213 { (yyval.decl) = 0; } 6214 break; 6215 6216 case 227: 6217 6218 /* Line 1806 of yacc.c */ 6219 #line 938 "parser.yy" 6220 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6221 break; 6222 6223 case 228: 6224 6225 /* Line 1806 of yacc.c */ 6226 #line 943 "parser.yy" 6227 { (yyval.decl) = 0; } 6228 break; 6229 6230 case 231: 6231 6232 /* Line 1806 of yacc.c */ 6233 #line 950 "parser.yy" 6234 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6235 break; 6236 6237 case 236: 6238 6239 /* Line 1806 of yacc.c */ 6240 #line 964 "parser.yy" 6118 6241 {} 6119 6242 break; 6120 6243 6121 case 2 15:6122 6123 /* Line 1806 of yacc.c */ 6124 #line 885 "parser.yy"6244 case 237: 6245 6246 /* Line 1806 of yacc.c */ 6247 #line 965 "parser.yy" 6125 6248 {} 6126 6249 break; 6127 6250 6128 case 217: 6129 6130 /* Line 1806 of yacc.c */ 6131 #line 893 "parser.yy" 6132 { (yyval.decl) = 0; } 6133 break; 6134 6135 case 220: 6136 6137 /* Line 1806 of yacc.c */ 6138 #line 900 "parser.yy" 6139 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6140 break; 6141 6142 case 221: 6143 6144 /* Line 1806 of yacc.c */ 6145 #line 905 "parser.yy" 6146 { (yyval.decl) = 0; } 6147 break; 6148 6149 case 224: 6150 6151 /* Line 1806 of yacc.c */ 6152 #line 912 "parser.yy" 6153 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6154 break; 6155 6156 case 229: 6157 6158 /* Line 1806 of yacc.c */ 6159 #line 926 "parser.yy" 6160 {} 6161 break; 6162 6163 case 230: 6164 6165 /* Line 1806 of yacc.c */ 6166 #line 927 "parser.yy" 6167 {} 6168 break; 6169 6170 case 238: 6171 6172 /* Line 1806 of yacc.c */ 6173 #line 956 "parser.yy" 6251 case 245: 6252 6253 /* Line 1806 of yacc.c */ 6254 #line 994 "parser.yy" 6174 6255 { 6175 6256 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6178 6259 break; 6179 6260 6180 case 2 39:6181 6182 /* Line 1806 of yacc.c */ 6183 #line 963"parser.yy"6261 case 246: 6262 6263 /* Line 1806 of yacc.c */ 6264 #line 1001 "parser.yy" 6184 6265 { 6185 6266 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6188 6269 break; 6189 6270 6190 case 24 0:6191 6192 /* Line 1806 of yacc.c */ 6193 #line 968"parser.yy"6271 case 247: 6272 6273 /* Line 1806 of yacc.c */ 6274 #line 1006 "parser.yy" 6194 6275 { 6195 6276 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6198 6279 break; 6199 6280 6200 case 24 1:6201 6202 /* Line 1806 of yacc.c */ 6203 #line 978"parser.yy"6281 case 248: 6282 6283 /* Line 1806 of yacc.c */ 6284 #line 1016 "parser.yy" 6204 6285 { 6205 6286 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6208 6289 break; 6209 6290 6210 case 24 2:6211 6212 /* Line 1806 of yacc.c */ 6213 #line 983"parser.yy"6291 case 249: 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1021 "parser.yy" 6214 6295 { 6215 6296 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6218 6299 break; 6219 6300 6220 case 2 43:6221 6222 /* Line 1806 of yacc.c */ 6223 #line 988"parser.yy"6301 case 250: 6302 6303 /* Line 1806 of yacc.c */ 6304 #line 1026 "parser.yy" 6224 6305 { 6225 6306 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6228 6309 break; 6229 6310 6230 case 2 44:6231 6232 /* Line 1806 of yacc.c */ 6233 #line 996"parser.yy"6311 case 251: 6312 6313 /* Line 1806 of yacc.c */ 6314 #line 1034 "parser.yy" 6234 6315 { 6235 6316 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6238 6319 break; 6239 6320 6240 case 2 45:6241 6242 /* Line 1806 of yacc.c */ 6243 #line 10 01"parser.yy"6321 case 252: 6322 6323 /* Line 1806 of yacc.c */ 6324 #line 1039 "parser.yy" 6244 6325 { 6245 6326 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6248 6329 break; 6249 6330 6250 case 2 46:6251 6252 /* Line 1806 of yacc.c */ 6253 #line 10 06"parser.yy"6331 case 253: 6332 6333 /* Line 1806 of yacc.c */ 6334 #line 1044 "parser.yy" 6254 6335 { 6255 6336 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6258 6339 break; 6259 6340 6260 case 2 47:6261 6262 /* Line 1806 of yacc.c */ 6263 #line 10 11"parser.yy"6341 case 254: 6342 6343 /* Line 1806 of yacc.c */ 6344 #line 1049 "parser.yy" 6264 6345 { 6265 6346 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6268 6349 break; 6269 6350 6270 case 2 48:6271 6272 /* Line 1806 of yacc.c */ 6273 #line 10 16"parser.yy"6351 case 255: 6352 6353 /* Line 1806 of yacc.c */ 6354 #line 1054 "parser.yy" 6274 6355 { 6275 6356 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6278 6359 break; 6279 6360 6280 case 2 49:6281 6282 /* Line 1806 of yacc.c */ 6283 #line 10 24"parser.yy"6361 case 256: 6362 6363 /* Line 1806 of yacc.c */ 6364 #line 1062 "parser.yy" 6284 6365 { 6285 6366 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6287 6368 break; 6288 6369 6289 case 25 0:6290 6291 /* Line 1806 of yacc.c */ 6292 #line 10 47"parser.yy"6370 case 257: 6371 6372 /* Line 1806 of yacc.c */ 6373 #line 1085 "parser.yy" 6293 6374 { 6294 6375 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6296 6377 break; 6297 6378 6298 case 25 1:6299 6300 /* Line 1806 of yacc.c */ 6301 #line 10 51"parser.yy"6379 case 258: 6380 6381 /* Line 1806 of yacc.c */ 6382 #line 1089 "parser.yy" 6302 6383 { 6303 6384 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6305 6386 break; 6306 6387 6307 case 25 2:6308 6309 /* Line 1806 of yacc.c */ 6310 #line 10 58"parser.yy"6388 case 259: 6389 6390 /* Line 1806 of yacc.c */ 6391 #line 1096 "parser.yy" 6311 6392 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6312 6393 break; 6313 6394 6314 case 2 53:6315 6316 /* Line 1806 of yacc.c */ 6317 #line 1 062"parser.yy"6395 case 260: 6396 6397 /* Line 1806 of yacc.c */ 6398 #line 1100 "parser.yy" 6318 6399 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6319 6400 break; 6320 6401 6321 case 2 54:6322 6323 /* Line 1806 of yacc.c */ 6324 #line 1 067"parser.yy"6402 case 261: 6403 6404 /* Line 1806 of yacc.c */ 6405 #line 1105 "parser.yy" 6325 6406 { 6326 6407 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6329 6410 break; 6330 6411 6331 case 2 55:6332 6333 /* Line 1806 of yacc.c */ 6334 #line 1 072"parser.yy"6412 case 262: 6413 6414 /* Line 1806 of yacc.c */ 6415 #line 1110 "parser.yy" 6335 6416 { 6336 6417 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6339 6420 break; 6340 6421 6341 case 2 56:6342 6343 /* Line 1806 of yacc.c */ 6344 #line 1 077"parser.yy"6422 case 263: 6423 6424 /* Line 1806 of yacc.c */ 6425 #line 1115 "parser.yy" 6345 6426 { 6346 6427 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6349 6430 break; 6350 6431 6351 case 2 57:6352 6353 /* Line 1806 of yacc.c */ 6354 #line 1 088"parser.yy"6432 case 264: 6433 6434 /* Line 1806 of yacc.c */ 6435 #line 1126 "parser.yy" 6355 6436 { 6356 6437 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6359 6440 break; 6360 6441 6361 case 2 58:6362 6363 /* Line 1806 of yacc.c */ 6364 #line 1 093"parser.yy"6442 case 265: 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1131 "parser.yy" 6365 6446 { 6366 6447 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6369 6450 break; 6370 6451 6371 case 2 59:6372 6373 /* Line 1806 of yacc.c */ 6374 #line 1 098"parser.yy"6452 case 266: 6453 6454 /* Line 1806 of yacc.c */ 6455 #line 1136 "parser.yy" 6375 6456 { 6376 6457 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6379 6460 break; 6380 6461 6381 case 26 0:6382 6383 /* Line 1806 of yacc.c */ 6384 #line 11 03"parser.yy"6462 case 267: 6463 6464 /* Line 1806 of yacc.c */ 6465 #line 1141 "parser.yy" 6385 6466 { 6386 6467 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6389 6470 break; 6390 6471 6391 case 26 1:6392 6393 /* Line 1806 of yacc.c */ 6394 #line 11 08"parser.yy"6472 case 268: 6473 6474 /* Line 1806 of yacc.c */ 6475 #line 1146 "parser.yy" 6395 6476 { 6396 6477 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6399 6480 break; 6400 6481 6401 case 26 2:6402 6403 /* Line 1806 of yacc.c */ 6404 #line 11 17"parser.yy"6482 case 269: 6483 6484 /* Line 1806 of yacc.c */ 6485 #line 1155 "parser.yy" 6405 6486 { 6406 6487 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6409 6490 break; 6410 6491 6411 case 2 63:6412 6413 /* Line 1806 of yacc.c */ 6414 #line 11 22"parser.yy"6492 case 270: 6493 6494 /* Line 1806 of yacc.c */ 6495 #line 1160 "parser.yy" 6415 6496 { 6416 6497 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6419 6500 break; 6420 6501 6421 case 2 68:6422 6423 /* Line 1806 of yacc.c */ 6424 #line 11 39"parser.yy"6502 case 275: 6503 6504 /* Line 1806 of yacc.c */ 6505 #line 1177 "parser.yy" 6425 6506 { 6426 6507 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6429 6510 break; 6430 6511 6431 case 2 69:6432 6433 /* Line 1806 of yacc.c */ 6434 #line 11 44"parser.yy"6512 case 276: 6513 6514 /* Line 1806 of yacc.c */ 6515 #line 1182 "parser.yy" 6435 6516 { 6436 6517 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6439 6520 break; 6440 6521 6441 case 2 78:6442 6443 /* Line 1806 of yacc.c */ 6444 #line 1 166"parser.yy"6522 case 285: 6523 6524 /* Line 1806 of yacc.c */ 6525 #line 1204 "parser.yy" 6445 6526 { (yyval.decl) = 0; } 6446 6527 break; 6447 6528 6448 case 28 1:6449 6450 /* Line 1806 of yacc.c */ 6451 #line 1 178"parser.yy"6529 case 288: 6530 6531 /* Line 1806 of yacc.c */ 6532 #line 1216 "parser.yy" 6452 6533 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6453 6534 break; 6454 6535 6455 case 283: 6456 6457 /* Line 1806 of yacc.c */ 6458 #line 1184 "parser.yy" 6459 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 6460 break; 6461 6462 case 284: 6463 6464 /* Line 1806 of yacc.c */ 6465 #line 1189 "parser.yy" 6536 case 291: 6537 6538 /* Line 1806 of yacc.c */ 6539 #line 1227 "parser.yy" 6466 6540 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6467 6541 break; 6468 6542 6469 case 2 85:6470 6471 /* Line 1806 of yacc.c */ 6472 #line 1 191"parser.yy"6543 case 292: 6544 6545 /* Line 1806 of yacc.c */ 6546 #line 1229 "parser.yy" 6473 6547 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6474 6548 break; 6475 6549 6476 case 2 86:6477 6478 /* Line 1806 of yacc.c */ 6479 #line 1 193"parser.yy"6550 case 293: 6551 6552 /* Line 1806 of yacc.c */ 6553 #line 1231 "parser.yy" 6480 6554 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6481 6555 break; 6482 6556 6483 case 2 87:6484 6485 /* Line 1806 of yacc.c */ 6486 #line 1 195"parser.yy"6557 case 294: 6558 6559 /* Line 1806 of yacc.c */ 6560 #line 1233 "parser.yy" 6487 6561 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6488 6562 break; 6489 6563 6490 case 2 88:6491 6492 /* Line 1806 of yacc.c */ 6493 #line 1 197"parser.yy"6564 case 295: 6565 6566 /* Line 1806 of yacc.c */ 6567 #line 1235 "parser.yy" 6494 6568 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6495 6569 break; 6496 6570 6497 case 2 89:6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1 199"parser.yy"6571 case 296: 6572 6573 /* Line 1806 of yacc.c */ 6574 #line 1237 "parser.yy" 6501 6575 { 6502 6576 typedefTable.enterScope(); … … 6504 6578 break; 6505 6579 6506 case 29 0:6507 6508 /* Line 1806 of yacc.c */ 6509 #line 12 03"parser.yy"6580 case 297: 6581 6582 /* Line 1806 of yacc.c */ 6583 #line 1241 "parser.yy" 6510 6584 { 6511 6585 typedefTable.leaveScope(); … … 6514 6588 break; 6515 6589 6516 case 29 2:6517 6518 /* Line 1806 of yacc.c */ 6519 #line 12 12"parser.yy"6590 case 299: 6591 6592 /* Line 1806 of yacc.c */ 6593 #line 1250 "parser.yy" 6520 6594 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6521 6595 break; 6522 6596 6523 case 293:6524 6525 /* Line 1806 of yacc.c */ 6526 #line 12 14"parser.yy"6597 case 300: 6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1252 "parser.yy" 6527 6601 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6528 6602 break; 6529 6603 6530 case 295:6531 6532 /* Line 1806 of yacc.c */ 6533 #line 12 25"parser.yy"6604 case 302: 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1263 "parser.yy" 6534 6608 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6535 6609 break; 6536 6610 6537 case 297:6538 6539 /* Line 1806 of yacc.c */ 6540 #line 12 34"parser.yy"6611 case 304: 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1272 "parser.yy" 6541 6615 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6542 6616 break; 6543 6617 6544 case 298:6545 6546 /* Line 1806 of yacc.c */ 6547 #line 12 36"parser.yy"6618 case 305: 6619 6620 /* Line 1806 of yacc.c */ 6621 #line 1274 "parser.yy" 6548 6622 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6549 6623 break; 6550 6624 6551 case 299:6552 6553 /* Line 1806 of yacc.c */ 6554 #line 12 38"parser.yy"6625 case 306: 6626 6627 /* Line 1806 of yacc.c */ 6628 #line 1276 "parser.yy" 6555 6629 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6556 6630 break; 6557 6631 6558 case 30 0:6559 6560 /* Line 1806 of yacc.c */ 6561 #line 12 40"parser.yy"6632 case 307: 6633 6634 /* Line 1806 of yacc.c */ 6635 #line 1278 "parser.yy" 6562 6636 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6563 6637 break; 6564 6638 6565 case 30 1:6566 6567 /* Line 1806 of yacc.c */ 6568 #line 12 42"parser.yy"6639 case 308: 6640 6641 /* Line 1806 of yacc.c */ 6642 #line 1280 "parser.yy" 6569 6643 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6570 6644 break; 6571 6645 6572 case 30 2:6573 6574 /* Line 1806 of yacc.c */ 6575 #line 12 44"parser.yy"6646 case 309: 6647 6648 /* Line 1806 of yacc.c */ 6649 #line 1282 "parser.yy" 6576 6650 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6577 6651 break; 6578 6652 6579 case 3 03:6580 6581 /* Line 1806 of yacc.c */ 6582 #line 12 46"parser.yy"6653 case 310: 6654 6655 /* Line 1806 of yacc.c */ 6656 #line 1284 "parser.yy" 6583 6657 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6584 6658 break; 6585 6659 6586 case 3 04:6587 6588 /* Line 1806 of yacc.c */ 6589 #line 12 48"parser.yy"6660 case 311: 6661 6662 /* Line 1806 of yacc.c */ 6663 #line 1286 "parser.yy" 6590 6664 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6591 6665 break; 6592 6666 6593 case 3 05:6594 6595 /* Line 1806 of yacc.c */ 6596 #line 12 53"parser.yy"6667 case 312: 6668 6669 /* Line 1806 of yacc.c */ 6670 #line 1291 "parser.yy" 6597 6671 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6598 6672 break; 6599 6673 6600 case 3 06:6601 6602 /* Line 1806 of yacc.c */ 6603 #line 12 55"parser.yy"6674 case 313: 6675 6676 /* Line 1806 of yacc.c */ 6677 #line 1293 "parser.yy" 6604 6678 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6605 6679 break; 6606 6680 6607 case 3 07:6608 6609 /* Line 1806 of yacc.c */ 6610 #line 12 57"parser.yy"6681 case 314: 6682 6683 /* Line 1806 of yacc.c */ 6684 #line 1295 "parser.yy" 6611 6685 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6612 6686 break; 6613 6687 6614 case 3 08:6615 6616 /* Line 1806 of yacc.c */ 6617 #line 12 59"parser.yy"6688 case 315: 6689 6690 /* Line 1806 of yacc.c */ 6691 #line 1297 "parser.yy" 6618 6692 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6619 6693 break; 6620 6694 6621 case 3 09:6622 6623 /* Line 1806 of yacc.c */ 6624 #line 12 61"parser.yy"6695 case 316: 6696 6697 /* Line 1806 of yacc.c */ 6698 #line 1299 "parser.yy" 6625 6699 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6626 6700 break; 6627 6701 6628 case 31 0:6629 6630 /* Line 1806 of yacc.c */ 6631 #line 1 263"parser.yy"6702 case 317: 6703 6704 /* Line 1806 of yacc.c */ 6705 #line 1301 "parser.yy" 6632 6706 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6633 6707 break; 6634 6708 6635 case 31 1:6636 6637 /* Line 1806 of yacc.c */ 6638 #line 1 265"parser.yy"6709 case 318: 6710 6711 /* Line 1806 of yacc.c */ 6712 #line 1303 "parser.yy" 6639 6713 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6640 6714 break; 6641 6715 6642 case 31 2:6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1 267"parser.yy"6716 case 319: 6717 6718 /* Line 1806 of yacc.c */ 6719 #line 1305 "parser.yy" 6646 6720 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6647 6721 break; 6648 6722 6649 case 3 13:6650 6651 /* Line 1806 of yacc.c */ 6652 #line 1 269"parser.yy"6723 case 320: 6724 6725 /* Line 1806 of yacc.c */ 6726 #line 1307 "parser.yy" 6653 6727 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6654 6728 break; 6655 6729 6656 case 3 14:6657 6658 /* Line 1806 of yacc.c */ 6659 #line 1 271"parser.yy"6730 case 321: 6731 6732 /* Line 1806 of yacc.c */ 6733 #line 1309 "parser.yy" 6660 6734 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6661 6735 break; 6662 6736 6663 case 3 15:6664 6665 /* Line 1806 of yacc.c */ 6666 #line 1 273"parser.yy"6737 case 322: 6738 6739 /* Line 1806 of yacc.c */ 6740 #line 1311 "parser.yy" 6667 6741 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6668 6742 break; 6669 6743 6670 case 3 16:6671 6672 /* Line 1806 of yacc.c */ 6673 #line 1 275"parser.yy"6744 case 323: 6745 6746 /* Line 1806 of yacc.c */ 6747 #line 1313 "parser.yy" 6674 6748 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6675 6749 break; 6676 6750 6677 case 3 18:6678 6679 /* Line 1806 of yacc.c */ 6680 #line 1 282"parser.yy"6751 case 325: 6752 6753 /* Line 1806 of yacc.c */ 6754 #line 1320 "parser.yy" 6681 6755 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6682 6756 break; 6683 6757 6684 case 3 19:6685 6686 /* Line 1806 of yacc.c */ 6687 #line 1 284"parser.yy"6758 case 326: 6759 6760 /* Line 1806 of yacc.c */ 6761 #line 1322 "parser.yy" 6688 6762 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6689 6763 break; 6690 6764 6691 case 32 0:6692 6693 /* Line 1806 of yacc.c */ 6694 #line 1 286"parser.yy"6765 case 327: 6766 6767 /* Line 1806 of yacc.c */ 6768 #line 1324 "parser.yy" 6695 6769 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6696 6770 break; 6697 6771 6698 case 32 1:6699 6700 /* Line 1806 of yacc.c */ 6701 #line 1 288"parser.yy"6772 case 328: 6773 6774 /* Line 1806 of yacc.c */ 6775 #line 1326 "parser.yy" 6702 6776 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6703 6777 break; 6704 6778 6705 case 3 23:6706 6707 /* Line 1806 of yacc.c */ 6708 #line 1 294"parser.yy"6779 case 330: 6780 6781 /* Line 1806 of yacc.c */ 6782 #line 1332 "parser.yy" 6709 6783 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6710 6784 break; 6711 6785 6712 case 3 25:6713 6714 /* Line 1806 of yacc.c */ 6715 #line 13 01"parser.yy"6786 case 332: 6787 6788 /* Line 1806 of yacc.c */ 6789 #line 1339 "parser.yy" 6716 6790 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6717 6791 break; 6718 6792 6719 case 3 26:6720 6721 /* Line 1806 of yacc.c */ 6722 #line 13 03"parser.yy"6793 case 333: 6794 6795 /* Line 1806 of yacc.c */ 6796 #line 1341 "parser.yy" 6723 6797 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6724 6798 break; 6725 6799 6726 case 3 27:6727 6728 /* Line 1806 of yacc.c */ 6729 #line 13 05"parser.yy"6800 case 334: 6801 6802 /* Line 1806 of yacc.c */ 6803 #line 1343 "parser.yy" 6730 6804 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6731 6805 break; 6732 6806 6733 case 3 28:6734 6735 /* Line 1806 of yacc.c */ 6736 #line 13 10"parser.yy"6807 case 335: 6808 6809 /* Line 1806 of yacc.c */ 6810 #line 1348 "parser.yy" 6737 6811 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6738 6812 break; 6739 6813 6740 case 3 29:6741 6742 /* Line 1806 of yacc.c */ 6743 #line 13 12"parser.yy"6814 case 336: 6815 6816 /* Line 1806 of yacc.c */ 6817 #line 1350 "parser.yy" 6744 6818 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6745 6819 break; 6746 6820 6747 case 33 0:6748 6749 /* Line 1806 of yacc.c */ 6750 #line 13 14"parser.yy"6821 case 337: 6822 6823 /* Line 1806 of yacc.c */ 6824 #line 1352 "parser.yy" 6751 6825 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6752 6826 break; 6753 6827 6754 case 33 1:6755 6756 /* Line 1806 of yacc.c */ 6757 #line 13 16"parser.yy"6828 case 338: 6829 6830 /* Line 1806 of yacc.c */ 6831 #line 1354 "parser.yy" 6758 6832 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6759 6833 break; 6760 6834 6761 case 3 33:6762 6763 /* Line 1806 of yacc.c */ 6764 #line 13 22"parser.yy"6835 case 340: 6836 6837 /* Line 1806 of yacc.c */ 6838 #line 1360 "parser.yy" 6765 6839 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6766 6840 break; 6767 6841 6768 case 3 34:6769 6770 /* Line 1806 of yacc.c */ 6771 #line 13 24"parser.yy"6842 case 341: 6843 6844 /* Line 1806 of yacc.c */ 6845 #line 1362 "parser.yy" 6772 6846 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6773 6847 break; 6774 6848 6775 case 3 35:6776 6777 /* Line 1806 of yacc.c */ 6778 #line 13 26"parser.yy"6849 case 342: 6850 6851 /* Line 1806 of yacc.c */ 6852 #line 1364 "parser.yy" 6779 6853 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6780 6854 break; 6781 6855 6782 case 3 37:6783 6784 /* Line 1806 of yacc.c */ 6785 #line 13 32"parser.yy"6856 case 344: 6857 6858 /* Line 1806 of yacc.c */ 6859 #line 1370 "parser.yy" 6786 6860 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6787 6861 break; 6788 6862 6789 case 3 38:6790 6791 /* Line 1806 of yacc.c */ 6792 #line 13 34"parser.yy"6863 case 345: 6864 6865 /* Line 1806 of yacc.c */ 6866 #line 1372 "parser.yy" 6793 6867 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6794 6868 break; 6795 6869 6796 case 34 0:6797 6798 /* Line 1806 of yacc.c */ 6799 #line 13 40"parser.yy"6870 case 347: 6871 6872 /* Line 1806 of yacc.c */ 6873 #line 1378 "parser.yy" 6800 6874 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6801 6875 break; 6802 6876 6803 case 34 1:6804 6805 /* Line 1806 of yacc.c */ 6806 #line 13 42"parser.yy"6877 case 348: 6878 6879 /* Line 1806 of yacc.c */ 6880 #line 1380 "parser.yy" 6807 6881 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6808 6882 break; 6809 6883 6810 case 34 2:6811 6812 /* Line 1806 of yacc.c */ 6813 #line 13 44"parser.yy"6884 case 349: 6885 6886 /* Line 1806 of yacc.c */ 6887 #line 1382 "parser.yy" 6814 6888 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6815 6889 break; 6816 6890 6817 case 3 43:6818 6819 /* Line 1806 of yacc.c */ 6820 #line 13 49"parser.yy"6891 case 350: 6892 6893 /* Line 1806 of yacc.c */ 6894 #line 1387 "parser.yy" 6821 6895 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6822 6896 break; 6823 6897 6824 case 3 44:6825 6826 /* Line 1806 of yacc.c */ 6827 #line 13 51"parser.yy"6898 case 351: 6899 6900 /* Line 1806 of yacc.c */ 6901 #line 1389 "parser.yy" 6828 6902 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6829 6903 break; 6830 6904 6831 case 3 45:6832 6833 /* Line 1806 of yacc.c */ 6834 #line 13 53"parser.yy"6905 case 352: 6906 6907 /* Line 1806 of yacc.c */ 6908 #line 1391 "parser.yy" 6835 6909 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6836 6910 break; 6837 6911 6838 case 3 48:6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1 363"parser.yy"6912 case 355: 6913 6914 /* Line 1806 of yacc.c */ 6915 #line 1401 "parser.yy" 6842 6916 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); } 6843 6917 break; 6844 6918 6845 case 3 49:6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1 365"parser.yy"6919 case 356: 6920 6921 /* Line 1806 of yacc.c */ 6922 #line 1403 "parser.yy" 6849 6923 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); } 6850 6924 break; 6851 6925 6852 case 35 0:6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1 367"parser.yy"6926 case 357: 6927 6928 /* Line 1806 of yacc.c */ 6929 #line 1405 "parser.yy" 6856 6930 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); } 6857 6931 break; 6858 6932 6859 case 35 1:6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1 369"parser.yy"6933 case 358: 6934 6935 /* Line 1806 of yacc.c */ 6936 #line 1407 "parser.yy" 6863 6937 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); } 6864 6938 break; 6865 6939 6866 case 35 2:6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1 371"parser.yy"6940 case 359: 6941 6942 /* Line 1806 of yacc.c */ 6943 #line 1409 "parser.yy" 6870 6944 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6871 6945 break; 6872 6946 6873 case 3 53:6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1 376"parser.yy"6947 case 360: 6948 6949 /* Line 1806 of yacc.c */ 6950 #line 1414 "parser.yy" 6877 6951 { (yyval.aggKey) = DeclarationNode::Struct; } 6878 6952 break; 6879 6953 6880 case 3 54:6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1 378"parser.yy"6954 case 361: 6955 6956 /* Line 1806 of yacc.c */ 6957 #line 1416 "parser.yy" 6884 6958 { (yyval.aggKey) = DeclarationNode::Union; } 6885 6959 break; 6886 6960 6887 case 3 55:6888 6889 /* Line 1806 of yacc.c */ 6890 #line 1 383"parser.yy"6961 case 362: 6962 6963 /* Line 1806 of yacc.c */ 6964 #line 1421 "parser.yy" 6891 6965 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 6892 6966 break; 6893 6967 6894 case 3 56:6895 6896 /* Line 1806 of yacc.c */ 6897 #line 1 385"parser.yy"6968 case 363: 6969 6970 /* Line 1806 of yacc.c */ 6971 #line 1423 "parser.yy" 6898 6972 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 6899 6973 break; 6900 6974 6901 case 3 58:6902 6903 /* Line 1806 of yacc.c */ 6904 #line 1 391"parser.yy"6975 case 365: 6976 6977 /* Line 1806 of yacc.c */ 6978 #line 1429 "parser.yy" 6905 6979 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 6906 6980 break; 6907 6981 6908 case 36 0:6909 6910 /* Line 1806 of yacc.c */ 6911 #line 1 394"parser.yy"6982 case 367: 6983 6984 /* Line 1806 of yacc.c */ 6985 #line 1432 "parser.yy" 6912 6986 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 6913 6987 break; 6914 6988 6915 case 36 2:6916 6917 /* Line 1806 of yacc.c */ 6918 #line 14 00"parser.yy"6989 case 369: 6990 6991 /* Line 1806 of yacc.c */ 6992 #line 1438 "parser.yy" 6919 6993 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6920 6994 break; 6921 6995 6922 case 3 63:6923 6924 /* Line 1806 of yacc.c */ 6925 #line 14 02"parser.yy"6996 case 370: 6997 6998 /* Line 1806 of yacc.c */ 6999 #line 1440 "parser.yy" 6926 7000 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6927 7001 break; 6928 7002 6929 case 3 64:6930 6931 /* Line 1806 of yacc.c */ 6932 #line 14 04"parser.yy"7003 case 371: 7004 7005 /* Line 1806 of yacc.c */ 7006 #line 1442 "parser.yy" 6933 7007 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6934 7008 break; 6935 7009 6936 case 3 65:6937 6938 /* Line 1806 of yacc.c */ 6939 #line 14 09"parser.yy"7010 case 372: 7011 7012 /* Line 1806 of yacc.c */ 7013 #line 1447 "parser.yy" 6940 7014 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6941 7015 break; 6942 7016 6943 case 3 66:6944 6945 /* Line 1806 of yacc.c */ 6946 #line 14 11"parser.yy"7017 case 373: 7018 7019 /* Line 1806 of yacc.c */ 7020 #line 1449 "parser.yy" 6947 7021 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6948 7022 break; 6949 7023 6950 case 3 67:6951 6952 /* Line 1806 of yacc.c */ 6953 #line 14 16"parser.yy"7024 case 374: 7025 7026 /* Line 1806 of yacc.c */ 7027 #line 1454 "parser.yy" 6954 7028 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6955 7029 break; 6956 7030 6957 case 3 68:6958 6959 /* Line 1806 of yacc.c */ 6960 #line 14 18"parser.yy"7031 case 375: 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1456 "parser.yy" 6961 7035 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6962 7036 break; 6963 7037 6964 case 3 69:6965 6966 /* Line 1806 of yacc.c */ 6967 #line 14 21"parser.yy"7038 case 376: 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1459 "parser.yy" 6968 7042 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6969 7043 break; 6970 7044 6971 case 37 0:6972 6973 /* Line 1806 of yacc.c */ 6974 #line 14 24"parser.yy"7045 case 377: 7046 7047 /* Line 1806 of yacc.c */ 7048 #line 1462 "parser.yy" 6975 7049 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6976 7050 break; 6977 7051 6978 case 37 2:6979 6980 /* Line 1806 of yacc.c */ 6981 #line 14 30"parser.yy"7052 case 379: 7053 7054 /* Line 1806 of yacc.c */ 7055 #line 1468 "parser.yy" 6982 7056 { (yyval.en) = 0; } 6983 7057 break; 6984 7058 6985 case 3 73:6986 6987 /* Line 1806 of yacc.c */ 6988 #line 14 32"parser.yy"7059 case 380: 7060 7061 /* Line 1806 of yacc.c */ 7062 #line 1470 "parser.yy" 6989 7063 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6990 7064 break; 6991 7065 6992 case 3 74:6993 6994 /* Line 1806 of yacc.c */ 6995 #line 14 37"parser.yy"7066 case 381: 7067 7068 /* Line 1806 of yacc.c */ 7069 #line 1475 "parser.yy" 6996 7070 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6997 7071 break; 6998 7072 6999 case 3 76:7000 7001 /* Line 1806 of yacc.c */ 7002 #line 14 46"parser.yy"7073 case 383: 7074 7075 /* Line 1806 of yacc.c */ 7076 #line 1484 "parser.yy" 7003 7077 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7004 7078 break; 7005 7079 7006 case 3 77:7007 7008 /* Line 1806 of yacc.c */ 7009 #line 14 48"parser.yy"7080 case 384: 7081 7082 /* Line 1806 of yacc.c */ 7083 #line 1486 "parser.yy" 7010 7084 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); } 7011 7085 break; 7012 7086 7013 case 3 78:7014 7015 /* Line 1806 of yacc.c */ 7016 #line 14 50"parser.yy"7087 case 385: 7088 7089 /* Line 1806 of yacc.c */ 7090 #line 1488 "parser.yy" 7017 7091 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); } 7018 7092 break; 7019 7093 7020 case 3 79:7021 7022 /* Line 1806 of yacc.c */ 7023 #line 14 55"parser.yy"7094 case 386: 7095 7096 /* Line 1806 of yacc.c */ 7097 #line 1493 "parser.yy" 7024 7098 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7025 7099 break; 7026 7100 7027 case 38 0:7028 7029 /* Line 1806 of yacc.c */ 7030 #line 14 57"parser.yy"7101 case 387: 7102 7103 /* Line 1806 of yacc.c */ 7104 #line 1495 "parser.yy" 7031 7105 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7032 7106 break; 7033 7107 7034 case 38 1:7035 7036 /* Line 1806 of yacc.c */ 7037 #line 1 462"parser.yy"7108 case 388: 7109 7110 /* Line 1806 of yacc.c */ 7111 #line 1500 "parser.yy" 7038 7112 { (yyval.en) = 0; } 7039 7113 break; 7040 7114 7041 case 38 2:7042 7043 /* Line 1806 of yacc.c */ 7044 #line 1 464"parser.yy"7115 case 389: 7116 7117 /* Line 1806 of yacc.c */ 7118 #line 1502 "parser.yy" 7045 7119 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7046 7120 break; 7047 7121 7048 case 3 83:7049 7050 /* Line 1806 of yacc.c */ 7051 #line 1 471"parser.yy"7122 case 390: 7123 7124 /* Line 1806 of yacc.c */ 7125 #line 1509 "parser.yy" 7052 7126 { (yyval.decl) = 0; } 7053 7127 break; 7054 7128 7055 case 3 87:7056 7057 /* Line 1806 of yacc.c */ 7058 #line 1 479"parser.yy"7129 case 394: 7130 7131 /* Line 1806 of yacc.c */ 7132 #line 1517 "parser.yy" 7059 7133 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7060 7134 break; 7061 7135 7062 case 3 88:7063 7064 /* Line 1806 of yacc.c */ 7065 #line 1 481"parser.yy"7136 case 395: 7137 7138 /* Line 1806 of yacc.c */ 7139 #line 1519 "parser.yy" 7066 7140 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7067 7141 break; 7068 7142 7069 case 3 89:7070 7071 /* Line 1806 of yacc.c */ 7072 #line 1 483"parser.yy"7143 case 396: 7144 7145 /* Line 1806 of yacc.c */ 7146 #line 1521 "parser.yy" 7073 7147 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7074 7148 break; 7075 7149 7076 case 39 1:7077 7078 /* Line 1806 of yacc.c */ 7079 #line 1 491"parser.yy"7150 case 398: 7151 7152 /* Line 1806 of yacc.c */ 7153 #line 1529 "parser.yy" 7080 7154 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7081 7155 break; 7082 7156 7083 case 39 2:7084 7085 /* Line 1806 of yacc.c */ 7086 #line 1 493"parser.yy"7157 case 399: 7158 7159 /* Line 1806 of yacc.c */ 7160 #line 1531 "parser.yy" 7087 7161 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7088 7162 break; 7089 7163 7090 case 393:7091 7092 /* Line 1806 of yacc.c */ 7093 #line 1 495"parser.yy"7164 case 400: 7165 7166 /* Line 1806 of yacc.c */ 7167 #line 1533 "parser.yy" 7094 7168 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7095 7169 break; 7096 7170 7097 case 395:7098 7099 /* Line 1806 of yacc.c */ 7100 #line 15 01"parser.yy"7171 case 402: 7172 7173 /* Line 1806 of yacc.c */ 7174 #line 1539 "parser.yy" 7101 7175 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7102 7176 break; 7103 7177 7104 case 396:7105 7106 /* Line 1806 of yacc.c */ 7107 #line 15 06"parser.yy"7178 case 403: 7179 7180 /* Line 1806 of yacc.c */ 7181 #line 1544 "parser.yy" 7108 7182 { (yyval.decl) = 0; } 7109 7183 break; 7110 7184 7111 case 399:7112 7113 /* Line 1806 of yacc.c */ 7114 #line 15 13"parser.yy"7185 case 406: 7186 7187 /* Line 1806 of yacc.c */ 7188 #line 1551 "parser.yy" 7115 7189 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7116 7190 break; 7117 7191 7118 case 40 2:7119 7120 /* Line 1806 of yacc.c */ 7121 #line 15 20"parser.yy"7192 case 409: 7193 7194 /* Line 1806 of yacc.c */ 7195 #line 1558 "parser.yy" 7122 7196 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7123 7197 break; 7124 7198 7125 case 4 03:7126 7127 /* Line 1806 of yacc.c */ 7128 #line 15 22"parser.yy"7199 case 410: 7200 7201 /* Line 1806 of yacc.c */ 7202 #line 1560 "parser.yy" 7129 7203 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7130 7204 break; 7131 7205 7132 case 4 05:7133 7134 /* Line 1806 of yacc.c */ 7135 #line 15 31"parser.yy"7206 case 412: 7207 7208 /* Line 1806 of yacc.c */ 7209 #line 1569 "parser.yy" 7136 7210 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7137 7211 break; 7138 7212 7139 case 4 06:7140 7141 /* Line 1806 of yacc.c */ 7142 #line 15 34"parser.yy"7213 case 413: 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1572 "parser.yy" 7143 7217 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7144 7218 break; 7145 7219 7146 case 4 07:7147 7148 /* Line 1806 of yacc.c */ 7149 #line 15 36"parser.yy"7220 case 414: 7221 7222 /* Line 1806 of yacc.c */ 7223 #line 1574 "parser.yy" 7150 7224 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7151 7225 break; 7152 7226 7153 case 41 2:7154 7155 /* Line 1806 of yacc.c */ 7156 #line 15 46"parser.yy"7227 case 419: 7228 7229 /* Line 1806 of yacc.c */ 7230 #line 1584 "parser.yy" 7157 7231 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7158 7232 break; 7159 7233 7160 case 4 14:7161 7162 /* Line 1806 of yacc.c */ 7163 #line 15 52"parser.yy"7234 case 421: 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1590 "parser.yy" 7164 7238 { 7165 7239 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7168 7242 break; 7169 7243 7170 case 4 15:7171 7172 /* Line 1806 of yacc.c */ 7173 #line 15 57"parser.yy"7244 case 422: 7245 7246 /* Line 1806 of yacc.c */ 7247 #line 1595 "parser.yy" 7174 7248 { 7175 7249 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7178 7252 break; 7179 7253 7180 case 4 17:7181 7182 /* Line 1806 of yacc.c */ 7183 #line 1 566"parser.yy"7254 case 424: 7255 7256 /* Line 1806 of yacc.c */ 7257 #line 1604 "parser.yy" 7184 7258 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7185 7259 break; 7186 7260 7187 case 4 18:7188 7189 /* Line 1806 of yacc.c */ 7190 #line 1 575"parser.yy"7261 case 425: 7262 7263 /* Line 1806 of yacc.c */ 7264 #line 1613 "parser.yy" 7191 7265 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7192 7266 break; 7193 7267 7194 case 4 19:7195 7196 /* Line 1806 of yacc.c */ 7197 #line 1 577"parser.yy"7268 case 426: 7269 7270 /* Line 1806 of yacc.c */ 7271 #line 1615 "parser.yy" 7198 7272 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7199 7273 break; 7200 7274 7201 case 43 1:7202 7203 /* Line 1806 of yacc.c */ 7204 #line 16 02"parser.yy"7275 case 438: 7276 7277 /* Line 1806 of yacc.c */ 7278 #line 1640 "parser.yy" 7205 7279 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7206 7280 break; 7207 7281 7208 case 4 35:7209 7210 /* Line 1806 of yacc.c */ 7211 #line 16 10"parser.yy"7282 case 442: 7283 7284 /* Line 1806 of yacc.c */ 7285 #line 1648 "parser.yy" 7212 7286 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7213 7287 break; 7214 7288 7215 case 4 36:7216 7217 /* Line 1806 of yacc.c */ 7218 #line 16 15"parser.yy"7289 case 443: 7290 7291 /* Line 1806 of yacc.c */ 7292 #line 1653 "parser.yy" 7219 7293 { (yyval.in) = 0; } 7220 7294 break; 7221 7295 7222 case 4 37:7223 7224 /* Line 1806 of yacc.c */ 7225 #line 16 17"parser.yy"7296 case 444: 7297 7298 /* Line 1806 of yacc.c */ 7299 #line 1655 "parser.yy" 7226 7300 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7227 7301 break; 7228 7302 7229 case 4 38:7230 7231 /* Line 1806 of yacc.c */ 7232 #line 16 21"parser.yy"7303 case 445: 7304 7305 /* Line 1806 of yacc.c */ 7306 #line 1659 "parser.yy" 7233 7307 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7234 7308 break; 7235 7309 7236 case 4 39:7237 7238 /* Line 1806 of yacc.c */ 7239 #line 16 22"parser.yy"7310 case 446: 7311 7312 /* Line 1806 of yacc.c */ 7313 #line 1660 "parser.yy" 7240 7314 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7241 7315 break; 7242 7316 7243 case 44 1:7244 7245 /* Line 1806 of yacc.c */ 7246 #line 16 27"parser.yy"7317 case 448: 7318 7319 /* Line 1806 of yacc.c */ 7320 #line 1665 "parser.yy" 7247 7321 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7248 7322 break; 7249 7323 7250 case 44 2:7251 7252 /* Line 1806 of yacc.c */ 7253 #line 16 28"parser.yy"7324 case 449: 7325 7326 /* Line 1806 of yacc.c */ 7327 #line 1666 "parser.yy" 7254 7328 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7255 7329 break; 7256 7330 7257 case 4 43:7258 7259 /* Line 1806 of yacc.c */ 7260 #line 16 30"parser.yy"7331 case 450: 7332 7333 /* Line 1806 of yacc.c */ 7334 #line 1668 "parser.yy" 7261 7335 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7262 7336 break; 7263 7337 7264 case 4 45:7265 7266 /* Line 1806 of yacc.c */ 7267 #line 16 46"parser.yy"7338 case 452: 7339 7340 /* Line 1806 of yacc.c */ 7341 #line 1684 "parser.yy" 7268 7342 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7269 7343 break; 7270 7344 7271 case 4 47:7272 7273 /* Line 1806 of yacc.c */ 7274 #line 16 52"parser.yy"7345 case 454: 7346 7347 /* Line 1806 of yacc.c */ 7348 #line 1690 "parser.yy" 7275 7349 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7276 7350 break; 7277 7351 7278 case 448: 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1658 "parser.yy" 7282 { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); } 7283 break; 7284 7285 case 449: 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1661 "parser.yy" 7289 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7290 break; 7291 7292 case 450: 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1663 "parser.yy" 7296 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7297 break; 7298 7299 case 451: 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1665 "parser.yy" 7303 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); } 7304 break; 7305 7306 case 452: 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1667 "parser.yy" 7310 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7311 break; 7312 7313 case 454: 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1691 "parser.yy" 7352 case 455: 7353 7354 /* Line 1806 of yacc.c */ 7355 #line 1697 "parser.yy" 7356 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7357 break; 7358 7359 case 456: 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1699 "parser.yy" 7363 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7364 break; 7365 7366 case 457: 7367 7368 /* Line 1806 of yacc.c */ 7369 #line 1702 "parser.yy" 7370 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7371 break; 7372 7373 case 458: 7374 7375 /* Line 1806 of yacc.c */ 7376 #line 1704 "parser.yy" 7377 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7378 break; 7379 7380 case 459: 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1706 "parser.yy" 7384 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7385 break; 7386 7387 case 460: 7388 7389 /* Line 1806 of yacc.c */ 7390 #line 1708 "parser.yy" 7391 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7392 break; 7393 7394 case 462: 7395 7396 /* Line 1806 of yacc.c */ 7397 #line 1732 "parser.yy" 7317 7398 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7318 7399 break; 7319 7400 7320 case 4 55:7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1 693"parser.yy"7401 case 463: 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1734 "parser.yy" 7324 7405 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7325 7406 break; 7326 7407 7327 case 4 56:7328 7329 /* Line 1806 of yacc.c */ 7330 #line 1 695"parser.yy"7408 case 464: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1736 "parser.yy" 7331 7412 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7332 7413 break; 7333 7414 7334 case 4 58:7335 7336 /* Line 1806 of yacc.c */ 7337 #line 17 01"parser.yy"7415 case 466: 7416 7417 /* Line 1806 of yacc.c */ 7418 #line 1742 "parser.yy" 7338 7419 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7339 7420 break; 7340 7421 7341 case 4 59:7342 7343 /* Line 1806 of yacc.c */ 7344 #line 17 03"parser.yy"7422 case 467: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1744 "parser.yy" 7345 7426 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7346 7427 break; 7347 7428 7348 case 46 0:7349 7350 /* Line 1806 of yacc.c */ 7351 #line 17 08"parser.yy"7429 case 468: 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1749 "parser.yy" 7352 7433 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7353 7434 break; 7354 7435 7355 case 4 62:7356 7357 /* Line 1806 of yacc.c */ 7358 #line 17 14"parser.yy"7436 case 470: 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1755 "parser.yy" 7359 7440 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7360 7441 break; 7361 7442 7362 case 4 63:7363 7364 /* Line 1806 of yacc.c */ 7365 #line 17 19"parser.yy"7443 case 471: 7444 7445 /* Line 1806 of yacc.c */ 7446 #line 1760 "parser.yy" 7366 7447 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7367 7448 break; 7368 7449 7369 case 4 64:7370 7371 /* Line 1806 of yacc.c */ 7372 #line 17 21"parser.yy"7450 case 472: 7451 7452 /* Line 1806 of yacc.c */ 7453 #line 1762 "parser.yy" 7373 7454 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7374 7455 break; 7375 7456 7376 case 4 66:7377 7378 /* Line 1806 of yacc.c */ 7379 #line 17 27"parser.yy"7457 case 474: 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1768 "parser.yy" 7380 7461 { (yyval.tclass) = DeclarationNode::Type; } 7381 7462 break; 7382 7463 7383 case 4 67:7384 7385 /* Line 1806 of yacc.c */ 7386 #line 17 29"parser.yy"7464 case 475: 7465 7466 /* Line 1806 of yacc.c */ 7467 #line 1770 "parser.yy" 7387 7468 { (yyval.tclass) = DeclarationNode::Ftype; } 7388 7469 break; 7389 7470 7390 case 4 68:7391 7392 /* Line 1806 of yacc.c */ 7393 #line 17 31"parser.yy"7471 case 476: 7472 7473 /* Line 1806 of yacc.c */ 7474 #line 1772 "parser.yy" 7394 7475 { (yyval.tclass) = DeclarationNode::Dtype; } 7395 7476 break; 7396 7477 7397 case 4 69:7398 7399 /* Line 1806 of yacc.c */ 7400 #line 17 36"parser.yy"7478 case 477: 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1777 "parser.yy" 7401 7482 { (yyval.decl) = 0; } 7402 7483 break; 7403 7484 7404 case 47 0:7405 7406 /* Line 1806 of yacc.c */ 7407 #line 17 38"parser.yy"7485 case 478: 7486 7487 /* Line 1806 of yacc.c */ 7488 #line 1779 "parser.yy" 7408 7489 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7409 7490 break; 7410 7491 7411 case 47 1:7412 7413 /* Line 1806 of yacc.c */ 7414 #line 17 43"parser.yy"7492 case 479: 7493 7494 /* Line 1806 of yacc.c */ 7495 #line 1784 "parser.yy" 7415 7496 { 7416 7497 typedefTable.openContext( *(yyvsp[(2) - (5)].tok) ); … … 7419 7500 break; 7420 7501 7421 case 4 72:7422 7423 /* Line 1806 of yacc.c */ 7424 #line 17 48"parser.yy"7502 case 480: 7503 7504 /* Line 1806 of yacc.c */ 7505 #line 1789 "parser.yy" 7425 7506 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7426 7507 break; 7427 7508 7428 case 4 73:7429 7430 /* Line 1806 of yacc.c */ 7431 #line 17 50"parser.yy"7509 case 481: 7510 7511 /* Line 1806 of yacc.c */ 7512 #line 1791 "parser.yy" 7432 7513 { (yyval.decl) = 0; } 7433 7514 break; 7434 7515 7435 case 4 74:7436 7437 /* Line 1806 of yacc.c */ 7438 #line 17 55"parser.yy"7516 case 482: 7517 7518 /* Line 1806 of yacc.c */ 7519 #line 1796 "parser.yy" 7439 7520 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7440 7521 break; 7441 7522 7442 case 4 76:7443 7444 /* Line 1806 of yacc.c */ 7445 #line 17 58"parser.yy"7523 case 484: 7524 7525 /* Line 1806 of yacc.c */ 7526 #line 1799 "parser.yy" 7446 7527 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7447 7528 break; 7448 7529 7449 case 4 77:7450 7451 /* Line 1806 of yacc.c */ 7452 #line 1 760"parser.yy"7530 case 485: 7531 7532 /* Line 1806 of yacc.c */ 7533 #line 1801 "parser.yy" 7453 7534 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7454 7535 break; 7455 7536 7456 case 4 78:7457 7458 /* Line 1806 of yacc.c */ 7459 #line 1 765"parser.yy"7537 case 486: 7538 7539 /* Line 1806 of yacc.c */ 7540 #line 1806 "parser.yy" 7460 7541 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7461 7542 break; 7462 7543 7463 case 4 79:7464 7465 /* Line 1806 of yacc.c */ 7466 #line 1 767"parser.yy"7544 case 487: 7545 7546 /* Line 1806 of yacc.c */ 7547 #line 1808 "parser.yy" 7467 7548 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7468 7549 break; 7469 7550 7470 case 48 0:7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1 769"parser.yy"7551 case 488: 7552 7553 /* Line 1806 of yacc.c */ 7554 #line 1810 "parser.yy" 7474 7555 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7475 7556 break; 7476 7557 7477 case 48 1:7478 7479 /* Line 1806 of yacc.c */ 7480 #line 1 774"parser.yy"7558 case 489: 7559 7560 /* Line 1806 of yacc.c */ 7561 #line 1815 "parser.yy" 7481 7562 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7482 7563 break; 7483 7564 7484 case 4 82:7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1 776"parser.yy"7565 case 490: 7566 7567 /* Line 1806 of yacc.c */ 7568 #line 1817 "parser.yy" 7488 7569 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7489 7570 break; 7490 7571 7491 case 4 83:7492 7493 /* Line 1806 of yacc.c */ 7494 #line 1 781"parser.yy"7572 case 491: 7573 7574 /* Line 1806 of yacc.c */ 7575 #line 1822 "parser.yy" 7495 7576 { 7496 7577 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7499 7580 break; 7500 7581 7501 case 4 84:7502 7503 /* Line 1806 of yacc.c */ 7504 #line 1 786"parser.yy"7582 case 492: 7583 7584 /* Line 1806 of yacc.c */ 7585 #line 1827 "parser.yy" 7505 7586 { 7506 7587 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7509 7590 break; 7510 7591 7511 case 4 85:7512 7513 /* Line 1806 of yacc.c */ 7514 #line 1 794"parser.yy"7592 case 493: 7593 7594 /* Line 1806 of yacc.c */ 7595 #line 1835 "parser.yy" 7515 7596 { 7516 7597 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7519 7600 break; 7520 7601 7521 case 4 86:7522 7523 /* Line 1806 of yacc.c */ 7524 #line 1 799"parser.yy"7602 case 494: 7603 7604 /* Line 1806 of yacc.c */ 7605 #line 1840 "parser.yy" 7525 7606 { 7526 7607 typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) ); … … 7529 7610 break; 7530 7611 7531 case 4 87:7532 7533 /* Line 1806 of yacc.c */ 7534 #line 18 04"parser.yy"7612 case 495: 7613 7614 /* Line 1806 of yacc.c */ 7615 #line 1845 "parser.yy" 7535 7616 { 7536 7617 typedefTable.leaveContext(); … … 7540 7621 break; 7541 7622 7542 case 4 89:7543 7544 /* Line 1806 of yacc.c */ 7545 #line 18 14"parser.yy"7623 case 497: 7624 7625 /* Line 1806 of yacc.c */ 7626 #line 1855 "parser.yy" 7546 7627 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7547 7628 break; 7548 7629 7549 case 492:7550 7551 /* Line 1806 of yacc.c */ 7552 #line 18 24"parser.yy"7630 case 500: 7631 7632 /* Line 1806 of yacc.c */ 7633 #line 1865 "parser.yy" 7553 7634 { 7554 7635 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7557 7638 break; 7558 7639 7559 case 493:7560 7561 /* Line 1806 of yacc.c */ 7562 #line 18 29"parser.yy"7640 case 501: 7641 7642 /* Line 1806 of yacc.c */ 7643 #line 1870 "parser.yy" 7563 7644 { 7564 7645 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7567 7648 break; 7568 7649 7569 case 494:7570 7571 /* Line 1806 of yacc.c */ 7572 #line 18 34"parser.yy"7650 case 502: 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1875 "parser.yy" 7573 7654 { 7574 7655 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7577 7658 break; 7578 7659 7579 case 495:7580 7581 /* Line 1806 of yacc.c */ 7582 #line 18 42"parser.yy"7660 case 503: 7661 7662 /* Line 1806 of yacc.c */ 7663 #line 1883 "parser.yy" 7583 7664 { 7584 7665 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7587 7668 break; 7588 7669 7589 case 496:7590 7591 /* Line 1806 of yacc.c */ 7592 #line 18 47"parser.yy"7670 case 504: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1888 "parser.yy" 7593 7674 { 7594 7675 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7597 7678 break; 7598 7679 7599 case 497:7600 7601 /* Line 1806 of yacc.c */ 7602 #line 18 57"parser.yy"7680 case 505: 7681 7682 /* Line 1806 of yacc.c */ 7683 #line 1898 "parser.yy" 7603 7684 {} 7604 7685 break; 7605 7686 7606 case 498:7607 7608 /* Line 1806 of yacc.c */ 7609 #line 1 859"parser.yy"7687 case 506: 7688 7689 /* Line 1806 of yacc.c */ 7690 #line 1900 "parser.yy" 7610 7691 { 7611 7692 if ( theTree ) { … … 7617 7698 break; 7618 7699 7619 case 50 0:7620 7621 /* Line 1806 of yacc.c */ 7622 #line 1 871"parser.yy"7700 case 508: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1912 "parser.yy" 7623 7704 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7624 7705 break; 7625 7706 7626 case 50 1:7627 7628 /* Line 1806 of yacc.c */ 7629 #line 1 876"parser.yy"7707 case 509: 7708 7709 /* Line 1806 of yacc.c */ 7710 #line 1917 "parser.yy" 7630 7711 { (yyval.decl) = 0; } 7631 7712 break; 7632 7713 7633 case 5 05:7634 7635 /* Line 1806 of yacc.c */ 7636 #line 1 884"parser.yy"7714 case 513: 7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1925 "parser.yy" 7637 7718 {} 7638 7719 break; 7639 7720 7640 case 5 06:7641 7642 /* Line 1806 of yacc.c */ 7643 #line 1 886"parser.yy"7721 case 514: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1927 "parser.yy" 7644 7725 { 7645 7726 linkageStack.push( linkage ); … … 7648 7729 break; 7649 7730 7650 case 5 07:7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1 891"parser.yy"7731 case 515: 7732 7733 /* Line 1806 of yacc.c */ 7734 #line 1932 "parser.yy" 7654 7735 { 7655 7736 linkage = linkageStack.top(); … … 7659 7740 break; 7660 7741 7661 case 5 08:7662 7663 /* Line 1806 of yacc.c */ 7664 #line 1 897"parser.yy"7742 case 516: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1938 "parser.yy" 7665 7746 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7666 7747 break; 7667 7748 7668 case 51 0:7669 7670 /* Line 1806 of yacc.c */ 7671 #line 19 07"parser.yy"7749 case 518: 7750 7751 /* Line 1806 of yacc.c */ 7752 #line 1948 "parser.yy" 7672 7753 { 7673 7754 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7677 7758 break; 7678 7759 7679 case 51 1:7680 7681 /* Line 1806 of yacc.c */ 7682 #line 19 13"parser.yy"7760 case 519: 7761 7762 /* Line 1806 of yacc.c */ 7763 #line 1954 "parser.yy" 7683 7764 { 7684 7765 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7688 7769 break; 7689 7770 7690 case 5 12:7691 7692 /* Line 1806 of yacc.c */ 7693 #line 19 22"parser.yy"7771 case 520: 7772 7773 /* Line 1806 of yacc.c */ 7774 #line 1963 "parser.yy" 7694 7775 { 7695 7776 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7699 7780 break; 7700 7781 7701 case 5 13:7702 7703 /* Line 1806 of yacc.c */ 7704 #line 19 28"parser.yy"7782 case 521: 7783 7784 /* Line 1806 of yacc.c */ 7785 #line 1969 "parser.yy" 7705 7786 { 7706 7787 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7710 7791 break; 7711 7792 7712 case 5 14:7713 7714 /* Line 1806 of yacc.c */ 7715 #line 19 34"parser.yy"7793 case 522: 7794 7795 /* Line 1806 of yacc.c */ 7796 #line 1975 "parser.yy" 7716 7797 { 7717 7798 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7721 7802 break; 7722 7803 7723 case 5 15:7724 7725 /* Line 1806 of yacc.c */ 7726 #line 19 40"parser.yy"7804 case 523: 7805 7806 /* Line 1806 of yacc.c */ 7807 #line 1981 "parser.yy" 7727 7808 { 7728 7809 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7732 7813 break; 7733 7814 7734 case 5 16:7735 7736 /* Line 1806 of yacc.c */ 7737 #line 19 46"parser.yy"7815 case 524: 7816 7817 /* Line 1806 of yacc.c */ 7818 #line 1987 "parser.yy" 7738 7819 { 7739 7820 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7743 7824 break; 7744 7825 7745 case 5 17:7746 7747 /* Line 1806 of yacc.c */ 7748 #line 19 54"parser.yy"7826 case 525: 7827 7828 /* Line 1806 of yacc.c */ 7829 #line 1995 "parser.yy" 7749 7830 { 7750 7831 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7754 7835 break; 7755 7836 7756 case 5 18:7757 7758 /* Line 1806 of yacc.c */ 7759 #line 1960"parser.yy"7837 case 526: 7838 7839 /* Line 1806 of yacc.c */ 7840 #line 2001 "parser.yy" 7760 7841 { 7761 7842 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7765 7846 break; 7766 7847 7767 case 5 19:7768 7769 /* Line 1806 of yacc.c */ 7770 #line 1968"parser.yy"7848 case 527: 7849 7850 /* Line 1806 of yacc.c */ 7851 #line 2009 "parser.yy" 7771 7852 { 7772 7853 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7776 7857 break; 7777 7858 7778 case 52 0:7779 7780 /* Line 1806 of yacc.c */ 7781 #line 1974"parser.yy"7859 case 528: 7860 7861 /* Line 1806 of yacc.c */ 7862 #line 2015 "parser.yy" 7782 7863 { 7783 7864 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7787 7868 break; 7788 7869 7789 case 5 24:7790 7791 /* Line 1806 of yacc.c */ 7792 #line 1989"parser.yy"7870 case 532: 7871 7872 /* Line 1806 of yacc.c */ 7873 #line 2030 "parser.yy" 7793 7874 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 7794 7875 break; 7795 7876 7796 case 537: 7797 7798 /* Line 1806 of yacc.c */ 7799 #line 2023 "parser.yy" 7877 case 535: 7878 7879 /* Line 1806 of yacc.c */ 7880 #line 2040 "parser.yy" 7881 { (yyval.decl) = 0; } 7882 break; 7883 7884 case 538: 7885 7886 /* Line 1806 of yacc.c */ 7887 #line 2047 "parser.yy" 7888 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7889 break; 7890 7891 case 539: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 2053 "parser.yy" 7895 { (yyval.decl) = 0; } 7896 break; 7897 7898 case 545: 7899 7900 /* Line 1806 of yacc.c */ 7901 #line 2068 "parser.yy" 7800 7902 {} 7801 7903 break; 7802 7904 7803 case 5 38:7804 7805 /* Line 1806 of yacc.c */ 7806 #line 20 24"parser.yy"7905 case 546: 7906 7907 /* Line 1806 of yacc.c */ 7908 #line 2069 "parser.yy" 7807 7909 {} 7808 7910 break; 7809 7911 7810 case 5 39:7811 7812 /* Line 1806 of yacc.c */ 7813 #line 20 25"parser.yy"7912 case 547: 7913 7914 /* Line 1806 of yacc.c */ 7915 #line 2070 "parser.yy" 7814 7916 {} 7815 7917 break; 7816 7918 7817 case 54 0:7818 7819 /* Line 1806 of yacc.c */ 7820 #line 20 26"parser.yy"7919 case 548: 7920 7921 /* Line 1806 of yacc.c */ 7922 #line 2071 "parser.yy" 7821 7923 {} 7822 7924 break; 7823 7925 7824 case 545: 7825 7826 /* Line 1806 of yacc.c */ 7827 #line 2068 "parser.yy" 7926 case 549: 7927 7928 /* Line 1806 of yacc.c */ 7929 #line 2106 "parser.yy" 7930 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7931 break; 7932 7933 case 551: 7934 7935 /* Line 1806 of yacc.c */ 7936 #line 2109 "parser.yy" 7937 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7938 break; 7939 7940 case 552: 7941 7942 /* Line 1806 of yacc.c */ 7943 #line 2111 "parser.yy" 7944 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7945 break; 7946 7947 case 553: 7948 7949 /* Line 1806 of yacc.c */ 7950 #line 2116 "parser.yy" 7828 7951 { 7829 7952 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 7832 7955 break; 7833 7956 7834 case 5 46:7835 7836 /* Line 1806 of yacc.c */ 7837 #line 2 073"parser.yy"7957 case 554: 7958 7959 /* Line 1806 of yacc.c */ 7960 #line 2121 "parser.yy" 7838 7961 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7839 7962 break; 7840 7963 7841 case 5 47:7842 7843 /* Line 1806 of yacc.c */ 7844 #line 2 078"parser.yy"7964 case 555: 7965 7966 /* Line 1806 of yacc.c */ 7967 #line 2126 "parser.yy" 7845 7968 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7846 7969 break; 7847 7970 7848 case 5 48:7849 7850 /* Line 1806 of yacc.c */ 7851 #line 2 080"parser.yy"7971 case 556: 7972 7973 /* Line 1806 of yacc.c */ 7974 #line 2128 "parser.yy" 7852 7975 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7853 7976 break; 7854 7977 7855 case 5 49:7856 7857 /* Line 1806 of yacc.c */ 7858 #line 2 082"parser.yy"7978 case 557: 7979 7980 /* Line 1806 of yacc.c */ 7981 #line 2130 "parser.yy" 7859 7982 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7860 7983 break; 7861 7984 7862 case 55 0:7863 7864 /* Line 1806 of yacc.c */ 7865 #line 2 087"parser.yy"7985 case 558: 7986 7987 /* Line 1806 of yacc.c */ 7988 #line 2135 "parser.yy" 7866 7989 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7867 7990 break; 7868 7991 7869 case 55 1:7870 7871 /* Line 1806 of yacc.c */ 7872 #line 2 089"parser.yy"7992 case 559: 7993 7994 /* Line 1806 of yacc.c */ 7995 #line 2137 "parser.yy" 7873 7996 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7874 7997 break; 7875 7998 7876 case 5 52:7877 7878 /* Line 1806 of yacc.c */ 7879 #line 2 091"parser.yy"7999 case 560: 8000 8001 /* Line 1806 of yacc.c */ 8002 #line 2139 "parser.yy" 7880 8003 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7881 8004 break; 7882 8005 7883 case 5 53:7884 7885 /* Line 1806 of yacc.c */ 7886 #line 2 093"parser.yy"8006 case 561: 8007 8008 /* Line 1806 of yacc.c */ 8009 #line 2141 "parser.yy" 7887 8010 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7888 8011 break; 7889 8012 7890 case 5 54:7891 7892 /* Line 1806 of yacc.c */ 7893 #line 2 098"parser.yy"8013 case 562: 8014 8015 /* Line 1806 of yacc.c */ 8016 #line 2146 "parser.yy" 7894 8017 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7895 8018 break; 7896 8019 7897 case 5 55:7898 7899 /* Line 1806 of yacc.c */ 7900 #line 21 00"parser.yy"8020 case 563: 8021 8022 /* Line 1806 of yacc.c */ 8023 #line 2148 "parser.yy" 7901 8024 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7902 8025 break; 7903 8026 7904 case 559: 7905 7906 /* Line 1806 of yacc.c */ 7907 #line 2116 "parser.yy" 8027 case 564: 8028 8029 /* Line 1806 of yacc.c */ 8030 #line 2158 "parser.yy" 8031 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8032 break; 8033 8034 case 566: 8035 8036 /* Line 1806 of yacc.c */ 8037 #line 2161 "parser.yy" 8038 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8039 break; 8040 8041 case 567: 8042 8043 /* Line 1806 of yacc.c */ 8044 #line 2166 "parser.yy" 7908 8045 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7909 8046 break; 7910 8047 7911 case 56 0:7912 7913 /* Line 1806 of yacc.c */ 7914 #line 21 18 "parser.yy"8048 case 568: 8049 8050 /* Line 1806 of yacc.c */ 8051 #line 2168 "parser.yy" 7915 8052 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7916 8053 break; 7917 8054 7918 case 56 1:7919 7920 /* Line 1806 of yacc.c */ 7921 #line 21 20 "parser.yy"8055 case 569: 8056 8057 /* Line 1806 of yacc.c */ 8058 #line 2170 "parser.yy" 7922 8059 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7923 8060 break; 7924 8061 7925 case 5 62:7926 7927 /* Line 1806 of yacc.c */ 7928 #line 21 25 "parser.yy"8062 case 570: 8063 8064 /* Line 1806 of yacc.c */ 8065 #line 2175 "parser.yy" 7929 8066 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7930 8067 break; 7931 8068 7932 case 5 63:7933 7934 /* Line 1806 of yacc.c */ 7935 #line 21 27 "parser.yy"8069 case 571: 8070 8071 /* Line 1806 of yacc.c */ 8072 #line 2177 "parser.yy" 7936 8073 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7937 8074 break; 7938 8075 7939 case 5 64:7940 7941 /* Line 1806 of yacc.c */ 7942 #line 21 29 "parser.yy"8076 case 572: 8077 8078 /* Line 1806 of yacc.c */ 8079 #line 2179 "parser.yy" 7943 8080 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7944 8081 break; 7945 8082 7946 case 5 65:7947 7948 /* Line 1806 of yacc.c */ 7949 #line 21 34 "parser.yy"8083 case 573: 8084 8085 /* Line 1806 of yacc.c */ 8086 #line 2184 "parser.yy" 7950 8087 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7951 8088 break; 7952 8089 7953 case 5 66:7954 7955 /* Line 1806 of yacc.c */ 7956 #line 21 36 "parser.yy"8090 case 574: 8091 8092 /* Line 1806 of yacc.c */ 8093 #line 2186 "parser.yy" 7957 8094 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7958 8095 break; 7959 8096 7960 case 5 67:7961 7962 /* Line 1806 of yacc.c */ 7963 #line 21 38 "parser.yy"8097 case 575: 8098 8099 /* Line 1806 of yacc.c */ 8100 #line 2188 "parser.yy" 7964 8101 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7965 8102 break; 7966 8103 7967 case 57 1:7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2 153 "parser.yy"8104 case 579: 8105 8106 /* Line 1806 of yacc.c */ 8107 #line 2203 "parser.yy" 7971 8108 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7972 8109 break; 7973 8110 7974 case 5 72:7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2 155 "parser.yy"8111 case 580: 8112 8113 /* Line 1806 of yacc.c */ 8114 #line 2205 "parser.yy" 7978 8115 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7979 8116 break; 7980 8117 7981 case 573: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2157 "parser.yy" 7985 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7986 break; 7987 7988 case 574: 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2162 "parser.yy" 7992 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7993 break; 7994 7995 case 575: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2164 "parser.yy" 7999 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8000 break; 8001 8002 case 576: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2166 "parser.yy" 8006 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8007 break; 8008 8009 case 577: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2171 "parser.yy" 8013 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8014 break; 8015 8016 case 578: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2173 "parser.yy" 8020 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8021 break; 8022 8023 case 579: 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2175 "parser.yy" 8027 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8028 break; 8029 8030 case 585: 8031 8032 /* Line 1806 of yacc.c */ 8033 #line 2198 "parser.yy" 8034 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8035 break; 8036 8037 case 586: 8038 8039 /* Line 1806 of yacc.c */ 8040 #line 2203 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8042 break; 8043 8044 case 587: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2205 "parser.yy" 8048 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8049 break; 8050 8051 case 588: 8118 case 581: 8052 8119 8053 8120 /* Line 1806 of yacc.c */ … … 8056 8123 break; 8057 8124 8058 case 58 9:8125 case 582: 8059 8126 8060 8127 /* Line 1806 of yacc.c */ 8061 8128 #line 2212 "parser.yy" 8129 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8130 break; 8131 8132 case 583: 8133 8134 /* Line 1806 of yacc.c */ 8135 #line 2214 "parser.yy" 8136 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8137 break; 8138 8139 case 584: 8140 8141 /* Line 1806 of yacc.c */ 8142 #line 2216 "parser.yy" 8143 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8144 break; 8145 8146 case 585: 8147 8148 /* Line 1806 of yacc.c */ 8149 #line 2221 "parser.yy" 8150 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8151 break; 8152 8153 case 586: 8154 8155 /* Line 1806 of yacc.c */ 8156 #line 2223 "parser.yy" 8157 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8158 break; 8159 8160 case 587: 8161 8162 /* Line 1806 of yacc.c */ 8163 #line 2225 "parser.yy" 8164 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8165 break; 8166 8167 case 588: 8168 8169 /* Line 1806 of yacc.c */ 8170 #line 2240 "parser.yy" 8171 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8172 break; 8173 8174 case 590: 8175 8176 /* Line 1806 of yacc.c */ 8177 #line 2243 "parser.yy" 8178 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8179 break; 8180 8181 case 591: 8182 8183 /* Line 1806 of yacc.c */ 8184 #line 2245 "parser.yy" 8185 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8186 break; 8187 8188 case 593: 8189 8190 /* Line 1806 of yacc.c */ 8191 #line 2251 "parser.yy" 8192 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8193 break; 8194 8195 case 594: 8196 8197 /* Line 1806 of yacc.c */ 8198 #line 2256 "parser.yy" 8199 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8200 break; 8201 8202 case 595: 8203 8204 /* Line 1806 of yacc.c */ 8205 #line 2258 "parser.yy" 8206 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8207 break; 8208 8209 case 596: 8210 8211 /* Line 1806 of yacc.c */ 8212 #line 2260 "parser.yy" 8213 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8214 break; 8215 8216 case 597: 8217 8218 /* Line 1806 of yacc.c */ 8219 #line 2265 "parser.yy" 8062 8220 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8063 8221 break; 8064 8222 8065 case 59 0:8066 8067 /* Line 1806 of yacc.c */ 8068 #line 22 14"parser.yy"8223 case 598: 8224 8225 /* Line 1806 of yacc.c */ 8226 #line 2267 "parser.yy" 8069 8227 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8070 8228 break; 8071 8229 8072 case 59 1:8073 8074 /* Line 1806 of yacc.c */ 8075 #line 22 16"parser.yy"8230 case 599: 8231 8232 /* Line 1806 of yacc.c */ 8233 #line 2269 "parser.yy" 8076 8234 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8077 8235 break; 8078 8236 8079 case 592:8080 8081 /* Line 1806 of yacc.c */ 8082 #line 22 18"parser.yy"8237 case 600: 8238 8239 /* Line 1806 of yacc.c */ 8240 #line 2271 "parser.yy" 8083 8241 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8084 8242 break; 8085 8243 8086 case 593:8087 8088 /* Line 1806 of yacc.c */ 8089 #line 22 23"parser.yy"8244 case 601: 8245 8246 /* Line 1806 of yacc.c */ 8247 #line 2276 "parser.yy" 8090 8248 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8091 8249 break; 8092 8250 8093 case 594:8094 8095 /* Line 1806 of yacc.c */ 8096 #line 22 25"parser.yy"8251 case 602: 8252 8253 /* Line 1806 of yacc.c */ 8254 #line 2278 "parser.yy" 8097 8255 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8098 8256 break; 8099 8257 8100 case 595:8101 8102 /* Line 1806 of yacc.c */ 8103 #line 22 27"parser.yy"8258 case 603: 8259 8260 /* Line 1806 of yacc.c */ 8261 #line 2280 "parser.yy" 8104 8262 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8105 8263 break; 8106 8264 8107 case 600: 8108 8109 /* Line 1806 of yacc.c */ 8110 #line 2244 "parser.yy" 8265 case 604: 8266 8267 /* Line 1806 of yacc.c */ 8268 #line 2290 "parser.yy" 8269 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8270 break; 8271 8272 case 606: 8273 8274 /* Line 1806 of yacc.c */ 8275 #line 2293 "parser.yy" 8276 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8277 break; 8278 8279 case 607: 8280 8281 /* Line 1806 of yacc.c */ 8282 #line 2295 "parser.yy" 8283 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8284 break; 8285 8286 case 608: 8287 8288 /* Line 1806 of yacc.c */ 8289 #line 2300 "parser.yy" 8111 8290 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8112 8291 break; 8113 8292 8114 case 60 1:8115 8116 /* Line 1806 of yacc.c */ 8117 #line 2 246"parser.yy"8293 case 609: 8294 8295 /* Line 1806 of yacc.c */ 8296 #line 2302 "parser.yy" 8118 8297 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8119 8298 break; 8120 8299 8121 case 6 02:8122 8123 /* Line 1806 of yacc.c */ 8124 #line 2 248"parser.yy"8300 case 610: 8301 8302 /* Line 1806 of yacc.c */ 8303 #line 2304 "parser.yy" 8125 8304 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8126 8305 break; 8127 8306 8128 case 6 03:8129 8130 /* Line 1806 of yacc.c */ 8131 #line 2 253"parser.yy"8307 case 611: 8308 8309 /* Line 1806 of yacc.c */ 8310 #line 2309 "parser.yy" 8132 8311 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8133 8312 break; 8134 8313 8135 case 6 04:8136 8137 /* Line 1806 of yacc.c */ 8138 #line 2 255"parser.yy"8314 case 612: 8315 8316 /* Line 1806 of yacc.c */ 8317 #line 2311 "parser.yy" 8139 8318 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8140 8319 break; 8141 8320 8142 case 6 05:8143 8144 /* Line 1806 of yacc.c */ 8145 #line 2 257"parser.yy"8321 case 613: 8322 8323 /* Line 1806 of yacc.c */ 8324 #line 2313 "parser.yy" 8146 8325 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8147 8326 break; 8148 8327 8149 case 6 06:8150 8151 /* Line 1806 of yacc.c */ 8152 #line 2 259"parser.yy"8328 case 614: 8329 8330 /* Line 1806 of yacc.c */ 8331 #line 2315 "parser.yy" 8153 8332 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8154 8333 break; 8155 8334 8156 case 6 07:8157 8158 /* Line 1806 of yacc.c */ 8159 #line 2 264"parser.yy"8335 case 615: 8336 8337 /* Line 1806 of yacc.c */ 8338 #line 2320 "parser.yy" 8160 8339 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8161 8340 break; 8162 8341 8163 case 6 08:8164 8165 /* Line 1806 of yacc.c */ 8166 #line 2 266"parser.yy"8342 case 616: 8343 8344 /* Line 1806 of yacc.c */ 8345 #line 2322 "parser.yy" 8167 8346 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8168 8347 break; 8169 8348 8170 case 6 09:8171 8172 /* Line 1806 of yacc.c */ 8173 #line 2 268"parser.yy"8349 case 617: 8350 8351 /* Line 1806 of yacc.c */ 8352 #line 2324 "parser.yy" 8174 8353 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8175 8354 break; 8176 8355 8177 case 614: 8178 8179 /* Line 1806 of yacc.c */ 8180 #line 2306 "parser.yy" 8356 case 618: 8357 8358 /* Line 1806 of yacc.c */ 8359 #line 2355 "parser.yy" 8360 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8361 break; 8362 8363 case 620: 8364 8365 /* Line 1806 of yacc.c */ 8366 #line 2358 "parser.yy" 8367 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8368 break; 8369 8370 case 621: 8371 8372 /* Line 1806 of yacc.c */ 8373 #line 2360 "parser.yy" 8374 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8375 break; 8376 8377 case 622: 8378 8379 /* Line 1806 of yacc.c */ 8380 #line 2365 "parser.yy" 8181 8381 { 8182 8382 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8185 8385 break; 8186 8386 8187 case 6 15:8188 8189 /* Line 1806 of yacc.c */ 8190 #line 23 11"parser.yy"8387 case 623: 8388 8389 /* Line 1806 of yacc.c */ 8390 #line 2370 "parser.yy" 8191 8391 { 8192 8392 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8195 8395 break; 8196 8396 8197 case 6 16:8198 8199 /* Line 1806 of yacc.c */ 8200 #line 23 19"parser.yy"8397 case 624: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2378 "parser.yy" 8201 8401 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8202 8402 break; 8203 8403 8204 case 6 17:8205 8206 /* Line 1806 of yacc.c */ 8207 #line 23 21"parser.yy"8404 case 625: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2380 "parser.yy" 8208 8408 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8209 8409 break; 8210 8410 8211 case 6 18:8212 8213 /* Line 1806 of yacc.c */ 8214 #line 23 23"parser.yy"8411 case 626: 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2382 "parser.yy" 8215 8415 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8216 8416 break; 8217 8417 8218 case 6 19:8219 8220 /* Line 1806 of yacc.c */ 8221 #line 23 28"parser.yy"8418 case 627: 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2387 "parser.yy" 8222 8422 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8223 8423 break; 8224 8424 8225 case 62 0:8226 8227 /* Line 1806 of yacc.c */ 8228 #line 23 30"parser.yy"8425 case 628: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2389 "parser.yy" 8229 8429 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8230 8430 break; 8231 8431 8232 case 62 1:8233 8234 /* Line 1806 of yacc.c */ 8235 #line 23 35"parser.yy"8432 case 629: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2394 "parser.yy" 8236 8436 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8237 8437 break; 8238 8438 8239 case 6 22:8240 8241 /* Line 1806 of yacc.c */ 8242 #line 23 37"parser.yy"8439 case 630: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2396 "parser.yy" 8243 8443 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8244 8444 break; 8245 8445 8246 case 626: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2357 "parser.yy" 8446 case 632: 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2411 "parser.yy" 8450 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8451 break; 8452 8453 case 633: 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2413 "parser.yy" 8457 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8458 break; 8459 8460 case 634: 8461 8462 /* Line 1806 of yacc.c */ 8463 #line 2418 "parser.yy" 8250 8464 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8251 8465 break; 8252 8466 8253 case 6 27:8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2 359"parser.yy"8467 case 635: 8468 8469 /* Line 1806 of yacc.c */ 8470 #line 2420 "parser.yy" 8257 8471 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8258 8472 break; 8259 8473 8260 case 6 28:8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2 361"parser.yy"8474 case 636: 8475 8476 /* Line 1806 of yacc.c */ 8477 #line 2422 "parser.yy" 8264 8478 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8265 8479 break; 8266 8480 8267 case 6 29:8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2 363"parser.yy"8481 case 637: 8482 8483 /* Line 1806 of yacc.c */ 8484 #line 2424 "parser.yy" 8271 8485 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8272 8486 break; 8273 8487 8274 case 63 0:8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2 365"parser.yy"8488 case 638: 8489 8490 /* Line 1806 of yacc.c */ 8491 #line 2426 "parser.yy" 8278 8492 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8279 8493 break; 8280 8494 8281 case 6 32:8282 8283 /* Line 1806 of yacc.c */ 8284 #line 2 371"parser.yy"8495 case 640: 8496 8497 /* Line 1806 of yacc.c */ 8498 #line 2432 "parser.yy" 8285 8499 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8286 8500 break; 8287 8501 8288 case 6 33:8289 8290 /* Line 1806 of yacc.c */ 8291 #line 2 373"parser.yy"8502 case 641: 8503 8504 /* Line 1806 of yacc.c */ 8505 #line 2434 "parser.yy" 8292 8506 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8293 8507 break; 8294 8508 8295 case 6 34:8296 8297 /* Line 1806 of yacc.c */ 8298 #line 2 375"parser.yy"8509 case 642: 8510 8511 /* Line 1806 of yacc.c */ 8512 #line 2436 "parser.yy" 8299 8513 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8300 8514 break; 8301 8515 8302 case 6 35:8303 8304 /* Line 1806 of yacc.c */ 8305 #line 2 380"parser.yy"8516 case 643: 8517 8518 /* Line 1806 of yacc.c */ 8519 #line 2441 "parser.yy" 8306 8520 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8307 8521 break; 8308 8522 8309 case 6 36:8310 8311 /* Line 1806 of yacc.c */ 8312 #line 2 382"parser.yy"8523 case 644: 8524 8525 /* Line 1806 of yacc.c */ 8526 #line 2443 "parser.yy" 8313 8527 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8314 8528 break; 8315 8529 8316 case 6 37:8317 8318 /* Line 1806 of yacc.c */ 8319 #line 2 384"parser.yy"8530 case 645: 8531 8532 /* Line 1806 of yacc.c */ 8533 #line 2445 "parser.yy" 8320 8534 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8321 8535 break; 8322 8536 8323 case 6 38:8324 8325 /* Line 1806 of yacc.c */ 8326 #line 2 390"parser.yy"8537 case 646: 8538 8539 /* Line 1806 of yacc.c */ 8540 #line 2451 "parser.yy" 8327 8541 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8328 8542 break; 8329 8543 8330 case 6 39:8331 8332 /* Line 1806 of yacc.c */ 8333 #line 2 392"parser.yy"8544 case 647: 8545 8546 /* Line 1806 of yacc.c */ 8547 #line 2453 "parser.yy" 8334 8548 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8335 8549 break; 8336 8550 8337 case 64 1:8338 8339 /* Line 1806 of yacc.c */ 8340 #line 2 398"parser.yy"8551 case 649: 8552 8553 /* Line 1806 of yacc.c */ 8554 #line 2459 "parser.yy" 8341 8555 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8342 8556 break; 8343 8557 8344 case 6 42:8345 8346 /* Line 1806 of yacc.c */ 8347 #line 24 00"parser.yy"8558 case 650: 8559 8560 /* Line 1806 of yacc.c */ 8561 #line 2461 "parser.yy" 8348 8562 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8349 8563 break; 8350 8564 8351 case 6 43:8352 8353 /* Line 1806 of yacc.c */ 8354 #line 24 02"parser.yy"8565 case 651: 8566 8567 /* Line 1806 of yacc.c */ 8568 #line 2463 "parser.yy" 8355 8569 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8356 8570 break; 8357 8571 8358 case 6 44:8359 8360 /* Line 1806 of yacc.c */ 8361 #line 24 04"parser.yy"8572 case 652: 8573 8574 /* Line 1806 of yacc.c */ 8575 #line 2465 "parser.yy" 8362 8576 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8363 8577 break; 8364 8578 8365 case 648: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2424 "parser.yy" 8579 case 654: 8580 8581 /* Line 1806 of yacc.c */ 8582 #line 2480 "parser.yy" 8583 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8584 break; 8585 8586 case 655: 8587 8588 /* Line 1806 of yacc.c */ 8589 #line 2482 "parser.yy" 8590 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8591 break; 8592 8593 case 656: 8594 8595 /* Line 1806 of yacc.c */ 8596 #line 2487 "parser.yy" 8369 8597 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8370 8598 break; 8371 8599 8372 case 6 49:8373 8374 /* Line 1806 of yacc.c */ 8375 #line 24 26"parser.yy"8600 case 657: 8601 8602 /* Line 1806 of yacc.c */ 8603 #line 2489 "parser.yy" 8376 8604 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8377 8605 break; 8378 8606 8379 case 65 0:8380 8381 /* Line 1806 of yacc.c */ 8382 #line 24 28"parser.yy"8607 case 658: 8608 8609 /* Line 1806 of yacc.c */ 8610 #line 2491 "parser.yy" 8383 8611 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8384 8612 break; 8385 8613 8386 case 65 1:8387 8388 /* Line 1806 of yacc.c */ 8389 #line 24 30"parser.yy"8614 case 659: 8615 8616 /* Line 1806 of yacc.c */ 8617 #line 2493 "parser.yy" 8390 8618 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8391 8619 break; 8392 8620 8393 case 6 52:8394 8395 /* Line 1806 of yacc.c */ 8396 #line 24 32"parser.yy"8621 case 660: 8622 8623 /* Line 1806 of yacc.c */ 8624 #line 2495 "parser.yy" 8397 8625 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8398 8626 break; 8399 8627 8400 case 6 54:8401 8402 /* Line 1806 of yacc.c */ 8403 #line 2 438"parser.yy"8628 case 662: 8629 8630 /* Line 1806 of yacc.c */ 8631 #line 2501 "parser.yy" 8404 8632 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8405 8633 break; 8406 8634 8407 case 6 55:8408 8409 /* Line 1806 of yacc.c */ 8410 #line 2 440"parser.yy"8635 case 663: 8636 8637 /* Line 1806 of yacc.c */ 8638 #line 2503 "parser.yy" 8411 8639 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8412 8640 break; 8413 8641 8414 case 6 56:8415 8416 /* Line 1806 of yacc.c */ 8417 #line 2 442"parser.yy"8642 case 664: 8643 8644 /* Line 1806 of yacc.c */ 8645 #line 2505 "parser.yy" 8418 8646 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8419 8647 break; 8420 8648 8421 case 6 57:8422 8423 /* Line 1806 of yacc.c */ 8424 #line 2 447"parser.yy"8649 case 665: 8650 8651 /* Line 1806 of yacc.c */ 8652 #line 2510 "parser.yy" 8425 8653 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8426 8654 break; 8427 8655 8428 case 6 58:8429 8430 /* Line 1806 of yacc.c */ 8431 #line 2 449"parser.yy"8656 case 666: 8657 8658 /* Line 1806 of yacc.c */ 8659 #line 2512 "parser.yy" 8432 8660 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8433 8661 break; 8434 8662 8435 case 6 59:8436 8437 /* Line 1806 of yacc.c */ 8438 #line 2 451"parser.yy"8663 case 667: 8664 8665 /* Line 1806 of yacc.c */ 8666 #line 2514 "parser.yy" 8439 8667 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8440 8668 break; 8441 8669 8442 case 66 1:8443 8444 /* Line 1806 of yacc.c */ 8445 #line 2 458"parser.yy"8670 case 669: 8671 8672 /* Line 1806 of yacc.c */ 8673 #line 2521 "parser.yy" 8446 8674 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8447 8675 break; 8448 8676 8449 case 6 63:8450 8451 /* Line 1806 of yacc.c */ 8452 #line 2 469"parser.yy"8677 case 671: 8678 8679 /* Line 1806 of yacc.c */ 8680 #line 2532 "parser.yy" 8453 8681 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8454 8682 break; 8455 8683 8456 case 6 64:8457 8458 /* Line 1806 of yacc.c */ 8459 #line 2 472"parser.yy"8684 case 672: 8685 8686 /* Line 1806 of yacc.c */ 8687 #line 2535 "parser.yy" 8460 8688 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8461 8689 break; 8462 8690 8463 case 6 65:8464 8465 /* Line 1806 of yacc.c */ 8466 #line 2 474"parser.yy"8691 case 673: 8692 8693 /* Line 1806 of yacc.c */ 8694 #line 2537 "parser.yy" 8467 8695 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8468 8696 break; 8469 8697 8470 case 6 66:8471 8472 /* Line 1806 of yacc.c */ 8473 #line 2 477"parser.yy"8698 case 674: 8699 8700 /* Line 1806 of yacc.c */ 8701 #line 2540 "parser.yy" 8474 8702 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8475 8703 break; 8476 8704 8477 case 6 67:8478 8479 /* Line 1806 of yacc.c */ 8480 #line 2 479"parser.yy"8705 case 675: 8706 8707 /* Line 1806 of yacc.c */ 8708 #line 2542 "parser.yy" 8481 8709 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8482 8710 break; 8483 8711 8484 case 6 68:8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2 481"parser.yy"8712 case 676: 8713 8714 /* Line 1806 of yacc.c */ 8715 #line 2544 "parser.yy" 8488 8716 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8489 8717 break; 8490 8718 8491 case 672: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2500 "parser.yy" 8719 case 678: 8720 8721 /* Line 1806 of yacc.c */ 8722 #line 2558 "parser.yy" 8723 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8724 break; 8725 8726 case 679: 8727 8728 /* Line 1806 of yacc.c */ 8729 #line 2560 "parser.yy" 8730 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8731 break; 8732 8733 case 680: 8734 8735 /* Line 1806 of yacc.c */ 8736 #line 2565 "parser.yy" 8495 8737 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8496 8738 break; 8497 8739 8498 case 6 73:8499 8500 /* Line 1806 of yacc.c */ 8501 #line 25 02"parser.yy"8740 case 681: 8741 8742 /* Line 1806 of yacc.c */ 8743 #line 2567 "parser.yy" 8502 8744 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8503 8745 break; 8504 8746 8505 case 6 74:8506 8507 /* Line 1806 of yacc.c */ 8508 #line 25 04"parser.yy"8747 case 682: 8748 8749 /* Line 1806 of yacc.c */ 8750 #line 2569 "parser.yy" 8509 8751 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8510 8752 break; 8511 8753 8512 case 6 75:8513 8514 /* Line 1806 of yacc.c */ 8515 #line 25 06"parser.yy"8754 case 683: 8755 8756 /* Line 1806 of yacc.c */ 8757 #line 2571 "parser.yy" 8516 8758 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8517 8759 break; 8518 8760 8519 case 6 76:8520 8521 /* Line 1806 of yacc.c */ 8522 #line 25 08"parser.yy"8761 case 684: 8762 8763 /* Line 1806 of yacc.c */ 8764 #line 2573 "parser.yy" 8523 8765 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8524 8766 break; 8525 8767 8526 case 6 78:8527 8528 /* Line 1806 of yacc.c */ 8529 #line 25 14"parser.yy"8768 case 686: 8769 8770 /* Line 1806 of yacc.c */ 8771 #line 2579 "parser.yy" 8530 8772 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8531 8773 break; 8532 8774 8533 case 6 79:8534 8535 /* Line 1806 of yacc.c */ 8536 #line 25 16"parser.yy"8775 case 687: 8776 8777 /* Line 1806 of yacc.c */ 8778 #line 2581 "parser.yy" 8537 8779 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8538 8780 break; 8539 8781 8540 case 68 0:8541 8542 /* Line 1806 of yacc.c */ 8543 #line 25 18"parser.yy"8782 case 688: 8783 8784 /* Line 1806 of yacc.c */ 8785 #line 2583 "parser.yy" 8544 8786 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8545 8787 break; 8546 8788 8547 case 68 1:8548 8549 /* Line 1806 of yacc.c */ 8550 #line 25 23"parser.yy"8789 case 689: 8790 8791 /* Line 1806 of yacc.c */ 8792 #line 2588 "parser.yy" 8551 8793 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8552 8794 break; 8553 8795 8554 case 6 82:8555 8556 /* Line 1806 of yacc.c */ 8557 #line 25 25"parser.yy"8796 case 690: 8797 8798 /* Line 1806 of yacc.c */ 8799 #line 2590 "parser.yy" 8558 8800 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8559 8801 break; 8560 8802 8561 case 6 85:8562 8563 /* Line 1806 of yacc.c */ 8564 #line 2 535"parser.yy"8803 case 693: 8804 8805 /* Line 1806 of yacc.c */ 8806 #line 2600 "parser.yy" 8565 8807 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8566 8808 break; 8567 8809 8568 case 6 88:8569 8570 /* Line 1806 of yacc.c */ 8571 #line 2 545"parser.yy"8810 case 696: 8811 8812 /* Line 1806 of yacc.c */ 8813 #line 2610 "parser.yy" 8572 8814 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8573 8815 break; 8574 8816 8575 case 6 89:8576 8577 /* Line 1806 of yacc.c */ 8578 #line 2 547"parser.yy"8817 case 697: 8818 8819 /* Line 1806 of yacc.c */ 8820 #line 2612 "parser.yy" 8579 8821 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8580 8822 break; 8581 8823 8582 case 69 0:8583 8584 /* Line 1806 of yacc.c */ 8585 #line 2 549"parser.yy"8824 case 698: 8825 8826 /* Line 1806 of yacc.c */ 8827 #line 2614 "parser.yy" 8586 8828 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8587 8829 break; 8588 8830 8589 case 69 1:8590 8591 /* Line 1806 of yacc.c */ 8592 #line 2 551"parser.yy"8831 case 699: 8832 8833 /* Line 1806 of yacc.c */ 8834 #line 2616 "parser.yy" 8593 8835 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8594 8836 break; 8595 8837 8596 case 692:8597 8598 /* Line 1806 of yacc.c */ 8599 #line 2 553"parser.yy"8838 case 700: 8839 8840 /* Line 1806 of yacc.c */ 8841 #line 2618 "parser.yy" 8600 8842 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8601 8843 break; 8602 8844 8603 case 693:8604 8605 /* Line 1806 of yacc.c */ 8606 #line 2 555"parser.yy"8845 case 701: 8846 8847 /* Line 1806 of yacc.c */ 8848 #line 2620 "parser.yy" 8607 8849 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8608 8850 break; 8609 8851 8610 case 694:8611 8612 /* Line 1806 of yacc.c */ 8613 #line 2 562"parser.yy"8852 case 702: 8853 8854 /* Line 1806 of yacc.c */ 8855 #line 2627 "parser.yy" 8614 8856 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8615 8857 break; 8616 8858 8617 case 695:8618 8619 /* Line 1806 of yacc.c */ 8620 #line 2 564"parser.yy"8859 case 703: 8860 8861 /* Line 1806 of yacc.c */ 8862 #line 2629 "parser.yy" 8621 8863 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8622 8864 break; 8623 8865 8624 case 696:8625 8626 /* Line 1806 of yacc.c */ 8627 #line 2 566"parser.yy"8866 case 704: 8867 8868 /* Line 1806 of yacc.c */ 8869 #line 2631 "parser.yy" 8628 8870 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8629 8871 break; 8630 8872 8631 case 697:8632 8633 /* Line 1806 of yacc.c */ 8634 #line 2 568"parser.yy"8873 case 705: 8874 8875 /* Line 1806 of yacc.c */ 8876 #line 2633 "parser.yy" 8635 8877 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8636 8878 break; 8637 8879 8638 case 698:8639 8640 /* Line 1806 of yacc.c */ 8641 #line 2 570"parser.yy"8880 case 706: 8881 8882 /* Line 1806 of yacc.c */ 8883 #line 2635 "parser.yy" 8642 8884 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8643 8885 break; 8644 8886 8645 case 699:8646 8647 /* Line 1806 of yacc.c */ 8648 #line 2 572"parser.yy"8887 case 707: 8888 8889 /* Line 1806 of yacc.c */ 8890 #line 2637 "parser.yy" 8649 8891 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8650 8892 break; 8651 8893 8652 case 70 0:8653 8654 /* Line 1806 of yacc.c */ 8655 #line 2 574"parser.yy"8894 case 708: 8895 8896 /* Line 1806 of yacc.c */ 8897 #line 2639 "parser.yy" 8656 8898 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8657 8899 break; 8658 8900 8659 case 70 1:8660 8661 /* Line 1806 of yacc.c */ 8662 #line 2 576"parser.yy"8901 case 709: 8902 8903 /* Line 1806 of yacc.c */ 8904 #line 2641 "parser.yy" 8663 8905 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8664 8906 break; 8665 8907 8666 case 7 02:8667 8668 /* Line 1806 of yacc.c */ 8669 #line 2 578"parser.yy"8908 case 710: 8909 8910 /* Line 1806 of yacc.c */ 8911 #line 2643 "parser.yy" 8670 8912 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8671 8913 break; 8672 8914 8673 case 7 03:8674 8675 /* Line 1806 of yacc.c */ 8676 #line 2 580"parser.yy"8915 case 711: 8916 8917 /* Line 1806 of yacc.c */ 8918 #line 2645 "parser.yy" 8677 8919 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8678 8920 break; 8679 8921 8680 case 7 04:8681 8682 /* Line 1806 of yacc.c */ 8683 #line 2 585"parser.yy"8922 case 712: 8923 8924 /* Line 1806 of yacc.c */ 8925 #line 2650 "parser.yy" 8684 8926 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8685 8927 break; 8686 8928 8687 case 7 05:8688 8689 /* Line 1806 of yacc.c */ 8690 #line 2 587"parser.yy"8929 case 713: 8930 8931 /* Line 1806 of yacc.c */ 8932 #line 2652 "parser.yy" 8691 8933 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8692 8934 break; 8693 8935 8694 case 7 06:8695 8696 /* Line 1806 of yacc.c */ 8697 #line 2 592"parser.yy"8936 case 714: 8937 8938 /* Line 1806 of yacc.c */ 8939 #line 2657 "parser.yy" 8698 8940 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8699 8941 break; 8700 8942 8701 case 7 07:8702 8703 /* Line 1806 of yacc.c */ 8704 #line 2 594"parser.yy"8943 case 715: 8944 8945 /* Line 1806 of yacc.c */ 8946 #line 2659 "parser.yy" 8705 8947 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8706 8948 break; 8707 8949 8708 case 7 09:8709 8710 /* Line 1806 of yacc.c */ 8711 #line 26 21"parser.yy"8950 case 717: 8951 8952 /* Line 1806 of yacc.c */ 8953 #line 2686 "parser.yy" 8712 8954 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8713 8955 break; 8714 8956 8715 case 7 13:8716 8717 /* Line 1806 of yacc.c */ 8718 #line 26 32"parser.yy"8957 case 721: 8958 8959 /* Line 1806 of yacc.c */ 8960 #line 2697 "parser.yy" 8719 8961 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8720 8962 break; 8721 8963 8722 case 7 14:8723 8724 /* Line 1806 of yacc.c */ 8725 #line 26 34"parser.yy"8964 case 722: 8965 8966 /* Line 1806 of yacc.c */ 8967 #line 2699 "parser.yy" 8726 8968 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8727 8969 break; 8728 8970 8729 case 7 15:8730 8731 /* Line 1806 of yacc.c */ 8732 #line 2 636"parser.yy"8971 case 723: 8972 8973 /* Line 1806 of yacc.c */ 8974 #line 2701 "parser.yy" 8733 8975 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8734 8976 break; 8735 8977 8736 case 7 16:8737 8738 /* Line 1806 of yacc.c */ 8739 #line 2 638"parser.yy"8978 case 724: 8979 8980 /* Line 1806 of yacc.c */ 8981 #line 2703 "parser.yy" 8740 8982 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8741 8983 break; 8742 8984 8743 case 7 17:8744 8745 /* Line 1806 of yacc.c */ 8746 #line 2 640"parser.yy"8985 case 725: 8986 8987 /* Line 1806 of yacc.c */ 8988 #line 2705 "parser.yy" 8747 8989 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8748 8990 break; 8749 8991 8750 case 7 18:8751 8752 /* Line 1806 of yacc.c */ 8753 #line 2 642"parser.yy"8992 case 726: 8993 8994 /* Line 1806 of yacc.c */ 8995 #line 2707 "parser.yy" 8754 8996 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8755 8997 break; 8756 8998 8757 case 7 19:8758 8759 /* Line 1806 of yacc.c */ 8760 #line 2 649"parser.yy"8999 case 727: 9000 9001 /* Line 1806 of yacc.c */ 9002 #line 2714 "parser.yy" 8761 9003 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8762 9004 break; 8763 9005 8764 case 72 0:8765 8766 /* Line 1806 of yacc.c */ 8767 #line 2 651"parser.yy"9006 case 728: 9007 9008 /* Line 1806 of yacc.c */ 9009 #line 2716 "parser.yy" 8768 9010 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8769 9011 break; 8770 9012 8771 case 72 1:8772 8773 /* Line 1806 of yacc.c */ 8774 #line 2 653"parser.yy"9013 case 729: 9014 9015 /* Line 1806 of yacc.c */ 9016 #line 2718 "parser.yy" 8775 9017 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8776 9018 break; 8777 9019 8778 case 7 22:8779 8780 /* Line 1806 of yacc.c */ 8781 #line 2 655"parser.yy"9020 case 730: 9021 9022 /* Line 1806 of yacc.c */ 9023 #line 2720 "parser.yy" 8782 9024 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8783 9025 break; 8784 9026 8785 case 7 23:8786 8787 /* Line 1806 of yacc.c */ 8788 #line 2 657"parser.yy"9027 case 731: 9028 9029 /* Line 1806 of yacc.c */ 9030 #line 2722 "parser.yy" 8789 9031 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8790 9032 break; 8791 9033 8792 case 7 24:8793 8794 /* Line 1806 of yacc.c */ 8795 #line 2 659"parser.yy"9034 case 732: 9035 9036 /* Line 1806 of yacc.c */ 9037 #line 2724 "parser.yy" 8796 9038 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8797 9039 break; 8798 9040 8799 case 7 25:8800 8801 /* Line 1806 of yacc.c */ 8802 #line 2 664"parser.yy"9041 case 733: 9042 9043 /* Line 1806 of yacc.c */ 9044 #line 2729 "parser.yy" 8803 9045 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8804 9046 break; 8805 9047 8806 case 7 26:8807 8808 /* Line 1806 of yacc.c */ 8809 #line 2 669"parser.yy"9048 case 734: 9049 9050 /* Line 1806 of yacc.c */ 9051 #line 2734 "parser.yy" 8810 9052 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 8811 9053 break; 8812 9054 8813 case 7 27:8814 8815 /* Line 1806 of yacc.c */ 8816 #line 2 671"parser.yy"9055 case 735: 9056 9057 /* Line 1806 of yacc.c */ 9058 #line 2736 "parser.yy" 8817 9059 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8818 9060 break; 8819 9061 8820 case 7 28:8821 8822 /* Line 1806 of yacc.c */ 8823 #line 2 673"parser.yy"9062 case 736: 9063 9064 /* Line 1806 of yacc.c */ 9065 #line 2738 "parser.yy" 8824 9066 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8825 9067 break; 8826 9068 8827 case 73 1:8828 8829 /* Line 1806 of yacc.c */ 8830 #line 2 697"parser.yy"9069 case 739: 9070 9071 /* Line 1806 of yacc.c */ 9072 #line 2762 "parser.yy" 8831 9073 { (yyval.en) = 0; } 8832 9074 break; 8833 9075 8834 case 7 32:8835 8836 /* Line 1806 of yacc.c */ 8837 #line 2 699"parser.yy"9076 case 740: 9077 9078 /* Line 1806 of yacc.c */ 9079 #line 2764 "parser.yy" 8838 9080 { (yyval.en) = (yyvsp[(2) - (2)].en); } 8839 9081 break; … … 8842 9084 8843 9085 /* Line 1806 of yacc.c */ 8844 #line 8845"Parser/parser.cc"9086 #line 9087 "Parser/parser.cc" 8845 9087 default: break; 8846 9088 } … … 9073 9315 9074 9316 /* Line 2067 of yacc.c */ 9075 #line 27 02"parser.yy"9317 #line 2767 "parser.yy" 9076 9318 9077 9319 // ----end of grammar---- -
src/Parser/parser.h
re45215c rd60ccbf 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; … … 256 256 StatementNode *sn; 257 257 ConstantNode *constant; 258 LabelNode *label; 258 259 InitializerNode *in; 260 bool flag; 259 261 260 262 261 263 262 264 /* Line 2068 of yacc.c */ 263 #line 26 4"Parser/parser.h"265 #line 266 "Parser/parser.h" 264 266 } YYSTYPE; 265 267 # define YYSTYPE_IS_TRIVIAL 1 -
src/Parser/parser.yy
re45215c rd60ccbf 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 3 13:53:45201513 // Update Count : 1 22012 // Last Modified On : Tue Aug 11 16:01:49 2015 13 // Update Count : 1350 14 14 // 15 15 … … 54 54 #include "lex.h" 55 55 #include "ParseNode.h" 56 #include "TypeData.h" 56 57 #include "LinkageSpec.h" 57 58 … … 114 115 StatementNode *sn; 115 116 ConstantNode *constant; 117 LabelNode *label; 116 118 InitializerNode *in; 119 bool flag; 117 120 } 118 121 … … 133 136 %type<en> argument_expression_list argument_expression for_control_expression assignment_opt 134 137 %type<en> subrange 138 %type<en> asm_operands_opt asm_operands_list asm_operand 139 %type<label> label_list 140 %type<constant> asm_clobbers_list_opt 141 %type<flag> asm_volatile_opt 135 142 136 143 // statements … … 228 235 %type<decl> variable_abstract_ptr variable_array variable_declarator variable_function variable_ptr 229 236 237 %type<decl> attribute_list_opt attribute_list attribute 238 230 239 // initializers 231 240 %type<in> initializer initializer_list initializer_opt … … 329 338 | zero_one 330 339 { $$ = new VarRefNode( $1 ); } 331 | constant332 { $$ = $1; }333 | string_literal_list334 { $$ = $1; }335 340 | '(' comma_expression ')' 336 341 { $$ = $2; } … … 375 380 | assignment_expression 376 381 | no_attr_identifier ':' assignment_expression 377 { $$ = $3->set_a sArgName( $1 ); }382 { $$ = $3->set_argName( $1 ); } 378 383 // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient 379 384 // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used 380 385 // with an appropriate semantic check. 381 386 | '[' push assignment_expression pop ']' ':' assignment_expression 382 { $$ = $7->set_a sArgName( $3 ); }387 { $$ = $7->set_argName( $3 ); } 383 388 | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression 384 { $$ = $9->set_a sArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }389 { $$ = $9->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); } 385 390 ; 386 391 … … 405 410 unary_expression: 406 411 postfix_expression 412 // first location where constant/string can have operator applied: sizeof 3/sizeof "abc" 413 // still requires semantics checks, e.g., ++3, 3--, *3, &&3 414 | constant 415 { $$ = $1; } 416 | string_literal_list 417 { $$ = $1; } 407 418 | ICR unary_expression 408 419 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2 ); } … … 620 631 labeled_statement: 621 632 no_attr_identifier ':' attribute_list_opt statement 622 { $$ = $4->add_label( $1 );} 633 { 634 $$ = $4->add_label( $1 ); 635 } 623 636 ; 624 637 … … 630 643 // requires its own scope 631 644 push push 632 l abel_declaration_opt// GCC, local labels645 local_label_declaration_opt // GCC, local labels 633 646 block_item_list pop '}' // C99, intermix declarations and statements 634 647 { $$ = new CompoundStmtNode( $5 ); } … … 749 762 750 763 fall_through: // CFA 751 FALLTHRU { $$ = new StatementNode( StatementNode::Fallthru , 0, 0); }752 | FALLTHRU ';' { $$ = new StatementNode( StatementNode::Fallthru , 0, 0); }764 FALLTHRU { $$ = new StatementNode( StatementNode::Fallthru ); } 765 | FALLTHRU ';' { $$ = new StatementNode( StatementNode::Fallthru ); } 753 766 ; 754 767 … … 778 791 | CONTINUE ';' 779 792 // 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); }793 { $$ = new StatementNode( StatementNode::Continue ); } 781 794 | CONTINUE no_attr_identifier ';' // CFA, multi-level continue 782 795 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and … … 785 798 | BREAK ';' 786 799 // 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); }800 { $$ = new StatementNode( StatementNode::Break ); } 788 801 | BREAK no_attr_identifier ';' // CFA, multi-level exit 789 802 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and … … 795 808 { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); } 796 809 | THROW ';' 797 { $$ = new StatementNode( StatementNode::Throw , 0, 0); }810 { $$ = new StatementNode( StatementNode::Throw ); } 798 811 ; 799 812 … … 858 871 859 872 asm_statement: 860 ASM type_qualifier_list_opt '(' constant_expression ')' ';' 861 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 862 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ')' ';' // remaining GCC 863 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 864 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ')' ';' 865 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 866 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list ')' ';' 867 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 873 ASM asm_volatile_opt '(' string_literal_list ')' ';' 874 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, 0 ); } 875 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC 876 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6 ); } 877 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';' 878 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8 ); } 879 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';' 880 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8, $10 ); } 881 | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';' 882 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $5, 0, $8, $10, $12 ); } 883 ; 884 885 asm_volatile_opt: // GCC 886 // empty 887 { $$ = false; } 888 | VOLATILE 889 { $$ = true; } 868 890 ; 869 891 870 892 asm_operands_opt: // GCC 871 893 // empty 894 { $$ = 0; } // use default argument 872 895 | asm_operands_list 873 896 ; … … 876 899 asm_operand 877 900 | asm_operands_list ',' asm_operand 901 { $$ = (ExpressionNode *)$1->set_link( $3 ); } 878 902 ; 879 903 880 904 asm_operand: // GCC 881 STRINGliteral '(' constant_expression ')' {} 882 ; 883 884 asm_clobbers_list: // GCC 885 STRINGliteral {} 886 | asm_clobbers_list ',' STRINGliteral 905 string_literal_list '(' constant_expression ')' 906 { $$ = new AsmExprNode( 0, $1, $3 ); } 907 | '[' constant_expression ']' string_literal_list '(' constant_expression ')' 908 { $$ = new AsmExprNode( $2, $4, $6 ); } 909 ; 910 911 asm_clobbers_list_opt: // GCC 912 // empty 913 { $$ = 0; } // use default argument 914 | string_literal_list 915 { $$ = $1; } 916 | asm_clobbers_list_opt ',' string_literal_list 917 { $$ = (ConstantNode *)$1->set_link( $3 ); } 918 ; 919 920 label_list: 921 no_attr_identifier 922 { $$ = new LabelNode(); $$->append_label( $1 ); } 923 | label_list ',' no_attr_identifier 924 { $$ = $1; $1->append_label( $3 ); } 887 925 ; 888 926 … … 913 951 ; 914 952 915 l abel_declaration_opt:// GCC, local label953 local_label_declaration_opt: // GCC, local label 916 954 // empty 917 | l abel_declaration_list918 ; 919 920 l abel_declaration_list:// GCC, local label921 LABEL l abel_list ';'922 | l abel_declaration_list LABELlabel_list ';'923 ; 924 925 l abel_list:// GCC, local label926 no_attr_identifier_or_type_name {}927 | l abel_list ',' no_attr_identifier_or_type_name {}955 | local_label_declaration_list 956 ; 957 958 local_label_declaration_list: // GCC, local label 959 LABEL local_label_list ';' 960 | local_label_declaration_list LABEL local_label_list ';' 961 ; 962 963 local_label_list: // GCC, local label 964 no_attr_identifier_or_type_name {} 965 | local_label_list ',' no_attr_identifier_or_type_name {} 928 966 ; 929 967 … … 1182 1220 type_qualifier_name 1183 1221 | attribute 1184 1222 //{ $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 1185 1223 ; 1186 1224 … … 1655 1693 1656 1694 designator: 1657 '.' no_attr_identifier_or_type_name // C99, field name 1658 { $$ = new VarRefNode( $2 ); } 1695 // only ".0" and ".1" allowed => semantic check 1696 FLOATINGconstant 1697 { $$ = new DesignatorNode( new VarRefNode( $1 ) ); } 1698 | '.' no_attr_identifier_or_type_name // C99, field name 1699 { $$ = new DesignatorNode( new VarRefNode( $2 ) ); } 1659 1700 | '[' push assignment_expression pop ']' // C99, single array element 1660 1701 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple. 1661 { $$ = $3; }1702 { $$ = new DesignatorNode( $3, true ); } 1662 1703 | '[' push subrange pop ']' // CFA, multiple array elements 1663 { $$ = $3; }1704 { $$ = new DesignatorNode( $3, true ); } 1664 1705 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1665 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5); }1706 { $$ = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5 ), true ); } 1666 1707 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1667 { $$ = $4; }1708 { $$ = new DesignatorNode( $4 ); } 1668 1709 ; 1669 1710 … … 1997 2038 attribute_list_opt: // GCC 1998 2039 // empty 2040 { $$ = 0; } 1999 2041 | attribute_list 2000 2042 ; … … 2003 2045 attribute 2004 2046 | attribute_list attribute 2047 { $$ = $2->addQualifiers( $1 ); } 2005 2048 ; 2006 2049 2007 2050 attribute: // GCC 2008 2051 ATTRIBUTE '(' '(' attribute_parameter_list ')' ')' 2052 // { $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 2053 { $$ = 0; } 2009 2054 ; 2010 2055 … … 2059 2104 variable_declarator: 2060 2105 paren_identifier attribute_list_opt 2106 { $$ = $1->addQualifiers( $2 ); } 2061 2107 | variable_ptr 2062 2108 | variable_array attribute_list_opt 2109 { $$ = $1->addQualifiers( $2 ); } 2063 2110 | variable_function attribute_list_opt 2111 { $$ = $1->addQualifiers( $2 ); } 2064 2112 ; 2065 2113 … … 2108 2156 function_declarator: 2109 2157 function_no_ptr attribute_list_opt 2158 { $$ = $1->addQualifiers( $2 ); } 2110 2159 | function_ptr 2111 2160 | function_array attribute_list_opt 2161 { $$ = $1->addQualifiers( $2 ); } 2112 2162 ; 2113 2163 … … 2188 2238 type_redeclarator: 2189 2239 paren_type attribute_list_opt 2240 { $$ = $1->addQualifiers( $2 ); } 2190 2241 | type_ptr 2191 2242 | type_array attribute_list_opt 2243 { $$ = $1->addQualifiers( $2 ); } 2192 2244 | type_function attribute_list_opt 2245 { $$ = $1->addQualifiers( $2 ); } 2193 2246 ; 2194 2247 … … 2235 2288 identifier_parameter_declarator: 2236 2289 paren_identifier attribute_list_opt 2290 { $$ = $1->addQualifiers( $2 ); } 2237 2291 | identifier_parameter_ptr 2238 2292 | identifier_parameter_array attribute_list_opt 2293 { $$ = $1->addQualifiers( $2 ); } 2239 2294 | identifier_parameter_function attribute_list_opt 2295 { $$ = $1->addQualifiers( $2 ); } 2240 2296 ; 2241 2297 … … 2297 2353 type_parameter_redeclarator: 2298 2354 typedef attribute_list_opt 2355 { $$ = $1->addQualifiers( $2 ); } 2299 2356 | type_parameter_ptr 2300 2357 | type_parameter_array attribute_list_opt 2358 { $$ = $1->addQualifiers( $2 ); } 2301 2359 | type_parameter_function attribute_list_opt 2360 { $$ = $1->addQualifiers( $2 ); } 2302 2361 ; 2303 2362 … … 2350 2409 abstract_ptr 2351 2410 | abstract_array attribute_list_opt 2411 { $$ = $1->addQualifiers( $2 ); } 2352 2412 | abstract_function attribute_list_opt 2413 { $$ = $1->addQualifiers( $2 ); } 2353 2414 ; 2354 2415 … … 2417 2478 abstract_parameter_ptr 2418 2479 | abstract_parameter_array attribute_list_opt 2480 { $$ = $1->addQualifiers( $2 ); } 2419 2481 | abstract_parameter_function attribute_list_opt 2482 { $$ = $1->addQualifiers( $2 ); } 2420 2483 ; 2421 2484 … … 2493 2556 variable_abstract_ptr 2494 2557 | variable_abstract_array attribute_list_opt 2558 { $$ = $1->addQualifiers( $2 ); } 2495 2559 | variable_abstract_function attribute_list_opt 2560 { $$ = $1->addQualifiers( $2 ); } 2496 2561 ; 2497 2562 -
src/ResolvExpr/AlternativeFinder.cc
re45215c rd60ccbf 343 343 } 344 344 345 /// Adds type variables to the open variable set and marks their assertions 345 346 void makeUnifiableVars( Type *type, OpenVarSet &unifiableVars, AssertionSet &needAssertions ) { 346 347 for ( std::list< TypeDecl* >::const_iterator tyvar = type->get_forall().begin(); tyvar != type->get_forall().end(); ++tyvar ) { … … 697 698 std::list< Type* >::iterator candidate_end = (*i).expr->get_results().begin(); 698 699 std::advance( candidate_end, castExpr->get_results().size() ); 699 if ( ! unifyList( (*i).expr->get_results().begin(), candidate_end,700 castExpr->get_results().begin(), castExpr->get_results().end(), i->env, needAssertions, haveAssertions, openVars, indexer ) ) continue;701 700 Cost thisCost = castCostList( (*i).expr->get_results().begin(), candidate_end, 702 701 castExpr->get_results().begin(), castExpr->get_results().end(), indexer, i->env ); -
src/ResolvExpr/CommonType.cc
re45215c rd60ccbf 138 138 void CommonType::visit( PointerType *pointerType ) { 139 139 if ( PointerType *otherPointer = dynamic_cast< PointerType* >( type2 ) ) { 140 if ( widenFirst && dynamic_cast< VoidType* >( otherPointer->get_base() ) ) {140 if ( widenFirst && dynamic_cast< VoidType* >( otherPointer->get_base() ) && ! isFtype(pointerType->get_base(), indexer) ) { 141 141 result = otherPointer->clone(); 142 142 result->get_qualifiers() += pointerType->get_qualifiers(); 143 } else if ( widenSecond && dynamic_cast< VoidType* >( pointerType->get_base() ) ) {143 } else if ( widenSecond && dynamic_cast< VoidType* >( pointerType->get_base() ) && ! isFtype(otherPointer->get_base(), indexer) ) { 144 144 result = pointerType->clone(); 145 145 result->get_qualifiers() += otherPointer->get_qualifiers(); -
src/ResolvExpr/Cost.h
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 09:39:50 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sun May 17 09:42:04201513 // Update Count : 311 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jul 22 16:43:10 2015 13 // Update Count : 4 14 14 // 15 15 … … 56 56 57 57 inline void Cost::incPoly( int inc ) { 58 unsafe+= inc;58 poly += inc; 59 59 } 60 60 61 61 inline void Cost::incSafe( int inc ) { 62 unsafe += inc;62 safe += inc; 63 63 } 64 64 -
src/ResolvExpr/Resolver.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:17:01 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 15 14:54:04 201513 // Update Count : 1 6711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 24 17:33:54 2015 13 // Update Count : 178 14 14 // 15 15 … … 41 41 42 42 virtual void visit( ExprStmt *exprStmt ); 43 virtual void visit( AsmExpr *asmExpr ); 44 virtual void visit( AsmStmt *asmStmt ); 43 45 virtual void visit( IfStmt *ifStmt ); 44 46 virtual void visit( WhileStmt *whileStmt ); … … 209 211 exprStmt->set_expr( newExpr ); 210 212 } // if 213 } 214 215 void Resolver::visit( AsmExpr *asmExpr ) { 216 Expression *newExpr = findVoidExpression( asmExpr->get_operand(), *this ); 217 delete asmExpr->get_operand(); 218 asmExpr->set_operand( newExpr ); 219 if ( asmExpr->get_inout() ) { 220 newExpr = findVoidExpression( asmExpr->get_inout(), *this ); 221 delete asmExpr->get_inout(); 222 asmExpr->set_inout( newExpr ); 223 } // if 224 } 225 226 void Resolver::visit( AsmStmt *asmStmt ) { 227 acceptAll( asmStmt->get_input(), *this); 228 acceptAll( asmStmt->get_output(), *this); 211 229 } 212 230 -
src/ResolvExpr/Resolver.h
re45215c rd60ccbf 21 21 22 22 namespace ResolvExpr { 23 /// Checks types and binds syntactic constructs to typed representations 23 24 void resolve( std::list< Declaration * > translationUnit ); 24 25 Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer ); -
src/ResolvExpr/typeops.h
re45215c rd60ccbf 117 117 118 118 // in Unify.cc 119 bool isFtype( Type *type, const SymTab::Indexer &indexer ); 119 120 bool typesCompatible( Type *, Type *, const SymTab::Indexer &indexer, const TypeEnvironment &env ); 120 121 bool typesCompatibleIgnoreQualifiers( Type *, Type *, const SymTab::Indexer &indexer, const TypeEnvironment &env ); -
src/SymTab/FixFunction.h
re45215c rd60ccbf 20 20 21 21 namespace SymTab { 22 /// Replaces function and array types by equivalent pointer types. 22 23 class FixFunction : public Mutator { 23 24 typedef Mutator Parent; -
src/SymTab/Indexer.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:37:33 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Jun 5 08:05:17201513 // Update Count : 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 05 13:52:42 2015 13 // Update Count : 10 14 14 // 15 15 … … 26 26 27 27 namespace SymTab { 28 template< typename Container, typename VisitorType > 29 inline void acceptAllNewScope( Container &container, VisitorType &visitor ) { 30 visitor.enterScope(); 31 acceptAll( container, visitor ); 32 visitor.leaveScope(); 33 } 34 28 35 Indexer::Indexer( bool useDebug ) : doDebug( useDebug ) {} 29 36 … … 31 38 32 39 void Indexer::visit( ObjectDecl *objectDecl ) { 40 enterScope(); 33 41 maybeAccept( objectDecl->get_type(), *this ); 42 leaveScope(); 34 43 maybeAccept( objectDecl->get_init(), *this ); 35 44 maybeAccept( objectDecl->get_bitfieldWidth(), *this ); … … 149 158 leaveScope(); 150 159 } 160 161 162 void Indexer::visit( ApplicationExpr *applicationExpr ) { 163 acceptAllNewScope( applicationExpr->get_results(), *this ); 164 maybeAccept( applicationExpr->get_function(), *this ); 165 acceptAll( applicationExpr->get_args(), *this ); 166 } 167 168 void Indexer::visit( UntypedExpr *untypedExpr ) { 169 acceptAllNewScope( untypedExpr->get_results(), *this ); 170 acceptAll( untypedExpr->get_args(), *this ); 171 } 172 173 void Indexer::visit( NameExpr *nameExpr ) { 174 acceptAllNewScope( nameExpr->get_results(), *this ); 175 } 176 177 void Indexer::visit( AddressExpr *addressExpr ) { 178 acceptAllNewScope( addressExpr->get_results(), *this ); 179 maybeAccept( addressExpr->get_arg(), *this ); 180 } 181 182 void Indexer::visit( LabelAddressExpr *labAddressExpr ) { 183 acceptAllNewScope( labAddressExpr->get_results(), *this ); 184 maybeAccept( labAddressExpr->get_arg(), *this ); 185 } 186 187 void Indexer::visit( CastExpr *castExpr ) { 188 acceptAllNewScope( castExpr->get_results(), *this ); 189 maybeAccept( castExpr->get_arg(), *this ); 190 } 191 192 void Indexer::visit( UntypedMemberExpr *memberExpr ) { 193 acceptAllNewScope( memberExpr->get_results(), *this ); 194 maybeAccept( memberExpr->get_aggregate(), *this ); 195 } 196 197 void Indexer::visit( MemberExpr *memberExpr ) { 198 acceptAllNewScope( memberExpr->get_results(), *this ); 199 maybeAccept( memberExpr->get_aggregate(), *this ); 200 } 201 202 void Indexer::visit( VariableExpr *variableExpr ) { 203 acceptAllNewScope( variableExpr->get_results(), *this ); 204 } 205 206 void Indexer::visit( ConstantExpr *constantExpr ) { 207 acceptAllNewScope( constantExpr->get_results(), *this ); 208 maybeAccept( constantExpr->get_constant(), *this ); 209 } 210 211 void Indexer::visit( SizeofExpr *sizeofExpr ) { 212 acceptAllNewScope( sizeofExpr->get_results(), *this ); 213 if ( sizeofExpr->get_isType() ) { 214 maybeAccept( sizeofExpr->get_type(), *this ); 215 } else { 216 maybeAccept( sizeofExpr->get_expr(), *this ); 217 } 218 } 219 220 void Indexer::visit( AttrExpr *attrExpr ) { 221 acceptAllNewScope( attrExpr->get_results(), *this ); 222 if ( attrExpr->get_isType() ) { 223 maybeAccept( attrExpr->get_type(), *this ); 224 } else { 225 maybeAccept( attrExpr->get_expr(), *this ); 226 } 227 } 228 229 void Indexer::visit( LogicalExpr *logicalExpr ) { 230 acceptAllNewScope( logicalExpr->get_results(), *this ); 231 maybeAccept( logicalExpr->get_arg1(), *this ); 232 maybeAccept( logicalExpr->get_arg2(), *this ); 233 } 234 235 void Indexer::visit( ConditionalExpr *conditionalExpr ) { 236 acceptAllNewScope( conditionalExpr->get_results(), *this ); 237 maybeAccept( conditionalExpr->get_arg1(), *this ); 238 maybeAccept( conditionalExpr->get_arg2(), *this ); 239 maybeAccept( conditionalExpr->get_arg3(), *this ); 240 } 241 242 void Indexer::visit( CommaExpr *commaExpr ) { 243 acceptAllNewScope( commaExpr->get_results(), *this ); 244 maybeAccept( commaExpr->get_arg1(), *this ); 245 maybeAccept( commaExpr->get_arg2(), *this ); 246 } 247 248 void Indexer::visit( TupleExpr *tupleExpr ) { 249 acceptAllNewScope( tupleExpr->get_results(), *this ); 250 acceptAll( tupleExpr->get_exprs(), *this ); 251 } 252 253 void Indexer::visit( SolvedTupleExpr *tupleExpr ) { 254 acceptAllNewScope( tupleExpr->get_results(), *this ); 255 acceptAll( tupleExpr->get_exprs(), *this ); 256 } 257 258 void Indexer::visit( TypeExpr *typeExpr ) { 259 acceptAllNewScope( typeExpr->get_results(), *this ); 260 maybeAccept( typeExpr->get_type(), *this ); 261 } 262 263 void Indexer::visit( AsmExpr *asmExpr ) { 264 maybeAccept( asmExpr->get_inout(), *this ); 265 maybeAccept( asmExpr->get_constraint(), *this ); 266 maybeAccept( asmExpr->get_operand(), *this ); 267 } 268 269 void Indexer::visit( UntypedValofExpr *valofExpr ) { 270 acceptAllNewScope( valofExpr->get_results(), *this ); 271 maybeAccept( valofExpr->get_body(), *this ); 272 } 273 151 274 152 275 void Indexer::visit( ContextInstType *contextInst ) { -
src/SymTab/Indexer.h
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:38:55 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue May 19 16:51:21201513 // Update Count : 311 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 05 13:51:39 2015 13 // Update Count : 4 14 14 // 15 15 … … 43 43 44 44 virtual void visit( CompoundStmt *compoundStmt ); 45 46 virtual void visit( ApplicationExpr *applicationExpr ); 47 virtual void visit( UntypedExpr *untypedExpr ); 48 virtual void visit( NameExpr *nameExpr ); 49 virtual void visit( CastExpr *castExpr ); 50 virtual void visit( AddressExpr *addressExpr ); 51 virtual void visit( LabelAddressExpr *labAddressExpr ); 52 virtual void visit( UntypedMemberExpr *memberExpr ); 53 virtual void visit( MemberExpr *memberExpr ); 54 virtual void visit( VariableExpr *variableExpr ); 55 virtual void visit( ConstantExpr *constantExpr ); 56 virtual void visit( SizeofExpr *sizeofExpr ); 57 virtual void visit( AttrExpr *attrExpr ); 58 virtual void visit( LogicalExpr *logicalExpr ); 59 virtual void visit( ConditionalExpr *conditionalExpr ); 60 virtual void visit( CommaExpr *commaExpr ); 61 virtual void visit( TupleExpr *tupleExpr ); 62 virtual void visit( SolvedTupleExpr *tupleExpr ); 63 virtual void visit( TypeExpr *typeExpr ); 64 virtual void visit( AsmExpr *asmExpr ); 65 virtual void visit( UntypedValofExpr *valofExpr ); 45 66 46 67 virtual void visit( ContextInstType *contextInst ); -
src/SymTab/TypeEquality.cc
re45215c rd60ccbf 10 10 // Created On : Tue Jul 07 16:28:29 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Jul 09 11:18:46201513 // Update Count : 3 612 // Last Modified On : Mon Jul 20 14:16:11 2015 13 // Update Count : 37 14 14 // 15 15 … … 91 91 // and must both have a dimension expression or not have a dimension 92 92 result = result && arrayType->get_isVarLen() == at->get_isVarLen() 93 && ( arrayType->get_dimension() != 0 && at->get_dimension() != 094 || arrayType->get_dimension() == 0 && at->get_dimension() == 0);93 && ((arrayType->get_dimension() != 0 && at->get_dimension() != 0) 94 || (arrayType->get_dimension() == 0 && at->get_dimension() == 0)); 95 95 96 96 if ( vlaErr ) { -
src/SymTab/Validate.cc
re45215c rd60ccbf 10 10 // Created On : Sun May 17 21:50:04 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Jul 14 12:27:54 201513 // Update Count : 1 8612 // Last Modified On : Wed Aug 05 14:00:24 2015 13 // Update Count : 195 14 14 // 15 15 … … 60 60 class HoistStruct : public Visitor { 61 61 public: 62 /// Flattens nested struct types 62 63 static void hoistStruct( std::list< Declaration * > &translationUnit ); 63 64 … … 84 85 }; 85 86 87 /// Replaces enum types by int, and function or array types in function parameter and return lists by appropriate pointers 86 88 class Pass1 : public Visitor { 87 89 typedef Visitor Parent; … … 89 91 virtual void visit( FunctionType *func ); 90 92 }; 91 93 94 /// Associates forward declarations of aggregates with their definitions 92 95 class Pass2 : public Indexer { 93 96 typedef Indexer Parent; … … 110 113 }; 111 114 115 /// Replaces array and function types in forall lists by appropriate pointer type 112 116 class Pass3 : public Indexer { 113 117 typedef Indexer Parent; … … 123 127 class AddStructAssignment : public Visitor { 124 128 public: 129 /// Generates assignment operators for aggregate types as required 125 130 static void addStructAssignment( std::list< Declaration * > &translationUnit ); 126 131 … … 158 163 public: 159 164 EliminateTypedef() : scopeLevel( 0 ) {} 165 /// Replaces typedefs by forward declarations 160 166 static void eliminateTypedef( std::list< Declaration * > &translationUnit ); 161 167 private: … … 163 169 virtual TypeDecl *mutate( TypeDecl *typeDecl ); 164 170 virtual DeclarationWithType *mutate( FunctionDecl *funcDecl ); 165 virtual ObjectDecl*mutate( ObjectDecl *objDecl );171 virtual DeclarationWithType *mutate( ObjectDecl *objDecl ); 166 172 virtual CompoundStmt *mutate( CompoundStmt *compoundStmt ); 167 173 virtual Type *mutate( TypeInstType *aggregateUseType ); … … 399 405 } // for 400 406 } // for 407 408 if ( ctx->get_parameters().size() != contextInst->get_parameters().size() ) { 409 throw SemanticError( "incorrect number of context parameters: ", contextInst ); 410 } // if 411 401 412 applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), ctx->get_members().begin(), ctx->get_members().end(), back_inserter( contextInst->get_members() ) ); 402 413 } … … 444 455 } 445 456 457 /// Fix up assertions 446 458 void forallFixer( Type *func ) { 447 // Fix up assertions448 459 for ( std::list< TypeDecl * >::iterator type = func->get_forall().begin(); type != func->get_forall().end(); ++type ) { 449 460 std::list< DeclarationWithType * > toBeDone, nextRound; … … 532 543 std::list<Statement *> initList; 533 544 initList.push_back( initStmt ); 534 545 535 546 UntypedExpr *cond = new UntypedExpr( new NameExpr( "?<?" ) ); 536 547 cond->get_args().push_back( new VariableExpr( index ) ); … … 610 621 delete assigns.front(); 611 622 assigns.pop_front(); 612 } 623 } // for 613 624 614 625 declsToAdd.insert( declsToAdd.begin(), assigns.begin(), assigns.end() ); … … 817 828 Type *ret = def->second.first->get_base()->clone(); 818 829 ret->get_qualifiers() += typeInst->get_qualifiers(); 830 // place instance parameters on the typedef'd type 831 if ( ! typeInst->get_parameters().empty() ) { 832 ReferenceToType *rtt = dynamic_cast<ReferenceToType*>(ret); 833 if ( ! rtt ) { 834 throw SemanticError("cannot apply type parameters to base type of " + typeInst->get_name()); 835 } 836 rtt->get_parameters().clear(); 837 cloneAll(typeInst->get_parameters(), rtt->get_parameters()); 838 } // if 819 839 delete typeInst; 820 840 return ret; … … 870 890 } 871 891 872 ObjectDecl*EliminateTypedef::mutate( ObjectDecl * objDecl ) {892 DeclarationWithType *EliminateTypedef::mutate( ObjectDecl * objDecl ) { 873 893 TypedefMap oldNames = typedefNames; 874 ObjectDecl*ret = Mutator::mutate( objDecl );894 DeclarationWithType *ret = Mutator::mutate( objDecl ); 875 895 typedefNames = oldNames; 896 if ( FunctionType *funtype = dynamic_cast<FunctionType *>( ret->get_type() ) ) { 897 return new FunctionDecl( ret->get_name(), ret->get_storageClass(), ret->get_linkage(), funtype, 0, ret->get_isInline(), ret->get_isNoreturn() ); 898 } else if ( objDecl->get_isInline() || objDecl->get_isNoreturn() ) { 899 throw SemanticError( "invalid inline or _Noreturn specification in declaration of ", objDecl ); 900 } // if 876 901 return ret; 877 902 } -
src/SymTab/Validate.h
re45215c rd60ccbf 23 23 class Indexer; 24 24 25 /// Normalizes struct and function declarations 25 26 void validate( std::list< Declaration * > &translationUnit, bool doDebug = false ); 26 27 void validateType( Type *type, const Indexer *indexer ); -
src/SynTree/ArrayType.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sat Jun 6 14:11:48201513 // Update Count : 911 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:19:07 2015 13 // Update Count : 11 14 14 // 15 15 … … 50 50 } // if 51 51 if ( dimension ) { 52 os << " with dimension of ";53 dimension->print( os, indent);52 os << " with dimension of "; 53 dimension->print( os, 0 ); 54 54 } // if 55 55 } -
src/SynTree/BasicType.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sun Jun 7 08:44:36201513 // Update Count : 511 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:15:45 2015 13 // Update Count : 6 14 14 // 15 15 … … 28 28 29 29 Type::print( os, indent ); 30 os << kindNames[ kind ] << ' ';30 os << kindNames[ kind ]; 31 31 } 32 32 -
src/SynTree/Constant.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 10 14:41:03201513 // Update Count : 811 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 30 15:18:38 2015 13 // Update Count : 12 14 14 // 15 15 … … 22 22 Constant::Constant( Type *type_, std::string value_ ) : type( type_ ), value( value_ ) {} 23 23 24 Constant::~Constant() {} 24 Constant::Constant( const Constant &other ) { 25 type = other.type->clone(); 26 value = other.value; 27 } 25 28 26 Constant *Constant::clone() const { return 0; } 29 Constant::~Constant() { delete type; } 30 31 Constant *Constant::clone() const { assert( false ); return 0; } 27 32 28 33 void Constant::print( std::ostream &os ) const { -
src/SynTree/Constant.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 08:46:37201513 // Update Count : 212 // Last Modified On : Thu Jul 30 15:19:16 2015 13 // Update Count : 5 14 14 // 15 15 … … 24 24 public: 25 25 Constant( Type *type, std::string value ); 26 Constant( const Constant &other ); 26 27 virtual ~Constant(); 27 28 -
src/SynTree/Declaration.cc
re45215c rd60ccbf 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 08:07:20201513 // Update Count : 912 // Last Modified On : Mon Jul 13 17:58:38 2015 13 // Update Count : 10 14 14 // 15 15 … … 27 27 28 28 Declaration::Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage ) 29 : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {29 : name( name ), storageClass( sc ), linkage( linkage ), isInline( false ), isNoreturn( false ), uniqueId( 0 ) { 30 30 } 31 31 32 32 Declaration::Declaration( const Declaration &other ) 33 : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage), uniqueId( other.uniqueId ) {33 : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), isInline( other.isInline ), isNoreturn( other.isNoreturn ), uniqueId( other.uniqueId ) { 34 34 } 35 35 -
src/SynTree/Declaration.h
re45215c rd60ccbf 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 : Mon Jul 13 18:15:59 2015 13 // Update Count : 28 14 14 // 15 15 … … 35 35 LinkageSpec::Type get_linkage() const { return linkage; } 36 36 void set_linkage( LinkageSpec::Type newValue ) { linkage = newValue; } 37 bool get_isInline() const { return isInline; } 38 void set_isInline( bool newValue ) { isInline = newValue; } 39 bool get_isNoreturn() const { return isNoreturn; } 40 void set_isNoreturn( bool newValue ) { isNoreturn = newValue; } 37 41 UniqueId get_uniqueId() const { return uniqueId; } 38 42 … … 50 54 DeclarationNode::StorageClass storageClass; 51 55 LinkageSpec::Type linkage; 56 bool isInline, isNoreturn; 52 57 UniqueId uniqueId; 53 58 }; … … 75 80 typedef DeclarationWithType Parent; 76 81 public: 77 ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );82 ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline = false, bool isNoreturn = false ); 78 83 ObjectDecl( const ObjectDecl &other ); 79 84 virtual ~ObjectDecl(); … … 89 94 virtual ObjectDecl *clone() const { return new ObjectDecl( *this ); } 90 95 virtual void accept( Visitor &v ) { v.visit( this ); } 91 virtual ObjectDecl*acceptMutator( Mutator &m ) { return m.mutate( this ); }96 virtual DeclarationWithType *acceptMutator( Mutator &m ) { return m.mutate( this ); } 92 97 virtual void print( std::ostream &os, int indent = 0 ) const; 93 98 virtual void printShort( std::ostream &os, int indent = 0 ) const; … … 112 117 CompoundStmt *get_statements() const { return statements; } 113 118 void set_statements( CompoundStmt *newValue ) { statements = newValue; } 114 bool get_isInline() const { return isInline; }115 bool get_isNoreturn() const { return isNoreturn; }116 119 std::list< std::string >& get_oldIdents() { return oldIdents; } 117 120 std::list< Declaration* >& get_oldDecls() { return oldDecls; } … … 125 128 FunctionType *type; 126 129 CompoundStmt *statements; 127 bool isInline, isNoreturn;128 130 std::list< std::string > oldIdents; 129 131 std::list< Declaration* > oldDecls; -
src/SynTree/Expression.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sun Jun 7 08:40:46201513 // Update Count : 1611 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:02:45 2015 13 // Update Count : 30 14 14 // 15 15 … … 38 38 Expression::~Expression() { 39 39 delete env; 40 //delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix40 delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix 41 41 deleteAll( results ); 42 42 } … … 72 72 73 73 void ConstantExpr::print( std::ostream &os, int indent ) const { 74 os << "constant expression " ;74 os << std::string( indent, ' ' ) << "constant expression " ; 75 75 constant.print( os ); 76 76 Expression::print( os, indent ); 77 os << std::endl; 77 78 } 78 79 … … 332 333 } 333 334 335 void AsmExpr::print( std::ostream &os, int indent ) const { 336 os << "Asm Expression: " << std::endl; 337 if ( inout ) inout->print( os, indent + 2 ); 338 if ( constraint ) constraint->print( os, indent + 2 ); 339 if ( operand ) operand->print( os, indent + 2 ); 340 } 341 334 342 void UntypedValofExpr::print( std::ostream &os, int indent ) const { 335 343 os << std::string( indent, ' ' ) << "Valof Expression: " << std::endl; -
src/SynTree/Expression.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jun 7 22:03:44201513 // Update Count : 412 // Last Modified On : Fri Jul 24 13:49:28 2015 13 // Update Count : 18 14 14 // 15 15 … … 30 30 31 31 std::list<Type *>& get_results() { return results; } 32 void add_result( Type *t);32 void add_result( Type *t ); 33 33 34 34 TypeSubstitution *get_env() const { return env; } … … 446 446 }; 447 447 448 // AsmExpr represents a GCC 'asm constraint operand' used in an asm statement: [output] "=f" (result) 449 class AsmExpr : public Expression { 450 public: 451 AsmExpr( Expression *inout, ConstantExpr *constraint, Expression *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 452 virtual ~AsmExpr() { delete inout; delete constraint; delete operand; }; 453 454 Expression *get_inout() const { return inout; } 455 void set_inout( Expression *newValue ) { inout = newValue; } 456 457 ConstantExpr *get_constraint() const { return constraint; } 458 void set_constraint( ConstantExpr *newValue ) { constraint = newValue; } 459 460 Expression *get_operand() const { return operand; } 461 void set_operand( Expression *newValue ) { operand = newValue; } 462 463 virtual AsmExpr *clone() const { return new AsmExpr( *this ); } 464 virtual void accept( Visitor &v ) { v.visit( this ); } 465 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 466 virtual void print( std::ostream &os, int indent = 0 ) const; 467 private: 468 // https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Machine-Constraints.html#Machine-Constraints 469 Expression *inout; 470 ConstantExpr *constraint; 471 Expression *operand; 472 }; 473 448 474 // ValofExpr represents a GCC 'lambda expression' 449 475 class UntypedValofExpr : public Expression { -
src/SynTree/FunctionDecl.cc
re45215c rd60ccbf 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:32201513 // Update Count : 1 612 // Last Modified On : Mon Jul 13 18:11:44 2015 13 // Update Count : 19 14 14 // 15 15 … … 22 22 23 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 ) { 24 : Parent( name, sc, linkage ), type( type ), statements( statements ) { 25 set_isInline( isInline ); 26 set_isNoreturn( isNoreturn ); 25 27 // this is a brazen hack to force the function "main" to have C linkage 26 28 if ( name == "main" ) { … … 30 32 31 33 FunctionDecl::FunctionDecl( const FunctionDecl &other ) 32 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ) , isInline( other.isInline ), isNoreturn( other.isNoreturn ){34 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ) { 33 35 } 34 36 … … 57 59 os << LinkageSpec::toString( get_linkage() ) << " "; 58 60 } // if 59 if ( isInline) {61 if ( get_isInline() ) { 60 62 os << "inline "; 61 63 } // if 62 if ( isNoreturn) {64 if ( get_isNoreturn() ) { 63 65 os << "_Noreturn "; 64 66 } // if … … 96 98 os << get_name() << ": "; 97 99 } // if 98 if ( isInline) {100 if ( get_isInline() ) { 99 101 os << "inline "; 100 102 } // if 101 if ( isNoreturn) {103 if ( get_isNoreturn() ) { 102 104 os << "_Noreturn "; 103 105 } // if -
src/SynTree/Initializer.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Mon May 18 09:02:45 201513 // Update Count : 211 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Aug 12 14:05:25 2015 13 // Update Count : 14 14 14 // 15 15 … … 43 43 44 44 void SingleInit::print( std::ostream &os, int indent ) { 45 os << std::endl << std::string(indent, ' ' ) << "Simple Initializer: " ;46 value->print( os, indent+ 2);45 os << std::endl << std::string(indent, ' ' ) << "Simple Initializer: " << std::endl; 46 value->print( os, indent+4 ); 47 47 48 48 if ( ! designators.empty() ) { 49 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " ;50 for ( std::list < Expression * >::iterator i = designators.begin(); i != designators.end(); i++ ) 49 os << std::endl << std::string(indent + 2, ' ' ) << "designated by: " << std::endl; 50 for ( std::list < Expression * >::iterator i = designators.begin(); i != designators.end(); i++ ) { 51 51 ( *i )->print(os, indent + 4 ); 52 } 52 53 } // if 53 54 } -
src/SynTree/Mutator.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Jul 14 12:31:39201513 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 25 19:21:33 2015 13 // Update Count : 11 14 14 // 15 15 … … 28 28 Mutator::~Mutator() {} 29 29 30 ObjectDecl*Mutator::mutate( ObjectDecl *objectDecl ) {30 DeclarationWithType *Mutator::mutate( ObjectDecl *objectDecl ) { 31 31 objectDecl->set_type( maybeMutate( objectDecl->get_type(), *this ) ); 32 32 objectDecl->set_init( maybeMutate( objectDecl->get_init(), *this ) ); … … 93 93 exprStmt->set_expr( maybeMutate( exprStmt->get_expr(), *this ) ); 94 94 return exprStmt; 95 } 96 97 Statement *Mutator::mutate( AsmStmt *asmStmt ) { 98 asmStmt->set_instruction( maybeMutate( asmStmt->get_instruction(), *this ) ); 99 mutateAll( asmStmt->get_output(), *this ); 100 mutateAll( asmStmt->get_input(), *this ); 101 mutateAll( asmStmt->get_clobber(), *this ); 102 return asmStmt; 95 103 } 96 104 … … 291 299 typeExpr->set_type( maybeMutate( typeExpr->get_type(), *this ) ); 292 300 return typeExpr; 301 } 302 303 Expression *Mutator::mutate( AsmExpr *asmExpr ) { 304 asmExpr->set_inout( maybeMutate( asmExpr->get_inout(), *this ) ); 305 asmExpr->set_constraint( maybeMutate( asmExpr->get_constraint(), *this ) ); 306 asmExpr->set_operand( maybeMutate( asmExpr->get_operand(), *this ) ); 307 return asmExpr; 293 308 } 294 309 -
src/SynTree/Mutator.h
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 29 16:34:08 201513 // Update Count : 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 23 23:24:18 2015 13 // Update Count : 7 14 14 // 15 15 #include <cassert> … … 26 26 virtual ~Mutator(); 27 27 public: 28 virtual ObjectDecl* mutate( ObjectDecl *objectDecl );28 virtual DeclarationWithType* mutate( ObjectDecl *objectDecl ); 29 29 virtual DeclarationWithType* mutate( FunctionDecl *functionDecl ); 30 30 virtual Declaration* mutate( StructDecl *aggregateDecl ); … … 37 37 virtual CompoundStmt* mutate( CompoundStmt *compoundStmt ); 38 38 virtual Statement* mutate( ExprStmt *exprStmt ); 39 virtual Statement* mutate( AsmStmt *asmStmt ); 39 40 virtual Statement* mutate( IfStmt *ifStmt ); 40 41 virtual Statement* mutate( WhileStmt *whileStmt ); … … 70 71 virtual Expression* mutate( SolvedTupleExpr *tupleExpr ); 71 72 virtual Expression* mutate( TypeExpr *typeExpr ); 73 virtual Expression* mutate( AsmExpr *asmExpr ); 72 74 virtual Expression* mutate( UntypedValofExpr *valofExpr ); 73 75 -
src/SynTree/ObjectDecl.cc
re45215c rd60ccbf 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 08:10:16201513 // Update Count : 1 512 // Last Modified On : Mon Jul 13 18:08:27 2015 13 // Update Count : 16 14 14 // 15 15 … … 20 20 #include "utility.h" 21 21 22 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )22 ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init, bool isInline, bool isNoreturn ) 23 23 : Parent( name, sc, linkage ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) { 24 set_isInline( isInline ); 25 set_isNoreturn( isNoreturn ); 24 26 } 25 27 -
src/SynTree/Statement.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 15 14:57:40 201513 // Update Count : 2711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 25 12:19:50 2015 13 // Update Count : 53 14 14 // 15 15 … … 42 42 expr->print( os, indent + 2 ); 43 43 } 44 45 46 AsmStmt::AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> output, std::list<Expression *> input, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ) : Statement( labels ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ), gotolabels( gotolabels ) {} 47 48 AsmStmt::~AsmStmt() { 49 delete instruction; 50 deleteAll( output ); 51 deleteAll( input ); 52 deleteAll( clobber ); 53 } 54 55 void AsmStmt::print( std::ostream &os, int indent ) const { 56 os << "Assembler Statement:" << endl; 57 os << std::string( indent, ' ' ) << "instruction: " << endl << std::string( indent, ' ' ); 58 instruction->print( os, indent + 2 ); 59 if ( ! output.empty() ) { 60 os << endl << std::string( indent, ' ' ) << "output: " << endl; 61 printAll( output, os, indent + 2 ); 62 } // if 63 if ( ! input.empty() ) { 64 os << std::string( indent, ' ' ) << "input: " << endl << std::string( indent, ' ' ); 65 printAll( input, os, indent + 2 ); 66 } // if 67 if ( ! clobber.empty() ) { 68 os << std::string( indent, ' ' ) << "clobber: " << endl; 69 printAll( clobber, os, indent + 2 ); 70 } // if 71 } 72 44 73 45 74 const char *BranchStmt::brType[] = { "Goto", "Break", "Continue" }; -
src/SynTree/Statement.h
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Jul 14 12:14:54201513 // Update Count : 2411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 25 18:25:37 2015 13 // Update Count : 44 14 14 // 15 15 … … 70 70 }; 71 71 72 class AsmStmt : public Statement { 73 public: 74 AsmStmt( std::list<Label> labels, bool voltile, ConstantExpr *instruction, std::list<Expression *> input, std::list<Expression *> output, std::list<ConstantExpr *> clobber, std::list<Label> gotolabels ); 75 virtual ~AsmStmt(); 76 77 bool get_voltile() { return voltile; } 78 void set_voltile( bool newValue ) { voltile = newValue; } 79 ConstantExpr *get_instruction() { return instruction; } 80 void set_instruction( ConstantExpr *newValue ) { instruction = newValue; } 81 std::list<Expression *> &get_output() { return output; } 82 void set_output( const std::list<Expression *> &newValue ) { output = newValue; } 83 std::list<Expression *> &get_input() { return input; } 84 void set_input( const std::list<Expression *> &newValue ) { input = newValue; } 85 std::list<ConstantExpr *> &get_clobber() { return clobber; } 86 void set_clobber( const std::list<ConstantExpr *> &newValue ) { clobber = newValue; } 87 std::list<Label> &get_gotolabels() { return gotolabels; } 88 void set_gotolabels( const std::list<Label> &newValue ) { gotolabels = newValue; } 89 90 virtual AsmStmt *clone() const { return new AsmStmt( *this ); } 91 virtual void accept( Visitor &v ) { v.visit( this ); } 92 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 93 virtual void print( std::ostream &os, int indent = 0 ) const; 94 private: 95 bool voltile; 96 ConstantExpr *instruction; 97 std::list<Expression *> output, input; 98 std::list<ConstantExpr *> clobber; 99 std::list<Label> gotolabels; 100 }; 101 72 102 class IfStmt : public Statement { 73 103 public: … … 100 130 void set_condition( Expression *newValue ) { condition = newValue; } 101 131 102 std::list<Statement *> & get_branches() { return branches; }132 std::list<Statement *> & get_branches() { return branches; } 103 133 void add_case( CaseStmt * ); 104 134 -
src/SynTree/SynTree.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 10:58:22201513 // Update Count : 112 // Last Modified On : Thu Jul 23 23:25:04 2015 13 // Update Count : 3 14 14 // 15 15 … … 40 40 class CompoundStmt; 41 41 class ExprStmt; 42 class AsmStmt; 42 43 class IfStmt; 43 44 class WhileStmt; … … 75 76 class SolvedTupleExpr; 76 77 class TypeExpr; 78 class AsmExpr; 77 79 class UntypedValofExpr; 78 80 -
src/SynTree/Type.cc
re45215c rd60ccbf 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 May 19 16:52:27201513 // Update Count : 212 // Last Modified On : Thu Jul 9 16:45:13 2015 13 // Update Count : 3 14 14 // 15 15 … … 75 75 os << "_Atomic "; 76 76 } // if 77 if ( tq.isAttribute ) { 78 os << "__attribute(( )) "; 79 } // if 77 80 } 78 81 -
src/SynTree/Type.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 26 16:47:54201513 // Update Count : 1 312 // Last Modified On : Thu Jul 9 16:46:15 2015 13 // Update Count : 14 14 14 // 15 15 … … 25 25 struct Qualifiers { 26 26 Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ), isAttribute( false ) {} 27 Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic, bool isAttribute ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute ) {}27 Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic, bool isAttribute ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute ) {} 28 28 29 29 Qualifiers &operator+=( const Qualifiers &other ); -
src/SynTree/TypeSubstitution.h
re45215c rd60ccbf 157 157 } 158 158 159 // helper function 159 /// Instantiate each member of the context given the actual parameters specified, and store the 160 /// instantiations for use by the indexer 160 161 template< typename FormalIterator, typename ActualIterator, typename MemberIterator, typename OutputIterator > 161 162 void applySubstitution( FormalIterator formalBegin, FormalIterator formalEnd, ActualIterator actual, MemberIterator memberBegin, MemberIterator memberEnd, OutputIterator out ) { 162 // Instantiate each member of the context given the actual parameters specified, and store the163 // instantiations for use by the indexer164 165 163 TypeSubstitution sub = TypeSubstitution( formalBegin, formalEnd, actual ); 166 164 for ( std::list< Declaration* >::iterator i = memberBegin; i != memberEnd; ++i ) { -
src/SynTree/Visitor.cc
re45215c rd60ccbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Jul 14 12:31:03201513 // Update Count : 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 24 16:11:05 2015 13 // Update Count : 15 14 14 // 15 15 … … 82 82 } 83 83 84 void Visitor::visit( AsmStmt *asmStmt ) { 85 maybeAccept( asmStmt->get_instruction(), *this ); 86 acceptAll( asmStmt->get_output(), *this ); 87 acceptAll( asmStmt->get_input(), *this ); 88 acceptAll( asmStmt->get_clobber(), *this ); 89 } 90 84 91 void Visitor::visit( IfStmt *ifStmt ) { 85 92 maybeAccept( ifStmt->get_condition(), *this ); … … 246 253 } 247 254 255 void Visitor::visit( AsmExpr *asmExpr ) { 256 maybeAccept( asmExpr->get_inout(), *this ); 257 maybeAccept( asmExpr->get_constraint(), *this ); 258 maybeAccept( asmExpr->get_operand(), *this ); 259 } 260 248 261 void Visitor::visit( UntypedValofExpr *valofExpr ) { 249 262 acceptAll( valofExpr->get_results(), *this ); … … 282 295 283 296 void Visitor::visit( StructInstType *aggregateUseType ) { 284 visit( static_cast< ReferenceToType * >( aggregateUseType ) );297 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 285 298 } 286 299 287 300 void Visitor::visit( UnionInstType *aggregateUseType ) { 288 visit( static_cast< ReferenceToType * >( aggregateUseType ) );301 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 289 302 } 290 303 291 304 void Visitor::visit( EnumInstType *aggregateUseType ) { 292 visit( static_cast< ReferenceToType * >( aggregateUseType ) );305 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 293 306 } 294 307 295 308 void Visitor::visit( ContextInstType *aggregateUseType ) { 296 visit( static_cast< ReferenceToType * >( aggregateUseType ) );309 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 297 310 acceptAll( aggregateUseType->get_members(), *this ); 298 311 } 299 312 300 313 void Visitor::visit( TypeInstType *aggregateUseType ) { 301 visit( static_cast< ReferenceToType * >( aggregateUseType ) );314 visit( static_cast< ReferenceToType * >( aggregateUseType ) ); 302 315 } 303 316 -
src/SynTree/Visitor.h
re45215c rd60ccbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:15:55201513 // Update Count : 212 // Last Modified On : Thu Jul 23 23:22:23 2015 13 // Update Count : 4 14 14 // 15 15 … … 37 37 virtual void visit( CompoundStmt *compoundStmt ); 38 38 virtual void visit( ExprStmt *exprStmt ); 39 virtual void visit( AsmStmt *asmStmt ); 39 40 virtual void visit( IfStmt *ifStmt ); 40 41 virtual void visit( WhileStmt *whileStmt ); … … 70 71 virtual void visit( SolvedTupleExpr *tupleExpr ); 71 72 virtual void visit( TypeExpr *typeExpr ); 73 virtual void visit( AsmExpr *asmExpr ); 72 74 virtual void visit( UntypedValofExpr *valofExpr ); 73 75 -
src/driver/cc1.cc
re45215c rd60ccbf 10 10 // Created On : Fri Aug 26 14:23:51 2005 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 30 08:58:29201513 // Update Count : 5 112 // Last Modified On : Thu Jul 16 17:09:14 2015 13 // Update Count : 54 14 14 // 15 15 … … 319 319 uargs[0] = ( *new string( bprefix + "/cfa-cpp" ) ).c_str(); 320 320 321 uargs[nuargs] = "-p";322 nuargs += 1;323 324 321 uargs[nuargs] = tmpname; 325 322 nuargs += 1; -
src/driver/cfa.cc
re45215c rd60ccbf 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jun 23 17:47:03 201513 // Update Count : 1 1912 // Last Modified On : Thu Jul 16 17:09:23 2015 13 // Update Count : 124 14 14 // 15 15 … … 52 52 string Version( VERSION ); // current version number from CONFIG 53 53 string Major( "0" ), Minor( "0" ), Patch( "0" ); // default version numbers 54 54 55 int posn1 = Version.find( "." ); // find the divider between major and minor version numbers 55 56 if ( posn1 == -1 ) { // not there ? … … 256 257 // add the correct set of flags based on the type of compile this is 257 258 258 args[nargs] = ( *new string( string("-D__CFA_ MAJOR__=") + Major ) ).c_str();259 args[nargs] = ( *new string( string("-D__CFA__=") + Major ) ).c_str(); 259 260 nargs += 1; 260 261 args[nargs] = ( *new string( string("-D__CFA_MINOR__=") + Minor ) ).c_str(); 262 nargs += 1; 263 args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str(); 261 264 nargs += 1; 262 265 -
src/main.cc
re45215c rd60ccbf 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Mon Jul 06 15:01:26201513 // Update Count : 7912 // Last Modified On : Thu Jul 30 16:08:18 2015 13 // Update Count : 167 14 14 // 15 15 … … 54 54 if ( errorp ) std::cerr << x << std::endl; 55 55 56 void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false ); 56 static void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false ); 57 static void dump( std::list< Declaration * > & translationUnit ); 57 58 58 59 bool … … 64 65 libcfap = false, 65 66 nopreludep = false, 66 protop = false,67 noprotop = false, 67 68 parsep = false, 68 69 resolvep = false, // used in AlternativeFinder … … 81 82 { "grammar", no_argument, 0, Grammar }, 82 83 { "libcfa", no_argument, 0, LibCFA }, 83 { "no preamble", no_argument, 0, Nopreamble },84 { "no-preamble", no_argument, 0, Nopreamble }, 84 85 { "parse", no_argument, 0, Parse }, 85 { " prototypes", no_argument, 0, Prototypes },86 { "no-prototypes", no_argument, 0, Prototypes }, 86 87 { "resolver", no_argument, 0, Resolver }, 87 88 { "symbol", no_argument, 0, Symbol }, … … 131 132 case Prototypes: 132 133 case 'p': // generate prototypes for preamble functions 133 protop = true;134 noprotop = true; 134 135 break; 135 136 case Parse: … … 221 222 Parser::get_parser().freeTree(); 222 223 if ( astp ) { 223 printAll( translationUnit, std::cout );224 dump( translationUnit ); 224 225 return 0; 225 226 } // if … … 227 228 // add the assignment statement after the 228 229 // initialization of a type parameter 229 OPTPRINT( "tweak" )230 InitTweak::tweak( translationUnit );231 230 OPTPRINT( "validate" ) 232 231 SymTab::validate( translationUnit, symtabp ); … … 242 241 243 242 if ( validp ) { 244 printAll( translationUnit, std::cout );243 dump( translationUnit ); 245 244 return 0; 246 245 } // if … … 250 249 OPTPRINT( "fixNames" ) 251 250 CodeGen::fixNames( translationUnit ); 251 OPTPRINT( "tweak" ) 252 InitTweak::tweak( translationUnit ); 252 253 253 254 if ( libcfap ) { 254 protop = true;255 255 // generate the bodies of cfa library functions 256 256 LibCfa::makeLibCfa( translationUnit ); … … 258 258 259 259 if ( bresolvep ) { 260 printAll( translationUnit, std::cout );260 dump( translationUnit ); 261 261 return 0; 262 262 } // if … … 265 265 ResolvExpr::resolve( translationUnit ); 266 266 if ( exprp ) { 267 printAll( translationUnit, std::cout );267 dump( translationUnit ); 268 268 } 269 269 … … 279 279 // print tree right before code generation 280 280 if ( codegenp ) { 281 printAll( translationUnit, std::cout );282 return 0; 283 } // if 284 285 CodeGen::generate( translationUnit, *output, true ); //protop );281 dump( translationUnit ); 282 return 0; 283 } // if 284 285 CodeGen::generate( translationUnit, *output, ! noprotop ); 286 286 287 287 if ( output != &std::cout ) { … … 290 290 } catch ( SemanticError &e ) { 291 291 if ( errorp ) { 292 printAll( translationUnit, std::cerr);292 dump( translationUnit ); 293 293 } 294 294 e.print( std::cerr ); … … 315 315 } // main 316 316 317 void parse( FILE * input, LinkageSpec::Type linkage, bool shouldExit ) {317 static void parse( FILE * input, LinkageSpec::Type linkage, bool shouldExit ) { 318 318 Parser::get_parser().set_linkage( linkage ); 319 319 Parser::get_parser().parse( input ); … … 325 325 } 326 326 327 static bool notPrelude( Declaration * decl ) { 328 return ! LinkageSpec::isBuiltin( decl->get_linkage() ); 329 } 330 331 static void dump( std::list< Declaration * > & translationUnit ) { 332 std::list< Declaration * > decls; 333 if ( noprotop ) { 334 filter( translationUnit.begin(), translationUnit.end(), 335 std::back_inserter( decls ), notPrelude ); 336 } else { 337 decls = translationUnit; 338 } 339 340 printAll( decls, std::cout ); 341 deleteAll( translationUnit ); 342 } 343 344 327 345 // Local Variables: // 328 346 // tab-width: 4 //
Note:
See TracChangeset
for help on using the changeset viewer.