Changeset d1625f8
- Timestamp:
- Aug 9, 2016, 2:02:22 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- a6dd5b0, e297ceb
- Parents:
- 7bf7fb9
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r7bf7fb9 rd1625f8 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 08:01:55201613 // Update Count : 16 512 // Last Modified On : Tue Aug 9 08:39:20 2016 13 // Update Count : 169 14 14 // 15 15 … … 284 284 newnode->type->array->dimension = size; 285 285 newnode->type->array->isStatic = isStatic; 286 if ( newnode->type->array->dimension == 0 || dynamic_cast<Constant Node *>( newnode->type->array->dimension) ) {286 if ( newnode->type->array->dimension == 0 || dynamic_cast<ConstantExpr *>( newnode->type->array->dimension->build() ) ) { 287 287 newnode->type->array->isVarLen = false; 288 288 } else { -
src/Parser/ExpressionNode.cc
r7bf7fb9 rd1625f8 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 09:23:12201613 // Update Count : 4 3712 // Last Modified On : Tue Aug 9 12:28:40 2016 13 // Update Count : 482 14 14 // 15 15 … … 32 32 using namespace std; 33 33 34 ExpressionNode::ExpressionNode() : ParseNode() {} 35 36 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ) {} 37 38 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) { 39 if ( other.argName ) { 40 std::cout << "ExpressionNode" << std::endl; 41 argName = other.argName->clone(); 42 } else { 43 argName = 0; 44 } // if 45 } 46 47 ExpressionNode * ExpressionNode::set_argName( const std::string *aName ) { 48 argName = new VarRefNode( aName ); 49 return this; 50 } 51 52 ExpressionNode * ExpressionNode::set_argName( ExpressionNode *aDesignator ) { 53 argName = aDesignator; 54 return this; 55 } 56 57 void ExpressionNode::printDesignation( std::ostream &os, int indent ) const { 58 if ( argName ) { 59 os << string( indent, ' ' ) << "(designated by: "; 60 argName->printOneLine( os, indent ); 61 os << ")" << std::endl; 62 } // if 63 } 64 65 //############################################################################## 66 67 NullExprNode::NullExprNode() {} 68 69 NullExprNode *NullExprNode::clone() const { 70 return new NullExprNode(); 71 } 72 73 void NullExprNode::print( std::ostream & os, int indent ) const { 74 printDesignation( os ); 75 os << "null expression"; 76 } 77 78 void NullExprNode::printOneLine( std::ostream & os, int indent ) const { 79 printDesignation( os ); 80 os << "null"; 81 } 82 83 Expression *NullExprNode::build() const { 84 return 0; 85 } 34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) {} 86 35 87 36 //############################################################################## … … 108 57 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; } 109 58 110 ConstantNode*build_constantInteger( std::string & str ) {59 Expression *build_constantInteger( std::string & str ) { 111 60 static const BasicType::Kind kind[2][3] = { 112 61 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, … … 171 120 } // if 172 121 173 return new Constant Node( new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str )) );122 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) ); 174 123 } // build_constantInteger 175 124 176 ConstantNode*build_constantFloat( std::string & str ) {125 Expression *build_constantFloat( std::string & str ) { 177 126 static const BasicType::Kind kind[2][3] = { 178 127 { BasicType::Float, BasicType::Double, BasicType::LongDouble }, … … 201 150 } // if 202 151 203 return new Constant Node( new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str )) );152 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) ); 204 153 } // build_constantFloat 205 154 206 ConstantNode*build_constantChar( std::string & str ) {207 return new Constant Node( new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str )) );155 Expression *build_constantChar( std::string & str ) { 156 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 208 157 } // build_constantChar 209 158 210 Constant Node*build_constantStr( std::string & str ) {159 ConstantExpr *build_constantStr( std::string & str ) { 211 160 // string should probably be a primitive type 212 161 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ), … … 214 163 toString( str.size()+1-2 ) ) ), // +1 for '\0' and -2 for '"' 215 164 false, false ); 216 return new Constant Node( new ConstantExpr( Constant( at, str )) );165 return new ConstantExpr( Constant( at, str ) ); 217 166 } // build_constantStr 218 167 … … 223 172 //} 224 173 225 VarRefNode::VarRefNode( const string *name, bool labelp ) : ExpressionNode( name ), isLabel( labelp ) {} 226 227 VarRefNode::VarRefNode( const VarRefNode &other ) : ExpressionNode( other ), isLabel( other.isLabel ) { 228 } 229 230 Expression *VarRefNode::build() const { 231 return new NameExpr( get_name(), maybeBuild< Expression >( get_argName() ) ); 232 } 233 234 void VarRefNode::printOneLine( std::ostream &os, int indent ) const { 235 printDesignation( os ); 236 os << get_name() << ' '; 237 } 238 239 void VarRefNode::print( std::ostream &os, int indent ) const { 240 printDesignation( os ); 241 os << string( indent, ' ' ) << "Referencing: "; 242 os << "Variable: " << get_name(); 243 os << endl; 244 } 245 246 //############################################################################## 247 248 DesignatorNode::DesignatorNode( ExpressionNode *expr, bool isArrayIndex ) : isArrayIndex( isArrayIndex ) { 249 set_argName( expr ); 250 assert( get_argName() ); 251 252 if ( ! isArrayIndex ) { 253 if ( VarRefNode * var = dynamic_cast< VarRefNode * >( expr ) ) { 254 255 stringstream ss( var->get_name() ); 256 double value; 257 if ( ss >> value ) { 258 // this is a floating point constant. It MUST be ".0" or ".1", otherwise the program is invalid 259 if ( ! (var->get_name() == ".0" || var->get_name() == ".1") ) { 260 throw SemanticError( "invalid designator name: " + var->get_name() ); 261 } // if 262 var->set_name( var->get_name().substr(1) ); 263 } // if 264 } // if 265 } // if 266 } 267 268 DesignatorNode::DesignatorNode( const DesignatorNode &other ) : ExpressionNode( other ), isArrayIndex( other.isArrayIndex ) { 269 } 270 271 class DesignatorFixer : public Mutator { 272 public: 273 virtual Expression* mutate( NameExpr *nameExpr ) { 274 if ( nameExpr->get_name() == "0" || nameExpr->get_name() == "1" ) { 275 Constant val( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nameExpr->get_name() ); 276 delete nameExpr; 277 return new ConstantExpr( val ); 278 } 279 return nameExpr; 280 } 281 }; 282 283 Expression *DesignatorNode::build() const { 284 Expression * ret = maybeBuild<Expression>(get_argName()); 285 286 if ( isArrayIndex ) { 287 // need to traverse entire structure and change any instances of 0 or 1 to ConstantExpr 288 DesignatorFixer fixer; 289 ret = ret->acceptMutator( fixer ); 290 } // if 291 292 return ret; 293 } 294 295 void DesignatorNode::printOneLine( std::ostream &os, int indent ) const { 296 if ( get_argName() ) { 297 if ( isArrayIndex ) { 298 os << "["; 299 get_argName()->printOneLine( os, indent ); 300 os << "]"; 301 } else { 302 os << "."; 303 get_argName()->printOneLine( os, indent ); 304 } 305 } // if 306 } 307 308 void DesignatorNode::print( std::ostream &os, int indent ) const { 309 if ( get_argName() ) { 310 if ( isArrayIndex ) { 311 os << "["; 312 get_argName()->print( os, indent ); 313 os << "]"; 314 } else { 315 os << "."; 316 get_argName()->print( os, indent ); 317 } 318 } // if 319 } 174 // VarRefNode::VarRefNode( const string *name, bool labelp ) : ExpressionNode( nullptr, name ), isLabel( labelp ) {} 175 176 // VarRefNode::VarRefNode( const VarRefNode &other ) : ExpressionNode( other ), isLabel( other.isLabel ) {} 177 178 // Expression *VarRefNode::build() const { 179 // return new NameExpr( get_name(), maybeBuild< Expression >( get_argName() ) ); 180 // } 181 182 // void VarRefNode::printOneLine( std::ostream &os, int indent ) const { 183 // printDesignation( os ); 184 // os << get_name() << ' '; 185 // } 186 187 // void VarRefNode::print( std::ostream &os, int indent ) const { 188 // printDesignation( os ); 189 // os << string( indent, ' ' ) << "Referencing: "; 190 // os << "Variable: " << get_name(); 191 // os << endl; 192 // } 193 194 NameExpr * build_varref( const string *name, bool labelp ) { 195 return new NameExpr( *name, nullptr ); 196 } 197 198 //############################################################################## 199 200 // DesignatorNode::DesignatorNode( ExpressionNode *expr, bool isArrayIndex, bool isVarRef ) : isArrayIndex( isArrayIndex ) { 201 // set_argName( expr ); 202 // } 203 204 // DesignatorNode::DesignatorNode( const DesignatorNode &other ) : ExpressionNode( other ), isArrayIndex( other.isArrayIndex ) {} 205 206 // class DesignatorFixer : public Mutator { 207 // public: 208 // virtual Expression* mutate( NameExpr *nameExpr ) { 209 // if ( nameExpr->get_name() == "0" || nameExpr->get_name() == "1" ) { 210 // Constant val( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nameExpr->get_name() ); 211 // delete nameExpr; 212 // return new ConstantExpr( val ); 213 // } 214 // return nameExpr; 215 // } 216 // }; 217 218 // Expression *DesignatorNode::build() const { 219 // return maybeBuild<Expression>(get_argName()); 220 // } 221 222 // void DesignatorNode::printOneLine( std::ostream &os, int indent ) const { 223 // if ( get_argName() ) { 224 // if ( isArrayIndex ) { 225 // os << "["; 226 // get_argName()->printOneLine( os, indent ); 227 // os << "]"; 228 // } else { 229 // os << "."; 230 // get_argName()->printOneLine( os, indent ); 231 // } 232 // } // if 233 // } 234 235 // void DesignatorNode::print( std::ostream &os, int indent ) const { 236 // if ( get_argName() ) { 237 // if ( isArrayIndex ) { 238 // os << "["; 239 // get_argName()->print( os, indent ); 240 // os << "]"; 241 // } else { 242 // os << "."; 243 // get_argName()->print( os, indent ); 244 // } 245 // } // if 246 // } 320 247 321 248 //############################################################################## … … 333 260 //############################################################################## 334 261 335 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node ) { 336 DeclarationNode *decl_node = arg->get_decl(); 337 262 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) { 338 263 Type *targetType = decl_node->buildType(); 339 if ( dynamic_cast< VoidType * >( targetType ) ) {264 if ( dynamic_cast< VoidType * >( targetType ) ) { 340 265 delete targetType; 341 266 return new CastExpr( maybeBuild<Expression>(expr_node) ); … … 345 270 } 346 271 347 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 348 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 349 assert( memberExpr ); 350 UntypedMemberExpr *ret = new UntypedMemberExpr( memberExpr->get_name(), maybeBuild<Expression>(expr_node) ); 272 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ) { 273 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybeBuild<Expression>(expr_node) ); 351 274 delete member; 352 275 return ret; 353 276 } 354 277 355 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 356 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 357 assert( memberExpr ); 278 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ) { 358 279 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 359 280 deref->get_args().push_back( maybeBuild<Expression>(expr_node) ); 360 UntypedMemberExpr *ret = new UntypedMemberExpr( member Expr->get_name(), deref );281 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref ); 361 282 delete member; 362 283 return ret; … … 366 287 return new AddressExpr( maybeBuild<Expression>(expr_node) ); 367 288 } 368 Expression *build_sizeOf( ExpressionNode *expr_node ) { 369 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 370 return new SizeofExpr( arg->get_decl()->buildType() ); 371 } else { 372 return new SizeofExpr( maybeBuild<Expression>(expr_node) ); 373 } // if 374 } 375 Expression *build_alignOf( ExpressionNode *expr_node ) { 376 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 377 return new AlignofExpr( arg->get_decl()->buildType() ); 378 } else { 379 return new AlignofExpr( maybeBuild<Expression>(expr_node) ); 380 } // if 381 } 382 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ) { 383 NameExpr *memberExpr = dynamic_cast<NameExpr *>( maybeBuild<Expression>( member ) ); 384 assert( memberExpr ); 385 return new UntypedOffsetofExpr( arg->get_decl()->buildType(), memberExpr->get_name() ); 289 Expression *build_sizeOfexpr( ExpressionNode *expr_node ) { 290 return new SizeofExpr( maybeBuild<Expression>(expr_node) ); 291 } 292 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 293 return new SizeofExpr( decl_node->buildType() ); 294 } 295 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { 296 return new AlignofExpr( maybeBuild<Expression>(expr_node) ); 297 } 298 Expression *build_alignOftype( DeclarationNode *decl_node ) { 299 return new AlignofExpr( decl_node->buildType() ); 300 } 301 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 302 return new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 386 303 } 387 304 … … 421 338 } 422 339 423 Expression *build_attr( VarRefNode *var, ExpressionNode * expr ) { 424 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr ) ) { 425 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() ); 426 } else { 427 return new AttrExpr( maybeBuild<Expression>(var), maybeBuild<Expression>(expr) ); 428 } // if 429 } 430 431 Expression *build_tuple( ExpressionNode * expr ) { 340 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ) { 341 return new AttrExpr( var, maybeBuild<Expression>(expr_node) ); 342 } 343 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) { 344 return new AttrExpr( var, decl_node->buildType() ); 345 } 346 347 Expression *build_tuple( ExpressionNode * expr_node ) { 432 348 TupleExpr *ret = new TupleExpr(); 433 buildList( expr , ret->get_exprs() );349 buildList( expr_node, ret->get_exprs() ); 434 350 return ret; 435 351 } 436 352 437 Expression *build_func( ExpressionNode * function, ExpressionNode * expr ) {353 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ) { 438 354 std::list<Expression *> args; 439 355 440 buildList( expr , args );356 buildList( expr_node, args ); 441 357 return new UntypedExpr( maybeBuild<Expression>(function), args, nullptr ); 442 358 } … … 450 366 //############################################################################## 451 367 452 Expression *AsmExprNode::build() const { 453 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)maybeBuild<Expression>(constraint), maybeBuild<Expression>(operand) ); 454 } 455 456 void AsmExprNode::print( std::ostream &os, int indent ) const { 457 os << string( indent, ' ' ) << "Assembler Expression:" << endl; 458 if ( inout ) { 459 os << string( indent, ' ' ) << "inout: " << std::endl; 460 inout->print( os, indent + 2 ); 461 } // if 462 if ( constraint ) { 463 os << string( indent, ' ' ) << "constraint: " << std::endl; 464 constraint->print( os, indent + 2 ); 465 } // if 466 if ( operand ) { 467 os << string( indent, ' ' ) << "operand: " << std::endl; 468 operand->print( os, indent + 2 ); 469 } // if 470 } 471 472 void AsmExprNode::printOneLine( std::ostream &os, int indent ) const { 473 printDesignation( os ); 474 os << "( "; 475 if ( inout ) inout->printOneLine( os, indent + 2 ); 476 os << ", "; 477 if ( constraint ) constraint->printOneLine( os, indent + 2 ); 478 os << ", "; 479 if ( operand ) operand->printOneLine( os, indent + 2 ); 480 os << ") "; 368 // Expression *AsmExprNode::build() const { 369 // return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)maybeBuild<Expression>(constraint), maybeBuild<Expression>(operand) ); 370 // } 371 372 // void AsmExprNode::print( std::ostream &os, int indent ) const { 373 // os << string( indent, ' ' ) << "Assembler Expression:" << endl; 374 // if ( inout ) { 375 // os << string( indent, ' ' ) << "inout: " << std::endl; 376 // inout->print( os, indent + 2 ); 377 // } // if 378 // if ( constraint ) { 379 // os << string( indent, ' ' ) << "constraint: " << std::endl; 380 // constraint->print( os, indent + 2 ); 381 // } // if 382 // if ( operand ) { 383 // os << string( indent, ' ' ) << "operand: " << std::endl; 384 // operand->print( os, indent + 2 ); 385 // } // if 386 // } 387 388 // void AsmExprNode::printOneLine( std::ostream &os, int indent ) const { 389 // printDesignation( os ); 390 // os << "( "; 391 // if ( inout ) inout->printOneLine( os, indent + 2 ); 392 // os << ", "; 393 // if ( constraint ) constraint->printOneLine( os, indent + 2 ); 394 // os << ", "; 395 // if ( operand ) operand->printOneLine( os, indent + 2 ); 396 // os << ") "; 397 // } 398 399 Expression *build_asm( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ) { 400 return new AsmExpr( maybeBuild< Expression >( inout ), constraint, maybeBuild<Expression>(operand) ); 481 401 } 482 402 … … 489 409 //############################################################################## 490 410 491 ValofExprNode::ValofExprNode( StatementNode *s ): body( s ) {} 492 493 ValofExprNode::ValofExprNode( const ValofExprNode &other ) : ExpressionNode( other ), body( maybeClone( body ) ) { 494 } 495 496 ValofExprNode::~ValofExprNode() { 497 delete body; 498 } 499 500 void ValofExprNode::print( std::ostream &os, int indent ) const { 501 printDesignation( os ); 502 os << string( indent, ' ' ) << "Valof Expression:" << std::endl; 503 get_body()->print( os, indent + 4); 504 } 505 506 void ValofExprNode::printOneLine( std::ostream &, int indent ) const { 507 assert( false ); 508 } 509 510 Expression *ValofExprNode::build() const { 511 return new UntypedValofExpr ( maybeBuild<Statement>(get_body()), maybeBuild< Expression >( get_argName() ) ); 411 // ValofExprNode::ValofExprNode( StatementNode *s ): body( s ) {} 412 413 // ValofExprNode::ValofExprNode( const ValofExprNode &other ) : ExpressionNode( other ), body( maybeClone( body ) ) { 414 // } 415 416 // ValofExprNode::~ValofExprNode() { 417 // delete body; 418 // } 419 420 // void ValofExprNode::print( std::ostream &os, int indent ) const { 421 // os << string( indent, ' ' ) << "Valof Expression:" << std::endl; 422 // get_body()->print( os, indent + 4); 423 // } 424 425 // void ValofExprNode::printOneLine( std::ostream &, int indent ) const { 426 // assert( false ); 427 // } 428 429 // Expression *ValofExprNode::build() const { 430 // return new UntypedValofExpr( maybeBuild<Statement>(get_body()), nullptr ); 431 // } 432 433 Expression *build_valexpr( StatementNode *s ) { 434 return new UntypedValofExpr( maybeBuild<Statement>(s), nullptr ); 512 435 } 513 436 … … 567 490 //############################################################################## 568 491 569 TypeValueNode::TypeValueNode( DeclarationNode *decl ) : decl( decl ) { 570 } 571 572 TypeValueNode::TypeValueNode( const TypeValueNode &other ) : ExpressionNode( other ), decl( maybeClone( other.decl ) ) { 573 } 574 575 Expression *TypeValueNode::build() const { 492 // TypeValueNode::TypeValueNode( DeclarationNode *decl ) : decl( decl ) { 493 // } 494 495 // TypeValueNode::TypeValueNode( const TypeValueNode &other ) : ExpressionNode( other ), decl( maybeClone( other.decl ) ) { 496 // } 497 498 // Expression *TypeValueNode::build() const { 499 // return new TypeExpr( decl->buildType() ); 500 // } 501 502 // void TypeValueNode::print( std::ostream &os, int indent ) const { 503 // os << std::string( indent, ' ' ) << "Type:"; 504 // get_decl()->print( os, indent + 2); 505 // } 506 507 // void TypeValueNode::printOneLine( std::ostream &os, int indent ) const { 508 // os << "Type:"; 509 // get_decl()->print( os, indent + 2); 510 // } 511 512 Expression *build_typevalue( DeclarationNode *decl ) { 576 513 return new TypeExpr( decl->buildType() ); 577 514 } 578 515 579 void TypeValueNode::print( std::ostream &os, int indent ) const { 580 os << std::string( indent, ' ' ) << "Type:"; 581 get_decl()->print( os, indent + 2); 582 } 583 584 void TypeValueNode::printOneLine( std::ostream &os, int indent ) const { 585 os << "Type:"; 586 get_decl()->print( os, indent + 2); 587 } 588 589 590 CompoundLiteralNode::CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ) : type( type ), kids( kids ) {} 591 CompoundLiteralNode::CompoundLiteralNode( const CompoundLiteralNode &other ) : ExpressionNode( other ), type( other.type ), kids( other.kids ) {} 592 593 CompoundLiteralNode::~CompoundLiteralNode() { 594 delete kids; 595 delete type; 596 } 597 598 CompoundLiteralNode *CompoundLiteralNode::clone() const { 599 return new CompoundLiteralNode( *this ); 600 } 601 602 void CompoundLiteralNode::print( std::ostream &os, int indent ) const { 603 os << string( indent,' ' ) << "CompoundLiteralNode:" << endl; 604 605 os << string( indent + 2, ' ' ) << "type:" << endl; 606 if ( type != 0 ) 607 type->print( os, indent + 4 ); 608 609 os << string( indent + 2, ' ' ) << "initialization:" << endl; 610 if ( kids != 0 ) 611 kids->printList( os, indent + 4 ); 612 } 613 614 void CompoundLiteralNode::printOneLine( std::ostream &os, int indent ) const { 615 os << "( "; 616 if ( type ) type->print( os ); 617 os << ", "; 618 if ( kids ) kids->printOneLine( os ); 619 os << ") "; 620 } 621 622 Expression *CompoundLiteralNode::build() const { 623 Declaration * newDecl = maybeBuild<Declaration>(type); // compound literal type 516 //############################################################################## 517 518 // CompoundLiteralNode::CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ) : type( type ), kids( kids ) {} 519 // CompoundLiteralNode::CompoundLiteralNode( const CompoundLiteralNode &other ) : ExpressionNode( other ), type( other.type ), kids( other.kids ) {} 520 521 // CompoundLiteralNode::~CompoundLiteralNode() { 522 // delete kids; 523 // delete type; 524 // } 525 526 // CompoundLiteralNode *CompoundLiteralNode::clone() const { 527 // return new CompoundLiteralNode( *this ); 528 // } 529 530 // void CompoundLiteralNode::print( std::ostream &os, int indent ) const { 531 // os << string( indent,' ' ) << "CompoundLiteralNode:" << endl; 532 533 // os << string( indent + 2, ' ' ) << "type:" << endl; 534 // if ( type != 0 ) 535 // type->print( os, indent + 4 ); 536 537 // os << string( indent + 2, ' ' ) << "initialization:" << endl; 538 // if ( kids != 0 ) 539 // kids->printList( os, indent + 4 ); 540 // } 541 542 // void CompoundLiteralNode::printOneLine( std::ostream &os, int indent ) const { 543 // os << "( "; 544 // if ( type ) type->print( os ); 545 // os << ", "; 546 // if ( kids ) kids->printOneLine( os ); 547 // os << ") "; 548 // } 549 550 // Expression *CompoundLiteralNode::build() const { 551 // Declaration * newDecl = maybeBuild<Declaration>(type); // compound literal type 552 // if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 553 // return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) ); 554 // // these types do not have associated type information 555 // } else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl ) ) { 556 // return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeBuild<Initializer>(kids) ); 557 // } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl ) ) { 558 // return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeBuild<Initializer>(kids) ); 559 // } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl ) ) { 560 // return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeBuild<Initializer>(kids) ); 561 // } else { 562 // assert( false ); 563 // } // if 564 // } 565 566 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ) { 567 Declaration * newDecl = maybeBuild<Declaration>(decl_node); // compound literal type 624 568 if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 625 569 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) ); -
src/Parser/ParseNode.cc
r7bf7fb9 rd1625f8 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S at Aug 6 08:26:11201613 // Update Count : 9 312 // Last Modified On : Sun Aug 7 23:32:47 2016 13 // Update Count : 94 14 14 // 15 15 -
src/Parser/ParseNode.h
r7bf7fb9 rd1625f8 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 09:37:16201613 // Update Count : 3 3312 // Last Modified On : Tue Aug 9 12:28:12 2016 13 // Update Count : 389 14 14 // 15 15 … … 33 33 class CompoundStmtNode; 34 34 class DeclarationNode; 35 class ExpressionNode; 35 36 class InitializerNode; 36 37 … … 67 68 //############################################################################## 68 69 70 class InitializerNode : public ParseNode { 71 public: 72 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode *des = 0 ); 73 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode *des = 0 ); 74 ~InitializerNode(); 75 76 ExpressionNode *get_expression() const { return expr; } 77 78 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; } 79 ExpressionNode *get_designators() const { return designator; } 80 81 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; } 82 bool get_maybeConstructed() const { return maybeConstructed; } 83 84 InitializerNode *next_init() const { return kids; } 85 86 void print( std::ostream &os, int indent = 0 ) const; 87 void printOneLine( std::ostream & ) const; 88 89 virtual Initializer *build() const; 90 private: 91 ExpressionNode *expr; 92 bool aggregate; 93 ExpressionNode *designator; // may be list 94 InitializerNode *kids; 95 bool maybeConstructed; 96 }; 97 98 //############################################################################## 99 69 100 class ExpressionNode : public ParseNode { 70 101 public: 71 ExpressionNode( );72 ExpressionNode( const std::string * );102 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} 103 ExpressionNode( Expression * expr, const std::string *name ) : ParseNode( name ), expr( expr ) {} 73 104 ExpressionNode( const ExpressionNode &other ); 74 virtual ~ExpressionNode() { delete argName; } 75 76 virtual ExpressionNode *clone() const = 0; 77 78 ExpressionNode *get_argName() const { return argName; } 79 ExpressionNode *set_argName( const std::string *aName ); 80 ExpressionNode *set_argName( ExpressionNode *aDesignator ); 105 virtual ~ExpressionNode() {} 106 107 virtual ExpressionNode *clone() const { return 0; } 108 81 109 bool get_extension() const { return extension; } 82 110 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; } 83 111 84 virtual void print( std::ostream &os, int indent = 0) const = 0; 85 virtual void printOneLine( std::ostream &os, int indent = 0) const = 0; 86 87 virtual Expression *build() const = 0; 88 protected: 89 void printDesignation ( std::ostream &os, int indent = 0) const; 90 private: 91 ExpressionNode *argName = 0; 112 virtual void print( std::ostream &os, int indent = 0 ) const {} 113 virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 114 115 virtual Expression *build() const { return expr; } 116 private: 92 117 bool extension = false; 118 Expression *expr; 93 119 }; 94 120 … … 109 135 110 136 // NullExprNode is used in tuples as a place-holder where a tuple component is omitted e.g., [ 2, , 3 ] 111 class NullExprNode : public ExpressionNode { 112 public: 113 NullExprNode(); 114 115 virtual NullExprNode *clone() const; 116 117 virtual void print( std::ostream &os, int indent = 0) const; 118 virtual void printOneLine( std::ostream &os, int indent = 0) const; 119 120 virtual Expression *build() const; 121 }; 122 123 //############################################################################## 124 125 class ConstantNode : public ExpressionNode { 126 public: 127 ConstantNode( ConstantExpr *expr ) : expr( expr ) {} 128 ConstantNode( const ConstantNode &other ) : expr( other.expr->clone() ) {} 129 virtual ~ConstantNode() {} 130 131 virtual ConstantNode *clone() const { assert( false ); return new ConstantNode( *this ); } 132 133 ConstantExpr *get_expr() const { return expr; } 134 135 virtual void print( std::ostream &os, int indent = 0 ) const {} 136 virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 137 138 Expression *build() const { return expr; } 139 private: 140 ConstantExpr *expr; 141 }; 142 143 ConstantNode *build_constantInteger( std::string &str ); 144 ConstantNode *build_constantFloat( std::string &str ); 145 ConstantNode *build_constantChar( std::string &str ); 146 ConstantNode *build_constantStr( std::string &str ); 147 148 //############################################################################## 149 150 class VarRefNode : public ExpressionNode { 151 public: 152 VarRefNode( const std::string *, bool isLabel = false ); 153 VarRefNode( const VarRefNode &other ); 154 155 virtual Expression *build() const ; 156 157 virtual VarRefNode *clone() const { return new VarRefNode( *this ); } 158 159 virtual void print( std::ostream &os, int indent = 0 ) const; 160 virtual void printOneLine( std::ostream &os, int indent = 0 ) const; 161 private: 162 bool isLabel; 163 }; 164 165 //############################################################################## 166 167 class DesignatorNode : public ExpressionNode { 168 public: 169 DesignatorNode( ExpressionNode *expr, bool isArrayIndex = false ); 170 DesignatorNode( const DesignatorNode &other ); 171 172 virtual Expression *build() const ; 173 virtual DesignatorNode *clone() const { return new DesignatorNode( *this ); } 174 175 virtual void print( std::ostream &os, int indent = 0 ) const; 176 virtual void printOneLine( std::ostream &os, int indent = 0 ) const; 177 private: 178 bool isArrayIndex; 179 }; 180 181 //############################################################################## 182 183 class TypeValueNode : public ExpressionNode { 184 public: 185 TypeValueNode( DeclarationNode * ); 186 TypeValueNode( const TypeValueNode &other ); 187 188 DeclarationNode *get_decl() const { return decl; } 189 190 virtual Expression *build() const ; 191 192 virtual TypeValueNode *clone() const { return new TypeValueNode( *this ); } 193 194 virtual void print( std::ostream &os, int indent = 0) const; 195 virtual void printOneLine( std::ostream &os, int indent = 0) const; 196 private: 197 DeclarationNode *decl; 198 }; 199 200 //############################################################################## 201 202 class CompositeExprNode : public ExpressionNode { 203 public: 204 CompositeExprNode( Expression *expr ) : expr( expr ) {} 205 CompositeExprNode( const CompositeExprNode &other ) : expr( other.expr->clone() ) {} 206 virtual ~CompositeExprNode() {} 207 208 CompositeExprNode *clone() const { assert( false ); return new CompositeExprNode( *this ); } 209 210 Expression *build() const { return expr; } 211 212 void print( std::ostream &os, int indent = 0 ) const {} 213 void printOneLine( std::ostream &os, int indent = 0 ) const {} 214 private: 215 Expression *expr; 216 }; 137 // class NullExprNode : public ExpressionNode { 138 // public: 139 // NullExprNode() {} 140 141 // virtual NullExprNode *clone() const { assert( false ); } 142 143 // virtual void print( std::ostream &os, int indent = 0) const {} 144 // virtual void printOneLine( std::ostream &os, int indent = 0) const {} 145 146 // virtual Expression *build() const { assert( false ); return 0; } 147 // }; 148 149 //############################################################################## 150 151 // class ConstantNode : public ExpressionNode { 152 // public: 153 // ConstantNode( ConstantExpr *expr ) : expr( expr ) {} 154 // ConstantNode( const ConstantNode &other ) : expr( other.expr->clone() ) {} 155 // virtual ~ConstantNode() {} 156 157 // virtual ConstantNode *clone() const { assert( false ); return new ConstantNode( *this ); } 158 159 // ConstantExpr *get_expr() const { return expr; } 160 161 // virtual void print( std::ostream &os, int indent = 0 ) const {} 162 // virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 163 164 // Expression *build() const { return expr; } 165 // private: 166 // ConstantExpr *expr; 167 // }; 168 169 Expression *build_constantInteger( std::string &str ); 170 Expression *build_constantFloat( std::string &str ); 171 Expression *build_constantChar( std::string &str ); 172 ConstantExpr *build_constantStr( std::string &str ); 173 174 //############################################################################## 175 176 // class VarRefNode : public ExpressionNode { 177 // public: 178 // VarRefNode( const std::string *, bool isLabel = false ); 179 // VarRefNode( const VarRefNode &other ); 180 181 // virtual Expression *build() const ; 182 183 // virtual VarRefNode *clone() const { return new VarRefNode( *this ); } 184 185 // virtual void print( std::ostream &os, int indent = 0 ) const; 186 // virtual void printOneLine( std::ostream &os, int indent = 0 ) const; 187 // private: 188 // bool isLabel; 189 // }; 190 191 NameExpr *build_varref( const std::string *name, bool labelp = false ); 192 193 //############################################################################## 194 195 // class DesignatorNode : public ExpressionNode { 196 // public: 197 // DesignatorNode( ExpressionNode *expr, bool isArrayIndex = false ); 198 // DesignatorNode( const DesignatorNode &other ); 199 200 // virtual Expression *build() const ; 201 // virtual DesignatorNode *clone() const { return new DesignatorNode( *this ); } 202 203 // virtual void print( std::ostream &os, int indent = 0 ) const; 204 // virtual void printOneLine( std::ostream &os, int indent = 0 ) const; 205 // private: 206 // bool isArrayIndex; 207 // }; 208 209 //############################################################################## 210 211 // class TypeValueNode : public ExpressionNode { 212 // public: 213 // TypeValueNode( DeclarationNode * ); 214 // TypeValueNode( const TypeValueNode &other ); 215 216 // DeclarationNode *get_decl() const { return decl; } 217 218 // virtual Expression *build() const ; 219 220 // virtual TypeValueNode *clone() const { return new TypeValueNode( *this ); } 221 222 // virtual void print( std::ostream &os, int indent = 0) const; 223 // virtual void printOneLine( std::ostream &os, int indent = 0) const; 224 // private: 225 // DeclarationNode *decl; 226 // }; 227 228 Expression *build_typevalue( DeclarationNode *decl ); 229 230 //############################################################################## 231 232 // class CompositeExprNode : public ExpressionNode { 233 // public: 234 // CompositeExprNode( Expression *expr ) : expr( expr ) {} 235 // CompositeExprNode( const CompositeExprNode &other ) : expr( other.expr->clone() ) {} 236 // virtual ~CompositeExprNode() {} 237 238 // CompositeExprNode *clone() const { assert( false ); return new CompositeExprNode( *this ); } 239 240 // Expression *build() const { return expr; } 241 242 // void print( std::ostream &os, int indent = 0 ) const {} 243 // void printOneLine( std::ostream &os, int indent = 0 ) const {} 244 // private: 245 // Expression *expr; 246 // }; 217 247 218 248 enum class OperKinds { … … 227 257 }; 228 258 229 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node );230 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode*member );231 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode*member );259 Expression *build_cast( DeclarationNode * decl_node, ExpressionNode *expr_node ); 260 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ); 261 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ); 232 262 Expression *build_addressOf( ExpressionNode *expr_node ); 233 Expression *build_sizeOf( ExpressionNode *expr_node ); 234 Expression *build_alignOf( ExpressionNode *expr_node ); 235 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ); 263 Expression *build_sizeOfexpr( ExpressionNode *expr_node ); 264 Expression *build_sizeOftype( DeclarationNode *decl_node ); 265 Expression *build_alignOfexpr( ExpressionNode *expr_node ); 266 Expression *build_alignOftype( DeclarationNode *decl_node ); 267 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ); 236 268 Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 237 269 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ); … … 242 274 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ); 243 275 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 244 Expression *build_attr( VarRefNode *var, ExpressionNode * expr = 0 ); 245 Expression *build_tuple( ExpressionNode * expr = 0 ); 246 Expression *build_func( ExpressionNode * function, ExpressionNode * expr ); 276 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ); 277 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ); 278 Expression *build_tuple( ExpressionNode * expr_node = 0 ); 279 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ); 247 280 Expression *build_range( ExpressionNode * low, ExpressionNode *high ); 248 281 249 282 //############################################################################## 250 283 251 class AsmExprNode : public ExpressionNode { 252 public: 253 AsmExprNode(); 254 AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 255 virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; } 256 257 virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); } 258 virtual Expression *build() const; 284 // class AsmExprNode : public ExpressionNode { 285 // public: 286 // AsmExprNode(); 287 // AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 288 // virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; } 289 290 // virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); } 291 // virtual Expression *build() const; 292 293 // virtual void print( std::ostream &os, int indent = 0) const; 294 // virtual void printOneLine( std::ostream &os, int indent = 0) const; 295 296 // ExpressionNode *get_inout() const { return inout; }; 297 // void set_inout( ExpressionNode *newValue ) { inout = newValue; } 298 299 // ConstantNode *get_constraint() const { return constraint; }; 300 // void set_constraint( ConstantNode *newValue ) { constraint = newValue; } 301 302 // ExpressionNode *get_operand() const { return operand; }; 303 // void set_operand( ExpressionNode *newValue ) { operand = newValue; } 304 // private: 305 // ExpressionNode *inout; 306 // ConstantNode *constraint; 307 // ExpressionNode *operand; 308 // }; 309 310 Expression *build_asm( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ); 311 312 //############################################################################## 313 314 class LabelNode : public ExpressionNode { 315 public: 316 virtual Expression *build() const { return NULL; } 317 virtual LabelNode *clone() const { assert( false ); return new LabelNode( *this ); } 259 318 260 319 virtual void print( std::ostream &os, int indent = 0) const; 261 320 virtual void printOneLine( std::ostream &os, int indent = 0) const; 262 321 263 ExpressionNode *get_inout() const { return inout; };264 void set_inout( ExpressionNode *newValue ) { inout = newValue; }265 266 ConstantNode *get_constraint() const { return constraint; };267 void set_constraint( ConstantNode *newValue ) { constraint = newValue; }268 269 ExpressionNode *get_operand() const { return operand; };270 void set_operand( ExpressionNode *newValue ) { operand = newValue; }271 private:272 ExpressionNode *inout;273 ConstantNode *constraint;274 ExpressionNode *operand;275 };276 277 //##############################################################################278 279 class LabelNode : public ExpressionNode {280 public:281 virtual Expression *build() const { return NULL; }282 virtual LabelNode *clone() const { return new LabelNode( *this ); }283 284 virtual void print( std::ostream &os, int indent = 0) const;285 virtual void printOneLine( std::ostream &os, int indent = 0) const;286 287 322 const std::list< Label > &get_labels() const { return labels; }; 288 void append_label( std::string * label ) { labels.push_back( *label ); delete label; }323 void append_label( std::string * label ) { labels.push_back( *label ); delete label; } 289 324 private: 290 325 std::list< Label > labels; … … 316 351 //############################################################################## 317 352 318 class ValofExprNode : public ExpressionNode { 319 public: 320 ValofExprNode(); 321 ValofExprNode( StatementNode *s = 0 ); 322 ValofExprNode( const ValofExprNode &other ); 323 ~ValofExprNode(); 324 325 virtual ValofExprNode *clone() const { return new ValofExprNode( *this ); } 326 327 StatementNode *get_body() const { return body; } 328 void print( std::ostream &os, int indent = 0 ) const; 329 void printOneLine( std::ostream &os, int indent = 0 ) const; 330 Expression *build() const; 331 332 private: 333 StatementNode *body; 334 }; 353 // class ValofExprNode : public ExpressionNode { 354 // public: 355 // ValofExprNode(); 356 // ValofExprNode( StatementNode *s = 0 ); 357 // ValofExprNode( const ValofExprNode &other ); 358 // ~ValofExprNode(); 359 360 // virtual ValofExprNode *clone() const { return new ValofExprNode( *this ); } 361 362 // StatementNode *get_body() const { return body; } 363 // void print( std::ostream &os, int indent = 0 ) const; 364 // void printOneLine( std::ostream &os, int indent = 0 ) const; 365 // Expression *build() const; 366 367 // private: 368 // StatementNode *body; 369 // }; 370 371 Expression *build_valexpr( StatementNode *s ); 372 373 //############################################################################## 374 375 // class CompoundLiteralNode : public ExpressionNode { 376 // public: 377 // CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ); 378 // CompoundLiteralNode( const CompoundLiteralNode &type ); 379 // ~CompoundLiteralNode(); 380 381 // virtual CompoundLiteralNode *clone() const; 382 383 // DeclarationNode *get_type() const { return type; } 384 // CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; } 385 386 // InitializerNode *get_initializer() const { return kids; } 387 // CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; } 388 389 // void print( std::ostream &os, int indent = 0 ) const; 390 // void printOneLine( std::ostream &os, int indent = 0 ) const; 391 392 // virtual Expression *build() const; 393 // private: 394 // DeclarationNode *type; 395 // InitializerNode *kids; 396 // }; 397 398 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ); 335 399 336 400 //############################################################################## … … 444 508 }; // DeclarationNode 445 509 510 Type *buildType( TypeData *type ); 511 446 512 //############################################################################## 447 513 … … 520 586 class AsmStmtNode : public StatementNode { 521 587 public: 522 AsmStmtNode( Type, bool voltile, Constant Node *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ConstantNode *clobber = 0, LabelNode *gotolabels = 0 );588 AsmStmtNode( Type, bool voltile, ConstantExpr *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ExpressionNode *clobber = 0, LabelNode *gotolabels = 0 ); 523 589 ~AsmStmtNode(); 524 590 … … 527 593 private: 528 594 bool voltile; 529 Constant Node*instruction;595 ConstantExpr *instruction; 530 596 ExpressionNode *output, *input; 531 ConstantNode *clobber;597 ExpressionNode *clobber; 532 598 std::list< Label > gotolabels; 533 599 }; 534 600 535 601 //############################################################################## 536 537 class InitializerNode : public ParseNode {538 public:539 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode *des = 0 );540 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode *des = 0 );541 ~InitializerNode();542 543 ExpressionNode *get_expression() const { return expr; }544 545 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; }546 ExpressionNode *get_designators() const { return designator; }547 548 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; }549 bool get_maybeConstructed() const { return maybeConstructed; }550 551 InitializerNode *next_init() const { return kids; }552 553 void print( std::ostream &os, int indent = 0 ) const;554 void printOneLine( std::ostream & ) const;555 556 virtual Initializer *build() const;557 private:558 ExpressionNode *expr;559 bool aggregate;560 ExpressionNode *designator; // may be list561 InitializerNode *kids;562 bool maybeConstructed;563 };564 565 //##############################################################################566 567 class CompoundLiteralNode : public ExpressionNode {568 public:569 CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids );570 CompoundLiteralNode( const CompoundLiteralNode &type );571 ~CompoundLiteralNode();572 573 virtual CompoundLiteralNode *clone() const;574 575 DeclarationNode *get_type() const { return type; }576 CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; }577 578 InitializerNode *get_initializer() const { return kids; }579 CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; }580 581 void print( std::ostream &os, int indent = 0 ) const;582 void printOneLine( std::ostream &os, int indent = 0 ) const;583 584 virtual Expression *build() const;585 private:586 DeclarationNode *type;587 InitializerNode *kids;588 };589 602 590 603 template< typename SynTreeType, typename NodeType > -
src/Parser/StatementNode.cc
r7bf7fb9 rd1625f8 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 06:42:38201613 // Update Count : 1 3512 // Last Modified On : Tue Aug 9 10:14:33 2016 13 // Update Count : 141 14 14 // 15 15 … … 350 350 351 351 352 AsmStmtNode::AsmStmtNode( Type t, bool voltile, Constant Node *instruction, ExpressionNode *output, ExpressionNode *input, ConstantNode *clobber, LabelNode *gotolabels ) :352 AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantExpr *instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) : 353 353 StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) { 354 354 if ( gotolabels ) { … … 359 359 360 360 AsmStmtNode::~AsmStmtNode() { 361 delete instruction; deleteoutput; delete input; delete clobber;361 delete output; delete input; delete clobber; 362 362 } 363 363 … … 367 367 if ( instruction ) { 368 368 os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl; 369 instruction->printList( os, indent + 2 * ParseNode::indent_by );369 // instruction->printList( os, indent + 2 * ParseNode::indent_by ); 370 370 } // if 371 371 if ( output ) { … … 379 379 if ( clobber ) { 380 380 os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl; 381 clobber->printList( os, indent + 2 * ParseNode::indent_by );381 // clobber->printList( os, indent + 2 * ParseNode::indent_by ); 382 382 } // if 383 383 if ( ! gotolabels.empty() ) { … … 408 408 buildList( clobber, clob ); 409 409 std::list< Label > gotolabs = gotolabels; 410 return new AsmStmt( labs, voltile, (ConstantExpr *)maybeBuild< Expression >( instruction ), out, in, clob, gotolabs );410 return new AsmStmt( labs, voltile, instruction, out, in, clob, gotolabs ); 411 411 } 412 412 -
src/Parser/parser.cc
r7bf7fb9 rd1625f8 356 356 DeclarationNode::TypeClass tclass; 357 357 StatementNode *sn; 358 Constant Node*constant;358 ConstantExpr *constant; 359 359 LabelNode *label; 360 360 InitializerNode *in; … … 596 596 #define YYFINAL 251 597 597 /* YYLAST -- Last index in YYTABLE. */ 598 #define YYLAST 10 969598 #define YYLAST 10816 599 599 600 600 /* YYNTOKENS -- Number of terminals. */ … … 603 603 #define YYNNTS 241 604 604 /* YYNRULES -- Number of rules. */ 605 #define YYNRULES 75 4605 #define YYNRULES 750 606 606 /* YYNRULES -- Number of states. */ 607 #define YYNSTATES 15 77607 #define YYNSTATES 1554 608 608 609 609 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 620 620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 621 621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 622 2, 2, 2, 12 2, 2, 2, 2, 125, 119, 2,623 109, 110, 11 8, 120, 116, 121, 113, 124, 2, 2,624 2, 2, 2, 2, 2, 2, 2, 2, 1 17, 132,625 12 6, 131, 127, 130, 2, 2, 2, 2, 2, 2,622 2, 2, 2, 121, 2, 2, 2, 124, 118, 2, 623 109, 110, 117, 119, 116, 120, 113, 123, 2, 2, 624 2, 2, 2, 2, 2, 2, 2, 2, 130, 132, 625 125, 131, 126, 129, 2, 2, 2, 2, 2, 2, 626 626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 627 627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 628 2, 111, 2, 112, 12 8, 2, 2, 2, 2, 2,628 2, 111, 2, 112, 127, 2, 2, 2, 2, 2, 629 629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 630 630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 631 2, 2, 2, 114, 12 9, 115, 123, 2, 2, 2,631 2, 2, 2, 114, 128, 115, 122, 2, 2, 2, 632 632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 633 633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 664 664 17, 19, 21, 23, 25, 27, 29, 31, 34, 36, 665 665 38, 42, 46, 48, 55, 60, 64, 72, 76, 84, 666 87, 90, 98, 103, 105, 109, 110, 112, 11 6, 124,667 1 34, 136, 140, 142, 146, 154, 158, 166, 168, 170,668 1 72, 175, 178, 181, 184, 187, 190, 195, 202, 204,669 20 9, 214, 217, 222, 224, 226, 228, 230, 232, 234,670 2 36, 241, 246, 248, 252, 256, 260, 262, 266, 270,671 2 72, 276, 280, 282, 286, 290, 294, 298, 300, 304,672 308, 310, 314, 316, 320, 322, 326, 328, 332, 334,673 3 38, 340, 346, 351, 357, 359, 361, 365, 368, 369,674 3 71, 373, 375, 377, 379, 381, 383, 385, 387, 389,675 3 91, 393, 396, 402, 409, 417, 419, 423, 425, 429,676 4 30, 432, 434, 436, 438, 440, 442, 444, 446, 448,677 4 55, 460, 463, 471, 473, 477, 479, 482, 484, 487,678 4 89, 492, 495, 501, 509, 515, 525, 531, 541, 543,679 5 47, 549, 551, 555, 559, 562, 564, 567, 570, 571,680 5 73, 576, 580, 581, 583, 586, 590, 594, 599, 600,681 602, 604, 607, 613, 621, 628, 635, 640, 644, 649,682 6 52, 656, 659, 663, 667, 671, 675, 681, 685, 689,683 6 94, 696, 702, 709, 715, 722, 732, 743, 753, 764,684 7 67, 769, 772, 775, 778, 780, 787, 796, 807, 820,685 8 35, 836, 838, 839, 841, 843, 847, 852, 860, 861,686 8 63, 867, 869, 873, 875, 877, 879, 883, 885, 887,687 8 89, 893, 894, 896, 900, 905, 907, 911, 913, 915,688 9 19, 923, 927, 931, 935, 938, 942, 949, 953, 957,689 9 62, 964, 967, 970, 974, 980, 989, 997, 1005, 1011,690 10 21, 1024, 1027, 1033, 1037, 1043, 1048, 1052, 1057, 1062,691 10 70, 1074, 1078, 1082, 1086, 1091, 1098, 1100, 1102, 1104,692 1 106, 1108, 1110, 1112, 1114, 1115, 1117, 1119, 1122, 1124,693 11 26, 1128, 1130, 1132, 1134, 1136, 1137, 1143, 1145, 1148,694 11 52, 1154, 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171,695 11 73, 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191,696 11 93, 1195, 1197, 1199, 1201, 1203, 1206, 1209, 1213, 1217,697 12 19, 1223, 1225, 1228, 1231, 1234, 1239, 1244, 1249, 1254,698 12 56, 1259, 1262, 1266, 1268, 1271, 1274, 1276, 1279, 1282,699 12 86, 1288, 1291, 1294, 1296, 1298, 1303, 1306, 1307, 1314,700 13 22, 1325, 1328, 1331, 1332, 1335, 1338, 1342, 1345, 1349,701 13 51, 1354, 1358, 1361, 1364, 1369, 1370, 1372, 1375, 1378,702 13 80, 1381, 1383, 1386, 1389, 1395, 1398, 1399, 1407, 1410,703 1 415, 1416, 1419, 1420, 1422, 1424, 1426, 1432, 1438, 1444,704 1446, 14 52, 1458, 1468, 1470, 1476, 1477, 1479, 1481, 1487,705 148 9, 1491, 1497, 1503, 1505, 1509, 1513, 1518, 1520, 1522,706 15 24, 1526, 1529, 1531, 1535, 1539, 1541, 1544, 1546, 1550,707 15 52, 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1570,708 15 72, 1575, 1577, 1579, 1581, 1584, 1585, 1588, 1591, 1593,709 15 98, 1599, 1601, 1604, 1608, 1613, 1616, 1619, 1621, 1624,710 162 6, 1629, 1635, 1641, 1649, 1656, 1658, 1661, 1664, 1668,711 16 70, 1673, 1676, 1681, 1684, 1689, 1690, 1695, 1698, 1700,712 1 702, 1704, 1705, 1708, 1714, 1720, 1734, 1736, 1738, 1742,713 17 46, 1749, 1753, 1757, 1760, 1765, 1767, 1774, 1784, 1785,714 17 97, 1799, 1803, 1807, 1811, 1813, 1815, 1821, 1824, 1830,715 18 31, 1833, 1835, 1839, 1840, 1842, 1844, 1846, 1848, 1849,716 18 56, 1859, 1861, 1864, 1869, 1872, 1876, 1880, 1884, 1889,717 189 5, 1901, 1907, 1914, 1916, 1918, 1920, 1924, 1925, 1931,718 19 32, 1934, 1936, 1939, 1946, 1948, 1952, 1953, 1955, 1960,719 19 62, 1964, 1966, 1968, 1971, 1973, 1976, 1979, 1981, 1985,720 198 8, 1992, 1996, 1999, 2004, 2009, 2013, 2022, 2026, 2029,721 203 1, 2034, 2041, 2050, 2054, 2057, 2061, 2065, 2070, 2075,722 20 79, 2081, 2083, 2085, 2090, 2097, 2101, 2104, 2108, 2112,723 21 17, 2122, 2126, 2129, 2131, 2134, 2137, 2139, 2143, 2146,724 21 50, 2154, 2157, 2162, 2167, 2171, 2178, 2187, 2191, 2194,725 21 96, 2199, 2202, 2205, 2209, 2213, 2216, 2221, 2226, 2230,726 223 7, 2246, 2250, 2253, 2255, 2258, 2261, 2263, 2265, 2268,727 22 72, 2276, 2279, 2284, 2291, 2300, 2302, 2305, 2308, 2310,728 23 13, 2316, 2320, 2324, 2326, 2331, 2336, 2340, 2346, 2355,729 235 9, 2362, 2366, 2368, 2374, 2380, 2387, 2394, 2396, 2399,730 2 402, 2404, 2407, 2410, 2414, 2418, 2420, 2425, 2430, 2434,731 24 40, 2449, 2453, 2455, 2458, 2460, 2463, 2470, 2476, 2483,732 24 91, 2499, 2501, 2504, 2507, 2509, 2512, 2515, 2519, 2523,733 252 5, 2530, 2535, 2539, 2548, 2552, 2554, 2556, 2559, 2561,734 25 63, 2566, 2570, 2573, 2577, 2580, 2584, 2588, 2591, 2596,735 2 600, 2603, 2607, 2610, 2615, 2619, 2622, 2629, 2636, 2643,736 26 51, 2653, 2656, 2658, 2660, 2662, 2665, 2669, 2672, 2676,737 267 9, 2683, 2687, 2692, 2695, 2699, 2704, 2707, 2713, 2719,738 27 26, 2733, 2734, 2736, 2737666 87, 90, 98, 103, 105, 109, 110, 112, 114, 118, 667 120, 124, 132, 136, 144, 146, 148, 150, 153, 156, 668 159, 162, 165, 168, 173, 176, 181, 188, 190, 195, 669 200, 202, 204, 206, 208, 210, 212, 214, 219, 224, 670 226, 230, 234, 238, 240, 244, 248, 250, 254, 258, 671 260, 264, 268, 272, 276, 278, 282, 286, 288, 292, 672 294, 298, 300, 304, 306, 310, 312, 316, 318, 324, 673 329, 335, 337, 339, 343, 346, 347, 349, 351, 353, 674 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, 675 380, 387, 395, 397, 401, 403, 407, 408, 410, 412, 676 414, 416, 418, 420, 422, 424, 426, 433, 438, 441, 677 449, 451, 455, 457, 460, 462, 465, 467, 470, 473, 678 479, 487, 493, 503, 509, 519, 521, 525, 527, 529, 679 533, 537, 540, 542, 545, 548, 549, 551, 554, 558, 680 559, 561, 564, 568, 572, 577, 578, 580, 582, 585, 681 591, 599, 606, 613, 618, 622, 627, 630, 634, 637, 682 641, 645, 649, 653, 659, 663, 667, 672, 674, 680, 683 687, 693, 700, 710, 721, 731, 742, 745, 747, 750, 684 753, 756, 758, 765, 774, 785, 798, 813, 814, 816, 685 817, 819, 821, 825, 830, 838, 839, 841, 845, 847, 686 851, 853, 855, 857, 861, 863, 865, 867, 871, 872, 687 874, 878, 883, 885, 889, 891, 893, 897, 901, 905, 688 909, 913, 916, 920, 927, 931, 935, 940, 942, 945, 689 948, 952, 958, 967, 975, 983, 989, 999, 1002, 1005, 690 1011, 1015, 1021, 1026, 1030, 1035, 1040, 1048, 1052, 1056, 691 1060, 1064, 1069, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 692 1090, 1092, 1093, 1095, 1097, 1100, 1102, 1104, 1106, 1108, 693 1110, 1112, 1114, 1115, 1121, 1123, 1126, 1130, 1132, 1135, 694 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 695 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 696 1177, 1179, 1181, 1184, 1187, 1191, 1195, 1197, 1201, 1203, 697 1206, 1209, 1212, 1217, 1222, 1227, 1232, 1234, 1237, 1240, 698 1244, 1246, 1249, 1252, 1254, 1257, 1260, 1264, 1266, 1269, 699 1272, 1274, 1276, 1281, 1284, 1285, 1292, 1300, 1303, 1306, 700 1309, 1310, 1313, 1316, 1320, 1323, 1327, 1329, 1332, 1336, 701 1339, 1342, 1347, 1348, 1350, 1353, 1356, 1358, 1359, 1361, 702 1364, 1367, 1373, 1376, 1377, 1385, 1388, 1393, 1394, 1397, 703 1398, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436, 704 1446, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475, 705 1481, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507, 706 1509, 1513, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534, 707 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1553, 1555, 708 1557, 1559, 1562, 1563, 1566, 1569, 1571, 1576, 1577, 1579, 709 1582, 1586, 1591, 1594, 1597, 1599, 1602, 1605, 1611, 1617, 710 1625, 1632, 1634, 1637, 1640, 1644, 1646, 1649, 1652, 1657, 711 1660, 1665, 1666, 1671, 1674, 1676, 1678, 1680, 1681, 1684, 712 1690, 1696, 1710, 1712, 1714, 1718, 1722, 1725, 1729, 1733, 713 1736, 1741, 1743, 1750, 1760, 1761, 1773, 1775, 1779, 1783, 714 1787, 1789, 1791, 1797, 1800, 1806, 1807, 1809, 1811, 1815, 715 1816, 1818, 1820, 1822, 1824, 1825, 1832, 1835, 1837, 1840, 716 1845, 1848, 1852, 1856, 1860, 1865, 1871, 1877, 1883, 1890, 717 1892, 1894, 1896, 1900, 1901, 1907, 1908, 1910, 1912, 1915, 718 1922, 1924, 1928, 1929, 1931, 1936, 1938, 1940, 1942, 1944, 719 1947, 1949, 1952, 1955, 1957, 1961, 1964, 1968, 1972, 1975, 720 1980, 1985, 1989, 1998, 2002, 2005, 2007, 2010, 2017, 2026, 721 2030, 2033, 2037, 2041, 2046, 2051, 2055, 2057, 2059, 2061, 722 2066, 2073, 2077, 2080, 2084, 2088, 2093, 2098, 2102, 2105, 723 2107, 2110, 2113, 2115, 2119, 2122, 2126, 2130, 2133, 2138, 724 2143, 2147, 2154, 2163, 2167, 2170, 2172, 2175, 2178, 2181, 725 2185, 2189, 2192, 2197, 2202, 2206, 2213, 2222, 2226, 2229, 726 2231, 2234, 2237, 2239, 2241, 2244, 2248, 2252, 2255, 2260, 727 2267, 2276, 2278, 2281, 2284, 2286, 2289, 2292, 2296, 2300, 728 2302, 2307, 2312, 2316, 2322, 2331, 2335, 2338, 2342, 2344, 729 2350, 2356, 2363, 2370, 2372, 2375, 2378, 2380, 2383, 2386, 730 2390, 2394, 2396, 2401, 2406, 2410, 2416, 2425, 2429, 2431, 731 2434, 2436, 2439, 2446, 2452, 2459, 2467, 2475, 2477, 2480, 732 2483, 2485, 2488, 2491, 2495, 2499, 2501, 2506, 2511, 2515, 733 2524, 2528, 2530, 2532, 2535, 2537, 2539, 2542, 2546, 2549, 734 2553, 2556, 2560, 2564, 2567, 2572, 2576, 2579, 2583, 2586, 735 2591, 2595, 2598, 2605, 2612, 2619, 2627, 2629, 2632, 2634, 736 2636, 2638, 2641, 2645, 2648, 2652, 2655, 2659, 2663, 2668, 737 2671, 2675, 2680, 2683, 2689, 2695, 2702, 2709, 2710, 2712, 738 2713 739 739 }; 740 740 … … 753 753 109, 275, 110, 114, 279, 372, 115, -1, 143, 114, 754 754 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 755 164, -1, 139, 117, 164, -1, 111, 134, 164, 135, 756 112, 117, 164, -1, 111, 134, 164, 116, 168, 135, 757 112, 117, 164, -1, 147, -1, 146, 116, 147, -1, 758 139, -1, 139, 113, 147, -1, 139, 113, 111, 134, 759 146, 135, 112, -1, 139, 85, 147, -1, 139, 85, 760 111, 134, 146, 135, 112, -1, 143, -1, 136, -1, 761 141, -1, 40, 151, -1, 149, 151, -1, 150, 151, 762 -1, 86, 148, -1, 87, 148, -1, 37, 148, -1, 763 37, 109, 275, 110, -1, 38, 109, 275, 116, 139, 764 110, -1, 76, -1, 76, 109, 276, 110, -1, 76, 765 109, 145, 110, -1, 66, 148, -1, 66, 109, 275, 766 110, -1, 118, -1, 119, -1, 120, -1, 121, -1, 767 122, -1, 123, -1, 148, -1, 109, 275, 110, 151, 768 -1, 109, 275, 110, 167, -1, 151, -1, 152, 118, 769 151, -1, 152, 124, 151, -1, 152, 125, 151, -1, 770 152, -1, 153, 120, 152, -1, 153, 121, 152, -1, 771 153, -1, 154, 88, 153, -1, 154, 89, 153, -1, 772 154, -1, 155, 126, 154, -1, 155, 127, 154, -1, 773 155, 90, 154, -1, 155, 91, 154, -1, 155, -1, 774 156, 92, 155, -1, 156, 93, 155, -1, 156, -1, 775 157, 119, 156, -1, 157, -1, 158, 128, 157, -1, 776 158, -1, 159, 129, 158, -1, 159, -1, 160, 94, 777 159, -1, 160, -1, 161, 95, 160, -1, 161, -1, 778 161, 130, 169, 117, 162, -1, 161, 130, 117, 162, 779 -1, 161, 130, 169, 117, 167, -1, 162, -1, 162, 780 -1, 148, 166, 164, -1, 167, 373, -1, -1, 164, 781 -1, 131, -1, 97, -1, 98, -1, 99, -1, 100, 782 -1, 101, -1, 102, -1, 103, -1, 104, -1, 105, 783 -1, 106, -1, 111, 112, -1, 111, 134, 164, 135, 784 112, -1, 111, 134, 116, 168, 135, 112, -1, 111, 785 134, 164, 116, 168, 135, 112, -1, 165, -1, 168, 786 116, 165, -1, 164, -1, 169, 116, 164, -1, -1, 787 169, -1, 172, -1, 173, -1, 177, -1, 178, -1, 788 190, -1, 192, -1, 193, -1, 198, -1, 128, 143, 789 114, 144, 115, 132, -1, 72, 117, 312, 171, -1, 790 114, 115, -1, 114, 134, 134, 209, 174, 135, 115, 791 -1, 175, -1, 174, 134, 175, -1, 212, -1, 40, 792 212, -1, 308, -1, 171, 135, -1, 171, -1, 176, 793 171, -1, 170, 132, -1, 41, 109, 169, 110, 171, 794 -1, 41, 109, 169, 110, 171, 42, 171, -1, 43, 795 109, 169, 110, 183, -1, 43, 109, 169, 110, 114, 796 134, 205, 184, 115, -1, 53, 109, 169, 110, 183, 797 -1, 53, 109, 169, 110, 114, 134, 205, 186, 115, 798 -1, 163, -1, 163, 96, 163, -1, 310, -1, 179, 799 -1, 180, 116, 179, -1, 44, 180, 117, -1, 45, 800 117, -1, 181, -1, 182, 181, -1, 182, 171, -1, 801 -1, 185, -1, 182, 176, -1, 185, 182, 176, -1, 802 -1, 187, -1, 182, 189, -1, 182, 176, 188, -1, 803 187, 182, 189, -1, 187, 182, 176, 188, -1, -1, 804 189, -1, 56, -1, 56, 132, -1, 47, 109, 169, 805 110, 171, -1, 46, 171, 47, 109, 169, 110, 132, 806 -1, 48, 109, 134, 191, 110, 171, -1, 170, 135, 807 132, 170, 132, 170, -1, 212, 170, 132, 170, -1, 808 51, 72, 132, -1, 51, 118, 169, 132, -1, 50, 809 132, -1, 50, 72, 132, -1, 49, 132, -1, 49, 810 72, 132, -1, 52, 170, 132, -1, 61, 165, 132, 811 -1, 62, 165, 132, -1, 62, 165, 63, 164, 132, 812 -1, 57, 173, 194, -1, 57, 173, 196, -1, 57, 813 173, 194, 196, -1, 195, -1, 58, 109, 96, 110, 814 173, -1, 195, 58, 109, 96, 110, 173, -1, 59, 815 109, 96, 110, 173, -1, 195, 59, 109, 96, 110, 816 173, -1, 58, 109, 134, 134, 197, 135, 110, 173, 817 135, -1, 195, 58, 109, 134, 134, 197, 135, 110, 818 173, 135, -1, 59, 109, 134, 134, 197, 135, 110, 819 173, 135, -1, 195, 59, 109, 134, 134, 197, 135, 820 110, 173, 135, -1, 60, 173, -1, 225, -1, 225, 821 309, -1, 225, 357, -1, 366, 139, -1, 366, -1, 822 64, 199, 109, 141, 110, 132, -1, 64, 199, 109, 823 141, 117, 200, 110, 132, -1, 64, 199, 109, 141, 824 117, 200, 117, 200, 110, 132, -1, 64, 199, 109, 825 141, 117, 200, 117, 200, 117, 203, 110, 132, -1, 826 64, 199, 51, 109, 141, 117, 117, 200, 117, 203, 827 117, 204, 110, 132, -1, -1, 11, -1, -1, 201, 828 -1, 202, -1, 201, 116, 202, -1, 141, 109, 163, 829 110, -1, 111, 163, 112, 141, 109, 163, 110, -1, 830 -1, 141, -1, 203, 116, 141, -1, 139, -1, 204, 831 116, 139, -1, 135, -1, 206, -1, 212, -1, 206, 832 134, 212, -1, 135, -1, 208, -1, 222, -1, 208, 833 134, 222, -1, -1, 210, -1, 29, 211, 132, -1, 834 210, 29, 211, 132, -1, 274, -1, 211, 116, 274, 835 -1, 213, -1, 222, -1, 214, 135, 132, -1, 219, 836 135, 132, -1, 216, 135, 132, -1, 293, 135, 132, 837 -1, 296, 135, 132, -1, 215, 277, -1, 231, 215, 838 277, -1, 214, 135, 116, 134, 272, 277, -1, 367, 839 272, 311, -1, 370, 272, 311, -1, 227, 370, 272, 840 311, -1, 217, -1, 227, 217, -1, 231, 217, -1, 841 231, 227, 217, -1, 216, 135, 116, 134, 272, -1, 842 111, 112, 272, 109, 134, 260, 135, 110, -1, 370, 843 272, 109, 134, 260, 135, 110, -1, 218, 272, 109, 844 134, 260, 135, 110, -1, 111, 134, 262, 135, 112, 845 -1, 111, 134, 262, 135, 116, 134, 263, 135, 112, 846 -1, 3, 215, -1, 3, 217, -1, 219, 135, 116, 847 134, 139, -1, 3, 225, 309, -1, 220, 135, 116, 848 134, 309, -1, 227, 3, 225, 309, -1, 225, 3, 849 309, -1, 225, 3, 227, 309, -1, 3, 139, 131, 850 164, -1, 221, 135, 116, 134, 139, 131, 164, -1, 851 223, 135, 132, -1, 220, 135, 132, -1, 221, 135, 852 132, -1, 240, 135, 132, -1, 224, 309, 311, 277, 853 -1, 223, 116, 312, 309, 311, 277, -1, 236, -1, 854 240, -1, 242, -1, 283, -1, 237, -1, 241, -1, 855 243, -1, 284, -1, -1, 227, -1, 228, -1, 227, 856 228, -1, 229, -1, 314, -1, 10, -1, 12, -1, 857 11, -1, 14, -1, 67, -1, -1, 13, 109, 230, 858 286, 110, -1, 232, -1, 227, 232, -1, 231, 227, 859 232, -1, 233, -1, 232, 233, -1, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 231, 237, -1, 236, 233, -1, 236, 865 233, 227, -1, 236, 233, 237, -1, 238, -1, 226, 866 239, 226, -1, 235, -1, 227, 235, -1, 238, 228, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 169, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 169, 110, -1, 241, -1, 231, 241, -1, 240, 870 233, -1, 240, 233, 227, -1, 244, -1, 227, 244, 871 -1, 241, 228, -1, 243, -1, 231, 243, -1, 242, 872 233, -1, 242, 233, 227, -1, 74, -1, 227, 74, 873 -1, 243, 228, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 225, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 117, 163, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 163, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 227, 370, 272, 373, -1, 217, -1, 896 270, -1, 362, -1, 370, -1, 227, 370, -1, 371, 897 -1, 224, 336, 373, -1, 224, 340, 373, -1, 224, 898 -1, 224, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 225, -1, 225, 357, -1, 366, -1, 371, -1, 225, 902 -1, 225, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 164, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 117, -1, 274, 117, -1, 282, 906 -1, 281, 282, -1, 80, -1, 113, 274, -1, 111, 907 134, 164, 135, 112, -1, 111, 134, 310, 135, 112, 908 -1, 111, 134, 163, 96, 163, 135, 112, -1, 113, 909 111, 134, 146, 135, 112, -1, 284, -1, 231, 284, 910 -1, 283, 233, -1, 283, 233, 227, -1, 285, -1, 911 227, 285, -1, 284, 228, -1, 75, 109, 292, 110, 912 -1, 287, 373, -1, 286, 116, 287, 373, -1, -1, 913 289, 274, 288, 290, -1, 225, 336, -1, 33, -1, 914 35, -1, 34, -1, -1, 290, 291, -1, 129, 274, 915 109, 292, 110, -1, 129, 114, 134, 298, 115, -1, 916 129, 109, 134, 286, 135, 110, 114, 134, 298, 115, 917 109, 292, 110, -1, 276, -1, 164, -1, 292, 116, 918 276, -1, 292, 116, 164, -1, 33, 294, -1, 232, 919 33, 294, -1, 293, 116, 294, -1, 295, 290, -1, 920 295, 290, 131, 276, -1, 274, -1, 273, 109, 134, 921 286, 135, 110, -1, 36, 274, 109, 134, 286, 135, 922 110, 114, 115, -1, -1, 36, 274, 109, 134, 286, 923 135, 110, 114, 297, 298, 115, -1, 299, -1, 298, 924 134, 299, -1, 300, 135, 132, -1, 301, 135, 132, 925 -1, 215, -1, 217, -1, 300, 135, 116, 134, 272, 926 -1, 225, 309, -1, 301, 135, 116, 134, 309, -1, 927 -1, 303, -1, 305, -1, 303, 134, 305, -1, -1, 928 303, -1, 212, -1, 307, -1, 198, -1, -1, 5, 929 82, 306, 114, 304, 115, -1, 40, 305, -1, 308, 930 -1, 323, 173, -1, 327, 134, 207, 173, -1, 216, 931 173, -1, 224, 323, 173, -1, 227, 323, 173, -1, 932 231, 323, 173, -1, 231, 227, 323, 173, -1, 224, 933 327, 134, 207, 173, -1, 227, 327, 134, 207, 173, 934 -1, 231, 327, 134, 207, 173, -1, 231, 227, 327, 935 134, 207, 173, -1, 318, -1, 331, -1, 323, -1, 936 163, 123, 163, -1, -1, 64, 109, 141, 110, 312, 937 -1, -1, 313, -1, 314, -1, 313, 314, -1, 39, 938 109, 109, 315, 110, 110, -1, 316, -1, 315, 116, 939 316, -1, -1, 317, -1, 317, 109, 170, 110, -1, 940 272, -1, 234, -1, 235, -1, 228, -1, 319, 312, 941 -1, 320, -1, 321, 312, -1, 322, 312, -1, 137, 942 -1, 109, 319, 110, -1, 149, 318, -1, 149, 227, 943 318, -1, 109, 320, 110, -1, 319, 349, -1, 109, 944 320, 110, 349, -1, 109, 321, 110, 350, -1, 109, 945 321, 110, -1, 109, 320, 110, 109, 134, 264, 135, 946 110, -1, 109, 322, 110, -1, 324, 312, -1, 325, 947 -1, 326, 312, -1, 319, 109, 134, 264, 135, 110, 948 -1, 109, 325, 110, 109, 134, 264, 135, 110, -1, 949 109, 324, 110, -1, 149, 323, -1, 149, 227, 323, 950 -1, 109, 325, 110, -1, 109, 325, 110, 349, -1, 951 109, 326, 110, 350, -1, 109, 326, 110, -1, 328, 952 -1, 329, -1, 330, -1, 319, 109, 271, 110, -1, 953 109, 329, 110, 109, 271, 110, -1, 109, 328, 110, 954 -1, 149, 327, -1, 149, 227, 327, -1, 109, 329, 955 110, -1, 109, 329, 110, 349, -1, 109, 330, 110, 956 350, -1, 109, 330, 110, -1, 332, 312, -1, 333, 957 -1, 334, 312, -1, 335, 312, -1, 341, -1, 109, 958 332, 110, -1, 149, 331, -1, 149, 227, 331, -1, 959 109, 333, 110, -1, 332, 349, -1, 109, 333, 110, 960 349, -1, 109, 334, 110, 350, -1, 109, 334, 110, 961 -1, 332, 109, 134, 264, 135, 110, -1, 109, 333, 962 110, 109, 134, 264, 135, 110, -1, 109, 335, 110, 963 -1, 319, 312, -1, 337, -1, 338, 312, -1, 339, 964 312, -1, 149, 336, -1, 149, 227, 336, -1, 109, 965 337, 110, -1, 319, 355, -1, 109, 337, 110, 349, 966 -1, 109, 338, 110, 350, -1, 109, 338, 110, -1, 967 319, 109, 134, 264, 135, 110, -1, 109, 337, 110, 968 109, 134, 264, 135, 110, -1, 109, 339, 110, -1, 969 341, 312, -1, 342, -1, 343, 312, -1, 344, 312, 970 -1, 74, -1, 75, -1, 149, 340, -1, 149, 227, 971 340, -1, 109, 342, 110, -1, 341, 355, -1, 109, 972 342, 110, 355, -1, 341, 109, 134, 264, 135, 110, 973 -1, 109, 342, 110, 109, 134, 264, 135, 110, -1, 974 346, -1, 347, 312, -1, 348, 312, -1, 149, -1, 975 149, 227, -1, 149, 345, -1, 149, 227, 345, -1, 976 109, 346, 110, -1, 349, -1, 109, 346, 110, 349, 977 -1, 109, 347, 110, 350, -1, 109, 347, 110, -1, 978 109, 134, 264, 135, 110, -1, 109, 346, 110, 109, 979 134, 264, 135, 110, -1, 109, 348, 110, -1, 111, 980 112, -1, 111, 112, 350, -1, 350, -1, 111, 134, 981 164, 135, 112, -1, 111, 134, 118, 135, 112, -1, 982 350, 111, 134, 164, 135, 112, -1, 350, 111, 134, 983 118, 135, 112, -1, 352, -1, 353, 312, -1, 354, 984 312, -1, 149, -1, 149, 227, -1, 149, 351, -1, 985 149, 227, 351, -1, 109, 352, 110, -1, 355, -1, 986 109, 352, 110, 355, -1, 109, 353, 110, 350, -1, 987 109, 353, 110, -1, 109, 134, 264, 135, 110, -1, 988 109, 352, 110, 109, 134, 264, 135, 110, -1, 109, 989 354, 110, -1, 356, -1, 356, 350, -1, 350, -1, 990 111, 112, -1, 111, 134, 227, 118, 135, 112, -1, 991 111, 134, 227, 135, 112, -1, 111, 134, 227, 164, 992 135, 112, -1, 111, 134, 7, 226, 164, 135, 112, 993 -1, 111, 134, 227, 7, 164, 135, 112, -1, 358, 994 -1, 359, 312, -1, 360, 312, -1, 149, -1, 149, 995 227, -1, 149, 357, -1, 149, 227, 357, -1, 109, 996 358, 110, -1, 349, -1, 109, 358, 110, 349, -1, 997 109, 359, 110, 350, -1, 109, 359, 110, -1, 109, 998 358, 110, 109, 134, 264, 135, 110, -1, 109, 360, 999 110, -1, 362, -1, 370, -1, 227, 370, -1, 363, 1000 -1, 364, -1, 149, 225, -1, 227, 149, 225, -1, 1001 149, 371, -1, 227, 149, 371, -1, 149, 361, -1, 1002 227, 149, 361, -1, 111, 112, 225, -1, 365, 225, 1003 -1, 111, 112, 350, 225, -1, 365, 350, 225, -1, 1004 350, 225, -1, 111, 112, 363, -1, 365, 363, -1, 1005 111, 112, 350, 363, -1, 365, 350, 363, -1, 350, 1006 363, -1, 111, 134, 227, 118, 135, 112, -1, 111, 1007 134, 227, 164, 135, 112, -1, 111, 134, 231, 164, 1008 135, 112, -1, 111, 134, 231, 227, 164, 135, 112, 1009 -1, 370, -1, 227, 370, -1, 367, -1, 368, -1, 1010 369, -1, 149, 225, -1, 227, 149, 225, -1, 149, 1011 371, -1, 227, 149, 371, -1, 149, 366, -1, 227, 1012 149, 366, -1, 111, 112, 225, -1, 111, 112, 350, 1013 225, -1, 350, 225, -1, 111, 112, 368, -1, 111, 1014 112, 350, 368, -1, 350, 368, -1, 111, 134, 263, 1015 135, 112, -1, 111, 112, 109, 260, 110, -1, 370, 1016 109, 134, 260, 135, 110, -1, 218, 109, 134, 260, 1017 135, 110, -1, -1, 116, -1, -1, 131, 164, -1 755 164, -1, 147, -1, 146, 116, 147, -1, 139, -1, 756 139, 113, 147, -1, 139, 113, 111, 134, 146, 135, 757 112, -1, 139, 85, 147, -1, 139, 85, 111, 134, 758 146, 135, 112, -1, 143, -1, 136, -1, 141, -1, 759 40, 151, -1, 149, 151, -1, 150, 151, -1, 86, 760 148, -1, 87, 148, -1, 37, 148, -1, 37, 109, 761 275, 110, -1, 66, 148, -1, 66, 109, 275, 110, 762 -1, 38, 109, 275, 116, 139, 110, -1, 76, -1, 763 76, 109, 145, 110, -1, 76, 109, 276, 110, -1, 764 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 765 122, -1, 148, -1, 109, 275, 110, 151, -1, 109, 766 275, 110, 167, -1, 151, -1, 152, 117, 151, -1, 767 152, 123, 151, -1, 152, 124, 151, -1, 152, -1, 768 153, 119, 152, -1, 153, 120, 152, -1, 153, -1, 769 154, 88, 153, -1, 154, 89, 153, -1, 154, -1, 770 155, 125, 154, -1, 155, 126, 154, -1, 155, 90, 771 154, -1, 155, 91, 154, -1, 155, -1, 156, 92, 772 155, -1, 156, 93, 155, -1, 156, -1, 157, 118, 773 156, -1, 157, -1, 158, 127, 157, -1, 158, -1, 774 159, 128, 158, -1, 159, -1, 160, 94, 159, -1, 775 160, -1, 161, 95, 160, -1, 161, -1, 161, 129, 776 169, 130, 162, -1, 161, 129, 130, 162, -1, 161, 777 129, 169, 130, 167, -1, 162, -1, 162, -1, 148, 778 166, 164, -1, 167, 373, -1, -1, 164, -1, 131, 779 -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, 780 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, 781 -1, 111, 112, -1, 111, 134, 164, 135, 112, -1, 782 111, 134, 116, 168, 135, 112, -1, 111, 134, 164, 783 116, 168, 135, 112, -1, 165, -1, 168, 116, 165, 784 -1, 164, -1, 169, 116, 164, -1, -1, 169, -1, 785 172, -1, 173, -1, 177, -1, 178, -1, 190, -1, 786 192, -1, 193, -1, 198, -1, 127, 143, 114, 144, 787 115, 132, -1, 72, 130, 312, 171, -1, 114, 115, 788 -1, 114, 134, 134, 209, 174, 135, 115, -1, 175, 789 -1, 174, 134, 175, -1, 212, -1, 40, 212, -1, 790 308, -1, 171, 135, -1, 171, -1, 176, 171, -1, 791 170, 132, -1, 41, 109, 169, 110, 171, -1, 41, 792 109, 169, 110, 171, 42, 171, -1, 43, 109, 169, 793 110, 183, -1, 43, 109, 169, 110, 114, 134, 205, 794 184, 115, -1, 53, 109, 169, 110, 183, -1, 53, 795 109, 169, 110, 114, 134, 205, 186, 115, -1, 163, 796 -1, 163, 96, 163, -1, 310, -1, 179, -1, 180, 797 116, 179, -1, 44, 180, 130, -1, 45, 130, -1, 798 181, -1, 182, 181, -1, 182, 171, -1, -1, 185, 799 -1, 182, 176, -1, 185, 182, 176, -1, -1, 187, 800 -1, 182, 189, -1, 182, 176, 188, -1, 187, 182, 801 189, -1, 187, 182, 176, 188, -1, -1, 189, -1, 802 56, -1, 56, 132, -1, 47, 109, 169, 110, 171, 803 -1, 46, 171, 47, 109, 169, 110, 132, -1, 48, 804 109, 134, 191, 110, 171, -1, 170, 135, 132, 170, 805 132, 170, -1, 212, 170, 132, 170, -1, 51, 72, 806 132, -1, 51, 117, 169, 132, -1, 50, 132, -1, 807 50, 72, 132, -1, 49, 132, -1, 49, 72, 132, 808 -1, 52, 170, 132, -1, 61, 165, 132, -1, 62, 809 165, 132, -1, 62, 165, 63, 164, 132, -1, 57, 810 173, 194, -1, 57, 173, 196, -1, 57, 173, 194, 811 196, -1, 195, -1, 58, 109, 96, 110, 173, -1, 812 195, 58, 109, 96, 110, 173, -1, 59, 109, 96, 813 110, 173, -1, 195, 59, 109, 96, 110, 173, -1, 814 58, 109, 134, 134, 197, 135, 110, 173, 135, -1, 815 195, 58, 109, 134, 134, 197, 135, 110, 173, 135, 816 -1, 59, 109, 134, 134, 197, 135, 110, 173, 135, 817 -1, 195, 59, 109, 134, 134, 197, 135, 110, 173, 818 135, -1, 60, 173, -1, 225, -1, 225, 309, -1, 819 225, 357, -1, 366, 139, -1, 366, -1, 64, 199, 820 109, 141, 110, 132, -1, 64, 199, 109, 141, 130, 821 200, 110, 132, -1, 64, 199, 109, 141, 130, 200, 822 130, 200, 110, 132, -1, 64, 199, 109, 141, 130, 823 200, 130, 200, 130, 203, 110, 132, -1, 64, 199, 824 51, 109, 141, 130, 130, 200, 130, 203, 130, 204, 825 110, 132, -1, -1, 11, -1, -1, 201, -1, 202, 826 -1, 201, 116, 202, -1, 141, 109, 163, 110, -1, 827 111, 163, 112, 141, 109, 163, 110, -1, -1, 141, 828 -1, 203, 116, 141, -1, 139, -1, 204, 116, 139, 829 -1, 135, -1, 206, -1, 212, -1, 206, 134, 212, 830 -1, 135, -1, 208, -1, 222, -1, 208, 134, 222, 831 -1, -1, 210, -1, 29, 211, 132, -1, 210, 29, 832 211, 132, -1, 274, -1, 211, 116, 274, -1, 213, 833 -1, 222, -1, 214, 135, 132, -1, 219, 135, 132, 834 -1, 216, 135, 132, -1, 293, 135, 132, -1, 296, 835 135, 132, -1, 215, 277, -1, 231, 215, 277, -1, 836 214, 135, 116, 134, 272, 277, -1, 367, 272, 311, 837 -1, 370, 272, 311, -1, 227, 370, 272, 311, -1, 838 217, -1, 227, 217, -1, 231, 217, -1, 231, 227, 839 217, -1, 216, 135, 116, 134, 272, -1, 111, 112, 840 272, 109, 134, 260, 135, 110, -1, 370, 272, 109, 841 134, 260, 135, 110, -1, 218, 272, 109, 134, 260, 842 135, 110, -1, 111, 134, 262, 135, 112, -1, 111, 843 134, 262, 135, 116, 134, 263, 135, 112, -1, 3, 844 215, -1, 3, 217, -1, 219, 135, 116, 134, 139, 845 -1, 3, 225, 309, -1, 220, 135, 116, 134, 309, 846 -1, 227, 3, 225, 309, -1, 225, 3, 309, -1, 847 225, 3, 227, 309, -1, 3, 139, 131, 164, -1, 848 221, 135, 116, 134, 139, 131, 164, -1, 223, 135, 849 132, -1, 220, 135, 132, -1, 221, 135, 132, -1, 850 240, 135, 132, -1, 224, 309, 311, 277, -1, 223, 851 116, 312, 309, 311, 277, -1, 236, -1, 240, -1, 852 242, -1, 283, -1, 237, -1, 241, -1, 243, -1, 853 284, -1, -1, 227, -1, 228, -1, 227, 228, -1, 854 229, -1, 314, -1, 10, -1, 12, -1, 11, -1, 855 14, -1, 67, -1, -1, 13, 109, 230, 286, 110, 856 -1, 232, -1, 227, 232, -1, 231, 227, 232, -1, 857 233, -1, 232, 233, -1, 234, -1, 5, -1, 7, 858 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69, 859 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18, 860 -1, 19, -1, 17, -1, 22, -1, 23, -1, 15, 861 -1, 25, -1, 26, -1, 27, -1, 24, -1, 237, 862 -1, 231, 237, -1, 236, 233, -1, 236, 233, 227, 863 -1, 236, 233, 237, -1, 238, -1, 226, 239, 226, 864 -1, 235, -1, 227, 235, -1, 238, 228, -1, 238, 865 235, -1, 28, 109, 276, 110, -1, 28, 109, 169, 866 110, -1, 78, 109, 276, 110, -1, 78, 109, 169, 867 110, -1, 241, -1, 231, 241, -1, 240, 233, -1, 868 240, 233, 227, -1, 244, -1, 227, 244, -1, 241, 869 228, -1, 243, -1, 231, 243, -1, 242, 233, -1, 870 242, 233, 227, -1, 74, -1, 227, 74, -1, 243, 871 228, -1, 245, -1, 256, -1, 247, 114, 248, 115, 872 -1, 247, 274, -1, -1, 247, 274, 246, 114, 248, 873 115, -1, 247, 109, 292, 110, 114, 248, 115, -1, 874 247, 285, -1, 31, 312, -1, 32, 312, -1, -1, 875 248, 249, -1, 250, 132, -1, 40, 250, 132, -1, 876 251, 132, -1, 40, 251, 132, -1, 366, -1, 366, 877 274, -1, 250, 116, 274, -1, 250, 116, -1, 225, 878 252, -1, 251, 116, 312, 252, -1, -1, 254, -1, 879 318, 253, -1, 331, 253, -1, 357, -1, -1, 254, 880 -1, 130, 163, -1, 30, 312, -1, 255, 114, 258, 881 372, 115, -1, 255, 274, -1, -1, 255, 274, 257, 882 114, 258, 372, 115, -1, 274, 259, -1, 258, 116, 883 274, 259, -1, -1, 131, 163, -1, -1, 261, -1, 884 263, -1, 262, -1, 262, 135, 116, 134, 263, -1, 885 263, 135, 116, 134, 96, -1, 262, 135, 116, 134, 886 96, -1, 267, -1, 263, 135, 116, 134, 267, -1, 887 262, 135, 116, 134, 267, -1, 262, 135, 116, 134, 888 263, 135, 116, 134, 267, -1, 268, -1, 263, 135, 889 116, 134, 268, -1, -1, 265, -1, 266, -1, 266, 890 135, 116, 134, 96, -1, 270, -1, 269, -1, 266, 891 135, 116, 134, 270, -1, 266, 135, 116, 134, 269, 892 -1, 269, -1, 362, 272, 373, -1, 370, 272, 373, 893 -1, 227, 370, 272, 373, -1, 217, -1, 270, -1, 894 362, -1, 370, -1, 227, 370, -1, 371, -1, 224, 895 336, 373, -1, 224, 340, 373, -1, 224, -1, 224, 896 351, -1, 139, -1, 271, 116, 139, -1, 137, -1, 897 74, -1, 75, -1, 138, -1, 74, -1, 75, -1, 898 139, -1, 74, -1, 75, -1, 366, -1, 225, -1, 899 225, 357, -1, 366, -1, 371, -1, 225, -1, 225, 900 345, -1, -1, 131, 278, -1, 107, 278, -1, 164, 901 -1, 114, 279, 372, 115, -1, -1, 278, -1, 280, 902 278, -1, 279, 116, 278, -1, 279, 116, 280, 278, 903 -1, 281, 130, -1, 274, 130, -1, 282, -1, 281, 904 282, -1, 113, 274, -1, 111, 134, 164, 135, 112, 905 -1, 111, 134, 310, 135, 112, -1, 111, 134, 163, 906 96, 163, 135, 112, -1, 113, 111, 134, 146, 135, 907 112, -1, 284, -1, 231, 284, -1, 283, 233, -1, 908 283, 233, 227, -1, 285, -1, 227, 285, -1, 284, 909 228, -1, 75, 109, 292, 110, -1, 287, 373, -1, 910 286, 116, 287, 373, -1, -1, 289, 274, 288, 290, 911 -1, 225, 336, -1, 33, -1, 35, -1, 34, -1, 912 -1, 290, 291, -1, 128, 274, 109, 292, 110, -1, 913 128, 114, 134, 298, 115, -1, 128, 109, 134, 286, 914 135, 110, 114, 134, 298, 115, 109, 292, 110, -1, 915 276, -1, 164, -1, 292, 116, 276, -1, 292, 116, 916 164, -1, 33, 294, -1, 232, 33, 294, -1, 293, 917 116, 294, -1, 295, 290, -1, 295, 290, 131, 276, 918 -1, 274, -1, 273, 109, 134, 286, 135, 110, -1, 919 36, 274, 109, 134, 286, 135, 110, 114, 115, -1, 920 -1, 36, 274, 109, 134, 286, 135, 110, 114, 297, 921 298, 115, -1, 299, -1, 298, 134, 299, -1, 300, 922 135, 132, -1, 301, 135, 132, -1, 215, -1, 217, 923 -1, 300, 135, 116, 134, 272, -1, 225, 309, -1, 924 301, 135, 116, 134, 309, -1, -1, 303, -1, 305, 925 -1, 303, 134, 305, -1, -1, 303, -1, 212, -1, 926 307, -1, 198, -1, -1, 5, 82, 306, 114, 304, 927 115, -1, 40, 305, -1, 308, -1, 323, 173, -1, 928 327, 134, 207, 173, -1, 216, 173, -1, 224, 323, 929 173, -1, 227, 323, 173, -1, 231, 323, 173, -1, 930 231, 227, 323, 173, -1, 224, 327, 134, 207, 173, 931 -1, 227, 327, 134, 207, 173, -1, 231, 327, 134, 932 207, 173, -1, 231, 227, 327, 134, 207, 173, -1, 933 318, -1, 331, -1, 323, -1, 163, 122, 163, -1, 934 -1, 64, 109, 141, 110, 312, -1, -1, 313, -1, 935 314, -1, 313, 314, -1, 39, 109, 109, 315, 110, 936 110, -1, 316, -1, 315, 116, 316, -1, -1, 317, 937 -1, 317, 109, 170, 110, -1, 272, -1, 234, -1, 938 235, -1, 228, -1, 319, 312, -1, 320, -1, 321, 939 312, -1, 322, 312, -1, 137, -1, 109, 319, 110, 940 -1, 149, 318, -1, 149, 227, 318, -1, 109, 320, 941 110, -1, 319, 349, -1, 109, 320, 110, 349, -1, 942 109, 321, 110, 350, -1, 109, 321, 110, -1, 109, 943 320, 110, 109, 134, 264, 135, 110, -1, 109, 322, 944 110, -1, 324, 312, -1, 325, -1, 326, 312, -1, 945 319, 109, 134, 264, 135, 110, -1, 109, 325, 110, 946 109, 134, 264, 135, 110, -1, 109, 324, 110, -1, 947 149, 323, -1, 149, 227, 323, -1, 109, 325, 110, 948 -1, 109, 325, 110, 349, -1, 109, 326, 110, 350, 949 -1, 109, 326, 110, -1, 328, -1, 329, -1, 330, 950 -1, 319, 109, 271, 110, -1, 109, 329, 110, 109, 951 271, 110, -1, 109, 328, 110, -1, 149, 327, -1, 952 149, 227, 327, -1, 109, 329, 110, -1, 109, 329, 953 110, 349, -1, 109, 330, 110, 350, -1, 109, 330, 954 110, -1, 332, 312, -1, 333, -1, 334, 312, -1, 955 335, 312, -1, 341, -1, 109, 332, 110, -1, 149, 956 331, -1, 149, 227, 331, -1, 109, 333, 110, -1, 957 332, 349, -1, 109, 333, 110, 349, -1, 109, 334, 958 110, 350, -1, 109, 334, 110, -1, 332, 109, 134, 959 264, 135, 110, -1, 109, 333, 110, 109, 134, 264, 960 135, 110, -1, 109, 335, 110, -1, 319, 312, -1, 961 337, -1, 338, 312, -1, 339, 312, -1, 149, 336, 962 -1, 149, 227, 336, -1, 109, 337, 110, -1, 319, 963 355, -1, 109, 337, 110, 349, -1, 109, 338, 110, 964 350, -1, 109, 338, 110, -1, 319, 109, 134, 264, 965 135, 110, -1, 109, 337, 110, 109, 134, 264, 135, 966 110, -1, 109, 339, 110, -1, 341, 312, -1, 342, 967 -1, 343, 312, -1, 344, 312, -1, 74, -1, 75, 968 -1, 149, 340, -1, 149, 227, 340, -1, 109, 342, 969 110, -1, 341, 355, -1, 109, 342, 110, 355, -1, 970 341, 109, 134, 264, 135, 110, -1, 109, 342, 110, 971 109, 134, 264, 135, 110, -1, 346, -1, 347, 312, 972 -1, 348, 312, -1, 149, -1, 149, 227, -1, 149, 973 345, -1, 149, 227, 345, -1, 109, 346, 110, -1, 974 349, -1, 109, 346, 110, 349, -1, 109, 347, 110, 975 350, -1, 109, 347, 110, -1, 109, 134, 264, 135, 976 110, -1, 109, 346, 110, 109, 134, 264, 135, 110, 977 -1, 109, 348, 110, -1, 111, 112, -1, 111, 112, 978 350, -1, 350, -1, 111, 134, 164, 135, 112, -1, 979 111, 134, 117, 135, 112, -1, 350, 111, 134, 164, 980 135, 112, -1, 350, 111, 134, 117, 135, 112, -1, 981 352, -1, 353, 312, -1, 354, 312, -1, 149, -1, 982 149, 227, -1, 149, 351, -1, 149, 227, 351, -1, 983 109, 352, 110, -1, 355, -1, 109, 352, 110, 355, 984 -1, 109, 353, 110, 350, -1, 109, 353, 110, -1, 985 109, 134, 264, 135, 110, -1, 109, 352, 110, 109, 986 134, 264, 135, 110, -1, 109, 354, 110, -1, 356, 987 -1, 356, 350, -1, 350, -1, 111, 112, -1, 111, 988 134, 227, 117, 135, 112, -1, 111, 134, 227, 135, 989 112, -1, 111, 134, 227, 164, 135, 112, -1, 111, 990 134, 7, 226, 164, 135, 112, -1, 111, 134, 227, 991 7, 164, 135, 112, -1, 358, -1, 359, 312, -1, 992 360, 312, -1, 149, -1, 149, 227, -1, 149, 357, 993 -1, 149, 227, 357, -1, 109, 358, 110, -1, 349, 994 -1, 109, 358, 110, 349, -1, 109, 359, 110, 350, 995 -1, 109, 359, 110, -1, 109, 358, 110, 109, 134, 996 264, 135, 110, -1, 109, 360, 110, -1, 362, -1, 997 370, -1, 227, 370, -1, 363, -1, 364, -1, 149, 998 225, -1, 227, 149, 225, -1, 149, 371, -1, 227, 999 149, 371, -1, 149, 361, -1, 227, 149, 361, -1, 1000 111, 112, 225, -1, 365, 225, -1, 111, 112, 350, 1001 225, -1, 365, 350, 225, -1, 350, 225, -1, 111, 1002 112, 363, -1, 365, 363, -1, 111, 112, 350, 363, 1003 -1, 365, 350, 363, -1, 350, 363, -1, 111, 134, 1004 227, 117, 135, 112, -1, 111, 134, 227, 164, 135, 1005 112, -1, 111, 134, 231, 164, 135, 112, -1, 111, 1006 134, 231, 227, 164, 135, 112, -1, 370, -1, 227, 1007 370, -1, 367, -1, 368, -1, 369, -1, 149, 225, 1008 -1, 227, 149, 225, -1, 149, 371, -1, 227, 149, 1009 371, -1, 149, 366, -1, 227, 149, 366, -1, 111, 1010 112, 225, -1, 111, 112, 350, 225, -1, 350, 225, 1011 -1, 111, 112, 368, -1, 111, 112, 350, 368, -1, 1012 350, 368, -1, 111, 134, 263, 135, 112, -1, 111, 1013 112, 109, 260, 110, -1, 370, 109, 134, 260, 135, 1014 110, -1, 218, 109, 134, 260, 135, 110, -1, -1, 1015 116, -1, -1, 131, 164, -1 1018 1016 }; 1019 1017 … … 1024 1022 323, 324, 328, 329, 333, 334, 338, 339, 350, 352, 1025 1023 354, 356, 361, 362, 368, 372, 374, 375, 377, 378, 1026 380, 382, 384, 393, 394, 400, 401, 40 2, 407, 409,1027 414, 41 5, 419, 423, 425, 427, 429, 434, 437, 439,1028 4 41, 446, 459, 461, 463, 465, 467, 469, 471, 473,1029 47 5, 477, 479, 486, 487, 493, 494, 495, 496, 500,1030 50 1, 503, 508, 509, 511, 513, 518, 519, 521, 526,1031 52 7, 529, 534, 535, 537, 539, 541, 546, 547, 549,1032 55 4, 555, 560, 561, 566, 567, 572, 573, 578, 579,1033 58 4, 585, 588, 590, 595, 600, 601, 603, 609, 610,1034 6 14, 615, 616, 617, 618, 619, 620, 621, 622, 623,1035 62 4, 630, 632, 634, 636, 641, 642, 647, 648, 654,1036 65 5, 661, 662, 663, 664, 665, 666, 667, 668, 669,1037 6 79, 686, 688, 698, 699, 704, 706, 712, 714, 718,1038 7 19, 724, 729, 732, 734, 736, 746, 748, 759, 760,1039 76 2, 766, 768, 772, 773, 778, 779, 783, 788, 789,1040 793, 79 5, 801, 802, 806, 808, 810, 812, 818, 819,1041 823, 825, 830, 832, 83 4, 839, 841, 846, 848, 852,1042 85 5, 859, 862, 866, 868, 872, 874, 881, 883, 885,1043 89 4, 896, 898, 900, 902, 907, 909, 911, 913, 918,1044 93 1, 932, 937, 939, 944, 948, 950, 952, 954, 956,1045 96 2, 963, 969, 970, 974, 975, 980, 982, 988, 989,1046 99 1, 996, 998, 1005, 1007, 1011, 1012, 1017, 1019, 1023,1047 102 4, 1028, 1030, 1034, 1035, 1039, 1040, 1044, 1045, 1060,1048 10 61, 1062, 1063, 1064, 1068, 1073, 1080, 1090, 1095, 1100,1049 11 08, 1113, 1118, 1123, 1128, 1136, 1158, 1163, 1170, 1172,1050 11 79, 1184, 1189, 1200, 1205, 1210, 1215, 1220, 1229, 1234,1051 12 42, 1243, 1244, 1245, 1251, 1256, 1264, 1265, 1266, 1267,1052 12 71, 1272, 1273, 1274, 1279, 1280, 1289, 1290, 1295, 1296,1053 1 301, 1303, 1305, 1307, 1309, 1312, 1311, 1323, 1324, 1326,1054 133 6, 1337, 1342, 1346, 1348, 1350, 1352, 1354, 1356, 1358,1055 1360, 136 5, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381,1056 138 3, 1385, 1387, 1389, 1395, 1396, 1398, 1400, 1402, 1407,1057 1408, 141 4, 1415, 1417, 1419, 1424, 1426, 1428, 1430, 1435,1058 1436, 143 8, 1440, 1445, 1446, 1448, 1453, 1454, 1456, 1458,1059 1463, 146 5, 1467, 1472, 1473, 1477, 1479, 1485, 1484, 1488,1060 149 0, 1495, 1497, 1503, 1504, 1509, 1510, 1512, 1513, 1522,1061 1523, 1525, 15 27, 1532, 1534, 1540, 1541, 1543, 1546, 1549,1062 155 4, 1555, 1560, 1565, 1569, 1571, 1577, 1576, 1583, 1585,1063 159 1, 1592, 1600, 1601, 1605, 1606, 1607, 1609, 1611, 1618,1064 1619, 162 1, 1623, 1628, 1629, 1635, 1636, 1640, 1641, 1646,1065 164 7, 1648, 1650, 1658, 1659, 1661, 1664, 1666, 1670, 1671,1066 167 2, 1674, 1676, 1680, 1685, 1693, 1694, 1703, 1705, 1710,1067 17 11, 1712, 1716, 1717, 1718, 1722, 1723, 1724, 1728, 1729,1068 17 30, 1735, 1736, 1737, 1738, 1744, 1745, 1747, 1752, 1753,1069 175 8, 1759, 1760, 1761, 1762, 1777, 1778, 1783, 1784, 1792,1070 179 4, 1796, 1799, 1801, 1803, 1826, 1827, 1829, 1831, 1836,1071 1837, 18 39, 1844, 1849, 1850, 1856, 1855, 1859, 1863, 1865,1072 18 67, 1873, 1874, 1879, 1884, 1886, 1891, 1893, 1894, 1896,1073 1 901, 1903, 1905, 1910, 1912, 1917, 1922, 1930, 1936, 1935,1074 194 9, 1950, 1955, 1956, 1960, 1965, 1970, 1978, 1983, 1994,1075 1995, 2006, 2007, 2013, 2014, 2018, 2019, 2020, 2023, 2022,1076 20 33, 2042, 2048, 2054, 2063, 2069, 2075, 2081, 2087, 2095,1077 21 01, 2109, 2115, 2124, 2125, 2126, 2130, 2134, 2136, 2141,1078 214 2, 2146, 2147, 2152, 2158, 2159, 2162, 2164, 2165, 2169,1079 21 70, 2171, 2172, 2206, 2208, 2209, 2211, 2216, 2221, 2226,1080 222 8, 2230, 2235, 2237, 2239, 2241, 2246, 2248, 2257, 2259,1081 226 0, 2265, 2267, 2269, 2274, 2276, 2278, 2283, 2285, 2287,1082 229 6, 2297, 2298, 2302, 2304, 2306, 2311, 2313, 2315, 2320,1083 232 2, 2324, 2339, 2341, 2342, 2344, 2349, 2350, 2355, 2357,1084 235 9, 2364, 2366, 2368, 2370, 2375, 2377, 2379, 2389, 2391,1085 239 2, 2394, 2399, 2401, 2403, 2408, 2410, 2412, 2414, 2419,1086 24 21, 2423, 2454, 2456, 2457, 2459, 2464, 2469, 2477, 2479,1087 248 1, 2486, 2488, 2493, 2495, 2509, 2510, 2512, 2517, 2519,1088 25 21, 2523, 2525, 2530, 2531, 2533, 2535, 2540, 2542, 2544,1089 25 50, 2552, 2554, 2558, 2560, 2562, 2564, 2578, 2579, 2581,1090 258 6, 2588, 2590, 2592, 2594, 2599, 2600, 2602, 2604, 2609,1091 26 11, 2613, 2619, 2620, 2622, 2631, 2634, 2636, 2639, 2641,1092 26 43, 2656, 2657, 2659, 2664, 2666, 2668, 2670, 2672, 2677,1093 267 8, 2680, 2682, 2687, 2689, 2697, 2698, 2699, 2704, 2705,1094 270 9, 2711, 2713, 2715, 2717, 2719, 2726, 2728, 2730, 2732,1095 27 34, 2736, 2738, 2740, 2742, 2744, 2749, 2751, 2753, 2758,1096 27 84, 2785, 2787, 2791, 2792, 2796, 2798, 2800, 2802, 2804,1097 2806, 28 13, 2815, 2817, 2819, 2821, 2823, 2828, 2833, 2835,1098 28 37, 2855, 2857, 2862, 28631024 380, 382, 384, 393, 394, 400, 401, 405, 406, 410, 1025 414, 416, 418, 420, 425, 428, 430, 432, 437, 450, 1026 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 1027 477, 478, 484, 485, 486, 487, 491, 492, 494, 499, 1028 500, 502, 504, 509, 510, 512, 517, 518, 520, 525, 1029 526, 528, 530, 532, 537, 538, 540, 545, 546, 551, 1030 552, 557, 558, 563, 564, 569, 570, 575, 576, 579, 1031 581, 586, 591, 592, 594, 600, 601, 605, 606, 607, 1032 608, 609, 610, 611, 612, 613, 614, 615, 621, 623, 1033 625, 627, 632, 633, 638, 639, 645, 646, 652, 653, 1034 654, 655, 656, 657, 658, 659, 660, 670, 677, 679, 1035 689, 690, 695, 697, 703, 705, 709, 710, 715, 720, 1036 723, 725, 727, 737, 739, 750, 751, 753, 757, 759, 1037 763, 764, 769, 770, 774, 779, 780, 784, 786, 792, 1038 793, 797, 799, 801, 803, 809, 810, 814, 816, 821, 1039 823, 825, 830, 832, 837, 839, 843, 846, 850, 853, 1040 857, 859, 863, 865, 872, 874, 876, 885, 887, 889, 1041 891, 893, 898, 900, 902, 904, 909, 922, 923, 928, 1042 930, 935, 939, 941, 943, 945, 947, 953, 954, 960, 1043 961, 965, 966, 971, 973, 979, 980, 982, 987, 989, 1044 996, 998, 1002, 1003, 1008, 1010, 1014, 1015, 1019, 1021, 1045 1025, 1026, 1030, 1031, 1035, 1036, 1051, 1052, 1053, 1054, 1046 1055, 1059, 1064, 1071, 1081, 1086, 1091, 1099, 1104, 1109, 1047 1114, 1119, 1127, 1149, 1154, 1161, 1163, 1170, 1175, 1180, 1048 1191, 1196, 1201, 1206, 1211, 1220, 1225, 1233, 1234, 1235, 1049 1236, 1242, 1247, 1255, 1256, 1257, 1258, 1262, 1263, 1264, 1050 1265, 1270, 1271, 1280, 1281, 1286, 1287, 1292, 1294, 1296, 1051 1298, 1300, 1303, 1302, 1314, 1315, 1317, 1327, 1328, 1333, 1052 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1351, 1356, 1358, 1053 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1054 1380, 1386, 1387, 1389, 1391, 1393, 1398, 1399, 1405, 1406, 1055 1408, 1410, 1415, 1417, 1419, 1421, 1426, 1427, 1429, 1431, 1056 1436, 1437, 1439, 1444, 1445, 1447, 1449, 1454, 1456, 1458, 1057 1463, 1464, 1468, 1470, 1476, 1475, 1479, 1481, 1486, 1488, 1058 1494, 1495, 1500, 1501, 1503, 1504, 1513, 1514, 1516, 1518, 1059 1523, 1525, 1531, 1532, 1534, 1537, 1540, 1545, 1546, 1551, 1060 1556, 1560, 1562, 1568, 1567, 1574, 1576, 1582, 1583, 1591, 1061 1592, 1596, 1597, 1598, 1600, 1602, 1609, 1610, 1612, 1614, 1062 1619, 1620, 1626, 1627, 1631, 1632, 1637, 1638, 1639, 1641, 1063 1649, 1650, 1652, 1655, 1657, 1661, 1662, 1663, 1665, 1667, 1064 1671, 1676, 1684, 1685, 1694, 1696, 1701, 1702, 1703, 1707, 1065 1708, 1709, 1713, 1714, 1715, 1719, 1720, 1721, 1726, 1727, 1066 1728, 1729, 1735, 1736, 1738, 1743, 1744, 1749, 1750, 1751, 1067 1752, 1753, 1768, 1769, 1774, 1775, 1781, 1783, 1786, 1788, 1068 1790, 1813, 1814, 1816, 1818, 1823, 1824, 1826, 1831, 1836, 1069 1837, 1843, 1842, 1846, 1850, 1852, 1854, 1860, 1861, 1866, 1070 1871, 1873, 1878, 1880, 1881, 1883, 1888, 1890, 1892, 1897, 1071 1899, 1904, 1909, 1917, 1923, 1922, 1936, 1937, 1942, 1943, 1072 1947, 1952, 1957, 1965, 1970, 1981, 1982, 1993, 1994, 2000, 1073 2001, 2005, 2006, 2007, 2010, 2009, 2020, 2029, 2035, 2041, 1074 2050, 2056, 2062, 2068, 2074, 2082, 2088, 2096, 2102, 2111, 1075 2112, 2113, 2117, 2121, 2123, 2128, 2129, 2133, 2134, 2139, 1076 2145, 2146, 2149, 2151, 2152, 2156, 2157, 2158, 2159, 2193, 1077 2195, 2196, 2198, 2203, 2208, 2213, 2215, 2217, 2222, 2224, 1078 2226, 2228, 2233, 2235, 2244, 2246, 2247, 2252, 2254, 2256, 1079 2261, 2263, 2265, 2270, 2272, 2274, 2283, 2284, 2285, 2289, 1080 2291, 2293, 2298, 2300, 2302, 2307, 2309, 2311, 2326, 2328, 1081 2329, 2331, 2336, 2337, 2342, 2344, 2346, 2351, 2353, 2355, 1082 2357, 2362, 2364, 2366, 2376, 2378, 2379, 2381, 2386, 2388, 1083 2390, 2395, 2397, 2399, 2401, 2406, 2408, 2410, 2441, 2443, 1084 2444, 2446, 2451, 2456, 2464, 2466, 2468, 2473, 2475, 2480, 1085 2482, 2496, 2497, 2499, 2504, 2506, 2508, 2510, 2512, 2517, 1086 2518, 2520, 2522, 2527, 2529, 2531, 2537, 2539, 2541, 2545, 1087 2547, 2549, 2551, 2565, 2566, 2568, 2573, 2575, 2577, 2579, 1088 2581, 2586, 2587, 2589, 2591, 2596, 2598, 2600, 2606, 2607, 1089 2609, 2618, 2621, 2623, 2626, 2628, 2630, 2643, 2644, 2646, 1090 2651, 2653, 2655, 2657, 2659, 2664, 2665, 2667, 2669, 2674, 1091 2676, 2684, 2685, 2686, 2691, 2692, 2696, 2698, 2700, 2702, 1092 2704, 2706, 2713, 2715, 2717, 2719, 2721, 2723, 2725, 2727, 1093 2729, 2731, 2736, 2738, 2740, 2745, 2771, 2772, 2774, 2778, 1094 2779, 2783, 2785, 2787, 2789, 2791, 2793, 2800, 2802, 2804, 1095 2806, 2808, 2810, 2815, 2820, 2822, 2824, 2842, 2844, 2849, 1096 2850 1099 1097 }; 1100 1098 #endif … … 1122 1120 "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign", 1123 1121 "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", 1124 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "' :'", "'*'",1125 "' &'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",1126 "' |'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",1122 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", 1123 "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", 1124 "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant", 1127 1125 "identifier", "no_01_identifier", "no_attr_identifier", "zero_one", 1128 1126 "string_literal_list", "primary_expression", "postfix_expression", … … 1229 1227 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1230 1228 355, 356, 357, 358, 359, 360, 361, 362, 363, 40, 1231 41, 91, 93, 46, 123, 125, 44, 58, 42, 38,1232 4 3, 45, 33, 126, 47, 37, 60, 62, 94, 124,1233 63, 61, 591229 41, 91, 93, 46, 123, 125, 44, 42, 38, 43, 1230 45, 33, 126, 47, 37, 60, 62, 94, 124, 63, 1231 58, 61, 59 1234 1232 }; 1235 1233 # endif … … 1241 1239 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 1242 1240 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 1243 143, 143, 143, 144, 144, 145, 145, 14 5, 145, 145,1244 14 6, 146, 147, 147, 147, 147, 147, 148, 148, 148,1241 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 1242 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 1245 1243 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1246 14 8, 148, 148, 149, 149, 150, 150, 150, 150, 151,1247 15 1, 151, 152, 152, 152, 152, 153, 153, 153, 154,1248 15 4, 154, 155, 155, 155, 155, 155, 156, 156, 156,1249 15 7, 157, 158, 158, 159, 159, 160, 160, 161, 161,1250 162, 16 2, 162, 162, 163, 164, 164, 164, 165, 165,1251 166, 166, 166, 166, 166, 166, 166, 166, 16 6, 166,1252 16 6, 167, 167, 167, 167, 168, 168, 169, 169, 170,1253 17 0, 171, 171, 171, 171, 171, 171, 171, 171, 171,1254 17 2, 173, 173, 174, 174, 175, 175, 175, 175, 176,1255 17 6, 177, 178, 178, 178, 178, 178, 178, 179, 179,1256 1 79, 180, 180, 181, 181, 182, 182, 183, 184, 184,1257 18 5, 185, 186, 186, 187, 187, 187, 187, 188, 188,1258 1 89, 189, 190, 190, 190, 191, 191, 192, 192, 192,1259 192, 192, 192, 192, 19 2, 192, 192, 193, 193, 193,1260 194, 194, 19 4, 194, 194, 195, 195, 195, 195, 196,1261 197, 197, 19 7, 197, 197, 198, 198, 198, 198, 198,1262 199, 199, 200, 200, 201, 201, 202, 202, 203, 203,1263 20 3, 204, 204, 205, 205, 206, 206, 207, 207, 208,1264 2 08, 209, 209, 210, 210, 211, 211, 212, 212, 213,1265 213, 21 3, 213, 213, 214, 214, 214, 215, 215, 215,1266 216, 216, 21 6, 216, 216, 217, 217, 217, 218, 218,1267 2 19, 219, 219, 220, 220, 220, 220, 220, 221, 221,1268 222, 22 2, 222, 222, 223, 223, 224, 224, 224, 224,1269 225, 22 5, 225, 225, 226, 226, 227, 227, 228, 228,1270 229, 229, 2 29, 229, 229, 230, 229, 231, 231, 231,1271 23 2, 232, 233, 234, 234, 234, 234, 234, 234, 234,1272 23 4, 235, 235, 235, 235, 235, 235, 235, 235, 235,1273 235, 23 5, 235, 235, 236, 236, 236, 236, 236, 237,1274 23 7, 238, 238, 238, 238, 239, 239, 239, 239, 240,1275 24 0, 240, 240, 241, 241, 241, 242, 242, 242, 242,1276 24 3, 243, 243, 244, 244, 245, 245, 246, 245, 245,1277 24 5, 247, 247, 248, 248, 249, 249, 249, 249, 250,1278 25 0, 250, 250, 251, 251, 252, 252, 252, 252, 252,1279 25 3, 253, 254, 255, 256, 256, 257, 256, 258, 258,1280 2 59, 259, 260, 260, 261, 261, 261, 261, 261, 262,1281 26 2, 262, 262, 263, 263, 264, 264, 265, 265, 266,1282 26 6, 266, 266, 267, 267, 267, 267, 267, 268, 268,1283 26 8, 268, 268, 269, 269, 270, 270, 271, 271, 272,1284 27 2, 272, 273, 273, 273, 274, 274, 274, 275, 275,1285 27 5, 276, 276, 276, 276, 277, 277, 277, 278, 278,1286 279, 279, 2 79, 279, 279, 280, 280, 281, 281, 282,1287 282, 28 2, 282, 282, 282, 283, 283, 283, 283, 284,1288 28 4, 284, 285, 286, 286, 288, 287, 287, 289, 289,1289 2 89, 290, 290, 291, 291, 291, 292, 292, 292, 292,1290 29 3, 293, 293, 294, 294, 295, 295, 296, 297, 296,1291 298, 298, 299, 299, 300, 300, 300, 301, 301, 302,1292 30 2, 303, 303, 304, 304, 305, 305, 305, 306, 305,1293 30 5, 307, 307, 307, 308, 308, 308, 308, 308, 308,1294 30 8, 308, 308, 309, 309, 309, 310, 311, 311, 312,1295 31 2, 313, 313, 314, 315, 315, 316, 316, 316, 317,1296 31 7, 317, 317, 318, 318, 318, 318, 319, 319, 320,1297 32 0, 320, 321, 321, 321, 321, 322, 322, 323, 323,1298 32 3, 324, 324, 324, 325, 325, 325, 326, 326, 326,1299 32 7, 327, 327, 328, 328, 328, 329, 329, 329, 330,1300 33 0, 330, 331, 331, 331, 331, 332, 332, 333, 333,1301 33 3, 334, 334, 334, 334, 335, 335, 335, 336, 336,1302 33 6, 336, 337, 337, 337, 338, 338, 338, 338, 339,1303 3 39, 339, 340, 340, 340, 340, 341, 341, 342, 342,1304 34 2, 343, 343, 344, 344, 345, 345, 345, 346, 346,1305 34 6, 346, 346, 347, 347, 347, 347, 348, 348, 348,1306 3 49, 349, 349, 350, 350, 350, 350, 351, 351, 351,1307 352, 35 2, 352, 352, 352, 353, 353, 353, 353, 354,1308 35 4, 354, 355, 355, 355, 356, 356, 356, 356, 356,1309 35 6, 357, 357, 357, 358, 358, 358, 358, 358, 359,1310 3 59, 359, 359, 360, 360, 361, 361, 361, 362, 362,1311 363, 363, 36 3, 363, 363, 363, 364, 364, 364, 364,1312 364, 364, 36 4, 364, 364, 364, 365, 365, 365, 365,1313 36 6, 366, 366, 367, 367, 368, 368, 368, 368, 368,1314 36 8, 369, 369, 369, 369, 369, 369, 370, 371, 371,1315 37 1, 372, 372, 373, 3731244 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 1245 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 1246 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 1247 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 1248 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 1249 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 1250 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 1251 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 1252 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 1253 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 1254 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 1255 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 1256 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 1257 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 1258 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 1259 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 1260 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 1261 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1262 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 1263 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 1264 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 1265 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 1266 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 1267 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 1268 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 1269 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 1270 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1271 235, 236, 236, 236, 236, 236, 237, 237, 238, 238, 1272 238, 238, 239, 239, 239, 239, 240, 240, 240, 240, 1273 241, 241, 241, 242, 242, 242, 242, 243, 243, 243, 1274 244, 244, 245, 245, 246, 245, 245, 245, 247, 247, 1275 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 1276 251, 251, 252, 252, 252, 252, 252, 253, 253, 254, 1277 255, 256, 256, 257, 256, 258, 258, 259, 259, 260, 1278 260, 261, 261, 261, 261, 261, 262, 262, 262, 262, 1279 263, 263, 264, 264, 265, 265, 266, 266, 266, 266, 1280 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 1281 269, 269, 270, 270, 271, 271, 272, 272, 272, 273, 1282 273, 273, 274, 274, 274, 275, 275, 275, 276, 276, 1283 276, 276, 277, 277, 277, 278, 278, 279, 279, 279, 1284 279, 279, 280, 280, 281, 281, 282, 282, 282, 282, 1285 282, 283, 283, 283, 283, 284, 284, 284, 285, 286, 1286 286, 288, 287, 287, 289, 289, 289, 290, 290, 291, 1287 291, 291, 292, 292, 292, 292, 293, 293, 293, 294, 1288 294, 295, 295, 296, 297, 296, 298, 298, 299, 299, 1289 300, 300, 300, 301, 301, 302, 302, 303, 303, 304, 1290 304, 305, 305, 305, 306, 305, 305, 307, 307, 307, 1291 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, 1292 309, 309, 310, 311, 311, 312, 312, 313, 313, 314, 1293 315, 315, 316, 316, 316, 317, 317, 317, 317, 318, 1294 318, 318, 318, 319, 319, 320, 320, 320, 321, 321, 1295 321, 321, 322, 322, 323, 323, 323, 324, 324, 324, 1296 325, 325, 325, 326, 326, 326, 327, 327, 327, 328, 1297 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 1298 331, 331, 332, 332, 333, 333, 333, 334, 334, 334, 1299 334, 335, 335, 335, 336, 336, 336, 336, 337, 337, 1300 337, 338, 338, 338, 338, 339, 339, 339, 340, 340, 1301 340, 340, 341, 341, 342, 342, 342, 343, 343, 344, 1302 344, 345, 345, 345, 346, 346, 346, 346, 346, 347, 1303 347, 347, 347, 348, 348, 348, 349, 349, 349, 350, 1304 350, 350, 350, 351, 351, 351, 352, 352, 352, 352, 1305 352, 353, 353, 353, 353, 354, 354, 354, 355, 355, 1306 355, 356, 356, 356, 356, 356, 356, 357, 357, 357, 1307 358, 358, 358, 358, 358, 359, 359, 359, 359, 360, 1308 360, 361, 361, 361, 362, 362, 363, 363, 363, 363, 1309 363, 363, 364, 364, 364, 364, 364, 364, 364, 364, 1310 364, 364, 365, 365, 365, 365, 366, 366, 366, 367, 1311 367, 368, 368, 368, 368, 368, 368, 369, 369, 369, 1312 369, 369, 369, 370, 371, 371, 371, 372, 372, 373, 1313 373 1316 1314 }; 1317 1315 … … 1322 1320 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1323 1321 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 1324 2, 7, 4, 1, 3, 0, 1, 3, 7, 9, 1325 1, 3, 1, 3, 7, 3, 7, 1, 1, 1, 1326 2, 2, 2, 2, 2, 2, 4, 6, 1, 4, 1327 4, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1328 4, 4, 1, 3, 3, 3, 1, 3, 3, 1, 1329 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1331 1, 5, 4, 5, 1, 1, 3, 2, 0, 1, 1322 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 1323 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 1324 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 1325 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1326 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1327 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1328 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 1329 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 1330 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1331 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 1332 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 1333 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 1334 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 1335 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 1336 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 1337 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 1338 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 1339 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 1340 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 1341 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 1342 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 1343 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 1344 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 1345 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 1346 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 1347 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1348 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1349 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 1332 1350 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 1, 2, 5, 6, 7, 1, 3, 1, 3, 0,1334 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,1335 4, 2, 7, 1, 3, 1, 2, 1, 2, 1,1336 2, 2, 5, 7, 5, 9, 5, 9, 1, 3,1337 1, 1, 3, 3, 2, 1, 2, 2, 0, 1,1338 2, 3, 0, 1, 2, 3, 3, 4, 0, 1,1339 1, 2, 5, 7, 6, 6, 4, 3, 4, 2,1340 3, 2, 3, 3, 3, 3, 5, 3, 3, 4,1341 1, 5, 6, 5, 6, 9, 10, 9, 10, 2,1342 1, 2, 2, 2, 1, 6, 8, 10, 12, 14,1343 0, 1, 0, 1, 1, 3, 4, 7, 0, 1,1344 3, 1, 3, 1, 1, 1, 3, 1, 1, 1,1345 3, 0, 1, 3, 4, 1, 3, 1, 1, 3,1346 3, 3, 3, 3, 2, 3, 6, 3, 3, 4,1347 1, 2, 2, 3, 5, 8, 7, 7, 5, 9,1348 2, 2, 5, 3, 5, 4, 3, 4, 4, 7,1349 3, 3, 3, 3, 4, 6, 1, 1, 1, 1,1350 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,1351 1, 1, 1, 1, 1, 0, 5, 1, 2, 3,1352 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,1353 1351 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 1, 1, 2, 2, 3, 3, 1, 1355 3, 1, 2, 2, 2, 4, 4, 4, 4, 1, 1356 2, 2, 3, 1, 2, 2, 1, 2, 2, 3, 1357 1, 2, 2, 1, 1, 4, 2, 0, 6, 7, 1358 2, 2, 2, 0, 2, 2, 3, 2, 3, 1, 1359 2, 3, 2, 2, 4, 0, 1, 2, 2, 1, 1360 0, 1, 2, 2, 5, 2, 0, 7, 2, 4, 1361 0, 2, 0, 1, 1, 1, 5, 5, 5, 1, 1362 5, 5, 9, 1, 5, 0, 1, 1, 5, 1, 1363 1, 5, 5, 1, 3, 3, 4, 1, 1, 1, 1364 1, 2, 1, 3, 3, 1, 2, 1, 3, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1366 2, 1, 1, 1, 2, 0, 2, 2, 1, 4, 1367 0, 1, 2, 3, 4, 2, 2, 1, 2, 1, 1368 2, 5, 5, 7, 6, 1, 2, 2, 3, 1, 1369 2, 2, 4, 2, 4, 0, 4, 2, 1, 1, 1370 1, 0, 2, 5, 5, 13, 1, 1, 3, 3, 1371 2, 3, 3, 2, 4, 1, 6, 9, 0, 11, 1372 1, 3, 3, 3, 1, 1, 5, 2, 5, 0, 1373 1, 1, 3, 0, 1, 1, 1, 1, 0, 6, 1374 2, 1, 2, 4, 2, 3, 3, 3, 4, 5, 1375 5, 5, 6, 1, 1, 1, 3, 0, 5, 0, 1376 1, 1, 2, 6, 1, 3, 0, 1, 4, 1, 1377 1, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1378 3, 3, 2, 4, 4, 3, 8, 3, 2, 1, 1379 2, 6, 8, 3, 2, 3, 3, 4, 4, 3, 1380 1, 1, 1, 4, 6, 3, 2, 3, 3, 4, 1381 4, 3, 2, 1, 2, 2, 1, 3, 2, 3, 1352 1, 1, 2, 2, 3, 3, 1, 3, 1, 2, 1353 2, 2, 4, 4, 4, 4, 1, 2, 2, 3, 1354 1, 2, 2, 1, 2, 2, 3, 1, 2, 2, 1355 1, 1, 4, 2, 0, 6, 7, 2, 2, 2, 1356 0, 2, 2, 3, 2, 3, 1, 2, 3, 2, 1357 2, 4, 0, 1, 2, 2, 1, 0, 1, 2, 1358 2, 5, 2, 0, 7, 2, 4, 0, 2, 0, 1359 1, 1, 1, 5, 5, 5, 1, 5, 5, 9, 1360 1, 5, 0, 1, 1, 5, 1, 1, 5, 5, 1361 1, 3, 3, 4, 1, 1, 1, 1, 2, 1, 1362 3, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1363 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1364 1, 2, 0, 2, 2, 1, 4, 0, 1, 2, 1365 3, 4, 2, 2, 1, 2, 2, 5, 5, 7, 1366 6, 1, 2, 2, 3, 1, 2, 2, 4, 2, 1367 4, 0, 4, 2, 1, 1, 1, 0, 2, 5, 1368 5, 13, 1, 1, 3, 3, 2, 3, 3, 2, 1369 4, 1, 6, 9, 0, 11, 1, 3, 3, 3, 1370 1, 1, 5, 2, 5, 0, 1, 1, 3, 0, 1371 1, 1, 1, 1, 0, 6, 2, 1, 2, 4, 1372 2, 3, 3, 3, 4, 5, 5, 5, 6, 1, 1373 1, 1, 3, 0, 5, 0, 1, 1, 2, 6, 1374 1, 3, 0, 1, 4, 1, 1, 1, 1, 2, 1375 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1376 4, 3, 8, 3, 2, 1, 2, 6, 8, 3, 1377 2, 3, 3, 4, 4, 3, 1, 1, 1, 4, 1378 6, 3, 2, 3, 3, 4, 4, 3, 2, 1, 1379 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1380 3, 6, 8, 3, 2, 1, 2, 2, 2, 3, 1382 1381 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1383 2, 2, 2, 3, 3, 2, 4, 4, 3, 6, 1384 8, 3, 2, 1, 2, 2, 1, 1, 2, 3, 1385 3, 2, 4, 6, 8, 1, 2, 2, 1, 2, 1386 2, 3, 3, 1, 4, 4, 3, 5, 8, 3, 1387 2, 3, 1, 5, 5, 6, 6, 1, 2, 2, 1388 1, 2, 2, 3, 3, 1, 4, 4, 3, 5, 1389 8, 3, 1, 2, 1, 2, 6, 5, 6, 7, 1390 7, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1391 4, 4, 3, 8, 3, 1, 1, 2, 1, 1, 1392 2, 3, 2, 3, 2, 3, 3, 2, 4, 3, 1393 2, 3, 2, 4, 3, 2, 6, 6, 6, 7, 1394 1, 2, 1, 1, 1, 2, 3, 2, 3, 2, 1395 3, 3, 4, 2, 3, 4, 2, 5, 5, 6, 1396 6, 0, 1, 0, 2 1382 2, 2, 1, 1, 2, 3, 3, 2, 4, 6, 1383 8, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1384 4, 4, 3, 5, 8, 3, 2, 3, 1, 5, 1385 5, 6, 6, 1, 2, 2, 1, 2, 2, 3, 1386 3, 1, 4, 4, 3, 5, 8, 3, 1, 2, 1387 1, 2, 6, 5, 6, 7, 7, 1, 2, 2, 1388 1, 2, 2, 3, 3, 1, 4, 4, 3, 8, 1389 3, 1, 1, 2, 1, 1, 2, 3, 2, 3, 1390 2, 3, 3, 2, 4, 3, 2, 3, 2, 4, 1391 3, 2, 6, 6, 6, 7, 1, 2, 1, 1, 1392 1, 2, 3, 2, 3, 2, 3, 3, 4, 2, 1393 3, 4, 2, 5, 5, 6, 6, 0, 1, 0, 1394 2 1397 1395 }; 1398 1396 … … 1402 1400 static const yytype_uint16 yydefact[] = 1403 1401 { 1404 29 4, 294, 315, 313, 316, 314, 317, 318, 300, 302,1405 301, 0, 303, 329, 321, 326, 324, 325, 323, 322,1406 32 7, 328, 333, 330, 331, 332, 549, 549, 549, 0,1407 0, 0, 29 4, 220, 304, 319, 320, 7, 360, 0,1408 8, 14, 15, 0, 2, 6 3, 64, 567, 9, 294,1409 52 7, 525, 247, 3, 455, 3, 260, 0, 3, 3,1410 3, 24 8, 3, 0, 0, 0, 295, 296, 298, 294,1411 30 7, 310, 312, 341, 286, 334, 339, 287, 349, 288,1412 35 6, 353, 363, 0, 0, 364, 289, 475, 479, 3,1413 3, 0, 2, 5 21, 526, 531, 299, 0, 0, 549,1414 57 9, 549, 2, 590, 591, 592, 294, 0, 733, 734,1415 0, 12, 0, 13, 29 4, 270, 271, 0, 295, 290,1416 2 91, 292, 293, 528, 305, 393, 550, 551, 371, 372,1417 12, 44 6, 447, 11, 442, 445, 0, 505, 500, 491,1418 44 6, 447, 0, 0, 530, 221, 0, 294, 0, 0,1419 0, 0, 0, 0, 0, 0, 29 4, 294, 2, 0,1420 73 5, 295, 584, 596, 739, 732, 730, 737, 0, 0,1421 0, 25 4, 2, 0, 534, 440, 441, 439, 0, 0,1422 0, 0, 54 9, 0, 636, 637, 0, 0, 547, 543,1423 54 9, 564, 549, 549, 545, 2, 544, 549, 603, 549,1424 54 9, 606, 0, 0, 0, 294, 294, 313, 361, 2,1425 29 4, 261, 297, 308, 342, 354, 480, 0, 2, 0,1426 45 5, 262, 295, 335, 350, 357, 476, 0, 2, 0,1427 3 11, 336, 343, 344, 0, 351, 355, 358, 362, 447,1428 29 4, 373, 366, 370, 0, 395, 477, 481, 0, 0,1429 0, 1, 29 4, 2, 532, 578, 580, 294, 2, 743,1430 29 5, 746, 547, 547, 0, 295, 0, 0, 273, 549,1431 54 5, 2, 294, 0, 0, 294, 552, 2, 503, 2,1432 55 6, 0, 0, 0, 0, 0, 0, 18, 58, 4,1433 5, 6, 16, 0, 0, 29 4, 2, 65, 66, 67,1434 6 8, 48, 19, 49, 22, 47, 69, 294, 0, 72,1435 7 6, 79, 82, 87, 90, 92, 94, 96, 98, 100,1436 10 5, 497, 753, 453, 496, 0, 451, 452, 0, 568,1437 5 83, 586, 589, 595, 598, 601, 360, 0, 2, 741,1438 0, 29 4, 744, 2, 63, 294, 3, 427, 0, 435,1439 29 5, 294, 307, 334, 287, 349, 356, 3, 3, 409,1440 41 3, 423, 428, 475, 294, 429, 708, 709, 294, 430,1441 4 32, 294, 2, 585, 597, 731, 2, 2, 249, 2,1442 4 60, 0, 458, 457, 456, 141, 2, 2, 251, 2,1443 2, 2 50, 2, 281, 2, 282, 0, 280, 0, 0,1444 0, 0, 0, 0, 0, 0, 0, 56 9, 608, 0,1445 45 5, 2, 563, 572, 662, 565, 566, 535, 294, 2,1446 602, 611, 604, 605, 0, 276, 294, 294, 340, 295,1447 0, 29 5, 0, 294, 736, 740, 738, 536, 294, 547,1448 25 5, 263, 309, 0, 2, 537, 294, 501, 337, 338,1449 28 3, 352, 359, 0, 294, 0, 751, 400, 0, 478,1450 502, 252, 253, 522, 294, 437, 0, 294, 237, 0,1451 2, 23 9, 0, 295, 0, 257, 2, 258, 278, 0,1452 0, 2, 29 4, 547, 294, 488, 490, 489, 0, 0,1453 7 53, 0, 294, 0, 294, 492, 294, 562, 560, 561,1454 55 9, 0, 554, 557, 0, 0, 294, 55, 294, 69,1455 50, 294, 61, 294, 294, 53, 54, 2, 127, 0,1456 0, 44 9, 0, 448, 730, 121, 294, 17, 0, 29,1457 30, 35, 2, 0, 35, 1 11, 112, 113, 114, 115,1458 11 6, 117, 118, 119, 120, 110, 0, 51, 52, 0,1402 291, 291, 312, 310, 313, 311, 314, 315, 297, 299, 1403 298, 0, 300, 326, 318, 323, 321, 322, 320, 319, 1404 324, 325, 330, 327, 328, 329, 545, 545, 545, 0, 1405 0, 0, 291, 217, 301, 316, 317, 7, 357, 0, 1406 8, 14, 15, 0, 2, 60, 61, 563, 9, 291, 1407 523, 521, 244, 3, 452, 3, 257, 0, 3, 3, 1408 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1409 304, 307, 309, 338, 283, 331, 336, 284, 346, 285, 1410 353, 350, 360, 0, 0, 361, 286, 471, 475, 3, 1411 3, 0, 2, 517, 522, 527, 296, 0, 0, 545, 1412 575, 545, 2, 586, 587, 588, 291, 0, 729, 730, 1413 0, 12, 0, 13, 291, 267, 268, 0, 292, 287, 1414 288, 289, 290, 524, 302, 390, 546, 547, 368, 369, 1415 12, 443, 444, 11, 439, 442, 0, 501, 496, 487, 1416 443, 444, 0, 0, 526, 218, 0, 291, 0, 0, 1417 0, 0, 0, 0, 0, 0, 291, 291, 2, 0, 1418 731, 292, 580, 592, 735, 728, 726, 733, 0, 0, 1419 0, 251, 2, 0, 530, 437, 438, 436, 0, 0, 1420 0, 0, 545, 0, 632, 633, 0, 0, 543, 539, 1421 545, 560, 545, 545, 541, 2, 540, 545, 599, 545, 1422 545, 602, 0, 0, 0, 291, 291, 310, 358, 2, 1423 291, 258, 294, 305, 339, 351, 476, 0, 2, 0, 1424 452, 259, 292, 332, 347, 354, 472, 0, 2, 0, 1425 308, 333, 340, 341, 0, 348, 352, 355, 359, 444, 1426 291, 370, 363, 367, 0, 392, 473, 477, 0, 0, 1427 0, 1, 291, 2, 528, 574, 576, 291, 2, 739, 1428 292, 742, 543, 543, 0, 292, 0, 0, 270, 545, 1429 541, 2, 291, 0, 0, 291, 548, 2, 499, 2, 1430 552, 0, 0, 0, 0, 0, 0, 18, 57, 4, 1431 5, 6, 16, 0, 0, 291, 2, 62, 63, 64, 1432 65, 45, 19, 46, 22, 44, 66, 291, 0, 69, 1433 73, 76, 79, 84, 87, 89, 91, 93, 95, 97, 1434 102, 493, 749, 450, 492, 0, 448, 449, 0, 564, 1435 579, 582, 585, 591, 594, 597, 357, 0, 2, 737, 1436 0, 291, 740, 2, 60, 291, 3, 424, 0, 432, 1437 292, 291, 304, 331, 284, 346, 353, 3, 3, 406, 1438 410, 420, 425, 471, 291, 426, 704, 705, 291, 427, 1439 429, 291, 2, 581, 593, 727, 2, 2, 246, 2, 1440 457, 0, 455, 454, 453, 138, 2, 2, 248, 2, 1441 2, 247, 2, 278, 2, 279, 0, 277, 0, 0, 1442 0, 0, 0, 0, 0, 0, 0, 565, 604, 0, 1443 452, 2, 559, 568, 658, 561, 562, 531, 291, 2, 1444 598, 607, 600, 601, 0, 273, 291, 291, 337, 292, 1445 0, 292, 0, 291, 732, 736, 734, 532, 291, 543, 1446 252, 260, 306, 0, 2, 533, 291, 497, 334, 335, 1447 280, 349, 356, 0, 291, 0, 747, 397, 0, 474, 1448 498, 249, 250, 518, 291, 434, 0, 291, 234, 0, 1449 2, 236, 0, 292, 0, 254, 2, 255, 275, 0, 1450 0, 2, 291, 543, 291, 484, 486, 485, 0, 0, 1451 749, 0, 291, 0, 291, 488, 291, 558, 556, 557, 1452 555, 0, 550, 553, 0, 0, 291, 52, 291, 66, 1453 47, 291, 54, 291, 291, 50, 51, 2, 124, 0, 1454 0, 446, 0, 445, 726, 118, 291, 17, 0, 29, 1455 30, 35, 2, 0, 35, 108, 109, 110, 111, 112, 1456 113, 114, 115, 116, 117, 107, 0, 48, 49, 0, 1459 1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 1461 2, 648, 454, 645, 549, 549, 653, 482, 294, 2, 1462 587, 588, 0, 599, 600, 0, 2, 742, 745, 121, 1463 294, 0, 2, 710, 295, 714, 705, 706, 712, 0, 1464 2, 2, 670, 549, 753, 619, 549, 549, 753, 549, 1465 633, 549, 549, 684, 436, 667, 549, 549, 675, 682, 1466 294, 431, 295, 0, 0, 294, 720, 295, 725, 753, 1467 717, 294, 722, 753, 294, 294, 294, 0, 121, 0, 1468 18, 5, 2, 0, 19, 0, 461, 751, 0, 0, 1469 467, 241, 0, 294, 0, 0, 0, 547, 571, 575, 1470 577, 607, 610, 614, 617, 570, 609, 0, 284, 660, 1471 0, 294, 277, 0, 0, 0, 0, 275, 2, 0, 1472 259, 538, 294, 0, 0, 294, 2, 365, 385, 374, 1473 0, 0, 379, 373, 752, 0, 0, 398, 0, 295, 1474 3, 416, 3, 420, 419, 593, 0, 533, 294, 63, 1475 3, 294, 435, 295, 3, 429, 430, 2, 0, 0, 1476 0, 487, 306, 294, 483, 485, 3, 2, 2, 0, 1477 504, 3, 0, 556, 129, 0, 0, 222, 0, 0, 1478 0, 2, 0, 0, 36, 0, 0, 121, 294, 20, 1479 0, 21, 0, 694, 699, 450, 691, 549, 549, 0, 1480 108, 3, 2, 27, 2, 0, 33, 0, 2, 25, 1481 0, 106, 73, 74, 75, 77, 78, 80, 81, 85, 1482 86, 83, 84, 88, 89, 91, 93, 95, 97, 99, 1483 0, 0, 754, 294, 0, 0, 0, 649, 650, 646, 1484 647, 499, 498, 294, 0, 294, 716, 294, 721, 295, 1485 294, 664, 294, 294, 707, 663, 2, 294, 0, 0, 1486 0, 0, 0, 0, 0, 0, 685, 0, 671, 622, 1487 638, 672, 2, 618, 625, 433, 620, 621, 434, 2, 1488 632, 641, 634, 635, 668, 669, 683, 711, 715, 713, 1489 753, 268, 2, 747, 2, 424, 719, 724, 425, 0, 1490 403, 3, 3, 3, 3, 455, 3, 0, 2, 470, 1491 466, 752, 0, 462, 469, 2, 465, 468, 0, 294, 1492 242, 264, 3, 272, 274, 0, 455, 2, 573, 574, 1493 2, 612, 613, 0, 661, 539, 3, 346, 345, 348, 1494 347, 294, 540, 0, 541, 373, 0, 0, 294, 294, 1495 0, 0, 694, 383, 386, 390, 549, 390, 389, 382, 1496 375, 549, 377, 380, 294, 400, 394, 104, 401, 751, 1497 0, 0, 438, 240, 0, 0, 3, 2, 670, 431, 1498 0, 529, 0, 753, 491, 0, 294, 294, 294, 0, 1499 553, 555, 130, 0, 0, 215, 0, 0, 0, 223, 1500 224, 56, 0, 62, 294, 0, 60, 59, 0, 2, 1501 128, 0, 0, 0, 695, 696, 692, 693, 460, 70, 1502 71, 109, 125, 3, 108, 0, 0, 0, 24, 35, 1503 3, 0, 32, 102, 0, 3, 652, 656, 659, 651, 1504 3, 594, 3, 718, 723, 2, 63, 294, 3, 3, 1505 295, 0, 3, 624, 628, 631, 640, 674, 678, 681, 1506 294, 3, 623, 639, 673, 294, 294, 426, 294, 294, 1507 748, 0, 0, 0, 0, 256, 0, 104, 0, 3, 1508 3, 0, 463, 0, 459, 0, 0, 245, 294, 0, 1509 0, 129, 0, 0, 0, 0, 0, 129, 0, 0, 1510 108, 108, 18, 2, 0, 0, 3, 131, 132, 2, 1511 143, 133, 134, 135, 136, 137, 138, 145, 147, 0, 1512 0, 0, 285, 294, 294, 549, 0, 542, 294, 376, 1513 378, 0, 392, 695, 387, 391, 388, 381, 385, 368, 1514 399, 0, 581, 2, 666, 665, 0, 671, 2, 484, 1515 486, 506, 3, 514, 515, 0, 2, 510, 3, 3, 1516 0, 0, 558, 222, 0, 0, 0, 222, 0, 0, 1517 3, 37, 121, 698, 702, 704, 697, 751, 108, 0, 1518 3, 663, 42, 3, 40, 3, 34, 0, 3, 101, 1519 103, 0, 2, 654, 655, 0, 0, 294, 0, 0, 1520 0, 3, 640, 0, 2, 626, 627, 2, 642, 2, 1521 676, 677, 0, 0, 63, 0, 3, 3, 3, 3, 1522 411, 410, 414, 2, 2, 750, 749, 122, 0, 0, 1523 0, 0, 3, 464, 3, 0, 243, 146, 3, 295, 1524 294, 0, 0, 0, 0, 2, 0, 191, 0, 189, 1525 0, 0, 0, 0, 0, 0, 0, 549, 121, 0, 1526 151, 148, 294, 0, 0, 267, 279, 3, 3, 548, 1527 615, 369, 384, 397, 294, 266, 294, 0, 517, 494, 1528 294, 0, 0, 493, 508, 0, 0, 0, 216, 0, 1529 225, 57, 108, 0, 2, 700, 701, 0, 126, 123, 1530 0, 0, 0, 0, 0, 0, 23, 0, 657, 294, 1531 582, 265, 726, 727, 728, 0, 679, 294, 294, 294, 1532 3, 3, 0, 687, 0, 0, 0, 0, 294, 294, 1533 3, 546, 471, 472, 0, 0, 246, 295, 0, 0, 1534 0, 0, 294, 192, 190, 187, 0, 193, 0, 0, 1535 0, 0, 197, 200, 198, 194, 0, 195, 129, 35, 1536 144, 142, 244, 0, 0, 418, 422, 421, 0, 511, 1537 2, 512, 2, 513, 507, 294, 228, 0, 226, 0, 1538 228, 3, 663, 294, 31, 124, 2, 45, 2, 43, 1539 41, 28, 122, 26, 3, 729, 3, 3, 3, 0, 1540 0, 686, 688, 629, 643, 269, 2, 408, 3, 407, 1541 0, 474, 471, 129, 0, 0, 129, 3, 0, 129, 1542 188, 0, 2, 2, 209, 199, 0, 0, 0, 140, 1543 0, 576, 616, 2, 0, 0, 2, 229, 0, 0, 1544 217, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1545 0, 689, 690, 294, 0, 473, 152, 0, 0, 2, 1546 165, 129, 154, 0, 182, 0, 129, 0, 2, 156, 1547 0, 2, 0, 2, 2, 2, 196, 32, 294, 516, 1548 518, 509, 0, 0, 0, 0, 124, 38, 0, 3, 1549 3, 658, 630, 644, 680, 412, 129, 158, 161, 0, 1550 160, 164, 3, 167, 166, 0, 129, 184, 129, 3, 1551 0, 294, 0, 294, 0, 2, 0, 2, 139, 2, 1552 230, 231, 0, 227, 218, 0, 703, 0, 0, 153, 1553 0, 0, 163, 233, 168, 2, 235, 183, 0, 186, 1554 172, 201, 3, 210, 214, 203, 3, 0, 294, 0, 1555 294, 0, 0, 0, 39, 46, 44, 159, 162, 129, 1556 0, 169, 294, 129, 129, 0, 173, 0, 0, 694, 1557 211, 212, 213, 0, 202, 3, 204, 3, 294, 219, 1558 232, 149, 170, 155, 129, 236, 185, 180, 178, 174, 1559 157, 129, 0, 695, 0, 0, 0, 0, 150, 171, 1560 181, 175, 179, 178, 176, 3, 3, 0, 0, 495, 1561 177, 205, 207, 3, 3, 206, 208 1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 1459 2, 644, 451, 641, 545, 545, 649, 478, 291, 2, 1460 583, 584, 0, 595, 596, 0, 2, 738, 741, 118, 1461 291, 0, 2, 706, 292, 710, 701, 702, 708, 0, 1462 2, 2, 666, 545, 749, 615, 545, 545, 749, 545, 1463 629, 545, 545, 680, 433, 663, 545, 545, 671, 678, 1464 291, 428, 292, 0, 0, 291, 716, 292, 721, 749, 1465 713, 291, 718, 749, 291, 291, 291, 0, 118, 0, 1466 18, 2, 0, 19, 0, 458, 747, 0, 0, 464, 1467 238, 0, 291, 0, 0, 0, 543, 567, 571, 573, 1468 603, 606, 610, 613, 566, 605, 0, 281, 656, 0, 1469 291, 274, 0, 0, 0, 0, 272, 2, 0, 256, 1470 534, 291, 0, 0, 291, 2, 362, 382, 371, 0, 1471 0, 376, 370, 748, 0, 0, 395, 0, 292, 3, 1472 413, 3, 417, 416, 589, 0, 529, 291, 60, 3, 1473 291, 432, 292, 3, 426, 427, 2, 0, 0, 0, 1474 483, 303, 291, 479, 481, 3, 2, 2, 0, 500, 1475 3, 0, 552, 126, 0, 0, 219, 0, 0, 0, 1476 0, 36, 0, 0, 118, 291, 20, 0, 21, 0, 1477 690, 695, 447, 687, 545, 545, 0, 105, 3, 2, 1478 27, 0, 33, 0, 2, 25, 0, 103, 70, 71, 1479 72, 74, 75, 77, 78, 82, 83, 80, 81, 85, 1480 86, 88, 90, 92, 94, 96, 0, 0, 750, 291, 1481 0, 0, 0, 645, 646, 642, 643, 495, 494, 291, 1482 0, 291, 712, 291, 717, 292, 291, 660, 291, 291, 1483 703, 659, 2, 291, 0, 0, 0, 0, 0, 0, 1484 0, 0, 681, 0, 667, 618, 634, 668, 2, 614, 1485 621, 430, 616, 617, 431, 2, 628, 637, 630, 631, 1486 664, 665, 679, 707, 711, 709, 749, 265, 2, 743, 1487 2, 421, 715, 720, 422, 0, 400, 3, 3, 3, 1488 3, 452, 3, 0, 2, 466, 463, 748, 0, 459, 1489 2, 462, 465, 0, 291, 239, 261, 3, 269, 271, 1490 0, 452, 2, 569, 570, 2, 608, 609, 0, 657, 1491 535, 3, 343, 342, 345, 344, 291, 536, 0, 537, 1492 370, 0, 0, 291, 291, 0, 0, 690, 380, 383, 1493 387, 545, 387, 386, 379, 372, 545, 374, 377, 291, 1494 397, 391, 101, 398, 747, 0, 0, 435, 237, 0, 1495 0, 3, 2, 666, 428, 0, 525, 0, 749, 487, 1496 0, 291, 291, 291, 0, 549, 551, 127, 0, 0, 1497 212, 0, 0, 0, 220, 221, 53, 0, 55, 58, 1498 59, 0, 2, 125, 0, 0, 0, 691, 692, 688, 1499 689, 457, 67, 68, 106, 122, 3, 105, 0, 0, 1500 24, 35, 3, 0, 32, 99, 0, 3, 648, 652, 1501 655, 647, 3, 590, 3, 714, 719, 2, 60, 291, 1502 3, 3, 292, 0, 3, 620, 624, 627, 636, 670, 1503 674, 677, 291, 3, 619, 635, 669, 291, 291, 423, 1504 291, 291, 744, 0, 0, 0, 0, 253, 0, 101, 1505 0, 3, 3, 0, 460, 0, 456, 0, 0, 242, 1506 291, 0, 0, 126, 0, 0, 0, 0, 0, 126, 1507 0, 0, 105, 105, 18, 2, 0, 0, 3, 128, 1508 129, 2, 140, 130, 131, 132, 133, 134, 135, 142, 1509 144, 0, 0, 0, 282, 291, 291, 545, 0, 538, 1510 291, 373, 375, 0, 389, 691, 384, 388, 385, 378, 1511 382, 365, 396, 0, 577, 2, 662, 661, 0, 667, 1512 2, 480, 482, 502, 3, 510, 511, 0, 2, 506, 1513 3, 3, 0, 0, 554, 219, 0, 0, 0, 219, 1514 0, 0, 118, 694, 698, 700, 693, 747, 105, 0, 1515 3, 659, 39, 3, 37, 34, 0, 3, 98, 100, 1516 0, 2, 650, 651, 0, 0, 291, 0, 0, 0, 1517 3, 636, 0, 2, 622, 623, 2, 638, 2, 672, 1518 673, 0, 0, 60, 0, 3, 3, 3, 3, 408, 1519 407, 411, 2, 2, 746, 745, 119, 0, 0, 0, 1520 0, 3, 461, 3, 0, 240, 143, 3, 292, 291, 1521 0, 0, 0, 0, 2, 0, 188, 0, 186, 0, 1522 0, 0, 0, 0, 0, 0, 545, 118, 0, 148, 1523 145, 291, 0, 0, 264, 276, 3, 3, 544, 611, 1524 366, 381, 394, 291, 263, 291, 0, 513, 490, 291, 1525 0, 0, 489, 504, 0, 0, 0, 213, 0, 222, 1526 56, 2, 696, 697, 0, 123, 120, 0, 0, 0, 1527 0, 0, 23, 0, 653, 291, 578, 262, 722, 723, 1528 724, 0, 675, 291, 291, 291, 3, 3, 0, 683, 1529 0, 0, 0, 0, 291, 291, 3, 542, 119, 468, 1530 0, 0, 243, 292, 0, 0, 0, 0, 291, 189, 1531 187, 184, 0, 190, 0, 0, 0, 0, 194, 197, 1532 195, 191, 0, 192, 126, 35, 141, 139, 241, 0, 1533 0, 415, 419, 418, 0, 507, 2, 508, 2, 509, 1534 503, 291, 225, 0, 223, 0, 225, 291, 31, 121, 1535 2, 42, 2, 40, 38, 28, 26, 3, 725, 3, 1536 3, 3, 0, 0, 682, 684, 625, 639, 266, 2, 1537 405, 3, 404, 0, 470, 467, 126, 0, 0, 126, 1538 3, 0, 126, 185, 0, 2, 2, 206, 196, 0, 1539 0, 0, 137, 0, 572, 612, 2, 0, 0, 2, 1540 226, 0, 0, 214, 0, 3, 0, 0, 0, 0, 1541 0, 0, 685, 686, 291, 0, 469, 149, 0, 0, 1542 2, 162, 126, 151, 0, 179, 0, 126, 0, 2, 1543 153, 0, 2, 0, 2, 2, 2, 193, 32, 291, 1544 512, 514, 505, 0, 0, 0, 0, 0, 3, 3, 1545 654, 626, 640, 676, 409, 126, 155, 158, 0, 157, 1546 161, 3, 164, 163, 0, 126, 181, 126, 3, 0, 1547 291, 0, 291, 0, 2, 0, 2, 136, 2, 227, 1548 228, 0, 224, 215, 699, 0, 0, 150, 0, 0, 1549 160, 230, 165, 2, 232, 180, 0, 183, 169, 198, 1550 3, 207, 211, 200, 3, 0, 291, 0, 291, 0, 1551 0, 0, 43, 41, 156, 159, 126, 0, 166, 291, 1552 126, 126, 0, 170, 0, 0, 690, 208, 209, 210, 1553 0, 199, 3, 201, 3, 291, 216, 229, 146, 167, 1554 152, 126, 233, 182, 177, 175, 171, 154, 126, 0, 1555 691, 0, 0, 0, 0, 147, 168, 178, 172, 176, 1556 175, 173, 3, 3, 0, 0, 491, 174, 202, 204, 1557 3, 3, 203, 205 1562 1558 }; 1563 1559 … … 1565 1561 static const yytype_int16 yydefgoto[] = 1566 1562 { 1567 -1, 81 7, 468, 301, 47, 134, 135, 302, 303, 304,1568 305, 76 5, 766, 1143, 1144, 306, 381, 308, 309, 310,1563 -1, 813, 468, 301, 47, 134, 135, 302, 303, 304, 1564 305, 761, 762, 1133, 1134, 306, 381, 308, 309, 310, 1569 1565 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1570 103 8, 518, 982, 546, 322, 983, 952, 1065, 1541, 1067,1571 106 8, 1069, 1070, 1542, 1071, 1072, 1458, 1459, 1420, 1421,1572 14 22, 1520, 1521, 1525, 1526, 1561, 1562, 1073, 1378, 1074,1573 10 75, 1312, 1313, 1314, 1502, 1076, 146, 958, 959, 960,1574 13 98, 1482, 1494, 1495, 469, 470, 879, 880, 1046, 51,1566 1030, 518, 975, 546, 322, 976, 947, 1057, 1518, 1059, 1567 1060, 1061, 1062, 1519, 1063, 1064, 1437, 1438, 1401, 1402, 1568 1403, 1497, 1498, 1502, 1503, 1538, 1539, 1065, 1361, 1066, 1569 1067, 1298, 1299, 1300, 1480, 1068, 146, 953, 954, 955, 1570 1381, 1461, 1472, 1473, 469, 470, 874, 875, 1038, 51, 1575 1571 52, 53, 54, 55, 347, 159, 58, 59, 60, 61, 1576 1572 62, 349, 64, 65, 265, 67, 68, 275, 351, 352, 1577 1573 71, 72, 73, 74, 119, 76, 205, 354, 120, 79, 1578 121, 81, 82, 455, 83, 454, 68 9, 690, 691, 913,1579 10 94, 914, 84, 85, 458, 456, 697, 859, 860, 357,1580 358, 700, 701, 702, 359, 360, 361, 362, 466, 340,1581 136, 137, 522, 324, 171, 64 6, 647, 648, 649, 650,1582 86, 122, 88, 489, 490, 9 44, 491, 278, 495, 325,1583 89, 138, 139, 90, 13 35, 1116, 1117, 1118, 1119, 91,1584 92, 71 8, 93, 274, 94, 95, 188, 1040, 680, 412,1574 121, 81, 82, 455, 83, 454, 688, 689, 690, 908, 1575 1086, 909, 84, 85, 458, 456, 696, 855, 856, 857, 1576 858, 699, 700, 701, 359, 360, 361, 362, 466, 340, 1577 136, 137, 522, 324, 171, 645, 646, 647, 648, 649, 1578 86, 122, 88, 489, 490, 939, 491, 278, 495, 325, 1579 89, 138, 139, 90, 1321, 1108, 1109, 1110, 1111, 91, 1580 92, 717, 93, 274, 94, 95, 188, 1032, 679, 412, 1585 1581 126, 96, 501, 502, 503, 189, 269, 191, 192, 193, 1586 1582 270, 99, 100, 101, 102, 103, 104, 105, 196, 197, 1587 198, 199, 200, 82 9, 605, 606, 607, 608, 201, 610,1588 611, 612, 572, 573, 574, 575, 75 4, 106, 614, 615,1589 616, 617, 618, 619, 9 75, 756, 757, 758, 595, 365,1590 366, 367, 368, 326, 165, 108, 109, 110, 370, 69 5,1583 198, 199, 200, 825, 605, 606, 607, 608, 201, 610, 1584 611, 612, 572, 573, 574, 575, 751, 106, 614, 615, 1585 616, 617, 618, 619, 968, 753, 754, 755, 595, 365, 1586 366, 367, 368, 326, 165, 108, 109, 110, 370, 694, 1591 1587 569 1592 1588 }; … … 1594 1590 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1595 1591 STATE-NUM. */ 1596 #define YYPACT_NINF -131 51592 #define YYPACT_NINF -1310 1597 1593 static const yytype_int16 yypact[] = 1598 1594 { 1599 5006, 8237, -1315, 89, -1315, -1315, -1315, -1315, -1315, -1315, 1600 -1315, 194, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1601 -1315, -1315, -1315, -1315, -1315, -1315, 314, 314, 314, 792, 1602 787, 234, 7780, 219, -1315, -1315, -1315, -1315, -1315, 257, 1603 -1315, -1315, -1315, 912, 264, -1315, -1315, -1315, -1315, 6920, 1604 -1315, -1315, -1315, -1315, 120, 272, -1315, 823, -1315, -1315, 1605 -1315, -1315, 302, 1619, 420, 112, 3706, -1315, -1315, 9405, 1606 1262, -1315, -1315, -1315, 675, 440, 7333, 1133, 1444, 675, 1607 1669, -1315, -1315, 482, 771, -1315, 675, 1807, -1315, 386, 1608 -1315, 507, 517, -1315, -1315, -1315, -1315, 426, 272, 314, 1609 -1315, 314, -1315, -1315, -1315, -1315, 8871, 823, -1315, -1315, 1610 823, -1315, 415, -1315, 8985, -1315, -1315, 1777, 9099, -1315, 1611 428, 428, 428, -1315, -1315, -1315, 314, -1315, -1315, -1315, 1612 454, 468, 490, -1315, -1315, -1315, 500, -1315, -1315, -1315, 1613 -1315, -1315, 504, 509, -1315, -1315, 76, 8833, 2235, 669, 1614 439, 450, 519, 522, 537, 567, 8121, 7182, 529, 581, 1615 -1315, 9443, -1315, -1315, -1315, -1315, 595, -1315, 216, 3771, 1616 3771, -1315, 603, 313, -1315, -1315, -1315, -1315, 605, 316, 1617 320, 345, 314, 589, -1315, -1315, 1619, 2809, 664, -1315, 1618 49, -1315, 314, 314, 272, -1315, -1315, 87, -1315, 314, 1619 314, -1315, 3249, 632, 636, 428, 7093, -1315, -1315, 646, 1620 6920, -1315, -1315, 675, -1315, -1315, -1315, 272, -1315, 823, 1621 120, -1315, 7972, -1315, 428, 428, 428, 272, -1315, 792, 1622 -1315, 5155, -1315, -1315, 635, 428, -1315, 428, -1315, 257, 1623 8833, -1315, 657, -1315, 787, 660, 428, -1315, 792, 679, 1624 704, -1315, 7780, 574, -1315, -1315, -1315, 9296, -1315, -1315, 1625 6389, -1315, 664, 74, 5169, 9099, 1777, 3249, -1315, 97, 1626 -1315, -1315, 8985, 823, 708, 9849, -1315, -1315, 539, -1315, 1627 10667, 680, 762, 10451, 751, 10470, 10528, -1315, 764, -1315, 1628 -1315, -1315, -1315, 10547, 10547, 8605, 778, -1315, -1315, -1315, 1629 -1315, -1315, -1315, 801, -1315, 969, 2181, 8947, 10470, -1315, 1630 339, 731, 846, 265, 890, 795, 797, 810, 836, 33, 1631 -1315, -1315, 812, 497, -1315, 59, -1315, -1315, 2235, -1315, 1632 -1315, 588, 835, -1315, 622, 835, 847, 257, -1315, -1315, 1633 863, 8871, -1315, 854, 878, 9061, -1315, -1315, 765, 1714, 1634 8320, 7093, 675, -1315, 675, 428, 428, -1315, -1315, -1315, 1635 -1315, -1315, -1315, 428, 8871, 823, -1315, -1315, 9213, 843, 1636 -1315, 8757, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 886, 1637 3575, 10470, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1638 -1315, -1315, -1315, -1315, -1315, -1315, 1777, -1315, 793, 865, 1639 884, 894, 869, 902, 905, 909, 2809, -1315, -1315, 918, 1640 120, 935, -1315, -1315, 927, -1315, -1315, -1315, 9296, -1315, 1641 -1315, -1315, -1315, -1315, 3249, -1315, 8833, 8833, -1315, 428, 1642 1777, 7213, 823, 8393, -1315, -1315, -1315, -1315, 9296, 74, 1643 -1315, -1315, 675, 272, -1315, -1315, 9296, -1315, 6557, -1315, 1644 -1315, 428, 428, 295, 9519, 937, 942, 934, 955, 428, 1645 -1315, -1315, -1315, -1315, 9927, -1315, 540, 6680, -1315, 272, 1646 963, -1315, 1777, 10749, 5888, -1315, -1315, -1315, -1315, 899, 1647 3249, -1315, 8466, 664, 7663, -1315, -1315, -1315, 1232, 551, 1648 812, 787, 9849, 591, 8985, -1315, 9849, -1315, -1315, -1315, 1649 -1315, 576, -1315, 980, 762, 283, 8605, -1315, 9699, -1315, 1650 -1315, 8605, -1315, 8719, 8605, -1315, -1315, 987, -1315, 599, 1651 996, 706, 999, -1315, -1315, 6048, 6769, -1315, 137, -1315, 1652 -1315, 6053, -1315, 286, 6053, -1315, -1315, -1315, -1315, -1315, 1653 -1315, -1315, -1315, -1315, -1315, -1315, 5169, -1315, -1315, 10470, 1654 10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470, 10470, 1655 10470, 10470, 10470, 10470, 10470, 10470, 10470, 4672, 5169, -1315, 1656 497, 1307, -1315, -1315, 314, 314, -1315, -1315, 8833, -1315, 1657 -1315, 927, 574, -1315, 927, 10393, -1315, -1315, -1315, 9329, 1658 6769, 1002, 1007, -1315, 9099, -1315, -1315, 595, -1315, 1019, 1659 941, 1024, 1647, 103, 812, -1315, 314, 314, 812, 133, 1660 -1315, 314, 314, 927, -1315, -1315, 314, 314, -1315, 835, 1661 9781, 823, 10894, 412, 469, 9781, -1315, 6389, -1315, 812, 1662 -1315, 8871, -1315, 191, 5383, 5383, 5383, 823, -1315, 4873, 1663 979, 513, 886, 151, 1028, 1030, -1315, 1036, 3771, 531, 1664 -1315, 1124, 823, 5383, 574, 1777, 574, 664, 782, 835, 1665 -1315, -1315, 802, 835, -1315, -1315, -1315, 762, -1315, 835, 1666 272, 9927, -1315, 606, 1050, 616, 1051, -1315, 1052, 272, 1667 -1315, -1315, 9296, 272, 1054, 9699, 1053, -1315, 1508, -1315, 1668 360, 367, 787, -1315, 787, 1056, 10470, -1315, 787, 10894, 1669 -1315, -1315, 1059, -1315, -1315, -1315, 574, -1315, 10822, 878, 1670 -1315, 5383, 769, 8320, -1315, -1315, 595, 1057, 1058, 1232, 1671 3288, -1315, -1315, 9849, -1315, -1315, 1065, -1315, -1315, 1066, 1672 -1315, 1065, 1064, 10667, 5169, 121, 1034, 100, 1074, 1071, 1673 1075, 778, 1072, 1078, -1315, 1080, 1082, 9557, 6889, -1315, 1674 5169, -1315, 706, 2222, -1315, -1315, -1315, 314, 314, 5021, 1675 5169, 1079, -1315, -1315, 886, 619, -1315, 5169, -1315, -1315, 1676 971, -1315, -1315, -1315, -1315, 339, 339, 731, 731, 846, 1677 846, 846, 846, 265, 265, 890, 795, 797, 810, 836, 1678 10470, 975, -1315, 9927, 1084, 1086, 1087, 1307, -1315, -1315, 1679 -1315, -1315, -1315, 9927, 639, 5383, -1315, 8871, -1315, 7302, 1680 9175, -1315, 8757, 7182, -1315, -1315, 941, 9927, 923, 1093, 1681 1097, 1098, 1101, 1104, 1109, 1110, -1315, 3448, 1647, -1315, 1682 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1683 -1315, -1315, -1315, -1315, -1315, -1315, 927, -1315, -1315, -1315, 1684 812, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1111, 1685 -1315, 1115, 1116, -1315, -1315, 120, 1079, 4873, -1315, -1315, 1686 -1315, 3575, 1113, -1315, -1315, -1315, -1315, -1315, 787, 6479, 1687 1200, -1315, -1315, -1315, -1315, 1100, 120, -1315, -1315, 927, 1688 -1315, -1315, 927, 146, 927, -1315, -1315, -1315, -1315, -1315, 1689 -1315, 9481, -1315, 272, -1315, -1315, 380, 387, 9213, 7422, 1690 1947, 10470, 2081, -1315, -1315, 1121, 77, 1121, -1315, 787, 1691 -1315, 314, -1315, -1315, 9630, 934, -1315, -1315, -1315, 942, 1692 1122, 1117, -1315, -1315, 1129, 1130, -1315, 769, 2444, -1315, 1693 476, -1315, 3288, 812, -1315, 1135, 9849, 9811, 8833, 1136, 1694 -1315, -1315, 1127, 1137, 1131, -1315, 10470, 134, 293, 1138, 1695 -1315, 1142, 574, 1142, 6769, 5169, -1315, -1315, 1142, 1139, 1696 -1315, 1150, 1152, 1153, 2222, -1315, -1315, -1315, 3575, -1315, 1697 -1315, -1315, -1315, 1156, 5169, 1140, 574, 4873, -1315, 6053, 1698 -1315, 574, -1315, -1315, 5169, -1315, 842, 835, -1315, -1315, 1699 -1315, -1315, -1315, -1315, -1315, 886, 878, 9061, -1315, -1315, 1700 7542, 1163, -1315, 882, 835, -1315, 892, 926, 835, -1315, 1701 428, 4553, -1315, -1315, -1315, 9927, 9927, -1315, 8393, 8393, 1702 -1315, 1161, 1164, 1169, 1172, -1315, 1171, 527, 41, 1079, 1703 -1315, 574, -1315, 3771, -1315, 5169, 423, -1315, 6649, 1175, 1704 1177, 10335, 1178, 1181, 9, 73, 48, 5169, 1182, 272, 1705 5169, 5169, 1132, 1180, 489, 1162, -1315, -1315, -1315, 1184, 1706 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 787, 1707 1183, 5169, -1315, 9927, 9927, 314, 1186, -1315, 9668, -1315, 1708 -1315, 984, -1315, 2081, -1315, -1315, -1315, -1315, 1508, -1315, 1709 -1315, 1188, -1315, -1315, -1315, -1315, 1191, 2444, -1315, -1315, 1710 1185, -1315, 1065, -1315, -1315, 1777, 1194, -1315, -1315, -1315, 1711 640, 1198, -1315, 100, 1201, 10470, 1195, 100, 100, 1213, 1712 1214, -1315, 6048, 959, 835, -1315, -1315, 1036, 5169, 1217, 1713 1156, 654, 46, 1216, -1315, 1214, -1315, 1222, 1216, -1315, 1714 -1315, 1226, -1315, -1315, 927, 1229, 1230, 7062, 1231, 1235, 1715 1237, -1315, -1315, 1242, -1315, -1315, 927, -1315, -1315, -1315, 1716 -1315, 927, 5169, 5169, 878, 1244, -1315, -1315, -1315, -1315, 1717 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 10470, 10470, 1718 1246, 1253, 1216, -1315, -1315, 787, -1315, -1315, -1315, 4813, 1719 9811, 5169, 5169, 1321, 5169, -1315, 1239, -1315, 1247, -1315, 1720 1248, 5169, 1250, 5169, 986, 1252, 81, 314, 9367, 1069, 1721 -1315, -1315, 6479, 1261, 436, -1315, -1315, -1315, -1315, -1315, 1722 -1315, -1315, -1315, -1315, 10153, -1315, 8466, 1268, -1315, -1315, 1723 9811, 437, 451, -1315, 1270, 1271, 762, 1280, -1315, 352, 1724 -1315, -1315, 5169, 1281, -1315, -1315, 927, 1277, -1315, -1315, 1725 1284, 301, 375, 574, 1285, 1288, -1315, 1290, -1315, 9927, 1726 -1315, -1315, -1315, -1315, -1315, 1291, -1315, 9927, 9927, 9927, 1727 -1315, -1315, 1293, -1315, 1295, 1298, 1299, 590, 8088, 8204, 1728 -1315, -1315, 304, -1315, 1302, 1303, -1315, 8539, 652, 671, 1729 1308, 690, 6255, -1315, -1315, -1315, 471, -1315, 711, 1310, 1730 1311, 272, 1363, 1043, -1315, -1315, 5169, -1315, 10335, 6053, 1731 -1315, -1315, -1315, 1317, 1318, -1315, -1315, -1315, 1316, -1315, 1732 -1315, -1315, -1315, -1315, -1315, 9811, 762, 155, -1315, 1300, 1733 762, 1156, 297, 9927, -1315, -1315, -1315, -1315, -1315, -1315, 1734 -1315, -1315, 1314, -1315, -1315, -1315, -1315, -1315, -1315, 1323, 1735 1324, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1329, -1315, 1736 1330, -1315, -1315, 10335, 135, 5169, 10335, -1315, 1333, 5169, 1737 -1315, 281, 1344, 1348, -1315, -1315, 1340, 1343, 1331, -1315, 1738 988, -1315, -1315, -1315, 823, 1777, 1338, 801, 995, 10470, 1739 -1315, 713, 1349, 5169, -1315, 574, 574, 1350, 1355, 1356, 1740 1358, -1315, -1315, 8393, 1359, -1315, 1430, 10470, 1360, -1315, 1741 -1315, 10246, -1315, 722, -1315, 1347, 10335, 1352, -1315, -1315, 1742 1366, -1315, 1370, -1315, 1385, 1386, -1315, 1354, 9811, -1315, 1743 -1315, -1315, 762, 574, 1382, 1364, 1381, -1315, 1389, 1216, 1744 1216, -1315, -1315, -1315, -1315, -1315, 10335, 197, -1315, 1000, 1745 -1315, -1315, 7897, -1315, -1315, 1368, 5169, -1315, 5169, 7897, 1746 272, 9699, 272, 9699, 1391, -1315, 1392, -1315, -1315, 1390, 1747 801, -1315, 776, -1315, -1315, 5169, -1315, 1394, 1395, -1315, 1748 10470, 10470, -1315, -1315, 1077, 85, -1315, -1315, 1372, -1315, 1749 1077, -1315, -1315, 2494, 574, -1315, -1315, 272, 9699, 272, 1750 9699, 1403, 1383, 574, -1315, -1315, -1315, -1315, -1315, 10246, 1751 1401, 1077, 5739, 5169, 10157, 1402, 1077, 1408, 2494, 2404, 1752 -1315, -1315, -1315, 1409, -1315, -1315, -1315, -1315, 8833, -1315, 1753 -1315, -1315, 10024, -1315, 10246, -1315, -1315, 1388, 9931, -1315, 1754 -1315, 10157, 272, 2404, 272, 1413, 1414, 857, -1315, 10024, 1755 -1315, -1315, -1315, 9931, -1315, -1315, -1315, 272, 272, -1315, 1756 -1315, -1315, -1315, -1315, -1315, -1315, -1315 1595 7316, 8697, -1310, 16, -1310, -1310, -1310, -1310, -1310, -1310, 1596 -1310, 22, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1597 -1310, -1310, -1310, -1310, -1310, -1310, 101, 101, 101, 1152, 1598 941, 64, 7548, 141, -1310, -1310, -1310, -1310, -1310, 87, 1599 -1310, -1310, -1310, 868, 134, -1310, -1310, -1310, -1310, 9158, 1600 -1310, -1310, -1310, -1310, 149, 144, -1310, 1337, -1310, -1310, 1601 -1310, -1310, 139, 935, 260, 102, 2892, -1310, -1310, 9196, 1602 790, -1310, -1310, -1310, 904, 293, 5512, 547, 778, 904, 1603 1166, -1310, -1310, 554, 624, -1310, 904, 1343, -1310, 187, 1604 -1310, 308, 336, -1310, -1310, -1310, -1310, 251, 144, 101, 1605 -1310, 101, -1310, -1310, -1310, -1310, 8923, 1337, -1310, -1310, 1606 1337, -1310, 337, -1310, 9043, -1310, -1310, 1053, 9381, -1310, 1607 1729, 1729, 1729, -1310, -1310, -1310, 101, -1310, -1310, -1310, 1608 410, 413, 418, -1310, -1310, -1310, 433, -1310, -1310, -1310, 1609 -1310, -1310, 468, 477, -1310, -1310, 37, 8666, 2607, 742, 1610 369, 496, 509, 523, 530, 535, 8584, 6836, 536, 546, 1611 -1310, 9234, -1310, -1310, -1310, -1310, 561, -1310, 245, 4633, 1612 4633, -1310, 562, 361, -1310, -1310, -1310, -1310, 574, 383, 1613 408, 429, 101, 577, -1310, -1310, 935, 3015, 664, -1310, 1614 86, -1310, 101, 101, 144, -1310, -1310, 89, -1310, 101, 1615 101, -1310, 3541, 634, 653, 1729, 6748, -1310, -1310, 623, 1616 9158, -1310, -1310, 904, -1310, -1310, -1310, 144, -1310, 1337, 1617 149, -1310, 7737, -1310, 1729, 1729, 1729, 144, -1310, 1152, 1618 -1310, 5996, -1310, -1310, 642, 1729, -1310, 1729, -1310, 87, 1619 8666, -1310, 672, -1310, 941, 697, 1729, -1310, 1152, 699, 1620 702, -1310, 7548, 567, -1310, -1310, -1310, 9125, -1310, -1310, 1621 4167, -1310, 664, 10, 5116, 9381, 1053, 3541, -1310, 94, 1622 -1310, -1310, 9043, 1337, 715, 10741, -1310, -1310, 11, -1310, 1623 10483, 740, 772, 10231, 759, 10288, 10307, -1310, 763, -1310, 1624 -1310, -1310, -1310, 10364, 10364, 8440, 765, -1310, -1310, -1310, 1625 -1310, -1310, -1310, 799, -1310, 616, 2256, 8779, 10288, -1310, 1626 475, 860, 810, 276, 913, 766, 767, 793, 832, 41, 1627 -1310, -1310, 807, 704, -1310, 331, -1310, -1310, 2607, -1310, 1628 -1310, 242, 835, -1310, 421, 835, 841, 87, -1310, -1310, 1629 846, 8923, -1310, 847, 857, 8892, -1310, -1310, 1352, 2069, 1630 8155, 6748, 904, -1310, 904, 1729, 1729, -1310, -1310, -1310, 1631 -1310, -1310, -1310, 1729, 8923, 1337, -1310, -1310, 9419, 1457, 1632 -1310, 7886, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 1633 10098, 10288, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1634 -1310, -1310, -1310, -1310, -1310, -1310, 1053, -1310, 928, 862, 1635 891, 893, 1023, 916, 937, 951, 3015, -1310, -1310, 942, 1636 149, 958, -1310, -1310, 970, -1310, -1310, -1310, 9125, -1310, 1637 -1310, -1310, -1310, -1310, 3541, -1310, 8666, 8666, -1310, 1729, 1638 1053, 6867, 1337, 8228, -1310, -1310, -1310, -1310, 9125, 10, 1639 -1310, -1310, 904, 144, -1310, -1310, 9125, -1310, 6513, -1310, 1640 -1310, 1729, 1729, 382, 5342, 969, 972, 960, 1031, 1729, 1641 -1310, -1310, -1310, -1310, 9605, -1310, 450, 6629, -1310, 144, 1642 1033, -1310, 1053, 10565, 10155, -1310, -1310, -1310, -1310, 1039, 1643 3541, -1310, 8301, 664, 7432, -1310, -1310, -1310, 984, 626, 1644 807, 941, 10741, 606, 9043, -1310, 10741, -1310, -1310, -1310, 1645 -1310, 690, -1310, 1044, 772, 255, 8440, -1310, 9457, -1310, 1646 -1310, 8440, -1310, 8553, 8440, -1310, -1310, 1042, -1310, 722, 1647 1047, 818, 1048, -1310, -1310, 9310, 6479, -1310, 321, -1310, 1648 -1310, 5116, -1310, 602, 5116, -1310, -1310, -1310, -1310, -1310, 1649 -1310, -1310, -1310, -1310, -1310, -1310, 5116, -1310, -1310, 10288, 1650 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 1651 10288, 10288, 10288, 10288, 10288, 10288, 10288, 2426, 5116, -1310, 1652 704, 830, -1310, -1310, 101, 101, -1310, -1310, 8666, -1310, 1653 -1310, 970, 567, -1310, 970, 10212, -1310, -1310, -1310, 4524, 1654 6479, 1049, 1054, -1310, 9381, -1310, -1310, 561, -1310, 1056, 1655 774, 1073, 2515, 95, 807, -1310, 101, 101, 807, 98, 1656 -1310, 101, 101, 970, -1310, -1310, 101, 101, -1310, 835, 1657 9490, 1337, 10710, 283, 326, 9490, -1310, 4167, -1310, 807, 1658 -1310, 8923, -1310, 80, 7852, 7852, 7852, 1337, -1310, 4787, 1659 1065, 875, 744, 1066, 1067, -1310, 1070, 4633, 333, -1310, 1660 1134, 1337, 7852, 567, 1053, 567, 664, 494, 835, -1310, 1661 -1310, 584, 835, -1310, -1310, -1310, 772, -1310, 835, 144, 1662 9605, -1310, 737, 1083, 750, 1090, -1310, 1089, 144, -1310, 1663 -1310, 9125, 144, 1088, 9457, 1092, -1310, 1677, -1310, 441, 1664 448, 941, -1310, 941, 1091, 10288, -1310, 941, 10710, -1310, 1665 -1310, 1098, -1310, -1310, -1310, 567, -1310, 10638, 857, -1310, 1666 7852, 853, 8155, -1310, -1310, 561, 1095, 1097, 984, 3316, 1667 -1310, -1310, 10741, -1310, -1310, 1099, -1310, -1310, 1105, -1310, 1668 1099, 1111, 10483, 5116, 62, 1102, 167, 1113, 1121, 1129, 1669 1130, -1310, 1131, 1132, 9348, 6598, -1310, 5116, -1310, 818, 1670 978, -1310, -1310, -1310, 101, 101, 5540, 5116, 1135, -1310, 1671 -1310, 757, -1310, 5116, -1310, -1310, 914, -1310, -1310, -1310, 1672 -1310, 475, 475, 860, 860, 810, 810, 810, 810, 276, 1673 276, 913, 766, 767, 793, 832, 10288, 282, -1310, 9605, 1674 1136, 1137, 1140, 830, -1310, -1310, -1310, -1310, -1310, 9605, 1675 779, 7852, -1310, 8923, -1310, 6955, 9005, -1310, 7886, 6836, 1676 -1310, -1310, 774, 9605, 1063, 1142, 1143, 1145, 1146, 1147, 1677 1148, 1154, -1310, 3759, 2515, -1310, -1310, -1310, -1310, -1310, 1678 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1679 -1310, -1310, 970, -1310, -1310, -1310, 807, -1310, -1310, -1310, 1680 -1310, -1310, -1310, -1310, -1310, 1156, -1310, 1159, 1160, -1310, 1681 -1310, 149, 1135, 4787, -1310, -1310, -1310, 10098, 1157, -1310, 1682 -1310, -1310, -1310, 941, 6225, 1247, -1310, -1310, -1310, -1310, 1683 1150, 149, -1310, -1310, 970, -1310, -1310, 970, 137, 970, 1684 -1310, -1310, -1310, -1310, -1310, -1310, 9272, -1310, 144, -1310, 1685 -1310, 451, 452, 9419, 7074, 2178, 10288, 3429, -1310, -1310, 1686 1149, 39, 1149, -1310, 941, -1310, 101, -1310, -1310, 8073, 1687 960, -1310, -1310, -1310, 972, 1168, 1169, -1310, -1310, 1170, 1688 1172, -1310, 853, 1305, -1310, 359, -1310, 3316, 807, -1310, 1689 1177, 10741, 9528, 8666, 1180, -1310, -1310, 1175, 1182, 1164, 1690 -1310, 10288, 56, 233, 1179, -1310, 1183, 567, 1183, -1310, 1691 -1310, 1183, 1184, -1310, 1189, 1190, 1192, 978, -1310, -1310, 1692 -1310, 10098, -1310, -1310, -1310, -1310, 1188, 5116, 1193, 567, 1693 -1310, 5116, -1310, 567, -1310, -1310, 5116, -1310, 595, 835, 1694 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 857, 8892, 1695 -1310, -1310, 7193, 1196, -1310, 622, 835, -1310, 644, 649, 1696 835, -1310, 1729, 4053, -1310, -1310, -1310, 9605, 9605, -1310, 1697 8228, 8228, -1310, 1194, 1195, 1198, 1199, -1310, 1200, 531, 1698 27, 1135, -1310, 567, -1310, 4633, -1310, 5116, 453, -1310, 1699 6359, 1213, 1217, 10041, 1222, 1223, 43, 49, 106, 5116, 1700 1228, 144, 5116, 5116, 1208, 1237, 142, 1218, -1310, -1310, 1701 -1310, 1236, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1702 -1310, 941, 1249, 5116, -1310, 9605, 9605, 101, 1252, -1310, 1703 8810, -1310, -1310, 987, -1310, 3429, -1310, -1310, -1310, -1310, 1704 1677, -1310, -1310, 1253, -1310, -1310, -1310, -1310, 1254, 1305, 1705 -1310, -1310, 1239, -1310, 1099, -1310, -1310, 1053, 1258, -1310, 1706 -1310, -1310, 806, 1262, -1310, 167, 1267, 10288, 1248, 167, 1707 167, 1273, 9310, 693, 835, -1310, -1310, 1070, 5116, 1274, 1708 1188, 208, 157, 1269, -1310, -1310, 1278, 1269, -1310, -1310, 1709 1282, -1310, -1310, 970, 1286, 1288, 6717, 1287, 1289, 1291, 1710 -1310, -1310, 1290, -1310, -1310, 970, -1310, -1310, -1310, -1310, 1711 970, 5116, 5116, 857, 1292, -1310, -1310, -1310, -1310, -1310, 1712 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 10288, 10288, 1294, 1713 1295, 1269, -1310, -1310, 941, -1310, -1310, -1310, 5073, 9528, 1714 5116, 5116, 1370, 5116, -1310, 1298, -1310, 1299, -1310, 1302, 1715 5116, 1306, 5116, 1123, 1307, 30, 101, 5821, 1435, -1310, 1716 -1310, 6225, 1303, 456, -1310, -1310, -1310, -1310, -1310, -1310, 1717 -1310, -1310, -1310, 9861, -1310, 8301, 1330, -1310, -1310, 9528, 1718 463, 481, -1310, 1328, 1314, 772, 1341, -1310, 306, -1310, 1719 -1310, -1310, -1310, 970, 1332, -1310, -1310, 1342, 753, 834, 1720 567, 1345, -1310, 1350, -1310, 9605, -1310, -1310, -1310, -1310, 1721 -1310, 1351, -1310, 9605, 9605, 9605, -1310, -1310, 1359, -1310, 1722 1362, 1365, 1366, 557, 7925, 8040, -1310, -1310, 420, -1310, 1723 1368, 1371, -1310, 8374, 815, 844, 1346, 866, 6094, -1310, 1724 -1310, -1310, 485, -1310, 888, 1369, 1375, 144, 1417, 1051, 1725 -1310, -1310, 5116, -1310, 10041, 5116, -1310, -1310, -1310, 1377, 1726 1379, -1310, -1310, -1310, 1376, -1310, -1310, -1310, -1310, -1310, 1727 -1310, 9528, 772, 195, -1310, 1353, 772, 9605, -1310, -1310, 1728 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1729 -1310, -1310, 1384, 1388, -1310, -1310, -1310, -1310, -1310, -1310, 1730 -1310, 1394, -1310, 1397, -1310, -1310, 10041, 217, 5116, 10041, 1731 -1310, 1400, 5116, -1310, 289, 1421, 1423, -1310, -1310, 1403, 1732 1415, 1393, -1310, 1001, -1310, -1310, -1310, 1337, 1053, 1412, 1733 799, 323, 10288, -1310, 953, -1310, 567, 567, 1418, 1425, 1734 1426, 1428, -1310, -1310, 8228, 1427, -1310, 1497, 10288, 1420, 1735 -1310, -1310, 9953, -1310, 955, -1310, 1419, 10041, 1424, -1310, 1736 -1310, 1442, -1310, 1445, -1310, 1461, 1462, -1310, 1430, 9528, 1737 -1310, -1310, -1310, 772, 567, 1453, 1436, 1459, 1269, 1269, 1738 -1310, -1310, -1310, -1310, -1310, 10041, 204, -1310, 370, -1310, 1739 -1310, 3684, -1310, -1310, 1439, 5116, -1310, 5116, 3684, 144, 1740 9457, 144, 9457, 1463, -1310, 1465, -1310, -1310, 1464, 799, 1741 -1310, 968, -1310, -1310, -1310, 1460, 1466, -1310, 10288, 10288, 1742 -1310, -1310, 1075, 122, -1310, -1310, 1444, -1310, 1075, -1310, 1743 -1310, 2191, 567, -1310, -1310, 144, 9457, 144, 9457, 1472, 1744 1450, 567, -1310, -1310, -1310, -1310, 9953, 1469, 1075, 7664, 1745 5116, 9865, 1470, 1075, 1479, 2191, 3509, -1310, -1310, -1310, 1746 1482, -1310, -1310, -1310, -1310, 8666, -1310, -1310, -1310, 9732, 1747 -1310, 9953, -1310, -1310, 1468, 9644, -1310, -1310, 9865, 144, 1748 3509, 144, 1484, 1486, 976, -1310, 9732, -1310, -1310, -1310, 1749 9644, -1310, -1310, -1310, 144, 144, -1310, -1310, -1310, -1310, 1750 -1310, -1310, -1310, -1310 1757 1751 }; 1758 1752 … … 1760 1754 static const yytype_int16 yypgoto[] = 1761 1755 { 1762 -131 5, 4470, 3041, -1315, 39, -1315, 2507, 957, -207, -1315,1763 461, -523, -489, -955, -200, 5636, 0, -1315, 72, 572,1764 58 0, 245, 566, 964, 967, 968, 966, 976, -1315, 1601,1765 - 609, 5067, -949, -1315, -712, -938, 430, -728, 512, -1315,1766 1697, -1315, 311, -1200, -1315, -1315, 43, -1315, -1142, -1154,1767 154, -1315, -1315, -1315, -1315, -26, -1161, -1315, -1315, -1315,1768 -131 5, -1315, -1315, 231, -1202, 53, -1315, -908, -1315, 416,1769 2 05, -1315, 78, -1315, -367, -1315, -1315, -1315, 470, -824,1770 -131 5, -1315, 13, -940, 465, 2639, -1315, -1315, -1315, -107,1771 -131 5, 102, 269, -201, 1635, 4179, -1315, -1315, 5, 449,1772 756, -259, 1489, -1315, 1725, -1315, -1315, 52, 2057, -1315,1773 2 147, 612, -1315, -1315, -1315, -616, -1315, 866, 867, 456,1774 631, 158, -1315, -1315, -1315, 858, 633, -514, -1315, -544,1775 - 359, 1913, -1315, -1315, -928, -991, 1380, 1398, 990, 324,1776 -131 5, 171, 457, -332, -192, -147, 584, 695, -1315, 919,1777 -131 5, 2794, 1328, -442, 850, -1315, -1315, 625, -1315, -238,1778 -131 5, -94, -1315, -1315, -1315, -1246, 330, -1315, -1315, -1315,1779 1 091, -1315, 35, -1315, -1315, -834, -97, -1314, -130, 1985,1780 -131 5, 3026, -1315, 844, -1315, -170, 1212, -183, -173, -167,1781 7, -35, -3 4, -33, 936, 18, 55, 61, -143, -159,1782 -1 56, -153, -151, -323, -535, -528, -526, -542, -318, -520,1783 -131 5, -1315, -512, 1006, 1009, 1011, 2067, 4895, -560, -543,1784 -5 38, -536, -484, -1315, -481, -740, -737, -736, -586, -304,1785 - 339, -1315, -1315, 856, 707, -88, -1315, 3848, 29, -599,1786 -2 911756 -1310, 4585, 3220, -1310, 1680, -1310, 79, 965, -162, -1310, 1757 542, -525, -472, -928, -58, 5006, 0, -1310, 115, 571, 1758 588, 220, 578, 1041, 1045, 1037, 1040, 1043, -1310, 682, 1759 -568, 4467, -949, -1310, -743, 627, -136, -680, 399, -1310, 1760 364, -1310, 400, -1052, -1310, -1310, 143, -1310, -1280, -1058, 1761 249, -1310, -1310, -1310, -1310, 74, -1199, -1310, -1310, -1310, 1762 -1310, -1310, -1310, 317, -1213, 36, -1310, -398, -1310, 501, 1763 296, -1310, 175, -1310, -322, -1310, -1310, -1310, 558, -827, 1764 -1310, -1310, 14, -963, 60, 1949, -1310, -1310, -1310, -66, 1765 -1310, 19, 1219, -202, 1852, 4238, -1310, -1310, 54, 75, 1766 689, -242, 1416, -1310, 1975, -1310, -1310, 158, 2131, -1310, 1767 2701, 1038, -1310, -1310, -1310, -621, -1310, 944, 946, 541, 1768 713, -254, -1310, -1310, -1310, 938, 714, -169, -1310, -117, 1769 -134, 1167, -1310, -1310, -857, -878, 837, 910, 1055, 25, 1770 -1310, 900, 597, -39, -190, -145, 668, 773, -1310, 993, 1771 -1310, 2728, 1561, -434, 920, -1310, -1310, 708, -1310, -238, 1772 -1310, 241, -1310, -1310, -1310, -1226, 414, -1310, -1310, -1310, 1773 1165, -1310, 35, -1310, -1310, -830, -111, -1309, -151, 3288, 1774 -1310, 3069, -1310, 921, -1310, -170, 169, -182, -181, -166, 1775 7, -35, -33, -32, 813, 2, 29, 44, -122, -165, 1776 -164, -158, -153, -314, -519, -491, -490, -538, -301, -501, 1777 -1310, -1310, -512, 1078, 1084, 1085, 2540, 5063, -571, -588, 1778 -558, -543, -557, -1310, -503, -733, -723, -722, -570, -311, 1779 -274, -1310, -1310, 240, 176, -77, -1310, 3991, 136, -632, 1780 -222 1787 1781 }; 1788 1782 … … 1790 1784 positive, shift that token. If negative, reduce the rule which 1791 1785 number is the opposite. If YYTABLE_NINF, syntax error. */ 1792 #define YYTABLE_NINF -52 51786 #define YYTABLE_NINF -521 1793 1787 static const yytype_int16 yytable[] = 1794 1788 { 1795 49, 114, 453, 399, 428, 69, 953, 98, 150, 151, 1796 152, 770, 971, 400, 115, 972, 973, 407, 261, 401, 1797 268, 498, 383, 384, 743, 628, 604, 402, 440, 632, 1798 403, 609, 49, 404, 848, 405, 1148, 69, 1182, 98, 1799 755, 596, 831, 148, 408, 1078, 1140, 980, 872, 49, 1800 726, 670, 77, 50, 731, 1077, 162, 823, 410, 798, 1801 830, 153, 824, 187, 825, 819, 210, 144, 342, 49, 1802 194, 679, 820, 217, 821, 505, 227, 924, 167, 683, 1803 822, 1206, 220, 399, 77, 50, 1192, 928, 31, 1396, 1804 861, 861, 861, 400, 674, 676, 177, 407, 154, 401, 1805 1180, 1181, 63, 1460, 155, 425, 114, 402, 1198, 861, 1806 403, 1215, 1216, 404, 114, 405, 31, 267, 272, 834, 1807 1210, 863, 864, 714, 408, 841, 31, 281, 566, -234, 1808 -234, 1261, 475, 477, 63, 447, 31, 1188, 409, 882, 1809 203, 1207, 31, 167, 1316, 1208, 177, 307, 148, 177, 1810 471, 150, 151, 152, 460, 162, 114, 345, 253, 1262, 1811 411, 210, 730, 567, 1189, 721, 1211, 861, 373, 577, 1812 971, 123, 31, 972, 973, 578, 327, 1460, 715, 1417, 1813 1418, 745, 292, 476, 819, 282, 187, 187, 411, 1258, 1814 204, 820, 1479, 821, 162, 177, 419, 936, 411, 724, 1815 -234, 142, 267, 527, 153, 1209, 481, 918, 411, 111, 1816 49, 956, 832, 1317, 601, 1245, 527, 162, 668, 1249, 1817 41, 42, 210, 111, 1197, 140, 141, 169, 527, 443, 1818 145, 150, 151, 152, 41, 42, 665, 527, 954, 436, 1819 307, 154, 839, 1125, 601, 1182, 802, 155, 762, 1419, 1820 808, 170, 49, 588, 242, 245, 1085, 69, 177, 98, 1821 272, 861, 868, 666, 1399, 272, 267, 267, 1024, 327, 1822 117, 1506, 114, 823, 162, 862, 862, 862, 824, 1464, 1823 825, 819, 1150, 342, 609, 999, 1023, 463, 820, 1088, 1824 821, 1002, 857, 1490, 862, 307, 1011, 735, 1182, 657, 1825 476, 436, 1092, 124, 77, 50, 1535, 307, 1537, 77, 1826 665, 471, 177, 835, 1341, 903, 596, 838, 160, 177, 1827 1189, 596, 568, 571, 1548, 1417, 1418, 672, 148, 1212, 1828 1101, 471, 377, 677, 834, 373, 167, 666, 855, 471, 1829 1519, 114, 858, 143, 1559, 345, 1524, 1124, 378, 602, 1830 620, 1563, 862, 31, 63, 556, 557, 510, 111, 472, 1831 1180, 1181, 1198, 1549, 625, 527, 147, 1544, 625, 41, 1832 42, 114, 1551, 111, 598, 259, 156, 1464, 831, 547, 1833 548, 178, 1464, 160, 41, 42, 172, 177, 1078, 714, 1834 1564, 558, 559, 736, 823, 1428, 267, 768, 1077, 824, 1835 737, 825, 1464, 1126, 177, 684, 187, -122, 177, 1464, 1836 1127, 578, 1346, 373, 1403, 457, 323, 547, 182, -122, 1837 -122, 848, 1182, 202, 267, 339, 307, 307, -122, 387, 1838 267, 262, 390, 625, 263, -122, 392, 342, 8, 9, 1839 10, 11, 12, -290, 715, 388, 862, 111, 391, 70, 1840 1449, 1450, 393, 547, 114, 327, 327, 549, 41, 42, 1841 893, 394, 1339, 550, 551, 56, 116, 31, 1004, 1340, 1842 77, 177, 267, 808, 498, 430, 919, 395, 1379, 434, 1843 267, 70, 625, 921, 49, 1455, 1348, 373, 720, 69, 1844 77, 98, 920, 1136, 114, 34, 919, 56, 77, 922, 1845 1146, 873, 248, 921, 1112, 1022, 307, 251, 114, 323, 1846 609, 307, 1089, 307, 307, 213, 1247, -520, 915, 1090, 1847 472, 753, 1198, 327, 851, 114, 345, 886, 852, 1198, 1848 957, 211, 1168, 1170, 221, 253, 77, 50, 1257, 1195, 1849 472, 434, 327, 439, 488, 917, 264, 1024, 472, 330, 1850 714, 645, 1195, 1330, 111, 1196, 140, 239, 884, 1027, 1851 331, 287, 808, -10, 521, 41, 42, 1332, 1322, 1331, 1852 571, 571, 41, 42, 1377, 471, 160, -443, 307, 1290, 1853 1291, 853, 1198, 1333, 712, 854, 63, 750, 853, 625, 1854 345, 240, 1108, -469, 620, 810, 241, 483, 514, -444, 1855 602, 933, 602, 1380, 500, 715, 570, 327, 411, 277, 1856 587, 874, 1136, 279, 593, 45, 46, 918, 280, 1022, 1857 625, 772, 773, 774, -469, 625, -469, 620, 177, 332, 1858 -469, 625, 333, 626, 625, 625, 625, 630, 1496, -105, 1859 339, 371, 875, -105, 643, 1496, 111, 334, 876, 849, 1860 705, 1427, 1109, 625, 598, 267, 706, 41, 42, 342, 1861 177, 722, 725, 111, 729, 140, 141, 723, 493, 1179, 1862 494, 442, 178, 1035, 41, 42, 177, 335, 215, 2, 1863 207, 4, 5, 6, 7, 114, 732, 441, 912, 629, 1864 372, 177, 733, 633, 1082, 323, 323, 579, 1545, 411, 1865 727, 70, 1365, 596, 376, 728, 1366, 107, 107, 749, 1866 1120, 625, 938, 620, 389, 750, 897, 56, 385, 720, 1867 720, 397, 750, 688, 1042, 519, 899, 399, 409, 988, 1868 215, 582, 750, 411, 77, 989, 117, 400, 1498, 107, 1869 1499, 426, 407, 401, 35, 427, 36, 114, 345, 1001, 1870 1243, 402, 753, 753, 403, 706, 578, 404, 432, 405, 1871 77, 488, 1373, 323, -122, 488, -122, 450, 750, 408, 1872 -122, -367, 177, 215, -396, 521, 107, 521, 253, 329, 1873 521, 1374, 323, 521, 472, -122, -122, 750, 971, 504, 1874 1444, 972, 973, 808, 339, 1546, 1390, 571, 714, 213, 1875 1376, 779, 780, 781, 782, 625, 750, 625, 1457, 1007, 1876 472, 461, 625, 345, 869, 752, 602, 411, 810, 1172, 1877 342, 1381, 484, 1445, 45, 46, 230, 750, 602, 1442, 1878 231, 979, 1465, 235, 215, 237, 462, 37, 750, 175, 1879 176, 40, 246, 111, 292, 140, 141, 323, 41, 42, 1880 712, 552, 553, 715, 41, 42, 673, 675, 806, 111, 1881 508, 140, 141, 923, 130, 925, 131, 132, 133, 457, 1882 41, 42, 215, 513, 372, 41, 42, 215, 937, 307, 1883 601, 1517, 1457, 527, 69, 244, 1512, 45, 46, 847, 1884 525, 887, 1513, 411, 593, 37, 1193, 175, 176, 40, 1885 856, 625, 253, 329, 411, 164, 41, 42, 114, 345, 1886 912, 890, 912, 411, 562, 37, 957, 175, 176, 40, 1887 957, 957, 213, 665, 114, 563, 41, 42, 915, 1368, 1888 565, 77, 715, 70, 554, 555, 519, 938, 938, 564, 1889 177, 519, 720, 568, 519, 850, 338, 114, 307, 56, 1890 666, 1152, 376, 411, 688, 917, -440, 48, 113, 107, 1891 1113, 865, 215, 738, 345, 739, 589, 1569, 740, 230, 1892 164, 746, 586, 578, 753, 658, 881, 327, 419, 661, 1893 411, 63, 560, 561, 37, 163, 113, 113, 40, 48, 1894 -3, 1164, 488, 411, 659, 41, 42, 791, 638, 195, 1895 48, 1167, 218, 601, 660, 228, 48, 345, 481, 329, 1896 411, 712, 662, 37, 48, 663, 339, 40, 1238, 664, 1897 48, 43, 1531, 48, 41, 42, 48, 667, 625, 625, 1898 45, 46, 832, 329, 601, 1169, 849, 601, 258, 1337, 1899 113, 113, 645, 215, 1309, 1310, 1311, 669, 307, 1047, 1900 816, 693, 601, 1200, 528, 529, 530, 500, 694, 45, 1901 46, 1347, 1349, 1350, 48, 696, 435, 48, 1254, 698, 1902 411, 442, 1136, 1095, 48, 1095, 1003, -238, 531, 547, 1903 532, 806, 533, 534, 163, 215, 992, 989, 114, 734, 1904 1097, 750, 994, 912, 329, 411, -12, 374, 912, 747, 1905 77, 1386, 1387, 1437, 989, 48, 751, 938, 230, 759, 1906 235, 1442, 1443, 48, 811, 267, 1491, 1492, 48, 812, 1907 510, 1417, 1418, 163, 775, 776, 783, 784, 435, 1397, 1908 342, 815, 625, 1397, 777, 778, 826, 2, 207, 4, 1909 5, 6, 7, 48, 48, -13, 163, 870, 213, 645, 1910 472, 523, 871, 878, 528, 529, 530, 345, 444, 48, 1911 898, 900, 213, 164, 901, 908, 955, 48, 905, -417, 1912 806, 926, -524, 941, 950, 948, 48, 339, 531, 48, 1913 532, 723, 533, 1319, 961, 963, 113, 962, 966, 965, 1914 967, 107, 968, 688, 996, 984, 997, 998, 230, 272, 1915 114, 113, 35, 1013, 36, 113, 215, 1014, 1015, 48, 1916 113, 1016, 97, 220, 1017, 488, 1115, 323, 114, 1018, 1917 1019, 1030, 307, 48, 48, -405, -404, 69, 1044, 1079, 1918 48, 1081, 1102, 1103, 215, 1480, 625, 48, 911, 215, 1919 114, 1104, 1105, 750, 97, 1111, 1121, 1122, 1123, 1217, 1920 1047, 1132, 1141, 1113, 1128, 149, 978, 177, 213, 712, 1921 1133, 97, 1134, 1135, 374, -3, 2, 207, 4, 5, 1922 6, 7, 1138, 1162, 77, 190, 847, 1183, 97, 1185, 1923 1184, 97, 1186, 1187, 1201, 48, 1202, 1204, 625, 625, 1924 1205, 1213, 1218, 1225, 1220, 229, 1230, 272, 1440, -3, 1925 1557, 1235, 307, 1233, 37, 48, 48, 1200, 40, 1239, 1926 692, 215, 1244, 1246, 493, 41, 42, 8, 9, 10, 1927 11, 12, 48, 1251, 63, 215, 48, 1248, 70, 1259, 1928 1252, 35, 1263, 36, 1266, 114, 1268, 644, 712, 1270, 1929 1271, 719, 374, 1272, 56, 399, 31, 1273, 1113, 1274, 1930 45, 46, 1276, 48, 77, 400, 1283, 688, 1292, 407, 1931 97, 401, 523, 48, 523, 1293, 1296, 523, 1300, 402, 1932 523, 1303, 403, 97, 34, 404, 1321, 405, 1328, 1304, 1933 1305, 48, 1307, 665, 1315, 1334, 408, 48, 1336, 48, 1934 1338, 1066, 1344, 1342, 216, 267, 1345, 1351, 398, 190, 1935 1352, 806, 1353, 1355, 472, 1361, 1530, 1362, 1363, 1364, 1936 666, 243, 1114, 625, 1371, 1372, 570, 1375, 411, 1382, 1937 1383, 215, 97, 1311, 113, 45, 46, 1391, 1392, 48, 1938 1393, 1403, 1400, 177, 97, 1411, 1412, 48, 114, -406, 1939 1430, 48, 1415, 1426, 1432, 48, 216, -291, 113, 1434, 1940 113, 1113, 1435, 1441, 8, 9, 10, 11, 12, 442, 1941 1451, 1446, 114, 1436, 97, 1452, 1453, 1200, 1454, 114, 1942 644, 114, 1456, 114, 1200, 1366, 1470, 1461, 479, 1466, 1943 1472, 1474, 1476, 31, 1468, 113, 1478, 339, 644, 216, 1944 113, 644, 1483, 150, 151, 152, 1484, 70, 1485, 1486, 1945 1497, 1507, 1509, 1529, 1523, 1511, 1515, 1516, 114, 1115, 1946 114, 34, 1538, 56, 77, 1539, 1543, 1550, 1552, 1554, 1947 1560, 77, 114, 1567, 1568, 1219, 785, 1200, 1529, 1529, 1948 786, 788, 787, 1320, 1518, 1429, 162, 1570, 307, 113, 1949 97, 692, 789, 1385, 1250, 1401, 48, 1500, 1096, 1224, 1950 216, 906, 907, 1529, 1232, 214, 929, 48, 1100, 48, 1951 373, 603, 1137, 1203, 472, 233, 1043, 327, 877, 1110, 1952 1329, 472, 804, 943, 77, 717, 794, 951, 48, 795, 1953 37, 796, 184, 185, 40, 0, 107, 0, 216, 0, 1954 0, 41, 42, 216, 48, 0, 0, 0, 0, 0, 1955 113, 0, 0, 0, 1115, 0, 0, 214, 0, 48, 1956 0, 113, 48, 113, 0, 0, 0, 910, 190, 411, 1957 0, 0, 215, 0, 472, 911, 45, 46, 0, 0, 1958 0, 1298, 1299, 0, 1301, 66, 118, 0, 0, 0, 1959 0, 1306, 0, 1308, 0, 48, 0, 0, 213, 113, 1960 214, 113, 0, 0, 107, 113, 0, 8, 9, 10, 1961 11, 12, 0, 113, 211, 221, 0, 66, 0, 0, 1962 0, 70, -292, 0, 0, 0, 48, 48, 216, 8, 1963 9, 10, 11, 12, 161, 0, 31, 56, 0, 0, 1964 48, 37, 0, 184, 185, 40, 97, 0, 0, 0, 1965 603, 0, 41, 42, 222, 1114, 0, 1115, 31, 0, 1966 0, 214, 0, 0, 34, 0, 0, 0, 1439, 37, 1967 0, 184, 185, 40, 0, 75, 0, 0, 186, 0, 1968 41, 42, 0, 0, 1066, 0, 34, 45, 46, 0, 1969 1503, 260, 1503, 0, 0, 0, 442, 0, 0, 214, 1970 0, 70, 174, 0, 214, 107, 600, 75, 601, 216, 1971 0, 0, 441, 0, 0, 45, 46, 56, 0, 499, 1972 0, 0, 0, 48, 0, 0, 0, 1503, 0, 1503, 1973 692, 0, 0, 328, 0, 48, 37, 0, 184, 185, 1974 40, 260, 350, 0, 223, 254, 0, 41, 42, 0, 1975 1114, 216, 0, 0, 0, 1423, 0, 323, 0, 0, 1976 -293, 215, 818, 0, 603, 0, 0, 8, 9, 10, 1977 11, 12, 406, 600, 0, 601, 0, 0, 644, 0, 1978 1389, 0, 45, 46, 0, 113, 0, 424, 0, 214, 1979 429, 431, 0, 0, 703, 161, 31, 0, 0, 37, 1980 0, 184, 185, 40, 0, 0, 0, 0, 48, 0, 1981 41, 42, 704, 0, 0, 0, 448, 48, 0, 48, 1982 451, 0, 452, 0, 34, 0, 113, 0, 0, 0, 1983 0, 459, 353, 0, 0, 1416, 266, 66, 1424, 0, 1984 0, 417, 473, 0, 0, 45, 46, 0, 0, 48, 1985 916, 0, 480, 1114, 0, 0, 0, 107, 0, 215, 1986 431, 70, 0, 0, 437, 0, 0, 0, 70, 113, 1987 214, 0, 216, 0, 445, 0, 0, 56, 0, 107, 1988 0, 818, 603, 1463, 56, 644, 0, 214, 1467, 0, 1989 0, 0, 0, 113, 692, 0, 644, 107, 113, 0, 1990 216, 0, 0, 0, 0, 216, 449, 0, 0, 0, 1991 0, 0, 214, 0, 0, 0, 0, 0, 1489, 0, 1992 0, 70, 0, 0, 0, 0, 260, 75, 0, 0, 1993 594, 0, 75, 0, 0, 0, 622, 56, 0, 0, 1994 0, 0, 520, 0, 0, 0, 0, 0, 113, 627, 1995 0, 0, 0, 627, 0, 0, 260, 0, 0, 107, 1996 0, 125, 128, 129, 0, 0, 0, 0, 0, 37, 1997 0, 184, 185, 40, 0, 0, 0, 216, 818, 0, 1998 41, 42, 0, 0, 0, 0, 113, 0, 0, 0, 1999 603, 216, 107, 0, 0, 0, 0, 0, 0, 0, 2000 48, 703, 0, 473, 1558, 48, 910, 78, 411, 0, 2001 1558, 0, 0, 0, 0, 45, 46, 0, 350, 704, 2002 0, 1558, 48, 473, 0, 1558, 223, 0, 0, 0, 2003 0, 473, 0, 214, 255, 0, 256, 0, 0, 78, 2004 0, 8, 9, 10, 11, 12, 0, 0, 0, 699, 2005 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 2006 0, 214, 0, 0, 0, 0, 214, 713, 0, 66, 2007 31, 0, 1091, 0, 916, 0, 224, 431, 0, 0, 2008 0, 431, 0, 0, 0, 0, 0, 216, 0, 0, 2009 681, 0, 0, 75, 0, 107, 0, 80, 34, 0, 2010 0, 0, 113, 37, 603, 184, 185, 40, 353, 0, 2011 260, 350, 0, 75, 41, 42, 707, 396, 0, 107, 2012 0, 75, 0, 703, 0, 48, 107, 415, 416, 80, 2013 0, 0, 420, 703, 422, 423, 0, 0, 214, 353, 2014 910, 704, 411, 0, 0, 0, 0, 703, 0, 45, 2015 46, 704, 214, 520, 0, 0, 797, 353, 520, 75, 2016 0, 520, 0, 0, 355, 704, 225, 0, 113, 113, 2017 113, 0, 499, 0, 627, 809, 0, 0, 0, 107, 2018 0, 0, 8, 9, 10, 11, 12, 828, 0, 0, 1789 49, 114, 453, 428, 399, 400, 268, 98, 150, 766, 1790 151, 152, 819, 973, 868, 115, 964, 407, 752, 63, 1791 401, 402, 403, 358, 383, 384, 965, 966, 404, 261, 1792 440, 827, 49, 405, 596, 604, 50, 410, 498, 98, 1793 357, 740, 820, 148, 1070, 153, 830, 1069, 609, 49, 1794 844, 63, 837, 948, 69, 1137, 162, 821, 725, 794, 1795 56, 116, 730, 187, 826, 408, 210, 144, 50, 49, 1796 194, 919, 154, 217, 409, 70, 227, 1187, 31, 342, 1797 112, 815, 178, 220, 399, 400, 69, 155, 281, 1439, 1798 628, 425, 56, 1302, 632, 1379, 669, 407, 123, 818, 1799 401, 402, 403, 1204, 1205, 1181, 114, 70, 404, 816, 1800 817, 475, 477, 405, 114, 1195, 678, 267, 272, 476, 1801 505, 1197, 1443, 1177, 682, 31, 211, 923, 31, 221, 1802 203, 124, 262, 31, 31, 263, 566, 31, 527, 493, 1803 31, 213, 494, 1171, 527, 408, 282, 307, 148, 1178, 1804 411, 150, 145, 151, 152, 162, 114, 345, 77, 519, 1805 1439, 210, 1303, 1169, 1170, 1117, -231, -231, 373, 97, 1806 567, 714, 964, 143, 720, 1196, 107, 107, 1199, 1245, 1807 204, 1198, 965, 966, 913, 167, 187, 187, 153, 476, 1808 77, 471, 949, 1458, 162, 253, 147, 411, 419, 815, 1809 411, 97, 267, 481, 828, 411, 601, 835, 107, 601, 1810 49, 568, 149, 1186, 287, 154, 1443, 162, 97, 527, 1811 667, 1443, 210, 1200, 819, 41, 42, 816, 817, 443, 1812 155, 150, 190, 151, 152, 97, 664, -231, 97, 1484, 1813 307, 1443, 1248, 1139, 439, 107, 156, 1077, 1443, 292, 1814 167, 514, 49, 1016, 820, 182, 169, 830, 172, 98, 1815 272, 1398, 1399, 202, 588, 272, 267, 267, 723, 821, 1816 1249, 63, 114, 1512, 162, 1514, 472, 527, 951, 1080, 1817 170, 991, 441, 327, 665, 656, 1015, 463, 50, 164, 1818 672, 674, 1093, 815, 342, 307, -287, 442, 483, 358, 1819 1468, 609, 1526, 248, 1382, 500, 69, 307, 251, 596, 1820 664, 1003, 56, 671, 596, 804, 357, 97, -119, 676, 1821 -119, 816, 817, 571, -119, 1187, 1178, 70, 148, 1541, 1822 97, 1400, 465, 1398, 1399, 373, -516, 527, 1084, -119, 1823 -119, 114, 734, 1118, 819, 345, 436, 1171, 713, 602, 1824 620, 579, 471, 411, 164, 398, 190, 853, 665, 898, 1825 253, 377, 827, 1119, 625, 735, 556, 557, 625, 1201, 1826 519, 114, 471, 178, 820, 519, 327, 378, 519, 97, 1827 471, 1070, 831, 1116, 1069, 736, 834, 673, 675, 821, 1828 629, 97, 358, 111, 633, 847, 267, 1171, 747, 848, 1829 510, 558, 559, 1409, 41, 42, 187, 851, 436, 357, 1830 77, 854, 986, 373, 1496, 77, 1325, 1169, 1170, 174, 1831 1501, 97, 547, 548, 267, 213, 307, 307, 107, 844, 1832 267, 787, 759, 625, 714, 479, 1326, 472, 849, 1423, 1833 1521, 577, 850, 167, 870, 1528, 642, 578, 342, 1525, 1834 435, 1157, 1159, 1424, 114, 729, 358, 472, 1428, 1429, 1835 547, 1362, 254, 871, 1126, 472, 859, 860, 264, 1536, 1836 447, 849, 267, 357, 742, 1100, 1540, 387, 1187, 330, 1837 267, 598, 625, 877, 49, 1187, 1469, 373, 719, 460, 1838 498, 98, 683, 388, 114, 1244, 547, 97, 578, 390, 1839 1470, 711, 869, 63, 888, 881, 307, 1104, 114, 1135, 1840 1014, 307, 435, 307, 307, 391, 1171, 910, 603, -10, 1841 50, 750, -440, 609, 392, 114, 345, -441, 1016, 996, 1842 582, -467, 411, -467, 804, 523, 1187, 1434, 69, 798, 1843 393, 931, 277, 879, 56, 394, 112, 164, 213, 1236, 1844 -467, 2, 207, 4, 5, 6, 7, 914, 417, 70, 1845 704, 395, 327, 327, 916, 912, 705, 914, 916, 1184, 1846 571, 571, 1184, 915, 952, 190, 77, 279, 307, 1316, 1847 917, 437, 1126, 1081, 1082, 1185, 280, 913, 1308, 625, 1848 345, 445, 549, 714, 620, 1317, 77, 1318, 550, 551, 1849 602, 747, 602, 882, 77, 411, 331, 760, 1360, 1276, 1850 1277, 713, 765, 1319, 1474, 471, 35, 1363, 36, 332, 1851 625, 1474, 804, 1014, 1019, 625, 111, 620, 140, 239, 1852 327, 625, 994, 333, 625, 625, 625, 41, 42, 111, 1853 334, 928, 77, -102, 806, 335, 846, -102, 371, 327, 1854 41, 42, 625, 97, 267, 372, 1087, 603, 1087, 520, 1855 107, 465, 861, 240, 768, 769, 770, 342, 241, 1348, 1856 376, 1027, 1522, 1349, 111, 358, 876, 385, 111, -3, 1857 140, 141, 1408, 389, 114, 41, 42, 907, 596, 41, 1858 42, 1074, 357, 885, 691, 411, 111, 442, 140, 141, 1859 472, 528, 529, 530, 1141, 1112, 411, 41, 42, 397, 1860 625, 933, 620, 764, 327, 726, 1101, 1234, 719, 719, 1861 727, 1238, 1034, 399, 400, 531, 472, 532, 409, 533, 1862 534, 1153, 878, 411, 880, 432, 721, 407, 244, 401, 1863 402, 403, 722, 426, 114, 345, 523, 404, 523, 750, 1864 750, 523, 405, 1156, 523, 601, 845, 500, 1158, 230, 1865 601, 598, 427, 231, 711, 1476, 235, 1477, 237, 814, 1866 713, 603, 964, 213, 450, 246, 775, 776, 777, 778, 1867 1373, -288, 965, 966, 927, 408, -364, 213, 8, 9, 1868 10, 11, 12, 571, 2, 207, 4, 5, 6, 7, 1869 731, 625, 1241, 625, 411, 999, 732, 680, 625, 345, 1870 1161, -393, 602, 570, 1425, 411, 111, 31, 140, 141, 1871 1523, 45, 46, 229, 602, 111, 342, 41, 42, 484, 1872 1436, 461, 746, 706, 462, 714, 41, 42, 747, 77, 1873 8, 9, 10, 11, 12, 34, 37, 892, 804, 504, 1874 40, 253, 329, 747, 292, 864, 911, 41, 42, 35, 1875 894, 36, 163, 806, 1330, 77, 747, 980, 508, 31, 1876 520, 972, 513, 981, 307, 520, 195, 525, 520, 218, 1877 213, 527, 228, 812, 562, 601, 1168, 814, 603, 993, 1878 1182, 45, 46, 63, 563, 705, 625, 34, 554, 555, 1879 1494, 1436, 230, 114, 345, 907, 111, 907, 2, 207, 1880 4, 5, 6, 7, 714, 664, 1232, 41, 42, 114, 1881 910, 564, 578, 711, 691, 1356, 565, 749, 69, 411, 1882 142, 747, 933, 933, 56, 45, 46, 719, 568, 570, 1883 37, 411, 114, 307, 40, 1332, 338, 45, 46, 70, 1884 -437, 41, 42, 952, 1357, 586, 1105, 952, 952, 589, 1885 747, 163, 932, 665, 601, 48, 113, 750, 912, -3, 1886 45, 46, 657, 35, 374, 36, 1359, 43, 1508, 552, 1887 553, 814, 747, 242, 245, 45, 46, 638, 8, 9, 1888 10, 11, 12, 603, 113, 113, 1227, 48, 1364, 345, 1889 163, 658, 1106, 659, 747, 560, 561, 37, 48, 184, 1890 185, 40, 713, 111, 48, 140, 141, 31, 41, 42, 1891 625, 625, 48, 163, 41, 42, 661, 1126, 48, 984, 1892 981, 48, 77, 890, 48, 444, 1121, 253, 329, 411, 1893 307, 230, 897, 235, 186, 34, 899, 662, 113, 113, 1894 107, 666, 45, 46, 1284, 1285, 37, 1287, 1132, 472, 1895 40, 663, 1132, 1426, 1292, 1444, 1294, 41, 42, 1423, 1896 668, 747, 48, 1323, 1083, 48, 911, 442, 1490, 327, 1897 114, 258, 48, 692, 1491, 907, 1546, 749, 693, 411, 1898 907, 695, 578, 718, 1189, 45, 46, 329, 411, 933, 1899 56, 45, 46, 737, 215, 738, 603, 267, 739, 1369, 1900 1370, 743, 1132, 48, 547, 70, 1418, 981, 107, 1398, 1901 1399, 48, 625, 771, 772, 37, 48, 184, 185, 40, 1902 342, 230, 419, 660, 411, 845, 41, 42, 779, 780, 1903 1351, 374, 773, 774, 457, 697, 345, -235, 481, 329, 1904 411, 48, 48, 733, 744, 510, 215, 748, 756, 691, 1905 1380, 807, 266, 873, 1380, 711, 808, 48, 811, -289, 1906 45, 46, 828, 329, 601, 48, 8, 9, 10, 11, 1907 12, 1295, 1296, 1297, 48, 822, 867, 48, 272, 114, 1908 1331, 1333, 1334, 893, 113, -12, -13, 866, 77, 215, 1909 895, 896, 900, 220, 903, 31, 921, 114, -414, 113, 1910 -520, 307, 936, 113, 943, 722, 107, 48, 113, 374, 1911 117, 945, 1404, 956, 130, 625, 131, 132, 133, 114, 1912 63, 48, 48, 34, 950, 41, 42, 957, 48, 958, 1913 959, 960, 961, 1105, 711, 48, 988, 989, 211, 221, 1914 990, 977, 1005, 1006, 911, 1007, 1008, 1009, 1010, 911, 1915 215, 1459, 1079, 213, 1011, 69, 1022, 1421, 160, -402, 1916 -401, 56, 1036, 1058, 625, 625, 1071, 1534, 1094, 906, 1917 644, 1073, 1096, 272, 1097, 1095, 70, 1103, 307, 1106, 1918 1113, 747, 1114, 48, 1115, 1120, 1122, 971, 215, 1123, 1919 1124, 702, 1125, 215, 1128, 1131, 1151, 472, 1174, 1175, 1920 1172, 1173, 1176, 48, 48, 8, 9, 10, 11, 12, 1921 691, 114, 1190, 399, 400, 259, 1191, 1132, 1132, 1132, 1922 48, 1193, 1194, 160, 48, 1105, 407, 1202, 1206, 401, 1923 402, 403, 1189, 441, 31, 643, -290, 404, 56, 1207, 1924 1209, -3, 405, 8, 9, 10, 11, 12, 442, 1214, 1925 664, 48, 1219, 70, 1224, 107, 323, 493, 1222, 77, 1926 1507, 48, 34, 1228, 703, 339, 1233, 922, 267, 1235, 1927 1237, 1106, 31, 1240, 408, 1250, 1246, 107, 215, 48, 1928 1252, 724, 1254, 728, 625, 48, 1256, 48, 1257, 1258, 1929 1262, 1259, 1420, 1260, 1269, 107, 1278, 1279, 665, 37, 1930 34, 175, 176, 40, 932, 1203, 601, 1286, 1307, 114, 1931 41, 42, 45, 46, 37, 430, 175, 176, 40, 434, 1932 1289, 1290, 113, 1105, 1291, 41, 42, 48, 1293, 1301, 1933 1314, 114, 1192, 1320, 1322, 48, 77, 1328, 114, 48, 1934 114, 1324, 114, 48, 1329, 1358, 113, 1335, 113, 323, 1935 472, 372, 1336, 1338, 107, 1132, 1132, 472, 985, 215, 1936 150, 1344, 151, 152, 1345, 1346, 1347, 1297, 1365, 1106, 1937 1354, 1506, 214, 1355, 1366, 1383, 114, 1374, 114, 1375, 1938 1376, 434, 233, 113, 488, 1189, 1392, 107, 113, 114, 1939 1393, 56, 1189, 1460, -403, 1506, 1506, 702, 56, 1396, 1940 1407, 215, 1415, 162, 521, 307, 70, 1411, 472, 1413, 1941 528, 529, 530, 70, 1416, 1417, 160, 1422, 1430, 37, 1942 1506, 175, 176, 40, 214, 1431, 1432, 373, 1433, 1435, 1943 41, 42, 865, 1349, 531, 1029, 532, 113, 533, 1305, 1944 1440, 1445, 1449, 1189, 48, 1451, 1447, 1453, 1455, 56, 1945 587, 1509, 1457, 1462, 593, 48, 376, 48, 1463, 1464, 1946 1517, 1475, 1492, 1485, 70, 1487, 1500, 214, 1493, 1489, 1947 703, 1515, 1516, 626, 1520, 1527, 48, 630, 922, 1529, 1948 339, 918, 1531, 920, 1544, 107, 1545, 457, 1208, 77, 1949 1537, 783, 48, 781, 1130, 784, 77, 113, 782, 785, 1950 1058, 1306, 1495, 1410, 1547, 1368, 48, 107, 113, 48, 1951 113, 1239, 1384, 1478, 107, 1088, 702, 216, 901, 1213, 1952 902, 1221, 215, 922, 1092, 924, 702, 800, 214, 1127, 1953 1035, 872, 938, 1315, 243, 323, 323, 1102, 790, 716, 1954 702, 327, 48, 946, 791, 792, 113, 77, 113, 0, 1955 215, 1367, 113, 0, 0, 215, 0, 0, 1138, 0, 1956 113, 0, 0, 687, 479, 107, 214, 0, 0, 216, 1957 0, 214, 0, 48, 48, 0, 117, 0, 0, 0, 1958 1482, 0, 1482, 0, 0, 0, 499, 48, 0, 703, 1959 0, 0, 0, 1372, 0, 0, 0, 0, 0, 703, 1960 0, 488, 0, 323, 0, 488, 0, 0, 0, 1029, 1961 0, 0, 216, 703, 0, 521, 1482, 521, 1482, 0, 1962 521, 0, 323, 521, 0, 0, 215, 177, 0, 8, 1963 9, 10, 11, 12, 339, 0, 0, 0, 0, 37, 1964 215, 184, 185, 40, 0, 1397, 0, 0, 1405, 0, 1965 41, 42, 0, 0, 0, 0, 214, 644, 31, 0, 1966 0, 0, 0, 1039, 0, 0, 0, 48, 0, 0, 1967 0, 0, 0, 216, 0, 0, 905, 177, 411, 48, 1968 177, 0, 0, 0, 45, 46, 34, 323, 0, 922, 1969 0, 1442, 0, 0, 0, 0, 1446, 906, 802, 0, 1970 0, 0, 0, 1479, 1089, 1483, 0, 0, 0, 0, 1971 0, 216, 0, 0, 0, 0, 216, 0, 0, 0, 1972 0, 0, 643, 0, 1467, 0, 177, 891, 113, 843, 1973 0, 0, 0, 215, 593, 0, 0, 214, 0, 1511, 1974 852, 1513, 66, 118, 702, 702, 0, 0, 0, 922, 1975 922, 48, 0, 0, 214, 0, 0, 0, 0, 0, 1976 48, 644, 48, 0, 0, 0, 0, 0, 0, 113, 1977 0, 0, 0, 0, 66, 0, 0, 0, 0, 214, 1978 0, 0, 0, 1542, 0, 1543, 0, 0, 0, 177, 1979 0, 161, 48, 687, 0, 0, 0, 0, 1550, 1551, 1980 0, 216, 702, 702, 0, 0, 0, 0, 1535, 0, 1981 0, 222, 113, 0, 1535, 0, 0, 703, 703, 0, 1982 0, 0, 0, 0, 0, 1535, 643, 0, 0, 1535, 1983 0, 488, 0, 0, 113, 0, 0, 0, 113, 57, 1984 57, 0, 0, 177, 0, 0, 987, 0, 260, 0, 1985 177, 0, 0, 339, 0, 0, 992, 0, 0, 0, 1986 0, 1039, 0, 0, 0, 75, 0, 0, 0, 0, 1987 1004, 57, 0, 0, 0, 703, 703, 0, 0, 0, 1988 0, 0, 216, 0, 0, 0, 0, 0, 113, 0, 1989 328, 0, 0, 0, 0, 0, 0, 75, 260, 350, 1990 214, 0, 0, 0, 0, 57, 0, 0, 57, 0, 1991 0, 0, 995, 0, 0, 0, 0, 802, 177, 0, 1992 0, 0, 0, 0, 216, 0, 113, 0, 214, 406, 1993 215, 0, 0, 214, 223, 177, 0, 0, 0, 177, 1994 48, 0, 0, 0, 424, 48, 0, 429, 431, 0, 1995 1312, 0, 161, 0, 922, 0, 0, 0, 0, 0, 1996 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 1997 922, 0, 0, 448, 1282, 0, 0, 451, 0, 452, 1998 0, 0, 702, 0, 0, 0, 0, 0, 459, 0, 1999 702, 702, 702, 0, 66, 0, 348, 0, 0, 473, 2000 0, 0, 177, 0, 214, 802, 0, 0, 0, 480, 2001 0, 0, 339, 0, 0, 0, 0, 431, 214, 0, 2002 0, 78, 353, 1313, 0, 0, 0, 0, 687, 0, 2003 0, 37, 0, 184, 185, 40, 0, 0, 499, 113, 2004 922, 922, 41, 42, 0, 216, 0, 0, 0, 0, 2005 488, 1107, 323, 78, 702, 703, 0, 0, 0, 0, 2006 0, 57, 48, 703, 703, 703, 0, 0, 600, 0, 2007 601, 0, 0, 216, 1166, 1167, 45, 46, 216, 0, 2008 0, 0, 0, 260, 0, 0, 0, 594, 0, 0, 2009 224, 57, 0, 622, 0, 0, 449, 0, 0, 0, 2010 0, 0, 0, 113, 113, 113, 627, 0, 843, 0, 2011 627, 214, 0, 260, 0, 0, 215, 75, 0, 0, 2012 0, 0, 75, 0, 0, 0, 0, 703, 0, 0, 2013 0, 0, 1216, 1217, 0, 0, 0, 0, 0, 0, 2014 37, 0, 184, 185, 40, 0, 0, 0, 0, 216, 2015 0, 41, 42, 37, 0, 184, 185, 40, 0, 177, 2016 473, 0, 0, 216, 41, 42, 0, 0, 0, 0, 2017 0, 0, 0, 0, 0, 350, 0, 905, 355, 411, 2018 473, 0, 0, 0, 0, 45, 46, 0, 473, 687, 2019 1505, 177, 411, 0, 0, 0, 0, 0, 45, 46, 2020 0, 0, 0, 0, 0, 0, 698, 177, 0, 431, 2021 0, 215, 0, 0, 0, 0, 223, 0, 0, 0, 2022 0, 177, 0, 0, 712, 0, 66, 0, 0, 0, 2023 0, 802, 48, 48, 431, 0, 0, 0, 431, 0, 2024 0, 113, 113, 535, 536, 537, 538, 539, 540, 541, 2025 542, 543, 544, 0, 0, 0, 216, 0, 0, 0, 2026 0, 0, 0, 0, 0, 0, 0, 260, 350, 0, 2027 0, 0, 348, 78, 0, 0, 0, 545, 78, 113, 2028 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 2029 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 2030 0, 0, 177, 75, 0, 0, 0, 0, 214, 0, 2031 0, 75, 1337, 793, 0, 0, 339, 0, 0, 0, 2032 1339, 1340, 1341, 57, 0, 0, 0, 0, 0, 353, 2033 0, 627, 805, 0, 0, 0, 48, 113, 1107, 0, 2034 0, 0, 0, 0, 824, 0, 113, 353, 0, 75, 2035 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2036 48, 48, 594, 0, 0, 348, 0, 594, 0, 0, 2037 0, 0, 224, 627, 0, 0, 350, 350, 350, 0, 2038 0, 0, 286, 0, 1385, 48, 0, 0, 287, 0, 2039 0, 353, 288, 0, 350, 289, 290, 291, 292, 41, 2040 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2041 0, 0, 698, 0, 0, 8, 9, 10, 11, 12, 2042 0, 0, 0, 473, 0, 295, 0, 379, 0, 348, 2043 1107, 0, 0, 45, 46, 297, 298, 299, 300, 78, 2044 0, 0, 0, 0, 31, 0, 786, 0, 0, 473, 2045 0, 0, 350, 216, 355, 353, 0, 0, 0, 78, 2046 0, 937, 0, 0, 431, 0, 177, 78, 0, 0, 2047 0, 0, 34, 348, 348, 348, 0, 37, 0, 184, 2048 185, 40, 0, 0, 0, 355, 260, 712, 41, 42, 2049 0, 348, 967, 0, 214, 0, 0, 0, 0, 353, 2050 353, 353, 0, 355, 0, 78, 0, 8, 9, 10, 2051 11, 12, 0, 0, 600, 0, 601, 353, 0, 0, 2052 0, 0, 45, 46, 0, 0, 0, 0, 1107, 0, 2053 0, 698, 0, 0, 0, 353, 31, 0, 0, 0, 2054 0, 698, 0, 350, 0, 627, 75, 355, 1002, 348, 2055 627, 805, 0, 0, 0, 698, 0, 0, 0, 1481, 2056 0, 1481, 0, 0, 34, 1013, 0, 0, 0, 37, 2057 0, 0, 75, 40, 0, 353, 0, 0, 0, 0, 2058 41, 42, 0, 0, 0, 0, 0, 0, 0, 214, 2059 0, 80, 0, 0, 0, 1481, 0, 1481, 0, 0, 2060 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2061 353, 355, 0, 0, 45, 46, 66, 0, 87, 0, 2062 413, 0, 0, 80, 323, 0, 0, 421, 0, 0, 2063 0, 0, 0, 0, 0, 0, 0, 0, 627, 216, 2064 348, 0, 0, 0, 0, 260, 712, 0, 348, 1085, 2065 87, 0, 0, 0, 353, 355, 355, 355, 0, 0, 2066 225, 0, 0, 0, 353, 0, 353, 0, 0, 0, 2067 0, 223, 0, 355, 353, 1099, 0, 0, 353, 0, 2068 0, 0, 0, 431, 118, 0, 0, 226, 0, 0, 2069 0, 355, 0, 0, 0, 0, 0, 0, 0, 413, 2070 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 2071 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 2072 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 2073 0, 355, 0, 0, 216, 0, 0, 0, 0, 75, 2074 0, 594, 0, 0, 0, 0, 0, 0, 356, 0, 2075 0, 0, 0, 576, 429, 0, 0, 0, 0, 698, 2076 698, 580, 350, 350, 583, 0, 355, 0, 0, 353, 2077 0, 0, 0, 0, 0, 363, 0, 177, 0, 0, 2078 0, 57, 1188, 0, 0, 206, 2, 207, 4, 5, 2079 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2080 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2081 355, 0, 26, 27, 28, 0, 0, 698, 698, 0, 2082 355, 31, 355, 0, 0, 0, 0, 224, 413, 0, 2083 355, 0, 421, 0, 355, 0, 0, 0, 0, 0, 2084 0, 0, 0, 80, 0, 0, 0, 0, 80, 34, 2085 0, 35, 0, 36, 37, 0, 208, 39, 40, 348, 2086 348, 0, 0, 0, 627, 41, 42, 0, 0, 0, 2087 87, 0, 0, 0, 0, 87, 0, 0, 0, 57, 2088 0, 0, 353, 353, 0, 353, 353, 0, 712, 0, 2089 0, 43, 0, 209, 0, 78, 0, 0, 0, 45, 2090 46, 0, 0, 0, 0, 75, 0, 0, 0, 413, 2019 2091 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2020 0, 353, 0, 0, 0, 594, 0, 413, 0, 0, 2021 594, 31, 0, 0, 421, 0, 627, 0, 0, 350, 2022 350, 350, 0, 0, 31, 0, 644, 0, 535, 536, 2023 537, 538, 539, 540, 541, 542, 543, 544, 350, 34, 2024 0, 0, 0, 0, 0, 0, 0, 927, 214, 0, 2025 0, 0, 34, 0, 356, 916, 699, 37, 0, 78, 2026 916, 40, 545, 0, 78, 353, 0, 473, 41, 42, 2027 0, 0, 0, 0, 0, 0, 0, 1504, 0, 1504, 2028 0, 752, 0, 411, 0, 0, 413, 0, 216, 0, 2029 45, 46, 0, 473, 43, 0, 350, 0, 0, 0, 2030 0, 48, 48, 45, 46, 942, 0, 0, 431, 353, 2031 353, 353, 113, 113, 1504, 0, 1504, 895, 0, 0, 2032 0, 0, 0, 0, 0, 0, 902, 0, 353, 0, 2033 904, 0, 260, 713, 0, 0, 0, 0, 974, 0, 2034 576, 993, 0, 0, 0, 0, 353, 0, 580, 80, 2035 113, 583, 0, 0, 80, 703, 703, 75, 224, 0, 2036 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 2037 0, 0, 0, 704, 704, 0, 0, 0, 699, 0, 2038 0, 0, 0, 75, 0, 0, 353, 0, 699, 0, 2039 350, 0, 627, 31, 0, 1010, 0, 627, 809, 0, 2040 0, 0, 699, 0, 8, 9, 10, 11, 12, 0, 2041 48, 113, 1021, 703, 703, 413, 0, 0, 1037, 421, 2042 113, 34, 0, 353, 0, 78, 37, 0, 184, 185, 2043 40, 704, 704, 31, 0, 48, 48, 41, 42, 0, 2044 355, 0, 0, 0, 0, 78, 0, 0, 225, 214, 2045 0, 0, 0, 78, 0, 0, 0, 0, 112, 0, 2046 48, 34, 927, 1528, 66, 411, 0, 0, 353, 0, 2047 0, 355, 45, 46, 0, 0, 0, 216, 353, 0, 2048 353, 0, 0, 0, 0, 223, 627, 0, 353, 355, 2049 0, 78, 353, 260, 713, 0, 413, 1093, 0, 0, 2050 0, 0, 0, 937, 0, 601, 0, 927, 0, 799, 2051 800, 0, 45, 46, 0, 80, 37, 0, 184, 185, 2052 40, 0, 0, 1107, 0, 0, 0, 41, 42, 0, 2053 356, 431, 118, 355, 896, 80, 0, 0, 833, 0, 2054 0, 836, 837, 80, 840, 1149, 842, 843, 0, 350, 2055 1087, 844, 845, 1528, 75, 411, 0, 0, 0, 0, 2056 0, 356, 45, 46, 1326, 0, 0, 0, 0, 0, 2057 0, 0, 0, 0, 0, 216, 0, 0, 0, 356, 2058 0, 80, 1327, 0, 353, 0, 0, 576, 576, 57, 2059 57, 0, 594, 0, 0, 0, 1037, 355, 0, 703, 2060 0, 0, 0, 0, 0, 429, 0, 703, 703, 703, 2061 699, 699, 0, 350, 350, 0, 0, 704, 0, 0, 2062 0, 57, 0, 356, 0, 704, 704, 704, 0, 0, 2063 0, 0, 0, 1199, 0, 0, 0, 0, 214, 353, 2064 0, 355, 355, 355, 0, 0, 0, 0, 0, 0, 2065 0, 0, 0, 0, 0, 57, 995, 0, 57, 0, 2066 355, 0, 0, 0, 0, 0, 1000, 0, 699, 699, 2067 0, 0, 0, 703, 0, 888, 927, 0, 355, 891, 2068 1012, 0, 0, 0, 0, 0, 0, 356, 0, 78, 2069 479, 704, 976, 977, 0, 0, 0, 0, 0, 0, 2070 353, 353, 0, 353, 353, 0, 1214, 0, 0, 0, 2071 465, 0, 0, 0, 0, 78, 0, 627, 355, 0, 2072 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 2073 0, 356, 356, 356, 0, 0, 214, 0, 0, 927, 2074 927, 0, 713, 0, 87, 0, 348, 0, 0, 0, 2075 356, 0, 0, 0, 0, 355, 0, 0, 353, 353, 2076 0, 0, 0, 0, 0, 0, 0, 0, 356, 8, 2077 9, 10, 11, 12, 0, 0, 87, 0, 0, 80, 2078 0, 0, 0, 0, 0, 1297, 0, 0, 0, 0, 2092 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2093 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 2094 353, 353, 225, 0, 31, 0, 0, 177, 0, 260, 2095 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 2096 0, 0, 0, 0, 0, 698, 0, 712, 0, 226, 2097 0, 118, 34, 0, 0, 0, 0, 37, 0, 184, 2098 185, 40, 0, 0, 0, 127, 127, 127, 41, 42, 2099 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 2100 576, 576, 0, 0, 0, 698, 698, 698, 0, 80, 2101 0, 353, 0, 0, 186, 0, 350, 350, 0, 0, 2102 0, 0, 45, 46, 356, 0, 0, 57, 57, 80, 2103 1188, 0, 0, 0, 0, 0, 87, 80, 355, 355, 2104 0, 355, 355, 0, 0, 0, 0, 0, 0, 0, 2105 57, 363, 0, 0, 223, 356, 87, 0, 127, 0, 2106 127, 78, 0, 118, 87, 0, 0, 0, 57, 698, 2107 0, 0, 0, 356, 0, 80, 75, 0, 0, 0, 2108 0, 0, 363, 0, 0, 276, 0, 883, 353, 0, 2109 353, 886, 0, 0, 0, 0, 355, 355, 0, 0, 2110 363, 0, 87, 0, 0, 0, 0, 0, 0, 0, 2111 0, 0, 0, 348, 348, 0, 0, 356, 0, 0, 2112 353, 0, 57, 0, 0, 0, 0, 57, 353, 353, 2113 353, 0, 0, 0, 0, 0, 350, 0, 0, 353, 2114 353, 127, 0, 0, 363, 0, 0, 0, 0, 127, 2115 0, 127, 127, 75, 0, 0, 127, 0, 127, 127, 2116 57, 118, 0, 168, 0, 173, 0, 355, 179, 180, 2117 181, 0, 183, 0, 0, 0, 0, 0, 0, 0, 2118 0, 356, 0, 1188, 0, 0, 0, 234, 0, 0, 2119 1188, 0, 353, 0, 0, 0, 0, 0, 0, 249, 2120 250, 0, 0, 0, 125, 128, 129, 0, 363, 0, 2121 224, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2122 12, 0, 0, 576, 0, 356, 356, 356, 127, 0, 2123 0, 0, 78, 348, 0, 0, 0, 0, 0, 0, 2124 0, 1188, 0, 356, 355, 31, 355, 0, 1530, 0, 2125 0, 0, 363, 363, 363, 0, 0, 0, 57, 353, 2126 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2127 363, 0, 80, 34, 0, 0, 355, 255, 37, 256, 2128 57, 0, 40, 0, 355, 355, 355, 57, 363, 41, 2129 42, 0, 0, 0, 0, 355, 355, 0, 80, 87, 2130 0, 356, 0, 0, 0, 0, 75, 0, 0, 78, 2131 0, 0, 0, 75, 0, 718, 0, 0, 0, 0, 2132 0, 0, 0, 45, 46, 87, 0, 0, 363, 8, 2133 9, 10, 11, 12, 0, 0, 356, 0, 57, 0, 2134 0, 413, 0, 0, 0, 0, 0, 0, 355, 0, 2079 2135 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2080 355, 0, 0, 260, 0, 80, 0, 66, 356, 0, 2081 355, 57, 355, 226, 576, 0, 0, 224, 0, 699, 2082 355, 713, 0, 0, 355, 118, 34, 0, 0, 0, 2083 0, 37, 353, 184, 185, 40, 0, 0, 0, 0, 2084 0, 57, 41, 42, 0, 356, 0, 0, 0, 0, 2085 0, 0, 0, 0, 699, 0, 1098, 0, 0, 0, 2086 0, 0, 699, 699, 699, 0, 0, 0, 186, 0, 2087 0, 0, 0, 350, 350, 223, 0, 45, 46, 0, 2088 0, 0, 0, 0, 0, 0, 78, 1199, 1177, 1178, 2089 356, 0, 0, 0, 0, 0, 0, 75, 0, 0, 2090 356, 363, 356, 0, 0, 0, 0, 225, 0, 353, 2091 356, 353, 0, 0, 356, 0, 355, 0, 0, 0, 2092 118, 0, 0, 0, 112, 0, 0, 0, 699, 0, 2093 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, 2094 0, 0, 0, 0, 353, 0, 1227, 1228, 0, 0, 2095 927, 0, 353, 353, 353, 0, 0, 0, 1384, 0, 2096 0, 0, 0, 353, 353, 0, 0, 0, 927, 0, 2097 742, 355, 0, 0, 0, 0, 80, 75, 0, 0, 2098 0, 0, 0, 0, 0, 763, 0, 0, 742, 0, 2099 769, 742, 0, 0, 0, 0, 87, 0, 350, 0, 2100 0, 87, 127, 127, 127, 0, 356, 0, 0, 0, 2101 0, 0, 0, 1153, 0, 0, 0, 0, 353, 0, 2102 1229, 0, 348, 118, 0, 0, 0, 0, 0, 0, 2103 1165, 0, 355, 355, 0, 355, 355, 0, 0, 465, 2104 0, 927, 927, 0, 168, 0, 173, 1199, 0, 179, 2105 180, 181, 0, 183, 1199, 78, 0, 0, 0, 0, 2106 0, 356, 0, 0, 0, 0, 0, 0, 234, 0, 2107 0, 0, 0, 57, 0, 127, 0, 127, 0, 0, 2108 249, 250, 0, 0, 0, 0, 0, 0, 353, 0, 2109 355, 355, 0, 0, 0, 226, 0, 0, 0, 0, 2110 0, 0, 276, 0, 0, 0, 0, 1199, 413, 0, 2111 0, 883, 0, 885, 1553, 348, 0, 1501, 0, 1505, 2112 0, 0, 356, 356, 0, 356, 356, 0, 0, 0, 2113 0, 0, 1354, 0, 0, 0, 0, 75, 0, 0, 2114 1356, 1357, 1358, 0, 75, 80, 0, 0, 0, 0, 2115 1255, 0, 1318, 0, 1534, 0, 1536, 0, 127, 0, 2116 0, 0, 87, 932, 355, 0, 127, 0, 127, 127, 2117 0, 0, 0, 127, 0, 127, 127, 363, 0, 348, 2118 356, 356, 87, 0, 0, 0, 0, 0, 0, 0, 2119 87, 0, 0, 0, 0, 0, 0, 75, 0, 1565, 2120 0, 1566, 0, 0, 0, 0, 1404, 224, 363, 8, 2121 9, 10, 11, 12, 1573, 1574, 0, 0, 0, 0, 2122 0, 0, 0, 348, 348, 348, 363, 0, 87, 78, 2123 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2124 0, 355, 348, 355, 0, 127, 0, 0, 8, 9, 2125 10, 11, 12, 0, 356, 0, 0, 0, 0, 0, 2136 396, 0, 0, 363, 75, 0, 0, 0, 0, 0, 2137 415, 416, 0, 0, 0, 420, 0, 422, 423, 0, 2138 356, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2139 356, 37, 356, 184, 185, 40, 0, 225, 0, 0, 2140 356, 0, 41, 42, 356, 0, 0, 363, 0, 8, 2141 9, 10, 11, 12, 0, 355, 0, 363, 1142, 363, 2142 0, 0, 0, 0, 226, 0, 0, 363, 905, 0, 2143 411, 363, 0, 0, 0, 1154, 45, 46, 31, 0, 2144 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2145 0, 0, 0, 0, 591, 0, 599, 0, 0, 0, 2146 0, 0, 78, 0, 0, 80, 34, 623, 624, 78, 2147 31, 37, 0, 184, 185, 40, 0, 0, 0, 0, 2148 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2149 0, 0, 87, 0, 0, 356, 0, 0, 34, 0, 2150 0, 0, 0, 37, 0, 184, 185, 40, 1505, 0, 2151 411, 0, 0, 413, 41, 42, 45, 46, 0, 0, 2152 78, 0, 363, 0, 0, 0, 0, 0, 0, 0, 2153 0, 0, 0, 127, 127, 0, 0, 0, 0, 0, 2154 266, 0, 0, 0, 0, 0, 0, 0, 45, 46, 2155 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 2156 0, 0, 127, 0, 0, 127, 127, 0, 127, 0, 2157 127, 127, 0, 0, 0, 127, 127, 1, 2, 207, 2158 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2159 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2160 24, 25, -291, 0, 26, 27, 28, 29, 356, 356, 2161 30, 356, 356, 31, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2163 0, 80, 0, 0, 0, 363, 363, 0, 363, 363, 2164 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2165 0, 0, -291, 0, 0, 0, 1012, 0, 87, 8, 2166 9, 10, 11, 12, 0, 0, 356, 356, 0, 0, 2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2168 0, 0, 0, 0, 0, 44, 283, 284, 31, 285, 2169 0, 45, 46, 363, 363, 0, 0, 0, 0, 0, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171 0, 0, 0, 127, 127, 286, 34, 0, 0, 0, 2172 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, 2173 291, 292, 41, 42, 0, 293, 294, 356, 0, 0, 2174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2175 0, 0, 795, 796, 0, 0, 0, 0, 295, 0, 2176 379, 0, 0, 0, 363, 0, 344, 46, 297, 298, 2177 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2178 225, 829, 0, 0, 832, 833, 0, 836, 0, 838, 2179 839, 0, 0, 0, 840, 841, 0, 0, 0, 0, 2180 0, 0, 80, 0, 0, 0, 0, 226, 0, 925, 2181 0, 926, 0, 0, 356, 0, 356, 0, 929, 930, 2182 0, 0, 0, 935, 0, 0, 0, 0, 0, 87, 2183 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 2184 944, 363, 0, 363, 0, 0, 356, 0, 0, 0, 2185 0, 0, 0, 0, 356, 356, 356, 0, 0, 0, 2186 0, 0, 0, 0, 0, 356, 356, 0, 978, 0, 2187 127, 0, 0, 363, 0, 127, 0, 0, 0, 80, 2188 0, 363, 363, 363, 0, 0, 0, 0, 0, 0, 2189 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2190 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2191 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2193 166, 0, 969, 970, 0, 0, 0, 0, 0, 0, 2194 0, 0, 0, 0, 0, 363, 0, 219, 0, 0, 2195 1162, 0, 0, 8, 9, 10, 11, 12, 0, 0, 2196 0, 0, 0, 0, 0, 0, 0, 1023, 1024, 1025, 2197 1026, 0, 1028, 0, 0, 0, 0, 0, 0, 0, 2198 283, 284, 31, 285, 0, 356, 0, 1072, 0, 0, 2199 0, 0, 0, 0, 0, 166, 0, 0, 0, 273, 2200 0, 1078, 0, 0, 0, 0, 0, 0, 0, 286, 2201 34, 0, 363, 0, 0, 287, 0, 0, 0, 288, 2202 0, 0, 289, 290, 291, 292, 41, 42, 166, 293, 2203 294, 0, 80, 0, 0, 0, 127, 0, 369, 80, 2204 0, 1098, 375, 0, 0, 0, 0, 0, 0, 0, 2205 0, 0, 295, 0, 379, 0, 0, 0, 0, 87, 2206 1163, 46, 297, 298, 299, 300, 87, 8, 9, 10, 2207 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2208 21, 22, 23, 24, 25, 0, 1129, 26, 27, 28, 2209 80, 166, 1136, 0, 1090, 0, 31, 1140, 0, 0, 2210 0, 0, 1144, 219, 1145, 0, 0, 0, 1147, 0, 2211 1148, 1149, 0, 0, 1152, 0, 0, 87, 0, 0, 2212 0, 166, 0, 1164, 34, 0, 0, 0, 0, 0, 2213 0, 208, 39, 0, 0, 0, 0, 0, 0, 0, 2214 0, 1179, 1180, 0, 0, 0, 375, 0, 0, 0, 2215 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 2216 0, 0, 0, 0, 0, 127, 0, 0, 1210, 0, 2217 0, 1212, 0, 0, 45, 46, 524, 0, 0, 0, 2218 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 2219 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2220 0, 0, 0, 0, 232, 0, 236, 0, 238, 0, 2221 0, 0, 0, 0, 1226, 247, 0, 0, 0, 0, 2222 1230, 1231, 0, 0, 0, 0, 597, 0, 0, 0, 2223 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, 2224 1247, 0, 0, 1251, 0, 0, 212, 1253, 236, 238, 2225 247, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 2226 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2227 0, 0, 0, 1268, 0, 1270, 1271, 1272, 1273, 0, 2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2229 0, 1280, 0, 1281, 0, 0, 0, 173, 0, 0, 2230 0, 0, 0, 0, 0, 0, 0, 166, 166, 0, 2231 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 2232 0, 0, 0, 0, 0, 0, 1309, 1310, 0, 0, 2233 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2235 212, 0, 236, 238, 247, 0, 0, 0, 0, 0, 2236 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 2237 0, 0, 0, 0, 0, 166, 1342, 1343, 0, 0, 2238 0, 0, 0, 0, 1304, 0, 1353, 524, 212, 524, 2239 0, 0, 524, 212, 166, 524, 0, 0, 0, 0, 2240 0, 0, 0, 0, 0, 0, 0, 369, 497, 0, 2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2243 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2244 24, 25, -291, 0, 26, 27, 28, 1388, 0, 1389, 2245 1390, 1391, 0, 31, 0, 0, 212, 0, 0, 166, 2246 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 2247 1406, 369, 0, 0, 0, 810, 0, 0, 212, 0, 2248 0, 34, 0, 236, 238, 0, 37, 0, 336, 337, 2249 40, 247, -291, 0, 0, 1427, 0, 41, 42, 0, 2250 0, 597, 0, 0, 321, 0, 597, 0, 0, 0, 2251 0, 0, 0, 0, 346, 369, 369, 369, 0, 157, 2252 0, 0, 0, 634, 0, 338, 382, 382, 0, 0, 2253 0, 45, 46, 369, 212, 0, 0, 0, 1465, 1466, 2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2255 0, 1471, 212, 0, 0, 0, 0, 212, 1471, 212, 2256 283, 284, 0, 285, 0, 524, 0, 252, 0, 0, 2257 0, 0, 0, 0, 0, 0, 212, 257, 0, 212, 2258 212, 0, 0, 0, 0, 0, 0, 212, 0, 286, 2259 1504, 369, 0, 934, 1510, 287, 0, 321, 0, 288, 2260 0, 212, 289, 290, 291, 292, 41, 42, 212, 293, 2261 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2262 0, 478, 1532, 0, 1533, 0, 715, 0, 0, 0, 2263 0, 0, 295, 157, 379, 0, 0, 380, 0, 0, 2264 45, 46, 297, 298, 299, 300, 0, 386, 0, 0, 2265 0, 0, 1548, 1549, 0, 0, 0, 0, 0, 0, 2266 1552, 1553, 0, 0, 0, 0, 0, 0, 0, 0, 2267 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2268 0, 0, 369, 0, 433, 0, 621, 0, 0, 0, 2269 369, 0, 0, 438, 0, 0, 0, 0, 0, 0, 2270 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 2271 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2272 0, 0, 212, 0, 0, 0, 0, 0, 464, 0, 2273 0, 0, 0, 474, 0, 0, 0, 382, 0, 0, 2274 0, 0, 0, 286, 0, 0, 482, 0, 0, 287, 2275 212, 0, 492, 288, 496, 212, 289, 290, 291, 292, 2276 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2277 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 2278 0, 0, 0, 0, 0, 715, 295, 0, 379, 0, 2279 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2280 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2281 0, 0, 0, 585, 0, 0, 0, 0, 590, 0, 2282 0, 0, 0, 0, 166, 0, 212, 0, 0, 0, 2283 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 2284 212, 0, 0, 0, 0, 0, 0, 635, 0, 0, 2285 0, 636, 637, 0, 639, 0, 0, 0, 0, 0, 2286 497, 650, 651, 0, 652, 653, 0, 654, 0, 655, 2287 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2288 597, 0, 0, 758, 0, 0, 585, 0, 741, 0, 2289 0, 741, 0, 0, 670, 0, 0, 0, 0, 0, 2290 0, 369, 369, 767, 0, 0, 0, 0, 0, 0, 2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 681, 2292 0, 212, 0, 0, 0, 788, 0, 0, 0, 0, 2293 0, 0, 0, 212, 0, 797, 0, 0, 0, 0, 2294 0, 0, 346, 0, 0, 707, 0, 758, 0, 0, 2295 0, 710, 212, 0, 0, 0, 464, 0, 0, 0, 2296 0, 524, 0, 0, 0, 0, 206, 2, 207, 4, 2297 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2298 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2299 25, 0, 745, 26, 27, 28, 862, 0, 0, 0, 2300 0, 0, 31, 0, 382, 0, 0, 763, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2302 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 2303 34, 0, 35, 0, 36, 0, 0, 208, 39, 0, 2304 0, 0, 0, 283, 284, 789, 285, 0, 0, 0, 2305 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 2306 0, 801, 0, 0, 0, 212, 0, 809, 0, 219, 2307 0, 0, 286, 0, 209, 0, 823, 0, 287, 0, 2308 45, 46, 288, 0, 0, 289, 290, 291, 292, 41, 2309 42, 0, 293, 294, 0, 212, 0, 0, 0, 0, 2310 0, 0, 758, 0, 963, 0, 715, 0, 0, 341, 2311 364, 0, 0, 0, 974, 295, 863, 379, 0, 0, 2312 982, 0, 0, 45, 46, 297, 298, 299, 300, 0, 2313 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2314 0, 212, 0, 414, 0, 0, 0, 0, 0, 0, 2315 414, 0, 809, 0, 0, 369, 369, 0, 0, 0, 2316 904, 0, 1000, 1001, 219, 0, 346, 0, 0, 0, 2317 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2318 346, 509, 512, 0, 0, 0, 0, 0, 0, 515, 2319 516, 252, 0, 0, 0, 0, 0, 0, 0, 0, 2320 0, 941, 942, 509, 509, 0, 0, 0, 0, 0, 2321 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2322 1031, 0, 414, 0, 382, 0, 0, 212, 0, 0, 2323 0, 0, 0, 0, 979, 0, 0, 0, 0, 983, 2324 0, 509, 8, 9, 10, 11, 12, 13, 14, 15, 2325 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2326 0, 346, 26, 27, 28, 0, 0, 0, 0, 0, 2327 0, 31, 684, 0, 0, 369, 414, 509, 0, 0, 2328 0, 0, 0, 0, 414, 581, 0, 414, 584, 0, 2329 0, 0, 0, 0, 0, 0, 0, 0, 364, 34, 2330 321, 0, 613, 1017, 0, 0, 38, 39, 0, 0, 2331 1018, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2332 0, 631, 0, 1020, 341, 1021, 0, 0, 382, 0, 2333 0, 524, 0, 524, 974, 0, 0, 0, 741, 1033, 2334 0, 0, 0, 685, 0, 1037, 0, 686, 0, 45, 2335 46, 414, 0, 0, 0, 414, 0, 1075, 0, 1150, 2336 1076, 0, 0, 0, 0, 0, 0, 524, 0, 524, 2337 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2338 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 2339 0, 0, 382, 0, 1183, 0, 166, 0, 0, 0, 2340 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 2341 974, 212, 8, 9, 10, 11, 12, 13, 14, 15, 2342 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2343 1215, 0, 414, 0, 0, 364, 0, 590, 0, 0, 2344 0, 31, 0, 0, 0, 509, 509, 509, 509, 509, 2345 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2346 509, 509, 509, 0, 0, 0, 0, 283, 284, 34, 2347 285, 0, 1146, 0, 414, 0, 0, 0, 341, 364, 2348 0, 0, 0, 0, 0, 974, 0, 0, 0, 0, 2349 0, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2350 0, 0, 287, 862, 0, 0, 288, 0, 0, 289, 2351 290, 291, 292, 41, 42, 0, 293, 294, 1266, 1267, 2352 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 2353 526, 0, 0, 0, 0, 0, 1211, 0, 0, 295, 2354 0, 379, 803, 364, 971, 0, 0, 45, 46, 297, 2355 298, 299, 300, 613, 0, 613, 613, 0, 0, 0, 2356 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 2357 1223, 0, 842, 364, 0, 1225, 0, 0, 364, 0, 2358 0, 0, 0, 1229, 0, 0, 0, 364, 364, 364, 2359 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 2360 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 2361 414, 884, 0, 0, 414, 887, 1255, 0, 0, 0, 2362 0, 889, 0, 0, 0, 0, 0, 0, 1263, 0, 2363 0, 1264, 0, 1265, 0, 0, 0, 0, 0, 0, 2364 414, 0, 0, 0, 0, 0, 0, 1274, 1275, 0, 2365 0, 0, 509, 0, 0, 0, 0, 0, 212, 1371, 2366 0, 0, 741, 364, 613, 0, 0, 0, 0, 1288, 2367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2368 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 2369 0, 0, 0, 0, 0, 0, 0, 341, 364, 0, 2370 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 2371 0, 0, 0, 0, 0, 0, 1327, 0, 0, 0, 2372 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2373 17, 18, 19, 20, 21, 22, 23, 24, 25, -291, 2374 0, 26, 27, 28, 0, 0, 414, 0, 0, 0, 2375 31, 0, 0, 0, 364, 0, 0, 0, 0, 0, 2376 0, 803, 364, 0, 0, 613, 0, 613, 0, 0, 2377 0, 0, 0, 0, 0, 0, 0, 613, 34, 0, 2378 0, 0, 0, 37, 0, 336, 337, 40, 0, -291, 2379 0, 1377, 0, 1378, 41, 42, 0, 0, 0, 0, 2380 0, 0, 509, 0, 0, 1386, 0, 1387, 0, 0, 2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2382 0, 0, 338, 0, 1394, 0, 0, 0, 45, 46, 2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 1412, 1414, 0, 0, 0, 0, 0, 509, 0, 803, 2385 0, 1419, 0, 0, 1229, 0, 341, 364, 414, 0, 2386 414, 0, 0, 0, 414, 0, 0, 0, 0, 0, 2387 0, 0, 321, 0, 0, 1441, 0, 0, 0, 0, 2388 0, 0, 509, 0, 1448, 613, 613, 1450, 0, 1452, 2389 1454, 1456, 0, 0, 0, 509, 8, 9, 10, 11, 2390 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2391 22, 23, 24, 25, -291, 0, 0, 0, 0, 0, 2392 414, 0, 0, 0, 0, 31, 0, 0, 0, 1486, 2393 0, 1488, 0, 1229, 0, 0, 509, 0, 0, 0, 2394 0, 414, 1143, 0, 0, 0, 0, 0, 1499, 0, 2395 0, 0, 364, 34, 0, 0, 0, 0, 414, 1155, 2396 0, 613, 613, 1160, -291, 0, 0, 0, 0, 0, 2397 0, 0, 0, 364, 364, 0, 0, 0, 0, 0, 2398 0, 0, 0, 0, 0, 0, 0, 1, 2, 207, 2399 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2400 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2401 24, 25, 0, 509, 26, 27, 28, 29, 0, 0, 2402 30, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2403 0, 0, 0, 0, 0, 0, 414, 0, 414, 0, 2404 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2405 286, 34, 613, 35, 0, 36, 287, 0, 38, 39, 2406 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2407 293, 294, 0, 509, 509, 803, 414, 1243, 0, 0, 2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2409 0, 0, 0, 295, 0, 1055, 0, 0, 0, 364, 2410 0, 45, 46, 297, 298, 299, 300, 0, 0, 0, 2411 0, 0, 0, 0, 0, 0, -126, 0, 1, 2, 2412 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2413 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2414 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2415 0, 30, 283, 284, 31, 1040, 1041, 0, 1042, 0, 2416 341, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2417 0, 0, 1051, 0, 0, 0, 1052, 1053, 364, 33, 2418 0, 286, 34, 0, 35, 0, 36, 1054, 0, 38, 2419 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2420 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 295, 0, 1055, 364, 364, 172, 2423 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2424 0, 0, 1056, 0, 0, 0, 0, -126, 0, 0, 2425 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2426 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2427 19, 20, 21, 22, 23, 24, 25, 0, 509, 26, 2428 27, 28, 29, 0, 0, 30, 283, 284, 31, 285, 2429 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 2430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 0, 0, 0, 0, 0, 286, 34, 0, 35, 0, 2432 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2433 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2434 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2435 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2436 44, 0, 0, 0, 509, 509, 45, 46, 297, 298, 2437 299, 300, 0, 2, 207, 4, 5, 6, 7, 8, 2438 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2439 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2440 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2441 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2442 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2443 25, -292, 0, 0, 414, 286, 34, 0, 35, 0, 2444 36, 287, 31, 38, 39, 288, 0, 0, 289, 290, 2445 291, 292, 41, 42, 0, 293, 294, 0, 414, 414, 2446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447 34, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2448 343, -292, 0, 414, 0, 757, 344, 46, 297, 298, 2449 299, 300, 2, 207, 4, 5, 6, 7, 8, 9, 2450 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2451 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2452 28, 0, 0, 0, 0, 283, 284, 31, 285, 8, 2453 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2454 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2455 27, 28, 0, 0, 286, 34, 0, 35, 31, 36, 2456 287, 0, 38, 39, 288, 0, 0, 289, 290, 291, 2457 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2126 2458 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2127 363, 37, 0, 184, 185, 40, 355, 31, 0, 0, 2128 0, 0, 41, 42, 355, 355, 355, 0, 0, 0, 2129 0, 0, 0, 0, 0, 355, 355, 225, 0, 0, 2130 348, 0, 0, 0, 0, 34, 0, 0, 266, 78, 2131 37, 0, 0, 0, 40, 0, 0, 45, 46, 80, 2132 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2133 0, 356, 0, 356, 363, 591, 0, 599, 0, 0, 2134 0, 0, 0, 0, 0, 0, 0, 719, 623, 624, 2135 355, 0, 0, 0, 0, 0, 45, 46, 0, 0, 2136 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 2137 0, 0, 0, 0, 356, 356, 356, 0, 363, 363, 2138 363, 0, 0, 0, 0, 356, 356, 0, 0, 0, 2139 0, 0, 0, 0, 348, 0, 0, 363, 0, 80, 2140 0, 0, 348, 0, 0, 1020, 0, 0, 8, 9, 2141 10, 11, 12, 0, 0, 363, 0, 0, 0, 1129, 2142 355, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2143 0, 0, 0, 0, 0, 283, 284, 31, 285, 0, 2144 356, 0, 0, 1142, 0, 0, 742, 0, 1142, 0, 2145 0, 0, 87, 0, 0, 363, 0, 0, 0, 0, 2146 0, 0, 0, 0, 286, 34, 0, 0, 57, 78, 2147 287, 0, 0, 0, 288, 0, 78, 289, 290, 291, 2148 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2149 0, 0, 363, 0, 0, 0, 0, 0, 1142, 0, 2150 0, 0, 0, 0, 0, 0, 0, 295, 0, 379, 2151 356, 0, 0, 0, 0, 0, 344, 46, 297, 298, 2152 299, 300, 0, 0, 0, 0, 0, 0, 0, 78, 2153 0, 0, 0, 0, 0, 0, 57, 363, 0, 0, 2154 0, 0, 0, 0, 0, 0, 0, 363, 0, 363, 2155 127, 127, 0, 348, 226, 0, 0, 363, 0, 80, 2156 0, 363, 283, 284, 0, 285, 80, 0, 0, 0, 2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 2158 0, 0, 127, 127, 0, 127, 0, 127, 127, 0, 2159 0, 286, 127, 127, 0, 0, 0, 640, 0, 140, 2160 141, 288, 0, 0, 289, 641, 291, 292, 41, 42, 2161 0, 293, 294, 0, 0, 0, 0, 348, 348, 80, 2162 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 2163 0, 0, 0, 0, 295, 0, 642, 57, 643, 380, 2164 0, 0, 0, 45, 46, 297, 298, 299, 300, 0, 2165 0, 0, 0, 363, 0, 0, 0, 0, 0, 206, 2459 0, 111, 0, 38, 39, 0, 0, 295, 0, 962, 2460 0, 0, 41, 42, 757, 344, 46, 297, 298, 299, 2461 300, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2462 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2463 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2464 0, 0, 0, 0, 283, 284, 31, 285, 8, 9, 2465 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2466 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2467 28, 0, 0, 286, 34, 0, 35, 31, 36, 287, 2468 0, 38, 39, 288, 0, 0, 289, 290, 291, 292, 2469 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2470 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2471 0, 0, 38, 39, 0, 0, 295, 0, 962, 0, 2472 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2166 2473 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2167 2474 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2168 2475 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2169 0, 930, 0, 931, 0, 31, 0, 0, 0, 0, 2170 934, 935, 0, 0, 0, 940, 0, 0, 363, 0, 2171 0, 0, 0, 0, 0, 0, 0, 945, 1142, 1142, 2172 1142, 0, 949, 34, 0, 35, 0, 36, 37, 0, 2173 208, 39, 40, 127, 127, 0, 0, 0, 0, 41, 2174 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2175 0, 0, 985, 0, 0, 0, 0, 0, 283, 284, 2176 0, 285, 0, 0, 0, 43, 0, 209, 0, 363, 2177 363, 0, 363, 363, 45, 46, 742, 0, 0, 0, 2178 0, 0, 0, 0, 0, 0, 0, 286, 57, 57, 2179 0, 0, 87, 287, 0, 0, 0, 288, 0, 0, 2180 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2181 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 2182 0, 0, 0, 0, 0, 0, 0, 363, 363, 57, 2183 295, 0, 379, 0, 0, 380, 0, 0, 0, 45, 2184 46, 297, 298, 299, 300, 0, 0, 166, 0, 0, 2185 0, 0, 1031, 1032, 1033, 1034, 0, 1036, 0, 0, 2186 0, 0, 1142, 1142, 219, 0, 0, 0, 0, 0, 2187 0, 0, 0, 1080, 0, 0, 0, 348, 348, 0, 2188 0, 0, 0, 0, 0, 0, 57, 1086, 0, 0, 2189 0, 57, 127, 0, 0, 0, 0, 127, 0, 0, 2190 1481, 363, 0, 0, 0, 0, 0, 0, 0, 0, 2191 0, 0, 166, 0, 0, 0, 273, 0, 0, 0, 2192 0, 0, 0, 0, 57, 0, 0, 1106, 0, 0, 2476 0, 0, 0, 283, 284, 31, 285, 8, 9, 10, 2477 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2478 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2479 0, 0, 286, 34, 0, 35, 31, 36, 287, 0, 2480 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2481 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2482 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2483 0, 208, 39, 0, 0, 295, 0, 343, 0, 0, 2484 0, 0, 0, 344, 46, 297, 298, 299, 300, 2, 2485 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2486 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2487 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2488 0, 0, 283, 284, 31, 285, 0, 0, 0, 0, 2193 2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 0, 0, 0, 0, 226, 166, 0, 0, 0, 0, 2195 0, 0, 0, 0, 0, 369, 0, 0, 0, 375, 2196 0, 1532, 0, 0, 0, 0, 87, 0, 0, 0, 2197 1540, 0, 0, 0, 1139, 0, 0, 0, 363, 0, 2198 363, 1147, 0, 0, 0, 0, 1151, 0, 0, 0, 2199 0, 1155, 0, 1156, 0, 0, 0, 1158, 0, 1159, 2200 1160, 0, 348, 1163, 0, 0, 0, 0, 166, 0, 2201 0, 0, 1175, 363, 0, 0, 0, 0, 0, 0, 2202 219, 363, 363, 363, 0, 0, 0, 57, 0, 0, 2203 1190, 1191, 363, 363, 0, 0, 0, 0, 166, 0, 2204 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2205 0, 57, 0, 0, 0, 0, 0, 1221, 57, 0, 2206 1223, 127, 0, 375, 0, 0, 0, 0, 0, 0, 2207 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2208 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 2209 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 2210 0, 0, 0, 1237, 0, 166, 0, 0, 0, 1241, 2211 1242, 57, 0, 0, 0, 0, 0, 0, 0, 0, 2212 0, 1253, 0, 0, 0, 0, 0, 0, 0, 0, 2213 0, 1260, 0, 0, 1264, 0, 1265, 0, 0, 1267, 2214 0, 0, 0, 597, 0, 0, 0, 0, 621, 0, 2215 0, 0, 1275, 0, 0, 0, 0, 363, 0, 0, 2216 0, 0, 0, 0, 0, 1282, 0, 1284, 1285, 1286, 2217 1287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2218 0, 0, 0, 1294, 0, 1295, 0, 0, 0, 173, 2219 0, 0, 0, 127, 0, 212, 0, 0, 0, 0, 2220 0, 0, 0, 0, 0, 232, 87, 236, 0, 238, 2221 0, 0, 0, 87, 0, 0, 247, 0, 1323, 1324, 2222 0, 0, 0, 0, 166, 166, 0, 0, 0, 0, 2223 0, 369, 0, 0, 0, 0, 0, 0, 0, 0, 2224 0, 0, 0, 0, 0, 0, 0, 212, 0, 236, 2225 238, 247, 524, 0, 0, 0, 0, 0, 0, 0, 2226 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2227 0, 1359, 1360, 0, 0, 0, 0, 0, 0, 0, 2228 716, 1370, 0, 0, 0, 0, 0, 0, 0, 0, 2229 212, 0, 166, 0, 0, 0, 0, 0, 0, 0, 2230 0, 0, 0, 0, 524, 0, 524, 0, 0, 524, 2231 0, 166, 524, 0, 0, 0, 0, 0, 0, 0, 2232 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 2233 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 2234 0, 0, 0, 0, 0, 1407, 0, 1408, 1409, 1410, 2235 0, 212, 0, 236, 238, 247, 0, 0, 0, 1414, 2236 0, 0, 0, 0, 0, 0, 0, 0, 1425, 0, 2237 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 2238 0, 0, 0, 0, 0, 0, 0, 0, 369, 212, 2239 0, 0, 814, 0, 212, 1448, 0, 0, 0, 0, 2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 2241 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, 2242 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 2243 0, 0, 369, 369, 369, 0, 0, 0, 0, 0, 2244 1487, 1488, 0, 0, 0, 0, 0, 0, 0, 0, 2245 0, 369, 0, 1493, 0, 0, 0, 212, 0, 0, 2246 1493, 0, 0, 0, 157, 0, 0, 0, 0, 0, 2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2248 0, 0, 0, 524, 236, 238, 0, 0, 0, 0, 2249 0, 0, 247, 1527, 0, 0, 0, 1533, 0, 0, 2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 2251 1173, 939, 252, 8, 9, 10, 11, 12, 0, 0, 2252 0, 0, 257, 0, 0, 0, 1555, 0, 1556, 0, 2253 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 2254 283, 284, 31, 285, 0, 0, 716, 0, 0, 0, 2255 0, 0, 0, 212, 0, 0, 1571, 1572, 212, 0, 2256 212, 0, 0, 0, 1575, 1576, 0, 0, 0, 286, 2257 34, 0, 0, 0, 0, 287, 0, 212, 157, 288, 2258 212, 212, 289, 290, 291, 292, 41, 42, 212, 293, 2259 294, 0, 386, 0, 0, 0, 0, 0, 0, 0, 2260 0, 0, 212, 369, 0, 0, 0, 621, 0, 212, 2261 0, 369, 295, 0, 379, 418, 0, 0, 0, 0, 2262 0, 1174, 46, 297, 298, 299, 300, 0, 0, 433, 2263 0, 0, 0, 0, 0, 0, 0, 0, 438, 0, 2264 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2266 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2267 0, 0, 0, 464, 0, 0, 0, 0, 474, 0, 2268 0, 0, 0, 0, 0, 0, 0, 0, 286, 0, 2269 0, 482, 0, 0, 287, 0, 0, 492, 288, 496, 2270 0, 289, 290, 291, 292, 41, 42, 716, 293, 294, 2271 0, 0, 0, 0, 0, 0, 526, 0, 0, 0, 2272 0, 0, 524, 212, 0, 0, 0, 0, 0, 0, 2273 0, 295, 0, 379, 0, 0, 0, 0, 0, 790, 2274 45, 46, 297, 298, 299, 300, 166, 0, 0, 0, 2275 0, 212, 0, 0, 0, 0, 212, 0, 585, 0, 2276 0, 0, 369, 590, 0, 0, 206, 2, 207, 4, 2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491 0, 286, 34, 0, 35, 0, 36, 287, 0, 208, 2492 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2493 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495 0, 0, 0, 0, 295, 0, 997, 0, 0, 0, 2496 0, 0, 998, 46, 297, 298, 299, 300, 2, 207, 2497 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2498 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2499 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2500 0, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 286, 34, 0, 35, 0, 36, 287, 0, 38, 39, 2504 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2505 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507 0, 0, 0, 295, 0, 962, 0, 0, 0, 0, 2508 0, 344, 46, 297, 298, 299, 300, 2, 207, 4, 2277 2509 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2278 2510 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2279 25, 0, 635, 26, 27, 28, 636, 637, 0, 639, 2280 0, 0, 31, 0, 0, 597, 651, 652, 0, 653, 2281 654, 0, 655, 0, 656, 0, 0, 0, 0, 0, 2282 0, 0, 0, 0, 0, 0, 369, 369, 212, 0, 2283 34, 585, 35, 0, 36, 0, 0, 208, 39, 671, 2284 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 2511 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2512 283, 284, 31, 285, 0, 0, 0, 0, 0, 0, 2285 2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286 283, 284, 497, 285, 682, 0, 0, 0, 0, 0, 2287 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 2288 0, 45, 46, 0, 0, 0, 524, 0, 0, 286, 2289 708, 0, 0, 0, 0, 287, 711, 0, 0, 288, 2290 0, 464, 289, 290, 291, 292, 41, 42, 0, 293, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2515 34, 0, 35, 0, 36, 287, 0, 208, 39, 288, 2516 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2291 2517 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2293 0, 0, 295, 0, 379, 0, 0, 748, 212, 760, 2294 0, 45, 46, 297, 298, 299, 300, 0, 0, 0, 2295 0, 0, 767, 0, 0, 716, -519, 212, 0, 1, 2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519 0, 0, 295, 0, 379, 0, 0, 0, 0, 0, 2520 45, 46, 297, 298, 299, 300, -515, 0, 0, 1, 2296 2521 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2297 2522 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2298 2523 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2299 793, 0, 30, 0, 0, 31, 32, 219, 0, 803, 2300 0, 341, 364, 0, 0, 0, 805, 0, 283, 284, 2301 0, 285, 813, 0, 0, 0, 0, 0, 0, 0, 2302 33, 827, 0, 34, 0, 35, 0, 36, 37, 0, 2303 38, 39, 40, 0, 716, 414, 0, 286, 0, 41, 2304 42, 0, 414, 287, 0, 0, 0, 288, 0, 0, 2305 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2306 0, 0, 867, 0, 0, 43, 0, 44, 0, 0, 2307 0, 212, 0, 0, 45, 46, 0, 0, 0, 0, 2308 295, 0, 379, 0, 0, 978, 369, 369, 0, 45, 2309 46, 297, 298, 299, 300, 219, 0, 0, 813, 0, 2310 0, 0, 0, 212, 0, 0, 909, 0, 0, 0, 2311 0, 0, 0, 0, 414, 8, 9, 10, 11, 12, 2312 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2313 23, 24, 25, -294, 0, 0, 0, 252, 0, 212, 2314 0, 0, 0, 0, 31, 0, 0, 946, 947, 0, 2315 212, 0, 0, 0, 0, 0, 283, 284, 0, 285, 2316 0, 964, 0, 0, 321, 0, 0, 0, 414, 0, 2317 0, 0, 34, 0, 346, 0, 414, 581, 0, 414, 2318 584, 0, 986, -294, 987, 286, 382, 382, 991, 0, 2319 364, 287, 0, 0, 613, 288, 0, 0, 289, 290, 2320 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2321 0, 369, 0, 631, 0, 0, 341, 0, 0, 0, 2322 0, 0, 212, 0, 0, 0, 0, 0, 295, 0, 2323 379, 0, 0, 0, 0, 0, 212, 45, 46, 297, 2324 298, 299, 300, 414, 0, 0, 0, 414, 0, 0, 2325 0, 0, 1025, 0, 0, 0, 0, 321, 0, 1026, 2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 2327 0, 524, 1028, 0, 1029, 0, 0, 0, 364, 0, 2328 0, 478, 0, 0, 0, 0, 0, 0, 1041, 0, 2329 0, 0, 0, 0, 0, 1045, 0, 0, 0, 0, 2330 0, 0, 0, 0, 0, 0, 524, 1083, 524, 0, 2331 1084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2332 0, 0, 0, 0, 414, 0, 0, 364, 212, 0, 2333 0, 0, 0, 0, 0, 0, 166, 2, 207, 4, 2334 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2335 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2336 25, 0, 0, 26, 27, 28, 414, 0, 0, 0, 2337 341, 364, 31, 0, 0, 0, 0, 0, 0, 0, 2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 590, 2339 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 2340 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2341 0, 0, 0, 0, 0, 414, 414, 0, 0, 0, 2342 0, 0, 0, 0, 0, 1157, 212, 0, 0, 0, 2343 0, 0, 0, 0, 807, 364, 0, 0, 0, 0, 2344 0, 0, 0, -402, 678, 613, 0, 613, 613, 0, 2345 0, 45, 46, 0, 613, 0, 0, 0, 0, 0, 2346 0, 0, 0, 0, 846, 364, 0, 0, 0, 0, 2347 364, 0, 0, 0, 0, 0, 0, 0, 0, 364, 2348 364, 364, 0, 526, 0, 0, 0, 0, 0, 1222, 2349 0, 710, 0, 0, 0, 0, 0, 0, 364, 0, 2350 0, 0, 0, 414, 889, 0, 0, 414, 892, 0, 2351 0, 0, 0, 0, 894, 0, 0, 0, 0, 0, 2352 0, 0, 0, 1234, 0, 0, 0, 0, 1236, 0, 2353 744, 0, 0, 414, 0, 0, 1240, 0, 0, 0, 2354 0, 0, 0, 761, 0, 0, 0, 0, 744, 0, 2355 0, 744, 0, 0, 0, 0, 364, 613, 0, 0, 2356 0, 0, 0, 771, 0, 0, 0, 0, 0, 0, 2357 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 2358 0, 0, 0, 0, 1277, 792, 0, 1278, 0, 1279, 2359 0, 0, 341, 364, 0, 801, 0, 414, 414, 0, 2360 0, 0, 346, 1288, 1289, 0, 0, 761, 0, 0, 2524 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2361 2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2362 0, 0, 0, 0, 0, 1302, 0, 0, 0, 0,2363 2526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2364 0, 0, 414, 0, 0, 0, 0, 0, 0, 0, 2365 364, 0, 0, 0, 0, 0, 866, 807, 364, 0, 2366 0, 613, 0, 613, 0, 382, 0, 0, 0, 0, 2367 0, 0, 0, 613, 1343, 0, 0, 0, 0, 0, 2368 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 2369 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2370 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2371 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2372 27, 28, 29, 0, 0, 30, 0, 0, 31, 0, 2527 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2528 38, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2529 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373 2530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 0, 0, 0, 0, 807, 0, 0, 0, 2375 1394, 0, 1395, 341, 364, 414, 34, 414, 35, 0, 2376 36, 414, 0, 38, 39, 761, 1405, 970, 1406, 0, 2377 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 2378 0, 0, 613, 613, 990, 0, 1413, 0, 0, 0, 2531 0, 0, 0, 0, 0, 43, 0, 44, 0, 0, 2532 0, 0, 0, 45, 46, 1, 2, 3, 4, 5, 2533 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2534 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2535 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2536 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2379 2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2380 44, 0, 1431, 1433, 0, 0, 0, 45, 46, 364, 2381 0, 0, 0, 1438, 0, 0, 1240, 0, 0, 414, 2382 0, 0, 0, 0, 0, 0, 1008, 1009, 0, 0, 2383 346, 0, 0, 0, 0, 0, 0, 0, 0, 1462, 2384 0, 414, 1154, 0, 346, 0, 0, 0, 1469, 0, 2385 0, 1471, 364, 1473, 1475, 1477, 0, 0, 414, 1166, 2386 0, 613, 613, 1171, 0, 0, 0, 0, 0, 507, 2387 0, 509, 512, 364, 364, 283, 284, 0, 285, 515, 2388 516, 0, 0, 0, 1039, 0, 0, 0, 382, 0, 2389 0, 0, 0, 509, 509, 1508, 0, 1510, 0, 1240, 2390 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, 2391 287, 0, 0, 0, 288, 1522, 0, 289, 290, 291, 2392 292, 41, 42, 0, 293, 294, 346, 0, 0, 0, 2393 0, 509, 0, 0, 0, 0, 414, 0, 414, 0, 2394 0, 0, 0, 414, 0, 0, 0, 295, 0, 379, 2395 0, 0, 613, 0, 0, 0, 709, 46, 297, 298, 2396 299, 300, 0, 0, 0, 321, 0, 509, 0, 0, 2397 0, 0, 0, 0, 0, 0, 0, 807, 414, 1256, 2398 0, 1130, 1131, 0, 0, 0, 0, 0, 0, 0, 2399 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 2400 0, 981, 364, 0, 1145, 0, 744, 0, 8, 9, 2538 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2539 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2540 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 43, 0, 44, 0, 0, 0, -519, 0, 45, 2544 46, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2401 2545 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2402 20, 21, 22, 23, 24, 25, -294, 1161, 26, 27, 2403 28, 0, 0, 0, 0, 0, 0, 31, 1176, 0, 2404 283, 284, 0, 285, 0, 0, 0, 0, 0, 0, 2546 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2547 28, 29, 0, 0, 30, 0, 0, 31, 32, 0, 2405 2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2406 382, 0, 1194, 341, 0, 34, 0, 0, 0, 286,2407 0, 0, 38, 39, 0, 640, -294, 981, 981, 288,2408 0, 364, 289, 290, 291, 292, 41, 42, 0, 293,2409 294, 0, 0, 0, 0, 0, 0, 0, 1226, 0,2410 0, 0, 0, 0, 0, 0, 0, 634, 0, 338,2411 0, 0, 295, 0, 764, 0, 45, 46, 0, 0,2412 0, 45, 46, 297, 298, 299, 300, 0, 0, 0,2413 0, 0, 0, 364, 364, 509, 509, 509, 509, 509,2414 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,2415 509, 509, 509, 0, 0, 981, 0, 0, 0, 0,2416 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2417 0, 0, 0, 0, 866, 0, 0, 0, 0, 0, 2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 1280, 2419 1281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2550 0, 0, 33, 0, 0, 34, 0, 35, 0, 36, 2551 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 2552 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 43, 0, 44, 2555 0, 0, 0, 0, 0, 45, 46, 1, 2, 207, 2556 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2557 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2558 24, 25, 0, 0, 26, 27, 28, 29, 0, 0, 2559 30, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2563 0, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2564 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2565 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2566 0, 0, 0, 0, 0, 44, 31, 0, 0, 0, 2567 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 34, 0, 35, 0, 36, 37, 2570 0, 208, 39, 40, 0, 0, 0, 0, 0, 0, 2571 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 43, 0, 209, 0, 2574 0, 0, 0, 0, 45, 46, 2, 207, 4, 5, 2575 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2576 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2577 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2578 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2579 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2580 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2581 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2421 2582 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2422 2583 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2423 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2424 0, 30, 283, 284, 31, 285, 0, 0, 0, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 2427 0, 286, 34, 0, 35, 0, 36, 287, 0, 38, 2428 39, 288, 509, 0, 289, 290, 291, 292, 41, 42, 2429 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2584 23, 24, 25, 34, 0, 26, 27, 28, 0, 0, 2585 38, 39, -399, 677, 31, 0, 0, 0, 0, 45, 2586 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2430 2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 0, 0, 0, 0, 295, 0, 1063, 0, 0, 0, 2432 0, 0, 0, 45, 46, 297, 298, 299, 300, 0, 2433 0, 0, 0, 1388, 0, 0, 744, -129, 0, 0, 2434 0, 0, 0, 0, 0, 509, 0, 0, 414, 8, 2435 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2436 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2437 27, 28, 0, 414, 414, 0, 509, 0, 31, 0, 2588 0, 0, 34, 0, 35, 634, 36, 338, 0, 38, 2589 39, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2438 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2439 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 2440 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2441 0, 0, 0, 208, 39, 0, 0, 0, 0, 0, 2442 1447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2443 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2444 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2445 19, 20, 21, 22, 23, 24, 25, 45, 46, 26, 2446 27, 28, 29, 0, 0, 30, 283, 284, 31, 1048, 2447 1049, 0, 1050, 0, 0, 1051, 1052, 1053, 1054, 1055, 2448 1056, 1057, 1058, 0, 0, 0, 1059, 0, 0, 0, 2449 1060, 1061, 0, 33, 0, 286, 34, 509, 35, 0, 2450 36, 1062, 1514, 38, 39, 288, 0, 0, 289, 290, 2451 291, 292, 41, 42, 0, 293, 294, 8, 9, 10, 2452 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2453 21, 22, 23, 24, 25, -295, 0, 0, 295, 0, 2454 1063, 0, 509, 172, 0, 0, 31, 45, 46, 297, 2455 298, 299, 300, 0, 0, 321, 0, 1064, 0, 0, 2456 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 2457 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2458 509, 0, 0, 0, 0, -295, 0, 0, 0, 0, 2459 0, 0, 0, 509, 0, 0, 0, 0, 0, 0, 2460 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2461 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2462 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2463 27, 28, 29, 0, 509, 30, 283, 284, 31, 285, 2591 0, 1350, 0, 0, 0, 0, 0, 0, 0, 0, 2592 0, 0, 0, 0, 0, 0, 677, 0, 0, 0, 2593 0, 0, 45, 46, 2, 207, 4, 5, 6, 7, 2464 2594 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2465 2595 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2466 26, 27, 28, 0, 0, 286, 34, 0, 35, 31, 2467 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2596 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2597 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2598 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2599 25, 0, 0, 26, 27, 28, 0, 34, 0, 35, 2600 0, 36, 31, 684, 38, 39, 0, 0, 0, 0, 2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 1352, 0, 0, 0, 2603 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2604 0, 677, 0, 0, 0, 0, 0, 45, 46, 2, 2605 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2606 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2607 23, 24, 25, 0, 685, 26, 27, 28, 1091, 0, 2608 45, 46, 0, 0, 31, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2612 39, 0, 2, 207, 4, 5, 6, 7, 8, 9, 2613 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2614 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2615 28, 0, 0, 0, 0, 0, 271, 31, 0, 0, 2616 0, 0, 45, 46, 0, 0, 0, 0, 0, 0, 2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2618 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2619 0, 0, 38, 39, 0, 2, 207, 4, 5, 6, 2620 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2621 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2622 0, 26, 27, 28, 0, 0, 0, 0, 0, 677, 2623 31, 0, 0, 0, 0, 45, 46, 0, 0, 0, 2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2626 35, 0, 36, 0, 0, 38, 39, 0, 2, 207, 2627 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2628 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2629 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2630 0, 0, 592, 31, 0, 0, 0, 0, 45, 46, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 34, 0, 35, 0, 36, 0, 0, 208, 39, 2634 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2635 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2636 26, 27, 28, 0, 0, 0, 0, 283, 284, 31, 2637 285, 0, 0, 0, 0, 209, 0, 0, 0, 0, 2638 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2639 0, 0, 0, 0, 0, 0, 286, 34, 0, 0, 2640 0, 0, 287, 0, 38, 39, 288, 0, 0, 289, 2641 290, 291, 292, 41, 42, 0, 293, 294, 0, 0, 2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 2644 0, 517, 0, 0, 172, 0, 0, 45, 46, 297, 2645 298, 299, 300, 8, 9, 10, 11, 12, 13, 14, 2646 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2647 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2648 283, 284, 31, 285, 8, 9, 10, 11, 12, 13, 2649 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2650 24, 25, 0, 0, 26, 27, 28, 0, 0, 286, 2651 34, 0, 0, 31, 0, 287, 0, 38, 39, 288, 2652 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2653 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2654 0, 34, 0, 0, 0, 0, 37, 0, 336, 337, 2655 40, 0, 295, -35, 296, 0, 0, 41, 42, 0, 2656 45, 46, 297, 298, 299, 300, 8, 9, 10, 11, 2657 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2658 22, 23, 24, 25, 0, 338, 26, 27, 28, 0, 2659 0, 45, 46, 283, 284, 31, 285, 8, 9, 10, 2660 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2661 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2662 0, 0, 286, 34, 0, 0, 31, 0, 287, 0, 2663 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2664 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2665 0, 0, 0, 0, 34, 0, 0, 0, 0, 111, 2666 0, 38, 39, 0, 0, 295, 0, 296, 0, 0, 2667 41, 42, 0, 45, 46, 297, 298, 299, 300, 8, 2668 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2669 19, 20, 21, 22, 23, 24, 25, 0, 44, 26, 2670 27, 28, 0, 0, 45, 46, 283, 284, 31, 285, 2671 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2672 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2673 26, 27, 28, 0, 0, 286, 34, 0, 0, 31, 2674 684, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2468 2675 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2469 2676 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2470 0, 0, 111, 0, 38, 39, 0, 0, 295, 0, 2471 44, 509, 0, 41, 42, 0, 0, 45, 46, 297, 2472 298, 299, 300, 2, 207, 4, 5, 6, 7, 8, 2473 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2474 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2475 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477 0, 0, 0, 0, 509, 509, 0, 0, 0, 0, 2478 0, 0, 0, 0, 0, 286, 34, 0, 35, 0, 2479 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2480 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2483 343, 0, 0, 0, 0, 760, 0, 344, 46, 297, 2484 298, 299, 300, 2, 207, 4, 5, 6, 7, 8, 2485 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2486 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2487 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2488 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2489 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2490 26, 27, 28, 0, 0, 286, 34, 0, 35, 31, 2491 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2492 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2493 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2494 0, 0, 37, 0, 38, 39, 40, 0, 295, 0, 2495 969, 0, 0, 41, 42, 760, 0, 344, 46, 297, 2496 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, 2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2498 0, 158, 0, 0, 0, 509, 0, 0, 45, 46, 2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2500 0, 0, 0, 509, 0, 0, 0, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 2, 207, 4, 5, 2502 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2677 0, 0, 0, 0, 38, 39, 0, 0, 295, 0, 2678 158, 0, 0, 0, 0, 0, 45, 46, 297, 298, 2679 299, 300, 8, 9, 10, 11, 12, 13, 14, 15, 2503 2680 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2504 0, 0, 26, 27, 28, 0, 0, 0, 0, 283,2681 0, 685, 26, 27, 28, 1220, 0, 45, 46, 283, 2505 2682 284, 31, 285, 8, 9, 10, 11, 12, 13, 14, 2506 2683 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2507 25, 0, 0, 26, 27, 28, 509, 509, 286, 34,2508 0, 35, 31, 36, 287, 0, 38, 39, 288, 0,2684 25, 0, 0, 26, 27, 28, 0, 0, 286, 34, 2685 0, 0, 31, 0, 287, 0, 38, 39, 288, 0, 2509 2686 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2510 2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511 2688 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2512 0, 295, 0, 969, 0, 0, 0, 0, 760, 0, 2513 45, 46, 297, 298, 299, 300, 2, 207, 4, 5, 2514 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2515 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2516 0, 0, 26, 27, 28, 0, 0, 0, 0, 283, 2517 284, 31, 285, 8, 9, 10, 11, 12, 13, 14, 2518 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2519 25, 0, 0, 26, 27, 28, 0, 0, 286, 34, 2520 0, 35, 31, 36, 287, 0, 38, 39, 288, 0, 2521 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523 34, 0, 0, 0, 0, 0, 0, 208, 39, 0, 2524 0, 295, 0, 343, 0, 0, 0, 0, 0, 0, 2525 344, 46, 297, 298, 299, 300, 2, 207, 4, 5, 2526 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2527 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2528 0, 0, 26, 27, 28, 0, 0, 0, 0, 283, 2529 284, 31, 285, 8, 9, 10, 11, 12, 13, 14, 2530 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2531 25, 0, 0, 0, 0, 0, 0, 0, 286, 34, 2532 0, 35, 31, 36, 287, 0, 208, 39, 288, 0, 2533 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2535 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2536 0, 295, 0, 1005, 0, 0, 0, 0, 0, 0, 2537 1006, 46, 297, 298, 299, 300, 2, 207, 4, 5, 2538 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2539 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2540 0, 0, 26, 27, 28, 0, 0, 0, 0, 283, 2541 284, 31, 285, 0, 0, 0, 0, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 0, 0, 286, 34, 2544 0, 35, 0, 36, 287, 0, 38, 39, 288, 0, 2545 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2548 0, 295, 0, 969, 0, 0, 0, 0, 0, 0, 2549 344, 46, 297, 298, 299, 300, 2, 207, 4, 5, 2550 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2551 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2552 0, 0, 26, 27, 28, 0, 0, 0, 0, 283, 2553 284, 31, 285, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2555 0, 0, 0, 0, 0, 0, 0, 0, 286, 34, 2556 0, 35, 0, 36, 287, 0, 208, 39, 288, 0, 2557 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2560 0, 295, 0, 379, 0, 0, 0, 0, 0, 0, 2561 45, 46, 297, 298, 299, 300, 1, 2, 3, 4, 2562 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2563 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2564 25, 0, 0, 26, 27, 28, 29, 0, 0, 30, 2565 0, 0, 31, 32, 0, 0, 0, 0, 0, 0, 2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2567 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2568 34, 0, 35, 0, 36, 37, 0, 38, 39, 40, 2569 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2572 0, 0, 43, 0, 44, 0, 0, 0, -523, 0, 2573 0, 45, 46, 1, 2, 3, 4, 5, 6, 7, 2574 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2575 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2576 26, 27, 28, 29, 0, 0, 30, 0, 0, 31, 2577 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579 0, 0, 0, 0, 33, 0, 0, 34, 0, 35, 2580 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 2581 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2584 0, 44, 0, 0, 0, 0, 0, 0, 45, 46, 2585 1, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2586 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2587 21, 22, 23, 24, 25, -294, 0, 26, 27, 28, 2588 29, 0, 0, 30, 0, 0, 31, 0, 0, 0, 2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2591 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2592 0, 38, 39, 0, 0, -294, 2, 207, 4, 5, 2593 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2594 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2595 0, 0, 26, 27, 28, 0, 0, 0, 44, 0, 2596 0, 31, 0, 0, 0, 45, 46, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2599 0, 35, 0, 36, 37, 0, 208, 39, 40, 0, 2600 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2603 0, 43, 0, 209, 0, 0, 0, 0, 0, 0, 2604 45, 46, 2, 207, 4, 5, 6, 7, 8, 9, 2605 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2606 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2607 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2608 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2609 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2610 0, 26, 27, 28, 0, 34, 0, 35, 0, 36, 2611 31, 0, 38, 39, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2613 0, 0, 0, 0, 1367, 0, 0, 0, 34, 0, 2614 0, 0, 0, 37, 0, 336, 337, 40, 0, 678, 2615 0, 0, 0, 0, 41, 42, 45, 46, 2, 207, 2616 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2617 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2618 24, 25, 338, 0, 26, 27, 28, 0, 0, 45, 2619 46, 0, 0, 31, 0, 0, 0, 8, 9, 10, 2620 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2621 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2622 0, 34, 0, 35, 0, 36, 31, 0, 38, 39, 2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 1369, 0, 0, 0, 34, 0, 0, 0, 0, 111, 2626 0, 38, 39, 0, 0, 678, 0, 0, 0, 0, 2627 41, 42, 45, 46, 2, 207, 4, 5, 6, 7, 2628 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2629 18, 19, 20, 21, 22, 23, 24, 25, 44, 0, 2630 26, 27, 28, 0, 0, 45, 46, 0, 0, 31, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2634 0, 36, 0, 0, 208, 39, 0, 2, 207, 4, 2635 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2636 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2637 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2638 0, 271, 31, 0, 0, 0, 0, 0, 45, 46, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2641 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2642 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2643 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2644 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2645 0, 0, 0, 0, 678, 31, 0, 0, 0, 0, 2646 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2649 38, 39, 0, 2, 207, 4, 5, 6, 7, 8, 2650 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2651 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2652 27, 28, 0, 0, 0, 0, 0, 592, 31, 0, 2653 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2656 36, 0, 0, 208, 39, 8, 9, 10, 11, 12, 2657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2658 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2659 0, 0, 283, 284, 31, 285, 0, 0, 0, 0, 2660 209, 0, 0, 0, 0, 0, 0, 45, 46, 0, 2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662 0, 286, 34, 0, 0, 0, 0, 287, 0, 38, 2663 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2664 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 295, 0, 517, 0, 0, 172, 2667 0, 0, 0, 45, 46, 297, 298, 299, 300, 8, 2668 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2669 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2670 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2671 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 2672 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2673 21, 22, 23, 24, 25, 286, 34, 26, 27, 28, 2674 0, 640, 0, 38, 39, 288, 31, 0, 289, 290, 2675 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2677 0, 0, 0, 0, 34, 0, 0, 0, 295, -35, 2678 741, 38, 39, 0, 0, 0, 0, 45, 46, 297, 2679 298, 299, 300, 8, 9, 10, 11, 12, 13, 14, 2680 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2681 25, 0, 0, 26, 27, 28, 634, 0, 338, 0, 2682 283, 284, 31, 285, 0, 45, 46, 0, 0, 0, 2683 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2684 17, 18, 19, 20, 21, 22, 23, 24, 25, 286, 2685 34, 26, 27, 28, 0, 287, 0, 38, 39, 288, 2686 31, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2687 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2688 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2689 0, 0, 295, 0, 296, 38, 39, 0, 0, 0, 2690 0, 45, 46, 297, 298, 299, 300, 8, 9, 10, 2691 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2692 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2693 0, 0, 258, 0, 283, 284, 31, 285, 0, 45, 2694 46, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2695 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2696 23, 24, 25, 286, 34, 26, 27, 28, 0, 287, 2697 0, 38, 39, 288, 31, 0, 289, 290, 291, 292, 2698 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2700 0, 0, 34, 0, 0, 0, 295, 0, 158, 38, 2701 39, 0, 0, 0, 0, 45, 46, 297, 298, 299, 2702 300, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2703 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2704 0, 26, 27, 28, 0, 0, 158, 0, 283, 284, 2705 31, 285, 0, 45, 46, 0, 0, 0, 0, 8, 2706 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2707 19, 20, 21, 22, 23, 24, 25, 286, 34, 26, 2708 27, 28, 0, 287, 0, 38, 39, 288, 31, 0, 2709 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2711 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2712 295, 0, 592, 208, 39, 0, 0, 0, 0, 45, 2689 0, 295, 0, 592, 0, 0, 0, 0, 0, 45, 2713 2690 46, 297, 298, 299, 300, 8, 9, 10, 11, 12, 2714 2691 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2715 23, 24, 25, 0, 0, 26, 27, 28, 0, 0,2716 271, 0, 283, 284, 31, 285, 0, 45, 46, 0,2692 23, 24, 25, 0, 258, 26, 27, 28, 0, 0, 2693 45, 46, 283, 284, 31, 285, 0, 0, 0, 0, 2717 2694 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2718 2695 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 2722 2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2723 2700 34, 0, 0, 0, 295, 0, 379, 38, 39, 0, 2724 0, 0, 0, 45, 46, 297, 298, 299, 300, 467, 2725 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2701 0, 0, 45, 46, 297, 298, 299, 300, 467, 2, 2702 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2703 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2704 23, 24, 25, 0, 158, 26, 27, 28, 0, 0, 2705 45, 46, 0, 0, 31, 0, 0, 0, 8, 9, 2706 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2707 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2708 28, 0, 34, 0, 35, 0, 36, 31, 0, 38, 2709 39, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2726 2710 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2727 22, 23, 24, 25, 338, 0, 26, 27, 28, 0,2728 0, 45, 46, 0, 0, 31, 0, 0, 0, 8,2729 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,2730 1 9, 20, 21, 22, 23, 24, 25, -294, 0, 26,2731 2 7, 28, 0, 34, 0, 35, 0, 36, 31, 0,2732 38, 39, 0, 0, 0, 0, 0, 8, 9, 10,2733 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,2734 21, 22, 23, 24, 25, -294, 34, 26, 27, 28,2735 0, 3 7, 0, 336, 337, 40, 31, -294, 0, 0,2736 -3, 0, 41, 42, 0, 8, 9, 10, 11, 12,2737 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,2738 23, 24, 25, 0, 34, 26, 27, 28, 634, 37,2739 338, 336, 337, 40, 31, -294, 0, 45, 46, 0,2740 41, 42, 0, 8, 9, 10, 11, 12, 13, 14,2741 1 5, 16, 17, 18, 19, 20, 21, 22, 23, 24,2742 2 5, 0, 34, 26, 27, 28, 0, 37, 338, 38,2743 39, 40, 31, 0, 0, 45, 46, 0, 41, 42,2744 0, 8, 9, 10, 11, 12, 13, 14, 15, 16,2711 22, 23, 24, 25, 0, 34, 26, 27, 28, 0, 2712 37, 0, 38, 39, 40, 31, 0, 0, 0, -3, 2713 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2714 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2715 24, 25, 0, 34, 26, 27, 28, 43, 37, 158, 2716 38, 39, 40, 31, 0, 45, 46, 0, 0, 41, 2717 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2718 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2719 0, 34, 26, 27, 28, 43, 37, 44, 208, 39, 2720 40, 31, 0, 45, 46, 0, 0, 41, 42, 0, 2721 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2722 18, 19, 20, 21, 22, 23, 24, 25, -291, 34, 2723 26, 27, 28, 43, 37, 271, 336, 337, 40, 31, 2724 0, 45, 46, 0, 0, 41, 42, 0, 8, 9, 2725 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2726 20, 21, 22, 23, 24, 25, -291, 34, 26, 27, 2727 28, 634, 0, 338, 38, 39, 0, 31, -291, 45, 2728 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2745 2729 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2746 34, 26, 27, 28, 43, 37, 44, 208, 39, 40,2747 31, 0, 0, 45, 46, 0, 41, 42, 0, 8,2730 0, 26, 27, 28, 0, 34, 0, 0, 0, 634, 2731 31, 338, 38, 39, 0, 0, -291, 45, 46, 8, 2748 2732 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2749 2733 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2750 27, 28, 43, 37, 271, 336, 337, 40, 31, 685,2751 0, 45, 46, 0, 41, 42, 0, 8, 9, 10,2734 27, 28, 0, 0, 0, 208, 39, 0, 31, 338, 2735 0, 0, 0, 0, 0, 45, 46, 8, 9, 10, 2752 2736 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2753 21, 22, 23, 24, 25, -294, 34, 26, 27, 28, 2754 634, 0, 338, 38, 39, 0, 31, 0, 0, 45, 2755 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2757 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2758 686, 38, 39, 0, 687, -294, 0, 45, 46, 0, 2737 21, 22, 23, 24, 25, 0, 34, 26, 27, 28, 2738 0, 0, 271, 38, 39, 0, 31, 0, 45, 46, 2759 2739 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2760 2740 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2761 26, 27, 28, 0, 0, 0, 0, 0, 338, 31,2762 685, 0, 0, 0, 0, 45, 46, 0, 8, 9,2741 26, 27, 28, 0, 34, 0, 0, 0, 0, 31, 2742 338, 38, 39, 0, 0, 0, 45, 46, 8, 9, 2763 2743 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2764 2744 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2765 28, 0, 0, 0, 38, 39, 0, 31, 685, 8, 2766 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2767 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2768 27, 28, 0, 0, 0, 34, 0, 0, 31, 0, 2769 0, 686, 38, 39, 0, 1099, 0, 0, 45, 46, 2745 28, 0, 0, 0, 38, 39, 0, 31, 685, 0, 2746 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2770 2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2771 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2772 0, 0, 0, 38, 39, 0, 0, 0, 0, 686, 2773 0, 0, 0, 1231, 0, 0, 45, 46, 0, 0, 2774 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2775 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2776 686, 26, 27, 28, 0, 0, 0, 45, 46, 0, 2777 31, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2778 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2779 0, 26, 27, 28, 0, 0, 0, 0, 34, 0, 2780 31, 0, 0, 0, 0, 38, 39, 0, 0, 8, 2781 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2782 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2783 27, 28, 485, 486, 487, 38, 39, 0, 31, 0, 2784 0, 0, 592, 0, 0, 0, 0, 0, 0, 45, 2785 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2786 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2787 0, 0, 44, 38, 39, 0, 0, 0, 0, 45, 2788 46, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2789 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2790 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2791 0, 0, 0, 0, 0, 0, 31, 0, 283, 284, 2792 0, 285, 1049, 0, 1050, 0, 0, 1051, 1052, 1053, 2793 1054, 1055, 1056, 1057, 1058, 0, 0, 1547, 1059, 0, 2794 0, 0, 1060, 1061, 34, 33, 35, 286, 36, 0, 2795 0, 38, 39, 1062, 0, 0, 0, 288, 0, 0, 2796 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2748 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2749 0, 592, 38, 39, 0, 0, 0, 45, 46, 2, 2750 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2751 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2752 23, 24, 25, 0, 0, 26, 27, 28, 0, 44, 2753 0, 0, 0, 0, 31, 45, 46, 0, 0, 0, 2797 2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2798 0, 0, 0, 0, 0, 0, 0, -415, 0, 0, 2799 295, 0, 379, 0, 0, 172, 0, 0, 0, 45, 2800 46, 297, 298, 299, 300, 0, 0, 0, 0, 1064, 2801 0, 283, 284, -129, 285, 1049, 0, 1050, 0, 0, 2802 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 0, 0, 2803 0, 1059, 0, 0, 0, 1060, 1061, 0, 33, 0, 2804 286, 0, 0, 0, 0, 0, 1062, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756 0, 0, 34, 0, 35, 0, 36, 0, 0, 38, 2757 39, 283, 284, 0, 285, 1041, 0, 1042, 0, 0, 2758 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 2759 1524, 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 2760 286, 0, 0, 0, 0, -412, 1054, 0, 0, 0, 2805 2761 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2806 2762 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2807 2763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2808 2764 0, 0, 0, 295, 0, 379, 0, 0, 172, 0, 2765 0, 45, 46, 297, 298, 299, 300, 0, 0, 283, 2766 284, 1056, 285, 1041, 0, 1042, -126, 0, 1043, 1044, 2767 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 2768 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 2769 0, 0, 0, 0, 1054, 0, 0, 0, 288, 0, 2770 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 0, 295, 0, 379, 0, 0, 172, 0, 0, 45, 2774 46, 297, 298, 299, 300, 0, 0, 0, 0, 1056, 2775 0, 0, 0, 0, -126, 2, 207, 4, 5, 6, 2776 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2777 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2778 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2779 31, 0, 283, 284, 0, 285, 1041, 0, 1042, 1398, 2780 1399, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2781 0, 1524, 1051, 0, 0, 0, 1052, 1053, 34, 33, 2782 35, 286, 36, 0, 0, 38, 39, 1054, 0, 0, 2783 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2784 0, 293, 294, 0, 0, 0, 0, 1311, 0, 0, 2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2786 0, 0, 0, 0, 295, 0, 379, 0, 0, 172, 2809 2787 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2810 0, 0, 1064, 0, 0, 0, -129, 2, 207, 4, 2811 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2812 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2813 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2814 0, 0, 31, 0, 283, 284, 0, 285, 1049, 0, 2815 1050, 1417, 1418, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2816 1058, 0, 0, 1547, 1059, 0, 0, 0, 1060, 1061, 2817 34, 33, 35, 286, 36, 0, 0, 38, 39, 1062, 2818 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2819 41, 42, 0, 293, 294, 0, 0, 0, 0, 1325, 2788 283, 284, 1056, 285, 1041, 0, 1042, 1398, 1399, 1043, 2789 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 2790 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 2791 0, 0, 0, 0, 0, 1054, 0, 0, 0, 288, 2792 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2793 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2820 2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2821 0, 0, 0, 0, 0, 0, 295, 0, 379, 0,2822 0, 172, 0, 0, 0, 45, 46, 297, 298, 299,2823 300, 0, 0, 283, 284, 1064, 285, 1049, 0, 1050,2824 1 417, 1418, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,2825 0, 0, 0, 1059, 0, 0, 0, 1060, 1061, 0,2826 33, 0, 286, 0, 0, 0, 0, 0, 1062, 0,2827 0, 0, 288, 0, 0, 289, 290, 291, 292, 41,2828 42, 0, 293, 294, 0, 0, 0, 0, 0, 0,2795 0, 0, 295, 0, 379, 0, 0, 172, 0, 0, 2796 45, 46, 297, 298, 299, 300, 0, 0, 283, 284, 2797 1056, 285, 1041, 0, 1042, 0, 0, 1043, 1044, 1045, 2798 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 0, 2799 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 0, 2800 0, 0, 0, 1054, 0, 0, 0, 288, 0, 0, 2801 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2802 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2829 2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2830 0, 0, 0, 0, 0, 295, 0, 379, 0, 0, 2831 172, 0, 0, 0, 45, 46, 297, 298, 299, 300, 2832 0, 0, 283, 284, 1064, 285, 1049, 0, 1050, 0, 2833 0, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 0, 2834 0, 0, 1059, 0, 0, 0, 1060, 1061, 0, 33, 2835 0, 286, 0, 0, 0, 0, 0, 1062, 0, 0, 2804 295, 0, 379, 0, 0, 172, 0, 0, 45, 46, 2805 297, 298, 299, 300, 286, 0, 0, 0, 1056, 0, 2806 640, 0, 140, 141, 288, 0, 0, 289, 290, 291, 2807 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2808 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2809 0, 0, 0, 0, 0, 0, 0, 295, 0, 641, 2810 0, 642, 380, 0, 0, 45, 46, 297, 298, 299, 2811 300, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2836 2812 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2837 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2838 283, 284, 0, 285, 0, 0, 0, 0, 0, 0, 2839 0, 0, 0, 0, 295, 0, 379, 0, 0, 172, 2840 0, 0, 0, 45, 46, 297, 298, 299, 300, 286, 2841 0, 0, 0, 1064, 0, 287, 0, 0, 0, 288, 2842 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2843 294, 0, 0, 0, 0, 0, 0, 0, 283, 284, 2844 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2845 0, 0, 295, 0, 379, 0, 0, 283, 284, 0, 2846 285, 344, 46, 297, 298, 299, 300, 286, 0, 0, 2813 0, 293, 294, 0, 0, 0, 0, 0, 0, 283, 2814 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2815 0, 0, 0, 0, 295, 0, 379, 0, 283, 284, 2816 0, 285, 708, 46, 297, 298, 299, 300, 286, 0, 2817 0, 0, 0, 0, 287, 0, 0, 0, 288, 0, 2818 0, 289, 290, 291, 292, 41, 42, 286, 293, 294, 2847 2819 0, 0, 0, 287, 0, 0, 0, 288, 0, 0, 2848 289, 290, 291, 292, 41, 42, 286, 293, 294, 0, 2849 0, 0, 287, 0, 0, 0, 288, 0, 0, 289, 2850 290, 291, 292, 41, 42, 0, 293, 294, 0, 0, 2851 506, 0, 0, 0, 0, 283, 284, 0, 285, 45, 2852 46, 297, 298, 299, 300, 0, 0, 0, 0, 295, 2853 0, 0, 0, 0, 283, 284, 0, 285, 45, 46, 2820 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2821 0, 295, 0, 379, 0, 283, 284, 0, 285, 344, 2822 46, 297, 298, 299, 300, 0, 0, 0, 0, 0, 2823 506, 0, 0, 0, 283, 284, 0, 285, 45, 46, 2854 2824 297, 298, 299, 300, 286, 0, 0, 0, 0, 0, 2855 2825 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2856 2826 292, 41, 42, 286, 293, 294, 0, 0, 0, 287, 2857 2827 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2858 41, 42, 0, 293, 294, 0, 0, 511, 0, 0, 2859 0, 0, 0, 0, 0, 0, 45, 46, 297, 298, 2860 299, 300, 0, 0, 0, 0, 514, 0, 0, 0, 2861 0, 0, 0, 0, 0, 45, 46, 297, 298, 299, 2862 300, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2863 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2864 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 2865 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2828 41, 42, 0, 293, 294, 0, 0, 295, 0, 0, 2829 0, 283, 284, 0, 285, 45, 46, 297, 298, 299, 2830 300, 0, 0, 0, 0, 0, 511, 0, 0, 0, 2831 0, 0, 0, 0, 45, 46, 297, 298, 299, 300, 2832 286, 0, 0, 0, 0, 0, 287, 0, 0, 0, 2833 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2834 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2836 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 2837 0, 45, 46, 297, 298, 299, 300, 2, 207, 4, 2838 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2839 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2840 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2866 2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2867 2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2868 0, 0, 0, 0, 34, 0, 35, 0, 36, 37,2869 0, 175, 176, 40, 0, 0, 0, 0, 0, 0,2870 41, 42, 206, 2, 207, 4, 5, 6, 7, 8,2871 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,2872 19, 20, 21, 22, 23, 24, 25, 0, 0, 26,2873 27, 28, 0, 0, 0, 0, 0, 0, 31, 0,2844 34, 0, 35, 0, 36, 37, 0, 175, 176, 40, 2845 0, 0, 0, 0, 0, 0, 41, 42, 206, 2, 2846 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2847 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2848 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2849 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2874 2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875 2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2876 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2877 36, 0, 0, 208, 39, 467, 2, 207, 4, 5, 2852 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2853 39, 467, 2, 207, 4, 5, 6, 7, 8, 9, 2854 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2855 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2856 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2860 0, 0, 38, 39, 2, 207, 4, 5, 6, 7, 2861 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2862 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2863 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2864 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2865 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2866 0, 26, 27, 28, 485, 486, 487, 34, 0, 35, 2867 31, 36, 0, 0, 208, 39, 0, 0, 0, 0, 2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2869 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2870 0, 0, 0, 0, 0, 38, 39 2871 }; 2872 2873 #define yypact_value_is_default(yystate) \ 2874 ((yystate) == (-1310)) 2875 2876 #define yytable_value_is_error(yytable_value) \ 2877 YYID (0) 2878 2879 static const yytype_int16 yycheck[] = 2880 { 2881 0, 1, 240, 205, 186, 186, 117, 0, 43, 534, 2882 43, 43, 600, 756, 646, 1, 749, 187, 521, 0, 2883 186, 186, 186, 157, 169, 170, 749, 749, 186, 106, 2884 220, 602, 32, 186, 345, 349, 0, 188, 280, 32, 2885 157, 513, 600, 43, 874, 43, 603, 874, 349, 49, 2886 620, 32, 609, 733, 0, 983, 49, 600, 492, 571, 2887 0, 1, 496, 63, 602, 187, 66, 32, 32, 69, 2888 63, 692, 43, 66, 64, 0, 69, 1040, 39, 156, 2889 1, 600, 57, 69, 266, 266, 32, 43, 51, 1398, 2890 364, 202, 32, 63, 368, 1321, 418, 267, 82, 600, 2891 266, 266, 266, 1052, 1053, 1033, 106, 32, 266, 600, 2892 600, 262, 263, 266, 114, 72, 438, 117, 118, 109, 2893 282, 72, 1402, 96, 446, 39, 66, 695, 39, 69, 2894 28, 109, 107, 39, 39, 110, 95, 39, 82, 128, 2895 39, 66, 131, 1021, 82, 267, 109, 147, 148, 122, 2896 111, 186, 11, 186, 186, 148, 156, 157, 0, 295, 2897 1469, 161, 132, 1020, 1021, 109, 44, 45, 161, 0, 2898 129, 482, 905, 109, 488, 132, 0, 1, 72, 1128, 2899 78, 132, 905, 905, 687, 49, 186, 187, 186, 109, 2900 32, 257, 130, 1419, 187, 109, 109, 111, 109, 718, 2901 111, 32, 202, 109, 109, 111, 111, 109, 32, 111, 2902 210, 131, 43, 1040, 72, 186, 1496, 210, 49, 82, 2903 410, 1501, 222, 117, 812, 83, 84, 718, 718, 222, 2904 186, 266, 63, 266, 266, 66, 406, 115, 69, 1452, 2905 240, 1521, 85, 986, 219, 69, 112, 110, 1528, 82, 2906 114, 109, 252, 824, 812, 116, 107, 814, 114, 252, 2907 260, 44, 45, 3, 341, 265, 266, 267, 490, 812, 2908 113, 252, 272, 1486, 267, 1488, 257, 82, 111, 900, 2909 131, 793, 222, 147, 406, 396, 824, 252, 252, 49, 2910 426, 427, 924, 812, 371, 295, 3, 222, 273, 433, 2911 96, 602, 1501, 116, 109, 280, 252, 307, 0, 620, 2912 480, 812, 252, 424, 625, 589, 433, 148, 110, 430, 2913 112, 812, 812, 323, 116, 1288, 122, 252, 328, 1528, 2914 161, 114, 253, 44, 45, 328, 0, 82, 906, 131, 2915 132, 341, 504, 110, 932, 345, 210, 1225, 482, 349, 2916 350, 109, 418, 111, 114, 186, 187, 631, 480, 681, 2917 109, 116, 933, 130, 364, 110, 90, 91, 368, 1049, 2918 506, 371, 438, 348, 932, 511, 240, 132, 514, 210, 2919 446, 1211, 604, 951, 1211, 130, 608, 426, 427, 932, 2920 365, 222, 526, 72, 369, 112, 396, 1275, 116, 116, 2921 285, 125, 126, 114, 83, 84, 406, 629, 272, 526, 2922 252, 633, 130, 406, 1472, 257, 110, 1274, 1275, 55, 2923 1478, 252, 307, 308, 424, 350, 426, 427, 252, 999, 2924 430, 567, 111, 433, 745, 266, 130, 418, 112, 116, 2925 1498, 110, 116, 307, 111, 1503, 113, 116, 525, 1501, 2926 210, 1008, 1009, 130, 454, 494, 590, 438, 1386, 1387, 2927 345, 1288, 98, 130, 967, 446, 635, 636, 131, 1521, 2928 229, 112, 472, 590, 513, 116, 1528, 116, 1441, 110, 2929 480, 345, 482, 652, 484, 1448, 116, 480, 488, 248, 2930 732, 484, 110, 132, 494, 1127, 381, 328, 116, 116, 2931 130, 482, 647, 484, 666, 656, 506, 941, 508, 981, 2932 824, 511, 272, 513, 514, 132, 1394, 687, 349, 109, 2933 484, 521, 109, 824, 116, 525, 526, 109, 1099, 803, 2934 109, 111, 111, 113, 808, 295, 1499, 1394, 484, 578, 2935 132, 710, 109, 654, 484, 116, 467, 307, 473, 1117, 2936 130, 4, 5, 6, 7, 8, 9, 116, 194, 484, 2937 110, 132, 426, 427, 116, 687, 116, 116, 116, 116, 2938 570, 571, 116, 132, 736, 406, 418, 109, 578, 116, 2939 132, 217, 1085, 132, 132, 132, 109, 1090, 132, 589, 2940 590, 227, 117, 904, 594, 132, 438, 116, 123, 124, 2941 600, 116, 602, 109, 446, 111, 110, 528, 1288, 1177, 2942 1178, 745, 533, 132, 1441, 681, 69, 132, 71, 110, 2943 620, 1448, 896, 937, 846, 625, 72, 627, 74, 75, 2944 494, 631, 801, 110, 634, 635, 636, 83, 84, 72, 2945 110, 707, 484, 112, 590, 110, 621, 116, 112, 513, 2946 83, 84, 652, 484, 654, 109, 910, 488, 912, 295, 2947 484, 582, 637, 109, 549, 550, 551, 744, 114, 112, 2948 109, 861, 1499, 116, 72, 809, 651, 115, 72, 132, 2949 74, 75, 1362, 109, 684, 83, 84, 687, 999, 83, 2950 84, 881, 809, 109, 454, 111, 72, 622, 74, 75, 2951 681, 85, 86, 87, 109, 943, 111, 83, 84, 132, 2952 710, 711, 712, 111, 578, 109, 938, 1115, 718, 719, 2953 114, 1119, 867, 905, 905, 109, 707, 111, 64, 113, 2954 114, 109, 653, 111, 655, 112, 110, 907, 114, 905, 2955 905, 905, 116, 109, 744, 745, 506, 905, 508, 749, 2956 750, 511, 905, 109, 514, 111, 620, 732, 109, 70, 2957 111, 625, 109, 74, 745, 1445, 77, 1447, 79, 600, 2958 904, 602, 1505, 698, 132, 86, 556, 557, 558, 559, 2959 1305, 3, 1505, 1505, 705, 907, 114, 712, 10, 11, 2960 12, 13, 14, 793, 4, 5, 6, 7, 8, 9, 2961 110, 801, 109, 803, 111, 805, 116, 443, 808, 809, 2962 1012, 114, 812, 109, 1382, 111, 72, 39, 74, 75, 2963 1500, 117, 118, 33, 824, 72, 903, 83, 84, 114, 2964 1398, 132, 110, 469, 132, 1146, 83, 84, 116, 681, 2965 10, 11, 12, 13, 14, 67, 72, 110, 1122, 109, 2966 76, 109, 110, 116, 82, 111, 687, 83, 84, 69, 2967 110, 71, 49, 809, 111, 707, 116, 110, 109, 39, 2968 506, 756, 109, 116, 874, 511, 63, 112, 514, 66, 2969 805, 82, 69, 109, 118, 111, 1020, 718, 719, 110, 2970 1035, 117, 118, 874, 127, 116, 896, 67, 88, 89, 2971 1468, 1469, 213, 903, 904, 905, 72, 907, 4, 5, 2972 6, 7, 8, 9, 1225, 1085, 110, 83, 84, 919, 2973 1090, 128, 116, 904, 684, 110, 94, 109, 874, 111, 2974 30, 116, 932, 933, 874, 117, 118, 937, 131, 109, 2975 72, 111, 942, 943, 76, 111, 111, 117, 118, 874, 2976 109, 83, 84, 1115, 110, 109, 942, 1119, 1120, 112, 2977 116, 148, 109, 1085, 111, 0, 1, 967, 1090, 112, 2978 117, 118, 110, 69, 161, 71, 110, 109, 1481, 119, 2979 120, 812, 116, 83, 84, 117, 118, 112, 10, 11, 2980 12, 13, 14, 824, 29, 30, 1107, 32, 110, 999, 2981 187, 110, 942, 110, 116, 92, 93, 72, 43, 74, 2982 75, 76, 1146, 72, 49, 74, 75, 39, 83, 84, 2983 1020, 1021, 57, 210, 83, 84, 110, 1530, 63, 115, 2984 116, 66, 874, 669, 69, 222, 957, 109, 110, 111, 2985 1040, 352, 678, 354, 109, 67, 682, 110, 83, 84, 2986 874, 109, 117, 118, 1190, 1191, 72, 1193, 979, 1040, 2987 76, 110, 983, 110, 1200, 110, 1202, 83, 84, 116, 2988 112, 116, 107, 1235, 905, 110, 907, 1002, 110, 943, 2989 1080, 111, 117, 114, 116, 1085, 110, 109, 116, 111, 2990 1090, 131, 116, 109, 1040, 117, 118, 110, 111, 1099, 2991 1040, 117, 118, 506, 66, 508, 937, 1107, 511, 58, 2992 59, 514, 1033, 148, 999, 1040, 115, 116, 942, 44, 2993 45, 156, 1122, 552, 553, 72, 161, 74, 75, 76, 2994 1207, 442, 109, 110, 111, 999, 83, 84, 560, 561, 2995 1274, 328, 554, 555, 244, 114, 1146, 114, 109, 110, 2996 111, 186, 187, 109, 112, 1040, 118, 110, 110, 919, 2997 1322, 112, 109, 29, 1326, 1146, 112, 202, 112, 3, 2998 117, 118, 109, 110, 111, 210, 10, 11, 12, 13, 2999 14, 58, 59, 60, 219, 112, 116, 222, 1188, 1189, 3000 1248, 1249, 1250, 110, 229, 130, 130, 130, 1040, 161, 3001 110, 112, 114, 1189, 112, 39, 115, 1207, 110, 244, 3002 115, 1211, 115, 248, 109, 116, 1040, 252, 253, 406, 3003 1, 110, 1358, 110, 72, 1225, 74, 75, 76, 1229, 3004 1211, 266, 267, 67, 132, 83, 84, 116, 273, 110, 3005 110, 110, 110, 1229, 1225, 280, 110, 110, 1188, 1189, 3006 110, 116, 110, 110, 1085, 110, 110, 110, 110, 1090, 3007 222, 1423, 898, 1188, 110, 1211, 110, 1378, 49, 110, 3008 110, 1211, 115, 874, 1274, 1275, 29, 1515, 110, 130, 3009 380, 131, 112, 1283, 112, 116, 1211, 110, 1288, 1229, 3010 110, 116, 110, 328, 130, 116, 112, 114, 260, 110, 3011 110, 464, 110, 265, 116, 112, 110, 1288, 110, 110, 3012 116, 116, 112, 348, 349, 10, 11, 12, 13, 14, 3013 1080, 1321, 109, 1505, 1505, 106, 109, 1248, 1249, 1250, 3014 365, 109, 109, 114, 369, 1321, 1506, 109, 130, 1505, 3015 1505, 1505, 1288, 1283, 39, 380, 3, 1505, 1288, 112, 3016 132, 115, 1505, 10, 11, 12, 13, 14, 1283, 110, 3017 1530, 396, 110, 1288, 110, 1189, 147, 128, 115, 1211, 3018 1481, 406, 67, 115, 464, 156, 114, 695, 1378, 112, 3019 132, 1321, 39, 110, 1506, 116, 112, 1211, 350, 424, 3020 112, 491, 110, 493, 1394, 430, 110, 432, 110, 112, 3021 110, 112, 1377, 112, 112, 1229, 112, 112, 1530, 72, 3022 67, 74, 75, 76, 109, 1051, 111, 47, 115, 1419, 3023 83, 84, 117, 118, 72, 206, 74, 75, 76, 210, 3024 132, 132, 467, 1419, 132, 83, 84, 472, 132, 132, 3025 110, 1441, 1043, 115, 130, 480, 1288, 115, 1448, 484, 3026 1450, 110, 1452, 488, 112, 109, 491, 112, 493, 240, 3027 1441, 109, 112, 112, 1288, 1386, 1387, 1448, 786, 431, 3028 1505, 112, 1505, 1505, 112, 110, 110, 60, 109, 1419, 3029 112, 1481, 66, 112, 109, 132, 1486, 110, 1488, 110, 3030 114, 272, 76, 528, 275, 1441, 112, 1321, 533, 1499, 3031 112, 1441, 1448, 1424, 110, 1505, 1506, 670, 1448, 112, 3032 110, 473, 109, 1506, 295, 1515, 1441, 96, 1499, 96, 3033 85, 86, 87, 1448, 109, 132, 307, 115, 110, 72, 3034 1530, 74, 75, 76, 118, 110, 110, 1530, 110, 42, 3035 83, 84, 642, 116, 109, 863, 111, 582, 113, 114, 3036 130, 132, 110, 1499, 589, 110, 132, 96, 96, 1499, 3037 341, 1482, 132, 110, 345, 600, 109, 602, 132, 110, 3038 1491, 132, 112, 110, 1499, 110, 132, 161, 112, 115, 3039 670, 109, 132, 364, 115, 115, 621, 368, 906, 110, 3040 371, 691, 110, 693, 110, 1419, 110, 697, 1056, 1441, 3041 132, 564, 637, 562, 977, 565, 1448, 642, 563, 566, 3042 1211, 1211, 1469, 1364, 1540, 1298, 651, 1441, 653, 654, 3043 655, 1120, 1326, 1448, 1448, 912, 789, 66, 684, 1071, 3044 684, 1090, 594, 951, 920, 697, 799, 582, 222, 971, 3045 867, 648, 722, 1229, 83, 426, 427, 939, 570, 484, 3046 813, 1515, 687, 732, 570, 570, 691, 1499, 693, -1, 3047 622, 1297, 697, -1, -1, 627, -1, -1, 986, -1, 3048 705, -1, -1, 454, 1505, 1499, 260, -1, -1, 118, 3049 -1, 265, -1, 718, 719, -1, 467, -1, -1, -1, 3050 1450, -1, 1452, -1, -1, -1, 280, 732, -1, 789, 3051 -1, -1, -1, 1304, -1, -1, -1, -1, -1, 799, 3052 -1, 492, -1, 494, -1, 496, -1, -1, -1, 1037, 3053 -1, -1, 161, 813, -1, 506, 1486, 508, 1488, -1, 3054 511, -1, 513, 514, -1, -1, 698, 57, -1, 10, 3055 11, 12, 13, 14, 525, -1, -1, -1, -1, 72, 3056 712, 74, 75, 76, -1, 1356, -1, -1, 1359, -1, 3057 83, 84, -1, -1, -1, -1, 350, 867, 39, -1, 3058 -1, -1, -1, 873, -1, -1, -1, 812, -1, -1, 3059 -1, -1, -1, 222, -1, -1, 109, 107, 111, 824, 3060 110, -1, -1, -1, 117, 118, 67, 578, -1, 1117, 3061 -1, 1402, -1, -1, -1, -1, 1407, 130, 589, -1, 3062 -1, -1, -1, 1449, 914, 1451, -1, -1, -1, -1, 3063 -1, 260, -1, -1, -1, -1, 265, -1, -1, -1, 3064 -1, -1, 867, -1, 1435, -1, 156, 670, 873, 620, 3065 -1, -1, -1, 805, 625, -1, -1, 431, -1, 1485, 3066 631, 1487, 0, 1, 1017, 1018, -1, -1, -1, 1177, 3067 1178, 896, -1, -1, 448, -1, -1, -1, -1, -1, 3068 905, 971, 907, -1, -1, -1, -1, -1, -1, 914, 3069 -1, -1, -1, -1, 32, -1, -1, -1, -1, 473, 3070 -1, -1, -1, 1529, -1, 1531, -1, -1, -1, 219, 3071 -1, 49, 937, 684, -1, -1, -1, -1, 1544, 1545, 3072 -1, 350, 1075, 1076, -1, -1, -1, -1, 1519, -1, 3073 -1, 69, 957, -1, 1525, -1, -1, 1017, 1018, -1, 3074 -1, -1, -1, -1, -1, 1536, 971, -1, -1, 1540, 3075 -1, 722, -1, -1, 979, -1, -1, -1, 983, 0, 3076 1, -1, -1, 273, -1, -1, 789, -1, 106, -1, 3077 280, -1, -1, 744, -1, -1, 799, -1, -1, -1, 3078 -1, 1071, -1, -1, -1, 0, -1, -1, -1, -1, 3079 813, 32, -1, -1, -1, 1075, 1076, -1, -1, -1, 3080 -1, -1, 431, -1, -1, -1, -1, -1, 1033, -1, 3081 148, -1, -1, -1, -1, -1, -1, 32, 156, 157, 3082 594, -1, -1, -1, -1, 66, -1, -1, 69, -1, 3083 -1, -1, 803, -1, -1, -1, -1, 808, 348, -1, 3084 -1, -1, -1, -1, 473, -1, 1071, -1, 622, 187, 3085 1002, -1, -1, 627, 69, 365, -1, -1, -1, 369, 3086 1085, -1, -1, -1, 202, 1090, -1, 205, 206, -1, 3087 1223, -1, 210, -1, 1382, -1, -1, -1, -1, -1, 3088 -1, -1, 1107, -1, -1, -1, -1, -1, -1, -1, 3089 1398, -1, -1, 231, 1184, -1, -1, 235, -1, 237, 3090 -1, -1, 1255, -1, -1, -1, -1, -1, 246, -1, 3091 1263, 1264, 1265, -1, 252, -1, 157, -1, -1, 257, 3092 -1, -1, 432, -1, 698, 896, -1, -1, -1, 267, 3093 -1, -1, 903, -1, -1, -1, -1, 275, 712, -1, 3094 -1, 0, 157, 1223, -1, -1, -1, -1, 919, -1, 3095 -1, 72, -1, 74, 75, 76, -1, -1, 732, 1184, 3096 1468, 1469, 83, 84, -1, 594, -1, -1, -1, -1, 3097 941, 942, 943, 32, 1327, 1255, -1, -1, -1, -1, 3098 -1, 222, 1207, 1263, 1264, 1265, -1, -1, 109, -1, 3099 111, -1, -1, 622, 1017, 1018, 117, 118, 627, -1, 3100 -1, -1, -1, 341, -1, -1, -1, 345, -1, -1, 3101 69, 252, -1, 351, -1, -1, 231, -1, -1, -1, 3102 -1, -1, -1, 1248, 1249, 1250, 364, -1, 999, -1, 3103 368, 805, -1, 371, -1, -1, 1188, 252, -1, -1, 3104 -1, -1, 257, -1, -1, -1, -1, 1327, -1, -1, 3105 -1, -1, 1075, 1076, -1, -1, -1, -1, -1, -1, 3106 72, -1, 74, 75, 76, -1, -1, -1, -1, 698, 3107 -1, 83, 84, 72, -1, 74, 75, 76, -1, 589, 3108 418, -1, -1, 712, 83, 84, -1, -1, -1, -1, 3109 -1, -1, -1, -1, -1, 433, -1, 109, 157, 111, 3110 438, -1, -1, -1, -1, 117, 118, -1, 446, 1080, 3111 109, 621, 111, -1, -1, -1, -1, -1, 117, 118, 3112 -1, -1, -1, -1, -1, -1, 464, 637, -1, 467, 3113 -1, 1283, -1, -1, -1, -1, 351, -1, -1, -1, 3114 -1, 651, -1, -1, 482, -1, 484, -1, -1, -1, 3115 -1, 1122, 1377, 1378, 492, -1, -1, -1, 496, -1, 3116 -1, 1386, 1387, 97, 98, 99, 100, 101, 102, 103, 3117 104, 105, 106, -1, -1, -1, 805, -1, -1, -1, 3118 -1, -1, -1, -1, -1, -1, -1, 525, 526, -1, 3119 -1, -1, 433, 252, -1, -1, -1, 131, 257, 1424, 3120 -1, -1, -1, 418, -1, -1, -1, -1, -1, -1, 3121 -1, -1, -1, -1, -1, -1, -1, -1, 433, -1, 3122 -1, -1, 732, 438, -1, -1, -1, -1, 1002, -1, 3123 -1, 446, 1255, 571, -1, -1, 1207, -1, -1, -1, 3124 1263, 1264, 1265, 484, -1, -1, -1, -1, -1, 464, 3125 -1, 589, 590, -1, -1, -1, 1481, 1482, 1229, -1, 3126 -1, -1, -1, -1, 602, -1, 1491, 482, -1, 484, 3127 -1, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3128 1505, 1506, 620, -1, -1, 526, -1, 625, -1, -1, 3129 -1, -1, 351, 631, -1, -1, 634, 635, 636, -1, 3130 -1, -1, 66, -1, 1327, 1530, -1, -1, 72, -1, 3131 -1, 526, 76, -1, 652, 79, 80, 81, 82, 83, 3132 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3133 -1, -1, 670, -1, -1, 10, 11, 12, 13, 14, 3134 -1, -1, -1, 681, -1, 109, -1, 111, -1, 590, 3135 1321, -1, -1, 117, 118, 119, 120, 121, 122, 418, 3136 -1, -1, -1, -1, 39, -1, 130, -1, -1, 707, 3137 -1, -1, 710, 1002, 433, 590, -1, -1, -1, 438, 3138 -1, 719, -1, -1, 722, -1, 896, 446, -1, -1, 3139 -1, -1, 67, 634, 635, 636, -1, 72, -1, 74, 3140 75, 76, -1, -1, -1, 464, 744, 745, 83, 84, 3141 -1, 652, 750, -1, 1188, -1, -1, -1, -1, 634, 3142 635, 636, -1, 482, -1, 484, -1, 10, 11, 12, 3143 13, 14, -1, -1, 109, -1, 111, 652, -1, -1, 3144 -1, -1, 117, 118, -1, -1, -1, -1, 1419, -1, 3145 -1, 789, -1, -1, -1, 670, 39, -1, -1, -1, 3146 -1, 799, -1, 801, -1, 803, 681, 526, 806, 710, 3147 808, 809, -1, -1, -1, 813, -1, -1, -1, 1450, 3148 -1, 1452, -1, -1, 67, 823, -1, -1, -1, 72, 3149 -1, -1, 707, 76, -1, 710, -1, -1, -1, -1, 3150 83, 84, -1, -1, -1, -1, -1, -1, -1, 1283, 3151 -1, 0, -1, -1, -1, 1486, -1, 1488, -1, -1, 3152 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3153 745, 590, -1, -1, 117, 118, 874, -1, 0, -1, 3154 190, -1, -1, 32, 1515, -1, -1, 197, -1, -1, 3155 -1, -1, -1, -1, -1, -1, -1, -1, 896, 1188, 3156 801, -1, -1, -1, -1, 903, 904, -1, 809, 907, 3157 32, -1, -1, -1, 789, 634, 635, 636, -1, -1, 3158 69, -1, -1, -1, 799, -1, 801, -1, -1, -1, 3159 -1, 806, -1, 652, 809, 933, -1, -1, 813, -1, 3160 -1, -1, -1, 941, 942, -1, -1, 69, -1, -1, 3161 -1, 670, -1, -1, -1, -1, -1, -1, -1, 269, 3162 -1, -1, 681, -1, -1, -1, -1, -1, -1, -1, 3163 -1, -1, -1, 874, -1, -1, -1, -1, -1, -1, 3164 -1, -1, -1, -1, -1, -1, -1, -1, 707, -1, 3165 -1, 710, -1, -1, 1283, -1, -1, -1, -1, 874, 3166 -1, 999, -1, -1, -1, -1, -1, -1, 157, -1, 3167 -1, -1, -1, 323, 1012, -1, -1, -1, -1, 1017, 3168 1018, 331, 1020, 1021, 334, -1, 745, -1, -1, 904, 3169 -1, -1, -1, -1, -1, 157, -1, 1207, -1, -1, 3170 -1, 942, 1040, -1, -1, 3, 4, 5, 6, 7, 3171 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3172 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3173 789, -1, 30, 31, 32, -1, -1, 1075, 1076, -1, 3174 799, 39, 801, -1, -1, -1, -1, 806, 398, -1, 3175 809, -1, 402, -1, 813, -1, -1, -1, -1, -1, 3176 -1, -1, -1, 252, -1, -1, -1, -1, 257, 67, 3177 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1020, 3178 1021, -1, -1, -1, 1122, 83, 84, -1, -1, -1, 3179 252, -1, -1, -1, -1, 257, -1, -1, -1, 1040, 3180 -1, -1, 1017, 1018, -1, 1020, 1021, -1, 1146, -1, 3181 -1, 109, -1, 111, -1, 874, -1, -1, -1, 117, 3182 118, -1, -1, -1, -1, 1040, -1, -1, -1, 479, 3183 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3184 -1, -1, -1, -1, -1, 904, -1, -1, -1, -1, 3185 -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, 3186 1075, 1076, 351, -1, 39, -1, -1, 1377, -1, 1207, 3187 -1, -1, -1, 1211, -1, -1, -1, -1, -1, -1, 3188 -1, -1, -1, -1, -1, 1223, -1, 1225, -1, 351, 3189 -1, 1229, 67, -1, -1, -1, -1, 72, -1, 74, 3190 75, 76, -1, -1, -1, 26, 27, 28, 83, 84, 3191 -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, 3192 570, 571, -1, -1, -1, 1263, 1264, 1265, -1, 418, 3193 -1, 1146, -1, -1, 109, -1, 1274, 1275, -1, -1, 3194 -1, -1, 117, 118, 433, -1, -1, 1188, 1189, 438, 3195 1288, -1, -1, -1, -1, -1, 418, 446, 1017, 1018, 3196 -1, 1020, 1021, -1, -1, -1, -1, -1, -1, -1, 3197 1211, 433, -1, -1, 1189, 464, 438, -1, 99, -1, 3198 101, 1040, -1, 1321, 446, -1, -1, -1, 1229, 1327, 3199 -1, -1, -1, 482, -1, 484, 1211, -1, -1, -1, 3200 -1, -1, 464, -1, -1, 126, -1, 657, 1223, -1, 3201 1225, 661, -1, -1, -1, -1, 1075, 1076, -1, -1, 3202 482, -1, 484, -1, -1, -1, -1, -1, -1, -1, 3203 -1, -1, -1, 1274, 1275, -1, -1, 526, -1, -1, 3204 1255, -1, 1283, -1, -1, -1, -1, 1288, 1263, 1264, 3205 1265, -1, -1, -1, -1, -1, 1394, -1, -1, 1274, 3206 1275, 182, -1, -1, 526, -1, -1, -1, -1, 190, 3207 -1, 192, 193, 1288, -1, -1, 197, -1, 199, 200, 3208 1321, 1419, -1, 53, -1, 55, -1, 1146, 58, 59, 3209 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 3210 -1, 590, -1, 1441, -1, -1, -1, 77, -1, -1, 3211 1448, -1, 1327, -1, -1, -1, -1, -1, -1, 89, 3212 90, -1, -1, -1, 26, 27, 28, -1, 590, -1, 3213 1189, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3214 14, -1, -1, 793, -1, 634, 635, 636, 269, -1, 3215 -1, -1, 1211, 1394, -1, -1, -1, -1, -1, -1, 3216 -1, 1499, -1, 652, 1223, 39, 1225, -1, 1506, -1, 3217 -1, -1, 634, 635, 636, -1, -1, -1, 1419, 1394, 3218 -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, 3219 652, -1, 681, 67, -1, -1, 1255, 99, 72, 101, 3220 1441, -1, 76, -1, 1263, 1264, 1265, 1448, 670, 83, 3221 84, -1, -1, -1, -1, 1274, 1275, -1, 707, 681, 3222 -1, 710, -1, -1, -1, -1, 1441, -1, -1, 1288, 3223 -1, -1, -1, 1448, -1, 109, -1, -1, -1, -1, 3224 -1, -1, -1, 117, 118, 707, -1, -1, 710, 10, 3225 11, 12, 13, 14, -1, -1, 745, -1, 1499, -1, 3226 -1, 911, -1, -1, -1, -1, -1, -1, 1327, -1, 3227 -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 3228 182, -1, -1, 745, 1499, -1, -1, -1, -1, -1, 3229 192, 193, -1, -1, -1, 197, -1, 199, 200, -1, 3230 789, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3231 799, 72, 801, 74, 75, 76, -1, 806, -1, -1, 3232 809, -1, 83, 84, 813, -1, -1, 789, -1, 10, 3233 11, 12, 13, 14, -1, 1394, -1, 799, 988, 801, 3234 -1, -1, -1, -1, 806, -1, -1, 809, 109, -1, 3235 111, 813, -1, -1, -1, 1005, 117, 118, 39, -1, 3236 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3237 -1, -1, -1, -1, 344, -1, 346, -1, -1, -1, 3238 -1, -1, 1441, -1, -1, 874, 67, 357, 358, 1448, 3239 39, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3240 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3241 -1, -1, 874, -1, -1, 904, -1, -1, 67, -1, 3242 -1, -1, -1, 72, -1, 74, 75, 76, 109, -1, 3243 111, -1, -1, 1083, 83, 84, 117, 118, -1, -1, 3244 1499, -1, 904, -1, -1, -1, -1, -1, -1, -1, 3245 -1, -1, -1, 574, 575, -1, -1, -1, -1, -1, 3246 109, -1, -1, -1, -1, -1, -1, -1, 117, 118, 3247 -1, -1, -1, 1123, -1, -1, -1, -1, -1, -1, 3248 -1, -1, 603, -1, -1, 606, 607, -1, 609, -1, 3249 611, 612, -1, -1, -1, 616, 617, 3, 4, 5, 2878 3250 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2879 3251 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2880 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2881 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2884 0, 35, 0, 36, 0, 0, 38, 39, 2, 207, 2885 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3252 26, 27, 28, -1, 30, 31, 32, 33, 1017, 1018, 3253 36, 1020, 1021, 39, -1, -1, -1, -1, -1, -1, 3254 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3255 -1, 1040, -1, -1, -1, 1017, 1018, -1, 1020, 1021, 3256 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3257 -1, -1, 78, -1, -1, -1, 7, -1, 1040, 10, 3258 11, 12, 13, 14, -1, -1, 1075, 1076, -1, -1, 3259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3260 -1, -1, -1, -1, -1, 111, 37, 38, 39, 40, 3261 -1, 117, 118, 1075, 1076, -1, -1, -1, -1, -1, 3262 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3263 -1, -1, -1, 754, 755, 66, 67, -1, -1, -1, 3264 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3265 81, 82, 83, 84, -1, 86, 87, 1146, -1, -1, 3266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3267 -1, -1, 574, 575, -1, -1, -1, -1, 109, -1, 3268 111, -1, -1, -1, 1146, -1, 117, 118, 119, 120, 3269 121, 122, -1, -1, -1, -1, -1, -1, -1, -1, 3270 1189, 603, -1, -1, 606, 607, -1, 609, -1, 611, 3271 612, -1, -1, -1, 616, 617, -1, -1, -1, -1, 3272 -1, -1, 1211, -1, -1, -1, -1, 1189, -1, 699, 3273 -1, 701, -1, -1, 1223, -1, 1225, -1, 708, 709, 3274 -1, -1, -1, 713, -1, -1, -1, -1, -1, 1211, 3275 -1, -1, -1, -1, -1, 725, -1, -1, -1, -1, 3276 730, 1223, -1, 1225, -1, -1, 1255, -1, -1, -1, 3277 -1, -1, -1, -1, 1263, 1264, 1265, -1, -1, -1, 3278 -1, -1, -1, -1, -1, 1274, 1275, -1, 758, -1, 3279 911, -1, -1, 1255, -1, 916, -1, -1, -1, 1288, 3280 -1, 1263, 1264, 1265, -1, -1, -1, -1, -1, -1, 3281 -1, -1, 1274, 1275, -1, -1, -1, -1, -1, -1, 3282 -1, -1, -1, -1, -1, -1, 1288, -1, -1, -1, 3283 -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, 3284 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3285 49, -1, 754, 755, -1, -1, -1, -1, -1, -1, 3286 -1, -1, -1, -1, -1, 1327, -1, 66, -1, -1, 3287 7, -1, -1, 10, 11, 12, 13, 14, -1, -1, 3288 -1, -1, -1, -1, -1, -1, -1, 857, 858, 859, 3289 860, -1, 862, -1, -1, -1, -1, -1, -1, -1, 3290 37, 38, 39, 40, -1, 1394, -1, 877, -1, -1, 3291 -1, -1, -1, -1, -1, 114, -1, -1, -1, 118, 3292 -1, 891, -1, -1, -1, -1, -1, -1, -1, 66, 3293 67, -1, 1394, -1, -1, 72, -1, -1, -1, 76, 3294 -1, -1, 79, 80, 81, 82, 83, 84, 147, 86, 3295 87, -1, 1441, -1, -1, -1, 1077, -1, 157, 1448, 3296 -1, 931, 161, -1, -1, -1, -1, -1, -1, -1, 3297 -1, -1, 109, -1, 111, -1, -1, -1, -1, 1441, 3298 117, 118, 119, 120, 121, 122, 1448, 10, 11, 12, 3299 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3300 23, 24, 25, 26, 27, -1, 976, 30, 31, 32, 3301 1499, 210, 982, -1, 916, -1, 39, 987, -1, -1, 3302 -1, -1, 992, 222, 994, -1, -1, -1, 998, -1, 3303 1000, 1001, -1, -1, 1004, -1, -1, 1499, -1, -1, 3304 -1, 240, -1, 1013, 67, -1, -1, -1, -1, -1, 3305 -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, 3306 -1, 1031, 1032, -1, -1, -1, 265, -1, -1, -1, 3307 -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, 3308 -1, -1, -1, -1, -1, 1206, -1, -1, 1058, -1, 3309 -1, 1061, -1, -1, 117, 118, 295, -1, -1, -1, 3310 -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, 3311 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 3312 -1, -1, -1, -1, 76, -1, 78, -1, 80, -1, 3313 -1, -1, -1, -1, 1104, 87, -1, -1, -1, -1, 3314 1110, 1111, -1, -1, -1, -1, 345, -1, -1, -1, 3315 -1, 350, -1, -1, -1, -1, -1, -1, -1, -1, 3316 1130, -1, -1, 1133, -1, -1, 118, 1137, 120, 121, 3317 122, -1, -1, -1, -1, 1077, -1, -1, -1, -1, 3318 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3319 -1, -1, -1, 1163, -1, 1165, 1166, 1167, 1168, -1, 3320 -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, 3321 -1, 1181, -1, 1183, -1, -1, -1, 1187, -1, -1, 3322 -1, -1, -1, -1, -1, -1, -1, 426, 427, -1, 3323 -1, -1, -1, -1, 433, -1, -1, -1, -1, -1, 3324 -1, -1, -1, -1, -1, -1, 1216, 1217, -1, -1, 3325 -1, -1, -1, -1, -1, 454, -1, -1, -1, -1, 3326 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3327 222, -1, 224, 225, 226, -1, -1, -1, -1, -1, 3328 -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, 3329 -1, -1, -1, -1, -1, 494, 1266, 1267, -1, -1, 3330 -1, -1, -1, -1, 1206, -1, 1276, 506, 260, 508, 3331 -1, -1, 511, 265, 513, 514, -1, -1, -1, -1, 3332 -1, -1, -1, -1, -1, -1, -1, 526, 280, -1, 3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3334 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3335 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3336 26, 27, 28, -1, 30, 31, 32, 1337, -1, 1339, 3337 1340, 1341, -1, 39, -1, -1, 328, -1, -1, 578, 3338 -1, 1351, -1, -1, -1, -1, -1, -1, -1, -1, 3339 1360, 590, -1, -1, -1, 594, -1, -1, 350, -1, 3340 -1, 67, -1, 355, 356, -1, 72, -1, 74, 75, 3341 76, 363, 78, -1, -1, 1385, -1, 83, 84, -1, 3342 -1, 620, -1, -1, 147, -1, 625, -1, -1, -1, 3343 -1, -1, -1, -1, 157, 634, 635, 636, -1, 44, 3344 -1, -1, -1, 109, -1, 111, 169, 170, -1, -1, 3345 -1, 117, 118, 652, 406, -1, -1, -1, 1428, 1429, 3346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3347 -1, 1441, 424, -1, -1, -1, -1, 429, 1448, 431, 3348 37, 38, -1, 40, -1, 684, -1, 92, -1, -1, 3349 -1, -1, -1, -1, -1, -1, 448, 102, -1, 451, 3350 452, -1, -1, -1, -1, -1, -1, 459, -1, 66, 3351 1480, 710, -1, 712, 1484, 72, -1, 240, -1, 76, 3352 -1, 473, 79, 80, 81, 82, 83, 84, 480, 86, 3353 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3354 -1, 264, 1512, -1, 1514, -1, 745, -1, -1, -1, 3355 -1, -1, 109, 158, 111, -1, -1, 114, -1, -1, 3356 117, 118, 119, 120, 121, 122, -1, 172, -1, -1, 3357 -1, -1, 1542, 1543, -1, -1, -1, -1, -1, -1, 3358 1550, 1551, -1, -1, -1, -1, -1, -1, -1, -1, 3359 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3360 -1, -1, 801, -1, 209, -1, 805, -1, -1, -1, 3361 809, -1, -1, 218, -1, -1, -1, -1, -1, -1, 3362 -1, -1, -1, 228, -1, -1, -1, -1, -1, -1, 3363 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3364 -1, -1, 594, -1, -1, -1, -1, -1, 253, -1, 3365 -1, -1, -1, 258, -1, -1, -1, 380, -1, -1, 3366 -1, -1, -1, 66, -1, -1, 271, -1, -1, 72, 3367 622, -1, 277, 76, 279, 627, 79, 80, 81, 82, 3368 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3369 -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, 3370 -1, -1, -1, -1, -1, 904, 109, -1, 111, -1, 3371 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3372 919, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3373 -1, -1, -1, 338, -1, -1, -1, -1, 343, -1, 3374 -1, -1, -1, -1, 943, -1, 698, -1, -1, -1, 3375 -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, 3376 712, -1, -1, -1, -1, -1, -1, 372, -1, -1, 3377 -1, 376, 377, -1, 379, -1, -1, -1, -1, -1, 3378 732, 386, 387, -1, 389, 390, -1, 392, -1, 394, 3379 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3380 999, -1, -1, 526, -1, -1, 411, -1, 531, -1, 3381 -1, 534, -1, -1, 419, -1, -1, -1, -1, -1, 3382 -1, 1020, 1021, 546, -1, -1, -1, -1, -1, -1, 3383 -1, -1, -1, -1, -1, -1, -1, -1, -1, 444, 3384 -1, 793, -1, -1, -1, 568, -1, -1, -1, -1, 3385 -1, -1, -1, 805, -1, 578, -1, -1, -1, -1, 3386 -1, -1, 585, -1, -1, 470, -1, 590, -1, -1, 3387 -1, 476, 824, -1, -1, -1, 481, -1, -1, -1, 3388 -1, 1080, -1, -1, -1, -1, 3, 4, 5, 6, 3389 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3390 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3391 27, -1, 517, 30, 31, 32, 639, -1, -1, -1, 3392 -1, -1, 39, -1, 647, -1, -1, 532, -1, -1, 3393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3394 -1, -1, -1, -1, -1, -1, -1, 1146, -1, -1, 3395 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3396 -1, -1, -1, 37, 38, 570, 40, -1, -1, -1, 3397 -1, -1, -1, -1, 579, -1, -1, -1, -1, -1, 3398 -1, 586, -1, -1, -1, 937, -1, 592, -1, 1188, 3399 -1, -1, 66, -1, 111, -1, 601, -1, 72, -1, 3400 117, 118, 76, -1, -1, 79, 80, 81, 82, 83, 3401 84, -1, 86, 87, -1, 967, -1, -1, -1, -1, 3402 -1, -1, 745, -1, 747, -1, 1225, -1, -1, 156, 3403 157, -1, -1, -1, 757, 109, 641, 111, -1, -1, 3404 763, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3405 1002, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3406 -1, 1013, -1, 190, -1, -1, -1, -1, -1, -1, 3407 197, -1, 677, -1, -1, 1274, 1275, -1, -1, -1, 3408 685, -1, 805, 806, 1283, -1, 809, -1, -1, -1, 3409 -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 3410 823, 285, 286, -1, -1, -1, -1, -1, -1, 293, 3411 294, 716, -1, -1, -1, -1, -1, -1, -1, -1, 3412 -1, 726, 727, 307, 308, -1, -1, -1, -1, -1, 3413 -1, -1, -1, 1085, -1, -1, -1, -1, -1, -1, 3414 863, -1, 269, -1, 867, -1, -1, 1099, -1, -1, 3415 -1, -1, -1, -1, 759, -1, -1, -1, -1, 764, 3416 -1, 345, 10, 11, 12, 13, 14, 15, 16, 17, 3417 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3418 -1, 904, 30, 31, 32, -1, -1, -1, -1, -1, 3419 -1, 39, 40, -1, -1, 1394, 323, 381, -1, -1, 3420 -1, -1, -1, -1, 331, 332, -1, 334, 335, -1, 3421 -1, -1, -1, -1, -1, -1, -1, -1, 345, 67, 3422 943, -1, 349, 828, -1, -1, 74, 75, -1, -1, 3423 835, -1, -1, -1, -1, -1, 1188, -1, -1, -1, 3424 -1, 368, -1, 848, 371, 850, -1, -1, 971, -1, 3425 -1, 1450, -1, 1452, 977, -1, -1, -1, 981, 864, 3426 -1, -1, -1, 111, -1, 870, -1, 115, -1, 117, 3427 118, 398, -1, -1, -1, 402, -1, 882, -1, 1002, 3428 885, -1, -1, -1, -1, -1, -1, 1486, -1, 1488, 3429 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3430 -1, -1, -1, -1, -1, -1, 433, -1, -1, -1, 3431 -1, -1, 1035, -1, 1037, -1, 1515, -1, -1, -1, 3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1052, 3433 1053, 1283, 10, 11, 12, 13, 14, 15, 16, 17, 3434 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3435 1073, -1, 479, -1, -1, 482, -1, 962, -1, -1, 3436 -1, 39, -1, -1, -1, 549, 550, 551, 552, 553, 3437 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3438 564, 565, 566, -1, -1, -1, -1, 37, 38, 67, 3439 40, -1, 997, -1, 521, -1, -1, -1, 525, 526, 3440 -1, -1, -1, -1, -1, 1128, -1, -1, -1, -1, 3441 -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, 3442 -1, -1, 72, 1146, -1, -1, 76, -1, -1, 79, 3443 80, 81, 82, 83, 84, -1, 86, 87, 1161, 1162, 3444 -1, -1, -1, 570, 571, -1, -1, -1, -1, -1, 3445 1055, -1, -1, -1, -1, -1, 1061, -1, -1, 109, 3446 -1, 111, 589, 590, 114, -1, -1, 117, 118, 119, 3447 120, 121, 122, 600, -1, 602, 603, -1, -1, -1, 3448 -1, -1, 609, -1, -1, -1, -1, -1, -1, -1, 3449 1095, -1, 619, 620, -1, 1100, -1, -1, 625, -1, 3450 -1, -1, -1, 1108, -1, -1, -1, 634, 635, 636, 3451 -1, 695, -1, -1, -1, -1, -1, -1, -1, -1, 3452 -1, -1, -1, -1, -1, 652, -1, -1, -1, -1, 3453 657, 658, -1, -1, 661, 662, 1141, -1, -1, -1, 3454 -1, 668, -1, -1, -1, -1, -1, -1, 1153, -1, 3455 -1, 1156, -1, 1158, -1, -1, -1, -1, -1, -1, 3456 687, -1, -1, -1, -1, -1, -1, 1172, 1173, -1, 3457 -1, -1, 756, -1, -1, -1, -1, -1, 1530, 1302, 3458 -1, -1, 1305, 710, 711, -1, -1, -1, -1, 1194, 3459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460 -1, -1, 786, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, -1, 744, 745, -1, 3462 -1, -1, 749, 750, -1, -1, -1, -1, -1, -1, 3463 -1, -1, -1, -1, -1, -1, 1241, -1, -1, -1, 3464 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3465 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3466 -1, 30, 31, 32, -1, -1, 793, -1, -1, -1, 3467 39, -1, -1, -1, 801, -1, -1, -1, -1, -1, 3468 -1, 808, 809, -1, -1, 812, -1, 814, -1, -1, 3469 -1, -1, -1, -1, -1, -1, -1, 824, 67, -1, 3470 -1, -1, -1, 72, -1, 74, 75, 76, -1, 78, 3471 -1, 1316, -1, 1318, 83, 84, -1, -1, -1, -1, 3472 -1, -1, 906, -1, -1, 1330, -1, 1332, -1, -1, 3473 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, 111, -1, 1349, -1, -1, -1, 117, 118, 3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3476 1365, 1366, -1, -1, -1, -1, -1, 951, -1, 896, 3477 -1, 1376, -1, -1, 1379, -1, 903, 904, 905, -1, 3478 907, -1, -1, -1, 911, -1, -1, -1, -1, -1, 3479 -1, -1, 1515, -1, -1, 1400, -1, -1, -1, -1, 3480 -1, -1, 986, -1, 1409, 932, 933, 1412, -1, 1414, 3481 1415, 1416, -1, -1, -1, 999, 10, 11, 12, 13, 2886 3482 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2887 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2888 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2891 0, 34, 0, 35, 0, 36, 0, 0, 208, 39 2892 }; 2893 2894 #define yypact_value_is_default(yystate) \ 2895 ((yystate) == (-1315)) 2896 2897 #define yytable_value_is_error(yytable_value) \ 2898 YYID (0) 2899 2900 static const yytype_int16 yycheck[] = 2901 { 2902 0, 1, 240, 186, 205, 0, 734, 0, 43, 43, 2903 43, 534, 752, 186, 1, 752, 752, 187, 106, 186, 2904 117, 280, 169, 170, 513, 364, 349, 186, 220, 368, 2905 186, 349, 32, 186, 620, 186, 991, 32, 1029, 32, 2906 521, 345, 602, 43, 187, 879, 984, 759, 647, 49, 2907 492, 418, 0, 0, 496, 879, 49, 600, 188, 571, 2908 602, 43, 600, 63, 600, 600, 66, 32, 156, 69, 2909 63, 438, 600, 66, 600, 282, 69, 693, 49, 446, 2910 600, 72, 69, 266, 32, 32, 1041, 696, 39, 1335, 2911 634, 635, 636, 266, 426, 427, 57, 267, 43, 266, 2912 1028, 1029, 0, 1417, 43, 202, 106, 266, 1048, 653, 2913 266, 1060, 1061, 266, 114, 266, 39, 117, 118, 603, 2914 72, 635, 636, 482, 267, 609, 39, 51, 95, 44, 2915 45, 85, 262, 263, 32, 229, 39, 96, 64, 653, 2916 28, 132, 39, 114, 63, 72, 107, 147, 148, 110, 2917 257, 186, 186, 186, 248, 148, 156, 157, 109, 113, 2918 111, 161, 494, 130, 123, 488, 118, 711, 161, 110, 2919 910, 82, 39, 910, 910, 116, 147, 1491, 482, 44, 2920 45, 513, 82, 109, 719, 109, 186, 187, 111, 1138, 2921 78, 719, 1438, 719, 187, 156, 109, 711, 111, 490, 2922 115, 30, 202, 82, 186, 132, 109, 688, 111, 72, 2923 210, 111, 109, 132, 111, 1123, 82, 210, 410, 1127, 2924 83, 84, 222, 72, 1048, 74, 75, 107, 82, 222, 2925 11, 266, 266, 266, 83, 84, 406, 82, 117, 210, 2926 240, 186, 109, 109, 111, 1236, 578, 186, 111, 114, 2927 589, 131, 252, 341, 83, 84, 110, 252, 219, 252, 2928 260, 805, 111, 406, 109, 265, 266, 267, 828, 240, 2929 1, 1473, 272, 816, 267, 634, 635, 636, 816, 1421, 2930 816, 816, 994, 371, 602, 797, 828, 252, 816, 905, 2931 816, 805, 631, 96, 653, 295, 816, 504, 1289, 396, 2932 109, 272, 911, 109, 252, 252, 1508, 307, 1510, 257, 2933 480, 418, 273, 604, 1252, 682, 620, 608, 49, 280, 2934 123, 625, 131, 323, 1524, 44, 45, 424, 328, 1057, 2935 929, 438, 116, 430, 818, 328, 307, 480, 629, 446, 2936 1494, 341, 633, 109, 1544, 345, 1500, 956, 132, 349, 2937 350, 1551, 711, 39, 252, 90, 91, 285, 72, 257, 2938 1288, 1289, 1302, 1524, 364, 82, 109, 1521, 368, 83, 2939 84, 371, 1526, 72, 345, 106, 112, 1519, 938, 307, 2940 308, 57, 1524, 114, 83, 84, 114, 348, 1222, 748, 2941 1551, 126, 127, 110, 937, 114, 396, 111, 1222, 937, 2942 117, 937, 1544, 110, 365, 110, 406, 110, 369, 1551, 2943 117, 116, 111, 406, 117, 244, 147, 345, 116, 115, 2944 116, 1007, 1413, 3, 424, 156, 426, 427, 131, 116, 2945 430, 107, 116, 433, 110, 131, 116, 525, 10, 11, 2946 12, 13, 14, 3, 748, 132, 805, 72, 132, 0, 2947 1405, 1406, 132, 381, 454, 426, 427, 118, 83, 84, 2948 667, 116, 110, 124, 125, 0, 1, 39, 807, 117, 2949 418, 432, 472, 812, 733, 206, 116, 132, 1302, 210, 2950 480, 32, 482, 116, 484, 1413, 111, 480, 488, 484, 2951 438, 484, 132, 974, 494, 67, 116, 32, 446, 132, 2952 989, 648, 116, 116, 946, 828, 506, 0, 508, 240, 2953 828, 511, 132, 513, 514, 66, 1125, 0, 688, 132, 2954 418, 521, 1462, 494, 112, 525, 526, 657, 116, 1469, 2955 737, 66, 1016, 1017, 69, 109, 484, 484, 1137, 116, 2956 438, 272, 513, 219, 275, 688, 131, 1107, 446, 110, 2957 909, 380, 116, 116, 72, 132, 74, 75, 655, 850, 2958 110, 72, 901, 109, 295, 83, 84, 116, 132, 132, 2959 570, 571, 83, 84, 1302, 682, 307, 109, 578, 1188, 2960 1189, 112, 1522, 132, 482, 116, 484, 116, 112, 589, 2961 590, 109, 116, 80, 594, 590, 114, 273, 109, 109, 2962 600, 708, 602, 132, 280, 909, 109, 578, 111, 109, 2963 341, 80, 1093, 109, 345, 118, 119, 1098, 109, 942, 2964 620, 549, 550, 551, 111, 625, 113, 627, 589, 110, 2965 117, 631, 110, 364, 634, 635, 636, 368, 1462, 112, 2966 371, 112, 111, 116, 113, 1469, 72, 110, 117, 620, 2967 110, 1379, 943, 653, 625, 655, 116, 83, 84, 747, 2968 621, 110, 491, 72, 493, 74, 75, 116, 129, 1028, 2969 131, 222, 348, 865, 83, 84, 637, 110, 66, 4, 2970 5, 6, 7, 8, 9, 685, 110, 222, 688, 365, 2971 109, 652, 116, 369, 886, 426, 427, 109, 1522, 111, 2972 109, 252, 112, 1007, 109, 114, 116, 0, 1, 110, 2973 948, 711, 712, 713, 109, 116, 110, 252, 115, 719, 2974 720, 132, 116, 454, 871, 295, 110, 910, 64, 110, 2975 118, 109, 116, 111, 682, 116, 467, 910, 1466, 32, 2976 1468, 109, 912, 910, 69, 109, 71, 747, 748, 110, 2977 110, 910, 752, 753, 910, 116, 116, 910, 112, 910, 2978 708, 492, 110, 494, 110, 496, 112, 132, 116, 912, 2979 116, 114, 733, 161, 114, 506, 69, 508, 109, 110, 2980 511, 110, 513, 514, 682, 131, 132, 116, 1528, 109, 2981 1399, 1528, 1528, 1132, 525, 1523, 1319, 797, 1157, 350, 2982 110, 556, 557, 558, 559, 805, 116, 807, 1417, 809, 2983 708, 132, 812, 813, 643, 109, 816, 111, 813, 1020, 2984 908, 110, 114, 110, 118, 119, 70, 116, 828, 116, 2985 74, 759, 110, 77, 222, 79, 132, 72, 116, 74, 2986 75, 76, 86, 72, 82, 74, 75, 578, 83, 84, 2987 748, 120, 121, 1157, 83, 84, 426, 427, 589, 72, 2988 109, 74, 75, 692, 72, 694, 74, 75, 76, 698, 2989 83, 84, 260, 109, 109, 83, 84, 265, 109, 879, 2990 111, 1490, 1491, 82, 879, 114, 110, 118, 119, 620, 2991 112, 109, 116, 111, 625, 72, 1043, 74, 75, 76, 2992 631, 901, 109, 110, 111, 49, 83, 84, 908, 909, 2993 910, 109, 912, 111, 119, 72, 1123, 74, 75, 76, 2994 1127, 1128, 473, 1093, 924, 128, 83, 84, 1098, 1288, 2995 94, 879, 1236, 484, 88, 89, 506, 937, 938, 129, 2996 901, 511, 942, 131, 514, 621, 111, 947, 948, 484, 2997 1093, 109, 109, 111, 685, 1098, 109, 0, 1, 252, 2998 947, 637, 350, 506, 964, 508, 112, 110, 511, 213, 2999 114, 514, 109, 116, 974, 110, 652, 948, 109, 110, 3000 111, 879, 92, 93, 72, 49, 29, 30, 76, 32, 3001 112, 109, 723, 111, 110, 83, 84, 567, 112, 63, 3002 43, 109, 66, 111, 110, 69, 49, 1007, 109, 110, 3003 111, 909, 110, 72, 57, 110, 747, 76, 1115, 110, 3004 63, 109, 1503, 66, 83, 84, 69, 109, 1028, 1029, 3005 118, 119, 109, 110, 111, 109, 1007, 111, 111, 1246, 3006 83, 84, 871, 431, 58, 59, 60, 112, 1048, 878, 3007 109, 114, 111, 1048, 85, 86, 87, 733, 116, 118, 3008 119, 1261, 1262, 1263, 107, 131, 210, 110, 109, 114, 3009 111, 622, 1553, 915, 117, 917, 807, 114, 109, 1007, 3010 111, 812, 113, 114, 148, 473, 115, 116, 1088, 109, 3011 919, 116, 117, 1093, 110, 111, 117, 161, 1098, 112, 3012 1048, 58, 59, 115, 116, 148, 110, 1107, 352, 110, 3013 354, 116, 117, 156, 112, 1115, 116, 117, 161, 112, 3014 1048, 44, 45, 187, 552, 553, 560, 561, 272, 1336, 3015 1218, 112, 1132, 1340, 554, 555, 112, 4, 5, 6, 3016 7, 8, 9, 186, 187, 117, 210, 117, 699, 978, 3017 1048, 295, 116, 29, 85, 86, 87, 1157, 222, 202, 3018 110, 110, 713, 307, 112, 112, 132, 210, 114, 110, 3019 901, 115, 115, 115, 110, 109, 219, 908, 109, 222, 3020 111, 116, 113, 114, 110, 110, 229, 116, 110, 117, 3021 110, 484, 110, 924, 110, 116, 110, 110, 442, 1199, 3022 1200, 244, 69, 110, 71, 248, 594, 110, 110, 252, 3023 253, 110, 0, 1200, 110, 946, 947, 948, 1218, 110, 3024 110, 110, 1222, 266, 267, 110, 110, 1222, 115, 29, 3025 273, 131, 110, 116, 622, 1442, 1236, 280, 117, 627, 3026 1240, 112, 112, 116, 32, 110, 110, 110, 117, 117, 3027 1079, 112, 112, 1240, 116, 43, 114, 1218, 809, 1157, 3028 110, 49, 110, 110, 328, 132, 4, 5, 6, 7, 3029 8, 9, 116, 110, 1222, 63, 1007, 116, 66, 110, 3030 116, 69, 110, 112, 109, 328, 109, 109, 1288, 1289, 3031 109, 109, 112, 110, 132, 33, 110, 1297, 1395, 115, 3032 1538, 110, 1302, 115, 72, 348, 349, 1302, 76, 115, 3033 454, 699, 114, 112, 129, 83, 84, 10, 11, 12, 3034 13, 14, 365, 110, 1222, 713, 369, 132, 879, 112, 3035 116, 69, 116, 71, 112, 1335, 110, 380, 1236, 110, 3036 110, 109, 406, 112, 879, 1528, 39, 112, 1335, 112, 3037 118, 119, 110, 396, 1302, 1528, 112, 1088, 112, 1529, 3038 148, 1528, 506, 406, 508, 112, 1195, 511, 47, 1528, 3039 514, 132, 1528, 161, 67, 1528, 115, 1528, 110, 132, 3040 132, 424, 132, 1553, 132, 115, 1529, 430, 117, 432, 3041 110, 879, 115, 112, 66, 1395, 112, 112, 186, 187, 3042 112, 1132, 112, 112, 1302, 112, 1503, 112, 110, 110, 3043 1553, 83, 947, 1413, 112, 112, 109, 109, 111, 109, 3044 109, 809, 210, 60, 467, 118, 119, 110, 110, 472, 3045 114, 117, 132, 1394, 222, 112, 112, 480, 1438, 110, 3046 96, 484, 112, 110, 96, 488, 118, 3, 491, 109, 3047 493, 1438, 109, 115, 10, 11, 12, 13, 14, 1010, 3048 110, 112, 1462, 132, 252, 110, 110, 1462, 110, 1469, 3049 513, 1471, 42, 1473, 1469, 116, 110, 117, 266, 132, 3050 110, 96, 96, 39, 132, 528, 132, 1218, 531, 161, 3051 533, 534, 110, 1528, 1528, 1528, 132, 1048, 117, 110, 3052 132, 110, 110, 1503, 132, 115, 112, 112, 1508, 1240, 3053 1510, 67, 109, 1048, 1462, 132, 115, 115, 110, 110, 3054 132, 1469, 1522, 110, 110, 1064, 562, 1522, 1528, 1529, 3055 563, 565, 564, 1222, 1491, 1381, 1529, 1563, 1538, 582, 3056 328, 685, 566, 1312, 1128, 1340, 589, 1469, 917, 1079, 3057 222, 685, 685, 1553, 1098, 66, 698, 600, 925, 602, 3058 1553, 349, 978, 1051, 1462, 76, 871, 1538, 649, 944, 3059 1240, 1469, 582, 723, 1522, 484, 570, 733, 621, 570, 3060 72, 570, 74, 75, 76, -1, 879, -1, 260, -1, 3061 -1, 83, 84, 265, 637, -1, -1, -1, -1, -1, 3062 643, -1, -1, -1, 1335, -1, -1, 118, -1, 652, 3063 -1, 654, 655, 656, -1, -1, -1, 109, 406, 111, 3064 -1, -1, 1010, -1, 1522, 117, 118, 119, -1, -1, 3065 -1, 1201, 1202, -1, 1204, 0, 1, -1, -1, -1, 3066 -1, 1211, -1, 1213, -1, 688, -1, -1, 1199, 692, 3067 161, 694, -1, -1, 947, 698, -1, 10, 11, 12, 3068 13, 14, -1, 706, 1199, 1200, -1, 32, -1, -1, 3069 -1, 1222, 3, -1, -1, -1, 719, 720, 350, 10, 3070 11, 12, 13, 14, 49, -1, 39, 1222, -1, -1, 3071 733, 72, -1, 74, 75, 76, 484, -1, -1, -1, 3072 488, -1, 83, 84, 69, 1240, -1, 1438, 39, -1, 3073 -1, 222, -1, -1, 67, -1, -1, -1, 1394, 72, 3074 -1, 74, 75, 76, -1, 0, -1, -1, 109, -1, 3075 83, 84, -1, -1, 1222, -1, 67, 118, 119, -1, 3076 1471, 106, 1473, -1, -1, -1, 1297, -1, -1, 260, 3077 -1, 1302, 55, -1, 265, 1048, 109, 32, 111, 431, 3078 -1, -1, 1297, -1, -1, 118, 119, 1302, -1, 280, 3079 -1, -1, -1, 816, -1, -1, -1, 1508, -1, 1510, 3080 924, -1, -1, 148, -1, 828, 72, -1, 74, 75, 3081 76, 156, 157, -1, 69, 98, -1, 83, 84, -1, 3082 1335, 473, -1, -1, -1, 1375, -1, 1538, -1, -1, 3083 3, 1199, 600, -1, 602, -1, -1, 10, 11, 12, 3084 13, 14, 187, 109, -1, 111, -1, -1, 871, -1, 3085 1318, -1, 118, 119, -1, 878, -1, 202, -1, 350, 3086 205, 206, -1, -1, 464, 210, 39, -1, -1, 72, 3087 -1, 74, 75, 76, -1, -1, -1, -1, 901, -1, 3088 83, 84, 464, -1, -1, -1, 231, 910, -1, 912, 3089 235, -1, 237, -1, 67, -1, 919, -1, -1, -1, 3090 -1, 246, 157, -1, -1, 1373, 109, 252, 1376, -1, 3091 -1, 194, 257, -1, -1, 118, 119, -1, -1, 942, 3092 688, -1, 267, 1438, -1, -1, -1, 1200, -1, 1297, 3093 275, 1462, -1, -1, 217, -1, -1, -1, 1469, 962, 3094 431, -1, 594, -1, 227, -1, -1, 1462, -1, 1222, 3095 -1, 719, 720, 1421, 1469, 978, -1, 448, 1426, -1, 3096 -1, -1, -1, 986, 1088, -1, 989, 1240, 991, -1, 3097 622, -1, -1, -1, -1, 627, 231, -1, -1, -1, 3098 -1, -1, 473, -1, -1, -1, -1, -1, 1456, -1, 3099 -1, 1522, -1, -1, -1, -1, 341, 252, -1, -1, 3100 345, -1, 257, -1, -1, -1, 351, 1522, -1, -1, 3101 -1, -1, 295, -1, -1, -1, -1, -1, 1041, 364, 3102 -1, -1, -1, 368, -1, -1, 371, -1, -1, 1302, 3103 -1, 26, 27, 28, -1, -1, -1, -1, -1, 72, 3104 -1, 74, 75, 76, -1, -1, -1, 699, 816, -1, 3105 83, 84, -1, -1, -1, -1, 1079, -1, -1, -1, 3106 828, 713, 1335, -1, -1, -1, -1, -1, -1, -1, 3107 1093, 671, -1, 418, 1542, 1098, 109, 0, 111, -1, 3108 1548, -1, -1, -1, -1, 118, 119, -1, 433, 671, 3109 -1, 1559, 1115, 438, -1, 1563, 351, -1, -1, -1, 3110 -1, 446, -1, 594, 99, -1, 101, -1, -1, 32, 3111 -1, 10, 11, 12, 13, 14, -1, -1, -1, 464, 3112 -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, 3113 -1, 622, -1, -1, -1, -1, 627, 482, -1, 484, 3114 39, -1, 910, -1, 912, -1, 69, 492, -1, -1, 3115 -1, 496, -1, -1, -1, -1, -1, 809, -1, -1, 3116 443, -1, -1, 418, -1, 1438, -1, 0, 67, -1, 3117 -1, -1, 1195, 72, 942, 74, 75, 76, 433, -1, 3118 525, 526, -1, 438, 83, 84, 469, 182, -1, 1462, 3119 -1, 446, -1, 793, -1, 1218, 1469, 192, 193, 32, 3120 -1, -1, 197, 803, 199, 200, -1, -1, 699, 464, 3121 109, 793, 111, -1, -1, -1, -1, 817, -1, 118, 3122 119, 803, 713, 506, -1, -1, 571, 482, 511, 484, 3123 -1, 514, -1, -1, 157, 817, 69, -1, 1261, 1262, 3124 1263, -1, 733, -1, 589, 590, -1, -1, -1, 1522, 3125 -1, -1, 10, 11, 12, 13, 14, 602, -1, -1, 3126 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3127 -1, 526, -1, -1, -1, 620, -1, 190, -1, -1, 3128 625, 39, -1, -1, 197, -1, 631, -1, -1, 634, 3129 635, 636, -1, -1, 39, -1, 1319, -1, 97, 98, 3130 99, 100, 101, 102, 103, 104, 105, 106, 653, 67, 3131 -1, -1, -1, -1, -1, -1, -1, 696, 809, -1, 3132 -1, -1, 67, -1, 157, 1093, 671, 72, -1, 252, 3133 1098, 76, 131, -1, 257, 590, -1, 682, 83, 84, 3134 -1, -1, -1, -1, -1, -1, -1, 1471, -1, 1473, 3135 -1, 109, -1, 111, -1, -1, 269, -1, 1010, -1, 3136 118, 119, -1, 708, 109, -1, 711, -1, -1, -1, 3137 -1, 1394, 1395, 118, 119, 720, -1, -1, 723, 634, 3138 635, 636, 1405, 1406, 1508, -1, 1510, 670, -1, -1, 3139 -1, -1, -1, -1, -1, -1, 679, -1, 653, -1, 3140 683, -1, 747, 748, -1, -1, -1, -1, 753, -1, 3141 323, 790, -1, -1, -1, -1, 671, -1, 331, 252, 3142 1443, 334, -1, -1, 257, 1025, 1026, 682, 351, -1, 3143 -1, -1, -1, -1, 10, 11, 12, 13, 14, -1, 3144 -1, -1, -1, 1025, 1026, -1, -1, -1, 793, -1, 3145 -1, -1, -1, 708, -1, -1, 711, -1, 803, -1, 3146 805, -1, 807, 39, -1, 810, -1, 812, 813, -1, 3147 -1, -1, 817, -1, 10, 11, 12, 13, 14, -1, 3148 1503, 1504, 827, 1083, 1084, 398, -1, -1, 867, 402, 3149 1513, 67, -1, 748, -1, 418, 72, -1, 74, 75, 3150 76, 1083, 1084, 39, -1, 1528, 1529, 83, 84, -1, 3151 433, -1, -1, -1, -1, 438, -1, -1, 351, 1010, 3152 -1, -1, -1, 446, -1, -1, -1, -1, 1, -1, 3153 1553, 67, 911, 109, 879, 111, -1, -1, 793, -1, 3154 -1, 464, 118, 119, -1, -1, -1, 1199, 803, -1, 3155 805, -1, -1, -1, -1, 810, 901, -1, 813, 482, 3156 -1, 484, 817, 908, 909, -1, 479, 912, -1, -1, 3157 -1, -1, -1, 109, -1, 111, -1, 956, -1, 574, 3158 575, -1, 118, 119, -1, 418, 72, -1, 74, 75, 3159 76, -1, -1, 938, -1, -1, -1, 83, 84, -1, 3160 433, 946, 947, 526, 671, 438, -1, -1, 603, -1, 3161 -1, 606, 607, 446, 609, 994, 611, 612, -1, 964, 3162 903, 616, 617, 109, 879, 111, -1, -1, -1, -1, 3163 -1, 464, 118, 119, 1234, -1, -1, -1, -1, -1, 3164 -1, -1, -1, -1, -1, 1297, -1, -1, -1, 482, 3165 -1, 484, 1234, -1, 909, -1, -1, 570, 571, 0, 3166 1, -1, 1007, -1, -1, -1, 1045, 590, -1, 1269, 3167 -1, -1, -1, -1, -1, 1020, -1, 1277, 1278, 1279, 3168 1025, 1026, -1, 1028, 1029, -1, -1, 1269, -1, -1, 3169 -1, 32, -1, 526, -1, 1277, 1278, 1279, -1, -1, 3170 -1, -1, -1, 1048, -1, -1, -1, -1, 1199, 964, 3171 -1, 634, 635, 636, -1, -1, -1, -1, -1, -1, 3172 -1, -1, -1, -1, -1, 66, 793, -1, 69, -1, 3173 653, -1, -1, -1, -1, -1, 803, -1, 1083, 1084, 3174 -1, -1, -1, 1343, -1, 658, 1125, -1, 671, 662, 3175 817, -1, -1, -1, -1, -1, -1, 590, -1, 682, 3176 1528, 1343, 757, 758, -1, -1, -1, -1, -1, -1, 3177 1025, 1026, -1, 1028, 1029, -1, 1059, -1, -1, -1, 3178 253, -1, -1, -1, -1, 708, -1, 1132, 711, -1, 3179 -1, -1, -1, 1048, -1, -1, -1, -1, -1, -1, 3180 -1, 634, 635, 636, -1, -1, 1297, -1, -1, 1188, 3181 1189, -1, 1157, -1, 0, -1, 157, -1, -1, -1, 3182 653, -1, -1, -1, -1, 748, -1, -1, 1083, 1084, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 671, 10, 3184 11, 12, 13, 14, -1, -1, 32, -1, -1, 682, 3185 -1, -1, -1, -1, -1, 1200, -1, -1, -1, -1, 3186 -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 3187 793, -1, -1, 1218, -1, 708, -1, 1222, 711, -1, 3188 803, 222, 805, 69, 797, -1, -1, 810, -1, 1234, 3189 813, 1236, -1, -1, 817, 1240, 67, -1, -1, -1, 3190 -1, 72, 1157, 74, 75, 76, -1, -1, -1, -1, 3191 -1, 252, 83, 84, -1, 748, -1, -1, -1, -1, 3192 -1, -1, -1, -1, 1269, -1, 921, -1, -1, -1, 3193 -1, -1, 1277, 1278, 1279, -1, -1, -1, 109, -1, 3194 -1, -1, -1, 1288, 1289, 1200, -1, 118, 119, -1, 3195 -1, -1, -1, -1, -1, -1, 879, 1302, 1025, 1026, 3196 793, -1, -1, -1, -1, -1, -1, 1222, -1, -1, 3197 803, 157, 805, -1, -1, -1, -1, 810, -1, 1234, 3198 813, 1236, -1, -1, 817, -1, 909, -1, -1, -1, 3199 1335, -1, -1, -1, 467, -1, -1, -1, 1343, -1, 3200 -1, -1, -1, 916, -1, -1, -1, -1, -1, -1, 3201 -1, -1, -1, -1, 1269, -1, 1083, 1084, -1, -1, 3202 1399, -1, 1277, 1278, 1279, -1, -1, -1, 1311, -1, 3203 -1, -1, -1, 1288, 1289, -1, -1, -1, 1417, -1, 3204 513, 964, -1, -1, -1, -1, 879, 1302, -1, -1, 3205 -1, -1, -1, -1, -1, 528, -1, -1, 531, -1, 3206 533, 534, -1, -1, -1, -1, 252, -1, 1413, -1, 3207 -1, 257, 26, 27, 28, -1, 909, -1, -1, -1, 3208 -1, -1, -1, 996, -1, -1, -1, -1, 1343, -1, 3209 1085, -1, 433, 1438, -1, -1, -1, -1, -1, -1, 3210 1013, -1, 1025, 1026, -1, 1028, 1029, -1, -1, 582, 3211 -1, 1490, 1491, -1, 53, -1, 55, 1462, -1, 58, 3212 59, 60, -1, 62, 1469, 1048, -1, -1, -1, -1, 3213 -1, 964, -1, -1, -1, -1, -1, -1, 77, -1, 3214 -1, -1, -1, 484, -1, 99, -1, 101, -1, -1, 3215 89, 90, -1, -1, -1, -1, -1, -1, 1413, -1, 3216 1083, 1084, -1, -1, -1, 351, -1, -1, -1, -1, 3217 -1, -1, 126, -1, -1, -1, -1, 1522, 1091, -1, 3218 -1, 654, -1, 656, 1529, 526, -1, 1470, -1, 1472, 3219 -1, -1, 1025, 1026, -1, 1028, 1029, -1, -1, -1, 3220 -1, -1, 1269, -1, -1, -1, -1, 1462, -1, -1, 3221 1277, 1278, 1279, -1, 1469, 1048, -1, -1, -1, -1, 3222 1133, -1, 1217, -1, 1507, -1, 1509, -1, 182, -1, 3223 -1, -1, 418, 706, 1157, -1, 190, -1, 192, 193, 3224 -1, -1, -1, 197, -1, 199, 200, 433, -1, 590, 3225 1083, 1084, 438, -1, -1, -1, -1, -1, -1, -1, 3226 446, -1, -1, -1, -1, -1, -1, 1522, -1, 1552, 3227 -1, 1554, -1, -1, -1, -1, 1343, 1200, 464, 10, 3228 11, 12, 13, 14, 1567, 1568, -1, -1, -1, -1, 3229 -1, -1, -1, 634, 635, 636, 482, -1, 484, 1222, 3230 -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 3231 -1, 1234, 653, 1236, -1, 269, -1, -1, 10, 11, 3232 12, 13, 14, -1, 1157, -1, -1, -1, -1, -1, 3483 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, 3484 967, -1, -1, -1, -1, 39, -1, -1, -1, 1454, 3485 -1, 1456, -1, 1458, -1, -1, 1040, -1, -1, -1, 3486 -1, 988, 989, -1, -1, -1, -1, -1, 1473, -1, 3487 -1, -1, 999, 67, -1, -1, -1, -1, 1005, 1006, 3488 -1, 1008, 1009, 1010, 78, -1, -1, -1, -1, -1, 3489 -1, -1, -1, 1020, 1021, -1, -1, -1, -1, -1, 3490 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 3491 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3492 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3493 26, 27, -1, 1117, 30, 31, 32, 33, -1, -1, 3494 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, -1, -1, 1083, -1, 1085, -1, 3496 -1, -1, -1, 1090, -1, -1, -1, -1, -1, -1, 3497 66, 67, 1099, 69, -1, 71, 72, -1, 74, 75, 3498 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3499 86, 87, -1, 1177, 1178, 1122, 1123, 1124, -1, -1, 3500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3501 -1, -1, -1, 109, -1, 111, -1, -1, -1, 1146, 3502 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3503 -1, -1, -1, -1, -1, -1, 132, -1, 3, 4, 3504 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3505 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3506 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3507 -1, 36, 37, 38, 39, 40, 41, -1, 43, -1, 3508 1207, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3509 -1, -1, 57, -1, -1, -1, 61, 62, 1225, 64, 3510 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3511 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3512 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3514 -1, -1, -1, -1, 109, -1, 111, 1274, 1275, 114, 3515 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3516 -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, 3517 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3518 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3519 21, 22, 23, 24, 25, 26, 27, -1, 1382, 30, 3520 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3521 -1, -1, -1, -1, 1398, -1, -1, -1, -1, -1, 3522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3523 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3524 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3525 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3526 -1, -1, -1, -1, -1, -1, -1, 1394, -1, -1, 3527 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3528 111, -1, -1, -1, 1468, 1469, 117, 118, 119, 120, 3529 121, 122, -1, 4, 5, 6, 7, 8, 9, 10, 3530 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3531 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3532 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3533 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3534 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3535 27, 28, -1, -1, 1481, 66, 67, -1, 69, -1, 3536 71, 72, 39, 74, 75, 76, -1, -1, 79, 80, 3537 81, 82, 83, 84, -1, 86, 87, -1, 1505, 1506, 3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3539 67, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3540 111, 78, -1, 1530, -1, 116, 117, 118, 119, 120, 3541 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3542 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3543 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3544 32, -1, -1, -1, -1, 37, 38, 39, 40, 10, 3545 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3546 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3547 31, 32, -1, -1, 66, 67, -1, 69, 39, 71, 3548 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3549 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3233 3550 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3234 526, 72, -1, 74, 75, 76, 1269, 39, -1, -1, 3235 -1, -1, 83, 84, 1277, 1278, 1279, -1, -1, -1, 3236 -1, -1, -1, -1, -1, 1288, 1289, 1200, -1, -1, 3237 711, -1, -1, -1, -1, 67, -1, -1, 109, 1302, 3238 72, -1, -1, -1, 76, -1, -1, 118, 119, 1222, 3239 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3240 -1, 1234, -1, 1236, 590, 344, -1, 346, -1, -1, 3241 -1, -1, -1, -1, -1, -1, -1, 109, 357, 358, 3242 1343, -1, -1, -1, -1, -1, 118, 119, -1, -1, 3243 -1, -1, -1, -1, -1, -1, 1269, -1, -1, -1, 3244 -1, -1, -1, -1, 1277, 1278, 1279, -1, 634, 635, 3245 636, -1, -1, -1, -1, 1288, 1289, -1, -1, -1, 3246 -1, -1, -1, -1, 805, -1, -1, 653, -1, 1302, 3247 -1, -1, 813, -1, -1, 7, -1, -1, 10, 11, 3248 12, 13, 14, -1, -1, 671, -1, -1, -1, 962, 3249 1413, -1, -1, -1, -1, -1, 682, -1, -1, -1, 3250 -1, -1, -1, -1, -1, 37, 38, 39, 40, -1, 3251 1343, -1, -1, 986, -1, -1, 989, -1, 991, -1, 3252 -1, -1, 708, -1, -1, 711, -1, -1, -1, -1, 3253 -1, -1, -1, -1, 66, 67, -1, -1, 879, 1462, 3254 72, -1, -1, -1, 76, -1, 1469, 79, 80, 81, 3255 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3256 -1, -1, 748, -1, -1, -1, -1, -1, 1041, -1, 3257 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3258 1413, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3259 122, 123, -1, -1, -1, -1, -1, -1, -1, 1522, 3260 -1, -1, -1, -1, -1, -1, 947, 793, -1, -1, 3261 -1, -1, -1, -1, -1, -1, -1, 803, -1, 805, 3262 574, 575, -1, 964, 810, -1, -1, 813, -1, 1462, 3263 -1, 817, 37, 38, -1, 40, 1469, -1, -1, -1, 3264 -1, -1, -1, -1, -1, -1, -1, -1, -1, 603, 3265 -1, -1, 606, 607, -1, 609, -1, 611, 612, -1, 3266 -1, 66, 616, 617, -1, -1, -1, 72, -1, 74, 3267 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3268 -1, 86, 87, -1, -1, -1, -1, 1028, 1029, 1522, 3269 -1, -1, -1, 879, -1, -1, -1, -1, -1, -1, 3270 -1, -1, -1, -1, 109, -1, 111, 1048, 113, 114, 3271 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3272 -1, -1, -1, 909, -1, -1, -1, -1, -1, 3, 3551 -1, 72, -1, 74, 75, -1, -1, 109, -1, 111, 3552 -1, -1, 83, 84, 116, 117, 118, 119, 120, 121, 3553 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3554 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3555 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3556 -1, -1, -1, -1, 37, 38, 39, 40, 10, 11, 3557 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3558 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3559 32, -1, -1, 66, 67, -1, 69, 39, 71, 72, 3560 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3561 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3562 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3563 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3564 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3273 3565 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3274 3566 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3275 3567 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3276 -1, 700, -1, 702, -1, 39, -1, -1, -1, -1, 3277 709, 710, -1, -1, -1, 714, -1, -1, 964, -1, 3278 -1, -1, -1, -1, -1, -1, -1, 726, 1261, 1262, 3279 1263, -1, 731, 67, -1, 69, -1, 71, 72, -1, 3280 74, 75, 76, 757, 758, -1, -1, -1, -1, 83, 3281 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3282 -1, -1, 761, -1, -1, -1, -1, -1, 37, 38, 3283 -1, 40, -1, -1, -1, 109, -1, 111, -1, 1025, 3284 1026, -1, 1028, 1029, 118, 119, 1319, -1, -1, -1, 3285 -1, -1, -1, -1, -1, -1, -1, 66, 1199, 1200, 3286 -1, -1, 1048, 72, -1, -1, -1, 76, -1, -1, 3287 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3288 -1, 1222, -1, -1, -1, -1, -1, -1, -1, -1, 3289 -1, -1, -1, -1, -1, -1, -1, 1083, 1084, 1240, 3290 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 3291 119, 120, 121, 122, 123, -1, -1, 49, -1, -1, 3292 -1, -1, 861, 862, 863, 864, -1, 866, -1, -1, 3293 -1, -1, 1405, 1406, 66, -1, -1, -1, -1, -1, 3294 -1, -1, -1, 882, -1, -1, -1, 1288, 1289, -1, 3295 -1, -1, -1, -1, -1, -1, 1297, 896, -1, -1, 3296 -1, 1302, 916, -1, -1, -1, -1, 921, -1, -1, 3297 1443, 1157, -1, -1, -1, -1, -1, -1, -1, -1, 3298 -1, -1, 114, -1, -1, -1, 118, -1, -1, -1, 3299 -1, -1, -1, -1, 1335, -1, -1, 936, -1, -1, 3568 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3569 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3570 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3571 -1, -1, 66, 67, -1, 69, 39, 71, 72, -1, 3572 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3573 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3574 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3575 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3576 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3577 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3578 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3579 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3580 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3300 3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3301 -1, -1, -1, -1, 1200, 147, -1, -1, -1, -1, 3302 -1, -1, -1, -1, -1, 157, -1, -1, -1, 161, 3303 -1, 1504, -1, -1, -1, -1, 1222, -1, -1, -1, 3304 1513, -1, -1, -1, 983, -1, -1, -1, 1234, -1, 3305 1236, 990, -1, -1, -1, -1, 995, -1, -1, -1, 3306 -1, 1000, -1, 1002, -1, -1, -1, 1006, -1, 1008, 3307 1009, -1, 1413, 1012, -1, -1, -1, -1, 210, -1, 3308 -1, -1, 1021, 1269, -1, -1, -1, -1, -1, -1, 3309 222, 1277, 1278, 1279, -1, -1, -1, 1438, -1, -1, 3310 1039, 1040, 1288, 1289, -1, -1, -1, -1, 240, -1, 3311 -1, -1, -1, -1, -1, -1, 1302, -1, -1, -1, 3312 -1, 1462, -1, -1, -1, -1, -1, 1066, 1469, -1, 3313 1069, 1085, -1, 265, -1, -1, -1, -1, -1, -1, 3314 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3315 -1, -1, -1, -1, -1, -1, -1, 1343, -1, -1, 3316 -1, -1, -1, 295, -1, -1, -1, -1, -1, -1, 3317 -1, -1, -1, 1112, -1, 307, -1, -1, -1, 1118, 3318 1119, 1522, -1, -1, -1, -1, -1, -1, -1, -1, 3319 -1, 1130, -1, -1, -1, -1, -1, -1, -1, -1, 3320 -1, 1140, -1, -1, 1143, -1, 1145, -1, -1, 1148, 3321 -1, -1, -1, 345, -1, -1, -1, -1, 350, -1, 3322 -1, -1, 1161, -1, -1, -1, -1, 1413, -1, -1, 3323 -1, -1, -1, -1, -1, 1174, -1, 1176, 1177, 1178, 3324 1179, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3325 -1, -1, -1, 1192, -1, 1194, -1, -1, -1, 1198, 3326 -1, -1, -1, 1217, -1, 66, -1, -1, -1, -1, 3327 -1, -1, -1, -1, -1, 76, 1462, 78, -1, 80, 3328 -1, -1, -1, 1469, -1, -1, 87, -1, 1227, 1228, 3329 -1, -1, -1, -1, 426, 427, -1, -1, -1, -1, 3330 -1, 433, -1, -1, -1, -1, -1, -1, -1, -1, 3331 -1, -1, -1, -1, -1, -1, -1, 118, -1, 120, 3332 121, 122, 454, -1, -1, -1, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, -1, 1522, -1, -1, -1, 3334 -1, 1280, 1281, -1, -1, -1, -1, -1, -1, -1, 3335 482, 1290, -1, -1, -1, -1, -1, -1, -1, -1, 3336 161, -1, 494, -1, -1, -1, -1, -1, -1, -1, 3337 -1, -1, -1, -1, 506, -1, 508, -1, -1, 511, 3338 -1, 513, 514, -1, -1, -1, -1, -1, -1, -1, 3339 -1, -1, -1, -1, 526, -1, -1, -1, -1, -1, 3340 -1, -1, 1341, -1, -1, -1, -1, -1, -1, -1, 3341 -1, -1, -1, -1, -1, 1354, -1, 1356, 1357, 1358, 3342 -1, 222, -1, 224, 225, 226, -1, -1, -1, 1368, 3343 -1, -1, -1, -1, -1, -1, -1, -1, 1377, -1, 3344 -1, -1, -1, -1, -1, -1, 578, -1, -1, -1, 3345 -1, -1, -1, -1, -1, -1, -1, -1, 590, 260, 3346 -1, -1, 594, -1, 265, 1404, -1, -1, -1, -1, 3347 -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, 3348 -1, -1, -1, -1, -1, -1, -1, -1, 620, -1, 3349 -1, -1, -1, 625, -1, -1, -1, -1, -1, -1, 3350 -1, -1, 634, 635, 636, -1, -1, -1, -1, -1, 3351 1449, 1450, -1, -1, -1, -1, -1, -1, -1, -1, 3352 -1, 653, -1, 1462, -1, -1, -1, 328, -1, -1, 3353 1469, -1, -1, -1, 44, -1, -1, -1, -1, -1, 3354 -1, -1, -1, -1, -1, -1, -1, -1, -1, 350, 3355 -1, -1, -1, 685, 355, 356, -1, -1, -1, -1, 3356 -1, -1, 363, 1502, -1, -1, -1, 1506, -1, -1, 3357 -1, -1, -1, -1, -1, -1, -1, -1, -1, 711, 3358 7, 713, 92, 10, 11, 12, 13, 14, -1, -1, 3359 -1, -1, 102, -1, -1, -1, 1535, -1, 1537, -1, 3360 -1, -1, -1, -1, -1, 406, -1, -1, -1, -1, 3361 37, 38, 39, 40, -1, -1, 748, -1, -1, -1, 3362 -1, -1, -1, 424, -1, -1, 1565, 1566, 429, -1, 3363 431, -1, -1, -1, 1573, 1574, -1, -1, -1, 66, 3364 67, -1, -1, -1, -1, 72, -1, 448, 158, 76, 3365 451, 452, 79, 80, 81, 82, 83, 84, 459, 86, 3366 87, -1, 172, -1, -1, -1, -1, -1, -1, -1, 3367 -1, -1, 473, 805, -1, -1, -1, 809, -1, 480, 3368 -1, 813, 109, -1, 111, 195, -1, -1, -1, -1, 3369 -1, 118, 119, 120, 121, 122, 123, -1, -1, 209, 3370 -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, 3371 -1, -1, -1, -1, -1, -1, -1, -1, 228, -1, 3372 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3373 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 3374 -1, -1, -1, 253, -1, -1, -1, -1, 258, -1, 3375 -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 3376 -1, 271, -1, -1, 72, -1, -1, 277, 76, 279, 3377 -1, 79, 80, 81, 82, 83, 84, 909, 86, 87, 3378 -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, 3379 -1, -1, 924, 594, -1, -1, -1, -1, -1, -1, 3380 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3381 118, 119, 120, 121, 122, 123, 948, -1, -1, -1, 3382 -1, 622, -1, -1, -1, -1, 627, -1, 338, -1, 3383 -1, -1, 964, 343, -1, -1, 3, 4, 5, 6, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3583 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3584 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3585 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3588 -1, -1, 117, 118, 119, 120, 121, 122, 4, 5, 3589 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3590 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3591 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3592 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3595 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3596 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3597 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3599 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3600 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3384 3601 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3385 3602 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3386 27, -1, 372, 30, 31, 32, 376, 377, -1, 379, 3387 -1, -1, 39, -1, -1, 1007, 386, 387, -1, 389, 3388 390, -1, 392, -1, 394, -1, -1, -1, -1, -1, 3389 -1, -1, -1, -1, -1, -1, 1028, 1029, 699, -1, 3390 67, 411, 69, -1, 71, -1, -1, 74, 75, 419, 3391 -1, -1, 713, -1, -1, -1, -1, -1, -1, -1, 3603 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3604 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 3392 3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3393 37, 38, 733, 40, 444, -1, -1, -1, -1, -1, 3394 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3395 -1, 118, 119, -1, -1, -1, 1088, -1, -1, 66, 3396 470, -1, -1, -1, -1, 72, 476, -1, -1, 76, 3397 -1, 481, 79, 80, 81, 82, 83, 84, -1, 86, 3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3607 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3608 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3398 3609 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3399 -1, -1, -1, -1, -1, -1, 797, -1, -1, -1, 3400 -1, -1, 109, -1, 111, -1, -1, 517, 809, 116, 3401 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3402 -1, -1, 532, -1, -1, 1157, 0, 828, -1, 3, 3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3611 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3612 117, 118, 119, 120, 121, 122, 0, -1, -1, 3, 3403 3613 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3404 3614 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3405 3615 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3406 570, -1, 36, -1, -1, 39, 40, 1199, -1, 579, 3407 -1, 156, 157, -1, -1, -1, 586, -1, 37, 38, 3408 -1, 40, 592, -1, -1, -1, -1, -1, -1, -1, 3409 64, 601, -1, 67, -1, 69, -1, 71, 72, -1, 3410 74, 75, 76, -1, 1236, 190, -1, 66, -1, 83, 3411 84, -1, 197, 72, -1, -1, -1, 76, -1, -1, 3412 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3413 -1, -1, 642, -1, -1, 109, -1, 111, -1, -1, 3414 -1, 942, -1, -1, 118, 119, -1, -1, -1, -1, 3415 109, -1, 111, -1, -1, 114, 1288, 1289, -1, 118, 3416 119, 120, 121, 122, 123, 1297, -1, -1, 678, -1, 3417 -1, -1, -1, 974, -1, -1, 686, -1, -1, -1, 3418 -1, -1, -1, -1, 269, 10, 11, 12, 13, 14, 3419 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3420 25, 26, 27, 28, -1, -1, -1, 717, -1, 1010, 3421 -1, -1, -1, -1, 39, -1, -1, 727, 728, -1, 3422 1021, -1, -1, -1, -1, -1, 37, 38, -1, 40, 3423 -1, 741, -1, -1, 147, -1, -1, -1, 323, -1, 3424 -1, -1, 67, -1, 157, -1, 331, 332, -1, 334, 3425 335, -1, 762, 78, 764, 66, 169, 170, 768, -1, 3426 345, 72, -1, -1, 349, 76, -1, -1, 79, 80, 3427 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3428 -1, 1413, -1, 368, -1, -1, 371, -1, -1, -1, 3429 -1, -1, 1093, -1, -1, -1, -1, -1, 109, -1, 3430 111, -1, -1, -1, -1, -1, 1107, 118, 119, 120, 3431 121, 122, 123, 398, -1, -1, -1, 402, -1, -1, 3432 -1, -1, 832, -1, -1, -1, -1, 240, -1, 839, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1471, 3434 -1, 1473, 852, -1, 854, -1, -1, -1, 433, -1, 3435 -1, 264, -1, -1, -1, -1, -1, -1, 868, -1, 3436 -1, -1, -1, -1, -1, 875, -1, -1, -1, -1, 3437 -1, -1, -1, -1, -1, -1, 1508, 887, 1510, -1, 3438 890, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3439 -1, -1, -1, -1, 479, -1, -1, 482, 1199, -1, 3440 -1, -1, -1, -1, -1, -1, 1538, 4, 5, 6, 3441 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3442 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3443 27, -1, -1, 30, 31, 32, 521, -1, -1, -1, 3444 525, 526, 39, -1, -1, -1, -1, -1, -1, -1, 3445 -1, -1, -1, -1, -1, -1, -1, -1, -1, 969, 3446 -1, -1, -1, -1, -1, -1, -1, 380, -1, -1, 3447 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3448 -1, -1, -1, -1, -1, 570, 571, -1, -1, -1, 3449 -1, -1, -1, -1, -1, 1005, 1297, -1, -1, -1, 3450 -1, -1, -1, -1, 589, 590, -1, -1, -1, -1, 3451 -1, -1, -1, 110, 111, 600, -1, 602, 603, -1, 3452 -1, 118, 119, -1, 609, -1, -1, -1, -1, -1, 3453 -1, -1, -1, -1, 619, 620, -1, -1, -1, -1, 3454 625, -1, -1, -1, -1, -1, -1, -1, -1, 634, 3455 635, 636, -1, 1063, -1, -1, -1, -1, -1, 1069, 3456 -1, 474, -1, -1, -1, -1, -1, -1, 653, -1, 3457 -1, -1, -1, 658, 659, -1, -1, 662, 663, -1, 3458 -1, -1, -1, -1, 669, -1, -1, -1, -1, -1, 3459 -1, -1, -1, 1103, -1, -1, -1, -1, 1108, -1, 3460 513, -1, -1, 688, -1, -1, 1116, -1, -1, -1, 3461 -1, -1, -1, 526, -1, -1, -1, -1, 531, -1, 3462 -1, 534, -1, -1, -1, -1, 711, 712, -1, -1, 3463 -1, -1, -1, 546, -1, -1, -1, -1, -1, -1, 3464 -1, -1, 1152, -1, -1, -1, -1, -1, -1, -1, 3465 -1, -1, -1, -1, 1164, 568, -1, 1167, -1, 1169, 3466 -1, -1, 747, 748, -1, 578, -1, 752, 753, -1, 3467 -1, -1, 585, 1183, 1184, -1, -1, 590, -1, -1, 3616 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3468 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3469 -1, -1, -1, -1, -1, 1205, -1, -1, -1, -1,3470 3618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3471 -1, -1, 797, -1, -1, -1, -1, -1, -1, -1, 3472 805, -1, -1, -1, -1, -1, 639, 812, 813, -1, 3473 -1, 816, -1, 818, -1, 648, -1, -1, -1, -1, 3474 -1, -1, -1, 828, 1254, -1, -1, -1, -1, -1, 3475 -1, -1, 1553, -1, -1, -1, -1, -1, -1, -1, 3476 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3477 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3478 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3479 31, 32, 33, -1, -1, 36, -1, -1, 39, -1, 3619 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3620 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3621 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 3622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, -1, -1, 901, -1, -1, -1, 3482 1330, -1, 1332, 908, 909, 910, 67, 912, 69, -1, 3483 71, 916, -1, 74, 75, 748, 1346, 750, 1348, -1, 3484 -1, -1, -1, -1, -1, -1, -1, 760, -1, -1, 3485 -1, -1, 937, 938, 767, -1, 1366, -1, -1, -1, 3486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3487 111, -1, 1382, 1383, -1, -1, -1, 118, 119, 964, 3488 -1, -1, -1, 1393, -1, -1, 1396, -1, -1, 974, 3489 -1, -1, -1, -1, -1, -1, 809, 810, -1, -1, 3490 813, -1, -1, -1, -1, -1, -1, -1, -1, 1419, 3491 -1, 996, 997, -1, 827, -1, -1, -1, 1428, -1, 3492 -1, 1431, 1007, 1433, 1434, 1435, -1, -1, 1013, 1014, 3493 -1, 1016, 1017, 1018, -1, -1, -1, -1, -1, 283, 3494 -1, 285, 286, 1028, 1029, 37, 38, -1, 40, 293, 3495 294, -1, -1, -1, 867, -1, -1, -1, 871, -1, 3496 -1, -1, -1, 307, 308, 1475, -1, 1477, -1, 1479, 3497 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 3498 72, -1, -1, -1, 76, 1495, -1, 79, 80, 81, 3499 82, 83, 84, -1, 86, 87, 909, -1, -1, -1, 3500 -1, 345, -1, -1, -1, -1, 1091, -1, 1093, -1, 3501 -1, -1, -1, 1098, -1, -1, -1, 109, -1, 111, 3502 -1, -1, 1107, -1, -1, -1, 118, 119, 120, 121, 3503 122, 123, -1, -1, -1, 948, -1, 381, -1, -1, 3504 -1, -1, -1, -1, -1, -1, -1, 1132, 1133, 1134, 3505 -1, 964, 965, -1, -1, -1, -1, -1, -1, -1, 3506 -1, -1, -1, -1, -1, 978, -1, -1, -1, -1, 3507 -1, 984, 1157, -1, 987, -1, 989, -1, 10, 11, 3508 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3509 22, 23, 24, 25, 26, 27, 28, 1010, 30, 31, 3510 32, -1, -1, -1, -1, -1, -1, 39, 1021, -1, 3511 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3513 1043, -1, 1045, 1218, -1, 67, -1, -1, -1, 66, 3514 -1, -1, 74, 75, -1, 72, 78, 1060, 1061, 76, 3515 -1, 1236, 79, 80, 81, 82, 83, 84, -1, 86, 3516 87, -1, -1, -1, -1, -1, -1, -1, 1081, -1, 3517 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3518 -1, -1, 109, -1, 111, -1, 118, 119, -1, -1, 3519 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3520 -1, -1, -1, 1288, 1289, 549, 550, 551, 552, 553, 3521 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3522 564, 565, 566, -1, -1, 1138, -1, -1, -1, -1, 3523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, 1157, -1, -1, -1, -1, -1, 3525 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1172, 3526 1173, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3527 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 3528 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3529 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3530 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3531 -1, 36, 37, 38, 39, 40, -1, -1, -1, -1, 3532 -1, -1, -1, -1, -1, -1, -1, -1, 1413, -1, 3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1252, 3534 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3535 75, 76, 696, -1, 79, 80, 81, 82, 83, 84, 3536 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3539 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3540 -1, -1, -1, 1316, -1, -1, 1319, 132, -1, -1, 3541 -1, -1, -1, -1, -1, 759, -1, -1, 1503, 10, 3542 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3543 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3544 31, 32, -1, 1528, 1529, -1, 790, -1, 39, -1, 3545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3546 -1, -1, -1, -1, -1, -1, -1, -1, 1553, -1, 3547 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3548 -1, -1, -1, 74, 75, -1, -1, -1, -1, -1, 3549 1403, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3550 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3551 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3552 21, 22, 23, 24, 25, 26, 27, 118, 119, 30, 3553 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3554 41, -1, 43, -1, -1, 46, 47, 48, 49, 50, 3555 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 3556 61, 62, -1, 64, -1, 66, 67, 911, 69, -1, 3557 71, 72, 1485, 74, 75, 76, -1, -1, 79, 80, 3558 81, 82, 83, 84, -1, 86, 87, 10, 11, 12, 3559 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3560 23, 24, 25, 26, 27, 28, -1, -1, 109, -1, 3561 111, -1, 956, 114, -1, -1, 39, 118, 119, 120, 3562 121, 122, 123, -1, -1, 1538, -1, 128, -1, -1, 3563 -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, 3564 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3565 994, -1, -1, -1, -1, 78, -1, -1, -1, -1, 3566 -1, -1, -1, 1007, -1, -1, -1, -1, -1, -1, 3567 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3568 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3569 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3570 31, 32, 33, -1, 1048, 36, 37, 38, 39, 40, 3571 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3572 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3573 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3574 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3575 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3576 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3577 -1, -1, 72, -1, 74, 75, -1, -1, 109, -1, 3578 111, 1125, -1, 83, 84, -1, -1, 118, 119, 120, 3579 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3580 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3581 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3582 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3584 -1, -1, -1, -1, 1188, 1189, -1, -1, -1, -1, 3585 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3586 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3587 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3589 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3590 111, -1, -1, -1, -1, 116, -1, 118, 119, 120, 3591 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3592 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3593 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3594 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3595 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3596 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3597 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3598 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3599 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3600 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3601 -1, -1, 72, -1, 74, 75, 76, -1, 109, -1, 3602 111, -1, -1, 83, 84, 116, -1, 118, 119, 120, 3603 121, 122, 123, -1, -1, -1, -1, -1, -1, -1, 3604 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3605 -1, 111, -1, -1, -1, 1399, -1, -1, 118, 119, 3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3607 -1, -1, -1, 1417, -1, -1, -1, -1, -1, -1, 3608 -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, 3623 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3624 -1, -1, -1, 117, 118, 3, 4, 5, 6, 7, 3609 3625 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3610 3626 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3611 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3612 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3613 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3614 27, -1, -1, 30, 31, 32, 1490, 1491, 66, 67, 3615 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3616 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3627 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3628 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3617 3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3618 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3619 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3620 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3621 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3622 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3623 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3624 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3625 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3626 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3627 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3628 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3630 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3631 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3632 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3633 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3634 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3635 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3636 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3637 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3638 27, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3639 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3640 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3644 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3645 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3646 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3647 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3648 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3650 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3651 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3652 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3656 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3657 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3658 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3659 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3660 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3662 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3663 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3664 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3667 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3668 118, 119, 120, 121, 122, 123, 3, 4, 5, 6, 3669 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3670 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3671 27, -1, -1, 30, 31, 32, 33, -1, -1, 36, 3672 -1, -1, 39, 40, -1, -1, -1, -1, -1, -1, 3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3674 -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, 3675 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3676 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3678 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3679 -1, -1, 109, -1, 111, -1, -1, -1, 115, -1, 3680 -1, 118, 119, 3, 4, 5, 6, 7, 8, 9, 3681 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3682 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3683 30, 31, 32, 33, -1, -1, 36, -1, -1, 39, 3684 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3686 -1, -1, -1, -1, 64, -1, -1, 67, -1, 69, 3687 -1, 71, 72, -1, 74, 75, 76, -1, -1, -1, 3688 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, 3689 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3690 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3691 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3692 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3693 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3694 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, 3695 33, -1, -1, 36, -1, -1, 39, -1, -1, -1, 3696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3698 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3699 -1, 74, 75, -1, -1, 78, 4, 5, 6, 7, 3700 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3701 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3702 -1, -1, 30, 31, 32, -1, -1, -1, 111, -1, 3703 -1, 39, -1, -1, -1, 118, 119, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3630 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3706 3631 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3707 3632 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3708 3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3710 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1,3711 118, 119, 4, 5, 6, 7, 8, 9, 10, 11,3635 -1, 109, -1, 111, -1, -1, -1, 115, -1, 117, 3636 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3712 3637 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3713 3638 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3714 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3715 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3716 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3717 -1, 30, 31, 32, -1, 67, -1, 69, -1, 71, 3718 39, -1, 74, 75, -1, -1, -1, -1, -1, -1, 3639 32, 33, -1, -1, 36, -1, -1, 39, 40, -1, 3719 3640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3720 -1, -1, -1, -1, 96, -1, -1, -1, 67, -1, 3721 -1, -1, -1, 72, -1, 74, 75, 76, -1, 111, 3722 -1, -1, -1, -1, 83, 84, 118, 119, 4, 5, 3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 -1, -1, 64, -1, -1, 67, -1, 69, -1, 71, 3643 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3644 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3647 -1, -1, -1, -1, -1, 117, 118, 3, 4, 5, 3723 3648 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3724 3649 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3725 26, 27, 111, -1, 30, 31, 32, -1, -1, 118, 3726 119, -1, -1, 39, -1, -1, -1, 10, 11, 12, 3650 26, 27, -1, -1, 30, 31, 32, 33, -1, -1, 3651 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3652 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3655 -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3727 3656 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3728 3657 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3729 -1, 67, -1, 69, -1, 71, 39, -1, 74, 75, 3658 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3659 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, 67, -1, 69, -1, 71, 72, 3662 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3663 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3666 -1, -1, -1, -1, 117, 118, 4, 5, 6, 7, 3667 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3668 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3669 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3670 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3671 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3672 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3673 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3674 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3675 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3676 25, 26, 27, 67, -1, 30, 31, 32, -1, -1, 3677 74, 75, 110, 111, 39, -1, -1, -1, -1, 117, 3678 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3679 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, 67, -1, 69, 109, 71, 111, -1, 74, 3681 75, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3683 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3684 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3685 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3686 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3687 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3688 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3689 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3690 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3691 27, -1, -1, 30, 31, 32, -1, 67, -1, 69, 3692 -1, 71, 39, 40, 74, 75, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, 3695 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3696 -1, 111, -1, -1, -1, -1, -1, 117, 118, 4, 3697 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3698 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3699 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3700 117, 118, -1, -1, 39, -1, -1, -1, -1, -1, 3730 3701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3732 96, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3733 -1, 74, 75, -1, -1, 111, -1, -1, -1, -1, 3734 83, 84, 118, 119, 4, 5, 6, 7, 8, 9, 3735 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3736 20, 21, 22, 23, 24, 25, 26, 27, 111, -1, 3737 30, 31, 32, -1, -1, 118, 119, -1, -1, 39, 3703 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3704 75, -1, 4, 5, 6, 7, 8, 9, 10, 11, 3705 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3706 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3707 32, -1, -1, -1, -1, -1, 111, 39, -1, -1, 3708 -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, 3709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3710 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3711 -1, -1, 74, 75, -1, 4, 5, 6, 7, 8, 3712 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3713 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3714 -1, 30, 31, 32, -1, -1, -1, -1, -1, 111, 3715 39, -1, -1, -1, -1, 117, 118, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3718 69, -1, 71, -1, -1, 74, 75, -1, 4, 5, 3719 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3720 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3721 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3722 -1, -1, 111, 39, -1, -1, -1, -1, 117, 118, 3738 3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3739 3724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3741 -1, 71, -1, -1, 74, 75, -1, 4, 5, 6, 3742 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3725 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3727 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3728 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3729 40, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3730 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3731 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3732 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3733 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3736 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3737 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3743 3738 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3744 3739 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3745 -1, 111, 39, -1, -1, -1, -1, -1, 118, 119, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3749 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3740 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3741 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3742 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3743 67, -1, -1, 39, -1, 72, -1, 74, 75, 76, 3744 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3745 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3746 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3747 76, -1, 109, 110, 111, -1, -1, 83, 84, -1, 3748 117, 118, 119, 120, 121, 122, 10, 11, 12, 13, 3750 3749 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3751 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3752 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3753 -1, 118, 119, -1, -1, -1, -1, -1, -1, -1, 3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3755 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3756 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3757 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3758 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3759 31, 32, -1, -1, -1, -1, -1, 111, 39, -1, 3760 -1, -1, -1, -1, 118, 119, -1, -1, -1, -1, 3761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3762 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3763 71, -1, -1, 74, 75, 10, 11, 12, 13, 14, 3764 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3765 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3766 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3767 111, -1, -1, -1, -1, -1, -1, 118, 119, -1, 3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3769 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3770 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3771 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3772 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3773 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3774 -1, -1, -1, 118, 119, 120, 121, 122, 123, 10, 3775 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3776 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3777 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3778 -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 3779 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3780 23, 24, 25, 26, 27, 66, 67, 30, 31, 32, 3781 -1, 72, -1, 74, 75, 76, 39, -1, 79, 80, 3782 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3784 -1, -1, -1, -1, 67, -1, -1, -1, 109, 110, 3785 111, 74, 75, -1, -1, -1, -1, 118, 119, 120, 3786 121, 122, 123, 10, 11, 12, 13, 14, 15, 16, 3787 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3788 27, -1, -1, 30, 31, 32, 109, -1, 111, -1, 3789 37, 38, 39, 40, -1, 118, 119, -1, -1, -1, 3790 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3791 19, 20, 21, 22, 23, 24, 25, 26, 27, 66, 3792 67, 30, 31, 32, -1, 72, -1, 74, 75, 76, 3793 39, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3794 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3795 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3796 -1, -1, 109, -1, 111, 74, 75, -1, -1, -1, 3797 -1, 118, 119, 120, 121, 122, 123, 10, 11, 12, 3750 24, 25, 26, 27, -1, 111, 30, 31, 32, -1, 3751 -1, 117, 118, 37, 38, 39, 40, 10, 11, 12, 3798 3752 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3799 3753 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3800 -1, -1, 111, -1, 37, 38, 39, 40, -1, 118, 3801 119, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3754 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3755 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3756 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3757 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3758 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3759 83, 84, -1, 117, 118, 119, 120, 121, 122, 10, 3760 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3761 21, 22, 23, 24, 25, 26, 27, -1, 111, 30, 3762 31, 32, -1, -1, 117, 118, 37, 38, 39, 40, 3763 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3764 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3765 30, 31, 32, -1, -1, 66, 67, -1, -1, 39, 3766 40, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3767 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3768 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3769 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3770 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3771 121, 122, 10, 11, 12, 13, 14, 15, 16, 17, 3772 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3773 -1, 111, 30, 31, 32, 115, -1, 117, 118, 37, 3774 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3775 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3776 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3777 -1, -1, 39, -1, 72, -1, 74, 75, 76, -1, 3778 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3780 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3781 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3782 118, 119, 120, 121, 122, 10, 11, 12, 13, 14, 3802 3783 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3803 25, 26, 27, 66, 67, 30, 31, 32, -1, 72, 3804 -1, 74, 75, 76, 39, -1, 79, 80, 81, 82, 3805 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3807 -1, -1, 67, -1, -1, -1, 109, -1, 111, 74, 3808 75, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3809 123, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3810 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3811 -1, 30, 31, 32, -1, -1, 111, -1, 37, 38, 3812 39, 40, -1, 118, 119, -1, -1, -1, -1, 10, 3813 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3814 21, 22, 23, 24, 25, 26, 27, 66, 67, 30, 3815 31, 32, -1, 72, -1, 74, 75, 76, 39, -1, 3816 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3819 109, -1, 111, 74, 75, -1, -1, -1, -1, 118, 3820 119, 120, 121, 122, 123, 10, 11, 12, 13, 14, 3821 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3822 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3823 111, -1, 37, 38, 39, 40, -1, 118, 119, -1, 3784 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3785 117, 118, 37, 38, 39, 40, -1, -1, -1, -1, 3824 3786 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3825 3787 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, … … 3829 3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3830 3792 67, -1, -1, -1, 109, -1, 111, 74, 75, -1, 3831 -1, -1, -1, 118, 119, 120, 121, 122, 123, 3, 3832 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3793 -1, -1, 117, 118, 119, 120, 121, 122, 3, 4, 3794 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3795 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3796 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3797 117, 118, -1, -1, 39, -1, -1, -1, 10, 11, 3798 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3799 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3800 32, -1, 67, -1, 69, -1, 71, 39, -1, 74, 3801 75, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3833 3802 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3834 24, 25, 26, 27, 111, -1, 30, 31, 32, -1,3835 -1, 118, 119, -1, -1, 39, -1, -1, -1, 10,3836 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,3837 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,3838 31, 32, -1, 67, -1, 69, -1, 71, 39, -1,3839 74, 75, -1, -1, -1, -1, -1, 10, 11, 12,3840 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,3841 23, 24, 25, 26, 27, 28, 67, 30, 31, 32,3842 -1, 72, -1, 74, 75, 76, 39, 78, -1, -1,3843 114, -1, 83, 84, -1, 10, 11, 12, 13, 14,3844 1 5, 16, 17, 18, 19, 20, 21, 22, 23, 24,3845 2 5, 26, 27, -1, 67, 30, 31, 32, 109, 72,3846 111, 74, 75, 76, 39, 78, -1, 118, 119, -1,3847 83, 84, -1, 10, 11, 12, 13, 14, 15, 16,3848 1 7, 18, 19, 20, 21, 22, 23, 24, 25, 26,3849 2 7, -1, 67, 30, 31, 32, -1, 72, 111, 74,3850 75, 76, 39, -1, -1, 118, 119, -1, 83, 84,3851 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,3803 24, 25, 26, 27, -1, 67, 30, 31, 32, -1, 3804 72, -1, 74, 75, 76, 39, -1, -1, -1, 114, 3805 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3806 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3807 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3808 74, 75, 76, 39, -1, 117, 118, -1, -1, 83, 3809 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3810 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3811 -1, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3812 76, 39, -1, 117, 118, -1, -1, 83, 84, -1, 3813 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3814 20, 21, 22, 23, 24, 25, 26, 27, 28, 67, 3815 30, 31, 32, 109, 72, 111, 74, 75, 76, 39, 3816 -1, 117, 118, -1, -1, 83, 84, -1, 10, 11, 3817 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3818 22, 23, 24, 25, 26, 27, 28, 67, 30, 31, 3819 32, 109, -1, 111, 74, 75, -1, 39, 78, 117, 3820 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3852 3821 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3853 67, 30, 31, 32, 109, 72, 111, 74, 75, 76,3854 39, -1, -1, 118, 119, -1, 83, 84, -1, 10,3822 -1, 30, 31, 32, -1, 67, -1, -1, -1, 109, 3823 39, 111, 74, 75, -1, -1, 78, 117, 118, 10, 3855 3824 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3856 3825 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3857 31, 32, 109, 72, 111, 74, 75, 76, 39, 40,3858 -1, 118, 119, -1, 83, 84, -1, 10, 11, 12,3826 31, 32, -1, -1, -1, 74, 75, -1, 39, 111, 3827 -1, -1, -1, -1, -1, 117, 118, 10, 11, 12, 3859 3828 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3860 23, 24, 25, 26, 27, 28, 67, 30, 31, 32, 3861 109, -1, 111, 74, 75, -1, 39, -1, -1, 118, 3862 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3865 111, 74, 75, -1, 115, 78, -1, 118, 119, -1, 3829 23, 24, 25, 26, 27, -1, 67, 30, 31, 32, 3830 -1, -1, 111, 74, 75, -1, 39, -1, 117, 118, 3866 3831 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3867 3832 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3868 30, 31, 32, -1, -1, -1, -1, -1, 111, 39,3869 40, -1, -1, -1, -1, 118, 119, -1, 10, 11,3833 30, 31, 32, -1, 67, -1, -1, -1, -1, 39, 3834 111, 74, 75, -1, -1, -1, 117, 118, 10, 11, 3870 3835 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3871 3836 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3872 32, -1, -1, -1, 74, 75, -1, 39, 40, 10, 3873 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3874 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3875 31, 32, -1, -1, -1, 67, -1, -1, 39, -1, 3876 -1, 111, 74, 75, -1, 115, -1, -1, 118, 119, 3837 32, -1, -1, -1, 74, 75, -1, 39, 111, -1, 3838 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3877 3839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3878 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3879 -1, -1, -1, 74, 75, -1, -1, -1, -1, 111, 3880 -1, -1, -1, 115, -1, -1, 118, 119, -1, -1, 3881 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3840 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3841 -1, 111, 74, 75, -1, -1, -1, 117, 118, 4, 3842 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3843 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3844 25, 26, 27, -1, -1, 30, 31, 32, -1, 111, 3845 -1, -1, -1, -1, 39, 117, 118, -1, -1, -1, 3846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3848 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3849 75, 37, 38, -1, 40, 41, -1, 43, -1, -1, 3850 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3851 56, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3852 66, -1, -1, -1, -1, 110, 72, -1, -1, -1, 3853 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3854 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3856 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3857 -1, 117, 118, 119, 120, 121, 122, -1, -1, 37, 3858 38, 127, 40, 41, -1, 43, 132, -1, 46, 47, 3859 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3860 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3861 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3862 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3865 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3866 118, 119, 120, 121, 122, -1, -1, -1, -1, 127, 3867 -1, -1, -1, -1, 132, 4, 5, 6, 7, 8, 3868 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3882 3869 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3883 111, 30, 31, 32, -1, -1, -1, 118, 119, -1, 3884 39, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3885 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3886 -1, 30, 31, 32, -1, -1, -1, -1, 67, -1, 3887 39, -1, -1, -1, -1, 74, 75, -1, -1, 10, 3888 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3889 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3890 31, 32, 33, 34, 35, 74, 75, -1, 39, -1, 3891 -1, -1, 111, -1, -1, -1, -1, -1, -1, 118, 3892 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3893 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3894 -1, -1, 111, 74, 75, -1, -1, -1, -1, 118, 3895 119, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3896 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3897 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3898 -1, -1, -1, -1, -1, -1, 39, -1, 37, 38, 3899 -1, 40, 41, -1, 43, -1, -1, 46, 47, 48, 3900 49, 50, 51, 52, 53, -1, -1, 56, 57, -1, 3901 -1, -1, 61, 62, 67, 64, 69, 66, 71, -1, 3902 -1, 74, 75, 72, -1, -1, -1, 76, -1, -1, 3870 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3871 39, -1, 37, 38, -1, 40, 41, -1, 43, 44, 3872 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3873 -1, 56, 57, -1, -1, -1, 61, 62, 67, 64, 3874 69, 66, 71, -1, -1, 74, 75, 72, -1, -1, 3875 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3876 -1, 86, 87, -1, -1, -1, -1, 96, -1, -1, 3877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3878 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3879 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3880 37, 38, 127, 40, 41, -1, 43, 44, 45, 46, 3881 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3882 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3883 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3884 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3885 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3888 117, 118, 119, 120, 121, 122, -1, -1, 37, 38, 3889 127, 40, 41, -1, 43, -1, -1, 46, 47, 48, 3890 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3891 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3892 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3903 3893 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3894 -1, -1, -1, -1, -1, 37, 38, -1, 40, -1, 3904 3895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3905 -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, 3906 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 3907 119, 120, 121, 122, 123, -1, -1, -1, -1, 128, 3908 -1, 37, 38, 132, 40, 41, -1, 43, -1, -1, 3909 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3910 -1, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3896 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3897 119, 120, 121, 122, 66, -1, -1, -1, 127, -1, 3898 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3899 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3900 -1, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3901 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3902 -1, 113, 114, -1, -1, 117, 118, 119, 120, 121, 3903 122, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3904 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3905 -1, 86, 87, -1, -1, -1, -1, -1, -1, 37, 3906 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 3907 -1, -1, -1, -1, 109, -1, 111, -1, 37, 38, 3908 -1, 40, 117, 118, 119, 120, 121, 122, 66, -1, 3909 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3910 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 3911 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3912 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3913 -1, 109, -1, 111, -1, 37, 38, -1, 40, 117, 3914 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3915 109, -1, -1, -1, 37, 38, -1, 40, 117, 118, 3916 119, 120, 121, 122, 66, -1, -1, -1, -1, -1, 3917 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3918 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3919 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3920 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3921 -1, 37, 38, -1, 40, 117, 118, 119, 120, 121, 3922 122, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3923 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3911 3924 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3912 3925 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3913 3926 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3914 3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3915 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3916 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 3917 -1, -1, 128, -1, -1, -1, 132, 4, 5, 6, 3928 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 3929 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3918 3930 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3919 3931 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3920 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3921 -1, -1, 39, -1, 37, 38, -1, 40, 41, -1, 3922 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 3923 53, -1, -1, 56, 57, -1, -1, -1, 61, 62, 3924 67, 64, 69, 66, 71, -1, -1, 74, 75, 72, 3925 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3926 83, 84, -1, 86, 87, -1, -1, -1, -1, 96, 3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3928 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3929 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 3930 123, -1, -1, 37, 38, 128, 40, 41, -1, 43, 3931 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3932 -1, -1, -1, 57, -1, -1, -1, 61, 62, -1, 3933 64, -1, 66, -1, -1, -1, -1, -1, 72, -1, 3934 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3935 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3937 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3938 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3939 -1, -1, 37, 38, 128, 40, 41, -1, 43, -1, 3940 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3941 -1, -1, 57, -1, -1, -1, 61, 62, -1, 64, 3942 -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3943 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3944 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3945 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3946 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3947 -1, -1, -1, 118, 119, 120, 121, 122, 123, 66, 3948 -1, -1, -1, 128, -1, 72, -1, -1, -1, 76, 3949 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3950 87, -1, -1, -1, -1, -1, -1, -1, 37, 38, 3951 -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3952 -1, -1, 109, -1, 111, -1, -1, 37, 38, -1, 3953 40, 118, 119, 120, 121, 122, 123, 66, -1, -1, 3954 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3955 79, 80, 81, 82, 83, 84, 66, 86, 87, -1, 3956 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3957 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3958 109, -1, -1, -1, -1, 37, 38, -1, 40, 118, 3959 119, 120, 121, 122, 123, -1, -1, -1, -1, 109, 3960 -1, -1, -1, -1, 37, 38, -1, 40, 118, 119, 3961 120, 121, 122, 123, 66, -1, -1, -1, -1, -1, 3962 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3963 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3964 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3965 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3966 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3967 122, 123, -1, -1, -1, -1, 109, -1, -1, -1, 3968 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3969 123, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3970 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3971 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, 3972 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 3932 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3933 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3973 3934 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3974 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3975 -1, -1, -1, -1, 67, -1, 69, -1, 71, 72,3976 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1,3977 83, 84, 3, 4, 5, 6, 7, 8, 9, 10,3978 1 1, 12, 13, 14, 15, 16, 17, 18, 19, 20,3979 2 1, 22, 23, 24, 25, 26, 27, -1, -1, 30,3980 31, 32, -1, -1, -1, -1, -1, -1, 39, -1,3936 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3937 -1, -1, -1, -1, -1, -1, 83, 84, 3, 4, 3938 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3939 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3940 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3941 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 3981 3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3982 3943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3983 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3984 71, -1, -1, 74, 75, 3, 4, 5, 6, 7, 3985 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3986 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3987 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3988 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3991 -1, 69, -1, 71, -1, -1, 74, 75, 4, 5, 3992 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3993 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3994 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3995 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3944 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3945 75, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3946 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3947 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3948 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3996 3949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997 3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3998 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75 3951 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3952 -1, -1, 74, 75, 4, 5, 6, 7, 8, 9, 3953 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3954 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3955 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3956 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3957 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3958 -1, 30, 31, 32, 33, 34, 35, 67, -1, 69, 3959 39, 71, -1, -1, 74, 75, -1, -1, -1, -1, 3960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3961 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3962 -1, -1, -1, -1, -1, 74, 75 3999 3963 }; 4000 3964 … … 4007 3971 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 4008 3972 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 4009 76, 83, 84, 109, 111, 11 8, 119, 137, 140, 149,3973 76, 83, 84, 109, 111, 117, 118, 137, 140, 149, 4010 3974 198, 212, 213, 214, 215, 216, 217, 218, 219, 220, 4011 3975 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, … … 4032 3996 323, 111, 149, 370, 306, 230, 314, 109, 290, 109, 4033 3997 109, 51, 109, 37, 38, 40, 66, 72, 76, 79, 4034 80, 81, 82, 86, 87, 109, 111, 1 20, 121, 122,4035 12 3, 136, 140, 141, 142, 143, 148, 149, 150, 151,3998 80, 81, 82, 86, 87, 109, 111, 119, 120, 121, 3999 122, 136, 140, 141, 142, 143, 148, 149, 150, 151, 4036 4000 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 4037 4001 162, 164, 167, 225, 276, 292, 366, 371, 227, 110, 4038 4002 110, 110, 110, 110, 110, 110, 74, 75, 111, 225, 4039 272, 350, 368, 111, 11 8, 149, 164, 217, 218, 224,4003 272, 350, 368, 111, 117, 149, 164, 217, 218, 224, 4040 4004 227, 231, 232, 237, 240, 241, 243, 262, 263, 267, 4041 4005 268, 269, 270, 284, 350, 362, 363, 364, 365, 370, … … 4052 4016 208, 222, 224, 227, 134, 311, 109, 311, 164, 319, 4053 4017 227, 109, 134, 272, 114, 33, 34, 35, 225, 286, 4054 287, 289, 134, 12 9, 131, 291, 134, 228, 234, 235,4018 287, 289, 134, 128, 131, 291, 134, 228, 234, 235, 4055 4019 272, 315, 316, 317, 109, 141, 109, 148, 109, 148, 4056 4020 151, 109, 148, 109, 109, 148, 148, 111, 164, 169, 4057 4021 173, 225, 275, 366, 370, 112, 134, 82, 85, 86, 4058 4022 87, 109, 111, 113, 114, 97, 98, 99, 100, 101, 4059 102, 103, 104, 105, 106, 131, 166, 151, 151, 11 8,4060 12 4, 125, 120, 121, 88, 89, 90, 91, 126, 127,4061 92, 93, 11 9, 128, 129, 94, 95, 130, 131, 373,4023 102, 103, 104, 105, 106, 131, 166, 151, 151, 117, 4024 123, 124, 119, 120, 88, 89, 90, 91, 125, 126, 4025 92, 93, 118, 127, 128, 94, 95, 129, 131, 373, 4062 4026 109, 149, 345, 346, 347, 348, 349, 110, 116, 109, 4063 4027 349, 350, 109, 349, 350, 134, 109, 225, 368, 112, … … 4067 4031 149, 370, 227, 135, 135, 149, 225, 227, 363, 272, 4068 4032 225, 350, 363, 272, 109, 134, 134, 134, 112, 134, 4069 72, 80, 111, 113, 140, 274, 278, 279, 280, 281, 4070 282, 134, 134, 134, 134, 134, 134, 309, 110, 110, 4071 110, 110, 110, 110, 110, 318, 331, 109, 277, 112, 4072 207, 134, 309, 169, 276, 169, 276, 309, 111, 207, 4073 311, 173, 134, 207, 110, 40, 111, 115, 225, 249, 4074 250, 251, 366, 114, 116, 372, 131, 259, 114, 227, 4075 264, 265, 266, 269, 270, 110, 116, 173, 134, 118, 4076 164, 134, 224, 227, 263, 362, 370, 303, 304, 109, 4077 149, 336, 110, 116, 373, 274, 286, 109, 114, 274, 4078 276, 286, 110, 116, 109, 141, 110, 117, 275, 275, 4079 275, 111, 139, 145, 164, 276, 275, 112, 134, 110, 4080 116, 110, 109, 149, 349, 357, 358, 359, 360, 110, 4081 116, 164, 111, 139, 111, 144, 145, 134, 111, 139, 4082 144, 164, 151, 151, 151, 152, 152, 153, 153, 154, 4083 154, 154, 154, 155, 155, 156, 157, 158, 159, 160, 4084 117, 169, 164, 134, 346, 347, 348, 227, 345, 312, 4085 312, 164, 276, 134, 271, 134, 225, 350, 363, 227, 4086 231, 112, 112, 134, 370, 112, 109, 134, 319, 337, 4087 338, 339, 342, 352, 353, 354, 112, 134, 227, 336, 4088 340, 351, 109, 312, 355, 373, 312, 312, 373, 109, 4089 312, 355, 312, 312, 312, 312, 350, 225, 361, 371, 4090 272, 112, 116, 112, 116, 373, 225, 363, 373, 260, 4091 261, 262, 263, 260, 260, 272, 164, 134, 111, 274, 4092 117, 116, 372, 278, 80, 111, 117, 282, 29, 209, 4093 210, 272, 260, 139, 309, 139, 311, 109, 349, 350, 4094 109, 349, 350, 141, 350, 173, 264, 110, 110, 110, 4095 110, 112, 173, 207, 173, 114, 250, 251, 112, 134, 4096 109, 117, 149, 252, 254, 318, 319, 331, 357, 116, 4097 132, 116, 132, 274, 248, 274, 115, 162, 163, 258, 4098 135, 135, 139, 222, 135, 135, 260, 109, 149, 370, 4099 135, 115, 227, 287, 288, 135, 134, 134, 109, 135, 4100 110, 316, 169, 170, 117, 132, 111, 141, 200, 201, 4101 202, 110, 116, 110, 134, 117, 110, 110, 110, 111, 4102 164, 358, 359, 360, 227, 357, 312, 312, 114, 151, 4103 167, 164, 165, 168, 116, 135, 134, 134, 110, 116, 4104 164, 134, 115, 162, 117, 264, 110, 110, 110, 345, 4105 264, 110, 260, 225, 363, 111, 118, 149, 164, 164, 4106 227, 342, 264, 110, 110, 110, 110, 110, 110, 110, 4107 7, 227, 336, 340, 351, 134, 134, 373, 134, 134, 4108 110, 135, 135, 135, 135, 277, 135, 162, 163, 164, 4109 310, 134, 278, 280, 115, 134, 211, 274, 40, 41, 4110 43, 46, 47, 48, 49, 50, 51, 52, 53, 57, 4111 61, 62, 72, 111, 128, 170, 171, 172, 173, 174, 4112 175, 177, 178, 190, 192, 193, 198, 212, 308, 29, 4113 135, 131, 277, 134, 134, 110, 135, 173, 248, 132, 4114 132, 319, 163, 227, 253, 254, 253, 274, 312, 115, 4115 259, 372, 110, 116, 112, 112, 135, 227, 116, 373, 4116 290, 110, 286, 215, 217, 225, 298, 299, 300, 301, 4117 292, 110, 110, 117, 163, 109, 110, 117, 116, 139, 4118 164, 164, 112, 110, 110, 110, 357, 279, 116, 135, 4119 168, 112, 139, 146, 147, 164, 145, 135, 146, 162, 4120 167, 135, 109, 349, 350, 135, 135, 134, 135, 135, 4121 135, 164, 110, 135, 109, 349, 350, 109, 355, 109, 4122 355, 350, 226, 7, 118, 135, 164, 264, 264, 263, 4123 267, 267, 268, 116, 116, 110, 110, 112, 96, 123, 4124 135, 135, 146, 278, 164, 116, 132, 212, 216, 227, 4125 231, 109, 109, 171, 109, 109, 72, 132, 72, 132, 4126 72, 118, 170, 109, 173, 165, 165, 117, 112, 143, 4127 132, 135, 134, 135, 211, 110, 164, 264, 264, 312, 4128 110, 115, 252, 115, 134, 110, 134, 135, 309, 115, 4129 134, 135, 135, 110, 114, 200, 112, 163, 132, 200, 4130 202, 110, 116, 135, 109, 349, 350, 372, 165, 112, 4131 135, 85, 113, 116, 135, 135, 112, 135, 110, 134, 4132 110, 110, 112, 112, 112, 135, 110, 134, 134, 134, 4133 164, 164, 135, 112, 135, 135, 135, 135, 134, 134, 4134 163, 163, 112, 112, 135, 135, 274, 227, 169, 169, 4135 47, 169, 134, 132, 132, 132, 169, 132, 169, 58, 4136 59, 60, 194, 195, 196, 132, 63, 132, 312, 114, 4137 175, 115, 132, 135, 135, 96, 269, 270, 110, 299, 4138 116, 132, 116, 132, 115, 297, 117, 141, 110, 110, 4139 117, 168, 112, 134, 115, 112, 111, 147, 111, 147, 4140 147, 112, 112, 112, 264, 112, 264, 264, 264, 135, 4141 135, 112, 112, 110, 110, 112, 116, 96, 263, 96, 4142 135, 112, 112, 110, 110, 109, 110, 170, 191, 212, 4143 132, 110, 109, 109, 173, 196, 58, 59, 164, 171, 4144 144, 110, 110, 114, 134, 134, 298, 141, 203, 109, 4145 132, 203, 135, 117, 264, 134, 134, 135, 135, 135, 4146 135, 112, 112, 134, 135, 112, 171, 44, 45, 114, 4147 181, 182, 183, 169, 171, 135, 110, 170, 114, 183, 4148 96, 134, 96, 134, 109, 109, 132, 115, 134, 272, 4149 309, 115, 116, 117, 163, 110, 112, 164, 135, 146, 4150 146, 110, 110, 110, 110, 267, 42, 163, 179, 180, 4151 310, 117, 134, 171, 181, 110, 132, 171, 132, 134, 4152 110, 134, 110, 134, 96, 134, 96, 134, 132, 298, 4153 141, 139, 204, 110, 132, 117, 110, 135, 135, 171, 4154 96, 116, 117, 135, 205, 206, 212, 132, 170, 170, 4155 205, 173, 197, 225, 366, 173, 197, 110, 134, 110, 4156 134, 115, 110, 116, 164, 112, 112, 163, 179, 182, 4157 184, 185, 134, 132, 182, 186, 187, 135, 109, 149, 4158 309, 357, 139, 135, 173, 197, 173, 197, 109, 132, 4159 139, 171, 176, 115, 182, 212, 170, 56, 176, 189, 4160 115, 182, 110, 227, 110, 135, 135, 292, 171, 176, 4161 132, 188, 189, 176, 189, 173, 173, 110, 110, 110, 4162 188, 135, 135, 173, 173, 135, 135 4033 72, 111, 113, 140, 274, 278, 279, 280, 281, 282, 4034 134, 134, 134, 134, 134, 134, 309, 110, 110, 110, 4035 110, 110, 110, 110, 318, 331, 109, 277, 112, 207, 4036 134, 309, 169, 276, 169, 276, 309, 111, 207, 311, 4037 173, 134, 207, 110, 40, 111, 115, 225, 249, 250, 4038 251, 366, 114, 116, 372, 131, 259, 114, 227, 264, 4039 265, 266, 269, 270, 110, 116, 173, 134, 117, 164, 4040 134, 224, 227, 263, 362, 370, 303, 304, 109, 149, 4041 336, 110, 116, 373, 274, 286, 109, 114, 274, 276, 4042 286, 110, 116, 109, 141, 110, 130, 275, 275, 275, 4043 145, 164, 276, 275, 112, 134, 110, 116, 110, 109, 4044 149, 349, 357, 358, 359, 360, 110, 116, 164, 111, 4045 139, 144, 145, 134, 111, 139, 144, 164, 151, 151, 4046 151, 152, 152, 153, 153, 154, 154, 154, 154, 155, 4047 155, 156, 157, 158, 159, 160, 130, 169, 164, 134, 4048 346, 347, 348, 227, 345, 312, 312, 164, 276, 134, 4049 271, 134, 225, 350, 363, 227, 231, 112, 112, 134, 4050 370, 112, 109, 134, 319, 337, 338, 339, 342, 352, 4051 353, 354, 112, 134, 227, 336, 340, 351, 109, 312, 4052 355, 373, 312, 312, 373, 109, 312, 355, 312, 312, 4053 312, 312, 350, 225, 361, 371, 272, 112, 116, 112, 4054 116, 373, 225, 363, 373, 260, 261, 262, 263, 260, 4055 260, 272, 164, 134, 111, 274, 130, 116, 372, 278, 4056 111, 130, 282, 29, 209, 210, 272, 260, 139, 309, 4057 139, 311, 109, 349, 350, 109, 349, 350, 141, 350, 4058 173, 264, 110, 110, 110, 110, 112, 173, 207, 173, 4059 114, 250, 251, 112, 134, 109, 130, 149, 252, 254, 4060 318, 319, 331, 357, 116, 132, 116, 132, 274, 248, 4061 274, 115, 162, 163, 258, 135, 135, 139, 222, 135, 4062 135, 260, 109, 149, 370, 135, 115, 227, 287, 288, 4063 135, 134, 134, 109, 135, 110, 316, 169, 170, 130, 4064 132, 111, 141, 200, 201, 202, 110, 116, 110, 110, 4065 110, 110, 111, 164, 358, 359, 360, 227, 357, 312, 4066 312, 114, 151, 167, 164, 165, 168, 116, 135, 134, 4067 110, 116, 164, 134, 115, 162, 130, 264, 110, 110, 4068 110, 345, 264, 110, 260, 225, 363, 111, 117, 149, 4069 164, 164, 227, 342, 264, 110, 110, 110, 110, 110, 4070 110, 110, 7, 227, 336, 340, 351, 134, 134, 373, 4071 134, 134, 110, 135, 135, 135, 135, 277, 135, 162, 4072 163, 164, 310, 134, 278, 280, 115, 134, 211, 274, 4073 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 4074 53, 57, 61, 62, 72, 111, 127, 170, 171, 172, 4075 173, 174, 175, 177, 178, 190, 192, 193, 198, 212, 4076 308, 29, 135, 131, 277, 134, 134, 110, 135, 173, 4077 248, 132, 132, 319, 163, 227, 253, 254, 253, 274, 4078 312, 115, 259, 372, 110, 116, 112, 112, 135, 227, 4079 116, 373, 290, 110, 286, 215, 217, 225, 298, 299, 4080 300, 301, 292, 110, 110, 130, 163, 109, 110, 130, 4081 116, 139, 112, 110, 110, 110, 357, 279, 116, 135, 4082 168, 112, 139, 146, 147, 145, 135, 146, 162, 167, 4083 135, 109, 349, 350, 135, 135, 134, 135, 135, 135, 4084 164, 110, 135, 109, 349, 350, 109, 355, 109, 355, 4085 350, 226, 7, 117, 135, 164, 264, 264, 263, 267, 4086 267, 268, 116, 116, 110, 110, 112, 96, 122, 135, 4087 135, 146, 278, 164, 116, 132, 212, 216, 227, 231, 4088 109, 109, 171, 109, 109, 72, 132, 72, 132, 72, 4089 117, 170, 109, 173, 165, 165, 130, 112, 143, 132, 4090 135, 134, 135, 211, 110, 164, 264, 264, 312, 110, 4091 115, 252, 115, 134, 110, 134, 135, 309, 115, 134, 4092 135, 135, 110, 114, 200, 112, 163, 132, 200, 202, 4093 110, 109, 349, 350, 372, 165, 112, 135, 85, 113, 4094 116, 135, 112, 135, 110, 134, 110, 110, 112, 112, 4095 112, 135, 110, 134, 134, 134, 164, 164, 135, 112, 4096 135, 135, 135, 135, 134, 134, 163, 163, 112, 112, 4097 135, 135, 274, 227, 169, 169, 47, 169, 134, 132, 4098 132, 132, 169, 132, 169, 58, 59, 60, 194, 195, 4099 196, 132, 63, 132, 312, 114, 175, 115, 132, 135, 4100 135, 96, 269, 270, 110, 299, 116, 132, 116, 132, 4101 115, 297, 130, 141, 110, 110, 130, 134, 115, 112, 4102 111, 147, 111, 147, 147, 112, 112, 264, 112, 264, 4103 264, 264, 135, 135, 112, 112, 110, 110, 112, 116, 4104 96, 263, 96, 135, 112, 112, 110, 110, 109, 110, 4105 170, 191, 212, 132, 110, 109, 109, 173, 196, 58, 4106 59, 164, 171, 144, 110, 110, 114, 134, 134, 298, 4107 141, 203, 109, 132, 203, 264, 134, 134, 135, 135, 4108 135, 135, 112, 112, 134, 135, 112, 171, 44, 45, 4109 114, 181, 182, 183, 169, 171, 135, 110, 170, 114, 4110 183, 96, 134, 96, 134, 109, 109, 132, 115, 134, 4111 272, 309, 115, 116, 130, 163, 110, 135, 146, 146, 4112 110, 110, 110, 110, 267, 42, 163, 179, 180, 310, 4113 130, 134, 171, 181, 110, 132, 171, 132, 134, 110, 4114 134, 110, 134, 96, 134, 96, 134, 132, 298, 141, 4115 139, 204, 110, 132, 110, 135, 135, 171, 96, 116, 4116 130, 135, 205, 206, 212, 132, 170, 170, 205, 173, 4117 197, 225, 366, 173, 197, 110, 134, 110, 134, 115, 4118 110, 116, 112, 112, 163, 179, 182, 184, 185, 134, 4119 132, 182, 186, 187, 135, 109, 149, 309, 357, 139, 4120 135, 173, 197, 173, 197, 109, 132, 139, 171, 176, 4121 115, 182, 212, 170, 56, 176, 189, 115, 182, 110, 4122 227, 110, 135, 135, 292, 171, 176, 132, 188, 189, 4123 176, 189, 173, 173, 110, 110, 110, 188, 135, 135, 4124 173, 173, 135, 135 4163 4125 }; 4164 4126 … … 5016 4978 /* Line 1806 of yacc.c */ 5017 4979 #line 311 "parser.yy" 5018 { (yyval. constant) = build_constantInteger( *(yyvsp[(1) - (1)].tok) ); }4980 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 5019 4981 break; 5020 4982 … … 5023 4985 /* Line 1806 of yacc.c */ 5024 4986 #line 312 "parser.yy" 5025 { (yyval. constant) = build_constantFloat( *(yyvsp[(1) - (1)].tok) ); }4987 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 5026 4988 break; 5027 4989 … … 5030 4992 /* Line 1806 of yacc.c */ 5031 4993 #line 313 "parser.yy" 5032 { (yyval. constant) = build_constantChar( *(yyvsp[(1) - (1)].tok) ); }4994 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 5033 4995 break; 5034 4996 … … 5045 5007 #line 340 "parser.yy" 5046 5008 { 5047 appendStr( (yyvsp[(1) - (2)].constant)->get_ expr()->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) );5009 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); 5048 5010 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5049 5011 (yyval.constant) = (yyvsp[(1) - (2)].constant); … … 5055 5017 /* Line 1806 of yacc.c */ 5056 5018 #line 351 "parser.yy" 5057 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5019 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5058 5020 break; 5059 5021 … … 5062 5024 /* Line 1806 of yacc.c */ 5063 5025 #line 353 "parser.yy" 5064 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5026 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5065 5027 break; 5066 5028 … … 5076 5038 /* Line 1806 of yacc.c */ 5077 5039 #line 357 "parser.yy" 5078 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }5040 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5079 5041 break; 5080 5042 … … 5083 5045 /* Line 1806 of yacc.c */ 5084 5046 #line 367 "parser.yy" 5085 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }5047 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5086 5048 break; 5087 5049 … … 5090 5052 /* Line 1806 of yacc.c */ 5091 5053 #line 369 "parser.yy" 5092 { (yyval.en) = new CompositeExprNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }5054 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5093 5055 break; 5094 5056 … … 5097 5059 /* Line 1806 of yacc.c */ 5098 5060 #line 373 "parser.yy" 5099 { (yyval.en) = new CompositeExprNode( build_fieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }5061 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5100 5062 break; 5101 5063 … … 5104 5066 /* Line 1806 of yacc.c */ 5105 5067 #line 376 "parser.yy" 5106 { (yyval.en) = new CompositeExprNode( build_pfieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }5068 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5107 5069 break; 5108 5070 … … 5111 5073 /* Line 1806 of yacc.c */ 5112 5074 #line 379 "parser.yy" 5113 { (yyval.en) = new CompositeExprNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }5075 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5114 5076 break; 5115 5077 … … 5118 5080 /* Line 1806 of yacc.c */ 5119 5081 #line 381 "parser.yy" 5120 { (yyval.en) = new CompositeExprNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }5082 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5121 5083 break; 5122 5084 … … 5125 5087 /* Line 1806 of yacc.c */ 5126 5088 #line 383 "parser.yy" 5127 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true) ); }5089 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5128 5090 break; 5129 5091 … … 5135 5097 Token fn; 5136 5098 fn.str = new std::string( "?{}" ); // location undefined 5137 (yyval.en) = new CompositeExprNode( build_func( new VarRefNode( fn), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ) );5099 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ) ); 5138 5100 } 5139 5101 break; … … 5153 5115 break; 5154 5116 5155 case 37:5156 5157 /* Line 1806 of yacc.c */5158 #line 403 "parser.yy"5159 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }5160 break;5161 5162 5117 case 38: 5163 5118 5164 5119 /* Line 1806 of yacc.c */ 5165 #line 40 8"parser.yy"5166 { (yyval.en) = ( yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }5120 #line 406 "parser.yy" 5121 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5167 5122 break; 5168 5123 … … 5170 5125 5171 5126 /* Line 1806 of yacc.c */ 5172 #line 410 "parser.yy" 5173 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( (yyvsp[(5) - (9)].en) ) ) ) ); } 5127 #line 411 "parser.yy" 5128 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5129 break; 5130 5131 case 40: 5132 5133 /* Line 1806 of yacc.c */ 5134 #line 415 "parser.yy" 5135 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5174 5136 break; 5175 5137 … … 5177 5139 5178 5140 /* Line 1806 of yacc.c */ 5179 #line 41 5"parser.yy"5180 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5141 #line 417 "parser.yy" 5142 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5181 5143 break; 5182 5144 … … 5184 5146 5185 5147 /* Line 1806 of yacc.c */ 5186 #line 4 20"parser.yy"5187 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5148 #line 419 "parser.yy" 5149 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5188 5150 break; 5189 5151 … … 5191 5153 5192 5154 /* Line 1806 of yacc.c */ 5193 #line 424 "parser.yy" 5194 { (yyval.en) = new CompositeExprNode( build_fieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); } 5195 break; 5196 5197 case 44: 5198 5199 /* Line 1806 of yacc.c */ 5200 #line 426 "parser.yy" 5201 { (yyval.en) = new CompositeExprNode( build_fieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); } 5155 #line 421 "parser.yy" 5156 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5202 5157 break; 5203 5158 … … 5205 5160 5206 5161 /* Line 1806 of yacc.c */ 5207 #line 42 8"parser.yy"5208 { (yyval.en) = new CompositeExprNode( build_pfieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) )); }5162 #line 429 "parser.yy" 5163 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5209 5164 break; 5210 5165 … … 5212 5167 5213 5168 /* Line 1806 of yacc.c */ 5214 #line 430 "parser.yy" 5215 { (yyval.en) = new CompositeExprNode( build_pfieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); } 5169 #line 431 "parser.yy" 5170 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5171 break; 5172 5173 case 47: 5174 5175 /* Line 1806 of yacc.c */ 5176 #line 433 "parser.yy" 5177 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5216 5178 break; 5217 5179 … … 5220 5182 /* Line 1806 of yacc.c */ 5221 5183 #line 438 "parser.yy" 5222 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5223 break;5224 5225 case 49:5226 5227 /* Line 1806 of yacc.c */5228 #line 440 "parser.yy"5229 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5230 break;5231 5232 case 50:5233 5234 /* Line 1806 of yacc.c */5235 #line 442 "parser.yy"5236 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }5237 break;5238 5239 case 51:5240 5241 /* Line 1806 of yacc.c */5242 #line 447 "parser.yy"5243 5184 { 5244 5185 switch ( (yyvsp[(1) - (2)].op) ) { 5245 5186 case OperKinds::AddressOf: 5246 (yyval.en) = new CompositeExprNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );5187 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 5247 5188 break; 5248 5189 case OperKinds::PointTo: 5249 (yyval.en) = new CompositeExprNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );5190 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 5250 5191 break; 5251 5192 default: … … 5255 5196 break; 5256 5197 5198 case 49: 5199 5200 /* Line 1806 of yacc.c */ 5201 #line 451 "parser.yy" 5202 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5203 break; 5204 5205 case 50: 5206 5207 /* Line 1806 of yacc.c */ 5208 #line 453 "parser.yy" 5209 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5210 break; 5211 5212 case 51: 5213 5214 /* Line 1806 of yacc.c */ 5215 #line 455 "parser.yy" 5216 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5217 break; 5218 5257 5219 case 52: 5258 5220 5259 5221 /* Line 1806 of yacc.c */ 5260 #line 4 60"parser.yy"5261 { (yyval.en) = new CompositeExprNode( build_unary_val( (yyvsp[(1) - (2)].op),(yyvsp[(2) - (2)].en) ) ); }5222 #line 457 "parser.yy" 5223 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5262 5224 break; 5263 5225 … … 5265 5227 5266 5228 /* Line 1806 of yacc.c */ 5267 #line 4 62"parser.yy"5268 { (yyval.en) = new CompositeExprNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }5229 #line 459 "parser.yy" 5230 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5269 5231 break; 5270 5232 … … 5272 5234 5273 5235 /* Line 1806 of yacc.c */ 5274 #line 46 4"parser.yy"5275 { (yyval.en) = new CompositeExprNode( build_unary_ptr( OperKinds::Decr,(yyvsp[(2) - (2)].en) ) ); }5236 #line 461 "parser.yy" 5237 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5276 5238 break; 5277 5239 … … 5279 5241 5280 5242 /* Line 1806 of yacc.c */ 5281 #line 46 6"parser.yy"5282 { (yyval.en) = new CompositeExprNode( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); }5243 #line 463 "parser.yy" 5244 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5283 5245 break; 5284 5246 … … 5286 5248 5287 5249 /* Line 1806 of yacc.c */ 5288 #line 46 8"parser.yy"5289 { (yyval.en) = new CompositeExprNode( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }5250 #line 465 "parser.yy" 5251 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5290 5252 break; 5291 5253 … … 5293 5255 5294 5256 /* Line 1806 of yacc.c */ 5295 #line 4 70"parser.yy"5296 { (yyval.en) = new CompositeExprNode( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )) ); }5257 #line 467 "parser.yy" 5258 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5297 5259 break; 5298 5260 … … 5300 5262 5301 5263 /* Line 1806 of yacc.c */ 5302 #line 4 72"parser.yy"5303 { (yyval.en) = new CompositeExprNode( build_attr( new VarRefNode( (yyvsp[(1) - (1)].tok)) ) ); }5264 #line 469 "parser.yy" 5265 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5304 5266 break; 5305 5267 … … 5307 5269 5308 5270 /* Line 1806 of yacc.c */ 5309 #line 47 4"parser.yy"5310 { (yyval.en) = new CompositeExprNode( build_attr( new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl)) ) ); }5271 #line 471 "parser.yy" 5272 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5311 5273 break; 5312 5274 … … 5314 5276 5315 5277 /* Line 1806 of yacc.c */ 5316 #line 47 6"parser.yy"5317 { (yyval. en) = new CompositeExprNode( build_attr( new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }5278 #line 477 "parser.yy" 5279 { (yyval.op) = OperKinds::PointTo; } 5318 5280 break; 5319 5281 … … 5322 5284 /* Line 1806 of yacc.c */ 5323 5285 #line 478 "parser.yy" 5324 { (yyval. en) = new CompositeExprNode( build_alignOf( (yyvsp[(2) - (2)].en) ) ); }5286 { (yyval.op) = OperKinds::AddressOf; } 5325 5287 break; 5326 5288 … … 5328 5290 5329 5291 /* Line 1806 of yacc.c */ 5330 #line 48 0"parser.yy"5331 { (yyval. en) = new CompositeExprNode( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }5292 #line 484 "parser.yy" 5293 { (yyval.op) = OperKinds::UnPlus; } 5332 5294 break; 5333 5295 … … 5335 5297 5336 5298 /* Line 1806 of yacc.c */ 5299 #line 485 "parser.yy" 5300 { (yyval.op) = OperKinds::UnMinus; } 5301 break; 5302 5303 case 64: 5304 5305 /* Line 1806 of yacc.c */ 5337 5306 #line 486 "parser.yy" 5338 { (yyval.op) = OperKinds:: PointTo; }5339 break; 5340 5341 case 6 4:5307 { (yyval.op) = OperKinds::Neg; } 5308 break; 5309 5310 case 65: 5342 5311 5343 5312 /* Line 1806 of yacc.c */ 5344 5313 #line 487 "parser.yy" 5345 { (yyval.op) = OperKinds:: AddressOf; }5346 break; 5347 5348 case 6 5:5314 { (yyval.op) = OperKinds::BitNeg; } 5315 break; 5316 5317 case 67: 5349 5318 5350 5319 /* Line 1806 of yacc.c */ 5351 5320 #line 493 "parser.yy" 5352 { (yyval.op) = OperKinds::UnPlus; } 5353 break; 5354 5355 case 66: 5356 5357 /* Line 1806 of yacc.c */ 5358 #line 494 "parser.yy" 5359 { (yyval.op) = OperKinds::UnMinus; } 5360 break; 5361 5362 case 67: 5321 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5322 break; 5323 5324 case 68: 5363 5325 5364 5326 /* Line 1806 of yacc.c */ 5365 5327 #line 495 "parser.yy" 5366 { (yyval.op) = OperKinds::Neg; } 5367 break; 5368 5369 case 68: 5370 5371 /* Line 1806 of yacc.c */ 5372 #line 496 "parser.yy" 5373 { (yyval.op) = OperKinds::BitNeg; } 5328 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5374 5329 break; 5375 5330 … … 5377 5332 5378 5333 /* Line 1806 of yacc.c */ 5379 #line 50 2"parser.yy"5380 { (yyval.en) = new CompositeExprNode( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }5334 #line 501 "parser.yy" 5335 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5381 5336 break; 5382 5337 … … 5384 5339 5385 5340 /* Line 1806 of yacc.c */ 5386 #line 50 4"parser.yy"5387 { (yyval.en) = new CompositeExprNode( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }5388 break; 5389 5390 case 7 3:5391 5392 /* Line 1806 of yacc.c */ 5393 #line 5 10"parser.yy"5394 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5341 #line 503 "parser.yy" 5342 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5343 break; 5344 5345 case 72: 5346 5347 /* Line 1806 of yacc.c */ 5348 #line 505 "parser.yy" 5349 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5395 5350 break; 5396 5351 … … 5398 5353 5399 5354 /* Line 1806 of yacc.c */ 5400 #line 51 2"parser.yy"5401 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5355 #line 511 "parser.yy" 5356 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5402 5357 break; 5403 5358 … … 5405 5360 5406 5361 /* Line 1806 of yacc.c */ 5407 #line 51 4"parser.yy"5408 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5362 #line 513 "parser.yy" 5363 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5409 5364 break; 5410 5365 … … 5412 5367 5413 5368 /* Line 1806 of yacc.c */ 5414 #line 5 20"parser.yy"5415 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5369 #line 519 "parser.yy" 5370 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5416 5371 break; 5417 5372 … … 5419 5374 5420 5375 /* Line 1806 of yacc.c */ 5421 #line 52 2"parser.yy"5422 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5376 #line 521 "parser.yy" 5377 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5423 5378 break; 5424 5379 … … 5426 5381 5427 5382 /* Line 1806 of yacc.c */ 5428 #line 52 8"parser.yy"5429 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5383 #line 527 "parser.yy" 5384 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5430 5385 break; 5431 5386 … … 5433 5388 5434 5389 /* Line 1806 of yacc.c */ 5435 #line 530 "parser.yy" 5436 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5390 #line 529 "parser.yy" 5391 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5392 break; 5393 5394 case 82: 5395 5396 /* Line 1806 of yacc.c */ 5397 #line 531 "parser.yy" 5398 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5437 5399 break; 5438 5400 … … 5440 5402 5441 5403 /* Line 1806 of yacc.c */ 5442 #line 536 "parser.yy" 5443 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5444 break; 5445 5446 case 84: 5447 5448 /* Line 1806 of yacc.c */ 5449 #line 538 "parser.yy" 5450 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5404 #line 533 "parser.yy" 5405 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5451 5406 break; 5452 5407 … … 5454 5409 5455 5410 /* Line 1806 of yacc.c */ 5456 #line 5 40"parser.yy"5457 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5411 #line 539 "parser.yy" 5412 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5458 5413 break; 5459 5414 … … 5461 5416 5462 5417 /* Line 1806 of yacc.c */ 5463 #line 54 2"parser.yy"5464 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5418 #line 541 "parser.yy" 5419 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5465 5420 break; 5466 5421 … … 5468 5423 5469 5424 /* Line 1806 of yacc.c */ 5470 #line 54 8"parser.yy"5471 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5472 break; 5473 5474 case 89:5475 5476 /* Line 1806 of yacc.c */ 5477 #line 55 0"parser.yy"5478 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5479 break; 5480 5481 case 9 1:5482 5483 /* Line 1806 of yacc.c */ 5484 #line 55 6"parser.yy"5485 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5486 break; 5487 5488 case 9 3:5489 5490 /* Line 1806 of yacc.c */ 5491 #line 56 2"parser.yy"5492 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)) ); }5493 break; 5494 5495 case 9 5:5496 5497 /* Line 1806 of yacc.c */ 5498 #line 5 68"parser.yy"5499 { (yyval.en) = new CompositeExprNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)) ); }5500 break; 5501 5502 case 9 7:5503 5504 /* Line 1806 of yacc.c */ 5505 #line 57 4"parser.yy"5506 { (yyval.en) = new CompositeExprNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true) ); }5425 #line 547 "parser.yy" 5426 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5427 break; 5428 5429 case 90: 5430 5431 /* Line 1806 of yacc.c */ 5432 #line 553 "parser.yy" 5433 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5434 break; 5435 5436 case 92: 5437 5438 /* Line 1806 of yacc.c */ 5439 #line 559 "parser.yy" 5440 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5441 break; 5442 5443 case 94: 5444 5445 /* Line 1806 of yacc.c */ 5446 #line 565 "parser.yy" 5447 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5448 break; 5449 5450 case 96: 5451 5452 /* Line 1806 of yacc.c */ 5453 #line 571 "parser.yy" 5454 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5455 break; 5456 5457 case 98: 5458 5459 /* Line 1806 of yacc.c */ 5460 #line 577 "parser.yy" 5461 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5507 5462 break; 5508 5463 … … 5511 5466 /* Line 1806 of yacc.c */ 5512 5467 #line 580 "parser.yy" 5513 { (yyval.en) = new CompositeExprNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5514 break; 5515 5516 case 101: 5517 5518 /* Line 1806 of yacc.c */ 5519 #line 586 "parser.yy" 5520 { (yyval.en) = new CompositeExprNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5521 break; 5522 5523 case 102: 5524 5525 /* Line 1806 of yacc.c */ 5526 #line 589 "parser.yy" 5527 { (yyval.en) = new CompositeExprNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5468 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5469 break; 5470 5471 case 100: 5472 5473 /* Line 1806 of yacc.c */ 5474 #line 582 "parser.yy" 5475 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5528 5476 break; 5529 5477 … … 5531 5479 5532 5480 /* Line 1806 of yacc.c */ 5533 #line 591 "parser.yy" 5534 { (yyval.en) = new CompositeExprNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5535 break; 5536 5537 case 106: 5538 5539 /* Line 1806 of yacc.c */ 5540 #line 602 "parser.yy" 5541 { (yyval.en) = new CompositeExprNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5481 #line 593 "parser.yy" 5482 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5483 break; 5484 5485 case 104: 5486 5487 /* Line 1806 of yacc.c */ 5488 #line 595 "parser.yy" 5489 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5490 break; 5491 5492 case 105: 5493 5494 /* Line 1806 of yacc.c */ 5495 #line 600 "parser.yy" 5496 { (yyval.en) = nullptr; } 5542 5497 break; 5543 5498 … … 5545 5500 5546 5501 /* Line 1806 of yacc.c */ 5547 #line 60 4"parser.yy"5548 { (yyval. en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }5502 #line 605 "parser.yy" 5503 { (yyval.op) = OperKinds::Assign; } 5549 5504 break; 5550 5505 … … 5552 5507 5553 5508 /* Line 1806 of yacc.c */ 5509 #line 606 "parser.yy" 5510 { (yyval.op) = OperKinds::MulAssn; } 5511 break; 5512 5513 case 109: 5514 5515 /* Line 1806 of yacc.c */ 5516 #line 607 "parser.yy" 5517 { (yyval.op) = OperKinds::DivAssn; } 5518 break; 5519 5520 case 110: 5521 5522 /* Line 1806 of yacc.c */ 5523 #line 608 "parser.yy" 5524 { (yyval.op) = OperKinds::ModAssn; } 5525 break; 5526 5527 case 111: 5528 5529 /* Line 1806 of yacc.c */ 5554 5530 #line 609 "parser.yy" 5555 { (yyval.en) = new NullExprNode; } 5556 break; 5557 5558 case 110: 5531 { (yyval.op) = OperKinds::PlusAssn; } 5532 break; 5533 5534 case 112: 5535 5536 /* Line 1806 of yacc.c */ 5537 #line 610 "parser.yy" 5538 { (yyval.op) = OperKinds::MinusAssn; } 5539 break; 5540 5541 case 113: 5542 5543 /* Line 1806 of yacc.c */ 5544 #line 611 "parser.yy" 5545 { (yyval.op) = OperKinds::LSAssn; } 5546 break; 5547 5548 case 114: 5549 5550 /* Line 1806 of yacc.c */ 5551 #line 612 "parser.yy" 5552 { (yyval.op) = OperKinds::RSAssn; } 5553 break; 5554 5555 case 115: 5556 5557 /* Line 1806 of yacc.c */ 5558 #line 613 "parser.yy" 5559 { (yyval.op) = OperKinds::AndAssn; } 5560 break; 5561 5562 case 116: 5559 5563 5560 5564 /* Line 1806 of yacc.c */ 5561 5565 #line 614 "parser.yy" 5562 { (yyval.op) = OperKinds:: Assign; }5563 break; 5564 5565 case 11 1:5566 { (yyval.op) = OperKinds::ERAssn; } 5567 break; 5568 5569 case 117: 5566 5570 5567 5571 /* Line 1806 of yacc.c */ 5568 5572 #line 615 "parser.yy" 5569 { (yyval.op) = OperKinds::MulAssn; } 5570 break; 5571 5572 case 112: 5573 5574 /* Line 1806 of yacc.c */ 5575 #line 616 "parser.yy" 5576 { (yyval.op) = OperKinds::DivAssn; } 5577 break; 5578 5579 case 113: 5580 5581 /* Line 1806 of yacc.c */ 5582 #line 617 "parser.yy" 5583 { (yyval.op) = OperKinds::ModAssn; } 5584 break; 5585 5586 case 114: 5587 5588 /* Line 1806 of yacc.c */ 5589 #line 618 "parser.yy" 5590 { (yyval.op) = OperKinds::PlusAssn; } 5591 break; 5592 5593 case 115: 5594 5595 /* Line 1806 of yacc.c */ 5596 #line 619 "parser.yy" 5597 { (yyval.op) = OperKinds::MinusAssn; } 5598 break; 5599 5600 case 116: 5601 5602 /* Line 1806 of yacc.c */ 5603 #line 620 "parser.yy" 5604 { (yyval.op) = OperKinds::LSAssn; } 5605 break; 5606 5607 case 117: 5608 5609 /* Line 1806 of yacc.c */ 5610 #line 621 "parser.yy" 5611 { (yyval.op) = OperKinds::RSAssn; } 5573 { (yyval.op) = OperKinds::OrAssn; } 5612 5574 break; 5613 5575 … … 5616 5578 /* Line 1806 of yacc.c */ 5617 5579 #line 622 "parser.yy" 5618 { (yyval. op) = OperKinds::AndAssn; }5580 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5619 5581 break; 5620 5582 … … 5622 5584 5623 5585 /* Line 1806 of yacc.c */ 5624 #line 62 3"parser.yy"5625 { (yyval. op) = OperKinds::ERAssn; }5586 #line 624 "parser.yy" 5587 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5626 5588 break; 5627 5589 … … 5629 5591 5630 5592 /* Line 1806 of yacc.c */ 5631 #line 62 4"parser.yy"5632 { (yyval. op) = OperKinds::OrAssn; }5593 #line 626 "parser.yy" 5594 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_link( (yyvsp[(4) - (6)].en) ) ) ); } 5633 5595 break; 5634 5596 … … 5636 5598 5637 5599 /* Line 1806 of yacc.c */ 5638 #line 631 "parser.yy" 5639 { (yyval.en) = new CompositeExprNode( build_tuple() ); } 5640 break; 5641 5642 case 122: 5643 5644 /* Line 1806 of yacc.c */ 5645 #line 633 "parser.yy" 5646 { (yyval.en) = new CompositeExprNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5600 #line 628 "parser.yy" 5601 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( (yyvsp[(5) - (7)].en) ) ) ); } 5647 5602 break; 5648 5603 … … 5650 5605 5651 5606 /* Line 1806 of yacc.c */ 5652 #line 63 5"parser.yy"5653 { (yyval.en) = new CompositeExprNode( build_tuple( (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) )) ); }5654 break; 5655 5656 case 12 4:5657 5658 /* Line 1806 of yacc.c */ 5659 #line 6 37"parser.yy"5660 { (yyval.en) = new CompositeExprNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( (yyvsp[(5) - (7)].en)) ) ); }5607 #line 634 "parser.yy" 5608 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5609 break; 5610 5611 case 125: 5612 5613 /* Line 1806 of yacc.c */ 5614 #line 640 "parser.yy" 5615 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5661 5616 break; 5662 5617 … … 5664 5619 5665 5620 /* Line 1806 of yacc.c */ 5666 #line 643 "parser.yy" 5667 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5668 break; 5669 5670 case 128: 5671 5672 /* Line 1806 of yacc.c */ 5673 #line 649 "parser.yy" 5674 { (yyval.en) = new CompositeExprNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5675 break; 5676 5677 case 129: 5621 #line 645 "parser.yy" 5622 { (yyval.en) = 0; } 5623 break; 5624 5625 case 130: 5678 5626 5679 5627 /* Line 1806 of yacc.c */ 5680 5628 #line 654 "parser.yy" 5681 { (yyval.en) = 0; }5682 break;5683 5684 case 133:5685 5686 /* Line 1806 of yacc.c */5687 #line 663 "parser.yy"5688 5629 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5689 5630 break; 5690 5631 5691 case 13 9:5692 5693 /* Line 1806 of yacc.c */ 5694 #line 6 70"parser.yy"5632 case 136: 5633 5634 /* Line 1806 of yacc.c */ 5635 #line 661 "parser.yy" 5695 5636 { 5696 5637 Token fn; 5697 5638 fn.str = new std::string( "^?{}" ); // location undefined 5698 (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( build_func( new VarRefNode( fn), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ), 0 );5639 (yyval.sn) = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ), 0 ); 5699 5640 } 5700 5641 break; 5701 5642 5702 case 1 40:5703 5704 /* Line 1806 of yacc.c */ 5705 #line 6 80"parser.yy"5643 case 137: 5644 5645 /* Line 1806 of yacc.c */ 5646 #line 671 "parser.yy" 5706 5647 { 5707 5648 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5709 5650 break; 5710 5651 5652 case 138: 5653 5654 /* Line 1806 of yacc.c */ 5655 #line 678 "parser.yy" 5656 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5657 break; 5658 5659 case 139: 5660 5661 /* Line 1806 of yacc.c */ 5662 #line 685 "parser.yy" 5663 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5664 break; 5665 5711 5666 case 141: 5712 5667 5713 5668 /* Line 1806 of yacc.c */ 5714 #line 6 87"parser.yy"5715 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 );}5669 #line 691 "parser.yy" 5670 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5716 5671 break; 5717 5672 … … 5719 5674 5720 5675 /* Line 1806 of yacc.c */ 5721 #line 694 "parser.yy" 5722 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5723 break; 5724 5725 case 144: 5726 5727 /* Line 1806 of yacc.c */ 5728 #line 700 "parser.yy" 5729 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5730 break; 5731 5732 case 145: 5733 5734 /* Line 1806 of yacc.c */ 5735 #line 705 "parser.yy" 5676 #line 696 "parser.yy" 5736 5677 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5737 5678 break; 5738 5679 5739 case 14 6:5740 5741 /* Line 1806 of yacc.c */ 5742 #line 707"parser.yy"5680 case 143: 5681 5682 /* Line 1806 of yacc.c */ 5683 #line 698 "parser.yy" 5743 5684 { // mark all fields in list 5744 5685 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 5748 5689 break; 5749 5690 5691 case 144: 5692 5693 /* Line 1806 of yacc.c */ 5694 #line 704 "parser.yy" 5695 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5696 break; 5697 5750 5698 case 147: 5751 5699 5752 5700 /* Line 1806 of yacc.c */ 5753 #line 713 "parser.yy" 5754 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5701 #line 711 "parser.yy" 5702 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5703 break; 5704 5705 case 148: 5706 5707 /* Line 1806 of yacc.c */ 5708 #line 716 "parser.yy" 5709 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5710 break; 5711 5712 case 149: 5713 5714 /* Line 1806 of yacc.c */ 5715 #line 722 "parser.yy" 5716 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5755 5717 break; 5756 5718 … … 5758 5720 5759 5721 /* Line 1806 of yacc.c */ 5760 #line 72 0"parser.yy"5761 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); }}5722 #line 724 "parser.yy" 5723 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5762 5724 break; 5763 5725 … … 5765 5727 5766 5728 /* Line 1806 of yacc.c */ 5767 #line 72 5"parser.yy"5768 { (yyval.sn) = new StatementNode( StatementNode:: Exp, (yyvsp[(1) - (2)].en), 0); }5729 #line 726 "parser.yy" 5730 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5769 5731 break; 5770 5732 … … 5772 5734 5773 5735 /* Line 1806 of yacc.c */ 5774 #line 731 "parser.yy" 5775 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5776 break; 5777 5778 case 153: 5779 5780 /* Line 1806 of yacc.c */ 5781 #line 733 "parser.yy" 5782 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5783 break; 5784 5785 case 154: 5786 5787 /* Line 1806 of yacc.c */ 5788 #line 735 "parser.yy" 5789 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5790 break; 5791 5792 case 155: 5793 5794 /* Line 1806 of yacc.c */ 5795 #line 737 "parser.yy" 5736 #line 728 "parser.yy" 5796 5737 { 5797 5738 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 5805 5746 break; 5806 5747 5807 case 15 6:5808 5809 /* Line 1806 of yacc.c */ 5810 #line 7 47"parser.yy"5748 case 153: 5749 5750 /* Line 1806 of yacc.c */ 5751 #line 738 "parser.yy" 5811 5752 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5812 5753 break; 5813 5754 5814 case 15 7:5815 5816 /* Line 1806 of yacc.c */ 5817 #line 74 9"parser.yy"5755 case 154: 5756 5757 /* Line 1806 of yacc.c */ 5758 #line 740 "parser.yy" 5818 5759 { 5819 5760 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 5822 5763 break; 5823 5764 5765 case 155: 5766 5767 /* Line 1806 of yacc.c */ 5768 #line 750 "parser.yy" 5769 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5770 break; 5771 5772 case 156: 5773 5774 /* Line 1806 of yacc.c */ 5775 #line 752 "parser.yy" 5776 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5777 break; 5778 5824 5779 case 158: 5825 5780 5826 5781 /* Line 1806 of yacc.c */ 5782 #line 757 "parser.yy" 5783 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 5784 break; 5785 5786 case 159: 5787 5788 /* Line 1806 of yacc.c */ 5827 5789 #line 759 "parser.yy" 5828 { (yyval. en) = (yyvsp[(1) - (1)].en); }5829 break; 5830 5831 case 1 59:5832 5833 /* Line 1806 of yacc.c */ 5834 #line 76 1"parser.yy"5835 { (yyval. en) = new CompositeExprNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) )); }5790 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 5791 break; 5792 5793 case 160: 5794 5795 /* Line 1806 of yacc.c */ 5796 #line 763 "parser.yy" 5797 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5836 5798 break; 5837 5799 … … 5839 5801 5840 5802 /* Line 1806 of yacc.c */ 5841 #line 766 "parser.yy" 5842 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 5843 break; 5844 5845 case 162: 5846 5847 /* Line 1806 of yacc.c */ 5848 #line 768 "parser.yy" 5849 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 5803 #line 764 "parser.yy" 5804 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 5850 5805 break; 5851 5806 … … 5853 5808 5854 5809 /* Line 1806 of yacc.c */ 5855 #line 77 2"parser.yy"5856 { (yyval.sn) = ( yyvsp[(2) - (3)].sn); }5810 #line 770 "parser.yy" 5811 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5857 5812 break; 5858 5813 … … 5860 5815 5861 5816 /* Line 1806 of yacc.c */ 5862 #line 77 3"parser.yy"5863 { (yyval.sn) = new StatementNode( StatementNode::Default); }5864 break; 5865 5866 case 16 6:5817 #line 774 "parser.yy" 5818 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5819 break; 5820 5821 case 165: 5867 5822 5868 5823 /* Line 1806 of yacc.c */ 5869 5824 #line 779 "parser.yy" 5870 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }5825 { (yyval.sn) = 0; } 5871 5826 break; 5872 5827 … … 5874 5829 5875 5830 /* Line 1806 of yacc.c */ 5876 #line 78 3"parser.yy"5831 #line 785 "parser.yy" 5877 5832 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5878 5833 break; … … 5881 5836 5882 5837 /* Line 1806 of yacc.c */ 5883 #line 788 "parser.yy" 5838 #line 787 "parser.yy" 5839 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5840 break; 5841 5842 case 169: 5843 5844 /* Line 1806 of yacc.c */ 5845 #line 792 "parser.yy" 5884 5846 { (yyval.sn) = 0; } 5885 5847 break; 5886 5848 5887 case 170:5888 5889 /* Line 1806 of yacc.c */5890 #line 794 "parser.yy"5891 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }5892 break;5893 5894 5849 case 171: 5895 5850 5896 5851 /* Line 1806 of yacc.c */ 5897 #line 79 6"parser.yy"5898 { (yyval.sn) = ( StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) )) ); }5852 #line 798 "parser.yy" 5853 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5899 5854 break; 5900 5855 … … 5902 5857 5903 5858 /* Line 1806 of yacc.c */ 5904 #line 801 "parser.yy" 5859 #line 800 "parser.yy" 5860 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 5861 break; 5862 5863 case 173: 5864 5865 /* Line 1806 of yacc.c */ 5866 #line 802 "parser.yy" 5867 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5868 break; 5869 5870 case 174: 5871 5872 /* Line 1806 of yacc.c */ 5873 #line 804 "parser.yy" 5874 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5875 break; 5876 5877 case 175: 5878 5879 /* Line 1806 of yacc.c */ 5880 #line 809 "parser.yy" 5881 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5882 break; 5883 5884 case 177: 5885 5886 /* Line 1806 of yacc.c */ 5887 #line 815 "parser.yy" 5905 5888 { (yyval.sn) = 0; } 5906 5889 break; 5907 5890 5908 case 174:5909 5910 /* Line 1806 of yacc.c */5911 #line 807 "parser.yy"5912 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }5913 break;5914 5915 case 175:5916 5917 /* Line 1806 of yacc.c */5918 #line 809 "parser.yy"5919 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }5920 break;5921 5922 case 176:5923 5924 /* Line 1806 of yacc.c */5925 #line 811 "parser.yy"5926 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }5927 break;5928 5929 case 177:5930 5931 /* Line 1806 of yacc.c */5932 #line 813 "parser.yy"5933 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }5934 break;5935 5936 5891 case 178: 5937 5892 5938 5893 /* Line 1806 of yacc.c */ 5939 #line 818 "parser.yy" 5894 #line 817 "parser.yy" 5895 { (yyval.sn) = 0; } 5896 break; 5897 5898 case 179: 5899 5900 /* Line 1806 of yacc.c */ 5901 #line 822 "parser.yy" 5902 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5903 break; 5904 5905 case 180: 5906 5907 /* Line 1806 of yacc.c */ 5908 #line 824 "parser.yy" 5909 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 5910 break; 5911 5912 case 181: 5913 5914 /* Line 1806 of yacc.c */ 5915 #line 826 "parser.yy" 5916 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 5917 break; 5918 5919 case 182: 5920 5921 /* Line 1806 of yacc.c */ 5922 #line 831 "parser.yy" 5923 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5924 break; 5925 5926 case 183: 5927 5928 /* Line 1806 of yacc.c */ 5929 #line 833 "parser.yy" 5930 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5931 break; 5932 5933 case 184: 5934 5935 /* Line 1806 of yacc.c */ 5936 #line 838 "parser.yy" 5937 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 5938 break; 5939 5940 case 185: 5941 5942 /* Line 1806 of yacc.c */ 5943 #line 842 "parser.yy" 5944 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 5945 break; 5946 5947 case 186: 5948 5949 /* Line 1806 of yacc.c */ 5950 #line 845 "parser.yy" 5951 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 5952 break; 5953 5954 case 187: 5955 5956 /* Line 1806 of yacc.c */ 5957 #line 849 "parser.yy" 5958 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 5959 break; 5960 5961 case 188: 5962 5963 /* Line 1806 of yacc.c */ 5964 #line 852 "parser.yy" 5940 5965 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5941 5966 break; 5942 5967 5943 case 180:5944 5945 /* Line 1806 of yacc.c */5946 #line 824 "parser.yy"5947 { (yyval.sn) = 0; }5948 break;5949 5950 case 181:5951 5952 /* Line 1806 of yacc.c */5953 #line 826 "parser.yy"5954 { (yyval.sn) = 0; }5955 break;5956 5957 case 182:5958 5959 /* Line 1806 of yacc.c */5960 #line 831 "parser.yy"5961 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }5962 break;5963 5964 case 183:5965 5966 /* Line 1806 of yacc.c */5967 #line 833 "parser.yy"5968 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }5969 break;5970 5971 case 184:5972 5973 /* Line 1806 of yacc.c */5974 #line 835 "parser.yy"5975 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }5976 break;5977 5978 case 185:5979 5980 /* Line 1806 of yacc.c */5981 #line 840 "parser.yy"5982 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }5983 break;5984 5985 case 186:5986 5987 /* Line 1806 of yacc.c */5988 #line 842 "parser.yy"5989 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }5990 break;5991 5992 case 187:5993 5994 /* Line 1806 of yacc.c */5995 #line 847 "parser.yy"5996 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }5997 break;5998 5999 case 188:6000 6001 /* Line 1806 of yacc.c */6002 #line 851 "parser.yy"6003 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }6004 break;6005 6006 5968 case 189: 6007 5969 6008 5970 /* Line 1806 of yacc.c */ 6009 #line 85 4"parser.yy"6010 { (yyval.sn) = new StatementNode( StatementNode:: Continue); }5971 #line 856 "parser.yy" 5972 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6011 5973 break; 6012 5974 … … 6015 5977 /* Line 1806 of yacc.c */ 6016 5978 #line 858 "parser.yy" 6017 { (yyval.sn) = new StatementNode( StatementNode:: Continue, (yyvsp[(2) - (3)].tok)); }5979 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6018 5980 break; 6019 5981 … … 6021 5983 6022 5984 /* Line 1806 of yacc.c */ 6023 #line 86 1"parser.yy"6024 { (yyval.sn) = new StatementNode( StatementNode:: Break); }5985 #line 860 "parser.yy" 5986 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6025 5987 break; 6026 5988 … … 6028 5990 6029 5991 /* Line 1806 of yacc.c */ 6030 #line 86 5"parser.yy"6031 { (yyval.sn) = new StatementNode( StatementNode:: Break, (yyvsp[(2) - (3)].tok)); }5992 #line 864 "parser.yy" 5993 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6032 5994 break; 6033 5995 … … 6035 5997 6036 5998 /* Line 1806 of yacc.c */ 6037 #line 86 7"parser.yy"6038 { (yyval.sn) = new StatementNode( StatementNode:: Return, (yyvsp[(2) - (3)].en), 0 ); }5999 #line 866 "parser.yy" 6000 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6039 6001 break; 6040 6002 … … 6042 6004 6043 6005 /* Line 1806 of yacc.c */ 6044 #line 8 69"parser.yy"6045 { (yyval.sn) = new StatementNode( StatementNode::T hrow, (yyvsp[(2) - (3)].en), 0); }6006 #line 873 "parser.yy" 6007 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6046 6008 break; 6047 6009 … … 6049 6011 6050 6012 /* Line 1806 of yacc.c */ 6051 #line 87 3"parser.yy"6052 { (yyval.sn) = new StatementNode( StatementNode::T hrow, (yyvsp[(2) - (3)].en), 0); }6013 #line 875 "parser.yy" 6014 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6053 6015 break; 6054 6016 … … 6056 6018 6057 6019 /* Line 1806 of yacc.c */ 6058 #line 875 "parser.yy" 6059 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6060 break; 6061 6062 case 197: 6063 6064 /* Line 1806 of yacc.c */ 6065 #line 882 "parser.yy" 6066 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6067 break; 6068 6069 case 198: 6070 6071 /* Line 1806 of yacc.c */ 6072 #line 884 "parser.yy" 6073 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6074 break; 6075 6076 case 199: 6077 6078 /* Line 1806 of yacc.c */ 6079 #line 886 "parser.yy" 6020 #line 877 "parser.yy" 6080 6021 { 6081 6022 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6084 6025 break; 6085 6026 6027 case 198: 6028 6029 /* Line 1806 of yacc.c */ 6030 #line 888 "parser.yy" 6031 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6032 break; 6033 6034 case 199: 6035 6036 /* Line 1806 of yacc.c */ 6037 #line 890 "parser.yy" 6038 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6039 break; 6040 6041 case 200: 6042 6043 /* Line 1806 of yacc.c */ 6044 #line 892 "parser.yy" 6045 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6046 break; 6047 6086 6048 case 201: 6087 6049 6088 6050 /* Line 1806 of yacc.c */ 6089 #line 89 7"parser.yy"6090 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true); }6051 #line 894 "parser.yy" 6052 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6091 6053 break; 6092 6054 … … 6095 6057 /* Line 1806 of yacc.c */ 6096 6058 #line 899 "parser.yy" 6097 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true) ); }6059 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6098 6060 break; 6099 6061 … … 6102 6064 /* Line 1806 of yacc.c */ 6103 6065 #line 901 "parser.yy" 6104 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true); }6066 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6105 6067 break; 6106 6068 … … 6109 6071 /* Line 1806 of yacc.c */ 6110 6072 #line 903 "parser.yy" 6111 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true) ); }6073 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6112 6074 break; 6113 6075 … … 6115 6077 6116 6078 /* Line 1806 of yacc.c */ 6117 #line 90 8"parser.yy"6118 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }6079 #line 905 "parser.yy" 6080 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6119 6081 break; 6120 6082 … … 6123 6085 /* Line 1806 of yacc.c */ 6124 6086 #line 910 "parser.yy" 6125 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }6126 break;6127 6128 case 207:6129 6130 /* Line 1806 of yacc.c */6131 #line 912 "parser.yy"6132 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }6133 break;6134 6135 case 208:6136 6137 /* Line 1806 of yacc.c */6138 #line 914 "parser.yy"6139 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }6140 break;6141 6142 case 209:6143 6144 /* Line 1806 of yacc.c */6145 #line 919 "parser.yy"6146 6087 { 6147 6088 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6150 6091 break; 6151 6092 6152 case 2 11:6153 6154 /* Line 1806 of yacc.c */ 6155 #line 9 33"parser.yy"6093 case 208: 6094 6095 /* Line 1806 of yacc.c */ 6096 #line 924 "parser.yy" 6156 6097 { 6157 6098 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6160 6101 break; 6161 6102 6162 case 2 12:6163 6164 /* Line 1806 of yacc.c */ 6165 #line 9 38"parser.yy"6103 case 209: 6104 6105 /* Line 1806 of yacc.c */ 6106 #line 929 "parser.yy" 6166 6107 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6167 6108 break; 6168 6109 6169 case 21 3:6170 6171 /* Line 1806 of yacc.c */ 6172 #line 9 40"parser.yy"6110 case 210: 6111 6112 /* Line 1806 of yacc.c */ 6113 #line 931 "parser.yy" 6173 6114 { 6174 6115 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6177 6118 break; 6178 6119 6120 case 212: 6121 6122 /* Line 1806 of yacc.c */ 6123 #line 940 "parser.yy" 6124 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6125 break; 6126 6127 case 213: 6128 6129 /* Line 1806 of yacc.c */ 6130 #line 942 "parser.yy" 6131 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6132 break; 6133 6134 case 214: 6135 6136 /* Line 1806 of yacc.c */ 6137 #line 944 "parser.yy" 6138 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6139 break; 6140 6179 6141 case 215: 6180 6142 6181 6143 /* Line 1806 of yacc.c */ 6182 #line 94 9"parser.yy"6183 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0); }6144 #line 946 "parser.yy" 6145 { (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)].en) ); } 6184 6146 break; 6185 6147 … … 6187 6149 6188 6150 /* Line 1806 of yacc.c */ 6189 #line 9 51"parser.yy"6190 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - ( 8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }6151 #line 948 "parser.yy" 6152 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); } 6191 6153 break; 6192 6154 … … 6195 6157 /* Line 1806 of yacc.c */ 6196 6158 #line 953 "parser.yy" 6197 { (yyval. sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }6159 { (yyval.flag) = false; } 6198 6160 break; 6199 6161 … … 6202 6164 /* Line 1806 of yacc.c */ 6203 6165 #line 955 "parser.yy" 6204 { (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) ); }6166 { (yyval.flag) = true; } 6205 6167 break; 6206 6168 … … 6208 6170 6209 6171 /* Line 1806 of yacc.c */ 6210 #line 957 "parser.yy" 6211 { (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) ); } 6212 break; 6213 6214 case 220: 6215 6216 /* Line 1806 of yacc.c */ 6217 #line 962 "parser.yy" 6218 { (yyval.flag) = false; } 6219 break; 6220 6221 case 221: 6222 6223 /* Line 1806 of yacc.c */ 6224 #line 964 "parser.yy" 6225 { (yyval.flag) = true; } 6172 #line 960 "parser.yy" 6173 { (yyval.en) = 0; } 6226 6174 break; 6227 6175 … … 6229 6177 6230 6178 /* Line 1806 of yacc.c */ 6231 #line 969 "parser.yy" 6179 #line 967 "parser.yy" 6180 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6181 break; 6182 6183 case 223: 6184 6185 /* Line 1806 of yacc.c */ 6186 #line 972 "parser.yy" 6187 { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6188 break; 6189 6190 case 224: 6191 6192 /* Line 1806 of yacc.c */ 6193 #line 974 "parser.yy" 6194 { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6195 break; 6196 6197 case 225: 6198 6199 /* Line 1806 of yacc.c */ 6200 #line 979 "parser.yy" 6232 6201 { (yyval.en) = 0; } 6233 6202 break; 6234 6203 6235 case 225:6236 6237 /* Line 1806 of yacc.c */6238 #line 976 "parser.yy"6239 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }6240 break;6241 6242 6204 case 226: 6243 6205 6244 6206 /* Line 1806 of yacc.c */ 6245 6207 #line 981 "parser.yy" 6246 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }6208 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6247 6209 break; 6248 6210 … … 6251 6213 /* Line 1806 of yacc.c */ 6252 6214 #line 983 "parser.yy" 6253 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }6215 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6254 6216 break; 6255 6217 … … 6258 6220 /* Line 1806 of yacc.c */ 6259 6221 #line 988 "parser.yy" 6260 { (yyval. constant) = 0; }6222 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6261 6223 break; 6262 6224 … … 6265 6227 /* Line 1806 of yacc.c */ 6266 6228 #line 990 "parser.yy" 6267 { (yyval. constant) = (yyvsp[(1) - (1)].constant); }6229 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6268 6230 break; 6269 6231 … … 6271 6233 6272 6234 /* Line 1806 of yacc.c */ 6273 #line 992 "parser.yy"6274 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }6275 break;6276 6277 case 231:6278 6279 /* Line 1806 of yacc.c */6280 6235 #line 997 "parser.yy" 6281 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6282 break; 6283 6284 case 232: 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 999 "parser.yy" 6288 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6236 { (yyval.decl) = 0; } 6289 6237 break; 6290 6238 … … 6292 6240 6293 6241 /* Line 1806 of yacc.c */ 6294 #line 1006 "parser.yy" 6242 #line 1004 "parser.yy" 6243 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6244 break; 6245 6246 case 234: 6247 6248 /* Line 1806 of yacc.c */ 6249 #line 1009 "parser.yy" 6295 6250 { (yyval.decl) = 0; } 6296 6251 break; 6297 6252 6298 case 23 6:6299 6300 /* Line 1806 of yacc.c */ 6301 #line 101 3"parser.yy"6253 case 237: 6254 6255 /* Line 1806 of yacc.c */ 6256 #line 1016 "parser.yy" 6302 6257 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6303 6258 break; 6304 6259 6305 case 237: 6306 6307 /* Line 1806 of yacc.c */ 6308 #line 1018 "parser.yy" 6309 { (yyval.decl) = 0; } 6310 break; 6311 6312 case 240: 6313 6314 /* Line 1806 of yacc.c */ 6315 #line 1025 "parser.yy" 6316 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6317 break; 6318 6319 case 245: 6320 6321 /* Line 1806 of yacc.c */ 6322 #line 1039 "parser.yy" 6260 case 242: 6261 6262 /* Line 1806 of yacc.c */ 6263 #line 1030 "parser.yy" 6323 6264 {} 6324 6265 break; 6325 6266 6326 case 24 6:6327 6328 /* Line 1806 of yacc.c */ 6329 #line 10 40"parser.yy"6267 case 243: 6268 6269 /* Line 1806 of yacc.c */ 6270 #line 1031 "parser.yy" 6330 6271 {} 6331 6272 break; 6332 6273 6333 case 25 4:6334 6335 /* Line 1806 of yacc.c */ 6336 #line 106 9"parser.yy"6274 case 251: 6275 6276 /* Line 1806 of yacc.c */ 6277 #line 1060 "parser.yy" 6337 6278 { 6338 6279 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6341 6282 break; 6342 6283 6343 case 25 5:6344 6345 /* Line 1806 of yacc.c */ 6346 #line 10 76"parser.yy"6284 case 252: 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 1067 "parser.yy" 6347 6288 { 6348 6289 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6351 6292 break; 6352 6293 6353 case 25 6:6354 6355 /* Line 1806 of yacc.c */ 6356 #line 10 81"parser.yy"6294 case 253: 6295 6296 /* Line 1806 of yacc.c */ 6297 #line 1072 "parser.yy" 6357 6298 { 6358 6299 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6361 6302 break; 6362 6303 6363 case 25 7:6364 6365 /* Line 1806 of yacc.c */ 6366 #line 10 91"parser.yy"6304 case 254: 6305 6306 /* Line 1806 of yacc.c */ 6307 #line 1082 "parser.yy" 6367 6308 { 6368 6309 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6371 6312 break; 6372 6313 6373 case 25 8:6374 6375 /* Line 1806 of yacc.c */ 6376 #line 10 96"parser.yy"6314 case 255: 6315 6316 /* Line 1806 of yacc.c */ 6317 #line 1087 "parser.yy" 6377 6318 { 6378 6319 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6381 6322 break; 6382 6323 6383 case 25 9:6384 6385 /* Line 1806 of yacc.c */ 6386 #line 1 101"parser.yy"6324 case 256: 6325 6326 /* Line 1806 of yacc.c */ 6327 #line 1092 "parser.yy" 6387 6328 { 6388 6329 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6391 6332 break; 6392 6333 6393 case 2 60:6394 6395 /* Line 1806 of yacc.c */ 6396 #line 110 9"parser.yy"6334 case 257: 6335 6336 /* Line 1806 of yacc.c */ 6337 #line 1100 "parser.yy" 6397 6338 { 6398 6339 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6401 6342 break; 6402 6343 6403 case 2 61:6404 6405 /* Line 1806 of yacc.c */ 6406 #line 11 14"parser.yy"6344 case 258: 6345 6346 /* Line 1806 of yacc.c */ 6347 #line 1105 "parser.yy" 6407 6348 { 6408 6349 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6411 6352 break; 6412 6353 6413 case 2 62:6414 6415 /* Line 1806 of yacc.c */ 6416 #line 111 9"parser.yy"6354 case 259: 6355 6356 /* Line 1806 of yacc.c */ 6357 #line 1110 "parser.yy" 6417 6358 { 6418 6359 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6421 6362 break; 6422 6363 6423 case 26 3:6424 6425 /* Line 1806 of yacc.c */ 6426 #line 11 24"parser.yy"6364 case 260: 6365 6366 /* Line 1806 of yacc.c */ 6367 #line 1115 "parser.yy" 6427 6368 { 6428 6369 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6431 6372 break; 6432 6373 6433 case 26 4:6434 6435 /* Line 1806 of yacc.c */ 6436 #line 112 9"parser.yy"6374 case 261: 6375 6376 /* Line 1806 of yacc.c */ 6377 #line 1120 "parser.yy" 6437 6378 { 6438 6379 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6441 6382 break; 6442 6383 6443 case 26 5:6444 6445 /* Line 1806 of yacc.c */ 6446 #line 11 37"parser.yy"6384 case 262: 6385 6386 /* Line 1806 of yacc.c */ 6387 #line 1128 "parser.yy" 6447 6388 { 6448 6389 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6450 6391 break; 6451 6392 6452 case 26 6:6453 6454 /* Line 1806 of yacc.c */ 6455 #line 11 60"parser.yy"6393 case 263: 6394 6395 /* Line 1806 of yacc.c */ 6396 #line 1151 "parser.yy" 6456 6397 { 6457 6398 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6459 6400 break; 6460 6401 6461 case 26 7:6462 6463 /* Line 1806 of yacc.c */ 6464 #line 11 64"parser.yy"6402 case 264: 6403 6404 /* Line 1806 of yacc.c */ 6405 #line 1155 "parser.yy" 6465 6406 { 6466 6407 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6468 6409 break; 6469 6410 6470 case 268: 6411 case 265: 6412 6413 /* Line 1806 of yacc.c */ 6414 #line 1162 "parser.yy" 6415 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6416 break; 6417 6418 case 266: 6419 6420 /* Line 1806 of yacc.c */ 6421 #line 1166 "parser.yy" 6422 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6423 break; 6424 6425 case 267: 6471 6426 6472 6427 /* Line 1806 of yacc.c */ 6473 6428 #line 1171 "parser.yy" 6474 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }6475 break;6476 6477 case 269:6478 6479 /* Line 1806 of yacc.c */6480 #line 1175 "parser.yy"6481 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }6482 break;6483 6484 case 270:6485 6486 /* Line 1806 of yacc.c */6487 #line 1180 "parser.yy"6488 6429 { 6489 6430 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6492 6433 break; 6493 6434 6494 case 2 71:6495 6496 /* Line 1806 of yacc.c */ 6497 #line 11 85"parser.yy"6435 case 268: 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1176 "parser.yy" 6498 6439 { 6499 6440 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6502 6443 break; 6503 6444 6504 case 2 72:6505 6506 /* Line 1806 of yacc.c */ 6507 #line 11 90"parser.yy"6445 case 269: 6446 6447 /* Line 1806 of yacc.c */ 6448 #line 1181 "parser.yy" 6508 6449 { 6509 6450 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6512 6453 break; 6513 6454 6514 case 27 3:6515 6516 /* Line 1806 of yacc.c */ 6517 #line 1 201"parser.yy"6455 case 270: 6456 6457 /* Line 1806 of yacc.c */ 6458 #line 1192 "parser.yy" 6518 6459 { 6519 6460 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6522 6463 break; 6523 6464 6524 case 27 4:6525 6526 /* Line 1806 of yacc.c */ 6527 #line 1 206"parser.yy"6465 case 271: 6466 6467 /* Line 1806 of yacc.c */ 6468 #line 1197 "parser.yy" 6528 6469 { 6529 6470 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6532 6473 break; 6533 6474 6534 case 27 5:6535 6536 /* Line 1806 of yacc.c */ 6537 #line 12 11"parser.yy"6475 case 272: 6476 6477 /* Line 1806 of yacc.c */ 6478 #line 1202 "parser.yy" 6538 6479 { 6539 6480 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6542 6483 break; 6543 6484 6544 case 27 6:6545 6546 /* Line 1806 of yacc.c */ 6547 #line 12 16"parser.yy"6485 case 273: 6486 6487 /* Line 1806 of yacc.c */ 6488 #line 1207 "parser.yy" 6548 6489 { 6549 6490 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6552 6493 break; 6553 6494 6554 case 27 7:6555 6556 /* Line 1806 of yacc.c */ 6557 #line 12 21"parser.yy"6495 case 274: 6496 6497 /* Line 1806 of yacc.c */ 6498 #line 1212 "parser.yy" 6558 6499 { 6559 6500 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6562 6503 break; 6563 6504 6564 case 27 8:6565 6566 /* Line 1806 of yacc.c */ 6567 #line 12 30"parser.yy"6505 case 275: 6506 6507 /* Line 1806 of yacc.c */ 6508 #line 1221 "parser.yy" 6568 6509 { 6569 6510 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6572 6513 break; 6573 6514 6574 case 27 9:6575 6576 /* Line 1806 of yacc.c */ 6577 #line 12 35"parser.yy"6515 case 276: 6516 6517 /* Line 1806 of yacc.c */ 6518 #line 1226 "parser.yy" 6578 6519 { 6579 6520 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6582 6523 break; 6583 6524 6584 case 28 4:6585 6586 /* Line 1806 of yacc.c */ 6587 #line 12 52"parser.yy"6525 case 281: 6526 6527 /* Line 1806 of yacc.c */ 6528 #line 1243 "parser.yy" 6588 6529 { 6589 6530 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6592 6533 break; 6593 6534 6594 case 28 5:6595 6596 /* Line 1806 of yacc.c */ 6597 #line 12 57"parser.yy"6535 case 282: 6536 6537 /* Line 1806 of yacc.c */ 6538 #line 1248 "parser.yy" 6598 6539 { 6599 6540 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6602 6543 break; 6603 6544 6545 case 291: 6546 6547 /* Line 1806 of yacc.c */ 6548 #line 1270 "parser.yy" 6549 { (yyval.decl) = 0; } 6550 break; 6551 6604 6552 case 294: 6605 6553 6606 6554 /* Line 1806 of yacc.c */ 6607 #line 12 79"parser.yy"6608 { (yyval.decl) = 0; }6555 #line 1282 "parser.yy" 6556 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6609 6557 break; 6610 6558 … … 6612 6560 6613 6561 /* Line 1806 of yacc.c */ 6614 #line 1291 "parser.yy" 6615 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6562 #line 1293 "parser.yy" 6563 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6564 break; 6565 6566 case 298: 6567 6568 /* Line 1806 of yacc.c */ 6569 #line 1295 "parser.yy" 6570 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6571 break; 6572 6573 case 299: 6574 6575 /* Line 1806 of yacc.c */ 6576 #line 1297 "parser.yy" 6577 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6616 6578 break; 6617 6579 … … 6619 6581 6620 6582 /* Line 1806 of yacc.c */ 6621 #line 1 302"parser.yy"6622 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const); }6583 #line 1299 "parser.yy" 6584 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6623 6585 break; 6624 6586 … … 6626 6588 6627 6589 /* Line 1806 of yacc.c */ 6628 #line 130 4"parser.yy"6629 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Restrict); }6590 #line 1301 "parser.yy" 6591 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6630 6592 break; 6631 6593 … … 6633 6595 6634 6596 /* Line 1806 of yacc.c */ 6635 #line 1306 "parser.yy" 6636 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6637 break; 6638 6639 case 303: 6640 6641 /* Line 1806 of yacc.c */ 6642 #line 1308 "parser.yy" 6643 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6644 break; 6645 6646 case 304: 6647 6648 /* Line 1806 of yacc.c */ 6649 #line 1310 "parser.yy" 6650 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6651 break; 6652 6653 case 305: 6654 6655 /* Line 1806 of yacc.c */ 6656 #line 1312 "parser.yy" 6597 #line 1303 "parser.yy" 6657 6598 { 6658 6599 typedefTable.enterScope(); … … 6660 6601 break; 6661 6602 6662 case 30 6:6663 6664 /* Line 1806 of yacc.c */ 6665 #line 13 16"parser.yy"6603 case 303: 6604 6605 /* Line 1806 of yacc.c */ 6606 #line 1307 "parser.yy" 6666 6607 { 6667 6608 typedefTable.leaveScope(); … … 6670 6611 break; 6671 6612 6613 case 305: 6614 6615 /* Line 1806 of yacc.c */ 6616 #line 1316 "parser.yy" 6617 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6618 break; 6619 6620 case 306: 6621 6622 /* Line 1806 of yacc.c */ 6623 #line 1318 "parser.yy" 6624 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6625 break; 6626 6672 6627 case 308: 6673 6628 6674 6629 /* Line 1806 of yacc.c */ 6675 #line 132 5"parser.yy"6630 #line 1329 "parser.yy" 6676 6631 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6677 6632 break; 6678 6633 6679 case 309: 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1327 "parser.yy" 6634 case 310: 6635 6636 /* Line 1806 of yacc.c */ 6637 #line 1338 "parser.yy" 6638 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6639 break; 6640 6641 case 311: 6642 6643 /* Line 1806 of yacc.c */ 6644 #line 1340 "parser.yy" 6645 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6646 break; 6647 6648 case 312: 6649 6650 /* Line 1806 of yacc.c */ 6651 #line 1342 "parser.yy" 6652 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6653 break; 6654 6655 case 313: 6656 6657 /* Line 1806 of yacc.c */ 6658 #line 1344 "parser.yy" 6659 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6660 break; 6661 6662 case 314: 6663 6664 /* Line 1806 of yacc.c */ 6665 #line 1346 "parser.yy" 6666 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6667 break; 6668 6669 case 315: 6670 6671 /* Line 1806 of yacc.c */ 6672 #line 1348 "parser.yy" 6673 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6674 break; 6675 6676 case 316: 6677 6678 /* Line 1806 of yacc.c */ 6679 #line 1350 "parser.yy" 6680 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6681 break; 6682 6683 case 317: 6684 6685 /* Line 1806 of yacc.c */ 6686 #line 1352 "parser.yy" 6687 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6688 break; 6689 6690 case 318: 6691 6692 /* Line 1806 of yacc.c */ 6693 #line 1357 "parser.yy" 6694 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6695 break; 6696 6697 case 319: 6698 6699 /* Line 1806 of yacc.c */ 6700 #line 1359 "parser.yy" 6701 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6702 break; 6703 6704 case 320: 6705 6706 /* Line 1806 of yacc.c */ 6707 #line 1361 "parser.yy" 6708 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6709 break; 6710 6711 case 321: 6712 6713 /* Line 1806 of yacc.c */ 6714 #line 1363 "parser.yy" 6715 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6716 break; 6717 6718 case 322: 6719 6720 /* Line 1806 of yacc.c */ 6721 #line 1365 "parser.yy" 6722 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6723 break; 6724 6725 case 323: 6726 6727 /* Line 1806 of yacc.c */ 6728 #line 1367 "parser.yy" 6729 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6730 break; 6731 6732 case 324: 6733 6734 /* Line 1806 of yacc.c */ 6735 #line 1369 "parser.yy" 6736 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6737 break; 6738 6739 case 325: 6740 6741 /* Line 1806 of yacc.c */ 6742 #line 1371 "parser.yy" 6743 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6744 break; 6745 6746 case 326: 6747 6748 /* Line 1806 of yacc.c */ 6749 #line 1373 "parser.yy" 6750 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6751 break; 6752 6753 case 327: 6754 6755 /* Line 1806 of yacc.c */ 6756 #line 1375 "parser.yy" 6757 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6758 break; 6759 6760 case 328: 6761 6762 /* Line 1806 of yacc.c */ 6763 #line 1377 "parser.yy" 6764 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6765 break; 6766 6767 case 329: 6768 6769 /* Line 1806 of yacc.c */ 6770 #line 1379 "parser.yy" 6771 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6772 break; 6773 6774 case 330: 6775 6776 /* Line 1806 of yacc.c */ 6777 #line 1381 "parser.yy" 6778 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6779 break; 6780 6781 case 332: 6782 6783 /* Line 1806 of yacc.c */ 6784 #line 1388 "parser.yy" 6785 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6786 break; 6787 6788 case 333: 6789 6790 /* Line 1806 of yacc.c */ 6791 #line 1390 "parser.yy" 6792 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6793 break; 6794 6795 case 334: 6796 6797 /* Line 1806 of yacc.c */ 6798 #line 1392 "parser.yy" 6683 6799 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6684 6800 break; 6685 6801 6686 case 311: 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1338 "parser.yy" 6802 case 335: 6803 6804 /* Line 1806 of yacc.c */ 6805 #line 1394 "parser.yy" 6806 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6807 break; 6808 6809 case 337: 6810 6811 /* Line 1806 of yacc.c */ 6812 #line 1400 "parser.yy" 6813 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6814 break; 6815 6816 case 339: 6817 6818 /* Line 1806 of yacc.c */ 6819 #line 1407 "parser.yy" 6820 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6821 break; 6822 6823 case 340: 6824 6825 /* Line 1806 of yacc.c */ 6826 #line 1409 "parser.yy" 6690 6827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6691 6828 break; 6692 6829 6693 case 313: 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1347 "parser.yy" 6697 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6698 break; 6699 6700 case 314: 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1349 "parser.yy" 6704 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6705 break; 6706 6707 case 315: 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1351 "parser.yy" 6711 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6712 break; 6713 6714 case 316: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1353 "parser.yy" 6718 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6719 break; 6720 6721 case 317: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1355 "parser.yy" 6725 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6726 break; 6727 6728 case 318: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1357 "parser.yy" 6732 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6733 break; 6734 6735 case 319: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1359 "parser.yy" 6739 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6740 break; 6741 6742 case 320: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1361 "parser.yy" 6746 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6747 break; 6748 6749 case 321: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1366 "parser.yy" 6753 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6754 break; 6755 6756 case 322: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1368 "parser.yy" 6760 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6761 break; 6762 6763 case 323: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1370 "parser.yy" 6767 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6768 break; 6769 6770 case 324: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1372 "parser.yy" 6774 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6775 break; 6776 6777 case 325: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1374 "parser.yy" 6781 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6782 break; 6783 6784 case 326: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1376 "parser.yy" 6788 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6789 break; 6790 6791 case 327: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1378 "parser.yy" 6795 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6796 break; 6797 6798 case 328: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1380 "parser.yy" 6802 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6803 break; 6804 6805 case 329: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1382 "parser.yy" 6809 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6810 break; 6811 6812 case 330: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1384 "parser.yy" 6816 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6817 break; 6818 6819 case 331: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1386 "parser.yy" 6823 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6824 break; 6825 6826 case 332: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1388 "parser.yy" 6830 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6831 break; 6832 6833 case 333: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1390 "parser.yy" 6837 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6838 break; 6839 6840 case 335: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1397 "parser.yy" 6830 case 341: 6831 6832 /* Line 1806 of yacc.c */ 6833 #line 1411 "parser.yy" 6834 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6835 break; 6836 6837 case 342: 6838 6839 /* Line 1806 of yacc.c */ 6840 #line 1416 "parser.yy" 6841 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6842 break; 6843 6844 case 343: 6845 6846 /* Line 1806 of yacc.c */ 6847 #line 1418 "parser.yy" 6848 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6849 break; 6850 6851 case 344: 6852 6853 /* Line 1806 of yacc.c */ 6854 #line 1420 "parser.yy" 6855 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6856 break; 6857 6858 case 345: 6859 6860 /* Line 1806 of yacc.c */ 6861 #line 1422 "parser.yy" 6862 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6863 break; 6864 6865 case 347: 6866 6867 /* Line 1806 of yacc.c */ 6868 #line 1428 "parser.yy" 6844 6869 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6845 6870 break; 6846 6871 6847 case 3 36:6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1 399"parser.yy"6872 case 348: 6873 6874 /* Line 1806 of yacc.c */ 6875 #line 1430 "parser.yy" 6851 6876 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6852 6877 break; 6853 6878 6854 case 3 37:6855 6856 /* Line 1806 of yacc.c */ 6857 #line 14 01"parser.yy"6879 case 349: 6880 6881 /* Line 1806 of yacc.c */ 6882 #line 1432 "parser.yy" 6858 6883 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6859 6884 break; 6860 6885 6861 case 338: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1403 "parser.yy" 6865 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6866 break; 6867 6868 case 340: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1409 "parser.yy" 6872 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6873 break; 6874 6875 case 342: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1416 "parser.yy" 6886 case 351: 6887 6888 /* Line 1806 of yacc.c */ 6889 #line 1438 "parser.yy" 6879 6890 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6880 6891 break; 6881 6892 6882 case 3 43:6883 6884 /* Line 1806 of yacc.c */ 6885 #line 14 18"parser.yy"6893 case 352: 6894 6895 /* Line 1806 of yacc.c */ 6896 #line 1440 "parser.yy" 6886 6897 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6887 6898 break; 6888 6899 6889 case 344: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1420 "parser.yy" 6893 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6894 break; 6895 6896 case 345: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1425 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6901 break; 6902 6903 case 346: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1427 "parser.yy" 6907 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6908 break; 6909 6910 case 347: 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1429 "parser.yy" 6914 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6915 break; 6916 6917 case 348: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1431 "parser.yy" 6921 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6922 break; 6923 6924 case 350: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1437 "parser.yy" 6900 case 354: 6901 6902 /* Line 1806 of yacc.c */ 6903 #line 1446 "parser.yy" 6928 6904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6929 6905 break; 6930 6906 6931 case 35 1:6932 6933 /* Line 1806 of yacc.c */ 6934 #line 14 39"parser.yy"6907 case 355: 6908 6909 /* Line 1806 of yacc.c */ 6910 #line 1448 "parser.yy" 6935 6911 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6936 6912 break; 6937 6913 6938 case 35 2:6939 6940 /* Line 1806 of yacc.c */ 6941 #line 14 41"parser.yy"6914 case 356: 6915 6916 /* Line 1806 of yacc.c */ 6917 #line 1450 "parser.yy" 6942 6918 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6943 6919 break; 6944 6920 6945 case 354: 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1447 "parser.yy" 6949 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6950 break; 6951 6952 case 355: 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1449 "parser.yy" 6921 case 357: 6922 6923 /* Line 1806 of yacc.c */ 6924 #line 1455 "parser.yy" 6925 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6926 break; 6927 6928 case 358: 6929 6930 /* Line 1806 of yacc.c */ 6931 #line 1457 "parser.yy" 6932 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6933 break; 6934 6935 case 359: 6936 6937 /* Line 1806 of yacc.c */ 6938 #line 1459 "parser.yy" 6956 6939 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6957 6940 break; 6958 6941 6959 case 357:6960 6961 /* Line 1806 of yacc.c */6962 #line 1455 "parser.yy"6963 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6964 break;6965 6966 case 358:6967 6968 /* Line 1806 of yacc.c */6969 #line 1457 "parser.yy"6970 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6971 break;6972 6973 case 359:6974 6975 /* Line 1806 of yacc.c */6976 #line 1459 "parser.yy"6977 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6978 break;6979 6980 case 360:6981 6982 /* Line 1806 of yacc.c */6983 #line 1464 "parser.yy"6984 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }6985 break;6986 6987 case 361:6988 6989 /* Line 1806 of yacc.c */6990 #line 1466 "parser.yy"6991 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6992 break;6993 6994 6942 case 362: 6995 6943 6996 6944 /* Line 1806 of yacc.c */ 6997 #line 1468 "parser.yy" 6998 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6999 break; 7000 7001 case 365: 7002 7003 /* Line 1806 of yacc.c */ 7004 #line 1478 "parser.yy" 6945 #line 1469 "parser.yy" 7005 6946 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7006 6947 break; 7007 6948 7008 case 36 6:7009 7010 /* Line 1806 of yacc.c */ 7011 #line 14 80"parser.yy"6949 case 363: 6950 6951 /* Line 1806 of yacc.c */ 6952 #line 1471 "parser.yy" 7012 6953 { 7013 6954 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7016 6957 break; 7017 6958 6959 case 364: 6960 6961 /* Line 1806 of yacc.c */ 6962 #line 1476 "parser.yy" 6963 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6964 break; 6965 6966 case 365: 6967 6968 /* Line 1806 of yacc.c */ 6969 #line 1478 "parser.yy" 6970 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6971 break; 6972 6973 case 366: 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1480 "parser.yy" 6977 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6978 break; 6979 7018 6980 case 367: 7019 6981 7020 6982 /* Line 1806 of yacc.c */ 7021 #line 148 5"parser.yy"7022 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok)); }6983 #line 1482 "parser.yy" 6984 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7023 6985 break; 7024 6986 … … 7027 6989 /* Line 1806 of yacc.c */ 7028 6990 #line 1487 "parser.yy" 7029 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }6991 { (yyval.aggKey) = DeclarationNode::Struct; } 7030 6992 break; 7031 6993 … … 7034 6996 /* Line 1806 of yacc.c */ 7035 6997 #line 1489 "parser.yy" 7036 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }6998 { (yyval.aggKey) = DeclarationNode::Union; } 7037 6999 break; 7038 7000 … … 7040 7002 7041 7003 /* Line 1806 of yacc.c */ 7042 #line 149 1"parser.yy"7043 { (yyval.decl) = (yyvsp[(2) - (2)].decl); }7004 #line 1494 "parser.yy" 7005 { (yyval.decl) = 0; } 7044 7006 break; 7045 7007 … … 7048 7010 /* Line 1806 of yacc.c */ 7049 7011 #line 1496 "parser.yy" 7050 { (yyval.aggKey) = DeclarationNode::Struct; } 7051 break; 7052 7053 case 372: 7054 7055 /* Line 1806 of yacc.c */ 7056 #line 1498 "parser.yy" 7057 { (yyval.aggKey) = DeclarationNode::Union; } 7012 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7058 7013 break; 7059 7014 … … 7061 7016 7062 7017 /* Line 1806 of yacc.c */ 7063 #line 150 3"parser.yy"7064 { (yyval.decl) = 0; }7065 break; 7066 7067 case 37 4:7018 #line 1502 "parser.yy" 7019 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7020 break; 7021 7022 case 375: 7068 7023 7069 7024 /* Line 1806 of yacc.c */ 7070 7025 #line 1505 "parser.yy" 7071 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7072 break;7073 7074 case 376:7075 7076 /* Line 1806 of yacc.c */7077 #line 1511 "parser.yy"7078 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }7079 break;7080 7081 case 378:7082 7083 /* Line 1806 of yacc.c */7084 #line 1514 "parser.yy"7085 7026 { // mark all fields in list 7086 7027 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7090 7031 break; 7091 7032 7033 case 377: 7034 7035 /* Line 1806 of yacc.c */ 7036 #line 1515 "parser.yy" 7037 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7038 break; 7039 7040 case 378: 7041 7042 /* Line 1806 of yacc.c */ 7043 #line 1517 "parser.yy" 7044 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7045 break; 7046 7047 case 379: 7048 7049 /* Line 1806 of yacc.c */ 7050 #line 1519 "parser.yy" 7051 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7052 break; 7053 7092 7054 case 380: 7093 7055 7094 7056 /* Line 1806 of yacc.c */ 7095 7057 #line 1524 "parser.yy" 7096 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7058 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7097 7059 break; 7098 7060 … … 7101 7063 /* Line 1806 of yacc.c */ 7102 7064 #line 1526 "parser.yy" 7103 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }7065 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7104 7066 break; 7105 7067 … … 7107 7069 7108 7070 /* Line 1806 of yacc.c */ 7109 #line 15 28"parser.yy"7110 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) );}7071 #line 1531 "parser.yy" 7072 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7111 7073 break; 7112 7074 … … 7115 7077 /* Line 1806 of yacc.c */ 7116 7078 #line 1533 "parser.yy" 7117 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7079 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7118 7080 break; 7119 7081 … … 7121 7083 7122 7084 /* Line 1806 of yacc.c */ 7123 #line 153 5"parser.yy"7124 { (yyval.decl) = (yyvsp[(1) - ( 4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl)) ); }7085 #line 1536 "parser.yy" 7086 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7125 7087 break; 7126 7088 … … 7128 7090 7129 7091 /* Line 1806 of yacc.c */ 7130 #line 1540 "parser.yy" 7131 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7132 break; 7133 7134 case 386: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1542 "parser.yy" 7138 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7092 #line 1539 "parser.yy" 7093 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7139 7094 break; 7140 7095 … … 7143 7098 /* Line 1806 of yacc.c */ 7144 7099 #line 1545 "parser.yy" 7145 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7100 { (yyval.en) = 0; } 7146 7101 break; 7147 7102 … … 7149 7104 7150 7105 /* Line 1806 of yacc.c */ 7151 #line 154 8"parser.yy"7152 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en)); }7153 break; 7154 7155 case 3 90:7156 7157 /* Line 1806 of yacc.c */ 7158 #line 155 4"parser.yy"7159 { (yyval.en) = 0; }7106 #line 1547 "parser.yy" 7107 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7108 break; 7109 7110 case 389: 7111 7112 /* Line 1806 of yacc.c */ 7113 #line 1552 "parser.yy" 7114 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7160 7115 break; 7161 7116 … … 7163 7118 7164 7119 /* Line 1806 of yacc.c */ 7165 #line 15 56"parser.yy"7166 { (yyval. en) = (yyvsp[(1) - (1)].en); }7120 #line 1561 "parser.yy" 7121 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7167 7122 break; 7168 7123 … … 7170 7125 7171 7126 /* Line 1806 of yacc.c */ 7172 #line 1561 "parser.yy" 7173 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7174 break; 7175 7176 case 394: 7177 7178 /* Line 1806 of yacc.c */ 7179 #line 1570 "parser.yy" 7180 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7181 break; 7182 7183 case 395: 7184 7185 /* Line 1806 of yacc.c */ 7186 #line 1572 "parser.yy" 7127 #line 1563 "parser.yy" 7187 7128 { 7188 7129 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7191 7132 break; 7192 7133 7134 case 393: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1568 "parser.yy" 7138 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7139 break; 7140 7141 case 394: 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1570 "parser.yy" 7145 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7146 break; 7147 7148 case 395: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1575 "parser.yy" 7152 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7153 break; 7154 7193 7155 case 396: 7194 7156 7195 7157 /* Line 1806 of yacc.c */ 7196 7158 #line 1577 "parser.yy" 7197 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }7159 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7198 7160 break; 7199 7161 … … 7201 7163 7202 7164 /* Line 1806 of yacc.c */ 7203 #line 15 79"parser.yy"7204 { (yyval. decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }7165 #line 1582 "parser.yy" 7166 { (yyval.en) = 0; } 7205 7167 break; 7206 7168 … … 7209 7171 /* Line 1806 of yacc.c */ 7210 7172 #line 1584 "parser.yy" 7211 { (yyval. decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en)); }7173 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7212 7174 break; 7213 7175 … … 7215 7177 7216 7178 /* Line 1806 of yacc.c */ 7217 #line 1586 "parser.yy"7218 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }7219 break;7220 7221 case 400:7222 7223 /* Line 1806 of yacc.c */7224 7179 #line 1591 "parser.yy" 7225 { (yyval.en) = 0; }7226 break;7227 7228 case 401:7229 7230 /* Line 1806 of yacc.c */7231 #line 1593 "parser.yy"7232 { (yyval.en) = (yyvsp[(2) - (2)].en); }7233 break;7234 7235 case 402:7236 7237 /* Line 1806 of yacc.c */7238 #line 1600 "parser.yy"7239 7180 { (yyval.decl) = 0; } 7240 7181 break; 7241 7182 7242 case 40 6:7243 7244 /* Line 1806 of yacc.c */ 7245 #line 1 608"parser.yy"7183 case 403: 7184 7185 /* Line 1806 of yacc.c */ 7186 #line 1599 "parser.yy" 7246 7187 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7247 7188 break; 7248 7189 7190 case 404: 7191 7192 /* Line 1806 of yacc.c */ 7193 #line 1601 "parser.yy" 7194 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7195 break; 7196 7197 case 405: 7198 7199 /* Line 1806 of yacc.c */ 7200 #line 1603 "parser.yy" 7201 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7202 break; 7203 7249 7204 case 407: 7250 7205 7251 7206 /* Line 1806 of yacc.c */ 7252 #line 1610 "parser.yy" 7207 #line 1611 "parser.yy" 7208 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7209 break; 7210 7211 case 408: 7212 7213 /* Line 1806 of yacc.c */ 7214 #line 1613 "parser.yy" 7215 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7216 break; 7217 7218 case 409: 7219 7220 /* Line 1806 of yacc.c */ 7221 #line 1615 "parser.yy" 7222 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7223 break; 7224 7225 case 411: 7226 7227 /* Line 1806 of yacc.c */ 7228 #line 1621 "parser.yy" 7229 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7230 break; 7231 7232 case 412: 7233 7234 /* Line 1806 of yacc.c */ 7235 #line 1626 "parser.yy" 7236 { (yyval.decl) = 0; } 7237 break; 7238 7239 case 415: 7240 7241 /* Line 1806 of yacc.c */ 7242 #line 1633 "parser.yy" 7253 7243 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7254 7244 break; 7255 7245 7256 case 408: 7257 7258 /* Line 1806 of yacc.c */ 7259 #line 1612 "parser.yy" 7260 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7261 break; 7262 7263 case 410: 7264 7265 /* Line 1806 of yacc.c */ 7266 #line 1620 "parser.yy" 7246 case 418: 7247 7248 /* Line 1806 of yacc.c */ 7249 #line 1640 "parser.yy" 7267 7250 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7268 7251 break; 7269 7252 7270 case 41 1:7271 7272 /* Line 1806 of yacc.c */ 7273 #line 16 22 "parser.yy"7253 case 419: 7254 7255 /* Line 1806 of yacc.c */ 7256 #line 1642 "parser.yy" 7274 7257 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7275 7258 break; 7276 7259 7277 case 412:7278 7279 /* Line 1806 of yacc.c */7280 #line 1624 "parser.yy"7281 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }7282 break;7283 7284 case 414:7285 7286 /* Line 1806 of yacc.c */7287 #line 1630 "parser.yy"7288 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7289 break;7290 7291 case 415:7292 7293 /* Line 1806 of yacc.c */7294 #line 1635 "parser.yy"7295 { (yyval.decl) = 0; }7296 break;7297 7298 case 418:7299 7300 /* Line 1806 of yacc.c */7301 #line 1642 "parser.yy"7302 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }7303 break;7304 7305 7260 case 421: 7306 7261 7307 7262 /* Line 1806 of yacc.c */ 7308 #line 16 49"parser.yy"7309 { (yyval.decl) = (yyvsp[(1) - ( 5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7263 #line 1651 "parser.yy" 7264 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7310 7265 break; 7311 7266 … … 7313 7268 7314 7269 /* Line 1806 of yacc.c */ 7315 #line 1651 "parser.yy" 7316 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7317 break; 7318 7319 case 424: 7320 7321 /* Line 1806 of yacc.c */ 7322 #line 1660 "parser.yy" 7270 #line 1654 "parser.yy" 7323 7271 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7324 7272 break; 7325 7273 7326 case 425: 7327 7328 /* Line 1806 of yacc.c */ 7329 #line 1663 "parser.yy" 7330 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7331 break; 7332 7333 case 426: 7334 7335 /* Line 1806 of yacc.c */ 7336 #line 1665 "parser.yy" 7274 case 423: 7275 7276 /* Line 1806 of yacc.c */ 7277 #line 1656 "parser.yy" 7337 7278 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7338 7279 break; 7339 7280 7340 case 4 31:7341 7342 /* Line 1806 of yacc.c */ 7343 #line 16 75"parser.yy"7281 case 428: 7282 7283 /* Line 1806 of yacc.c */ 7284 #line 1666 "parser.yy" 7344 7285 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7345 7286 break; 7346 7287 7347 case 43 3:7348 7349 /* Line 1806 of yacc.c */ 7350 #line 16 81"parser.yy"7288 case 430: 7289 7290 /* Line 1806 of yacc.c */ 7291 #line 1672 "parser.yy" 7351 7292 { 7352 7293 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7355 7296 break; 7356 7297 7357 case 43 4:7358 7359 /* Line 1806 of yacc.c */ 7360 #line 16 86"parser.yy"7298 case 431: 7299 7300 /* Line 1806 of yacc.c */ 7301 #line 1677 "parser.yy" 7361 7302 { 7362 7303 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7365 7306 break; 7366 7307 7367 case 436: 7308 case 433: 7309 7310 /* Line 1806 of yacc.c */ 7311 #line 1686 "parser.yy" 7312 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7313 break; 7314 7315 case 434: 7368 7316 7369 7317 /* Line 1806 of yacc.c */ 7370 7318 #line 1695 "parser.yy" 7319 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7320 break; 7321 7322 case 435: 7323 7324 /* Line 1806 of yacc.c */ 7325 #line 1697 "parser.yy" 7326 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7327 break; 7328 7329 case 447: 7330 7331 /* Line 1806 of yacc.c */ 7332 #line 1722 "parser.yy" 7371 7333 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7372 7334 break; 7373 7335 7374 case 437: 7375 7376 /* Line 1806 of yacc.c */ 7377 #line 1704 "parser.yy" 7378 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7379 break; 7380 7381 case 438: 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1706 "parser.yy" 7385 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7386 break; 7387 7388 case 450: 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1731 "parser.yy" 7336 case 451: 7337 7338 /* Line 1806 of yacc.c */ 7339 #line 1730 "parser.yy" 7392 7340 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7393 7341 break; 7394 7342 7343 case 452: 7344 7345 /* Line 1806 of yacc.c */ 7346 #line 1735 "parser.yy" 7347 { (yyval.in) = 0; } 7348 break; 7349 7350 case 453: 7351 7352 /* Line 1806 of yacc.c */ 7353 #line 1737 "parser.yy" 7354 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7355 break; 7356 7395 7357 case 454: 7396 7358 7397 7359 /* Line 1806 of yacc.c */ 7398 7360 #line 1739 "parser.yy" 7399 { (yyval. decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl)); }7361 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7400 7362 break; 7401 7363 … … 7403 7365 7404 7366 /* Line 1806 of yacc.c */ 7367 #line 1743 "parser.yy" 7368 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7369 break; 7370 7371 case 456: 7372 7373 /* Line 1806 of yacc.c */ 7405 7374 #line 1744 "parser.yy" 7375 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7376 break; 7377 7378 case 457: 7379 7380 /* Line 1806 of yacc.c */ 7381 #line 1749 "parser.yy" 7406 7382 { (yyval.in) = 0; } 7407 7383 break; 7408 7384 7409 case 456: 7410 7411 /* Line 1806 of yacc.c */ 7412 #line 1746 "parser.yy" 7413 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7414 break; 7415 7416 case 457: 7417 7418 /* Line 1806 of yacc.c */ 7419 #line 1748 "parser.yy" 7420 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7421 break; 7422 7423 case 458: 7385 case 459: 7386 7387 /* Line 1806 of yacc.c */ 7388 #line 1751 "parser.yy" 7389 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7390 break; 7391 7392 case 460: 7424 7393 7425 7394 /* Line 1806 of yacc.c */ 7426 7395 #line 1752 "parser.yy" 7427 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7428 break; 7429 7430 case 459: 7431 7432 /* Line 1806 of yacc.c */ 7433 #line 1753 "parser.yy" 7434 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7435 break; 7436 7437 case 460: 7438 7439 /* Line 1806 of yacc.c */ 7440 #line 1758 "parser.yy" 7441 { (yyval.in) = 0; } 7442 break; 7443 7444 case 462: 7445 7446 /* Line 1806 of yacc.c */ 7447 #line 1760 "parser.yy" 7448 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7396 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7397 break; 7398 7399 case 461: 7400 7401 /* Line 1806 of yacc.c */ 7402 #line 1754 "parser.yy" 7403 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7449 7404 break; 7450 7405 … … 7452 7407 7453 7408 /* Line 1806 of yacc.c */ 7454 #line 17 61"parser.yy"7455 { (yyval. in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }7456 break; 7457 7458 case 46 4:7459 7460 /* Line 1806 of yacc.c */ 7461 #line 17 63"parser.yy"7462 { (yyval. in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en)) ) ); }7409 #line 1770 "parser.yy" 7410 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7411 break; 7412 7413 case 465: 7414 7415 /* Line 1806 of yacc.c */ 7416 #line 1776 "parser.yy" 7417 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) ) ); } 7463 7418 break; 7464 7419 … … 7466 7421 7467 7422 /* Line 1806 of yacc.c */ 7468 #line 1779 "parser.yy" 7469 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7423 #line 1782 "parser.yy" 7424 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7425 break; 7426 7427 case 467: 7428 7429 /* Line 1806 of yacc.c */ 7430 #line 1785 "parser.yy" 7431 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7470 7432 break; 7471 7433 … … 7473 7435 7474 7436 /* Line 1806 of yacc.c */ 7475 #line 178 5"parser.yy"7476 { (yyval.en) = ( ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }7437 #line 1787 "parser.yy" 7438 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7477 7439 break; 7478 7440 … … 7480 7442 7481 7443 /* Line 1806 of yacc.c */ 7482 #line 17 93"parser.yy"7483 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }7444 #line 1789 "parser.yy" 7445 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7484 7446 break; 7485 7447 … … 7487 7449 7488 7450 /* Line 1806 of yacc.c */ 7489 #line 1795 "parser.yy" 7490 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7491 break; 7492 7493 case 471: 7494 7495 /* Line 1806 of yacc.c */ 7496 #line 1798 "parser.yy" 7497 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7451 #line 1791 "parser.yy" 7452 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7498 7453 break; 7499 7454 … … 7501 7456 7502 7457 /* Line 1806 of yacc.c */ 7503 #line 18 00"parser.yy"7504 { (yyval. en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true); }7458 #line 1815 "parser.yy" 7459 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7505 7460 break; 7506 7461 … … 7508 7463 7509 7464 /* Line 1806 of yacc.c */ 7510 #line 18 02"parser.yy"7511 { (yyval. en) = new DesignatorNode( new CompositeExprNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true); }7465 #line 1817 "parser.yy" 7466 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7512 7467 break; 7513 7468 … … 7515 7470 7516 7471 /* Line 1806 of yacc.c */ 7517 #line 18 04"parser.yy"7518 { (yyval. en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }7472 #line 1819 "parser.yy" 7473 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7519 7474 break; 7520 7475 … … 7522 7477 7523 7478 /* Line 1806 of yacc.c */ 7524 #line 182 8"parser.yy"7479 #line 1825 "parser.yy" 7525 7480 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7526 7481 break; … … 7529 7484 7530 7485 /* Line 1806 of yacc.c */ 7531 #line 18 30"parser.yy"7486 #line 1827 "parser.yy" 7532 7487 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7533 7488 break; … … 7537 7492 /* Line 1806 of yacc.c */ 7538 7493 #line 1832 "parser.yy" 7539 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7494 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7540 7495 break; 7541 7496 … … 7544 7499 /* Line 1806 of yacc.c */ 7545 7500 #line 1838 "parser.yy" 7546 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7501 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7547 7502 break; 7548 7503 … … 7550 7505 7551 7506 /* Line 1806 of yacc.c */ 7552 #line 184 0"parser.yy"7553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl)); }7507 #line 1843 "parser.yy" 7508 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7554 7509 break; 7555 7510 … … 7558 7513 /* Line 1806 of yacc.c */ 7559 7514 #line 1845 "parser.yy" 7560 { (yyval.decl) = DeclarationNode::new FromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }7515 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7561 7516 break; 7562 7517 … … 7565 7520 /* Line 1806 of yacc.c */ 7566 7521 #line 1851 "parser.yy" 7567 { (yyval. decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }7522 { (yyval.tclass) = DeclarationNode::Type; } 7568 7523 break; 7569 7524 … … 7571 7526 7572 7527 /* Line 1806 of yacc.c */ 7573 #line 185 6"parser.yy"7574 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }7528 #line 1853 "parser.yy" 7529 { (yyval.tclass) = DeclarationNode::Ftype; } 7575 7530 break; 7576 7531 … … 7578 7533 7579 7534 /* Line 1806 of yacc.c */ 7580 #line 1858 "parser.yy" 7581 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7535 #line 1855 "parser.yy" 7536 { (yyval.tclass) = DeclarationNode::Dtype; } 7537 break; 7538 7539 case 487: 7540 7541 /* Line 1806 of yacc.c */ 7542 #line 1860 "parser.yy" 7543 { (yyval.decl) = 0; } 7582 7544 break; 7583 7545 … … 7585 7547 7586 7548 /* Line 1806 of yacc.c */ 7587 #line 186 4"parser.yy"7588 { (yyval. tclass) = DeclarationNode::Type; }7549 #line 1862 "parser.yy" 7550 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7589 7551 break; 7590 7552 … … 7592 7554 7593 7555 /* Line 1806 of yacc.c */ 7594 #line 1866 "parser.yy" 7595 { (yyval.tclass) = DeclarationNode::Ftype; } 7596 break; 7597 7598 case 490: 7599 7600 /* Line 1806 of yacc.c */ 7601 #line 1868 "parser.yy" 7602 { (yyval.tclass) = DeclarationNode::Dtype; } 7603 break; 7604 7605 case 491: 7606 7607 /* Line 1806 of yacc.c */ 7608 #line 1873 "parser.yy" 7609 { (yyval.decl) = 0; } 7610 break; 7611 7612 case 492: 7613 7614 /* Line 1806 of yacc.c */ 7615 #line 1875 "parser.yy" 7616 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7617 break; 7618 7619 case 493: 7620 7621 /* Line 1806 of yacc.c */ 7622 #line 1880 "parser.yy" 7556 #line 1867 "parser.yy" 7623 7557 { 7624 7558 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7627 7561 break; 7628 7562 7563 case 490: 7564 7565 /* Line 1806 of yacc.c */ 7566 #line 1872 "parser.yy" 7567 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7568 break; 7569 7570 case 491: 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1874 "parser.yy" 7574 { (yyval.decl) = 0; } 7575 break; 7576 7577 case 492: 7578 7579 /* Line 1806 of yacc.c */ 7580 #line 1879 "parser.yy" 7581 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7582 break; 7583 7629 7584 case 494: 7630 7585 7631 7586 /* Line 1806 of yacc.c */ 7632 #line 188 5"parser.yy"7633 { (yyval. decl) = (yyvsp[(4) - (5)].decl); }7587 #line 1882 "parser.yy" 7588 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7634 7589 break; 7635 7590 … … 7637 7592 7638 7593 /* Line 1806 of yacc.c */ 7639 #line 188 7"parser.yy"7640 { (yyval. decl) = 0; }7594 #line 1884 "parser.yy" 7595 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7641 7596 break; 7642 7597 … … 7644 7599 7645 7600 /* Line 1806 of yacc.c */ 7646 #line 1892 "parser.yy" 7647 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7601 #line 1889 "parser.yy" 7602 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7603 break; 7604 7605 case 497: 7606 7607 /* Line 1806 of yacc.c */ 7608 #line 1891 "parser.yy" 7609 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7648 7610 break; 7649 7611 … … 7651 7613 7652 7614 /* Line 1806 of yacc.c */ 7653 #line 189 5"parser.yy"7654 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }7615 #line 1893 "parser.yy" 7616 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7655 7617 break; 7656 7618 … … 7658 7620 7659 7621 /* Line 1806 of yacc.c */ 7660 #line 189 7"parser.yy"7661 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }7622 #line 1898 "parser.yy" 7623 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7662 7624 break; 7663 7625 … … 7665 7627 7666 7628 /* Line 1806 of yacc.c */ 7667 #line 190 2"parser.yy"7668 { (yyval.decl) = (yyvsp[( 2) - (2)].decl); }7629 #line 1900 "parser.yy" 7630 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7669 7631 break; 7670 7632 … … 7672 7634 7673 7635 /* Line 1806 of yacc.c */ 7674 #line 1904 "parser.yy" 7675 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7676 break; 7677 7678 case 502: 7679 7680 /* Line 1806 of yacc.c */ 7681 #line 1906 "parser.yy" 7682 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7683 break; 7684 7685 case 503: 7686 7687 /* Line 1806 of yacc.c */ 7688 #line 1911 "parser.yy" 7689 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7690 break; 7691 7692 case 504: 7693 7694 /* Line 1806 of yacc.c */ 7695 #line 1913 "parser.yy" 7696 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7697 break; 7698 7699 case 505: 7700 7701 /* Line 1806 of yacc.c */ 7702 #line 1918 "parser.yy" 7636 #line 1905 "parser.yy" 7703 7637 { 7704 7638 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7707 7641 break; 7708 7642 7709 case 50 6:7710 7711 /* Line 1806 of yacc.c */ 7712 #line 19 23"parser.yy"7643 case 502: 7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1910 "parser.yy" 7713 7647 { 7714 7648 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7717 7651 break; 7718 7652 7719 case 50 7:7720 7721 /* Line 1806 of yacc.c */ 7722 #line 19 31"parser.yy"7653 case 503: 7654 7655 /* Line 1806 of yacc.c */ 7656 #line 1918 "parser.yy" 7723 7657 { 7724 7658 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7727 7661 break; 7728 7662 7729 case 50 8:7730 7731 /* Line 1806 of yacc.c */ 7732 #line 19 36"parser.yy"7663 case 504: 7664 7665 /* Line 1806 of yacc.c */ 7666 #line 1923 "parser.yy" 7733 7667 { 7734 7668 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7737 7671 break; 7738 7672 7739 case 50 9:7740 7741 /* Line 1806 of yacc.c */ 7742 #line 19 41"parser.yy"7673 case 505: 7674 7675 /* Line 1806 of yacc.c */ 7676 #line 1928 "parser.yy" 7743 7677 { 7744 7678 typedefTable.leaveTrait(); … … 7748 7682 break; 7749 7683 7750 case 5 11:7751 7752 /* Line 1806 of yacc.c */ 7753 #line 19 51"parser.yy"7684 case 507: 7685 7686 /* Line 1806 of yacc.c */ 7687 #line 1938 "parser.yy" 7754 7688 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7755 7689 break; 7756 7690 7757 case 51 4:7758 7759 /* Line 1806 of yacc.c */ 7760 #line 19 61"parser.yy"7691 case 510: 7692 7693 /* Line 1806 of yacc.c */ 7694 #line 1948 "parser.yy" 7761 7695 { 7762 7696 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7765 7699 break; 7766 7700 7767 case 51 5:7768 7769 /* Line 1806 of yacc.c */ 7770 #line 19 66"parser.yy"7701 case 511: 7702 7703 /* Line 1806 of yacc.c */ 7704 #line 1953 "parser.yy" 7771 7705 { 7772 7706 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7775 7709 break; 7776 7710 7777 case 51 6:7778 7779 /* Line 1806 of yacc.c */ 7780 #line 19 71"parser.yy"7711 case 512: 7712 7713 /* Line 1806 of yacc.c */ 7714 #line 1958 "parser.yy" 7781 7715 { 7782 7716 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7785 7719 break; 7786 7720 7787 case 51 7:7788 7789 /* Line 1806 of yacc.c */ 7790 #line 19 79"parser.yy"7721 case 513: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1966 "parser.yy" 7791 7725 { 7792 7726 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7795 7729 break; 7796 7730 7797 case 51 8:7798 7799 /* Line 1806 of yacc.c */ 7800 #line 19 84"parser.yy"7731 case 514: 7732 7733 /* Line 1806 of yacc.c */ 7734 #line 1971 "parser.yy" 7801 7735 { 7802 7736 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7805 7739 break; 7806 7740 7807 case 51 9:7808 7809 /* Line 1806 of yacc.c */ 7810 #line 19 94"parser.yy"7741 case 515: 7742 7743 /* Line 1806 of yacc.c */ 7744 #line 1981 "parser.yy" 7811 7745 {} 7812 7746 break; 7813 7747 7814 case 5 20:7815 7816 /* Line 1806 of yacc.c */ 7817 #line 19 96"parser.yy"7748 case 516: 7749 7750 /* Line 1806 of yacc.c */ 7751 #line 1983 "parser.yy" 7818 7752 { 7819 7753 if ( theTree ) { … … 7825 7759 break; 7826 7760 7827 case 522: 7761 case 518: 7762 7763 /* Line 1806 of yacc.c */ 7764 #line 1995 "parser.yy" 7765 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7766 break; 7767 7768 case 519: 7769 7770 /* Line 1806 of yacc.c */ 7771 #line 2000 "parser.yy" 7772 { (yyval.decl) = 0; } 7773 break; 7774 7775 case 523: 7828 7776 7829 7777 /* Line 1806 of yacc.c */ 7830 7778 #line 2008 "parser.yy" 7831 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }7832 break;7833 7834 case 523:7835 7836 /* Line 1806 of yacc.c */7837 #line 2013 "parser.yy"7838 { (yyval.decl) = 0; }7839 break;7840 7841 case 527:7842 7843 /* Line 1806 of yacc.c */7844 #line 2021 "parser.yy"7845 7779 {} 7846 7780 break; 7847 7781 7848 case 52 8:7849 7850 /* Line 1806 of yacc.c */ 7851 #line 20 23"parser.yy"7782 case 524: 7783 7784 /* Line 1806 of yacc.c */ 7785 #line 2010 "parser.yy" 7852 7786 { 7853 7787 linkageStack.push( linkage ); … … 7856 7790 break; 7857 7791 7858 case 52 9:7859 7860 /* Line 1806 of yacc.c */ 7861 #line 20 28"parser.yy"7792 case 525: 7793 7794 /* Line 1806 of yacc.c */ 7795 #line 2015 "parser.yy" 7862 7796 { 7863 7797 linkage = linkageStack.top(); … … 7867 7801 break; 7868 7802 7869 case 5 30:7870 7871 /* Line 1806 of yacc.c */ 7872 #line 20 34"parser.yy"7803 case 526: 7804 7805 /* Line 1806 of yacc.c */ 7806 #line 2021 "parser.yy" 7873 7807 { // mark all fields in list 7874 7808 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7878 7812 break; 7879 7813 7880 case 5 32:7881 7882 /* Line 1806 of yacc.c */ 7883 #line 20 49"parser.yy"7814 case 528: 7815 7816 /* Line 1806 of yacc.c */ 7817 #line 2036 "parser.yy" 7884 7818 { 7885 7819 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7889 7823 break; 7890 7824 7891 case 5 33:7892 7893 /* Line 1806 of yacc.c */ 7894 #line 20 55"parser.yy"7825 case 529: 7826 7827 /* Line 1806 of yacc.c */ 7828 #line 2042 "parser.yy" 7895 7829 { 7896 7830 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7900 7834 break; 7901 7835 7902 case 53 4:7903 7904 /* Line 1806 of yacc.c */ 7905 #line 20 64"parser.yy"7836 case 530: 7837 7838 /* Line 1806 of yacc.c */ 7839 #line 2051 "parser.yy" 7906 7840 { 7907 7841 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7911 7845 break; 7912 7846 7913 case 53 5:7914 7915 /* Line 1806 of yacc.c */ 7916 #line 20 70"parser.yy"7847 case 531: 7848 7849 /* Line 1806 of yacc.c */ 7850 #line 2057 "parser.yy" 7917 7851 { 7918 7852 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7922 7856 break; 7923 7857 7924 case 53 6:7925 7926 /* Line 1806 of yacc.c */ 7927 #line 20 76"parser.yy"7858 case 532: 7859 7860 /* Line 1806 of yacc.c */ 7861 #line 2063 "parser.yy" 7928 7862 { 7929 7863 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7933 7867 break; 7934 7868 7935 case 53 7:7936 7937 /* Line 1806 of yacc.c */ 7938 #line 20 82"parser.yy"7869 case 533: 7870 7871 /* Line 1806 of yacc.c */ 7872 #line 2069 "parser.yy" 7939 7873 { 7940 7874 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7944 7878 break; 7945 7879 7946 case 53 8:7947 7948 /* Line 1806 of yacc.c */ 7949 #line 20 88"parser.yy"7880 case 534: 7881 7882 /* Line 1806 of yacc.c */ 7883 #line 2075 "parser.yy" 7950 7884 { 7951 7885 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7955 7889 break; 7956 7890 7957 case 53 9:7958 7959 /* Line 1806 of yacc.c */ 7960 #line 20 96"parser.yy"7891 case 535: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 2083 "parser.yy" 7961 7895 { 7962 7896 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7966 7900 break; 7967 7901 7968 case 5 40:7969 7970 /* Line 1806 of yacc.c */ 7971 #line 2 102"parser.yy"7902 case 536: 7903 7904 /* Line 1806 of yacc.c */ 7905 #line 2089 "parser.yy" 7972 7906 { 7973 7907 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7977 7911 break; 7978 7912 7979 case 5 41:7980 7981 /* Line 1806 of yacc.c */ 7982 #line 2 110"parser.yy"7913 case 537: 7914 7915 /* Line 1806 of yacc.c */ 7916 #line 2097 "parser.yy" 7983 7917 { 7984 7918 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7988 7922 break; 7989 7923 7990 case 5 42:7991 7992 /* Line 1806 of yacc.c */ 7993 #line 21 16"parser.yy"7924 case 538: 7925 7926 /* Line 1806 of yacc.c */ 7927 #line 2103 "parser.yy" 7994 7928 { 7995 7929 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7999 7933 break; 8000 7934 8001 case 546: 8002 8003 /* Line 1806 of yacc.c */ 8004 #line 2131 "parser.yy" 8005 { (yyval.en) = new CompositeExprNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7935 case 542: 7936 7937 /* Line 1806 of yacc.c */ 7938 #line 2118 "parser.yy" 7939 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7940 break; 7941 7942 case 545: 7943 7944 /* Line 1806 of yacc.c */ 7945 #line 2128 "parser.yy" 7946 { (yyval.decl) = 0; } 7947 break; 7948 7949 case 548: 7950 7951 /* Line 1806 of yacc.c */ 7952 #line 2135 "parser.yy" 7953 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8006 7954 break; 8007 7955 … … 8013 7961 break; 8014 7962 8015 case 552: 8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2148 "parser.yy" 8019 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8020 break; 8021 8022 case 553: 8023 8024 /* Line 1806 of yacc.c */ 8025 #line 2154 "parser.yy" 8026 { (yyval.decl) = 0; } 7963 case 555: 7964 7965 /* Line 1806 of yacc.c */ 7966 #line 2156 "parser.yy" 7967 {} 7968 break; 7969 7970 case 556: 7971 7972 /* Line 1806 of yacc.c */ 7973 #line 2157 "parser.yy" 7974 {} 7975 break; 7976 7977 case 557: 7978 7979 /* Line 1806 of yacc.c */ 7980 #line 2158 "parser.yy" 7981 {} 7982 break; 7983 7984 case 558: 7985 7986 /* Line 1806 of yacc.c */ 7987 #line 2159 "parser.yy" 7988 {} 8027 7989 break; 8028 7990 … … 8030 7992 8031 7993 /* Line 1806 of yacc.c */ 8032 #line 2169 "parser.yy" 8033 {} 8034 break; 8035 8036 case 560: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2170 "parser.yy" 8040 {} 7994 #line 2194 "parser.yy" 7995 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8041 7996 break; 8042 7997 … … 8044 7999 8045 8000 /* Line 1806 of yacc.c */ 8046 #line 21 71"parser.yy"8047 { }8001 #line 2197 "parser.yy" 8002 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8048 8003 break; 8049 8004 … … 8051 8006 8052 8007 /* Line 1806 of yacc.c */ 8053 #line 21 72"parser.yy"8054 { }8008 #line 2199 "parser.yy" 8009 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8055 8010 break; 8056 8011 … … 8058 8013 8059 8014 /* Line 1806 of yacc.c */ 8060 #line 2207 "parser.yy" 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8062 break; 8063 8064 case 565: 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2210 "parser.yy" 8068 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8069 break; 8070 8071 case 566: 8072 8073 /* Line 1806 of yacc.c */ 8074 #line 2212 "parser.yy" 8075 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8076 break; 8077 8078 case 567: 8079 8080 /* Line 1806 of yacc.c */ 8081 #line 2217 "parser.yy" 8015 #line 2204 "parser.yy" 8082 8016 { 8083 8017 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8086 8020 break; 8087 8021 8022 case 564: 8023 8024 /* Line 1806 of yacc.c */ 8025 #line 2209 "parser.yy" 8026 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8027 break; 8028 8029 case 565: 8030 8031 /* Line 1806 of yacc.c */ 8032 #line 2214 "parser.yy" 8033 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8034 break; 8035 8036 case 566: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2216 "parser.yy" 8040 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8041 break; 8042 8043 case 567: 8044 8045 /* Line 1806 of yacc.c */ 8046 #line 2218 "parser.yy" 8047 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8048 break; 8049 8088 8050 case 568: 8089 8051 8090 8052 /* Line 1806 of yacc.c */ 8091 #line 2222 "parser.yy" 8053 #line 2223 "parser.yy" 8054 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8055 break; 8056 8057 case 569: 8058 8059 /* Line 1806 of yacc.c */ 8060 #line 2225 "parser.yy" 8061 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8062 break; 8063 8064 case 570: 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2227 "parser.yy" 8068 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8069 break; 8070 8071 case 571: 8072 8073 /* Line 1806 of yacc.c */ 8074 #line 2229 "parser.yy" 8092 8075 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8093 8076 break; 8094 8077 8095 case 569: 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2227 "parser.yy" 8078 case 572: 8079 8080 /* Line 1806 of yacc.c */ 8081 #line 2234 "parser.yy" 8082 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8083 break; 8084 8085 case 573: 8086 8087 /* Line 1806 of yacc.c */ 8088 #line 2236 "parser.yy" 8089 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8090 break; 8091 8092 case 574: 8093 8094 /* Line 1806 of yacc.c */ 8095 #line 2245 "parser.yy" 8096 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8097 break; 8098 8099 case 576: 8100 8101 /* Line 1806 of yacc.c */ 8102 #line 2248 "parser.yy" 8103 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8104 break; 8105 8106 case 577: 8107 8108 /* Line 1806 of yacc.c */ 8109 #line 2253 "parser.yy" 8110 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8111 break; 8112 8113 case 578: 8114 8115 /* Line 1806 of yacc.c */ 8116 #line 2255 "parser.yy" 8117 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8118 break; 8119 8120 case 579: 8121 8122 /* Line 1806 of yacc.c */ 8123 #line 2257 "parser.yy" 8124 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8125 break; 8126 8127 case 580: 8128 8129 /* Line 1806 of yacc.c */ 8130 #line 2262 "parser.yy" 8099 8131 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8100 8132 break; 8101 8133 8102 case 5 70:8103 8104 /* Line 1806 of yacc.c */ 8105 #line 22 29"parser.yy"8134 case 581: 8135 8136 /* Line 1806 of yacc.c */ 8137 #line 2264 "parser.yy" 8106 8138 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8107 8139 break; 8108 8140 8109 case 5 71:8110 8111 /* Line 1806 of yacc.c */ 8112 #line 22 31"parser.yy"8141 case 582: 8142 8143 /* Line 1806 of yacc.c */ 8144 #line 2266 "parser.yy" 8113 8145 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8114 8146 break; 8115 8147 8116 case 572: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2236 "parser.yy" 8148 case 583: 8149 8150 /* Line 1806 of yacc.c */ 8151 #line 2271 "parser.yy" 8152 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8153 break; 8154 8155 case 584: 8156 8157 /* Line 1806 of yacc.c */ 8158 #line 2273 "parser.yy" 8159 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8160 break; 8161 8162 case 585: 8163 8164 /* Line 1806 of yacc.c */ 8165 #line 2275 "parser.yy" 8166 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8167 break; 8168 8169 case 589: 8170 8171 /* Line 1806 of yacc.c */ 8172 #line 2290 "parser.yy" 8173 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8174 break; 8175 8176 case 590: 8177 8178 /* Line 1806 of yacc.c */ 8179 #line 2292 "parser.yy" 8180 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8181 break; 8182 8183 case 591: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2294 "parser.yy" 8187 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8188 break; 8189 8190 case 592: 8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2299 "parser.yy" 8194 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8195 break; 8196 8197 case 593: 8198 8199 /* Line 1806 of yacc.c */ 8200 #line 2301 "parser.yy" 8201 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8202 break; 8203 8204 case 594: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2303 "parser.yy" 8208 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8209 break; 8210 8211 case 595: 8212 8213 /* Line 1806 of yacc.c */ 8214 #line 2308 "parser.yy" 8215 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8216 break; 8217 8218 case 596: 8219 8220 /* Line 1806 of yacc.c */ 8221 #line 2310 "parser.yy" 8222 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8223 break; 8224 8225 case 597: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2312 "parser.yy" 8229 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8230 break; 8231 8232 case 598: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2327 "parser.yy" 8236 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8237 break; 8238 8239 case 600: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2330 "parser.yy" 8243 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8244 break; 8245 8246 case 601: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2332 "parser.yy" 8250 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8251 break; 8252 8253 case 603: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2338 "parser.yy" 8257 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8258 break; 8259 8260 case 604: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2343 "parser.yy" 8264 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8265 break; 8266 8267 case 605: 8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2345 "parser.yy" 8271 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8272 break; 8273 8274 case 606: 8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2347 "parser.yy" 8278 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8279 break; 8280 8281 case 607: 8282 8283 /* Line 1806 of yacc.c */ 8284 #line 2352 "parser.yy" 8120 8285 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8121 8286 break; 8122 8287 8123 case 573:8124 8125 /* Line 1806 of yacc.c */ 8126 #line 2 238"parser.yy"8288 case 608: 8289 8290 /* Line 1806 of yacc.c */ 8291 #line 2354 "parser.yy" 8127 8292 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8128 8293 break; 8129 8294 8130 case 574:8131 8132 /* Line 1806 of yacc.c */ 8133 #line 2 240"parser.yy"8295 case 609: 8296 8297 /* Line 1806 of yacc.c */ 8298 #line 2356 "parser.yy" 8134 8299 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8135 8300 break; 8136 8301 8137 case 575:8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2 242"parser.yy"8302 case 610: 8303 8304 /* Line 1806 of yacc.c */ 8305 #line 2358 "parser.yy" 8141 8306 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8142 8307 break; 8143 8308 8144 case 576: 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2247 "parser.yy" 8309 case 611: 8310 8311 /* Line 1806 of yacc.c */ 8312 #line 2363 "parser.yy" 8313 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8314 break; 8315 8316 case 612: 8317 8318 /* Line 1806 of yacc.c */ 8319 #line 2365 "parser.yy" 8148 8320 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8149 8321 break; 8150 8322 8151 case 577:8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2 249"parser.yy"8323 case 613: 8324 8325 /* Line 1806 of yacc.c */ 8326 #line 2367 "parser.yy" 8155 8327 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8156 8328 break; 8157 8329 8158 case 578:8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2 258"parser.yy"8330 case 614: 8331 8332 /* Line 1806 of yacc.c */ 8333 #line 2377 "parser.yy" 8162 8334 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8163 8335 break; 8164 8336 8165 case 580:8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2 261"parser.yy"8337 case 616: 8338 8339 /* Line 1806 of yacc.c */ 8340 #line 2380 "parser.yy" 8169 8341 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8170 8342 break; 8171 8343 8172 case 581: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2266 "parser.yy" 8344 case 617: 8345 8346 /* Line 1806 of yacc.c */ 8347 #line 2382 "parser.yy" 8348 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8349 break; 8350 8351 case 618: 8352 8353 /* Line 1806 of yacc.c */ 8354 #line 2387 "parser.yy" 8355 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8356 break; 8357 8358 case 619: 8359 8360 /* Line 1806 of yacc.c */ 8361 #line 2389 "parser.yy" 8362 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8363 break; 8364 8365 case 620: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2391 "parser.yy" 8369 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8370 break; 8371 8372 case 621: 8373 8374 /* Line 1806 of yacc.c */ 8375 #line 2396 "parser.yy" 8376 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8377 break; 8378 8379 case 622: 8380 8381 /* Line 1806 of yacc.c */ 8382 #line 2398 "parser.yy" 8383 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8384 break; 8385 8386 case 623: 8387 8388 /* Line 1806 of yacc.c */ 8389 #line 2400 "parser.yy" 8390 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8391 break; 8392 8393 case 624: 8394 8395 /* Line 1806 of yacc.c */ 8396 #line 2402 "parser.yy" 8397 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8398 break; 8399 8400 case 625: 8401 8402 /* Line 1806 of yacc.c */ 8403 #line 2407 "parser.yy" 8176 8404 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8177 8405 break; 8178 8406 8179 case 582:8180 8181 /* Line 1806 of yacc.c */ 8182 #line 2 268"parser.yy"8407 case 626: 8408 8409 /* Line 1806 of yacc.c */ 8410 #line 2409 "parser.yy" 8183 8411 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8184 8412 break; 8185 8413 8186 case 583:8187 8188 /* Line 1806 of yacc.c */ 8189 #line 2 270"parser.yy"8414 case 627: 8415 8416 /* Line 1806 of yacc.c */ 8417 #line 2411 "parser.yy" 8190 8418 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8191 8419 break; 8192 8420 8193 case 584: 8194 8195 /* Line 1806 of yacc.c */ 8196 #line 2275 "parser.yy" 8197 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8198 break; 8199 8200 case 585: 8201 8202 /* Line 1806 of yacc.c */ 8203 #line 2277 "parser.yy" 8204 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8205 break; 8206 8207 case 586: 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2279 "parser.yy" 8211 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8212 break; 8213 8214 case 587: 8215 8216 /* Line 1806 of yacc.c */ 8217 #line 2284 "parser.yy" 8218 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8219 break; 8220 8221 case 588: 8222 8223 /* Line 1806 of yacc.c */ 8224 #line 2286 "parser.yy" 8225 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8226 break; 8227 8228 case 589: 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2288 "parser.yy" 8232 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8233 break; 8234 8235 case 593: 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2303 "parser.yy" 8239 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8240 break; 8241 8242 case 594: 8243 8244 /* Line 1806 of yacc.c */ 8245 #line 2305 "parser.yy" 8246 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8247 break; 8248 8249 case 595: 8250 8251 /* Line 1806 of yacc.c */ 8252 #line 2307 "parser.yy" 8253 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8254 break; 8255 8256 case 596: 8257 8258 /* Line 1806 of yacc.c */ 8259 #line 2312 "parser.yy" 8260 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8261 break; 8262 8263 case 597: 8264 8265 /* Line 1806 of yacc.c */ 8266 #line 2314 "parser.yy" 8267 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8268 break; 8269 8270 case 598: 8271 8272 /* Line 1806 of yacc.c */ 8273 #line 2316 "parser.yy" 8274 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8275 break; 8276 8277 case 599: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2321 "parser.yy" 8281 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8282 break; 8283 8284 case 600: 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2323 "parser.yy" 8288 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8289 break; 8290 8291 case 601: 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2325 "parser.yy" 8295 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8296 break; 8297 8298 case 602: 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2340 "parser.yy" 8421 case 628: 8422 8423 /* Line 1806 of yacc.c */ 8424 #line 2442 "parser.yy" 8302 8425 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8303 8426 break; 8304 8427 8305 case 6 04:8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2 343"parser.yy"8428 case 630: 8429 8430 /* Line 1806 of yacc.c */ 8431 #line 2445 "parser.yy" 8309 8432 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8310 8433 break; 8311 8434 8312 case 6 05:8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2 345"parser.yy"8435 case 631: 8436 8437 /* Line 1806 of yacc.c */ 8438 #line 2447 "parser.yy" 8316 8439 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8317 8440 break; 8318 8441 8319 case 607:8320 8321 /* Line 1806 of yacc.c */8322 #line 2351 "parser.yy"8323 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8324 break;8325 8326 case 608:8327 8328 /* Line 1806 of yacc.c */8329 #line 2356 "parser.yy"8330 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8331 break;8332 8333 case 609:8334 8335 /* Line 1806 of yacc.c */8336 #line 2358 "parser.yy"8337 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8338 break;8339 8340 case 610:8341 8342 /* Line 1806 of yacc.c */8343 #line 2360 "parser.yy"8344 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8345 break;8346 8347 case 611:8348 8349 /* Line 1806 of yacc.c */8350 #line 2365 "parser.yy"8351 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8352 break;8353 8354 case 612:8355 8356 /* Line 1806 of yacc.c */8357 #line 2367 "parser.yy"8358 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8359 break;8360 8361 case 613:8362 8363 /* Line 1806 of yacc.c */8364 #line 2369 "parser.yy"8365 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8366 break;8367 8368 case 614:8369 8370 /* Line 1806 of yacc.c */8371 #line 2371 "parser.yy"8372 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8373 break;8374 8375 case 615:8376 8377 /* Line 1806 of yacc.c */8378 #line 2376 "parser.yy"8379 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8380 break;8381 8382 case 616:8383 8384 /* Line 1806 of yacc.c */8385 #line 2378 "parser.yy"8386 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8387 break;8388 8389 case 617:8390 8391 /* Line 1806 of yacc.c */8392 #line 2380 "parser.yy"8393 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8394 break;8395 8396 case 618:8397 8398 /* Line 1806 of yacc.c */8399 #line 2390 "parser.yy"8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8401 break;8402 8403 case 620:8404 8405 /* Line 1806 of yacc.c */8406 #line 2393 "parser.yy"8407 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8408 break;8409 8410 case 621:8411 8412 /* Line 1806 of yacc.c */8413 #line 2395 "parser.yy"8414 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8415 break;8416 8417 case 622:8418 8419 /* Line 1806 of yacc.c */8420 #line 2400 "parser.yy"8421 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8422 break;8423 8424 case 623:8425 8426 /* Line 1806 of yacc.c */8427 #line 2402 "parser.yy"8428 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8429 break;8430 8431 case 624:8432 8433 /* Line 1806 of yacc.c */8434 #line 2404 "parser.yy"8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8436 break;8437 8438 case 625:8439 8440 /* Line 1806 of yacc.c */8441 #line 2409 "parser.yy"8442 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8443 break;8444 8445 case 626:8446 8447 /* Line 1806 of yacc.c */8448 #line 2411 "parser.yy"8449 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8450 break;8451 8452 case 627:8453 8454 /* Line 1806 of yacc.c */8455 #line 2413 "parser.yy"8456 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8457 break;8458 8459 case 628:8460 8461 /* Line 1806 of yacc.c */8462 #line 2415 "parser.yy"8463 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8464 break;8465 8466 case 629:8467 8468 /* Line 1806 of yacc.c */8469 #line 2420 "parser.yy"8470 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8471 break;8472 8473 case 630:8474 8475 /* Line 1806 of yacc.c */8476 #line 2422 "parser.yy"8477 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8478 break;8479 8480 case 631:8481 8482 /* Line 1806 of yacc.c */8483 #line 2424 "parser.yy"8484 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8485 break;8486 8487 8442 case 632: 8488 8443 8489 8444 /* Line 1806 of yacc.c */ 8490 #line 2455 "parser.yy" 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 break; 8493 8494 case 634: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2458 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8499 break; 8500 8501 case 635: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2460 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8506 break; 8507 8508 case 636: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2465 "parser.yy" 8445 #line 2452 "parser.yy" 8512 8446 { 8513 8447 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8516 8450 break; 8517 8451 8518 case 63 7:8519 8520 /* Line 1806 of yacc.c */ 8521 #line 24 70"parser.yy"8452 case 633: 8453 8454 /* Line 1806 of yacc.c */ 8455 #line 2457 "parser.yy" 8522 8456 { 8523 8457 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8526 8460 break; 8527 8461 8462 case 634: 8463 8464 /* Line 1806 of yacc.c */ 8465 #line 2465 "parser.yy" 8466 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8467 break; 8468 8469 case 635: 8470 8471 /* Line 1806 of yacc.c */ 8472 #line 2467 "parser.yy" 8473 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8474 break; 8475 8476 case 636: 8477 8478 /* Line 1806 of yacc.c */ 8479 #line 2469 "parser.yy" 8480 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8481 break; 8482 8483 case 637: 8484 8485 /* Line 1806 of yacc.c */ 8486 #line 2474 "parser.yy" 8487 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8488 break; 8489 8528 8490 case 638: 8529 8491 8530 8492 /* Line 1806 of yacc.c */ 8531 #line 2478 "parser.yy" 8493 #line 2476 "parser.yy" 8494 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8495 break; 8496 8497 case 639: 8498 8499 /* Line 1806 of yacc.c */ 8500 #line 2481 "parser.yy" 8501 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8502 break; 8503 8504 case 640: 8505 8506 /* Line 1806 of yacc.c */ 8507 #line 2483 "parser.yy" 8508 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8509 break; 8510 8511 case 642: 8512 8513 /* Line 1806 of yacc.c */ 8514 #line 2498 "parser.yy" 8515 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8516 break; 8517 8518 case 643: 8519 8520 /* Line 1806 of yacc.c */ 8521 #line 2500 "parser.yy" 8522 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8523 break; 8524 8525 case 644: 8526 8527 /* Line 1806 of yacc.c */ 8528 #line 2505 "parser.yy" 8529 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8530 break; 8531 8532 case 645: 8533 8534 /* Line 1806 of yacc.c */ 8535 #line 2507 "parser.yy" 8536 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8537 break; 8538 8539 case 646: 8540 8541 /* Line 1806 of yacc.c */ 8542 #line 2509 "parser.yy" 8532 8543 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8533 8544 break; 8534 8545 8535 case 6 39:8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2 480"parser.yy"8546 case 647: 8547 8548 /* Line 1806 of yacc.c */ 8549 #line 2511 "parser.yy" 8539 8550 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8540 8551 break; 8541 8552 8542 case 64 0:8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2 482"parser.yy"8553 case 648: 8554 8555 /* Line 1806 of yacc.c */ 8556 #line 2513 "parser.yy" 8546 8557 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8547 8558 break; 8548 8559 8549 case 641: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2487 "parser.yy" 8560 case 650: 8561 8562 /* Line 1806 of yacc.c */ 8563 #line 2519 "parser.yy" 8564 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8565 break; 8566 8567 case 651: 8568 8569 /* Line 1806 of yacc.c */ 8570 #line 2521 "parser.yy" 8571 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8572 break; 8573 8574 case 652: 8575 8576 /* Line 1806 of yacc.c */ 8577 #line 2523 "parser.yy" 8578 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8579 break; 8580 8581 case 653: 8582 8583 /* Line 1806 of yacc.c */ 8584 #line 2528 "parser.yy" 8585 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8586 break; 8587 8588 case 654: 8589 8590 /* Line 1806 of yacc.c */ 8591 #line 2530 "parser.yy" 8592 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8593 break; 8594 8595 case 655: 8596 8597 /* Line 1806 of yacc.c */ 8598 #line 2532 "parser.yy" 8599 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8600 break; 8601 8602 case 656: 8603 8604 /* Line 1806 of yacc.c */ 8605 #line 2538 "parser.yy" 8606 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8607 break; 8608 8609 case 657: 8610 8611 /* Line 1806 of yacc.c */ 8612 #line 2540 "parser.yy" 8613 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8614 break; 8615 8616 case 659: 8617 8618 /* Line 1806 of yacc.c */ 8619 #line 2546 "parser.yy" 8620 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8621 break; 8622 8623 case 660: 8624 8625 /* Line 1806 of yacc.c */ 8626 #line 2548 "parser.yy" 8627 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8628 break; 8629 8630 case 661: 8631 8632 /* Line 1806 of yacc.c */ 8633 #line 2550 "parser.yy" 8634 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8635 break; 8636 8637 case 662: 8638 8639 /* Line 1806 of yacc.c */ 8640 #line 2552 "parser.yy" 8641 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8642 break; 8643 8644 case 664: 8645 8646 /* Line 1806 of yacc.c */ 8647 #line 2567 "parser.yy" 8648 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8649 break; 8650 8651 case 665: 8652 8653 /* Line 1806 of yacc.c */ 8654 #line 2569 "parser.yy" 8655 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8656 break; 8657 8658 case 666: 8659 8660 /* Line 1806 of yacc.c */ 8661 #line 2574 "parser.yy" 8662 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8663 break; 8664 8665 case 667: 8666 8667 /* Line 1806 of yacc.c */ 8668 #line 2576 "parser.yy" 8669 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8670 break; 8671 8672 case 668: 8673 8674 /* Line 1806 of yacc.c */ 8675 #line 2578 "parser.yy" 8676 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8677 break; 8678 8679 case 669: 8680 8681 /* Line 1806 of yacc.c */ 8682 #line 2580 "parser.yy" 8683 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8684 break; 8685 8686 case 670: 8687 8688 /* Line 1806 of yacc.c */ 8689 #line 2582 "parser.yy" 8690 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 break; 8692 8693 case 672: 8694 8695 /* Line 1806 of yacc.c */ 8696 #line 2588 "parser.yy" 8697 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8698 break; 8699 8700 case 673: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2590 "parser.yy" 8704 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8705 break; 8706 8707 case 674: 8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2592 "parser.yy" 8711 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8712 break; 8713 8714 case 675: 8715 8716 /* Line 1806 of yacc.c */ 8717 #line 2597 "parser.yy" 8718 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8719 break; 8720 8721 case 676: 8722 8723 /* Line 1806 of yacc.c */ 8724 #line 2599 "parser.yy" 8725 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8726 break; 8727 8728 case 677: 8729 8730 /* Line 1806 of yacc.c */ 8731 #line 2601 "parser.yy" 8732 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8733 break; 8734 8735 case 679: 8736 8737 /* Line 1806 of yacc.c */ 8738 #line 2608 "parser.yy" 8553 8739 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8554 8740 break; 8555 8741 8556 case 642: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2489 "parser.yy" 8742 case 681: 8743 8744 /* Line 1806 of yacc.c */ 8745 #line 2619 "parser.yy" 8746 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8747 break; 8748 8749 case 682: 8750 8751 /* Line 1806 of yacc.c */ 8752 #line 2622 "parser.yy" 8753 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8754 break; 8755 8756 case 683: 8757 8758 /* Line 1806 of yacc.c */ 8759 #line 2624 "parser.yy" 8760 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8761 break; 8762 8763 case 684: 8764 8765 /* Line 1806 of yacc.c */ 8766 #line 2627 "parser.yy" 8767 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8768 break; 8769 8770 case 685: 8771 8772 /* Line 1806 of yacc.c */ 8773 #line 2629 "parser.yy" 8774 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8775 break; 8776 8777 case 686: 8778 8779 /* Line 1806 of yacc.c */ 8780 #line 2631 "parser.yy" 8781 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8782 break; 8783 8784 case 688: 8785 8786 /* Line 1806 of yacc.c */ 8787 #line 2645 "parser.yy" 8788 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8789 break; 8790 8791 case 689: 8792 8793 /* Line 1806 of yacc.c */ 8794 #line 2647 "parser.yy" 8795 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8796 break; 8797 8798 case 690: 8799 8800 /* Line 1806 of yacc.c */ 8801 #line 2652 "parser.yy" 8802 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8803 break; 8804 8805 case 691: 8806 8807 /* Line 1806 of yacc.c */ 8808 #line 2654 "parser.yy" 8809 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8810 break; 8811 8812 case 692: 8813 8814 /* Line 1806 of yacc.c */ 8815 #line 2656 "parser.yy" 8816 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8817 break; 8818 8819 case 693: 8820 8821 /* Line 1806 of yacc.c */ 8822 #line 2658 "parser.yy" 8823 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8824 break; 8825 8826 case 694: 8827 8828 /* Line 1806 of yacc.c */ 8829 #line 2660 "parser.yy" 8830 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8831 break; 8832 8833 case 696: 8834 8835 /* Line 1806 of yacc.c */ 8836 #line 2666 "parser.yy" 8560 8837 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8561 8838 break; 8562 8839 8563 case 643: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2494 "parser.yy" 8567 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8568 break; 8569 8570 case 644: 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2496 "parser.yy" 8840 case 697: 8841 8842 /* Line 1806 of yacc.c */ 8843 #line 2668 "parser.yy" 8844 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8845 break; 8846 8847 case 698: 8848 8849 /* Line 1806 of yacc.c */ 8850 #line 2670 "parser.yy" 8851 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8852 break; 8853 8854 case 699: 8855 8856 /* Line 1806 of yacc.c */ 8857 #line 2675 "parser.yy" 8574 8858 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8575 8859 break; 8576 8860 8577 case 646: 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2511 "parser.yy" 8581 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8582 break; 8583 8584 case 647: 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2513 "parser.yy" 8588 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8589 break; 8590 8591 case 648: 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2518 "parser.yy" 8595 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8596 break; 8597 8598 case 649: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2520 "parser.yy" 8602 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8603 break; 8604 8605 case 650: 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2522 "parser.yy" 8609 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8610 break; 8611 8612 case 651: 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2524 "parser.yy" 8616 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8617 break; 8618 8619 case 652: 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2526 "parser.yy" 8861 case 700: 8862 8863 /* Line 1806 of yacc.c */ 8864 #line 2677 "parser.yy" 8623 8865 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8624 8866 break; 8625 8867 8626 case 654: 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2532 "parser.yy" 8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8631 break; 8632 8633 case 655: 8634 8635 /* Line 1806 of yacc.c */ 8636 #line 2534 "parser.yy" 8637 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8638 break; 8639 8640 case 656: 8641 8642 /* Line 1806 of yacc.c */ 8643 #line 2536 "parser.yy" 8644 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8645 break; 8646 8647 case 657: 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2541 "parser.yy" 8651 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8652 break; 8653 8654 case 658: 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2543 "parser.yy" 8658 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8659 break; 8660 8661 case 659: 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2545 "parser.yy" 8665 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8666 break; 8667 8668 case 660: 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2551 "parser.yy" 8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8673 break; 8674 8675 case 661: 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2553 "parser.yy" 8679 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8680 break; 8681 8682 case 663: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2559 "parser.yy" 8686 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8687 break; 8688 8689 case 664: 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2561 "parser.yy" 8693 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8694 break; 8695 8696 case 665: 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2563 "parser.yy" 8700 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8701 break; 8702 8703 case 666: 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2565 "parser.yy" 8707 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8708 break; 8709 8710 case 668: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2580 "parser.yy" 8714 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8715 break; 8716 8717 case 669: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2582 "parser.yy" 8721 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8722 break; 8723 8724 case 670: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2587 "parser.yy" 8728 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8729 break; 8730 8731 case 671: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2589 "parser.yy" 8735 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8736 break; 8737 8738 case 672: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2591 "parser.yy" 8742 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8743 break; 8744 8745 case 673: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2593 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8750 break; 8751 8752 case 674: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2595 "parser.yy" 8756 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8757 break; 8758 8759 case 676: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2601 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8764 break; 8765 8766 case 677: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2603 "parser.yy" 8770 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8771 break; 8772 8773 case 678: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2605 "parser.yy" 8777 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8778 break; 8779 8780 case 679: 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2610 "parser.yy" 8784 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8785 break; 8786 8787 case 680: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2612 "parser.yy" 8791 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8792 break; 8793 8794 case 681: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2614 "parser.yy" 8798 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8799 break; 8800 8801 case 683: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2621 "parser.yy" 8805 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8806 break; 8807 8808 case 685: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2632 "parser.yy" 8812 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8813 break; 8814 8815 case 686: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2635 "parser.yy" 8868 case 703: 8869 8870 /* Line 1806 of yacc.c */ 8871 #line 2687 "parser.yy" 8872 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8873 break; 8874 8875 case 706: 8876 8877 /* Line 1806 of yacc.c */ 8878 #line 2697 "parser.yy" 8879 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8880 break; 8881 8882 case 707: 8883 8884 /* Line 1806 of yacc.c */ 8885 #line 2699 "parser.yy" 8886 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8887 break; 8888 8889 case 708: 8890 8891 /* Line 1806 of yacc.c */ 8892 #line 2701 "parser.yy" 8893 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8894 break; 8895 8896 case 709: 8897 8898 /* Line 1806 of yacc.c */ 8899 #line 2703 "parser.yy" 8900 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8901 break; 8902 8903 case 710: 8904 8905 /* Line 1806 of yacc.c */ 8906 #line 2705 "parser.yy" 8907 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8908 break; 8909 8910 case 711: 8911 8912 /* Line 1806 of yacc.c */ 8913 #line 2707 "parser.yy" 8914 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8915 break; 8916 8917 case 712: 8918 8919 /* Line 1806 of yacc.c */ 8920 #line 2714 "parser.yy" 8921 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8922 break; 8923 8924 case 713: 8925 8926 /* Line 1806 of yacc.c */ 8927 #line 2716 "parser.yy" 8928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8929 break; 8930 8931 case 714: 8932 8933 /* Line 1806 of yacc.c */ 8934 #line 2718 "parser.yy" 8935 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8936 break; 8937 8938 case 715: 8939 8940 /* Line 1806 of yacc.c */ 8941 #line 2720 "parser.yy" 8942 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8943 break; 8944 8945 case 716: 8946 8947 /* Line 1806 of yacc.c */ 8948 #line 2722 "parser.yy" 8949 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8950 break; 8951 8952 case 717: 8953 8954 /* Line 1806 of yacc.c */ 8955 #line 2724 "parser.yy" 8956 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8957 break; 8958 8959 case 718: 8960 8961 /* Line 1806 of yacc.c */ 8962 #line 2726 "parser.yy" 8963 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8964 break; 8965 8966 case 719: 8967 8968 /* Line 1806 of yacc.c */ 8969 #line 2728 "parser.yy" 8970 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8971 break; 8972 8973 case 720: 8974 8975 /* Line 1806 of yacc.c */ 8976 #line 2730 "parser.yy" 8977 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8978 break; 8979 8980 case 721: 8981 8982 /* Line 1806 of yacc.c */ 8983 #line 2732 "parser.yy" 8984 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8985 break; 8986 8987 case 722: 8988 8989 /* Line 1806 of yacc.c */ 8990 #line 2737 "parser.yy" 8819 8991 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8820 8992 break; 8821 8993 8822 case 687: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2637 "parser.yy" 8826 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8827 break; 8828 8829 case 688: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2640 "parser.yy" 8994 case 723: 8995 8996 /* Line 1806 of yacc.c */ 8997 #line 2739 "parser.yy" 8833 8998 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8834 8999 break; 8835 9000 8836 case 689: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2642 "parser.yy" 8840 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8841 break; 8842 8843 case 690: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2644 "parser.yy" 8847 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8848 break; 8849 8850 case 692: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2658 "parser.yy" 8854 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8855 break; 8856 8857 case 693: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2660 "parser.yy" 8861 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8862 break; 8863 8864 case 694: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2665 "parser.yy" 8868 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8869 break; 8870 8871 case 695: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2667 "parser.yy" 8875 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8876 break; 8877 8878 case 696: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2669 "parser.yy" 8882 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8883 break; 8884 8885 case 697: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2671 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8890 break; 8891 8892 case 698: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2673 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8897 break; 8898 8899 case 700: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2679 "parser.yy" 8903 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8904 break; 8905 8906 case 701: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2681 "parser.yy" 8910 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8911 break; 8912 8913 case 702: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2683 "parser.yy" 8917 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8918 break; 8919 8920 case 703: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2688 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8925 break; 8926 8927 case 704: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2690 "parser.yy" 8931 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8932 break; 8933 8934 case 707: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2700 "parser.yy" 9001 case 724: 9002 9003 /* Line 1806 of yacc.c */ 9004 #line 2744 "parser.yy" 9005 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9006 break; 9007 9008 case 725: 9009 9010 /* Line 1806 of yacc.c */ 9011 #line 2746 "parser.yy" 9012 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9013 break; 9014 9015 case 727: 9016 9017 /* Line 1806 of yacc.c */ 9018 #line 2773 "parser.yy" 8938 9019 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8939 9020 break; 8940 9021 8941 case 7 10:8942 8943 /* Line 1806 of yacc.c */ 8944 #line 27 10"parser.yy"9022 case 731: 9023 9024 /* Line 1806 of yacc.c */ 9025 #line 2784 "parser.yy" 8945 9026 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8946 9027 break; 8947 9028 8948 case 7 11:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 27 12"parser.yy"9029 case 732: 9030 9031 /* Line 1806 of yacc.c */ 9032 #line 2786 "parser.yy" 8952 9033 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8953 9034 break; 8954 9035 8955 case 7 12:8956 8957 /* Line 1806 of yacc.c */ 8958 #line 27 14"parser.yy"9036 case 733: 9037 9038 /* Line 1806 of yacc.c */ 9039 #line 2788 "parser.yy" 8959 9040 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8960 9041 break; 8961 9042 8962 case 7 13:8963 8964 /* Line 1806 of yacc.c */ 8965 #line 27 16"parser.yy"9043 case 734: 9044 9045 /* Line 1806 of yacc.c */ 9046 #line 2790 "parser.yy" 8966 9047 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8967 9048 break; 8968 9049 8969 case 7 14:8970 8971 /* Line 1806 of yacc.c */ 8972 #line 27 18"parser.yy"9050 case 735: 9051 9052 /* Line 1806 of yacc.c */ 9053 #line 2792 "parser.yy" 8973 9054 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8974 9055 break; 8975 9056 8976 case 7 15:8977 8978 /* Line 1806 of yacc.c */ 8979 #line 27 20"parser.yy"9057 case 736: 9058 9059 /* Line 1806 of yacc.c */ 9060 #line 2794 "parser.yy" 8980 9061 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8981 9062 break; 8982 9063 8983 case 7 16:8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2 727"parser.yy"9064 case 737: 9065 9066 /* Line 1806 of yacc.c */ 9067 #line 2801 "parser.yy" 8987 9068 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8988 9069 break; 8989 9070 8990 case 717: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2729 "parser.yy" 9071 case 738: 9072 9073 /* Line 1806 of yacc.c */ 9074 #line 2803 "parser.yy" 9075 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9076 break; 9077 9078 case 739: 9079 9080 /* Line 1806 of yacc.c */ 9081 #line 2805 "parser.yy" 8994 9082 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8995 9083 break; 8996 9084 8997 case 718: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2731 "parser.yy" 9085 case 740: 9086 9087 /* Line 1806 of yacc.c */ 9088 #line 2807 "parser.yy" 9089 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9090 break; 9091 9092 case 741: 9093 9094 /* Line 1806 of yacc.c */ 9095 #line 2809 "parser.yy" 9001 9096 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9002 9097 break; 9003 9098 9004 case 719: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2733 "parser.yy" 9008 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9009 break; 9010 9011 case 720: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2735 "parser.yy" 9099 case 742: 9100 9101 /* Line 1806 of yacc.c */ 9102 #line 2811 "parser.yy" 9015 9103 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9016 9104 break; 9017 9105 9018 case 721: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2737 "parser.yy" 9022 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9023 break; 9024 9025 case 722: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2739 "parser.yy" 9029 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9030 break; 9031 9032 case 723: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2741 "parser.yy" 9036 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9037 break; 9038 9039 case 724: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2743 "parser.yy" 9043 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9044 break; 9045 9046 case 725: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2745 "parser.yy" 9050 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9051 break; 9052 9053 case 726: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2750 "parser.yy" 9057 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9058 break; 9059 9060 case 727: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2752 "parser.yy" 9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9065 break; 9066 9067 case 728: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2757 "parser.yy" 9071 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9072 break; 9073 9074 case 729: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2759 "parser.yy" 9078 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9079 break; 9080 9081 case 731: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2786 "parser.yy" 9085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9086 break; 9087 9088 case 735: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2797 "parser.yy" 9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9093 break; 9094 9095 case 736: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2799 "parser.yy" 9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9100 break; 9101 9102 case 737: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2801 "parser.yy" 9106 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9107 break; 9108 9109 case 738: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2803 "parser.yy" 9113 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9114 break; 9115 9116 case 739: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2805 "parser.yy" 9120 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9121 break; 9122 9123 case 740: 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2807 "parser.yy" 9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9128 break; 9129 9130 case 741: 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2814 "parser.yy" 9134 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9135 break; 9136 9137 case 742: 9106 case 743: 9138 9107 9139 9108 /* Line 1806 of yacc.c */ 9140 9109 #line 2816 "parser.yy" 9141 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9142 break; 9143 9144 case 743: 9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2818 "parser.yy" 9148 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9110 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9149 9111 break; 9150 9112 … … 9152 9114 9153 9115 /* Line 1806 of yacc.c */ 9154 #line 282 0"parser.yy"9155 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false )); }9116 #line 2821 "parser.yy" 9117 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9156 9118 break; 9157 9119 … … 9159 9121 9160 9122 /* Line 1806 of yacc.c */ 9161 #line 282 2"parser.yy"9162 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false )); }9123 #line 2823 "parser.yy" 9124 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9163 9125 break; 9164 9126 … … 9166 9128 9167 9129 /* Line 1806 of yacc.c */ 9168 #line 2824 "parser.yy" 9169 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9170 break; 9171 9172 case 747: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2829 "parser.yy" 9176 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9177 break; 9178 9179 case 748: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2834 "parser.yy" 9183 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9130 #line 2825 "parser.yy" 9131 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9184 9132 break; 9185 9133 … … 9187 9135 9188 9136 /* Line 1806 of yacc.c */ 9189 #line 28 36"parser.yy"9190 { (yyval. decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }9137 #line 2849 "parser.yy" 9138 { (yyval.en) = 0; } 9191 9139 break; 9192 9140 … … 9194 9142 9195 9143 /* Line 1806 of yacc.c */ 9196 #line 2838 "parser.yy" 9197 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9198 break; 9199 9200 case 753: 9201 9202 /* Line 1806 of yacc.c */ 9203 #line 2862 "parser.yy" 9204 { (yyval.en) = 0; } 9205 break; 9206 9207 case 754: 9208 9209 /* Line 1806 of yacc.c */ 9210 #line 2864 "parser.yy" 9144 #line 2851 "parser.yy" 9211 9145 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9212 9146 break; … … 9215 9149 9216 9150 /* Line 1806 of yacc.c */ 9217 #line 9 218"Parser/parser.cc"9151 #line 9152 "Parser/parser.cc" 9218 9152 default: break; 9219 9153 } … … 9446 9380 9447 9381 /* Line 2067 of yacc.c */ 9448 #line 28 67"parser.yy"9382 #line 2854 "parser.yy" 9449 9383 9450 9384 // ----end of grammar---- -
src/Parser/parser.h
r7bf7fb9 rd1625f8 271 271 DeclarationNode::TypeClass tclass; 272 272 StatementNode *sn; 273 Constant Node*constant;273 ConstantExpr *constant; 274 274 LabelNode *label; 275 275 InitializerNode *in; -
src/Parser/parser.yy
r7bf7fb9 rd1625f8 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 09:37:48201613 // Update Count : 1 76412 // Last Modified On : Tue Aug 9 12:59:11 2016 13 // Update Count : 1821 14 14 // 15 15 … … 121 121 DeclarationNode::TypeClass tclass; 122 122 StatementNode *sn; 123 Constant Node*constant;123 ConstantExpr *constant; 124 124 LabelNode *label; 125 125 InitializerNode *in; … … 133 133 134 134 // expressions 135 %type< constant> constant135 %type<en> constant 136 136 %type<en> tuple tuple_expression_list 137 137 %type<op> ptrref_operator unary_operator assignment_operator … … 146 146 %type<en> asm_operands_opt asm_operands_list asm_operand 147 147 %type<label> label_list 148 %type< constant> asm_clobbers_list_opt148 %type<en> asm_clobbers_list_opt 149 149 %type<flag> asm_volatile_opt 150 150 … … 309 309 constant: 310 310 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 311 INTEGERconstant { $$ = build_constantInteger( *$1); }312 | FLOATINGconstant { $$ = build_constantFloat( *$1); }313 | CHARACTERconstant { $$ = build_constantChar( *$1); }311 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); } 312 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); } 313 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( *$1 ) ); } 314 314 ; 315 315 … … 339 339 | string_literal_list STRINGliteral 340 340 { 341 appendStr( $1->get_ expr()->get_constant()->get_value(), $2 );341 appendStr( $1->get_constant()->get_value(), $2 ); 342 342 delete $2; // allocated by lexer 343 343 $$ = $1; … … 349 349 primary_expression: 350 350 IDENTIFIER // typedef name cannot be used as a variable name 351 { $$ = new VarRefNode( $1); }351 { $$ = new ExpressionNode( build_varref( $1 ) ); } 352 352 | zero_one 353 { $$ = new VarRefNode( $1); }353 { $$ = new ExpressionNode( build_varref( $1 ) ); } 354 354 | '(' comma_expression ')' 355 355 { $$ = $2; } 356 356 | '(' compound_statement ')' // GCC, lambda expression 357 { $$ = new ValofExprNode( $2); }357 { $$ = new ExpressionNode( build_valexpr( $2 ) ); } 358 358 ; 359 359 … … 365 365 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is 366 366 // equivalent to the old x[i,j]. 367 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Index, $1, $4 ) ); }367 { $$ = new ExpressionNode( build_binary_val( OperKinds::Index, $1, $4 ) ); } 368 368 | postfix_expression '(' argument_expression_list ')' 369 { $$ = new CompositeExprNode( build_func( $1, $3 ) ); }369 { $$ = new ExpressionNode( build_func( $1, $3 ) ); } 370 370 // ambiguity with .0 so space required after field-selection, e.g. 371 371 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 372 372 | postfix_expression '.' no_attr_identifier 373 { $$ = new CompositeExprNode( build_fieldSel( $1, new VarRefNode( $3 ) ) ); }373 { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); } 374 374 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 375 375 | postfix_expression ARROW no_attr_identifier 376 { $$ = new CompositeExprNode( build_pfieldSel( $1, new VarRefNode( $3 ) ) ); }376 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } 377 377 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 378 378 | postfix_expression ICR 379 { $$ = new CompositeExprNode( build_unary_ptr( OperKinds::IncrPost, $1 ) ); }379 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, $1 ) ); } 380 380 | postfix_expression DECR 381 { $$ = new CompositeExprNode( build_unary_ptr( OperKinds::DecrPost, $1 ) ); }381 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, $1 ) ); } 382 382 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 383 { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true) ); }383 { $$ = new ExpressionNode( build_compoundLiteral( $2, new InitializerNode( $5, true ) ) ); } 384 384 | postfix_expression '{' argument_expression_list '}' // CFA 385 385 { 386 386 Token fn; 387 387 fn.str = new std::string( "?{}" ); // location undefined 388 $$ = new CompositeExprNode( build_func( new VarRefNode( fn), (ExpressionNode *)( $1 )->set_link( $3 ) ) );388 $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_link( $3 ) ) ); 389 389 } 390 390 ; … … 400 400 { $$ = 0; } // use default argument 401 401 | assignment_expression 402 | no_attr_identifier ':' assignment_expression403 { $$ = $3->set_argName( $1 ); }404 // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient405 // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used406 // with an appropriate semantic check.407 | '[' push assignment_expression pop ']' ':' assignment_expression408 { $$ = $7->set_argName( $3 ); }409 | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression410 { $$ = $9->set_argName( new CompositeExprNode( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ) ); }411 402 ; 412 403 … … 418 409 field: // CFA, tuple field selector 419 410 no_attr_identifier 420 { $$ = new VarRefNode( $1); }411 { $$ = new ExpressionNode( build_varref( $1 ) ); } 421 412 // ambiguity with .0 so space required after field-selection, e.g. 422 413 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 423 414 | no_attr_identifier '.' field 424 { $$ = new CompositeExprNode( build_fieldSel( $3, new VarRefNode( $1 ) ) ); }415 { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); } 425 416 | no_attr_identifier '.' '[' push field_list pop ']' 426 { $$ = new CompositeExprNode( build_fieldSel( $5, new VarRefNode( $1 ) ) ); }417 { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); } 427 418 | no_attr_identifier ARROW field 428 { $$ = new CompositeExprNode( build_pfieldSel( $3, new VarRefNode( $1 ) ) ); }419 { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); } 429 420 | no_attr_identifier ARROW '[' push field_list pop ']' 430 { $$ = new CompositeExprNode( build_pfieldSel( $5, new VarRefNode( $1 ) ) ); }421 { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); } 431 422 ; 432 423 … … 438 429 { $$ = $1; } 439 430 | string_literal_list 440 { $$ = $1; }431 { $$ = new ExpressionNode( $1 ); } 441 432 | EXTENSION cast_expression // GCC 442 433 { $$ = $2->set_extension( true ); } … … 448 439 switch ( $1 ) { 449 440 case OperKinds::AddressOf: 450 $$ = new CompositeExprNode( build_addressOf( $2 ) );441 $$ = new ExpressionNode( build_addressOf( $2 ) ); 451 442 break; 452 443 case OperKinds::PointTo: 453 $$ = new CompositeExprNode( build_unary_val( $1, $2 ) );444 $$ = new ExpressionNode( build_unary_val( $1, $2 ) ); 454 445 break; 455 446 default: … … 458 449 } 459 450 | unary_operator cast_expression 460 { $$ = new CompositeExprNode( build_unary_val( $1, $2 ) ); }451 { $$ = new ExpressionNode( build_unary_val( $1, $2 ) ); } 461 452 | ICR unary_expression 462 { $$ = new CompositeExprNode( build_unary_ptr( OperKinds::Incr, $2 ) ); }453 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::Incr, $2 ) ); } 463 454 | DECR unary_expression 464 { $$ = new CompositeExprNode( build_unary_ptr( OperKinds::Decr, $2 ) ); }455 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::Decr, $2 ) ); } 465 456 | SIZEOF unary_expression 466 { $$ = new CompositeExprNode( build_sizeOf( $2 ) ); }457 { $$ = new ExpressionNode( build_sizeOfexpr( $2 ) ); } 467 458 | SIZEOF '(' type_name_no_function ')' 468 { $$ = new CompositeExprNode( build_sizeOf( new TypeValueNode( $3 ) ) ); } 459 { $$ = new ExpressionNode( build_sizeOftype( $3 ) ); } 460 | ALIGNOF unary_expression // GCC, variable alignment 461 { $$ = new ExpressionNode( build_alignOfexpr( $2 ) ); } 462 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 463 { $$ = new ExpressionNode( build_alignOftype( $3 ) ); } 469 464 | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')' 470 { $$ = new CompositeExprNode( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); }465 { $$ = new ExpressionNode( build_offsetOf( $3, build_varref( $5 ) ) ); } 471 466 | ATTR_IDENTIFIER 472 { $$ = new CompositeExprNode( build_attr( new VarRefNode( $1 ) ) ); } 467 { $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), nullptr ) ); } 468 | ATTR_IDENTIFIER '(' argument_expression ')' 469 { $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), $3 ) ); } 473 470 | ATTR_IDENTIFIER '(' type_name ')' 474 { $$ = new CompositeExprNode( build_attr( new VarRefNode( $1 ), new TypeValueNode( $3 ) ) ); } 475 | ATTR_IDENTIFIER '(' argument_expression ')' 476 { $$ = new CompositeExprNode( build_attr( new VarRefNode( $1 ), $3 ) ); } 477 | ALIGNOF unary_expression // GCC, variable alignment 478 { $$ = new CompositeExprNode( build_alignOf( $2 ) ); } 479 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 480 { $$ = new CompositeExprNode( build_alignOf( new TypeValueNode( $3 ) ) ); } 471 { $$ = new ExpressionNode( build_attrtype( build_varref( $1 ), $3 ) ); } 481 472 // | ANDAND IDENTIFIER // GCC, address of label 482 // { $$ = new CompositeExprNode( new OperatorNode( OperKinds::LabelAddress ), new VarRefNode( $2, true ) ); }473 // { $$ = new ExpressionNode( new OperatorNode( OperKinds::LabelAddress ), new ExpressionNode( build_varref( $2, true ) ); } 483 474 ; 484 475 … … 500 491 unary_expression 501 492 | '(' type_name_no_function ')' cast_expression 502 { $$ = new CompositeExprNode( build_cast( new TypeValueNode( $2 ), $4 ) ); }493 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 503 494 | '(' type_name_no_function ')' tuple 504 { $$ = new CompositeExprNode( build_cast( new TypeValueNode( $2 ), $4 ) ); }495 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 505 496 ; 506 497 … … 508 499 cast_expression 509 500 | multiplicative_expression '*' cast_expression 510 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Mul, $1, $3 ) ); }501 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mul, $1, $3 ) ); } 511 502 | multiplicative_expression '/' cast_expression 512 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Div, $1, $3 ) ); }503 { $$ = new ExpressionNode( build_binary_val( OperKinds::Div, $1, $3 ) ); } 513 504 | multiplicative_expression '%' cast_expression 514 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Mod, $1, $3 ) ); }505 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mod, $1, $3 ) ); } 515 506 ; 516 507 … … 518 509 multiplicative_expression 519 510 | additive_expression '+' multiplicative_expression 520 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Plus, $1, $3 ) ); }511 { $$ = new ExpressionNode( build_binary_val( OperKinds::Plus, $1, $3 ) ); } 521 512 | additive_expression '-' multiplicative_expression 522 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Minus, $1, $3 ) ); }513 { $$ = new ExpressionNode( build_binary_val( OperKinds::Minus, $1, $3 ) ); } 523 514 ; 524 515 … … 526 517 additive_expression 527 518 | shift_expression LS additive_expression 528 { $$ = new CompositeExprNode( build_binary_val( OperKinds::LShift, $1, $3 ) ); }519 { $$ = new ExpressionNode( build_binary_val( OperKinds::LShift, $1, $3 ) ); } 529 520 | shift_expression RS additive_expression 530 { $$ = new CompositeExprNode( build_binary_val( OperKinds::RShift, $1, $3 ) ); }521 { $$ = new ExpressionNode( build_binary_val( OperKinds::RShift, $1, $3 ) ); } 531 522 ; 532 523 … … 534 525 shift_expression 535 526 | relational_expression '<' shift_expression 536 { $$ = new CompositeExprNode( build_binary_val( OperKinds::LThan, $1, $3 ) ); }527 { $$ = new ExpressionNode( build_binary_val( OperKinds::LThan, $1, $3 ) ); } 537 528 | relational_expression '>' shift_expression 538 { $$ = new CompositeExprNode( build_binary_val( OperKinds::GThan, $1, $3 ) ); }529 { $$ = new ExpressionNode( build_binary_val( OperKinds::GThan, $1, $3 ) ); } 539 530 | relational_expression LE shift_expression 540 { $$ = new CompositeExprNode( build_binary_val( OperKinds::LEThan, $1, $3 ) ); }531 { $$ = new ExpressionNode( build_binary_val( OperKinds::LEThan, $1, $3 ) ); } 541 532 | relational_expression GE shift_expression 542 { $$ = new CompositeExprNode( build_binary_val( OperKinds::GEThan, $1, $3 ) ); }533 { $$ = new ExpressionNode( build_binary_val( OperKinds::GEThan, $1, $3 ) ); } 543 534 ; 544 535 … … 546 537 relational_expression 547 538 | equality_expression EQ relational_expression 548 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Eq, $1, $3 ) ); }539 { $$ = new ExpressionNode( build_binary_val( OperKinds::Eq, $1, $3 ) ); } 549 540 | equality_expression NE relational_expression 550 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Neq, $1, $3 ) ); }541 { $$ = new ExpressionNode( build_binary_val( OperKinds::Neq, $1, $3 ) ); } 551 542 ; 552 543 … … 554 545 equality_expression 555 546 | AND_expression '&' equality_expression 556 { $$ = new CompositeExprNode( build_binary_val( OperKinds::BitAnd, $1, $3 ) ); }547 { $$ = new ExpressionNode( build_binary_val( OperKinds::BitAnd, $1, $3 ) ); } 557 548 ; 558 549 … … 560 551 AND_expression 561 552 | exclusive_OR_expression '^' AND_expression 562 { $$ = new CompositeExprNode( build_binary_val( OperKinds::Xor, $1, $3 ) ); }553 { $$ = new ExpressionNode( build_binary_val( OperKinds::Xor, $1, $3 ) ); } 563 554 ; 564 555 … … 566 557 exclusive_OR_expression 567 558 | inclusive_OR_expression '|' exclusive_OR_expression 568 { $$ = new CompositeExprNode( build_binary_val( OperKinds::BitOr, $1, $3 ) ); }559 { $$ = new ExpressionNode( build_binary_val( OperKinds::BitOr, $1, $3 ) ); } 569 560 ; 570 561 … … 572 563 inclusive_OR_expression 573 564 | logical_AND_expression ANDAND inclusive_OR_expression 574 { $$ = new CompositeExprNode( build_and_or( $1, $3, true ) ); }565 { $$ = new ExpressionNode( build_and_or( $1, $3, true ) ); } 575 566 ; 576 567 … … 578 569 logical_AND_expression 579 570 | logical_OR_expression OROR logical_AND_expression 580 { $$ = new CompositeExprNode( build_and_or( $1, $3, false ) ); }571 { $$ = new ExpressionNode( build_and_or( $1, $3, false ) ); } 581 572 ; 582 573 … … 584 575 logical_OR_expression 585 576 | logical_OR_expression '?' comma_expression ':' conditional_expression 586 { $$ = new CompositeExprNode( build_cond( $1, $3, $5 ) ); }577 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 587 578 // FIX ME: this hack computes $1 twice 588 579 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 589 { $$ = new CompositeExprNode( build_cond( $1, $1, $4 ) ); }580 { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); } 590 581 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 591 { $$ = new CompositeExprNode( build_cond( $1, $3, $5 ) ); }582 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 592 583 ; 593 584 … … 600 591 conditional_expression 601 592 | unary_expression assignment_operator assignment_expression 602 { $$ = new CompositeExprNode( build_binary_ptr( $2, $1, $3 ) ); }593 { $$ = new ExpressionNode( build_binary_ptr( $2, $1, $3 ) ); } 603 594 | tuple assignment_opt // CFA, tuple expression 604 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); }595 { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); } 605 596 ; 606 597 607 598 assignment_expression_opt: 608 599 // empty 609 { $$ = n ew NullExprNode; }600 { $$ = nullptr; } 610 601 | assignment_expression 611 602 ; … … 629 620 // comma_expression in new_identifier_parameter_array and new_abstract_array 630 621 '[' ']' 631 { $$ = new CompositeExprNode( build_tuple() ); }622 { $$ = new ExpressionNode( build_tuple() ); } 632 623 | '[' push assignment_expression pop ']' 633 { $$ = new CompositeExprNode( build_tuple( $3 ) ); }624 { $$ = new ExpressionNode( build_tuple( $3 ) ); } 634 625 | '[' push ',' tuple_expression_list pop ']' 635 { $$ = new CompositeExprNode( build_tuple( (ExpressionNode *)(new NullExprNode)->set_link( $4 ) ) ); }626 { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_link( $4 ) ) ); } 636 627 | '[' push assignment_expression ',' tuple_expression_list pop ']' 637 { $$ = new CompositeExprNode( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ); }628 { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ); } 638 629 ; 639 630 … … 647 638 assignment_expression 648 639 | comma_expression ',' assignment_expression 649 { $$ = new CompositeExprNode( build_comma( $1, $3 ) ); }640 { $$ = new ExpressionNode( build_comma( $1, $3 ) ); } 650 641 ; 651 642 … … 671 662 Token fn; 672 663 fn.str = new std::string( "^?{}" ); // location undefined 673 $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( build_func( new VarRefNode( fn), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0 );664 $$ = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0 ); 674 665 } 675 666 ; … … 759 750 constant_expression { $$ = $1; } 760 751 | constant_expression ELLIPSIS constant_expression // GCC, subrange 761 { $$ = new CompositeExprNode( build_range( $1, $3 ) ); }752 { $$ = new ExpressionNode( build_range( $1, $3 ) ); } 762 753 | subrange // CFA, subrange 763 754 ; … … 841 832 | declaration comma_expression_opt ';' comma_expression_opt // C99 842 833 { $$ = new ForCtlExprNode( $1, $2, $4 ); } 843 ;834 ; 844 835 845 836 jump_statement: … … 979 970 asm_operand: // GCC 980 971 string_literal_list '(' constant_expression ')' 981 { $$ = new AsmExprNode( 0, $1, $3); }972 { $$ = new ExpressionNode( build_asm( 0, $1, $3 ) ); } 982 973 | '[' constant_expression ']' string_literal_list '(' constant_expression ')' 983 { $$ = new AsmExprNode( $2, $4, $6); }974 { $$ = new ExpressionNode( build_asm( $2, $4, $6 ) ); } 984 975 ; 985 976 … … 988 979 { $$ = 0; } // use default argument 989 980 | string_literal_list 990 { $$ = $1; }981 { $$ = new ExpressionNode( $1 ); } 991 982 | asm_clobbers_list_opt ',' string_literal_list 992 { $$ = (ConstantNode *)$1->set_link( $3); }983 { $$ = (ExpressionNode *)$1->set_link( new ExpressionNode( $3 ) ); } 993 984 ; 994 985 … … 1777 1768 designator_list ':' // C99, CFA uses ":" instead of "=" 1778 1769 | no_attr_identifier_or_type_name ':' // GCC, field name 1779 { $$ = new VarRefNode( $1); }1770 { $$ = new ExpressionNode( build_varref( $1 ) ); } 1780 1771 ; 1781 1772 … … 1783 1774 designator 1784 1775 | designator_list designator 1785 { $$ = (ExpressionNode *)( $1->set_link( $2 ) ); }1786 //| designator_list designator { $$ = new CompositeExprNode( $1, $2 ); }1776 { $$ = (ExpressionNode *)( $1->set_link( $2 ) ); } 1777 //| designator_list designator { $$ = new ExpressionNode( $1, $2 ); } 1787 1778 ; 1788 1779 1789 1780 designator: 1790 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0 only ".0" and ".1" 1791 // allowed => semantic check 1792 FLOATINGconstant 1793 { $$ = new DesignatorNode( new VarRefNode( $1 ) ); } 1794 | '.' no_attr_identifier_or_type_name // C99, field name 1795 { $$ = new DesignatorNode( new VarRefNode( $2 ) ); } 1781 '.' no_attr_identifier_or_type_name // C99, field name 1782 { $$ = new ExpressionNode( build_varref( $2 ) ); } 1796 1783 | '[' push assignment_expression pop ']' // C99, single array element 1797 1784 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple. 1798 { $$ = new DesignatorNode( $3, true ); }1785 { $$ = $3; } 1799 1786 | '[' push subrange pop ']' // CFA, multiple array elements 1800 { $$ = new DesignatorNode( $3, true ); }1787 { $$ = $3; } 1801 1788 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1802 { $$ = new DesignatorNode( new CompositeExprNode( build_range( $3, $5 ) ), true); }1789 { $$ = new ExpressionNode( build_range( $3, $5 ) ); } 1803 1790 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1804 { $$ = new DesignatorNode( $4 ); }1791 { $$ = $4; } 1805 1792 ; 1806 1793 … … 1890 1877 type_name_list: // CFA 1891 1878 type_name 1892 { $$ = new TypeValueNode( $1); }1879 { $$ = new ExpressionNode( build_typevalue( $1 ) ); } 1893 1880 | assignment_expression 1894 1881 | type_name_list ',' type_name 1895 { $$ = (ExpressionNode *)( $1->set_link( new TypeValueNode( $3 ))); }1882 { $$ = (ExpressionNode *)( $1->set_link( new ExpressionNode( build_typevalue( $3 ) ) ) ); } 1896 1883 | type_name_list ',' assignment_expression 1897 1884 { $$ = (ExpressionNode *)( $1->set_link( $3 )); } … … 2129 2116 subrange: 2130 2117 constant_expression '~' constant_expression // CFA, integer subrange 2131 { $$ = new CompositeExprNode( build_range( $1, $3 ) ); }2118 { $$ = new ExpressionNode( build_range( $1, $3 ) ); } 2132 2119 ; 2133 2120 -
src/SynTree/Label.h
r7bf7fb9 rd1625f8 9 9 // Author : Rob Schluntz 10 10 // Created On : Wed Jun 8 12:53:12 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 8 12:53:28201613 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 14:44:29 2016 13 // Update Count : 2 14 14 // 15 15
Note: See TracChangeset
for help on using the changeset viewer.