llvm.org GIT mirror llvm / 80a75bf
Adding a collector name attribute to Function in the IR. These methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44769 91177308-0d34-0410-b5e6-96231b3b80d8 Gordon Henriksen 12 years ago
21 changed file(s) with 1469 addition(s) and 1251 deletion(s). Raw diff Collapse all Expand all
281281 external function_call_conv : llvalue -> int = "llvm_function_call_conv"
282282 external set_function_call_conv : int -> llvalue -> unit
283283 = "llvm_set_function_call_conv"
284 external collector : llvalue -> string option = "llvm_collector"
285 external set_collector : string option -> llvalue -> unit = "llvm_set_collector"
284286
285287 (* TODO: param attrs *)
286288
753753 external set_function_call_conv : int -> llvalue -> unit
754754 = "llvm_set_function_call_conv"
755755
756 (** [collector f] returns [Some name] if the function [f] has a garbage
757 collection algorithm specified and [None] otherwise.
758 See the method [llvm::Function::getCollector]. **)
759 external collector : llvalue -> string option = "llvm_collector"
760
761 (** [set_collector gc f] sets the collection algorithm for the function [f] to
762 [gc]. See the method [llvm::Function::setCollector]. **)
763 external set_collector : string option -> llvalue -> unit = "llvm_set_collector"
764
756765 (*--... Operations on basic blocks .........................................--*)
757766
758767 (** [basic_blocks fn] returns the basic blocks of the function [f].
532532 /* int -> llvalue -> unit */
533533 CAMLprim value llvm_set_function_call_conv(value Id, LLVMValueRef Fn) {
534534 LLVMSetFunctionCallConv(Fn, Int_val(Id));
535 return Val_unit;
536 }
537
538 /* llvalue -> string option */
539 CAMLprim value llvm_collector(LLVMValueRef Fn) {
540 const char *Collector;
541 CAMLparam0();
542 CAMLlocal2(Name, Option);
543
544 if ((Collector = LLVMGetCollector(Fn))) {
545 Name = copy_string(Collector);
546
547 Option = alloc(1, 0);
548 Field(Option, 0) = Name;
549 CAMLreturn(Option);
550 } else {
551 CAMLreturn(Val_int(0));
552 }
553 }
554
555 /* string option -> llvalue -> unit */
556 CAMLprim value llvm_set_collector(value GC, LLVMValueRef Fn) {
557 LLVMSetCollector(Fn, GC == Val_int(0)? 0 : String_val(Field(GC, 0)));
535558 return Val_unit;
536559 }
537560
2525
  • Functions
  • 2626
  • Aliases
  • 2727
  • Parameter Attributes
  • 28
  • Garbage Collector Names
  • 2829
  • Module-Level Inline Assembly
  • 2930
  • Data Layout
  • 3031
    701702 parameter attribute for the return type, a function
    702703 name, a (possibly empty) argument list (each with optional
    703704 parameter attributes), an optional section, an
    704 optional alignment, an opening curly brace, a list of basic blocks, and a
    705 closing curly brace.
    705 optional alignment, an optional garbage collector name, an
    706 opening curly brace, a list of basic blocks, and a closing curly brace.
    706707
    707708 LLVM function declarations consist of the "declare" keyword, an
    708709 optional linkage type, an optional
    709710 visibility style, an optional
    710711 calling convention, a return type, an optional
    711712 parameter attribute for the return type, a function
    712 name, a possibly empty list of arguments, and an optional alignment.

    713 name, a possibly empty list of arguments, an optional alignment, and an optional
    714 garbage collector name.

    713715
    714716

    A function definition contains a list of basic blocks, forming the CFG for

    715717 the function. Each basic block may optionally start with a label (giving the
    821823 or global variables.
    822824
    823825
    826
    827
    828
    829
    830 Garbage Collector Names
    831
    832
    833
    834

    Each function may specify a garbage collector name, which is simply a

    835 string.

    836
    837
                      
                    
    838 >define void @f() gc "name" { ...
    839
    840

    The compiler declares the supported values of name. Specifying a

    841 collector which will cause the compiler to alter its output in order to support
    842 the named garbage collection algorithm.

    824843
    825844
    826845
    5757 MODULE_CODE_ALIAS = 9,
    5858
    5959 /// MODULE_CODE_PURGEVALS: [numvals]
    60 MODULE_CODE_PURGEVALS = 10
    60 MODULE_CODE_PURGEVALS = 10,
    61
    62 MODULE_CODE_COLLECTORNAME = 11 // COLLECTORNAME: [strchr x N]
    6163 };
    6264
    6365 /// PARAMATTR blocks have code for defining a parameter attribute set.
    152152 /// @brief Set the parameter attributes.
    153153 void setParamAttrs(const ParamAttrsList *attrs);
    154154
    155 /// hasCollector/getCollector/setCollector/clearCollector - The name of the
    156 /// garbage collection algorithm to use during code generation.
    157 bool hasCollector() const;
    158 const char *getCollector() const;
    159 void setCollector(const char *Str);
    160 void clearCollector();
    161
    155162 /// @brief Determine whether the function has the given attribute.
    156163 bool paramHasAttr(uint16_t i, ParameterAttributes attr) const {
    157164 return ParamAttrs && ParamAttrs->paramHasAttr(i, attr);
    338338 unsigned LLVMGetIntrinsicID(LLVMValueRef Fn);
    339339 unsigned LLVMGetFunctionCallConv(LLVMValueRef Fn);
    340340 void LLVMSetFunctionCallConv(LLVMValueRef Fn, unsigned CC);
    341 const char *LLVMGetCollector(LLVMValueRef Fn);
    342 void LLVMSetCollector(LLVMValueRef Fn, const char *Coll);
    341343
    342344 /* Operations on basic blocks */
    343345 LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef Bb);
    467467 KEYWORD("module", MODULE);
    468468 KEYWORD("asm", ASM_TOK);
    469469 KEYWORD("sideeffect", SIDEEFFECT);
    470 KEYWORD("gc", GC);
    470471
    471472 KEYWORD("cc", CC_TOK);
    472473 KEYWORD("ccc", CCC_TOK);
    215215 NEST = 397,
    216216 READNONE = 398,
    217217 READONLY = 399,
    218 DEFAULT = 400,
    219 HIDDEN = 401,
    220 PROTECTED = 402
    218 GC = 400,
    219 DEFAULT = 401,
    220 HIDDEN = 402,
    221 PROTECTED = 403
    221222 };
    222223 #endif
    223224 /* Tokens. */
    363364 #define NEST 397
    364365 #define READNONE 398
    365366 #define READONLY 399
    366 #define DEFAULT 400
    367 #define HIDDEN 401
    368 #define PROTECTED 402
    367 #define GC 400
    368 #define DEFAULT 401
    369 #define HIDDEN 402
    370 #define PROTECTED 403
    369371
    370372
    371373
    372374
    373375 /* Copy the first part of user declarations. */
    374 #line 14 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    376 #line 14 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    375377
    376378 #include "ParserInternals.h"
    377379 #include "llvm/CallingConv.h"
    13231325
    13241326 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    13251327 typedef union YYSTYPE
    1326 #line 945 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    1328 #line 945 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    13271329 {
    13281330 llvm::Module *ModuleVal;
    13291331 llvm::Function *FunctionVal;
    13701372 llvm::ICmpInst::Predicate IPredicate;
    13711373 llvm::FCmpInst::Predicate FPredicate;
    13721374 }
    1373 /* Line 187 of yacc.c. */
    1374 #line 1376 "llvmAsmParser.tab.c"
    1375 /* Line 193 of yacc.c. */
    1376 #line 1378 "llvmAsmParser.tab.c"
    13751377 YYSTYPE;
    13761378 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    13771379 # define YYSTYPE_IS_DECLARED 1
    13841386
    13851387
    13861388 /* Line 216 of yacc.c. */
    1387 #line 1389 "llvmAsmParser.tab.c"
    1389 #line 1391 "llvmAsmParser.tab.c"
    13881390
    13891391 #ifdef short
    13901392 # undef short
    14341436 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    14351437
    14361438 #ifndef YY_
    1437 # if YYENABLE_NLS
    1439 # if defined YYENABLE_NLS && YYENABLE_NLS
    14381440 # if ENABLE_NLS
    14391441 # include /* INFRINGES ON USER NAME SPACE */
    14401442 # define YY_(msgid) dgettext ("bison-runtime", msgid)
    15991601 /* YYFINAL -- State number of the termination state. */
    16001602 #define YYFINAL 43
    16011603 /* YYLAST -- Last index in YYTABLE. */
    1602 #define YYLAST 1816
    1604 #define YYLAST 1820
    16031605
    16041606 /* YYNTOKENS -- Number of terminals. */
    1605 #define YYNTOKENS 162
    1607 #define YYNTOKENS 163
    16061608 /* YYNNTS -- Number of nonterminals. */
    1607 #define YYNNTS 82
    1609 #define YYNNTS 83
    16081610 /* YYNRULES -- Number of rules. */
    1609 #define YYNRULES 314
    1611 #define YYNRULES 316
    16101612 /* YYNRULES -- Number of states. */
    1611 #define YYNSTATES 608
    1613 #define YYNSTATES 611
    16121614
    16131615 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
    16141616 #define YYUNDEFTOK 2
    1615 #define YYMAXUTOK 402
    1617 #define YYMAXUTOK 403
    16161618
    16171619 #define YYTRANSLATE(YYX) \
    16181620 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    16241626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16251627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16261628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    1627 152, 153, 150, 2, 149, 2, 2, 2, 2, 2,
    1629 153, 154, 151, 2, 150, 2, 2, 2, 2, 2,
    16281630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    1629 157, 148, 158, 2, 2, 2, 2, 2, 2, 2,
    1631 158, 149, 159, 2, 2, 2, 2, 2, 2, 2,
    16301632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16311633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    1632 2, 154, 151, 156, 2, 2, 2, 2, 2, 161,
    1634 2, 155, 152, 157, 2, 2, 2, 2, 2, 162,
    16331635 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16341636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    1635 155, 2, 2, 159, 2, 160, 2, 2, 2, 2,
    1637 156, 2, 2, 160, 2, 161, 2, 2, 2, 2,
    16361638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16371639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16381640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    16601662 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
    16611663 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
    16621664 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
    1663 145, 146, 147
    1665 145, 146, 147, 148
    16641666 };
    16651667
    16661668 #if YYDEBUG
    16801682 175, 177, 179, 181, 182, 184, 186, 187, 189, 191,
    16811683 193, 195, 197, 200, 202, 204, 206, 208, 210, 212,
    16821684 214, 216, 218, 219, 222, 224, 226, 228, 230, 232,
    1683 234, 235, 238, 239, 242, 243, 247, 250, 251, 253,
    1684 254, 258, 260, 263, 265, 267, 269, 271, 273, 275,
    1685 277, 279, 281, 284, 286, 289, 295, 301, 307, 313,
    1686 317, 320, 326, 331, 334, 336, 338, 340, 344, 346,
    1687 350, 352, 353, 355, 359, 364, 368, 372, 377, 382,
    1688 386, 393, 399, 402, 405, 408, 411, 414, 417, 420,
    1689 423, 426, 429, 432, 435, 442, 448, 457, 464, 471,
    1690 479, 487, 494, 503, 512, 516, 518, 520, 522, 524,
    1691 525, 528, 535, 537, 538, 540, 543, 544, 548, 549,
    1692 553, 557, 561, 565, 566, 574, 575, 584, 585, 594,
    1693 600, 603, 607, 609, 613, 617, 621, 625, 627, 628,
    1694 634, 638, 640, 644, 646, 647, 657, 659, 661, 666,
    1695 668, 670, 673, 677, 678, 680, 682, 684, 686, 688,
    1696 690, 692, 694, 696, 700, 702, 708, 710, 712, 714,
    1697 716, 718, 720, 723, 726, 729, 733, 736, 737, 739,
    1698 742, 745, 749, 759, 769, 778, 793, 795, 797, 804,
    1699 810, 813, 820, 828, 833, 838, 845, 852, 853, 854,
    1700 858, 861, 863, 869, 875, 882, 889, 894, 901, 906,
    1701 911, 918, 925, 928, 937, 939, 941, 942, 946, 953,
    1702 957, 964, 967, 973, 981
    1685 234, 235, 238, 239, 242, 243, 246, 247, 251, 254,
    1686 255, 257, 258, 262, 264, 267, 269, 271, 273, 275,
    1687 277, 279, 281, 283, 285, 288, 290, 293, 299, 305,
    1688 311, 317, 321, 324, 330, 335, 338, 340, 342, 344,
    1689 348, 350, 354, 356, 357, 359, 363, 368, 372, 376,
    1690 381, 386, 390, 397, 403, 406, 409, 412, 415, 418,
    1691 421, 424, 427, 430, 433, 436, 439, 446, 452, 461,
    1692 468, 475, 483, 491, 498, 507, 516, 520, 522, 524,
    1693 526, 528, 529, 532, 539, 541, 542, 544, 547, 548,
    1694 552, 553, 557, 561, 565, 569, 570, 578, 579, 588,
    1695 589, 598, 604, 607, 611, 613, 617, 621, 625, 629,
    1696 631, 632, 638, 642, 644, 648, 650, 651, 662, 664,
    1697 666, 671, 673, 675, 678, 682, 683, 685, 687, 689,
    1698 691, 693, 695, 697, 699, 701, 705, 707, 713, 715,
    1699 717, 719, 721, 723, 725, 728, 731, 734, 738, 741,
    1700 742, 744, 747, 750, 754, 764, 774, 783, 798, 800,
    1701 802, 809, 815, 818, 825, 833, 838, 843, 850, 857,
    1702 858, 859, 863, 866, 868, 874, 880, 887, 894, 899,
    1703 906, 911, 916, 923, 930, 933, 942, 944, 946, 947,
    1704 951, 958, 962, 969, 972, 978, 986
    17031705 };
    17041706
    17051707 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
    17061708 static const yytype_int16 yyrhs[] =
    17071709 {
    1708 206, 0, -1, 73, -1, 74, -1, 75, -1, 76,
    1710 208, 0, -1, 73, -1, 74, -1, 75, -1, 76,
    17091711 -1, 77, -1, 78, -1, 79, -1, 80, -1, 81,
    17101712 -1, 85, -1, 86, -1, 87, -1, 82, -1, 83,
    17111713 -1, 84, -1, 116, -1, 117, -1, 118, -1, 119,
    17171719 -1, 107, -1, 108, -1, 109, -1, 96, -1, 97,
    17181720 -1, 98, -1, 99, -1, 26, -1, 27, -1, 11,
    17191721 -1, 12, -1, 13, -1, 16, -1, 15, -1, 14,
    1720 -1, 19, -1, 22, -1, 24, -1, 170, -1, -1,
    1721 170, 148, -1, -1, 20, -1, 23, -1, 175, -1,
    1722 -1, 173, 148, -1, 42, -1, 44, -1, 43, -1,
    1722 -1, 19, -1, 22, -1, 24, -1, 171, -1, -1,
    1723 171, 149, -1, -1, 20, -1, 23, -1, 176, -1,
    1724 -1, 174, 149, -1, 42, -1, 44, -1, 43, -1,
    17231725 45, -1, 47, -1, 46, -1, 48, -1, 50, -1,
    1724 -1, 145, -1, 146, -1, 147, -1, -1, 46, -1,
    1726 -1, 146, -1, 147, -1, 148, -1, -1, 46, -1,
    17251727 48, -1, -1, 42, -1, 43, -1, 44, -1, 47,
    17261728 -1, -1, 44, -1, 42, -1, -1, 61, -1, 62,
    17271729 -1, 63, -1, 64, -1, 65, -1, 60, 4, -1,
    17281730 135, -1, 117, -1, 134, -1, 118, -1, 137, -1,
    1729 138, -1, 140, -1, 141, -1, 142, -1, -1, 184,
    1730 183, -1, 136, -1, 139, -1, 135, -1, 134, -1,
    1731 143, -1, 144, -1, -1, 186, 185, -1, -1, 53,
    1732 4, -1, -1, 149, 53, 4, -1, 34, 22, -1,
    1733 -1, 189, -1, -1, 149, 192, 191, -1, 189, -1,
    1734 53, 4, -1, 11, -1, 12, -1, 13, -1, 16,
    1735 -1, 15, -1, 14, -1, 17, -1, 49, -1, 193,
    1736 -1, 194, 150, -1, 228, -1, 151, 4, -1, 194,
    1737 152, 198, 153, 186, -1, 10, 152, 198, 153, 186,
    1738 -1, 154, 4, 155, 194, 156, -1, 157, 4, 155,
    1739 194, 158, -1, 159, 199, 160, -1, 159, 160, -1,
    1740 157, 159, 199, 160, 158, -1, 157, 159, 160, 158,
    1741 -1, 194, 184, -1, 194, -1, 10, -1, 195, -1,
    1742 197, 149, 195, -1, 197, -1, 197, 149, 39, -1,
    1743 39, -1, -1, 194, -1, 199, 149, 194, -1, 194,
    1744 154, 202, 156, -1, 194, 154, 156, -1, 194, 161,
    1745 22, -1, 194, 157, 202, 158, -1, 194, 159, 202,
    1746 160, -1, 194, 159, 160, -1, 194, 157, 159, 202,
    1747 160, 158, -1, 194, 157, 159, 160, 158, -1, 194,
    1748 40, -1, 194, 41, -1, 194, 228, -1, 194, 201,
    1749 -1, 194, 25, -1, 168, 3, -1, 168, 5, -1,
    1750 168, 4, -1, 168, 6, -1, 11, 26, -1, 11,
    1751 27, -1, 169, 9, -1, 165, 152, 200, 38, 194,
    1752 153, -1, 115, 152, 200, 239, 153, -1, 129, 152,
    1753 200, 149, 200, 149, 200, 153, -1, 163, 152, 200,
    1754 149, 200, 153, -1, 164, 152, 200, 149, 200, 153,
    1755 -1, 88, 166, 152, 200, 149, 200, 153, -1, 89,
    1756 167, 152, 200, 149, 200, 153, -1, 131, 152, 200,
    1757 149, 200, 153, -1, 132, 152, 200, 149, 200, 149,
    1758 200, 153, -1, 133, 152, 200, 149, 200, 149, 200,
    1759 153, -1, 202, 149, 200, -1, 200, -1, 32, -1,
    1760 33, -1, 37, -1, -1, 196, 228, -1, 121, 152,
    1761 205, 38, 194, 153, -1, 207, -1, -1, 208, -1,
    1762 207, 208, -1, -1, 31, 209, 224, -1, -1, 30,
    1763 210, 225, -1, 58, 57, 214, -1, 172, 18, 194,
    1764 -1, 172, 18, 10, -1, -1, 174, 178, 204, 203,
    1765 200, 211, 191, -1, -1, 174, 176, 178, 204, 203,
    1766 200, 212, 191, -1, -1, 174, 177, 178, 204, 203,
    1767 194, 213, 191, -1, 174, 178, 35, 181, 205, -1,
    1768 51, 215, -1, 54, 148, 216, -1, 22, -1, 52,
    1769 148, 22, -1, 66, 148, 22, -1, 154, 217, 156,
    1770 -1, 217, 149, 22, -1, 22, -1, -1, 218, 149,
    1771 194, 184, 171, -1, 194, 184, 171, -1, 218, -1,
    1772 218, 149, 39, -1, 39, -1, -1, 182, 196, 173,
    1773 152, 219, 153, 186, 190, 187, -1, 28, -1, 159,
    1774 -1, 180, 178, 220, 221, -1, 29, -1, 160, -1,
    1775 231, 223, -1, 179, 178, 220, -1, -1, 59, -1,
    1776 3, -1, 4, -1, 9, -1, 26, -1, 27, -1,
    1777 40, -1, 41, -1, 25, -1, 157, 202, 158, -1,
    1778 201, -1, 57, 226, 22, 149, 22, -1, 7, -1,
    1779 8, -1, 170, -1, 173, -1, 228, -1, 227, -1,
    1780 194, 229, -1, 231, 232, -1, 222, 232, -1, 233,
    1781 172, 234, -1, 233, 236, -1, -1, 21, -1, 67,
    1782 230, -1, 67, 10, -1, 68, 17, 229, -1, 68,
    1783 11, 229, 149, 17, 229, 149, 17, 229, -1, 69,
    1784 168, 229, 149, 17, 229, 154, 235, 156, -1, 69,
    1785 168, 229, 149, 17, 229, 154, 156, -1, 70, 182,
    1786 196, 229, 152, 238, 153, 186, 38, 17, 229, 71,
    1787 17, 229, -1, 71, -1, 72, -1, 235, 168, 227,
    1788 149, 17, 229, -1, 168, 227, 149, 17, 229, -1,
    1789 172, 241, -1, 194, 154, 229, 149, 229, 156, -1,
    1790 237, 149, 154, 229, 149, 229, 156, -1, 194, 184,
    1791 229, 184, -1, 17, 184, 229, 184, -1, 238, 149,
    1792 194, 184, 229, 184, -1, 238, 149, 17, 184, 229,
    1793 184, -1, -1, -1, 239, 149, 230, -1, 56, 55,
    1794 -1, 55, -1, 163, 194, 229, 149, 229, -1, 164,
    1795 194, 229, 149, 229, -1, 88, 166, 194, 229, 149,
    1796 229, -1, 89, 167, 194, 229, 149, 229, -1, 165,
    1797 230, 38, 194, -1, 129, 230, 149, 230, 149, 230,
    1798 -1, 130, 230, 149, 194, -1, 131, 230, 149, 230,
    1799 -1, 132, 230, 149, 230, 149, 230, -1, 133, 230,
    1800 149, 230, 149, 230, -1, 128, 237, -1, 240, 182,
    1801 196, 229, 152, 238, 153, 186, -1, 243, -1, 36,
    1802 -1, -1, 110, 194, 188, -1, 110, 194, 149, 11,
    1803 229, 188, -1, 111, 194, 188, -1, 111, 194, 149,
    1804 11, 229, 188, -1, 112, 230, -1, 242, 113, 194,
    1805 229, 188, -1, 242, 114, 230, 149, 194, 229, 188,
    1806 -1, 115, 194, 229, 239, -1
    1731 138, -1, 140, -1, 141, -1, 142, -1, -1, 185,
    1732 184, -1, 136, -1, 139, -1, 135, -1, 134, -1,
    1733 143, -1, 144, -1, -1, 187, 186, -1, -1, 145,
    1734 22, -1, -1, 53, 4, -1, -1, 150, 53, 4,
    1735 -1, 34, 22, -1, -1, 191, -1, -1, 150, 194,
    1736 193, -1, 191, -1, 53, 4, -1, 11, -1, 12,
    1737 -1, 13, -1, 16, -1, 15, -1, 14, -1, 17,
    1738 -1, 49, -1, 195, -1, 196, 151, -1, 230, -1,
    1739 152, 4, -1, 196, 153, 200, 154, 187, -1, 10,
    1740 153, 200, 154, 187, -1, 155, 4, 156, 196, 157,
    1741 -1, 158, 4, 156, 196, 159, -1, 160, 201, 161,
    1742 -1, 160, 161, -1, 158, 160, 201, 161, 159, -1,
    1743 158, 160, 161, 159, -1, 196, 185, -1, 196, -1,
    1744 10, -1, 197, -1, 199, 150, 197, -1, 199, -1,
    1745 199, 150, 39, -1, 39, -1, -1, 196, -1, 201,
    1746 150, 196, -1, 196, 155, 204, 157, -1, 196, 155,
    1747 157, -1, 196, 162, 22, -1, 196, 158, 204, 159,
    1748 -1, 196, 160, 204, 161, -1, 196, 160, 161, -1,
    1749 196, 158, 160, 204, 161, 159, -1, 196, 158, 160,
    1750 161, 159, -1, 196, 40, -1, 196, 41, -1, 196,
    1751 230, -1, 196, 203, -1, 196, 25, -1, 169, 3,
    1752 -1, 169, 5, -1, 169, 4, -1, 169, 6, -1,
    1753 11, 26, -1, 11, 27, -1, 170, 9, -1, 166,
    1754 153, 202, 38, 196, 154, -1, 115, 153, 202, 241,
    1755 154, -1, 129, 153, 202, 150, 202, 150, 202, 154,
    1756 -1, 164, 153, 202, 150, 202, 154, -1, 165, 153,
    1757 202, 150, 202, 154, -1, 88, 167, 153, 202, 150,
    1758 202, 154, -1, 89, 168, 153, 202, 150, 202, 154,
    1759 -1, 131, 153, 202, 150, 202, 154, -1, 132, 153,
    1760 202, 150, 202, 150, 202, 154, -1, 133, 153, 202,
    1761 150, 202, 150, 202, 154, -1, 204, 150, 202, -1,
    1762 202, -1, 32, -1, 33, -1, 37, -1, -1, 198,
    1763 230, -1, 121, 153, 207, 38, 196, 154, -1, 209,
    1764 -1, -1, 210, -1, 209, 210, -1, -1, 31, 211,
    1765 226, -1, -1, 30, 212, 227, -1, 58, 57, 216,
    1766 -1, 173, 18, 196, -1, 173, 18, 10, -1, -1,
    1767 175, 179, 206, 205, 202, 213, 193, -1, -1, 175,
    1768 177, 179, 206, 205, 202, 214, 193, -1, -1, 175,
    1769 178, 179, 206, 205, 196, 215, 193, -1, 175, 179,
    1770 35, 182, 207, -1, 51, 217, -1, 54, 149, 218,
    1771 -1, 22, -1, 52, 149, 22, -1, 66, 149, 22,
    1772 -1, 155, 219, 157, -1, 219, 150, 22, -1, 22,
    1773 -1, -1, 220, 150, 196, 185, 172, -1, 196, 185,
    1774 172, -1, 220, -1, 220, 150, 39, -1, 39, -1,
    1775 -1, 183, 198, 174, 153, 221, 154, 187, 192, 189,
    1776 188, -1, 28, -1, 160, -1, 181, 179, 222, 223,
    1777 -1, 29, -1, 161, -1, 233, 225, -1, 180, 179,
    1778 222, -1, -1, 59, -1, 3, -1, 4, -1, 9,
    1779 -1, 26, -1, 27, -1, 40, -1, 41, -1, 25,
    1780 -1, 158, 204, 159, -1, 203, -1, 57, 228, 22,
    1781 150, 22, -1, 7, -1, 8, -1, 171, -1, 174,
    1782 -1, 230, -1, 229, -1, 196, 231, -1, 233, 234,
    1783 -1, 224, 234, -1, 235, 173, 236, -1, 235, 238,
    1784 -1, -1, 21, -1, 67, 232, -1, 67, 10, -1,
    1785 68, 17, 231, -1, 68, 11, 231, 150, 17, 231,
    1786 150, 17, 231, -1, 69, 169, 231, 150, 17, 231,
    1787 155, 237, 157, -1, 69, 169, 231, 150, 17, 231,
    1788 155, 157, -1, 70, 183, 198, 231, 153, 240, 154,
    1789 187, 38, 17, 231, 71, 17, 231, -1, 71, -1,
    1790 72, -1, 237, 169, 229, 150, 17, 231, -1, 169,
    1791 229, 150, 17, 231, -1, 173, 243, -1, 196, 155,
    1792 231, 150, 231, 157, -1, 239, 150, 155, 231, 150,
    1793 231, 157, -1, 196, 185, 231, 185, -1, 17, 185,
    1794 231, 185, -1, 240, 150, 196, 185, 231, 185, -1,
    1795 240, 150, 17, 185, 231, 185, -1, -1, -1, 241,
    1796 150, 232, -1, 56, 55, -1, 55, -1, 164, 196,
    1797 231, 150, 231, -1, 165, 196, 231, 150, 231, -1,
    1798 88, 167, 196, 231, 150, 231, -1, 89, 168, 196,
    1799 231, 150, 231, -1, 166, 232, 38, 196, -1, 129,
    1800 232, 150, 232, 150, 232, -1, 130, 232, 150, 196,
    1801 -1, 131, 232, 150, 232, -1, 132, 232, 150, 232,
    1802 150, 232, -1, 133, 232, 150, 232, 150, 232, -1,
    1803 128, 239, -1, 242, 183, 198, 231, 153, 240, 154,
    1804 187, -1, 245, -1, 36, -1, -1, 110, 196, 190,
    1805 -1, 110, 196, 150, 11, 231, 190, -1, 111, 196,
    1806 190, -1, 111, 196, 150, 11, 231, 190, -1, 112,
    1807 232, -1, 244, 113, 196, 231, 190, -1, 244, 114,
    1808 232, 150, 196, 231, 190, -1, 115, 196, 231, 241,
    1809 -1
    18071810 };
    18081811
    18091812 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
    18211824 1192, 1193, 1194, 1198, 1199, 1200, 1203, 1204, 1205, 1206,
    18221825 1207, 1208, 1209, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
    18231826 1223, 1224, 1227, 1228, 1233, 1234, 1235, 1236, 1237, 1238,
    1824 1241, 1242, 1249, 1250, 1256, 1257, 1265, 1273, 1274, 1279,
    1825 1280, 1281, 1286, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
    1826 1302, 1306, 1310, 1317, 1322, 1330, 1360, 1385, 1390, 1400,
    1827 1410, 1414, 1424, 1431, 1440, 1447, 1452, 1457, 1464, 1465,
    1828 1472, 1479, 1487, 1493, 1505, 1533, 1549, 1576, 1604, 1630,
    1829 1650, 1676, 1696, 1708, 1715, 1781, 1791, 1801, 1807, 1817,
    1830 1823, 1833, 1838, 1843, 1856, 1868, 1890, 1898, 1904, 1915,
    1831 1920, 1925, 1931, 1937, 1946, 1950, 1958, 1958, 1961, 1961,
    1832 1964, 1976, 1997, 2002, 2010, 2011, 2015, 2015, 2019, 2019,
    1833 2022, 2025, 2049, 2060, 2060, 2071, 2070, 2080, 2079, 2090,
    1834 2130, 2133, 2139, 2149, 2153, 2158, 2160, 2165, 2170, 2179,
    1835 2189, 2200, 2204, 2213, 2222, 2227, 2357, 2357, 2359, 2368,
    1836 2368, 2370, 2375, 2387, 2391, 2396, 2400, 2404, 2408, 2412,
    1837 2416, 2420, 2424, 2428, 2453, 2457, 2467, 2471, 2475, 2480,
    1838 2487, 2487, 2493, 2502, 2506, 2515, 2524, 2533, 2537, 2544,
    1839 2548, 2552, 2557, 2567, 2586, 2595, 2679, 2683, 2690, 2701,
    1840 2714, 2724, 2735, 2745, 2756, 2764, 2774, 2781, 2784, 2785,
    1841 2792, 2796, 2801, 2817, 2834, 2848, 2862, 2874, 2882, 2889,
    1842 2895, 2901, 2907, 2922, 3013, 3018, 3022, 3029, 3036, 3044,
    1843 3051, 3059, 3067, 3081, 3098
    1827 1241, 1242, 1247, 1248, 1255, 1256, 1262, 1263, 1271, 1279,
    1828 1280, 1285, 1286, 1287, 1292, 1305, 1305, 1305, 1305, 1305,
    1829 1305, 1305, 1308, 1312, 1316, 1323, 1328, 1336, 1366, 1391,
    1830 1396, 1406, 1416, 1420, 1430, 1437, 1446, 1453, 1458, 1463,
    1831 1470, 1471, 1478, 1485, 1493, 1499, 1511, 1539, 1555, 1582,
    1832 1610, 1636, 1656, 1682, 1702, 1714, 1721, 1787, 1797, 1807,
    1833 1813, 1823, 1829, 1839, 1844, 1849, 1862, 1874, 1896, 1904,
    1834 1910, 1921, 1926, 1931, 1937, 1943, 1952, 1956, 1964, 1964,
    1835 1967, 1967, 1970, 1982, 2003, 2008, 2016, 2017, 2021, 2021,
    1836 2025, 2025, 2028, 2031, 2055, 2066, 2066, 2077, 2076, 2086,
    1837 2085, 2096, 2136, 2139, 2145, 2155, 2159, 2164, 2166, 2171,
    1838 2176, 2185, 2195, 2206, 2210, 2219, 2228, 2233, 2367, 2367,
    1839 2369, 2378, 2378, 2380, 2385, 2397, 2401, 2406, 2410, 2414,
    1840 2418, 2422, 2426, 2430, 2434, 2438, 2463, 2467, 2477, 2481,
    1841 2485, 2490, 2497, 2497, 2503, 2512, 2516, 2525, 2534, 2543,
    1842 2547, 2554, 2558, 2562, 2567, 2577, 2596, 2605, 2689, 2693,
    1843 2700, 2711, 2724, 2734, 2745, 2755, 2766, 2774, 2784, 2791,
    1844 2794, 2795, 2802, 2806, 2811, 2827, 2844, 2858, 2872, 2884,
    1845 2892, 2899, 2905, 2911, 2917, 2932, 3023, 3028, 3032, 3039,
    1846 3046, 3054, 3061, 3069, 3077, 3091, 3108
    18441847 };
    18451848 #endif
    18461849
    18711874 "PTRTOINT", "PHI_TOK", "SELECT", "VAARG", "EXTRACTELEMENT",
    18721875 "INSERTELEMENT", "SHUFFLEVECTOR", "SIGNEXT", "ZEROEXT", "NORETURN",
    18731876 "INREG", "SRET", "NOUNWIND", "NOALIAS", "BYVAL", "NEST", "READNONE",
    1874 "READONLY", "DEFAULT", "HIDDEN", "PROTECTED", "'='", "','", "'*'",
    1877 "READONLY", "GC", "DEFAULT", "HIDDEN", "PROTECTED", "'='", "','", "'*'",
    18751878 "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'",
    18761879 "'c'", "$accept", "ArithmeticOps", "LogicalOps", "CastOps",
    18771880 "IPredicates", "FPredicates", "IntType", "FPType", "LocalName",
    18791882 "GlobalAssign", "GVInternalLinkage", "GVExternalLinkage",
    18801883 "GVVisibilityStyle", "FunctionDeclareLinkage", "FunctionDefineLinkage",
    18811884 "AliasLinkage", "OptCallingConv", "ParamAttr", "OptParamAttrs",
    1882 "FuncAttr", "OptFuncAttrs", "OptAlign", "OptCAlign", "SectionString",
    1883 "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "PrimType",
    1884 "Types", "ArgType", "ResultTypes", "ArgTypeList", "ArgTypeListI",
    1885 "TypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType",
    1886 "ThreadLocal", "AliaseeRef", "Module", "DefinitionList", "Definition",
    1887 "@1", "@2", "@3", "@4", "@5", "AsmBlock", "TargetDefinition",
    1888 "LibrariesDefinition", "LibList", "ArgListH", "ArgList",
    1889 "FunctionHeaderH", "BEGIN", "FunctionHeader", "END", "Function",
    1890 "FunctionProto", "OptSideEffect", "ConstValueRef", "SymbolicValueRef",
    1891 "ValueRef", "ResolvedVal", "BasicBlockList", "BasicBlock",
    1892 "InstructionList", "BBTerminatorInst", "JumpTable", "Inst", "PHIList",
    1893 "ParamList", "IndexList", "OptTailCall", "InstVal", "OptVolatile",
    1894 "MemoryInst", 0
    1885 "FuncAttr", "OptFuncAttrs", "OptGC", "OptAlign", "OptCAlign",
    1886 "SectionString", "OptSection", "GlobalVarAttributes",
    1887 "GlobalVarAttribute", "PrimType", "Types", "ArgType", "ResultTypes",
    1888 "ArgTypeList", "ArgTypeListI", "TypeListI", "ConstVal", "ConstExpr",
    1889 "ConstVector", "GlobalType", "ThreadLocal", "AliaseeRef", "Module",
    1890 "DefinitionList", "Definition", "@1", "@2", "@3", "@4", "@5", "AsmBlock",
    1891 "TargetDefinition", "LibrariesDefinition", "LibList", "ArgListH",
    1892 "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader", "END",
    1893 "Function", "FunctionProto", "OptSideEffect", "ConstValueRef",
    1894 "SymbolicValueRef", "ValueRef", "ResolvedVal", "BasicBlockList",
    1895 "BasicBlock", "InstructionList", "BBTerminatorInst", "JumpTable", "Inst",
    1896 "PHIList", "ParamList", "IndexList", "OptTailCall", "InstVal",
    1897 "OptVolatile", "MemoryInst", 0
    18951898 };
    18961899 #endif
    18971900
    19141917 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
    19151918 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
    19161919 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
    1917 395, 396, 397, 398, 399, 400, 401, 402, 61, 44,
    1918 42, 92, 40, 41, 91, 120, 93, 60, 62, 123,
    1919 125, 99
    1920 395, 396, 397, 398, 399, 400, 401, 402, 403, 61,
    1921 44, 42, 92, 40, 41, 91, 120, 93, 60, 62,
    1922 123, 125, 99
    19201923 };
    19211924 # endif
    19221925
    19231926 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
    19241927 static const yytype_uint8 yyr1[] =
    19251928 {
    1926 0, 162, 163, 163, 163, 163, 163, 163, 163, 163,
    1927 163, 164, 164, 164, 164, 164, 164, 165, 165, 165,
    1928 165, 165, 165, 165, 165, 165, 165, 165, 165, 166,
    1929 0, 163, 164, 164, 164, 164, 164, 164, 164, 164,
    1930 164, 165, 165, 165, 165, 165, 165, 166, 166, 166,
    19291931 166, 166, 166, 166, 166, 166, 166, 166, 166, 167,
    1930 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
    1931 167, 167, 167, 167, 167, 168, 169, 169, 169, 169,
    1932 169, 170, 170, 170, 171, 171, 172, 172, 173, 173,
    1933 174, 174, 175, 176, 176, 176, 176, 176, 177, 177,
    1934 177, 178, 178, 178, 178, 179, 179, 179, 180, 180,
    1935 180, 180, 180, 181, 181, 181, 182, 182, 182, 182,
    1936 182, 182, 182, 183, 183, 183, 183, 183, 183, 183,
    1937 183, 183, 184, 184, 185, 185, 185, 185, 185, 185,
    1938 186, 186, 187, 187, 188, 188, 189, 190, 190, 191,
    1939 191, 192, 192, 193, 193, 193, 193, 193, 193, 193,
    1940 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
    1941 194, 194, 194, 195, 196, 196, 197, 197, 198, 198,
    1942 198, 198, 199, 199, 200, 200, 200, 200, 200, 200,
    1943 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
    1944 200, 200, 200, 200, 201, 201, 201, 201, 201, 201,
    1945 201, 201, 201, 201, 202, 202, 203, 203, 204, 204,
    1946 205, 205, 206, 206, 207, 207, 209, 208, 210, 208,
    1947 208, 208, 208, 211, 208, 212, 208, 213, 208, 208,
    1948 208, 208, 214, 215, 215, 216, 217, 217, 217, 218,
    1949 218, 219, 219, 219, 219, 220, 221, 221, 222, 223,
    1950 223, 224, 225, 226, 226, 227, 227, 227, 227, 227,
    1951 227, 227, 227, 227, 227, 227, 228, 228, 228, 228,
    1952 229, 229, 230, 231, 231, 232, 233, 233, 233, 234,
    1953 234, 234, 234, 234, 234, 234, 234, 234, 235, 235,
    1954 236, 237, 237, 238, 238, 238, 238, 238, 239, 239,
    1955 240, 240, 241, 241, 241, 241, 241, 241, 241, 241,
    1956 241, 241, 241, 241, 241, 242, 242, 243, 243, 243,
    1957 243, 243, 243, 243, 243
    1932 167, 167, 167, 167, 167, 167, 167, 167, 167, 168,
    1933 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
    1934 168, 168, 168, 168, 168, 169, 170, 170, 170, 170,
    1935 170, 171, 171, 171, 172, 172, 173, 173, 174, 174,
    1936 175, 175, 176, 177, 177, 177, 177, 177, 178, 178,
    1937 178, 179, 179, 179, 179, 180, 180, 180, 181, 181,
    1938 181, 181, 181, 182, 182, 182, 183, 183, 183, 183,
    1939 183, 183, 183, 184, 184, 184, 184, 184, 184, 184,
    1940 184, 184, 185, 185, 186, 186, 186, 186, 186, 186,
    1941 187, 187, 188, 188, 189, 189, 190, 190, 191, 192,
    1942 192, 193, 193, 194, 194, 195, 195, 195, 195, 195,
    1943 195, 195, 196, 196, 196, 196, 196, 196, 196, 196,
    1944 196, 196, 196, 196, 196, 197, 198, 198, 199, 199,
    1945 200, 200, 200, 200, 201, 201, 202, 202, 202, 202,
    1946 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
    1947 202, 202, 202, 202, 202, 202, 203, 203, 203, 203,
    1948 203, 203, 203, 203, 203, 203, 204, 204, 205, 205,
    1949 206, 206, 207, 207, 208, 208, 209, 209, 211, 210,
    1950 212, 210, 210, 210, 210, 213, 210, 214, 210, 215,
    1951 210, 210, 210, 210, 216, 217, 217, 218, 219, 219,
    1952 219, 220, 220, 221, 221, 221, 221, 222, 223, 223,
    1953 224, 225, 225, 226, 227, 228, 228, 229, 229, 229,
    1954 229, 229, 229, 229, 229, 229, 229, 229, 230, 230,
    1955 230, 230, 231, 231, 232, 233, 233, 234, 235, 235,
    1956 235, 236, 236, 236, 236, 236, 236, 236, 236, 236,
    1957 237, 237, 238, 239, 239, 240, 240, 240, 240, 240,
    1958 241, 241, 242, 242, 243, 243, 243, 243, 243, 243,
    1959 243, 243, 243, 243, 243, 243, 243, 244, 244, 245,
    1960 245, 245, 245, 245, 245, 245, 245
    19581961 };
    19591962
    19601963 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
    19721975 1, 1, 1, 0, 1, 1, 0, 1, 1, 1,
    19731976 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
    19741977 1, 1, 0, 2, 1, 1, 1, 1, 1, 1,
    1975 0, 2, 0, 2, 0, 3, 2, 0, 1, 0,
    1976 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,
    1977 1, 1, 2, 1, 2, 5, 5, 5, 5, 3,
    1978 2, 5, 4, 2, 1, 1, 1, 3, 1, 3,
    1979 1, 0, 1, 3, 4, 3, 3, 4, 4, 3,
    1980 6, 5, 2, 2, 2, 2, 2, 2, 2, 2,
    1981 2, 2, 2, 2, 6, 5, 8, 6, 6, 7,
    1982 7, 6, 8, 8, 3, 1, 1, 1, 1, 0,
    1983 2, 6, 1, 0, 1, 2, 0, 3, 0, 3,
    1984 3, 3, 3, 0, 7, 0, 8, 0, 8, 5,
    1985 2, 3, 1, 3, 3, 3, 3, 1, 0, 5,
    1986 3, 1, 3, 1, 0, 9, 1, 1, 4, 1,
    1987 1, 2, 3, 0, 1, 1, 1, 1, 1, 1,
    1988 1, 1, 1, 3, 1, 5, 1, 1, 1, 1,
    1989 1, 1, 2, 2, 2, 3, 2, 0, 1, 2,
    1990 2, 3, 9, 9, 8, 14, 1, 1, 6, 5,
    1991 2, 6, 7, 4, 4, 6, 6, 0, 0, 3,
    1992 2, 1, 5, 5, 6, 6, 4, 6, 4, 4,
    1993 6, 6, 2, 8, 1, 1, 0, 3, 6, 3,
    1994 6, 2, 5, 7, 4
    1978 0, 2, 0, 2, 0, 2, 0, 3, 2, 0,
    1979 1, 0, 3, 1, 2, 1, 1, 1, 1, 1,
    1980 1, 1, 1, 1, 2, 1, 2, 5, 5, 5,
    1981 5, 3, 2, 5, 4, 2, 1, 1, 1, 3,
    1982 1, 3, 1, 0, 1, 3, 4, 3, 3, 4,
    1983 4, 3, 6, 5, 2, 2, 2, 2, 2, 2,
    1984 2, 2, 2, 2, 2, 2, 6, 5, 8, 6,
    1985 6, 7, 7, 6, 8, 8, 3, 1, 1, 1,
    1986 1, 0, 2, 6, 1, 0, 1, 2, 0, 3,
    1987 0, 3, 3, 3, 3, 0, 7, 0, 8, 0,
    1988 8, 5, 2, 3, 1, 3, 3, 3, 3, 1,
    1989 0, 5, 3, 1, 3, 1, 0, 10, 1, 1,
    1990 4, 1, 1, 2, 3, 0, 1, 1, 1, 1,
    1991 1, 1, 1, 1, 1, 3, 1, 5, 1, 1,
    1992 1, 1, 1, 1, 2, 2, 2, 3, 2, 0,
    1993 1, 2, 2, 3, 9, 9, 8, 14, 1, 1,
    1994 6, 5, 2, 6, 7, 4, 4, 6, 6, 0,
    1995 0, 3, 2, 1, 5, 5, 6, 6, 4, 6,
    1996 4, 4, 6, 6, 2, 8, 1, 1, 0, 3,
    1997 6, 3, 6, 2, 5, 7, 4
    19951998 };
    19961999
    19972000 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    19992002 means the default is an error. */
    20002003 static const yytype_uint16 yydefact[] =
    20012004 {
    2002 71, 61, 68, 62, 69, 63, 208, 206, 0, 0,
    2003 0, 0, 0, 0, 81, 70, 0, 71, 204, 85,
    2004 88, 0, 0, 220, 0, 0, 66, 0, 72, 73,
    2005 71, 61, 68, 62, 69, 63, 210, 208, 0, 0,
    2006 0, 0, 0, 0, 81, 70, 0, 71, 206, 85,
    2007 88, 0, 0, 222, 0, 0, 66, 0, 72, 73,
    20052008 75, 74, 76, 78, 77, 79, 80, 82, 83, 84,
    2006 81, 81, 199, 1, 205, 86, 87, 81, 209, 89,
    2007 90, 91, 92, 81, 267, 207, 267, 0, 0, 228,
    2008 221, 222, 210, 256, 257, 212, 133, 134, 135, 138,
    2009 137, 136, 139, 140, 0, 0, 0, 0, 258, 259,
    2010 141, 211, 143, 199, 199, 93, 198, 0, 96, 96,
    2011 268, 264, 67, 239, 240, 241, 263, 223, 224, 227,
    2012 0, 161, 144, 0, 0, 0, 0, 150, 162, 0,
    2013 142, 161, 0, 0, 95, 94, 0, 196, 197, 0,
    2014 0, 97, 98, 99, 100, 101, 0, 242, 0, 306,
    2015 266, 0, 225, 160, 112, 156, 158, 0, 0, 0,
    2016 0, 0, 0, 149, 0, 0, 0, 155, 0, 154,
    2017 0, 219, 133, 134, 135, 138, 137, 136, 0, 0,
    2018 0, 213, 102, 0, 236, 237, 238, 305, 291, 0,
    2019 0, 0, 0, 96, 276, 277, 2, 3, 4, 5,
    2009 81, 81, 201, 1, 207, 86, 87, 81, 211, 89,
    2010 90, 91, 92, 81, 269, 209, 269, 0, 0, 230,
    2011 223, 224, 212, 258, 259, 214, 135, 136, 137, 140,
    2012 139, 138, 141, 142, 0, 0, 0, 0, 260, 261,
    2013 143, 213, 145, 201, 201, 93, 200, 0, 96, 96,
    2014 270, 266, 67, 241, 242, 243, 265, 225, 226, 229,
    2015 0, 163, 146, 0, 0, 0, 0, 152, 164, 0,
    2016 144, 163, 0, 0, 95, 94, 0, 198, 199, 0,
    2017 0, 97, 98, 99, 100, 101, 0, 244, 0, 308,
    2018 268, 0, 227, 162, 112, 158, 160, 0, 0, 0,
    2019 0, 0, 0, 151, 0, 0, 0, 157, 0, 156,
    2020 0, 221, 135, 136, 137, 140, 139, 138, 0, 0,
    2021 0, 215, 102, 0, 238, 239, 240, 307, 293, 0,
    2022 0, 0, 0, 96, 278, 279, 2, 3, 4, 5,
    20202023 6, 7, 8, 9, 10, 14, 15, 16, 11, 12,
    20212024 13, 0, 0, 0, 0, 0, 0, 17, 18, 19,
    20222025 20, 21, 22, 23, 24, 25, 26, 27, 28, 0,
    2023 0, 0, 0, 0, 0, 0, 0, 0, 265, 96,
    2024 280, 0, 304, 226, 153, 0, 120, 0, 0, 152,
    2025 0, 163, 120, 215, 217, 0, 200, 181, 182, 177,
    2026 179, 178, 180, 183, 176, 172, 173, 0, 0, 0,
    2026 0, 0, 0, 0, 0, 0, 0, 0, 267, 96,
    2027 282, 0, 306, 228, 155, 0, 120, 0, 0, 154,
    2028 0, 165, 120, 217, 219, 0, 202, 183, 184, 179,
    2029 181, 180, 182, 185, 178, 174, 175, 0, 0, 0,
    20272030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2028 0, 175, 174, 129, 0, 290, 270, 0, 269, 0,
    2031 0, 177, 176, 131, 0, 292, 272, 0, 271, 0,
    20292032 0, 55, 0, 0, 29, 30, 31, 32, 33, 34,
    20302033 35, 36, 37, 38, 0, 53, 54, 49, 50, 51,
    20312034 52, 39, 40, 41, 42, 43, 44, 45, 46, 47,
    2032 48, 0, 124, 124, 311, 0, 0, 302, 0, 0,
    2035 48, 0, 126, 126, 313, 0, 0, 304, 0, 0,
    20332036 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
    2034 106, 105, 103, 107, 108, 109, 110, 111, 113, 159,
    2035 157, 146, 147, 148, 151, 145, 129, 129, 0, 0,
    2036 0, 0, 0, 0, 0, 0, 165, 195, 0, 0,
    2037 0, 169, 0, 166, 0, 0, 0, 0, 214, 234,
    2038 245, 246, 247, 252, 248, 249, 250, 251, 243, 0,
    2039 254, 261, 260, 262, 0, 271, 0, 0, 0, 0,
    2040 0, 307, 0, 309, 288, 0, 0, 0, 0, 0,
    2037 106, 105, 103, 107, 108, 109, 110, 111, 113, 161,
    2038 159, 148, 149, 150, 153, 147, 131, 131, 0, 0,
    2039 0, 0, 0, 0, 0, 0, 167, 197, 0, 0,
    2040 0, 171, 0, 168, 0, 0, 0, 0, 216, 236,
    2041 247, 248, 249, 254, 250, 251, 252, 253, 245, 0,
    2042 256, 263, 262, 264, 0, 273, 0, 0, 0, 0,
    2043 0, 309, 0, 311, 290, 0, 0, 0, 0, 0,
    20412044 0, 0, 0, 0, 0, 0, 0, 0, 117, 116,
    2042 114, 115, 118, 119, 121, 216, 218, 0, 0, 0,
    2043 288, 0, 0, 0, 0, 0, 164, 150, 162, 0,
    2044 167, 168, 0, 0, 0, 0, 0, 131, 129, 233,
    2045 112, 231, 0, 244, 0, 0, 0, 0, 0, 0,
    2046 0, 0, 0, 0, 314, 0, 0, 0, 298, 299,
    2047 0, 0, 0, 0, 296, 0, 124, 0, 0, 0,
    2048 0, 0, 0, 0, 0, 0, 194, 171, 0, 0,
    2049 0, 0, 126, 132, 130, 65, 0, 120, 0, 253,
    2050 0, 0, 287, 0, 0, 124, 125, 124, 0, 0,
    2051 0, 0, 0, 0, 292, 293, 287, 0, 312, 0,
    2052 201, 0, 0, 185, 0, 0, 0, 0, 170, 0,
    2053 0, 0, 64, 230, 232, 112, 127, 0, 0, 0,
    2054 112, 112, 0, 294, 295, 308, 310, 289, 0, 0,
    2055 297, 300, 301, 0, 124, 0, 0, 0, 191, 0,
    2056 0, 187, 188, 184, 65, 128, 122, 255, 0, 0,
    2057 0, 0, 0, 120, 281, 0, 120, 313, 189, 190,
    2058 0, 0, 0, 229, 0, 235, 0, 274, 0, 0,
    2059 104, 106, 112, 112, 112, 112, 0, 282, 303, 186,
    2060 192, 193, 123, 272, 0, 273, 0, 284, 283, 0,
    2061 0, 0, 0, 0, 112, 112, 0, 0, 0, 286,
    2062 285, 0, 279, 0, 0, 278, 0, 275
    2045 114, 115, 118, 119, 121, 218, 220, 0, 0, 0,
    2046 290, 0, 0, 0, 0, 0, 166, 152, 164, 0,
    2047 169, 170, 0, 0, 0, 0, 0, 133, 131, 235,
    2048 112, 233, 0, 246, 0, 0, 0, 0, 0, 0,
    2049 0, 0, 0, 0, 316, 0, 0, 0, 300, 301,
    2050 0, 0, 0, 0, 298, 0, 126, 0, 0, 0,
    2051 0, 0, 0, 0, 0, 0, 196, 173, 0, 0,
    2052 0, 0, 128, 134, 132, 65, 0, 120, 0, 255,
    2053 0, 0, 289, 0, 0, 126, 127, 126, 0, 0,
    2054 0, 0, 0, 0, 294, 295, 289, 0, 314, 0,
    2055 203, 0, 0, 187, 0, 0, 0, 0, 172, 0,
    2056 0, 0, 64, 232, 234, 112, 129, 0, 0, 0,
    2057 112, 112, 0, 296, 297, 310, 312, 291, 0, 0,
    2058 299, 302, 303, 0, 126, 0, 0, 0, 193, 0,
    2059 0, 189, 190, 186, 65, 130, 124, 257, 0, 0,
    2060 0, 0, 0, 120, 283, 0, 120, 315, 191, 192,
    2061 0, 0, 0, 231, 0, 122, 0, 276, 0, 0,
    2062 104, 106, 112, 112, 112, 112, 0, 284, 305, 188,
    2063 194, 195, 125, 0, 237, 274, 0, 275, 0, 286,
    2064 285, 0, 0, 0, 123, 0, 0, 112, 112, 0,
    2065 0, 0, 288, 287, 0, 281, 0, 0, 280, 0,
    2066 277
    20632067 };
    20642068
    20652069 /* YYDEFGOTO[NTERM-NUM]. */
    20672071 {
    20682072 -1, 258, 259, 260, 284, 301, 158, 159, 78, 513,
    20692073 12, 79, 14, 15, 40, 41, 42, 47, 53, 116,
    2070 126, 328, 224, 404, 331, 565, 381, 427, 546, 358,
    2071 428, 80, 160, 135, 150, 136, 137, 109, 347, 370,
    2072 348, 119, 87, 151, 16, 17, 18, 20, 19, 263,
    2073 336, 337, 62, 23, 60, 100, 431, 432, 127, 166,
    2074 54, 95, 55, 48, 434, 371, 82, 373, 268, 56,
    2075 91, 92, 218, 569, 130, 307, 522, 444, 219, 220,
    2076 221, 222
    2074 126, 328, 224, 404, 331, 584, 565, 381, 427, 546,
    2075 358, 428, 80, 160, 135, 150, 136, 137, 109, 347,
    2076 370, 348, 119, 87, 151, 16, 17, 18, 20, 19,
    2077 263, 336, 337, 62, 23, 60, 100, 431, 432, 127,
    2078 166, 54, 95, 55, 48, 434, 371, 82, 373, 268,
    2079 56, 91, 92, 218, 569, 130, 307, 522, 444, 219,
    2080 220, 221, 222
    20772081 };
    20782082
    20792083 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    20802084 STATE-NUM. */
    2081 #define YYPACT_NINF -546
    2085 #define YYPACT_NINF -541
    20822086 static const yytype_int16 yypact[] =
    20832087 {
    2084 47, -546, -546, -546, -546, -546, -546, -546, -17, -95,
    2085 52, -90, 86, 14, 183, -546, 135, 1758, -546, -10,
    2086 64, 18, 33, -546, 5, 180, -546, 1341, -546, -546,
    2087 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
    2088 76, 76, 59, -546, -546, -546, -546, 76, -546, -546,
    2089 -546, -546, -546, 76, 193, -546, 13, 202, 224, 233,
    2090 -546, -546, -546, -546, -546, 111, -546, -546, -546, -546,
    2091 -546, -546, -546, -546, 260, 261, 1, 378, -546, -546,
    2092 -546, -7, -546, 231, 231, 150, -546, 55, 309, 309,
    2093 -546, -546, 100, -546, -546, -546, -546, -546, -546, -546,
    2094 -99, 1088, -546, 116, 122, 988, 111, -546, -7, -106,
    2095 -546, 1088, 55, 55, -546, -546, 1142, -546, -546, 1359,
    2096 274, -546, -546, -546, -546, -546, 1414, -546, -18, 1624,
    2097 -546, 257, -546, -546, -7, -546, 131, 128, 1454, 1454,
    2098 129, -105, 1454, -546, 136, 1359, 1454, 111, 141, -7,
    2099 237, -546, 214, 279, 285, 289, 291, 294, 145, 299,
    2100 803, -546, -546, 103, -546, -546, -546, -546, -546, 254,
    2101 1512, 57, 301, 309, -546, -546, -546, -546, -546, -546,
    2102 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
    2103 -546, 596, 646, 1454, 1454, 1454, 1454, -546, -546, -546,
    2104 -546, -546, -546, -546, -546, -546, -546, -546, -546, 1454,
    2105 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, -546, 309,
    2106 -546, 61, -546, -546, 132, 1182, -546, -57, -69, -546,
    2107 155, -7, -546, -546, -7, 1142, -546, -546, -546, -546,
    2108 -546, -546, -546, -546, -546, -546, -546, 596, 646, 162,
    2109 163, 164, 166, 167, 1242, 1530, 1028, 303, 169, 174,
    2110 179, -546, -546, 185, 191, -546, 111, 644, -546, 780,
    2111 780, -546, 780, 1414, -546, -546, -546, -546, -546, -546,
    2112 -546, -546, -546, -546, 1454, -546, -546, -546, -546, -546,
    2113 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
    2114 -546, 1454, 30, 48, -546, 644, -21, 197, 199, 203,
    2115 204, 205, 206, 644, 644, 313, 1414, 1454, 1454, -546,
    2116 -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
    2117 -546, 201, -546, -546, -546, 201, 185, 185, 320, 207,
    2118 208, 1359, 1359, 1359, 1359, 1359, -546, -546, -65, 1068,
    2119 -86, -546, -104, -546, 1359, 1359, 1359, -20, -546, 1261,
    2120 -546, -546, -546, -546, -546, -546, -546, -546, 273, 1359,
    2121 -546, -546, -546, -546, 217, -546, 218, 780, 644, 644,
    2122 8, -546, 11, -546, -546, 780, 221, 1454, 1454, 1454,
    2123 1454, 1454, 227, 234, 1454, 780, 644, 235, -546, -546,
    2124 -546, -546, -546, -546, -546, -546, -546, 1454, 1359, 1359,
    2125 -546, 247, 258, 263, 265, 1359, -546, 259, 803, -101,
    2126 -546, -546, 269, 270, 344, 398, 419, -546, 185, -546,
    2127 -7, 276, 275, -546, 404, -76, 412, 413, 282, 288,
    2128 292, 780, 440, 780, 297, 300, 780, 302, -7, -546,
    2129 304, 308, 780, 780, -7, 306, 310, 1454, -35, 311,
    2130 314, -73, 1359, 1359, 1359, 1359, -546, -546, 315, 1359,
    2131 1359, 1454, -546, -546, -546, 298, 1301, -546, 319, -546,
    2132 780, 780, 1570, 780, 780, 310, -546, 310, 1454, 780,
    2133 322, 1454, 1454, 1454, -546, -546, 1570, 399, -546, 644,
    2134 -546, 1359, 1359, -546, 323, 316, 325, 327, -546, 324,
    2135 326, 60, -546, -546, -546, -7, 3, 460, 334, 330,
    2136 82, -7, -13, -546, -546, -546, -546, -546, 332, 780,
    2137 -546, -546, -546, 12, 310, 336, 337, 1359, -546, 1359,
    2138 1359, -546, -546, -546, 298, -546, 438, -546, 475, -4,
    2139 493, 493, 1610, -546, -546, 338, -546, -546, -546, -546,
    2140 342, 345, 346, -546, 501, -546, 780, -546, 940, 2,
    2141 354, 355, -546, -546, 82, -7, 72, -546, 201, -546,
    2142 -546, -546, -546, -546, 359, -546, 940, 132, 132, 493,
    2143 493, 492, 494, 361, -546, -546, 780, 780, 497, 132,
    2144 132, 450, -546, 780, 505, -546, 780, -546
    2088 658, -541, -541, -541, -541, -541, -541, -541, -12, -135,
    2089 -38, -125, 106, -69, 26, -541, 29, 1762, -541, 14,
    2090 88, 43, 49, -541, 45, 127, -541, 1344, -541, -541,
    2091 -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
    2092 131, 131, 73, -541, -541, -541, -541, 131, -541, -541,
    2093 -541, -541, -541, 131, 201, -541, -11, 135, 215, 216,
    2094 -541, -541, -541, -541, -541, 70, -541, -541, -541, -541,
    2095 -541, -541, -541, -541, 245, 247, 3, 553, -541, -541,
    2096 -541, -34, -541, 219, 219, 110, -541, 62, 171, 171,
    2097 -541, -541, 124, -541, -541, -541, -541, -541, -541, -541,
    2098 -66, 1092, -541, 108, 114, 991, 70, -541, -34, -109,
    2099 -541, 1092, 62, 62, -541, -541, 1146, -541, -541, 1362,
    2100 261, -541, -541, -541, -541, -541, 1418, -541, -15, 1628,
    2101 -541, 260, -541, -541, -34, -541, 119, 129, 1458, 1458,
    2102 147, -108, 1458, -541, 134, 1362, 1458, 70, 142, -34,
    2103 118, -541, 40, 306, 307, 308, 309, 310, 172, 311,
    2104 805, -541, -541, 113, -541, -541, -541, -541, -541, 266,
    2105 1516, 72, 314, 171, -541, -541, -541, -541, -541, -541,
    2106 -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
    2107 -541, 313, 507, 1458, 1458, 1458, 1458, -541, -541, -541,
    2108 -541, -541, -541, -541, -541, -541, -541, -541, -541, 1458,
    2109 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, -541, 171,
    2110 -541, 52, -541, -541, -36, 1186, -541, -94, -30, -541,
    2111 163, -34, -541, -541, -34, 1146, -541, -541, -541, -541,
    2112 -541, -541, -541, -541, -541, -541, -541, 313, 507, 176,
    2113 178, 184, 185, 187, 1246, 1534, 1031, 302, 190, 193,
    2114 198, -541, -541, 202, 200, -541, 70, 645, -541, 782,
    2115 782, -541, 782, 1418, -541, -541, -541, -541, -541, -541,
    2116 -541, -541, -541, -541, 1458, -541, -541, -541, -541, -541,
    2117 -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
    2118 -541, 1458, 136, 146, -541, 645, 104, 206, 207, 208,
    2119 209, 210, 217, 645, 645, 328, 1418, 1458, 1458, -541,
    2120 -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
    2121 -541, 137, -541, -541, -541, 137, 202, 202, 333, 221,
    2122 222, 1362, 1362, 1362, 1362, 1362, -541, -541, -64, 1071,
    2123 -103, -541, -100, -541, 1362, 1362, 1362, 2, -541, 1264,
    2124 -541, -541, -541, -541, -541, -541, -541, -541, 317, 1362,
    2125 -541, -541, -541, -541, 227, -541, 230, 782, 645, 645,
    2126 11, -541, 12, -541, -541, 782, 228, 1458, 1458, 1458,
    2127 1458, 1458, 232, 234, 1458, 782, 645, 235, -541, -541,
    2128 -541, -541, -541, -541, -541, -541, -541, 1458, 1362, 1362,
    2129 -541, 239, 241, 243, 244, 1362, -541, 256, 805, -73,
    2130 -541, -541, 248, 250, 385, 404, 423, -541, 202, -541,
    2131 -34, 278, 280, -541, 413, -72, 419, 420, 288, 292,
    2132 293, 782, 440, 782, 296, 297, 782, 299, -34, -541,
    2133 301, 303, 782, 782, -34, 304, 318, 1458, 151, 319,
    2134 321, -43, 1362, 1362, 1362, 1362, -541, -541, 295, 1362,
    2135 1362, 1458, -541, -541, -541, 279, 1304, -541, 322, -541,
    2136 782, 782, 1574, 782, 782, 318, -541, 318, 1458, 782,
    2137 323, 1458, 1458, 1458, -541, -541, 1574, 399, -541, 645,
    2138 -541, 1362, 1362, -541, 324, 305, 326, 327, -541, 325,
    2139 329, 157, -541, -541, -541, -34, 81, 436, 332, 330,
    2140 9, -34, 47, -541, -541, -541, -541, -541, 334, 782,
    2141 -541, -541, -541, 96, 318, 336, 338, 1362, -541, 1362,
    2142 1362, -541, -541, -541, 279, -541, 407, -541, 444, -6,
    2143 505, 505, 1614, -541, -541, 337, -541, -541, -541, -541,
    2144 339, 342, 343, -541, 459, 341, 782, -541, 943, -2,
    2145 331, 348, -541, -541, 9, -34, 109, -541, 137, -541,
    2146 -541, -541, -541, 442, -541, -541, 352, -541, 943, -36,
    2147 -36, 505, 505, 470, -541, 486, 354, -541, -541, 782,
    2148 782, 488, -36, -36, 435, -541, 782, 490, -541, 782,
    2149 -541
    21452150 };
    21462151
    21472152 /* YYPGOTO[NTERM-NUM]. */
    21482153 static const yytype_int16 yypgoto[] =
    21492154 {
    2150 -546, 394, 395, 396, 280, 283, -170, -546, 0, -16,
    2151 444, 15, -546, -546, -546, -546, -1, -546, -546, -546,
    2152 -157, -546, -418, -546, -229, -546, -292, 23, -546, -307,
    2153 -546, -546, -26, 305, -120, -546, 429, 436, -59, -156,
    2154 -235, 126, 168, 307, -546, -546, 526, -546, -546, -546,
    2155 -546, -546, -546, -546, -546, -546, -546, -546, 456, -546,
    2156 -546, -546, -546, -546, -546, -545, -142, 108, -186, -546,
    2157 490, -546, -546, -546, -546, -546, 51, 138, -546, -546,
    2158 -546, -546
    2155 -541, 381, 382, 387, 270, 271, -170, -541, 0, -24,
    2156 426, 8, -541, -541, -541, -541, 56, -541, -541, -541,
    2157 -161, -541, -393, -541, -217, -541, -541, -292, 5, -541,
    2158 -310, -541, -541, -26, 298, -120, -541, 411, 430, -115,
    2159 -157, -235, 94, 130, 312, -541, -541, 519, -541, -541,
    2160 -541, -541, -541, -541, -541, -541, -541, -541, -541, 448,
    2161 -541, -541, -541, -541, -541, -541, -540, -111, -51, -179,
    2162 -541, 482, -541, -541, -541, -541, -541, 46, 133, -541,
    2163 -541, -541, -541
    21592164 };
    21602165
    21612166 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
    21622167 positive, shift that token. If negative, reduce the rule which
    21632168 number is the opposite. If zero, do what YYDEFACT says.
    21642169 If YYTABLE_NINF, syntax error. */
    2165 #define YYTABLE_NINF -204
    2170 #define YYTABLE_NINF -206
    21662171 static const yytype_int16 yytable[] =
    21672172 {
    2168 11, 81, 272, 335, 261, 104, 163, 271, 236, 304,
    2169 164, 383, 475, 271, 425, 13, 273, 11, 262, 441,
    2170 350, 352, 443, 584, 308, 309, 310, 311, 312, 405,
    2171 406, 315, 13, 426, 90, 21, 45, 425, 46, 83,
    2172 84, 593, 93, 142, 142, 415, 88, -203, 415, 22,
    2173 131, 108, 89, 24, 143, 230, 421, 132, 26, 468,
    2174 161, 442, 316, 415, 442, -67, 1, 2, 269, 3,
    2175 4, 5, 420, 415, 270, 134, 488, 6, 7, 108,
    2176 503, 110, 479, 111, 415, 134, 233, 117, 118, 333,
    2177 149, 416, 11, 110, 85, 111, 86, 544, 8, 332,
    2178 149, 9, 550, 551, 27, 10, 49, 50, 51, 25,
    2179 591, 52, 227, 228, 419, 110, 231, 111, 500, 1,
    2180 234, 474, 3, 2, 5, 372, 4, 372, 372, 110,
    2181 372, 111, 397, 385, 435, 43, 552, 398, 399, 400,
    2182 553, 165, 401, 110, 267, 111, 402, 403, 239, 240,
    2183 241, 242, 567, 377, 587, 588, 589, 590, 585, 59,
    2184 105, 552, 28, 372, 498, 556, 57, 302, 303, 267,
    2185 305, 372, 372, 94, 317, 318, 599, 600, 264, 380,
    2186 110, 58, 111, 306, 267, 267, 267, 267, 267, 313,
    2187 314, 267, 114, 525, 115, 526, 395, 382, 110, 134,
    2188 111, 447, 61, 449, 450, 451, 398, 399, 400, 149,
    2189 110, 401, 111, 543, 90, 402, 403, -55, -55, -55,
    2190 -55, 37, 38, 39, 97, 29, 30, 31, 32, 33,
    2191 34, 35, -139, 36, -139, 372, 372, 372, 145, 146,
    2192 237, 238, 557, 372, 63, 64, 98, 149, 516, 319,
    2193 320, 112, 113, 372, 372, 99, 1, 2, 378, 3,
    2194 4, 5, 261, 101, 102, 103, 321, 322, 86, 323,
    2195 324, 138, 325, 326, 327, 379, 262, 139, 162, 223,
    2196 225, 226, 410, 411, 412, 413, 414, 229, -56, 232,
    2197 149, 396, 267, 235, -57, 422, 423, 424, -60, 372,
    2198 -59, 372, 527, -58, 372, 530, 531, 532, 243, 265,
    2199 372, 372, 271, 334, 341, 342, 343, 1, 344, 345,
    2200 3, 354, 5, 418, 576, 353, 355, 578, 37, 38,
    2201 39, 356, 433, 430, 357, 398, 399, 400, 372, 372,
    2202 401, 372, 372, 359, 402, 403, 386, 372, 387, 459,
    2203 460, 394, 388, 389, 390, 391, 466, 372, 407, 408,
    2204 409, 267, 448, 267, 267, 267, 436, 437, 454, 120,
    2205 121, 122, 123, 124, 125, 446, 452, 374, 375, 568,
    2206 376, 458, 471, 453, 457, 63, 64, 372, 106, 66,
    2207 67, 68, 69, 70, 71, 72, 462, 1, 2, 586,
    2208 3, 4, 5, 504, 505, 506, 507, 463, 372, 372,
    2209 509, 510, 464, 384, 465, 319, 320, 467, 469, 470,
    2210 472, 392, 393, 473, 372, 476, 478, 73, 477, 480,
    2211 481, 499, 321, 322, 482, 323, 324, 483, 325, 326,
    2212 327, 484, 535, 536, 486, 511, 488, 372, 372, 489,
    2213 515, 491, 442, 492, 372, 372, 521, 493, 496, 497,
    2214 501, 372, 267, 502, 372, 267, 267, 267, 517, 538,
    2215 521, 529, 537, 508, 539, 512, 540, 541, 560, 542,
    2216 561, 562, 547, 548, 549, 438, 439, 440, 554, 558,
    2217 559, 564, 566, 445, 577, 579, 360, 361, 580, 581,
    2218 63, 64, 362, 455, 456, 582, -18, -19, 592, 596,
    2219 598, 597, 1, 2, 603, 3, 4, 5, 363, 364,
    2220 365, 604, 606, 215, 216, 217, 575, 339, 563, 74,
    2221 330, 340, 75, 366, 367, 76, 129, 77, 107, 545,
    2222 144, 141, 338, 44, 512, 128, 96, 533, 461, 485,
    2223 368, 487, 0, 0, 490, 0, 0, 0, 0, 0,
    2224 494, 495, 0, 0, 0, 0, 176, 177, 178, 179,
    2173 11, 81, 272, 261, 161, 271, 163, 104, 13, 271,
    2174 90, 383, 273, 164, 24, 335, 304, 11, 93, 25,
    2175 350, 352, 441, 443, 26, 13, 405, 406, 586, 43,
    2176 233, 308, 309, 310, 311, 312, 425, 475, 315, 236,
    2177 21, 142, 142, -55, -55, -55, -55, 415, 596, 262,
    2178 415, 108, 143, 230, 22, 426, 420, 110, 316, 111,
    2179 45, 421, 46, 332, 442, 442, 237, 238, 29, 30,
    2180 31, 32, 33, 34, 35, 134, 36, 415, 415, 108,
    2181 28, 319, 320, 269, 131, 134, 415, 479, 468, 270,
    2182 149, 132, 11, 416, 117, 118, 83, 84, 321, 322,
    2183 149, 323, 324, 88, 325, 326, 327, 488, 85, 89,
    2184 86, 503, 227, 228, 419, 425, 231, 110, 474, 111,
    2185 234, 110, 544, 111, 27, 63, 64, 550, 551, 333,
    2186 49, 50, 51, 2, 435, 52, 4, 1, 2, 397,
    2187 3, 4, 5, 1, 267, 165, 3, 593, 5, 61,
    2188 94, 567, 114, 377, 115, 587, 372, 97, 372, 372,
    2189 -141, 372, -141, 105, 498, 317, 318, 302, 303, 267,
    2190 305, 264, 37, 38, 39, 239, 240, 241, 242, 589,
    2191 590, 591, 592, 306, 267, 267, 267, 267, 267, 313,
    2192 314, 267, 57, 525, 372, 526, 395, 552, 58, 134,
    2193 59, 553, 372, 372, 602, 603, 145, 146, 447, 149,
    2194 449, 450, 451, 112, 113, 398, 399, 400, 374, 375,
    2195 401, 376, 90, 101, 402, 403, 410, 411, 412, 413,
    2196 414, 120, 121, 122, 123, 124, 125, 98, 99, 422,
    2197 423, 424, 557, 398, 399, 400, 552, 149, 401, 102,
    2198 556, 103, 402, 403, 384, 110, 86, 111, 378, 385,
    2199 516, 261, 392, 393, 138, 162, 372, 372, 372, 225,
    2200 139, 398, 399, 400, 372, 379, 401, 37, 38, 39,
    2201 402, 403, 223, 226, 372, 372, 380, 110, 232, 111,
    2202 149, 396, 267, 459, 460, 235, 382, 110, 1, 111,
    2203 466, 3, 110, 5, 111, 500, 229, 262, 110, 527,
    2204 111, 543, 530, 531, 532, -56, -57, -60, -59, -58,
    2205 243, 265, 334, 418, 353, 271, 438, 439, 440, 341,
    2206 372, 342, 372, 430, 445, 372, 576, 343, 344, 578,
    2207 345, 372, 372, 354, 455, 456, 355, 504, 505, 506,
    2208 507, 356, 357, 359, 509, 510, 386, 387, 388, 389,
    2209 390, 267, 448, 267, 267, 267, 394, 391, 454, 372,
    2210 372, 407, 372, 372, 408, 409, 433, 436, 372, 568,
    2211 437, 458, 452, 446, 453, 457, 535, 536, 372, 462,
    2212 485, 463, 487, 464, 465, 490, 319, 320, 469, 588,
    2213 470, 494, 495, 274, 275, 276, 277, 278, 279, 280,
    2214 281, 282, 283, 321, 322, 467, 323, 324, 372, 325,
    2215 326, 327, 560, 471, 561, 562, 472, 473, 476, 518,
    2216 519, 499, 523, 524, 477, 478, 480, 481, 528, 372,
    2217 372, 482, 483, 484, 486, 511, 488, 489, 534, 491,
    2218 515, 492, 442, 493, 508, 372, 521, 496, 547, 538,
    2219 564, 566, 267, 582, 594, 267, 267, 267, 497, 501,
    2220 521, 502, 517, 529, 537, 512, 539, 540, 555, 541,
    2221 372, 372, 548, 542, -18, 549, 583, 599, 372, 372,
    2222 558, 554, 559, 579, 577, 372, 580, 581, 372, 572,
    2223 573, -19, 595, 600, 601, 606, 607, 609, 360, 361,
    2224 215, 216, 63, 64, 362, 585, 217, 339, 129, 340,
    2225 563, 545, 144, 330, 1, 2, 575, 3, 4, 5,
    2226 363, 364, 365, 285, 286, 141, 44, 128, 96, 0,
    2227 597, 598, 533, 461, 512, 366, 367, 338, 604, 605,
    2228 0, 0, 0, 0, 0, 608, 0, 0, 610, 0,
    2229 63, 64, 368, 106, 66, 67, 68, 69, 70, 71,
    2230 72, 0, 1, 2, 0, 3, 4, 5, 176, 177,
    2231 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
    2232 188, 189, 190, 247, 248, 0, 0, 0, 0, 0,
    2233 0, 0, 73, 287, 288, 289, 290, 291, 292, 293,
    2234 294, 295, 296, 297, 298, 299, 300, 0, 0, 0,
    2235 249, 197, 570, 571, 200, 201, 202, 203, 204, 205,
    2236 206, 207, 208, 0, 250, 0, 251, 252, 253, 321,
    2237 322, 0, 323, 324, 0, 325, 326, 327, 360, 361,
    2238 0, 0, 63, 64, 362, 0, 0, 0, -205, 0,
    2239 0, 0, 0, 369, 1, 2, 0, 3, 4, 5,
    2240 363, 364, 365, 0, 0, 0, -67, 1, 2, 0,
    2241 3, 4, 5, 0, 0, 366, 367, 0, 6, 7,
    2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2243 0, 0, 368, 0, 0, 74, 0, 0, 75, 8,
    2244 0, 76, 9, 77, 107, 0, 10, 0, 176, 177,
    2245 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
    2246 188, 189, 190, 247, 248, 0, 0, 0, 0, 0,
    2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2249 249, 197, 198, 199, 200, 201, 202, 203, 204, 205,
    2250 206, 207, 208, 0, 250, 0, 251, 252, 253, 0,
    2251 0, 0, 0, 0, 0, 360, 361, 0, 0, 63,
    2252 64, 362, 0, 0, 0, 0, 110, 0, 111, 0,
    2253 0, 1, 2, 369, 3, 4, 5, 363, 364, 365,
    2254 0, 0, 63, 64, 0, 0, 0, 0, 0, 0,
    2255 0, 0, 366, 367, 1, 2, 0, 3, 4, 5,
    2256 244, 0, 0, 0, 0, 0, 0, 0, 0, 368,
    2257 0, 0, 0, 0, 0, 245, 246, 0, 0, 0,
    2258 0, 0, 0, 0, 0, 176, 177, 178, 179, 180,
    2259 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
    2260 247, 248, 0, 0, 0, 0, 0, 0, 176, 177,
    2261 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
    2262 188, 189, 190, 247, 248, 0, 0, 249, 197, 198,
    2263 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
    2264 0, 250, 0, 251, 252, 253, 0, 0, 0, 0,
    2265 249, 197, 198, 199, 200, 201, 202, 203, 204, 205,
    2266 206, 207, 208, 0, 250, 0, 251, 252, 253, 0,
    2267 369, 0, 0, 0, 0, 0, 360, 361, 0, 0,
    2268 0, 0, 362, 0, 0, 0, 110, 0, 111, 0,
    2269 254, 0, 0, 255, 0, 256, 0, 257, 363, 364,
    2270 365, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2271 0, 0, 0, 366, 367, 0, 0, 0, 0, 0,
    2272 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
    2273 368, 106, 66, 67, 68, 69, 70, 71, 72, 0,
    2274 1, 2, 0, 3, 4, 5, 176, 177, 178, 179,
    22252275 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
    2226 190, 247, 248, 0, 0, 0, 0, 0, 518, 519,
    2227 0, 523, 524, 0, 0, 0, 0, 528, 0, 0,
    2228 0, 0, 0, 0, 0, 0, 0, 534, 249, 197,
    2229 570, 571, 200, 201, 202, 203, 204, 205, 206, 207,
    2230 208, 0, 250, 0, 251, 252, 253, 321, 322, 0,
    2231 323, 324, 0, 325, 326, 327, 0, 555, 0, 0,
    2232 0, 0, 0, 0, 0, 0, 0, 360, 361, 0,
    2233 369, 63, 64, 362, 0, 0, 0, 0, 572, 573,
    2234 0, 0, 0, 1, 2, 0, 3, 4, 5, 363,
    2235 364, 365, 285, 286, 583, 0, 0, 0, 0, 0,
    2236 0, 0, 0, 0, 366, 367, 274, 275, 276, 277,
    2237 278, 279, 280, 281, 282, 283, 0, 594, 595, 0,
    2238 0, 368, 0, 0, 601, 602, 0, 0, 0, 0,
    2239 0, 605, 0, 0, 607, 0, 0, 176, 177, 178,
    2240 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
    2241 189, 190, 247, 248, 0, 0, 0, 0, 0, 0,
    2242 0, 0, 287, 288, 289, 290, 291, 292, 293, 294,
    2243 295, 296, 297, 298, 299, 300, 0, 0, 0, 249,
    2244 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
    2245 207, 208, 0, 250, 0, 251, 252, 253, 0, 0,
    2246 0, 0, 0, 360, 361, 0, 0, 63, 64, 362,
    2247 0, 0, 0, 0, 110, 0, 111, 0, 0, 1,
    2248 2, 369, 3, 4, 5, 363, 364, 365, 0, 0,
    2249 63, 64, 0, 0, 0, 0, 0, 0, 0, 0,
    2250 366, 367, 1, 2, 0, 3, 4, 5, 244, 0,
    2251 0, 0, 0, 0, 0, 0, 0, 368, 0, 0,
    2252 0, 0, 0, 245, 246, 0, 0, 0, 0, 0,
    2253 0, 0, 0, 176, 177, 178, 179, 180, 181, 182,
    2254 183, 184, 185, 186, 187, 188, 189, 190, 247, 248,
    2255 0, 0, 0, 0, 0, 0, 176, 177, 178, 179,
    2256 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
    2257 190, 247, 248, 0, 0, 249, 197, 198, 199, 200,
    2258 201, 202, 203, 204, 205, 206, 207, 208, 0, 250,
    2259 0, 251, 252, 253, 0, 0, 0, 0, 249, 197,
    2276 190, 247, 248, 0, 0, 0, 0, 0, 63, 64,
    2277 73, 106, 152, 153, 154, 155, 156, 157, 72, 0,
    2278 1, 2, 0, 3, 4, 5, 0, 0, 249, 197,
    22602279 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
    2261 208, 0, 250, 0, 251, 252, 253, 369, 0, 0,
    2262 0, 0, 0, 360, 361, 0, 0, 0, 0, 362,
    2263 0, 0, 0, 110, 0, 111, 0, 254, 0, 0,
    2264 255, 0, 256, 0, 257, 363, 364, 365, 0, 0,
    2280 208, 0, 250, 0, 251, 252, 253, 0, 63, 64,
    2281 73, 106, 152, 153, 154, 155, 156, 157, 72, 0,
    2282 1, 2, 0, 3, 4, 5, 0, 0, 0, 63,
    2283 64, 369, 106, 66, 67, 68, 69, 70, 71, 72,
    2284 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
    2285 73, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2286 0, 133, 0, 0, 0, 0, 0, 0, 0, 0,
    2287 0, 73, 0, 74, 0, 0, 75, 0, 0, 76,
    2288 0, 77, 140, 63, 64, 0, 147, 66, 67, 68,
    2289 69, 70, 71, 72, 0, 1, 2, 0, 3, 4,
    2290 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2291 0, 0, 0, 74, 0, 0, 75, 0, 0, 76,
    2292 0, 77, 351, 63, 64, 73, 106, 66, 67, 68,
    2293 69, 70, 71, 72, 0, 1, 2, 0, 3, 4,
    2294 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2295 0, 0, 0, 74, 0, 329, 75, 0, 0, 76,
    2296 0, 77, 417, 0, 0, 73, 0, 0, 0, 0,
    2297 0, 0, 0, 0, 74, 0, 0, 75, 0, 0,
    2298 76, 0, 77, 63, 64, 0, 106, 152, 153, 154,
    2299 155, 156, 157, 72, 0, 1, 2, 148, 3, 4,
    2300 5, 63, 64, 0, 106, 66, 67, 68, 69, 70,
    2301 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
    2302 0, 0, 0, 0, 0, 73, 0, 0, 74, 0,
    2303 0, 75, 0, 429, 76, 0, 77, 0, 0, 0,
    2304 0, 63, 64, 73, 106, 66, 67, 68, 69, 70,
    2305 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
    2306 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
    2307 0, 75, 0, 514, 76, 0, 77, 0, 0, 0,
    2308 0, 63, 64, 73, 65, 66, 67, 68, 69, 70,
    2309 71, 72, 0, 1, 2, 0, 3, 4, 5, 63,
    2310 64, 0, 106, 152, 153, 154, 155, 156, 157, 72,
    2311 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
    2312 0, 0, 0, 73, 0, 0, 0, 0, 74, 0,
    2313 0, 75, 0, 346, 76, 0, 77, 0, 0, 0,
    2314 0, 73, 0, 0, 0, 0, 74, 0, 0, 75,
    2315 0, 0, 76, 0, 77, 63, 64, 0, 147, 66,
    2316 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
    2317 3, 4, 5, 0, 0, 0, 0, 0, 0, 0,
    2318 0, 0, 0, 0, 0, 0, 74, 0, 0, 75,
    2319 0, 0, 76, 0, 77, 63, 64, 73, 106, 66,
    2320 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
    2321 3, 4, 5, 0, 0, 0, 0, 0, 0, 0,
    2322 0, 0, 0, 0, 0, 0, 74, 0, 0, 75,
    2323 0, 0, 76, 0, 77, 0, 0, 73, 0, 0,
    2324 0, 0, 0, 0, 74, 0, 0, 75, 0, 0,
    2325 76, 0, 77, 63, 64, 0, 266, 66, 67, 68,
    2326 69, 70, 71, 72, 0, 1, 2, 0, 3, 4,
    2327 5, 63, 64, 0, 106, 152, 153, 154, 155, 156,
    2328 157, 72, 0, 1, 2, 0, 3, 4, 5, 0,
    2329 0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
    2330 74, 0, 0, 75, 0, 0, 76, 0, 77, 0,
    2331 0, 63, 64, 73, 106, 66, 67, 68, 69, 70,
    2332 71, 520, 0, 1, 2, 0, 3, 4, 5, 0,
    22652333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2266 366, 367, 0, 0, 0, 0, 0, 0, 0, 0,
    2267 0, 0, 0, 0, 0, 63, 64, 368, 106, 66,
    2268 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
    2269 3, 4, 5, 176, 177, 178, 179, 180, 181, 182,
    2270 183, 184, 185, 186, 187, 188, 189, 190, 247, 248,
    2271 0, 0, 0, 0, 0, 63, 64, 73, 106, 152,
    2272 153, 154, 155, 156, 157, 72, 0, 1, 2, 0,
    2273 3, 4, 5, 0, 0, 249, 197, 198, 199, 200,
    2274 201, 202, 203, 204, 205, 206, 207, 208, 0, 250,
    2275 0, 251, 252, 253, 0, 63, 64, 73, 106, 152,
    2276 153, 154, 155, 156, 157, 72, 0, 1, 2, 0,
    2277 3, 4, 5, 0, 0, 63, 64, 369, 106, 66,
    2278 67, 68, 69, 70, 71, 72, 0, 1, 2, 0,
    2279 3, 4, 5, 0, 0, 0, 0, 73, 0, 0,
    2280 0, 0, 0, 0, 0, 0, 0, 133, 0, 0,
    2281 0, 0, 0, 0, 0, 0, 0, 73, 0, 74,
    2282 0, 0, 75, 0, 0, 76, 0, 77, 140, 63,
    2283 64, 0, 147, 66, 67, 68, 69, 70, 71, 72,
    2284 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
    2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
    2286 0, 0, 75, 0, 0, 76, 0, 77, 351, 63,
    2287 64, 73, 106, 66, 67, 68, 69, 70, 71, 72,
    2288 0, 1, 2, 0, 3, 4, 5, 0, 0, 0,
    2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
    2290 0, 329, 75, 0, 0, 76, 0, 77, 417, 0,
    2291 0, 73, 0, 0, 0, 0, 0, 0, 0, 74,
    2292 0, 0, 75, 0, 0, 76, 0, 77, 0, 63,
    2293 64, 0, 106, 152, 153, 154, 155, 156, 157, 72,
    2294 0, 1, 2, 148, 3, 4, 5, 0, 63, 64,
    2295 0, 106, 66, 67, 68, 69, 70, 71, 72, 0,
    2296 1, 2, 0, 3, 4, 5, 0, 0, 0, 0,
    2297 0, 73, 0, 74, 0, 0, 75, 0, 0, 76,
    2298 429, 77, 0, 0, 0, 0, 0, 0, 63, 64,
    2299 73, 106, 66, 67, 68, 69, 70, 71, 72, 0,
    2300 1, 2, 0, 3, 4, 5, 0, 0, 0, 0,
    2301 0, 0, 0, 74, 0, 0, 75, 0, 0, 76,
    2302 514, 77, 0, 0, 0, 0, 0, 0, 63, 64,
    2303 73, 65, 66, 67, 68, 69, 70, 71, 72, 0,
    2304 1, 2, 0, 3, 4, 5, 63, 64, 0, 106,
    2305 152, 153, 154, 155, 156, 157, 72, 0, 1, 2,
    2306 0, 3, 4, 5, 0, 0, 0, 0, 0, 0,
    2307 73, 0, 0, 74, 0, 0, 75, 0, 346, 76,
    2308 0, 77, 0, 0, 0, 0, 0, 0, 73, 0,
    2309 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
    2310 77, 63, 64, 0, 147, 66, 67, 68, 69, 70,
    2311 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
    2334 74, 0, 0, 75, 0, 0, 76, 0, 77, 0,
    2335 0, 63, 64, 73, 106, 66, 67, 68, 69, 70,
    2336 71, 574, 0, 1, 2, 0, 3, 4, 5, 0,
    23122337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2313 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
    2314 77, 63, 64, 73, 106, 66, 67, 68, 69, 70,
    2315 71, 72, 0, 1, 2, 0, 3, 4, 5, 0,
    23162338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2317 0, 0, 74, 0, 0, 75, 0, 0, 76, 0,
    2318 77, 0, 0, 73, 0, 0, 0, 0, 0, 0,
    2319 74, 0, 0, 75, 0, 0, 76, 0, 77, 63,
    2320 64, 0, 266, 66, 67, 68, 69, 70, 71, 72,
    2321 0, 1, 2, 0, 3, 4, 5, 63, 64, 0,
    2322 106, 152, 153, 154, 155, 156, 157, 72, 0, 1,
    2323 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
    2324 0, 73, 0, 0, 0, 74, 0, 0, 75, 0,
    2325 0, 76, 0, 77, 0, 0, 0, 63, 64, 73,
    2326 106, 66, 67, 68, 69, 70, 71, 520, 0, 1,
    2327 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
    2328 0, 0, 0, 0, 0, 74, 0, 0, 75, 0,
    2329 0, 76, 0, 77, 0, 0, 0, 63, 64, 73,
    2330 106, 66, 67, 68, 69, 70, 71, 574, 0, 1,
    2331 2, 0, 3, 4, 5, 0, 0, 0, 0, 0,
    2339 0, 0, 0, 73, 167, 0, 0, 0, 74, 0,
    2340 0, 75, 0, 0, 76, 0, 77, 0, 0, 0,
    2341 0, 0, 0, 168, 169, 0, 74, 0, 0, 75,
    2342 0, 0, 76, 0, 349, 170, 171, 172, 173, 174,
    2343 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
    2344 185, 186, 187, 188, 189, 190, 191, 192, 0, 0,
    2345 0, 0, 0, 0, 0, 0, 74, 0, 0, 75,
    2346 0, 0, 76, 0, 77, 0, 0, 0, 193, 194,
    2347 195, 0, 0, 196, 197, 198, 199, 200, 201, 202,
    2348 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
    2349 213, 214, -204, 0, 0, 0, 74, 0, 0, 75,
    2350 0, 0, 76, 0, 77, 0, 0, 0, 0, 0,
    2351 -67, 1, 2, 0, 3, 4, 5, 0, 0, 0,
    2352 0, 0, 6, 7, 0, 0, 0, 0, 0, 0,
    23322353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
    2334 167, 0, 0, 74, 0, 0, 75, 0, 0, 76,
    2335 0, 77, 0, 0, 0, 0, 0, 0, 0, 168,
    2336 169, 74, 0, 0, 75, 0, 0, 76, 0, 349,
    2337 0, 170, 171, 172, 173, 174, 175, 176, 177, 178,
    2338 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
    2339 189, 190, 191, 192, 0, 0, 0, 0, 0, 0,
    2340 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
    2341 0, 0, 0, 0, 193, 194, 195, 0, 0, 196,
    2342 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
    2343 207, 208, 209, 210, 211, 212, 213, 214, -202, 0,
    2344 0, 74, 0, 0, 75, 0, 0, 76, 0, 77,
    2345 0, 0, 0, 0, 0, 0, -67, 1, 2, 0,
    2346 3, 4, 5, 0, 0, 0, 0, 0, 6, 7,
    2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
    2349 0, 0, 9, 0, 0, 0, 10
    2354 0, 0, 0, 8, 0, 0, 9, 0, 0, 0,
    2355 10
    23502356 };
    23512357
    23522358 static const yytype_int16 yycheck[] =
    23532359 {
    2354 0, 27, 172, 232, 160, 4, 126, 11, 150, 195,
    2355 28, 303, 430, 11, 34, 0, 173, 17, 160, 11,
    2356 255, 256, 11, 568, 210, 211, 212, 213, 214, 336,
    2357 337, 217, 17, 53, 21, 52, 46, 34, 48, 40,
    2358 41, 586, 29, 149, 149, 149, 47, 0, 149, 66,
    2359 149, 77, 53, 148, 160, 160, 160, 156, 148, 160,
    2360 119, 53, 219, 149, 53, 18, 19, 20, 11, 22,
    2361 23, 24, 158, 149, 17, 101, 149, 30, 31, 105,
    2362 153, 150, 158, 152, 149, 111, 145, 32, 33, 158,
    2363 116, 156, 92, 150, 35, 152, 37, 515, 51, 156,
    2364 126, 54, 520, 521, 18, 58, 42, 43, 44, 57,
    2365 38, 47, 138, 139, 349, 150, 142, 152, 153, 19,
    2366 146, 428, 22, 20, 24, 267, 23, 269, 270, 150,
    2367 272, 152, 318, 154, 369, 0, 149, 134, 135, 136,
    2368 153, 159, 139, 150, 170, 152, 143, 144, 3, 4,
    2369 5, 6, 156, 273, 572, 573, 574, 575, 156, 154,
    2370 159, 149, 148, 305, 456, 153, 148, 193, 194, 195,
    2371 196, 313, 314, 160, 113, 114, 594, 595, 163, 149,
    2372 150, 148, 152, 209, 210, 211, 212, 213, 214, 215,
    2373 216, 217, 42, 485, 44, 487, 316, 149, 150, 225,
    2374 152, 387, 22, 389, 390, 391, 134, 135, 136, 235,
    2375 150, 139, 152, 153, 21, 143, 144, 3, 4, 5,
    2376 6, 145, 146, 147, 22, 42, 43, 44, 45, 46,
    2377 47, 48, 150, 50, 152, 377, 378, 379, 112, 113,
    2378 26, 27, 534, 385, 7, 8, 22, 273, 477, 117,
    2379 118, 83, 84, 395, 396, 22, 19, 20, 284, 22,
    2380 23, 24, 418, 152, 4, 4, 134, 135, 37, 137,
    2381 138, 155, 140, 141, 142, 301, 418, 155, 4, 22,
    2382 149, 153, 341, 342, 343, 344, 345, 158, 9, 153,
    2383 316, 317, 318, 152, 9, 354, 355, 356, 9, 441,
    2384 9, 443, 488, 9, 446, 491, 492, 493, 9, 55,
    2385 452, 453, 11, 158, 152, 152, 152, 19, 152, 152,
    2386 22, 152, 24, 349, 553, 22, 152, 556, 145, 146,
    2387 147, 152, 59, 359, 149, 134, 135, 136, 480, 481,
    2388 139, 483, 484, 152, 143, 144, 149, 489, 149, 408,
    2389 409, 38, 149, 149, 149, 149, 415, 499, 38, 152,
    2390 152, 387, 388, 389, 390, 391, 149, 149, 394, 60,
    2391 61, 62, 63, 64, 65, 154, 149, 269, 270, 549,
    2392 272, 407, 38, 149, 149, 7, 8, 529, 10, 11,
    2393 12, 13, 14, 15, 16, 17, 149, 19, 20, 569,
    2394 22, 23, 24, 462, 463, 464, 465, 149, 550, 551,
    2395 469, 470, 149, 305, 149, 117, 118, 158, 149, 149,
    2396 22, 313, 314, 4, 566, 149, 22, 49, 153, 17,
    2397 17, 457, 134, 135, 152, 137, 138, 149, 140, 141,
    2398 142, 149, 501, 502, 4, 471, 149, 589, 590, 149,
    2399 476, 149, 53, 149, 596, 597, 482, 149, 152, 149,
    2400 149, 603, 488, 149, 606, 491, 492, 493, 149, 153,
    2401 496, 149, 149, 158, 149, 475, 149, 153, 537, 153,
    2402 539, 540, 22, 149, 154, 377, 378, 379, 156, 153,
    2403 153, 53, 17, 385, 156, 153, 3, 4, 153, 153,
    2404 7, 8, 9, 395, 396, 4, 152, 152, 149, 17,
    2405 149, 17, 19, 20, 17, 22, 23, 24, 25, 26,
    2406 27, 71, 17, 129, 129, 129, 552, 247, 544, 151,
    2407 225, 248, 154, 40, 41, 157, 92, 159, 160, 516,
    2408 111, 105, 235, 17, 544, 89, 56, 496, 410, 441,
    2409 57, 443, -1, -1, 446, -1, -1, -1, -1, -1,
    2410 452, 453, -1, -1, -1, -1, 73, 74, 75, 76,
    2360 0, 27, 172, 160, 119, 11, 126, 4, 0, 11,
    2361 21, 303, 173, 28, 149, 232, 195, 17, 29, 57,
    2362 255, 256, 11, 11, 149, 17, 336, 337, 568, 0,
    2363 145, 210, 211, 212, 213, 214, 34, 430, 217, 150,
    2364 52, 150, 150, 3, 4, 5, 6, 150, 588, 160,
    2365 150, 77, 161, 161, 66, 53, 159, 151, 219, 153,
    2366 46, 161, 48, 157, 53, 53, 26, 27, 42, 43,
    2367 44, 45, 46, 47, 48, 101, 50, 150, 150, 105,
    2368 149, 117, 118, 11, 150, 111, 150, 159, 161, 17,
    2369 116, 157, 92, 157, 32, 33, 40, 41, 134, 135,
    2370 126, 137, 138, 47, 140, 141, 142, 150, 35, 53,
    2371 37, 154, 138, 139, 349, 34, 142, 151, 428, 153,
    2372 146, 151, 515, 153, 18, 7, 8, 520, 521, 159,
    2373 42, 43, 44, 20, 369, 47, 23, 19, 20, 318,
    2374 22, 23, 24, 19, 170, 160, 22, 38, 24, 22,
    2375 161, 157, 42, 273, 44, 157, 267, 22, 269, 270,
    2376 151, 272, 153, 160, 456, 113, 114, 193, 194, 195,
    2377 196, 163, 146, 147, 148, 3, 4, 5, 6, 572,
    2378 573, 574, 575, 209, 210, 211, 212, 213, 214, 215,
    2379 216, 217, 149, 485, 305, 487, 316, 150, 149, 225,
    2380 155, 154, 313, 314, 597, 598, 112, 113, 387, 235,
    2381 389, 390, 391, 83, 84, 134, 135, 136, 269, 270,
    2382 139, 272, 21, 153, 143, 144, 341, 342, 343, 344,
    2383 345, 60, 61, 62, 63, 64, 65, 22, 22, 354,
    2384 355, 356, 534, 134, 135, 136, 150, 273, 139, 4,
    2385 154, 4, 143, 144, 305, 151, 37, 153, 284, 155,
    2386 477, 418, 313, 314, 156, 4, 377, 378, 379, 150,
    2387 156, 134, 135, 136, 385, 301, 139, 146, 147, 148,
    2388 143, 144, 22, 154, 395, 396, 150, 151, 154, 153,
    2389 316, 317, 318, 408, 409, 153, 150, 151, 19, 153,
    2390 415, 22, 151, 24, 153, 154, 159, 418, 151, 488,
    2391 153, 154, 491, 492, 493, 9, 9, 9, 9, 9,
    2392 9, 55, 159, 349, 22, 11, 377, 378, 379, 153,
    2393 441, 153, 443, 359, 385, 446, 553, 153, 153, 556,
    2394 153, 452, 453, 153, 395, 396, 153, 462, 463, 464,
    2395 465, 153, 150, 153, 469, 470, 150, 150, 150, 150,
    2396 150, 387, 388, 389, 390, 391, 38, 150, 394, 480,
    2397 481, 38, 483, 484, 153, 153, 59, 150, 489, 549,
    2398 150, 407, 150, 155, 150, 150, 501, 502, 499, 150,
    2399 441, 150, 443, 150, 150, 446, 117, 118, 150, 569,
    2400 150, 452, 453, 90, 91, 92, 93, 94, 95, 96,
    2401 97, 98, 99, 134, 135, 159, 137, 138, 529, 140,
    2402 141, 142, 537, 38, 539, 540, 22, 4, 150, 480,
    2403 481, 457, 483, 484, 154, 22, 17, 17, 489, 550,
    2404 551, 153, 150, 150, 4, 471, 150, 150, 499, 150,
    2405 476, 150, 53, 150, 159, 566, 482, 153, 22, 154,
    2406 53, 17, 488, 4, 22, 491, 492, 493, 150, 150,
    2407 496, 150, 150, 150, 150, 475, 150, 150, 529, 154,
    2408 591, 592, 150, 154, 153, 155, 145, 17, 599, 600,
    2409 154, 157, 154, 154, 157, 606, 154, 154, 609, 550,
    2410 551, 153, 150, 17, 150, 17, 71, 17, 3, 4,
    2411 129, 129, 7, 8, 9, 566, 129, 247, 92, 248,
    2412 544, 516, 111, 225, 19, 20, 552, 22, 23, 24,
    2413 25, 26, 27, 26, 27, 105, 17, 89, 56, -1,
    2414 591, 592, 496, 410, 544, 40, 41, 235, 599, 600,
    2415 -1, -1, -1, -1, -1, 606, -1, -1, 609, -1,
    2416 7, 8, 57, 10, 11, 12, 13, 14, 15, 16,
    2417 17, -1, 19, 20, -1, 22, 23, 24, 73, 74,
    2418 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
    2419 85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
    2420 -1, -1, 49, 96, 97, 98, 99, 100, 101, 102,
    2421 103, 104, 105, 106, 107, 108, 109, -1, -1, -1,
    2422 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
    2423 125, 126, 127, -1, 129, -1, 131, 132, 133, 134,
    2424 135, -1, 137, 138, -1, 140, 141, 142, 3, 4,
    2425 -1, -1, 7, 8, 9, -1, -1, -1, 0, -1,
    2426 -1, -1, -1, 158, 19, 20, -1, 22, 23, 24,
    2427 25, 26, 27, -1, -1, -1, 18, 19, 20, -1,
    2428 22, 23, 24, -1, -1, 40, 41, -1, 30, 31,
    2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2430 -1, -1, 57, -1, -1, 152, -1, -1, 155, 51,
    2431 -1, 158, 54, 160, 161, -1, 58, -1, 73, 74,
    2432 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
    2433 85, 86, 87, 88, 89, -1, -1, -1, -1, -1,
    2434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2436 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
    2437 125, 126, 127, -1, 129, -1, 131, 132, 133, -1,
    2438 -1, -1, -1, -1, -1, 3, 4, -1, -1, 7,
    2439 8, 9, -1, -1, -1, -1, 151, -1, 153, -1,
    2440 -1, 19, 20, 158, 22, 23, 24, 25, 26, 27,
    2441 -1, -1, 7, 8, -1, -1, -1, -1, -1, -1,
    2442 -1, -1, 40, 41, 19, 20, -1, 22, 23, 24,
    2443 25, -1, -1, -1, -1, -1, -1, -1, -1, 57,
    2444 -1, -1, -1, -1, -1, 40, 41, -1, -1, -1,
    2445 -1, -1, -1, -1, -1, 73, 74, 75, 76, 77,
    2446 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
    2447 88, 89, -1, -1, -1, -1, -1, -1, 73, 74,
    2448 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
    2449 85, 86, 87, 88, 89, -1, -1, 115, 116, 117,
    2450 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
    2451 -1, 129, -1, 131, 132, 133, -1, -1, -1, -1,
    2452 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
    2453 125, 126, 127, -1, 129, -1, 131, 132, 133, -1,
    2454 158, -1, -1, -1, -1, -1, 3, 4, -1, -1,
    2455 -1, -1, 9, -1, -1, -1, 151, -1, 153, -1,
    2456 155, -1, -1, 158, -1, 160, -1, 162, 25, 26,
    2457 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2458 -1, -1, -1, 40, 41, -1, -1, -1, -1, -1,
    2459 -1, -1, -1, -1, -1, -1, -1, -1, 7, 8,
    2460 57, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2461 19, 20, -1, 22, 23, 24, 73, 74, 75, 76,
    24112462 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
    2412 87, 88, 89, -1, -1, -1, -1, -1, 480, 481,
    2413 -1, 483, 484, -1, -1, -1, -1, 489, -1, -1,
    2414 -1, -1, -1, -1, -1, -1, -1, 499, 115, 116,
    2463 87, 88, 89, -1, -1, -1, -1, -1, 7, 8,
    2464 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2465 19, 20, -1, 22, 23, 24, -1, -1, 115, 116,
    24152466 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
    2416 127, -1, 129, -1, 131, 132, 133, 134, 135, -1,
    2417 137, 138, -1, 140, 141, 142, -1, 529, -1, -1,
    2418 -1, -1, -1, -1, -1, -1, -1, 3, 4, -1,
    2419 157, 7, 8, 9, -1, -1, -1, -1, 550, 551,
    2420 -1, -1, -1, 19, 20, -1, 22, 23, 24, 25,
    2421 26, 27, 26, 27, 566, -1, -1, -1, -1, -1,
    2422 -1, -1, -1, -1, 40, 41, 90, 91, 92, 93,
    2423 94, 95, 96, 97, 98, 99, -1, 589, 590, -1,
    2424 -1, 57, -1, -1, 596, 597, -1, -1, -1, -1,
    2425 -1, 603, -1, -1, 606, -1, -1, 73, 74, 75,
    2426 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
    2427 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
    2428 -1, -1, 96, 97, 98, 99, 100, 101, 102, 103,
    2429 104, 105, 106, 107, 108, 109, -1, -1, -1, 115,
    2430 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
    2431 126, 127, -1, 129, -1, 131, 132, 133, -1, -1,
    2432 -1, -1, -1, 3, 4, -1, -1, 7, 8, 9,
    2433 -1, -1, -1, -1, 150, -1, 152, -1, -1, 19,
    2434 20, 157, 22, 23, 24, 25, 26, 27, -1, -1,
    2435 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
    2436 40, 41, 19, 20, -1, 22, 23, 24, 25, -1,
    2437 -1, -1, -1, -1, -1, -1, -1, 57, -1, -1,
    2438 -1, -1, -1, 40, 41, -1, -1, -1, -1, -1,
    2439 -1, -1, -1, 73, 74, 75, 76, 77, 78, 79,
    2440 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
    2441 -1, -1, -1, -1, -1, -1, 73, 74, 75, 76,
    2442 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
    2443 87, 88, 89, -1, -1, 115, 116, 117, 118, 119,
    2444 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
    2445 -1, 131, 132, 133, -1, -1, -1, -1, 115, 116,
    2446 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
    2447 127, -1, 129, -1, 131, 132, 133, 157, -1, -1,
    2448 -1, -1, -1, 3, 4, -1, -1, -1, -1, 9,
    2449 -1, -1, -1, 150, -1, 152, -1, 154, -1, -1,
    2450 157, -1, 159, -1, 161, 25, 26, 27, -1, -1,
    2451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2452 40, 41, -1, -1, -1, -1, -1, -1, -1, -1,
    2453 -1, -1, -1, -1, -1, 7, 8, 57, 10, 11,
    2454 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2455 22, 23, 24, 73, 74, 75, 76, 77, 78, 79,
    2456 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
    2457 -1, -1, -1, -1, -1, 7, 8, 49, 10, 11,
    2458 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2459 22, 23, 24, -1, -1, 115, 116, 117, 118, 119,
    2460 120, 121, 122, 123, 124, 125, 126, 127, -1, 129,
    2461 -1, 131, 132, 133, -1, 7, 8, 49, 10, 11,
    2462 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2463 22, 23, 24, -1, -1, 7, 8, 157, 10, 11,
    2464 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2465 22, 23, 24, -1, -1, -1, -1, 49, -1, -1,
    2466 -1, -1, -1, -1, -1, -1, -1, 39, -1, -1,
    2467 -1, -1, -1, -1, -1, -1, -1, 49, -1, 151,
    2468 -1, -1, 154, -1, -1, 157, -1, 159, 160, 7,
    2467 127, -1, 129, -1, 131, 132, 133, -1, 7, 8,
    2468 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2469 19, 20, -1, 22, 23, 24, -1, -1, -1, 7,
    2470 8, 158, 10, 11, 12, 13, 14, 15, 16, 17,
    2471 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
    2472 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2473 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
    2474 -1, 49, -1, 152, -1, -1, 155, -1, -1, 158,
    2475 -1, 160, 161, 7, 8, -1, 10, 11, 12, 13,
    2476 14, 15, 16, 17, -1, 19, 20, -1, 22, 23,
    2477 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2478 -1, -1, -1, 152, -1, -1, 155, -1, -1, 158,
    2479 -1, 160, 161, 7, 8, 49, 10, 11, 12, 13,
    2480 14, 15, 16, 17, -1, 19, 20, -1, 22, 23,
    2481 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2482 -1, -1, -1, 152, -1, 39, 155, -1, -1, 158,
    2483 -1, 160, 161, -1, -1, 49, -1, -1, -1, -1,
    2484 -1, -1, -1, -1, 152, -1, -1, 155, -1, -1,
    2485 158, -1, 160, 7, 8, -1, 10, 11, 12, 13,
    2486 14, 15, 16, 17, -1, 19, 20, 121, 22, 23,
    2487 24, 7, 8, -1, 10, 11, 12, 13, 14, 15,
    2488 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
    2489 -1, -1, -1, -1, -1, 49, -1, -1, 152, -1,
    2490 -1, 155, -1, 39, 158, -1, 160, -1, -1, -1,
    2491 -1, 7, 8, 49, 10, 11, 12, 13, 14, 15,
    2492 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
    2493 -1, -1, -1, -1, -1, -1, -1, -1, 152, -1,
    2494 -1, 155, -1, 39, 158, -1, 160, -1, -1, -1,
    2495 -1, 7, 8, 49, 10, 11, 12, 13, 14, 15,
    2496 16, 17, -1, 19, 20, -1, 22, 23, 24, 7,
    24692497 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
    24702498 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
    2471 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
    2472 -1, -1, 154, -1, -1, 157, -1, 159, 160, 7,
    2473 8, 49, 10, 11, 12, 13, 14, 15, 16, 17,
    2474 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
    2475 -1, -1, -1, -1, -1, -1, -1, -1, -1, 151,
    2476 -1, 39, 154, -1, -1, 157, -1, 159, 160, -1,
    2477 -1, 49, -1, -1, -1, -1, -1, -1, -1, 151,
    2478 -1, -1, 154, -1, -1, 157, -1, 159, -1, 7,
    2479 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
    2480 -1, 19, 20, 121, 22, 23, 24, -1, 7, 8,
    2481 -1, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2482 19, 20, -1, 22, 23, 24, -1, -1, -1, -1,
    2483 -1, 49, -1, 151, -1, -1, 154, -1, -1, 157,
    2484 39, 159, -1, -1, -1, -1, -1, -1, 7, 8,
    2485 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2486 19, 20, -1, 22, 23, 24, -1, -1, -1, -1,
    2487 -1, -1, -1, 151, -1, -1, 154, -1, -1, 157,
    2488 39, 159, -1, -1, -1, -1, -1, -1, 7, 8,
    2489 49, 10, 11, 12, 13, 14, 15, 16, 17, -1,
    2490 19, 20, -1, 22, 23, 24, 7, 8, -1, 10,
    2491 11, 12, 13, 14, 15, 16, 17, -1, 19, 20,
    2492 -1, 22, 23, 24, -1, -1, -1, -1, -1, -1,
    2493 49, -1, -1, 151, -1, -1, 154, -1, 156, 157,
    2494 -1, 159, -1, -1, -1, -1, -1, -1, 49, -1,
    2495 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
    2496 159, 7, 8, -1, 10, 11, 12, 13, 14, 15,
    2499 -1, -1, -1, 49, -1, -1, -1, -1, 152, -1,
    2500 -1, 155, -1, 157, 158, -1, 160, -1, -1, -1,
    2501 -1, 49, -1, -1, -1, -1, 152, -1, -1, 155,
    2502 -1, -1, 158, -1, 160, 7, 8, -1, 10, 11,
    2503 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2504 22, 23, 24, -1, -1, -1, -1, -1, -1, -1,
    2505 -1, -1, -1, -1, -1, -1, 152, -1, -1, 155,
    2506 -1, -1, 158, -1, 160, 7, 8, 49, 10, 11,
    2507 12, 13, 14, 15, 16, 17, -1, 19, 20, -1,
    2508 22, 23, 24, -1, -1, -1, -1, -1, -1, -1,
    2509 -1, -1, -1, -1, -1, -1, 152, -1, -1, 155,
    2510 -1, -1, 158, -1, 160, -1, -1, 49, -1, -1,
    2511 -1, -1, -1, -1, 152, -1, -1, 155, -1, -1,
    2512 158, -1, 160, 7, 8, -1, 10, 11, 12, 13,
    2513 14, 15, 16, 17, -1, 19, 20, -1, 22, 23,
    2514 24, 7, 8, -1, 10, 11, 12, 13, 14, 15,
    2515 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
    2516 -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
    2517 152, -1, -1, 155, -1, -1, 158, -1, 160, -1,
    2518 -1, 7, 8, 49, 10, 11, 12, 13, 14, 15,
    24972519 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
    24982520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2499 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
    2500 159, 7, 8, 49, 10, 11, 12, 13, 14, 15,
    2521 152, -1, -1, 155, -1, -1, 158, -1, 160, -1,
    2522 -1, 7, 8, 49, 10, 11, 12, 13, 14, 15,
    25012523 16, 17, -1, 19, 20, -1, 22, 23, 24, -1,
    25022524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2503 -1, -1, 151, -1, -1, 154, -1, -1, 157, -1,
    2504 159, -1, -1, 49, -1, -1, -1, -1, -1, -1,
    2505 151, -1, -1, 154, -1, -1, 157, -1, 159, 7,
    2506 8, -1, 10, 11, 12, 13, 14, 15, 16, 17,
    2507 -1, 19, 20, -1, 22, 23, 24, 7, 8, -1,
    2508 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
    2509 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
    2510 -1, 49, -1, -1, -1, 151, -1, -1, 154, -1,
    2511 -1, 157, -1, 159, -1, -1, -1, 7, 8, 49,
    2512 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
    2513 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
    2514 -1, -1, -1, -1, -1, 151, -1, -1, 154, -1,
    2515 -1, 157, -1, 159, -1, -1, -1, 7, 8, 49,
    2516 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
    2517 20, -1, 22, 23, 24, -1, -1, -1, -1, -1,
    25182525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2519 -1, -1, -1, -1, -1, -1, -1, -1, -1, 49,
    2520 36, -1, -1, 151, -1, -1, 154, -1, -1, 157,
    2521 -1, 159, -1, -1, -1, -1, -1, -1, -1, 55,
    2522 56, 151, -1, -1, 154, -1, -1, 157, -1, 159,
    2523 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
    2524 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
    2525 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
    2526 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
    2527 -1, -1, -1, -1, 110, 111, 112, -1, -1, 115,
    2528 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
    2529 126, 127, 128, 129, 130, 131, 132, 133, 0, -1,
    2530 -1, 151, -1, -1, 154, -1, -1, 157, -1, 159,
    2531 -1, -1, -1, -1, -1, -1, 18, 19, 20, -1,
    2532 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
    2526 -1, -1, -1, 49, 36, -1, -1, -1, 152, -1,
    2527 -1, 155, -1, -1, 158, -1, 160, -1, -1, -1,
    2528 -1, -1, -1, 55, 56, -1, 152, -1, -1, 155,
    2529 -1, -1, 158, -1, 160, 67, 68, 69, 70, 71,
    2530 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
    2531 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
    2532 -1, -1, -1, -1, -1, -1, 152, -1, -1, 155,
    2533 -1, -1, 158, -1, 160, -1, -1, -1, 110, 111,
    2534 112, -1, -1, 115, 116, 117, 118, 119, 120, 121,
    2535 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
    2536 132, 133, 0, -1, -1, -1, 152, -1, -1, 155,
    2537 -1, -1, 158, -1, 160, -1, -1, -1, -1, -1,
    2538 18, 19, 20, -1, 22, 23, 24, -1, -1, -1,
    2539 -1, -1, 30, 31, -1, -1, -1, -1, -1, -1,
    25332540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    2534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 51,
    2535 -1, -1, 54, -1, -1, -1, 58
    2541 -1, -1, -1, 51, -1, -1, 54, -1, -1, -1,
    2542 58
    25362543 };
    25372544
    25382545 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    25402547 static const yytype_uint8 yystos[] =
    25412548 {
    25422549 0, 19, 20, 22, 23, 24, 30, 31, 51, 54,
    2543 58, 170, 172, 173, 174, 175, 206, 207, 208, 210,
    2544 209, 52, 66, 215, 148, 57, 148, 18, 148, 42,
    2545 43, 44, 45, 46, 47, 48, 50, 145, 146, 147,
    2546 176, 177, 178, 0, 208, 46, 48, 179, 225, 42,
    2547 43, 44, 47, 180, 222, 224, 231, 148, 148, 154,
    2548 216, 22, 214, 7, 8, 10, 11, 12, 13, 14,
    2549 15, 16, 17, 49, 151, 154, 157, 159, 170, 173,
    2550 193, 194, 228, 178, 178, 35, 37, 204, 178, 178,
    2551 21, 232, 233, 29, 160, 223, 232, 22, 22, 22,
    2552 217, 152, 4, 4, 4, 159, 10, 160, 194, 199,
    2553 150, 152, 204, 204, 42, 44, 181, 32, 33, 203,
    2554 60, 61, 62, 63, 64, 65, 182, 220, 220, 172,
    2555 236, 149, 156, 39, 194, 195, 197, 198, 155, 155,
    2556 160, 199, 149, 160, 198, 203, 203, 10, 121, 194,
    2557 196, 205, 11, 12, 13, 14, 15, 16, 168, 169,
    2558 194, 200, 4, 196, 28, 159, 221, 36, 55, 56,
    2550 58, 171, 173, 174, 175, 176, 208, 209, 210, 212,
    2551 211, 52, 66, 217, 149, 57, 149, 18, 149, 42,
    2552 43, 44, 45, 46, 47, 48, 50, 146, 147, 148,
    2553 177, 178, 179, 0, 210, 46, 48, 180, 227, 42,
    2554 43, 44, 47, 181, 224, 226, 233, 149, 149, 155,
    2555 218, 22, 216, 7, 8, 10, 11, 12, 13, 14,
    2556 15, 16, 17, 49, 152, 155, 158, 160, 171, 174,
    2557 195, 196, 230, 179, 179, 35, 37, 206, 179, 179,
    2558 21, 234, 235, 29, 161, 225, 234, 22, 22, 22,
    2559 219, 153, 4, 4, 4, 160, 10, 161, 196, 201,
    2560 151, 153, 206, 206, 42, 44, 182, 32, 33, 205,
    2561 60, 61, 62, 63, 64, 65, 183, 222, 222, 173,
    2562 238, 150, 157, 39, 196, 197, 199, 200, 156, 156,
    2563 161, 201, 150, 161, 200, 205, 205, 10, 121, 196,
    2564 198, 207, 11, 12, 13, 14, 15, 16, 169, 170,
    2565 196, 202, 4, 198, 28, 160, 223, 36, 55, 56,
    25592566 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
    25602567 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
    25612568 87, 88, 89, 110, 111, 112, 115, 116, 117, 118,
    25622569 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
    2563 129, 130, 131, 132, 133, 163, 164, 165, 234, 240,
    2564 241, 242, 243, 22, 184, 149, 153, 194, 194, 158,
    2565 160, 194, 153, 200, 194, 152, 228, 26, 27, 3,
    2570 129, 130, 131, 132, 133, 164, 165, 166, 236, 242,
    2571 243, 244, 245, 22, 185, 150, 154, 196, 196, 159,
    2572 161, 196, 154, 202, 196, 153, 230, 26, 27, 3,
    25662573 4, 5, 6, 9, 25, 40, 41, 88, 89, 115,
    2567 129, 131, 132, 133, 154, 157, 159, 161, 163, 164,
    2568 165, 201, 228, 211, 173, 55, 10, 194, 230, 11,
    2569 17, 11, 168, 182, 90, 91, 92, 93, 94, 95,
    2570 96, 97, 98, 99, 166, 26, 27, 96, 97, 98,
    2574 129, 131, 132, 133, 155, 158, 160, 162, 164, 165,
    2575 166, 203, 230, 213, 174, 55, 10, 196, 232, 11,
    2576 17, 11, 169, 183, 90, 91, 92, 93, 94, 95,
    2577 96, 97, 98, 99, 167, 26, 27, 96, 97, 98,
    25712578 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
    2572 109, 167, 194, 194, 230, 194, 194, 237, 230, 230,
    2573 230, 230, 230, 194, 194, 230, 182, 113, 114, 117,
    2574 118, 134, 135, 137, 138, 140, 141, 142, 183, 39,
    2575 195, 186, 156, 158, 158, 186, 212, 213, 205, 166,
    2576 167, 152, 152, 152, 152, 152, 156, 200, 202, 159,
    2577 202, 160, 202, 22, 152, 152, 152, 149, 191, 152,
    2578 3, 4, 9, 25, 26, 27, 40, 41, 57, 157,
    2579 201, 227, 228, 229, 229, 229, 229, 196, 194, 194,
    2580 149, 188, 149, 188, 229, 154, 149, 149, 149, 149,
    2581 149, 149, 229, 229, 38, 196, 194, 230, 134, 135,
    2582 136, 139, 143, 144, 185, 191, 191, 38, 152, 152,
    2583 200, 200, 200, 200, 200, 149, 156, 160, 194, 202,
    2584 158, 160, 200, 200, 200, 34, 53, 189, 192, 39,
    2585 194, 218, 219, 59, 226, 202, 149, 149, 229, 229,
    2586 229, 11, 53, 11, 239, 229, 154, 230, 194, 230,
    2587 230, 230, 149, 149, 194, 229, 229, 149, 194, 200,
    2588 200, 239, 149, 149, 149, 149, 200, 158, 160, 149,
    2589 149, 38, 22, 4, 191, 184, 149, 153, 22, 158,
    2590 17, 17, 152, 149, 149, 229, 4, 229, 149, 149,
    2591 229, 149, 149, 149, 229, 229, 152, 149, 188, 194,
    2592 153, 149, 149, 153, 200, 200, 200, 200, 158, 200,
    2593 200, 194, 170, 171, 39, 194, 186, 149, 229, 229,
    2594 17, 194, 238, 229, 229, 188, 188, 230, 229, 149,
    2595 230, 230, 230, 238, 229, 200, 200, 149, 153, 149,
    2596 149, 153, 153, 153, 184, 189, 190, 22, 149, 154,
    2597 184, 184, 149, 153, 156, 229, 153, 188, 153, 153,
    2598 200, 200, 200, 171, 53, 187, 17, 156, 168, 235,
    2599 117, 118, 229, 229, 17, 194, 186, 156, 186, 153,
    2600 153, 153, 4, 229, 227, 156, 168, 184, 184, 184,
    2601 184, 38, 149, 227, 229, 229, 17, 17, 149, 184,
    2602 184, 229, 229, 17, 71, 229, 17, 229
    2579 109, 168, 196, 196, 232, 196, 196, 239, 232, 232,
    2580 232, 232, 232, 196, 196, 232, 183, 113, 114, 117,
    2581 118, 134, 135, 137, 138, 140, 141, 142, 184, 39,
    2582 197, 187, 157, 159, 159, 187, 214, 215, 207, 167,
    2583 168, 153, 153, 153, 153, 153, 157, 202, 204, 160,
    2584 204, 161, 204, 22, 153, 153, 153, 150, 193, 153,
    2585 3, 4, 9, 25, 26, 27, 40, 41, 57, 158,
    2586 203, 229, 230, 231, 231, 231, 231, 198, 196, 196,
    2587 150, 190, 150, 190, 231, 155, 150, 150, 150, 150,
    2588 150, 150, 231, 231, 38, 198, 196, 232, 134, 135,
    2589 136, 139, 143, 144, 186, 193, 193, 38, 153, 153,
    2590 202, 202, 202, 202, 202, 150, 157, 161, 196, 204,
    2591 159, 161, 202, 202, 202, 34, 53, 191, 194, 39,
    2592 196, 220, 221, 59, 228, 204, 150, 150, 231, 231,
    2593 231, 11, 53, 11, 241, 231, 155, 232, 196, 232,
    2594 232, 232, 150, 150, 196, 231, 231, 150, 196, 202,
    2595 202, 241, 150, 150, 150, 150, 202, 159, 161, 150,
    2596 150, 38, 22, 4, 193, 185, 150, 154, 22, 159,
    2597 17, 17, 153, 150, 150, 231, 4, 231, 150, 150,
    2598 231, 150, 150, 150, 231, 231, 153, 150, 190, 196,
    2599 154, 150, 150, 154, 202, 202, 202, 202, 159, 202,
    2600 202, 196, 171, 172, 39, 196, 187, 150, 231, 231,
    2601 17, 196, 240, 231, 231, 190, 190, 232, 231, 150,
    2602 232, 232, 232, 240, 231, 202, 202, 150, 154, 150,
    2603 150, 154, 154, 154, 185, 191, 192, 22, 150, 155,
    2604 185, 185, 150, 154, 157, 231, 154, 190, 154, 154,
    2605 202, 202, 202, 172, 53, 189, 17, 157, 169, 237,
    2606 117, 118, 231, 231, 17, 196, 187, 157, 187, 154,
    2607 154, 154, 4, 145, 188, 231, 229, 157, 169, 185,
    2608 185, 185, 185, 38, 22, 150, 229, 231, 231, 17,
    2609 17, 150, 185, 185, 231, 231, 17, 71, 231, 17,
    2610 231
    26032611 };
    26042612
    26052613 #define yyerrok (yyerrstatus = 0)
    26732681 we won't break user code: when these are the locations we know. */
    26742682
    26752683 #ifndef YY_LOCATION_PRINT
    2676 # if YYLTYPE_IS_TRIVIAL
    2684 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
    26772685 # define YY_LOCATION_PRINT(File, Loc) \
    26782686 fprintf (File, "%d.%d-%d.%d", \
    26792687 (Loc).first_line, (Loc).first_column, \
    34143422 switch (yyn)
    34153423 {
    34163424 case 29:
    3417 #line 1111 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3425 #line 1111 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34183426 { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
    34193427 break;
    34203428
    34213429 case 30:
    3422 #line 1111 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3430 #line 1111 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34233431 { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
    34243432 break;
    34253433
    34263434 case 31:
    3427 #line 1112 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3435 #line 1112 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34283436 { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
    34293437 break;
    34303438
    34313439 case 32:
    3432 #line 1112 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3440 #line 1112 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34333441 { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
    34343442 break;
    34353443
    34363444 case 33:
    3437 #line 1113 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3445 #line 1113 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34383446 { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
    34393447 break;
    34403448
    34413449 case 34:
    3442 #line 1113 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3450 #line 1113 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34433451 { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
    34443452 break;
    34453453
    34463454 case 35:
    3447 #line 1114 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3455 #line 1114 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34483456 { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
    34493457 break;
    34503458
    34513459 case 36:
    3452 #line 1114 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3460 #line 1114 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34533461 { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
    34543462 break;
    34553463
    34563464 case 37:
    3457 #line 1115 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3465 #line 1115 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34583466 { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
    34593467 break;
    34603468
    34613469 case 38:
    3462 #line 1115 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3470 #line 1115 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34633471 { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
    34643472 break;
    34653473
    34663474 case 39:
    3467 #line 1119 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3475 #line 1119 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34683476 { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
    34693477 break;
    34703478
    34713479 case 40:
    3472 #line 1119 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3480 #line 1119 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34733481 { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
    34743482 break;
    34753483
    34763484 case 41:
    3477 #line 1120 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3485 #line 1120 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34783486 { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
    34793487 break;
    34803488
    34813489 case 42:
    3482 #line 1120 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3490 #line 1120 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34833491 { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
    34843492 break;
    34853493
    34863494 case 43:
    3487 #line 1121 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3495 #line 1121 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34883496 { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
    34893497 break;
    34903498
    34913499 case 44:
    3492 #line 1121 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3500 #line 1121 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34933501 { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
    34943502 break;
    34953503
    34963504 case 45:
    3497 #line 1122 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3505 #line 1122 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    34983506 { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
    34993507 break;
    35003508
    35013509 case 46:
    3502 #line 1122 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3510 #line 1122 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35033511 { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
    35043512 break;
    35053513
    35063514 case 47:
    3507 #line 1123 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3515 #line 1123 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35083516 { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
    35093517 break;
    35103518
    35113519 case 48:
    3512 #line 1123 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3520 #line 1123 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35133521 { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
    35143522 break;
    35153523
    35163524 case 49:
    3517 #line 1124 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3525 #line 1124 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35183526 { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
    35193527 break;
    35203528
    35213529 case 50:
    3522 #line 1124 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3530 #line 1124 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35233531 { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
    35243532 break;
    35253533
    35263534 case 51:
    3527 #line 1125 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3535 #line 1125 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35283536 { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
    35293537 break;
    35303538
    35313539 case 52:
    3532 #line 1125 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3540 #line 1125 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35333541 { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
    35343542 break;
    35353543
    35363544 case 53:
    3537 #line 1126 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3545 #line 1126 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35383546 { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
    35393547 break;
    35403548
    35413549 case 54:
    3542 #line 1127 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3550 #line 1127 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35433551 { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
    35443552 break;
    35453553
    35463554 case 65:
    3547 #line 1136 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3555 #line 1136 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35483556 { (yyval.StrVal) = 0; ;}
    35493557 break;
    35503558
    35513559 case 66:
    3552 #line 1140 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3560 #line 1140 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35533561 {
    35543562 (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
    35553563 CHECK_FOR_ERROR
    35573565 break;
    35583566
    35593567 case 67:
    3560 #line 1144 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3568 #line 1144 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35613569 {
    35623570 (yyval.StrVal) = 0;
    35633571 CHECK_FOR_ERROR
    35653573 break;
    35663574
    35673575 case 71:
    3568 #line 1152 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3576 #line 1152 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35693577 {
    35703578 (yyval.StrVal) = 0;
    35713579 CHECK_FOR_ERROR
    35733581 break;
    35743582
    35753583 case 72:
    3576 #line 1157 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3584 #line 1157 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35773585 {
    35783586 (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
    35793587 CHECK_FOR_ERROR
    35813589 break;
    35823590
    35833591 case 73:
    3584 #line 1163 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3592 #line 1163 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35853593 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
    35863594 break;
    35873595
    35883596 case 74:
    3589 #line 1164 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3597 #line 1164 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35903598 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
    35913599 break;
    35923600
    35933601 case 75:
    3594 #line 1165 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3602 #line 1165 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    35953603 { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
    35963604 break;
    35973605
    35983606 case 76:
    3599 #line 1166 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3607 #line 1166 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36003608 { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
    36013609 break;
    36023610
    36033611 case 77:
    3604 #line 1167 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3612 #line 1167 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36053613 { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
    36063614 break;
    36073615
    36083616 case 78:
    3609 #line 1171 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3617 #line 1171 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36103618 { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
    36113619 break;
    36123620
    36133621 case 79:
    3614 #line 1172 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3622 #line 1172 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36153623 { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
    36163624 break;
    36173625
    36183626 case 80:
    3619 #line 1173 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3627 #line 1173 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36203628 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
    36213629 break;
    36223630
    36233631 case 81:
    3624 #line 1177 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3632 #line 1177 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36253633 { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
    36263634 break;
    36273635
    36283636 case 82:
    3629 #line 1178 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3637 #line 1178 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36303638 { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
    36313639 break;
    36323640
    36333641 case 83:
    3634 #line 1179 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3642 #line 1179 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36353643 { (yyval.Visibility) = GlobalValue::HiddenVisibility; ;}
    36363644 break;
    36373645
    36383646 case 84:
    3639 #line 1180 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3647 #line 1180 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36403648 { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
    36413649 break;
    36423650
    36433651 case 85:
    3644 #line 1184 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3652 #line 1184 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36453653 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
    36463654 break;
    36473655
    36483656 case 86:
    3649 #line 1185 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3657 #line 1185 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36503658 { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
    36513659 break;
    36523660
    36533661 case 87:
    3654 #line 1186 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3662 #line 1186 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36553663 { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
    36563664 break;
    36573665
    36583666 case 88:
    3659 #line 1190 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3667 #line 1190 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36603668 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
    36613669 break;
    36623670
    36633671 case 89:
    3664 #line 1191 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3672 #line 1191 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36653673 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
    36663674 break;
    36673675
    36683676 case 90:
    3669 #line 1192 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3677 #line 1192 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36703678 { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
    36713679 break;
    36723680
    36733681 case 91:
    3674 #line 1193 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3682 #line 1193 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36753683 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
    36763684 break;
    36773685
    36783686 case 92:
    3679 #line 1194 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3687 #line 1194 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36803688 { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
    36813689 break;
    36823690
    36833691 case 93:
    3684 #line 1198 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3692 #line 1198 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36853693 { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
    36863694 break;
    36873695
    36883696 case 94:
    3689 #line 1199 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3697 #line 1199 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36903698 { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
    36913699 break;
    36923700
    36933701 case 95:
    3694 #line 1200 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3702 #line 1200 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    36953703 { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
    36963704 break;
    36973705
    36983706 case 96:
    3699 #line 1203 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3707 #line 1203 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37003708 { (yyval.UIntVal) = CallingConv::C; ;}
    37013709 break;
    37023710
    37033711 case 97:
    3704 #line 1204 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3712 #line 1204 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37053713 { (yyval.UIntVal) = CallingConv::C; ;}
    37063714 break;
    37073715
    37083716 case 98:
    3709 #line 1205 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3717 #line 1205 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37103718 { (yyval.UIntVal) = CallingConv::Fast; ;}
    37113719 break;
    37123720
    37133721 case 99:
    3714 #line 1206 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3722 #line 1206 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37153723 { (yyval.UIntVal) = CallingConv::Cold; ;}
    37163724 break;
    37173725
    37183726 case 100:
    3719 #line 1207 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3727 #line 1207 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37203728 { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
    37213729 break;
    37223730
    37233731 case 101:
    3724 #line 1208 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3732 #line 1208 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37253733 { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
    37263734 break;
    37273735
    37283736 case 102:
    3729 #line 1209 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3737 #line 1209 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37303738 {
    37313739 if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
    37323740 GEN_ERROR("Calling conv too large");
    37363744 break;
    37373745
    37383746 case 103:
    3739 #line 1216 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3747 #line 1216 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37403748 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
    37413749 break;
    37423750
    37433751 case 104:
    3744 #line 1217 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3752 #line 1217 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37453753 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
    37463754 break;
    37473755
    37483756 case 105:
    3749 #line 1218 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3757 #line 1218 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37503758 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
    37513759 break;
    37523760
    37533761 case 106:
    3754 #line 1219 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3762 #line 1219 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37553763 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
    37563764 break;
    37573765
    37583766 case 107:
    3759 #line 1220 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3767 #line 1220 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37603768 { (yyval.ParamAttrs) = ParamAttr::InReg; ;}
    37613769 break;
    37623770
    37633771 case 108:
    3764 #line 1221 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3772 #line 1221 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37653773 { (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
    37663774 break;
    37673775
    37683776 case 109:
    3769 #line 1222 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3777 #line 1222 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37703778 { (yyval.ParamAttrs) = ParamAttr::NoAlias; ;}
    37713779 break;
    37723780
    37733781 case 110:
    3774 #line 1223 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3782 #line 1223 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37753783 { (yyval.ParamAttrs) = ParamAttr::ByVal; ;}
    37763784 break;
    37773785
    37783786 case 111:
    3779 #line 1224 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3787 #line 1224 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37803788 { (yyval.ParamAttrs) = ParamAttr::Nest; ;}
    37813789 break;
    37823790
    37833791 case 112:
    3784 #line 1227 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3792 #line 1227 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37853793 { (yyval.ParamAttrs) = ParamAttr::None; ;}
    37863794 break;
    37873795
    37883796 case 113:
    3789 #line 1228 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3797 #line 1228 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37903798 {
    37913799 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) | (yyvsp[(2) - (2)].ParamAttrs);
    37923800 ;}
    37933801 break;
    37943802
    37953803 case 114:
    3796 #line 1233 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3804 #line 1233 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    37973805 { (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
    37983806 break;
    37993807
    38003808 case 115:
    3801 #line 1234 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3809 #line 1234 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38023810 { (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
    38033811 break;
    38043812
    38053813 case 116:
    3806 #line 1235 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3814 #line 1235 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38073815 { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
    38083816 break;
    38093817
    38103818 case 117:
    3811 #line 1236 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3819 #line 1236 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38123820 { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
    38133821 break;
    38143822
    38153823 case 118:
    3816 #line 1237 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3824 #line 1237 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38173825 { (yyval.ParamAttrs) = ParamAttr::ReadNone; ;}
    38183826 break;
    38193827
    38203828 case 119:
    3821 #line 1238 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3829 #line 1238 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38223830 { (yyval.ParamAttrs) = ParamAttr::ReadOnly; ;}
    38233831 break;
    38243832
    38253833 case 120:
    3826 #line 1241 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3834 #line 1241 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38273835 { (yyval.ParamAttrs) = ParamAttr::None; ;}
    38283836 break;
    38293837
    38303838 case 121:
    3831 #line 1242 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3839 #line 1242 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38323840 {
    38333841 (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) | (yyvsp[(2) - (2)].ParamAttrs);
    38343842 ;}
    38353843 break;
    38363844
    38373845 case 122:
    3838 #line 1249 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3846 #line 1247 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    3847 { (yyval.StrVal) = 0; ;}
    3848 break;
    3849
    3850 case 123:
    3851 #line 1248 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    3852 {
    3853 (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
    3854 ;}
    3855 break;
    3856
    3857 case 124:
    3858 #line 1255 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38393859 { (yyval.UIntVal) = 0; ;}
    38403860 break;
    38413861
    3842 case 123:
    3843 #line 1250 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3862 case 125:
    3863 #line 1256 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38443864 {
    38453865 (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
    38463866 if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
    38493869 ;}
    38503870 break;
    38513871
    3852 case 124:
    3853 #line 1256 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3872 case 126:
    3873 #line 1262 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38543874 { (yyval.UIntVal) = 0; ;}
    38553875 break;
    38563876
    3857 case 125:
    3858 #line 1257 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3877 case 127:
    3878 #line 1263 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38593879 {
    38603880 (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
    38613881 if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
    38643884 ;}
    38653885 break;
    38663886
    3867 case 126:
    3868 #line 1265 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3887 case 128:
    3888 #line 1271 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38693889 {
    38703890 for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i != e; ++i)
    38713891 if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) - (2)].StrVal))[i] == '\\')
    38753895 ;}
    38763896 break;
    38773897
    3878 case 127:
    3879 #line 1273 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3898 case 129:
    3899 #line 1279 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38803900 { (yyval.StrVal) = 0; ;}
    38813901 break;
    38823902
    3883 case 128:
    3884 #line 1274 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3903 case 130:
    3904 #line 1280 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38853905 { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
    38863906 break;
    38873907
    3888 case 129:
    3889 #line 1279 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3908 case 131:
    3909 #line 1285 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38903910 {;}
    38913911 break;
    38923912
    3893 case 130:
    3894 #line 1280 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3913 case 132:
    3914 #line 1286 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    38953915 {;}
    38963916 break;
    38973917
    3898 case 131:
    3899 #line 1281 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3918 case 133:
    3919 #line 1287 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39003920 {
    39013921 CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
    39023922 delete (yyvsp[(1) - (1)].StrVal);
    39043924 ;}
    39053925 break;
    39063926
    3907 case 132:
    3908 #line 1286 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3927 case 134:
    3928 #line 1292 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39093929 {
    39103930 if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
    39113931 GEN_ERROR("Alignment must be a power of two");
    39143934 ;}
    39153935 break;
    39163936
    3917 case 140:
    3918 #line 1302 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3937 case 142:
    3938 #line 1308 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39193939 {
    39203940 (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
    39213941 CHECK_FOR_ERROR
    39223942 ;}
    39233943 break;
    39243944
    3925 case 141:
    3926 #line 1306 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3945 case 143:
    3946 #line 1312 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39273947 {
    39283948 (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
    39293949 CHECK_FOR_ERROR
    39303950 ;}
    39313951 break;
    39323952
    3933 case 142:
    3934 #line 1310 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3953 case 144:
    3954 #line 1316 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39353955 { // Pointer type?
    39363956 if (*(yyvsp[(1) - (2)].TypeVal) == Type::LabelTy)
    39373957 GEN_ERROR("Cannot form a pointer to a basic block");
    39413961 ;}
    39423962 break;
    39433963
    3944 case 143:
    3945 #line 1317 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3964 case 145:
    3965 #line 1323 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39463966 { // Named types are also simple types...
    39473967 const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
    39483968 CHECK_FOR_ERROR
    39503970 ;}
    39513971 break;
    39523972
    3953 case 144:
    3954 #line 1322 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3973 case 146:
    3974 #line 1328 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39553975 { // Type UpReference
    39563976 if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
    39573977 OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder
    39623982 ;}
    39633983 break;
    39643984
    3965 case 145:
    3966 #line 1330 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    3985 case 147:
    3986 #line 1336 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    39673987 {
    39683988 // Allow but ignore attributes on function types; this permits auto-upgrade.
    39693989 // FIXME: remove in LLVM 3.0.
    39964016 ;}
    39974017 break;
    39984018
    3999 case 146:
    4000 #line 1360 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4019 case 148:
    4020 #line 1366 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40014021 {
    40024022 // Allow but ignore attributes on function types; this permits auto-upgrade.
    40034023 // FIXME: remove in LLVM 3.0.
    40244044 ;}
    40254045 break;
    40264046
    4027 case 147:
    4028 #line 1385 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4047 case 149:
    4048 #line 1391 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40294049 { // Sized array type?
    40304050 (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val))));
    40314051 delete (yyvsp[(4) - (5)].TypeVal);
    40334053 ;}
    40344054 break;
    40354055
    4036 case 148:
    4037 #line 1390 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4056 case 150:
    4057 #line 1396 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40384058 { // Vector type?
    40394059 const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
    40404060 if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val))
    40474067 ;}
    40484068 break;
    40494069
    4050 case 149:
    4051 #line 1400 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4070 case 151:
    4071 #line 1406 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40524072 { // Structure type?
    40534073 std::vector Elements;
    40544074 for (std::list::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(),
    40614081 ;}
    40624082 break;
    40634083
    4064 case 150:
    4065 #line 1410 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4084 case 152:
    4085 #line 1416 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40664086 { // Empty structure type?
    40674087 (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector()));
    40684088 CHECK_FOR_ERROR
    40694089 ;}
    40704090 break;
    40714091
    4072 case 151:
    4073 #line 1414 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4092 case 153:
    4093 #line 1420 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40744094 {
    40754095 std::vector Elements;
    40764096 for (std::list::iterator I = (yyvsp[(3) - (5)].TypeList)->begin(),
    40834103 ;}
    40844104 break;
    40854105
    4086 case 152:
    4087 #line 1424 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4106 case 154:
    4107 #line 1430 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40884108 { // Empty structure type?
    40894109 (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector(), true));
    40904110 CHECK_FOR_ERROR
    40914111 ;}
    40924112 break;
    40934113
    4094 case 153:
    4095 #line 1431 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4114 case 155:
    4115 #line 1437 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    40964116 {
    40974117 // Allow but ignore attributes on function types; this permits auto-upgrade.
    40984118 // FIXME: remove in LLVM 3.0.
    41014121 ;}
    41024122 break;
    41034123
    4104 case 154:
    4105 #line 1440 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4124 case 156:
    4125 #line 1446 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41064126 {
    41074127 if (!UpRefs.empty())
    41084128 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription());
    41124132 ;}
    41134133 break;
    41144134
    4115 case 155:
    4116 #line 1447 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4135 case 157:
    4136 #line 1453 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41174137 {
    41184138 (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
    41194139 ;}
    41204140 break;
    41214141
    4122 case 156:
    4123 #line 1452 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4142 case 158:
    4143 #line 1458 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41244144 {
    41254145 (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
    41264146 (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) - (1)].TypeWithAttrs));
    41284148 ;}
    41294149 break;
    41304150
    4131 case 157:
    4132 #line 1457 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4151 case 159:
    4152 #line 1463 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41334153 {
    41344154 ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))->push_back((yyvsp[(3) - (3)].TypeWithAttrs));
    41354155 CHECK_FOR_ERROR
    41364156 ;}
    41374157 break;
    41384158
    4139 case 159:
    4140 #line 1465 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4159 case 161:
    4160 #line 1471 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41414161 {
    41424162 (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
    41434163 TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
    41474167 ;}
    41484168 break;
    41494169
    4150 case 160:
    4151 #line 1472 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4170 case 162:
    4171 #line 1478 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41524172 {
    41534173 (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
    41544174 TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
    41584178 ;}
    41594179 break;
    41604180
    4161 case 161:
    4162 #line 1479 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4181 case 163:
    4182 #line 1485 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41634183 {
    41644184 (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
    41654185 CHECK_FOR_ERROR
    41664186 ;}
    41674187 break;
    41684188
    4169 case 162:
    4170 #line 1487 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4189 case 164:
    4190 #line 1493 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41714191 {
    41724192 (yyval.TypeList) = new std::list();
    41734193 (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
    41764196 ;}
    41774197 break;
    41784198
    4179 case 163:
    4180 #line 1493 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4199 case 165:
    4200 #line 1499 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41814201 {
    41824202 ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal));
    41834203 delete (yyvsp[(3) - (3)].TypeVal);
    41854205 ;}
    41864206 break;
    41874207
    4188 case 164:
    4189 #line 1505 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4208 case 166:
    4209 #line 1511 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    41904210 { // Nonempty unsized arr
    41914211 if (!UpRefs.empty())
    41924212 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
    42174237 ;}
    42184238 break;
    42194239
    4220 case 165:
    4221 #line 1533 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4240 case 167:
    4241 #line 1539 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    42224242 {
    42234243 if (!UpRefs.empty())
    42244244 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
    42374257 ;}
    42384258 break;
    42394259
    4240 case 166:
    4241 #line 1549 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4260 case 168:
    4261 #line 1555 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    42424262 {
    42434263 if (!UpRefs.empty())
    42444264 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
    42684288 ;}
    42694289 break;
    42704290
    4271 case 167:
    4272 #line 1576 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4291 case 169:
    4292 #line 1582 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    42734293 { // Nonempty unsized arr
    42744294 if (!UpRefs.empty())
    42754295 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
    43004320 ;}
    43014321 break;
    43024322
    4303 case 168:
    4304 #line 1604 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4323 case 170:
    4324 #line 1610 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    43054325 {
    43064326 const StructType *STy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get());
    43074327 if (STy == 0)
    43304350 ;}
    43314351 break;
    43324352
    4333 case 169:
    4334 #line 1630 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4353 case 171:
    4354 #line 1636 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    43354355 {
    43364356 if (!UpRefs.empty())
    43374357 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
    43544374 ;}
    43554375 break;
    43564376
    4357 case 170:
    4358 #line 1650 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4377 case 172:
    4378 #line 1656 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    43594379 {
    43604380 const StructType *STy = dyn_cast((yyvsp[(1) - (6)].TypeVal)->get());
    43614381 if (STy == 0)
    43844404 ;}
    43854405 break;
    43864406
    4387 case 171:
    4388 #line 1676 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4407 case 173:
    4408 #line 1682 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    43894409 {
    43904410 if (!UpRefs.empty())
    43914411 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (5)].TypeVal))->getDescription());
    44084428 ;}
    44094429 break;
    44104430
    4411 case 172:
    4412 #line 1696 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4431 case 174:
    4432 #line 1702 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    44134433 {
    44144434 if (!UpRefs.empty())
    44154435 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
    44244444 ;}
    44254445 break;
    44264446
    4427 case 173:
    4428 #line 1708 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4447 case 175:
    4448 #line 1714 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    44294449 {
    44304450 if (!UpRefs.empty())
    44314451 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
    44354455 ;}
    44364456 break;
    44374457
    4438 case 174:
    4439 #line 1715 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4458 case 176:
    4459 #line 1721 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    44404460 {
    44414461 if (!UpRefs.empty())
    44424462 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
    45054525 ;}
    45064526 break;
    45074527
    4508 case 175:
    4509 #line 1781 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4528 case 177:
    4529 #line 1787 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45104530 {
    45114531 if (!UpRefs.empty())
    45124532 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
    45194539 ;}
    45204540 break;
    45214541
    4522 case 176:
    4523 #line 1791 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4542 case 178:
    4543 #line 1797 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45244544 {
    45254545 if (!UpRefs.empty())
    45264546 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
    45334553 ;}
    45344554 break;
    45354555
    4536 case 177:
    4537 #line 1801 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4556 case 179:
    4557 #line 1807 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45384558 { // integral constants
    45394559 if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)))
    45404560 GEN_ERROR("Constant value doesn't fit in type");
    45434563 ;}
    45444564 break;
    45454565
    4546 case 178:
    4547 #line 1807 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4566 case 180:
    4567 #line 1813 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45484568 { // arbitrary precision integer constants
    45494569 uint32_t BitWidth = cast((yyvsp[(1) - (2)].PrimType))->getBitWidth();
    45504570 if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
    45574577 ;}
    45584578 break;
    45594579
    4560 case 179:
    4561 #line 1817 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4580 case 181:
    4581 #line 1823 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45624582 { // integral constants
    45634583 if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)))
    45644584 GEN_ERROR("Constant value doesn't fit in type");
    45674587 ;}
    45684588 break;
    45694589
    4570 case 180:
    4571 #line 1823 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4590 case 182:
    4591 #line 1829 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45724592 { // arbitrary precision integer constants
    45734593 uint32_t BitWidth = cast((yyvsp[(1) - (2)].PrimType))->getBitWidth();
    45744594 if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
    45814601 ;}
    45824602 break;
    45834603
    4584 case 181:
    4585 #line 1833 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4604 case 183:
    4605 #line 1839 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45864606 { // Boolean constants
    45874607 assert(cast((yyvsp[(1) - (2)].PrimType))->getBitWidth() == 1 && "Not Bool?");
    45884608 (yyval.ConstVal) = ConstantInt::getTrue();
    45904610 ;}
    45914611 break;
    45924612
    4593 case 182:
    4594 #line 1838 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4613 case 184:
    4614 #line 1844 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    45954615 { // Boolean constants
    45964616 assert(cast((yyvsp[(1) - (2)].PrimType))->getBitWidth() == 1 && "Not Bool?");
    45974617 (yyval.ConstVal) = ConstantInt::getFalse();
    45994619 ;}
    46004620 break;
    46014621
    4602 case 183:
    4603 #line 1843 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4622 case 185:
    4623 #line 1849 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46044624 { // Floating point constants
    46054625 if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].PrimType), *(yyvsp[(2) - (2)].FPVal)))
    46064626 GEN_ERROR("Floating point constant invalid for type");
    46144634 ;}
    46154635 break;
    46164636
    4617 case 184:
    4618 #line 1856 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4637 case 186:
    4638 #line 1862 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46194639 {
    46204640 if (!UpRefs.empty())
    46214641 GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (6)].TypeVal))->getDescription());
    46304650 ;}
    46314651 break;
    46324652
    4633 case 185:
    4634 #line 1868 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4653 case 187:
    4654 #line 1874 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46354655 {
    46364656 if (!isa((yyvsp[(3) - (5)].ConstVal)->getType()))
    46374657 GEN_ERROR("GetElementPtr requires a pointer operand");
    46564676 ;}
    46574677 break;
    46584678
    4659 case 186:
    4660 #line 1890 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4679 case 188:
    4680 #line 1896 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46614681 {
    46624682 if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
    46634683 GEN_ERROR("Select condition must be of boolean type");
    46684688 ;}
    46694689 break;
    46704690
    4671 case 187:
    4672 #line 1898 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4691 case 189:
    4692 #line 1904 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46734693 {
    46744694 if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
    46754695 GEN_ERROR("Binary operator types must match");
    46784698 ;}
    46794699 break;
    46804700
    4681 case 188:
    4682 #line 1904 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4701 case 190:
    4702 #line 1910 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46834703 {
    46844704 if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
    46854705 GEN_ERROR("Logical operator types must match");
    46934713 ;}
    46944714 break;
    46954715
    4696 case 189:
    4697 #line 1915 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4716 case 191:
    4717 #line 1921 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    46984718 {
    46994719 if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
    47004720 GEN_ERROR("icmp operand types must match");
    47024722 ;}
    47034723 break;
    47044724
    4705 case 190:
    4706 #line 1920 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4725 case 192:
    4726 #line 1926 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47074727 {
    47084728 if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
    47094729 GEN_ERROR("fcmp operand types must match");
    47114731 ;}
    47124732 break;
    47134733
    4714 case 191:
    4715 #line 1925 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4734 case 193:
    4735 #line 1931 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47164736 {
    47174737 if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
    47184738 GEN_ERROR("Invalid extractelement operands");
    47214741 ;}
    47224742 break;
    47234743
    4724 case 192:
    4725 #line 1931 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4744 case 194:
    4745 #line 1937 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47264746 {
    47274747 if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
    47284748 GEN_ERROR("Invalid insertelement operands");
    47314751 ;}
    47324752 break;
    47334753
    4734 case 193:
    4735 #line 1937 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4754 case 195:
    4755 #line 1943 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47364756 {
    47374757 if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
    47384758 GEN_ERROR("Invalid shufflevector operands");
    47414761 ;}
    47424762 break;
    47434763
    4744 case 194:
    4745 #line 1946 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4764 case 196:
    4765 #line 1952 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47464766 {
    47474767 ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal));
    47484768 CHECK_FOR_ERROR
    47494769 ;}
    47504770 break;
    47514771
    4752 case 195:
    4753 #line 1950 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4772 case 197:
    4773 #line 1956 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47544774 {
    47554775 (yyval.ConstVector) = new std::vector();
    47564776 (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
    47584778 ;}
    47594779 break;
    47604780
    4761 case 196:
    4762 #line 1958 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4781 case 198:
    4782 #line 1964 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47634783 { (yyval.BoolVal) = false; ;}
    47644784 break;
    47654785
    4766 case 197:
    4767 #line 1958 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4786 case 199:
    4787 #line 1964 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47684788 { (yyval.BoolVal) = true; ;}
    47694789 break;
    47704790
    4771 case 198:
    4772 #line 1961 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4791 case 200:
    4792 #line 1967 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47734793 { (yyval.BoolVal) = true; ;}
    47744794 break;
    47754795
    4776 case 199:
    4777 #line 1961 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4796 case 201:
    4797 #line 1967 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47784798 { (yyval.BoolVal) = false; ;}
    47794799 break;
    47804800
    4781 case 200:
    4782 #line 1964 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4801 case 202:
    4802 #line 1970 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47834803 {
    47844804 const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
    47854805 Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
    47944814 ;}
    47954815 break;
    47964816
    4797 case 201:
    4798 #line 1976 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4817 case 203:
    4818 #line 1982 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    47994819 {
    48004820 Constant *Val = (yyvsp[(3) - (6)].ConstVal);
    48014821 const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
    48104830 ;}
    48114831 break;
    48124832
    4813 case 202:
    4814 #line 1997 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4833 case 204:
    4834 #line 2003 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    48154835 {
    48164836 (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
    48174837 CurModule.ModuleDone();
    48194839 ;}
    48204840 break;
    48214841
    4822 case 203:
    4823 #line 2002 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4842 case 205:
    4843 #line 2008 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    48244844 {
    48254845 (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
    48264846 CurModule.ModuleDone();
    48284848 ;}
    48294849 break;
    48304850
    4831 case 206:
    4832 #line 2015 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4851 case 208:
    4852 #line 2021 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    48334853 { CurFun.isDeclare = false; ;}
    48344854 break;
    48354855
    4836 case 207:
    4837 #line 2015 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4856 case 209:
    4857 #line 2021 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    48384858 {
    48394859 CurFun.FunctionDone();
    48404860 CHECK_FOR_ERROR
    48414861 ;}
    48424862 break;
    48434863
    4844 case 208:
    4845 #line 2019 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4864 case 210:
    4865 #line 2025 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    48464866 { CurFun.isDeclare = true; ;}
    48474867 break;
    48484868
    4849 case 209:
    4850 #line 2019 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4851 {
    4852 CHECK_FOR_ERROR
    4853 ;}
    4854 break;
    4855
    4856 case 210:
    4857 #line 2022 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4858 {
    4859 CHECK_FOR_ERROR
    4860 ;}
    4861 break;
    4862
    48634869 case 211:
    4864 #line 2025 "/home/asl/proj/llvm/src/lib/AsmParser/llvmAsmParser.y"
    4870 #line 2025 "/Users/malichus/Source/llvm/src/llvm/lib/AsmParser/llvmAsmParser.y"
    4871 {
    4872 CHECK_FOR_ERROR
    4873 ;}
    4874 break;
    4875