Changeset d3bc0ad


Ignore:
Timestamp:
Mar 9, 2017, 10:36:58 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
6152c81
Parents:
c3396e0
Message:

add _Coroutine, _Monitor, _Thread keywords

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.cc

    rc3396e0 rd3bc0ad  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 187
    385 #define YY_END_OF_BUFFER 188
     384#define YY_NUM_RULES 190
     385#define YY_END_OF_BUFFER 191
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[914] =
     393static yyconst flex_int16_t yy_accept[928] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  122,  122,  125,  125,
    396       188,  186,    7,    9,    8,  145,  124,  107,  150,  153,
    397       121,  132,  133,  148,  146,  136,  147,  139,  149,  112,
    398       113,  114,  137,  138,  155,  157,  156,  158,  186,  107,
    399       130,  186,  131,  151,  107,  109,  107,  107,  107,  107,
    400       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    401       107,  107,  107,  107,  134,  154,  135,  152,    7,  186,
    402         4,    4,  187,  110,  187,  111,  122,  123,  129,  125,
    403       126,    7,    9,    0,    8,  162,  181,  107,    0,  174,
    404       144,  167,  175,  172,  159,  170,  160,  171,  169,    0,
    405 
    406       118,    3,    0,  173,  117,  115,    0,    0,  115,  115,
    407         0,    0,  115,  114,  114,  114,    0,  114,  142,  143,
    408       141,  163,  165,  161,  166,  164,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  125,  125,  128,  128,
     396      191,  189,    7,    9,    8,  148,  127,  110,  153,  156,
     397      124,  135,  136,  151,  149,  139,  150,  142,  152,  115,
     398      116,  117,  140,  141,  158,  160,  159,  161,  189,  110,
     399      133,  189,  134,  154,  110,  112,  110,  110,  110,  110,
     400      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     401      110,  110,  110,  110,  137,  157,  138,  155,    7,  189,
     402        4,    4,  190,  113,  190,  114,  125,  126,  132,  128,
     403      129,    7,    9,    0,    8,  165,  184,  110,    0,  177,
     404      147,  170,  178,  175,  162,  173,  163,  174,  172,    0,
     405
     406      121,    3,    0,  176,  120,  118,    0,    0,  118,  118,
     407        0,    0,  118,  117,  117,  117,    0,  117,  145,  146,
     408      144,  166,  168,  164,  169,  167,    0,    0,    0,    0,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    410         0,  108,  180,    0,  124,  121,  107,    0,    0,  177,
    411         0,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    412       107,  107,  107,  107,  107,  107,  107,  107,   38,  107,
    413       107,  107,  107,  107,  107,  107,  107,  107,  107,   57,
    414       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    415       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    416 
    417       176,  168,    7,    0,    0,    0,    2,    0,    5,  110,
    418         0,    0,    0,  122,    0,  128,  127,  127,    0,    0,
    419         0,  125,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,    0,    0,    0,    0,    0,    0,  140,  118,  119,
    421         0,  119,  119,    0,    0,    6,  119,  115,    0,    0,
    422         0,  119,    0,  115,  115,  115,  115,    0,  116,    0,
    423         0,  114,  114,  114,  114,    0,  178,  179,    0,  184,
    424       182,    0,    0,    0,  108,    0,    0,    0,    0,    0,
    425         0,    0,    0,  107,   17,  107,  107,  107,  107,  107,
    426       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    427 
    428       107,  107,  107,   14,  107,  107,  107,  107,  107,  107,
    429       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    430       107,  107,   51,  107,  107,  107,   64,  107,  107,  107,
    431       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    432       107,  107,  107,   92,  107,  107,  107,  107,  107,  107,
    433       107,  107,  107,    0,    0,    0,    0,    0,    0,    0,
    434         0,  127,    0,    0,    0,    0,    0,  127,    0,    0,
    435       185,    0,    0,    0,    0,    0,    0,    0,  119,    0,
    436       119,    0,  119,    0,  119,    0,    0,  119,    0,  115,
    437       115,    0,    0,  116,  116,    0,  116,    0,  116,  114,
    438 
    439       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    440         0,  183,  107,  107,  107,  107,  107,  107,  107,  107,
    441       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    442       107,  107,  107,  107,  107,   21,  107,   24,  107,   27,
    443       107,  107,  107,  107,  107,  107,  107,   41,  107,   43,
    444       107,  107,  107,  107,  107,  107,  107,   56,  107,   67,
    445       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    446       107,  107,  107,  107,  107,  107,  107,  107,  107,  101,
    447       107,  107,  107,    0,    0,    0,    0,    0,    0,    0,
    448         0,    0,    0,    0,    0,    0,    0,  127,    0,    0,
    449 
    450         0,    0,    0,  119,    0,    0,    0,    0,    0,    0,
    451         0,  116,  116,    0,  120,    0,  116,  116,    0,    0,
     410        0,  111,  183,    0,  127,  124,  110,    0,    0,  180,
     411        0,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     412      110,  110,  110,  110,  110,  110,  110,  110,  110,   39,
     413      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     414       58,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     415      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     416
     417      110,  179,  171,    7,    0,    0,    0,    2,    0,    5,
     418      113,    0,    0,    0,  125,    0,  131,  130,  130,    0,
     419        0,    0,  128,    0,    0,    0,    0,    0,    0,    0,
     420        0,    0,    0,    0,    0,    0,    0,    0,  143,  121,
     421      122,    0,  122,  122,    0,    0,    6,  122,  118,    0,
     422        0,    0,  122,    0,  118,  118,  118,  118,    0,  119,
     423        0,    0,  117,  117,  117,  117,    0,  181,  182,    0,
     424      187,  185,    0,    0,    0,  111,    0,    0,    0,    0,
     425        0,    0,    0,    0,  110,   17,  110,  110,  110,  110,
     426      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     427
     428      110,  110,  110,  110,  110,   14,  110,  110,  110,  110,
     429      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     430      110,  110,  110,  110,   52,  110,  110,  110,   65,  110,
     431      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     432      110,  110,  110,  110,  110,   95,  110,  110,  110,  110,
     433      110,  110,  110,  110,  110,    0,    0,    0,    0,    0,
     434        0,    0,    0,  130,    0,    0,    0,    0,    0,  130,
     435        0,    0,  188,    0,    0,    0,    0,    0,    0,    0,
     436      122,    0,  122,    0,  122,    0,  122,    0,    0,  122,
     437        0,  118,  118,    0,    0,  119,  119,    0,  119,    0,
     438
     439      119,  117,  117,    0,    0,    0,    0,    0,    0,    0,
     440        0,    0,    0,  186,  110,  110,  110,  110,  110,  110,
     441      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     442      110,  110,  110,  110,  110,  110,  110,  110,  110,   21,
     443      110,   24,  110,   27,  110,  110,  110,  110,  110,  110,
     444      110,   42,  110,   44,  110,  110,  110,  110,  110,  110,
     445      110,   57,  110,   68,  110,  110,  110,  110,  110,  110,
     446      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     447      110,  110,  110,  104,  110,  110,  110,    0,    0,    0,
    452448        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    453         0,  107,  107,   22,  107,  107,  107,  107,  107,  107,
    454       107,   15,  107,  107,  107,  107,  107,  107,  107,  107,
    455       107,  107,  107,  107,  107,  107,   23,   25,  107,   32,
    456       107,  107,  107,  107,   40,  107,  107,  107,  107,   49,
    457       107,  107,   54,  107,  107,   69,   72,   73,  107,  107,
    458       107,   79,  107,  107,  107,  107,  107,   89,   91,   93,
    459       107,  107,   98,  107,  107,  105,  107,    0,    0,    0,
    460 
     449
     450        0,  130,    0,    0,    0,    0,    0,  122,    0,    0,
     451        0,    0,    0,    0,    0,  119,  119,    0,  123,    0,
     452      119,  119,    0,    0,    0,    0,    0,    0,    0,    0,
     453        0,    0,    0,    0,    0,  110,  110,   22,  110,  110,
     454      110,  110,  110,  110,  110,  110,  110,   15,  110,  110,
     455      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     456      110,  110,   23,   25,  110,   32,  110,  110,  110,  110,
     457       41,  110,  110,  110,  110,   50,  110,  110,   55,  110,
     458      110,   71,   74,   75,  110,  110,  110,   81,  110,  110,
     459      110,  110,  110,   92,   94,   96,  110,  110,  101,  110,
     460
     461      110,  108,  110,    0,    0,    0,    0,    0,    0,    0,
    461462        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,    0,  120,    0,    0,  116,
    463       120,  120,  120,  120,    0,  116,    0,    0,    0,    0,
    464         0,    0,    0,    0,    0,    0,  107,    0,  107,  107,
    465       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
    466       107,  107,  107,  107,   59,  107,  107,  107,  107,  107,
    467       107,  107,  107,   28,  107,  107,  107,   39,   42,   45,
    468       107,  107,   52,  107,   61,   68,  107,  107,   78,   80,
    469        83,   84,   86,   87,  107,  107,   95,  107,  107,  106,
    470         0,    1,    0,    0,    0,    0,    0,    0,  110,    0,
    471 
    472         0,    0,  127,    0,    0,    0,    0,  120,    0,  120,
    473       120,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    474       107,  107,   18,  107,  107,  107,  107,  107,  107,  107,
    475        16,  107,  107,  107,   33,  107,  107,  107,  107,  107,
    476       107,  107,  107,  107,  107,  107,  107,   36,   37,  107,
    477        48,   53,  107,  107,  107,   94,  107,  107,    0,    0,
     463        0,    0,  123,    0,    0,  119,  123,  123,  123,  123,
     464        0,  119,    0,    0,    0,    0,    0,    0,    0,    0,
     465        0,    0,  110,    0,  110,  110,  110,  110,  110,  110,
     466      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
     467      110,  110,   60,  110,  110,  110,  110,  110,  110,  110,
     468      110,   28,  110,  110,  110,   40,   43,   46,  110,  110,
     469       53,  110,   62,   69,  110,  110,   80,   82,   85,   86,
     470       88,   89,  110,  110,   98,  110,  110,  109,    0,    1,
     471
     472        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
     473      130,    0,    0,    0,    0,  123,    0,  123,  123,    0,
     474        0,    0,    0,    0,    0,    0,    0,    0,  110,  110,
     475       18,  110,  110,  110,  110,  110,  110,  110,   90,  110,
     476       16,  110,  110,  110,   33,  110,  110,  110,  110,  110,
     477      110,  110,  110,  110,  110,  110,  110,   37,   38,  110,
     478       49,   54,  110,  110,  110,   97,  110,  110,    0,    0,
    478479        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    479         0,   10,   11,   29,   55,  107,  107,  107,  107,  107,
    480       107,  107,  107,  107,  107,  107,   60,   62,   65,  107,
    481       107,   81,   96,  107,  107,   35,  107,   47,   74,   75,
    482 
    483       107,   99,  102,    0,    0,    0,    0,    0,    0,    0,
    484         0,    0,    0,    0,    0,  107,   70,  107,  107,   12,
    485       107,  107,   30,   34,  107,  107,  107,   66,  107,  107,
    486       107,  107,  107,  107,  107,    0,    0,    0,    0,    0,
    487         0,    0,    0,    0,    0,    0,    0,    0,   58,  107,
    488       107,  107,  107,  107,  107,  107,   50,   63,   76,   82,
    489        97,  103,  107,  107,  107,    0,    0,    0,    0,    0,
    490         0,    0,    0,  107,  107,   13,   19,  107,  107,   31,
    491       107,  107,  107,   26,   46,   90,    0,    0,  107,  107,
    492       107,  107,  107,  107,   77,  104,  107,   88,   20,  107,
    493 
    494       107,   44,   85,  107,  107,  107,  107,  107,  107,  107,
    495       100,   71,    0
     480        0,   10,   11,   29,  110,   56,  110,   70,  110,  110,
     481      110,  110,  110,  110,  110,  110,  110,  110,   61,   63,
     482
     483       66,  110,  110,   83,   99,  110,  110,   35,  110,   48,
     484       76,   77,  110,  102,  105,    0,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,    0,  110,  110,   72,
     486      110,  110,   12,  110,  110,   30,   34,  110,  110,  110,
     487       67,  110,  110,  110,  110,  110,  110,  110,    0,    0,
     488        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     489        0,   36,   59,  110,  110,  110,  110,  110,  110,  110,
     490       51,   64,   78,   84,  100,  106,  110,  110,  110,    0,
     491        0,    0,    0,    0,    0,    0,    0,  110,  110,   13,
     492       19,  110,  110,   31,  110,  110,  110,   26,   47,   93,
     493
     494        0,    0,  110,  110,  110,  110,  110,  110,   79,  107,
     495      110,   91,   20,  110,  110,   45,   87,  110,  110,  110,
     496      110,  110,  110,  110,  103,   73,    0
    496497    } ;
    497498
     
    505506       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
    506507       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
    507        42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
    508        11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
    509        52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
    510 
    511        62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
    512        71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
    513        80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
     508       42,   11,   43,   11,   11,   44,   45,   46,   11,   47,
     509       11,   48,   49,   50,   51,   11,   11,   52,   11,   11,
     510       53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
     511
     512       63,   64,   65,   66,   67,   11,   68,   69,   70,   71,
     513       72,   73,   11,   74,   75,   76,   77,   78,   79,   80,
     514       81,   82,   83,   84,   85,   86,    1,    1,    1,    1,
    514515        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    515516        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    528529    } ;
    529530
    530 static yyconst flex_int32_t yy_meta[86] =
     531static yyconst flex_int32_t yy_meta[87] =
    531532    {   0,
    532533        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    534535        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    535536        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
    536         9,    4,    4,   10,    4,   11,    4,    4,    4,   10,
    537         4,    1,   12,    1,    1,   13,    1,    9,    9,    9,
    538         9,    9,    9,    4,    4,    4,    4,   10,    4,    4,
    539         4,   11,    4,    4,    4,   10,    4,    4,    4,    4,
    540         4,    1,    1,    1,    1
     537        9,    4,    4,   10,    4,    4,   11,    4,    4,    4,
     538       10,    4,    1,   12,    1,    1,   13,    1,    9,    9,
     539        9,    9,    9,    9,    4,    4,    4,    4,   10,    4,
     540        4,    4,   11,    4,    4,    4,   10,    4,    4,    4,
     541        4,    4,    1,    1,    1,    1
    541542    } ;
    542543
    543 static yyconst flex_int16_t yy_base[1088] =
     544static yyconst flex_int16_t yy_base[1102] =
    544545    {   0,
    545         0,   84, 2340, 2339,   94,    0,  177,  178,  179,  180,
    546      2355, 2883,  191, 2883,  197,   55, 2883, 2300,   60,  173,
    547      2883, 2883, 2883,   56,  188, 2883,  191,  189,  204,  216,
    548       275,    0, 2317, 2883,  216, 2315,  152,  344,  155,  220,
    549      2883,  159, 2883,  217,  226, 2883,  185,  154,  212,  251,
    550       237,  270,  235,  257,  241,  204,  279,  193,  305,  314,
    551       351,  238,  228,  268, 2883,  257, 2883, 2312,  406,  412,
    552      2883, 2323, 2883, 2290,  235, 2883,    0, 2883,  439,    0,
    553      2883,  426, 2883,  452,  464, 2883,  511, 2287,  258, 2883,
    554      2883, 2883, 2883, 2883, 2303, 2883, 2302, 2883, 2883, 2314,
    555 
    556       572, 2883, 2330, 2883,  451,  457,  524,  547,  298,  285,
    557       197,  312,  305,    0,  342,  325,  198,  322, 2883, 2883,
    558      2883, 2298, 2883, 2883, 2883, 2295, 2294,  218,  312, 2309,
    559       350,  388,  368,  363,  413,  369,  391, 2289,  417, 2236,
    560       418, 2264, 2883,  274, 2883, 2883,  477, 2260, 2259, 2883,
    561      2231,  419,  390,  432,  431,  435,  446,  447,  282,  583,
    562       437,  452,  458,  479,  468,  244,  472,  481,  484,  488,
    563       485,  503,  487,  442,  364,  505,  332,  504,  516, 2257,
    564       534,  535,  524,  532,  528,  530,  555,  551,  525,  574,
    565       548,  564,  568,  540,  572,  609,  597,  586,  600,  602,
    566 
    567      2883, 2883,  674,  665, 2304,  680, 2883,  692, 2883, 2253,
    568       609, 2249, 2247,    0,  667, 2883, 2883,  686, 2244, 2241,
    569      2240,    0, 2263,  664,  668,  689,  695,  694,  690,  699,
    570       700,  703, 2259,  706,  707, 2217, 2215, 2883,    0,  700,
    571       727,  682,  717, 2214, 2264, 2883,  744,  739,  725,  763,
    572       781,  803,  825,  699, 2883, 2220, 2195,    0,  811, 2241,
    573       812,  723, 2883, 2216, 2189,  849, 2883, 2883, 2220, 2883,
    574      2883,  725,  742, 2199, 2199,  734, 2194, 2191, 2188,    0,
    575      2187,    0, 2158,  620,  726,  740,  729,  724,  743,  739,
    576       760,  749,  788,  805,  762,  781,  812,  825,  763,  761,
    577 
    578       831,  829,  817, 2187,  832,  833,  836,  571,  837,  840,
    579       839,  843,  846,  847,  849,  854,  859,  855,  864,  862,
    580       867,  869,  870,  866,  876,  878, 2184,  443,  880,  879,
    581       608,  881,  883,  882,  884,  886,  893,  889,  887,  890,
    582       897,  899,  901, 2181,  902,  903,  949,  908,  911,  915,
    583       920,  916,  918,  978,  979, 2177, 2176, 2174,    0, 2171,
    584         0,  967,  971, 2170,    0, 2169,    0, 2167,    0, 2186,
    585      2883,  966,  967, 2165, 2162,    0, 2160,    0, 2883,  980,
    586      1001,  991, 2883, 1007, 1047, 2157, 1023, 1069, 2153, 2883,
    587      2883,  964,  966, 1055, 1008, 1094,  969, 1086, 1009, 2883,
    588 
    589      2883, 2149, 2147, 2145,    0, 2142,    0, 2140,    0, 2138,
    590         0, 2883,  922,  986,  988, 1008, 1036,  990, 1071, 1007,
    591      1073, 1000, 1012, 1025, 1063, 1075, 1081, 1084, 1085, 1093,
    592      1088, 1030, 1087, 1095, 1096, 2138, 1086, 2135, 1104, 2134,
    593      1099, 1106, 1110, 1107, 1112, 1117, 1113, 2133, 1119, 2131,
    594      1121, 1124, 1125, 1126, 1127, 1129, 1135, 2128, 1133, 2125,
    595      1131, 1136, 1137, 1138, 1139, 1143, 1145, 1151, 1152, 1153,
    596      1155,  764, 1157, 1156, 1158, 1166, 1169, 1167, 1172, 2124,
    597      1170, 1176, 1179, 1238, 2120,    0, 2118,    0, 2115,    0,
    598      2112,    0, 1225, 2111,    0, 2110,    0, 2108, 2105, 2102,
    599 
    600         0, 2101,    0, 1229, 2100, 1235, 1251, 1237, 1276, 1242,
    601      1193, 1193, 2883, 1292, 1310, 1303, 2110, 2083, 2092, 2091,
    602         0, 2090,    0, 2088,    0, 2085,    0, 2082,    0, 2081,
    603         0, 1174, 1214, 2083, 1178, 1211, 1258, 1233, 1259, 1213,
    604      1286, 1257, 1269, 1287, 1234, 1288, 1290, 1303, 1293, 1292,
    605       234, 1306, 1294, 1295, 1310, 1317, 2081, 1327, 1324, 2078,
    606      1311, 1314, 1326, 1330, 2075, 1331, 1332, 1334, 1335, 2074,
    607      1336, 1337, 2073, 1338, 1343, 2071, 2068, 2067, 1344, 1345,
    608      1348, 2066, 1228, 1353, 1354, 1355, 1356, 1370, 2064, 2061,
    609      1360, 1357, 2060, 1359, 1362, 2059, 1371, 2107, 2021,    0,
    610 
    611      2019,    0, 2018,    0, 2015,    0, 2012,    0, 2011,    0,
    612      2010,    0, 2008,    0, 1408, 1414, 1442, 1425, 2005, 2883,
    613      1431, 1418, 1239, 1432, 2002, 2883, 2001,    0, 2000,    0,
    614      1998,    0, 1995,    0,    0,    0, 1997,    0, 1419, 1422,
    615      1426, 1394, 1374, 1421, 1436, 1438, 1410, 1448, 1441, 1439,
    616      1449, 1453, 1456, 1458, 1459, 1460, 1491, 1466, 1465, 1467,
    617      1468, 1470, 1469, 1996, 1471, 1474, 1479, 1994, 1991, 1990,
    618      1482, 1472, 1989, 1483, 1987, 1980, 1484, 1490, 1978, 1977,
    619      1974, 1970, 1966, 1962, 1489, 1495, 1959, 1501, 1503, 1958,
    620      2007, 2883, 1952,    0, 1949,    0,    0,    0, 1951,    0,
    621 
    622         0,    0, 2883,    0,    0,    0,    0, 1549, 1947, 2883,
    623      2883, 1541, 1945,    0, 1942,    0,    0,    0,    0, 1941,
    624      1487, 1507, 1943, 1504, 1525, 1526, 1509, 1533, 1538, 1527,
    625      1941, 1528, 1542, 1547, 1543, 1548, 1578, 1550, 1551, 1580,
    626      1558, 1563, 1565, 1567, 1566, 1568, 1572, 1938, 1937, 1570,
    627      1936, 1934, 1571, 1574, 1582, 1931, 1575, 1585,    0,    0,
    628         0, 1927, 1926, 1924, 1627,    0, 1921, 1920, 1919, 1917,
    629      1914, 1916, 1915, 1913, 1910, 1584, 1590, 1587, 1595, 1605,
    630      1586, 1606, 1608, 1611, 1612, 1641, 1909, 1616, 1908, 1617,
    631      1621, 1624, 1626, 1618, 1622, 1906, 1631, 1903, 1902, 1901,
    632 
    633      1632, 1899, 1892, 1887, 1886, 1883, 1882, 1881, 1879, 1862,
    634      1853, 1852, 1849, 1842, 1839, 1635, 1835, 1636, 1638, 1637,
    635      1639, 1643, 1644, 1833, 1642, 1674, 1649, 1832, 1650, 1663,
    636      1664, 1659, 1291, 1658, 1665, 1808, 1807, 1806, 1799, 1797,
    637      1796, 1754, 1751, 1750, 1748, 1747, 1746, 1741, 1742, 1670,
    638      1671, 1673, 1675, 1677, 1679, 1680, 1741, 1739, 1683, 1737,
    639      1693, 1685, 1687, 1690, 1689, 1689, 1650, 1648, 1503, 1422,
    640      1370, 1369, 1186, 1694, 1699, 1053, 1705, 1700, 1706, 1049,
    641      1709, 1713, 1714, 1015,  968,  930,  798,  764, 1707, 1715,
    642      1718, 1719, 1720, 1722,  644,  570, 1724,  539,  493, 1726,
    643 
    644      1728,  407,  286, 1731, 1732, 1733, 1735, 1734, 1736, 1738,
    645       233,  137, 2883, 1811, 1824, 1837, 1847, 1857, 1870, 1880,
    646      1893, 1906, 1919, 1927, 1937, 1944, 1951, 1958, 1965, 1972,
    647      1979, 1986, 1993, 2000, 2007, 2011, 2019, 2025, 2032, 2039,
    648      2046, 2053, 2056, 2063, 2069, 2082, 2095, 2102, 2109, 2116,
    649      2123, 2126, 2133, 2136, 2143, 2146, 2153, 2156, 2163, 2166,
    650      2173, 2176, 2183, 2186, 2193, 2201, 2208, 2215, 2222, 2229,
    651      2232, 2239, 2242, 2249, 2252, 2259, 2265, 2278, 2285, 2292,
    652      2295, 2302, 2305, 2312, 2315, 2322, 2325, 2332, 2335, 2342,
    653      2345, 2352, 2359, 2362, 2369, 2372, 2379, 2386, 2393, 2396,
    654 
    655      2403, 2406, 2413, 2416, 2423, 2426, 2433, 2436, 2443, 2449,
    656      2462, 2469, 2476, 2479, 2486, 2489, 2496, 2499, 2506, 2509,
    657      2516, 2519, 2526, 2529, 2536, 2539, 2546, 2549, 2556, 2563,
    658      2566, 2573, 2576, 2583, 2586, 2593, 2596, 2599, 2605, 2612,
    659      2621, 2628, 2635, 2638, 2645, 2648, 2651, 2657, 2664, 2667,
    660      2670, 2673, 2676, 2679, 2682, 2685, 2692, 2695, 2702, 2705,
    661      2708, 2711, 2714, 2724, 2731, 2734, 2737, 2740, 2747, 2754,
    662      2761, 2764, 2771, 2778, 2785, 2792, 2799, 2806, 2813, 2820,
    663      2827, 2834, 2841, 2848, 2855, 2862, 2869
     546        0,   85, 2373, 2371,   95,    0,  179,  180,  181,  182,
     547     2385, 2911,  193, 2911,  199,   56, 2911, 2330,   61,  175,
     548     2911, 2911, 2911,   57,  190, 2911,  193,  191,  206,  218,
     549      278,    0, 2350, 2911,  218, 2349,  154,  348,  157,  223,
     550     2911,  178, 2911,  219,  271, 2911,  177,  166,  202,  270,
     551      213,  295,  138,  212,  218,  194,  256,  210,  272,  318,
     552      331,  206,  155,  225, 2911,  227, 2911, 2344,  403,  350,
     553     2911, 2353, 2911, 2320,  212, 2911,    0, 2911,  431,    0,
     554     2911,  412, 2911,  418,  444, 2911,  504, 2319,  214, 2911,
     555     2911, 2911, 2911, 2911, 2337, 2911, 2334, 2911, 2911, 2344,
     556
     557      566, 2911, 2361, 2911,  435,  418,  504,  453,  292,  250,
     558      302,  462,  360,    0,  349,  343,  329,  415, 2911, 2911,
     559     2911, 2331, 2911, 2911, 2911, 2329, 2326,  357,  363, 2339,
     560      364,  435,  454,  396,  465,  455,  506, 2320,  469, 2268,
     561      472, 2297, 2911,  235, 2911, 2911,  504, 2291, 2288, 2911,
     562     2261,  479,  243,  469,  373,  398,  480,  491,  439,  493,
     563      577,  492,  489,  510,  495,  497,  512,  280,  328,  499,
     564      496,  500,  520,  524,  231,  514,  526,  446,  518,  527,
     565     2289,  532,  533,  557,  541,  558,  561,  585,  530,  580,
     566      573,  559,  589,  595,  594,  604,  610,  603,  602,  605,
     567
     568      611, 2911, 2911,  677,  686, 2338,  692, 2911,  698, 2911,
     569     2284,  545, 2278, 2277,    0,  689, 2911, 2911,  704, 2276,
     570     2274, 2271,    0, 2293,  586,  634,  670,  713,  712,  674,
     571      702,  703,  706, 2290,  709,  716, 2266, 2264, 2911,    0,
     572      630,  731,  699,  721, 2244, 2296, 2911,  744,  752,  732,
     573      768,  779,  809,  792,  723, 2911, 2254, 2226,    0,  817,
     574     2271,  818,  736, 2911, 2247, 2221,  831, 2911, 2911, 2254,
     575     2911, 2911,  747,  748, 2230, 2228,  746, 2224, 2223, 2221,
     576        0, 2218,    0, 2187,  636,  757,  767,  793,  806,  768,
     577      808,  710,  811,  795,  826,  709,  827,  744,  745,  833,
     578
     579      830,  828,  818,  829,  839, 2217,  842,  838,  844,  329,
     580      846,  851,  852,  854,  858,  855,  862,  867,  864,  868,
     581      871,  872,  877,  878,  885,  875,  879,  886, 2216,  560,
     582      888,  889,  892,  891,  893,  896,  774,  900,  902,  904,
     583      901,  905,  908,  909,  911, 2214,  912,  916,  959,  915,
     584      921,  410,  917,  926,  929,  987,  983, 2208, 2205, 2204,
     585        0, 2203,    0,  974,  979, 2201,    0, 2198,    0, 2197,
     586        0, 2219, 2911,  959,  974, 2196, 2191,    0, 2190,    0,
     587     2911,  991, 1009, 1002, 2911, 1015, 1056, 2189, 1031, 1037,
     588     2187, 2911, 2911, 1020, 1028, 1065, 1047, 1121,  977, 1086,
     589
     590     1052, 2911, 2911, 2184, 2180, 2176,    0, 2174,    0, 2172,
     591        0, 2169,    0, 2911,  958, 1020,  955,  995,  997, 1048,
     592     1050, 1038, 1054, 1052, 1072, 1060, 1082, 1056, 1086, 1096,
     593     1097, 1100, 1102, 1106, 1104, 1108, 1103, 1016, 1111, 2170,
     594      772, 2168,  632, 2165, 1115, 1116, 1117, 1120, 1125, 1122,
     595     1123, 2162, 1127, 2161, 1133, 1134, 1135, 1139, 1140, 1144,
     596     1145, 2160, 1141, 2158, 1146, 1147, 1148, 1151, 1157, 1152,
     597     1159, 1149, 1165, 1162, 1163, 1168, 1177, 1166, 1167, 1181,
     598     1185, 1182, 1183, 2155, 1186, 1187,  953, 1243, 2149,    0,
     599     2148,    0, 2147,    0, 2145,    0, 1235, 2142,    0, 2139,
     600
     601        0, 2138, 2137, 2135,    0, 2132,    0, 1240, 2129, 1246,
     602     1262, 1235, 1297, 1253, 1202, 1200, 2911, 1304, 1332, 1315,
     603     2141, 2115, 2125, 2122,    0, 2119,    0, 2118,    0, 2117,
     604        0, 2115,    0, 2112,    0, 1222, 1188, 2112, 1226, 1224,
     605     1237, 1245, 1240, 1242, 1280, 1290, 1283,  990, 1291, 1244,
     606     1296, 1292, 1251, 1307, 1297, 1310, 1282, 1309, 1298, 1299,
     607     1324, 1325, 2111, 1332, 1327, 2110, 1314, 1328, 1329, 1337,
     608     2108, 1339, 1334, 1338, 1341, 2105, 1349, 1352, 2102, 1353,
     609     1354, 2101, 2100, 2098, 1355, 1358, 1359, 2095, 1360, 1365,
     610     1366, 1361, 1367, 1378, 2094, 2093, 1380, 1374, 2091, 1369,
     611
     612     1381, 2088, 1370, 2138, 2083,    0, 2081,    0, 2048,    0,
     613     2046,    0, 2045,    0, 2042,    0, 2039,    0, 2038,    0,
     614     1426, 1432, 1461, 1443, 2037, 2911, 1449, 1398, 1436, 1451,
     615     2035, 2911, 2032,    0, 2029,    0, 2028,    0, 2027,    0,
     616        0,    0, 2028,    0, 1437, 1440, 1382, 1443, 1426, 1393,
     617     1390, 1444, 1453, 1454, 1428, 1424, 1457, 1456, 1458, 1463,
     618     1472, 1468, 1477, 1475, 1508, 1481, 1482, 1484, 1483, 1487,
     619     1486, 2025, 1488, 1491, 1494, 2024, 2023, 2021, 1497, 1498,
     620     2018, 1499, 2017, 2016, 1505, 1500, 2014, 2007, 2005, 2004,
     621     2001, 1997, 1506, 1510, 1993, 1512, 1504, 1989, 2037, 2911,
     622
     623     1982,    0, 1981,    0,    0,    0, 1982,    0,    0,    0,
     624     2911,    0,    0,    0,    0, 1557, 1976, 2911, 2911, 1563,
     625     1975,    0, 1974,    0,    0,    0,    0, 1972, 1518, 1538,
     626     1972, 1523, 1540, 1543, 1551, 1541, 1554, 1552, 1559, 1545,
     627     1971, 1558, 1568, 1569, 1573, 1571, 1587, 1577, 1575, 1606,
     628     1582, 1583, 1586, 1588, 1589, 1590, 1591, 1970, 1968, 1595,
     629     1965, 1964, 1597, 1593, 1599, 1963, 1601, 1603,    0,    0,
     630        0, 1958, 1955, 1954, 1652,    0, 1953, 1951, 1948, 1947,
     631     1946, 1947, 1944, 1943, 1610, 1942, 1608, 1940, 1614, 1629,
     632     1604, 1630, 1616, 1632, 1607, 1635, 1637, 1665, 1937, 1641,
     633
     634     1936, 1642, 1646, 1648, 1654, 1643, 1647, 1935, 1652, 1933,
     635     1930, 1929, 1656, 1928, 1926, 1916, 1914, 1913, 1910, 1909,
     636     1908, 1906, 1889, 1880, 1879, 1876, 1869, 1659, 1660, 1869,
     637     1661, 1662, 1663, 1664, 1669, 1671, 1862, 1667, 1700, 1678,
     638     1860, 1676, 1688, 1689, 1684, 1683, 1690, 1694, 1856, 1835,
     639     1834, 1833, 1826, 1824, 1823, 1781, 1778, 1777, 1775, 1774,
     640     1773, 1774, 1772, 1695, 1696, 1702, 1697, 1704, 1708, 1707,
     641     1771, 1767, 1709, 1766, 1719, 1714, 1718, 1713, 1720, 1712,
     642     1674, 1602, 1521, 1519, 1382, 1199, 1197, 1721, 1726, 1077,
     643     1732, 1723, 1734, 1033, 1737, 1738, 1742,  991,  957,  865,
     644
     645      773,  695, 1736, 1743, 1744, 1749, 1748, 1750,  570,  528,
     646     1746,  385,  381, 1752, 1754,  277,  276, 1755, 1757, 1760,
     647     1762, 1761, 1763, 1765,  238,  203, 2911, 1839, 1852, 1865,
     648     1875, 1885, 1898, 1908, 1921, 1934, 1947, 1955, 1965, 1972,
     649     1979, 1986, 1993, 2000, 2007, 2014, 2021, 2028, 2035, 2039,
     650     2047, 2053, 2060, 2067, 2074, 2081, 2084, 2091, 2097, 2110,
     651     2123, 2130, 2137, 2144, 2151, 2154, 2161, 2164, 2171, 2174,
     652     2181, 2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2229,
     653     2236, 2243, 2250, 2257, 2260, 2267, 2270, 2277, 2280, 2287,
     654     2293, 2306, 2313, 2320, 2323, 2330, 2333, 2340, 2343, 2350,
     655
     656     2353, 2360, 2363, 2370, 2373, 2380, 2387, 2390, 2397, 2400,
     657     2407, 2414, 2421, 2424, 2431, 2434, 2441, 2444, 2451, 2454,
     658     2461, 2464, 2471, 2477, 2490, 2497, 2504, 2507, 2514, 2517,
     659     2524, 2527, 2534, 2537, 2544, 2547, 2554, 2557, 2564, 2567,
     660     2574, 2577, 2584, 2591, 2594, 2601, 2604, 2611, 2614, 2621,
     661     2624, 2627, 2633, 2640, 2649, 2656, 2663, 2666, 2673, 2676,
     662     2679, 2685, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713,
     663     2720, 2723, 2730, 2733, 2736, 2739, 2742, 2752, 2759, 2762,
     664     2765, 2768, 2775, 2782, 2789, 2792, 2799, 2806, 2813, 2820,
     665     2827, 2834, 2841, 2848, 2855, 2862, 2869, 2876, 2883, 2890,
     666
     667     2897
    664668    } ;
    665669
    666 static yyconst flex_int16_t yy_def[1088] =
     670static yyconst flex_int16_t yy_def[1102] =
    667671    {   0,
    668       913,    1,  914,  914,  913,    5,  915,  915,  916,  916,
    669       913,  913,  913,  913,  913,  913,  913,  917,  913,  913,
    670       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    671       913,   31,  913,  913,  913,  913,  913,  913,  918,  917,
    672       913,  913,  913,  913,  917,  913,  917,  917,  917,  917,
    673       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    674       917,  917,  917,  917,  913,  913,  913,  913,  913,  919,
    675       913,  913,  913,  920,  913,  913,  921,  913,  913,  922,
    676       913,  913,  913,  913,  913,  913,  913,  917,  913,  913,
    677       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    678 
    679       913,  913,  923,  913,  913,   30,  913,  913,  913,  913,
    680       924,   30,  913,   31,  913,  913,   31,  913,  913,  913,
    681       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    682       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    683       913,  925,  913,  913,  913,  913,  917,  926,  927,  913,
    684       913,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    685       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    686       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    687       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    688       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    689 
    690       913,  913,  913,  919,  919,  919,  913,  919,  913,  920,
    691       913,  928,  929,  921,  913,  913,  913,  913,  930,  931,
    692       932,  922,  913,  913,  913,  913,  913,  913,  913,  913,
    693       913,  913,  913,  913,  913,  933,  934,  913,  101,  913,
    694       913,  913,  913,  101,  923,  913,  101,  112,  248,  913,
    695       913,  913,  913,  913,  913,  913,  913,  935,  936,  937,
    696       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    697       913,  913,  913,  913,  938,  913,  939,  940,  941,  942,
    698       943,  944,  913,  945,  945,  945,  945,  945,  945,  945,
    699       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    700 
    701       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    702       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    703       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    704       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    705       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
    706       945,  945,  945,  946,  947,  948,  949,  950,  951,  952,
    707       953,  913,  913,  954,  955,  956,  957,  958,  959,  913,
    708       913,  913,  913,  913,  960,  961,  962,  963,  913,  913,
    709       913,  913,  913,  913,  913,  385,  913,  381,  388,  913,
    710       913,  964,  965,  966,  913,  913,  913,  966,  913,  913,
    711 
    712       913,  967,  968,  969,  970,  971,  972,  973,  974,  975,
    713       976,  913,  977,  977,  977,  977,  977,  977,  977,  977,
    714       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    715       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    716       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    717       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    718       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    719       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    720       977,  977,  977,  978,  979,  980,  981,  982,  983,  984,
    721       985,  986,  913,  987,  988,  989,  990,  991,  991,  992,
    722 
    723       993,  994,  995,  913,  504,  913,  913,  996,  913,  996,
    724       913,  913,  913,  913,  913,  913,  913,  913,  997,  998,
    725       999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
    726      1009, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    727      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    728      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    729      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    730      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    731      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
    732      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1012, 1013,
    733 
    734      1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
    735      1024, 1025, 1026, 1027,  913,  913,  913,  913, 1028,  913,
    736       617,  913,  913,  913,  621,  913, 1029, 1030, 1031, 1032,
    737      1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1039, 1039,
    738      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    739      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    740      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    741      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    742      1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    743      1041,  913, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
    744 
    745      1050, 1051,  913, 1052, 1053, 1054, 1055,  913,  708,  913,
    746       913,  913, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
    747      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    748      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    749      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    750      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1066,
    751      1067, 1068, 1069, 1070,  913, 1071, 1056, 1058, 1072, 1073,
    752      1063, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    753      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    754      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    755 
    756      1064, 1064, 1064, 1074, 1075, 1068, 1076, 1069, 1077, 1070,
    757      1078, 1079, 1072, 1080, 1073, 1064, 1064, 1064, 1064, 1064,
    758      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    759      1064, 1064, 1064, 1064, 1064, 1081, 1074, 1082, 1075, 1083,
    760      1076, 1084, 1077, 1085, 1078, 1086, 1079, 1080, 1064, 1064,
    761      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    762      1064, 1064, 1064, 1064, 1064, 1087, 1081, 1082, 1083, 1084,
    763      1058, 1085, 1086, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    764      1064, 1064, 1064, 1064, 1064, 1064, 1087, 1058, 1064, 1064,
    765      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    766 
    767      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
    768      1064, 1064,    0,  913,  913,  913,  913,  913,  913,  913,
    769       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    770       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    771       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    772       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    773       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    774       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    775       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    776       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    777 
    778       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    779       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    780       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    781       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    782       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    783       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    784       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    785       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    786       913,  913,  913,  913,  913,  913,  913
     672      927,    1,  928,  928,  927,    5,  929,  929,  930,  930,
     673      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
     674      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     675      927,   31,  927,  927,  927,  927,  927,  927,  932,  931,
     676      927,  927,  927,  927,  931,  927,  931,  931,  931,  931,
     677      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     678      931,  931,  931,  931,  927,  927,  927,  927,  927,  933,
     679      927,  927,  927,  934,  927,  927,  935,  927,  927,  936,
     680      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
     681      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     682
     683      927,  927,  937,  927,  927,   30,  927,  927,  927,  927,
     684      938,   30,  927,   31,  927,  927,   31,  927,  927,  927,
     685      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     686      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     687      927,  939,  927,  927,  927,  927,  931,  940,  941,  927,
     688      927,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     689      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     690      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     691      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     692      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
     693
     694      931,  927,  927,  927,  933,  933,  933,  927,  933,  927,
     695      934,  927,  942,  943,  935,  927,  927,  927,  927,  944,
     696      945,  946,  936,  927,  927,  927,  927,  927,  927,  927,
     697      927,  927,  927,  927,  927,  927,  947,  948,  927,  101,
     698      927,  927,  927,  927,  101,  937,  927,  101,  112,  249,
     699      927,  927,  927,  927,  927,  927,  927,  927,  949,  950,
     700      951,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     701      927,  927,  927,  927,  927,  952,  927,  953,  954,  955,
     702      956,  957,  958,  927,  959,  959,  959,  959,  959,  959,
     703      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     704
     705      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     706      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     707      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     708      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     709      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     710      959,  959,  959,  959,  959,  960,  961,  962,  963,  964,
     711      965,  966,  967,  927,  927,  968,  969,  970,  971,  972,
     712      973,  927,  927,  927,  927,  927,  974,  975,  976,  977,
     713      927,  927,  927,  927,  927,  927,  927,  387,  927,  383,
     714      390,  927,  927,  978,  979,  980,  927,  927,  927,  980,
     715
     716      927,  927,  927,  981,  982,  983,  984,  985,  986,  987,
     717      988,  989,  990,  927,  991,  991,  991,  991,  991,  991,
     718      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     719      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     720      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     721      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     722      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     723      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     724      991,  991,  991,  991,  991,  991,  991,  992,  993,  994,
     725      995,  996,  997,  998,  999, 1000,  927, 1001, 1002, 1003,
     726
     727     1004, 1005, 1005, 1006, 1007, 1008, 1009,  927,  508,  927,
     728      927, 1010,  927, 1010,  927,  927,  927,  927,  927,  927,
     729      927,  927, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
     730     1019, 1020, 1021, 1022, 1023, 1024, 1024, 1024, 1024, 1024,
     731     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     732     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     733     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     734     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     735     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     736     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
     737
     738     1024, 1024, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
     739     1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
     740      927,  927,  927,  927, 1042,  927,  623,  927,  927,  927,
     741      627,  927, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
     742     1051, 1052, 1053, 1054, 1053, 1053, 1053, 1053, 1053, 1053,
     743     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     744     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     745     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     746     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
     747     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,  927,
     748
     749     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
     750      927, 1066, 1067, 1068, 1069,  927,  716,  927,  927,  927,
     751     1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1078,
     752     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     753     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     754     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     755     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1079, 1080,
     756     1081, 1082, 1083, 1084,  927, 1085, 1070, 1072, 1086, 1087,
     757     1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     758     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     759
     760     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     761     1078, 1078, 1078, 1078, 1078, 1088, 1089, 1082, 1090, 1083,
     762     1091, 1084, 1092, 1093, 1086, 1094, 1087, 1078, 1078, 1078,
     763     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     764     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1095, 1088,
     765     1096, 1089, 1097, 1090, 1098, 1091, 1099, 1092, 1100, 1093,
     766     1094, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     767     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1101,
     768     1095, 1096, 1097, 1098, 1072, 1099, 1100, 1078, 1078, 1078,
     769     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     770
     771     1101, 1072, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     772     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
     773     1078, 1078, 1078, 1078, 1078, 1078,    0,  927,  927,  927,
     774      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     775      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     776      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     777      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     778      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     779      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     780      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     781
     782      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     783      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     784      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     785      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     786      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     787      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     788      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     789      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     790      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     791      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     792
     793      927
    787794    } ;
    788795
    789 static yyconst flex_int16_t yy_nxt[2969] =
     796static yyconst flex_int16_t yy_nxt[2998] =
    790797    {   0,
    791798       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    793800       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    794801       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    795        18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
    796        18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
    797        50,   51,   52,   53,   18,   54,   18,   55,   56,   18,
    798        57,   18,   58,   59,   60,   61,   62,   63,   18,   18,
    799        64,   65,   66,   67,   68,   69,   86,   94,   87,   87,
    800        69,   90,   91,   70,   73,   73,   73,   73,   73,   73,
    801 
    802        73,   73,   73,   73,   74,   73,   73,   73,   73,   73,
     802       18,   18,   18,   40,   18,   18,   18,   18,   18,   18,
     803       40,   18,   41,   42,   43,   44,   45,   46,   47,   48,
     804       49,   50,   51,   52,   53,   18,   54,   18,   55,   56,
     805       18,   57,   18,   58,   59,   60,   61,   62,   63,   18,
     806       18,   64,   65,   66,   67,   68,   69,   86,   94,   87,
     807       87,   69,   90,   91,   70,   73,   73,   73,   73,   73,
     808
     809       73,   73,   73,   73,   73,   74,   73,   73,   73,   73,
    803810       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
    804        73,   73,   73,   73,   73,   73,   73,   73,   73,   74,
     811       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
    805812       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    806        74,   74,   74,   74,   74,   73,   75,   73,   73,   74,
    807        76,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     813       74,   74,   74,   74,   74,   74,   74,   73,   75,   73,
     814       73,   74,   76,   74,   74,   74,   74,   74,   74,   74,
    808815       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    809        74,   74,   74,   74,   74,   73,   73,   73,   73,   78,
    810        78,   81,   81,  125,  126,   92,  143,   81,   81,   89,
    811        78,   78,   82,   83,   84,   84,   84,   82,   84,   83,
    812 
    813        85,   85,   85,   84,   93,   95,   89,  144,  148,  100,
    814        97,  101,  101,  101,  101,  101,  101,  258,  913,   96,
    815       102,   87,   98,   99,   87,  103,  163,  120,  145,   79,
    816        79,   79,   79,  146,  149,  104,  105,   89,  106,  106,
    817       106,  106,  107,  107,  121,   89,  122,  123,  150,  269,
    818       151,  270,  260,  266,  187,  108,   89,  657,  161,  109,
    819       162,  152,  153,  154,   89,  110,  111,  155,  156,  164,
    820       157,  112,   89,  158,  159,  147,  165,  108,   89,  184,
    821        89,  160,  166,  113,  212,   89,   89,   89,  201,   89,
    822        89,  110,  199,   89,  111,  105,   89,  114,  114,  114,
    823 
    824       114,  114,  114,   89,  171,  179,  172,  236,  198,   89,
    825       213,  182,  167,  311,  108,  173,  168,  183,  115,  180,
    826        89,  169,   89,  277,  116,  170,  181,  174,  256,  200,
    827       117,   89,  913,  237,   89,  175,  108,  176,   89,  202,
    828       177,  254,  118,  269,  178,  270,  292,  255,  185,  278,
    829       116,  127,  257,  186,  255,  128,  129,   89,  130,  145,
    830       131,  132,  913,  133,  146,  134,   89,  261,  264,  188,
    831       189,  263,  254,  255,  135,  136,  137,  196,  192,  190,
    832       255,  269,  191,  270,   89,  262,  193,  271,  194,  262,
    833       913,  263,  265,  195,  269,  138,  270,  263,  139,  269,
    834 
    835       269,  270,  270,   89,  323,  271,  147,  203,   83,   84,
    836        84,   84,  203,  206,  207,  204,   89,  263,  206,  269,
    837       197,  270,  269,  273,  270,  140,  141,   82,   83,   84,
    838        84,   84,   82,  321,  208,  208,  208,  208,  208,  208,
    839       215,  216,   89,  272,  269,  215,  270,  217,  269,  269,
    840       270,  270,  217,   84,   83,   84,   84,   84,   84,   89,
    841       286,  218,  218,  218,  218,   84,   83,   85,   85,   85,
    842        84,   89,  217,  247,  247,  247,  247,  247,  247,  248,
    843       248,  248,  248,   89,   89,  145,  284,   89,  219,   89,
    844       146,  217,  288,  285,   89,   89,  217,  217,   89,   89,
    845 
    846       217,  217,  287,  289,   89,  304,  460,  913,  217,  320,
    847        89,  217,  249,  217,  220,  217,  290,  221,  223,  306,
    848        89,  291,  224,  225,   89,  309,  305,  226,  227,   89,
    849       228,   89,  229,   89,  312,  913,   89,   89,  310,   89,
    850        89,  230,  231,  232,  105,   89,  107,  107,  107,  107,
    851       107,  107,  307,  308,  313,   89,   89,   89,  316,  314,
    852       317,  319,  233,  108,  251,  234,  251,  315,   89,  252,
    853       252,  252,  252,  252,  252,  322,   89,   89,  318,  250,
    854        89,  329,   89,  324,   89,  108,   89,   89,  337,  331,
    855       325,   89,   89,  235,  239,  239,  239,  239,  239,  239,
    856 
    857        89,  326,  253,   89,  328,  338,  330,   89,  327,  332,
    858       240,  241,  242,  341,  243,  242,   89,  145,  333,  345,
    859        89,  336,   89,   89,   89,  343,   89,  244,  334,  335,
    860       439,  339,  242,  241,  242,   89,  342,  243,   89,  242,
    861       293,  294,  295,  346,  296,  297,  340,  344,  298,   89,
    862       299,  350,   89,  351,   89,  300,  301,  302,  356,  303,
    863        89,   89,  348,  463,  347,  352,  206,  207,  215,  216,
    864       349,  206,   89,  215,  353,  203,   83,   84,   84,   84,
    865       203,  206,  207,  204,  357,  413,  206,  208,  208,  208,
    866       208,  208,  208,  354,  207,  370,   89,  371,  354,  370,
    867 
    868       355,  371,  208,  208,  208,  208,  208,  208,  362,  362,
    869       362,  362,  371,  371,  208,  208,  208,  208,  208,  208,
    870       370,  370,  371,  371,  379,  370,  370,  371,  371,  372,
    871       370,  370,  371,  371,  370,  373,  371,  370,  370,  371,
    872       371,  363,  379,  379,  380,  913,  380,  379,  390,  381,
    873       381,  381,  381,  381,  381,  383,  269,  383,  270,  105,
    874       383,  248,  248,  248,  248,  379,  385,  385,  385,  385,
    875       385,  385,  400,  269,  390,  270,   89,  383,   89,  383,
    876       387,   89,  382,  402,  383,  107,  107,  107,  107,  107,
    877       107,   89,   89,  417,  249,   89,  414,  416,  400,  386,
    878 
    879       418,   89,  108,  252,  252,  252,  252,  252,  252,  403,
    880       415,  419,   89,   89,   89,   89,   89,  420,  261,  913,
    881       431,  421,  432,  586,  108,  388,  388,  388,  388,  388,
    882       388,  393,  426,   89,  107,  107,  107,  107,  107,  107,
    883        89,  240,  251,  242,  251,  243,  242,  252,  252,  252,
    884       252,  252,  252,  913,  395,  422,  396,   89,  389,  427,
    885       397,  423,  424,  242,   89,  242,  398,  261,  243,   89,
    886       242,  114,  114,  114,  114,  114,  114,   89,  399,  428,
    887       425,   89,  396,   89,   89,   89,  397,  435,   89,   89,
    888       437,   89,   89,  429,  430,   89,  433,  438,   89,   89,
    889 
    890       444,   89,  436,  445,  266,  446,   89,   89,  434,  440,
    891       441,   89,  442,  443,   89,  448,   89,  449,   89,   89,
    892       447,   89,   89,  450,  453,  451,  454,  455,   89,  452,
    893        89,   89,   89,   89,   89,   89,   89,  457,   89,   89,
    894       462,   89,   89,  459,  456,   89,  458,  461,  465,   89,
    895       470,   89,  464,   89,   89,   89,  466,  145,  468,  467,
    896        89,  471,  469,   89,  477,  472,  475,   89,   89,  474,
    897        89,  473,   89,  476,   89,  480,  479,  481,  478,  354,
    898       207,  207,   89,  482,  354,  532,  355,  205,  483,  217,
    899       217,  217,  217,  362,  362,  362,  362,  370,  370,  371,
    900 
    901       371,   89,  381,  381,  381,  381,  381,  381,  380,  509,
    902       380,  509,  517,  381,  381,  381,  381,  381,  381,  510,
    903        89,  511,  493,  504,  504,  504,  504,  504,  504,  239,
    904       239,  239,  239,  239,  239,  509,  518,  509,   89,  240,
    905        89,  242,   89,  243,  242,  248,  248,  248,  248,  107,
    906       107,  512,   89,  537,  533,  534,  505,  513,  513,   89,
    907        89,  242,  384,  242,   89,  541,  243,   89,  242,  385,
    908       385,  385,  385,  385,  385,  393,  512,   89,  387,  535,
    909       542,  539,   89,  513,  513,  240,  241,  242,   89,  243,
    910       242,  388,  388,  388,  388,  388,  388,  536,  395,  543,
    911 
    912       396,   89,  386,  553,  397,   89,  913,  242,  241,  242,
    913       398,  514,  243,  514,  242,   89,  515,  515,  515,  515,
    914       515,  515,  399,   89,  389,   89,  396,   89,  544,  395,
    915       397,  396,  538,   89,  540,  397,   89,   89,   89,   89,
    916        89,  519,  549,  545,  546,   89,  552,   89,   89,  516,
    917       554,   89,  557,  399,  548,  547,   89,  396,   89,   89,
    918       550,  397,   89,  556,   89,   89,  555,  551,  558,   89,
    919       563,   89,  559,   89,  565,  561,   89,   89,   89,   89,
    920       560,   89,  562,   89,  564,   89,  566,   89,   89,   89,
    921        89,   89,  569,  567,  571,   89,  573,   89,  568,  578,
    922 
    923       570,  572,  574,   89,   89,   89,  575,   89,   89,   89,
    924        89,  577,  579,  583,  576,  580,  587,  581,   89,   89,
    925       585,   89,   89,  584,   89,  582,   89,  590,   89,  591,
    926        89,   89,  589,  588,  597,  594,  593,  596,  509,  592,
    927       207,  913,  620,  639,  595,  641,  598,  217,  217,  217,
    928       217,  504,  504,  504,  504,  504,  504,  385,  385,  385,
    929       385,  385,  385,   89,  509,   89,   89,  240,  620,  242,
    930       646,  243,  242,  388,  388,  388,  388,  388,  388,  640,
    931        89,  710,  509,  642,  505,   89,   89,  509,  680,  242,
    932       506,  242,  510,  616,  243,  616,  242,  619,  617,  617,
    933 
    934       617,  617,  617,  617,  710,  651,  507,  644,  509,   89,
    935        89,   89,  648,  509,  515,  515,  515,  515,  515,  515,
    936       514,   89,  514,  643,  645,  515,  515,  515,  515,  515,
    937       515,  618,  621,  621,  621,  621,  621,  621,   89,   89,
    938        89,  649,   89,   89,   89,   89,   89,   89,  622,  647,
    939       623,  653,  624,  623,  650,   89,  655,  656,   89,  863,
    940       654,  652,   89,   89,  660,  625,   89,  658,  659,   89,
    941       623,  661,  623,  663,  662,  624,   89,  623,   89,   89,
    942       665,  666,   89,   89,   89,  664,   89,   89,   89,   89,
    943        89,  668,  669,  667,  674,   89,   89,   89,  671,  675,
    944 
    945        89,  670,  672,  673,  676,   89,   89,   89,   89,   89,
    946       678,   89,   89,  682,   89,  681,  685,  679,  677,  687,
    947       684,  686,   89,   89,  913,  888,   89,  689,  688,  683,
    948       504,  504,  504,  504,  504,  504,  617,  617,  617,  617,
    949       617,  617,  616,  726,  616,  690,   89,  617,  617,  617,
    950       617,  617,  617,  621,  621,  621,  621,  621,  621,  725,
    951       710,  710,   89,  615,  708,  708,  708,  708,  708,  708,
    952       711,   89,  711,   89,   89,  711,  721,  913,   89,  730,
    953       622,  723,  623,  710,  624,  623,  625,  724,   89,  722,
    954        89,   89,  711,   89,  711,  728,  727,  709,  729,  711,
    955 
    956        89,   89,  623,  731,  623,   89,  732,  624,   89,  623,
    957        89,   89,   89,  733,  738,  740,  734,   89,   89,   89,
    958        89,   89,   89,   89,   89,  736,   89,  735,  743,  739,
    959       746,   89,  737,  741,   89,   89,   89,  742,  744,   89,
    960       749,   89,   89,   89,  745,  753,  747,   89,  748,  754,
    961       755,  751,  752,   89,  750,   89,   89,  756,  913,   89,
    962       772,   89,  757,  621,  621,  621,  621,  621,  621,  773,
    963       758,  708,  708,  708,  708,  708,  708,   89,   89,   89,
    964        89,  777,  774,  776,  775,   89,  781,  622,  778,  623,
    965        89,  624,  623,  779,   89,   89,  712,  780,  784,   89,
    966 
    967        89,  786,   89,   89,  709,  787,  789,  782,  783,  623,
    968        89,  623,  788,  790,  624,   89,  623,   89,   89,   89,
    969        89,  785,   89,   89,   89,  792,   89,   89,  791,  793,
    970        89,  794,   89,  796,   89,  802,   89,   89,   89,   89,
    971       797,  795,   89,  799,  818,  798,  803,   89,  800,  708,
    972       708,  708,  708,  708,  708,  801,  816,   89,   89,  817,
    973        89,  821,  819,   89,   89,  826,  824,  820,   89,   89,
    974        89,  827,  828,   89,   89,  822,   89,  825,   89,  830,
    975       829,  831,  765,   89,   89,  832,  823,   89,   89,   89,
    976        89,   89,  852,   89,   89,   89,   89,  833,  854,  855,
    977 
    978       857,   89,   89,  913,  858,  913,  834,  835,  851,  850,
    979        89,   89,  856,  853,  849,   89,   89,   89,  860,  861,
    980       862,  864,   89,   89,  859,   89,   89,   89,  876,   89,
    981       875,   89,   89,  865,  880,   89,  877,   89,  882,   89,
    982       883,   89,   89,  874,  887,   89,   89,  878,  884,  881,
    983       886,   89,   89,  879,  885,  889,  890,   89,   89,   89,
    984       891,   89,  892,  893,  894,   89,   89,   89,  895,  896,
    985        89,   89,   89,  899,   89,  901,   89,  902,   89,  897,
    986        89,  900,  898,   89,   89,   89,   89,   89,   89,   89,
    987        89,   89,  906,   89,   89,  905,  913,  907,  903,  904,
    988 
    989       912,  913,  873,  913,  910,  872,  913,  908,  909,  870,
    990       911,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    991        71,   71,   71,   71,   77,   77,   77,   77,   77,   77,
    992        77,   77,   77,   77,   77,   77,   77,   80,   80,   80,
    993        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
    994        88,  913,  869,   88,  913,   88,   88,   88,   88,   88,
    995       142,  868,  913,  867,  142,  142,  142,  142,  142,  142,
    996       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
    997       205,  205,  205,  210,   89,   89,  210,   89,  210,  210,
    998       210,  210,  210,  214,  913,  214,  214,  848,  214,  214,
    999 
    1000       214,  214,  214,  214,  913,  214,  222,  847,  845,  222,
    1001       222,  222,  222,  222,  222,  222,  222,  913,  222,  245,
    1002       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
    1003       245,  245,  259,  259,  843,  259,  913,  841,  913,  259,
    1004       275,  839,  837,  275,   89,  275,  275,  275,  275,  275,
    1005       279,   89,  279,   89,   89,   89,  279,  281,   89,  281,
    1006        89,   89,   89,  281,  358,   89,  358,   89,   89,  913,
    1007       358,  360,  815,  360,  813,  913,  913,  360,  364,  810,
    1008       364,  808,  806,   89,  364,  366,   89,  366,   89,   89,
    1009        89,  366,  368,   89,  368,   89,  771,  768,  368,  375,
    1010 
    1011       767,  375,  765,  211,  761,  375,  377,  760,  377,  692,
    1012        89,   89,  377,  392,   89,  392,  394,  394,   89,  394,
    1013       394,  394,   89,  394,  259,  259,   89,  259,  275,   89,
    1014        89,  275,   89,  275,  275,  275,  275,  275,  404,   89,
    1015       404,   89,   89,   89,  404,  406,   89,  406,   89,   89,
    1016       719,  406,  408,  718,  408,  716,  714,  712,  408,  279,
    1017       619,  279,  410,  707,  410,  706,  704,  702,  410,  281,
    1018       700,  281,   88,  698,  696,   88,  694,   88,   88,   88,
    1019        88,   88,  205,  205,  205,  205,  205,  205,  205,  205,
    1020       205,  205,  205,  205,  205,  484,  484,  484,  484,  484,
    1021 
    1022       484,  484,  484,  484,  484,  484,  484,  484,  485,  692,
    1023       485,   89,   89,   89,  485,  487,   89,  487,   89,   89,
    1024        89,  487,  489,   89,  489,   89,   89,   89,  489,  358,
    1025        89,  358,  491,   89,  491,   89,  638,  636,  491,  360,
    1026       634,  360,  494,  632,  494,  630,  628,  519,  494,  364,
    1027       626,  364,  496,  626,  496,  615,  614,  612,  496,  366,
    1028       499,  366,  498,  499,  498,  610,  608,  606,  498,  368,
    1029       604,  368,  500,  602,  500,  600,   89,   89,  500,  375,
    1030        89,  375,  502,   89,  502,   89,   89,   89,  502,  377,
    1031        89,  377,  508,  531,  508,  529,  508,  527,  508,  392,
    1032 
    1033       525,  392,  523,  392,  521,  392,  394,  394,  507,  394,
    1034       394,  394,  506,  394,  520,  503,  520,  501,  371,  371,
    1035       520,  522,  499,  522,  497,  495,  492,  522,  524,  490,
    1036       524,  488,  486,   89,  524,  404,   89,  404,  526,   89,
    1037       526,  412,  411,  409,  526,  406,  407,  406,  528,  405,
    1038       528,  276,  271,  270,  528,  408,  401,  408,  530,  401,
    1039       530,  258,  391,  391,  530,  410,  246,  410,   88,  384,
    1040       378,   88,  376,   88,   88,   88,   88,   88,  484,  484,
    1041       484,  484,  484,  484,  484,  484,  484,  484,  484,  484,
    1042       484,  599,  374,  599,  370,  369,  367,  599,  485,  365,
    1043 
    1044       485,  601,  361,  601,  359,  211,  207,  601,  487,   89,
    1045       487,  603,  283,  603,  282,  280,  276,  603,  489,  271,
    1046       489,  605,  274,  605,  271,  269,  268,  605,  491,  267,
    1047       491,  607,  246,  607,  238,   87,   87,  607,  494,   89,
    1048       494,  609,  211,  609,  209,   87,  124,  609,  496,  119,
    1049       496,  498,   89,  498,  913,   72,   72,  498,  611,  913,
    1050       611,  913,  913,  913,  611,  500,  913,  500,  613,  913,
    1051       613,  913,  913,  913,  613,  502,  913,  502,  508,  913,
    1052       508,  913,  508,  913,  508,  394,  913,  394,  913,  913,
    1053       913,  394,  627,  913,  627,  913,  913,  913,  627,  520,
    1054 
    1055       913,  520,  629,  913,  629,  913,  913,  913,  629,  522,
    1056       913,  522,  631,  913,  631,  913,  913,  913,  631,  524,
    1057       913,  524,  633,  913,  633,  913,  913,  913,  633,  526,
    1058       913,  526,  635,  913,  635,  913,  913,  913,  635,  528,
    1059       913,  528,  637,  913,  637,  913,  913,  913,  637,  530,
    1060       913,  530,   88,  913,  913,   88,  913,   88,   88,   88,
    1061        88,   88,  691,  691,  691,  691,  691,  691,  691,  691,
    1062       691,  691,  691,  691,  691,  693,  913,  693,  913,  913,
    1063       913,  693,  599,  913,  599,  695,  913,  695,  913,  913,
    1064       913,  695,  601,  913,  601,  697,  913,  697,  913,  913,
    1065 
    1066       913,  697,  603,  913,  603,  699,  913,  699,  913,  913,
    1067       913,  699,  605,  913,  605,  701,  913,  701,  913,  913,
    1068       913,  701,  607,  913,  607,  703,  913,  703,  913,  913,
    1069       913,  703,  609,  913,  609,  705,  913,  705,  913,  913,
    1070       913,  705,  611,  913,  611,   88,  913,   88,  913,  913,
    1071       913,   88,  613,  913,  613,  508,  913,  508,  913,  913,
    1072       913,  508,  713,  913,  713,  913,  913,  913,  713,  627,
    1073       913,  627,  715,  913,  715,  913,  913,  913,  715,  629,
    1074       913,  629,  717,  913,  717,  913,  913,  913,  717,  631,
    1075       913,  631,  142,  913,  142,  913,  913,  913,  142,  633,
    1076 
    1077       913,  633,  720,  913,  720,  635,  913,  635,   88,  913,
    1078       913,   88,  913,   88,   88,   88,   88,   88,  637,  913,
    1079       637,  691,  691,  691,  691,  691,  691,  691,  691,  691,
    1080       691,  691,  691,  691,  759,  913,  759,  913,  913,  913,
    1081       759,  693,  913,  693,  210,  913,  210,  913,  913,  913,
    1082       210,  695,  913,  695,  762,  913,  762,  697,  913,  697,
    1083       210,  913,  913,  210,  913,  210,  210,  210,  210,  210,
    1084       699,  913,  699,  763,  913,  763,  701,  913,  701,  703,
    1085       913,  703,  764,  913,  764,  705,  913,  705,   88,  913,
    1086        88,  766,  913,  766,  913,  913,  913,  766,  713,  913,
    1087 
    1088       713,  275,  913,  275,  913,  913,  913,  275,  715,  913,
    1089       715,  769,  913,  769,  717,  913,  717,  142,  913,  142,
    1090       770,  913,  770,  913,  913,  913,  770,   88,  913,  913,
    1091        88,  913,   88,   88,   88,   88,   88,  804,  913,  804,
    1092       759,  913,  759,  210,  913,  210,  805,  913,  805,  913,
    1093       913,  913,  805,  807,  913,  807,  913,  913,  913,  807,
    1094       809,  913,  809,  913,  913,  913,  809,  811,  913,  811,
    1095       812,  913,  812,  913,  913,  913,  812,  814,  913,  814,
    1096       913,  913,  913,  814,  836,  913,  836,  913,  913,  913,
    1097       836,  838,  913,  838,  913,  913,  913,  838,  840,  913,
    1098 
    1099       840,  913,  913,  913,  840,  842,  913,  842,  913,  913,
    1100       913,  842,  844,  913,  844,  913,  913,  913,  844,  846,
    1101       913,  846,  913,  913,  913,  846,  637,  913,  637,  913,
    1102       913,  913,  637,  866,  913,  866,  913,  913,  913,  866,
    1103       699,  913,  699,  913,  913,  913,  699,  703,  913,  703,
    1104       913,  913,  913,  703,   88,  913,   88,  913,  913,  913,
    1105        88,  871,  913,  871,  913,  913,  913,  871,  142,  913,
    1106       142,  913,  913,  913,  142,  210,  913,  210,  913,  913,
    1107       913,  210,   11,  913,  913,  913,  913,  913,  913,  913,
    1108       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1109 
    1110       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1111       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1112       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1113       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1114       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1115       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1116       913,  913,  913,  913,  913,  913,  913,  913
     816       74,   74,   74,   74,   74,   74,   74,   73,   73,   73,
     817       73,   78,   78,   81,   81,  125,  126,   92,  143,   81,
     818       81,   89,   78,   78,   82,   83,   84,   84,   84,   82,
     819
     820       84,   83,   85,   85,   85,   84,   93,   95,   89,  180,
     821      144,  100,   97,  101,  101,  101,  101,  101,  101,   89,
     822      200,   96,  102,   87,   98,   99,   87,  103,  148,  120,
     823       89,  145,   79,   79,   79,   79,  146,  104,  105,  164,
     824      106,  106,  106,  106,  107,  107,  121,   89,  122,  123,
     825      150,  162,  151,  163,  149,   89,   89,  108,  202,   89,
     826      165,  109,  213,   89,  237,   89,   89,  166,  110,  111,
     827      185,   89,  188,  167,  112,  181,   89,  199,   89,  147,
     828      108,  172,  182,  173,   89,  278,  113,  201,  214,  183,
     829      238,   89,  174,  257,  110,  184,   89,  111,  105,  322,
     830
     831      114,  114,  114,  114,  114,  114,  152,  153,  154,   89,
     832      203,  279,  155,  156,  287,  157,  158,  108,  258,  159,
     833      160,  115,  259,   89,   89,   89,  186,  161,  116,   89,
     834       89,  187,  168,   89,  117,  255,  169,  189,  190,  145,
     835      108,  170,  256,  314,  146,  171,  118,  191,   89,  927,
     836      192,  207,  208,  175,  116,  127,  207,  197,  261,  128,
     837      129,  176,  130,  177,  131,  132,  178,  133,  256,  134,
     838      179,   89,  209,  209,  209,  209,  209,  209,  135,  136,
     839      137,   89,   89,  193,   89,  267,  265,  147,  270,  443,
     840      271,  194,  263,  195,  270,  270,  271,  271,  196,  264,
     841
     842      138,  198,  315,  139,  204,   83,   84,   84,   84,  204,
     843      256,  266,  205,   82,   83,   84,   84,   84,   82,   84,
     844       83,   84,   84,   84,   84,  264,   89,  270,  255,  271,
     845      140,  141,  216,  217,   89,  289,  256,  216,   89,  218,
     846      249,  249,  249,  249,  218,   84,   83,   85,   85,   85,
     847       84,   89,  272,  219,  219,  219,  219,  248,  248,  248,
     848      248,  248,  248,   89,  218,  264,  270,  290,  271,  927,
     849      252,  484,  252,  272,  250,  253,  253,  253,  253,  253,
     850      253,  220,  927,  263,  218,  270,  270,  271,  271,  218,
     851      218,  264,   89,  218,  218,  273,  270,  927,  271,   89,
     852
     853      270,  218,  271,  270,  218,  271,  218,  221,  218,  254,
     854      222,  224,  145,  927,  293,  225,  226,  146,  262,  325,
     855      227,  228,   89,  229,  105,  230,  107,  107,  107,  107,
     856      107,  107,   89,   89,  231,  232,  233,  270,  274,  271,
     857      288,  927,   89,  108,   89,   89,   89,  285,   89,   89,
     858       89,  291,   89,   89,  286,  311,  234,   89,  294,  235,
     859      251,  306,  292,   89,  307,   89,  108,   89,  312,  309,
     860      310,   89,  308,   89,  318,  316,  317,   89,  319,   89,
     861       89,   89,  313,   89,  323,   89,   89,  236,  240,  240,
     862      240,  240,  240,  240,   89,  358,  320,  324,  326,  321,
     863
     864      328,  338,  327,  330,  241,  242,  243,  329,  244,  243,
     865       89,   89,   89,   89,   89,  331,  332,  372,  145,  373,
     866      333,  359,  245,   89,  464,  343,   89,  243,  242,  243,
     867       89,  341,  244,   89,  243,  295,  296,  297,   89,  298,
     868      299,  334,   89,  300,  339,  301,  342,   89,   89,  335,
     869      302,  303,  304,  345,  305,   89,   89,   89,   89,  336,
     870      337,  340,  344,   89,   89,  372,  349,  373,  352,  350,
     871      353,  354,  381,  381,  347,  346,  348,  351,  204,   83,
     872       84,   84,   84,  204,  355,   89,  205,  207,  208,   89,
     873      216,  217,  207,  207,  208,  216,  381,  564,  207,  356,
     874
     875      208,  372,  415,  373,  356,  372,  357,  373,  209,  209,
     876      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
     877      209,  209,  209,  209,  209,  209,  364,  364,  364,  364,
     878      373,  373,  374,  372,  372,  373,  373,  372,  375,  373,
     879      372,  381,  373,  372,  372,  373,  373,  372,  382,  373,
     880      382,  927,  927,  383,  383,  383,  383,  383,  383,  385,
     881      365,  385,   89,   89,  385,  381,  387,  387,  387,  387,
     882      387,  387,  105,  392,  249,  249,  249,  249,  270,  270,
     883      271,  271,  385,  423,  385,  429,  402,  384,  389,  385,
     884      107,  107,  107,  107,  107,  107,  404,   89,   89,  392,
     885
     886      388,  253,  253,  253,  253,  253,  253,  108,  250,  252,
     887       89,  252,  402,  432,  253,  253,  253,  253,  253,  253,
     888       89,   89,  405,  431,  262,   89,  421,   89,  416,  927,
     889      108,  390,  390,  390,  390,  390,  390,  395,  417,  563,
     890      107,  107,  107,  107,  107,  107,   89,  241,   89,  243,
     891      471,  244,  243,  114,  114,  114,  114,  114,  114,   89,
     892      397,   89,  418,  398,   89,  391,  419,  399,  425,  424,
     893      243,   89,  243,  400,  262,  244,  420,  243,  422,   89,
     894       89,   89,   89,   89,  437,  401,   89,  267,  435,  398,
     895      436,   89,   89,  399,  426,   89,  441,   89,  430,   89,
     896
     897      427,  428,  433,  434,   89,   89,  442,   89,   89,  438,
     898      439,   89,  448,  440,  450,   89,  449,   89,   89,  444,
     899       89,   89,  445,  453,   89,   89,  446,  447,   89,  452,
     900       89,   89,   89,  455,  451,  457,  458,  454,   89,   89,
     901      456,   89,   89,  459,   89,   89,   89,  461,  467,   89,
     902      462,  466,  463,   89,   89,   89,  465,   89,   89,  469,
     903      460,   89,   89,  468,   89,   89,  474,  145,   89,   89,
     904       89,  470,  473,  472,   89,  485,  475,  479,  481,   89,
     905      478,  476,   89,  477,  480,  208,  482,  483,  356,  208,
     906      372,  206,  373,  356,  486,  357,  218,  218,  218,  218,
     907
     908      487,  364,  364,  364,  364,  372,   89,  373,   89,  603,
     909       89,   89,   89,  383,  383,  383,  383,  383,  383,  382,
     910      521,  382,  536,  538,  383,  383,  383,  383,  383,  383,
     911      497,  508,  508,  508,  508,  508,  508,  240,  240,  240,
     912      240,  240,  240,   89,   89,  522,  656,  241,   89,  243,
     913       89,  244,  243,  249,  249,  249,  249,  107,  107,  390,
     914      390,  390,  390,  390,  390,  509,  513,  539,  540,   89,
     915      243,  386,  243,   89,  513,  244,  514,  243,  387,  387,
     916      387,  387,  387,  387,  515,  395,   89,  389,  561,  537,
     917      516,   89,  513,  391,  241,  242,  243,  517,  244,  243,
     918
     919      513,   89,  517,   89,  543,   89,  927,   89,  397,   89,
     920      541,  398,  388,   89,  542,  399,  544,  243,  242,  243,
     921      516,  400,  244,  517,  243,   89,  547,  545,  517,  397,
     922       89,  549,  398,  401,  546,   89,  399,  398,  518,   89,
     923      518,  399,  523,  519,  519,  519,  519,  519,  519,   89,
     924       89,  548,  550,   89,  401,   89,   89,   89,  398,   89,
     925      555,   89,  399,  558,   89,  551,  552,  560,   89,   89,
     926       89,  554,  553,   89,  556,   89,   89,  520,   89,  562,
     927       89,  557,  559,  567,  569,  571,   89,   89,   89,  565,
     928      570,  566,   89,   89,   89,  572,  568,   89,   89,   89,
     929
     930       89,   89,   89,  575,   89,   89,  573,  579,  577,  574,
     931       89,  580,   89,  584,  576,   89,   89,  578,   89,   89,
     932       89,   89,  581,  583,  588,  586,  582,  589,  592,  591,
     933       89,  585,  587,  590,   89,   89,   89,  593,   89,   89,
     934       89,   89,  595,  596,  594,  208,  597,  600,  513,  602,
     935      626,  604,  599,  927,  646,  927,  598,  218,  218,  218,
     936      218,  601,  508,  508,  508,  508,  508,  508,  387,  387,
     937      387,  387,  387,  387,  513,   89,  626,   89,  241,   89,
     938      243,  513,  244,  243,  390,  390,  390,  390,  390,  390,
     939       89,  514,  645,   89,  647,   89,  509,   89,   89,  513,
     940
     941      648,  243,  510,  243,   89,  665,  244,  513,  243,  625,
     942      649,  650,  658,  661,  622,  651,  622,  652,  511,  623,
     943      623,  623,  623,  623,  623,  513,  519,  519,  519,  519,
     944      519,  519,  518,   89,  518,   89,   89,  519,  519,  519,
     945      519,  519,  519,   89,   89,   89,  653,  655,  654,   89,
     946       89,   89,   89,  624,  627,  627,  627,  627,  627,  627,
     947       89,  663,   89,   89,  657,  662,  660,   89,  659,  668,
     948      628,  666,  629,  667,  630,  629,  664,   89,   89,  671,
     949       89,   89,   89,  670,  673,   89,  669,   89,  631,  672,
     950       89,   89,   89,  629,   89,  629,  674,  675,  630,  676,
     951
     952      629,  677,   89,  679,  678,   89,   89,   89,   89,  680,
     953      682,   89,   89,   89,   89,  683,  684,  681,   89,   89,
     954       89,  688,   89,   89,  686,  693,  690,   89,  689,  687,
     955      685,   89,  692,   89,   89,   89,  691,  695,  902,  696,
     956      718,  718,  694,   89,  732,  698,   89,  697,  508,  508,
     957      508,  508,  508,  508,  623,  623,  623,  623,  623,  623,
     958      622,  736,  622,  735,  718,  623,  623,  623,  623,  623,
     959      623,  627,  627,  627,  627,  627,  627,   89,  718,   89,
     960      741,   89,  621,  716,  716,  716,  716,  716,  716,  719,
     961       89,  719,  734,   89,  719,  729,   89,   89,  740,  628,
     962
     963      731,  629,  718,  630,  629,  631,   89,   89,  730,   89,
     964       89,   89,  719,  738,  719,  739,   89,  717,  733,  719,
     965      737,   89,  629,  742,  629,   89,  744,  630,   89,  629,
     966       89,  743,  750,  748,   89,   89,   89,   89,  745,   89,
     967       89,   89,  746,  747,   89,  749,  753,   89,  756,  751,
     968       89,   89,   89,   89,  754,  752,  759,   89,   89,   89,
     969      764,   89,  755,   89,  757,   89,  758,  763,  765,  762,
     970      760,   89,  768,  766,  767,  927,   89,  927,  761,  716,
     971      716,  716,  716,  716,  716,  627,  627,  627,  627,  627,
     972      627,   89,  782,   89,   89,  628,   89,  629,   89,  630,
     973
     974      629,  783,  784,  786,   89,   89,  785,   89,  790,  787,
     975      798,   89,   89,  717,  788,  791,  792,  793,  629,  720,
     976      629,   89,   89,  630,   89,  629,   89,  789,   89,  796,
     977       89,  795,  801,  799,  794,   89,   89,  800,  802,   89,
     978       89,   89,   89,   89,   89,  797,   89,  804,   89,  803,
     979       89,  805,   89,  808,   89,  806,   89,   89,  927,   89,
     980       89,   89,  814,   89,  807,  815,  809,   89,  812,   89,
     981      811,  810,  832,  813,  716,  716,  716,  716,  716,  716,
     982      828,  829,   89,   89,  830,   89,  836,  831,   89,  839,
     983       89,  837,  834,  833,   89,   89,   89,  840,  841,   89,
     984
     985       89,   89,  835,  838,  843,   89,  842,   89,  775,   89,
     986      844,  845,   89,   89,   89,   89,   89,   89,   89,  866,
     987       89,  862,   89,  846,   89,  868,  871,  869,  847,   89,
     988      927,   89,  848,  865,  872,  864,   89,   89,  870,  867,
     989      863,   89,   89,   89,  874,  875,  876,   89,   89,   89,
     990       89,  873,  877,   89,  878,   89,  889,   89,  890,  891,
     991       89,   89,   89,  879,  894,  896,   89,   89,  901,  888,
     992      897,   89,   89,   89,   89,  892,   89,  895,  899,   89,
     993      898,  893,  900,  903,  904,   89,  906,   89,  905,   89,
     994       89,   89,  907,  908,  909,   89,   89,   89,  910,   89,
     995
     996      913,   89,   89,   89,  915,   89,  916,   89,   89,  911,
     997       89,  912,  914,   89,   89,   89,   89,  920,   89,   89,
     998       89,  917,  919,  921,   89,   89,  918,   89,  926,  927,
     999      927,  887,  924,  927,  886,  922,  923,  927,  925,   71,
     1000       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     1001       71,   71,   77,   77,   77,   77,   77,   77,   77,   77,
     1002       77,   77,   77,   77,   77,   80,   80,   80,   80,   80,
     1003       80,   80,   80,   80,   80,   80,   80,   80,   88,  884,
     1004      927,   88,  883,   88,   88,   88,   88,   88,  142,  927,
     1005      882,  927,  142,  142,  142,  142,  142,  142,  206,  206,
     1006
     1007      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
     1008      206,  211,  881,   89,  211,   89,  211,  211,  211,  211,
     1009      211,  215,   89,  215,  215,  927,  215,  215,  215,  215,
     1010      215,  215,  861,  215,  223,  927,  860,  223,  223,  223,
     1011      223,  223,  223,  223,  223,  858,  223,  246,  246,  246,
     1012      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
     1013      260,  260,  927,  260,  856,  927,  854,  260,  276,  927,
     1014      852,  276,  850,  276,  276,  276,  276,  276,  280,   89,
     1015      280,   89,   89,   89,  280,  282,   89,  282,   89,   89,
     1016       89,  282,  360,   89,  360,   89,   89,   89,  360,  362,
     1017
     1018       89,  362,  927,  827,  825,  362,  366,  927,  366,  927,
     1019      822,  820,  366,  368,  818,  368,   89,   89,   89,  368,
     1020      370,   89,  370,   89,   89,   89,  370,  377,  781,  377,
     1021      778,  777,  775,  377,  379,  212,  379,  771,  770,  700,
     1022      379,  394,   89,  394,  396,  396,   89,  396,  396,  396,
     1023       89,  396,  260,  260,   89,  260,  276,   89,   89,  276,
     1024       89,  276,  276,  276,  276,  276,  406,   89,  406,   89,
     1025       89,   89,  406,  408,   89,  408,   89,   89,   89,  408,
     1026      410,   89,  410,  727,  726,  724,  410,  280,  722,  280,
     1027      412,  720,  412,  625,  715,  714,  412,  282,  712,  282,
     1028
     1029       88,  710,  708,   88,  706,   88,   88,   88,   88,   88,
     1030      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
     1031      206,  206,  206,  488,  488,  488,  488,  488,  488,  488,
     1032      488,  488,  488,  488,  488,  488,  489,  704,  489,  702,
     1033      700,   89,  489,  491,   89,  491,   89,   89,   89,  491,
     1034      493,   89,  493,   89,   89,   89,  493,  360,   89,  360,
     1035      495,   89,  495,   89,   89,   89,  495,  362,  644,  362,
     1036      498,  642,  498,  640,  638,  636,  498,  366,  634,  366,
     1037      500,  523,  500,  632,  632,  621,  500,  368,  620,  368,
     1038      502,  618,  502,  503,  503,  616,  502,  370,  614,  370,
     1039
     1040      504,  612,  504,  610,  608,  606,  504,  377,   89,  377,
     1041      506,   89,  506,   89,   89,   89,  506,  379,   89,  379,
     1042      512,   89,  512,   89,  512,  535,  512,  394,  533,  394,
     1043      531,  394,  529,  394,  396,  396,  527,  396,  396,  396,
     1044      525,  396,  524,  511,  524,  510,  507,  505,  524,  526,
     1045      373,  526,  373,  503,  501,  526,  528,  499,  528,  496,
     1046      494,  492,  528,  406,  490,  406,  530,   89,  530,   89,
     1047       89,  414,  530,  408,  413,  408,  532,  411,  532,  409,
     1048      407,  277,  532,  410,  272,  410,  534,  271,  534,  403,
     1049      403,  259,  534,  412,  393,  412,   88,  393,  247,   88,
     1050
     1051      386,   88,   88,   88,   88,   88,  488,  488,  488,  488,
     1052      488,  488,  488,  488,  488,  488,  488,  488,  488,  605,
     1053      380,  605,  378,  376,  372,  605,  489,  371,  489,  607,
     1054      369,  607,  367,  363,  361,  607,  491,  212,  491,  609,
     1055      208,  609,   89,  284,  283,  609,  493,  281,  493,  611,
     1056      277,  611,  272,  275,  272,  611,  495,  270,  495,  613,
     1057      269,  613,  268,  247,  239,  613,  498,   87,  498,  615,
     1058       87,  615,   89,  212,  210,  615,  500,   87,  500,  502,
     1059      124,  502,  119,   89,  927,  502,  617,   72,  617,   72,
     1060      927,  927,  617,  504,  927,  504,  619,  927,  619,  927,
     1061
     1062      927,  927,  619,  506,  927,  506,  512,  927,  512,  927,
     1063      512,  927,  512,  396,  927,  396,  927,  927,  927,  396,
     1064      633,  927,  633,  927,  927,  927,  633,  524,  927,  524,
     1065      635,  927,  635,  927,  927,  927,  635,  526,  927,  526,
     1066      637,  927,  637,  927,  927,  927,  637,  528,  927,  528,
     1067      639,  927,  639,  927,  927,  927,  639,  530,  927,  530,
     1068      641,  927,  641,  927,  927,  927,  641,  532,  927,  532,
     1069      643,  927,  643,  927,  927,  927,  643,  534,  927,  534,
     1070       88,  927,  927,   88,  927,   88,   88,   88,   88,   88,
     1071      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
     1072
     1073      699,  699,  699,  701,  927,  701,  927,  927,  927,  701,
     1074      605,  927,  605,  703,  927,  703,  927,  927,  927,  703,
     1075      607,  927,  607,  705,  927,  705,  927,  927,  927,  705,
     1076      609,  927,  609,  707,  927,  707,  927,  927,  927,  707,
     1077      611,  927,  611,  709,  927,  709,  927,  927,  927,  709,
     1078      613,  927,  613,  711,  927,  711,  927,  927,  927,  711,
     1079      615,  927,  615,  713,  927,  713,  927,  927,  927,  713,
     1080      617,  927,  617,   88,  927,   88,  927,  927,  927,   88,
     1081      619,  927,  619,  512,  927,  512,  927,  927,  927,  512,
     1082      721,  927,  721,  927,  927,  927,  721,  633,  927,  633,
     1083
     1084      723,  927,  723,  927,  927,  927,  723,  635,  927,  635,
     1085      725,  927,  725,  927,  927,  927,  725,  637,  927,  637,
     1086      142,  927,  142,  927,  927,  927,  142,  639,  927,  639,
     1087      728,  927,  728,  641,  927,  641,   88,  927,  927,   88,
     1088      927,   88,   88,   88,   88,   88,  643,  927,  643,  699,
     1089      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
     1090      699,  699,  769,  927,  769,  927,  927,  927,  769,  701,
     1091      927,  701,  211,  927,  211,  927,  927,  927,  211,  703,
     1092      927,  703,  772,  927,  772,  705,  927,  705,  211,  927,
     1093      927,  211,  927,  211,  211,  211,  211,  211,  707,  927,
     1094
     1095      707,  773,  927,  773,  709,  927,  709,  711,  927,  711,
     1096      774,  927,  774,  713,  927,  713,   88,  927,   88,  776,
     1097      927,  776,  927,  927,  927,  776,  721,  927,  721,  276,
     1098      927,  276,  927,  927,  927,  276,  723,  927,  723,  779,
     1099      927,  779,  725,  927,  725,  142,  927,  142,  780,  927,
     1100      780,  927,  927,  927,  780,   88,  927,  927,   88,  927,
     1101       88,   88,   88,   88,   88,  816,  927,  816,  769,  927,
     1102      769,  211,  927,  211,  817,  927,  817,  927,  927,  927,
     1103      817,  819,  927,  819,  927,  927,  927,  819,  821,  927,
     1104      821,  927,  927,  927,  821,  823,  927,  823,  824,  927,
     1105
     1106      824,  927,  927,  927,  824,  826,  927,  826,  927,  927,
     1107      927,  826,  849,  927,  849,  927,  927,  927,  849,  851,
     1108      927,  851,  927,  927,  927,  851,  853,  927,  853,  927,
     1109      927,  927,  853,  855,  927,  855,  927,  927,  927,  855,
     1110      857,  927,  857,  927,  927,  927,  857,  859,  927,  859,
     1111      927,  927,  927,  859,  643,  927,  643,  927,  927,  927,
     1112      643,  880,  927,  880,  927,  927,  927,  880,  707,  927,
     1113      707,  927,  927,  927,  707,  711,  927,  711,  927,  927,
     1114      927,  711,   88,  927,   88,  927,  927,  927,   88,  885,
     1115      927,  885,  927,  927,  927,  885,  142,  927,  142,  927,
     1116
     1117      927,  927,  142,  211,  927,  211,  927,  927,  927,  211,
     1118       11,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1119      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1120      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1121      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1122      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1123      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1124      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1125      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1126      927,  927,  927,  927,  927,  927,  927
     1127
    11171128    } ;
    11181129
    1119 static yyconst flex_int16_t yy_chk[2969] =
     1130static yyconst flex_int16_t yy_chk[2998] =
    11201131    {   0,
    11211132        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11271138        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    11281139        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1129         1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
    1130         2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
     1140        1,    1,    1,    1,    1,    1,    2,   16,   24,   16,
     1141       24,    2,   19,   19,    2,    5,    5,    5,    5,    5,
    11311142
    11321143        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    11371148        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11381149        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1139         5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1140         8,    9,   10,   37,   37,   20,   39,    9,   10,  912,
    1141         7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    1142 
    1143        15,   15,   15,   15,   20,   25,   48,   39,   42,   28,
    1144        27,   28,   28,   28,   28,   28,   28,  111,  117,   25,
    1145        29,   25,   27,   27,   27,   29,   48,   35,   40,    7,
    1146         8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1147        30,   30,   30,   30,   35,   58,   35,   35,   44,  128,
    1148        44,  128,  111,  117,   58,   30,   56,  551,   47,   30,
    1149        47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1150        45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1151        63,   45,   49,   30,   75,  911,  551,   53,   66,   51,
    1152        62,   30,   63,   55,   30,   31,  166,   31,   31,   31,
    1153 
    1154        31,   31,   31,   50,   51,   53,   51,   89,   62,   54,
    1155        75,   55,   50,  166,   31,   51,   50,   55,   31,   54,
    1156        64,   50,   52,  144,   31,   50,   54,   52,  110,   64,
    1157        31,   57,  112,   89,  159,   52,   31,   52,  903,   66,
    1158        52,  109,   31,  129,   52,  129,  159,  109,   57,  144,
    1159        31,   38,  110,   57,  113,   38,   38,   59,   38,   61,
    1160        38,   38,  112,   38,   61,   38,   60,  112,  116,   59,
    1161        59,  118,  113,  109,   38,   38,   38,   61,   60,   59,
    1162       113,  131,   59,  131,  177,  115,   60,  133,   60,  118,
    1163       112,  115,  116,   60,  134,   38,  134,  118,   38,  133,
    1164 
    1165       136,  133,  136,   61,  177,  132,   61,   69,   69,   69,
    1166        69,   69,   69,   70,   70,   69,  175,  115,   70,  132,
    1167        61,  132,  137,  137,  137,   38,   38,   82,   82,   82,
    1168        82,   82,   82,  175,   70,   70,   70,   70,   70,   70,
    1169        79,   79,  153,  135,  135,   79,  135,   79,  139,  141,
    1170       139,  141,   79,   84,   84,   84,   84,   84,   84,  902,
    1171       153,   79,   79,   79,   79,   85,   85,   85,   85,   85,
    1172        85,  152,   79,  105,  105,  105,  105,  105,  105,  106,
    1173       106,  106,  106,  155,  154,  147,  152,  156,   79,  161,
    1174       147,   79,  155,  152,  174,  328,   79,   79,  157,  158,
    1175 
    1176        79,   79,  154,  156,  162,  161,  328,  106,   79,  174,
    1177       163,   79,  106,   79,   79,   79,  157,   79,   87,  163,
    1178       165,  158,   87,   87,  167,  165,  162,   87,   87,  147,
    1179        87,  164,   87,  168,  167,  106,  169,  171,  165,  173,
    1180       170,   87,   87,   87,  107,  899,  107,  107,  107,  107,
    1181       107,  107,  164,  164,  168,  172,  178,  176,  171,  169,
    1182       172,  173,   87,  107,  108,   87,  108,  170,  179,  108,
    1183       108,  108,  108,  108,  108,  176,  183,  189,  172,  107,
    1184       185,  183,  186,  178,  184,  107,  181,  182,  189,  185,
    1185       179,  898,  194,   87,  101,  101,  101,  101,  101,  101,
    1186 
    1187       191,  181,  108,  188,  182,  189,  184,  187,  181,  186,
    1188       101,  101,  101,  191,  101,  101,  192,  196,  187,  194,
    1189       193,  188,  896,  308,  195,  193,  190,  101,  187,  187,
    1190       308,  190,  101,  101,  101,  160,  192,  101,  198,  101,
    1191       160,  160,  160,  195,  160,  160,  190,  193,  160,  197,
    1192       160,  198,  199,  198,  200,  160,  160,  160,  211,  160,
    1193       331,  196,  197,  331,  196,  199,  204,  204,  215,  215,
    1194       197,  204,  284,  215,  200,  203,  203,  203,  203,  203,
    1195       203,  206,  206,  203,  211,  284,  206,  204,  204,  204,
    1196       204,  204,  204,  208,  208,  224,  895,  224,  208,  225,
    1197 
    1198       208,  225,  206,  206,  206,  206,  206,  206,  218,  218,
    1199       218,  218,  227,  228,  208,  208,  208,  208,  208,  208,
    1200       226,  229,  226,  229,  242,  228,  227,  228,  227,  230,
    1201       230,  231,  230,  231,  232,  232,  232,  234,  235,  234,
    1202       235,  218,  240,  240,  241,  249,  241,  242,  254,  241,
    1203       241,  241,  241,  241,  241,  243,  272,  243,  272,  248,
    1204       243,  248,  248,  248,  248,  240,  247,  247,  247,  247,
    1205       247,  247,  262,  273,  254,  273,  288,  243,  285,  243,
    1206       249,  287,  241,  276,  243,  250,  250,  250,  250,  250,
    1207       250,  290,  286,  288,  248,  289,  285,  287,  262,  247,
    1208 
    1209       289,  292,  250,  251,  251,  251,  251,  251,  251,  276,
    1210       286,  290,  291,  300,  295,  299,  472,  291,  250,  888,
    1211       299,  292,  300,  472,  250,  252,  252,  252,  252,  252,
    1212       252,  259,  295,  296,  261,  261,  261,  261,  261,  261,
    1213       293,  252,  253,  252,  253,  252,  252,  253,  253,  253,
    1214       253,  253,  253,  887,  259,  293,  259,  294,  252,  296,
    1215       259,  293,  293,  252,  297,  252,  259,  261,  252,  303,
    1216       252,  266,  266,  266,  266,  266,  266,  298,  259,  297,
    1217       294,  302,  259,  301,  305,  306,  259,  303,  307,  309,
    1218       306,  311,  310,  298,  298,  312,  301,  307,  313,  314,
    1219 
    1220       312,  315,  305,  313,  266,  314,  316,  318,  302,  309,
    1221       310,  317,  311,  311,  320,  316,  319,  317,  324,  321,
    1222       315,  322,  323,  318,  321,  319,  322,  323,  325,  320,
    1223       326,  330,  329,  332,  334,  333,  335,  324,  336,  339,
    1224       330,  338,  340,  326,  323,  337,  325,  329,  333,  341,
    1225       338,  342,  332,  343,  345,  346,  334,  347,  336,  335,
    1226       348,  339,  337,  349,  346,  340,  343,  350,  352,  342,
    1227       353,  341,  351,  345,  413,  350,  349,  351,  348,  354,
    1228       354,  355,  886,  352,  354,  413,  354,  355,  353,  362,
    1229       362,  362,  362,  363,  363,  363,  363,  372,  373,  372,
    1230 
    1231       373,  347,  380,  380,  380,  380,  380,  380,  382,  392,
    1232       382,  393,  397,  382,  382,  382,  382,  382,  382,  392,
    1233       885,  393,  362,  381,  381,  381,  381,  381,  381,  384,
    1234       384,  384,  384,  384,  384,  392,  397,  393,  414,  381,
    1235       415,  381,  418,  381,  381,  387,  387,  387,  387,  387,
    1236       387,  395,  422,  418,  414,  415,  381,  395,  399,  420,
    1237       416,  381,  384,  381,  423,  422,  381,  884,  381,  385,
    1238       385,  385,  385,  385,  385,  394,  399,  424,  387,  416,
    1239       423,  420,  432,  395,  399,  385,  385,  385,  417,  385,
    1240       385,  388,  388,  388,  388,  388,  388,  417,  394,  424,
    1241 
    1242       394,  880,  385,  432,  394,  876,  398,  385,  385,  385,
    1243       394,  396,  385,  396,  385,  425,  396,  396,  396,  396,
    1244       396,  396,  394,  419,  388,  421,  394,  426,  425,  398,
    1245       394,  398,  419,  427,  421,  398,  428,  429,  437,  433,
    1246       431,  398,  429,  426,  426,  430,  431,  434,  435,  396,
    1247       433,  441,  437,  398,  428,  427,  439,  398,  442,  444,
    1248       430,  398,  443,  435,  445,  447,  434,  430,  439,  446,
    1249       445,  449,  441,  451,  447,  443,  452,  453,  454,  455,
    1250       442,  456,  444,  461,  446,  459,  449,  457,  462,  463,
    1251       464,  465,  453,  451,  455,  466,  457,  467,  452,  464,
    1252 
    1253       454,  456,  459,  468,  469,  470,  461,  471,  474,  473,
    1254       475,  463,  465,  469,  462,  466,  473,  467,  476,  478,
    1255       471,  477,  481,  470,  479,  468,  532,  476,  482,  477,
    1256       535,  483,  475,  474,  483,  479,  478,  482,  511,  477,
    1257       484,  873,  512,  532,  481,  535,  484,  493,  493,  493,
    1258       493,  504,  504,  504,  504,  504,  504,  506,  506,  506,
    1259       506,  506,  506,  536,  511,  540,  533,  504,  512,  504,
    1260       540,  504,  504,  507,  507,  507,  507,  507,  507,  533,
    1261       583,  623,  508,  536,  504,  538,  545,  510,  583,  504,
    1262       506,  504,  508,  509,  504,  509,  504,  510,  509,  509,
    1263 
    1264       509,  509,  509,  509,  623,  545,  507,  538,  508,  542,
    1265       537,  539,  542,  510,  514,  514,  514,  514,  514,  514,
    1266       516,  543,  516,  537,  539,  516,  516,  516,  516,  516,
    1267       516,  509,  515,  515,  515,  515,  515,  515,  541,  544,
    1268       546,  543,  547,  833,  550,  549,  553,  554,  515,  541,
    1269       515,  547,  515,  515,  544,  548,  549,  550,  552,  833,
    1270       548,  546,  555,  561,  554,  515,  562,  552,  553,  556,
    1271       515,  555,  515,  558,  556,  515,  559,  515,  563,  558,
    1272       561,  562,  564,  566,  567,  559,  568,  569,  571,  572,
    1273       574,  564,  566,  563,  572,  575,  579,  580,  568,  574,
    1274 
    1275       581,  567,  569,  571,  575,  584,  585,  586,  587,  592,
    1276       580,  594,  591,  585,  595,  584,  588,  581,  579,  592,
    1277       587,  591,  588,  597,  872,  871,  643,  595,  594,  586,
    1278       615,  615,  615,  615,  615,  615,  616,  616,  616,  616,
    1279       616,  616,  618,  643,  618,  597,  642,  618,  618,  618,
    1280       618,  618,  618,  621,  621,  621,  621,  621,  621,  642,
    1281       622,  622,  647,  615,  617,  617,  617,  617,  617,  617,
    1282       624,  639,  624,  644,  640,  624,  639,  870,  641,  647,
    1283       617,  640,  617,  622,  617,  617,  621,  641,  645,  639,
    1284       646,  650,  624,  649,  624,  645,  644,  617,  646,  624,
    1285 
    1286       648,  651,  617,  648,  617,  652,  649,  617,  653,  617,
    1287       654,  655,  656,  650,  655,  657,  651,  659,  658,  660,
    1288       661,  663,  662,  665,  672,  653,  666,  652,  660,  656,
    1289       663,  667,  654,  658,  671,  674,  677,  659,  661,  721,
    1290       667,  685,  678,  657,  662,  677,  665,  686,  666,  678,
    1291       685,  672,  674,  688,  671,  689,  724,  686,  869,  722,
    1292       721,  727,  688,  712,  712,  712,  712,  712,  712,  722,
    1293       689,  708,  708,  708,  708,  708,  708,  725,  726,  730,
    1294       732,  727,  724,  726,  725,  728,  732,  708,  728,  708,
    1295       729,  708,  708,  729,  733,  735,  712,  730,  735,  734,
    1296 
    1297       736,  737,  738,  739,  708,  738,  740,  733,  734,  708,
    1298       741,  708,  739,  741,  708,  742,  708,  743,  745,  744,
    1299       746,  736,  750,  753,  747,  743,  754,  757,  742,  744,
    1300       737,  745,  740,  747,  755,  757,  776,  758,  781,  778,
    1301       750,  746,  777,  753,  778,  750,  758,  779,  754,  765,
    1302       765,  765,  765,  765,  765,  755,  776,  780,  782,  777,
    1303       783,  781,  779,  784,  785,  786,  784,  780,  788,  790,
    1304       794,  788,  790,  791,  795,  782,  792,  785,  793,  792,
    1305       791,  793,  765,  797,  801,  794,  783,  816,  818,  820,
    1306       819,  821,  820,  786,  825,  822,  823,  795,  822,  823,
    1307 
    1308       826,  827,  829,  868,  827,  867,  797,  801,  819,  818,
    1309       834,  832,  825,  821,  816,  830,  831,  835,  830,  831,
    1310       832,  834,  850,  851,  829,  852,  826,  853,  852,  854,
    1311       851,  855,  856,  835,  855,  859,  853,  862,  859,  863,
    1312       862,  865,  864,  850,  866,  861,  874,  854,  863,  856,
    1313       865,  875,  878,  854,  864,  874,  875,  877,  879,  889,
    1314       877,  881,  878,  879,  881,  882,  883,  890,  882,  883,
    1315       891,  892,  893,  891,  894,  893,  897,  894,  900,  889,
    1316       901,  892,  890,  904,  905,  906,  908,  907,  909,  860,
    1317       910,  858,  904,  857,  849,  901,  848,  905,  897,  900,
    1318 
    1319       910,  847,  846,  845,  908,  844,  843,  906,  907,  842,
    1320       909,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    1321       914,  914,  914,  914,  915,  915,  915,  915,  915,  915,
    1322       915,  915,  915,  915,  915,  915,  915,  916,  916,  916,
    1323       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
    1324       917,  841,  840,  917,  839,  917,  917,  917,  917,  917,
    1325       918,  838,  837,  836,  918,  918,  918,  918,  918,  918,
    1326       919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    1327       919,  919,  919,  920,  828,  824,  920,  817,  920,  920,
    1328       920,  920,  920,  921,  815,  921,  921,  814,  921,  921,
    1329 
    1330       921,  921,  921,  921,  813,  921,  922,  812,  811,  922,
    1331       922,  922,  922,  922,  922,  922,  922,  810,  922,  923,
    1332       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    1333       923,  923,  924,  924,  809,  924,  808,  807,  806,  924,
    1334       925,  805,  804,  925,  803,  925,  925,  925,  925,  925,
    1335       926,  802,  926,  800,  799,  798,  926,  927,  796,  927,
    1336       789,  787,  775,  927,  928,  774,  928,  773,  772,  771,
    1337       928,  929,  770,  929,  769,  768,  767,  929,  930,  764,
    1338       930,  763,  762,  756,  930,  931,  752,  931,  751,  749,
    1339       748,  931,  932,  731,  932,  723,  720,  715,  932,  933,
    1340 
    1341       713,  933,  709,  699,  695,  933,  934,  693,  934,  691,
    1342       690,  687,  934,  935,  684,  935,  936,  936,  683,  936,
    1343       936,  936,  682,  936,  937,  937,  681,  937,  938,  680,
    1344       679,  938,  676,  938,  938,  938,  938,  938,  939,  675,
    1345       939,  673,  670,  669,  939,  940,  668,  940,  664,  637,
    1346       633,  940,  941,  631,  941,  629,  627,  625,  941,  942,
    1347       619,  942,  943,  613,  943,  611,  609,  607,  943,  944,
    1348       605,  944,  945,  603,  601,  945,  599,  945,  945,  945,
    1349       945,  945,  946,  946,  946,  946,  946,  946,  946,  946,
    1350       946,  946,  946,  946,  946,  947,  947,  947,  947,  947,
    1351 
    1352       947,  947,  947,  947,  947,  947,  947,  947,  948,  598,
    1353       948,  596,  593,  590,  948,  949,  589,  949,  582,  578,
    1354       577,  949,  950,  576,  950,  573,  570,  565,  950,  951,
    1355       560,  951,  952,  557,  952,  534,  530,  528,  952,  953,
    1356       526,  953,  954,  524,  954,  522,  520,  519,  954,  955,
    1357       518,  955,  956,  517,  956,  505,  502,  500,  956,  957,
    1358       499,  957,  958,  498,  958,  496,  494,  491,  958,  959,
    1359       489,  959,  960,  487,  960,  485,  480,  460,  960,  961,
    1360       458,  961,  962,  450,  962,  448,  440,  438,  962,  963,
    1361       436,  963,  964,  410,  964,  408,  964,  406,  964,  965,
    1362 
    1363       404,  965,  403,  965,  402,  965,  966,  966,  389,  966,
    1364       966,  966,  386,  966,  967,  377,  967,  375,  374,  370,
    1365       967,  968,  368,  968,  366,  364,  360,  968,  969,  358,
    1366       969,  357,  356,  344,  969,  970,  327,  970,  971,  304,
    1367       971,  283,  281,  279,  971,  972,  278,  972,  973,  277,
    1368       973,  275,  274,  269,  973,  974,  265,  974,  975,  264,
    1369       975,  260,  257,  256,  975,  976,  245,  976,  977,  244,
    1370       237,  977,  236,  977,  977,  977,  977,  977,  978,  978,
    1371       978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1372       978,  979,  233,  979,  223,  221,  220,  979,  980,  219,
    1373 
    1374       980,  981,  213,  981,  212,  210,  205,  981,  982,  180,
    1375       982,  983,  151,  983,  149,  148,  142,  983,  984,  140,
    1376       984,  985,  138,  985,  130,  127,  126,  985,  986,  122,
    1377       986,  987,  103,  987,  100,   97,   95,  987,  988,   88,
    1378       988,  989,   74,  989,   72,   68,   36,  989,  990,   33,
    1379       990,  991,   18,  991,   11,    4,    3,  991,  992,    0,
    1380       992,    0,    0,    0,  992,  993,    0,  993,  994,    0,
    1381       994,    0,    0,    0,  994,  995,    0,  995,  996,    0,
    1382       996,    0,  996,    0,  996,  997,    0,  997,    0,    0,
    1383         0,  997,  998,    0,  998,    0,    0,    0,  998,  999,
    1384 
    1385         0,  999, 1000,    0, 1000,    0,    0,    0, 1000, 1001,
    1386         0, 1001, 1002,    0, 1002,    0,    0,    0, 1002, 1003,
    1387         0, 1003, 1004,    0, 1004,    0,    0,    0, 1004, 1005,
    1388         0, 1005, 1006,    0, 1006,    0,    0,    0, 1006, 1007,
    1389         0, 1007, 1008,    0, 1008,    0,    0,    0, 1008, 1009,
    1390         0, 1009, 1010,    0,    0, 1010,    0, 1010, 1010, 1010,
    1391      1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
    1392      1011, 1011, 1011, 1011, 1011, 1012,    0, 1012,    0,    0,
    1393         0, 1012, 1013,    0, 1013, 1014,    0, 1014,    0,    0,
    1394         0, 1014, 1015,    0, 1015, 1016,    0, 1016,    0,    0,
    1395 
    1396         0, 1016, 1017,    0, 1017, 1018,    0, 1018,    0,    0,
    1397         0, 1018, 1019,    0, 1019, 1020,    0, 1020,    0,    0,
    1398         0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,    0,
    1399         0, 1022, 1023,    0, 1023, 1024,    0, 1024,    0,    0,
    1400         0, 1024, 1025,    0, 1025, 1026,    0, 1026,    0,    0,
    1401         0, 1026, 1027,    0, 1027, 1028,    0, 1028,    0,    0,
    1402         0, 1028, 1029,    0, 1029,    0,    0,    0, 1029, 1030,
    1403         0, 1030, 1031,    0, 1031,    0,    0,    0, 1031, 1032,
    1404         0, 1032, 1033,    0, 1033,    0,    0,    0, 1033, 1034,
    1405         0, 1034, 1035,    0, 1035,    0,    0,    0, 1035, 1036,
    1406 
    1407         0, 1036, 1037,    0, 1037, 1038,    0, 1038, 1039,    0,
    1408         0, 1039,    0, 1039, 1039, 1039, 1039, 1039, 1040,    0,
    1409      1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
    1410      1041, 1041, 1041, 1041, 1042,    0, 1042,    0,    0,    0,
    1411      1042, 1043,    0, 1043, 1044,    0, 1044,    0,    0,    0,
    1412      1044, 1045,    0, 1045, 1046,    0, 1046, 1047,    0, 1047,
    1413      1048,    0,    0, 1048,    0, 1048, 1048, 1048, 1048, 1048,
    1414      1049,    0, 1049, 1050,    0, 1050, 1051,    0, 1051, 1052,
    1415         0, 1052, 1053,    0, 1053, 1054,    0, 1054, 1055,    0,
    1416      1055, 1056,    0, 1056,    0,    0,    0, 1056, 1057,    0,
    1417 
    1418      1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,    0,
    1419      1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0, 1062,
    1420      1063,    0, 1063,    0,    0,    0, 1063, 1064,    0,    0,
    1421      1064,    0, 1064, 1064, 1064, 1064, 1064, 1065,    0, 1065,
    1422      1066,    0, 1066, 1067,    0, 1067, 1068,    0, 1068,    0,
    1423         0,    0, 1068, 1069,    0, 1069,    0,    0,    0, 1069,
    1424      1070,    0, 1070,    0,    0,    0, 1070, 1071,    0, 1071,
    1425      1072,    0, 1072,    0,    0,    0, 1072, 1073,    0, 1073,
    1426         0,    0,    0, 1073, 1074,    0, 1074,    0,    0,    0,
    1427      1074, 1075,    0, 1075,    0,    0,    0, 1075, 1076,    0,
    1428 
    1429      1076,    0,    0,    0, 1076, 1077,    0, 1077,    0,    0,
    1430         0, 1077, 1078,    0, 1078,    0,    0,    0, 1078, 1079,
    1431         0, 1079,    0,    0,    0, 1079, 1080,    0, 1080,    0,
    1432         0,    0, 1080, 1081,    0, 1081,    0,    0,    0, 1081,
    1433      1082,    0, 1082,    0,    0,    0, 1082, 1083,    0, 1083,
    1434         0,    0,    0, 1083, 1084,    0, 1084,    0,    0,    0,
    1435      1084, 1085,    0, 1085,    0,    0,    0, 1085, 1086,    0,
     1150        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     1151        5,    7,    8,    9,   10,   37,   37,   20,   39,    9,
     1152       10,   53,    7,    8,   13,   13,   13,   13,   13,   13,
     1153
     1154       15,   15,   15,   15,   15,   15,   20,   25,   63,   53,
     1155       39,   28,   27,   28,   28,   28,   28,   28,   28,   48,
     1156       63,   25,   29,   25,   27,   27,   27,   29,   42,   35,
     1157       47,   40,    7,    8,    9,   10,   40,   29,   30,   48,
     1158       30,   30,   30,   30,   30,   30,   35,   56,   35,   35,
     1159       44,   47,   44,   47,   42,   49,  926,   30,   66,   62,
     1160       49,   30,   75,   58,   89,   54,   51,   49,   30,   30,
     1161       56,   55,   58,   49,   30,   54,   40,   62,   64,   40,
     1162       30,   51,   54,   51,  175,  144,   30,   64,   75,   55,
     1163       89,  925,   51,  110,   30,   55,  153,   30,   31,  175,
     1164
     1165       31,   31,   31,   31,   31,   31,   45,   45,   45,   57,
     1166       66,  144,   45,   45,  153,   45,   45,   31,  110,   45,
     1167       45,   31,  111,   50,   45,   59,   57,   45,   31,  917,
     1168      916,   57,   50,  168,   31,  109,   50,   59,   59,   61,
     1169       31,   50,  109,  168,   61,   50,   31,   59,   52,  117,
     1170       59,   70,   70,   52,   31,   38,   70,   61,  111,   38,
     1171       38,   52,   38,   52,   38,   38,   52,   38,  109,   38,
     1172       52,   60,   70,   70,   70,   70,   70,   70,   38,   38,
     1173       38,  169,  310,   60,   61,  117,  116,   61,  128,  310,
     1174      128,   60,  115,   60,  129,  131,  129,  131,   60,  115,
     1175
     1176       38,   61,  169,   38,   69,   69,   69,   69,   69,   69,
     1177      113,  116,   69,   82,   82,   82,   82,   82,   82,   84,
     1178       84,   84,   84,   84,   84,  115,  155,  134,  113,  134,
     1179       38,   38,   79,   79,  913,  155,  113,   79,  912,   79,
     1180      106,  106,  106,  106,   79,   85,   85,   85,   85,   85,
     1181       85,  156,  132,   79,   79,   79,   79,  105,  105,  105,
     1182      105,  105,  105,  352,   79,  118,  132,  156,  132,  106,
     1183      108,  352,  108,  133,  106,  108,  108,  108,  108,  108,
     1184      108,   79,  112,  118,   79,  133,  136,  133,  136,   79,
     1185       79,  118,  159,   79,   79,  135,  135,  106,  135,  178,
     1186
     1187      139,   79,  139,  141,   79,  141,   79,   79,   79,  108,
     1188       79,   87,  147,  112,  159,   87,   87,  147,  112,  178,
     1189       87,   87,  154,   87,  107,   87,  107,  107,  107,  107,
     1190      107,  107,  152,  157,   87,   87,   87,  137,  137,  137,
     1191      154,  112,  163,  107,  158,  162,  160,  152,  165,  171,
     1192      166,  157,  170,  172,  152,  166,   87,  147,  160,   87,
     1193      107,  162,  158,  164,  163,  167,  107,  176,  166,  165,
     1194      165,  179,  164,  173,  172,  170,  171,  174,  173,  177,
     1195      180,  910,  167,  189,  176,  182,  183,   87,  101,  101,
     1196      101,  101,  101,  101,  185,  212,  173,  177,  179,  174,
     1197
     1198      182,  189,  180,  183,  101,  101,  101,  182,  101,  101,
     1199      184,  186,  192,  330,  187,  184,  185,  225,  197,  225,
     1200      186,  212,  101,  909,  330,  192,  191,  101,  101,  101,
     1201      161,  191,  101,  190,  101,  161,  161,  161,  188,  161,
     1202      161,  187,  193,  161,  190,  161,  191,  195,  194,  188,
     1203      161,  161,  161,  194,  161,  199,  198,  196,  200,  188,
     1204      188,  190,  193,  197,  201,  226,  197,  226,  199,  198,
     1205      199,  200,  241,  241,  195,  194,  196,  198,  204,  204,
     1206      204,  204,  204,  204,  201,  443,  204,  205,  205,  285,
     1207      216,  216,  205,  207,  207,  216,  241,  443,  207,  209,
     1208
     1209      209,  227,  285,  227,  209,  230,  209,  230,  205,  205,
     1210      205,  205,  205,  205,  207,  207,  207,  207,  207,  207,
     1211      209,  209,  209,  209,  209,  209,  219,  219,  219,  219,
     1212      228,  229,  231,  231,  232,  231,  232,  233,  233,  233,
     1213      235,  243,  235,  229,  228,  229,  228,  236,  242,  236,
     1214      242,  902,  250,  242,  242,  242,  242,  242,  242,  244,
     1215      219,  244,  296,  292,  244,  243,  248,  248,  248,  248,
     1216      248,  248,  249,  255,  249,  249,  249,  249,  273,  274,
     1217      273,  274,  244,  292,  244,  296,  263,  242,  250,  244,
     1218      251,  251,  251,  251,  251,  251,  277,  298,  299,  255,
     1219
     1220      248,  252,  252,  252,  252,  252,  252,  251,  249,  254,
     1221      286,  254,  263,  299,  254,  254,  254,  254,  254,  254,
     1222      287,  290,  277,  298,  251,  441,  290,  337,  286,  901,
     1223      251,  253,  253,  253,  253,  253,  253,  260,  287,  441,
     1224      262,  262,  262,  262,  262,  262,  288,  253,  294,  253,
     1225      337,  253,  253,  267,  267,  267,  267,  267,  267,  289,
     1226      260,  291,  288,  260,  293,  253,  288,  260,  294,  293,
     1227      253,  303,  253,  260,  262,  253,  289,  253,  291,  295,
     1228      297,  302,  304,  301,  303,  260,  300,  267,  301,  260,
     1229      302,  308,  305,  260,  295,  307,  308,  309,  297,  311,
     1230
     1231      295,  295,  300,  300,  312,  313,  309,  314,  316,  304,
     1232      305,  315,  314,  307,  316,  317,  315,  319,  900,  311,
     1233      318,  320,  312,  319,  321,  322,  313,  313,  326,  318,
     1234      323,  324,  327,  321,  317,  323,  324,  320,  325,  328,
     1235      322,  331,  332,  325,  334,  333,  335,  326,  333,  336,
     1236      327,  332,  328,  338,  341,  339,  331,  340,  342,  335,
     1237      325,  343,  344,  334,  345,  347,  340,  349,  350,  348,
     1238      353,  336,  339,  338,  351,  353,  341,  345,  348,  354,
     1239      344,  342,  355,  343,  347,  357,  350,  351,  356,  356,
     1240      374,  357,  374,  356,  354,  356,  364,  364,  364,  364,
     1241
     1242      355,  365,  365,  365,  365,  375,  487,  375,  417,  487,
     1243      899,  415,  349,  382,  382,  382,  382,  382,  382,  384,
     1244      399,  384,  415,  417,  384,  384,  384,  384,  384,  384,
     1245      364,  383,  383,  383,  383,  383,  383,  386,  386,  386,
     1246      386,  386,  386,  548,  898,  399,  548,  383,  418,  383,
     1247      419,  383,  383,  389,  389,  389,  389,  389,  389,  390,
     1248      390,  390,  390,  390,  390,  383,  394,  418,  419,  438,
     1249      383,  386,  383,  416,  395,  383,  394,  383,  387,  387,
     1250      387,  387,  387,  387,  395,  396,  894,  389,  438,  416,
     1251      397,  422,  394,  390,  387,  387,  387,  397,  387,  387,
     1252
     1253      395,  420,  401,  421,  422,  424,  400,  423,  396,  428,
     1254      420,  396,  387,  426,  421,  396,  423,  387,  387,  387,
     1255      401,  396,  387,  397,  387,  425,  426,  424,  401,  400,
     1256      890,  428,  400,  396,  425,  427,  400,  396,  398,  429,
     1257      398,  396,  400,  398,  398,  398,  398,  398,  398,  430,
     1258      431,  427,  429,  432,  400,  433,  437,  435,  400,  434,
     1259      433,  436,  400,  435,  439,  430,  430,  437,  445,  446,
     1260      447,  432,  431,  448,  434,  450,  451,  398,  449,  439,
     1261      453,  434,  436,  447,  449,  451,  455,  456,  457,  445,
     1262      450,  446,  458,  459,  463,  453,  448,  460,  461,  465,
     1263
     1264      466,  467,  472,  457,  468,  470,  455,  461,  459,  456,
     1265      469,  463,  471,  468,  458,  474,  475,  460,  473,  478,
     1266      479,  476,  465,  467,  472,  470,  466,  473,  476,  475,
     1267      477,  469,  471,  474,  480,  482,  483,  477,  481,  485,
     1268      486,  537,  479,  480,  478,  488,  481,  483,  515,  486,
     1269      516,  488,  482,  887,  537,  886,  481,  497,  497,  497,
     1270      497,  485,  508,  508,  508,  508,  508,  508,  510,  510,
     1271      510,  510,  510,  510,  515,  536,  516,  540,  508,  539,
     1272      508,  512,  508,  508,  511,  511,  511,  511,  511,  511,
     1273      541,  512,  536,  543,  539,  544,  508,  550,  542,  514,
     1274
     1275      540,  508,  510,  508,  553,  557,  508,  512,  508,  514,
     1276      541,  542,  550,  553,  513,  543,  513,  544,  511,  513,
     1277      513,  513,  513,  513,  513,  514,  518,  518,  518,  518,
     1278      518,  518,  520,  545,  520,  557,  547,  520,  520,  520,
     1279      520,  520,  520,  546,  549,  552,  545,  547,  546,  551,
     1280      555,  559,  560,  513,  519,  519,  519,  519,  519,  519,
     1281      554,  555,  558,  556,  549,  554,  552,  567,  551,  560,
     1282      519,  558,  519,  559,  519,  519,  556,  561,  562,  564,
     1283      565,  568,  569,  562,  567,  564,  561,  573,  519,  565,
     1284      570,  574,  572,  519,  575,  519,  568,  569,  519,  570,
     1285
     1286      519,  572,  577,  574,  573,  578,  580,  581,  585,  575,
     1287      578,  586,  587,  589,  592,  580,  581,  577,  590,  591,
     1288      593,  589,  600,  603,  586,  594,  591,  598,  590,  587,
     1289      585,  594,  593,  597,  601,  647,  592,  598,  885,  600,
     1290      628,  628,  597,  651,  647,  603,  650,  601,  621,  621,
     1291      621,  621,  621,  621,  622,  622,  622,  622,  622,  622,
     1292      624,  651,  624,  650,  628,  624,  624,  624,  624,  624,
     1293      624,  627,  627,  627,  627,  627,  627,  656,  629,  649,
     1294      656,  655,  621,  623,  623,  623,  623,  623,  623,  630,
     1295      645,  630,  649,  646,  630,  645,  648,  652,  655,  623,
     1296
     1297      646,  623,  629,  623,  623,  627,  653,  654,  645,  658,
     1298      657,  659,  630,  653,  630,  654,  660,  623,  648,  630,
     1299      652,  662,  623,  657,  623,  661,  659,  623,  664,  623,
     1300      663,  658,  665,  663,  666,  667,  669,  668,  660,  671,
     1301      670,  673,  661,  662,  674,  664,  668,  675,  671,  666,
     1302      679,  680,  682,  686,  669,  667,  675,  697,  685,  693,
     1303      686,  665,  670,  694,  673,  696,  674,  685,  693,  682,
     1304      679,  729,  697,  694,  696,  884,  732,  883,  680,  716,
     1305      716,  716,  716,  716,  716,  720,  720,  720,  720,  720,
     1306      720,  730,  729,  733,  736,  716,  734,  716,  740,  716,
     1307
     1308      716,  730,  732,  734,  735,  738,  733,  737,  738,  735,
     1309      747,  742,  739,  716,  736,  739,  740,  742,  716,  720,
     1310      716,  743,  744,  716,  746,  716,  745,  737,  749,  745,
     1311      748,  744,  750,  748,  743,  751,  752,  749,  751,  753,
     1312      747,  754,  755,  756,  757,  746,  764,  753,  760,  752,
     1313      763,  754,  765,  757,  767,  755,  768,  791,  882,  750,
     1314      795,  787,  767,  785,  756,  768,  760,  789,  764,  793,
     1315      763,  760,  791,  765,  775,  775,  775,  775,  775,  775,
     1316      785,  787,  790,  792,  789,  794,  795,  790,  796,  798,
     1317      797,  796,  793,  792,  800,  802,  806,  800,  802,  803,
     1318
     1319      807,  804,  794,  797,  804,  809,  803,  805,  775,  813,
     1320      805,  806,  828,  829,  831,  832,  833,  834,  798,  833,
     1321      838,  828,  835,  807,  836,  835,  839,  836,  809,  842,
     1322      881,  840,  813,  832,  840,  831,  846,  845,  838,  834,
     1323      829,  843,  844,  847,  843,  844,  845,  848,  864,  865,
     1324      867,  842,  846,  839,  847,  866,  865,  868,  866,  867,
     1325      870,  869,  873,  848,  869,  873,  878,  876,  880,  864,
     1326      876,  877,  875,  879,  888,  868,  892,  870,  878,  889,
     1327      877,  868,  879,  888,  889,  891,  892,  893,  891,  903,
     1328      895,  896,  893,  895,  896,  897,  904,  905,  897,  911,
     1329
     1330      905,  907,  906,  908,  907,  914,  908,  915,  918,  903,
     1331      919,  904,  906,  920,  922,  921,  923,  918,  924,  874,
     1332      872,  911,  915,  919,  871,  863,  914,  862,  924,  861,
     1333      860,  859,  922,  858,  857,  920,  921,  856,  923,  928,
     1334      928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
     1335      928,  928,  929,  929,  929,  929,  929,  929,  929,  929,
     1336      929,  929,  929,  929,  929,  930,  930,  930,  930,  930,
     1337      930,  930,  930,  930,  930,  930,  930,  930,  931,  855,
     1338      854,  931,  853,  931,  931,  931,  931,  931,  932,  852,
     1339      851,  850,  932,  932,  932,  932,  932,  932,  933,  933,
     1340
     1341      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
     1342      933,  934,  849,  841,  934,  837,  934,  934,  934,  934,
     1343      934,  935,  830,  935,  935,  827,  935,  935,  935,  935,
     1344      935,  935,  826,  935,  936,  825,  824,  936,  936,  936,
     1345      936,  936,  936,  936,  936,  823,  936,  937,  937,  937,
     1346      937,  937,  937,  937,  937,  937,  937,  937,  937,  937,
     1347      938,  938,  822,  938,  821,  820,  819,  938,  939,  818,
     1348      817,  939,  816,  939,  939,  939,  939,  939,  940,  815,
     1349      940,  814,  812,  811,  940,  941,  810,  941,  808,  801,
     1350      799,  941,  942,  788,  942,  786,  784,  783,  942,  943,
     1351
     1352      782,  943,  781,  780,  779,  943,  944,  778,  944,  777,
     1353      774,  773,  944,  945,  772,  945,  766,  762,  761,  945,
     1354      946,  759,  946,  758,  741,  731,  946,  947,  728,  947,
     1355      723,  721,  717,  947,  948,  707,  948,  703,  701,  699,
     1356      948,  949,  698,  949,  950,  950,  695,  950,  950,  950,
     1357      692,  950,  951,  951,  691,  951,  952,  690,  689,  952,
     1358      688,  952,  952,  952,  952,  952,  953,  687,  953,  684,
     1359      683,  681,  953,  954,  678,  954,  677,  676,  672,  954,
     1360      955,  643,  955,  639,  637,  635,  955,  956,  633,  956,
     1361      957,  631,  957,  625,  619,  617,  957,  958,  615,  958,
     1362
     1363      959,  613,  611,  959,  609,  959,  959,  959,  959,  959,
     1364      960,  960,  960,  960,  960,  960,  960,  960,  960,  960,
     1365      960,  960,  960,  961,  961,  961,  961,  961,  961,  961,
     1366      961,  961,  961,  961,  961,  961,  962,  607,  962,  605,
     1367      604,  602,  962,  963,  599,  963,  596,  595,  588,  963,
     1368      964,  584,  964,  583,  582,  579,  964,  965,  576,  965,
     1369      966,  571,  966,  566,  563,  538,  966,  967,  534,  967,
     1370      968,  532,  968,  530,  528,  526,  968,  969,  524,  969,
     1371      970,  523,  970,  522,  521,  509,  970,  971,  506,  971,
     1372      972,  504,  972,  503,  502,  500,  972,  973,  498,  973,
     1373
     1374      974,  495,  974,  493,  491,  489,  974,  975,  484,  975,
     1375      976,  464,  976,  462,  454,  452,  976,  977,  444,  977,
     1376      978,  442,  978,  440,  978,  412,  978,  979,  410,  979,
     1377      408,  979,  406,  979,  980,  980,  405,  980,  980,  980,
     1378      404,  980,  981,  391,  981,  388,  379,  377,  981,  982,
     1379      376,  982,  372,  370,  368,  982,  983,  366,  983,  362,
     1380      360,  359,  983,  984,  358,  984,  985,  346,  985,  329,
     1381      306,  284,  985,  986,  282,  986,  987,  280,  987,  279,
     1382      278,  276,  987,  988,  275,  988,  989,  270,  989,  266,
     1383      265,  261,  989,  990,  258,  990,  991,  257,  246,  991,
     1384
     1385      245,  991,  991,  991,  991,  991,  992,  992,  992,  992,
     1386      992,  992,  992,  992,  992,  992,  992,  992,  992,  993,
     1387      238,  993,  237,  234,  224,  993,  994,  222,  994,  995,
     1388      221,  995,  220,  214,  213,  995,  996,  211,  996,  997,
     1389      206,  997,  181,  151,  149,  997,  998,  148,  998,  999,
     1390      142,  999,  140,  138,  130,  999, 1000,  127, 1000, 1001,
     1391      126, 1001,  122,  103,  100, 1001, 1002,   97, 1002, 1003,
     1392       95, 1003,   88,   74,   72, 1003, 1004,   68, 1004, 1005,
     1393       36, 1005,   33,   18,   11, 1005, 1006,    4, 1006,    3,
     1394        0,    0, 1006, 1007,    0, 1007, 1008,    0, 1008,    0,
     1395
     1396        0,    0, 1008, 1009,    0, 1009, 1010,    0, 1010,    0,
     1397     1010,    0, 1010, 1011,    0, 1011,    0,    0,    0, 1011,
     1398     1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
     1399     1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
     1400     1016,    0, 1016,    0,    0,    0, 1016, 1017,    0, 1017,
     1401     1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
     1402     1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
     1403     1022,    0, 1022,    0,    0,    0, 1022, 1023,    0, 1023,
     1404     1024,    0,    0, 1024,    0, 1024, 1024, 1024, 1024, 1024,
     1405     1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
     1406
     1407     1025, 1025, 1025, 1026,    0, 1026,    0,    0,    0, 1026,
     1408     1027,    0, 1027, 1028,    0, 1028,    0,    0,    0, 1028,
     1409     1029,    0, 1029, 1030,    0, 1030,    0,    0,    0, 1030,
     1410     1031,    0, 1031, 1032,    0, 1032,    0,    0,    0, 1032,
     1411     1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
     1412     1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
     1413     1037,    0, 1037, 1038,    0, 1038,    0,    0,    0, 1038,
     1414     1039,    0, 1039, 1040,    0, 1040,    0,    0,    0, 1040,
     1415     1041,    0, 1041, 1042,    0, 1042,    0,    0,    0, 1042,
     1416     1043,    0, 1043,    0,    0,    0, 1043, 1044,    0, 1044,
     1417
     1418     1045,    0, 1045,    0,    0,    0, 1045, 1046,    0, 1046,
     1419     1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
     1420     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
     1421     1051,    0, 1051, 1052,    0, 1052, 1053,    0,    0, 1053,
     1422        0, 1053, 1053, 1053, 1053, 1053, 1054,    0, 1054, 1055,
     1423     1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
     1424     1055, 1055, 1056,    0, 1056,    0,    0,    0, 1056, 1057,
     1425        0, 1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,
     1426        0, 1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0,
     1427        0, 1062,    0, 1062, 1062, 1062, 1062, 1062, 1063,    0,
     1428
     1429     1063, 1064,    0, 1064, 1065,    0, 1065, 1066,    0, 1066,
     1430     1067,    0, 1067, 1068,    0, 1068, 1069,    0, 1069, 1070,
     1431        0, 1070,    0,    0,    0, 1070, 1071,    0, 1071, 1072,
     1432        0, 1072,    0,    0,    0, 1072, 1073,    0, 1073, 1074,
     1433        0, 1074, 1075,    0, 1075, 1076,    0, 1076, 1077,    0,
     1434     1077,    0,    0,    0, 1077, 1078,    0,    0, 1078,    0,
     1435     1078, 1078, 1078, 1078, 1078, 1079,    0, 1079, 1080,    0,
     1436     1080, 1081,    0, 1081, 1082,    0, 1082,    0,    0,    0,
     1437     1082, 1083,    0, 1083,    0,    0,    0, 1083, 1084,    0,
     1438     1084,    0,    0,    0, 1084, 1085,    0, 1085, 1086,    0,
     1439
    14361440     1086,    0,    0,    0, 1086, 1087,    0, 1087,    0,    0,
    1437         0, 1087,  913,  913,  913,  913,  913,  913,  913,  913,
    1438       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1439 
    1440       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1441       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1442       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1443       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1444       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1445       913,  913,  913,  913,  913,  913,  913,  913,  913,  913,
    1446       913,  913,  913,  913,  913,  913,  913,  913
     1441        0, 1087, 1088,    0, 1088,    0,    0,    0, 1088, 1089,
     1442        0, 1089,    0,    0,    0, 1089, 1090,    0, 1090,    0,
     1443        0,    0, 1090, 1091,    0, 1091,    0,    0,    0, 1091,
     1444     1092,    0, 1092,    0,    0,    0, 1092, 1093,    0, 1093,
     1445        0,    0,    0, 1093, 1094,    0, 1094,    0,    0,    0,
     1446     1094, 1095,    0, 1095,    0,    0,    0, 1095, 1096,    0,
     1447     1096,    0,    0,    0, 1096, 1097,    0, 1097,    0,    0,
     1448        0, 1097, 1098,    0, 1098,    0,    0,    0, 1098, 1099,
     1449        0, 1099,    0,    0,    0, 1099, 1100,    0, 1100,    0,
     1450
     1451        0,    0, 1100, 1101,    0, 1101,    0,    0,    0, 1101,
     1452      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1453      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1454      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1455      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1456      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1457      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1458      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1459      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
     1460      927,  927,  927,  927,  927,  927,  927
     1461
    14471462    } ;
    14481463
    14491464/* Table of booleans, true if rule could match eol. */
    1450 static yyconst flex_int32_t yy_rule_can_match_eol[188] =
     1465static yyconst flex_int32_t yy_rule_can_match_eol[191] =
    14511466    {   0,
    145214671, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14561471    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14571472    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1458     0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1473    0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
    14591474    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14601475    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1461     0, 0, 0, 0, 0, 0, 0, 0,     };
     1476    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
    14621477
    14631478static yy_state_type yy_last_accepting_state;
     
    14871502 * Created On       : Sat Sep 22 08:58:10 2001
    14881503 * Last Modified By : Peter A. Buhr
    1489  * Last Modified On : Fri Mar  3 22:18:00 2017
    1490  * Update Count     : 502
     1504 * Last Modified On : Thu Mar  9 21:38:26 2017
     1505 * Update Count     : 505
    14911506 */
    14921507#line 20 "lex.ll"
     
    15491564
    15501565
    1551 #line 1552 "Parser/lex.cc"
     1566#line 1567 "Parser/lex.cc"
    15521567
    15531568#define INITIAL 0
     
    17441759
    17451760                                   /* line directives */
    1746 #line 1747 "Parser/lex.cc"
     1761#line 1762 "Parser/lex.cc"
    17471762
    17481763        if ( !(yy_init) )
     
    17981813                                {
    17991814                                yy_current_state = (int) yy_def[yy_current_state];
    1800                                 if ( yy_current_state >= 914 )
     1815                                if ( yy_current_state >= 928 )
    18011816                                        yy_c = yy_meta[(unsigned int) yy_c];
    18021817                                }
     
    18041819                        ++yy_cp;
    18051820                        }
    1806                 while ( yy_base[yy_current_state] != 2883 );
     1821                while ( yy_base[yy_current_state] != 2911 );
    18071822
    18081823yy_find_action:
     
    20452060YY_RULE_SETUP
    20462061#line 204 "lex.ll"
     2062{ KEYWORD_RETURN(COROUTINE); }                  // CFA
     2063        YY_BREAK
     2064case 37:
     2065YY_RULE_SETUP
     2066#line 205 "lex.ll"
    20472067{ KEYWORD_RETURN(DEFAULT); }
    20482068        YY_BREAK
    2049 case 37:
    2050 YY_RULE_SETUP
    2051 #line 205 "lex.ll"
     2069case 38:
     2070YY_RULE_SETUP
     2071#line 206 "lex.ll"
    20522072{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20532073        YY_BREAK
    2054 case 38:
    2055 YY_RULE_SETUP
    2056 #line 206 "lex.ll"
     2074case 39:
     2075YY_RULE_SETUP
     2076#line 207 "lex.ll"
    20572077{ KEYWORD_RETURN(DO); }
    20582078        YY_BREAK
    2059 case 39:
    2060 YY_RULE_SETUP
    2061 #line 207 "lex.ll"
     2079case 40:
     2080YY_RULE_SETUP
     2081#line 208 "lex.ll"
    20622082{ KEYWORD_RETURN(DOUBLE); }
    20632083        YY_BREAK
    2064 case 40:
    2065 YY_RULE_SETUP
    2066 #line 208 "lex.ll"
     2084case 41:
     2085YY_RULE_SETUP
     2086#line 209 "lex.ll"
    20672087{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20682088        YY_BREAK
    2069 case 41:
    2070 YY_RULE_SETUP
    2071 #line 209 "lex.ll"
     2089case 42:
     2090YY_RULE_SETUP
     2091#line 210 "lex.ll"
    20722092{ KEYWORD_RETURN(ELSE); }
    20732093        YY_BREAK
    2074 case 42:
    2075 YY_RULE_SETUP
    2076 #line 210 "lex.ll"
     2094case 43:
     2095YY_RULE_SETUP
     2096#line 211 "lex.ll"
    20772097{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20782098        YY_BREAK
    2079 case 43:
    2080 YY_RULE_SETUP
    2081 #line 211 "lex.ll"
     2099case 44:
     2100YY_RULE_SETUP
     2101#line 212 "lex.ll"
    20822102{ KEYWORD_RETURN(ENUM); }
    20832103        YY_BREAK
    2084 case 44:
    2085 YY_RULE_SETUP
    2086 #line 212 "lex.ll"
     2104case 45:
     2105YY_RULE_SETUP
     2106#line 213 "lex.ll"
    20872107{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20882108        YY_BREAK
    2089 case 45:
    2090 YY_RULE_SETUP
    2091 #line 213 "lex.ll"
     2109case 46:
     2110YY_RULE_SETUP
     2111#line 214 "lex.ll"
    20922112{ KEYWORD_RETURN(EXTERN); }
    2093         YY_BREAK
    2094 case 46:
    2095 YY_RULE_SETUP
    2096 #line 214 "lex.ll"
    2097 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20982113        YY_BREAK
    20992114case 47:
     
    21052120YY_RULE_SETUP
    21062121#line 216 "lex.ll"
     2122{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2123        YY_BREAK
     2124case 49:
     2125YY_RULE_SETUP
     2126#line 217 "lex.ll"
    21072127{ KEYWORD_RETURN(FINALLY); }                    // CFA
    21082128        YY_BREAK
    2109 case 49:
    2110 YY_RULE_SETUP
    2111 #line 217 "lex.ll"
     2129case 50:
     2130YY_RULE_SETUP
     2131#line 218 "lex.ll"
    21122132{ KEYWORD_RETURN(FLOAT); }
    21132133        YY_BREAK
    2114 case 50:
    2115 YY_RULE_SETUP
    2116 #line 218 "lex.ll"
     2134case 51:
     2135YY_RULE_SETUP
     2136#line 219 "lex.ll"
    21172137{ KEYWORD_RETURN(FLOAT); }                              // GCC
    21182138        YY_BREAK
    2119 case 51:
    2120 YY_RULE_SETUP
    2121 #line 219 "lex.ll"
     2139case 52:
     2140YY_RULE_SETUP
     2141#line 220 "lex.ll"
    21222142{ KEYWORD_RETURN(FOR); }
    21232143        YY_BREAK
    2124 case 52:
    2125 YY_RULE_SETUP
    2126 #line 220 "lex.ll"
     2144case 53:
     2145YY_RULE_SETUP
     2146#line 221 "lex.ll"
    21272147{ KEYWORD_RETURN(FORALL); }                             // CFA
    21282148        YY_BREAK
    2129 case 53:
    2130 YY_RULE_SETUP
    2131 #line 221 "lex.ll"
     2149case 54:
     2150YY_RULE_SETUP
     2151#line 222 "lex.ll"
    21322152{ KEYWORD_RETURN(FORTRAN); }
    21332153        YY_BREAK
    2134 case 54:
    2135 YY_RULE_SETUP
    2136 #line 222 "lex.ll"
     2154case 55:
     2155YY_RULE_SETUP
     2156#line 223 "lex.ll"
    21372157{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21382158        YY_BREAK
    2139 case 55:
    2140 YY_RULE_SETUP
    2141 #line 223 "lex.ll"
     2159case 56:
     2160YY_RULE_SETUP
     2161#line 224 "lex.ll"
    21422162{ KEYWORD_RETURN(GENERIC); }                    // C11
    21432163        YY_BREAK
    2144 case 56:
    2145 YY_RULE_SETUP
    2146 #line 224 "lex.ll"
     2164case 57:
     2165YY_RULE_SETUP
     2166#line 225 "lex.ll"
    21472167{ KEYWORD_RETURN(GOTO); }
    21482168        YY_BREAK
    2149 case 57:
    2150 YY_RULE_SETUP
    2151 #line 225 "lex.ll"
     2169case 58:
     2170YY_RULE_SETUP
     2171#line 226 "lex.ll"
    21522172{ KEYWORD_RETURN(IF); }
    21532173        YY_BREAK
    2154 case 58:
    2155 YY_RULE_SETUP
    2156 #line 226 "lex.ll"
     2174case 59:
     2175YY_RULE_SETUP
     2176#line 227 "lex.ll"
    21572177{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    2158         YY_BREAK
    2159 case 59:
    2160 YY_RULE_SETUP
    2161 #line 227 "lex.ll"
    2162 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21632178        YY_BREAK
    21642179case 60:
     
    21702185YY_RULE_SETUP
    21712186#line 229 "lex.ll"
     2187{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2188        YY_BREAK
     2189case 62:
     2190YY_RULE_SETUP
     2191#line 230 "lex.ll"
    21722192{ KEYWORD_RETURN(INLINE); }                             // C99
    2173         YY_BREAK
    2174 case 62:
    2175 YY_RULE_SETUP
    2176 #line 230 "lex.ll"
    2177 { KEYWORD_RETURN(INLINE); }                             // GCC
    21782193        YY_BREAK
    21792194case 63:
     
    21852200YY_RULE_SETUP
    21862201#line 232 "lex.ll"
     2202{ KEYWORD_RETURN(INLINE); }                             // GCC
     2203        YY_BREAK
     2204case 65:
     2205YY_RULE_SETUP
     2206#line 233 "lex.ll"
    21872207{ KEYWORD_RETURN(INT); }
    21882208        YY_BREAK
    2189 case 65:
    2190 YY_RULE_SETUP
    2191 #line 233 "lex.ll"
     2209case 66:
     2210YY_RULE_SETUP
     2211#line 234 "lex.ll"
    21922212{ KEYWORD_RETURN(INT); }                                // GCC
    21932213        YY_BREAK
    2194 case 66:
    2195 YY_RULE_SETUP
    2196 #line 234 "lex.ll"
     2214case 67:
     2215YY_RULE_SETUP
     2216#line 235 "lex.ll"
    21972217{ KEYWORD_RETURN(LABEL); }                              // GCC
    21982218        YY_BREAK
    2199 case 67:
    2200 YY_RULE_SETUP
    2201 #line 235 "lex.ll"
     2219case 68:
     2220YY_RULE_SETUP
     2221#line 236 "lex.ll"
    22022222{ KEYWORD_RETURN(LONG); }
    22032223        YY_BREAK
    2204 case 68:
    2205 YY_RULE_SETUP
    2206 #line 236 "lex.ll"
     2224case 69:
     2225YY_RULE_SETUP
     2226#line 237 "lex.ll"
    22072227{ KEYWORD_RETURN(LVALUE); }                             // CFA
    22082228        YY_BREAK
    2209 case 69:
    2210 YY_RULE_SETUP
    2211 #line 237 "lex.ll"
     2229case 70:
     2230YY_RULE_SETUP
     2231#line 238 "lex.ll"
     2232{ KEYWORD_RETURN(MONITOR); }                    // CFA
     2233        YY_BREAK
     2234case 71:
     2235YY_RULE_SETUP
     2236#line 239 "lex.ll"
    22122237{ KEYWORD_RETURN(MUTEX); }                              // CFA
    22132238        YY_BREAK
    2214 case 70:
    2215 YY_RULE_SETUP
    2216 #line 238 "lex.ll"
     2239case 72:
     2240YY_RULE_SETUP
     2241#line 240 "lex.ll"
    22172242{ KEYWORD_RETURN(NORETURN); }                   // C11
    22182243        YY_BREAK
    2219 case 71:
    2220 YY_RULE_SETUP
    2221 #line 239 "lex.ll"
     2244case 73:
     2245YY_RULE_SETUP
     2246#line 241 "lex.ll"
    22222247{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    22232248        YY_BREAK
    2224 case 72:
    2225 YY_RULE_SETUP
    2226 #line 240 "lex.ll"
     2249case 74:
     2250YY_RULE_SETUP
     2251#line 242 "lex.ll"
    22272252{ NUMERIC_RETURN(ONE_T); }                              // CFA
    22282253        YY_BREAK
    2229 case 73:
    2230 YY_RULE_SETUP
    2231 #line 241 "lex.ll"
     2254case 75:
     2255YY_RULE_SETUP
     2256#line 243 "lex.ll"
    22322257{ KEYWORD_RETURN(OTYPE); }                              // CFA
    22332258        YY_BREAK
    2234 case 74:
    2235 YY_RULE_SETUP
    2236 #line 242 "lex.ll"
     2259case 76:
     2260YY_RULE_SETUP
     2261#line 244 "lex.ll"
    22372262{ KEYWORD_RETURN(REGISTER); }
    22382263        YY_BREAK
    2239 case 75:
    2240 YY_RULE_SETUP
    2241 #line 243 "lex.ll"
     2264case 77:
     2265YY_RULE_SETUP
     2266#line 245 "lex.ll"
    22422267{ KEYWORD_RETURN(RESTRICT); }                   // C99
    22432268        YY_BREAK
    2244 case 76:
    2245 YY_RULE_SETUP
    2246 #line 244 "lex.ll"
     2269case 78:
     2270YY_RULE_SETUP
     2271#line 246 "lex.ll"
    22472272{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22482273        YY_BREAK
    2249 case 77:
    2250 YY_RULE_SETUP
    2251 #line 245 "lex.ll"
     2274case 79:
     2275YY_RULE_SETUP
     2276#line 247 "lex.ll"
    22522277{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22532278        YY_BREAK
    2254 case 78:
    2255 YY_RULE_SETUP
    2256 #line 246 "lex.ll"
     2279case 80:
     2280YY_RULE_SETUP
     2281#line 248 "lex.ll"
    22572282{ KEYWORD_RETURN(RETURN); }
    22582283        YY_BREAK
    2259 case 79:
    2260 YY_RULE_SETUP
    2261 #line 247 "lex.ll"
     2284case 81:
     2285YY_RULE_SETUP
     2286#line 249 "lex.ll"
    22622287{ KEYWORD_RETURN(SHORT); }
    22632288        YY_BREAK
    2264 case 80:
    2265 YY_RULE_SETUP
    2266 #line 248 "lex.ll"
     2289case 82:
     2290YY_RULE_SETUP
     2291#line 250 "lex.ll"
    22672292{ KEYWORD_RETURN(SIGNED); }
    22682293        YY_BREAK
    2269 case 81:
    2270 YY_RULE_SETUP
    2271 #line 249 "lex.ll"
     2294case 83:
     2295YY_RULE_SETUP
     2296#line 251 "lex.ll"
    22722297{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22732298        YY_BREAK
    2274 case 82:
    2275 YY_RULE_SETUP
    2276 #line 250 "lex.ll"
     2299case 84:
     2300YY_RULE_SETUP
     2301#line 252 "lex.ll"
    22772302{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22782303        YY_BREAK
    2279 case 83:
    2280 YY_RULE_SETUP
    2281 #line 251 "lex.ll"
     2304case 85:
     2305YY_RULE_SETUP
     2306#line 253 "lex.ll"
    22822307{ KEYWORD_RETURN(SIZEOF); }
    22832308        YY_BREAK
    2284 case 84:
    2285 YY_RULE_SETUP
    2286 #line 252 "lex.ll"
     2309case 86:
     2310YY_RULE_SETUP
     2311#line 254 "lex.ll"
    22872312{ KEYWORD_RETURN(STATIC); }
    22882313        YY_BREAK
    2289 case 85:
    2290 YY_RULE_SETUP
    2291 #line 253 "lex.ll"
     2314case 87:
     2315YY_RULE_SETUP
     2316#line 255 "lex.ll"
    22922317{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22932318        YY_BREAK
    2294 case 86:
    2295 YY_RULE_SETUP
    2296 #line 254 "lex.ll"
     2319case 88:
     2320YY_RULE_SETUP
     2321#line 256 "lex.ll"
    22972322{ KEYWORD_RETURN(STRUCT); }
    22982323        YY_BREAK
    2299 case 87:
    2300 YY_RULE_SETUP
    2301 #line 255 "lex.ll"
     2324case 89:
     2325YY_RULE_SETUP
     2326#line 257 "lex.ll"
    23022327{ KEYWORD_RETURN(SWITCH); }
    23032328        YY_BREAK
    2304 case 88:
    2305 YY_RULE_SETUP
    2306 #line 256 "lex.ll"
     2329case 90:
     2330YY_RULE_SETUP
     2331#line 258 "lex.ll"
     2332{ KEYWORD_RETURN(THREAD); }                             // C11
     2333        YY_BREAK
     2334case 91:
     2335YY_RULE_SETUP
     2336#line 259 "lex.ll"
    23072337{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    23082338        YY_BREAK
    2309 case 89:
    2310 YY_RULE_SETUP
    2311 #line 257 "lex.ll"
     2339case 92:
     2340YY_RULE_SETUP
     2341#line 260 "lex.ll"
    23122342{ KEYWORD_RETURN(THROW); }                              // CFA
    23132343        YY_BREAK
    2314 case 90:
    2315 YY_RULE_SETUP
    2316 #line 258 "lex.ll"
     2344case 93:
     2345YY_RULE_SETUP
     2346#line 261 "lex.ll"
    23172347{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    23182348        YY_BREAK
    2319 case 91:
    2320 YY_RULE_SETUP
    2321 #line 259 "lex.ll"
     2349case 94:
     2350YY_RULE_SETUP
     2351#line 262 "lex.ll"
    23222352{ KEYWORD_RETURN(TRAIT); }                              // CFA
    23232353        YY_BREAK
    2324 case 92:
    2325 YY_RULE_SETUP
    2326 #line 260 "lex.ll"
     2354case 95:
     2355YY_RULE_SETUP
     2356#line 263 "lex.ll"
    23272357{ KEYWORD_RETURN(TRY); }                                // CFA
    23282358        YY_BREAK
    2329 case 93:
    2330 YY_RULE_SETUP
    2331 #line 261 "lex.ll"
     2359case 96:
     2360YY_RULE_SETUP
     2361#line 264 "lex.ll"
    23322362{ KEYWORD_RETURN(TTYPE); }                              // CFA
    23332363        YY_BREAK
    2334 case 94:
    2335 YY_RULE_SETUP
    2336 #line 262 "lex.ll"
     2364case 97:
     2365YY_RULE_SETUP
     2366#line 265 "lex.ll"
    23372367{ KEYWORD_RETURN(TYPEDEF); }
    23382368        YY_BREAK
    2339 case 95:
    2340 YY_RULE_SETUP
    2341 #line 263 "lex.ll"
     2369case 98:
     2370YY_RULE_SETUP
     2371#line 266 "lex.ll"
    23422372{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23432373        YY_BREAK
    2344 case 96:
    2345 YY_RULE_SETUP
    2346 #line 264 "lex.ll"
     2374case 99:
     2375YY_RULE_SETUP
     2376#line 267 "lex.ll"
    23472377{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23482378        YY_BREAK
    2349 case 97:
    2350 YY_RULE_SETUP
    2351 #line 265 "lex.ll"
     2379case 100:
     2380YY_RULE_SETUP
     2381#line 268 "lex.ll"
    23522382{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23532383        YY_BREAK
    2354 case 98:
    2355 YY_RULE_SETUP
    2356 #line 266 "lex.ll"
     2384case 101:
     2385YY_RULE_SETUP
     2386#line 269 "lex.ll"
    23572387{ KEYWORD_RETURN(UNION); }
    23582388        YY_BREAK
    2359 case 99:
    2360 YY_RULE_SETUP
    2361 #line 267 "lex.ll"
     2389case 102:
     2390YY_RULE_SETUP
     2391#line 270 "lex.ll"
    23622392{ KEYWORD_RETURN(UNSIGNED); }
    23632393        YY_BREAK
    2364 case 100:
    2365 YY_RULE_SETUP
    2366 #line 268 "lex.ll"
     2394case 103:
     2395YY_RULE_SETUP
     2396#line 271 "lex.ll"
    23672397{ KEYWORD_RETURN(VALIST); }                     // GCC
    23682398        YY_BREAK
    2369 case 101:
    2370 YY_RULE_SETUP
    2371 #line 269 "lex.ll"
     2399case 104:
     2400YY_RULE_SETUP
     2401#line 272 "lex.ll"
    23722402{ KEYWORD_RETURN(VOID); }
    23732403        YY_BREAK
    2374 case 102:
    2375 YY_RULE_SETUP
    2376 #line 270 "lex.ll"
     2404case 105:
     2405YY_RULE_SETUP
     2406#line 273 "lex.ll"
    23772407{ KEYWORD_RETURN(VOLATILE); }
    23782408        YY_BREAK
    2379 case 103:
    2380 YY_RULE_SETUP
    2381 #line 271 "lex.ll"
     2409case 106:
     2410YY_RULE_SETUP
     2411#line 274 "lex.ll"
    23822412{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23832413        YY_BREAK
    2384 case 104:
    2385 YY_RULE_SETUP
    2386 #line 272 "lex.ll"
     2414case 107:
     2415YY_RULE_SETUP
     2416#line 275 "lex.ll"
    23872417{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23882418        YY_BREAK
    2389 case 105:
    2390 YY_RULE_SETUP
    2391 #line 273 "lex.ll"
     2419case 108:
     2420YY_RULE_SETUP
     2421#line 276 "lex.ll"
    23922422{ KEYWORD_RETURN(WHILE); }
    23932423        YY_BREAK
    2394 case 106:
    2395 YY_RULE_SETUP
    2396 #line 274 "lex.ll"
     2424case 109:
     2425YY_RULE_SETUP
     2426#line 277 "lex.ll"
    23972427{ NUMERIC_RETURN(ZERO_T); }                             // CFA
    23982428        YY_BREAK
    23992429/* identifier */
    2400 case 107:
    2401 YY_RULE_SETUP
    2402 #line 277 "lex.ll"
    2403 { IDENTIFIER_RETURN(); }
    2404         YY_BREAK
    2405 case 108:
    2406 YY_RULE_SETUP
    2407 #line 278 "lex.ll"
    2408 { ATTRIBUTE_RETURN(); }
    2409         YY_BREAK
    2410 case 109:
    2411 YY_RULE_SETUP
    2412 #line 279 "lex.ll"
    2413 { BEGIN BKQUOTE; }
    2414         YY_BREAK
    24152430case 110:
    24162431YY_RULE_SETUP
     
    24212436YY_RULE_SETUP
    24222437#line 281 "lex.ll"
     2438{ ATTRIBUTE_RETURN(); }
     2439        YY_BREAK
     2440case 112:
     2441YY_RULE_SETUP
     2442#line 282 "lex.ll"
     2443{ BEGIN BKQUOTE; }
     2444        YY_BREAK
     2445case 113:
     2446YY_RULE_SETUP
     2447#line 283 "lex.ll"
     2448{ IDENTIFIER_RETURN(); }
     2449        YY_BREAK
     2450case 114:
     2451YY_RULE_SETUP
     2452#line 284 "lex.ll"
    24232453{ BEGIN 0; }
    24242454        YY_BREAK
    24252455/* numeric constants */
    2426 case 112:
    2427 YY_RULE_SETUP
    2428 #line 284 "lex.ll"
     2456case 115:
     2457YY_RULE_SETUP
     2458#line 287 "lex.ll"
    24292459{ NUMERIC_RETURN(ZERO); }                               // CFA
    24302460        YY_BREAK
    2431 case 113:
    2432 YY_RULE_SETUP
    2433 #line 285 "lex.ll"
     2461case 116:
     2462YY_RULE_SETUP
     2463#line 288 "lex.ll"
    24342464{ NUMERIC_RETURN(ONE); }                                // CFA
    24352465        YY_BREAK
    2436 case 114:
    2437 YY_RULE_SETUP
    2438 #line 286 "lex.ll"
     2466case 117:
     2467YY_RULE_SETUP
     2468#line 289 "lex.ll"
    24392469{ NUMERIC_RETURN(INTEGERconstant); }
    24402470        YY_BREAK
    2441 case 115:
    2442 YY_RULE_SETUP
    2443 #line 287 "lex.ll"
     2471case 118:
     2472YY_RULE_SETUP
     2473#line 290 "lex.ll"
    24442474{ NUMERIC_RETURN(INTEGERconstant); }
    24452475        YY_BREAK
    2446 case 116:
    2447 YY_RULE_SETUP
    2448 #line 288 "lex.ll"
     2476case 119:
     2477YY_RULE_SETUP
     2478#line 291 "lex.ll"
    24492479{ NUMERIC_RETURN(INTEGERconstant); }
    24502480        YY_BREAK
    2451 case 117:
    2452 YY_RULE_SETUP
    2453 #line 289 "lex.ll"
     2481case 120:
     2482YY_RULE_SETUP
     2483#line 292 "lex.ll"
    24542484{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
    24552485        YY_BREAK
    2456 case 118:
    2457 YY_RULE_SETUP
    2458 #line 290 "lex.ll"
     2486case 121:
     2487YY_RULE_SETUP
     2488#line 293 "lex.ll"
    24592489{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    24602490        YY_BREAK
    2461 case 119:
    2462 YY_RULE_SETUP
    2463 #line 291 "lex.ll"
     2491case 122:
     2492YY_RULE_SETUP
     2493#line 294 "lex.ll"
    24642494{ NUMERIC_RETURN(FLOATINGconstant); }
    24652495        YY_BREAK
    2466 case 120:
    2467 YY_RULE_SETUP
    2468 #line 292 "lex.ll"
     2496case 123:
     2497YY_RULE_SETUP
     2498#line 295 "lex.ll"
    24692499{ NUMERIC_RETURN(FLOATINGconstant); }
    24702500        YY_BREAK
    24712501/* character constant, allows empty value */
    2472 case 121:
    2473 YY_RULE_SETUP
    2474 #line 295 "lex.ll"
     2502case 124:
     2503YY_RULE_SETUP
     2504#line 298 "lex.ll"
    24752505{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24762506        YY_BREAK
    2477 case 122:
    2478 YY_RULE_SETUP
    2479 #line 296 "lex.ll"
     2507case 125:
     2508YY_RULE_SETUP
     2509#line 299 "lex.ll"
    24802510{ strtext->append( yytext, yyleng ); }
    24812511        YY_BREAK
    2482 case 123:
    2483 /* rule 123 can match eol */
    2484 YY_RULE_SETUP
    2485 #line 297 "lex.ll"
     2512case 126:
     2513/* rule 126 can match eol */
     2514YY_RULE_SETUP
     2515#line 300 "lex.ll"
    24862516{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24872517        YY_BREAK
    24882518/* ' stop highlighting */
    24892519/* string constant */
    2490 case 124:
    2491 YY_RULE_SETUP
    2492 #line 301 "lex.ll"
     2520case 127:
     2521YY_RULE_SETUP
     2522#line 304 "lex.ll"
    24932523{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24942524        YY_BREAK
    2495 case 125:
    2496 YY_RULE_SETUP
    2497 #line 302 "lex.ll"
     2525case 128:
     2526YY_RULE_SETUP
     2527#line 305 "lex.ll"
    24982528{ strtext->append( yytext, yyleng ); }
    24992529        YY_BREAK
    2500 case 126:
    2501 /* rule 126 can match eol */
    2502 YY_RULE_SETUP
    2503 #line 303 "lex.ll"
     2530case 129:
     2531/* rule 129 can match eol */
     2532YY_RULE_SETUP
     2533#line 306 "lex.ll"
    25042534{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    25052535        YY_BREAK
    25062536/* " stop highlighting */
    25072537/* common character/string constant */
    2508 case 127:
    2509 YY_RULE_SETUP
    2510 #line 307 "lex.ll"
     2538case 130:
     2539YY_RULE_SETUP
     2540#line 310 "lex.ll"
    25112541{ rm_underscore(); strtext->append( yytext, yyleng ); }
    25122542        YY_BREAK
    2513 case 128:
    2514 /* rule 128 can match eol */
    2515 YY_RULE_SETUP
    2516 #line 308 "lex.ll"
     2543case 131:
     2544/* rule 131 can match eol */
     2545YY_RULE_SETUP
     2546#line 311 "lex.ll"
    25172547{}                                              // continuation (ALSO HANDLED BY CPP)
    25182548        YY_BREAK
    2519 case 129:
    2520 YY_RULE_SETUP
    2521 #line 309 "lex.ll"
     2549case 132:
     2550YY_RULE_SETUP
     2551#line 312 "lex.ll"
    25222552{ strtext->append( yytext, yyleng ); } // unknown escape character
    25232553        YY_BREAK
    25242554/* punctuation */
    2525 case 130:
    2526 YY_RULE_SETUP
    2527 #line 312 "lex.ll"
    2528 { ASCIIOP_RETURN(); }
    2529         YY_BREAK
    2530 case 131:
    2531 YY_RULE_SETUP
    2532 #line 313 "lex.ll"
    2533 { ASCIIOP_RETURN(); }
    2534         YY_BREAK
    2535 case 132:
    2536 YY_RULE_SETUP
    2537 #line 314 "lex.ll"
    2538 { ASCIIOP_RETURN(); }
    2539         YY_BREAK
    25402555case 133:
    25412556YY_RULE_SETUP
     
    25562571YY_RULE_SETUP
    25572572#line 318 "lex.ll"
    2558 { ASCIIOP_RETURN(); }                                   // also operator
     2573{ ASCIIOP_RETURN(); }
    25592574        YY_BREAK
    25602575case 137:
     
    25762591YY_RULE_SETUP
    25772592#line 322 "lex.ll"
     2593{ ASCIIOP_RETURN(); }
     2594        YY_BREAK
     2595case 141:
     2596YY_RULE_SETUP
     2597#line 323 "lex.ll"
     2598{ ASCIIOP_RETURN(); }
     2599        YY_BREAK
     2600case 142:
     2601YY_RULE_SETUP
     2602#line 324 "lex.ll"
     2603{ ASCIIOP_RETURN(); }                                   // also operator
     2604        YY_BREAK
     2605case 143:
     2606YY_RULE_SETUP
     2607#line 325 "lex.ll"
    25782608{ NAMEDOP_RETURN(ELLIPSIS); }
    25792609        YY_BREAK
    25802610/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2581 case 141:
    2582 YY_RULE_SETUP
    2583 #line 325 "lex.ll"
     2611case 144:
     2612YY_RULE_SETUP
     2613#line 328 "lex.ll"
    25842614{ RETURN_VAL('['); }
    25852615        YY_BREAK
    2586 case 142:
    2587 YY_RULE_SETUP
    2588 #line 326 "lex.ll"
     2616case 145:
     2617YY_RULE_SETUP
     2618#line 329 "lex.ll"
    25892619{ RETURN_VAL(']'); }
    25902620        YY_BREAK
    2591 case 143:
    2592 YY_RULE_SETUP
    2593 #line 327 "lex.ll"
     2621case 146:
     2622YY_RULE_SETUP
     2623#line 330 "lex.ll"
    25942624{ RETURN_VAL('{'); }
    25952625        YY_BREAK
    2596 case 144:
    2597 YY_RULE_SETUP
    2598 #line 328 "lex.ll"
     2626case 147:
     2627YY_RULE_SETUP
     2628#line 331 "lex.ll"
    25992629{ RETURN_VAL('}'); }
    26002630        YY_BREAK
    26012631/* operators */
    2602 case 145:
    2603 YY_RULE_SETUP
    2604 #line 331 "lex.ll"
    2605 { ASCIIOP_RETURN(); }
    2606         YY_BREAK
    2607 case 146:
    2608 YY_RULE_SETUP
    2609 #line 332 "lex.ll"
    2610 { ASCIIOP_RETURN(); }
    2611         YY_BREAK
    2612 case 147:
    2613 YY_RULE_SETUP
    2614 #line 333 "lex.ll"
    2615 { ASCIIOP_RETURN(); }
    2616         YY_BREAK
    26172632case 148:
    26182633YY_RULE_SETUP
     
    26722687case 159:
    26732688YY_RULE_SETUP
     2689#line 345 "lex.ll"
     2690{ ASCIIOP_RETURN(); }
     2691        YY_BREAK
     2692case 160:
     2693YY_RULE_SETUP
    26742694#line 346 "lex.ll"
     2695{ ASCIIOP_RETURN(); }
     2696        YY_BREAK
     2697case 161:
     2698YY_RULE_SETUP
     2699#line 347 "lex.ll"
     2700{ ASCIIOP_RETURN(); }
     2701        YY_BREAK
     2702case 162:
     2703YY_RULE_SETUP
     2704#line 349 "lex.ll"
    26752705{ NAMEDOP_RETURN(ICR); }
    26762706        YY_BREAK
    2677 case 160:
    2678 YY_RULE_SETUP
    2679 #line 347 "lex.ll"
     2707case 163:
     2708YY_RULE_SETUP
     2709#line 350 "lex.ll"
    26802710{ NAMEDOP_RETURN(DECR); }
    26812711        YY_BREAK
    2682 case 161:
    2683 YY_RULE_SETUP
    2684 #line 348 "lex.ll"
     2712case 164:
     2713YY_RULE_SETUP
     2714#line 351 "lex.ll"
    26852715{ NAMEDOP_RETURN(EQ); }
    26862716        YY_BREAK
    2687 case 162:
    2688 YY_RULE_SETUP
    2689 #line 349 "lex.ll"
     2717case 165:
     2718YY_RULE_SETUP
     2719#line 352 "lex.ll"
    26902720{ NAMEDOP_RETURN(NE); }
    26912721        YY_BREAK
    2692 case 163:
    2693 YY_RULE_SETUP
    2694 #line 350 "lex.ll"
     2722case 166:
     2723YY_RULE_SETUP
     2724#line 353 "lex.ll"
    26952725{ NAMEDOP_RETURN(LS); }
    26962726        YY_BREAK
    2697 case 164:
    2698 YY_RULE_SETUP
    2699 #line 351 "lex.ll"
     2727case 167:
     2728YY_RULE_SETUP
     2729#line 354 "lex.ll"
    27002730{ NAMEDOP_RETURN(RS); }
    27012731        YY_BREAK
    2702 case 165:
    2703 YY_RULE_SETUP
    2704 #line 352 "lex.ll"
     2732case 168:
     2733YY_RULE_SETUP
     2734#line 355 "lex.ll"
    27052735{ NAMEDOP_RETURN(LE); }
    27062736        YY_BREAK
    2707 case 166:
    2708 YY_RULE_SETUP
    2709 #line 353 "lex.ll"
     2737case 169:
     2738YY_RULE_SETUP
     2739#line 356 "lex.ll"
    27102740{ NAMEDOP_RETURN(GE); }
    27112741        YY_BREAK
    2712 case 167:
    2713 YY_RULE_SETUP
    2714 #line 354 "lex.ll"
     2742case 170:
     2743YY_RULE_SETUP
     2744#line 357 "lex.ll"
    27152745{ NAMEDOP_RETURN(ANDAND); }
    27162746        YY_BREAK
    2717 case 168:
    2718 YY_RULE_SETUP
    2719 #line 355 "lex.ll"
     2747case 171:
     2748YY_RULE_SETUP
     2749#line 358 "lex.ll"
    27202750{ NAMEDOP_RETURN(OROR); }
    27212751        YY_BREAK
    2722 case 169:
    2723 YY_RULE_SETUP
    2724 #line 356 "lex.ll"
     2752case 172:
     2753YY_RULE_SETUP
     2754#line 359 "lex.ll"
    27252755{ NAMEDOP_RETURN(ARROW); }
    27262756        YY_BREAK
    2727 case 170:
    2728 YY_RULE_SETUP
    2729 #line 357 "lex.ll"
     2757case 173:
     2758YY_RULE_SETUP
     2759#line 360 "lex.ll"
    27302760{ NAMEDOP_RETURN(PLUSassign); }
    27312761        YY_BREAK
    2732 case 171:
    2733 YY_RULE_SETUP
    2734 #line 358 "lex.ll"
     2762case 174:
     2763YY_RULE_SETUP
     2764#line 361 "lex.ll"
    27352765{ NAMEDOP_RETURN(MINUSassign); }
    27362766        YY_BREAK
    2737 case 172:
    2738 YY_RULE_SETUP
    2739 #line 359 "lex.ll"
     2767case 175:
     2768YY_RULE_SETUP
     2769#line 362 "lex.ll"
    27402770{ NAMEDOP_RETURN(MULTassign); }
    27412771        YY_BREAK
    2742 case 173:
    2743 YY_RULE_SETUP
    2744 #line 360 "lex.ll"
     2772case 176:
     2773YY_RULE_SETUP
     2774#line 363 "lex.ll"
    27452775{ NAMEDOP_RETURN(DIVassign); }
    27462776        YY_BREAK
    2747 case 174:
    2748 YY_RULE_SETUP
    2749 #line 361 "lex.ll"
     2777case 177:
     2778YY_RULE_SETUP
     2779#line 364 "lex.ll"
    27502780{ NAMEDOP_RETURN(MODassign); }
    27512781        YY_BREAK
    2752 case 175:
    2753 YY_RULE_SETUP
    2754 #line 362 "lex.ll"
     2782case 178:
     2783YY_RULE_SETUP
     2784#line 365 "lex.ll"
    27552785{ NAMEDOP_RETURN(ANDassign); }
    27562786        YY_BREAK
    2757 case 176:
    2758 YY_RULE_SETUP
    2759 #line 363 "lex.ll"
     2787case 179:
     2788YY_RULE_SETUP
     2789#line 366 "lex.ll"
    27602790{ NAMEDOP_RETURN(ORassign); }
    27612791        YY_BREAK
    2762 case 177:
    2763 YY_RULE_SETUP
    2764 #line 364 "lex.ll"
     2792case 180:
     2793YY_RULE_SETUP
     2794#line 367 "lex.ll"
    27652795{ NAMEDOP_RETURN(ERassign); }
    27662796        YY_BREAK
    2767 case 178:
    2768 YY_RULE_SETUP
    2769 #line 365 "lex.ll"
     2797case 181:
     2798YY_RULE_SETUP
     2799#line 368 "lex.ll"
    27702800{ NAMEDOP_RETURN(LSassign); }
    27712801        YY_BREAK
    2772 case 179:
    2773 YY_RULE_SETUP
    2774 #line 366 "lex.ll"
     2802case 182:
     2803YY_RULE_SETUP
     2804#line 369 "lex.ll"
    27752805{ NAMEDOP_RETURN(RSassign); }
    27762806        YY_BREAK
    2777 case 180:
    2778 YY_RULE_SETUP
    2779 #line 368 "lex.ll"
     2807case 183:
     2808YY_RULE_SETUP
     2809#line 371 "lex.ll"
    27802810{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27812811        YY_BREAK
    27822812/* CFA, operator identifier */
    2783 case 181:
    2784 YY_RULE_SETUP
    2785 #line 371 "lex.ll"
     2813case 184:
     2814YY_RULE_SETUP
     2815#line 374 "lex.ll"
    27862816{ IDENTIFIER_RETURN(); }                                // unary
    27872817        YY_BREAK
    2788 case 182:
    2789 YY_RULE_SETUP
    2790 #line 372 "lex.ll"
     2818case 185:
     2819YY_RULE_SETUP
     2820#line 375 "lex.ll"
    27912821{ IDENTIFIER_RETURN(); }
    27922822        YY_BREAK
    2793 case 183:
    2794 YY_RULE_SETUP
    2795 #line 373 "lex.ll"
     2823case 186:
     2824YY_RULE_SETUP
     2825#line 376 "lex.ll"
    27962826{ IDENTIFIER_RETURN(); }
    27972827        YY_BREAK
    2798 case 184:
    2799 YY_RULE_SETUP
    2800 #line 374 "lex.ll"
     2828case 187:
     2829YY_RULE_SETUP
     2830#line 377 "lex.ll"
    28012831{ IDENTIFIER_RETURN(); }                // binary
    28022832        YY_BREAK
     
    28272857          an argument list.
    28282858        */
    2829 case 185:
    2830 YY_RULE_SETUP
    2831 #line 401 "lex.ll"
     2859case 188:
     2860YY_RULE_SETUP
     2861#line 404 "lex.ll"
    28322862{
    28332863        // 1 or 2 character unary operator ?
     
    28422872        YY_BREAK
    28432873/* unknown characters */
    2844 case 186:
    2845 YY_RULE_SETUP
    2846 #line 413 "lex.ll"
     2874case 189:
     2875YY_RULE_SETUP
     2876#line 416 "lex.ll"
    28472877{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28482878        YY_BREAK
    2849 case 187:
    2850 YY_RULE_SETUP
    2851 #line 415 "lex.ll"
     2879case 190:
     2880YY_RULE_SETUP
     2881#line 418 "lex.ll"
    28522882ECHO;
    28532883        YY_BREAK
    2854 #line 2855 "Parser/lex.cc"
     2884#line 2885 "Parser/lex.cc"
    28552885case YY_STATE_EOF(INITIAL):
    28562886case YY_STATE_EOF(COMMENT):
     
    31493179                        {
    31503180                        yy_current_state = (int) yy_def[yy_current_state];
    3151                         if ( yy_current_state >= 914 )
     3181                        if ( yy_current_state >= 928 )
    31523182                                yy_c = yy_meta[(unsigned int) yy_c];
    31533183                        }
     
    31773207                {
    31783208                yy_current_state = (int) yy_def[yy_current_state];
    3179                 if ( yy_current_state >= 914 )
     3209                if ( yy_current_state >= 928 )
    31803210                        yy_c = yy_meta[(unsigned int) yy_c];
    31813211                }
    31823212        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3183         yy_is_jam = (yy_current_state == 913);
     3213        yy_is_jam = (yy_current_state == 927);
    31843214
    31853215        return yy_is_jam ? 0 : yy_current_state;
     
    38273857#define YYTABLES_NAME "yytables"
    38283858
    3829 #line 415 "lex.ll"
     3859#line 418 "lex.ll"
    38303860
    38313861
  • src/Parser/lex.ll

    rc3396e0 rd3bc0ad  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Fri Mar  3 22:18:00 2017
    13  * Update Count     : 502
     12 * Last Modified On : Thu Mar  9 21:38:26 2017
     13 * Update Count     : 505
    1414 */
    1515
     
    202202__const__               { KEYWORD_RETURN(CONST); }                              // GCC
    203203continue                { KEYWORD_RETURN(CONTINUE); }
     204_Coroutine              { KEYWORD_RETURN(COROUTINE); }                  // CFA
    204205default                 { KEYWORD_RETURN(DEFAULT); }
    205206disable                 { KEYWORD_RETURN(DISABLE); }                    // CFA
     
    235236long                    { KEYWORD_RETURN(LONG); }
    236237lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
     238_Monitor                { KEYWORD_RETURN(MONITOR); }                    // CFA
    237239mutex                   { KEYWORD_RETURN(MUTEX); }                              // CFA
    238240_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
     
    254256struct                  { KEYWORD_RETURN(STRUCT); }
    255257switch                  { KEYWORD_RETURN(SWITCH); }
     258_Thread                 { KEYWORD_RETURN(THREAD); }                             // C11
    256259_Thread_local   { KEYWORD_RETURN(THREADLOCAL); }                // C11
    257260throw                   { KEYWORD_RETURN(THROW); }                              // CFA
  • src/Parser/parser.cc

    rc3396e0 rd3bc0ad  
    179179     STRUCT = 292,
    180180     UNION = 293,
    181      OTYPE = 294,
    182      FTYPE = 295,
    183      DTYPE = 296,
    184      TTYPE = 297,
    185      TRAIT = 298,
    186      SIZEOF = 299,
    187      OFFSETOF = 300,
    188      ATTRIBUTE = 301,
    189      EXTENSION = 302,
    190      IF = 303,
    191      ELSE = 304,
    192      SWITCH = 305,
    193      CASE = 306,
    194      DEFAULT = 307,
    195      DO = 308,
    196      WHILE = 309,
    197      FOR = 310,
    198      BREAK = 311,
    199      CONTINUE = 312,
    200      GOTO = 313,
    201      RETURN = 314,
    202      CHOOSE = 315,
    203      DISABLE = 316,
    204      ENABLE = 317,
    205      FALLTHRU = 318,
    206      TRY = 319,
    207      CATCH = 320,
    208      CATCHRESUME = 321,
    209      FINALLY = 322,
    210      THROW = 323,
    211      THROWRESUME = 324,
    212      AT = 325,
    213      ASM = 326,
    214      ALIGNAS = 327,
    215      ALIGNOF = 328,
    216      GENERIC = 329,
    217      STATICASSERT = 330,
    218      IDENTIFIER = 331,
    219      QUOTED_IDENTIFIER = 332,
    220      TYPEDEFname = 333,
    221      TYPEGENname = 334,
    222      ATTR_IDENTIFIER = 335,
    223      ATTR_TYPEDEFname = 336,
    224      ATTR_TYPEGENname = 337,
    225      INTEGERconstant = 338,
    226      CHARACTERconstant = 339,
    227      STRINGliteral = 340,
    228      REALDECIMALconstant = 341,
    229      REALFRACTIONconstant = 342,
    230      FLOATINGconstant = 343,
    231      ZERO = 344,
    232      ONE = 345,
    233      ARROW = 346,
    234      ICR = 347,
    235      DECR = 348,
    236      LS = 349,
    237      RS = 350,
    238      LE = 351,
    239      GE = 352,
    240      EQ = 353,
    241      NE = 354,
    242      ANDAND = 355,
    243      OROR = 356,
    244      ELLIPSIS = 357,
    245      MULTassign = 358,
    246      DIVassign = 359,
    247      MODassign = 360,
    248      PLUSassign = 361,
    249      MINUSassign = 362,
    250      LSassign = 363,
    251      RSassign = 364,
    252      ANDassign = 365,
    253      ERassign = 366,
    254      ORassign = 367,
    255      ATassign = 368,
    256      THEN = 369
     181     COROUTINE = 294,
     182     MONITOR = 295,
     183     THREAD = 296,
     184     OTYPE = 297,
     185     FTYPE = 298,
     186     DTYPE = 299,
     187     TTYPE = 300,
     188     TRAIT = 301,
     189     SIZEOF = 302,
     190     OFFSETOF = 303,
     191     ATTRIBUTE = 304,
     192     EXTENSION = 305,
     193     IF = 306,
     194     ELSE = 307,
     195     SWITCH = 308,
     196     CASE = 309,
     197     DEFAULT = 310,
     198     DO = 311,
     199     WHILE = 312,
     200     FOR = 313,
     201     BREAK = 314,
     202     CONTINUE = 315,
     203     GOTO = 316,
     204     RETURN = 317,
     205     CHOOSE = 318,
     206     DISABLE = 319,
     207     ENABLE = 320,
     208     FALLTHRU = 321,
     209     TRY = 322,
     210     CATCH = 323,
     211     CATCHRESUME = 324,
     212     FINALLY = 325,
     213     THROW = 326,
     214     THROWRESUME = 327,
     215     AT = 328,
     216     ASM = 329,
     217     ALIGNAS = 330,
     218     ALIGNOF = 331,
     219     GENERIC = 332,
     220     STATICASSERT = 333,
     221     IDENTIFIER = 334,
     222     QUOTED_IDENTIFIER = 335,
     223     TYPEDEFname = 336,
     224     TYPEGENname = 337,
     225     ATTR_IDENTIFIER = 338,
     226     ATTR_TYPEDEFname = 339,
     227     ATTR_TYPEGENname = 340,
     228     INTEGERconstant = 341,
     229     CHARACTERconstant = 342,
     230     STRINGliteral = 343,
     231     REALDECIMALconstant = 344,
     232     REALFRACTIONconstant = 345,
     233     FLOATINGconstant = 346,
     234     ZERO = 347,
     235     ONE = 348,
     236     ARROW = 349,
     237     ICR = 350,
     238     DECR = 351,
     239     LS = 352,
     240     RS = 353,
     241     LE = 354,
     242     GE = 355,
     243     EQ = 356,
     244     NE = 357,
     245     ANDAND = 358,
     246     OROR = 359,
     247     ELLIPSIS = 360,
     248     MULTassign = 361,
     249     DIVassign = 362,
     250     MODassign = 363,
     251     PLUSassign = 364,
     252     MINUSassign = 365,
     253     LSassign = 366,
     254     RSassign = 367,
     255     ANDassign = 368,
     256     ERassign = 369,
     257     ORassign = 370,
     258     ATassign = 371,
     259     THEN = 372
    257260   };
    258261#endif
     
    294297#define STRUCT 292
    295298#define UNION 293
    296 #define OTYPE 294
    297 #define FTYPE 295
    298 #define DTYPE 296
    299 #define TTYPE 297
    300 #define TRAIT 298
    301 #define SIZEOF 299
    302 #define OFFSETOF 300
    303 #define ATTRIBUTE 301
    304 #define EXTENSION 302
    305 #define IF 303
    306 #define ELSE 304
    307 #define SWITCH 305
    308 #define CASE 306
    309 #define DEFAULT 307
    310 #define DO 308
    311 #define WHILE 309
    312 #define FOR 310
    313 #define BREAK 311
    314 #define CONTINUE 312
    315 #define GOTO 313
    316 #define RETURN 314
    317 #define CHOOSE 315
    318 #define DISABLE 316
    319 #define ENABLE 317
    320 #define FALLTHRU 318
    321 #define TRY 319
    322 #define CATCH 320
    323 #define CATCHRESUME 321
    324 #define FINALLY 322
    325 #define THROW 323
    326 #define THROWRESUME 324
    327 #define AT 325
    328 #define ASM 326
    329 #define ALIGNAS 327
    330 #define ALIGNOF 328
    331 #define GENERIC 329
    332 #define STATICASSERT 330
    333 #define IDENTIFIER 331
    334 #define QUOTED_IDENTIFIER 332
    335 #define TYPEDEFname 333
    336 #define TYPEGENname 334
    337 #define ATTR_IDENTIFIER 335
    338 #define ATTR_TYPEDEFname 336
    339 #define ATTR_TYPEGENname 337
    340 #define INTEGERconstant 338
    341 #define CHARACTERconstant 339
    342 #define STRINGliteral 340
    343 #define REALDECIMALconstant 341
    344 #define REALFRACTIONconstant 342
    345 #define FLOATINGconstant 343
    346 #define ZERO 344
    347 #define ONE 345
    348 #define ARROW 346
    349 #define ICR 347
    350 #define DECR 348
    351 #define LS 349
    352 #define RS 350
    353 #define LE 351
    354 #define GE 352
    355 #define EQ 353
    356 #define NE 354
    357 #define ANDAND 355
    358 #define OROR 356
    359 #define ELLIPSIS 357
    360 #define MULTassign 358
    361 #define DIVassign 359
    362 #define MODassign 360
    363 #define PLUSassign 361
    364 #define MINUSassign 362
    365 #define LSassign 363
    366 #define RSassign 364
    367 #define ANDassign 365
    368 #define ERassign 366
    369 #define ORassign 367
    370 #define ATassign 368
    371 #define THEN 369
     299#define COROUTINE 294
     300#define MONITOR 295
     301#define THREAD 296
     302#define OTYPE 297
     303#define FTYPE 298
     304#define DTYPE 299
     305#define TTYPE 300
     306#define TRAIT 301
     307#define SIZEOF 302
     308#define OFFSETOF 303
     309#define ATTRIBUTE 304
     310#define EXTENSION 305
     311#define IF 306
     312#define ELSE 307
     313#define SWITCH 308
     314#define CASE 309
     315#define DEFAULT 310
     316#define DO 311
     317#define WHILE 312
     318#define FOR 313
     319#define BREAK 314
     320#define CONTINUE 315
     321#define GOTO 316
     322#define RETURN 317
     323#define CHOOSE 318
     324#define DISABLE 319
     325#define ENABLE 320
     326#define FALLTHRU 321
     327#define TRY 322
     328#define CATCH 323
     329#define CATCHRESUME 324
     330#define FINALLY 325
     331#define THROW 326
     332#define THROWRESUME 327
     333#define AT 328
     334#define ASM 329
     335#define ALIGNAS 330
     336#define ALIGNOF 331
     337#define GENERIC 332
     338#define STATICASSERT 333
     339#define IDENTIFIER 334
     340#define QUOTED_IDENTIFIER 335
     341#define TYPEDEFname 336
     342#define TYPEGENname 337
     343#define ATTR_IDENTIFIER 338
     344#define ATTR_TYPEDEFname 339
     345#define ATTR_TYPEGENname 340
     346#define INTEGERconstant 341
     347#define CHARACTERconstant 342
     348#define STRINGliteral 343
     349#define REALDECIMALconstant 344
     350#define REALFRACTIONconstant 345
     351#define FLOATINGconstant 346
     352#define ZERO 347
     353#define ONE 348
     354#define ARROW 349
     355#define ICR 350
     356#define DECR 351
     357#define LS 352
     358#define RS 353
     359#define LE 354
     360#define GE 355
     361#define EQ 356
     362#define NE 357
     363#define ANDAND 358
     364#define OROR 359
     365#define ELLIPSIS 360
     366#define MULTassign 361
     367#define DIVassign 362
     368#define MODassign 363
     369#define PLUSassign 364
     370#define MINUSassign 365
     371#define LSassign 366
     372#define RSassign 367
     373#define ANDassign 368
     374#define ERassign 369
     375#define ORassign 370
     376#define ATassign 371
     377#define THEN 372
    372378
    373379
     
    379385
    380386/* Line 293 of yacc.c  */
    381 #line 141 "parser.yy"
     387#line 142 "parser.yy"
    382388
    383389        Token tok;
     
    399405
    400406/* Line 293 of yacc.c  */
    401 #line 402 "Parser/parser.cc"
     407#line 408 "Parser/parser.cc"
    402408} YYSTYPE;
    403409# define YYSTYPE_IS_TRIVIAL 1
     
    411417
    412418/* Line 343 of yacc.c  */
    413 #line 414 "Parser/parser.cc"
     419#line 420 "Parser/parser.cc"
    414420
    415421#ifdef short
     
    628634
    629635/* YYFINAL -- State number of the termination state.  */
    630 #define YYFINAL  241
     636#define YYFINAL  244
    631637/* YYLAST -- Last index in YYTABLE.  */
    632 #define YYLAST   11830
     638#define YYLAST   12347
    633639
    634640/* YYNTOKENS -- Number of terminals.  */
    635 #define YYNTOKENS  139
     641#define YYNTOKENS  142
    636642/* YYNNTS -- Number of nonterminals.  */
    637643#define YYNNTS  249
    638644/* YYNRULES -- Number of rules.  */
    639 #define YYNRULES  776
     645#define YYNRULES  779
    640646/* YYNRULES -- Number of states.  */
    641 #define YYNSTATES  1583
     647#define YYNSTATES  1586
    642648
    643649/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    644650#define YYUNDEFTOK  2
    645 #define YYMAXUTOK   369
     651#define YYMAXUTOK   372
    646652
    647653#define YYTRANSLATE(YYX)                                                \
     
    654660       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    655661       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    656        2,     2,     2,   127,     2,     2,     2,   130,   124,     2,
    657      115,   116,   123,   125,   122,   126,   119,   129,     2,     2,
    658        2,     2,     2,     2,     2,     2,     2,     2,   136,   138,
    659      131,   137,   132,   135,     2,     2,     2,     2,     2,     2,
     662       2,     2,     2,   130,     2,     2,     2,   133,   127,     2,
     663     118,   119,   126,   128,   125,   129,   122,   132,     2,     2,
     664       2,     2,     2,     2,     2,     2,     2,     2,   139,   141,
     665     134,   140,   135,   138,     2,     2,     2,     2,     2,     2,
    660666       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    661667       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    662        2,   117,     2,   118,   133,     2,     2,     2,     2,     2,
     668       2,   120,     2,   121,   136,     2,     2,     2,     2,     2,
    663669       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    664670       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    665        2,     2,     2,   120,   134,   121,   128,     2,     2,     2,
     671       2,     2,     2,   123,   137,   124,   131,     2,     2,     2,
    666672       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    667673       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    687693      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    688694      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    689      105,   106,   107,   108,   109,   110,   111,   112,   113,   114
     695     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     696     115,   116,   117
    690697};
    691698
     
    734741    1276,  1279,  1281,  1284,  1287,  1291,  1293,  1296,  1299,  1301,
    735742    1304,  1307,  1311,  1313,  1316,  1319,  1321,  1323,  1325,  1327,
    736     1333,  1334,  1342,  1351,  1353,  1357,  1361,  1363,  1365,  1366,
    737     1369,  1372,  1376,  1380,  1385,  1387,  1390,  1394,  1397,  1399,
    738     1404,  1405,  1407,  1410,  1413,  1415,  1416,  1418,  1421,  1428,
    739     1429,  1438,  1440,  1444,  1447,  1452,  1453,  1456,  1457,  1459,
    740     1461,  1463,  1469,  1475,  1481,  1483,  1489,  1495,  1505,  1507,
    741     1513,  1514,  1516,  1518,  1524,  1526,  1528,  1534,  1540,  1542,
    742     1546,  1550,  1555,  1557,  1559,  1561,  1563,  1566,  1568,  1572,
    743     1576,  1579,  1583,  1585,  1589,  1591,  1593,  1595,  1597,  1599,
    744     1601,  1603,  1605,  1607,  1609,  1611,  1614,  1616,  1618,  1619,
    745     1622,  1625,  1627,  1632,  1633,  1635,  1638,  1642,  1647,  1650,
    746     1653,  1655,  1658,  1661,  1667,  1673,  1681,  1688,  1690,  1693,
    747     1696,  1700,  1702,  1705,  1708,  1713,  1716,  1721,  1722,  1727,
    748     1730,  1732,  1734,  1736,  1738,  1739,  1742,  1748,  1754,  1768,
    749     1770,  1772,  1776,  1780,  1783,  1787,  1791,  1794,  1799,  1801,
    750     1808,  1818,  1819,  1831,  1833,  1837,  1841,  1845,  1847,  1849,
    751     1855,  1858,  1864,  1865,  1867,  1869,  1873,  1874,  1876,  1878,
    752     1880,  1886,  1887,  1894,  1897,  1899,  1902,  1907,  1910,  1914,
    753     1918,  1922,  1927,  1933,  1939,  1945,  1952,  1954,  1956,  1958,
    754     1962,  1963,  1969,  1970,  1972,  1974,  1977,  1984,  1986,  1990,
    755     1991,  1993,  1998,  2000,  2002,  2004,  2006,  2009,  2011,  2014,
    756     2017,  2019,  2023,  2026,  2030,  2035,  2038,  2043,  2048,  2052,
    757     2061,  2065,  2068,  2070,  2073,  2080,  2089,  2093,  2096,  2100,
    758     2104,  2109,  2114,  2118,  2120,  2122,  2124,  2129,  2138,  2142,
    759     2145,  2149,  2153,  2158,  2163,  2167,  2170,  2172,  2175,  2178,
    760     2180,  2184,  2187,  2191,  2196,  2199,  2204,  2209,  2213,  2220,
    761     2229,  2233,  2236,  2238,  2241,  2244,  2247,  2251,  2256,  2259,
    762     2264,  2269,  2273,  2280,  2289,  2293,  2296,  2298,  2301,  2304,
    763     2306,  2308,  2311,  2315,  2320,  2323,  2328,  2335,  2344,  2346,
    764     2349,  2352,  2354,  2357,  2360,  2364,  2369,  2371,  2376,  2381,
    765     2385,  2391,  2400,  2404,  2407,  2411,  2413,  2419,  2425,  2432,
    766     2439,  2441,  2444,  2447,  2449,  2452,  2455,  2459,  2464,  2466,
    767     2471,  2476,  2480,  2486,  2495,  2499,  2501,  2504,  2506,  2509,
    768     2516,  2522,  2529,  2537,  2545,  2547,  2550,  2553,  2555,  2558,
    769     2561,  2565,  2570,  2572,  2577,  2582,  2586,  2595,  2599,  2601,
    770     2603,  2606,  2608,  2610,  2613,  2617,  2620,  2624,  2627,  2631,
    771     2635,  2638,  2643,  2647,  2650,  2654,  2657,  2662,  2666,  2669,
    772     2676,  2683,  2690,  2698,  2700,  2703,  2705,  2707,  2709,  2712,
    773     2716,  2719,  2723,  2726,  2730,  2734,  2739,  2742,  2746,  2751,
    774     2754,  2760,  2767,  2774,  2775,  2777,  2778
     743    1333,  1334,  1342,  1351,  1353,  1357,  1361,  1363,  1365,  1367,
     744    1369,  1371,  1372,  1375,  1378,  1382,  1386,  1391,  1393,  1396,
     745    1400,  1403,  1405,  1410,  1411,  1413,  1416,  1419,  1421,  1422,
     746    1424,  1427,  1434,  1435,  1444,  1446,  1450,  1453,  1458,  1459,
     747    1462,  1463,  1465,  1467,  1469,  1475,  1481,  1487,  1489,  1495,
     748    1501,  1511,  1513,  1519,  1520,  1522,  1524,  1530,  1532,  1534,
     749    1540,  1546,  1548,  1552,  1556,  1561,  1563,  1565,  1567,  1569,
     750    1572,  1574,  1578,  1582,  1585,  1589,  1591,  1595,  1597,  1599,
     751    1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1620,
     752    1622,  1624,  1625,  1628,  1631,  1633,  1638,  1639,  1641,  1644,
     753    1648,  1653,  1656,  1659,  1661,  1664,  1667,  1673,  1679,  1687,
     754    1694,  1696,  1699,  1702,  1706,  1708,  1711,  1714,  1719,  1722,
     755    1727,  1728,  1733,  1736,  1738,  1740,  1742,  1744,  1745,  1748,
     756    1754,  1760,  1774,  1776,  1778,  1782,  1786,  1789,  1793,  1797,
     757    1800,  1805,  1807,  1814,  1824,  1825,  1837,  1839,  1843,  1847,
     758    1851,  1853,  1855,  1861,  1864,  1870,  1871,  1873,  1875,  1879,
     759    1880,  1882,  1884,  1886,  1892,  1893,  1900,  1903,  1905,  1908,
     760    1913,  1916,  1920,  1924,  1928,  1933,  1939,  1945,  1951,  1958,
     761    1960,  1962,  1964,  1968,  1969,  1975,  1976,  1978,  1980,  1983,
     762    1990,  1992,  1996,  1997,  1999,  2004,  2006,  2008,  2010,  2012,
     763    2015,  2017,  2020,  2023,  2025,  2029,  2032,  2036,  2041,  2044,
     764    2049,  2054,  2058,  2067,  2071,  2074,  2076,  2079,  2086,  2095,
     765    2099,  2102,  2106,  2110,  2115,  2120,  2124,  2126,  2128,  2130,
     766    2135,  2144,  2148,  2151,  2155,  2159,  2164,  2169,  2173,  2176,
     767    2178,  2181,  2184,  2186,  2190,  2193,  2197,  2202,  2205,  2210,
     768    2215,  2219,  2226,  2235,  2239,  2242,  2244,  2247,  2250,  2253,
     769    2257,  2262,  2265,  2270,  2275,  2279,  2286,  2295,  2299,  2302,
     770    2304,  2307,  2310,  2312,  2314,  2317,  2321,  2326,  2329,  2334,
     771    2341,  2350,  2352,  2355,  2358,  2360,  2363,  2366,  2370,  2375,
     772    2377,  2382,  2387,  2391,  2397,  2406,  2410,  2413,  2417,  2419,
     773    2425,  2431,  2438,  2445,  2447,  2450,  2453,  2455,  2458,  2461,
     774    2465,  2470,  2472,  2477,  2482,  2486,  2492,  2501,  2505,  2507,
     775    2510,  2512,  2515,  2522,  2528,  2535,  2543,  2551,  2553,  2556,
     776    2559,  2561,  2564,  2567,  2571,  2576,  2578,  2583,  2588,  2592,
     777    2601,  2605,  2607,  2609,  2612,  2614,  2616,  2619,  2623,  2626,
     778    2630,  2633,  2637,  2641,  2644,  2649,  2653,  2656,  2660,  2663,
     779    2668,  2672,  2675,  2682,  2689,  2696,  2704,  2706,  2709,  2711,
     780    2713,  2715,  2718,  2722,  2725,  2729,  2732,  2736,  2740,  2745,
     781    2748,  2752,  2757,  2760,  2766,  2773,  2780,  2781,  2783,  2784
    775782};
    776783
     
    778785static const yytype_int16 yyrhs[] =
    779786{
    780      316,     0,    -1,    -1,    -1,    83,    -1,    86,    -1,    87,
    781       -1,    88,    -1,    84,    -1,    76,    -1,    80,    -1,   146,
    782       -1,    76,    -1,    80,    -1,    76,    -1,   146,    -1,    89,
    783       -1,    90,    -1,   148,    -1,    85,    -1,   148,    85,    -1,
    784       76,    -1,   146,    -1,   176,    -1,   115,   178,   116,    -1,
    785      115,   182,   116,    -1,   149,    -1,   150,   117,   140,   173,
    786      141,   118,    -1,   150,   115,   151,   116,    -1,   150,   119,
    787      145,    -1,   150,   119,   117,   140,   153,   141,   118,    -1,
    788      150,    87,    -1,   150,    91,   145,    -1,   150,    91,   117,
    789      140,   153,   141,   118,    -1,   150,    92,    -1,   150,    93,
    790       -1,   115,   289,   116,   120,   293,   386,   121,    -1,   150,
    791      120,   151,   121,    -1,   152,    -1,   151,   122,   152,    -1,
    792       -1,   173,    -1,   154,    -1,   153,   122,   154,    -1,   155,
    793       -1,    86,   154,    -1,    86,   117,   140,   153,   141,   118,
    794       -1,   155,   119,   154,    -1,   155,   119,   117,   140,   153,
    795      141,   118,    -1,   155,    91,   154,    -1,   155,    91,   117,
    796      140,   153,   141,   118,    -1,    83,   156,    -1,    88,   156,
    797       -1,   145,   156,    -1,    -1,   156,    87,    -1,   150,    -1,
    798      142,    -1,   147,    -1,    47,   160,    -1,   158,   160,    -1,
    799      159,   160,    -1,    92,   157,    -1,    93,   157,    -1,    44,
    800      157,    -1,    44,   115,   289,   116,    -1,    73,   157,    -1,
    801       73,   115,   289,   116,    -1,    45,   115,   289,   122,   145,
    802      116,    -1,    80,    -1,    80,   115,   152,   116,    -1,    80,
    803      115,   290,   116,    -1,   123,    -1,   124,    -1,   125,    -1,
    804      126,    -1,   127,    -1,   128,    -1,   157,    -1,   115,   289,
    805      116,   160,    -1,   160,    -1,   161,   123,   160,    -1,   161,
    806      129,   160,    -1,   161,   130,   160,    -1,   161,    -1,   162,
    807      125,   161,    -1,   162,   126,   161,    -1,   162,    -1,   163,
    808       94,   162,    -1,   163,    95,   162,    -1,   163,    -1,   164,
    809      131,   163,    -1,   164,   132,   163,    -1,   164,    96,   163,
    810       -1,   164,    97,   163,    -1,   164,    -1,   165,    98,   164,
    811       -1,   165,    99,   164,    -1,   165,    -1,   166,   124,   165,
    812       -1,   166,    -1,   167,   133,   166,    -1,   167,    -1,   168,
    813      134,   167,    -1,   168,    -1,   169,   100,   168,    -1,   169,
    814       -1,   170,   101,   169,    -1,   170,    -1,   170,   135,   178,
    815      136,   171,    -1,   170,   135,   136,   171,    -1,   171,    -1,
    816      171,    -1,   157,   175,   173,    -1,    -1,   173,    -1,   137,
    817       -1,   113,    -1,   103,    -1,   104,    -1,   105,    -1,   106,
    818       -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,   111,
    819       -1,   112,    -1,   117,   140,   122,   177,   141,   118,    -1,
    820      117,   140,   173,   122,   177,   141,   118,    -1,   174,    -1,
    821      177,   122,   174,    -1,   173,    -1,   178,   122,   173,    -1,
    822       -1,   178,    -1,   181,    -1,   182,    -1,   186,    -1,   187,
    823       -1,   199,    -1,   201,    -1,   202,    -1,   207,    -1,   133,
    824      150,   120,   151,   121,   138,    -1,   286,   136,   326,   180,
    825       -1,   120,   121,    -1,   120,   140,   140,   218,   183,   141,
    826      121,    -1,   184,    -1,   183,   140,   184,    -1,   221,    -1,
    827       47,   221,    -1,   322,    -1,    47,   322,    -1,   180,   141,
    828       -1,   180,    -1,   185,   180,    -1,   179,   138,    -1,    48,
    829      115,   178,   116,   180,    -1,    48,   115,   178,   116,   180,
    830       49,   180,    -1,    50,   115,   178,   116,   192,    -1,    50,
    831      115,   178,   116,   120,   140,   214,   193,   121,    -1,    60,
    832      115,   178,   116,   192,    -1,    60,   115,   178,   116,   120,
    833      140,   214,   195,   121,    -1,   172,    -1,   172,   102,   172,
    834       -1,   324,    -1,   188,    -1,   189,   122,   188,    -1,    51,
    835      189,   136,    -1,    52,   136,    -1,   190,    -1,   191,   190,
    836       -1,   191,   180,    -1,    -1,   194,    -1,   191,   185,    -1,
    837      194,   191,   185,    -1,    -1,   196,    -1,   191,   198,    -1,
    838      191,   185,   197,    -1,   196,   191,   198,    -1,   196,   191,
    839      185,   197,    -1,    -1,   198,    -1,    63,    -1,    63,   138,
    840       -1,    54,   115,   178,   116,   180,    -1,    53,   180,    54,
    841      115,   178,   116,   138,    -1,    55,   115,   140,   200,   116,
    842      180,    -1,   179,   141,   138,   179,   138,   179,    -1,   221,
    843      179,   138,   179,    -1,    58,   286,   138,    -1,    58,   123,
    844      178,   138,    -1,    57,   138,    -1,    57,   286,   138,    -1,
    845       56,   138,    -1,    56,   286,   138,    -1,    59,   179,   138,
    846       -1,    68,   174,   138,    -1,    69,   174,   138,    -1,    69,
    847      174,    70,   173,   138,    -1,    64,   182,   203,    -1,    64,
    848      182,   205,    -1,    64,   182,   203,   205,    -1,   204,    -1,
    849       65,   115,   102,   116,   182,    -1,   204,    65,   115,   102,
    850      116,   182,    -1,    66,   115,   102,   116,   182,    -1,   204,
    851       66,   115,   102,   116,   182,    -1,    65,   115,   140,   140,
    852      206,   141,   116,   182,   141,    -1,   204,    65,   115,   140,
    853      140,   206,   141,   116,   182,   141,    -1,    66,   115,   140,
    854      140,   206,   141,   116,   182,   141,    -1,   204,    66,   115,
    855      140,   140,   206,   141,   116,   182,   141,    -1,    67,   182,
    856       -1,   236,    -1,   236,   323,    -1,   236,   371,    -1,   380,
    857      145,    -1,   380,    -1,    71,   208,   115,   147,   116,   138,
    858       -1,    71,   208,   115,   147,   136,   209,   116,   138,    -1,
    859       71,   208,   115,   147,   136,   209,   136,   209,   116,   138,
    860       -1,    71,   208,   115,   147,   136,   209,   136,   209,   136,
    861      212,   116,   138,    -1,    71,   208,    58,   115,   147,   136,
    862      136,   209,   136,   212,   136,   213,   116,   138,    -1,    -1,
    863       13,    -1,    -1,   210,    -1,   211,    -1,   210,   122,   211,
    864       -1,   147,   115,   172,   116,    -1,   117,   172,   118,   147,
    865      115,   172,   116,    -1,    -1,   147,    -1,   212,   122,   147,
    866       -1,   145,    -1,   213,   122,   145,    -1,   141,    -1,   215,
    867       -1,   221,    -1,   215,   140,   221,    -1,   141,    -1,   217,
    868       -1,   231,    -1,   217,   140,   231,    -1,    -1,   219,    -1,
    869       35,   220,   138,    -1,   219,    35,   220,   138,    -1,   288,
    870       -1,   220,   122,   288,    -1,   222,    -1,   231,    -1,   223,
    871      141,   138,    -1,   228,   141,   138,    -1,   225,   141,   138,
    872       -1,   307,   141,   138,    -1,   310,   141,   138,    -1,   224,
    873      291,    -1,   242,   224,   291,    -1,   223,   141,   122,   140,
    874      286,   291,    -1,   381,   286,   325,    -1,   384,   286,   325,
    875       -1,   238,   384,   286,   325,    -1,   226,    -1,   238,   226,
    876       -1,   242,   226,    -1,   242,   238,   226,    -1,   225,   141,
    877      122,   140,   286,    -1,   384,   286,   115,   140,   274,   141,
    878      116,    -1,   227,   286,   115,   140,   274,   141,   116,    -1,
    879      117,   140,   276,   141,   118,    -1,   117,   140,   276,   141,
    880      122,   140,   277,   141,   118,    -1,     3,   224,    -1,     3,
    881      226,    -1,   228,   141,   122,   140,   145,    -1,     3,   235,
    882      323,    -1,   229,   141,   122,   140,   323,    -1,   238,     3,
    883      235,   323,    -1,   235,     3,   323,    -1,   235,     3,   238,
    884      323,    -1,     3,   145,   137,   173,    -1,   230,   141,   122,
    885      140,   145,   137,   173,    -1,   233,   232,   141,   138,    -1,
    886      229,   141,   138,    -1,   230,   141,   138,    -1,   250,   141,
    887      138,    -1,   323,   325,   291,    -1,   232,   122,   326,   323,
    888      325,   291,    -1,   246,    -1,   250,    -1,   254,    -1,   297,
    889       -1,   246,    -1,   252,    -1,   254,    -1,   297,    -1,   247,
    890       -1,   251,    -1,   255,    -1,   298,    -1,   247,    -1,   253,
    891       -1,   255,    -1,   298,    -1,    -1,   238,    -1,   239,    -1,
    892      238,   239,    -1,   240,    -1,   328,    -1,    12,    -1,    14,
     787     319,     0,    -1,    -1,    -1,    86,    -1,    89,    -1,    90,
     788      -1,    91,    -1,    87,    -1,    79,    -1,    83,    -1,   149,
     789      -1,    79,    -1,    83,    -1,    79,    -1,   149,    -1,    92,
     790      -1,    93,    -1,   151,    -1,    88,    -1,   151,    88,    -1,
     791      79,    -1,   149,    -1,   179,    -1,   118,   181,   119,    -1,
     792     118,   185,   119,    -1,   152,    -1,   153,   120,   143,   176,
     793     144,   121,    -1,   153,   118,   154,   119,    -1,   153,   122,
     794     148,    -1,   153,   122,   120,   143,   156,   144,   121,    -1,
     795     153,    90,    -1,   153,    94,   148,    -1,   153,    94,   120,
     796     143,   156,   144,   121,    -1,   153,    95,    -1,   153,    96,
     797      -1,   118,   292,   119,   123,   296,   389,   124,    -1,   153,
     798     123,   154,   124,    -1,   155,    -1,   154,   125,   155,    -1,
     799      -1,   176,    -1,   157,    -1,   156,   125,   157,    -1,   158,
     800      -1,    89,   157,    -1,    89,   120,   143,   156,   144,   121,
     801      -1,   158,   122,   157,    -1,   158,   122,   120,   143,   156,
     802     144,   121,    -1,   158,    94,   157,    -1,   158,    94,   120,
     803     143,   156,   144,   121,    -1,    86,   159,    -1,    91,   159,
     804      -1,   148,   159,    -1,    -1,   159,    90,    -1,   153,    -1,
     805     145,    -1,   150,    -1,    50,   163,    -1,   161,   163,    -1,
     806     162,   163,    -1,    95,   160,    -1,    96,   160,    -1,    47,
     807     160,    -1,    47,   118,   292,   119,    -1,    76,   160,    -1,
     808      76,   118,   292,   119,    -1,    48,   118,   292,   125,   148,
     809     119,    -1,    83,    -1,    83,   118,   155,   119,    -1,    83,
     810     118,   293,   119,    -1,   126,    -1,   127,    -1,   128,    -1,
     811     129,    -1,   130,    -1,   131,    -1,   160,    -1,   118,   292,
     812     119,   163,    -1,   163,    -1,   164,   126,   163,    -1,   164,
     813     132,   163,    -1,   164,   133,   163,    -1,   164,    -1,   165,
     814     128,   164,    -1,   165,   129,   164,    -1,   165,    -1,   166,
     815      97,   165,    -1,   166,    98,   165,    -1,   166,    -1,   167,
     816     134,   166,    -1,   167,   135,   166,    -1,   167,    99,   166,
     817      -1,   167,   100,   166,    -1,   167,    -1,   168,   101,   167,
     818      -1,   168,   102,   167,    -1,   168,    -1,   169,   127,   168,
     819      -1,   169,    -1,   170,   136,   169,    -1,   170,    -1,   171,
     820     137,   170,    -1,   171,    -1,   172,   103,   171,    -1,   172,
     821      -1,   173,   104,   172,    -1,   173,    -1,   173,   138,   181,
     822     139,   174,    -1,   173,   138,   139,   174,    -1,   174,    -1,
     823     174,    -1,   160,   178,   176,    -1,    -1,   176,    -1,   140,
     824      -1,   116,    -1,   106,    -1,   107,    -1,   108,    -1,   109,
     825      -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,
     826      -1,   115,    -1,   120,   143,   125,   180,   144,   121,    -1,
     827     120,   143,   176,   125,   180,   144,   121,    -1,   177,    -1,
     828     180,   125,   177,    -1,   176,    -1,   181,   125,   176,    -1,
     829      -1,   181,    -1,   184,    -1,   185,    -1,   189,    -1,   190,
     830      -1,   202,    -1,   204,    -1,   205,    -1,   210,    -1,   136,
     831     153,   123,   154,   124,   141,    -1,   289,   139,   329,   183,
     832      -1,   123,   124,    -1,   123,   143,   143,   221,   186,   144,
     833     124,    -1,   187,    -1,   186,   143,   187,    -1,   224,    -1,
     834      50,   224,    -1,   325,    -1,    50,   325,    -1,   183,   144,
     835      -1,   183,    -1,   188,   183,    -1,   182,   141,    -1,    51,
     836     118,   181,   119,   183,    -1,    51,   118,   181,   119,   183,
     837      52,   183,    -1,    53,   118,   181,   119,   195,    -1,    53,
     838     118,   181,   119,   123,   143,   217,   196,   124,    -1,    63,
     839     118,   181,   119,   195,    -1,    63,   118,   181,   119,   123,
     840     143,   217,   198,   124,    -1,   175,    -1,   175,   105,   175,
     841      -1,   327,    -1,   191,    -1,   192,   125,   191,    -1,    54,
     842     192,   139,    -1,    55,   139,    -1,   193,    -1,   194,   193,
     843      -1,   194,   183,    -1,    -1,   197,    -1,   194,   188,    -1,
     844     197,   194,   188,    -1,    -1,   199,    -1,   194,   201,    -1,
     845     194,   188,   200,    -1,   199,   194,   201,    -1,   199,   194,
     846     188,   200,    -1,    -1,   201,    -1,    66,    -1,    66,   141,
     847      -1,    57,   118,   181,   119,   183,    -1,    56,   183,    57,
     848     118,   181,   119,   141,    -1,    58,   118,   143,   203,   119,
     849     183,    -1,   182,   144,   141,   182,   141,   182,    -1,   224,
     850     182,   141,   182,    -1,    61,   289,   141,    -1,    61,   126,
     851     181,   141,    -1,    60,   141,    -1,    60,   289,   141,    -1,
     852      59,   141,    -1,    59,   289,   141,    -1,    62,   182,   141,
     853      -1,    71,   177,   141,    -1,    72,   177,   141,    -1,    72,
     854     177,    73,   176,   141,    -1,    67,   185,   206,    -1,    67,
     855     185,   208,    -1,    67,   185,   206,   208,    -1,   207,    -1,
     856      68,   118,   105,   119,   185,    -1,   207,    68,   118,   105,
     857     119,   185,    -1,    69,   118,   105,   119,   185,    -1,   207,
     858      69,   118,   105,   119,   185,    -1,    68,   118,   143,   143,
     859     209,   144,   119,   185,   144,    -1,   207,    68,   118,   143,
     860     143,   209,   144,   119,   185,   144,    -1,    69,   118,   143,
     861     143,   209,   144,   119,   185,   144,    -1,   207,    69,   118,
     862     143,   143,   209,   144,   119,   185,   144,    -1,    70,   185,
     863      -1,   239,    -1,   239,   326,    -1,   239,   374,    -1,   383,
     864     148,    -1,   383,    -1,    74,   211,   118,   150,   119,   141,
     865      -1,    74,   211,   118,   150,   139,   212,   119,   141,    -1,
     866      74,   211,   118,   150,   139,   212,   139,   212,   119,   141,
     867      -1,    74,   211,   118,   150,   139,   212,   139,   212,   139,
     868     215,   119,   141,    -1,    74,   211,    61,   118,   150,   139,
     869     139,   212,   139,   215,   139,   216,   119,   141,    -1,    -1,
     870      13,    -1,    -1,   213,    -1,   214,    -1,   213,   125,   214,
     871      -1,   150,   118,   175,   119,    -1,   120,   175,   121,   150,
     872     118,   175,   119,    -1,    -1,   150,    -1,   215,   125,   150,
     873      -1,   148,    -1,   216,   125,   148,    -1,   144,    -1,   218,
     874      -1,   224,    -1,   218,   143,   224,    -1,   144,    -1,   220,
     875      -1,   234,    -1,   220,   143,   234,    -1,    -1,   222,    -1,
     876      35,   223,   141,    -1,   222,    35,   223,   141,    -1,   291,
     877      -1,   223,   125,   291,    -1,   225,    -1,   234,    -1,   226,
     878     144,   141,    -1,   231,   144,   141,    -1,   228,   144,   141,
     879      -1,   310,   144,   141,    -1,   313,   144,   141,    -1,   227,
     880     294,    -1,   245,   227,   294,    -1,   226,   144,   125,   143,
     881     289,   294,    -1,   384,   289,   328,    -1,   387,   289,   328,
     882      -1,   241,   387,   289,   328,    -1,   229,    -1,   241,   229,
     883      -1,   245,   229,    -1,   245,   241,   229,    -1,   228,   144,
     884     125,   143,   289,    -1,   387,   289,   118,   143,   277,   144,
     885     119,    -1,   230,   289,   118,   143,   277,   144,   119,    -1,
     886     120,   143,   279,   144,   121,    -1,   120,   143,   279,   144,
     887     125,   143,   280,   144,   121,    -1,     3,   227,    -1,     3,
     888     229,    -1,   231,   144,   125,   143,   148,    -1,     3,   238,
     889     326,    -1,   232,   144,   125,   143,   326,    -1,   241,     3,
     890     238,   326,    -1,   238,     3,   326,    -1,   238,     3,   241,
     891     326,    -1,     3,   148,   140,   176,    -1,   233,   144,   125,
     892     143,   148,   140,   176,    -1,   236,   235,   144,   141,    -1,
     893     232,   144,   141,    -1,   233,   144,   141,    -1,   253,   144,
     894     141,    -1,   326,   328,   294,    -1,   235,   125,   329,   326,
     895     328,   294,    -1,   249,    -1,   253,    -1,   257,    -1,   300,
     896      -1,   249,    -1,   255,    -1,   257,    -1,   300,    -1,   250,
     897      -1,   254,    -1,   258,    -1,   301,    -1,   250,    -1,   256,
     898      -1,   258,    -1,   301,    -1,    -1,   241,    -1,   242,    -1,
     899     241,   242,    -1,   243,    -1,   331,    -1,    12,    -1,    14,
    893900      -1,    13,    -1,    17,    -1,    18,    -1,    15,    -1,    -1,
    894       16,   115,   241,   300,   116,    -1,   243,    -1,   238,   243,
    895       -1,   242,   238,   243,    -1,   244,    -1,   243,   244,    -1,
     901      16,   118,   244,   303,   119,    -1,   246,    -1,   241,   246,
     902      -1,   245,   241,   246,    -1,   247,    -1,   246,   247,    -1,
    896903       4,    -1,     5,    -1,     6,    -1,     7,    -1,     8,    -1,
    897904       9,    -1,    10,    -1,    11,    -1,    20,    -1,    25,    -1,
    898905      24,    -1,    22,    -1,    23,    -1,    21,    -1,    26,    -1,
    899906      27,    -1,    19,    -1,    31,    -1,    32,    -1,    33,    -1,
    900       30,    -1,    28,    -1,    29,    -1,   247,    -1,   242,   247,
    901       -1,   246,   244,    -1,   246,   244,   238,    -1,   246,   244,
    902      247,    -1,   248,    -1,   237,   249,   237,    -1,   245,    -1,
    903      238,   245,    -1,   248,   239,    -1,   248,   245,    -1,    34,
    904      115,   290,   116,    -1,    34,   115,   178,   116,    -1,    82,
    905      115,   290,   116,    -1,    82,   115,   178,   116,    -1,   251,
    906       -1,   242,   251,    -1,   250,   244,    -1,   250,   244,   238,
    907       -1,   256,    -1,   238,   256,    -1,   251,   239,    -1,   253,
    908       -1,   242,   253,    -1,   252,   244,    -1,   252,   244,   238,
    909       -1,   257,    -1,   238,   257,    -1,   253,   239,    -1,   255,
    910       -1,   242,   255,    -1,   254,   244,    -1,   254,   244,   238,
    911       -1,    78,    -1,   238,    78,    -1,   255,   239,    -1,   258,
    912       -1,   269,    -1,   260,    -1,   271,    -1,   261,   326,   120,
    913      262,   121,    -1,    -1,   261,   326,   288,   259,   120,   262,
    914      121,    -1,   261,   326,   115,   306,   116,   120,   262,   121,
    915       -1,   260,    -1,   261,   326,   288,    -1,   261,   326,   299,
    916       -1,    37,    -1,    38,    -1,    -1,   262,   263,    -1,   264,
    917      138,    -1,    47,   264,   138,    -1,   235,   265,   138,    -1,
    918       47,   235,   265,   138,    -1,   380,    -1,   380,   288,    -1,
    919      264,   122,   288,    -1,   264,   122,    -1,   266,    -1,   265,
    920      122,   326,   266,    -1,    -1,   268,    -1,   332,   267,    -1,
    921      345,   267,    -1,   371,    -1,    -1,   268,    -1,   136,   172,
    922       -1,    36,   326,   120,   272,   386,   121,    -1,    -1,    36,
    923      326,   288,   270,   120,   272,   386,   121,    -1,   271,    -1,
    924       36,   326,   288,    -1,   288,   273,    -1,   272,   122,   288,
    925      273,    -1,    -1,   137,   172,    -1,    -1,   275,    -1,   277,
    926       -1,   276,    -1,   276,   141,   122,   140,   277,    -1,   277,
    927      141,   122,   140,   102,    -1,   276,   141,   122,   140,   102,
    928       -1,   281,    -1,   277,   141,   122,   140,   281,    -1,   276,
    929      141,   122,   140,   281,    -1,   276,   141,   122,   140,   277,
    930      141,   122,   140,   281,    -1,   282,    -1,   277,   141,   122,
    931      140,   282,    -1,    -1,   279,    -1,   280,    -1,   280,   141,
    932      122,   140,   102,    -1,   284,    -1,   283,    -1,   280,   141,
    933      122,   140,   284,    -1,   280,   141,   122,   140,   283,    -1,
    934      283,    -1,   376,   286,   387,    -1,   384,   286,   387,    -1,
    935      238,   384,   286,   387,    -1,   226,    -1,   284,    -1,   376,
    936       -1,   384,    -1,   238,   384,    -1,   385,    -1,   234,   350,
    937      387,    -1,   234,   354,   387,    -1,   234,   387,    -1,   234,
    938      365,   387,    -1,   145,    -1,   285,   122,   145,    -1,   143,
    939       -1,    78,    -1,    79,    -1,   144,    -1,    78,    -1,    79,
    940       -1,   145,    -1,    78,    -1,    79,    -1,   380,    -1,   235,
    941       -1,   235,   359,    -1,   289,    -1,   385,    -1,    -1,   137,
    942      292,    -1,   113,   292,    -1,   173,    -1,   120,   293,   386,
    943      121,    -1,    -1,   292,    -1,   294,   292,    -1,   293,   122,
    944      292,    -1,   293,   122,   294,   292,    -1,   295,   136,    -1,
    945      288,   136,    -1,   296,    -1,   295,   296,    -1,   119,   288,
    946       -1,   117,   140,   173,   141,   118,    -1,   117,   140,   324,
    947      141,   118,    -1,   117,   140,   172,   102,   172,   141,   118,
    948       -1,   119,   117,   140,   153,   141,   118,    -1,   298,    -1,
    949      242,   298,    -1,   297,   244,    -1,   297,   244,   238,    -1,
    950      299,    -1,   238,   299,    -1,   298,   239,    -1,    79,   115,
    951      306,   116,    -1,   301,   387,    -1,   300,   122,   301,   387,
    952       -1,    -1,   303,   288,   302,   304,    -1,   235,   350,    -1,
    953       39,    -1,    41,    -1,    40,    -1,    42,    -1,    -1,   304,
    954      305,    -1,   134,   288,   115,   306,   116,    -1,   134,   120,
    955      140,   312,   121,    -1,   134,   115,   140,   300,   141,   116,
    956      120,   140,   312,   121,   115,   306,   116,    -1,   290,    -1,
    957      173,    -1,   306,   122,   290,    -1,   306,   122,   173,    -1,
    958       39,   308,    -1,   243,    39,   308,    -1,   307,   122,   308,
    959       -1,   309,   304,    -1,   309,   304,   137,   290,    -1,   288,
    960       -1,   287,   115,   140,   300,   141,   116,    -1,    43,   288,
    961      115,   140,   300,   141,   116,   120,   121,    -1,    -1,    43,
    962      288,   115,   140,   300,   141,   116,   120,   311,   312,   121,
    963       -1,   313,    -1,   312,   140,   313,    -1,   314,   141,   138,
    964       -1,   315,   141,   138,    -1,   224,    -1,   226,    -1,   314,
    965      141,   122,   140,   286,    -1,   235,   323,    -1,   315,   141,
    966      122,   140,   323,    -1,    -1,   317,    -1,   319,    -1,   317,
    967      140,   319,    -1,    -1,   317,    -1,   221,    -1,   321,    -1,
    968       71,   115,   147,   116,   138,    -1,    -1,     4,    85,   320,
    969      120,   318,   121,    -1,    47,   319,    -1,   322,    -1,   337,
    970      182,    -1,   341,   140,   216,   182,    -1,   225,   182,    -1,
    971      233,   337,   182,    -1,   238,   337,   182,    -1,   242,   337,
    972      182,    -1,   242,   238,   337,   182,    -1,   233,   341,   140,
    973      216,   182,    -1,   238,   341,   140,   216,   182,    -1,   242,
    974      341,   140,   216,   182,    -1,   242,   238,   341,   140,   216,
    975      182,    -1,   332,    -1,   345,    -1,   337,    -1,   172,   128,
    976      172,    -1,    -1,    71,   115,   147,   116,   326,    -1,    -1,
    977      327,    -1,   328,    -1,   327,   328,    -1,    46,   115,   115,
    978      329,   116,   116,    -1,   330,    -1,   329,   122,   330,    -1,
    979       -1,   331,    -1,   331,   115,   151,   116,    -1,    76,    -1,
    980       78,    -1,    79,    -1,    12,    -1,   333,   326,    -1,   334,
    981       -1,   335,   326,    -1,   336,   326,    -1,   143,    -1,   115,
    982      333,   116,    -1,   158,   332,    -1,   158,   238,   332,    -1,
    983      115,   334,   116,   326,    -1,   333,   363,    -1,   115,   334,
    984      116,   363,    -1,   115,   335,   116,   364,    -1,   115,   335,
    985      116,    -1,   115,   334,   116,   115,   140,   278,   141,   116,
    986       -1,   115,   336,   116,    -1,   338,   326,    -1,   339,    -1,
    987      340,   326,    -1,   333,   115,   140,   278,   141,   116,    -1,
    988      115,   339,   116,   115,   140,   278,   141,   116,    -1,   115,
    989      338,   116,    -1,   158,   337,    -1,   158,   238,   337,    -1,
    990      115,   339,   116,    -1,   115,   339,   116,   363,    -1,   115,
    991      340,   116,   364,    -1,   115,   340,   116,    -1,   342,    -1,
    992      343,    -1,   344,    -1,   333,   115,   285,   116,    -1,   115,
    993      343,   116,   115,   140,   278,   141,   116,    -1,   115,   342,
    994      116,    -1,   158,   341,    -1,   158,   238,   341,    -1,   115,
    995      343,   116,    -1,   115,   343,   116,   363,    -1,   115,   344,
    996      116,   364,    -1,   115,   344,   116,    -1,   346,   326,    -1,
    997      347,    -1,   348,   326,    -1,   349,   326,    -1,   355,    -1,
    998      115,   346,   116,    -1,   158,   345,    -1,   158,   238,   345,
    999       -1,   115,   347,   116,   326,    -1,   346,   363,    -1,   115,
    1000      347,   116,   363,    -1,   115,   348,   116,   364,    -1,   115,
    1001      348,   116,    -1,   346,   115,   140,   278,   141,   116,    -1,
    1002      115,   347,   116,   115,   140,   278,   141,   116,    -1,   115,
    1003      349,   116,    -1,   333,   326,    -1,   351,    -1,   352,   326,
    1004       -1,   353,   326,    -1,   158,   350,    -1,   158,   238,   350,
    1005       -1,   115,   351,   116,   326,    -1,   333,   369,    -1,   115,
    1006      351,   116,   363,    -1,   115,   352,   116,   364,    -1,   115,
    1007      352,   116,    -1,   333,   115,   140,   278,   141,   116,    -1,
    1008      115,   351,   116,   115,   140,   278,   141,   116,    -1,   115,
    1009      353,   116,    -1,   355,   326,    -1,   356,    -1,   357,   326,
    1010       -1,   358,   326,    -1,    78,    -1,    79,    -1,   158,   354,
    1011       -1,   158,   238,   354,    -1,   115,   356,   116,   326,    -1,
    1012      355,   369,    -1,   115,   356,   116,   369,    -1,   355,   115,
    1013      140,   278,   141,   116,    -1,   115,   356,   116,   115,   140,
    1014      278,   141,   116,    -1,   360,    -1,   361,   326,    -1,   362,
    1015      326,    -1,   158,    -1,   158,   238,    -1,   158,   359,    -1,
    1016      158,   238,   359,    -1,   115,   360,   116,   326,    -1,   363,
    1017       -1,   115,   360,   116,   363,    -1,   115,   361,   116,   364,
    1018       -1,   115,   361,   116,    -1,   115,   140,   278,   141,   116,
    1019       -1,   115,   360,   116,   115,   140,   278,   141,   116,    -1,
    1020      115,   362,   116,    -1,   117,   118,    -1,   117,   118,   364,
    1021       -1,   364,    -1,   117,   140,   173,   141,   118,    -1,   117,
    1022      140,   123,   141,   118,    -1,   364,   117,   140,   173,   141,
    1023      118,    -1,   364,   117,   140,   123,   141,   118,    -1,   366,
    1024       -1,   367,   326,    -1,   368,   326,    -1,   158,    -1,   158,
    1025      238,    -1,   158,   365,    -1,   158,   238,   365,    -1,   115,
    1026      366,   116,   326,    -1,   369,    -1,   115,   366,   116,   369,
    1027       -1,   115,   367,   116,   364,    -1,   115,   367,   116,    -1,
    1028      115,   140,   278,   141,   116,    -1,   115,   366,   116,   115,
    1029      140,   278,   141,   116,    -1,   115,   368,   116,    -1,   370,
    1030       -1,   370,   364,    -1,   364,    -1,   117,   118,    -1,   117,
    1031      140,   238,   123,   141,   118,    -1,   117,   140,   238,   141,
    1032      118,    -1,   117,   140,   238,   173,   141,   118,    -1,   117,
    1033      140,     5,   237,   173,   141,   118,    -1,   117,   140,   238,
    1034        5,   173,   141,   118,    -1,   372,    -1,   373,   326,    -1,
    1035      374,   326,    -1,   158,    -1,   158,   238,    -1,   158,   371,
    1036       -1,   158,   238,   371,    -1,   115,   372,   116,   326,    -1,
    1037      363,    -1,   115,   372,   116,   363,    -1,   115,   373,   116,
    1038      364,    -1,   115,   373,   116,    -1,   115,   372,   116,   115,
    1039      140,   278,   141,   116,    -1,   115,   374,   116,    -1,   376,
    1040       -1,   384,    -1,   238,   384,    -1,   377,    -1,   378,    -1,
    1041      158,   236,    -1,   238,   158,   236,    -1,   158,   385,    -1,
    1042      238,   158,   385,    -1,   158,   375,    -1,   238,   158,   375,
    1043       -1,   117,   118,   236,    -1,   379,   236,    -1,   117,   118,
    1044      364,   236,    -1,   379,   364,   236,    -1,   364,   236,    -1,
    1045      117,   118,   377,    -1,   379,   377,    -1,   117,   118,   364,
    1046      377,    -1,   379,   364,   377,    -1,   364,   377,    -1,   117,
    1047      140,   238,   123,   141,   118,    -1,   117,   140,   238,   173,
    1048      141,   118,    -1,   117,   140,   242,   173,   141,   118,    -1,
    1049      117,   140,   242,   238,   173,   141,   118,    -1,   384,    -1,
    1050      238,   384,    -1,   381,    -1,   382,    -1,   383,    -1,   158,
    1051      235,    -1,   238,   158,   235,    -1,   158,   385,    -1,   238,
    1052      158,   385,    -1,   158,   380,    -1,   238,   158,   380,    -1,
    1053      117,   118,   235,    -1,   117,   118,   364,   235,    -1,   364,
    1054      235,    -1,   117,   118,   382,    -1,   117,   118,   364,   382,
    1055       -1,   364,   382,    -1,   117,   140,   277,   141,   118,    -1,
    1056      384,   115,   140,   274,   141,   116,    -1,   227,   115,   140,
    1057      274,   141,   116,    -1,    -1,   122,    -1,    -1,   137,   173,
    1058       -1
     907      30,    -1,    28,    -1,    29,    -1,   250,    -1,   245,   250,
     908      -1,   249,   247,    -1,   249,   247,   241,    -1,   249,   247,
     909     250,    -1,   251,    -1,   240,   252,   240,    -1,   248,    -1,
     910     241,   248,    -1,   251,   242,    -1,   251,   248,    -1,    34,
     911     118,   293,   119,    -1,    34,   118,   181,   119,    -1,    85,
     912     118,   293,   119,    -1,    85,   118,   181,   119,    -1,   254,
     913      -1,   245,   254,    -1,   253,   247,    -1,   253,   247,   241,
     914      -1,   259,    -1,   241,   259,    -1,   254,   242,    -1,   256,
     915      -1,   245,   256,    -1,   255,   247,    -1,   255,   247,   241,
     916      -1,   260,    -1,   241,   260,    -1,   256,   242,    -1,   258,
     917      -1,   245,   258,    -1,   257,   247,    -1,   257,   247,   241,
     918      -1,    81,    -1,   241,    81,    -1,   258,   242,    -1,   261,
     919      -1,   272,    -1,   263,    -1,   274,    -1,   264,   329,   123,
     920     265,   124,    -1,    -1,   264,   329,   291,   262,   123,   265,
     921     124,    -1,   264,   329,   118,   309,   119,   123,   265,   124,
     922      -1,   263,    -1,   264,   329,   291,    -1,   264,   329,   302,
     923      -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,    41,
     924      -1,    -1,   265,   266,    -1,   267,   141,    -1,    50,   267,
     925     141,    -1,   238,   268,   141,    -1,    50,   238,   268,   141,
     926      -1,   383,    -1,   383,   291,    -1,   267,   125,   291,    -1,
     927     267,   125,    -1,   269,    -1,   268,   125,   329,   269,    -1,
     928      -1,   271,    -1,   335,   270,    -1,   348,   270,    -1,   374,
     929      -1,    -1,   271,    -1,   139,   175,    -1,    36,   329,   123,
     930     275,   389,   124,    -1,    -1,    36,   329,   291,   273,   123,
     931     275,   389,   124,    -1,   274,    -1,    36,   329,   291,    -1,
     932     291,   276,    -1,   275,   125,   291,   276,    -1,    -1,   140,
     933     175,    -1,    -1,   278,    -1,   280,    -1,   279,    -1,   279,
     934     144,   125,   143,   280,    -1,   280,   144,   125,   143,   105,
     935      -1,   279,   144,   125,   143,   105,    -1,   284,    -1,   280,
     936     144,   125,   143,   284,    -1,   279,   144,   125,   143,   284,
     937      -1,   279,   144,   125,   143,   280,   144,   125,   143,   284,
     938      -1,   285,    -1,   280,   144,   125,   143,   285,    -1,    -1,
     939     282,    -1,   283,    -1,   283,   144,   125,   143,   105,    -1,
     940     287,    -1,   286,    -1,   283,   144,   125,   143,   287,    -1,
     941     283,   144,   125,   143,   286,    -1,   286,    -1,   379,   289,
     942     390,    -1,   387,   289,   390,    -1,   241,   387,   289,   390,
     943      -1,   229,    -1,   287,    -1,   379,    -1,   387,    -1,   241,
     944     387,    -1,   388,    -1,   237,   353,   390,    -1,   237,   357,
     945     390,    -1,   237,   390,    -1,   237,   368,   390,    -1,   148,
     946      -1,   288,   125,   148,    -1,   146,    -1,    81,    -1,    82,
     947      -1,   147,    -1,    81,    -1,    82,    -1,   148,    -1,    81,
     948      -1,    82,    -1,   383,    -1,   238,    -1,   238,   362,    -1,
     949     292,    -1,   388,    -1,    -1,   140,   295,    -1,   116,   295,
     950      -1,   176,    -1,   123,   296,   389,   124,    -1,    -1,   295,
     951      -1,   297,   295,    -1,   296,   125,   295,    -1,   296,   125,
     952     297,   295,    -1,   298,   139,    -1,   291,   139,    -1,   299,
     953      -1,   298,   299,    -1,   122,   291,    -1,   120,   143,   176,
     954     144,   121,    -1,   120,   143,   327,   144,   121,    -1,   120,
     955     143,   175,   105,   175,   144,   121,    -1,   122,   120,   143,
     956     156,   144,   121,    -1,   301,    -1,   245,   301,    -1,   300,
     957     247,    -1,   300,   247,   241,    -1,   302,    -1,   241,   302,
     958      -1,   301,   242,    -1,    82,   118,   309,   119,    -1,   304,
     959     390,    -1,   303,   125,   304,   390,    -1,    -1,   306,   291,
     960     305,   307,    -1,   238,   353,    -1,    42,    -1,    44,    -1,
     961      43,    -1,    45,    -1,    -1,   307,   308,    -1,   137,   291,
     962     118,   309,   119,    -1,   137,   123,   143,   315,   124,    -1,
     963     137,   118,   143,   303,   144,   119,   123,   143,   315,   124,
     964     118,   309,   119,    -1,   293,    -1,   176,    -1,   309,   125,
     965     293,    -1,   309,   125,   176,    -1,    42,   311,    -1,   246,
     966      42,   311,    -1,   310,   125,   311,    -1,   312,   307,    -1,
     967     312,   307,   140,   293,    -1,   291,    -1,   290,   118,   143,
     968     303,   144,   119,    -1,    46,   291,   118,   143,   303,   144,
     969     119,   123,   124,    -1,    -1,    46,   291,   118,   143,   303,
     970     144,   119,   123,   314,   315,   124,    -1,   316,    -1,   315,
     971     143,   316,    -1,   317,   144,   141,    -1,   318,   144,   141,
     972      -1,   227,    -1,   229,    -1,   317,   144,   125,   143,   289,
     973      -1,   238,   326,    -1,   318,   144,   125,   143,   326,    -1,
     974      -1,   320,    -1,   322,    -1,   320,   143,   322,    -1,    -1,
     975     320,    -1,   224,    -1,   324,    -1,    74,   118,   150,   119,
     976     141,    -1,    -1,     4,    88,   323,   123,   321,   124,    -1,
     977      50,   322,    -1,   325,    -1,   340,   185,    -1,   344,   143,
     978     219,   185,    -1,   228,   185,    -1,   236,   340,   185,    -1,
     979     241,   340,   185,    -1,   245,   340,   185,    -1,   245,   241,
     980     340,   185,    -1,   236,   344,   143,   219,   185,    -1,   241,
     981     344,   143,   219,   185,    -1,   245,   344,   143,   219,   185,
     982      -1,   245,   241,   344,   143,   219,   185,    -1,   335,    -1,
     983     348,    -1,   340,    -1,   175,   131,   175,    -1,    -1,    74,
     984     118,   150,   119,   329,    -1,    -1,   330,    -1,   331,    -1,
     985     330,   331,    -1,    49,   118,   118,   332,   119,   119,    -1,
     986     333,    -1,   332,   125,   333,    -1,    -1,   334,    -1,   334,
     987     118,   154,   119,    -1,    79,    -1,    81,    -1,    82,    -1,
     988      12,    -1,   336,   329,    -1,   337,    -1,   338,   329,    -1,
     989     339,   329,    -1,   146,    -1,   118,   336,   119,    -1,   161,
     990     335,    -1,   161,   241,   335,    -1,   118,   337,   119,   329,
     991      -1,   336,   366,    -1,   118,   337,   119,   366,    -1,   118,
     992     338,   119,   367,    -1,   118,   338,   119,    -1,   118,   337,
     993     119,   118,   143,   281,   144,   119,    -1,   118,   339,   119,
     994      -1,   341,   329,    -1,   342,    -1,   343,   329,    -1,   336,
     995     118,   143,   281,   144,   119,    -1,   118,   342,   119,   118,
     996     143,   281,   144,   119,    -1,   118,   341,   119,    -1,   161,
     997     340,    -1,   161,   241,   340,    -1,   118,   342,   119,    -1,
     998     118,   342,   119,   366,    -1,   118,   343,   119,   367,    -1,
     999     118,   343,   119,    -1,   345,    -1,   346,    -1,   347,    -1,
     1000     336,   118,   288,   119,    -1,   118,   346,   119,   118,   143,
     1001     281,   144,   119,    -1,   118,   345,   119,    -1,   161,   344,
     1002      -1,   161,   241,   344,    -1,   118,   346,   119,    -1,   118,
     1003     346,   119,   366,    -1,   118,   347,   119,   367,    -1,   118,
     1004     347,   119,    -1,   349,   329,    -1,   350,    -1,   351,   329,
     1005      -1,   352,   329,    -1,   358,    -1,   118,   349,   119,    -1,
     1006     161,   348,    -1,   161,   241,   348,    -1,   118,   350,   119,
     1007     329,    -1,   349,   366,    -1,   118,   350,   119,   366,    -1,
     1008     118,   351,   119,   367,    -1,   118,   351,   119,    -1,   349,
     1009     118,   143,   281,   144,   119,    -1,   118,   350,   119,   118,
     1010     143,   281,   144,   119,    -1,   118,   352,   119,    -1,   336,
     1011     329,    -1,   354,    -1,   355,   329,    -1,   356,   329,    -1,
     1012     161,   353,    -1,   161,   241,   353,    -1,   118,   354,   119,
     1013     329,    -1,   336,   372,    -1,   118,   354,   119,   366,    -1,
     1014     118,   355,   119,   367,    -1,   118,   355,   119,    -1,   336,
     1015     118,   143,   281,   144,   119,    -1,   118,   354,   119,   118,
     1016     143,   281,   144,   119,    -1,   118,   356,   119,    -1,   358,
     1017     329,    -1,   359,    -1,   360,   329,    -1,   361,   329,    -1,
     1018      81,    -1,    82,    -1,   161,   357,    -1,   161,   241,   357,
     1019      -1,   118,   359,   119,   329,    -1,   358,   372,    -1,   118,
     1020     359,   119,   372,    -1,   358,   118,   143,   281,   144,   119,
     1021      -1,   118,   359,   119,   118,   143,   281,   144,   119,    -1,
     1022     363,    -1,   364,   329,    -1,   365,   329,    -1,   161,    -1,
     1023     161,   241,    -1,   161,   362,    -1,   161,   241,   362,    -1,
     1024     118,   363,   119,   329,    -1,   366,    -1,   118,   363,   119,
     1025     366,    -1,   118,   364,   119,   367,    -1,   118,   364,   119,
     1026      -1,   118,   143,   281,   144,   119,    -1,   118,   363,   119,
     1027     118,   143,   281,   144,   119,    -1,   118,   365,   119,    -1,
     1028     120,   121,    -1,   120,   121,   367,    -1,   367,    -1,   120,
     1029     143,   176,   144,   121,    -1,   120,   143,   126,   144,   121,
     1030      -1,   367,   120,   143,   176,   144,   121,    -1,   367,   120,
     1031     143,   126,   144,   121,    -1,   369,    -1,   370,   329,    -1,
     1032     371,   329,    -1,   161,    -1,   161,   241,    -1,   161,   368,
     1033      -1,   161,   241,   368,    -1,   118,   369,   119,   329,    -1,
     1034     372,    -1,   118,   369,   119,   372,    -1,   118,   370,   119,
     1035     367,    -1,   118,   370,   119,    -1,   118,   143,   281,   144,
     1036     119,    -1,   118,   369,   119,   118,   143,   281,   144,   119,
     1037      -1,   118,   371,   119,    -1,   373,    -1,   373,   367,    -1,
     1038     367,    -1,   120,   121,    -1,   120,   143,   241,   126,   144,
     1039     121,    -1,   120,   143,   241,   144,   121,    -1,   120,   143,
     1040     241,   176,   144,   121,    -1,   120,   143,     5,   240,   176,
     1041     144,   121,    -1,   120,   143,   241,     5,   176,   144,   121,
     1042      -1,   375,    -1,   376,   329,    -1,   377,   329,    -1,   161,
     1043      -1,   161,   241,    -1,   161,   374,    -1,   161,   241,   374,
     1044      -1,   118,   375,   119,   329,    -1,   366,    -1,   118,   375,
     1045     119,   366,    -1,   118,   376,   119,   367,    -1,   118,   376,
     1046     119,    -1,   118,   375,   119,   118,   143,   281,   144,   119,
     1047      -1,   118,   377,   119,    -1,   379,    -1,   387,    -1,   241,
     1048     387,    -1,   380,    -1,   381,    -1,   161,   239,    -1,   241,
     1049     161,   239,    -1,   161,   388,    -1,   241,   161,   388,    -1,
     1050     161,   378,    -1,   241,   161,   378,    -1,   120,   121,   239,
     1051      -1,   382,   239,    -1,   120,   121,   367,   239,    -1,   382,
     1052     367,   239,    -1,   367,   239,    -1,   120,   121,   380,    -1,
     1053     382,   380,    -1,   120,   121,   367,   380,    -1,   382,   367,
     1054     380,    -1,   367,   380,    -1,   120,   143,   241,   126,   144,
     1055     121,    -1,   120,   143,   241,   176,   144,   121,    -1,   120,
     1056     143,   245,   176,   144,   121,    -1,   120,   143,   245,   241,
     1057     176,   144,   121,    -1,   387,    -1,   241,   387,    -1,   384,
     1058      -1,   385,    -1,   386,    -1,   161,   238,    -1,   241,   161,
     1059     238,    -1,   161,   388,    -1,   241,   161,   388,    -1,   161,
     1060     383,    -1,   241,   161,   383,    -1,   120,   121,   238,    -1,
     1061     120,   121,   367,   238,    -1,   367,   238,    -1,   120,   121,
     1062     385,    -1,   120,   121,   367,   385,    -1,   367,   385,    -1,
     1063     120,   143,   280,   144,   121,    -1,   387,   118,   143,   277,
     1064     144,   119,    -1,   230,   118,   143,   277,   144,   119,    -1,
     1065      -1,   125,    -1,    -1,   140,   176,    -1
    10591066};
    10601067
     
    10621069static const yytype_uint16 yyrline[] =
    10631070{
    1064        0,   328,   328,   332,   339,   340,   341,   342,   343,   347,
    1065      348,   349,   353,   354,   358,   359,   363,   364,   368,   372,
    1066      373,   384,   386,   388,   389,   391,   396,   397,   403,   405,
    1067      407,   409,   411,   413,   415,   417,   419,   421,   430,   431,
    1068      437,   438,   442,   443,   447,   448,   450,   452,   454,   456,
    1069      458,   463,   465,   467,   479,   480,   488,   491,   493,   495,
    1070      500,   513,   515,   517,   519,   521,   523,   525,   527,   529,
    1071      531,   533,   540,   541,   547,   548,   549,   550,   554,   555,
    1072      562,   563,   565,   567,   572,   573,   575,   580,   581,   583,
    1073      588,   589,   591,   593,   595,   600,   601,   603,   608,   609,
    1074      614,   615,   620,   621,   626,   627,   632,   633,   638,   639,
    1075      642,   649,   654,   655,   663,   664,   668,   669,   670,   671,
    1076      672,   673,   674,   675,   676,   677,   678,   679,   689,   691,
    1077      696,   697,   702,   703,   709,   710,   716,   717,   718,   719,
    1078      720,   721,   722,   723,   724,   734,   741,   743,   754,   755,
    1079      760,   762,   767,   769,   774,   778,   779,   784,   789,   792,
    1080      794,   796,   806,   808,   819,   820,   822,   826,   828,   832,
    1081      833,   838,   839,   843,   848,   849,   853,   855,   861,   862,
    1082      866,   868,   870,   872,   878,   879,   883,   885,   890,   892,
    1083      894,   899,   901,   906,   908,   912,   915,   919,   922,   926,
    1084      928,   930,   932,   937,   939,   941,   946,   948,   950,   952,
    1085      954,   959,   961,   963,   965,   970,   978,   979,   984,   986,
    1086      991,   995,   997,   999,  1001,  1003,  1009,  1010,  1016,  1017,
    1087     1021,  1022,  1027,  1029,  1035,  1036,  1038,  1044,  1049,  1059,
    1088     1061,  1065,  1066,  1071,  1073,  1077,  1078,  1082,  1084,  1088,
    1089     1089,  1093,  1094,  1098,  1099,  1114,  1115,  1116,  1117,  1118,
    1090     1122,  1127,  1134,  1144,  1149,  1154,  1162,  1167,  1172,  1177,
    1091     1182,  1212,  1217,  1224,  1226,  1233,  1238,  1243,  1254,  1259,
    1092     1264,  1269,  1274,  1283,  1288,  1318,  1322,  1323,  1324,  1330,
    1093     1335,  1343,  1344,  1345,  1346,  1355,  1356,  1357,  1358,  1362,
    1094     1363,  1364,  1365,  1374,  1375,  1376,  1377,  1382,  1383,  1392,
    1095     1393,  1398,  1399,  1403,  1405,  1407,  1409,  1411,  1413,  1416,
    1096     1415,  1427,  1428,  1430,  1440,  1441,  1446,  1448,  1450,  1452,
    1097     1454,  1457,  1459,  1461,  1466,  1468,  1470,  1472,  1474,  1476,
    1098     1478,  1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1500,
    1099     1501,  1503,  1505,  1507,  1512,  1513,  1519,  1520,  1522,  1524,
    1100     1529,  1531,  1533,  1535,  1540,  1541,  1543,  1545,  1550,  1551,
    1101     1553,  1558,  1559,  1561,  1563,  1568,  1569,  1571,  1576,  1577,
    1102     1579,  1581,  1586,  1588,  1590,  1595,  1596,  1600,  1601,  1605,
    1103     1608,  1607,  1611,  1613,  1617,  1622,  1627,  1629,  1635,  1636,
    1104     1641,  1642,  1647,  1650,  1658,  1659,  1661,  1663,  1668,  1669,
    1105     1675,  1676,  1678,  1681,  1684,  1689,  1690,  1695,  1700,  1703,
    1106     1702,  1706,  1710,  1718,  1720,  1726,  1727,  1735,  1736,  1740,
    1107     1741,  1742,  1744,  1746,  1753,  1754,  1756,  1758,  1763,  1764,
    1108     1770,  1771,  1775,  1776,  1781,  1782,  1783,  1785,  1793,  1794,
    1109     1796,  1799,  1801,  1805,  1806,  1807,  1809,  1811,  1816,  1821,
    1110     1829,  1831,  1840,  1842,  1847,  1848,  1849,  1853,  1854,  1855,
    1111     1859,  1860,  1861,  1865,  1866,  1867,  1872,  1873,  1878,  1879,
    1112     1881,  1886,  1887,  1892,  1893,  1894,  1895,  1896,  1911,  1912,
    1113     1917,  1918,  1924,  1926,  1929,  1931,  1933,  1956,  1957,  1959,
    1114     1961,  1966,  1967,  1969,  1974,  1979,  1980,  1986,  1985,  1989,
    1115     1993,  1995,  1997,  1999,  2005,  2006,  2011,  2016,  2018,  2023,
    1116     2025,  2026,  2028,  2033,  2035,  2037,  2042,  2044,  2049,  2054,
    1117     2062,  2068,  2067,  2081,  2082,  2087,  2088,  2092,  2097,  2102,
    1118     2110,  2115,  2126,  2127,  2132,  2133,  2139,  2140,  2144,  2145,
    1119     2146,  2151,  2150,  2161,  2169,  2175,  2181,  2190,  2196,  2202,
    1120     2208,  2214,  2222,  2228,  2236,  2242,  2251,  2252,  2253,  2257,
    1121     2263,  2264,  2274,  2275,  2279,  2280,  2285,  2290,  2291,  2297,
    1122     2298,  2300,  2305,  2306,  2307,  2308,  2343,  2345,  2346,  2348,
    1123     2353,  2358,  2363,  2365,  2367,  2372,  2374,  2376,  2378,  2383,
    1124     2385,  2394,  2396,  2397,  2402,  2404,  2406,  2411,  2413,  2415,
    1125     2420,  2422,  2424,  2436,  2437,  2438,  2442,  2444,  2446,  2451,
    1126     2453,  2455,  2460,  2462,  2464,  2479,  2481,  2482,  2484,  2489,
    1127     2490,  2495,  2497,  2499,  2504,  2506,  2508,  2510,  2515,  2517,
    1128     2519,  2529,  2531,  2532,  2534,  2539,  2541,  2543,  2548,  2550,
    1129     2552,  2554,  2559,  2561,  2563,  2576,  2578,  2579,  2581,  2586,
    1130     2591,  2599,  2601,  2603,  2608,  2610,  2615,  2617,  2634,  2635,
    1131     2637,  2642,  2644,  2646,  2648,  2650,  2655,  2656,  2658,  2660,
    1132     2665,  2667,  2669,  2675,  2677,  2679,  2683,  2685,  2687,  2689,
    1133     2723,  2724,  2726,  2731,  2733,  2735,  2737,  2739,  2744,  2745,
    1134     2747,  2749,  2754,  2756,  2758,  2764,  2765,  2767,  2776,  2779,
    1135     2781,  2784,  2786,  2788,  2802,  2803,  2805,  2810,  2812,  2814,
    1136     2816,  2818,  2823,  2824,  2826,  2828,  2833,  2835,  2843,  2844,
    1137     2845,  2850,  2851,  2856,  2858,  2860,  2862,  2864,  2866,  2873,
    1138     2875,  2877,  2879,  2881,  2884,  2886,  2888,  2890,  2892,  2897,
    1139     2899,  2901,  2906,  2932,  2933,  2935,  2939,  2940,  2944,  2946,
    1140     2948,  2950,  2952,  2954,  2961,  2963,  2965,  2967,  2969,  2971,
    1141     2976,  2983,  2985,  3003,  3005,  3010,  3011
     1071       0,   330,   330,   334,   341,   342,   343,   344,   345,   349,
     1072     350,   351,   355,   356,   360,   361,   365,   366,   370,   374,
     1073     375,   386,   388,   390,   391,   393,   398,   399,   405,   407,
     1074     409,   411,   413,   415,   417,   419,   421,   423,   432,   433,
     1075     439,   440,   444,   445,   449,   450,   452,   454,   456,   458,
     1076     460,   465,   467,   469,   481,   482,   490,   493,   495,   497,
     1077     502,   515,   517,   519,   521,   523,   525,   527,   529,   531,
     1078     533,   535,   542,   543,   549,   550,   551,   552,   556,   557,
     1079     564,   565,   567,   569,   574,   575,   577,   582,   583,   585,
     1080     590,   591,   593,   595,   597,   602,   603,   605,   610,   611,
     1081     616,   617,   622,   623,   628,   629,   634,   635,   640,   641,
     1082     644,   651,   656,   657,   665,   666,   670,   671,   672,   673,
     1083     674,   675,   676,   677,   678,   679,   680,   681,   691,   693,
     1084     698,   699,   704,   705,   711,   712,   718,   719,   720,   721,
     1085     722,   723,   724,   725,   726,   736,   743,   745,   756,   757,
     1086     762,   764,   769,   771,   776,   780,   781,   786,   791,   794,
     1087     796,   798,   808,   810,   821,   822,   824,   828,   830,   834,
     1088     835,   840,   841,   845,   850,   851,   855,   857,   863,   864,
     1089     868,   870,   872,   874,   880,   881,   885,   887,   892,   894,
     1090     896,   901,   903,   908,   910,   914,   917,   921,   924,   928,
     1091     930,   932,   934,   939,   941,   943,   948,   950,   952,   954,
     1092     956,   961,   963,   965,   967,   972,   980,   981,   986,   988,
     1093     993,   997,   999,  1001,  1003,  1005,  1011,  1012,  1018,  1019,
     1094    1023,  1024,  1029,  1031,  1037,  1038,  1040,  1046,  1051,  1061,
     1095    1063,  1067,  1068,  1073,  1075,  1079,  1080,  1084,  1086,  1090,
     1096    1091,  1095,  1096,  1100,  1101,  1116,  1117,  1118,  1119,  1120,
     1097    1124,  1129,  1136,  1146,  1151,  1156,  1164,  1169,  1174,  1179,
     1098    1184,  1214,  1219,  1226,  1228,  1235,  1240,  1245,  1256,  1261,
     1099    1266,  1271,  1276,  1285,  1290,  1320,  1324,  1325,  1326,  1332,
     1100    1337,  1345,  1346,  1347,  1348,  1357,  1358,  1359,  1360,  1364,
     1101    1365,  1366,  1367,  1376,  1377,  1378,  1379,  1384,  1385,  1394,
     1102    1395,  1400,  1401,  1405,  1407,  1409,  1411,  1413,  1415,  1418,
     1103    1417,  1429,  1430,  1432,  1442,  1443,  1448,  1450,  1452,  1454,
     1104    1456,  1459,  1461,  1463,  1468,  1470,  1472,  1474,  1476,  1478,
     1105    1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1496,  1502,
     1106    1503,  1505,  1507,  1509,  1514,  1515,  1521,  1522,  1524,  1526,
     1107    1531,  1533,  1535,  1537,  1542,  1543,  1545,  1547,  1552,  1553,
     1108    1555,  1560,  1561,  1563,  1565,  1570,  1571,  1573,  1578,  1579,
     1109    1581,  1583,  1588,  1590,  1592,  1597,  1598,  1602,  1603,  1607,
     1110    1610,  1609,  1613,  1615,  1619,  1624,  1629,  1631,  1633,  1635,
     1111    1637,  1643,  1644,  1649,  1650,  1655,  1658,  1666,  1667,  1669,
     1112    1671,  1676,  1677,  1683,  1684,  1686,  1689,  1692,  1697,  1698,
     1113    1703,  1708,  1711,  1710,  1714,  1718,  1726,  1728,  1734,  1735,
     1114    1743,  1744,  1748,  1749,  1750,  1752,  1754,  1761,  1762,  1764,
     1115    1766,  1771,  1772,  1778,  1779,  1783,  1784,  1789,  1790,  1791,
     1116    1793,  1801,  1802,  1804,  1807,  1809,  1813,  1814,  1815,  1817,
     1117    1819,  1824,  1829,  1837,  1839,  1848,  1850,  1855,  1856,  1857,
     1118    1861,  1862,  1863,  1867,  1868,  1869,  1873,  1874,  1875,  1880,
     1119    1881,  1886,  1887,  1889,  1894,  1895,  1900,  1901,  1902,  1903,
     1120    1904,  1919,  1920,  1925,  1926,  1932,  1934,  1937,  1939,  1941,
     1121    1964,  1965,  1967,  1969,  1974,  1975,  1977,  1982,  1987,  1988,
     1122    1994,  1993,  1997,  2001,  2003,  2005,  2007,  2013,  2014,  2019,
     1123    2024,  2026,  2031,  2033,  2034,  2036,  2041,  2043,  2045,  2050,
     1124    2052,  2057,  2062,  2070,  2076,  2075,  2089,  2090,  2095,  2096,
     1125    2100,  2105,  2110,  2118,  2123,  2134,  2135,  2140,  2141,  2147,
     1126    2148,  2152,  2153,  2154,  2159,  2158,  2169,  2177,  2183,  2189,
     1127    2198,  2204,  2210,  2216,  2222,  2230,  2236,  2244,  2250,  2259,
     1128    2260,  2261,  2265,  2271,  2272,  2282,  2283,  2287,  2288,  2293,
     1129    2298,  2299,  2305,  2306,  2308,  2313,  2314,  2315,  2316,  2351,
     1130    2353,  2354,  2356,  2361,  2366,  2371,  2373,  2375,  2380,  2382,
     1131    2384,  2386,  2391,  2393,  2402,  2404,  2405,  2410,  2412,  2414,
     1132    2419,  2421,  2423,  2428,  2430,  2432,  2444,  2445,  2446,  2450,
     1133    2452,  2454,  2459,  2461,  2463,  2468,  2470,  2472,  2487,  2489,
     1134    2490,  2492,  2497,  2498,  2503,  2505,  2507,  2512,  2514,  2516,
     1135    2518,  2523,  2525,  2527,  2537,  2539,  2540,  2542,  2547,  2549,
     1136    2551,  2556,  2558,  2560,  2562,  2567,  2569,  2571,  2584,  2586,
     1137    2587,  2589,  2594,  2599,  2607,  2609,  2611,  2616,  2618,  2623,
     1138    2625,  2642,  2643,  2645,  2650,  2652,  2654,  2656,  2658,  2663,
     1139    2664,  2666,  2668,  2673,  2675,  2677,  2683,  2685,  2687,  2691,
     1140    2693,  2695,  2697,  2731,  2732,  2734,  2739,  2741,  2743,  2745,
     1141    2747,  2752,  2753,  2755,  2757,  2762,  2764,  2766,  2772,  2773,
     1142    2775,  2784,  2787,  2789,  2792,  2794,  2796,  2810,  2811,  2813,
     1143    2818,  2820,  2822,  2824,  2826,  2831,  2832,  2834,  2836,  2841,
     1144    2843,  2851,  2852,  2853,  2858,  2859,  2864,  2866,  2868,  2870,
     1145    2872,  2874,  2881,  2883,  2885,  2887,  2889,  2892,  2894,  2896,
     1146    2898,  2900,  2905,  2907,  2909,  2914,  2940,  2941,  2943,  2947,
     1147    2948,  2952,  2954,  2956,  2958,  2960,  2962,  2969,  2971,  2973,
     1148    2975,  2977,  2979,  2984,  2991,  2993,  3011,  3013,  3018,  3019
    11421149};
    11431150#endif
     
    11531160  "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", "SIGNED", "UNSIGNED",
    11541161  "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
    1155   "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TTYPE",
    1156   "TRAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE",
    1157   "SWITCH", "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE",
    1158   "GOTO", "RETURN", "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY",
    1159   "CATCH", "CATCHRESUME", "FINALLY", "THROW", "THROWRESUME", "AT", "ASM",
    1160   "ALIGNAS", "ALIGNOF", "GENERIC", "STATICASSERT", "IDENTIFIER",
    1161   "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER",
    1162   "ATTR_TYPEDEFname", "ATTR_TYPEGENname", "INTEGERconstant",
    1163   "CHARACTERconstant", "STRINGliteral", "REALDECIMALconstant",
    1164   "REALFRACTIONconstant", "FLOATINGconstant", "ZERO", "ONE", "ARROW",
    1165   "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ", "NE", "ANDAND", "OROR",
    1166   "ELLIPSIS", "MULTassign", "DIVassign", "MODassign", "PLUSassign",
    1167   "MINUSassign", "LSassign", "RSassign", "ANDassign", "ERassign",
    1168   "ORassign", "ATassign", "THEN", "'('", "')'", "'['", "']'", "'.'", "'{'",
    1169   "'}'", "','", "'*'", "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'",
    1170   "'<'", "'>'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "$accept",
    1171   "push", "pop", "constant", "identifier", "no_01_identifier",
    1172   "no_attr_identifier", "zero_one", "string_literal",
    1173   "string_literal_list", "primary_expression", "postfix_expression",
    1174   "argument_expression_list", "argument_expression", "field_list", "field",
    1175   "field_name", "fraction_constants", "unary_expression",
    1176   "ptrref_operator", "unary_operator", "cast_expression",
    1177   "multiplicative_expression", "additive_expression", "shift_expression",
    1178   "relational_expression", "equality_expression", "AND_expression",
    1179   "exclusive_OR_expression", "inclusive_OR_expression",
     1162  "LABEL", "ENUM", "STRUCT", "UNION", "COROUTINE", "MONITOR", "THREAD",
     1163  "OTYPE", "FTYPE", "DTYPE", "TTYPE", "TRAIT", "SIZEOF", "OFFSETOF",
     1164  "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT",
     1165  "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE",
     1166  "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
     1167  "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
     1168  "GENERIC", "STATICASSERT", "IDENTIFIER", "QUOTED_IDENTIFIER",
     1169  "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname",
     1170  "ATTR_TYPEGENname", "INTEGERconstant", "CHARACTERconstant",
     1171  "STRINGliteral", "REALDECIMALconstant", "REALFRACTIONconstant",
     1172  "FLOATINGconstant", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS",
     1173  "LE", "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
     1174  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
     1175  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
     1176  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
     1177  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
     1178  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
     1179  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
     1180  "string_literal", "string_literal_list", "primary_expression",
     1181  "postfix_expression", "argument_expression_list", "argument_expression",
     1182  "field_list", "field", "field_name", "fraction_constants",
     1183  "unary_expression", "ptrref_operator", "unary_operator",
     1184  "cast_expression", "multiplicative_expression", "additive_expression",
     1185  "shift_expression", "relational_expression", "equality_expression",
     1186  "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
    11801187  "logical_AND_expression", "logical_OR_expression",
    11811188  "conditional_expression", "constant_expression", "assignment_expression",
     
    12771284     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    12781285     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
    1279      365,   366,   367,   368,   369,    40,    41,    91,    93,    46,
    1280      123,   125,    44,    42,    38,    43,    45,    33,   126,    47,
    1281       37,    60,    62,    94,   124,    63,    58,    61,    59
     1286     365,   366,   367,   368,   369,   370,   371,   372,    40,    41,
     1287      91,    93,    46,   123,   125,    44,    42,    38,    43,    45,
     1288      33,   126,    47,    37,    60,    62,    94,   124,    63,    58,
     1289      61,    59
    12821290};
    12831291# endif
     
    12861294static const yytype_uint16 yyr1[] =
    12871295{
    1288        0,   139,   140,   141,   142,   142,   142,   142,   142,   143,
    1289      143,   143,   144,   144,   145,   145,   146,   146,   147,   148,
    1290      148,   149,   149,   149,   149,   149,   150,   150,   150,   150,
    1291      150,   150,   150,   150,   150,   150,   150,   150,   151,   151,
    1292      152,   152,   153,   153,   154,   154,   154,   154,   154,   154,
    1293      154,   155,   155,   155,   156,   156,   157,   157,   157,   157,
    1294      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
    1295      157,   157,   158,   158,   159,   159,   159,   159,   160,   160,
    1296      161,   161,   161,   161,   162,   162,   162,   163,   163,   163,
    1297      164,   164,   164,   164,   164,   165,   165,   165,   166,   166,
    1298      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
    1299      171,   172,   173,   173,   174,   174,   175,   175,   175,   175,
    1300      175,   175,   175,   175,   175,   175,   175,   175,   176,   176,
    1301      177,   177,   178,   178,   179,   179,   180,   180,   180,   180,
    1302      180,   180,   180,   180,   180,   181,   182,   182,   183,   183,
    1303      184,   184,   184,   184,   184,   185,   185,   186,   187,   187,
    1304      187,   187,   187,   187,   188,   188,   188,   189,   189,   190,
    1305      190,   191,   191,   192,   193,   193,   194,   194,   195,   195,
    1306      196,   196,   196,   196,   197,   197,   198,   198,   199,   199,
    1307      199,   200,   200,   201,   201,   201,   201,   201,   201,   201,
    1308      201,   201,   201,   202,   202,   202,   203,   203,   203,   203,
    1309      203,   204,   204,   204,   204,   205,   206,   206,   206,   206,
    1310      206,   207,   207,   207,   207,   207,   208,   208,   209,   209,
    1311      210,   210,   211,   211,   212,   212,   212,   213,   213,   214,
    1312      214,   215,   215,   216,   216,   217,   217,   218,   218,   219,
    1313      219,   220,   220,   221,   221,   222,   222,   222,   222,   222,
    1314      223,   223,   223,   224,   224,   224,   225,   225,   225,   225,
    1315      225,   226,   226,   227,   227,   228,   228,   228,   229,   229,
    1316      229,   229,   229,   230,   230,   231,   231,   231,   231,   232,
    1317      232,   233,   233,   233,   233,   234,   234,   234,   234,   235,
    1318      235,   235,   235,   236,   236,   236,   236,   237,   237,   238,
    1319      238,   239,   239,   240,   240,   240,   240,   240,   240,   241,
    1320      240,   242,   242,   242,   243,   243,   244,   244,   244,   244,
    1321      244,   244,   244,   244,   245,   245,   245,   245,   245,   245,
    1322      245,   245,   245,   245,   245,   245,   245,   245,   245,   246,
    1323      246,   246,   246,   246,   247,   247,   248,   248,   248,   248,
    1324      249,   249,   249,   249,   250,   250,   250,   250,   251,   251,
    1325      251,   252,   252,   252,   252,   253,   253,   253,   254,   254,
    1326      254,   254,   255,   255,   255,   256,   256,   257,   257,   258,
    1327      259,   258,   258,   258,   260,   260,   261,   261,   262,   262,
    1328      263,   263,   263,   263,   264,   264,   264,   264,   265,   265,
    1329      266,   266,   266,   266,   266,   267,   267,   268,   269,   270,
    1330      269,   269,   271,   272,   272,   273,   273,   274,   274,   275,
    1331      275,   275,   275,   275,   276,   276,   276,   276,   277,   277,
    1332      278,   278,   279,   279,   280,   280,   280,   280,   281,   281,
    1333      281,   281,   281,   282,   282,   282,   282,   282,   283,   283,
    1334      284,   284,   285,   285,   286,   286,   286,   287,   287,   287,
    1335      288,   288,   288,   289,   289,   289,   290,   290,   291,   291,
    1336      291,   292,   292,   293,   293,   293,   293,   293,   294,   294,
    1337      295,   295,   296,   296,   296,   296,   296,   297,   297,   297,
    1338      297,   298,   298,   298,   299,   300,   300,   302,   301,   301,
    1339      303,   303,   303,   303,   304,   304,   305,   305,   305,   306,
    1340      306,   306,   306,   307,   307,   307,   308,   308,   309,   309,
    1341      310,   311,   310,   312,   312,   313,   313,   314,   314,   314,
    1342      315,   315,   316,   316,   317,   317,   318,   318,   319,   319,
    1343      319,   320,   319,   319,   321,   321,   321,   322,   322,   322,
    1344      322,   322,   322,   322,   322,   322,   323,   323,   323,   324,
    1345      325,   325,   326,   326,   327,   327,   328,   329,   329,   330,
    1346      330,   330,   331,   331,   331,   331,   332,   332,   332,   332,
    1347      333,   333,   334,   334,   334,   335,   335,   335,   335,   336,
    1348      336,   337,   337,   337,   338,   338,   338,   339,   339,   339,
    1349      340,   340,   340,   341,   341,   341,   342,   342,   342,   343,
    1350      343,   343,   344,   344,   344,   345,   345,   345,   345,   346,
    1351      346,   347,   347,   347,   348,   348,   348,   348,   349,   349,
    1352      349,   350,   350,   350,   350,   351,   351,   351,   352,   352,
    1353      352,   352,   353,   353,   353,   354,   354,   354,   354,   355,
    1354      355,   356,   356,   356,   357,   357,   358,   358,   359,   359,
    1355      359,   360,   360,   360,   360,   360,   361,   361,   361,   361,
    1356      362,   362,   362,   363,   363,   363,   364,   364,   364,   364,
    1357      365,   365,   365,   366,   366,   366,   366,   366,   367,   367,
    1358      367,   367,   368,   368,   368,   369,   369,   369,   370,   370,
    1359      370,   370,   370,   370,   371,   371,   371,   372,   372,   372,
    1360      372,   372,   373,   373,   373,   373,   374,   374,   375,   375,
    1361      375,   376,   376,   377,   377,   377,   377,   377,   377,   378,
    1362      378,   378,   378,   378,   378,   378,   378,   378,   378,   379,
    1363      379,   379,   379,   380,   380,   380,   381,   381,   382,   382,
    1364      382,   382,   382,   382,   383,   383,   383,   383,   383,   383,
    1365      384,   385,   385,   386,   386,   387,   387
     1296       0,   142,   143,   144,   145,   145,   145,   145,   145,   146,
     1297     146,   146,   147,   147,   148,   148,   149,   149,   150,   151,
     1298     151,   152,   152,   152,   152,   152,   153,   153,   153,   153,
     1299     153,   153,   153,   153,   153,   153,   153,   153,   154,   154,
     1300     155,   155,   156,   156,   157,   157,   157,   157,   157,   157,
     1301     157,   158,   158,   158,   159,   159,   160,   160,   160,   160,
     1302     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
     1303     160,   160,   161,   161,   162,   162,   162,   162,   163,   163,
     1304     164,   164,   164,   164,   165,   165,   165,   166,   166,   166,
     1305     167,   167,   167,   167,   167,   168,   168,   168,   169,   169,
     1306     170,   170,   171,   171,   172,   172,   173,   173,   174,   174,
     1307     174,   175,   176,   176,   177,   177,   178,   178,   178,   178,
     1308     178,   178,   178,   178,   178,   178,   178,   178,   179,   179,
     1309     180,   180,   181,   181,   182,   182,   183,   183,   183,   183,
     1310     183,   183,   183,   183,   183,   184,   185,   185,   186,   186,
     1311     187,   187,   187,   187,   187,   188,   188,   189,   190,   190,
     1312     190,   190,   190,   190,   191,   191,   191,   192,   192,   193,
     1313     193,   194,   194,   195,   196,   196,   197,   197,   198,   198,
     1314     199,   199,   199,   199,   200,   200,   201,   201,   202,   202,
     1315     202,   203,   203,   204,   204,   204,   204,   204,   204,   204,
     1316     204,   204,   204,   205,   205,   205,   206,   206,   206,   206,
     1317     206,   207,   207,   207,   207,   208,   209,   209,   209,   209,
     1318     209,   210,   210,   210,   210,   210,   211,   211,   212,   212,
     1319     213,   213,   214,   214,   215,   215,   215,   216,   216,   217,
     1320     217,   218,   218,   219,   219,   220,   220,   221,   221,   222,
     1321     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
     1322     226,   226,   226,   227,   227,   227,   228,   228,   228,   228,
     1323     228,   229,   229,   230,   230,   231,   231,   231,   232,   232,
     1324     232,   232,   232,   233,   233,   234,   234,   234,   234,   235,
     1325     235,   236,   236,   236,   236,   237,   237,   237,   237,   238,
     1326     238,   238,   238,   239,   239,   239,   239,   240,   240,   241,
     1327     241,   242,   242,   243,   243,   243,   243,   243,   243,   244,
     1328     243,   245,   245,   245,   246,   246,   247,   247,   247,   247,
     1329     247,   247,   247,   247,   248,   248,   248,   248,   248,   248,
     1330     248,   248,   248,   248,   248,   248,   248,   248,   248,   249,
     1331     249,   249,   249,   249,   250,   250,   251,   251,   251,   251,
     1332     252,   252,   252,   252,   253,   253,   253,   253,   254,   254,
     1333     254,   255,   255,   255,   255,   256,   256,   256,   257,   257,
     1334     257,   257,   258,   258,   258,   259,   259,   260,   260,   261,
     1335     262,   261,   261,   261,   263,   263,   264,   264,   264,   264,
     1336     264,   265,   265,   266,   266,   266,   266,   267,   267,   267,
     1337     267,   268,   268,   269,   269,   269,   269,   269,   270,   270,
     1338     271,   272,   273,   272,   272,   274,   275,   275,   276,   276,
     1339     277,   277,   278,   278,   278,   278,   278,   279,   279,   279,
     1340     279,   280,   280,   281,   281,   282,   282,   283,   283,   283,
     1341     283,   284,   284,   284,   284,   284,   285,   285,   285,   285,
     1342     285,   286,   286,   287,   287,   288,   288,   289,   289,   289,
     1343     290,   290,   290,   291,   291,   291,   292,   292,   292,   293,
     1344     293,   294,   294,   294,   295,   295,   296,   296,   296,   296,
     1345     296,   297,   297,   298,   298,   299,   299,   299,   299,   299,
     1346     300,   300,   300,   300,   301,   301,   301,   302,   303,   303,
     1347     305,   304,   304,   306,   306,   306,   306,   307,   307,   308,
     1348     308,   308,   309,   309,   309,   309,   310,   310,   310,   311,
     1349     311,   312,   312,   313,   314,   313,   315,   315,   316,   316,
     1350     317,   317,   317,   318,   318,   319,   319,   320,   320,   321,
     1351     321,   322,   322,   322,   323,   322,   322,   324,   324,   324,
     1352     325,   325,   325,   325,   325,   325,   325,   325,   325,   326,
     1353     326,   326,   327,   328,   328,   329,   329,   330,   330,   331,
     1354     332,   332,   333,   333,   333,   334,   334,   334,   334,   335,
     1355     335,   335,   335,   336,   336,   337,   337,   337,   338,   338,
     1356     338,   338,   339,   339,   340,   340,   340,   341,   341,   341,
     1357     342,   342,   342,   343,   343,   343,   344,   344,   344,   345,
     1358     345,   345,   346,   346,   346,   347,   347,   347,   348,   348,
     1359     348,   348,   349,   349,   350,   350,   350,   351,   351,   351,
     1360     351,   352,   352,   352,   353,   353,   353,   353,   354,   354,
     1361     354,   355,   355,   355,   355,   356,   356,   356,   357,   357,
     1362     357,   357,   358,   358,   359,   359,   359,   360,   360,   361,
     1363     361,   362,   362,   362,   363,   363,   363,   363,   363,   364,
     1364     364,   364,   364,   365,   365,   365,   366,   366,   366,   367,
     1365     367,   367,   367,   368,   368,   368,   369,   369,   369,   369,
     1366     369,   370,   370,   370,   370,   371,   371,   371,   372,   372,
     1367     372,   373,   373,   373,   373,   373,   373,   374,   374,   374,
     1368     375,   375,   375,   375,   375,   376,   376,   376,   376,   377,
     1369     377,   378,   378,   378,   379,   379,   380,   380,   380,   380,
     1370     380,   380,   381,   381,   381,   381,   381,   381,   381,   381,
     1371     381,   381,   382,   382,   382,   382,   383,   383,   383,   384,
     1372     384,   385,   385,   385,   385,   385,   385,   386,   386,   386,
     1373     386,   386,   386,   387,   388,   388,   389,   389,   390,   390
    13661374};
    13671375
     
    14081416       2,     1,     2,     2,     3,     1,     2,     2,     1,     2,
    14091417       2,     3,     1,     2,     2,     1,     1,     1,     1,     5,
    1410        0,     7,     8,     1,     3,     3,     1,     1,     0,     2,
    1411        2,     3,     3,     4,     1,     2,     3,     2,     1,     4,
    1412        0,     1,     2,     2,     1,     0,     1,     2,     6,     0,
    1413        8,     1,     3,     2,     4,     0,     2,     0,     1,     1,
    1414        1,     5,     5,     5,     1,     5,     5,     9,     1,     5,
    1415        0,     1,     1,     5,     1,     1,     5,     5,     1,     3,
    1416        3,     4,     1,     1,     1,     1,     2,     1,     3,     3,
    1417        2,     3,     1,     3,     1,     1,     1,     1,     1,     1,
    1418        1,     1,     1,     1,     1,     2,     1,     1,     0,     2,
    1419        2,     1,     4,     0,     1,     2,     3,     4,     2,     2,
    1420        1,     2,     2,     5,     5,     7,     6,     1,     2,     2,
    1421        3,     1,     2,     2,     4,     2,     4,     0,     4,     2,
    1422        1,     1,     1,     1,     0,     2,     5,     5,    13,     1,
    1423        1,     3,     3,     2,     3,     3,     2,     4,     1,     6,
    1424        9,     0,    11,     1,     3,     3,     3,     1,     1,     5,
    1425        2,     5,     0,     1,     1,     3,     0,     1,     1,     1,
    1426        5,     0,     6,     2,     1,     2,     4,     2,     3,     3,
    1427        3,     4,     5,     5,     5,     6,     1,     1,     1,     3,
    1428        0,     5,     0,     1,     1,     2,     6,     1,     3,     0,
    1429        1,     4,     1,     1,     1,     1,     2,     1,     2,     2,
    1430        1,     3,     2,     3,     4,     2,     4,     4,     3,     8,
    1431        3,     2,     1,     2,     6,     8,     3,     2,     3,     3,
    1432        4,     4,     3,     1,     1,     1,     4,     8,     3,     2,
    1433        3,     3,     4,     4,     3,     2,     1,     2,     2,     1,
    1434        3,     2,     3,     4,     2,     4,     4,     3,     6,     8,
    1435        3,     2,     1,     2,     2,     2,     3,     4,     2,     4,
    1436        4,     3,     6,     8,     3,     2,     1,     2,     2,     1,
    1437        1,     2,     3,     4,     2,     4,     6,     8,     1,     2,
    1438        2,     1,     2,     2,     3,     4,     1,     4,     4,     3,
    1439        5,     8,     3,     2,     3,     1,     5,     5,     6,     6,
    1440        1,     2,     2,     1,     2,     2,     3,     4,     1,     4,
    1441        4,     3,     5,     8,     3,     1,     2,     1,     2,     6,
    1442        5,     6,     7,     7,     1,     2,     2,     1,     2,     2,
    1443        3,     4,     1,     4,     4,     3,     8,     3,     1,     1,
    1444        2,     1,     1,     2,     3,     2,     3,     2,     3,     3,
    1445        2,     4,     3,     2,     3,     2,     4,     3,     2,     6,
    1446        6,     6,     7,     1,     2,     1,     1,     1,     2,     3,
    1447        2,     3,     2,     3,     3,     4,     2,     3,     4,     2,
    1448        5,     6,     6,     0,     1,     0,     2
     1418       0,     7,     8,     1,     3,     3,     1,     1,     1,     1,
     1419       1,     0,     2,     2,     3,     3,     4,     1,     2,     3,
     1420       2,     1,     4,     0,     1,     2,     2,     1,     0,     1,
     1421       2,     6,     0,     8,     1,     3,     2,     4,     0,     2,
     1422       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
     1423       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
     1424       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
     1425       1,     3,     3,     2,     3,     1,     3,     1,     1,     1,
     1426       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
     1427       1,     0,     2,     2,     1,     4,     0,     1,     2,     3,
     1428       4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
     1429       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
     1430       0,     4,     2,     1,     1,     1,     1,     0,     2,     5,
     1431       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
     1432       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
     1433       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
     1434       1,     1,     1,     5,     0,     6,     2,     1,     2,     4,
     1435       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
     1436       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
     1437       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1438       1,     2,     2,     1,     3,     2,     3,     4,     2,     4,
     1439       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
     1440       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
     1441       8,     3,     2,     3,     3,     4,     4,     3,     2,     1,
     1442       2,     2,     1,     3,     2,     3,     4,     2,     4,     4,
     1443       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
     1444       4,     2,     4,     4,     3,     6,     8,     3,     2,     1,
     1445       2,     2,     1,     1,     2,     3,     4,     2,     4,     6,
     1446       8,     1,     2,     2,     1,     2,     2,     3,     4,     1,
     1447       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
     1448       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
     1449       4,     1,     4,     4,     3,     5,     8,     3,     1,     2,
     1450       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
     1451       1,     2,     2,     3,     4,     1,     4,     4,     3,     8,
     1452       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
     1453       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
     1454       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
     1455       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
     1456       3,     4,     2,     5,     6,     6,     0,     1,     0,     2
    14491457};
    14501458
     
    14571465     313,   315,   314,   318,     0,   316,   317,   342,   334,   339,
    14581466     337,   338,   336,   335,   340,   341,   347,   348,   346,   343,
    1459      344,   345,   572,   396,   397,     0,     0,     0,   307,     0,
    1460        9,   382,     0,    10,    16,    17,     0,     2,    72,    73,
    1461      590,    11,   307,   548,   253,     3,   478,     3,   266,     0,
    1462        3,     3,     3,   254,     0,     0,     0,   308,   309,   311,
    1463      307,   321,   324,   356,   291,   349,   354,   292,   364,   293,
    1464      378,   368,   385,   393,   572,   386,   421,   294,   497,   501,
    1465        3,     3,     0,     2,   544,   549,   554,   312,     0,     0,
    1466      572,   602,   572,     2,   613,   614,   615,   307,     0,   756,
    1467      757,     0,    14,     0,    15,   307,   275,   276,     0,   308,
    1468      299,   300,   301,   302,   551,   319,     0,   573,   574,    14,
    1469      471,   472,    13,   467,   470,     0,   528,   523,   514,   471,
    1470      472,     0,     0,   553,     0,   307,     0,     0,     0,     0,
    1471        0,     0,     0,     0,   307,   307,     0,   758,   308,   607,
    1472      619,   762,   755,   753,   760,     0,     0,     0,   260,     2,
    1473        0,   557,   465,   466,   464,     0,     0,     0,     0,   659,
    1474      660,     0,     0,     3,   570,   566,   572,   587,   572,   572,
    1475      568,     2,   567,   572,   626,   572,   572,   629,     0,     0,
    1476        0,   307,   307,   326,   383,     2,   307,   267,   310,   322,
    1477      357,   369,   502,     0,     2,     0,   478,   268,   308,   350,
    1478      365,   379,   498,     0,     2,     0,   325,   351,   358,   359,
    1479        0,   366,   370,   380,   384,     0,   499,   503,     0,     0,
    1480        0,     1,   307,     2,   555,   601,   603,   307,     2,   766,
    1481      308,   769,   570,   570,     0,   308,     0,     0,   278,   572,
    1482      568,     2,   307,     0,     0,   307,     0,   422,   575,     2,
    1483      526,     2,   579,    19,     0,    18,     0,     0,     0,     0,
    1484       21,    69,     4,     8,     5,     6,     7,     0,     0,   307,
    1485        2,    74,    75,    76,    77,    57,    22,    58,    26,    56,
    1486       78,   307,     0,    80,    84,    87,    90,    95,    98,   100,
    1487      102,   104,   106,   108,   112,   520,    23,   474,   476,   519,
    1488        0,   473,   477,     0,   591,   606,   609,   612,   618,   621,
    1489      624,     2,   764,   307,   767,   572,     2,    72,   307,     3,
    1490      452,     0,   775,   308,   307,   321,   295,   349,   296,   371,
    1491      297,   378,   375,   387,   572,   388,     3,     3,   434,   438,
    1492      448,   453,   298,   497,   307,   454,   731,   732,   307,   455,
    1493      457,     2,   608,   620,   754,     2,     2,   255,     2,   483,
    1494        0,   481,   480,   479,   146,     2,     2,   257,     2,     2,
    1495      256,     2,   286,     2,   287,     0,     0,     0,     0,     0,
    1496        0,     0,     0,     0,   592,   631,   572,     0,     0,   478,
    1497        2,   586,   595,   685,   588,   589,   558,   307,     2,   625,
    1498      634,   627,   628,     0,   281,   307,   307,   355,   308,     0,
    1499      308,   307,   759,   763,   761,   559,   307,   570,   261,   269,
    1500      323,     0,     2,   560,   307,   524,   352,   353,   288,   367,
    1501      381,   472,   307,   398,   394,   395,   500,   525,   258,   259,
    1502      545,   307,   462,     0,   307,   243,     0,     2,   245,     0,
    1503      308,   307,     0,   263,     2,   264,   283,     0,     0,     2,
    1504      307,   570,   307,   510,   512,   511,   513,     0,     0,   775,
    1505        0,   773,   425,     0,   307,     0,   307,   515,   307,   585,
    1506      582,   583,   584,     0,   577,   580,     0,    20,   307,    64,
    1507      307,    78,    59,   307,    66,   307,   307,    62,    63,     2,
    1508      132,     0,     0,     0,   753,   307,    31,     0,    34,    35,
    1509       40,     2,     0,    40,   118,   119,   120,   121,   122,   123,
    1510      124,   125,   126,   127,   117,   116,     0,    60,    61,     0,
    1511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1512        0,     0,     0,     0,     0,     0,     0,     0,     2,   671,
    1513      475,   668,   572,   572,   676,   504,   307,     2,   610,   611,
    1514        2,   622,   623,     0,   765,   768,     0,   307,   307,     0,
    1515      733,   308,   303,   304,   305,   306,   737,   728,   729,   735,
    1516        0,     2,     2,     0,   693,   572,   775,   642,   572,   572,
    1517      775,   572,   656,   572,   572,   707,   775,   690,   572,   572,
    1518      698,   705,   460,   307,   376,   456,   308,   372,   373,   377,
    1519        0,     0,     0,   307,   743,   308,   748,   775,   740,   307,
    1520      745,   775,   307,   307,     0,     0,    21,     2,     0,    22,
    1521        0,   484,   773,     0,     0,   490,   247,     0,   307,     0,
    1522        0,     0,   572,   598,   600,   630,   572,   637,   640,   593,
    1523      632,     0,   285,     0,   289,   683,     0,   307,   282,     0,
    1524        0,     0,     0,   280,     2,     0,   265,   561,   307,     0,
    1525        0,   307,     0,   308,     3,   441,     3,   445,   444,   616,
    1526        0,   556,   307,   308,    72,     3,   307,   775,   308,     3,
    1527      454,   455,     2,     0,     0,     0,   509,   320,   307,   505,
    1528      507,   774,     0,     0,   423,     0,     3,     2,     2,     0,
    1529      527,     3,     0,   579,    40,   550,     0,     2,     0,     0,
    1530        0,    41,     0,     0,   307,    24,     0,    25,     0,   114,
    1531        3,     2,    32,     0,    38,     0,     2,    29,     0,   113,
    1532       81,    82,    83,    85,    86,    88,    89,    93,    94,    91,
    1533       92,    96,    97,    99,   101,   103,   105,   107,     0,     0,
    1534      307,     0,     0,     0,   672,   673,   669,   670,   522,   521,
    1535      307,   307,   422,   739,   307,   744,   308,   307,   687,   730,
    1536      686,     2,   307,     0,     0,     0,     0,     0,     0,     0,
    1537        0,   708,     0,   776,   694,   645,   661,   695,     2,   641,
    1538      648,   458,   643,   644,   459,     2,   655,   664,   657,   658,
    1539      461,   691,   692,   706,   734,   738,   736,   775,   374,   394,
    1540      273,     2,   770,     2,   449,   742,   747,   450,     3,   428,
    1541        3,     3,     3,   478,     0,     0,     2,   492,   489,   774,
    1542        0,   485,     2,   488,   491,     0,   307,   248,   270,     3,
    1543      277,   279,     0,     2,   594,   596,   597,     2,   633,   635,
    1544      636,   570,     0,   684,   562,     3,   361,   360,   363,   362,
    1545      307,   563,     0,   564,     0,   307,   389,   410,   399,     0,
    1546      404,   398,     0,     0,   463,   246,     0,     0,     3,     2,
    1547      693,   456,     0,   552,     0,   775,   514,   425,   418,   111,
    1548      426,   773,     0,   307,   307,   307,     0,   576,   578,     0,
    1549       65,   307,     0,    67,    70,    71,     0,   133,   483,    79,
    1550      115,   130,     3,   114,     0,    28,    40,     3,     0,    37,
    1551      110,     0,     3,   572,   679,   682,   674,     3,     3,   741,
    1552      746,     2,    72,   307,     3,     3,   308,     0,     3,   572,
    1553      651,   654,   572,   572,   701,   704,   307,     3,   646,   662,
    1554      696,   307,   307,   451,   307,   307,     0,     0,     0,     0,
    1555      262,   111,     0,     3,     3,     0,   486,     0,   482,     0,
    1556        0,   251,   307,     0,     0,   134,     0,     0,     0,     0,
    1557        0,   134,     0,     0,   114,   114,   226,    21,   382,   466,
    1558       69,     0,    22,   135,     0,     3,   136,   137,     2,   148,
    1559      138,   139,   140,   141,   142,   143,   150,     0,   152,     0,
    1560        0,     0,   307,   307,   478,   572,     0,   565,   398,   410,
    1561        0,     0,     0,   717,     0,   408,   411,   415,   572,   415,
    1562      722,   414,   714,   572,   572,   407,   400,   405,   307,   604,
    1563        2,   689,   688,     0,   694,     2,   506,   508,   424,     0,
    1564      529,     3,   537,   538,     0,     2,   533,     3,     3,     0,
    1565        0,   581,     0,   773,   114,     0,     3,    54,     0,    54,
    1566       54,     3,    42,    44,    39,     0,     3,   109,     0,     2,
    1567      675,   677,   678,     0,     0,   307,     0,     0,     0,     3,
    1568      572,     0,     2,   647,   649,   650,     2,   663,   665,     2,
    1569      697,   699,   700,     0,     0,    72,     0,     3,     3,     3,
    1570        3,   436,   435,   439,   772,     2,     2,   771,     0,     0,
    1571        0,     0,     3,   487,     3,     0,   249,   151,   153,     0,
    1572        0,     0,     0,     2,   197,     0,   195,     0,     0,     0,
    1573        0,     0,     0,     0,     0,   227,     0,     0,   157,   154,
    1574      307,     0,   572,     0,   272,   284,     3,     3,   290,   571,
    1575      638,   307,     0,   401,     0,     0,     0,     0,   417,   718,
    1576      719,   572,   402,   412,   416,   413,   715,   716,   406,   391,
    1577      307,   271,   307,   420,     0,   540,   517,   307,     0,     0,
    1578      516,   531,    68,     0,   131,   128,     0,    51,     2,    45,
    1579       52,    53,     0,     0,     0,     0,    27,     0,   680,   307,
    1580      605,   617,   749,   750,   751,     0,   702,   307,   307,   307,
    1581        3,     3,     0,   710,     0,     0,     0,     0,   307,   307,
    1582        3,   569,   493,   494,     0,   252,     0,     0,     0,     0,
    1583      307,   198,   196,     0,   193,   199,     0,     0,     0,     0,
    1584      203,   206,   204,   200,     0,   201,     0,     0,    40,   149,
    1585      147,   134,   250,     0,     0,   392,   403,   572,   725,   727,
    1586      720,   410,   443,   447,   446,     0,   534,     2,   535,     2,
    1587      536,   530,   307,    36,   129,    55,     0,    43,    33,     2,
    1588       49,     2,    47,    30,     3,   752,     3,     3,     3,     0,
    1589        0,   709,   711,   652,   666,   274,     2,   433,     3,   432,
    1590        0,   496,   134,     0,     0,   134,     3,     0,   134,     3,
    1591      308,   307,   194,     0,     2,     2,   215,   205,     0,     0,
    1592        0,     0,     0,     0,   145,   599,   639,     2,   721,   723,
    1593      724,   409,     2,     0,     0,     2,     3,     0,     0,     0,
    1594        0,     0,     0,   712,   713,   307,     0,   495,   158,     0,
    1595        0,     2,   171,   134,   160,     0,   188,     0,   134,     0,
    1596      308,     2,   162,     0,     2,     0,     2,     2,     2,   202,
    1597        0,     0,   228,    37,   307,   307,   539,   541,   532,     0,
    1598        3,     3,   681,   653,   667,   703,   437,   134,   164,   167,
    1599        0,   166,   170,     3,   173,   172,     0,   134,   190,   134,
    1600        3,     0,   307,     0,   307,     0,     2,     0,     2,     0,
    1601      221,     0,     0,     0,   229,   230,   144,     3,     2,    46,
    1602        0,     0,   159,     0,     0,   169,   239,   174,     2,   241,
    1603      189,     0,   192,   178,   207,     3,   216,   308,   220,   209,
    1604        3,     0,   307,     0,   307,   228,     0,     0,     0,   228,
    1605        0,     0,     0,    50,    48,   165,   168,   134,     0,   175,
    1606      307,   134,   134,     0,   179,     0,     0,   717,   217,   218,
    1607      219,     0,   208,     3,   210,     3,     0,     0,     0,   222,
    1608        0,   231,   726,   307,   155,   176,   161,   134,   242,   191,
    1609      186,   184,   180,   163,   134,     0,   718,     0,     0,     0,
    1610      234,     0,   232,     0,   234,     0,   156,   177,   187,   181,
    1611      185,   184,   182,     3,     3,     0,     0,   235,     0,     0,
    1612      223,     0,   518,   183,   211,   213,     3,     3,     0,     0,
    1613        0,     0,   212,   214,   236,   237,     0,   233,   224,     0,
    1614        0,   225,   238
     1467     344,   345,   575,   396,   397,   398,   399,   400,     0,     0,
     1468       0,   307,     0,     9,   382,     0,    10,    16,    17,     0,
     1469       2,    72,    73,   593,    11,   307,   551,   253,     3,   481,
     1470       3,   266,     0,     3,     3,     3,   254,     0,     0,     0,
     1471     308,   309,   311,   307,   321,   324,   356,   291,   349,   354,
     1472     292,   364,   293,   378,   368,   385,   393,   575,   386,   424,
     1473     294,   500,   504,     3,     3,     0,     2,   547,   552,   557,
     1474     312,     0,     0,   575,   605,   575,     2,   616,   617,   618,
     1475     307,     0,   759,   760,     0,    14,     0,    15,   307,   275,
     1476     276,     0,   308,   299,   300,   301,   302,   554,   319,     0,
     1477     576,   577,    14,   474,   475,    13,   470,   473,     0,   531,
     1478     526,   517,   474,   475,     0,     0,   556,     0,   307,     0,
     1479       0,     0,     0,     0,     0,     0,     0,   307,   307,     0,
     1480     761,   308,   610,   622,   765,   758,   756,   763,     0,     0,
     1481       0,   260,     2,     0,   560,   468,   469,   467,     0,     0,
     1482       0,     0,   662,   663,     0,     0,     3,   573,   569,   575,
     1483     590,   575,   575,   571,     2,   570,   575,   629,   575,   575,
     1484     632,     0,     0,     0,   307,   307,   326,   383,     2,   307,
     1485     267,   310,   322,   357,   369,   505,     0,     2,     0,   481,
     1486     268,   308,   350,   365,   379,   501,     0,     2,     0,   325,
     1487     351,   358,   359,     0,   366,   370,   380,   384,     0,   502,
     1488     506,     0,     0,     0,     1,   307,     2,   558,   604,   606,
     1489     307,     2,   769,   308,   772,   573,   573,     0,   308,     0,
     1490       0,   278,   575,   571,     2,   307,     0,     0,   307,     0,
     1491     425,   578,     2,   529,     2,   582,    19,     0,    18,     0,
     1492       0,     0,     0,    21,    69,     4,     8,     5,     6,     7,
     1493       0,     0,   307,     2,    74,    75,    76,    77,    57,    22,
     1494      58,    26,    56,    78,   307,     0,    80,    84,    87,    90,
     1495      95,    98,   100,   102,   104,   106,   108,   112,   523,    23,
     1496     477,   479,   522,     0,   476,   480,     0,   594,   609,   612,
     1497     615,   621,   624,   627,     2,   767,   307,   770,   575,     2,
     1498      72,   307,     3,   455,     0,   778,   308,   307,   321,   295,
     1499     349,   296,   371,   297,   378,   375,   387,   575,   388,     3,
     1500       3,   437,   441,   451,   456,   298,   500,   307,   457,   734,
     1501     735,   307,   458,   460,     2,   611,   623,   757,     2,     2,
     1502     255,     2,   486,     0,   484,   483,   482,   146,     2,     2,
     1503     257,     2,     2,   256,     2,   286,     2,   287,     0,     0,
     1504       0,     0,     0,     0,     0,     0,     0,   595,   634,   575,
     1505       0,     0,   481,     2,   589,   598,   688,   591,   592,   561,
     1506     307,     2,   628,   637,   630,   631,     0,   281,   307,   307,
     1507     355,   308,     0,   308,   307,   762,   766,   764,   562,   307,
     1508     573,   261,   269,   323,     0,     2,   563,   307,   527,   352,
     1509     353,   288,   367,   381,   475,   307,   401,   394,   395,   503,
     1510     528,   258,   259,   548,   307,   465,     0,   307,   243,     0,
     1511       2,   245,     0,   308,   307,     0,   263,     2,   264,   283,
     1512       0,     0,     2,   307,   573,   307,   513,   515,   514,   516,
     1513       0,     0,   778,     0,   776,   428,     0,   307,     0,   307,
     1514     518,   307,   588,   585,   586,   587,     0,   580,   583,     0,
     1515      20,   307,    64,   307,    78,    59,   307,    66,   307,   307,
     1516      62,    63,     2,   132,     0,     0,     0,   756,   307,    31,
     1517       0,    34,    35,    40,     2,     0,    40,   118,   119,   120,
     1518     121,   122,   123,   124,   125,   126,   127,   117,   116,     0,
     1519      60,    61,     0,     0,     0,     0,     0,     0,     0,     0,
     1520       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1521       0,     2,   674,   478,   671,   575,   575,   679,   507,   307,
     1522       2,   613,   614,     2,   625,   626,     0,   768,   771,     0,
     1523     307,   307,     0,   736,   308,   303,   304,   305,   306,   740,
     1524     731,   732,   738,     0,     2,     2,     0,   696,   575,   778,
     1525     645,   575,   575,   778,   575,   659,   575,   575,   710,   778,
     1526     693,   575,   575,   701,   708,   463,   307,   376,   459,   308,
     1527     372,   373,   377,     0,     0,     0,   307,   746,   308,   751,
     1528     778,   743,   307,   748,   778,   307,   307,     0,     0,    21,
     1529       2,     0,    22,     0,   487,   776,     0,     0,   493,   247,
     1530       0,   307,     0,     0,     0,   575,   601,   603,   633,   575,
     1531     640,   643,   596,   635,     0,   285,     0,   289,   686,     0,
     1532     307,   282,     0,     0,     0,     0,   280,     2,     0,   265,
     1533     564,   307,     0,     0,   307,     0,   308,     3,   444,     3,
     1534     448,   447,   619,     0,   559,   307,   308,    72,     3,   307,
     1535     778,   308,     3,   457,   458,     2,     0,     0,     0,   512,
     1536     320,   307,   508,   510,   777,     0,     0,   426,     0,     3,
     1537       2,     2,     0,   530,     3,     0,   582,    40,   553,     0,
     1538       2,     0,     0,     0,    41,     0,     0,   307,    24,     0,
     1539      25,     0,   114,     3,     2,    32,     0,    38,     0,     2,
     1540      29,     0,   113,    81,    82,    83,    85,    86,    88,    89,
     1541      93,    94,    91,    92,    96,    97,    99,   101,   103,   105,
     1542     107,     0,     0,   307,     0,     0,     0,   675,   676,   672,
     1543     673,   525,   524,   307,   307,   425,   742,   307,   747,   308,
     1544     307,   690,   733,   689,     2,   307,     0,     0,     0,     0,
     1545       0,     0,     0,     0,   711,     0,   779,   697,   648,   664,
     1546     698,     2,   644,   651,   461,   646,   647,   462,     2,   658,
     1547     667,   660,   661,   464,   694,   695,   709,   737,   741,   739,
     1548     778,   374,   394,   273,     2,   773,     2,   452,   745,   750,
     1549     453,     3,   431,     3,     3,     3,   481,     0,     0,     2,
     1550     495,   492,   777,     0,   488,     2,   491,   494,     0,   307,
     1551     248,   270,     3,   277,   279,     0,     2,   597,   599,   600,
     1552       2,   636,   638,   639,   573,     0,   687,   565,     3,   361,
     1553     360,   363,   362,   307,   566,     0,   567,     0,   307,   389,
     1554     413,   402,     0,   407,   401,     0,     0,   466,   246,     0,
     1555       0,     3,     2,   696,   459,     0,   555,     0,   778,   517,
     1556     428,   421,   111,   429,   776,     0,   307,   307,   307,     0,
     1557     579,   581,     0,    65,   307,     0,    67,    70,    71,     0,
     1558     133,   486,    79,   115,   130,     3,   114,     0,    28,    40,
     1559       3,     0,    37,   110,     0,     3,   575,   682,   685,   677,
     1560       3,     3,   744,   749,     2,    72,   307,     3,     3,   308,
     1561       0,     3,   575,   654,   657,   575,   575,   704,   707,   307,
     1562       3,   649,   665,   699,   307,   307,   454,   307,   307,     0,
     1563       0,     0,     0,   262,   111,     0,     3,     3,     0,   489,
     1564       0,   485,     0,     0,   251,   307,     0,     0,   134,     0,
     1565       0,     0,     0,     0,   134,     0,     0,   114,   114,   226,
     1566      21,   382,   469,    69,     0,    22,   135,     0,     3,   136,
     1567     137,     2,   148,   138,   139,   140,   141,   142,   143,   150,
     1568       0,   152,     0,     0,     0,   307,   307,   481,   575,     0,
     1569     568,   401,   413,     0,     0,     0,   720,     0,   411,   414,
     1570     418,   575,   418,   725,   417,   717,   575,   575,   410,   403,
     1571     408,   307,   607,     2,   692,   691,     0,   697,     2,   509,
     1572     511,   427,     0,   532,     3,   540,   541,     0,     2,   536,
     1573       3,     3,     0,     0,   584,     0,   776,   114,     0,     3,
     1574      54,     0,    54,    54,     3,    42,    44,    39,     0,     3,
     1575     109,     0,     2,   678,   680,   681,     0,     0,   307,     0,
     1576       0,     0,     3,   575,     0,     2,   650,   652,   653,     2,
     1577     666,   668,     2,   700,   702,   703,     0,     0,    72,     0,
     1578       3,     3,     3,     3,   439,   438,   442,   775,     2,     2,
     1579     774,     0,     0,     0,     0,     3,   490,     3,     0,   249,
     1580     151,   153,     0,     0,     0,     0,     2,   197,     0,   195,
     1581       0,     0,     0,     0,     0,     0,     0,     0,   227,     0,
     1582       0,   157,   154,   307,     0,   575,     0,   272,   284,     3,
     1583       3,   290,   574,   641,   307,     0,   404,     0,     0,     0,
     1584       0,   420,   721,   722,   575,   405,   415,   419,   416,   718,
     1585     719,   409,   391,   307,   271,   307,   423,     0,   543,   520,
     1586     307,     0,     0,   519,   534,    68,     0,   131,   128,     0,
     1587      51,     2,    45,    52,    53,     0,     0,     0,     0,    27,
     1588       0,   683,   307,   608,   620,   752,   753,   754,     0,   705,
     1589     307,   307,   307,     3,     3,     0,   713,     0,     0,     0,
     1590       0,   307,   307,     3,   572,   496,   497,     0,   252,     0,
     1591       0,     0,     0,   307,   198,   196,     0,   193,   199,     0,
     1592       0,     0,     0,   203,   206,   204,   200,     0,   201,     0,
     1593       0,    40,   149,   147,   134,   250,     0,     0,   392,   406,
     1594     575,   728,   730,   723,   413,   446,   450,   449,     0,   537,
     1595       2,   538,     2,   539,   533,   307,    36,   129,    55,     0,
     1596      43,    33,     2,    49,     2,    47,    30,     3,   755,     3,
     1597       3,     3,     0,     0,   712,   714,   655,   669,   274,     2,
     1598     436,     3,   435,     0,   499,   134,     0,     0,   134,     3,
     1599       0,   134,     3,   308,   307,   194,     0,     2,     2,   215,
     1600     205,     0,     0,     0,     0,     0,     0,   145,   602,   642,
     1601       2,   724,   726,   727,   412,     2,     0,     0,     2,     3,
     1602       0,     0,     0,     0,     0,     0,   715,   716,   307,     0,
     1603     498,   158,     0,     0,     2,   171,   134,   160,     0,   188,
     1604       0,   134,     0,   308,     2,   162,     0,     2,     0,     2,
     1605       2,     2,   202,     0,     0,   228,    37,   307,   307,   542,
     1606     544,   535,     0,     3,     3,   684,   656,   670,   706,   440,
     1607     134,   164,   167,     0,   166,   170,     3,   173,   172,     0,
     1608     134,   190,   134,     3,     0,   307,     0,   307,     0,     2,
     1609       0,     2,     0,   221,     0,     0,     0,   229,   230,   144,
     1610       3,     2,    46,     0,     0,   159,     0,     0,   169,   239,
     1611     174,     2,   241,   189,     0,   192,   178,   207,     3,   216,
     1612     308,   220,   209,     3,     0,   307,     0,   307,   228,     0,
     1613       0,     0,   228,     0,     0,     0,    50,    48,   165,   168,
     1614     134,     0,   175,   307,   134,   134,     0,   179,     0,     0,
     1615     720,   217,   218,   219,     0,   208,     3,   210,     3,     0,
     1616       0,     0,   222,     0,   231,   729,   307,   155,   176,   161,
     1617     134,   242,   191,   186,   184,   180,   163,   134,     0,   721,
     1618       0,     0,     0,   234,     0,   232,     0,   234,     0,   156,
     1619     177,   187,   181,   185,   184,   182,     3,     3,     0,     0,
     1620     235,     0,     0,   223,     0,   521,   183,   211,   213,     3,
     1621       3,     0,     0,     0,     0,   212,   214,   236,   237,     0,
     1622     233,   224,     0,     0,   225,   238
    16151623};
    16161624
     
    16181626static const yytype_int16 yydefgoto[] =
    16191627{
    1620       -1,   802,   465,   295,    50,   133,   134,   296,   297,   275,
    1621      298,   299,   753,   754,  1101,  1102,  1103,  1227,   300,   380,
    1622      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
    1623      312,   313,   314,   992,   520,   941,   546,   316,   942,  1023,
    1624     1024,  1524,  1026,  1027,  1028,  1029,  1525,  1030,  1031,  1429,
    1625     1430,  1392,  1393,  1394,  1498,  1499,  1503,  1504,  1549,  1550,
    1626     1032,  1347,  1033,  1034,  1280,  1281,  1282,  1475,  1035,  1176,
    1627     1453,  1454,  1455,  1558,  1576,  1467,  1468,   466,   467,   866,
    1628      867,  1000,    53,    54,    55,    56,    57,   340,   156,    60,
    1629       61,    62,    63,   183,   469,   342,    65,  1476,    66,   255,
    1630       68,    69,   265,   344,   345,    72,    73,   346,   120,    76,
    1631      201,    77,   121,   348,   349,   350,   122,    81,   352,    82,
    1632      692,    83,    84,   691,   898,   899,  1054,  1055,  1203,  1056,
    1633       85,   493,    86,   491,   724,   848,   849,   356,   357,   694,
    1634      695,   696,   358,   359,   697,   361,   463,  1037,   135,   136,
    1635      318,   319,   168,   651,   652,   653,   654,   655,   362,   123,
    1636       89,   488,   489,   916,   490,   270,   497,   320,    90,   137,
    1637      138,    91,  1312,  1085,  1086,  1087,  1088,    92,    93,   713,
    1638       94,   264,    95,    96,   184,   994,   686,   411,   127,    97,
    1639      503,   504,   505,   185,   259,   187,   188,   189,   260,   100,
    1640      101,   102,   103,   104,   105,   106,   192,   193,   194,   195,
    1641      196,   815,   607,   608,   609,   610,   197,   612,   613,   614,
    1642      570,   571,   572,   573,  1060,   107,   616,   617,   618,   619,
    1643      620,   621,  1061,  1062,  1063,  1064,   596,   365,   366,   367,
    1644      368,   321,   162,   109,   110,   111,   370,   722,   622
     1628      -1,   805,   468,   298,    53,   136,   137,   299,   300,   278,
     1629     301,   302,   756,   757,  1104,  1105,  1106,  1230,   303,   383,
     1630     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     1631     315,   316,   317,   995,   523,   944,   549,   319,   945,  1026,
     1632    1027,  1527,  1029,  1030,  1031,  1032,  1528,  1033,  1034,  1432,
     1633    1433,  1395,  1396,  1397,  1501,  1502,  1506,  1507,  1552,  1553,
     1634    1035,  1350,  1036,  1037,  1283,  1284,  1285,  1478,  1038,  1179,
     1635    1456,  1457,  1458,  1561,  1579,  1470,  1471,   469,   470,   869,
     1636     870,  1003,    56,    57,    58,    59,    60,   343,   159,    63,
     1637      64,    65,    66,   186,   472,   345,    68,  1479,    69,   258,
     1638      71,    72,   268,   347,   348,    75,    76,   349,   123,    79,
     1639     204,    80,   124,   351,   352,   353,   125,    84,   355,    85,
     1640     695,    86,    87,   694,   901,   902,  1057,  1058,  1206,  1059,
     1641      88,   496,    89,   494,   727,   851,   852,   359,   360,   697,
     1642     698,   699,   361,   362,   700,   364,   466,  1040,   138,   139,
     1643     321,   322,   171,   654,   655,   656,   657,   658,   365,   126,
     1644      92,   491,   492,   919,   493,   273,   500,   323,    93,   140,
     1645     141,    94,  1315,  1088,  1089,  1090,  1091,    95,    96,   716,
     1646      97,   267,    98,    99,   187,   997,   689,   414,   130,   100,
     1647     506,   507,   508,   188,   262,   190,   191,   192,   263,   103,
     1648     104,   105,   106,   107,   108,   109,   195,   196,   197,   198,
     1649     199,   818,   610,   611,   612,   613,   200,   615,   616,   617,
     1650     573,   574,   575,   576,  1063,   110,   619,   620,   621,   622,
     1651     623,   624,  1064,  1065,  1066,  1067,   599,   368,   369,   370,
     1652     371,   324,   165,   112,   113,   114,   373,   725,   625
    16451653};
    16461654
    16471655/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16481656   STATE-NUM.  */
    1649 #define YYPACT_NINF -1376
     1657#define YYPACT_NINF -1383
    16501658static const yytype_int16 yypact[] =
    16511659{
    1652     3644, 10282,    32, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1653    -1376, -1376, -1376, -1376,    24, -1376, -1376, -1376, -1376, -1376,
    1654    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1655    -1376, -1376,    56, -1376, -1376,  1230,  1113,    65,  7226,    72,
    1656    -1376, -1376,   176, -1376, -1376, -1376,   630,    11, -1376, -1376,
    1657    -1376, -1376,  7013, -1376, -1376, -1376,   138,    27, -1376,  1340,
    1658    -1376, -1376, -1376, -1376,  1755,   264,    88,  8626, -1376, -1376,
    1659     7013,  2358, -1376, -1376,  1485,   327,  7092,  1156,  1585,  1485,
    1660     1669, -1376, -1376, -1376,    56, -1376, -1376,  1485,  2327, -1376,
    1661      227, -1376,   362,   385, -1376, -1376, -1376, -1376,   285,    27,
    1662       56, -1376,    56, -1376, -1376, -1376, -1376,  4122,  1340, -1376,
    1663    -1376,  1340, -1376,   258, -1376, 10471, -1376, -1376,  2035, 10553,
    1664    -1376,  2430,  2430,  2430, -1376, -1376,   833,    56, -1376,   306,
    1665      321,   331, -1376, -1376, -1376,   334, -1376, -1376, -1376, -1376,
    1666    -1376,   359,   376, -1376,   421,  9775,  2503,   117,   409,   412,
    1667      431,   448,   469,   476, 10588,  8042,   456, -1376, 10169, -1376,
    1668    -1376, -1376, -1376,   480, -1376,   126,  4748,  4748, -1376,   493,
    1669      186, -1376, -1376, -1376, -1376,   512,   259,   317,   443, -1376,
    1670    -1376,  1755,  2698,   513,   571, -1376,    17, -1376,    56,    56,
    1671       27, -1376, -1376,    61, -1376,    56,    56, -1376,  2953,   537,
    1672      569,  2430,  8661, -1376, -1376, -1376,  7013, -1376, -1376,  1485,
    1673    -1376, -1376, -1376,    27, -1376,  1340,   138, -1376,  8906, -1376,
    1674     2430,  2430,  2430,    27, -1376,  1230, -1376,  6886, -1376, -1376,
    1675      566,  2430, -1376,  2430, -1376,   935,  2430, -1376,  1230,   578,
    1676      585, -1376,  7226,   720, -1376, -1376, -1376,  9503, -1376, -1376,
    1677     3855, -1376,   571,    62,  5470, 10553,  2035,  2953, -1376,   223,
    1678    -1376, -1376, 10471,  1340,   593,  9062,  1113,   617, -1376, -1376,
    1679      310, -1376,   575, -1376,   623,   663,  6523,   636,  5470,  7370,
    1680    -1376,   651, -1376, -1376, -1376, -1376, -1376, 11419, 11419,  9541,
    1681       11, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,   786,
    1682     2399,  9775,  5470, -1376,   648,   477,   598,   567,   732,   661,
    1683      654,   656,   722,   110, -1376, -1376, -1376,   588, -1376, -1376,
    1684      251, -1376, -1376,  2503, -1376, -1376,    51,   724, -1376,   530,
    1685      724, -1376, -1376,  4122, -1376,    56,   694,   730,  9892, -1376,
    1686    -1376,  1107,  1664,  9269,  9183,  1485,  1485, -1376,  1485,  2430,
    1687     1485,  2430, -1376, -1376,    56, -1376, -1376, -1376, -1376, -1376,
    1688    -1376, -1376,  1485,  2430, 10623,  1340, -1376, -1376, 10705,  1192,
    1689    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,  8357,
    1690     5470, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1691    -1376, -1376, -1376, -1376, -1376,   956,   758,   766,   768,   961,
    1692      778,   783,   797,  2698, -1376, -1376,    56,   708,   746,   138,
    1693      800, -1376, -1376,   816, -1376, -1376, -1376,  9503, -1376, -1376,
    1694    -1376, -1376, -1376,  2953, -1376,  9775,  9775, -1376,  2430,  2035,
    1695    10927,  9345, -1376, -1376, -1376, -1376,  9503,    62, -1376, -1376,
    1696     1485,    27, -1376, -1376,  9503, -1376,  6971, -1376, -1376,  2430,
    1697     2430,   176,  9775, -1376,   809, -1376,  2430, -1376, -1376, -1376,
    1698    -1376, 10134, -1376,   602,  3294, -1376,    27,   825, -1376,  2035,
    1699    11619,  8661, 11437, -1376, -1376, -1376, -1376,   966,  2953, -1376,
    1700     9345,   571,  8504, -1376, -1376, -1376, -1376,   680,   633,   810,
    1701     1113,   830,   828,   842,  9062,  1033, 10471, -1376,  9062, -1376,
    1702    -1376, -1376, -1376,   645, -1376,   859,   844, -1376,  9541, -1376,
    1703    10740, -1376, -1376,  9541, -1376,  9658,  9541, -1376, -1376,    11,
    1704    -1376,   659,   870,   891, -1376,  7792, -1376,   703, -1376, -1376,
    1705     5470, -1376,   726,  5470, -1376, -1376, -1376, -1376, -1376, -1376,
    1706    -1376, -1376, -1376, -1376, -1376, -1376,  5470, -1376, -1376,  5470,
    1707     5470,  5470,  5470,  5470,  5470,  5470,  5470,  5470,  5470,  5470,
    1708     5470,  5470,  5470,  5470,  5470,  5470,  5470,  2514,   588,  1160,
    1709    -1376, -1376,    56,    56, -1376, -1376,  9775, -1376, -1376,   816,
    1710    -1376, -1376,   816, 11493, -1376, -1376,  1113, 10705,  7792,   894,
    1711    -1376, 10775, -1376,  2430,  2430,  2430, -1376, -1376,   480, -1376,
    1712      904,   683,   912,  5470,  2122,   241,   810, -1376,    56,    56,
    1713      810,   244, -1376,    56,    56,   816,   810, -1376,    56,    56,
    1714    -1376,   724, -1376, 10857, -1376,  1340, 11707,  2430,  2430, -1376,
    1715     1324,   547,   608, 10857, -1376,  5856, -1376,   810, -1376, 10623,
    1716    -1376,   124,  2858,  2858,  1340,  5055,   864, -1376,   745,   916,
    1717      920, -1376,   922,  4748,   416, -1376,  1013,  1340,  2858,   720,
    1718     2035,   720,   404,   724, -1376, -1376,   457,   724, -1376, -1376,
    1719    -1376,  2035, -1376,   421, -1376,   724,    27, 10134, -1376,   710,
    1720      963,   728,   969, -1376,   694,    27, -1376, -1376,  9503,    27,
    1721      741, 10317,   976, 11707, -1376, -1376,   984, -1376, -1376, -1376,
    1722      720, -1376, 11663, 11751,   730, -1376,  2858,   294,  9269, -1376,
    1723    -1376,   480,   985,   987,   680,  3105, -1376, -1376,  9062, -1376,
    1724    -1376,  1113,   989,  5470, -1376,  1113,   992, -1376, -1376,  1004,
    1725    -1376,   992,  1005,   575,  5470, -1376,  1008,    11,  1014,  1029,
    1726     1030, -1376,  1031,  1034,  7792, -1376,  5470, -1376,  5273,  5470,
    1727     1027, -1376, -1376,   742, -1376,  5470, -1376, -1376,   750, -1376,
    1728    -1376, -1376, -1376,   648,   648,   477,   477,   598,   598,   598,
    1729      598,   567,   567,   732,   661,   654,   656,   722,  5470,   230,
    1730    10134,  1035,  1041,  1042,  1160, -1376, -1376, -1376, -1376, -1376,
    1731    10134, 10134, -1376, -1376, 10623, -1376,  8167, 10009, -1376, -1376,
    1732    -1376,   683, 10134,   972,  1052,  1054,  1055,  1063,  1072,  1084,
    1733     1085, -1376,  6850, -1376,  2122, -1376, -1376, -1376, -1376, -1376,
    1734    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1735    -1376, -1376, -1376,   816, -1376, -1376, -1376,   810,  2430, -1376,
    1736    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1737     1089,  1091, -1376,   138,  1027,  5055, -1376, -1376, -1376,  8357,
    1738     1092, -1376, -1376, -1376, -1376,  1113,  7531,  1175, -1376, -1376,
    1739    -1376, -1376,  1080, -1376, -1376, -1376,   816, -1376, -1376, -1376,
    1740      816,   571,  1104,   816, -1376, -1376, -1376, -1376, -1376, -1376,
    1741     8042, -1376,    27, -1376,  1006, 10740, -1376,  1890, -1376,   455,
    1742     1113, -1376,  1108,  1106, -1376, -1376,  1111,  1119, -1376,   802,
    1743     1243, -1376,   695, -1376,  3105,   810, -1376,   828, -1376, -1376,
    1744    -1376,   830,  1124,  9062, 10471,  9775,  1127, -1376, -1376,   788,
    1745     1126,  8042,   720,  1126, -1376, -1376,  1126, -1376,  8357, -1376,
    1746    -1376, -1376,  1122,  5470,   908, -1376,  5470, -1376,   908, -1376,
    1747    -1376,  5470, -1376,   474,   724, -1376, -1376, -1376, -1376, -1376,
    1748    -1376, -1376,   730,  9892, -1376, -1376,  8292,  1131, -1376,   504,
    1749      724, -1376,   505,   521,   724, -1376,  2430,  8378, -1376, -1376,
    1750    -1376, 10134, 10134, -1376,  9345,  9345,  1133,  1132,  1144,  1162,
    1751    -1376,   731,    55,  1027, -1376,   908, -1376,  4748, -1376,  5470,
    1752      460, -1376,  7667,  1161,  1164, 11363,  1165,  1170,   749,   900,
    1753     1822,  5470,  1172,    27,  5470,  5470,  1277,  1157,  1159,   176,
    1754      -15,   441,  1167,  1176,  1154, -1376, -1376, -1376,  1184, -1376,
    1755    -1376, -1376, -1376, -1376, -1376, -1376, -1376,  1177, -1376,  1113,
    1756     1196,  5470, 10134, 10134,   138,    56,  1198, -1376, -1376,  1890,
    1757      468,  1914,  5470,  2338,   488, -1376, -1376,  1185,    39,  1185,
    1758    -1376, -1376, -1376,    56,    56,  1113, -1376, -1376, 10399, -1376,
    1759    -1376, -1376, -1376,  1201,  1243, -1376, -1376,  1163, -1376,  1203,
    1760    -1376,   992, -1376, -1376,  2035,  1207, -1376, -1376, -1376,   808,
    1761     1202, -1376,  1213,   922,  5470,  1215,  1122, -1376,  1868, -1376,
    1762    -1376,  1212, -1376,   -13, -1376,  1219,  1212, -1376,  1224, -1376,
    1763    -1376, -1376,   816,  1228,  1233,  7917,  1236,  1239,  1246, -1376,
    1764       56,  1245, -1376, -1376, -1376,   816, -1376, -1376, -1376, -1376,
    1765    -1376, -1376,   816,  5470,  5470,   730,  1247, -1376, -1376, -1376,
    1766    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,  5470,  5470,
    1767     1253,  1254,  1212, -1376, -1376,  1113, -1376, -1376, -1376,  5470,
    1768     5470,  1292,  5470, -1376, -1376,  1242, -1376,  1248,  5470,  1250,
    1769     1252,  5470,  1051,  1257,    13, -1376,    15,  1010, -1376, -1376,
    1770     7531,  1260,    56,   550, -1376, -1376, -1376, -1376, -1376, -1376,
    1771    -1376, 10435,   551, -1376,   820,  1276,  1280,  1281, -1376,  2338,
    1772    -1376,    56, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
    1773    11013, -1376,  9345, -1376,  1285, -1376, -1376, 10471,   552,   557,
    1774    -1376,  1288, -1376,  1291, -1376, -1376,  1299,  1337, -1376, -1376,
    1775     1337,  1337,   908,  1307,  1935,  1975, -1376,  1317, -1376, 10134,
    1776    -1376, -1376, -1376, -1376, -1376,  1321, -1376, 10134, 10134, 10134,
    1777    -1376, -1376,  1322, -1376,  1323,  1326,  1330,   763,  9027,  9148,
    1778    -1376, -1376, -1376, -1376,  1331, -1376,   812,   865,  1333,   877,
    1779     7352, -1376, -1376,   595, -1376, -1376,   899,  1336,  1338,    27,
    1780     1385,   884, -1376, -1376,  5470, -1376,  1339,   421,  5470, -1376,
    1781    -1376, 11363, -1376,  1341,  1343, -1376, -1376,   522,   724, -1376,
    1782    -1376,  1890, -1376, -1376, -1376,  1335, -1376, -1376, -1376, -1376,
    1783    -1376, -1376, 10471, -1376, -1376, -1376,   908, -1376, -1376, -1376,
    1784    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,  1355,
    1785     1357, -1376, -1376, -1376, -1376, -1376, -1376, -1376,  1361, -1376,
    1786     1381, -1376, 11363,   177,  5470, 11363, -1376,  1384,  5470, -1376,
    1787     3411, 10471, -1376,   292,  1399,  1401, -1376, -1376,  1390,  1393,
    1788     1372,   421,   238,   882, -1376, -1376, -1376, -1376, -1376, -1376,
    1789      816, -1376, -1376,  1340,  2035,  1395,  1212,   908,   908,  1402,
    1790     1404,  1406,  1410, -1376, -1376,  9345,  1407, -1376,  1468,  5470,
    1791     1394, -1376, -1376, 11276, -1376,   907, -1376,  1405, 11363,  1408,
    1792     9421, -1376, -1376,  1417, -1376,  1421, -1376,  1437,  1438, -1376,
    1793     1412,  1414,    20,  1418, 10134, 10471, -1376, -1376, -1376,  1424,
    1794     1212,  1212, -1376, -1376, -1376, -1376, -1376, 11363,   179, -1376,
    1795      318, -1376, -1376,  8748, -1376, -1376,  1419,  5470, -1376,  5470,
    1796     8748,    27, 10892,    27, 10892,  1428, -1376,  1442, -1376,  1425,
    1797    -1376,  5470,  1448,   280,  1444, -1376, -1376, -1376,  1446, -1376,
    1798     1454,  1456, -1376,  5470,  5470, -1376, -1376,   968,   151, -1376,
    1799    -1376,  1439, -1376,   968, -1376, -1376,  2100, 10775,   720, -1376,
    1800    -1376,    27, 10892,    27, 10892,    20,  1460,  5470,  1441,    20,
    1801       20,  1465,  1471, -1376, -1376, -1376, -1376, 11276,  1462,   968,
    1802     8830,  5470, 11189,  1469,   968,  1473,  2100,  2682, -1376, -1376,
    1803    -1376,  1477, -1376, -1376, -1376, -1376,  1459,   421,  1480, -1376,
    1804      290, -1376, -1376,  9775, -1376, 11097, -1376, 11276, -1376, -1376,
    1805     1467, 11010, -1376, -1376, 11189,    27,  2682,    27,  1492,  1495,
    1806      421,  1498, -1376,  1476,   421,   915, -1376, 11097, -1376, -1376,
    1807    -1376, 11010, -1376, -1376, -1376,    27,    27, -1376,   378,  5470,
    1808    -1376,   924, -1376, -1376, -1376, -1376, -1376, -1376,   421,   720,
    1809     1500,  1479, -1376, -1376, -1376, -1376,   925, -1376, -1376,  1481,
    1810      720, -1376, -1376
     1660    8270, 10217,   -17, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1661   -1383, -1383, -1383, -1383,   -36, -1383, -1383, -1383, -1383, -1383,
     1662   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1663   -1383, -1383,   140, -1383, -1383, -1383, -1383, -1383,  1657,  1214,
     1664     102,  8520,   132, -1383, -1383,   149, -1383, -1383, -1383,   830,
     1665     187, -1383, -1383, -1383, -1383,  5208, -1383, -1383, -1383,    24,
     1666     243, -1383,  1781, -1383, -1383, -1383, -1383,  1921,   370,    92,
     1667    4591, -1383, -1383,  5208,  2459, -1383, -1383,  2198,   385,  6772,
     1668     412,  1903,  2198,  1932, -1383, -1383, -1383,   140, -1383, -1383,
     1669    2198,  2311, -1383,   275, -1383,   395,   433, -1383, -1383, -1383,
     1670   -1383,   291,   243,   140, -1383,   140, -1383, -1383, -1383, -1383,
     1671   10499,  1781, -1383, -1383,  1781, -1383,   320, -1383, 10571, -1383,
     1672   -1383,  2251, 10618, -1383,  2432,  2432,  2432, -1383, -1383,  1192,
     1673     140, -1383,   345,   378,   418, -1383, -1383, -1383,   429, -1383,
     1674   -1383, -1383, -1383, -1383,   446,   451, -1383,   425,  9857,  2118,
     1675     800,   455,   479,   494,   533,   546,   551, 10690,  7882,   557,
     1676   -1383,  6581, -1383, -1383, -1383, -1383,   559, -1383,    21,  4787,
     1677    4787, -1383,   625,   286, -1383, -1383, -1383, -1383,   641,   314,
     1678     329,   432, -1383, -1383,  1921,  2167,   639,   700, -1383,    73,
     1679   -1383,   140,   140,   243, -1383, -1383,   173, -1383,   140,   140,
     1680   -1383,  2636,   669,   678,  2432, 12189, -1383, -1383, -1383,  5208,
     1681   -1383, -1383,  2198, -1383, -1383, -1383,   243, -1383,  1781,    24,
     1682   -1383,  8941, -1383,  2432,  2432,  2432,   243, -1383,  1657, -1383,
     1683    3514, -1383, -1383,   643,  2432, -1383,  2432, -1383,   980,  2432,
     1684   -1383,  1657,   653,   671, -1383,  8520,   502, -1383, -1383, -1383,
     1685    9579, -1383, -1383,  7092, -1383,   700,    34, 11586, 10618,  2251,
     1686    2636, -1383,   284, -1383, -1383, 10571,  1781,   709, 12151,  1214,
     1687     717, -1383, -1383,   118, -1383,   521, -1383,   741,   777, 11604,
     1688     758, 11586, 11660, -1383,   769, -1383, -1383, -1383, -1383, -1383,
     1689   11678, 11678,  9617,   187, -1383, -1383, -1383, -1383, -1383, -1383,
     1690   -1383, -1383,  1030,  2396,  9857, 11586, -1383,   499,   831,   880,
     1691     441,   888,   765,   754,   789,   827,    -6, -1383, -1383, -1383,
     1692     708, -1383, -1383,   177, -1383, -1383,  2118, -1383, -1383,   383,
     1693     816, -1383,   407,   816, -1383, -1383, 10499, -1383,   140,   819,
     1694     822,  9977, -1383, -1383,  1636,  1050,  9283, 12227,  2198,  2198,
     1695   -1383,  2198,  2432,  2198,  2432, -1383, -1383,   140, -1383, -1383,
     1696   -1383, -1383, -1383, -1383, -1383,  2198,  2432, 10737,  1781, -1383,
     1697   -1383, 10809,  1848, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1698   -1383, -1383,  5755, 11586, -1383, -1383, -1383, -1383, -1383, -1383,
     1699   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,  1042,   833,
     1700     836,   848,  1053,   851,   853,   862,  2167, -1383, -1383,   140,
     1701     824,   866,    24,   865, -1383, -1383,   875, -1383, -1383, -1383,
     1702    9579, -1383, -1383, -1383, -1383, -1383,  2636, -1383,  9857,  9857,
     1703   -1383,  2432,  2251, 12265,  9407, -1383, -1383, -1383, -1383,  9579,
     1704      34, -1383, -1383,  2198,   243, -1383, -1383,  9579, -1383,  4504,
     1705   -1383, -1383,  2432,  2432,   149,  9857, -1383,   887, -1383,  2432,
     1706   -1383, -1383, -1383, -1383,  6965, -1383,   352, 11872, -1383,   243,
     1707     894, -1383,  2251, 11963, 12189, 11734, -1383, -1383, -1383, -1383,
     1708    1085,  2636, -1383,  9407,   700,  8395, -1383, -1383, -1383, -1383,
     1709     870,   397,   879,  1214,   897,   907,   911, 12151,   999, 10571,
     1710   -1383, 12151, -1383, -1383, -1383, -1383,   409, -1383,   923,   908,
     1711   -1383,  9617, -1383, 10856, -1383, -1383,  9617, -1383,  9737,  9617,
     1712   -1383, -1383,   187, -1383,   582,   934,   936, -1383,  7626, -1383,
     1713     901, -1383, -1383, 11586, -1383,   946, 11586, -1383, -1383, -1383,
     1714   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, 11586,
     1715   -1383, -1383, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586,
     1716   11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586,
     1717    6765,   708,  1098, -1383, -1383,   140,   140, -1383, -1383,  9857,
     1718   -1383, -1383,   875, -1383, -1383,   875, 11752, -1383, -1383,  1214,
     1719   10809,  7626,   942, -1383, 10928, -1383,  2432,  2432,  2432, -1383,
     1720   -1383,   559, -1383,   953,   746,   958, 11586,  1942,   292,   879,
     1721   -1383,   140,   140,   879,   325, -1383,   140,   140,   875,   879,
     1722   -1383,   140,   140, -1383,   816, -1383, 10975, -1383,  1781, 12057,
     1723    2432,  2432, -1383,  1282,   434,   463, 10975, -1383, 11094, -1383,
     1724     879, -1383, 10737, -1383,   108,  9065,  9065,  1781,  5316,   928,
     1725   -1383,   763,   947,   961, -1383,   959,  4787,   228, -1383,  1067,
     1726    1781,  9065,   502,  2251,   502,   344,   816, -1383, -1383,   388,
     1727     816, -1383, -1383, -1383,  2251, -1383,   425, -1383,   816,   243,
     1728    6965, -1383,   583,   985,   607,   987, -1383,   819,   243, -1383,
     1729   -1383,  9579,   243,   657, 10333,   986, 12057, -1383, -1383,  1004,
     1730   -1383, -1383, -1383,   502, -1383, 12010, 12104,   822, -1383,  9065,
     1731     652,  9283, -1383, -1383,   559,  1006,  1014,   870,  2503, -1383,
     1732   -1383, 12151, -1383, -1383,  1214,  1043, 11586, -1383,  1214,  1044,
     1733   -1383, -1383,  1056, -1383,  1044,  1059,   521, 11586, -1383,  1061,
     1734     187,  1069,  1065,  1079, -1383,  1081,  1087,  7626, -1383, 11586,
     1735   -1383,  5482, 11586,  1083, -1383, -1383,   676, -1383, 11586, -1383,
     1736   -1383,   877, -1383, -1383, -1383, -1383,   499,   499,   831,   831,
     1737     880,   880,   880,   880,   441,   441,   888,   765,   754,   789,
     1738     827, 11586,   165,  6965,  1094,  1095,  1101,  1098, -1383, -1383,
     1739   -1383, -1383, -1383,  6965,  6965, -1383, -1383, 10737, -1383,  8010,
     1740   10097, -1383, -1383, -1383,   746,  6965,  1092,  1102,  1104,  1113,
     1741    1114,  1120,  1121,  1128, -1383,  3273, -1383,  1942, -1383, -1383,
     1742   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1743   -1383, -1383, -1383, -1383, -1383, -1383,   875, -1383, -1383, -1383,
     1744     879,  2432, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1745   -1383, -1383, -1383,  1130,  1131, -1383,    24,  1083,  5316, -1383,
     1746   -1383, -1383,  5755,  1051, -1383, -1383, -1383, -1383,  1214,  7359,
     1747    1182, -1383, -1383, -1383, -1383,  1115, -1383, -1383, -1383,   875,
     1748   -1383, -1383, -1383,   875,   700,  1134,   875, -1383, -1383, -1383,
     1749   -1383, -1383, -1383,  7882, -1383,   243, -1383,  1139, 10856, -1383,
     1750    1890, -1383,   518,  1214, -1383,  1145,  1140, -1383, -1383,  1147,
     1751    1148, -1383,  1001,  2290, -1383,   487, -1383,  2503,   879, -1383,
     1752     907, -1383, -1383, -1383,   897,  1153, 12151, 10571,  9857,  1157,
     1753   -1383, -1383,   690,  1143,  7882,   502,  1143, -1383, -1383,  1143,
     1754   -1383,  5755, -1383, -1383, -1383,  1152, 11586,  1231, -1383, 11586,
     1755   -1383,  1231, -1383, -1383, 11586, -1383,   472,   816, -1383, -1383,
     1756   -1383, -1383, -1383, -1383, -1383,   822,  9977, -1383, -1383,  8138,
     1757    1161, -1383,   528,   816, -1383,   536,   537,   816, -1383,  2432,
     1758    3627, -1383, -1383, -1383,  6965,  6965, -1383,  9407,  9407,  1162,
     1759    1158,  1164,  1167, -1383,   610,   248,  1083, -1383,  1231, -1383,
     1760    4787, -1383, 11586,   542, -1383,  7498,  1160,  1169, 11530,  1172,
     1761    1174,   664,   707,   613, 11586,  1180,   243, 11586, 11586,  1295,
     1762    1170,  1173,   149,   220,   846,  1177,  1188,  1184, -1383, -1383,
     1763   -1383,  1194, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1764    1189, -1383,  1214,  1208, 11586,  6965,  6965,    24,   140,  1215,
     1765   -1383, -1383,  1890,   548,  1720, 11586,  2073,   574, -1383, -1383,
     1766    1205,    56,  1205, -1383, -1383, -1383,   140,   140,  1214, -1383,
     1767   -1383, 10380, -1383, -1383, -1383, -1383,  1233,  2290, -1383, -1383,
     1768    1216, -1383,  1245, -1383,  1044, -1383, -1383,  2251,  1246, -1383,
     1769   -1383, -1383,   718,  1248, -1383,  1254,   959, 11586,  1258,  1152,
     1770   -1383,   727, -1383, -1383,  1264, -1383,    31, -1383,  1270,  1264,
     1771   -1383,  1274, -1383, -1383, -1383,   875,  1275,  1276,  7754,  1277,
     1772    1279,  1284, -1383,   140,  1287, -1383, -1383, -1383,   875, -1383,
     1773   -1383, -1383, -1383, -1383, -1383,   875, 11586, 11586,   822,  1286,
     1774   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1775   -1383, 11586, 11586,  1289,  1290,  1264, -1383, -1383,  1214, -1383,
     1776   -1383, -1383, 11586, 11586,  1346, 11586, -1383, -1383,  1271, -1383,
     1777    1273, 11586,  1291,  1292, 11586,  1159,  1297,    57, -1383,    19,
     1778    1981, -1383, -1383,  7359,  1299,   140,   584, -1383, -1383, -1383,
     1779   -1383, -1383, -1383, -1383, 10452,   611, -1383,   912,  1306,  1317,
     1780    1324, -1383,  2073, -1383,   140, -1383, -1383, -1383, -1383, -1383,
     1781   -1383, -1383, -1383, 11173, -1383,  9407, -1383,  1325, -1383, -1383,
     1782   10571,   619,   656, -1383,  1321, -1383,  1323, -1383, -1383,  1330,
     1783    1326, -1383, -1383,  1326,  1326,  1231,  1331,  1329,  1704, -1383,
     1784    1333, -1383,  6965, -1383, -1383, -1383, -1383, -1383,  1335, -1383,
     1785    6965,  6965,  6965, -1383, -1383,  1337, -1383,  1339,  1342,  1343,
     1786     728,  9112,  9236, -1383, -1383, -1383, -1383,  1353, -1383,   733,
     1787     738,  1332,   752,  7184, -1383, -1383,   666, -1383, -1383,   755,
     1788    1358,  1359,   243,  1412,  1008, -1383, -1383, 11586, -1383,  1368,
     1789     425, 11586, -1383, -1383, 11530, -1383,  1370,  1372, -1383, -1383,
     1790     570,   816, -1383, -1383,  1890, -1383, -1383, -1383,  1364, -1383,
     1791   -1383, -1383, -1383, -1383, -1383, 10571, -1383, -1383, -1383,  1231,
     1792   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
     1793   -1383, -1383,  1371,  1376, -1383, -1383, -1383, -1383, -1383, -1383,
     1794   -1383,  1379, -1383,  1378, -1383, 11530,   233, 11586, 11530, -1383,
     1795    1383, 11586, -1383,  8817, 10571, -1383,   457,  1401,  1403, -1383,
     1796   -1383,  1386,  1393,  1373,   425,    88,   945, -1383, -1383, -1383,
     1797   -1383, -1383, -1383,   875, -1383, -1383,  1781,  2251,  1391,  1264,
     1798    1231,  1231,  1397,  1405,  1406,  1421, -1383, -1383,  9407,  1410,
     1799   -1383,  1466, 11586,  1408, -1383, -1383, 11443, -1383,   756, -1383,
     1800    1417, 11530,  1420,  9454, -1383, -1383,  1423, -1383,  1425, -1383,
     1801    1446,  1452, -1383,  1426,  1427,    66,  1428,  6965, 10571, -1383,
     1802   -1383, -1383,  1443,  1264,  1264, -1383, -1383, -1383, -1383, -1383,
     1803   11530,   293, -1383,   290, -1383, -1383,  8645, -1383, -1383,  1434,
     1804   11586, -1383, 11586,  8645,   243, 11047,   243, 11047,  1457, -1383,
     1805    1459, -1383,  1445, -1383, 11586,  1464,   182,  1461, -1383, -1383,
     1806   -1383,  1465, -1383,  1467,  1470, -1383, 11586, 11586, -1383, -1383,
     1807    1034,   112, -1383, -1383,  1451, -1383,  1034, -1383, -1383,  1775,
     1808   10928,   502, -1383, -1383,   243, 11047,   243, 11047,    66,  1473,
     1809   11586,  1454,    66,    66,  1478,  1482, -1383, -1383, -1383, -1383,
     1810   11443,  1477,  1034,  8770, 11586, 11356,  1479,  1034,  1483,  1775,
     1811    2146, -1383, -1383, -1383,  1485, -1383, -1383, -1383, -1383,  1469,
     1812     425,  1486, -1383,   245, -1383, -1383,  9857, -1383, 11264, -1383,
     1813   11443, -1383, -1383,  1471, 11177, -1383, -1383, 11356,   243,  2146,
     1814     243,  1487,  1492,   425,  1498, -1383,  1476,   425,   776, -1383,
     1815   11264, -1383, -1383, -1383, 11177, -1383, -1383, -1383,   243,   243,
     1816   -1383,   311, 11586, -1383,   786, -1383, -1383, -1383, -1383, -1383,
     1817   -1383,   425,   502,  1503,  1488, -1383, -1383, -1383, -1383,   809,
     1818   -1383, -1383,  1494,   502, -1383, -1383
    18111819};
    18121820
     
    18141822static const yytype_int16 yypgoto[] =
    18151823{
    1816    -1376,  4863,  1583, -1376,   725, -1376,     7,     0,   -57, -1376,
    1817    -1376,   597,  -512,  -465,  -798,  -919, -1376,   -36,  3888,  1181,
    1818    -1376,   132,   515,   586,  -238,   582,  1058,  1059,  1062,  1064,
    1819     1066, -1376,   939,  -595,  5485,  -840, -1376, -1376,   687,  -126,
    1820     -935,   622, -1376,   519, -1376,   454, -1338, -1376, -1376,   172,
    1821    -1376, -1119,  -858,   288, -1376, -1376, -1376, -1376,    95, -1375,
    1822    -1376, -1376, -1376, -1376, -1376, -1376,   368, -1329, -1376, -1376,
    1823    -1087, -1376,   161,   109, -1376,   215, -1376,  -362, -1376, -1376,
    1824    -1376,   618,  -833, -1376, -1376,    19, -1199,   459,   209, -1376,
    1825    -1376, -1376,  -213, -1376,     4,  -466,    47,   141,  -194,  2584,
    1826     4298, -1376, -1376,    41,   265,   712,  1506,   152,  2823, -1376,
    1827    -1376, -1376,   214, -1376,  -219,   188,  3114,   425,  -333, -1376,
    1828    -1376,  5335,  5712,  -824, -1376,   771,   609,   366,   610,  -517,
    1829    -1376, -1376,  6089,   945,   761,  -534, -1376,   -30,    44,  1078,
    1830    -1376, -1376,  -953,  -932,   822,   946, -1376,    83, -1376,  1436,
    1831     -179,  -226,  -197,  -137,   737,   821, -1376,  1038,   510,  3608,
    1832     1612,  -447,   975, -1376, -1376,   784, -1376,  -437, -1376,    57,
    1833    -1376, -1376, -1376, -1254,   482, -1376, -1376, -1376,  1221, -1376,
    1834       18, -1376, -1376,  -809,  -101, -1324,  -140,  6095, -1376,  6226,
    1835    -1376,   977, -1376,   -92,   355,  -176,  -168,  -165,     2,   -43,
    1836      -40,   -37,  1068,    14,    40,    49,   -86,  -163,  -158,  -155,
    1837     -153,  -320,  -507,  -497,  -487,  -543,  -318,  -509, -1376, -1376,
    1838     -544,  1140,  1143,  1145,  1378,  4858,  -559,  -564,  -539,  -533,
    1839     -530, -1376, -1014, -1040, -1039, -1008,  -574,  -195,  -248, -1376,
    1840    -1376,    71,   135,   -23, -1376,  4054,   393,  -625,  -253
     1824   -1383,  4593,  1583, -1383,  1593, -1383,     7,     0,    78, -1383,
     1825   -1383,   602,  -522,  -505,  -863, -1004, -1383,    38,  6002,  1181,
     1826   -1383,  1422,   541,   588,   595,   601,  1062,  1073,  1066,  1060,
     1827    1071, -1383,   277,  -546,  4562,  -898, -1383, -1383,   704,  -156,
     1828    -911,   350, -1383,   867, -1383,   468, -1382, -1383, -1383,   189,
     1829   -1383,  -814,  -749,   303, -1383, -1383, -1383, -1383,   106, -1288,
     1830   -1383, -1383, -1383, -1383, -1383, -1383,   382, -1255, -1383, -1383,
     1831    -582, -1383,   168,   127, -1383,   235, -1383,  -305, -1383, -1383,
     1832   -1383,   637,  -822, -1383, -1383,     6, -1179,   609,   270, -1383,
     1833   -1383, -1383,   -90, -1383,     9,  -473,    47,  -313,  -199,  2590,
     1834    3849, -1383, -1383,   131,   265,  1119,   550,    60,  2977, -1383,
     1835   -1383, -1383,   202, -1383,   185,   346,  3452,   -48,  -331, -1383,
     1836   -1383,  5280,  5430,  -843, -1383,   783,   630,   379,   622,  -420,
     1837   -1383, -1383,  5841,   962,   766,  -534, -1383,    52,  -204,  -615,
     1838   -1383, -1383,  -942,  -935,    39,  -222, -1383,    33, -1383,  1416,
     1839    -216,    20,  -188,  -133,   748,   829, -1383,  1036,   394,  3580,
     1840    1399,  -457,   975, -1383, -1383,   791, -1383,  -436, -1383,   -83,
     1841   -1383, -1383, -1383, -1259,   482, -1383, -1383, -1383,  1227, -1383,
     1842      23, -1383, -1383,  -849,   -95, -1324,  -170,  5964, -1383,  2284,
     1843   -1383,   978, -1383,  -167,   133,  -172,  -168,  -163,     2,   -46,
     1844     -45,   -43,  1526,    10,    35,    51,   -16,  -155,  -152,  -150,
     1845    -142,  -320,  -488,  -433,  -408,  -556,  -322,  -512, -1383, -1383,
     1846    -462,  1149,  1150,  1154,  1151,  5148,  -577,  -523,  -521,  -515,
     1847    -256, -1383,  -990, -1043, -1030, -1021,  -591,   141,  -243, -1383,
     1848   -1383,   -28,    77,   -58, -1383,  4060,   469,  -592,  -206
    18411849};
    18421850
     
    18441852   positive, shift that token.  If negative, reduce the rule which
    18451853   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1846 #define YYTABLE_NINF -548
     1854#define YYTABLE_NINF -551
    18471855static const yytype_int16 yytable[] =
    18481856{
    1849       51,   114,    99,   148,    64,   396,   149,   427,   113,   150,
    1850      624,  1195,  1196,   397,   707,   690,   398,   258,   399,   438,
    1851      116,   758,   606,   400,   611,   785,   401,   860,   402,   382,
    1852      383,  1141,  1142,  1036,   468,   114,   114,   808,    51,  1200,
    1853       99,    70,    64,  1197,   409,   817,    51,   726,   118,   835,
    1854      740,   731,    51,  1143,   159,   676,   143,  1038,  1375,    51,
    1855      151,   816,   809,    37,    51,  1431,   190,    51,   810,   213,
    1856       51,  1349,   223,  1286,   685,   820,  1170,  1068,  1234,    70,
    1857      396,   827,   689,  1284,   251,    37,   152,   274,   397,   216,
    1858      404,   398,   807,   399,   804,   153,   405,   424,   400,   157,
    1859      515,   401,    37,   402,   805,   273,  1235,    37,    51,   852,
    1860      523,    51,   473,   475,   806,  1480,   636,   124,    51,   593,
    1861      640,   -10,   199,   161,   869,   627,   114,  1532,   920,   154,
    1862     1287,   334,   243,   408,   410,   108,   108,  1451,   148,   125,
    1863     1431,   149,   175,   597,   150,   593,    51,   169,   159,   593,
    1864     1106,  1285,    74,  1513,   249,  1515,   410,  1148,    51,  1552,
    1865      372,  1458,   157,   521,  1531,   404,   577,   716,   410,  1157,
    1866      200,   405,   908,   108,  1173,  1174,   418,   474,   410,  1229,
    1867      142,    51,    51,  1149,   159,  1300,   161,   144,    79,  1547,
    1868       74,   252,   317,  1158,   253,   151,  1551,  1152,    51,   680,
    1869      682,   332,  -240,  -240,   468,   108,    51,   804,   159,    59,
    1870       59,   566,   674,   148,    78,    51,   149,   805,    51,   150,
    1871      441,   152,   929,   468,  1191,   114,    79,   806,  1389,  1390,
    1872      153,   468,   243,   324,  1349,   114,   719,   808,   114,   474,
    1873      956,  1349,    51,   114,    99,   567,    64,    59,   376,   429,
    1874      462,   166,    78,   432,  1224,   980,    51,    51,   624,   159,
    1875      460,   603,   809,    51,   377,    71,   114,   198,   810,    37,
    1876      730,   979,  -240,   820,  1435,   167,    59,   433,   707,    59,
    1877     1143,  1463,   445,    70,   220,   710,   611,    37,   471,   742,
    1878       37,   145,   967,   624,   804,   457,  1079,  1391,   437,   679,
    1879      681,  1349,   624,    71,   805,  1141,  1142,  1149,   386,   432,
    1880      585,   669,   487,  1317,   806,  1320,  1322,   670,   767,   768,
    1881      769,   770,   678,    51,   387,   372,   892,  1143,   683,   736,
    1882     -299,   738,   209,   433,   739,  1346,   317,   743,   479,   795,
    1883      410,    51,    51,  1389,  1390,   808,   481,  1036,   157,   238,
    1884      789,   817,   746,   821,  1411,    98,   818,   824,   602,   825,
    1885      624,   602,   241,   830,   341,    51,   951,   575,   593,    51,
    1886      809,  1038,   161,   576,  1412,   624,   810,   108,  1435,   649,
    1887      584,   389,   521,  1435,   844,  -543,   669,   521,   847,   835,
    1888      521,   846,   670,    98,    74,   254,  1488,   390,  1516,    74,
    1889      243,   147,  1520,    51,   593,   372,  1543,    98,  1435,   909,
    1890      512,   602,  1401,  1399,   593,  1435,  1489,    48,    49,   186,
    1891      593,   -12,    98,    51,   175,    98,  1544,    59,   597,    51,
    1892       79,   603,  1426,   547,   548,    79,  -468,  1348,   597,   391,
    1893     1464,   779,  1128,  1131,   495,   164,  -469,   496,   637,   269,
    1894       37,    59,   641,  1143,  1465,   392,    78,  1198,   471,    58,
    1895      117,    78,  1509,   624,   114,   707,  1195,  1196,  1223,    51,
    1896      547,   113,   317,   317,   271,   468,  1081,   471,    51,   590,
    1897      372,  1104,    51,   440,    99,   471,    64,    51,  1089,   905,
    1898      114,   272,   211,  1200,   978,   114,   611,    58,  1197,   317,
    1899     1568,    98,  1471,    37,  1472,   634,   273,    71,   164,   638,
    1900       87,   118,   547,    98,  1569,   980,   861,   280,  1376,   873,
    1901       37,   410,  1300,    70,   709,   325,   207,   114,   326,   217,
    1902       44,    45,   114,   862,   752,   648,   395,   186,   322,   757,
    1903     1204,   487,  1204,   317,   211,   487,   960,   327,    87,   710,
    1904       37,    37,   863,  1260,  1261,   317,   516,   317,   378,   871,
    1905      317,    98,   317,   317,   328,   393,  1529,    37,    37,    74,
    1906      881,   371,   877,    98,   410,   593,   171,  1065,   627,  1420,
    1907     1421,   394,  1155,   211,   983,   329,   114,   499,    74,  1109,
    1908     1065,   410,   330,  1066,   978,   375,    74,    98,  1156,   434,
    1909     1469,    51,   552,   553,    51,    79,  1193,  1469,   209,  1497,
    1910     1201,   477,   850,   850,   384,  1502,   882,   108,   244,  1122,
    1911     1126,   410,   602,   317,    79,    51,  1202,   388,   850,   797,
    1912      114,    78,    79,   624,    74,   406,  1129,  1367,   602,   410,
    1913      341,  1527,   408,   211,    51,   580,  1534,   410,   114,   707,
    1914       78,   500,   425,   501,   502,   434,   990,    51,    78,   114,
    1915       51,   114,  1076,   556,   557,   840,   870,  1528,   872,   841,
    1916       79,    51,  1155,  1201,  1307,   211,   850,   439,    98,  1309,
    1917      211,   760,   761,   762,   426,   220,   851,   851,  1292,  1296,
    1918     1308,    59,   554,   555,   164,  1310,    78,   605,   558,   559,
    1919      114,    58,   851,   568,   448,   410,    40,   904,   837,   416,
    1920       43,    48,    49,   482,    51,    51,   458,   746,   699,    44,
    1921       45,   114,   996,   459,   700,   114,   842,   853,   793,   471,
    1922      843,   599,   435,  1352,   341,   209,   710,  -419,   897,   506,
    1923      868,  1044,   443,   471,   593,    46,   707,    71,   507,   717,
    1924      851,   510,    87,    48,    49,   718,    40,    87,   186,    40,
    1925       43,   732,   900,    43,   834,   487,   515,   733,   597,    44,
    1926       45,   549,    44,    45,   590,   745,  1363,   550,   551,   112,
    1927      845,   746,  1133,   226,   174,   562,   227,   563,   709,   231,
    1928      564,   233,    44,    45,  1428,   714,   112,   341,   801,   236,
    1929      602,    51,   112,    48,    49,  1057,    48,    49,   522,    44,
    1930       45,  1059,   587,   842,    51,    44,    45,  1075,   322,   322,
    1931      751,   112,   565,   139,   140,    40,   886,   172,   173,    43,
    1932      560,   561,   746,   174,    44,    45,   174,    98,    44,    45,
    1933       74,   331,   605,   756,   888,   322,   672,  1188,    -3,  -112,
    1934      746,   341,   341,  -112,    74,   211,  1486,   894,   945,   649,
    1935     1153,   673,   856,   576,   946,   114,  1022,   341,  1495,  1428,
    1936       64,   949,   946,   526,   662,   396,    79,   527,   528,   529,
    1937      939,  1335,   663,   397,   664,  1336,   398,  1164,   399,   322,
    1938       79,   440,  1518,   400,   666,   211,   401,    51,   402,   667,
    1939      114,   530,    78,   531,  1091,   532,   533,    70,   322,   112,
    1940      946,   139,   140,   668,    51,   341,    78,   909,   675,   602,
    1941      710,   226,    44,    45,  1220,    48,    49,    87,  1342,  -390,
    1942      576,   797,   114,   248,   746,   959,   324,   410,   649,  1092,
    1943      174,    58,  1049,  1082,   114,  -244,    87,   603,   114,  1358,
    1944     1359,  1100,   721,   266,    87,  1100,   803,  1057,   209,   605,
    1945      687,   404,   725,  1059,  1570,   723,   900,   405,   440,   322,
    1946      487,  1084,   317,   209,   734,   709,    40,   360,   172,   173,
    1947       43,  1343,   735,  1215,   112,   701,   747,   746,   174,    44,
    1948       45,  1097,    87,  1345,  1098,   114,  1099,    44,    45,   746,
    1949      -14,   108,  1100,  1413,   946,  1022,    64,   748,    51,    51,
    1950       51,   112,   798,   139,   451,  1353,   836,   710,    74,  1389,
    1951     1390,   746,   800,  1436,    44,    45,   599,   522,  1140,   746,
    1952      811,  1562,   522,  1266,  1267,   522,  1269,   576,  1166,   114,
    1953     1571,  1579,  1273,    70,   859,  1276,  1568,  1580,   865,    51,
    1954      452,    51,   -15,    51,    79,   453,   858,   226,   227,   108,
    1955      628,   209,   233,  1230,  1231,   114,   174,   763,   764,   803,
    1956      605,   243,   324,   410,   236,    59,   418,   665,   410,   887,
    1957       78,   479,   324,   410,    51,   889,  1545,   818,   324,   602,
    1958      174,  1165,  1167,  1169,   174,   547,   901,   526,   114,   341,
    1959     -442,   527,   528,   529,   834,  1100,  -547,   669,   913,   112,
    1960      918,   139,   140,   670,   718,   897,  1277,  1278,  1279,   925,
    1961      160,   927,    44,    45,   930,   530,  1048,   531,   211,   532,
    1962     1288,    71,   191,    59,   512,   214,   932,   108,   224,   900,
    1963      765,   766,   771,   772,   624,   933,   934,   935,   727,   943,
    1964      936,   953,   226,   728,    74,   114,   803,   954,   955,   709,
    1965      203,     3,     4,     5,     6,     7,     8,     9,   969,   605,
    1966      970,   971,    10,    11,    12,    13,    14,    15,    16,   972,
    1967     1022,    52,   115,    40,    64,   172,   173,    43,   973,   112,
    1968       79,   139,   140,   341,   341,   884,    44,    45,    87,    51,
    1969      974,   975,    44,    45,   891,  -430,    37,  -429,   893,  1057,
    1970     1039,    59,    87,   998,   160,  1059,    78,  1041,  1395,    52,
    1971     1045,    70,   371,   593,  1069,   593,   373,   146,  1070,  1071,
    1972     1362,   440,   114,    52,   114,   114,  1082,  1072,   897,  1100,
    1973     1080,  1100,  1100,  1090,  1094,   182,   938,  1120,   206,  1144,
    1974      160,    52,  1058,   360,  1145,    10,    11,    12,    13,    14,
    1975       15,    16,   900,   593,  1084,   593,  1146,    71,    40,   605,
    1976      172,   173,    43,  1417,   160,   568,  1159,   410,  1147,  1160,
    1977     1162,    44,    45,    48,    49,  1163,   442,  1171,   115,    37,
    1978     1175,  1022,  1178,    -9,    -3,  -465,   115,   495,   746,   257,
    1979      262,    51,  1338,   -11,  1410,    -3,   129,   375,   130,   131,
    1980      132,  1351,  1184,  1182,  1190,   108,   114,  1211,   322,    44,
    1981       45,  1052,  1221,  1100,  1213,    58,   301,   146,  1216,  1222,
    1982      396,  1082,    74,  1225,  1232,   115,   338,  1236,   397,   206,
    1983     1238,   398,  1022,   399,  1240,  1022,  1268,   360,   400,  1241,
    1984      174,   401,   108,   402,  1242,  1452,   836,  1243,   909,  1084,
    1985      602,  1246,   182,   182,  1244,  1253,    48,    49,    79,   174,
    1986      216,  1262,  1263,    51,    51,  1508,    87,   114,   114,   257,
    1987     1271,  1290,   174,  1083,  1100,  1100,  1272,    52,  1274,    59,
    1988     1275,   373,  1297,  1022,    78,  1283,  1298,  1299,  1022,   206,
    1989      112,  1305,   139,   451,  1058,   108,  1194,   698,  1058,  1311,
    1990      360,  1047,  1313,    44,    45,   404,    40,  1314,   172,   173,
    1991       43,   405,    74,    52,  1315,  1318,    59,  1022,  1452,    44,
    1992       45,   262,  1452,  1452,  1082,  1323,   262,   257,   257,  1325,
    1993     1331,  1332,  1333,   115,   669,    71,  1334,   108,  1344,  1341,
    1994      670,  1354,  1279,  1355,  1361,  1372,  1416,  1365,    79,  1366,
    1995     1541,    58,  1084,   148,   360,   360,   149,   341,   341,   150,
    1996      301,   373,   141,  1383,  1351,  1384,    51,  -431,   114,    59,
    1997      360,  1351,   301,  1557,    78,  1510,   108,  1557,  1025,   203,
    1998        3,     4,     5,     6,     7,     8,     9,  1022,   569,  1387,
    1999     1398,  1403,  1022,  1405,   146,  1407,    51,    51,  1408,   159,
    2000     1409,  1574,    87,  1478,   115,  1478,  1418,  1427,  1422,   338,
    2001     1423,    59,  1424,   604,   623,  1022,  1425,  1022,   360,  1336,
    2002     1432,  1022,  1172,  1441,  1022,    71,    51,  1443,   372,  1445,
    2003     1447,  1351,  1459,  1437,  1481,   633,  1439,  1022,  1449,   633,
    2004      108,  1022,  1450,  1478,  1058,  1478,  1456,  1470,  1483,    59,
    2005       59,  1485,   267,  1487,   412,   220,  1490,  1492,   108,   114,
    2006      317,   420,  1493,   210,  1494,   108,  1575,  1501,  1517,  1519,
    2007      114,  1522,   229,  1526,   182,    74,  1523,  1582,  -300,  1535,
    2008     1533,   174,    74,  1537,   341,  1540,  1542,    10,    11,    12,
    2009       13,    14,    15,    16,   257,  1548,   301,   301,  1555,    59,
    2010      257,  1556,   633,  1559,  1560,   209,  1577,  1578,  1177,  1581,
    2011      773,    79,   774,   698,    59,   210,   775,  1161,    79,   776,
    2012     1096,    37,   777,   301,  1289,   108,  1496,   412,   165,    58,
    2013      170,  1402,    59,   176,   177,   178,  1563,    78,  1357,    59,
    2014      257,  1521,    74,  1561,    78,  1473,  1058,  1183,  1192,   257,
    2015      230,   633,   919,    52,   210,   440,  1050,  1371,   715,  1205,
    2016      921,   454,  -301,   239,   240,  1093,  1083,   115,  1078,   212,
    2017      997,    10,    11,    12,    13,    14,    15,    16,    79,   301,
    2018       87,   115,   864,   915,   301,   574,   301,   301,    71,  1306,
    2019     1077,     0,   492,   712,   578,    71,   338,   581,   781,    59,
    2020      928,   782,   360,   783,    78,    37,     0,   950,     0,     0,
    2021        0,     0,     0,     0,   210,     0,   698,     0,     0,    58,
    2022      174,   212,     0,   174,   174,   174,   698,   698,     0,     0,
    2023       40,     0,   179,   180,    43,     0,     0,     0,   698,   569,
    2024      569,     0,     0,    44,    45,   885,   210,   301,     0,     0,
    2025        0,   210,     0,     0,     0,    71,   407,     0,   633,   338,
    2026      212,  1083,   623,   412,     0,   211,     0,   420,     0,   601,
    2027       87,   602,   604,     0,     0,   604,     0,    48,    49,     0,
    2028        0,     0,     0,     0,   991,     0,     0,     0,  1356,     0,
    2029        0,   603,  1025,     0,   633,     0,   360,   360,     0,   207,
    2030      217,     0,     0,     0,   633,   650,   623,     0,     0,     0,
    2031      633,     0,     0,   633,   633,   211,     0,     0,     0,     0,
    2032      212,    40,     0,   179,   180,    43,     0,     0,     0,   633,
    2033        0,   257,     0,     0,    44,    45,     0,   455,     0,   210,
    2034        0,     0,   257,     0,     0,   412,     0,     0,   952,   439,
    2035        0,   477,   212,     0,     0,     0,     0,   212,   957,   958,
    2036      181,     0,   115,     0,  1083,     0,     0,     0,    48,    49,
    2037      968,     0,     0,     0,     0,     0,     0,   633,   910,   623,
    2038     1107,     0,    58,     0,     0,   715,   715,     0,    40,    58,
    2039      172,   173,    43,     0,     0,   174,     0,     0,     0,     0,
    2040        0,    44,    45,  1364,     0,     0,   322,     0,     0,     0,
    2041      589,     0,   600,     0,     0,   338,   720,   698,   698,     0,
    2042        0,   729,     0,     0,     0,     0,   210,     0,   991,   631,
    2043      632,     0,     0,    87,   112,  1168,   574,   574,     0,     0,
    2044       87,  1097,   210,     0,  1098,   212,  1099,    44,    45,    58,
    2045     1474,     0,  1479,     0,  1388,   569,    40,  1396,   179,   180,
    2046       43,     0,     0,     0,     0,   633,   210,   963,     0,    44,
    2047       45,     0,   604,     0,     0,  1228,     0,     0,   698,   698,
    2048       40,   919,   179,   180,    43,   604,     0,     0,     0,     0,
    2049     1512,     0,  1514,    44,    45,  1051,     0,   410,     0,     0,
    2050       87,   112,     0,    48,    49,  1434,   174,     0,  1097,     0,
    2051     1438,  1098,   792,  1099,    44,    45,  1052,     0,     0,  1051,
    2052        0,   410,  1303,     0,     0,     0,     0,    48,    49,     0,
    2053      875,     0,   212,     0,   879,     0,     0,   301,     0,  1462,
    2054        0,   112,  1319,     0,  1553,     0,  1554,     0,  1097,  1138,
    2055     1139,  1098,     0,  1099,    44,    45,   839,   174,     0,     0,
    2056      174,   338,     0,     0,  1566,  1567,   115,     0,  1053,     0,
    2057      360,   360,   212,     0,   857,     0,     0,   919,   919,     0,
    2058      910,   910,  1321,     0,     0,   715,     0,   210,   174,     0,
    2059        0,     0,     0,     0,     0,   115,   301,     0,     0,     0,
    2060        0,    40,   338,   179,   180,    43,     0,     0,   174,     0,
    2061     1186,  1187,     0,   174,    44,    45,     0,     0,     0,     0,
    2062        0,     0,   210,     0,    10,    11,    12,    13,    14,    15,
    2063       16,   210,     0,     0,   338,     0,     0,  1546,     0,     0,
    2064      256,     0,   174,  1546,     0,     0,  1304,   917,    48,    49,
    2065        0,   492,   574,     0,     0,   633,   633,     0,    37,  1546,
    2066        0,     0,     0,  1546,     0,     0,    40,     0,   179,   180,
    2067       43,     0,     0,   301,     0,   698,     0,     0,     0,    44,
    2068       45,     0,     0,   698,   698,   698,     0,     0,    40,   210,
    2069      179,   180,    43,   212,     0,     0,     0,   360,     0,   210,
    2070        0,    44,    45,     0,   210,  1506,     0,   410,     0,     0,
    2071        0,     0,   174,    48,    49,     0,     0,   174,     0,     0,
    2072     1053,     0,  1053,     0,  1053,     0,     0,   601,   212,   602,
    2073        0,     0,   455,     0,     0,    48,    49,   212,     0,   115,
    2074      174,     0,   174,     0,     0,   910,   174,     0,     0,   174,
    2075        0,     0,     0,     0,     0,   257,     0,     0,     0,     0,
    2076        0,     0,   174,     0,     0,     0,   174,   902,     0,   903,
    2077        0,     0,     0,     0,     0,     0,     0,   906,   907,     0,
    2078        0,     0,   912,     0,     0,   650,   338,     0,     0,     0,
    2079        0,  1001,   210,     0,     0,   212,     0,     0,     0,   922,
    2080        0,     0,     0,     0,   926,   212,     0,  1324,     0,     0,
    2081      212,     0,     0,     0,     0,  1326,  1327,  1328,   919,     0,
    2082     -302,  1111,     0,   600,     0,     0,  1067,     0,     0,    10,
    2083       11,    12,    13,    14,    15,    16,     0,  1124,     0,     0,
     1857      54,   117,   102,   151,   152,   430,   153,   119,   116,    67,
     1858     710,  1198,   399,   743,   761,   627,   400,   412,   407,   693,
     1859    1041,   401,   214,   614,  1199,   609,   261,   164,   593,   402,
     1860     820,   441,   403,  1200,   404,   838,   385,   386,   117,   117,
     1861     729,    54,   405,   102,   734,  1144,  1145,  1039,   121,    54,
     1862      67,   819,   254,  1146,   637,    54,  1378,   162,   641,   154,
     1863      77,  1071,    54,   863,   146,   888,  1203,    54,  1434,   193,
     1864      54,   127,   216,    54,   214,   226,   526,   111,   111,   219,
     1865    1289,   811,   128,   812,   155,   476,   478,   399,  1109,   813,
     1866     164,   400,   810,   407,  1352,   178,   401,  1232,   569,   337,
     1867     156,    77,   160,  1173,   402,    40,   427,   403,   411,   404,
     1868     788,    54,   855,   214,    54,   679,   807,   405,   111,  1176,
     1869    1177,    54,    40,  1534,   639,  1237,   202,   872,   643,   117,
     1870    1287,    73,   570,   101,   688,  1155,   524,  1290,   151,   152,
     1871     169,   153,   692,  1434,   255,   448,   379,   256,  1550,    54,
     1872     111,   162,   477,  1238,   276,  1554,  1161,   252,   460,  1461,
     1873     471,    54,   380,   375,   170,   160,  -240,  -240,   955,   408,
     1874     719,   808,    73,   214,   101,   911,   413,   203,   960,   961,
     1875     923,   436,   150,  1160,    54,    54,  1454,   162,   101,    40,
     1876     971,   246,  1483,   413,   154,   320,   809,   363,  1288,  1227,
     1877     189,    54,    81,   101,   335,   214,   101,  1414,  1194,    54,
     1878     214,   162,  1303,   151,   152,   932,   153,  1535,    54,   155,
     1879     145,    54,    40,   444,   677,   277,   477,  1415,   117,   807,
     1880    1516,  1320,  1518,  1323,  1325,   156,  -240,   436,   117,   672,
     1881     983,   117,   701,    81,   408,    54,   117,   102,   606,  1555,
     1882     147,   440,   432,   465,    67,   498,   435,  1352,   499,    54,
     1883      54,   982,   162,   627,  1352,    74,    54,   148,   463,   117,
     1884      62,    62,   682,   684,   710,   223,   164,   796,   588,   712,
     1885    1146,   811,   101,   812,   808,   614,   722,  1392,  1393,   813,
     1886     749,   421,   970,   413,   101,   739,   578,   741,   627,   484,
     1887     742,  1491,   579,   746,   954,    77,    74,   627,   157,   809,
     1888      77,    62,   435,   837,   672,   490,   807,   398,   189,  1144,
     1889    1145,  1492,   111,   593,  1352,   959,    54,  1146,   375,   848,
     1890     471,   681,  1082,    40,  1041,   212,   820,   686,   518,   320,
     1891      62,    40,   101,    62,    54,    54,    82,   798,   865,   471,
     1892     651,   160,   823,  1151,   101,   524,  1394,   471,   830,   -10,
     1893     524,  1039,  1349,   524,  1546,   627,   172,   866,    54,  1141,
     1894    1142,   808,    54,   201,    40,   838,    73,   178,   101,  1152,
     1895     627,   474,   652,   587,  1547,   214,   895,    82,  -299,   811,
     1896     673,   812,   480,    40,    90,   244,   809,   813,  1466,   849,
     1897     241,   640,   482,   824,   413,   644,    54,   827,   375,   246,
     1898     821,   389,   605,   833,   782,  1467,   206,     3,     4,     5,
     1899       6,     7,     8,     9,  1152,   214,    54,   390,   344,  1468,
     1900    1189,  1190,    54,  -546,   847,    90,  1571,    40,   850,   392,
     1901    1402,   854,   854,   828,  1107,   605,  1429,    81,   683,   685,
     1902    1572,  1351,    81,  1146,   394,   393,  1379,   854,   701,   101,
     1903     257,   710,   876,   -12,   413,   673,  1198,   117,   627,  1084,
     1904     395,   702,    54,   363,   116,   320,   320,   703,   608,  1199,
     1905      77,    54,   600,   375,   962,    54,   443,   102,  1200,  1512,
     1906      54,    62,  1092,   117,    67,   614,  -471,   981,   117,    77,
     1907     983,   580,   320,   413,  1226,   854,   880,    77,   413,  1201,
     1908      74,  1392,  1393,   276,   121,    62,   720,  1423,  1424,   733,
     1909    1203,    40,   721,   864,   167,   583,   596,   413,   735,  1474,
     1910     117,  1475,   630,   502,   736,   117,  -472,   755,   745,   189,
     1911     559,   560,   760,   712,   490,    77,   320,   272,   490,  1303,
     1912     823,   474,   596,    -3,   963,   843,   596,   396,   320,   844,
     1913     320,   701,   111,   320,   274,   320,   320,   363,   874,   275,
     1914     474,   701,   701,   397,   328,   561,   562,    40,   474,   884,
     1915    1404,   115,  1438,   701,   845,    40,    40,   167,   846,   117,
     1916    1112,    82,   413,  1532,    47,    48,    82,   981,   329,   792,
     1917     503,   471,   504,   505,    54,  1263,  1264,    54,   845,    61,
     1918     120,   212,  1078,   330,  1472,   908,    73,   325,   101,    40,
     1919     213,  1472,    81,   608,   713,   552,   320,  1327,    54,   232,
     1920     363,   553,   554,   117,   986,  1329,  1330,  1331,   627,    90,
     1921    1207,    81,  1207,  1068,    90,   710,  1125,    54,   413,    81,
     1922      61,   117,   331,   837,  1129,  1132,   605,   605,   214,  1069,
     1923      54,   840,   117,    54,   117,   332,   903,  1158,   993,   873,
     1924     333,   875,   213,  1068,    54,   374,   223,   378,   437,   210,
     1925     856,  1531,   220,  1159,   363,   363,  1438,    81,  1370,  1196,
     1926     413,  1438,    43,   871,   175,   176,    46,   853,   853,  1204,
     1927     363,   748,   889,   117,   344,    47,    48,   749,   749,  1158,
     1928     907,   213,  1079,   853,  1047,  1205,  1438,    54,    54,  1131,
     1929    1134,  1500,   800,  1438,   117,  1295,   891,  1505,   117,   999,
     1930     712,  -112,   749,  1060,   437,  -112,  1204,   806,   212,  1171,
     1931     608,   900,   710,    43,  1310,   175,   176,    46,   363,   387,
     1932      74,    77,  1299,  1530,   885,    62,    47,    48,  1537,   391,
     1933    1311,   853,   701,   701,   409,    77,    82,   600,   490,  1366,
     1934     912,   213,   605,   167,   411,   596,   897,   600,    51,    52,
     1935    1136,  1312,   579,  1143,   451,    82,    43,   428,   175,   176,
     1936      46,   749,   606,    82,   461,   948,   429,  1313,   344,    47,
     1937      48,   949,  1460,   213,    54,  1167,   115,  1355,   213,  1094,
     1938     602,   596,   462,  1100,    90,   949,  1101,    54,  1102,    47,
     1939      48,   596,   474,   701,   701,    43,   571,   596,   413,    46,
     1940     442,    82,   485,    90,    51,    52,   474,  1223,    47,    48,
     1941    -422,    90,   115,   579,   142,   143,  1431,  1231,  1169,  1338,
     1942     806,   608,  1345,  1339,    61,    47,    48,  1346,   749,  1191,
     1943     509,   344,   652,   749,   804,   510,   605,  1156,   117,  1025,
     1944     903,  1348,    51,    52,  1356,  1439,   513,   749,    67,    90,
     1945     749,   749,   399,   859,  1062,  1060,   400,   518,   713,   407,
     1946     566,   401,   565,    81,   443,  1565,   213,   325,   325,   402,
     1947      54,   579,   403,   117,   404,  1574,  1519,    81,  1489,    43,
     1948    1523,  1571,   405,    46,   712,   344,   344,    54,   246,   327,
     1949    1498,  1431,    47,    48,   325,   283,   567,   174,  1582,    77,
     1950     568,   344,   363,  1085,  1583,   117,   334,   806,    47,    48,
     1951     590,   652,  1095,    -3,  1521,  1052,   111,   117,    49,    43,
     1952     608,   117,   665,    46,  1103,   666,    51,    52,  1103,   555,
     1953     556,   212,    47,    48,   519,   675,   381,   667,   325,   247,
     1954     669,   443,   670,   490,  1087,   320,   212,   557,   558,   344,
     1955     115,   671,   596,   213,   676,   630,   678,   325,   717,   563,
     1956     564,  1307,  1218,    47,    48,   251,    51,    52,   117,   213,
     1957      73,   952,   949,   922,   111,  1103,  1269,  1270,  1025,  1272,
     1958    -390,    54,    54,    54,    67,  1276,  1573,  -244,  1279,   606,
     1959     701,   754,   724,   213,   800,   115,   363,   363,   701,   701,
     1960     701,   327,   413,  1061,   728,   672,  1062,    82,    47,    48,
     1961     408,   737,   117,   903,  1168,  1170,  1172,   726,   325,   738,
     1962     608,    82,    54,   750,    54,   751,    54,  1341,   953,   115,
     1963     419,   142,   454,   801,   212,    77,   759,   -14,   117,  1416,
     1964     949,    81,    47,    48,   803,   713,  1361,  1362,   115,   814,
     1965     142,   143,   111,   438,   862,    90,   -15,    54,  1392,  1393,
     1966    1548,    47,    48,   446,    61,   839,   766,   767,   455,    90,
     1967     861,   117,   868,   456,   890,   602,   892,   600,  1103,   904,
     1968      10,    11,    12,    13,    14,    15,    16,   730,   900,   912,
     1969     529,   605,   731,  -445,   530,   531,   532,    51,    52,    43,
     1970    -550,   182,   183,    46,    74,   994,    73,  1060,   916,    62,
     1971    1233,  1234,    47,    48,   213,   768,   769,    40,   533,   627,
     1972     534,   596,   535,   536,   770,   771,   772,   773,   117,   525,
     1973     246,   327,   413,   344,   774,   775,   903,   921,   604,   721,
     1974     605,   421,   668,   413,   928,  1001,    51,    52,   930,   213,
     1975     933,    55,   118,  1025,   936,  1061,   673,  1197,   213,  1061,
     1976     606,  1398,    67,   229,   935,   701,   230,    62,   937,   234,
     1977     938,   236,    54,   482,   327,   413,   939,    81,   946,   239,
     1978     821,   327,   605,   956,   957,    82,   571,  1042,   413,  1028,
     1979     958,   972,    55,   973,    51,    52,  1085,  1280,  1281,  1282,
     1980     149,  1110,   974,   975,   443,   117,    55,   117,   117,   976,
     1981     977,   900,  1103,    77,  1103,  1103,   213,   978,   185,  -433,
     1982    -432,   209,  1306,  1048,    55,  1044,   213,   344,   344,   713,
     1983     111,   213,  1051,    90,  1072,  1073,   941,  1087,  1074,  1075,
     1984      74,   115,  1083,   142,   143,    62,  1093,  1097,  1162,   994,
     1985    1123,  1147,  1420,  1148,    47,    48,  1150,  1163,  1062,  1149,
     1986    1165,   118,  1166,   115,  1025,   142,   143,   111,  1174,   118,
     1987     363,   363,   260,   265,    54,   214,    47,    48,  1178,    -9,
     1988     115,   690,  -468,   749,    73,   269,   -11,  1100,    -3,   117,
     1989    1101,  1085,  1102,    47,    48,  1181,  1103,  1187,  1185,   304,
     1990     149,   229,   922,    77,  1193,  1061,   704,   399,   118,   341,
     1991     415,   400,   209,   407,  1055,  1025,   401,   423,  1025,   213,
     1992     111,    82,  1214,   498,   402,   214,   713,   403,  1164,   404,
     1993     219,   115,  1087,   142,   454,   185,   185,   405,  1365,  1216,
     1994    1219,  1224,   672,  1225,    47,    48,    54,    54,   525,  1228,
     1995     117,   117,   260,   525,  1511,    81,   525,  1103,  1103,  1235,
     1996      55,  1239,   111,  1241,  1243,  1244,  1025,   325,  1245,    90,
     1997    1246,  1025,   209,  1271,  1354,  1247,  1249,  1256,   115,  1419,
     1998    1265,  1266,  1274,   415,  1275,  1100,  1318,  1481,  1101,  1481,
     1999    1102,    47,    48,  1293,  1085,  1300,    55,   363,   922,   922,
     2000    1025,   111,  1277,  1278,   265,   839,  1301,  1061,  1286,   265,
     2001     260,   260,  1413,  1302,  1308,  1314,   118,  1316,    74,  1322,
     2002    1347,  1317,  1321,    62,  1326,   144,  1328,  1481,  1334,  1481,
     2003    1335,  1336,  1337,   151,   152,  1087,   153,   229,   230,   215,
     2004     631,   577,   236,   304,  1344,    81,  1357,  1358,    61,    54,
     2005     581,   117,  1282,   584,   239,   304,  1364,  1375,  1513,  1368,
     2006      62,  1369,  1386,  1455,   408,   111,    77,  1387,  -434,  1390,
     2007    1025,   572,  1401,    77,  1410,  1025,  1406,   149,  1408,    54,
     2008      54,  1411,   162,   111,  1412,  1421,  1425,   118,  1430,   213,
     2009     111,   215,   341,   673,  1426,  1427,   607,   626,  1025,    82,
     2010    1025,   344,   344,  1028,  1025,  1339,  1086,  1025,    74,    54,
     2011    1428,   375,  1444,    62,  1446,   270,   887,  1435,   636,   415,
     2012    1025,  1448,   636,   423,  1025,   894,   223,  1450,  1440,   896,
     2013     215,  1442,   229,    77,  1462,  1452,  1455,  1354,  1453,  1459,
     2014    1455,  1455,   117,   320,  1354,  1473,  1484,    90,  1486,  1578,
     2015     111,   163,  1490,   117,  1488,    62,  1493,   185,  1496,  1495,
     2016    1585,  1497,  1504,   194,  1520,  1522,   217,  1525,  1544,   227,
     2017    1526,  1529,  1538,  1536,  1540,  1545,  1558,   260,  1543,   304,
     2018     304,  1559,  1551,   260,    61,   636,  1562,  1563,   212,    82,
     2019     215,  1560,  1580,    62,    62,  1560,  1180,   776,   779,  1581,
     2020     596,   415,   596,   778,  1354,  1584,   304,   458,    81,   777,
     2021     780,   168,   480,   173,  1367,    81,   179,   180,   181,  1577,
     2022    1099,  1292,   215,   260,   457,   177,  1499,   215,   344,  1405,
     2023    1566,  1524,   260,   233,   636,  1360,    55,    90,   443,   922,
     2024     596,   718,   596,    62,  1564,   163,   242,   243,  1476,  1186,
     2025     118,  1053,  1195,  1374,  1208,   495,  1081,   376,    62,  1096,
     2026     924,  1000,   304,   867,   118,  1391,   918,   304,  1399,   304,
     2027     304,    74,  1309,   515,   177,    81,    62,   177,    74,   341,
     2028    1080,   163,   715,    62,   931,    43,     0,   175,   176,    46,
     2029     784,   785,   577,   577,     0,   786,   550,   551,    47,    48,
     2030       0,   922,     0,     0,     0,   163,   132,     0,   133,   134,
     2031     135,     0,     0,   922,   922,   215,  1437,   445,     0,    47,
     2032      48,  1441,   572,   572,   374,     0,     0,     0,     0,     0,
     2033     304,     0,  1050,   550,     0,     0,     0,   922,    74,   410,
     2034       0,   636,   341,    62,     0,   626,     0,     0,     0,     0,
     2035    1465,     0,    82,   115,     0,   607,     0,     0,   607,    82,
     2036    1100,     0,    61,  1101,     0,  1102,    47,    48,   653,    43,
     2037       0,   182,   183,    46,     0,   550,     0,   636,     0,     0,
     2038       0,   177,    47,    48,     0,     0,   878,   636,     0,   626,
     2039     882,     0,     0,   636,  1324,     0,   636,   636,     0,  1086,
     2040      90,     0,   215,     0,     0,     0,     0,    90,  1054,   922,
     2041     413,     0,   636,     0,   260,     0,    51,    52,     0,    82,
     2042       0,     0,   376,     0,    43,   260,   182,   183,    46,   177,
     2043      43,     0,   175,   176,    46,     0,     0,    47,    48,     0,
     2044       0,     0,   215,    47,    48,   118,     0,     0,  1549,     0,
     2045       0,     0,    61,  1175,  1549,     0,     0,     0,     0,     0,
     2046     636,   913,   626,  1509,     0,   413,     0,    90,   718,   718,
     2047    1549,    51,    52,   213,  1549,     0,  -300,     0,     0,   723,
     2048       0,     0,     0,     0,   732,    10,    11,    12,    13,    14,
     2049      15,    16,     0,   592,  1086,   603,     0,    43,   341,   175,
     2050     176,    46,   376,     0,     0,  -301,     0,   177,   577,     0,
     2051      47,    48,   634,   635,    10,    11,    12,    13,    14,    15,
     2052      16,     0,    40,   213,    10,    11,    12,    13,    14,    15,
     2053      16,   177,   210,   220,     0,   177,   378,     0,   572,    43,
     2054       0,   182,   183,    46,   763,   764,   765,     0,   636,     0,
     2055     966,    40,    47,    48,     0,   607,     0,     0,     0,     0,
     2056       0,    40,     0,   215,     0,   325,     0,     0,   607,     0,
     2057      43,     0,   182,   183,    46,   795,     0,     0,  1054,     0,
     2058     413,     0,   442,    47,    48,     0,    51,    52,     0,     0,
     2059       0,    43,     0,   182,   183,    46,     0,  1086,   215,  1055,
     2060     213,     0,   458,     0,    47,    48,     0,   215,     0,   184,
     2061       0,     0,     0,     0,     0,    61,     0,    51,    52,   842,
     2062     304,     0,    61,     0,     0,     0,     0,     0,     0,     0,
     2063     604,     0,   605,     0,     0,     0,     0,   860,    51,    52,
     2064       0,   529,     0,     0,   341,   530,   531,   532,     0,   118,
     2065       0,  1056,     0,     0,     0,    10,    11,    12,    13,    14,
     2066      15,    16,     0,   913,   913,   215,     0,     0,   718,   533,
     2067       0,   534,     0,   535,  1291,   215,     0,  1114,   118,   304,
     2068     215,     0,    61,     0,     0,   341,     0,     0,     0,     0,
     2069       0,     0,    40,  1127,     0,     0,     0,     0,     0,     0,
    20842070      10,    11,    12,    13,    14,    15,    16,     0,     0,     0,
    2085      698,   301,   203,     3,     4,     5,     6,     7,     8,     9,
    2086        0,     0,   115,    37,   650,     0,     0,     0,     0,     0,
    2087     1053,     0,     0,     0,    37,     0,     0,     0,     0,     0,
    2088      919,     0,     0,   633,     0,     0,     0,   225,   115,     0,
    2089        0,     0,   919,   919,     0,     0,     0,     0,   212,     0,
    2090        0,     0,     0,     0,    40,     0,   179,   180,    43,     0,
    2091        0,     0,     0,     0,     0,     0,   919,    44,    45,     0,
    2092        0,   986,     0,   987,   988,   989,   412,     0,     0,   633,
    2093      633,     0,    10,    11,    12,    13,    14,    15,    16,     0,
    2094        0,   301,  1040,  1051,     0,   410,     0,     0,     0,     0,
    2095        0,    48,    49,     0,     0,     0,     0,     0,  1046,     0,
    2096        0,     0,   210,     0,     0,  1001,    37,     0,     0,     0,
    2097        0,     0,  1053,     0,     0,     0,     0,     0,     0,     0,
    2098        0,  1073,  1457,   115,     0,     0,     0,     0,   919,     0,
    2099        0,  1208,   534,   535,   536,   537,   538,   539,   540,   541,
    2100      542,   543,   544,     0,     0,    10,    11,    12,    13,    14,
    2101       15,    16,     0,     0,     0,  1095,     0,     0,     0,     0,
    2102     1105,   262,   115,     0,     0,  1108,   545,     0,     0,     0,
    2103     1113,  1114,     0,     0,     0,  1116,     0,  1117,  1118,    37,
    2104        0,  1121,     0,     0,     0,   257,     0,     0,   276,   277,
    2105     1136,   278,     0,     0,     0,     0,   633,     0,     0,     0,
    2106        0,     0,   412,     0,     0,     0,  1150,  1151,   212,    40,
    2107        0,   262,     0,    43,    67,   119,     0,   279,     0,     0,
    2108      280,  1265,    44,    45,   281,     0,   115,   282,   283,   273,
    2109      284,   285,   286,    44,    45,     0,   287,   288,  1179,     0,
    2110        0,  1181,     0,     0,   115,     0,     0,     0,    46,     0,
    2111        0,   115,    67,   115,     0,   115,    48,    49,     0,   289,
    2112        0,   378,     0,     0,     0,     0,   158,    48,    49,   291,
    2113      292,   293,   294,     0,     0,     0,     0,     0,     0,     0,
    2114      778,     0,     0,     0,   218,     0,     0,  1507,   262,     0,
    2115        0,     0,     0,   115,  1214,   115,     0,     0,     0,     0,
    2116     1218,  1219,     0,     0,     0,  1369,     0,     0,     0,  1226,
    2117        0,   115,     0,     0,  1233,     0,     0,  1507,  1507,  1237,
    2118        0,   250,     0,     0,    10,    11,    12,    13,    14,    15,
    2119       16,     0,  1245,     0,   301,     0,     0,     0,     0,     0,
    2120       10,    11,    12,    13,    14,    15,    16,  1507,  1252,     0,
    2121     1254,  1255,  1256,  1257,     0,     0,     0,     0,    37,     0,
    2122      323,     0,     0,     0,     0,  1264,     0,  1150,   250,   343,
    2123        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
    2124        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
    2125      179,   180,    43,     0,     0,     0,   403,     0,     0,  1293,
    2126     1294,    44,    45,     0,    40,     0,   179,   180,    43,     0,
    2127        0,     0,   423,     0,     0,   428,   430,    44,    45,     0,
    2128      158,     0,     0,     0,     0,     0,     0,  1506,     0,   410,
    2129        0,     0,     0,     0,     0,    48,    49,     0,     0,     0,
    2130        0,   446,     0,   181,     0,   449,     0,   450,     0,     0,
    2131      456,    48,    49,    75,     0,     0,    67,     0,     0,     0,
    2132        0,   470,     0,  1329,  1330,     0,     0,     0,     0,     0,
    2133        0,   478,     0,  1340,     0,     0,     0,     0,     0,   430,
    2134        0,     0,     0,     0,     0,     0,   210,     0,     0,     0,
    2135        0,    75,   203,     3,     4,     5,     6,     7,     8,     9,
     2071     920,     0,     0,     0,   495,     0,     0,   341,     0,  1359,
     2072       0,     0,    43,     0,   182,   183,    46,     0,    10,    11,
     2073      12,    13,    14,    15,    16,    47,    48,    40,   636,   636,
     2074       0,     0,     0,   942,     0,     0,     0,     0,     0,    10,
     2075      11,    12,    13,    14,    15,    16,   304,     0,     0,     0,
     2076       0,  1054,     0,   413,     0,    40,     0,    43,   215,    51,
     2077      52,    46,   206,     3,     4,     5,     6,     7,     8,     9,
     2078      47,    48,   415,     0,     0,     0,    40,     0,     0,     0,
     2079       0,   177,     0,     0,     0,    43,     0,   182,   183,    46,
     2080       0,     0,     0,  1056,     0,  1056,    49,  1056,    47,    48,
     2081     177,     0,     0,     0,    51,    52,    43,     0,   182,   183,
     2082      46,     0,   118,   177,     0,     0,     0,     0,   913,    47,
     2083      48,     0,     0,     0,  1509,     0,   413,     0,   260,     0,
     2084       0,     0,    51,    52,     0,     0,     0,     0,   653,     0,
     2085     905,     0,   906,     0,  1004,   184,     0,     0,     0,     0,
     2086     909,   910,     0,    51,    52,   915,     0,     0,     0,   341,
     2087       0,     0,    10,    11,    12,    13,    14,    15,    16,     0,
     2088       0,  1477,   925,  1482,  -302,     0,   131,   929,     0,  1070,
     2089       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
     2090      43,     0,   182,   183,    46,     0,   603,     0,     0,    40,
     2091       0,     0,     0,    47,    48,     0,     0,     0,   415,     0,
     2092       0,  1515,     0,  1517,     0,     0,     0,   653,     0,     0,
     2093      40,     0,     0,     0,   304,     0,     0,     0,   215,   259,
     2094       0,   131,     0,     0,     0,   118,     0,    51,    52,     0,
     2095       0,     0,     0,  1056,     0,     0,     0,   131,   550,   131,
     2096       0,     0,     0,     0,     0,     0,   636,     0,     0,     0,
     2097       0,   118,     0,     0,     0,  1556,     0,  1557,   912,     0,
     2098     605,     0,     0,     0,   271,     0,    51,    52,     0,     0,
     2099       0,     0,     0,     0,     0,  1569,  1570,   515,     0,     0,
     2100       0,     0,     0,     0,   989,     0,   990,   991,   992,     0,
     2101       0,     0,   636,   636,    10,    11,    12,    13,    14,    15,
     2102      16,  1372,     0,     0,   304,  1043,     0,     0,  1004,     0,
     2103       0,     0,   177,   206,     3,     4,     5,     6,     7,     8,
     2104       9,  1049,     0,   131,     0,   131,   131,     0,     0,     0,
     2105     131,    40,   131,   131,  1211,  1056,     0,     0,     0,     0,
     2106       0,     0,     0,     0,  1076,     0,   118,     0,     0,     0,
     2107       0,   228,   537,   538,   539,   540,   541,   542,   543,   544,
     2108     545,   546,   547,     0,     0,    10,    11,    12,    13,    14,
     2109      15,    16,     0,     0,     0,     0,     0,     0,  1098,     0,
     2110       0,     0,     0,  1108,   265,   118,   548,     0,  1111,     0,
     2111       0,     0,     0,  1116,  1117,     0,   131,     0,  1119,     0,
     2112    1120,  1121,    40,     0,  1124,     0,     0,     0,   260,     0,
     2113       0,     0,     0,  1139,     0,     0,     0,     0,     0,   636,
     2114       0,     0,     0,     0,  1268,     0,     0,     0,     0,  1153,
     2115    1154,     0,    43,     0,   265,     0,    46,     0,     0,     0,
     2116      70,   122,     0,     0,     0,    47,    48,     0,     0,   118,
     2117       0,   177,     0,     0,   177,   177,   177,     0,     0,     0,
     2118       0,  1182,     0,     0,  1184,     0,     0,   118,     0,     0,
     2119       0,   717,   131,     0,   118,     0,   118,     0,   118,    51,
     2120      52,    70,     0,     0,     0,     0,     0,     0,     0,     0,
     2121       0,   131,     0,     0,     0,   161,     0,     0,    10,    11,
     2122      12,    13,    14,    15,    16,     0,     0,     0,     0,     0,
     2123    1510,   265,     0,   221,     0,     0,   118,  1217,   118,     0,
     2124       0,     0,     0,  1221,  1222,     0,     0,     0,     0,     0,
     2125       0,     0,  1229,     0,   118,    40,     0,  1236,     0,     0,
     2126    1510,  1510,  1240,   131,     0,     0,     0,     0,     0,     0,
     2127     253,     0,     0,     0,     0,  1248,     0,   304,     0,     0,
     2128       0,     0,     0,     0,     0,    43,     0,   182,   183,    46,
     2129    1510,  1255,     0,  1257,  1258,  1259,  1260,     0,    47,    48,
     2130       0,     0,     0,     0,     0,     0,     0,     0,  1267,   326,
     2131    1153,     0,     0,     0,     0,     0,     0,   253,   346,     0,
     2132       0,     0,   215,     0,   259,     0,     0,     0,     0,     0,
     2133       0,     0,    51,    52,     0,     0,     0,     0,     0,     0,
     2134       0,     0,  1296,  1297,     0,   406,   177,     0,     0,     0,
     2135       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2136       0,   426,     0,     0,   431,   433,     0,     0,     0,   161,
     2137       0,     0,   215,     0,     0,     0,     0,     0,     0,     0,
     2138       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2139     449,     0,     0,     0,   452,     0,   453,     0,     0,   459,
     2140       0,     0,     0,     0,     0,    70,  1332,  1333,     0,     0,
     2141     473,     0,     0,     0,     0,     0,  1343,     0,     0,     0,
     2142     481,     0,     0,     0,     0,     0,     0,     0,   433,   131,
     2143     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2144       0,     0,     0,     0,     0,     0,     0,     0,     0,   215,
     2145       0,     0,     0,     0,     0,     0,     0,   177,     0,     0,
     2146       0,     0,   131,     0,     0,   131,   131,     0,   131,     0,
     2147     131,   131,     0,     0,     0,   131,   131,     0,     0,     0,
     2148    1382,     0,  1383,  1384,  1385,     0,     0,     0,     0,     0,
     2149       0,     0,     0,     0,  1389,     0,   253,     0,     0,     0,
     2150       0,   594,  1400,     0,     0,   173,     0,   629,   177,     0,
     2151       0,   177,     0,     0,     0,     0,     0,     0,     0,   131,
     2152       0,     0,     0,   131,     0,     0,     0,   638,     0,     0,
     2153       0,   638,  1422,     0,     0,     0,     0,     0,     0,   177,
     2154       0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
     2155       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
     2156       0,     0,     0,     0,   177,     0,     0,     0,     0,     0,
     2157       0,     0,     0,     0,     0,     0,  1463,  1464,     0,     0,
     2158     473,     0,     0,     0,     0,     0,     0,     0,    78,  1469,
     2159       0,     0,     0,   177,   346,     0,  1469,     0,     0,   473,
     2160       0,     0,     0,     0,     0,     0,     0,   473,     0,     0,
     2161       0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
     2162     222,     0,     0,     0,   696,     0,     0,   433,     0,     0,
     2163       0,  1508,     0,     0,   706,     0,  1514,     0,     0,     0,
     2164       0,     0,     0,   711,     0,    70,     0,     0,     0,     0,
     2165       0,     0,     0,     0,     0,     0,     0,   433,     0,     0,
     2166       0,   433,     0,   177,     0,     0,     0,     0,   177,  1541,
     2167       0,  1542,     0,     0,     0,     0,     0,     0,     0,     0,
     2168       0,     0,     0,     0,     0,     0,     0,     0,   346,     0,
     2169       0,   177,     0,   177,     0,     0,     0,   177,     0,     0,
     2170     177,     0,     0,     0,     0,   350,     0,     0,     0,  1567,
     2171    1568,     0,     0,   177,     0,     0,     0,   177,     0,     0,
     2172       0,     0,  1575,  1576,     0,     0,     0,     0,     0,     0,
     2173       0,     0,   787,     0,     0,     0,     0,     0,     0,     0,
     2174       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2175     638,   799,     0,     0,     0,     0,     0,     0,     0,     0,
     2176       0,     0,     0,     0,     0,     0,     0,   817,     0,     0,
     2177       0,     0,     0,     0,     0,     0,     0,   450,     0,     0,
     2178       0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
     2179       0,   841,    78,     0,     0,     0,   594,    78,     0,     0,
     2180       0,     0,   638,     0,     0,   346,   346,     0,     0,     0,
     2181     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2182       0,   346,     0,     0,     0,     0,   131,     0,     0,   131,
     2183     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2184     696,     0,     0,     0,     0,     0,     0,     0,   979,     0,
     2185       0,   473,     0,     0,     0,    10,    11,    12,    13,    14,
     2186      15,    16,     0,     0,     0,   473,     0,     0,     0,   346,
     2187       0,     0,     0,     0,     0,     0,     0,     0,   917,     0,
     2188       0,   433,     0,     0,     0,     0,     0,     0,   595,     0,
     2189     279,   280,    40,   281,   222,     0,     0,     0,     0,     0,
     2190       0,     0,   131,     0,     0,     0,     0,   711,     0,     0,
     2191       0,     0,     0,     0,   595,   131,     0,     0,   595,   282,
     2192     131,   131,   283,     0,     0,     0,   284,     0,     0,   285,
     2193     286,   276,   287,   288,   289,    47,    48,     0,   290,   291,
     2194       0,     0,     0,   696,     0,     0,     0,     0,     0,     0,
     2195       0,     0,     0,   696,   696,     0,     0,   638,     0,     0,
     2196     969,   292,     0,   381,     0,   696,     0,    78,     0,   340,
     2197      52,   294,   295,   296,   297,   980,     0,   131,     0,     0,
     2198       0,   350,     0,     0,     0,     0,    78,     0,     0,     0,
     2199       0,     0,     0,     0,    78,     0,     0,     0,     0,     0,
     2200       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2201       0,   350,     0,     0,     0,     0,     0,     0,     0,     0,
     2202       0,   222,    83,     0,     0,     0,     0,     0,     0,    70,
     2203     350,     0,    78,     0,     0,     0,     0,     0,     0,   131,
     2204       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2205       0,     0,     0,   799,     0,     0,     0,     0,   131,     0,
     2206       0,     0,     0,    83,     0,     0,     0,     0,     0,     0,
     2207       0,     0,     0,  1077,     0,   350,     0,     0,     0,     0,
     2208       0,     0,     0,     0,     0,     0,   433,   122,     0,     0,
     2209       0,     0,     0,     0,   711,   224,    10,    11,    12,    13,
     2210      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2211      24,    25,    26,    27,    28,    29,    30,    31,  -307,     0,
     2212       0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
     2213       0,     0,     0,    40,     0,     0,     0,   595,   350,   431,
     2214       0,     0,     0,     0,   696,   696,     0,   346,   346,     0,
     2215      91,     0,     0,     0,   131,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,     0,    70,     0,     0,     0,  -307,
     2217       0,     0,     0,   595,     0,     0,     0,     0,     0,     0,
     2218     354,     0,     0,   595,     0,     0,     0,     0,     0,   595,
     2219       0,    91,   350,   350,     0,     0,     0,     0,     0,     0,
     2220       0,     0,  1137,     0,     0,   696,   696,     0,   350,    10,
     2221      11,    12,    13,    14,    15,    16,  1202,     0,     0,     0,
     2222       0,     0,     0,   225,     0,     0,     0,   350,     0,     0,
     2223       0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
     2224       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
     2225       0,     0,    78,     0,     0,     0,   350,     0,     0,     0,
     2226       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
     2227       0,     0,    83,   282,     0,     0,   283,     0,   711,     0,
     2228     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2229      48,     0,   290,   291,   350,     0,     0,     0,     0,     0,
     2230       0,     0,     0,     0,     0,     0,     0,     0,   366,     0,
     2231       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
     2232       0,     0,     0,  1138,    52,   294,   295,   296,   297,     0,
     2233     350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2234     350,   350,     0,    70,   595,     0,     0,   222,     0,     0,
     2235       0,     0,   350,     0,     0,     0,     0,     0,     0,     0,
     2236       0,     0,     0,   597,     0,     0,     0,     0,     0,   224,
     2237       0,     0,     0,   696,     0,   711,     0,     0,     0,     0,
     2238     122,     0,     0,     0,     0,     0,     0,     0,     0,   597,
     2239       0,     0,     0,   597,     0,    91,     0,     0,     0,     0,
     2240      91,     0,   696,     0,     0,     0,     0,     0,     0,     0,
     2241     696,   696,   696,     0,     0,     0,    78,     0,     0,     0,
     2242       0,   346,   346,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,     0,  1353,     0,     0,     0,     0,     0,     0,
     2244     350,     0,    83,     0,     0,     0,     0,     0,     0,     0,
     2245       0,     0,     0,     0,     0,     0,   354,     0,     0,     0,
     2246       0,    83,     0,     0,     0,     0,     0,     0,     0,    83,
     2247       0,     0,     0,     0,     0,   122,     0,     0,     0,     0,
     2248       0,   350,     0,     0,     0,     0,   354,     0,     0,   211,
     2249       0,   598,     0,     0,     0,     0,   224,   225,   231,     0,
     2250     235,     0,   237,     0,     0,   354,     0,    83,     0,     0,
     2251     240,     0,     0,   595,  1403,     0,     0,   598,     0,     0,
     2252       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
     2253       0,   350,   350,     0,   350,   350,     0,     0,     0,     0,
     2254       0,   211,     0,   235,   237,   240,     0,     0,   346,     0,
     2255     354,     0,    78,     0,     0,     0,     0,     0,     0,     0,
     2256       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2257      91,     0,     0,     0,     0,     0,     0,   696,   122,     0,
     2258     211,     0,     0,     0,   366,     0,     0,     0,     0,    91,
     2259       0,     0,   350,   350,     0,     0,  1353,    91,     0,     0,
     2260       0,     0,     0,  1353,     0,  1480,     0,  1480,     0,     0,
     2261       0,     0,   597,   354,   366,     0,     0,     0,     0,     0,
     2262       0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
     2263       0,     0,     0,   366,     0,    91,     0,     0,     0,     0,
     2264     211,     0,   235,   237,   240,  1480,     0,  1480,   597,     0,
     2265       0,     0,     0,     0,     0,     0,     0,     0,   597,     0,
     2266       0,     0,     0,  1353,   597,   350,     0,   354,   354,     0,
     2267    1539,     0,   211,     0,     0,     0,     0,   211,   366,     0,
     2268       0,     0,     0,   354,     0,   166,     0,     0,     0,     0,
     2269       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2270     218,     0,   354,     0,     0,     0,     0,     0,     0,     0,
     2271       0,     0,     0,    83,     0,     0,     0,     0,     0,     0,
     2272       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
     2273      78,   354,     0,     0,     0,     0,     0,     0,     0,     0,
     2274     598,   366,     0,     0,     0,   211,     0,     0,   166,     0,
     2275       0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
     2276     350,     0,   350,     0,     0,   211,     0,     0,     0,   354,
     2277       0,   632,     0,   237,     0,     0,   598,     0,   166,     0,
     2278       0,     0,     0,     0,     0,   240,   598,     0,   372,   350,
     2279       0,   377,   598,     0,     0,   366,   366,   350,   350,   350,
     2280       0,     0,     0,     0,     0,   354,     0,     0,   350,   350,
     2281       0,   366,     0,     0,     0,   354,   354,     0,     0,   597,
     2282      78,     0,   224,     0,     0,   211,     0,   354,     0,     0,
     2283     366,     0,     0,     0,     0,     0,     0,     0,     0,   166,
     2284       0,    91,     0,     0,     0,   211,     0,     0,     0,     0,
     2285     211,   218,   211,     0,     0,    91,     0,     0,     0,   366,
     2286       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
     2287       0,   211,   211,     0,     0,     0,     0,     0,   211,     0,
     2288       0,     0,     0,     0,     0,     0,     0,     0,   377,     0,
     2289       0,    83,   211,     0,     0,   166,     0,   366,     0,     0,
     2290     211,   222,     0,     0,     0,     0,     0,     0,     0,     0,
     2291       0,     0,     0,     0,     0,   354,     0,     0,     0,     0,
     2292       0,     0,   527,     0,     0,     0,     0,     0,     0,     0,
     2293       0,     0,     0,   366,   166,   350,     0,     0,     0,     0,
     2294       0,     0,     0,   366,   366,     0,     0,   598,     0,     0,
     2295     225,     0,     0,     0,     0,   366,   354,     0,     0,     0,
     2296       0,     0,     0,     0,   350,     0,     0,     0,     0,     0,
     2297       0,   601,     0,     0,     0,     0,   628,     0,     0,     0,
     2298       0,     0,     0,    78,     0,     0,     0,     0,   597,     0,
     2299      78,     0,   595,     0,   595,     0,     0,     0,     0,     0,
     2300       0,     0,     0,     0,     0,     0,   354,   354,     0,   354,
     2301     354,     0,     0,   211,     0,   632,   237,   240,     0,    91,
     2302       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
     2303       0,     0,   595,     0,   595,     0,     0,     0,     0,     0,
     2304       0,     0,     0,   366,     0,     0,     0,     0,   211,   632,
     2305      78,     0,     0,     0,     0,     0,     0,   211,   166,   166,
     2306       0,     0,     0,     0,   372,     0,     0,   354,   354,     0,
     2307       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2308       0,     0,     0,     0,   366,   166,    10,    11,    12,    13,
     2309      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2310      24,    25,    26,    27,    28,    29,    30,    31,  -308,     0,
     2311       0,     0,     0,   714,     0,   211,   598,     0,     0,     0,
     2312       0,     0,     0,    40,     0,   211,     0,     0,     0,   166,
     2313     211,     0,     0,     0,   366,   366,     0,   366,   366,     0,
     2314     354,   527,     0,   527,     0,     0,   527,     0,   166,   527,
     2315       0,     0,     0,     0,     0,    91,     0,     0,   372,  -308,
     2316       0,     0,     0,     0,   205,   206,     3,     4,     5,     6,
     2317       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2318      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2319      27,    28,    29,    30,    31,   366,   366,    32,    33,    34,
     2320      35,    36,    37,     0,     0,    83,   211,     0,     0,   166,
     2321      40,     0,     0,   158,     0,     0,     0,     0,   211,     0,
     2322       0,   372,     0,     0,   802,     0,     0,     0,     0,     0,
     2323       0,     0,     0,     0,     0,   354,   211,   354,     0,     0,
     2324      43,     0,   207,    45,    46,     0,     0,     0,     0,     0,
     2325       0,     0,     0,    47,    48,     0,   601,     0,     0,   245,
     2326     211,     0,     0,     0,   354,     0,   601,     0,   366,   250,
     2327       0,     0,   354,   354,   354,   372,   372,     0,     0,    49,
     2328     318,   208,     0,   354,   354,     0,     0,    51,    52,     0,
     2329     342,   372,     0,     0,     0,    83,     0,     0,     0,     0,
     2330       0,   384,   384,     0,     0,     0,     0,     0,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332       0,     0,     0,     0,   527,     0,     0,     0,     0,     0,
     2333       0,     0,     0,    91,     0,   388,   211,     0,     0,   372,
     2334       0,   914,     0,     0,     0,     0,     0,     0,     0,     0,
     2335       0,     0,     0,     0,     0,     0,     0,   420,     0,     0,
     2336       0,     0,     0,   366,     0,   366,     0,     0,     0,     0,
     2337       0,   434,     0,     0,     0,     0,   224,   714,     0,     0,
     2338     439,     0,     0,     0,     0,     0,     0,     0,   211,   479,
     2339     447,     0,   366,     0,     0,     0,     0,     0,     0,   211,
     2340     366,   366,   366,     0,   279,   280,     0,   281,     0,   464,
     2341     354,   366,   366,     0,   475,     0,     0,     0,     0,     0,
     2342       0,     0,     0,    91,     0,     0,     0,   483,     0,   628,
     2343       0,     0,     0,   282,     0,   497,   283,   501,     0,   354,
     2344     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2345      48,     0,   290,   291,     0,     0,   528,     0,    83,     0,
     2346       0,     0,     0,     0,     0,    83,     0,   597,     0,   597,
     2347       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
     2348     382,     0,     0,    51,    52,   294,   295,   296,   297,     0,
     2349       0,     0,     0,     0,     0,     0,   211,   586,     0,     0,
     2350       0,     0,   591,     0,   225,     0,     0,   597,     0,   597,
     2351       0,     0,     0,     0,   384,     0,     0,     0,     0,     0,
     2352       0,     0,     0,   372,     0,    83,     0,     0,   527,     0,
     2353       0,     0,     0,     0,     0,     0,     0,   645,   366,     0,
     2354       0,   646,   647,     0,   648,     0,     0,     0,     0,     0,
     2355       0,   659,   660,     0,   661,   662,     0,   663,   166,   664,
     2356       0,     0,     0,     0,   714,     0,     0,   366,     0,     0,
     2357       0,     0,     0,     0,     0,     0,   586,     0,     0,     0,
     2358       0,     0,     0,     0,   680,     0,    91,   318,     0,     0,
     2359       0,     0,     0,    91,     0,   598,   601,   598,     0,     0,
     2360       0,     0,     0,     0,     0,     0,     0,   708,   691,     0,
     2361       0,     0,     0,     0,     0,     0,     0,   372,   372,     0,
     2362       0,   211,     0,     0,     0,     0,     0,     0,     0,     0,
     2363       0,     0,     0,   705,     0,   598,     0,   598,     0,     0,
     2364     709,     0,     0,     0,     0,   464,     0,     0,     0,     0,
     2365     744,     0,     0,    91,     0,     0,     0,     0,     0,     0,
     2366     753,     0,     0,     0,     0,   744,     0,     0,   744,     0,
     2367       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2368       0,   762,     0,     0,     0,   747,     0,     0,     0,     0,
     2369       0,     0,     0,     0,     0,     0,     0,   758,     0,     0,
     2370       0,   527,     0,     0,     0,     0,     0,     0,     0,     0,
     2371       0,   791,     0,     0,     0,     0,     0,     0,   342,     0,
     2372       0,     0,     0,   753,     0,     0,     0,     0,     0,     0,
     2373       0,     0,     0,     0,   783,     0,     0,     0,   816,     0,
     2374       0,     0,     0,   793,     0,     0,   794,     0,   714,     0,
     2375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,     0,     0,     0,     0,     0,     0,     0,   815,     0,
     2377       0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
     2378     857,     0,     0,     0,     0,     0,     0,     0,   384,     0,
    21362379      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    21372380      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    2138       30,    31,     0,   219,   335,    33,    34,     0,     0,     0,
    2139        0,     0,     0,     0,    37,     0,   210,  1379,     0,  1380,
    2140     1381,  1382,     0,     0,     0,     0,     0,   250,     0,     0,
    2141        0,  1386,   591,     0,     0,     0,     0,     0,   626,  1397,
    2142        0,     0,   170,     0,     0,     0,    41,    42,     0,     0,
    2143        0,     0,     0,     0,     0,     0,     0,     0,   635,     0,
    2144        0,     0,   635,     0,     0,     0,     0,     0,     0,  1419,
    2145        0,     0,   212,     0,     0,    10,    11,    12,    13,    14,
    2146       15,    16,     0,     0,  -427,   684,     0,     0,   347,     0,
    2147        0,    48,    49,   210,     0,     0,     0,     0,     0,     0,
    2148        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
    2149        0,   470,     0,  1460,  1461,     0,     0,     0,     0,     0,
    2150        0,     0,   212,     0,     0,   343,  1466,     0,     0,     0,
    2151      470,     0,     0,  1466,     0,     0,     0,     0,   470,    40,
    2152        0,   179,   180,    43,     0,     0,     0,     0,     0,     0,
    2153     1491,     0,    44,    45,     0,   693,     0,     0,   430,     0,
    2154      447,     0,     0,     0,     0,   703,     0,     0,  1505,     0,
    2155        0,     0,     0,  1511,   708,    75,    67,     0,   256,     0,
    2156       75,     0,     0,     0,     0,     0,    48,    49,   430,     0,
    2157        0,     0,   430,     0,     0,     0,     0,     0,     0,   212,
    2158        0,     0,     0,     0,     0,     0,  1538,     0,  1539,     0,
    2159        0,     0,     0,     0,     0,     0,     0,     0,     0,   343,
    2160        0,     0,     0,     0,    80,     0,     0,    10,    11,    12,
    2161       13,    14,    15,    16,     0,     0,     0,     0,     0,     0,
    2162        0,     0,     0,     0,     0,     0,  1564,  1565,     0,     0,
    2163        0,     0,     0,     0,     0,     0,     0,     0,     0,  1572,
    2164     1573,    37,    80,   784,     0,     0,     0,     0,     0,     0,
    2165        0,   592,     0,     0,     0,     0,     0,   219,     0,     0,
    2166        0,   635,   796,     0,     0,     0,     0,     0,     0,     0,
    2167        0,    40,     0,     0,   221,    43,     0,   592,   814,     0,
    2168        0,   592,     0,     0,    44,    45,     0,     0,     0,     0,
    2169        0,     0,     0,     0,     0,     0,     0,   591,     0,     0,
    2170        0,     0,   838,     0,     0,     0,     0,   591,     0,     0,
    2171      714,     0,     0,   635,     0,     0,   343,   343,    48,    49,
    2172        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2173       75,     0,   343,     0,     0,     0,     0,     0,     0,     0,
    2174        0,     0,     0,     0,   347,     0,     0,     0,     0,    75,
    2175        0,   693,     0,     0,     0,     0,     0,    75,     0,   351,
    2176        0,     0,   470,     0,     0,     0,     0,     0,     0,     0,
    2177        0,     0,     0,     0,   347,     0,   470,     0,     0,     0,
    2178      343,     0,     0,     0,   219,     0,     0,     0,     0,   914,
    2179        0,     0,   430,   347,     0,    75,    10,    11,    12,    13,
    2180       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2181       24,    25,    26,    27,    28,    29,    30,    31,   708,     0,
    2182       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
    2183       37,     0,     0,     0,     0,     0,     0,     0,   347,     0,
    2184        0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
    2185        0,    80,     0,     0,   693,     0,     0,     0,     0,     0,
    2186      112,     0,    41,    42,   693,   693,     0,     0,   635,     0,
    2187        0,   966,     0,    44,    45,     0,   693,     0,     0,     0,
    2188        0,     0,     0,     0,     0,     0,   977,     0,     0,     0,
    2189        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2190      592,   347,     0,     0,   202,   203,     3,     4,     5,     6,
    2191        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2381      30,    31,     0,   858,    32,    33,    34,    35,    36,    37,
     2382       0,     0,   211,     0,   527,     0,     0,    40,     0,     0,
     2383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2384       0,     0,     0,     0,     0,   714,     0,     0,     0,     0,
     2385     893,     0,     0,     0,     0,     0,     0,    43,     0,    44,
     2386      45,    46,     0,     0,     0,     0,     0,     0,     0,   744,
     2387      47,    48,     0,     0,     0,   336,   367,     0,   245,   753,
     2388       0,   940,     0,     0,   943,     0,     0,     0,     0,     0,
     2389     950,   372,   372,   926,   927,     0,    49,     0,    50,   211,
     2390       0,     0,     0,   934,    51,    52,     0,   416,     0,     0,
     2391       0,     0,     0,     0,   416,     0,     0,   947,     0,     0,
     2392       0,     0,   951,     0,     0,     0,     0,     0,     0,     0,
     2393       0,   967,   968,   279,   280,     0,   281,     0,     0,     0,
     2394       0,     0,     0,     0,     0,     0,     0,   342,     0,     0,
     2395       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
     2396       0,     0,   282,     0,     0,   283,     0,     0,     0,   284,
     2397       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
     2398     416,   290,   291,   218,   984,     0,     0,     0,     0,     0,
     2399     996,   985,     0,     0,   384,     0,     0,     0,     0,     0,
     2400       0,     0,     0,     0,   292,     0,   381,   987,   356,   988,
     2401       0,   752,    51,    52,   294,   295,   296,   297,   372,     0,
     2402       0,     0,   998,     0,     0,   342,     0,     0,  1002,     0,
     2403       0,     0,     0,   218,     0,     0,     0,     0,   416,  1045,
     2404       0,     0,     0,  1046,     0,     0,     0,   416,   582,     0,
     2405     416,   585,     0,     0,     0,     0,     0,     0,     0,   367,
     2406     318,     0,     0,   618,     0,     0,   342,     0,     0,     0,
     2407       0,     0,     0,   384,     0,   527,     0,   527,   943,     0,
     2408       0,   744,     0,     0,     0,     0,     0,     0,     0,   642,
     2409       0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
     2410     280,  1122,   281,     0,     0,     0,     0,     0,     0,     0,
     2411     377,     0,  1140,     0,     0,   527,   416,   527,     0,     0,
     2412     416,     0,     0,     0,     0,     0,     0,  1118,   282,     0,
     2413       0,   283,   384,     0,  1157,   284,     0,     0,   285,   286,
     2414     276,   287,   288,   289,    47,    48,     0,   290,   291,   943,
     2415     943,     0,   367,     0,     0,     0,   166,     0,   357,     0,
     2416       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2417     292,     0,   381,     0,     0,   941,  1188,     0,    51,    52,
     2418     294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
     2419       0,   356,     0,     0,  1183,     0,   356,   356,   416,     0,
     2420       0,   367,     0,     0,     0,     0,     0,     0,     0,     0,
     2421       0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
     2422       0,   356,     0,     0,     0,     0,     0,     0,     0,   943,
     2423       0,     0,     0,     0,     0,     0,  1213,     0,     0,     0,
     2424       0,  1215,     0,     0,     0,     0,   367,     0,     0,     0,
     2425     857,  1220,     0,     0,     0,     0,     0,     0,     0,     0,
     2426       0,     0,     0,     0,     0,     0,     0,     0,  1253,  1254,
     2427       0,     0,     0,     0,     0,  1242,     0,     0,     0,     0,
     2428       0,     0,     0,     0,   356,     0,     0,     0,  1250,   416,
     2429     416,     0,  1251,     0,     0,  1252,     0,     0,     0,     0,
     2430       0,     0,     0,     0,     0,     0,     0,     0,   797,   367,
     2431       0,  1261,  1262,     0,   356,     0,     0,     0,     0,     0,
     2432       0,     0,   618,     0,     0,   618,   618,     0,     0,  1273,
     2433       0,     0,   618,   356,     0,     0,     0,     0,     0,     0,
     2434       0,   357,   836,     0,   367,     0,   357,   357,     0,     0,
     2435       0,     0,     0,     0,   367,     0,     0,     0,     0,     0,
     2436       0,     0,     0,   367,   367,     0,     0,   357,     0,     0,
     2437       0,   357,   279,   280,     0,   281,     0,     0,   356,   367,
     2438       0,     0,     0,   416,   879,     0,     0,   416,   883,     0,
     2439       0,     0,     0,     0,  1319,     0,   886,     0,     0,     0,
     2440       0,   282,     0,     0,   649,     0,   142,   143,   284,     0,
     2441       0,   285,   286,   276,   287,   288,   289,    47,    48,  1363,
     2442     290,   291,     0,   744,     0,     0,     0,   367,   618,     0,
     2443       0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
     2444     356,   356,     0,   292,   356,   650,     0,   651,   382,     0,
     2445       0,    51,    52,   294,   295,   296,   297,     0,     0,     0,
     2446       0,     0,     0,     0,   357,   367,     0,     0,     0,     0,
     2447       0,     0,     0,  1376,     0,  1377,   356,     0,     0,   356,
     2448       0,     0,     0,   357,     0,  1380,   356,  1381,   356,     0,
     2449       0,     0,   356,     0,     0,   356,   356,     0,     0,     0,
     2450       0,     0,  1388,     0,     0,   416,     0,     0,     0,     0,
     2451       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
     2452    1407,  1409,   618,     0,   618,     0,     0,     0,   357,     0,
     2453     356,     0,     0,  1417,     0,   618,     0,     0,  1418,     0,
     2454       0,  1220,     0,     0,     0,     0,   356,     0,     0,     0,
     2455       0,     0,     0,     0,     0,     0,     0,  1436,     0,   356,
     2456       0,   356,     0,     0,     0,     0,   129,  1443,     0,   358,
     2457    1445,     0,  1447,  1449,  1451,     0,     0,     0,     0,     0,
     2458       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2459     357,   357,     0,     0,   357,     0,     0,   356,     0,     0,
     2460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2461       0,   367,  1485,     0,  1487,     0,     0,     0,   416,     0,
     2462       0,   238,     0,     0,  1220,     0,   357,     0,     0,   357,
     2463     618,   618,     0,   356,  1503,     0,   357,   248,   357,   249,
     2464       0,     0,   357,   356,   356,   357,   357,   356,     0,   356,
     2465     356,     0,   367,     0,     0,   356,     0,     0,   318,     0,
     2466       0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
     2467       0,     0,     0,     0,   416,  1115,     0,     0,     0,     0,
     2468     357,     0,     0,     0,   367,     0,     0,     0,     0,     0,
     2469     416,  1128,     0,   618,   618,  1135,   357,     0,     0,     0,
     2470       0,     0,     0,     0,     0,   367,   367,     0,     0,   357,
     2471       0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,     0,   417,   418,     0,     0,     0,
     2473     422,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     2474       0,     0,     0,   356,     0,     0,     0,   357,     0,     0,
     2475       0,     0,   358,     0,     0,     0,     0,   358,   358,     0,
     2476       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2477     416,     0,   416,     0,   416,     0,     0,     0,   358,   416,
     2478       0,     0,   358,   357,   356,     0,     0,     0,     0,     0,
     2479       0,     0,     0,   357,   357,   618,     0,   357,     0,   357,
     2480     357,     0,     0,     0,     0,   357,     0,     0,     0,     0,
     2481       0,     0,     0,     0,     0,     0,   356,     0,     0,   356,
     2482       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2483       0,     0,     0,     0,   356,   356,   367,   356,   356,     0,
     2484       0,     0,     0,     0,     0,   358,     0,     0,     0,     0,
     2485       0,   512,     0,   514,   517,     0,     0,     0,     0,     0,
     2486       0,     0,   520,   521,     0,     0,     0,     0,     0,     0,
     2487       0,     0,   589,     0,     0,   358,   514,   514,     0,     0,
     2488       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2489       0,   633,     0,   357,   358,   356,   356,     0,     0,     0,
     2490       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2491       0,     0,     0,   514,     0,   416,     0,     0,     0,     0,
     2492     416,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2493       0,     0,     0,   367,   357,     0,     0,     0,     0,   358,
     2494       0,     0,     0,   674,     0,     0,     0,     0,     0,     0,
     2495       0,     0,     0,     0,     0,   514,     0,     0,     0,     0,
     2496       0,     0,     0,     0,     0,     0,   357,     0,   356,   357,
     2497       0,     0,     0,     0,     0,     0,     0,     0,     0,   367,
     2498     367,     0,     0,     0,   357,   357,     0,   357,   357,     0,
     2499       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2500       0,   358,   358,     0,     0,   358,     0,     0,     0,     0,
     2501       0,     0,     0,     0,     0,     0,     0,     0,   416,  1373,
     2502       0,     0,   416,     0,     0,     0,     0,     0,     0,     0,
     2503       0,     0,     0,     0,     0,     0,     0,   358,     0,     0,
     2504     358,     0,     0,     0,     0,   357,   357,   358,     0,   358,
     2505       0,     0,     0,   358,     0,     0,   358,   358,     0,     0,
     2506       0,     0,     0,   356,     0,   356,     0,     0,     0,     0,
     2507       0,     0,   358,     0,     0,     0,     0,     0,     0,     0,
     2508       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2509       0,   358,   356,     0,     0,     0,     0,     0,     0,     0,
     2510     356,   356,   356,     0,     0,     0,   367,   358,     0,   789,
     2511     790,   356,   356,     0,     0,     0,     0,     0,   357,     0,
     2512     358,     0,   358,     0,   514,   514,   514,   514,   514,   514,
     2513     514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
     2514     514,   514,   822,     0,     0,   825,   826,     0,   829,     0,
     2515     831,   832,     0,     0,     0,   834,   835,     0,   358,     0,
     2516       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
    21922517      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2193       27,    28,    29,    30,    31,     0,   592,    32,    33,    34,
    2194       67,     0,   594,     0,     0,     0,   592,    37,   221,     0,
    2195        0,     0,   592,     0,     0,   347,   347,     0,     0,     0,
    2196        0,     0,     0,     0,   796,     0,     0,     0,   594,     0,
    2197        0,   347,   594,     0,     0,     0,     0,     0,     0,   204,
    2198       42,     0,     0,     0,  1074,     0,     0,     0,     0,     0,
    2199      347,     0,     0,     0,     0,     0,     0,   430,   119,     0,
    2200        0,    75,     0,     0,     0,   708,     0,     0,     0,     0,
    2201        0,     0,     0,     0,     0,    75,     0,     0,   205,   347,
    2202        0,    80,     0,     0,    48,    49,     0,     0,     0,     0,
    2203        0,     0,     0,     0,     0,   351,     0,   591,     0,     0,
    2204       80,     0,     0,     0,     0,     0,     0,     0,    80,     0,
    2205      428,     0,     0,     0,     0,   693,   693,   347,   343,   343,
    2206        0,     0,     0,     0,     0,   351,     0,     0,     0,     0,
    2207        0,     0,     0,     0,     0,   221,    67,     0,     0,     0,
    2208        0,     0,     0,     0,   351,     0,    80,     0,     0,     0,
    2209        0,     0,     0,   347,     0,     0,     0,     0,    88,     0,
    2210        0,     0,     0,   347,   347,     0,     0,   592,     0,     0,
    2211      219,     0,     0,     0,     0,   347,   693,   693,     0,     0,
    2212        0,     0,     0,     0,     0,     0,     0,  1199,     0,   351,
    2213        0,     0,     0,     0,  -542,     0,    88,     1,     2,     3,
     2518      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
     2519      35,    36,    37,     0,   358,     0,     0,   416,     0,   877,
     2520      40,     0,     0,   881,   358,   358,     0,     0,   358,     0,
     2521     358,   358,     0,   357,     0,   357,   358,     0,     0,     0,
     2522       0,     0,     0,     0,     0,     0,     0,   416,   416,     0,
     2523      43,     0,   207,    45,    46,     0,     0,     0,   356,     0,
     2524       0,     0,   357,    47,    48,     0,     0,     0,     0,     0,
     2525     357,   357,   357,     0,     0,     0,     0,   416,     0,     0,
     2526       0,   357,   357,     0,     0,     0,     0,   356,     0,    49,
     2527       0,   264,     0,     0,     0,     0,     0,    51,    52,     0,
     2528       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2529       0,     0,     0,     0,     0,   356,     0,   356,   514,     0,
     2530       0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
     2531       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
     2533     356,     0,     0,     0,     0,   356,     0,   356,     0,     0,
     2534       0,     0,     0,     0,     0,   358,     0,     0,     0,     0,
     2535       0,     0,     0,   514,    10,    11,    12,    13,    14,    15,
     2536      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2537      26,    27,    28,    29,    30,    31,     0,   358,     0,     0,
     2538     358,     0,   279,   280,     0,   281,     0,     0,   357,     0,
     2539       0,    40,     0,     0,     0,   358,   358,     0,   358,   358,
     2540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2541       0,   282,     0,     0,   283,     0,     0,   357,   284,     0,
     2542       0,   285,   286,   276,   287,   288,   289,    47,    48,     0,
     2543     290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
     2544       0,     0,     0,     0,     0,   357,     0,   357,     0,     0,
     2545       0,     0,     0,   292,     0,   381,   358,   358,     0,     0,
     2546       0,    51,    52,   294,   295,   296,   297,     0,     0,     0,
     2547       0,     0,     0,     0,   781,     0,     0,     0,     0,     0,
     2548     357,     0,     0,     0,     0,   357,     0,   357,     0,     0,
     2549    1113,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2550       0,     0,     0,     0,     0,     0,  1126,     0,     0,  1130,
     2551    1133,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2552       0,     0,     0,     0,     0,     0,   514,     0,     0,   358,
     2553       0,     0,     0,     0,     0,     0,     0,     0,   514,   206,
     2554       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2555      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2556      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
     2557       0,   338,    33,    34,    35,    36,    37,   514,     0,     0,
     2558       0,     0,  1192,     0,    40,     0,     0,     0,     0,     0,
     2559       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2560    1209,  1210,     0,     0,     0,     0,     0,     0,     0,     0,
     2561       0,     0,     0,     0,     0,     0,    44,    45,     0,     0,
     2562       0,     0,     0,     0,   358,     0,   358,   514,     0,     0,
     2563       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2564       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2565       0,     0,     0,   358,  -443,     0,     0,  1130,     0,     0,
     2566       0,   358,   358,   358,     0,     0,     0,     0,     0,     0,
     2567       0,     0,   358,   358,    10,    11,    12,    13,    14,    15,
     2568      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2569      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
     2570      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
     2571       0,    40,     0,     0,     0,     0,     0,     0,     0,  1294,
     2572       0,     0,     0,   514,   514,     0,     0,     0,     0,     0,
     2573       0,     0,     0,     0,     0,     0,     0,     0,  1304,     0,
     2574       0,     0,     0,   207,    45,     0,     0,     0,     0,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     1,   206,     3,
    22142576       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    22152577      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2216       24,    25,    26,    27,    28,    29,    30,    31,   222,     0,
    2217       32,    33,    34,    35,     0,     0,     0,    36,     0,    75,
    2218       37,    38,     0,     0,     0,     0,     0,     0,     0,   708,
    2219        0,   594,   351,     0,     0,     0,     0,     0,     0,     0,
    2220        0,     0,     0,   347,     0,    39,     0,     0,     0,     0,
    2221       40,     0,    41,    42,    43,     0,     0,     0,     0,     0,
    2222        0,     0,     0,    44,    45,     0,     0,   594,     0,     0,
    2223        0,     0,     0,     0,     0,     0,     0,   594,     0,     0,
    2224        0,     0,     0,   594,   347,     0,   351,   351,     0,    46,
    2225        0,    47,     0,   363,    67,     0,     0,    48,    49,     0,
    2226        0,     0,   351,     0,     0,     0,     0,     0,     0,     0,
    2227        0,     0,     0,     0,     0,     0,   592,     0,     0,     0,
    2228        0,   351,     0,     0,   693,     0,   708,     0,     0,     0,
    2229        0,   119,    80,     0,   347,   347,     0,   347,   347,     0,
    2230        0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
    2231      351,     0,     0,   693,     0,    75,     0,     0,     0,     0,
    2232        0,   693,   693,   693,     0,     0,     0,     0,     0,     0,
    2233        0,     0,   343,   343,     0,     0,     0,     0,     0,     0,
    2234       88,     0,     0,     0,  1350,    88,     0,     0,   351,     0,
    2235        0,     0,     0,     0,     0,   347,   347,    10,    11,    12,
    2236       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2237       23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2238        0,    32,    33,    34,   351,     0,   119,     0,     0,     0,
    2239        0,    37,     0,     0,   351,   351,     0,     0,   594,     0,
    2240        0,   221,     0,     0,     0,     0,   351,     0,     0,     0,
    2241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2242        0,     0,     0,   204,    42,  1400,     0,     0,   347,     0,
    2243        0,     0,     0,     0,     0,     0,   595,     0,     0,     0,
    2244        0,     0,   222,     0,     0,     0,     0,     0,     0,     0,
    2245        0,     0,     0,     0,     0,     0,     0,     0,     0,   343,
    2246        0,     0,   595,     0,     0,     0,   595,     0,    48,    49,
    2247       80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2248        0,     0,     0,     0,     0,     0,     0,     0,   693,   119,
    2249        0,     0,     0,    75,   351,     0,     0,     0,     0,     0,
    2250        0,     0,     0,     0,     0,     0,     0,  1350,     0,     0,
    2251        0,     0,     0,     0,  1350,    88,  1477,     0,  1477,     0,
    2252        0,     0,     0,   347,     0,   347,     0,     0,     0,   363,
    2253        0,     0,     0,     0,    88,   351,     0,     0,     0,     0,
    2254        0,     0,    88,     0,     0,     0,     0,     0,     0,     0,
    2255        0,     0,   347,     0,     0,     0,  1477,     0,  1477,   363,
    2256      347,   347,   347,     0,     0,     0,     0,   594,     0,   222,
    2257        0,   347,   347,     0,  1350,     0,     0,     0,   363,     0,
    2258       88,  1536,     0,    75,     0,   351,   351,     0,   351,   351,
    2259        0,     0,     0,     0,     0,     0,   163,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
    2261        0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
    2262        0,     0,     0,   363,    10,    11,    12,    13,    14,    15,
    2263       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2264       26,    27,    28,    29,    30,    31,   351,   351,    32,    33,
    2265       34,     0,     0,     0,   509,     0,   511,   514,    37,   163,
    2266        0,     0,     0,   263,   219,   517,   518,     0,     0,     0,
    2267        0,     0,     0,     0,     0,     0,     0,     0,     0,   511,
    2268      511,     0,     0,     0,     0,   595,   363,     0,     0,   163,
    2269       41,    42,     0,     0,     0,     0,     0,     0,   347,   369,
    2270        0,     0,   374,     0,     0,     0,     0,     0,     0,     0,
    2271        0,     0,     0,     0,     0,     0,   511,     0,     0,   351,
    2272        0,   595,     0,     0,     0,     0,     0,   347,     0,   248,
    2273        0,   595,     0,     0,     0,    48,    49,   595,     0,     0,
    2274      363,   363,     0,     0,     0,     0,    75,     0,     0,     0,
    2275      163,     0,     0,    75,     0,   592,   363,   592,   511,     0,
    2276        0,     0,   215,     0,     0,     0,     0,     0,     0,     0,
    2277        0,     0,     0,     0,     0,   363,     0,     0,     0,     0,
    2278        0,     0,     0,     0,    80,     0,    88,     0,     0,     0,
    2279        0,     0,     0,     0,     0,   592,     0,   592,     0,   374,
    2280       88,     0,     0,     0,   363,     0,   163,     0,     0,     0,
    2281        0,     0,     0,    75,   351,     0,   351,     0,     0,     0,
    2282        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2283        0,     0,     0,   524,     0,     0,     0,     0,     0,     0,
    2284        0,     0,   363,   351,     0,   163,     0,     0,     0,     0,
    2285        0,   351,   351,   351,     0,   208,     0,     0,     0,     0,
    2286        0,     0,   351,   351,   228,     0,   232,     0,   234,     0,
    2287        0,     0,     0,     0,    80,     0,   237,     0,   363,     0,
    2288        0,     0,   598,     0,     0,     0,     0,   625,   363,   363,
    2289        0,     0,   595,     0,     0,   222,     0,     0,     0,     0,
    2290      363,     0,     0,     0,     0,     0,     0,   208,     0,   232,
    2291      234,   237,     0,     0,     0,     0,     0,     0,     0,     0,
    2292        0,     0,     0,     0,     0,     0,     0,   511,   511,   511,
    2293      511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
    2294      511,   511,   511,   511,   511,     0,   208,     0,     0,     0,
    2295        0,     0,     0,     0,     0,   221,     0,     0,     0,     0,
    2296        0,     0,     0,     0,    88,     0,     0,     0,     0,   163,
    2297      163,     0,     0,     0,     0,   369,     0,     0,     0,     0,
    2298        0,     0,     0,     0,     0,     0,     0,     0,   363,   351,
    2299        0,     0,     0,     0,     0,     0,   163,     0,     0,     0,
    2300        0,     0,     0,     0,     0,     0,   208,     0,   232,   234,
    2301      237,     0,     0,     0,     0,     0,     0,     0,   351,     0,
    2302        0,     0,     0,     0,   711,     0,     0,     0,     0,   363,
    2303        0,     0,     0,     0,     0,     0,     0,    80,   208,     0,
    2304      163,     0,     0,   208,    80,     0,   594,     0,   594,     0,
    2305        0,     0,   524,     0,   524,     0,     0,   524,     0,   163,
    2306      524,   595,     0,     0,     0,     0,     0,     0,     0,   369,
    2307        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2308      363,     0,   363,   363,     0,     0,   594,     0,   594,     0,
    2309        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2310       88,   511,     0,     0,    80,     0,     0,     0,     0,     0,
    2311        0,   208,     0,     0,     0,     0,     0,     0,     0,     0,
    2312      163,     0,     0,     0,     0,     0,   511,     0,     0,     0,
    2313        0,   208,   369,     0,     0,   799,     0,   629,     0,   234,
    2314      363,   363,     0,     0,     0,     0,     0,     0,     0,     0,
    2315        0,   237,     0,     0,     0,     0,   511,     0,     0,     0,
    2316        0,     0,     0,     0,     0,     0,     0,   598,     0,     0,
    2317        0,     0,     0,     0,     0,     0,     0,   598,     0,     0,
    2318        0,     0,     0,     0,     0,     0,   369,   369,     0,     0,
    2319        0,   208,     0,     0,     0,     0,     0,     0,     0,     0,
    2320        0,     0,   369,     0,     0,     0,     0,     0,     0,     0,
    2321        0,   208,     0,   363,     0,     0,   208,     0,   208,     0,
    2322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2323        0,     0,     0,     0,   208,   524,     0,   208,   208,     0,
    2324        0,     0,     0,     0,   208,     0,     0,     0,     0,     0,
    2325      369,     0,   911,     0,     0,     0,     0,     0,   208,     0,
    2326        0,     0,     0,     0,     0,     0,   208,     0,     0,     0,
    2327        0,     0,     0,     0,     0,     0,     0,     0,    88,     0,
    2328        0,     0,   276,   277,     0,   278,     0,     0,   711,     0,
    2329        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2330        0,     0,     0,     0,     0,     0,     0,     0,   363,     0,
    2331      363,   279,     0,     0,   280,     0,     0,     0,   281,     0,
    2332        0,   282,   283,   273,   284,   285,   286,    44,    45,   511,
    2333      287,   288,     0,     0,     0,     0,     0,   363,     0,     0,
    2334      625,   511,     0,     0,     0,   363,   363,   363,     0,     0,
    2335        0,     0,     0,   289,     0,   378,   363,   363,   379,     0,
    2336        0,    48,    49,   291,   292,   293,   294,     0,    88,     0,
    2337        0,     0,     0,     0,     0,     0,     0,     0,     0,   208,
    2338      511,   629,   234,   237,     0,     0,     0,     0,     0,     0,
    2339        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2340      155,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2341        0,     0,     0,     0,   208,   629,     0,     0,     0,     0,
    2342        0,     0,     0,   208,     0,     0,     0,     0,     0,     0,
    2343      511,     0,     0,     0,   369,     0,     0,     0,     0,   524,
    2344        0,     0,     0,     0,     0,     0,   242,     0,     0,   222,
    2345        0,     0,     0,     0,     0,     0,   247,     0,     0,     0,
    2346        0,     0,     0,     0,     0,     0,     0,     0,     0,   163,
    2347        0,     0,     0,     0,     0,   711,     0,     0,     0,     0,
    2348        0,   208,     0,   363,     0,     0,     0,     0,     0,     0,
    2349        0,   208,     0,     0,     0,     0,   208,     0,     0,     0,
    2350        0,     0,   333,   364,     0,     0,     0,   598,     0,     0,
    2351        0,     0,   363,     0,     0,     0,     0,     0,     0,     0,
    2352        0,     0,   385,     0,     0,     0,   511,   511,   369,   369,
    2353        0,    88,     0,     0,   413,     0,     0,     0,    88,     0,
    2354      595,   413,   595,     0,   417,     0,     0,     0,     0,     0,
    2355        0,     0,     0,     0,     0,     0,     0,     0,   431,     0,
    2356        0,     0,     0,     0,     0,     0,     0,   436,     0,     0,
    2357        0,     0,   208,     0,     0,     0,     0,   444,     0,     0,
    2358      595,     0,   595,     0,   208,     0,     0,     0,     0,   276,
    2359      277,     0,   278,     0,     0,     0,   461,     0,    88,     0,
    2360        0,   472,   208,     0,     0,     0,     0,   413,     0,     0,
    2361        0,     0,   524,     0,   480,     0,     0,     0,   279,     0,
    2362        0,   280,   494,     0,   498,   281,   208,     0,   282,   283,
    2363      273,   284,   285,   286,    44,    45,     0,   287,   288,     0,
    2364        0,     0,     0,   525,     0,     0,     0,     0,     0,     0,
    2365        0,     0,     0,     0,     0,     0,     0,     0,     0,   711,
    2366      289,     0,   378,     0,     0,   413,     0,   749,    48,    49,
    2367      291,   292,   293,   294,   413,   579,     0,   413,   582,     0,
    2368        0,     0,     0,     0,   583,     0,   364,     0,     0,   588,
    2369      615,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2370        0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
    2371        0,     0,     0,     0,     0,     0,   639,     0,     0,     0,
    2372        0,     0,     0,     0,   642,     0,     0,     0,   643,   644,
    2373        0,   645,     0,     0,     0,   524,     0,     0,   656,   657,
    2374        0,   658,   659,   413,   660,     0,   661,   413,     0,     0,
    2375        0,     0,     0,     0,   208,     0,   711,     0,     0,     0,
    2376        0,     0,     0,   583,     0,   208,     0,   511,     0,     0,
    2377        0,   677,     0,     0,     0,     0,     0,     0,     0,   364,
    2378        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2379        0,     0,     0,     0,     0,   688,     0,     0,     0,     0,
    2380        0,     0,   369,   369,     0,     0,     0,   276,   277,     0,
    2381      278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2382      702,     0,     0,     0,     0,   413,     0,   706,   364,   511,
    2383        0,     0,   461,     0,     0,     0,   279,     0,     0,   280,
    2384        0,   511,   511,   281,     0,     0,   282,   283,   273,   284,
    2385      285,   286,    44,    45,     0,   287,   288,     0,     0,     0,
    2386        0,     0,   208,     0,     0,   511,     0,     0,     0,     0,
    2387        0,     0,   744,   364,     0,     0,     0,     0,   289,     0,
    2388      378,     0,     0,   938,   755,     0,    48,    49,   291,   292,
    2389      293,   294,     0,     0,   215,     0,     0,     0,     0,     0,
    2390        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2391        0,     0,     0,     0,     0,     0,   413,   413,     0,     0,
    2392        0,   780,     0,     0,     0,     0,     0,     0,     0,   369,
    2393      790,     0,     0,   791,     0,   794,   364,   511,     0,     0,
    2394        0,     0,     0,     0,   215,     0,     0,     0,     0,   615,
    2395        0,     0,   615,   615,     0,   812,     0,     0,     0,   615,
    2396        0,     0,     0,     0,     0,     0,     0,     0,     0,   833,
    2397        0,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2398      353,   364,     0,     0,     0,     0,   524,   208,   524,     0,
    2399      364,   364,     0,     0,     0,     0,     0,     0,     0,     0,
    2400      855,     0,     0,     0,   276,   277,   364,   278,     0,     0,
    2401      413,   876,     0,     0,   413,   880,     0,     0,     0,     0,
    2402        0,   374,     0,   883,     0,     0,   524,     0,   524,     0,
    2403        0,     0,     0,   279,     0,     0,   280,   890,     0,     0,
    2404      281,     0,     0,   282,   283,   273,   284,   285,   286,    44,
    2405       45,     0,   287,   288,   364,   615,     0,     0,     0,     0,
    2406        0,     0,     0,     0,     0,   242,     0,   163,     0,     0,
    2407        0,     0,     0,     0,     0,   289,     0,   378,     0,     0,
    2408      923,   924,     0,    48,    49,   291,   292,   293,   294,     0,
    2409      931,     0,   364,     0,     0,     0,     0,     0,     0,     0,
    2410        0,     0,     0,     0,   944,     0,     0,     0,     0,   948,
    2411        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2412      315,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2413      339,     0,   413,     0,     0,     0,     0,     0,   208,     0,
    2414        0,   381,   381,     0,     0,     0,     0,     0,     0,   615,
    2415        0,   615,     0,     0,     0,     0,     0,     0,     0,     0,
    2416        0,     0,   615,   353,     0,     0,     0,     0,   353,   353,
    2417        0,   981,     0,     0,     0,     0,     0,     0,   982,     0,
    2418        0,     0,     0,     0,     0,     0,     0,     0,   208,   353,
    2419        0,     0,     0,   353,   984,     0,   985,     0,     0,     0,
    2420        0,     0,     0,     0,     0,     0,     0,     0,     0,   995,
    2421        0,     0,     0,     0,     0,   999,     0,     0,     0,     0,
    2422        0,     0,     0,     0,     0,     0,  1042,     0,     0,   476,
    2423     1043,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2424        0,     0,     0,     0,     0,   413,     0,     0,     0,     0,
    2425        0,     0,     0,     0,     0,     0,   353,   615,   615,     0,
    2426        0,     0,     0,     0,     0,   208,     0,     0,     0,     0,
    2427        0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
    2428        0,     0,     0,     0,     0,     0,   353,     0,     0,     0,
    2429        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2430        0,   413,  1112,     0,     0,   353,     0,     0,     0,     0,
    2431        0,   364,     0,     0,  1115,     0,     0,   413,  1125,     0,
    2432      615,   615,  1132,     0,   208,     0,     0,     0,     0,     0,
    2433        0,     0,   364,   364,     0,     0,     0,     0,     0,     0,
    2434        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2435      353,     0,     0,     0,   381,     0,     0,   354,    10,    11,
     2578      24,    25,    26,    27,    28,    29,    30,    31,    51,    52,
     2579      32,    33,    34,    35,    36,    37,    38,     0,     0,   358,
     2580      39,   279,   280,    40,   281,     0,     0,     0,     0,     0,
     2581       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,     0,     0,     0,   358,     0,
     2583     282,     0,     0,   283,  1371,    44,    45,   284,     0,     0,
     2584     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
     2585     291,     0,     0,     0,     0,     0,   358,     0,   358,     0,
     2586       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2587       0,     0,   292,     0,   293,     0,     0,     0,     0,     0,
     2588      51,    52,   294,   295,   296,   297,     0,     0,     0,     0,
     2589       0,   358,     0,     0,     0,  -134,   358,     0,   358,     0,
     2590       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2591       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2593       0,     0,     1,   206,     3,     4,     5,     6,     7,     8,
     2594       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2595      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     2596      29,    30,    31,     0,   514,    32,    33,    34,    35,    36,
     2597      37,    38,     0,     0,     0,    39,   279,   280,    40,  1005,
     2598    1006,     0,  1007,     0,     0,  1008,  1009,  1010,  1011,  1012,
     2599    1013,  1014,  1015,     0,     0,     0,  1016,     0,     0,     0,
     2600    1017,  1018,     0,  1019,     0,   282,     0,     0,  1020,     0,
     2601    1021,  1022,  1023,     0,     0,   285,   286,   276,   287,   288,
     2602     289,    47,    48,     0,   290,   291,   514,     0,     0,     0,
     2603       0,     0,     0,     0,     0,     0,     0,     0,   514,   514,
     2604       0,     0,     0,     0,     0,     0,     0,   292,     0,   293,
     2605       0,     0,   172,     0,     0,    51,    52,   294,   295,   296,
     2606     297,     0,   514,     0,     0,  1024,     0,     0,     0,     0,
     2607    -134,     1,   206,     3,     4,     5,     6,     7,     8,     9,
     2608      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2609      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     2610      30,    31,     0,     0,    32,    33,    34,    35,    36,    37,
     2611      38,     0,     0,     0,    39,   279,   280,    40,   281,     0,
     2612       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2613       0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
     2614       0,     0,     0,     0,   282,     0,     0,   283,     0,    44,
     2615      45,   284,     0,     0,   285,   286,   276,   287,   288,   289,
     2616      47,    48,     0,   290,   291,     0,     0,     0,     0,     0,
     2617       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2618       0,     0,     0,     0,     0,     0,   292,     0,   293,     0,
     2619       0,     0,     0,     0,    51,    52,   294,   295,   296,   297,
     2620     206,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    24362621      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    24372622      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    2438        0,  1180,   335,    33,    34,     0,     0,     0,     0,     0,
    2439        0,     0,    37,     0,     0,     0,     0,   413,     0,   413,
    2440        0,   413,     0,     0,     0,     0,   413,     0,     0,     0,
    2441        0,     0,   353,   353,     0,     0,   353,     0,     0,     0,
    2442        0,     0,   615,  1210,   204,    42,     0,   315,  1212,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,  1217,     0,
    2444        0,     0,     0,     0,     0,     0,     0,   705,   353,     0,
    2445        0,   353,     0,     0,     0,     0,     0,     0,   353,     0,
    2446      353,     0,  1239,   364,   353,     0,     0,   353,   353,    48,
    2447       49,     0,     0,     0,     0,  1247,     0,     0,     0,  1248,
    2448        0,     0,  1249,   353,     0,     0,     0,     0,     0,     0,
    2449      741,     0,     0,     0,     0,     0,     0,     0,  1258,  1259,
    2450      750,     0,   353,     0,     0,   741,     0,     0,   741,     0,
    2451        0,     0,     0,     0,     0,     0,  1270,     0,   353,     0,
    2452        0,   759,     0,     0,     0,     0,     0,     0,     0,     0,
    2453        0,   353,     0,   353,     0,     0,     0,     0,     0,     0,
    2454      354,     0,   413,     0,     0,   354,   354,   413,     0,     0,
    2455        0,   788,     0,     0,     0,     0,     0,     0,   339,     0,
    2456      364,     0,     0,   750,     0,     0,   354,     0,     0,   353,
    2457      354,     0,     0,     0,     0,     0,     0,     0,   813,     0,
    2458        0,  1316,     0,     0,     0,     0,     0,     0,     0,     0,
    2459        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2460        0,     0,     0,     0,     0,   353,   364,   364,     0,     0,
    2461        0,     0,     0,     0,     0,   353,   353,   126,     0,   353,
    2462      854,   353,   353,     0,     0,     0,     0,   353,   381,     0,
    2463        0,     0,     0,   354,     0,     0,     0,     0,     0,     0,
    2464        0,     0,     0,     0,     0,   413,  1370,     0,     0,   413,
    2465        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2466     1373,     0,  1374,   354,     0,     0,     0,     0,     0,   235,
    2467        0,     0,  1377,     0,  1378,     0,     0,     0,     0,     0,
    2468        0,     0,   354,     0,     0,   245,     0,   246,     0,  1385,
    2469        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2470        0,     0,     0,     0,     0,     0,     0,  1404,  1406,   741,
    2471        0,     0,     0,     0,     0,   353,     0,     0,     0,   750,
    2472     1414,   937,     0,     0,   940,  1415,     0,   354,  1217,     0,
    2473      947,     0,     0,   364,   355,     0,     0,     0,     0,     0,
    2474        0,     0,     0,     0,  1433,     0,     0,     0,   128,     0,
    2475        0,     0,     0,     0,  1440,     0,   353,  1442,     0,  1444,
    2476     1446,  1448,     0,     0,     0,     0,     0,     0,     0,     0,
    2477        0,   964,   965,   414,   415,     0,     0,     0,   419,     0,
    2478      421,   422,     0,     0,     0,     0,     0,   339,   353,   354,
    2479      354,   353,     0,   354,     0,     0,     0,     0,     0,  1482,
    2480      128,  1484,     0,     0,     0,     0,   353,   353,     0,   353,
    2481      353,  1217,     0,     0,     0,     0,   128,     0,   128,     0,
    2482        0,  1500,     0,     0,   413,   354,     0,     0,   354,     0,
    2483      993,     0,     0,     0,   381,   354,     0,   354,     0,     0,
    2484        0,   354,     0,   268,   354,   354,     0,     0,     0,     0,
    2485        0,     0,     0,     0,   413,   413,     0,     0,     0,     0,
    2486      354,     0,     0,     0,     0,   339,     0,   353,   353,     0,
    2487        0,     0,     0,     0,     0,     0,     0,     0,     0,   354,
    2488        0,     0,     0,     0,   413,     0,     0,     0,     0,     0,
    2489        0,     0,     0,     0,     0,   354,     0,     0,     0,     0,
    2490      315,     0,   128,     0,   128,   128,   339,     0,   354,   128,
    2491      354,   128,   128,   381,     0,     0,     0,   355,   940,     0,
    2492      586,   741,   355,   355,     0,     0,     0,     0,     0,     0,
    2493        0,     0,     0,     0,     0,     0,     0,     0,     0,   630,
    2494      353,  1119,     0,   355,     0,     0,   354,   355,     0,     0,
    2495        0,     0,  1137,     0,     0,     0,     0,     0,     0,     0,
    2496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,     0,   381,     0,  1154,   128,     0,     0,     0,     0,
    2498        0,     0,   354,     0,     0,     0,     0,     0,     0,   940,
    2499      940,   671,   354,   354,     0,     0,   354,     0,   354,   354,
    2500        0,     0,     0,     0,   354,     0,     0,     0,     0,     0,
    2501      355,     0,     0,     0,     0,     0,  1185,     0,     0,     0,
    2502        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2503        0,     0,     0,     0,     0,   353,     0,   353,     0,     0,
    2504      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2505        0,   128,     0,     0,     0,     0,     0,   276,   277,   355,
    2506      278,     0,     0,     0,   353,     0,     0,     0,     0,   940,
    2507      128,     0,   353,   353,   353,     0,     0,     0,     0,     0,
    2508        0,     0,     0,   353,   353,     0,   279,     0,     0,   280,
    2509      854,     0,   354,   281,     0,     0,   282,   283,   273,   284,
    2510      285,   286,    44,    45,   355,   287,   288,     0,  1250,  1251,
    2511        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512        0,     0,   128,     0,     0,     0,     0,     0,   508,     0,
    2513      378,     0,     0,   354,     0,     0,    48,    49,   291,   292,
    2514      293,   294,     0,     0,     0,     0,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,   786,   787,     0,
    2516        0,     0,     0,     0,     0,   354,   355,   355,   354,     0,
    2517      355,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2518        0,     0,     0,   354,   354,     0,   354,   354,     0,     0,
    2519      819,     0,     0,   822,   823,     0,   826,     0,   828,   829,
    2520        0,     0,   355,   831,   832,   355,     0,     0,     0,     0,
    2521      353,     0,   355,     0,   355,     0,     0,     0,   355,     0,
    2522        0,   355,   355,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,   355,     0,   353,
    2524        0,     0,     0,     0,   354,   354,     0,   874,     0,     0,
    2525        0,   878,     0,     0,     0,     0,   355,     0,     0,  1360,
    2526        0,     0,     0,   741,     0,     0,     0,   353,     0,   353,
    2527        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
    2528        0,     0,     0,     0,     0,   355,     0,   355,   128,   128,
    2529        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,   353,     0,     0,     0,     0,   353,     0,   353,
    2531        0,     0,     0,     0,     0,     0,     0,   354,     0,     0,
    2532        0,   128,     0,   355,   128,   128,     0,   128,     0,   128,
    2533      128,     0,     0,     0,   128,   128,     0,     0,     0,     0,
    2534        0,     0,     0,     0,     0,   976,     0,     0,     0,     0,
    2535        0,     0,    10,    11,    12,    13,    14,    15,    16,   355,
    2536        0,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2537      355,     0,     0,   355,     0,   355,   355,     0,   128,     0,
    2538        0,   355,   128,     0,   276,   277,    37,   278,    10,    11,
    2539       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2540       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    2541     -307,     0,   354,   279,   354,     0,   280,     0,     0,     0,
    2542      281,     0,    37,   282,   283,   273,   284,   285,   286,    44,
    2543       45,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2544        0,   354,     0,     0,     0,     0,     0,     0,     0,   354,
    2545      354,   354,     0,     0,     0,   289,     0,   378,  -307,     0,
    2546      354,   354,     0,   337,    49,   291,   292,   293,   294,   355,
    2547        0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
    2548       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2549       27,    28,    29,    30,    31,  -308,     0,     0,   315,     0,
    2550        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
    2551      355,     0,     0,     0,     0,    10,    11,    12,    13,    14,
    2552       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2553       25,    26,    27,    28,    29,    30,    31,     0,  1110,    32,
    2554       33,    34,   355,  -308,     0,   355,     0,     0,     0,    37,
    2555        0,     0,     0,     0,  1123,     0,     0,  1127,  1130,     0,
    2556      355,   355,     0,   355,   355,     0,     0,     0,     0,     0,
    2557        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
    2558        0,    41,    42,    43,     0,     0,     0,   354,     0,     0,
    2559        0,     0,    44,    45,    10,    11,    12,    13,    14,    15,
    2560       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2561       26,    27,    28,    29,    30,    31,   354,     0,    46,     0,
    2562       47,   355,   355,     0,     0,     0,    48,    49,    37,     0,
    2563     1189,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2564        0,     0,     0,     0,   354,     0,   354,     0,  1206,  1207,
    2565        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2566        0,     0,     0,     0,     0,     0,     0,     0,     0,   128,
    2567        0,     0,     0,     0,     0,     0,     0,     0,     0,   354,
    2568        0,     0,     0,     0,   354,   128,   354,     0,   128,   128,
    2569        0,     0,     0,     0,   355,     0,     0,     0,     0,     0,
    2570        0,     0,     0,     0,     0,  1127,     0,     0,     0,     0,
    2571        0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
    2572        2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2573       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2574       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    2575        0,     0,    32,    33,    34,    35,     0,     0,     0,    36,
    2576        0,   128,    37,    38,     0,     0,     0,  1291,     0,     0,
    2577        0,     0,     0,     0,   128,     0,     0,     0,     0,   128,
    2578      128,     0,     0,     0,     0,     0,  1301,    39,     0,   355,
    2579        0,   355,    40,     0,    41,    42,    43,     0,     0,     0,
    2580        0,     0,     0,     0,     0,    44,    45,     0,     0,     0,
    2581        0,     0,     0,     0,     0,     0,     0,     0,   355,     0,
    2582        0,     0,     0,     0,     0,     0,   355,   355,   355,     0,
    2583        0,    46,     0,    47,     0,     0,   128,   355,   355,    48,
    2584       49,     0,     0,     0,     0,     1,   203,     3,     4,     5,
    2585        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2586       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2587       26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
    2588       34,    35,  1368,     0,     0,    36,   276,   277,    37,   278,
    2589        0,     0,     0,     0,     0,     0,     0,     0,   128,     0,
    2590        0,     0,     0,     0,   276,   277,     0,   278,     0,     0,
    2591        0,     0,     0,     0,     0,   279,     0,   128,   280,     0,
    2592       41,    42,   281,     0,     0,   282,   283,   273,   284,   285,
    2593      286,    44,    45,   279,   287,   288,   280,     0,     0,     0,
    2594      281,     0,     0,   282,   283,   273,   284,   285,   286,    44,
    2595       45,     0,   287,   288,     0,     0,     0,   289,     0,   290,
    2596        0,     0,     0,     0,   355,    48,    49,   291,   292,   293,
    2597      294,     0,     0,     0,     0,   513,     0,   378,     0,     0,
    2598     -134,     0,     0,    48,    49,   291,   292,   293,   294,     0,
    2599        0,     0,     0,   355,     0,     0,     0,     0,     0,     0,
    2600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2601        0,     0,     0,   128,     0,     0,     0,     0,     0,     0,
    2602        0,   355,     0,   355,     1,   203,     3,     4,     5,     6,
    2603        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2604       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2605       27,    28,    29,    30,    31,     0,   355,    32,    33,    34,
    2606       35,   355,     0,   355,    36,   276,   277,    37,  1002,  1003,
    2607        0,  1004,     0,     0,  1005,  1006,  1007,  1008,  1009,  1010,
    2608     1011,  1012,     0,     0,     0,  1013,     0,     0,     0,  1014,
    2609     1015,     0,  1016,     0,   279,     0,     0,  1017,     0,  1018,
    2610     1019,  1020,     0,     0,   282,   283,   273,   284,   285,   286,
    2611       44,    45,     0,   287,   288,     0,     0,     0,     0,     0,
    2612        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2613        0,     0,     0,     0,     0,     0,   289,     0,   290,     0,
    2614        0,   169,     0,     0,    48,    49,   291,   292,   293,   294,
    2615        0,     0,     0,     0,  1021,     0,     0,     0,     0,  -134,
    2616        1,   203,     3,     4,     5,     6,     7,     8,     9,    10,
    2617       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2618       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2619       31,     0,     0,    32,    33,    34,    35,     0,     0,     0,
    2620       36,   276,   277,    37,   278,     0,     0,     0,     0,     0,
    2621        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2623      279,     0,     0,   280,     0,    41,    42,   281,     0,     0,
    2624      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    2625      288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627        0,     0,   289,     0,   290,     0,     0,     0,     0,     0,
    2628       48,    49,   291,   292,   293,   294,   203,     3,     4,     5,
    2629        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2630       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2631       26,    27,    28,    29,    30,    31,     0,     0,   335,    33,
    2632       34,     0,     0,     0,     0,     0,   276,   277,    37,   278,
    2633        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2634        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2635        0,     0,     0,     0,     0,   279,     0,     0,   280,     0,
    2636       41,    42,   281,     0,     0,   282,   283,   273,   284,   285,
    2637      286,    44,    45,     0,   287,   288,     0,     0,     0,     0,
    2638        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639        0,     0,     0,     0,     0,     0,     0,   289,     0,   336,
    2640        0,     0,     0,     0,   749,   337,    49,   291,   292,   293,
    2641      294,   203,     3,     4,     5,     6,     7,     8,     9,    10,
    2642       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2643       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2644       31,     0,     0,   335,    33,    34,     0,     0,     0,     0,
    2645        0,   276,   277,    37,   278,     0,     0,     0,     0,     0,
    2646        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2648      279,     0,     0,   280,     0,    41,    42,   281,     0,     0,
    2649      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    2650      288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2651        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2652        0,     0,   289,     0,   336,     0,     0,     0,     0,   749,
    2653       48,    49,   291,   292,   293,   294,   203,     3,     4,     5,
    2654        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2655       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2656       26,    27,    28,    29,    30,    31,     0,     0,   335,    33,
    2657       34,     0,     0,     0,     0,     0,   276,   277,    37,   278,
    2658        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2659        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2660        0,     0,     0,     0,     0,   279,     0,     0,   280,     0,
    2661       41,    42,   281,     0,     0,   282,   283,   273,   284,   285,
    2662      286,    44,    45,     0,   287,   288,     0,     0,     0,     0,
    2663        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,   289,     0,   336,
    2665        0,     0,     0,     0,     0,   337,    49,   291,   292,   293,
    2666      294,   203,     3,     4,     5,     6,     7,     8,     9,    10,
    2667       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2668       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2669       31,     0,     0,   335,    33,    34,     0,     0,     0,     0,
    2670        0,   276,   277,    37,   278,     0,     0,     0,     0,     0,
    2671        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2672        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2673      279,     0,     0,   280,     0,   204,    42,   281,     0,     0,
    2674      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    2675      288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2676        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2677        0,     0,   289,     0,   961,     0,     0,     0,     0,     0,
    2678      962,    49,   291,   292,   293,   294,   203,     3,     4,     5,
    2679        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2680       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2681       26,    27,    28,    29,    30,    31,     0,     0,   335,    33,
    2682       34,     0,     0,     0,     0,     0,   276,   277,    37,   278,
    2683        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2684        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685        0,     0,     0,     0,     0,   279,     0,     0,   280,     0,
    2686      204,    42,   281,     0,     0,   282,   283,   273,   284,   285,
    2687      286,    44,    45,  1134,   287,   288,     0,     0,     0,     0,
    2688       10,    11,    12,    13,    14,    15,    16,     0,     0,     0,
    2689        0,   276,   277,     0,   278,     0,     0,   289,     0,   378,
    2690        0,     0,     0,     0,     0,    48,    49,   291,   292,   293,
    2691      294,     0,   276,   277,    37,   278,     0,     0,     0,     0,
    2692      279,     0,     0,   646,     0,   139,   140,   281,     0,     0,
    2693      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    2694      288,   279,     0,     0,   280,     0,     0,     0,   281,     0,
    2695        0,   282,   283,   273,   284,   285,   286,    44,    45,     0,
    2696      287,   288,   289,     0,   647,     0,   648,   379,     0,     0,
    2697       48,    49,   291,   292,   293,   294,     0,     0,     0,     0,
    2698        0,     0,     0,   289,     0,   378,     0,     0,     0,     0,
    2699        0,  1135,    49,   291,   292,   293,   294,     1,     2,     3,
     2623       0,     0,   338,    33,    34,    35,    36,    37,     0,     0,
     2624       0,     0,     0,   279,   280,    40,   281,     0,     0,     0,
     2625       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,     0,   282,     0,     0,   283,     0,    44,    45,   284,
     2628       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
     2629       0,   290,   291,     0,     0,     0,     0,     0,     0,     0,
     2630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2631       0,     0,     0,     0,   292,     0,   339,     0,     0,     0,
     2632       0,   752,   340,    52,   294,   295,   296,   297,   206,     3,
    27002633       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    27012634      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    27022635      24,    25,    26,    27,    28,    29,    30,    31,     0,     0,
    2703       32,    33,    34,    35,     0,     0,     0,    36,     0,     0,
    2704       37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
    2705        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2706        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
    2707       40,     0,    41,    42,    43,     0,     0,     0,     0,     0,
    2708        0,     0,     0,    44,    45,     0,     0,     0,     0,     0,
    2709        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2710        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
    2711        0,    47,     0,     0,     0,  -546,     0,    48,    49,   202,
    2712      203,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2713       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2714       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    2715        0,     0,    32,    33,    34,     0,     0,     0,     0,     0,
    2716        0,     0,    37,    10,    11,    12,    13,    14,    15,    16,
    2717       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2718       27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
    2719        0,     0,    40,     0,   204,    42,    43,    37,     0,     0,
    2720        0,     0,     0,     0,     0,    44,    45,     0,     0,     0,
    2721        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2722        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2723       42,    46,     0,   205,     0,     0,     0,     0,     0,    48,
    2724       49,     1,   203,     3,     4,     5,     6,     7,     8,     9,
     2636     338,    33,    34,    35,    36,    37,     0,     0,     0,     0,
     2637       0,   279,   280,    40,   281,     0,     0,     0,     0,     0,
     2638       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2639       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2640     282,     0,     0,   283,     0,    44,    45,   284,     0,     0,
     2641     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
     2642     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2643       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2644       0,     0,   292,     0,   339,     0,     0,     0,     0,   752,
     2645      51,    52,   294,   295,   296,   297,   206,     3,     4,     5,
     2646       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2647      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2648      26,    27,    28,    29,    30,    31,     0,     0,   338,    33,
     2649      34,    35,    36,    37,     0,     0,     0,     0,     0,   279,
     2650     280,    40,   281,     0,     0,     0,     0,     0,     0,     0,
     2651       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2652       0,     0,     0,     0,     0,     0,     0,     0,   282,     0,
     2653       0,   283,     0,    44,    45,   284,     0,     0,   285,   286,
     2654     276,   287,   288,   289,    47,    48,     0,   290,   291,     0,
     2655       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2656       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2657     292,     0,   339,     0,     0,     0,     0,     0,   340,    52,
     2658     294,   295,   296,   297,   206,     3,     4,     5,     6,     7,
     2659       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2660      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2661      28,    29,    30,    31,     0,     0,   338,    33,    34,    35,
     2662      36,    37,     0,     0,     0,     0,     0,   279,   280,    40,
     2663     281,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2664       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2665       0,     0,     0,     0,     0,     0,   282,     0,     0,   283,
     2666       0,   207,    45,   284,     0,     0,   285,   286,   276,   287,
     2667     288,   289,    47,    48,     0,   290,   291,     0,     0,     0,
     2668       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2669       0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
     2670     964,     0,     0,     0,     0,     0,   965,    52,   294,   295,
     2671     296,   297,   206,     3,     4,     5,     6,     7,     8,     9,
    27252672      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    27262673      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    2727       30,    31,  -307,     0,    32,    33,    34,    35,     0,     0,
    2728        0,    36,     0,     0,    37,     0,     0,     0,     0,     0,
    2729        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2730        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2731        0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
    2732     -307,     0,     0,     1,   203,     3,     4,     5,     6,     7,
     2674      30,    31,     0,     0,   338,    33,    34,    35,    36,    37,
     2675       0,     0,     0,     0,     0,   279,   280,    40,   281,     0,
     2676       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2677       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2678       0,     0,     0,     0,   282,     0,     0,   283,     0,   207,
     2679      45,   284,     0,     0,   285,   286,   276,   287,   288,   289,
     2680      47,    48,     0,   290,   291,     0,     0,     0,     0,     0,
     2681       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2682       0,     0,     0,     0,     0,     0,   292,     0,   381,     0,
     2683       0,     0,     0,     0,    51,    52,   294,   295,   296,   297,
     2684    -545,     0,     0,     1,     2,     3,     4,     5,     6,     7,
    27332685       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    27342686      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2735       28,    29,    30,    31,     0,    47,    32,    33,    34,    35,
    2736        0,    48,    49,    36,     0,     0,    37,     0,     0,     0,
    2737        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2738        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2739        0,     0,     0,     0,     0,     0,     0,     0,    41,    42,
    2740      203,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    2741       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2742       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    2743        0,     0,    32,    33,    34,     0,     0,    47,     0,     0,
    2744        0,     0,    37,    48,    49,     0,     0,     0,     0,     0,
    2745        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2746        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2747        0,     0,    40,     0,   204,    42,    43,     0,     0,     0,
    2748        0,     0,     0,     0,     0,    44,    45,     0,     0,     0,
    2749        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2750        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2751        0,    46,     0,   205,     0,     0,     0,     0,     0,    48,
    2752       49,   203,     3,     4,     5,     6,     7,     8,     9,    10,
    2753       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2754       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2755       31,     0,     0,   335,    33,    34,     0,     0,     0,     0,
    2756        0,     0,     0,    37,    10,    11,    12,    13,    14,    15,
    2757       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2758       26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
    2759       34,   483,   484,   485,   486,    41,    42,     0,    37,     0,
    2760        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2761        0,     0,     0,     0,     0,     0,     0,     0,     0,  1337,
    2762        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2763       41,    42,     0,     0,   684,     0,     0,     0,     0,     0,
    2764       48,    49,   203,     3,     4,     5,     6,     7,     8,     9,
    2765       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2766       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    2767       30,    31,     0,     0,   335,    33,    34,     0,     0,     0,
    2768        0,     0,     0,     0,    37,    10,    11,    12,    13,    14,
    2769       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2770       25,    26,    27,    28,    29,    30,    31,     0,     0,   335,
    2771       33,    34,     0,     0,     0,     0,    41,    42,     0,    37,
    2772        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2774     1339,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2775        0,    41,    42,     0,     0,   684,     0,     0,     0,     0,
    2776        0,    48,    49,   203,     3,     4,     5,     6,     7,     8,
    2777        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2778       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    2779       29,    30,    31,     0,     0,   335,    33,    34,     0,     0,
    2780        0,     0,     0,     0,     0,    37,     0,     0,     0,     0,
    2781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2782        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2783        0,     0,     0,     0,     0,     0,     0,   204,    42,   203,
     2687      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
     2688      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
     2689      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2690       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2691       0,     0,     0,     0,    42,     0,     0,     0,     0,    43,
     2692       0,    44,    45,    46,     0,     0,     0,     0,     0,     0,
     2693       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2695       0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
     2696      50,     0,     0,     0,     0,     0,    51,    52,     1,     2,
    27842697       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    27852698      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    27862699      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2787        0,   335,    33,    34,     0,     0,   261,     0,     0,     0,
    2788        0,    37,    48,    49,     0,     0,     0,     0,     0,     0,
    2789        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2791        0,     0,     0,    41,    42,   203,     3,     4,     5,     6,
     2700       0,    32,    33,    34,    35,    36,    37,    38,     0,     0,
     2701       0,    39,     0,     0,    40,    41,     0,     0,     0,     0,
     2702       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2703       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
     2704       0,     0,     0,     0,    43,     0,    44,    45,    46,     0,
     2705       0,     0,     0,     0,     0,     0,     0,    47,    48,     0,
     2706       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2707       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2708       0,     0,     0,    49,     0,    50,     0,     0,     0,  -549,
     2709       0,    51,    52,     1,     2,     3,     4,     5,     6,     7,
     2710       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2711      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2712      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
     2713      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
     2714      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2715       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2716       0,     0,     0,     0,    42,     0,     0,     0,     0,    43,
     2717       0,    44,    45,    46,     0,     0,     0,     0,     0,     0,
     2718       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
     2719       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2720       0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
     2721      50,     0,     0,     0,     0,     0,    51,    52,     1,   206,
     2722       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2723      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2724      23,    24,    25,    26,    27,    28,    29,    30,    31,  -307,
     2725       0,    32,    33,    34,    35,    36,    37,    38,     0,     0,
     2726       0,    39,     0,     0,    40,     0,     0,     0,     0,     0,
     2727       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2728       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2729       0,     0,     0,     0,     0,     0,    44,    45,     0,     0,
     2730    -307,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2731       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2732       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2733       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
     2734       0,    51,    52,     1,   206,     3,     4,     5,     6,     7,
     2735       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2736      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2737      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
     2738      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
     2739     205,   206,     3,     4,     5,     6,     7,     8,     9,    10,
     2740      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2741      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2742      31,    44,    45,    32,    33,    34,    35,    36,    37,     0,
     2743       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
     2744       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2745       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2746      50,     0,     0,     0,     0,     0,    51,    52,   207,    45,
     2747       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2748       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2749       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2750       0,     0,     0,     0,     0,     0,     0,   208,     0,     0,
     2751       0,     0,     0,    51,    52,   206,     3,     4,     5,     6,
    27922752       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    27932753      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27942754      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
    2795        0,     0,   684,     0,     0,     0,     0,    37,    48,    49,
    2796        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2797        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2798        0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
    2799       42,     0,     0,     0,     0,     0,   464,   203,     3,     4,
     2755      35,    36,    37,     0,     0,     0,     0,     0,     0,     0,
     2756      40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2757       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2758       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2759      43,     0,   207,    45,    46,     0,     0,     0,     0,     0,
     2760       0,     0,     0,    47,    48,     0,     0,     0,     0,     0,
     2761       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2762       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
     2763       0,   208,     0,     0,     0,     0,     0,    51,    52,   206,
     2764       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2765      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2766      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
     2767       0,   338,    33,    34,    35,    36,    37,     0,     0,     0,
     2768       0,     0,     0,     0,    40,     0,   206,     3,     4,     5,
     2769       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2770      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2771      26,    27,    28,    29,    30,    31,    44,    45,   338,    33,
     2772      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
     2773       0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
     2774       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2775       0,     0,     0,     0,  -430,   687,     0,     0,     0,     0,
     2776       0,    51,    52,    44,    45,     0,     0,     0,     0,     0,
     2777       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2778       0,     0,     0,     0,     0,     0,     0,  1340,     0,     0,
     2779       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2780       0,     0,   687,     0,     0,     0,     0,     0,    51,    52,
     2781     206,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     2782      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2783      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
     2784       0,     0,   338,    33,    34,    35,    36,    37,     0,     0,
     2785       0,     0,     0,     0,     0,    40,     0,   206,     3,     4,
    28002786       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    28012787      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2802       25,    26,    27,    28,    29,    30,    31,     0,   205,    32,
    2803       33,    34,     0,     0,    48,    49,     0,     0,     0,    37,
     2788      25,    26,    27,    28,    29,    30,    31,    44,    45,   338,
     2789      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
     2790       0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
     2791       0,  1342,     0,     0,     0,     0,     0,     0,     0,     0,
     2792       0,     0,     0,     0,     0,     0,   687,     0,     0,     0,
     2793       0,     0,    51,    52,   207,    45,     0,     0,     0,     0,
     2794       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2795       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2796       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2797       0,     0,     0,   264,     0,     0,     0,     0,     0,    51,
     2798      52,   206,     3,     4,     5,     6,     7,     8,     9,    10,
     2799      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2800      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2801      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
     2802       0,     0,     0,     0,     0,     0,    40,     0,   206,     3,
     2803       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2804      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2805      24,    25,    26,    27,    28,    29,    30,    31,    44,    45,
     2806      32,    33,    34,    35,    36,    37,     0,     0,     0,     0,
     2807       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
     2808       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2809       0,     0,     0,     0,     0,     0,     0,   687,     0,     0,
     2810       0,     0,     0,    51,    52,   207,    45,     0,     0,     0,
     2811       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2812       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2813       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2814       0,     0,     0,     0,   208,     0,     0,     0,     0,     0,
     2815      51,    52,   467,   206,     3,     4,     5,     6,     7,     8,
     2816       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2817      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     2818      29,    30,    31,     0,     0,    32,    33,    34,    35,    36,
     2819      37,     0,     0,     0,     0,     0,     0,     0,    40,    10,
     2820      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2821      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2822      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
     2823      44,    45,     0,     0,   279,   280,    40,   281,     0,     0,
     2824       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2825       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2826       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
     2827     284,     0,    -3,   285,   286,   276,   287,   288,   289,    47,
     2828      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
     2829       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2830       0,     0,     0,     0,     0,   292,     0,   522,     0,     0,
     2831     172,     0,     0,    51,    52,   294,   295,   296,   297,    10,
     2832      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2833      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2834      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
     2835       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
     2836       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2837       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2838       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
     2839     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2840      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
     2841       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,     0,   292,   -40,   293,     0,     0,
     2843       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
     2844      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2845      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2846      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
     2847       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
     2848       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2849       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2850       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
     2851     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2852      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
     2853       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2854       0,     0,     0,     0,     0,   292,     0,   293,     0,     0,
     2855       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
     2856      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2857      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2858      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
     2859       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
     2860       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2861       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2862       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
     2863     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2864      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
     2865       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2866       0,     0,     0,     0,     0,   292,     0,   339,     0,     0,
     2867       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
     2868      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2869      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2870      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
     2871       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
     2872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2873       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2874       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
     2875     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2876      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
     2877       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2878       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
     2879       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
     2880      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2881      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2882      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
     2883       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
     2884       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2885       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2886       0,     0,     0,     0,     0,     0,   115,     0,    44,    45,
     2887       0,     0,     0,     0,     0,     0,     0,     0,     0,    47,
     2888      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2889       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2890       0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
     2891       0,     0,     0,    51,    52,    10,    11,    12,    13,    14,
     2892      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2893      25,    26,    27,    28,    29,    30,    31,     0,     0,    32,
     2894      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
     2895       0,     0,    40,   898,     0,     0,     0,     0,     0,     0,
     2896       0,     0,    10,    11,    12,    13,    14,    15,    16,    17,
     2897      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2898      28,    29,    30,    31,    44,    45,    32,    33,    34,    35,
     2899      36,    37,     0,     0,     0,     0,     0,     0,     0,    40,
     2900     898,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2901       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2902       0,     0,     0,   740,     0,     0,     0,   899,     0,    51,
     2903      52,    44,    45,     0,    10,    11,    12,    13,    14,    15,
     2904      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2905      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
     2906      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
     2907     740,    40,   898,     0,  1212,     0,    51,    52,     0,     0,
     2908       0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2909      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     2910      29,    30,    31,    44,    45,    32,    33,    34,    35,    36,
     2911      37,     0,     0,     0,     0,     0,     0,     0,    40,     0,
     2912       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2913       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2914       0,     0,   740,     0,     0,     0,  1298,     0,    51,    52,
     2915      44,    45,     0,    10,    11,    12,    13,    14,    15,    16,
     2916      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     2917      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
     2918      35,    36,    37,     0,     0,     0,     0,     0,     0,   251,
     2919      40,     0,     0,     0,     0,    51,    52,     0,     0,     0,
     2920      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2921      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     2922      30,    31,    44,    45,    32,    33,    34,    35,    36,    37,
     2923       0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
     2924       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2925       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2926       0,    50,     0,     0,     0,     0,     0,    51,    52,   207,
     2927      45,     0,    10,    11,    12,    13,    14,    15,    16,    17,
     2928      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     2929      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
     2930      36,    37,     0,     0,     0,     0,     0,     0,   264,    40,
     2931       0,     0,     0,     0,    51,    52,     0,     0,     0,    10,
     2932      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2933      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2934      31,    44,    45,   338,    33,    34,    35,    36,    37,     0,
     2935       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
     2936       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2937       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2938     334,     0,     0,     0,     0,     0,    51,    52,    44,    45,
     2939       0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2940      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     2941      29,    30,    31,     0,     0,   338,    33,    34,    35,    36,
     2942      37,     0,     0,     0,     0,     0,     0,   251,    40,     0,
     2943       0,     0,     0,    51,    52,     0,     0,     0,    10,    11,
     2944      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2945      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
     2946      44,    45,    32,    33,    34,    35,    36,    37,     0,     0,
     2947       0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
     2948       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2949       0,     0,     0,     0,     0,     0,     0,     0,     0,   334,
     2950       0,     0,     0,     0,     0,    51,    52,    44,    45,     0,
     2951      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2952      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     2953      30,    31,     0,     0,   338,    33,    34,    35,    36,    37,
     2954       0,     0,     0,     0,     0,     0,   740,    40,     0,     0,
     2955       0,     0,    51,    52,     0,     0,     0,    10,    11,    12,
     2956      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2957      23,    24,    25,    26,    27,    28,    29,    30,    31,   207,
     2958      45,   338,    33,    34,    35,    36,    37,     0,     0,     0,
     2959       0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
     2960       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2961       0,     0,     0,     0,     0,     0,     0,     0,   264,     0,
     2962       0,     0,     0,     0,    51,    52,    44,    45,     0,    10,
     2963      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2964      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     2965      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
     2966       0,     0,     0,     0,     0,   687,    40,     0,     0,     0,
     2967       0,    51,    52,     0,     0,     0,    10,    11,    12,    13,
     2968      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2969      24,    25,    26,    27,    28,    29,    30,    31,    44,    45,
     2970     338,    33,    34,    35,    36,    37,     0,     0,     0,     0,
     2971       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
     2972       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2973       0,     0,     0,     0,     0,     0,     0,   740,     0,     0,
     2974       0,     0,     0,    51,    52,   207,    45,   206,     3,     4,
     2975       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2976      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2977      25,    26,    27,    28,    29,    30,    31,     0,     0,   338,
     2978      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
     2979      51,    52,    40,     0,   279,   280,     0,   281,  1006,     0,
     2980    1007,     0,     0,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
     2981    1015,     0,     0,  1533,  1016,     0,     0,     0,  1017,  1018,
     2982       0,  1019,     0,   282,    44,    45,  1020,     0,   175,   176,
     2983    1023,     0,     0,   285,   286,   276,   287,   288,   289,    47,
     2984      48,     0,   290,   291,     0,     0,     0,     0,  1305,     0,
     2985       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2986       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
     2987     172,     0,     0,    51,    52,   294,   295,   296,   297,     0,
     2988       0,   279,   280,  1024,   281,  1006,     0,  1007,  -134,     0,
     2989    1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,     0,     0,
     2990       0,  1016,     0,     0,     0,  1017,  1018,     0,  1019,     0,
     2991     282,     0,     0,  1020,     0,   175,   176,  1023,     0,     0,
     2992     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
     2993     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2994       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2995       0,     0,   292,     0,   381,     0,     0,   172,     0,     0,
     2996      51,    52,   294,   295,   296,   297,     0,     0,     0,     0,
     2997    1024,     0,     0,   279,   280,  -134,   281,  1006,     0,  1007,
     2998    1392,  1393,  1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,
     2999       0,     0,  1533,  1016,     0,     0,     0,  1017,  1018,     0,
     3000    1019,     0,   282,     0,     0,  1020,     0,   175,   176,  1023,
     3001       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
     3002       0,   290,   291,     0,     0,     0,     0,     0,     0,     0,
     3003       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3004       0,     0,     0,     0,   292,     0,   381,     0,     0,   172,
     3005       0,     0,    51,    52,   294,   295,   296,   297,     0,     0,
     3006     279,   280,  1024,   281,  1006,     0,  1007,  1392,  1393,  1008,
     3007    1009,  1010,  1011,  1012,  1013,  1014,  1015,     0,     0,     0,
     3008    1016,     0,     0,     0,  1017,  1018,     0,  1019,     0,   282,
     3009       0,     0,  1020,     0,   175,   176,  1023,     0,     0,   285,
     3010     286,   276,   287,   288,   289,    47,    48,     0,   290,   291,
     3011       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3012       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3013       0,   292,     0,   381,     0,     0,   172,     0,     0,    51,
     3014      52,   294,   295,   296,   297,     0,     0,   279,   280,  1024,
     3015     281,  1006,     0,  1007,     0,     0,  1008,  1009,  1010,  1011,
     3016    1012,  1013,  1014,  1015,     0,     0,     0,  1016,     0,     0,
     3017       0,  1017,  1018,     0,  1019,     0,   282,     0,     0,  1020,
     3018       0,   175,   176,  1023,     0,     0,   285,   286,   276,   287,
     3019     288,   289,    47,    48,     0,   290,   291,     0,     0,     0,
     3020       0,     0,     0,   279,   280,     0,   281,     0,     0,     0,
     3021       0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
     3022     381,   279,   280,   172,   281,     0,    51,    52,   294,   295,
     3023     296,   297,   282,     0,     0,   283,  1024,     0,     0,   284,
     3024       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
     3025     282,   290,   291,   283,     0,     0,     0,   284,     0,     0,
     3026     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
     3027     291,     0,     0,     0,   292,     0,   381,   279,   280,     0,
     3028     281,     0,    51,    52,   294,   295,   296,   297,     0,     0,
     3029       0,     0,   511,     0,   381,   279,   280,     0,   281,     0,
     3030      51,    52,   294,   295,   296,   297,   282,     0,     0,   283,
     3031       0,     0,     0,   284,     0,     0,   285,   286,   276,   287,
     3032     288,   289,    47,    48,   282,   290,   291,   283,     0,     0,
     3033       0,   284,     0,     0,   285,   286,   276,   287,   288,   289,
     3034      47,    48,     0,   290,   291,     0,     0,     0,   516,     0,
     3035     381,   279,   280,     0,   281,     0,    51,    52,   294,   295,
     3036     296,   297,     0,     0,     0,     0,   519,     0,   381,   279,
     3037     280,     0,   281,     0,    51,    52,   294,   295,   296,   297,
     3038     282,     0,     0,   283,     0,     0,     0,   284,     0,     0,
     3039     285,   286,   276,   287,   288,   289,    47,    48,   282,   290,
     3040     291,   283,     0,     0,     0,   284,     0,     0,   285,   286,
     3041     276,   287,   288,   289,    47,    48,     0,   290,   291,     0,
     3042       0,     0,   292,     0,   381,     0,     0,     0,     0,     0,
     3043     707,    52,   294,   295,   296,   297,     0,     0,     0,     0,
     3044     292,     0,   381,     0,     0,     0,     0,     0,   340,    52,
     3045     294,   295,   296,   297,    10,    11,    12,    13,    14,    15,
     3046      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3047      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
     3048      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
     3049       0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
     3050       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3051       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3052       0,   115,     0,    44,    45,     0,     0,     0,     0,     0,
     3053       0,     0,     0,     0,    47,    48,   205,   206,     3,     4,
     3054       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3055      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3056      25,    26,    27,    28,    29,    30,    31,     0,     0,    32,
     3057      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
     3058       0,     0,    40,   467,   206,     3,     4,     5,     6,     7,
     3059       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3060      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3061      28,    29,    30,    31,   207,    45,    32,    33,    34,    35,
     3062      36,    37,     0,     0,     0,     0,     0,     0,     0,    40,
     3063       0,   206,     3,     4,     5,     6,     7,     8,     9,    10,
     3064      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3065      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     3066      31,    44,    45,   338,    33,    34,    35,    36,    37,     0,
     3067       0,     0,     0,     0,     0,     0,    40,     0,   206,     3,
     3068       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3069      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3070      24,    25,    26,    27,    28,    29,    30,    31,   207,    45,
     3071      32,    33,    34,    35,    36,    37,     0,     0,     0,     0,
     3072       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
    28043073       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
    28053074      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2806       27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
    2807        0,    41,    42,     0,     0,   276,   277,    37,   278,     0,
    2808        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2809        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2810        0,     0,     0,     0,   279,     0,     0,   280,     0,    41,
    2811       42,   281,     0,    -3,   282,   283,   273,   284,   285,   286,
    2812       44,    45,     0,   287,   288,     0,     0,     0,     0,     0,
    2813        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2814        0,     0,     0,     0,     0,     0,   289,     0,   519,     0,
    2815        0,   169,     0,     0,    48,    49,   291,   292,   293,   294,
    2816       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2817       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    2818       30,    31,     0,     0,    32,    33,    34,     0,     0,     0,
    2819        0,     0,   276,   277,    37,   278,     0,     0,     0,     0,
    2820        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2821        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2822        0,   279,     0,     0,   280,     0,    41,    42,   281,     0,
    2823        0,   282,   283,   273,   284,   285,   286,    44,    45,     0,
    2824      287,   288,     0,     0,     0,     0,     0,     0,     0,     0,
    2825        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2826        0,     0,     0,   289,   -40,   290,     0,     0,     0,     0,
    2827        0,    48,    49,   291,   292,   293,   294,    10,    11,    12,
     3075      27,    28,    29,    30,    31,   207,    45,    32,    33,    34,
     3076      35,    36,    37,   486,   487,   488,   489,     0,     0,     0,
     3077      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3078      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3079      29,    30,    31,     0,     0,    32,    33,    34,    35,    36,
     3080      37,     0,    44,    45,     0,     0,     0,     0,    40,    10,
     3081      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3082      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     3083      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
     3084      44,    45,     0,     0,     0,     0,    40,    10,    11,    12,
    28283085      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    28293086      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2830        0,    32,    33,    34,     0,     0,     0,     0,     0,   276,
    2831      277,    37,   278,     0,     0,     0,     0,     0,     0,     0,
    2832        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2833        0,     0,     0,     0,     0,     0,     0,     0,   279,     0,
    2834        0,   280,     0,    41,    42,   281,     0,     0,   282,   283,
    2835      273,   284,   285,   286,    44,    45,     0,   287,   288,     0,
    2836        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2837        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2838      289,     0,   290,     0,     0,     0,     0,     0,    48,    49,
    2839      291,   292,   293,   294,    10,    11,    12,    13,    14,    15,
     3087       0,    32,    33,    34,    35,    36,    37,     0,    44,    45,
     3088       0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
     3089       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3090       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     3091       0,     0,     0,     0,     0,     0,   207,    45
     3092};
     3093
     3094#define yypact_value_is_default(yystate) \
     3095  ((yystate) == (-1383))
     3096
     3097#define yytable_value_is_error(yytable_value) \
     3098  YYID (0)
     3099
     3100static const yytype_int16 yycheck[] =
     3101{
     3102       0,     1,     0,    49,    49,   204,    49,     1,     1,     0,
     3103     483,  1054,   184,   518,   536,   346,   184,   187,   185,   455,
     3104     869,   184,    70,   345,  1054,   345,   121,    55,   341,   184,
     3105     607,   219,   184,  1054,   184,   626,   169,   170,    38,    39,
     3106     497,    41,   184,    41,   501,   987,   988,   869,     1,    49,
     3107      41,   607,   110,   988,   367,    55,  1315,    55,   371,    49,
     3108       0,   904,    62,   655,    41,   680,  1056,    67,  1392,    67,
     3109      70,    88,    70,    73,   122,    73,   292,     0,     1,    73,
     3110      61,   604,   118,   604,    49,   255,   256,   259,   951,   604,
     3111     118,   259,   604,   260,  1273,    62,   259,  1101,   104,   157,
     3112      49,    41,    55,  1014,   259,    49,   201,   259,    74,   259,
     3113     572,   111,   646,   161,   114,   420,   604,   259,    41,  1017,
     3114    1018,   121,    49,  1505,   367,    94,    34,   661,   371,   129,
     3115      73,     0,   138,     0,   439,   998,   292,   118,   184,   184,
     3116     116,   184,   447,  1467,   111,   228,   125,   114,  1530,   149,
     3117      73,   149,   118,   122,    88,  1537,  1005,   110,   241,  1418,
     3118     250,   161,   141,   161,   140,   118,    54,    55,   783,   185,
     3119     490,   604,    41,   221,    41,   709,   120,    85,   793,   794,
     3120     726,   209,    49,  1005,   184,   185,   120,   185,    55,    49,
     3121     805,   118,  1447,   120,   184,   148,   604,   158,   141,  1097,
     3122      67,   201,     0,    70,   157,   253,    73,   119,  1051,   209,
     3123     258,   209,  1202,   259,   259,   737,   259,  1505,   218,   184,
     3124     118,   221,    49,   221,   412,   147,   118,   139,   228,   717,
     3125    1485,  1235,  1487,  1237,  1238,   184,   124,   265,   238,   406,
     3126     817,   241,   464,    41,   260,   245,   246,   245,   140,  1537,
     3127     118,   218,   205,   246,   245,   137,   209,  1436,   140,   259,
     3128     260,   817,   260,   594,  1443,     0,   266,   118,   245,   269,
     3129       0,     1,   428,   429,   747,    73,   304,   590,   336,   483,
     3130    1215,   804,   149,   804,   717,   607,   492,    54,    55,   804,
     3131     125,   118,   804,   120,   161,   511,   119,   513,   629,   266,
     3132     516,   119,   125,   519,   139,   245,    41,   638,   121,   717,
     3133     250,    41,   265,   626,   481,   268,   804,   184,   185,  1261,
     3134    1262,   139,   245,   636,  1503,   787,   326,  1262,   326,   642,
     3135     420,   426,   924,    49,  1183,    70,   913,   432,   118,   292,
     3136      70,    49,   209,    73,   344,   345,     0,   590,   120,   439,
     3137     122,   304,   608,   105,   221,   511,   123,   447,   614,   139,
     3138     516,  1183,  1273,   519,   119,   696,   123,   139,   368,   984,
     3139     985,   804,   372,     3,    49,   966,   245,   344,   245,   131,
     3140     711,   250,   382,   336,   139,   433,   691,    41,     3,   912,
     3141     406,   912,   259,    49,     0,     0,   804,   912,   105,   642,
     3142     125,   368,   118,   609,   120,   372,   406,   613,   406,   118,
     3143     118,   125,   120,   619,   570,   125,     4,     5,     6,     7,
     3144       8,     9,    10,    11,   131,   473,   426,   141,   158,   139,
     3145    1045,  1046,   432,     0,   640,    41,   125,    49,   644,   125,
     3146    1351,   645,   646,   118,   949,   120,  1388,   245,   428,   429,
     3147     139,  1273,   250,  1388,   125,   141,  1319,   661,   680,   326,
     3148     140,   934,   118,   118,   120,   481,  1509,   467,   799,   926,
     3149     141,   119,   472,   434,   467,   428,   429,   125,   345,  1509,
     3150     420,   481,   341,   481,   797,   485,   221,   485,  1509,  1479,
     3151     490,   221,   928,   493,   485,   817,   118,   817,   498,   439,
     3152    1077,   118,   455,   120,  1096,   709,   118,   447,   120,  1055,
     3153     245,    54,    55,    88,   467,   245,   119,  1380,  1381,   499,
     3154    1510,    49,   125,   656,    55,   118,   341,   120,   119,  1440,
     3155     530,  1442,   347,    12,   125,   535,   118,   530,   518,   406,
     3156      99,   100,   535,   747,   497,   485,   499,   118,   501,  1539,
     3157     806,   420,   367,   141,   797,   121,   371,   125,   511,   125,
     3158     513,   783,   485,   516,   118,   518,   519,   528,   663,   118,
     3159     439,   793,   794,   141,   119,   134,   135,    49,   447,   674,
     3160     123,    79,  1396,   805,   121,    49,    49,   118,   125,   589,
     3161     118,   245,   120,  1504,    92,    93,   250,   917,   119,   579,
     3162      79,   691,    81,    82,   604,  1151,  1152,   607,   121,     0,
     3163       1,   346,   125,   119,  1436,   705,   485,   148,   485,    49,
     3164      70,  1443,   420,   490,   483,   126,   579,  1242,   628,    79,
     3165     591,   132,   133,   633,   840,  1250,  1251,  1252,   969,   245,
     3166    1060,   439,  1062,   125,   250,  1118,   118,   647,   120,   447,
     3167      41,   651,   119,   966,   118,   118,   120,   120,   706,   141,
     3168     660,   628,   662,   663,   664,   119,   694,   125,   856,   662,
     3169     119,   664,   122,   125,   674,   118,   474,   118,   209,    70,
     3170     647,  1503,    73,   141,   645,   646,  1500,   485,   118,   141,
     3171     120,  1505,    79,   660,    81,    82,    83,   645,   646,   125,
     3172     661,   119,   119,   703,   434,    92,    93,   125,   125,   125,
     3173     703,   161,   918,   661,   884,   141,  1530,   717,   718,   975,
     3174     976,  1470,   591,  1537,   724,   141,   119,  1476,   728,   862,
     3175     934,   121,   125,   900,   265,   125,   125,   604,   473,   126,
     3176     607,   694,  1215,    79,   125,    81,    82,    83,   709,   124,
     3177     485,   691,   141,  1502,   676,   485,    92,    93,  1507,   118,
     3178     141,   709,   984,   985,   125,   705,   420,   626,   721,  1291,
     3179     118,   221,   120,   304,    74,   590,   119,   636,   126,   127,
     3180     979,   125,   125,   987,   141,   439,    79,   118,    81,    82,
     3181      83,   125,   140,   447,   141,   119,   118,   141,   528,    92,
     3182      93,   125,  1417,   253,   804,   141,    79,   141,   258,   119,
     3183     341,   626,   141,    86,   420,   125,    89,   817,    91,    92,
     3184      93,   636,   691,  1045,  1046,    79,   118,   642,   120,    83,
     3185     221,   485,   123,   439,   126,   127,   705,   119,    92,    93,
     3186     123,   447,    79,   125,    81,    82,  1392,   120,   141,   121,
     3187     717,   718,   119,   125,   245,    92,    93,   119,   125,  1047,
     3188     119,   591,   862,   125,   118,    88,   120,  1000,   868,   869,
     3189     898,   119,   126,   127,   119,   119,   118,   125,   869,   485,
     3190     125,   125,  1054,   120,   900,  1052,  1054,   118,   747,  1056,
     3191     136,  1054,   127,   691,   629,   119,   346,   428,   429,  1054,
     3192     900,   125,  1054,   903,  1054,   119,  1488,   705,  1454,    79,
     3193    1492,   125,  1054,    83,  1118,   645,   646,   917,   118,   119,
     3194    1466,  1467,    92,    93,   455,    79,   137,    60,   119,   869,
     3195     103,   661,   893,   927,   125,   935,   120,   804,    92,    93,
     3196     121,   941,   935,   121,  1490,   898,   869,   947,   118,    79,
     3197     817,   951,   119,    83,   947,   119,   126,   127,   951,   128,
     3198     129,   696,    92,    93,   118,   141,   120,   119,   499,   102,
     3199     119,   706,   119,   926,   927,   928,   711,    97,    98,   709,
     3200      79,   119,   797,   433,   118,   800,   121,   518,   118,   101,
     3201     102,  1213,  1087,    92,    93,   120,   126,   127,   998,   449,
     3202     869,   124,   125,   726,   927,   998,  1162,  1163,  1008,  1165,
     3203     123,  1011,  1012,  1013,  1005,  1171,  1562,   123,  1174,   140,
     3204    1242,   120,   125,   473,   893,    79,   987,   988,  1250,  1251,
     3205    1252,   119,   120,   900,   123,  1202,  1052,   691,    92,    93,
     3206    1056,   118,  1042,  1071,  1011,  1012,  1013,   140,   579,   141,
     3207     917,   705,  1052,   119,  1054,   119,  1056,  1261,   781,    79,
     3208     193,    81,    82,   121,   799,  1005,   120,   139,  1068,   124,
     3209     125,   869,    92,    93,   121,   934,    68,    69,    79,   121,
     3210      81,    82,  1005,   216,   125,   691,   139,  1087,    54,    55,
     3211    1526,    92,    93,   226,   485,   626,   555,   556,   118,   705,
     3212     139,  1101,    35,   123,   119,   636,   119,   966,  1101,   123,
     3213      12,    13,    14,    15,    16,    17,    18,   118,  1071,   118,
     3214      90,   120,   123,   119,    94,    95,    96,   126,   127,    79,
     3215     124,    81,    82,    83,   869,   858,  1005,  1304,   124,   869,
     3216    1102,  1103,    92,    93,   594,   557,   558,    49,   118,  1480,
     3217     120,   966,   122,   123,   559,   560,   561,   562,  1158,   292,
     3218     118,   119,   120,   893,   563,   564,  1194,   124,   118,   125,
     3219     120,   118,   119,   120,   118,   124,   126,   127,   119,   629,
     3220     119,     0,     1,  1183,   119,  1052,  1202,  1054,   638,  1056,
     3221     140,  1347,  1183,    74,   125,  1417,    77,   927,   119,    80,
     3222     119,    82,  1202,   118,   119,   120,   119,  1005,   125,    90,
     3223     118,   119,   120,   119,   119,   869,   118,    35,   120,   869,
     3224     119,   119,    41,   119,   126,   127,  1220,    68,    69,    70,
     3225      49,   954,   119,   119,   969,  1235,    55,  1237,  1238,   119,
     3226     119,  1194,  1235,  1183,  1237,  1238,   696,   119,    67,   119,
     3227     119,    70,  1213,   119,    73,   140,   706,   987,   988,  1118,
     3228    1183,   711,   123,   869,   119,   125,   123,  1220,   121,   121,
     3229    1005,    79,   119,    81,    82,  1005,   119,   125,   118,  1002,
     3230     119,   119,  1377,   125,    92,    93,   119,   118,  1304,   125,
     3231     118,   110,   118,    79,  1294,    81,    82,  1220,   118,   118,
     3232    1261,  1262,   121,   122,  1304,  1353,    92,    93,    13,   139,
     3233      79,   444,   139,   125,  1183,   123,   139,    86,   124,  1319,
     3234      89,  1315,    91,    92,    93,   141,  1319,   119,   139,   148,
     3235     149,   212,  1055,  1273,   119,  1202,   469,  1509,   157,   158,
     3236     189,  1509,   161,  1510,   139,  1345,  1509,   196,  1348,   799,
     3237    1273,  1005,   119,   137,  1509,  1403,  1215,  1509,  1008,  1509,
     3238    1354,    79,  1315,    81,    82,   184,   185,  1509,  1290,   124,
     3239     124,   123,  1539,   119,    92,    93,  1376,  1377,   511,   121,
     3240    1380,  1381,   201,   516,  1479,  1183,   519,  1380,  1381,   125,
     3241     209,   121,  1315,   119,   119,   119,  1396,   928,   121,  1005,
     3242     121,  1401,   221,    57,  1273,   121,   119,   121,    79,  1376,
     3243     121,   121,   141,   262,   141,    86,    90,  1445,    89,  1447,
     3244      91,    92,    93,   124,  1418,   119,   245,  1388,  1151,  1152,
     3245    1430,  1354,   141,   141,   253,   966,   119,  1304,   141,   258,
     3246     259,   260,  1364,   119,   119,   124,   265,   124,  1183,   120,
     3247     118,   121,   121,  1183,   121,    39,   121,  1485,   121,  1487,
     3248     121,   119,   119,  1509,  1509,  1418,  1509,   348,   349,    70,
     3249     351,   320,   353,   292,   121,  1273,   118,   118,   869,  1479,
     3250     329,  1481,    70,   332,   365,   304,   118,   123,  1481,   119,
     3251    1220,   119,   121,  1415,  1510,  1418,  1436,   121,   119,   121,
     3252    1500,   320,   119,  1443,   118,  1505,   105,   326,   105,  1509,
     3253    1510,   118,  1510,  1436,   141,   124,   119,   336,    52,   969,
     3254    1443,   122,   341,  1539,   119,   119,   345,   346,  1528,  1183,
     3255    1530,  1261,  1262,  1183,  1534,   125,   927,  1537,  1273,  1539,
     3256     119,  1539,   119,  1273,   119,   129,   679,   139,   367,   398,
     3257    1550,   105,   371,   402,  1554,   688,  1354,   105,   141,   692,
     3258     161,   141,   443,  1503,   121,   139,  1488,  1436,   141,   141,
     3259    1492,  1493,  1572,  1526,  1443,   141,   119,  1183,   119,  1572,
     3260    1503,    55,   118,  1583,   139,  1315,   125,   406,   121,   124,
     3261    1583,   121,   141,    67,   121,   141,    70,   119,  1520,    73,
     3262     118,   124,   119,   124,   119,   119,   119,   426,   139,   428,
     3263     429,   119,   141,   432,  1005,   434,   118,   141,  1353,  1273,
     3264     221,  1543,   119,  1353,  1354,  1547,  1024,   565,   568,   141,
     3265    1445,   480,  1447,   567,  1503,   141,   455,   238,  1436,   566,
     3266     569,    58,  1509,    60,  1294,  1443,    63,    64,    65,  1571,
     3267     946,  1183,   253,   472,   238,    62,  1467,   258,  1388,  1356,
     3268    1554,  1493,   481,    80,   483,  1283,   485,  1273,  1403,  1392,
     3269    1485,   490,  1487,  1403,  1547,   149,    93,    94,  1443,  1042,
     3270     499,   898,  1052,  1304,  1062,   269,   920,   161,  1418,   941,
     3271     728,   862,   511,   657,   513,  1345,   721,   516,  1348,   518,
     3272     519,  1436,  1220,   281,   111,  1503,  1436,   114,  1443,   528,
     3273     919,   185,   485,  1443,   736,    79,    -1,    81,    82,    83,
     3274     571,   571,   571,   572,    -1,   571,   304,   305,    92,    93,
     3275      -1,  1454,    -1,    -1,    -1,   209,    79,    -1,    81,    82,
     3276      83,    -1,    -1,  1466,  1467,   346,  1396,   221,    -1,    92,
     3277      93,  1401,   571,   572,   118,    -1,    -1,    -1,    -1,    -1,
     3278     579,    -1,   895,   341,    -1,    -1,    -1,  1490,  1503,   186,
     3279      -1,   590,   591,  1503,    -1,   594,    -1,    -1,    -1,    -1,
     3280    1430,    -1,  1436,    79,    -1,   604,    -1,    -1,   607,  1443,
     3281      86,    -1,  1183,    89,    -1,    91,    92,    93,   382,    79,
     3282      -1,    81,    82,    83,    -1,   383,    -1,   626,    -1,    -1,
     3283      -1,   218,    92,    93,    -1,    -1,   665,   636,    -1,   638,
     3284     669,    -1,    -1,   642,   120,    -1,   645,   646,    -1,  1220,
     3285    1436,    -1,   433,    -1,    -1,    -1,    -1,  1443,   118,  1562,
     3286     120,    -1,   661,    -1,   663,    -1,   126,   127,    -1,  1503,
     3287      -1,    -1,   326,    -1,    79,   674,    81,    82,    83,   266,
     3288      79,    -1,    81,    82,    83,    -1,    -1,    92,    93,    -1,
     3289      -1,    -1,   473,    92,    93,   694,    -1,    -1,  1528,    -1,
     3290      -1,    -1,  1273,  1016,  1534,    -1,    -1,    -1,    -1,    -1,
     3291     709,   710,   711,   118,    -1,   120,    -1,  1503,   717,   718,
     3292    1550,   126,   127,  1353,  1554,    -1,     3,    -1,    -1,   493,
     3293      -1,    -1,    -1,    -1,   498,    12,    13,    14,    15,    16,
     3294      17,    18,    -1,   340,  1315,   342,    -1,    79,   747,    81,
     3295      82,    83,   406,    -1,    -1,     3,    -1,   344,   787,    -1,
     3296      92,    93,   359,   360,    12,    13,    14,    15,    16,    17,
     3297      18,    -1,    49,  1403,    12,    13,    14,    15,    16,    17,
     3298      18,   368,  1353,  1354,    -1,   372,   118,    -1,   787,    79,
     3299      -1,    81,    82,    83,   552,   553,   554,    -1,   797,    -1,
     3300     799,    49,    92,    93,    -1,   804,    -1,    -1,    -1,    -1,
     3301      -1,    49,    -1,   594,    -1,  1526,    -1,    -1,   817,    -1,
     3302      79,    -1,    81,    82,    83,   589,    -1,    -1,   118,    -1,
     3303     120,    -1,  1403,    92,    93,    -1,   126,   127,    -1,    -1,
     3304      -1,    79,    -1,    81,    82,    83,    -1,  1418,   629,   139,
     3305    1480,    -1,   633,    -1,    92,    93,    -1,   638,    -1,   118,
     3306      -1,    -1,    -1,    -1,    -1,  1436,    -1,   126,   127,   633,
     3307     869,    -1,  1443,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3308     118,    -1,   120,    -1,    -1,    -1,    -1,   651,   126,   127,
     3309      -1,    90,    -1,    -1,   893,    94,    95,    96,    -1,   898,
     3310      -1,   900,    -1,    -1,    -1,    12,    13,    14,    15,    16,
     3311      17,    18,    -1,   912,   913,   696,    -1,    -1,   917,   118,
     3312      -1,   120,    -1,   122,   123,   706,    -1,   956,   927,   928,
     3313     711,    -1,  1503,    -1,    -1,   934,    -1,    -1,    -1,    -1,
     3314      -1,    -1,    49,   972,    -1,    -1,    -1,    -1,    -1,    -1,
     3315      12,    13,    14,    15,    16,    17,    18,    -1,    -1,    -1,
     3316     724,    -1,    -1,    -1,   728,    -1,    -1,   966,    -1,  1282,
     3317      -1,    -1,    79,    -1,    81,    82,    83,    -1,    12,    13,
     3318      14,    15,    16,    17,    18,    92,    93,    49,   987,   988,
     3319      -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,    -1,    12,
     3320      13,    14,    15,    16,    17,    18,  1005,    -1,    -1,    -1,
     3321      -1,   118,    -1,   120,    -1,    49,    -1,    79,   799,   126,
     3322     127,    83,     4,     5,     6,     7,     8,     9,    10,    11,
     3323      92,    93,  1061,    -1,    -1,    -1,    49,    -1,    -1,    -1,
     3324      -1,   628,    -1,    -1,    -1,    79,    -1,    81,    82,    83,
     3325      -1,    -1,    -1,  1052,    -1,  1054,   118,  1056,    92,    93,
     3326     647,    -1,    -1,    -1,   126,   127,    79,    -1,    81,    82,
     3327      83,    -1,  1071,   660,    -1,    -1,    -1,    -1,  1077,    92,
     3328      93,    -1,    -1,    -1,   118,    -1,   120,    -1,  1087,    -1,
     3329      -1,    -1,   126,   127,    -1,    -1,    -1,    -1,   862,    -1,
     3330     697,    -1,   699,    -1,   868,   118,    -1,    -1,    -1,    -1,
     3331     707,   708,    -1,   126,   127,   712,    -1,    -1,    -1,  1118,
     3332      -1,    -1,    12,    13,    14,    15,    16,    17,    18,    -1,
     3333      -1,  1444,   729,  1446,     3,    -1,    32,   734,    -1,   903,
     3334      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
     3335      79,    -1,    81,    82,    83,    -1,   753,    -1,    -1,    49,
     3336      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,  1197,    -1,
     3337      -1,  1484,    -1,  1486,    -1,    -1,    -1,   941,    -1,    -1,
     3338      49,    -1,    -1,    -1,  1183,    -1,    -1,    -1,   969,   118,
     3339      -1,    87,    -1,    -1,    -1,  1194,    -1,   126,   127,    -1,
     3340      -1,    -1,    -1,  1202,    -1,    -1,    -1,   103,   966,   105,
     3341      -1,    -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,    -1,
     3342      -1,  1220,    -1,    -1,    -1,  1538,    -1,  1540,   118,    -1,
     3343     120,    -1,    -1,    -1,   130,    -1,   126,   127,    -1,    -1,
     3344      -1,    -1,    -1,    -1,    -1,  1558,  1559,  1005,    -1,    -1,
     3345      -1,    -1,    -1,    -1,   851,    -1,   853,   854,   855,    -1,
     3346      -1,    -1,  1261,  1262,    12,    13,    14,    15,    16,    17,
     3347      18,  1300,    -1,    -1,  1273,   872,    -1,    -1,  1042,    -1,
     3348      -1,    -1,   869,     4,     5,     6,     7,     8,     9,    10,
     3349      11,   888,    -1,   189,    -1,   191,   192,    -1,    -1,    -1,
     3350     196,    49,   198,   199,  1068,  1304,    -1,    -1,    -1,    -1,
     3351      -1,    -1,    -1,    -1,   911,    -1,  1315,    -1,    -1,    -1,
     3352      -1,    42,   106,   107,   108,   109,   110,   111,   112,   113,
     3353     114,   115,   116,    -1,    -1,    12,    13,    14,    15,    16,
     3354      17,    18,    -1,    -1,    -1,    -1,    -1,    -1,   945,    -1,
     3355      -1,    -1,    -1,   950,  1353,  1354,   140,    -1,   955,    -1,
     3356      -1,    -1,    -1,   960,   961,    -1,   262,    -1,   965,    -1,
     3357     967,   968,    49,    -1,   971,    -1,    -1,    -1,  1377,    -1,
     3358      -1,    -1,    -1,   980,    -1,    -1,    -1,    -1,    -1,  1388,
     3359      -1,    -1,    -1,    -1,  1158,    -1,    -1,    -1,    -1,   996,
     3360     997,    -1,    79,    -1,  1403,    -1,    83,    -1,    -1,    -1,
     3361       0,     1,    -1,    -1,    -1,    92,    93,    -1,    -1,  1418,
     3362      -1,  1008,    -1,    -1,  1011,  1012,  1013,    -1,    -1,    -1,
     3363      -1,  1028,    -1,    -1,  1031,    -1,    -1,  1436,    -1,    -1,
     3364      -1,   118,   338,    -1,  1443,    -1,  1445,    -1,  1447,   126,
     3365     127,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3366      -1,   357,    -1,    -1,    -1,    55,    -1,    -1,    12,    13,
     3367      14,    15,    16,    17,    18,    -1,    -1,    -1,    -1,    -1,
     3368    1479,  1480,    -1,    73,    -1,    -1,  1485,  1084,  1487,    -1,
     3369      -1,    -1,    -1,  1090,  1091,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,  1099,    -1,  1503,    49,    -1,  1104,    -1,    -1,
     3371    1509,  1510,  1109,   409,    -1,    -1,    -1,    -1,    -1,    -1,
     3372     110,    -1,    -1,    -1,    -1,  1122,    -1,  1526,    -1,    -1,
     3373      -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,    83,
     3374    1539,  1138,    -1,  1140,  1141,  1142,  1143,    -1,    92,    93,
     3375      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1155,   149,
     3376    1157,    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,    -1,
     3377      -1,    -1,  1353,    -1,   118,    -1,    -1,    -1,    -1,    -1,
     3378      -1,    -1,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
     3379      -1,    -1,  1189,  1190,    -1,   185,  1183,    -1,    -1,    -1,
     3380      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3381      -1,   201,    -1,    -1,   204,   205,    -1,    -1,    -1,   209,
     3382      -1,    -1,  1403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3384     230,    -1,    -1,    -1,   234,    -1,   236,    -1,    -1,   239,
     3385      -1,    -1,    -1,    -1,    -1,   245,  1253,  1254,    -1,    -1,
     3386     250,    -1,    -1,    -1,    -1,    -1,  1263,    -1,    -1,    -1,
     3387     260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   268,   575,
     3388     576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3389      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1480,
     3390      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,    -1,    -1,
     3391      -1,    -1,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
     3392     616,   617,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
     3393    1327,    -1,  1329,  1330,  1331,    -1,    -1,    -1,    -1,    -1,
     3394      -1,    -1,    -1,    -1,  1341,    -1,   336,    -1,    -1,    -1,
     3395      -1,   341,  1349,    -1,    -1,  1352,    -1,   347,  1345,    -1,
     3396      -1,  1348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   665,
     3397      -1,    -1,    -1,   669,    -1,    -1,    -1,   367,    -1,    -1,
     3398      -1,   371,  1379,    -1,    -1,    -1,    -1,    -1,    -1,  1376,
     3399      -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,
     3400      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1396,
     3401      -1,    -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,
     3402      -1,    -1,    -1,    -1,    -1,    -1,  1423,  1424,    -1,    -1,
     3403     420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,  1436,
     3404      -1,    -1,    -1,  1430,   434,    -1,  1443,    -1,    -1,   439,
     3405      -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,    -1,    -1,
     3406      -1,    -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
     3407      73,    -1,    -1,    -1,   464,    -1,    -1,   467,    -1,    -1,
     3408      -1,  1478,    -1,    -1,   474,    -1,  1483,    -1,    -1,    -1,
     3409      -1,    -1,    -1,   483,    -1,   485,    -1,    -1,    -1,    -1,
     3410      -1,    -1,    -1,    -1,    -1,    -1,    -1,   497,    -1,    -1,
     3411      -1,   501,    -1,  1500,    -1,    -1,    -1,    -1,  1505,  1516,
     3412      -1,  1518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,
     3414      -1,  1528,    -1,  1530,    -1,    -1,    -1,  1534,    -1,    -1,
     3415    1537,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,  1556,
     3416    1557,    -1,    -1,  1550,    -1,    -1,    -1,  1554,    -1,    -1,
     3417      -1,    -1,  1569,  1570,    -1,    -1,    -1,    -1,    -1,    -1,
     3418      -1,    -1,   572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3420     590,   591,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3421      -1,    -1,    -1,    -1,    -1,    -1,    -1,   607,    -1,    -1,
     3422      -1,    -1,    -1,    -1,    -1,    -1,    -1,   230,    -1,    -1,
     3423      -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,    -1,    -1,
     3424      -1,   631,   245,    -1,    -1,    -1,   636,   250,    -1,    -1,
     3425      -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,    -1,
     3426     956,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3427      -1,   661,    -1,    -1,    -1,    -1,   972,    -1,    -1,   975,
     3428     976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3429     680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,
     3430      -1,   691,    -1,    -1,    -1,    12,    13,    14,    15,    16,
     3431      17,    18,    -1,    -1,    -1,   705,    -1,    -1,    -1,   709,
     3432      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   718,    -1,
     3433      -1,   721,    -1,    -1,    -1,    -1,    -1,    -1,   341,    -1,
     3434      47,    48,    49,    50,   347,    -1,    -1,    -1,    -1,    -1,
     3435      -1,    -1,  1048,    -1,    -1,    -1,    -1,   747,    -1,    -1,
     3436      -1,    -1,    -1,    -1,   367,  1061,    -1,    -1,   371,    76,
     3437    1066,  1067,    79,    -1,    -1,    -1,    83,    -1,    -1,    86,
     3438      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
     3439      -1,    -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,    -1,
     3440      -1,    -1,    -1,   793,   794,    -1,    -1,   797,    -1,    -1,
     3441     800,   118,    -1,   120,    -1,   805,    -1,   420,    -1,   126,
     3442     127,   128,   129,   130,   131,   815,    -1,  1123,    -1,    -1,
     3443      -1,   434,    -1,    -1,    -1,    -1,   439,    -1,    -1,    -1,
     3444      -1,    -1,    -1,    -1,   447,    -1,    -1,    -1,    -1,    -1,
     3445      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3446      -1,   464,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3447      -1,   474,     0,    -1,    -1,    -1,    -1,    -1,    -1,   869,
     3448     483,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,  1185,
     3449      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3450      -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,  1204,    -1,
     3451      -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
     3452      -1,    -1,    -1,   913,    -1,   528,    -1,    -1,    -1,    -1,
     3453      -1,    -1,    -1,    -1,    -1,    -1,   926,   927,    -1,    -1,
     3454      -1,    -1,    -1,    -1,   934,    73,    12,    13,    14,    15,
    28403455      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2841       26,    27,    28,    29,    30,    31,     0,     0,   335,    33,
    2842       34,     0,     0,     0,     0,     0,   276,   277,    37,   278,
    2843        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2844        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2845        0,     0,     0,     0,     0,   279,     0,     0,   280,     0,
    2846       41,    42,   281,     0,     0,   282,   283,   273,   284,   285,
    2847      286,    44,    45,     0,   287,   288,     0,     0,     0,     0,
    2848        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2849        0,     0,     0,     0,     0,     0,     0,   289,     0,   336,
    2850        0,     0,     0,     0,     0,    48,    49,   291,   292,   293,
    2851      294,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3456      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
     3457      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,    -1,    -1,
     3458      -1,    -1,    -1,    49,    -1,    -1,    -1,   590,   591,   979,
     3459      -1,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
     3460       0,    -1,    -1,    -1,  1300,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,    -1,    85,
     3462      -1,    -1,    -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,
     3463     158,    -1,    -1,   636,    -1,    -1,    -1,    -1,    -1,   642,
     3464      -1,    41,   645,   646,    -1,    -1,    -1,    -1,    -1,    -1,
     3465      -1,    -1,     5,    -1,    -1,  1045,  1046,    -1,   661,    12,
     3466      13,    14,    15,    16,    17,    18,  1056,    -1,    -1,    -1,
     3467      -1,    -1,    -1,    73,    -1,    -1,    -1,   680,    -1,    -1,
     3468      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,    -1,
     3469      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     3470      -1,    -1,   705,    -1,    -1,    -1,   709,    -1,    -1,    -1,
     3471      -1,    -1,    -1,    -1,    -1,    -1,    -1,   245,    -1,    -1,
     3472      -1,    -1,   250,    76,    -1,    -1,    79,    -1,  1118,    -1,
     3473      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     3474      93,    -1,    95,    96,   747,    -1,    -1,    -1,    -1,    -1,
     3475      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,
     3476      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     3477      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
     3478     783,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3479     793,   794,    -1,  1183,   797,    -1,    -1,   800,    -1,    -1,
     3480      -1,    -1,   805,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3481      -1,    -1,    -1,   341,    -1,    -1,    -1,    -1,    -1,   347,
     3482      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
     3483    1220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
     3484      -1,    -1,    -1,   371,    -1,   245,    -1,    -1,    -1,    -1,
     3485     250,    -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3486    1250,  1251,  1252,    -1,    -1,    -1,   869,    -1,    -1,    -1,
     3487      -1,  1261,  1262,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3488      -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,    -1,    -1,
     3489     893,    -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3490      -1,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
     3491      -1,   439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,
     3492      -1,    -1,    -1,    -1,    -1,  1315,    -1,    -1,    -1,    -1,
     3493      -1,   934,    -1,    -1,    -1,    -1,   464,    -1,    -1,    70,
     3494      -1,   341,    -1,    -1,    -1,    -1,   474,   347,    79,    -1,
     3495      81,    -1,    83,    -1,    -1,   483,    -1,   485,    -1,    -1,
     3496      91,    -1,    -1,   966,  1354,    -1,    -1,   367,    -1,    -1,
     3497      -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,   984,   985,    -1,   987,   988,    -1,    -1,    -1,    -1,
     3499      -1,   122,    -1,   124,   125,   126,    -1,    -1,  1388,    -1,
     3500     528,    -1,  1005,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3501      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3502     420,    -1,    -1,    -1,    -1,    -1,    -1,  1417,  1418,    -1,
     3503     161,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,   439,
     3504      -1,    -1,  1045,  1046,    -1,    -1,  1436,   447,    -1,    -1,
     3505      -1,    -1,    -1,  1443,    -1,  1445,    -1,  1447,    -1,    -1,
     3506      -1,    -1,   590,   591,   464,    -1,    -1,    -1,    -1,    -1,
     3507      -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,    -1,    -1,
     3508      -1,    -1,    -1,   483,    -1,   485,    -1,    -1,    -1,    -1,
     3509     221,    -1,   223,   224,   225,  1485,    -1,  1487,   626,    -1,
     3510      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,    -1,
     3511      -1,    -1,    -1,  1503,   642,  1118,    -1,   645,   646,    -1,
     3512    1510,    -1,   253,    -1,    -1,    -1,    -1,   258,   528,    -1,
     3513      -1,    -1,    -1,   661,    -1,    55,    -1,    -1,    -1,    -1,
     3514      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3515      70,    -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3516      -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
     3517      -1,    -1,    -1,    -1,    -1,    -1,    -1,   705,    -1,    -1,
     3518    1183,   709,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3519     590,   591,    -1,    -1,    -1,   326,    -1,    -1,   118,    -1,
     3520      -1,    -1,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3521    1213,    -1,  1215,    -1,    -1,   346,    -1,    -1,    -1,   747,
     3522      -1,   352,    -1,   354,    -1,    -1,   626,    -1,   148,    -1,
     3523      -1,    -1,    -1,    -1,    -1,   366,   636,    -1,   158,  1242,
     3524      -1,   161,   642,    -1,    -1,   645,   646,  1250,  1251,  1252,
     3525      -1,    -1,    -1,    -1,    -1,   783,    -1,    -1,  1261,  1262,
     3526      -1,   661,    -1,    -1,    -1,   793,   794,    -1,    -1,   797,
     3527    1273,    -1,   800,    -1,    -1,   406,    -1,   805,    -1,    -1,
     3528     680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
     3529      -1,   691,    -1,    -1,    -1,   426,    -1,    -1,    -1,    -1,
     3530     431,   221,   433,    -1,    -1,   705,    -1,    -1,    -1,   709,
     3531      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   449,    -1,
     3532      -1,   452,   453,    -1,    -1,    -1,    -1,    -1,   459,    -1,
     3533      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,
     3534      -1,   869,   473,    -1,    -1,   265,    -1,   747,    -1,    -1,
     3535     481,  1354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3536      -1,    -1,    -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,
     3537      -1,    -1,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3538      -1,    -1,    -1,   783,   304,  1388,    -1,    -1,    -1,    -1,
     3539      -1,    -1,    -1,   793,   794,    -1,    -1,   797,    -1,    -1,
     3540     800,    -1,    -1,    -1,    -1,   805,   934,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,  1417,    -1,    -1,    -1,    -1,    -1,
     3542      -1,   341,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
     3543      -1,    -1,    -1,  1436,    -1,    -1,    -1,    -1,   966,    -1,
     3544    1443,    -1,  1445,    -1,  1447,    -1,    -1,    -1,    -1,    -1,
     3545      -1,    -1,    -1,    -1,    -1,    -1,   984,   985,    -1,   987,
     3546     988,    -1,    -1,   594,    -1,   596,   597,   598,    -1,   869,
     3547      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,
     3548      -1,    -1,  1485,    -1,  1487,    -1,    -1,    -1,    -1,    -1,
     3549      -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,   629,   630,
     3550    1503,    -1,    -1,    -1,    -1,    -1,    -1,   638,   428,   429,
     3551      -1,    -1,    -1,    -1,   434,    -1,    -1,  1045,  1046,    -1,
     3552      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3553      -1,    -1,    -1,    -1,   934,   455,    12,    13,    14,    15,
     3554      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3555      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
     3556      -1,    -1,    -1,   483,    -1,   696,   966,    -1,    -1,    -1,
     3557      -1,    -1,    -1,    49,    -1,   706,    -1,    -1,    -1,   499,
     3558     711,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
     3559    1118,   511,    -1,   513,    -1,    -1,   516,    -1,   518,   519,
     3560      -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,   528,    85,
     3561      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3562       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    28523563      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    2853       29,    30,    31,     0,     0,   335,    33,    34,     0,     0,
    2854        0,     0,     0,   276,   277,    37,   278,     0,     0,     0,
    2855        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2856        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2857        0,     0,   279,     0,     0,   280,     0,    41,    42,   281,
    2858        0,     0,   282,   283,   273,   284,   285,   286,    44,    45,
    2859        0,   287,   288,     0,     0,     0,     0,     0,     0,     0,
    2860        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2861        0,     0,     0,     0,   289,     0,   378,     0,     0,     0,
    2862        0,     0,    48,    49,   291,   292,   293,   294,   203,     3,
    2863        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2864       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2865       24,    25,    26,    27,    28,    29,    30,    31,     0,     0,
    2866      335,    33,    34,     0,     0,     0,     0,     0,     0,     0,
    2867       37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3564      29,    30,    31,    32,    33,  1045,  1046,    36,    37,    38,
     3565      39,    40,    41,    -1,    -1,  1183,   787,    -1,    -1,   579,
     3566      49,    -1,    -1,    50,    -1,    -1,    -1,    -1,   799,    -1,
     3567      -1,   591,    -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,
     3568      -1,    -1,    -1,    -1,    -1,  1213,   817,  1215,    -1,    -1,
     3569      79,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
     3570      -1,    -1,    -1,    92,    93,    -1,   626,    -1,    -1,    96,
     3571     841,    -1,    -1,    -1,  1242,    -1,   636,    -1,  1118,   106,
     3572      -1,    -1,  1250,  1251,  1252,   645,   646,    -1,    -1,   118,
     3573     148,   120,    -1,  1261,  1262,    -1,    -1,   126,   127,    -1,
     3574     158,   661,    -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,
     3575      -1,   169,   170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3577      -1,    -1,    -1,    -1,   694,    -1,    -1,    -1,    -1,    -1,
     3578      -1,    -1,    -1,  1183,    -1,   172,   917,    -1,    -1,   709,
     3579      -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3580      -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,
     3581      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
     3582      -1,   208,    -1,    -1,    -1,    -1,  1354,   747,    -1,    -1,
     3583     217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   969,   257,
     3584     227,    -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,   980,
     3585    1250,  1251,  1252,    -1,    47,    48,    -1,    50,    -1,   246,
     3586    1388,  1261,  1262,    -1,   251,    -1,    -1,    -1,    -1,    -1,
     3587      -1,    -1,    -1,  1273,    -1,    -1,    -1,   264,    -1,   799,
     3588      -1,    -1,    -1,    76,    -1,   272,    79,   274,    -1,  1417,
     3589      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     3590      93,    -1,    95,    96,    -1,    -1,   293,    -1,  1436,    -1,
     3591      -1,    -1,    -1,    -1,    -1,  1443,    -1,  1445,    -1,  1447,
     3592      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     3593     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
     3594      -1,    -1,    -1,    -1,    -1,    -1,  1077,   334,    -1,    -1,
     3595      -1,    -1,   339,    -1,  1354,    -1,    -1,  1485,    -1,  1487,
     3596      -1,    -1,    -1,    -1,   382,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    -1,    -1,   893,    -1,  1503,    -1,    -1,   898,    -1,
     3598      -1,    -1,    -1,    -1,    -1,    -1,    -1,   374,  1388,    -1,
     3599      -1,   378,   379,    -1,   381,    -1,    -1,    -1,    -1,    -1,
     3600      -1,   388,   389,    -1,   391,   392,    -1,   394,   928,   396,
     3601      -1,    -1,    -1,    -1,   934,    -1,    -1,  1417,    -1,    -1,
     3602      -1,    -1,    -1,    -1,    -1,    -1,   413,    -1,    -1,    -1,
     3603      -1,    -1,    -1,    -1,   421,    -1,  1436,   455,    -1,    -1,
     3604      -1,    -1,    -1,  1443,    -1,  1445,   966,  1447,    -1,    -1,
     3605      -1,    -1,    -1,    -1,    -1,    -1,    -1,   475,   445,    -1,
     3606      -1,    -1,    -1,    -1,    -1,    -1,    -1,   987,   988,    -1,
     3607      -1,  1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3608      -1,    -1,    -1,   470,    -1,  1485,    -1,  1487,    -1,    -1,
     3609     477,    -1,    -1,    -1,    -1,   482,    -1,    -1,    -1,    -1,
     3610     518,    -1,    -1,  1503,    -1,    -1,    -1,    -1,    -1,    -1,
     3611     528,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
     3612      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3613      -1,   549,    -1,    -1,    -1,   522,    -1,    -1,    -1,    -1,
     3614      -1,    -1,    -1,    -1,    -1,    -1,    -1,   534,    -1,    -1,
     3615      -1,  1071,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3616      -1,   579,    -1,    -1,    -1,    -1,    -1,    -1,   586,    -1,
     3617      -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,   606,    -1,
     3619      -1,    -1,    -1,   580,    -1,    -1,   583,    -1,  1118,    -1,
     3620      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3621      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   605,    -1,
     3622      -1,    -1,  1353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3623     648,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   656,    -1,
     3624      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3625      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
     3626      32,    33,    -1,   650,    36,    37,    38,    39,    40,    41,
     3627      -1,    -1,  1403,    -1,  1194,    -1,    -1,    49,    -1,    -1,
     3628      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3629      -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,    -1,    -1,
     3630     687,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    81,
     3631      82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   737,
     3632      92,    93,    -1,    -1,    -1,   157,   158,    -1,   715,   747,
     3633      -1,   749,    -1,    -1,   752,    -1,    -1,    -1,    -1,    -1,
     3634     758,  1261,  1262,   730,   731,    -1,   118,    -1,   120,  1480,
     3635      -1,    -1,    -1,   740,   126,   127,    -1,   189,    -1,    -1,
     3636      -1,    -1,    -1,    -1,   196,    -1,    -1,   754,    -1,    -1,
     3637      -1,    -1,   759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3638      -1,   799,   800,    47,    48,    -1,    50,    -1,    -1,    -1,
     3639      -1,    -1,    -1,    -1,    -1,    -1,    -1,   815,    -1,    -1,
     3640      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1539,    -1,
     3641      -1,    -1,    76,    -1,    -1,    79,    -1,    -1,    -1,    83,
     3642      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
     3643     262,    95,    96,  1353,   821,    -1,    -1,    -1,    -1,    -1,
     3644     858,   828,    -1,    -1,   862,    -1,    -1,    -1,    -1,    -1,
     3645      -1,    -1,    -1,    -1,   118,    -1,   120,   844,   158,   846,
     3646      -1,   125,   126,   127,   128,   129,   130,   131,  1388,    -1,
     3647      -1,    -1,   859,    -1,    -1,   893,    -1,    -1,   865,    -1,
     3648      -1,    -1,    -1,  1403,    -1,    -1,    -1,    -1,   320,   876,
     3649      -1,    -1,    -1,   880,    -1,    -1,    -1,   329,   330,    -1,
     3650     332,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,
     3651     928,    -1,    -1,   345,    -1,    -1,   934,    -1,    -1,    -1,
     3652      -1,    -1,    -1,   941,    -1,  1445,    -1,  1447,   946,    -1,
     3653      -1,   949,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
     3654      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
     3655      48,   969,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3656    1480,    -1,   980,    -1,    -1,  1485,   398,  1487,    -1,    -1,
     3657     402,    -1,    -1,    -1,    -1,    -1,    -1,   964,    76,    -1,
     3658      -1,    79,  1000,    -1,  1002,    83,    -1,    -1,    86,    87,
     3659      88,    89,    90,    91,    92,    93,    -1,    95,    96,  1017,
     3660    1018,    -1,   434,    -1,    -1,    -1,  1526,    -1,   158,    -1,
     3661      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3662     118,    -1,   120,    -1,    -1,   123,  1044,    -1,   126,   127,
     3663     128,   129,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,
     3664      -1,   341,    -1,    -1,  1031,    -1,   346,   347,   480,    -1,
     3665      -1,   483,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3666      -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
     3667      -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1097,
     3668      -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,    -1,    -1,
     3669      -1,  1078,    -1,    -1,    -1,    -1,   528,    -1,    -1,    -1,
     3670    1118,  1088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3671      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1136,  1137,
     3672      -1,    -1,    -1,    -1,    -1,  1112,    -1,    -1,    -1,    -1,
     3673      -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,  1125,   571,
     3674     572,    -1,  1129,    -1,    -1,  1132,    -1,    -1,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   590,   591,
     3676      -1,  1148,  1149,    -1,   464,    -1,    -1,    -1,    -1,    -1,
     3677      -1,    -1,   604,    -1,    -1,   607,   608,    -1,    -1,  1166,
     3678      -1,    -1,   614,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     3679      -1,   341,   624,    -1,   626,    -1,   346,   347,    -1,    -1,
     3680      -1,    -1,    -1,    -1,   636,    -1,    -1,    -1,    -1,    -1,
     3681      -1,    -1,    -1,   645,   646,    -1,    -1,   367,    -1,    -1,
     3682      -1,   371,    47,    48,    -1,    50,    -1,    -1,   528,   661,
     3683      -1,    -1,    -1,   665,   666,    -1,    -1,   669,   670,    -1,
     3684      -1,    -1,    -1,    -1,  1231,    -1,   678,    -1,    -1,    -1,
     3685      -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,
     3686      -1,    86,    87,    88,    89,    90,    91,    92,    93,  1287,
     3687      95,    96,    -1,  1291,    -1,    -1,    -1,   709,   710,    -1,
     3688      -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,
     3689     590,   591,    -1,   118,   594,   120,    -1,   122,   123,    -1,
     3690      -1,   126,   127,   128,   129,   130,   131,    -1,    -1,    -1,
     3691      -1,    -1,    -1,    -1,   464,   747,    -1,    -1,    -1,    -1,
     3692      -1,    -1,    -1,  1310,    -1,  1312,   626,    -1,    -1,   629,
     3693      -1,    -1,    -1,   483,    -1,  1322,   636,  1324,   638,    -1,
     3694      -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,    -1,
     3695      -1,    -1,  1339,    -1,    -1,   787,    -1,    -1,    -1,    -1,
     3696      -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3697    1357,  1358,   804,    -1,   806,    -1,    -1,    -1,   528,    -1,
     3698     680,    -1,    -1,  1370,    -1,   817,    -1,    -1,  1375,    -1,
     3699      -1,  1378,    -1,    -1,    -1,    -1,   696,    -1,    -1,    -1,
     3700      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1394,    -1,   709,
     3701      -1,   711,    -1,    -1,    -1,    -1,    32,  1404,    -1,   158,
     3702    1407,    -1,  1409,  1410,  1411,    -1,    -1,    -1,    -1,    -1,
     3703      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3704     590,   591,    -1,    -1,   594,    -1,    -1,   747,    -1,    -1,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3706      -1,   893,  1449,    -1,  1451,    -1,    -1,    -1,   900,    -1,
     3707      -1,    87,    -1,    -1,  1461,    -1,   626,    -1,    -1,   629,
     3708     912,   913,    -1,   783,  1471,    -1,   636,   103,   638,   105,
     3709      -1,    -1,   642,   793,   794,   645,   646,   797,    -1,   799,
     3710     800,    -1,   934,    -1,    -1,   805,    -1,    -1,  1526,    -1,
     3711      -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,   956,   957,    -1,    -1,    -1,    -1,
     3713     680,    -1,    -1,    -1,   966,    -1,    -1,    -1,    -1,    -1,
     3714     972,   973,    -1,   975,   976,   977,   696,    -1,    -1,    -1,
     3715      -1,    -1,    -1,    -1,    -1,   987,   988,    -1,    -1,   709,
     3716      -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    -1,   191,   192,    -1,    -1,    -1,
     3718     196,    -1,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1,
     3719      -1,    -1,    -1,   893,    -1,    -1,    -1,   747,    -1,    -1,
     3720      -1,    -1,   341,    -1,    -1,    -1,    -1,   346,   347,    -1,
     3721      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722    1052,    -1,  1054,    -1,  1056,    -1,    -1,    -1,   367,  1061,
     3723      -1,    -1,   371,   783,   934,    -1,    -1,    -1,    -1,    -1,
     3724      -1,    -1,    -1,   793,   794,  1077,    -1,   797,    -1,   799,
     3725     800,    -1,    -1,    -1,    -1,   805,    -1,    -1,    -1,    -1,
     3726      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,    -1,   969,
     3727      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3728      -1,    -1,    -1,    -1,   984,   985,  1118,   987,   988,    -1,
     3729      -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,
     3730      -1,   279,    -1,   281,   282,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,   290,   291,    -1,    -1,    -1,    -1,    -1,    -1,
     3732      -1,    -1,   338,    -1,    -1,   464,   304,   305,    -1,    -1,
     3733      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3734      -1,   357,    -1,   893,   483,  1045,  1046,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3736      -1,    -1,    -1,   341,    -1,  1197,    -1,    -1,    -1,    -1,
     3737    1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3738      -1,    -1,    -1,  1215,   934,    -1,    -1,    -1,    -1,   528,
     3739      -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
     3740      -1,    -1,    -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,
     3741      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,  1118,   969,
     3742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1261,
     3743    1262,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,   590,   591,    -1,    -1,   594,    -1,    -1,    -1,    -1,
     3746      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1300,  1301,
     3747      -1,    -1,  1304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3748      -1,    -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,    -1,
     3749     629,    -1,    -1,    -1,    -1,  1045,  1046,   636,    -1,   638,
     3750      -1,    -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,
     3751      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
     3752      -1,    -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3754      -1,   680,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3755    1250,  1251,  1252,    -1,    -1,    -1,  1388,   696,    -1,   575,
     3756     576,  1261,  1262,    -1,    -1,    -1,    -1,    -1,  1118,    -1,
     3757     709,    -1,   711,    -1,   552,   553,   554,   555,   556,   557,
     3758     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
     3759     568,   569,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
     3760     616,   617,    -1,    -1,    -1,   621,   622,    -1,   747,    -1,
     3761      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
    28683762      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    2869       29,    30,    31,     0,     0,    32,    33,    34,     0,     0,
    2870        0,     0,    41,    42,     0,    37,     0,     0,     0,     0,
    2871        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2872        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2873        0,     0,     0,     0,     0,    40,     0,   204,    42,    43,
    2874     -440,     0,     0,     0,     0,     0,     0,     0,    44,    45,
    2875        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2876        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2877        0,     0,     0,     0,    46,     0,   261,     0,     0,     0,
    2878        0,     0,    48,    49,    10,    11,    12,    13,    14,    15,
     3763      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
     3764      39,    40,    41,    -1,   783,    -1,    -1,  1479,    -1,   665,
     3765      49,    -1,    -1,   669,   793,   794,    -1,    -1,   797,    -1,
     3766     799,   800,    -1,  1213,    -1,  1215,   805,    -1,    -1,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1509,  1510,    -1,
     3768      79,    -1,    81,    82,    83,    -1,    -1,    -1,  1388,    -1,
     3769      -1,    -1,  1242,    92,    93,    -1,    -1,    -1,    -1,    -1,
     3770    1250,  1251,  1252,    -1,    -1,    -1,    -1,  1539,    -1,    -1,
     3771      -1,  1261,  1262,    -1,    -1,    -1,    -1,  1417,    -1,   118,
     3772      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,    -1,
     3773      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3774      -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,   726,    -1,
     3775      -1,    -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,    -1,
     3776      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3777      -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,    -1,    -1,
     3778    1480,    -1,    -1,    -1,    -1,  1485,    -1,  1487,    -1,    -1,
     3779      -1,    -1,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,
     3780      -1,    -1,    -1,   781,    12,    13,    14,    15,    16,    17,
     3781      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3782      28,    29,    30,    31,    32,    33,    -1,   966,    -1,    -1,
     3783     969,    -1,    47,    48,    -1,    50,    -1,    -1,  1388,    -1,
     3784      -1,    49,    -1,    -1,    -1,   984,   985,    -1,   987,   988,
     3785      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3786      -1,    76,    -1,    -1,    79,    -1,    -1,  1417,    83,    -1,
     3787      -1,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
     3788      95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3789      -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,    -1,    -1,
     3790      -1,    -1,    -1,   118,    -1,   120,  1045,  1046,    -1,    -1,
     3791      -1,   126,   127,   128,   129,   130,   131,    -1,    -1,    -1,
     3792      -1,    -1,    -1,    -1,   139,    -1,    -1,    -1,    -1,    -1,
     3793    1480,    -1,    -1,    -1,    -1,  1485,    -1,  1487,    -1,    -1,
     3794     956,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3795      -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,    -1,   975,
     3796     976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3797      -1,    -1,    -1,    -1,    -1,    -1,   954,    -1,    -1,  1118,
     3798      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,     4,
     3799       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3800      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3801      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
     3802      -1,    36,    37,    38,    39,    40,    41,  1005,    -1,    -1,
     3803      -1,    -1,  1048,    -1,    49,    -1,    -1,    -1,    -1,    -1,
     3804      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3805    1066,  1067,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3806      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
     3807      -1,    -1,    -1,    -1,  1213,    -1,  1215,  1055,    -1,    -1,
     3808      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3809      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3810      -1,    -1,    -1,  1242,   119,    -1,    -1,  1123,    -1,    -1,
     3811      -1,  1250,  1251,  1252,    -1,    -1,    -1,    -1,    -1,    -1,
     3812      -1,    -1,  1261,  1262,    12,    13,    14,    15,    16,    17,
     3813      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3814      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
     3815      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
     3816      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1185,
     3817      -1,    -1,    -1,  1151,  1152,    -1,    -1,    -1,    -1,    -1,
     3818      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1204,    -1,
     3819      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     3820      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
     3821       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    28793822      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2880       26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
    2881       34,     0,     0,     0,     0,     0,     0,     0,    37,    10,
     3823      26,    27,    28,    29,    30,    31,    32,    33,   126,   127,
     3824      36,    37,    38,    39,    40,    41,    42,    -1,    -1,  1388,
     3825      46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
     3826      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3827      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1417,    -1,
     3828      76,    -1,    -1,    79,  1300,    81,    82,    83,    -1,    -1,
     3829      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
     3830      96,    -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,    -1,
     3831      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3832      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,    -1,
     3833     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
     3834      -1,  1480,    -1,    -1,    -1,   141,  1485,    -1,  1487,    -1,
     3835      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3836      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3837      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3838      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    28823839      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    28833840      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2884       31,     0,     0,    32,    33,    34,     0,     0,   112,     0,
    2885       41,    42,     0,    37,   895,     0,     0,     0,     0,     0,
    2886        0,    44,    45,     0,     0,     0,     0,     0,     0,     0,
    2887        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2888        0,     0,     0,     0,     0,    41,    42,     0,     0,    47,
    2889        0,     0,     0,     0,     0,    48,    49,     0,     0,     0,
    2890        0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2891       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    2892       29,    30,    31,     0,   737,    32,    33,    34,   896,     0,
    2893       48,    49,     0,     0,     0,    37,   895,    10,    11,    12,
    2894       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2895       23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2896        0,    32,    33,    34,     0,     0,     0,    41,    42,     0,
    2897        0,    37,   895,    10,    11,    12,    13,    14,    15,    16,
    2898       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    2899       27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
    2900        0,     0,     0,    41,    42,     0,   737,    37,     0,     0,
    2901     1209,     0,    48,    49,     0,     0,     0,     0,     0,     0,
    2902        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2903        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
    2904       42,     0,   737,     0,     0,     0,  1295,     0,    48,    49,
    2905        0,     0,     0,     0,     0,    10,    11,    12,    13,    14,
    2906       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2907       25,    26,    27,    28,    29,    30,    31,     0,    47,    32,
    2908       33,    34,     0,     0,    48,    49,     0,     0,     0,    37,
    2909       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2910       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    2911       30,    31,     0,     0,    32,    33,    34,     0,     0,     0,
    2912        0,   204,    42,     0,    37,    10,    11,    12,    13,    14,
    2913       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2914       25,    26,    27,    28,    29,    30,    31,     0,     0,   335,
    2915       33,    34,     0,     0,     0,     0,    41,    42,     0,    37,
    2916      261,     0,     0,     0,     0,     0,    48,    49,     0,     0,
    2917        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2918        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2919        0,    41,    42,     0,     0,   331,     0,     0,     0,     0,
    2920        0,    48,    49,     0,     0,     0,     0,    10,    11,    12,
    2921       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2922       23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2923      248,   335,    33,    34,     0,     0,    48,    49,     0,     0,
    2924        0,    37,    10,    11,    12,    13,    14,    15,    16,    17,
    2925       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    2926       28,    29,    30,    31,     0,     0,    32,    33,    34,     0,
    2927        0,     0,     0,    41,    42,     0,    37,    10,    11,    12,
    2928       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2929       23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
    2930        0,   335,    33,    34,     0,     0,     0,     0,    41,    42,
    2931        0,    37,   331,     0,     0,     0,     0,     0,    48,    49,
    2932        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2933        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2934        0,     0,     0,   204,    42,     0,     0,   737,     0,     0,
    2935        0,     0,     0,    48,    49,     0,     0,     0,     0,    10,
    2936       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2937       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2938       31,     0,   261,   335,    33,    34,     0,     0,    48,    49,
    2939        0,     0,     0,    37,    10,    11,    12,    13,    14,    15,
    2940       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2941       26,    27,    28,    29,    30,    31,     0,     0,   335,    33,
    2942       34,     0,     0,     0,     0,    41,    42,     0,    37,    10,
    2943       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2944       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    2945       31,     0,     0,    32,    33,    34,     0,     0,     0,     0,
    2946       41,    42,     0,    37,   684,     0,     0,     0,     0,     0,
    2947       48,    49,     0,     0,     0,     0,     0,     0,     0,     0,
    2948        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2949        0,     0,     0,     0,     0,   204,    42,     0,     0,   737,
    2950        0,     0,     0,     0,     0,    48,    49,   203,     3,     4,
    2951        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2952       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2953       25,    26,    27,    28,    29,    30,    31,     0,     0,   335,
    2954       33,    34,     0,     0,   276,   277,     0,   278,  1003,    37,
    2955     1004,     0,     0,  1005,  1006,  1007,  1008,  1009,  1010,  1011,
    2956     1012,     0,     0,  1530,  1013,     0,     0,     0,  1014,  1015,
    2957        0,  1016,     0,   279,     0,     0,  1017,     0,   172,   173,
    2958     1020,    41,    42,   282,   283,   273,   284,   285,   286,    44,
    2959       45,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2960        0,     0,     0,     0,     0,  1302,     0,     0,     0,     0,
    2961        0,     0,     0,     0,     0,   289,     0,   378,     0,     0,
    2962      169,     0,     0,    48,    49,   291,   292,   293,   294,     0,
    2963        0,   276,   277,  1021,   278,  1003,     0,  1004,  -134,     0,
    2964     1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,     0,     0,
    2965        0,  1013,     0,     0,     0,  1014,  1015,     0,  1016,     0,
    2966      279,     0,     0,  1017,     0,   172,   173,  1020,     0,     0,
    2967      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    2968      288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2970        0,     0,   289,     0,   378,     0,     0,   169,     0,     0,
    2971       48,    49,   291,   292,   293,   294,     0,     0,     0,     0,
    2972     1021,     0,     0,   276,   277,  -134,   278,  1003,     0,  1004,
    2973     1389,  1390,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,
    2974        0,     0,  1530,  1013,     0,     0,     0,  1014,  1015,     0,
    2975     1016,     0,   279,     0,     0,  1017,     0,   172,   173,  1020,
    2976        0,     0,   282,   283,   273,   284,   285,   286,    44,    45,
    2977        0,   287,   288,     0,     0,     0,     0,     0,     0,     0,
    2978        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2979        0,     0,     0,     0,   289,     0,   378,     0,     0,   169,
    2980        0,     0,    48,    49,   291,   292,   293,   294,     0,     0,
    2981      276,   277,  1021,   278,  1003,     0,  1004,  1389,  1390,  1005,
    2982     1006,  1007,  1008,  1009,  1010,  1011,  1012,     0,     0,     0,
    2983     1013,     0,     0,     0,  1014,  1015,     0,  1016,     0,   279,
    2984        0,     0,  1017,     0,   172,   173,  1020,     0,     0,   282,
    2985      283,   273,   284,   285,   286,    44,    45,     0,   287,   288,
    2986        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2987        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2988        0,   289,     0,   378,     0,     0,   169,     0,     0,    48,
    2989       49,   291,   292,   293,   294,     0,     0,   276,   277,  1021,
    2990      278,  1003,     0,  1004,     0,     0,  1005,  1006,  1007,  1008,
    2991     1009,  1010,  1011,  1012,     0,     0,     0,  1013,     0,     0,
    2992        0,  1014,  1015,     0,  1016,     0,   279,     0,     0,  1017,
    2993        0,   172,   173,  1020,     0,     0,   282,   283,   273,   284,
    2994      285,   286,    44,    45,     0,   287,   288,     0,     0,     0,
    2995        0,     0,     0,   276,   277,     0,   278,     0,     0,     0,
    2996        0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
    2997      378,   276,   277,   169,   278,     0,    48,    49,   291,   292,
    2998      293,   294,   279,     0,     0,   280,  1021,     0,     0,   281,
    2999        0,     0,   282,   283,   273,   284,   285,   286,    44,    45,
    3000      279,   287,   288,   280,     0,     0,     0,   281,     0,     0,
    3001      282,   283,   273,   284,   285,   286,    44,    45,     0,   287,
    3002      288,     0,     0,     0,   516,     0,   378,   276,   277,     0,
    3003      278,     0,    48,    49,   291,   292,   293,   294,     0,     0,
    3004        0,     0,   289,     0,   378,     0,     0,     0,     0,     0,
    3005      704,    49,   291,   292,   293,   294,   279,     0,     0,   280,
    3006        0,     0,     0,   281,     0,     0,   282,   283,   273,   284,
    3007      285,   286,    44,    45,     0,   287,   288,     0,     0,     0,
    3008        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3009        0,     0,     0,     0,     0,     0,     0,     0,   289,     0,
    3010      378,     0,     0,     0,     0,     0,   337,    49,   291,   292,
    3011      293,   294,   202,   203,     3,     4,     5,     6,     7,     8,
    3012        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3013       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3014       29,    30,    31,     0,     0,    32,    33,    34,     0,     0,
    3015        0,     0,     0,     0,     0,    37,   464,   203,     3,     4,
    3016        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3017       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3018       25,    26,    27,    28,    29,    30,    31,   204,    42,    32,
    3019       33,    34,     0,     0,     0,     0,     0,     0,     0,    37,
    3020        0,   203,     3,     4,     5,     6,     7,     8,     9,    10,
    3021       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3022       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    3023       31,    41,    42,   335,    33,    34,     0,     0,     0,     0,
    3024        0,     0,     0,    37,     0,   203,     3,     4,     5,     6,
    3025        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3026       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3027       27,    28,    29,    30,    31,   204,    42,    32,    33,    34,
    3028        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
    3029        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3030        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3031        0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
    3032       42
    3033 };
    3034 
    3035 #define yypact_value_is_default(yystate) \
    3036   ((yystate) == (-1376))
    3037 
    3038 #define yytable_value_is_error(yytable_value) \
    3039   YYID (0)
    3040 
    3041 static const yytype_int16 yycheck[] =
    3042 {
    3043        0,     1,     0,    46,     0,   181,    46,   201,     1,    46,
    3044      343,  1051,  1051,   181,   480,   452,   181,   118,   181,   216,
    3045        1,   533,   342,   181,   342,   569,   181,   652,   181,   166,
    3046      167,   984,   985,   866,   247,    35,    36,   601,    38,  1053,
    3047       38,     0,    38,  1051,   184,   604,    46,   494,     1,   623,
    3048      515,   498,    52,   985,    52,   417,    38,   866,  1312,    59,
    3049       46,   604,   601,    46,    64,  1389,    64,    67,   601,    67,
    3050       70,  1270,    70,    58,   436,   605,  1011,   901,    91,    38,
    3051      256,   611,   444,    70,   107,    46,    46,   144,   256,    70,
    3052      182,   256,   601,   256,   601,    46,   182,   198,   256,    52,
    3053      115,   256,    46,   256,   601,    85,   119,    46,   108,   643,
    3054      289,   111,   252,   253,   601,  1444,   364,    85,   118,   338,
    3055      368,   136,    34,    52,   658,   344,   126,  1502,   723,   118,
    3056      115,   154,   115,    71,   117,     0,     1,   117,   181,   115,
    3057     1464,   181,    59,   338,   181,   364,   146,   120,   146,   368,
    3058      948,   138,     0,  1482,   107,  1484,   117,   102,   158,  1534,
    3059      158,  1415,   115,   289,  1502,   257,   115,   487,   117,  1002,
    3060       82,   257,   706,    38,  1014,  1015,   115,   115,   117,  1098,
    3061      115,   181,   182,   128,   182,  1199,   115,   115,     0,  1527,
    3062       38,   108,   145,  1002,   111,   181,  1534,   995,   198,   425,
    3063      426,   154,    51,    52,   417,    70,   206,   714,   206,     0,
    3064        1,   101,   409,   256,     0,   215,   256,   714,   218,   256,
    3065      218,   181,   734,   436,  1048,   225,    38,   714,    51,    52,
    3066      181,   444,   115,   116,  1433,   235,   489,   801,   238,   115,
    3067      784,  1440,   242,   243,   242,   135,   242,    38,   122,   202,
    3068      243,   113,    38,   206,  1094,   814,   256,   257,   591,   257,
    3069      242,   137,   801,   263,   138,     0,   266,     3,   801,    46,
    3070      496,   814,   121,   803,  1393,   137,    67,   206,   744,    70,
    3071     1212,   102,   225,   242,    70,   480,   604,    46,   247,   515,
    3072       46,   115,   801,   626,   801,   238,   921,   120,   215,   425,
    3073      426,  1500,   635,    38,   801,  1258,  1259,   128,   122,   262,
    3074      333,   403,   265,  1232,   801,  1234,  1235,   403,   556,   557,
    3075      558,   559,   423,   323,   138,   323,   688,  1259,   429,   508,
    3076        3,   510,    67,   262,   513,  1270,   289,   516,   115,   587,
    3077      117,   341,   342,    51,    52,   909,   263,  1180,   301,   122,
    3078      576,   910,   122,   606,   116,     0,   115,   610,   117,   115,
    3079      693,   117,     0,   616,   155,   365,   136,   116,   587,   369,
    3080      909,  1180,   301,   122,   136,   708,   909,   242,  1497,   379,
    3081      333,   122,   508,  1502,   637,     0,   478,   513,   641,   963,
    3082      516,   639,   478,    38,   242,   137,   116,   138,  1485,   247,
    3083      115,    46,  1489,   403,   623,   403,   116,    52,  1527,   115,
    3084      278,   117,   120,  1348,   633,  1534,   136,   123,   124,    64,
    3085      639,   115,    67,   423,   341,    70,   136,   218,   623,   429,
    3086      242,   137,  1385,   301,   302,   247,   115,  1270,   633,   122,
    3087      122,   567,   972,   973,   134,    52,   115,   137,   365,   115,
    3088       46,   242,   369,  1385,   136,   138,   242,  1052,   417,     0,
    3089        1,   247,  1476,   796,   464,   931,  1506,  1506,  1093,   469,
    3090      338,   464,   425,   426,   115,   688,   923,   436,   478,   338,
    3091      478,   946,   482,   218,   482,   444,   482,   487,   925,   702,
    3092      490,   115,    67,  1507,   814,   495,   814,    38,  1506,   452,
    3093      122,   146,  1437,    46,  1439,   364,    85,   242,   115,   368,
    3094        0,   464,   380,   158,   136,  1074,   653,    76,  1316,   115,
    3095       46,   117,  1536,   482,   480,   116,    67,   527,   116,    70,
    3096       89,    90,   532,   117,   527,   119,   181,   182,   145,   532,
    3097     1057,   494,  1059,   496,   119,   498,   794,   116,    38,   744,
    3098       46,    46,   136,  1148,  1149,   508,   115,   510,   117,   660,
    3099      513,   206,   515,   516,   116,   122,  1501,    46,    46,   417,
    3100      671,   115,   115,   218,   117,   794,    57,   122,   797,  1377,
    3101     1378,   138,   122,   158,   837,   116,   586,    12,   436,   115,
    3102      122,   117,   116,   138,   914,   115,   444,   242,   138,   206,
    3103     1433,   601,   125,   126,   604,   417,   138,  1440,   343,  1467,
    3104      122,   256,   642,   643,   121,  1473,   673,   482,    99,   115,
    3105      115,   117,   117,   576,   436,   625,   138,   115,   658,   588,
    3106      630,   417,   444,   966,   482,   122,   115,   115,   117,   117,
    3107      431,  1499,    71,   218,   644,   115,  1504,   117,   648,  1115,
    3108      436,    76,   115,    78,    79,   262,   853,   657,   444,   659,
    3109      660,   661,   915,    96,    97,   118,   659,  1500,   661,   122,
    3110      482,   671,   122,   122,   122,   250,   706,   218,   323,   122,
    3111      255,   549,   550,   551,   115,   471,   642,   643,   138,   138,
    3112      138,   482,    94,    95,   301,   138,   482,   342,   131,   132,
    3113      700,   242,   658,   115,   138,   117,    76,   700,   625,   190,
    3114       80,   123,   124,   120,   714,   715,   138,   122,   116,    89,
    3115       90,   721,   859,   138,   122,   725,   118,   644,   587,   688,
    3116      122,   338,   213,   138,   525,   470,   931,   120,   691,   116,
    3117      657,   881,   223,   702,   963,   115,  1212,   482,    85,   116,
    3118      706,   115,   242,   123,   124,   122,    76,   247,   403,    76,
    3119       80,   116,   691,    80,   623,   718,   115,   122,   963,    89,
    3120       90,   123,    89,    90,   633,   116,  1288,   129,   130,    76,
    3121      639,   122,   976,    71,    59,   124,    74,   133,   744,    77,
    3122      134,    79,    89,    90,  1389,   115,    76,   588,   115,    87,
    3123      117,   801,    76,   123,   124,   897,   123,   124,   289,    89,
    3124       90,   897,   118,   118,   814,    89,    90,   122,   425,   426,
    3125      117,    76,   100,    78,    79,    76,   116,    78,    79,    80,
    3126       98,    99,   122,   108,    89,    90,   111,   482,    89,    90,
    3127      688,   117,   487,   117,   116,   452,   138,  1044,   118,   118,
    3128      122,   642,   643,   122,   702,   430,  1451,   116,   116,   859,
    3129      997,   115,   117,   122,   122,   865,   866,   658,  1463,  1464,
    3130      866,   121,   122,    87,   116,  1051,   688,    91,    92,    93,
    3131      748,   118,   116,  1051,   116,   122,  1051,   138,  1051,   496,
    3132      702,   626,  1487,  1051,   116,   470,  1051,   897,  1051,   116,
    3133      900,   115,   688,   117,   116,   119,   120,   866,   515,    76,
    3134      122,    78,    79,   116,   914,   706,   702,   115,   118,   117,
    3135     1115,   209,    89,    90,   116,   123,   124,   417,   116,   120,
    3136      122,   890,   932,   117,   122,   794,   116,   117,   938,   932,
    3137      215,   482,   895,   924,   944,   120,   436,   137,   948,    65,
    3138       66,   944,   122,   120,   444,   948,   601,  1049,   693,   604,
    3139      441,  1053,   120,  1049,  1559,   137,   895,  1053,   703,   576,
    3140      923,   924,   925,   708,   115,   931,    76,   155,    78,    79,
    3141       80,   116,   138,  1084,    76,   466,   116,   122,   263,    89,
    3142       90,    83,   482,   116,    86,   995,    88,    89,    90,   122,
    3143      136,   866,   995,   121,   122,  1005,  1002,   116,  1008,  1009,
    3144     1010,    76,   118,    78,    79,   116,   623,  1212,   866,    51,
    3145       52,   122,   118,   116,    89,    90,   633,   508,   984,   122,
    3146      118,   116,   513,  1159,  1160,   516,  1162,   122,   138,  1039,
    3147      116,   116,  1168,  1002,   122,  1171,   122,   122,    35,  1049,
    3148      115,  1051,   136,  1053,   866,   120,   136,   345,   346,   924,
    3149      348,   796,   350,  1099,  1100,  1065,   341,   552,   553,   714,
    3150      715,   115,   116,   117,   362,   866,   115,   116,   117,   116,
    3151      866,   115,   116,   117,  1084,   116,  1523,   115,   116,   117,
    3152      365,  1008,  1009,  1010,   369,   963,   120,    87,  1098,   890,
    3153      116,    91,    92,    93,   963,  1098,   121,  1199,   121,    76,
    3154      121,    78,    79,  1199,   122,  1068,    65,    66,    67,   115,
    3155       52,   116,    89,    90,   116,   115,   120,   117,   703,   119,
    3156      120,   866,    64,   924,  1002,    67,   122,  1002,    70,  1068,
    3157      554,   555,   560,   561,  1477,   116,   116,   116,   115,   122,
    3158      116,   116,   440,   120,  1002,  1155,   801,   116,   116,  1115,
    3159        4,     5,     6,     7,     8,     9,    10,    11,   116,   814,
    3160      116,   116,    12,    13,    14,    15,    16,    17,    18,   116,
    3161     1180,     0,     1,    76,  1180,    78,    79,    80,   116,    76,
    3162     1002,    78,    79,   984,   985,   676,    89,    90,   688,  1199,
    3163      116,   116,    89,    90,   685,   116,    46,   116,   689,  1301,
    3164       35,  1002,   702,   121,   146,  1301,  1002,   137,  1344,    38,
    3165      116,  1180,   115,  1442,   116,  1444,   158,    46,   122,   118,
    3166     1287,   966,  1232,    52,  1234,  1235,  1217,   118,  1191,  1232,
    3167      116,  1234,  1235,   116,   122,    64,   120,   116,    67,   116,
    3168      182,    70,   897,   431,   122,    12,    13,    14,    15,    16,
    3169       17,    18,  1191,  1482,  1217,  1484,   122,  1002,    76,   914,
    3170       78,    79,    80,  1374,   206,   115,   115,   117,   116,   115,
    3171      115,    89,    90,   123,   124,   115,   218,   115,   107,    46,
    3172       13,  1291,   138,   136,   138,   136,   115,   134,   122,   118,
    3173      119,  1301,  1258,   136,  1361,   121,    76,   115,    78,    79,
    3174       80,  1270,   116,   136,   116,  1180,  1316,   116,   925,    89,
    3175       90,   136,   120,  1316,   121,   866,   145,   146,   121,   116,
    3176     1506,  1312,  1180,   118,   122,   154,   155,   118,  1506,   158,
    3177      116,  1506,  1342,  1506,   116,  1345,    54,   525,  1506,   116,
    3178      625,  1506,  1217,  1506,   118,  1412,   963,   118,   115,  1312,
    3179      117,   116,   181,   182,   118,   118,   123,   124,  1180,   644,
    3180     1351,   118,   118,  1373,  1374,  1476,   866,  1377,  1378,   198,
    3181      138,   121,   657,   924,  1377,  1378,   138,   206,   138,  1180,
    3182      138,   323,   116,  1393,  1180,   138,   116,   116,  1398,   218,
    3183       76,   116,    78,    79,  1049,  1270,  1051,   461,  1053,   121,
    3184      588,   892,   121,    89,    90,  1507,    76,   118,    78,    79,
    3185       80,  1507,  1270,   242,    87,   118,  1217,  1427,  1485,    89,
    3186       90,   250,  1489,  1490,  1415,   118,   255,   256,   257,   118,
    3187      118,   118,   116,   262,  1536,  1180,   116,  1312,   115,   118,
    3188     1536,   115,    67,   115,   115,   120,  1373,   116,  1270,   116,
    3189     1517,  1002,  1415,  1506,   642,   643,  1506,  1258,  1259,  1506,
    3190      289,   403,    36,   118,  1433,   118,  1476,   116,  1478,  1270,
    3191      658,  1440,   301,  1540,  1270,  1478,  1351,  1544,   866,     4,
    3192        5,     6,     7,     8,     9,    10,    11,  1497,   317,   118,
    3193      116,   102,  1502,   102,   323,   115,  1506,  1507,   115,  1507,
    3194      138,  1568,  1002,  1442,   333,  1444,   121,    49,   116,   338,
    3195      116,  1312,   116,   342,   343,  1525,   116,  1527,   706,   122,
    3196      136,  1531,  1013,   116,  1534,  1270,  1536,   116,  1536,   102,
    3197      102,  1500,   118,   138,   116,   364,   138,  1547,   136,   368,
    3198     1415,  1551,   138,  1482,  1199,  1484,   138,   138,   116,  1350,
    3199     1351,   136,   126,   115,   186,  1351,   122,   121,  1433,  1569,
    3200     1523,   193,   118,    67,   118,  1440,  1569,   138,   118,   138,
    3201     1580,   116,    76,   121,   403,  1433,   115,  1580,     3,   116,
    3202      121,   866,  1440,   116,  1385,   136,   116,    12,    13,    14,
    3203       15,    16,    17,    18,   423,   138,   425,   426,   116,  1400,
    3204      429,   116,   431,   115,   138,  1350,   116,   138,  1021,   138,
    3205      562,  1433,   563,   677,  1415,   119,   564,  1005,  1440,   565,
    3206      943,    46,   566,   452,  1180,  1500,  1464,   259,    55,  1180,
    3207       57,  1353,  1433,    60,    61,    62,  1551,  1433,  1280,  1440,
    3208      469,  1490,  1500,  1544,  1440,  1440,  1301,  1039,  1049,   478,
    3209       77,   480,   723,   482,   158,  1400,   895,  1301,   487,  1059,
    3210      725,   235,     3,    90,    91,   938,  1217,   496,   917,    67,
    3211      859,    12,    13,    14,    15,    16,    17,    18,  1500,   508,
    3212     1180,   510,   654,   718,   513,   317,   515,   516,  1433,  1217,
    3213      916,    -1,   266,   482,   326,  1440,   525,   329,   568,  1500,
    3214      733,   568,   890,   568,  1500,    46,    -1,   778,    -1,    -1,
    3215       -1,    -1,    -1,    -1,   218,    -1,   780,    -1,    -1,  1270,
    3216     1005,   119,    -1,  1008,  1009,  1010,   790,   791,    -1,    -1,
    3217       76,    -1,    78,    79,    80,    -1,    -1,    -1,   802,   568,
    3218      569,    -1,    -1,    89,    90,   677,   250,   576,    -1,    -1,
    3219       -1,   255,    -1,    -1,    -1,  1500,   183,    -1,   587,   588,
    3220      158,  1312,   591,   395,    -1,  1350,    -1,   399,    -1,   115,
    3221     1270,   117,   601,    -1,    -1,   604,    -1,   123,   124,    -1,
    3222       -1,    -1,    -1,    -1,   855,    -1,    -1,    -1,  1279,    -1,
    3223       -1,   137,  1180,    -1,   623,    -1,   984,   985,    -1,  1350,
    3224     1351,    -1,    -1,    -1,   633,   379,   635,    -1,    -1,    -1,
    3225      639,    -1,    -1,   642,   643,  1400,    -1,    -1,    -1,    -1,
    3226      218,    76,    -1,    78,    79,    80,    -1,    -1,    -1,   658,
    3227       -1,   660,    -1,    -1,    89,    90,    -1,   235,    -1,   343,
    3228       -1,    -1,   671,    -1,    -1,   477,    -1,    -1,   780,  1400,
    3229       -1,  1506,   250,    -1,    -1,    -1,    -1,   255,   790,   791,
    3230      115,    -1,   691,    -1,  1415,    -1,    -1,    -1,   123,   124,
    3231      802,    -1,    -1,    -1,    -1,    -1,    -1,   706,   707,   708,
    3232      951,    -1,  1433,    -1,    -1,   714,   715,    -1,    76,  1440,
    3233       78,    79,    80,    -1,    -1,  1180,    -1,    -1,    -1,    -1,
    3234       -1,    89,    90,  1291,    -1,    -1,  1523,    -1,    -1,    -1,
    3235      337,    -1,   339,    -1,    -1,   744,   490,   981,   982,    -1,
    3236       -1,   495,    -1,    -1,    -1,    -1,   430,    -1,   999,   356,
    3237      357,    -1,    -1,  1433,    76,   123,   568,   569,    -1,    -1,
    3238     1440,    83,   446,    -1,    86,   343,    88,    89,    90,  1500,
    3239     1441,    -1,  1443,    -1,  1342,   784,    76,  1345,    78,    79,
    3240       80,    -1,    -1,    -1,    -1,   794,   470,   796,    -1,    89,
    3241       90,    -1,   801,    -1,    -1,   117,    -1,    -1,  1042,  1043,
    3242       76,  1052,    78,    79,    80,   814,    -1,    -1,    -1,    -1,
    3243     1481,    -1,  1483,    89,    90,   115,    -1,   117,    -1,    -1,
    3244     1500,    76,    -1,   123,   124,  1393,  1291,    -1,    83,    -1,
    3245     1398,    86,   586,    88,    89,    90,   136,    -1,    -1,   115,
    3246       -1,   117,  1210,    -1,    -1,    -1,    -1,   123,   124,    -1,
    3247      662,    -1,   430,    -1,   666,    -1,    -1,   866,    -1,  1427,
    3248       -1,    76,   117,    -1,  1535,    -1,  1537,    -1,    83,   981,
    3249      982,    86,    -1,    88,    89,    90,   630,  1342,    -1,    -1,
    3250     1345,   890,    -1,    -1,  1555,  1556,   895,    -1,   897,    -1,
    3251     1258,  1259,   470,    -1,   648,    -1,    -1,  1148,  1149,    -1,
    3252      909,   910,   117,    -1,    -1,   914,    -1,   591,  1373,    -1,
    3253       -1,    -1,    -1,    -1,    -1,   924,   925,    -1,    -1,    -1,
    3254       -1,    76,   931,    78,    79,    80,    -1,    -1,  1393,    -1,
    3255     1042,  1043,    -1,  1398,    89,    90,    -1,    -1,    -1,    -1,
    3256       -1,    -1,   626,    -1,    12,    13,    14,    15,    16,    17,
    3257       18,   635,    -1,    -1,   963,    -1,    -1,  1525,    -1,    -1,
    3258      115,    -1,  1427,  1531,    -1,    -1,  1210,   721,   123,   124,
    3259       -1,   725,   784,    -1,    -1,   984,   985,    -1,    46,  1547,
    3260       -1,    -1,    -1,  1551,    -1,    -1,    76,    -1,    78,    79,
    3261       80,    -1,    -1,  1002,    -1,  1239,    -1,    -1,    -1,    89,
    3262       90,    -1,    -1,  1247,  1248,  1249,    -1,    -1,    76,   693,
    3263       78,    79,    80,   591,    -1,    -1,    -1,  1385,    -1,   703,
    3264       -1,    89,    90,    -1,   708,   115,    -1,   117,    -1,    -1,
    3265       -1,    -1,  1497,   123,   124,    -1,    -1,  1502,    -1,    -1,
    3266     1049,    -1,  1051,    -1,  1053,    -1,    -1,   115,   626,   117,
    3267       -1,    -1,   630,    -1,    -1,   123,   124,   635,    -1,  1068,
    3268     1525,    -1,  1527,    -1,    -1,  1074,  1531,    -1,    -1,  1534,
    3269       -1,    -1,    -1,    -1,    -1,  1084,    -1,    -1,    -1,    -1,
    3270       -1,    -1,  1547,    -1,    -1,    -1,  1551,   694,    -1,   696,
    3271       -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
    3272       -1,    -1,   709,    -1,    -1,   859,  1115,    -1,    -1,    -1,
    3273       -1,   865,   796,    -1,    -1,   693,    -1,    -1,    -1,   726,
    3274       -1,    -1,    -1,    -1,   731,   703,    -1,  1239,    -1,    -1,
    3275      708,    -1,    -1,    -1,    -1,  1247,  1248,  1249,  1389,    -1,
    3276        3,   953,    -1,   750,    -1,    -1,   900,    -1,    -1,    12,
    3277       13,    14,    15,    16,    17,    18,    -1,   969,    -1,    -1,
    3278       12,    13,    14,    15,    16,    17,    18,    -1,    -1,    -1,
    3279     1414,  1180,     4,     5,     6,     7,     8,     9,    10,    11,
    3280       -1,    -1,  1191,    46,   938,    -1,    -1,    -1,    -1,    -1,
    3281     1199,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,
    3282     1451,    -1,    -1,  1212,    -1,    -1,    -1,    39,  1217,    -1,
    3283       -1,    -1,  1463,  1464,    -1,    -1,    -1,    -1,   796,    -1,
    3284       -1,    -1,    -1,    -1,    76,    -1,    78,    79,    80,    -1,
    3285       -1,    -1,    -1,    -1,    -1,    -1,  1487,    89,    90,    -1,
    3286       -1,   848,    -1,   850,   851,   852,  1058,    -1,    -1,  1258,
    3287     1259,    -1,    12,    13,    14,    15,    16,    17,    18,    -1,
    3288       -1,  1270,   869,   115,    -1,   117,    -1,    -1,    -1,    -1,
    3289       -1,   123,   124,    -1,    -1,    -1,    -1,    -1,   885,    -1,
    3290       -1,    -1,   966,    -1,    -1,  1039,    46,    -1,    -1,    -1,
    3291       -1,    -1,  1301,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3292       -1,   908,  1414,  1312,    -1,    -1,    -1,    -1,  1559,    -1,
    3293       -1,  1065,   103,   104,   105,   106,   107,   108,   109,   110,
    3294      111,   112,   113,    -1,    -1,    12,    13,    14,    15,    16,
    3295       17,    18,    -1,    -1,    -1,   942,    -1,    -1,    -1,    -1,
    3296      947,  1350,  1351,    -1,    -1,   952,   137,    -1,    -1,    -1,
    3297      957,   958,    -1,    -1,    -1,   962,    -1,   964,   965,    46,
    3298       -1,   968,    -1,    -1,    -1,  1374,    -1,    -1,    44,    45,
    3299      977,    47,    -1,    -1,    -1,    -1,  1385,    -1,    -1,    -1,
    3300       -1,    -1,  1194,    -1,    -1,    -1,   993,   994,   966,    76,
    3301       -1,  1400,    -1,    80,     0,     1,    -1,    73,    -1,    -1,
    3302       76,  1155,    89,    90,    80,    -1,  1415,    83,    84,    85,
    3303       86,    87,    88,    89,    90,    -1,    92,    93,  1025,    -1,
    3304       -1,  1028,    -1,    -1,  1433,    -1,    -1,    -1,   115,    -1,
    3305       -1,  1440,    38,  1442,    -1,  1444,   123,   124,    -1,   115,
    3306       -1,   117,    -1,    -1,    -1,    -1,    52,   123,   124,   125,
    3307      126,   127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3308      136,    -1,    -1,    -1,    70,    -1,    -1,  1476,  1477,    -1,
    3309       -1,    -1,    -1,  1482,  1081,  1484,    -1,    -1,    -1,    -1,
    3310     1087,  1088,    -1,    -1,    -1,  1297,    -1,    -1,    -1,  1096,
    3311       -1,  1500,    -1,    -1,  1101,    -1,    -1,  1506,  1507,  1106,
    3312       -1,   107,    -1,    -1,    12,    13,    14,    15,    16,    17,
    3313       18,    -1,  1119,    -1,  1523,    -1,    -1,    -1,    -1,    -1,
    3314       12,    13,    14,    15,    16,    17,    18,  1536,  1135,    -1,
    3315     1137,  1138,  1139,  1140,    -1,    -1,    -1,    -1,    46,    -1,
    3316      146,    -1,    -1,    -1,    -1,  1152,    -1,  1154,   154,   155,
    3317       -1,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,
    3318       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
    3319       78,    79,    80,    -1,    -1,    -1,   182,    -1,    -1,  1186,
    3320     1187,    89,    90,    -1,    76,    -1,    78,    79,    80,    -1,
    3321       -1,    -1,   198,    -1,    -1,   201,   202,    89,    90,    -1,
    3322      206,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,
    3323       -1,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
    3324       -1,   227,    -1,   115,    -1,   231,    -1,   233,    -1,    -1,
    3325      236,   123,   124,     0,    -1,    -1,   242,    -1,    -1,    -1,
    3326       -1,   247,    -1,  1250,  1251,    -1,    -1,    -1,    -1,    -1,
    3327       -1,   257,    -1,  1260,    -1,    -1,    -1,    -1,    -1,   265,
    3328       -1,    -1,    -1,    -1,    -1,    -1,  1350,    -1,    -1,    -1,
    3329       -1,    38,     4,     5,     6,     7,     8,     9,    10,    11,
     3841      31,    32,    33,    -1,  1392,    36,    37,    38,    39,    40,
     3842      41,    42,    -1,    -1,    -1,    46,    47,    48,    49,    50,
     3843      51,    -1,    53,    -1,    -1,    56,    57,    58,    59,    60,
     3844      61,    62,    63,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3845      71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,    -1,
     3846      81,    82,    83,    -1,    -1,    86,    87,    88,    89,    90,
     3847      91,    92,    93,    -1,    95,    96,  1454,    -1,    -1,    -1,
     3848      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1466,  1467,
     3849      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,
     3850      -1,    -1,   123,    -1,    -1,   126,   127,   128,   129,   130,
     3851     131,    -1,  1490,    -1,    -1,   136,    -1,    -1,    -1,    -1,
     3852     141,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    33303853      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    33313854      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    3332       32,    33,    -1,    70,    36,    37,    38,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    46,    -1,  1400,  1324,    -1,  1326,
    3334     1327,  1328,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,
    3335       -1,  1338,   338,    -1,    -1,    -1,    -1,    -1,   344,  1346,
    3336       -1,    -1,  1349,    -1,    -1,    -1,    78,    79,    -1,    -1,
    3337       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   364,    -1,
    3338       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,  1376,
    3339       -1,    -1,  1350,    -1,    -1,    12,    13,    14,    15,    16,
    3340       17,    18,    -1,    -1,   116,   117,    -1,    -1,   155,    -1,
    3341       -1,   123,   124,  1477,    -1,    -1,    -1,    -1,    -1,    -1,
    3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
    3343       -1,   417,    -1,  1420,  1421,    -1,    -1,    -1,    -1,    -1,
    3344       -1,    -1,  1400,    -1,    -1,   431,  1433,    -1,    -1,    -1,
    3345      436,    -1,    -1,  1440,    -1,    -1,    -1,    -1,   444,    76,
    3346       -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
    3347     1457,    -1,    89,    90,    -1,   461,    -1,    -1,   464,    -1,
    3348      227,    -1,    -1,    -1,    -1,   471,    -1,    -1,  1475,    -1,
    3349       -1,    -1,    -1,  1480,   480,   242,   482,    -1,   115,    -1,
    3350      247,    -1,    -1,    -1,    -1,    -1,   123,   124,   494,    -1,
    3351       -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,  1477,
    3352       -1,    -1,    -1,    -1,    -1,    -1,  1513,    -1,  1515,    -1,
    3353       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,
    3354       -1,    -1,    -1,    -1,     0,    -1,    -1,    12,    13,    14,
    3355       15,    16,    17,    18,    -1,    -1,    -1,    -1,    -1,    -1,
    3356       -1,    -1,    -1,    -1,    -1,    -1,  1553,  1554,    -1,    -1,
    3357       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1566,
    3358     1567,    46,    38,   569,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,   338,    -1,    -1,    -1,    -1,    -1,   344,    -1,    -1,
    3360       -1,   587,   588,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361       -1,    76,    -1,    -1,    70,    80,    -1,   364,   604,    -1,
    3362       -1,   368,    -1,    -1,    89,    90,    -1,    -1,    -1,    -1,
    3363       -1,    -1,    -1,    -1,    -1,    -1,    -1,   623,    -1,    -1,
    3364       -1,    -1,   628,    -1,    -1,    -1,    -1,   633,    -1,    -1,
    3365      115,    -1,    -1,   639,    -1,    -1,   642,   643,   123,   124,
    3366       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3367      417,    -1,   658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3368       -1,    -1,    -1,    -1,   431,    -1,    -1,    -1,    -1,   436,
    3369       -1,   677,    -1,    -1,    -1,    -1,    -1,   444,    -1,   155,
    3370       -1,    -1,   688,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3371       -1,    -1,    -1,    -1,   461,    -1,   702,    -1,    -1,    -1,
    3372      706,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,   715,
    3373       -1,    -1,   718,   480,    -1,   482,    12,    13,    14,    15,
    3374       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3375       26,    27,    28,    29,    30,    31,    32,    33,   744,    -1,
    3376       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3377       46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,
    3378       -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
    3379       -1,   247,    -1,    -1,   780,    -1,    -1,    -1,    -1,    -1,
    3380       76,    -1,    78,    79,   790,   791,    -1,    -1,   794,    -1,
    3381       -1,   797,    -1,    89,    90,    -1,   802,    -1,    -1,    -1,
    3382       -1,    -1,    -1,    -1,    -1,    -1,   812,    -1,    -1,    -1,
    3383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3384      587,   588,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3385        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3386       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3387       29,    30,    31,    32,    33,    -1,   623,    36,    37,    38,
    3388      866,    -1,   338,    -1,    -1,    -1,   633,    46,   344,    -1,
    3389       -1,    -1,   639,    -1,    -1,   642,   643,    -1,    -1,    -1,
    3390       -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,   364,    -1,
    3391       -1,   658,   368,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    3392       79,    -1,    -1,    -1,   910,    -1,    -1,    -1,    -1,    -1,
    3393      677,    -1,    -1,    -1,    -1,    -1,    -1,   923,   924,    -1,
    3394       -1,   688,    -1,    -1,    -1,   931,    -1,    -1,    -1,    -1,
    3395       -1,    -1,    -1,    -1,    -1,   702,    -1,    -1,   117,   706,
    3396       -1,   417,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
    3397       -1,    -1,    -1,    -1,    -1,   431,    -1,   963,    -1,    -1,
    3398      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   444,    -1,
    3399      976,    -1,    -1,    -1,    -1,   981,   982,   744,   984,   985,
    3400       -1,    -1,    -1,    -1,    -1,   461,    -1,    -1,    -1,    -1,
    3401       -1,    -1,    -1,    -1,    -1,   471,  1002,    -1,    -1,    -1,
    3402       -1,    -1,    -1,    -1,   480,    -1,   482,    -1,    -1,    -1,
    3403       -1,    -1,    -1,   780,    -1,    -1,    -1,    -1,     0,    -1,
    3404       -1,    -1,    -1,   790,   791,    -1,    -1,   794,    -1,    -1,
    3405      797,    -1,    -1,    -1,    -1,   802,  1042,  1043,    -1,    -1,
    3406       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1053,    -1,   525,
    3407       -1,    -1,    -1,    -1,     0,    -1,    38,     3,     4,     5,
    3408        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3409       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3410       26,    27,    28,    29,    30,    31,    32,    33,    70,    -1,
    3411       36,    37,    38,    39,    -1,    -1,    -1,    43,    -1,   866,
    3412       46,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1115,
    3413       -1,   587,   588,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3414       -1,    -1,    -1,   890,    -1,    71,    -1,    -1,    -1,    -1,
    3415       76,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3416       -1,    -1,    -1,    89,    90,    -1,    -1,   623,    -1,    -1,
    3417       -1,    -1,    -1,    -1,    -1,    -1,    -1,   633,    -1,    -1,
    3418       -1,    -1,    -1,   639,   931,    -1,   642,   643,    -1,   115,
    3419       -1,   117,    -1,   155,  1180,    -1,    -1,   123,   124,    -1,
    3420       -1,    -1,   658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3421       -1,    -1,    -1,    -1,    -1,    -1,   963,    -1,    -1,    -1,
    3422       -1,   677,    -1,    -1,  1210,    -1,  1212,    -1,    -1,    -1,
    3423       -1,  1217,   688,    -1,   981,   982,    -1,   984,   985,    -1,
    3424       -1,    -1,    -1,    -1,    -1,    -1,   702,    -1,    -1,    -1,
    3425      706,    -1,    -1,  1239,    -1,  1002,    -1,    -1,    -1,    -1,
    3426       -1,  1247,  1248,  1249,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,  1258,  1259,    -1,    -1,    -1,    -1,    -1,    -1,
    3428      242,    -1,    -1,    -1,  1270,   247,    -1,    -1,   744,    -1,
    3429       -1,    -1,    -1,    -1,    -1,  1042,  1043,    12,    13,    14,
    3430       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3431       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    3432       -1,    36,    37,    38,   780,    -1,  1312,    -1,    -1,    -1,
    3433       -1,    46,    -1,    -1,   790,   791,    -1,    -1,   794,    -1,
    3434       -1,   797,    -1,    -1,    -1,    -1,   802,    -1,    -1,    -1,
    3435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    -1,    78,    79,  1351,    -1,    -1,  1115,    -1,
    3437       -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,    -1,    -1,
    3438       -1,    -1,   344,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1385,
    3440       -1,    -1,   364,    -1,    -1,    -1,   368,    -1,   123,   124,
    3441      866,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3442       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1414,  1415,
    3443       -1,    -1,    -1,  1180,   890,    -1,    -1,    -1,    -1,    -1,
    3444       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1433,    -1,    -1,
    3445       -1,    -1,    -1,    -1,  1440,   417,  1442,    -1,  1444,    -1,
    3446       -1,    -1,    -1,  1210,    -1,  1212,    -1,    -1,    -1,   431,
    3447       -1,    -1,    -1,    -1,   436,   931,    -1,    -1,    -1,    -1,
    3448       -1,    -1,   444,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3449       -1,    -1,  1239,    -1,    -1,    -1,  1482,    -1,  1484,   461,
    3450     1247,  1248,  1249,    -1,    -1,    -1,    -1,   963,    -1,   471,
    3451       -1,  1258,  1259,    -1,  1500,    -1,    -1,    -1,   480,    -1,
    3452      482,  1507,    -1,  1270,    -1,   981,   982,    -1,   984,   985,
    3453       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,
    3454       -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,    -1,    -1,
    3455       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3456       -1,    -1,    -1,   525,    12,    13,    14,    15,    16,    17,
    3457       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3458       28,    29,    30,    31,    32,    33,  1042,  1043,    36,    37,
    3459       38,    -1,    -1,    -1,   276,    -1,   278,   279,    46,   115,
    3460       -1,    -1,    -1,   119,  1351,   287,   288,    -1,    -1,    -1,
    3461       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,
    3462      302,    -1,    -1,    -1,    -1,   587,   588,    -1,    -1,   145,
    3463       78,    79,    -1,    -1,    -1,    -1,    -1,    -1,  1385,   155,
    3464       -1,    -1,   158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3465       -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,    -1,  1115,
    3466       -1,   623,    -1,    -1,    -1,    -1,    -1,  1414,    -1,   117,
    3467       -1,   633,    -1,    -1,    -1,   123,   124,   639,    -1,    -1,
    3468      642,   643,    -1,    -1,    -1,    -1,  1433,    -1,    -1,    -1,
    3469      206,    -1,    -1,  1440,    -1,  1442,   658,  1444,   380,    -1,
    3470       -1,    -1,   218,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3471       -1,    -1,    -1,    -1,    -1,   677,    -1,    -1,    -1,    -1,
    3472       -1,    -1,    -1,    -1,  1180,    -1,   688,    -1,    -1,    -1,
    3473       -1,    -1,    -1,    -1,    -1,  1482,    -1,  1484,    -1,   255,
    3474      702,    -1,    -1,    -1,   706,    -1,   262,    -1,    -1,    -1,
    3475       -1,    -1,    -1,  1500,  1210,    -1,  1212,    -1,    -1,    -1,
    3476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3477       -1,    -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,
    3478       -1,    -1,   744,  1239,    -1,   301,    -1,    -1,    -1,    -1,
    3479       -1,  1247,  1248,  1249,    -1,    67,    -1,    -1,    -1,    -1,
    3480       -1,    -1,  1258,  1259,    76,    -1,    78,    -1,    80,    -1,
    3481       -1,    -1,    -1,    -1,  1270,    -1,    88,    -1,   780,    -1,
    3482       -1,    -1,   338,    -1,    -1,    -1,    -1,   343,   790,   791,
    3483       -1,    -1,   794,    -1,    -1,   797,    -1,    -1,    -1,    -1,
    3484      802,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,   121,
    3485      122,   123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3486       -1,    -1,    -1,    -1,    -1,    -1,    -1,   549,   550,   551,
    3487      552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
    3488      562,   563,   564,   565,   566,    -1,   158,    -1,    -1,    -1,
    3489       -1,    -1,    -1,    -1,    -1,  1351,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,   866,    -1,    -1,    -1,    -1,   425,
    3491      426,    -1,    -1,    -1,    -1,   431,    -1,    -1,    -1,    -1,
    3492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,  1385,
    3493       -1,    -1,    -1,    -1,    -1,    -1,   452,    -1,    -1,    -1,
    3494       -1,    -1,    -1,    -1,    -1,    -1,   218,    -1,   220,   221,
    3495      222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1414,    -1,
    3496       -1,    -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,   931,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1433,   250,    -1,
    3498      496,    -1,    -1,   255,  1440,    -1,  1442,    -1,  1444,    -1,
    3499       -1,    -1,   508,    -1,   510,    -1,    -1,   513,    -1,   515,
    3500      516,   963,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   525,
    3501       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   981,
    3502      982,    -1,   984,   985,    -1,    -1,  1482,    -1,  1484,    -1,
    3503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3504     1002,   723,    -1,    -1,  1500,    -1,    -1,    -1,    -1,    -1,
    3505       -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3506      576,    -1,    -1,    -1,    -1,    -1,   748,    -1,    -1,    -1,
    3507       -1,   343,   588,    -1,    -1,   591,    -1,   349,    -1,   351,
    3508     1042,  1043,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3509       -1,   363,    -1,    -1,    -1,    -1,   778,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,    -1,    -1,    -1,   623,    -1,    -1,
    3511       -1,    -1,    -1,    -1,    -1,    -1,    -1,   633,    -1,    -1,
    3512       -1,    -1,    -1,    -1,    -1,    -1,   642,   643,    -1,    -1,
    3513       -1,   403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3514       -1,    -1,   658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3515       -1,   423,    -1,  1115,    -1,    -1,   428,    -1,   430,    -1,
    3516       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3517       -1,    -1,    -1,    -1,   446,   691,    -1,   449,   450,    -1,
    3518       -1,    -1,    -1,    -1,   456,    -1,    -1,    -1,    -1,    -1,
    3519      706,    -1,   708,    -1,    -1,    -1,    -1,    -1,   470,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,   478,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1180,    -1,
    3522       -1,    -1,    44,    45,    -1,    47,    -1,    -1,   744,    -1,
    3523       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1210,    -1,
    3525     1212,    73,    -1,    -1,    76,    -1,    -1,    -1,    80,    -1,
    3526       -1,    83,    84,    85,    86,    87,    88,    89,    90,   951,
    3527       92,    93,    -1,    -1,    -1,    -1,    -1,  1239,    -1,    -1,
    3528      796,   963,    -1,    -1,    -1,  1247,  1248,  1249,    -1,    -1,
    3529       -1,    -1,    -1,   115,    -1,   117,  1258,  1259,   120,    -1,
    3530       -1,   123,   124,   125,   126,   127,   128,    -1,  1270,    -1,
    3531       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,
    3532     1002,   593,   594,   595,    -1,    -1,    -1,    -1,    -1,    -1,
    3533       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3534       47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3535       -1,    -1,    -1,    -1,   626,   627,    -1,    -1,    -1,    -1,
    3536       -1,    -1,    -1,   635,    -1,    -1,    -1,    -1,    -1,    -1,
    3537     1052,    -1,    -1,    -1,   890,    -1,    -1,    -1,    -1,   895,
    3538       -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,  1351,
    3539       -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
    3540       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   925,
    3541       -1,    -1,    -1,    -1,    -1,   931,    -1,    -1,    -1,    -1,
    3542       -1,   693,    -1,  1385,    -1,    -1,    -1,    -1,    -1,    -1,
    3543       -1,   703,    -1,    -1,    -1,    -1,   708,    -1,    -1,    -1,
    3544       -1,    -1,   154,   155,    -1,    -1,    -1,   963,    -1,    -1,
    3545       -1,    -1,  1414,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3546       -1,    -1,   169,    -1,    -1,    -1,  1148,  1149,   984,   985,
    3547       -1,  1433,    -1,    -1,   186,    -1,    -1,    -1,  1440,    -1,
    3548     1442,   193,  1444,    -1,   191,    -1,    -1,    -1,    -1,    -1,
    3549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,    -1,
    3550       -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,    -1,    -1,
    3551       -1,    -1,   784,    -1,    -1,    -1,    -1,   224,    -1,    -1,
    3552     1482,    -1,  1484,    -1,   796,    -1,    -1,    -1,    -1,    44,
    3553       45,    -1,    47,    -1,    -1,    -1,   243,    -1,  1500,    -1,
    3554       -1,   248,   814,    -1,    -1,    -1,    -1,   259,    -1,    -1,
    3555       -1,    -1,  1068,    -1,   261,    -1,    -1,    -1,    73,    -1,
    3556       -1,    76,   269,    -1,   271,    80,   838,    -1,    83,    84,
    3557       85,    86,    87,    88,    89,    90,    -1,    92,    93,    -1,
    3558       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
    3559       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1115,
    3560      115,    -1,   117,    -1,    -1,   317,    -1,   122,   123,   124,
    3561      125,   126,   127,   128,   326,   327,    -1,   329,   330,    -1,
    3562       -1,    -1,    -1,    -1,   331,    -1,   338,    -1,    -1,   336,
    3563      342,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,   914,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3565       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,
    3566       -1,    -1,    -1,    -1,   371,    -1,    -1,    -1,   375,   376,
    3567       -1,   378,    -1,    -1,    -1,  1191,    -1,    -1,   385,   386,
    3568       -1,   388,   389,   395,   391,    -1,   393,   399,    -1,    -1,
    3569       -1,    -1,    -1,    -1,   966,    -1,  1212,    -1,    -1,    -1,
    3570       -1,    -1,    -1,   410,    -1,   977,    -1,  1389,    -1,    -1,
    3571       -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   431,
    3572       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3573       -1,    -1,    -1,    -1,    -1,   442,    -1,    -1,    -1,    -1,
    3574       -1,    -1,  1258,  1259,    -1,    -1,    -1,    44,    45,    -1,
    3575       47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3576      467,    -1,    -1,    -1,    -1,   477,    -1,   474,   480,  1451,
    3577       -1,    -1,   479,    -1,    -1,    -1,    73,    -1,    -1,    76,
    3578       -1,  1463,  1464,    80,    -1,    -1,    83,    84,    85,    86,
    3579       87,    88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,
    3580       -1,    -1,  1074,    -1,    -1,  1487,    -1,    -1,    -1,    -1,
    3581       -1,    -1,   519,   525,    -1,    -1,    -1,    -1,   115,    -1,
    3582      117,    -1,    -1,   120,   531,    -1,   123,   124,   125,   126,
    3583      127,   128,    -1,    -1,  1350,    -1,    -1,    -1,    -1,    -1,
    3584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3585       -1,    -1,    -1,    -1,    -1,    -1,   568,   569,    -1,    -1,
    3586       -1,   568,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1385,
    3587      577,    -1,    -1,   580,    -1,   587,   588,  1559,    -1,    -1,
    3588       -1,    -1,    -1,    -1,  1400,    -1,    -1,    -1,    -1,   601,
    3589       -1,    -1,   604,   605,    -1,   602,    -1,    -1,    -1,   611,
    3590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   621,
    3591       -1,   623,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592      155,   633,    -1,    -1,    -1,    -1,  1442,  1199,  1444,    -1,
    3593      642,   643,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3594      647,    -1,    -1,    -1,    44,    45,   658,    47,    -1,    -1,
    3595      662,   663,    -1,    -1,   666,   667,    -1,    -1,    -1,    -1,
    3596       -1,  1477,    -1,   675,    -1,    -1,  1482,    -1,  1484,    -1,
    3597       -1,    -1,    -1,    73,    -1,    -1,    76,   684,    -1,    -1,
    3598       80,    -1,    -1,    83,    84,    85,    86,    87,    88,    89,
    3599       90,    -1,    92,    93,   706,   707,    -1,    -1,    -1,    -1,
    3600       -1,    -1,    -1,    -1,    -1,   712,    -1,  1523,    -1,    -1,
    3601       -1,    -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,
    3602      727,   728,    -1,   123,   124,   125,   126,   127,   128,    -1,
    3603      737,    -1,   744,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3604       -1,    -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,   756,
    3605       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3606      145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3607      155,    -1,   784,    -1,    -1,    -1,    -1,    -1,  1350,    -1,
    3608       -1,   166,   167,    -1,    -1,    -1,    -1,    -1,    -1,   801,
    3609       -1,   803,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,   814,   338,    -1,    -1,    -1,    -1,   343,   344,
    3611       -1,   818,    -1,    -1,    -1,    -1,    -1,    -1,   825,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1400,   364,
    3613       -1,    -1,    -1,   368,   841,    -1,   843,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   856,
    3615       -1,    -1,    -1,    -1,    -1,   862,    -1,    -1,    -1,    -1,
    3616       -1,    -1,    -1,    -1,    -1,    -1,   873,    -1,    -1,   254,
    3617      877,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,    -1,
    3618       -1,    -1,    -1,    -1,    -1,   897,    -1,    -1,    -1,    -1,
    3619       -1,    -1,    -1,    -1,    -1,    -1,   431,   909,   910,    -1,
    3620       -1,    -1,    -1,    -1,    -1,  1477,    -1,    -1,    -1,    -1,
    3621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   931,
    3622       -1,    -1,    -1,    -1,    -1,    -1,   461,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3624       -1,   953,   954,    -1,    -1,   480,    -1,    -1,    -1,    -1,
    3625       -1,   963,    -1,    -1,   961,    -1,    -1,   969,   970,    -1,
    3626      972,   973,   974,    -1,  1536,    -1,    -1,    -1,    -1,    -1,
    3627       -1,    -1,   984,   985,    -1,    -1,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3629      525,    -1,    -1,    -1,   379,    -1,    -1,   155,    12,    13,
    3630       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3631       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    3632       -1,  1028,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3633       -1,    -1,    46,    -1,    -1,    -1,    -1,  1049,    -1,  1051,
    3634       -1,  1053,    -1,    -1,    -1,    -1,  1058,    -1,    -1,    -1,
    3635       -1,    -1,   587,   588,    -1,    -1,   591,    -1,    -1,    -1,
    3636       -1,    -1,  1074,  1070,    78,    79,    -1,   452,  1075,    -1,
    3637       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1085,    -1,
    3638       -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   623,    -1,
    3639       -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,   633,    -1,
    3640      635,    -1,  1109,  1115,   639,    -1,    -1,   642,   643,   123,
    3641      124,    -1,    -1,    -1,    -1,  1122,    -1,    -1,    -1,  1126,
    3642       -1,    -1,  1129,   658,    -1,    -1,    -1,    -1,    -1,    -1,
    3643      515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1145,  1146,
    3644      525,    -1,   677,    -1,    -1,   530,    -1,    -1,   533,    -1,
    3645       -1,    -1,    -1,    -1,    -1,    -1,  1163,    -1,   693,    -1,
    3646       -1,   546,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,   706,    -1,   708,    -1,    -1,    -1,    -1,    -1,    -1,
    3648      338,    -1,  1194,    -1,    -1,   343,   344,  1199,    -1,    -1,
    3649       -1,   576,    -1,    -1,    -1,    -1,    -1,    -1,   583,    -1,
    3650     1212,    -1,    -1,   588,    -1,    -1,   364,    -1,    -1,   744,
    3651      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   603,    -1,
    3652       -1,  1228,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,    -1,    -1,   780,  1258,  1259,    -1,    -1,
    3655       -1,    -1,    -1,    -1,    -1,   790,   791,    32,    -1,   794,
    3656      645,   796,   797,    -1,    -1,    -1,    -1,   802,   653,    -1,
    3657       -1,    -1,    -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,
    3658       -1,    -1,    -1,    -1,    -1,  1297,  1298,    -1,    -1,  1301,
    3659       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3660     1307,    -1,  1309,   461,    -1,    -1,    -1,    -1,    -1,    84,
    3661       -1,    -1,  1319,    -1,  1321,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,   480,    -1,    -1,   100,    -1,   102,    -1,  1336,
    3663       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3664       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1354,  1355,   734,
    3665       -1,    -1,    -1,    -1,    -1,   890,    -1,    -1,    -1,   744,
    3666     1367,   746,    -1,    -1,   749,  1372,    -1,   525,  1375,    -1,
    3667      755,    -1,    -1,  1385,   155,    -1,    -1,    -1,    -1,    -1,
    3668       -1,    -1,    -1,    -1,  1391,    -1,    -1,    -1,    32,    -1,
    3669       -1,    -1,    -1,    -1,  1401,    -1,   931,  1404,    -1,  1406,
    3670     1407,  1408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3671       -1,   796,   797,   188,   189,    -1,    -1,    -1,   193,    -1,
    3672      195,   196,    -1,    -1,    -1,    -1,    -1,   812,   963,   587,
    3673      588,   966,    -1,   591,    -1,    -1,    -1,    -1,    -1,  1446,
    3674       84,  1448,    -1,    -1,    -1,    -1,   981,   982,    -1,   984,
    3675      985,  1458,    -1,    -1,    -1,    -1,   100,    -1,   102,    -1,
    3676       -1,  1468,    -1,    -1,  1476,   623,    -1,    -1,   626,    -1,
    3677      855,    -1,    -1,    -1,   859,   633,    -1,   635,    -1,    -1,
    3678       -1,   639,    -1,   127,   642,   643,    -1,    -1,    -1,    -1,
    3679       -1,    -1,    -1,    -1,  1506,  1507,    -1,    -1,    -1,    -1,
    3680      658,    -1,    -1,    -1,    -1,   890,    -1,  1042,  1043,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   677,
    3682       -1,    -1,    -1,    -1,  1536,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    -1,   693,    -1,    -1,    -1,    -1,
    3684      925,    -1,   186,    -1,   188,   189,   931,    -1,   706,   193,
    3685      708,   195,   196,   938,    -1,    -1,    -1,   338,   943,    -1,
    3686      335,   946,   343,   344,    -1,    -1,    -1,    -1,    -1,    -1,
    3687       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,
    3688     1115,   966,    -1,   364,    -1,    -1,   744,   368,    -1,    -1,
    3689       -1,    -1,   977,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3691       -1,    -1,   997,    -1,   999,   259,    -1,    -1,    -1,    -1,
    3692       -1,    -1,   780,    -1,    -1,    -1,    -1,    -1,    -1,  1014,
    3693     1015,   406,   790,   791,    -1,    -1,   794,    -1,   796,   797,
    3694       -1,    -1,    -1,    -1,   802,    -1,    -1,    -1,    -1,    -1,
    3695      431,    -1,    -1,    -1,    -1,    -1,  1041,    -1,    -1,    -1,
    3696       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3697       -1,    -1,    -1,    -1,    -1,  1210,    -1,  1212,    -1,    -1,
    3698      461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,   335,    -1,    -1,    -1,    -1,    -1,    44,    45,   480,
    3700       47,    -1,    -1,    -1,  1239,    -1,    -1,    -1,    -1,  1094,
    3701      354,    -1,  1247,  1248,  1249,    -1,    -1,    -1,    -1,    -1,
    3702       -1,    -1,    -1,  1258,  1259,    -1,    73,    -1,    -1,    76,
    3703     1115,    -1,   890,    80,    -1,    -1,    83,    84,    85,    86,
    3704       87,    88,    89,    90,   525,    92,    93,    -1,  1133,  1134,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3706       -1,    -1,   406,    -1,    -1,    -1,    -1,    -1,   115,    -1,
    3707      117,    -1,    -1,   931,    -1,    -1,   123,   124,   125,   126,
    3708      127,   128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3709       -1,    -1,    -1,    -1,    -1,    -1,    -1,   572,   573,    -1,
    3710       -1,    -1,    -1,    -1,    -1,   963,   587,   588,   966,    -1,
    3711      591,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3712       -1,    -1,    -1,   981,   982,    -1,   984,   985,    -1,    -1,
    3713      605,    -1,    -1,   608,   609,    -1,   611,    -1,   613,   614,
    3714       -1,    -1,   623,   618,   619,   626,    -1,    -1,    -1,    -1,
    3715     1385,    -1,   633,    -1,   635,    -1,    -1,    -1,   639,    -1,
    3716       -1,   642,   643,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3717       -1,    -1,    -1,    -1,    -1,    -1,    -1,   658,    -1,  1414,
    3718       -1,    -1,    -1,    -1,  1042,  1043,    -1,   662,    -1,    -1,
    3719       -1,   666,    -1,    -1,    -1,    -1,   677,    -1,    -1,  1284,
    3720       -1,    -1,    -1,  1288,    -1,    -1,    -1,  1442,    -1,  1444,
    3721       -1,    -1,   693,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,   706,    -1,   708,   572,   573,
    3723       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3724       -1,    -1,  1477,    -1,    -1,    -1,    -1,  1482,    -1,  1484,
    3725       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1115,    -1,    -1,
    3726       -1,   605,    -1,   744,   608,   609,    -1,   611,    -1,   613,
    3727      614,    -1,    -1,    -1,   618,   619,    -1,    -1,    -1,    -1,
    3728       -1,    -1,    -1,    -1,    -1,     5,    -1,    -1,    -1,    -1,
    3729       -1,    -1,    12,    13,    14,    15,    16,    17,    18,   780,
    3730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   790,
    3731      791,    -1,    -1,   794,    -1,   796,   797,    -1,   662,    -1,
    3732       -1,   802,   666,    -1,    44,    45,    46,    47,    12,    13,
    3733       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3734       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    3735       34,    -1,  1210,    73,  1212,    -1,    76,    -1,    -1,    -1,
    3736       80,    -1,    46,    83,    84,    85,    86,    87,    88,    89,
    3737       90,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
    3738       -1,  1239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1247,
    3739     1248,  1249,    -1,    -1,    -1,   115,    -1,   117,    82,    -1,
    3740     1258,  1259,    -1,   123,   124,   125,   126,   127,   128,   890,
    3741       -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
    3742       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3743       29,    30,    31,    32,    33,    34,    -1,    -1,  1523,    -1,
    3744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,
    3745      931,    -1,    -1,    -1,    -1,    12,    13,    14,    15,    16,
    3746       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3747       27,    28,    29,    30,    31,    32,    33,    -1,   953,    36,
    3748       37,    38,   963,    82,    -1,   966,    -1,    -1,    -1,    46,
    3749       -1,    -1,    -1,    -1,   969,    -1,    -1,   972,   973,    -1,
    3750      981,   982,    -1,   984,   985,    -1,    -1,    -1,    -1,    -1,
    3751       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3752       -1,    78,    79,    80,    -1,    -1,    -1,  1385,    -1,    -1,
    3753       -1,    -1,    89,    90,    12,    13,    14,    15,    16,    17,
    3754       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3755       28,    29,    30,    31,    32,    33,  1414,    -1,   115,    -1,
    3756      117,  1042,  1043,    -1,    -1,    -1,   123,   124,    46,    -1,
    3757     1045,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3758       -1,    -1,    -1,    -1,  1442,    -1,  1444,    -1,  1063,  1064,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3760       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   953,
    3761       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1477,
    3762       -1,    -1,    -1,    -1,  1482,   969,  1484,    -1,   972,   973,
    3763       -1,    -1,    -1,    -1,  1115,    -1,    -1,    -1,    -1,    -1,
    3764       -1,    -1,    -1,    -1,    -1,  1120,    -1,    -1,    -1,    -1,
    3765       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     3855      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
     3856      42,    -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,
     3857      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3858      -1,    -1,    -1,    -1,  1562,    -1,    -1,    -1,    -1,    -1,
     3859      -1,    -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,
     3860      82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
     3861      92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
     3862      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3863      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
     3864      -1,    -1,    -1,    -1,   126,   127,   128,   129,   130,   131,
    37663865       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    37673866      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    37683867      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    3769       -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,    43,
    3770       -1,  1045,    46,    47,    -1,    -1,    -1,  1182,    -1,    -1,
    3771       -1,    -1,    -1,    -1,  1058,    -1,    -1,    -1,    -1,  1063,
    3772     1064,    -1,    -1,    -1,    -1,    -1,  1201,    71,    -1,  1210,
    3773       -1,  1212,    76,    -1,    78,    79,    80,    -1,    -1,    -1,
    3774       -1,    -1,    -1,    -1,    -1,    89,    90,    -1,    -1,    -1,
    3775       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1239,    -1,
    3776       -1,    -1,    -1,    -1,    -1,    -1,  1247,  1248,  1249,    -1,
    3777       -1,   115,    -1,   117,    -1,    -1,  1120,  1258,  1259,   123,
    3778      124,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     3868      -1,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
     3869      -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,    -1,
     3870      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3871      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3872      -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,
     3873      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
     3874      -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3875      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3876      -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,    -1,
     3877      -1,   125,   126,   127,   128,   129,   130,   131,     4,     5,
     3878       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3879      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3880      26,    27,    28,    29,    30,    31,    32,    33,    -1,    -1,
     3881      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
     3882      -1,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
     3883      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3884      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3885      76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,
     3886      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
     3887      96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,   125,
     3890     126,   127,   128,   129,   130,   131,     4,     5,     6,     7,
    37793891       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    37803892      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    37813893      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3782       38,    39,  1297,    -1,    -1,    43,    44,    45,    46,    47,
    3783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1182,    -1,
    3784       -1,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
    3785       -1,    -1,    -1,    -1,    -1,    73,    -1,  1201,    76,    -1,
    3786       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    87,
    3787       88,    89,    90,    73,    92,    93,    76,    -1,    -1,    -1,
    3788       80,    -1,    -1,    83,    84,    85,    86,    87,    88,    89,
    3789       90,    -1,    92,    93,    -1,    -1,    -1,   115,    -1,   117,
    3790       -1,    -1,    -1,    -1,  1385,   123,   124,   125,   126,   127,
    3791      128,    -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,
    3792      138,    -1,    -1,   123,   124,   125,   126,   127,   128,    -1,
    3793       -1,    -1,    -1,  1414,    -1,    -1,    -1,    -1,    -1,    -1,
    3794       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3795       -1,    -1,    -1,  1297,    -1,    -1,    -1,    -1,    -1,    -1,
    3796       -1,  1442,    -1,  1444,     3,     4,     5,     6,     7,     8,
    3797        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3798       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3799       29,    30,    31,    32,    33,    -1,  1477,    36,    37,    38,
    3800       39,  1482,    -1,  1484,    43,    44,    45,    46,    47,    48,
    3801       -1,    50,    -1,    -1,    53,    54,    55,    56,    57,    58,
    3802       59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,    68,
    3803       69,    -1,    71,    -1,    73,    -1,    -1,    76,    -1,    78,
    3804       79,    80,    -1,    -1,    83,    84,    85,    86,    87,    88,
    3805       89,    90,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,
    3806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,    -1,
    3808       -1,   120,    -1,    -1,   123,   124,   125,   126,   127,   128,
    3809       -1,    -1,    -1,    -1,   133,    -1,    -1,    -1,    -1,   138,
     3894      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    47,
     3895      48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3896      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3897      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
     3898      -1,    79,    -1,    81,    82,    83,    -1,    -1,    86,    87,
     3899      88,    89,    90,    91,    92,    93,    -1,    95,    96,    -1,
     3900      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3901      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3902     118,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
     3903     128,   129,   130,   131,     4,     5,     6,     7,     8,     9,
     3904      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3905      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3906      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3907      40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
     3908      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3909      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3910      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3911      -1,    81,    82,    83,    -1,    -1,    86,    87,    88,    89,
     3912      90,    91,    92,    93,    -1,    95,    96,    -1,    -1,    -1,
     3913      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3914      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
     3915     120,    -1,    -1,    -1,    -1,    -1,   126,   127,   128,   129,
     3916     130,   131,     4,     5,     6,     7,     8,     9,    10,    11,
     3917      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3918      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
     3919      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
     3920      -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,
     3921      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3922      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3923      -1,    -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,
     3924      82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
     3925      92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
     3926      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3927      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
     3928      -1,    -1,    -1,    -1,   126,   127,   128,   129,   130,   131,
     3929       0,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
     3930      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3931      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3932      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3933      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
     3934      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3935      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3936      -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
     3937      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
     3938      -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
     3939      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3940      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
     3941     120,    -1,    -1,    -1,    -1,    -1,   126,   127,     3,     4,
     3942       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3943      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3944      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
     3945      -1,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
     3946      -1,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,
     3947      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3948      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3949      -1,    -1,    -1,    -1,    79,    -1,    81,    82,    83,    -1,
     3950      -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,
     3951      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3952      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3953      -1,    -1,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
     3954      -1,   126,   127,     3,     4,     5,     6,     7,     8,     9,
     3955      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3956      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3957      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3958      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
     3959      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3960      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3961      -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
     3962      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
     3963      -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
     3964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3965      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
     3966     120,    -1,    -1,    -1,    -1,    -1,   126,   127,     3,     4,
     3967       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3968      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3969      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     3970      -1,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
     3971      -1,    46,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
     3972      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3973      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3974      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
     3975      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3976      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3977      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3978      -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,
     3979      -1,   126,   127,     3,     4,     5,     6,     7,     8,     9,
     3980      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3981      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     3982      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     3983      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
    38103984       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    38113985      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    38123986      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    3813       33,    -1,    -1,    36,    37,    38,    39,    -1,    -1,    -1,
    3814       43,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,
    3815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3816       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3817       73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,
    3818       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    3819       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3820       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3821       -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3822      123,   124,   125,   126,   127,   128,     4,     5,     6,     7,
     3987      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
     3988      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
     3989      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3990      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3991     120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,
     3992      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3993      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3994      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3995      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
     3996      -1,    -1,    -1,   126,   127,     4,     5,     6,     7,     8,
     3997       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3998      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     3999      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
     4000      39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4001      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4002      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4003      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4004      79,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
     4005      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,
     4006      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4007      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
     4008      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,     4,
     4009       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     4010      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4011      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
     4012      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
     4013      -1,    -1,    -1,    -1,    49,    -1,     4,     5,     6,     7,
    38234014       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    38244015      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3825       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3826       38,    -1,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
    3827       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3828       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,    76,    -1,
    3830       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    87,
    3831       88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,    -1,
    3832       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3833       -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,
    3834       -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
    3835      128,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3836       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3837       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    3838       33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3839       -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,
    3840       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3841       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3842       73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,
    3843       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    3844       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3846       -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,   122,
    3847      123,   124,   125,   126,   127,   128,     4,     5,     6,     7,
    3848        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3849       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3850       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3851       38,    -1,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
    3852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3854       -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,    76,    -1,
    3855       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    87,
    3856       88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,    -1,
    3857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3858       -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,
    3859       -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,   127,
    3860      128,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3861       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3862       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    3863       33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3864       -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,
    3865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3866       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3867       73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,
    3868       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    3869       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3871       -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3872      123,   124,   125,   126,   127,   128,     4,     5,     6,     7,
    3873        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3874       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3875       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3876       38,    -1,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
    3877       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3879       -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,    76,    -1,
    3880       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    87,
    3881       88,    89,    90,     5,    92,    93,    -1,    -1,    -1,    -1,
    3882       12,    13,    14,    15,    16,    17,    18,    -1,    -1,    -1,
    3883       -1,    44,    45,    -1,    47,    -1,    -1,   115,    -1,   117,
    3884       -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,   127,
    3885      128,    -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,
    3886       73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,
    3887       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    3888       93,    73,    -1,    -1,    76,    -1,    -1,    -1,    80,    -1,
    3889       -1,    83,    84,    85,    86,    87,    88,    89,    90,    -1,
    3890       92,    93,   115,    -1,   117,    -1,   119,   120,    -1,    -1,
    3891      123,   124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
    3892       -1,    -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,
    3893       -1,   123,   124,   125,   126,   127,   128,     3,     4,     5,
    3894        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3895       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3896       26,    27,    28,    29,    30,    31,    32,    33,    -1,    -1,
    3897       36,    37,    38,    39,    -1,    -1,    -1,    43,    -1,    -1,
    3898       46,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3900       -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
    3901       76,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
    3902       -1,    -1,    -1,    89,    90,    -1,    -1,    -1,    -1,    -1,
    3903       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3904       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,
    3905       -1,   117,    -1,    -1,    -1,   121,    -1,   123,   124,     3,
     4016      28,    29,    30,    31,    32,    33,    81,    82,    36,    37,
     4017      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
     4018      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4019      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4020      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
     4021      -1,   126,   127,    81,    82,    -1,    -1,    -1,    -1,    -1,
     4022      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4023      -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,    -1,
     4024      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4025      -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
    39064026       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    39074027      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    39084028      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    3909       -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3910       -1,    -1,    46,    12,    13,    14,    15,    16,    17,    18,
     4029      -1,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
     4030      -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,     6,
     4031       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     4032      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     4033      27,    28,    29,    30,    31,    32,    33,    81,    82,    36,
     4034      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
     4035      -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4036      -1,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4037      -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
     4038      -1,    -1,   126,   127,    81,    82,    -1,    -1,    -1,    -1,
     4039      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4040      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4041      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4042      -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,
     4043     127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     4044      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4045      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4046      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4047      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,
     4048       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4049      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     4050      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
     4051      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
     4052      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
     4053      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4054      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
     4055      -1,    -1,    -1,   126,   127,    81,    82,    -1,    -1,    -1,
     4056      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4057      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4058      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4059      -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,
     4060     126,   127,     3,     4,     5,     6,     7,     8,     9,    10,
     4061      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4062      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     4063      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
     4064      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    12,
     4065      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4066      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4067      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4068      81,    82,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     4069      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4070      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4071      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
     4072      83,    -1,   123,    86,    87,    88,    89,    90,    91,    92,
     4073      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
     4074      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4075      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     4076     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
     4077      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4078      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4079      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4080      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     4081      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4082      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4083      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
     4084      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     4085      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
     4086      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4087      -1,    -1,    -1,    -1,    -1,   118,   119,   120,    -1,    -1,
     4088      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
     4089      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4090      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4091      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4092      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     4093      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4094      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4095      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
     4096      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     4097      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
     4098      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4099      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     4100      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
     4101      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4102      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4103      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4104      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     4105      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4106      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4107      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
     4108      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     4109      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
     4110      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4111      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     4112      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
     4113      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4114      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4115      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4116      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
     4117      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4118      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4119      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
     4120      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     4121      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
     4122      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4123      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     4124      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
     4125      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4126      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4127      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4128      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
     4129      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4130      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4131      -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,
     4132      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,
     4133      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4134      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4135      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
     4136      -1,    -1,    -1,   126,   127,    12,    13,    14,    15,    16,
     4137      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     4138      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
     4139      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
     4140      -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
     4141      -1,    -1,    12,    13,    14,    15,    16,    17,    18,    19,
     4142      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     4143      30,    31,    32,    33,    81,    82,    36,    37,    38,    39,
     4144      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,
     4145      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4146      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4147      -1,    -1,    -1,   120,    -1,    -1,    -1,   124,    -1,   126,
     4148     127,    81,    82,    -1,    12,    13,    14,    15,    16,    17,
     4149      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     4150      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
     4151      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
     4152     120,    49,    50,    -1,   124,    -1,   126,   127,    -1,    -1,
     4153      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4154      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     4155      31,    32,    33,    81,    82,    36,    37,    38,    39,    40,
     4156      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,
     4157      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4158      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4159      -1,    -1,   120,    -1,    -1,    -1,   124,    -1,   126,   127,
     4160      81,    82,    -1,    12,    13,    14,    15,    16,    17,    18,
    39114161      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    39124162      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    3913       -1,    -1,    76,    -1,    78,    79,    80,    46,    -1,    -1,
    3914       -1,    -1,    -1,    -1,    -1,    89,    90,    -1,    -1,    -1,
    3915       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3916       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    3917       79,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,   123,
    3918      124,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     4163      39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,   120,
     4164      49,    -1,    -1,    -1,    -1,   126,   127,    -1,    -1,    -1,
    39194165      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    39204166      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    3921       32,    33,    34,    -1,    36,    37,    38,    39,    -1,    -1,
    3922       -1,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,
    3923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3925       -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,
    3926       82,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
    3927       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4167      32,    33,    81,    82,    36,    37,    38,    39,    40,    41,
     4168      -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,
     4169      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4170      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4171      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,
     4172      82,    -1,    12,    13,    14,    15,    16,    17,    18,    19,
    39284173      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    3929       30,    31,    32,    33,    -1,   117,    36,    37,    38,    39,
    3930       -1,   123,   124,    43,    -1,    -1,    46,    -1,    -1,    -1,
    3931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    3934        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     4174      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
     4175      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,   120,    49,
     4176      -1,    -1,    -1,    -1,   126,   127,    -1,    -1,    -1,    12,
     4177      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4178      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4179      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
     4180      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
     4181      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4182      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4183     120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,
     4184      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4185      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     4186      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
     4187      41,    -1,    -1,    -1,    -1,    -1,    -1,   120,    49,    -1,
     4188      -1,    -1,    -1,   126,   127,    -1,    -1,    -1,    12,    13,
    39354189      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    39364190      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
    3937       -1,    -1,    36,    37,    38,    -1,    -1,   117,    -1,    -1,
    3938       -1,    -1,    46,   123,   124,    -1,    -1,    -1,    -1,    -1,
    3939       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3940       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3941       -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,    -1,
    3942       -1,    -1,    -1,    -1,    -1,    89,    90,    -1,    -1,    -1,
    3943       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3944       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3945       -1,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,   123,
    3946      124,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     4191      81,    82,    36,    37,    38,    39,    40,    41,    -1,    -1,
     4192      -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,
     4193      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4194      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
     4195      -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,    -1,
     4196      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     4197      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
     4198      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
     4199      -1,    -1,    -1,    -1,    -1,    -1,   120,    49,    -1,    -1,
     4200      -1,    -1,   126,   127,    -1,    -1,    -1,    12,    13,    14,
     4201      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4202      25,    26,    27,    28,    29,    30,    31,    32,    33,    81,
     4203      82,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
     4204      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
     4205      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4206      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
     4207      -1,    -1,    -1,    -1,   126,   127,    81,    82,    -1,    12,
    39474208      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    39484209      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    3949       33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    3950       -1,    -1,    -1,    46,    12,    13,    14,    15,    16,    17,
    3951       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3952       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    3953       38,    39,    40,    41,    42,    78,    79,    -1,    46,    -1,
    3954       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3955       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
    3956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3957       78,    79,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    3958      123,   124,     4,     5,     6,     7,     8,     9,    10,    11,
    3959       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3960       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    3961       32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    3962       -1,    -1,    -1,    -1,    46,    12,    13,    14,    15,    16,
    3963       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3964       27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
    3965       37,    38,    -1,    -1,    -1,    -1,    78,    79,    -1,    46,
    3966       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3967       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3968      102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3969       -1,    78,    79,    -1,    -1,   117,    -1,    -1,    -1,    -1,
    3970       -1,   123,   124,     4,     5,     6,     7,     8,     9,    10,
    3971       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3972       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    3973       31,    32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,
    3974       -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,
    3975       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3976       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3977       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,     4,
    3978        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3979       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3980       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    3981       -1,    36,    37,    38,    -1,    -1,   117,    -1,    -1,    -1,
    3982       -1,    46,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
    3983       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3984       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3985       -1,    -1,    -1,    78,    79,     4,     5,     6,     7,     8,
    3986        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3987       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3988       29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    3989       -1,    -1,   117,    -1,    -1,    -1,    -1,    46,   123,   124,
    3990       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3991       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    3993       79,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    3994        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3995       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3996       27,    28,    29,    30,    31,    32,    33,    -1,   117,    36,
    3997       37,    38,    -1,    -1,   123,   124,    -1,    -1,    -1,    46,
    3998       -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
    3999       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    4000       29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    4001       -1,    78,    79,    -1,    -1,    44,    45,    46,    47,    -1,
    4002       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4003       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4004       -1,    -1,    -1,    -1,    73,    -1,    -1,    76,    -1,    78,
    4005       79,    80,    -1,   120,    83,    84,    85,    86,    87,    88,
    4006       89,    90,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,
    4007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4008       -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,    -1,
    4009       -1,   120,    -1,    -1,   123,   124,   125,   126,   127,   128,
    4010       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4011       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    4012       32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    4013       -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,
    4014       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4015       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4016       -1,    73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,
    4017       -1,    83,    84,    85,    86,    87,    88,    89,    90,    -1,
    4018       92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4019       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4020       -1,    -1,    -1,   115,   116,   117,    -1,    -1,    -1,    -1,
    4021       -1,   123,   124,   125,   126,   127,   128,    12,    13,    14,
    4022       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4023       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    4024       -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    44,
    4025       45,    46,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4026       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,
    4028       -1,    76,    -1,    78,    79,    80,    -1,    -1,    83,    84,
    4029       85,    86,    87,    88,    89,    90,    -1,    92,    93,    -1,
    4030       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4031       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4032      115,    -1,   117,    -1,    -1,    -1,    -1,    -1,   123,   124,
    4033      125,   126,   127,   128,    12,    13,    14,    15,    16,    17,
    4034       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    4035       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    4036       38,    -1,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
    4037       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4038       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4039       -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,    76,    -1,
    4040       78,    79,    80,    -1,    -1,    83,    84,    85,    86,    87,
    4041       88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,    -1,
    4042       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4043       -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,   117,
    4044       -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,   127,
    4045      128,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    4046       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    4047       31,    32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,
    4048       -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
    4049       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4050       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4051       -1,    -1,    73,    -1,    -1,    76,    -1,    78,    79,    80,
    4052       -1,    -1,    83,    84,    85,    86,    87,    88,    89,    90,
    4053       -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4054       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4055       -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,    -1,
    4056       -1,    -1,   123,   124,   125,   126,   127,   128,     4,     5,
    4057        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4210      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4211      -1,    -1,    -1,    -1,    -1,   120,    49,    -1,    -1,    -1,
     4212      -1,   126,   127,    -1,    -1,    -1,    12,    13,    14,    15,
    40584213      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    4059       26,    27,    28,    29,    30,    31,    32,    33,    -1,    -1,
    4060       36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4061       46,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    4062       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    4063       31,    32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,
    4064       -1,    -1,    78,    79,    -1,    46,    -1,    -1,    -1,    -1,
    4065       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4067       -1,    -1,    -1,    -1,    -1,    76,    -1,    78,    79,    80,
    4068      116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    90,
    4069       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4070       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4071       -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,    -1,
    4072       -1,    -1,   123,   124,    12,    13,    14,    15,    16,    17,
    4073       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    4074       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    4075       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    12,
    4076       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    4077       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    4078       33,    -1,    -1,    36,    37,    38,    -1,    -1,    76,    -1,
    4079       78,    79,    -1,    46,    47,    -1,    -1,    -1,    -1,    -1,
    4080       -1,    89,    90,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4081       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4082       -1,    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,   117,
    4083       -1,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
    4084       -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    4085       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    4086       31,    32,    33,    -1,   117,    36,    37,    38,   121,    -1,
    4087      123,   124,    -1,    -1,    -1,    46,    47,    12,    13,    14,
    4088       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4089       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    4090       -1,    36,    37,    38,    -1,    -1,    -1,    78,    79,    -1,
    4091       -1,    46,    47,    12,    13,    14,    15,    16,    17,    18,
    4092       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    4093       29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    4094       -1,    -1,    -1,    78,    79,    -1,   117,    46,    -1,    -1,
    4095      121,    -1,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
    4096       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4097       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    4098       79,    -1,   117,    -1,    -1,    -1,   121,    -1,   123,   124,
    4099       -1,    -1,    -1,    -1,    -1,    12,    13,    14,    15,    16,
    4100       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4101       27,    28,    29,    30,    31,    32,    33,    -1,   117,    36,
    4102       37,    38,    -1,    -1,   123,   124,    -1,    -1,    -1,    46,
    4103       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    4104       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    4105       32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,
    4106       -1,    78,    79,    -1,    46,    12,    13,    14,    15,    16,
    4107       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4108       27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
    4109       37,    38,    -1,    -1,    -1,    -1,    78,    79,    -1,    46,
    4110      117,    -1,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
    4111       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4112       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4113       -1,    78,    79,    -1,    -1,   117,    -1,    -1,    -1,    -1,
    4114       -1,   123,   124,    -1,    -1,    -1,    -1,    12,    13,    14,
    4115       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4116       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    4117      117,    36,    37,    38,    -1,    -1,   123,   124,    -1,    -1,
    4118       -1,    46,    12,    13,    14,    15,    16,    17,    18,    19,
    4119       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    4120       30,    31,    32,    33,    -1,    -1,    36,    37,    38,    -1,
    4121       -1,    -1,    -1,    78,    79,    -1,    46,    12,    13,    14,
    4122       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    4123       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
    4124       -1,    36,    37,    38,    -1,    -1,    -1,    -1,    78,    79,
    4125       -1,    46,   117,    -1,    -1,    -1,    -1,    -1,   123,   124,
    4126       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4127       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4128       -1,    -1,    -1,    78,    79,    -1,    -1,   117,    -1,    -1,
    4129       -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,    12,
    4130       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    4131       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    4132       33,    -1,   117,    36,    37,    38,    -1,    -1,   123,   124,
    4133       -1,    -1,    -1,    46,    12,    13,    14,    15,    16,    17,
    4134       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    4135       28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
    4136       38,    -1,    -1,    -1,    -1,    78,    79,    -1,    46,    12,
    4137       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    4138       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    4139       33,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
    4140       78,    79,    -1,    46,   117,    -1,    -1,    -1,    -1,    -1,
    4141      123,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4142       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4143       -1,    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,   117,
    4144       -1,    -1,    -1,    -1,    -1,   123,   124,     4,     5,     6,
     4214      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
     4215      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
     4216      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
     4217      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4218      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
     4219      -1,    -1,    -1,   126,   127,    81,    82,     4,     5,     6,
    41454220       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    41464221      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    41474222      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
    4148       37,    38,    -1,    -1,    44,    45,    -1,    47,    48,    46,
    4149       50,    -1,    -1,    53,    54,    55,    56,    57,    58,    59,
    4150       60,    -1,    -1,    63,    64,    -1,    -1,    -1,    68,    69,
    4151       -1,    71,    -1,    73,    -1,    -1,    76,    -1,    78,    79,
    4152       80,    78,    79,    83,    84,    85,    86,    87,    88,    89,
    4153       90,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
    4154       -1,    -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,    -1,
    4155       -1,    -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,
    4156      120,    -1,    -1,   123,   124,   125,   126,   127,   128,    -1,
    4157       -1,    44,    45,   133,    47,    48,    -1,    50,   138,    -1,
    4158       53,    54,    55,    56,    57,    58,    59,    60,    -1,    -1,
    4159       -1,    64,    -1,    -1,    -1,    68,    69,    -1,    71,    -1,
    4160       73,    -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,
    4161       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    4162       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4163       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4164       -1,    -1,   115,    -1,   117,    -1,    -1,   120,    -1,    -1,
    4165      123,   124,   125,   126,   127,   128,    -1,    -1,    -1,    -1,
    4166      133,    -1,    -1,    44,    45,   138,    47,    48,    -1,    50,
    4167       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
    4168       -1,    -1,    63,    64,    -1,    -1,    -1,    68,    69,    -1,
    4169       71,    -1,    73,    -1,    -1,    76,    -1,    78,    79,    80,
    4170       -1,    -1,    83,    84,    85,    86,    87,    88,    89,    90,
    4171       -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4173       -1,    -1,    -1,    -1,   115,    -1,   117,    -1,    -1,   120,
    4174       -1,    -1,   123,   124,   125,   126,   127,   128,    -1,    -1,
    4175       44,    45,   133,    47,    48,    -1,    50,    51,    52,    53,
    4176       54,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
    4177       64,    -1,    -1,    -1,    68,    69,    -1,    71,    -1,    73,
    4178       -1,    -1,    76,    -1,    78,    79,    80,    -1,    -1,    83,
    4179       84,    85,    86,    87,    88,    89,    90,    -1,    92,    93,
    4180       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4181       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4182       -1,   115,    -1,   117,    -1,    -1,   120,    -1,    -1,   123,
    4183      124,   125,   126,   127,   128,    -1,    -1,    44,    45,   133,
    4184       47,    48,    -1,    50,    -1,    -1,    53,    54,    55,    56,
    4185       57,    58,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,
    4186       -1,    68,    69,    -1,    71,    -1,    73,    -1,    -1,    76,
    4187       -1,    78,    79,    80,    -1,    -1,    83,    84,    85,    86,
    4188       87,    88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,
    4189       -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,
    4190       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,
    4191      117,    44,    45,   120,    47,    -1,   123,   124,   125,   126,
    4192      127,   128,    73,    -1,    -1,    76,   133,    -1,    -1,    80,
    4193       -1,    -1,    83,    84,    85,    86,    87,    88,    89,    90,
    4194       73,    92,    93,    76,    -1,    -1,    -1,    80,    -1,    -1,
    4195       83,    84,    85,    86,    87,    88,    89,    90,    -1,    92,
    4196       93,    -1,    -1,    -1,   115,    -1,   117,    44,    45,    -1,
    4197       47,    -1,   123,   124,   125,   126,   127,   128,    -1,    -1,
    4198       -1,    -1,   115,    -1,   117,    -1,    -1,    -1,    -1,    -1,
    4199      123,   124,   125,   126,   127,   128,    73,    -1,    -1,    76,
    4200       -1,    -1,    -1,    80,    -1,    -1,    83,    84,    85,    86,
    4201       87,    88,    89,    90,    -1,    92,    93,    -1,    -1,    -1,
    4202       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4203       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,
    4204      117,    -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,
    4205      127,   128,     3,     4,     5,     6,     7,     8,     9,    10,
    4206       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    4207       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    4208       31,    32,    33,    -1,    -1,    36,    37,    38,    -1,    -1,
    4209       -1,    -1,    -1,    -1,    -1,    46,     3,     4,     5,     6,
     4223      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
     4224     126,   127,    49,    -1,    47,    48,    -1,    50,    51,    -1,
     4225      53,    -1,    -1,    56,    57,    58,    59,    60,    61,    62,
     4226      63,    -1,    -1,    66,    67,    -1,    -1,    -1,    71,    72,
     4227      -1,    74,    -1,    76,    81,    82,    79,    -1,    81,    82,
     4228      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
     4229      93,    -1,    95,    96,    -1,    -1,    -1,    -1,   105,    -1,
     4230      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4231      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
     4232     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
     4233      -1,    47,    48,   136,    50,    51,    -1,    53,   141,    -1,
     4234      56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
     4235      -1,    67,    -1,    -1,    -1,    71,    72,    -1,    74,    -1,
     4236      76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,
     4237      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
     4238      96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4239      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4240      -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,    -1,
     4241     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
     4242     136,    -1,    -1,    47,    48,   141,    50,    51,    -1,    53,
     4243      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
     4244      -1,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
     4245      74,    -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,
     4246      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
     4247      -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4248      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4249      -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,
     4250      -1,    -1,   126,   127,   128,   129,   130,   131,    -1,    -1,
     4251      47,    48,   136,    50,    51,    -1,    53,    54,    55,    56,
     4252      57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
     4253      67,    -1,    -1,    -1,    71,    72,    -1,    74,    -1,    76,
     4254      -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,    86,
     4255      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
     4256      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4257      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4258      -1,   118,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
     4259     127,   128,   129,   130,   131,    -1,    -1,    47,    48,   136,
     4260      50,    51,    -1,    53,    -1,    -1,    56,    57,    58,    59,
     4261      60,    61,    62,    63,    -1,    -1,    -1,    67,    -1,    -1,
     4262      -1,    71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,
     4263      -1,    81,    82,    83,    -1,    -1,    86,    87,    88,    89,
     4264      90,    91,    92,    93,    -1,    95,    96,    -1,    -1,    -1,
     4265      -1,    -1,    -1,    47,    48,    -1,    50,    -1,    -1,    -1,
     4266      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
     4267     120,    47,    48,   123,    50,    -1,   126,   127,   128,   129,
     4268     130,   131,    76,    -1,    -1,    79,   136,    -1,    -1,    83,
     4269      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
     4270      76,    95,    96,    79,    -1,    -1,    -1,    83,    -1,    -1,
     4271      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
     4272      96,    -1,    -1,    -1,   118,    -1,   120,    47,    48,    -1,
     4273      50,    -1,   126,   127,   128,   129,   130,   131,    -1,    -1,
     4274      -1,    -1,   118,    -1,   120,    47,    48,    -1,    50,    -1,
     4275     126,   127,   128,   129,   130,   131,    76,    -1,    -1,    79,
     4276      -1,    -1,    -1,    83,    -1,    -1,    86,    87,    88,    89,
     4277      90,    91,    92,    93,    76,    95,    96,    79,    -1,    -1,
     4278      -1,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
     4279      92,    93,    -1,    95,    96,    -1,    -1,    -1,   118,    -1,
     4280     120,    47,    48,    -1,    50,    -1,   126,   127,   128,   129,
     4281     130,   131,    -1,    -1,    -1,    -1,   118,    -1,   120,    47,
     4282      48,    -1,    50,    -1,   126,   127,   128,   129,   130,   131,
     4283      76,    -1,    -1,    79,    -1,    -1,    -1,    83,    -1,    -1,
     4284      86,    87,    88,    89,    90,    91,    92,    93,    76,    95,
     4285      96,    79,    -1,    -1,    -1,    83,    -1,    -1,    86,    87,
     4286      88,    89,    90,    91,    92,    93,    -1,    95,    96,    -1,
     4287      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,    -1,
     4288     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
     4289     118,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
     4290     128,   129,   130,   131,    12,    13,    14,    15,    16,    17,
     4291      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     4292      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
     4293      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
     4294      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4295      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4297      -1,    79,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
     4298      -1,    -1,    -1,    -1,    92,    93,     3,     4,     5,     6,
    42104299       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    42114300      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    4212       27,    28,    29,    30,    31,    32,    33,    78,    79,    36,
    4213       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
     4301      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
     4302      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
     4303      -1,    -1,    49,     3,     4,     5,     6,     7,     8,     9,
     4304      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     4305      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
     4306      30,    31,    32,    33,    81,    82,    36,    37,    38,    39,
     4307      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,
    42144308      -1,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    42154309      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    42164310      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    4217       33,    78,    79,    36,    37,    38,    -1,    -1,    -1,    -1,
    4218       -1,    -1,    -1,    46,    -1,     4,     5,     6,     7,     8,
    4219        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     4311      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
     4312      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,
     4313       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     4314      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     4315      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
     4316      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
     4317      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
     4318      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
    42204319      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    4221       29,    30,    31,    32,    33,    78,    79,    36,    37,    38,
    4222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,
    4223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4224       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4225       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
    4226       79
     4320      29,    30,    31,    32,    33,    81,    82,    36,    37,    38,
     4321      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
     4322      49,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4323      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     4324      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
     4325      41,    -1,    81,    82,    -1,    -1,    -1,    -1,    49,    12,
     4326      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     4327      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
     4328      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
     4329      81,    82,    -1,    -1,    -1,    -1,    49,    12,    13,    14,
     4330      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     4331      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
     4332      -1,    36,    37,    38,    39,    40,    41,    -1,    81,    82,
     4333      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
     4334      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4335      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4336      -1,    -1,    -1,    -1,    -1,    -1,    81,    82
    42274337};
    42284338
     
    42344344      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    42354345      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    4236       32,    33,    36,    37,    38,    39,    43,    46,    47,    71,
    4237       76,    78,    79,    80,    89,    90,   115,   117,   123,   124,
    4238      143,   146,   158,   221,   222,   223,   224,   225,   226,   227,
    4239      228,   229,   230,   231,   233,   235,   237,   238,   239,   240,
    4240      242,   243,   244,   245,   246,   247,   248,   250,   251,   254,
    4241      255,   256,   258,   260,   261,   269,   271,   297,   298,   299,
    4242      307,   310,   316,   317,   319,   321,   322,   328,   333,   337,
    4243      338,   339,   340,   341,   342,   343,   344,   364,   381,   382,
    4244      383,   384,    76,   145,   146,   158,   224,   226,   235,   238,
    4245      247,   251,   255,   298,    85,   115,   326,   327,   328,    76,
    4246       78,    79,    80,   144,   145,   287,   288,   308,   309,    78,
    4247       79,   288,   115,   319,   115,   115,   158,   333,   338,   339,
    4248      340,   342,   343,   344,   118,   140,   227,   235,   238,   337,
    4249      341,   380,   381,   384,   385,   141,   113,   137,   291,   120,
    4250      141,   182,    78,    79,   143,   286,   141,   141,   141,    78,
    4251       79,   115,   158,   232,   323,   332,   333,   334,   335,   336,
    4252      337,   341,   345,   346,   347,   348,   349,   355,     3,    34,
    4253       82,   249,     3,     4,    78,   117,   158,   226,   239,   243,
    4254      245,   256,   299,   337,   341,   384,   224,   226,   238,   247,
    4255      251,   255,   298,   337,   341,    39,   244,   244,   239,   245,
    4256      141,   244,   239,   244,   239,   326,   244,   239,   122,   141,
    4257      141,     0,   140,   115,   182,   326,   326,   140,   117,   235,
    4258      238,   382,   286,   286,   137,   238,   115,   158,   323,   333,
    4259      337,   117,   158,   384,   320,   241,   120,   288,   328,   115,
    4260      304,   115,   115,    85,   147,   148,    44,    45,    47,    73,
    4261       76,    80,    83,    84,    86,    87,    88,    92,    93,   115,
    4262      117,   125,   126,   127,   128,   142,   146,   147,   149,   150,
    4263      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    4264      167,   168,   169,   170,   171,   173,   176,   235,   289,   290,
    4265      306,   380,   385,   238,   116,   116,   116,   116,   116,   116,
    4266      116,   117,   235,   364,   382,    36,   117,   123,   158,   173,
    4267      226,   227,   234,   238,   242,   243,   246,   247,   252,   253,
    4268      254,   255,   257,   260,   261,   271,   276,   277,   281,   282,
    4269      283,   284,   297,   298,   364,   376,   377,   378,   379,   384,
    4270      385,   115,   337,   341,   384,   115,   122,   138,   117,   120,
    4271      158,   173,   292,   292,   121,   140,   122,   138,   115,   122,
    4272      138,   122,   138,   122,   138,   333,   334,   335,   336,   346,
    4273      347,   348,   349,   238,   332,   345,   122,   141,    71,   325,
    4274      117,   326,   363,   364,   326,   326,   182,   140,   115,   326,
    4275      363,   326,   326,   238,   323,   115,   115,   237,   238,   235,
    4276      238,   140,   235,   380,   385,   182,   140,   286,   291,   226,
    4277      243,   337,   341,   182,   140,   308,   238,   247,   138,   238,
    4278      238,    79,   115,   120,   288,   299,   238,   308,   138,   138,
    4279      319,   140,   145,   285,     3,   141,   216,   217,   231,   233,
    4280      238,   242,   140,   325,   115,   325,   173,   333,   238,   115,
    4281      140,   286,   120,    39,    40,    41,    42,   235,   300,   301,
    4282      303,   272,   288,   270,   140,   134,   137,   305,   140,    12,
    4283       76,    78,    79,   329,   330,   331,   116,    85,   115,   157,
    4284      115,   157,   160,   115,   157,   115,   115,   157,   157,   117,
    4285      173,   178,   182,   289,   384,   140,    87,    91,    92,    93,
    4286      115,   117,   119,   120,   103,   104,   105,   106,   107,   108,
    4287      109,   110,   111,   112,   113,   137,   175,   160,   160,   123,
    4288      129,   130,   125,   126,    94,    95,    96,    97,   131,   132,
    4289       98,    99,   124,   133,   134,   100,   101,   135,   115,   158,
    4290      359,   360,   361,   362,   363,   116,   122,   115,   363,   364,
    4291      115,   363,   364,   140,   235,   382,   326,   118,   140,   141,
    4292      236,   238,   247,   253,   255,   298,   375,   376,   384,   385,
    4293      141,   115,   117,   137,   158,   333,   350,   351,   352,   353,
    4294      354,   355,   356,   357,   358,   364,   365,   366,   367,   368,
    4295      369,   370,   387,   158,   257,   384,   238,   253,   244,   239,
    4296      326,   141,   141,   158,   236,   238,   377,   286,   236,   364,
    4297      377,   286,   140,   140,   140,   140,    76,   117,   119,   146,
    4298      288,   292,   293,   294,   295,   296,   140,   140,   140,   140,
    4299      140,   140,   116,   116,   116,   116,   116,   116,   116,   332,
    4300      345,   326,   138,   115,   291,   118,   216,   140,   323,   178,
    4301      290,   178,   290,   323,   117,   216,   325,   182,   140,   216,
    4302      306,   262,   259,   238,   278,   279,   280,   283,   284,   116,
    4303      122,   182,   140,   238,   123,   173,   140,   234,   238,   277,
    4304      376,   384,   317,   318,   115,   158,   350,   116,   122,   387,
    4305      288,   122,   386,   137,   273,   120,   300,   115,   120,   288,
    4306      290,   300,   116,   122,   115,   138,   289,   117,   289,   289,
    4307      152,   173,   290,   289,   140,   116,   122,   116,   116,   122,
    4308      173,   117,   145,   151,   152,   140,   117,   145,   151,   173,
    4309      160,   160,   160,   161,   161,   162,   162,   163,   163,   163,
    4310      163,   164,   164,   165,   166,   167,   168,   169,   136,   178,
    4311      140,   360,   361,   362,   238,   359,   326,   326,   173,   290,
    4312      140,   140,   288,   236,   364,   377,   238,   242,   118,   384,
    4313      118,   115,   140,   333,   351,   352,   353,   356,   366,   367,
    4314      368,   118,   140,   173,   238,   350,   354,   365,   115,   326,
    4315      369,   387,   326,   326,   387,   115,   326,   369,   326,   326,
    4316      387,   326,   326,   364,   236,   375,   385,   286,   238,   288,
    4317      118,   122,   118,   122,   387,   236,   377,   387,   274,   275,
    4318      276,   277,   274,   286,   173,   140,   117,   288,   136,   122,
    4319      386,   292,   117,   136,   296,    35,   218,   219,   286,   274,
    4320      145,   323,   145,   115,   326,   363,   364,   115,   326,   363,
    4321      364,   323,   147,   364,   182,   278,   116,   116,   116,   116,
    4322      140,   182,   216,   182,   116,    47,   121,   235,   263,   264,
    4323      380,   120,   141,   141,   145,   231,   141,   141,   274,   115,
    4324      158,   384,   141,   121,   238,   301,   302,   288,   121,   171,
    4325      172,   272,   141,   140,   140,   115,   141,   116,   330,   151,
    4326      116,   140,   122,   116,   116,   116,   116,   173,   120,   160,
    4327      173,   174,   177,   122,   140,   116,   122,   173,   140,   121,
    4328      171,   136,   278,   116,   116,   116,   359,   278,   278,   236,
    4329      377,   117,   123,   158,   173,   173,   238,   356,   278,   116,
    4330      116,   116,   116,   116,   116,   116,     5,   238,   350,   354,
    4331      365,   140,   140,   387,   140,   140,   141,   141,   141,   141,
    4332      291,   171,   172,   173,   324,   140,   292,   294,   121,   140,
    4333      220,   288,    47,    48,    50,    53,    54,    55,    56,    57,
    4334       58,    59,    60,    64,    68,    69,    71,    76,    78,    79,
    4335       80,   133,   146,   178,   179,   180,   181,   182,   183,   184,
    4336      186,   187,   199,   201,   202,   207,   221,   286,   322,    35,
    4337      141,   137,   140,   140,   325,   116,   141,   182,   120,   235,
    4338      264,   115,   136,   158,   265,   266,   268,   332,   333,   345,
    4339      363,   371,   372,   373,   374,   122,   138,   288,   262,   116,
    4340      122,   118,   118,   141,   238,   122,   387,   304,   273,   386,
    4341      116,   300,   224,   226,   235,   312,   313,   314,   315,   306,
    4342      116,   116,   145,   293,   122,   141,   177,    83,    86,    88,
    4343      145,   153,   154,   155,   152,   141,   153,   171,   141,   115,
    4344      326,   363,   364,   141,   141,   140,   141,   141,   141,   173,
    4345      116,   141,   115,   326,   363,   364,   115,   326,   369,   115,
    4346      326,   369,   364,   237,     5,   123,   141,   173,   278,   278,
    4347      277,   281,   281,   282,   116,   122,   122,   116,   102,   128,
    4348      141,   141,   153,   292,   173,   122,   138,   221,   322,   115,
    4349      115,   180,   115,   115,   138,   286,   138,   286,   123,   286,
    4350      179,   115,   182,   174,   174,    13,   208,   150,   138,   141,
    4351      140,   141,   136,   220,   116,   173,   278,   278,   291,   326,
    4352      116,   262,   265,   138,   333,   372,   373,   374,   172,   238,
    4353      371,   122,   138,   267,   268,   267,   326,   326,   288,   121,
    4354      140,   116,   140,   121,   141,   323,   121,   140,   141,   141,
    4355      116,   120,   116,   386,   174,   118,   141,   156,   117,   154,
    4356      156,   156,   122,   141,    91,   119,   118,   141,   116,   140,
    4357      116,   116,   118,   118,   118,   141,   116,   140,   140,   140,
    4358      173,   173,   141,   118,   141,   141,   141,   141,   140,   140,
    4359      172,   172,   118,   118,   141,   288,   178,   178,    54,   178,
    4360      140,   138,   138,   178,   138,   138,   178,    65,    66,    67,
    4361      203,   204,   205,   138,    70,   138,    58,   115,   120,   184,
    4362      121,   326,   138,   141,   141,   121,   138,   116,   116,   116,
    4363      371,   326,   102,   283,   284,   116,   313,   122,   138,   122,
    4364      138,   121,   311,   121,   118,    87,   140,   154,   118,   117,
    4365      154,   117,   154,   118,   278,   118,   278,   278,   278,   141,
    4366      141,   118,   118,   116,   116,   118,   122,   102,   277,   102,
    4367      141,   118,   116,   116,   115,   116,   179,   200,   221,   225,
    4368      238,   242,   138,   116,   115,   115,   182,   205,    65,    66,
    4369      173,   115,   147,   151,   180,   116,   116,   115,   326,   363,
    4370      364,   266,   120,   140,   140,   312,   153,   140,   140,   141,
    4371      141,   141,   141,   118,   118,   140,   141,   118,   180,    51,
    4372       52,   120,   190,   191,   192,   178,   180,   141,   116,   179,
    4373      238,   120,   192,   102,   140,   102,   140,   115,   115,   138,
    4374      147,   116,   136,   121,   140,   140,   286,   323,   121,   141,
    4375      153,   153,   116,   116,   116,   116,   281,    49,   172,   188,
    4376      189,   324,   136,   140,   180,   190,   116,   138,   180,   138,
    4377      140,   116,   140,   116,   140,   102,   140,   102,   140,   136,
    4378      138,   117,   147,   209,   210,   211,   138,   278,   312,   118,
    4379      141,   141,   180,   102,   122,   136,   141,   214,   215,   221,
    4380      138,   179,   179,   214,   182,   206,   236,   238,   380,   182,
    4381      206,   116,   140,   116,   140,   136,   172,   115,   116,   136,
    4382      122,   141,   121,   118,   118,   172,   188,   191,   193,   194,
    4383      140,   138,   191,   195,   196,   141,   115,   158,   323,   371,
    4384      145,   141,   182,   206,   182,   206,   209,   118,   172,   138,
    4385      209,   211,   116,   115,   180,   185,   121,   191,   221,   179,
    4386       63,   185,   198,   121,   191,   116,   238,   116,   141,   141,
    4387      136,   147,   116,   116,   136,   306,   180,   185,   138,   197,
    4388      198,   185,   198,   182,   182,   116,   116,   147,   212,   115,
    4389      138,   212,   116,   197,   141,   141,   182,   182,   122,   136,
    4390      172,   116,   141,   141,   147,   145,   213,   116,   138,   116,
    4391      122,   138,   145
     4346      32,    33,    36,    37,    38,    39,    40,    41,    42,    46,
     4347      49,    50,    74,    79,    81,    82,    83,    92,    93,   118,
     4348     120,   126,   127,   146,   149,   161,   224,   225,   226,   227,
     4349     228,   229,   230,   231,   232,   233,   234,   236,   238,   240,
     4350     241,   242,   243,   245,   246,   247,   248,   249,   250,   251,
     4351     253,   254,   257,   258,   259,   261,   263,   264,   272,   274,
     4352     300,   301,   302,   310,   313,   319,   320,   322,   324,   325,
     4353     331,   336,   340,   341,   342,   343,   344,   345,   346,   347,
     4354     367,   384,   385,   386,   387,    79,   148,   149,   161,   227,
     4355     229,   238,   241,   250,   254,   258,   301,    88,   118,   329,
     4356     330,   331,    79,    81,    82,    83,   147,   148,   290,   291,
     4357     311,   312,    81,    82,   291,   118,   322,   118,   118,   161,
     4358     336,   341,   342,   343,   345,   346,   347,   121,   143,   230,
     4359     238,   241,   340,   344,   383,   384,   387,   388,   144,   116,
     4360     140,   294,   123,   144,   185,    81,    82,   146,   289,   144,
     4361     144,   144,    81,    82,   118,   161,   235,   326,   335,   336,
     4362     337,   338,   339,   340,   344,   348,   349,   350,   351,   352,
     4363     358,     3,    34,    85,   252,     3,     4,    81,   120,   161,
     4364     229,   242,   246,   248,   259,   302,   340,   344,   387,   227,
     4365     229,   241,   250,   254,   258,   301,   340,   344,    42,   247,
     4366     247,   242,   248,   144,   247,   242,   247,   242,   329,   247,
     4367     242,   125,   144,   144,     0,   143,   118,   185,   329,   329,
     4368     143,   120,   238,   241,   385,   289,   289,   140,   241,   118,
     4369     161,   326,   336,   340,   120,   161,   387,   323,   244,   123,
     4370     291,   331,   118,   307,   118,   118,    88,   150,   151,    47,
     4371      48,    50,    76,    79,    83,    86,    87,    89,    90,    91,
     4372      95,    96,   118,   120,   128,   129,   130,   131,   145,   149,
     4373     150,   152,   153,   160,   161,   162,   163,   164,   165,   166,
     4374     167,   168,   169,   170,   171,   172,   173,   174,   176,   179,
     4375     238,   292,   293,   309,   383,   388,   241,   119,   119,   119,
     4376     119,   119,   119,   119,   120,   238,   367,   385,    36,   120,
     4377     126,   161,   176,   229,   230,   237,   241,   245,   246,   249,
     4378     250,   255,   256,   257,   258,   260,   263,   264,   274,   279,
     4379     280,   284,   285,   286,   287,   300,   301,   367,   379,   380,
     4380     381,   382,   387,   388,   118,   340,   344,   387,   118,   125,
     4381     141,   120,   123,   161,   176,   295,   295,   124,   143,   125,
     4382     141,   118,   125,   141,   125,   141,   125,   141,   336,   337,
     4383     338,   339,   349,   350,   351,   352,   241,   335,   348,   125,
     4384     144,    74,   328,   120,   329,   366,   367,   329,   329,   185,
     4385     143,   118,   329,   366,   329,   329,   241,   326,   118,   118,
     4386     240,   241,   238,   241,   143,   238,   383,   388,   185,   143,
     4387     289,   294,   229,   246,   340,   344,   185,   143,   311,   241,
     4388     250,   141,   241,   241,    82,   118,   123,   291,   302,   241,
     4389     311,   141,   141,   322,   143,   148,   288,     3,   144,   219,
     4390     220,   234,   236,   241,   245,   143,   328,   118,   328,   176,
     4391     336,   241,   118,   143,   289,   123,    42,    43,    44,    45,
     4392     238,   303,   304,   306,   275,   291,   273,   143,   137,   140,
     4393     308,   143,    12,    79,    81,    82,   332,   333,   334,   119,
     4394      88,   118,   160,   118,   160,   163,   118,   160,   118,   118,
     4395     160,   160,   120,   176,   181,   185,   292,   387,   143,    90,
     4396      94,    95,    96,   118,   120,   122,   123,   106,   107,   108,
     4397     109,   110,   111,   112,   113,   114,   115,   116,   140,   178,
     4398     163,   163,   126,   132,   133,   128,   129,    97,    98,    99,
     4399     100,   134,   135,   101,   102,   127,   136,   137,   103,   104,
     4400     138,   118,   161,   362,   363,   364,   365,   366,   119,   125,
     4401     118,   366,   367,   118,   366,   367,   143,   238,   385,   329,
     4402     121,   143,   144,   239,   241,   250,   256,   258,   301,   378,
     4403     379,   387,   388,   144,   118,   120,   140,   161,   336,   353,
     4404     354,   355,   356,   357,   358,   359,   360,   361,   367,   368,
     4405     369,   370,   371,   372,   373,   390,   161,   260,   387,   241,
     4406     256,   247,   242,   329,   144,   144,   161,   239,   241,   380,
     4407     289,   239,   367,   380,   289,   143,   143,   143,   143,    79,
     4408     120,   122,   149,   291,   295,   296,   297,   298,   299,   143,
     4409     143,   143,   143,   143,   143,   119,   119,   119,   119,   119,
     4410     119,   119,   335,   348,   329,   141,   118,   294,   121,   219,
     4411     143,   326,   181,   293,   181,   293,   326,   120,   219,   328,
     4412     185,   143,   219,   309,   265,   262,   241,   281,   282,   283,
     4413     286,   287,   119,   125,   185,   143,   241,   126,   176,   143,
     4414     237,   241,   280,   379,   387,   320,   321,   118,   161,   353,
     4415     119,   125,   390,   291,   125,   389,   140,   276,   123,   303,
     4416     118,   123,   291,   293,   303,   119,   125,   118,   141,   292,
     4417     120,   292,   292,   155,   176,   293,   292,   143,   119,   125,
     4418     119,   119,   125,   176,   120,   148,   154,   155,   143,   120,
     4419     148,   154,   176,   163,   163,   163,   164,   164,   165,   165,
     4420     166,   166,   166,   166,   167,   167,   168,   169,   170,   171,
     4421     172,   139,   181,   143,   363,   364,   365,   241,   362,   329,
     4422     329,   176,   293,   143,   143,   291,   239,   367,   380,   241,
     4423     245,   121,   387,   121,   118,   143,   336,   354,   355,   356,
     4424     359,   369,   370,   371,   121,   143,   176,   241,   353,   357,
     4425     368,   118,   329,   372,   390,   329,   329,   390,   118,   329,
     4426     372,   329,   329,   390,   329,   329,   367,   239,   378,   388,
     4427     289,   241,   291,   121,   125,   121,   125,   390,   239,   380,
     4428     390,   277,   278,   279,   280,   277,   289,   176,   143,   120,
     4429     291,   139,   125,   389,   295,   120,   139,   299,    35,   221,
     4430     222,   289,   277,   148,   326,   148,   118,   329,   366,   367,
     4431     118,   329,   366,   367,   326,   150,   367,   185,   281,   119,
     4432     119,   119,   119,   143,   185,   219,   185,   119,    50,   124,
     4433     238,   266,   267,   383,   123,   144,   144,   148,   234,   144,
     4434     144,   277,   118,   161,   387,   144,   124,   241,   304,   305,
     4435     291,   124,   174,   175,   275,   144,   143,   143,   118,   144,
     4436     119,   333,   154,   119,   143,   125,   119,   119,   119,   119,
     4437     176,   123,   163,   176,   177,   180,   125,   143,   119,   125,
     4438     176,   143,   124,   174,   139,   281,   119,   119,   119,   362,
     4439     281,   281,   239,   380,   120,   126,   161,   176,   176,   241,
     4440     359,   281,   119,   119,   119,   119,   119,   119,   119,     5,
     4441     241,   353,   357,   368,   143,   143,   390,   143,   143,   144,
     4442     144,   144,   144,   294,   174,   175,   176,   327,   143,   295,
     4443     297,   124,   143,   223,   291,    50,    51,    53,    56,    57,
     4444      58,    59,    60,    61,    62,    63,    67,    71,    72,    74,
     4445      79,    81,    82,    83,   136,   149,   181,   182,   183,   184,
     4446     185,   186,   187,   189,   190,   202,   204,   205,   210,   224,
     4447     289,   325,    35,   144,   140,   143,   143,   328,   119,   144,
     4448     185,   123,   238,   267,   118,   139,   161,   268,   269,   271,
     4449     335,   336,   348,   366,   374,   375,   376,   377,   125,   141,
     4450     291,   265,   119,   125,   121,   121,   144,   241,   125,   390,
     4451     307,   276,   389,   119,   303,   227,   229,   238,   315,   316,
     4452     317,   318,   309,   119,   119,   148,   296,   125,   144,   180,
     4453      86,    89,    91,   148,   156,   157,   158,   155,   144,   156,
     4454     174,   144,   118,   329,   366,   367,   144,   144,   143,   144,
     4455     144,   144,   176,   119,   144,   118,   329,   366,   367,   118,
     4456     329,   372,   118,   329,   372,   367,   240,     5,   126,   144,
     4457     176,   281,   281,   280,   284,   284,   285,   119,   125,   125,
     4458     119,   105,   131,   144,   144,   156,   295,   176,   125,   141,
     4459     224,   325,   118,   118,   183,   118,   118,   141,   289,   141,
     4460     289,   126,   289,   182,   118,   185,   177,   177,    13,   211,
     4461     153,   141,   144,   143,   144,   139,   223,   119,   176,   281,
     4462     281,   294,   329,   119,   265,   268,   141,   336,   375,   376,
     4463     377,   175,   241,   374,   125,   141,   270,   271,   270,   329,
     4464     329,   291,   124,   143,   119,   143,   124,   144,   326,   124,
     4465     143,   144,   144,   119,   123,   119,   389,   177,   121,   144,
     4466     159,   120,   157,   159,   159,   125,   144,    94,   122,   121,
     4467     144,   119,   143,   119,   119,   121,   121,   121,   144,   119,
     4468     143,   143,   143,   176,   176,   144,   121,   144,   144,   144,
     4469     144,   143,   143,   175,   175,   121,   121,   144,   291,   181,
     4470     181,    57,   181,   143,   141,   141,   181,   141,   141,   181,
     4471      68,    69,    70,   206,   207,   208,   141,    73,   141,    61,
     4472     118,   123,   187,   124,   329,   141,   144,   144,   124,   141,
     4473     119,   119,   119,   374,   329,   105,   286,   287,   119,   316,
     4474     125,   141,   125,   141,   124,   314,   124,   121,    90,   143,
     4475     157,   121,   120,   157,   120,   157,   121,   281,   121,   281,
     4476     281,   281,   144,   144,   121,   121,   119,   119,   121,   125,
     4477     105,   280,   105,   144,   121,   119,   119,   118,   119,   182,
     4478     203,   224,   228,   241,   245,   141,   119,   118,   118,   185,
     4479     208,    68,    69,   176,   118,   150,   154,   183,   119,   119,
     4480     118,   329,   366,   367,   269,   123,   143,   143,   315,   156,
     4481     143,   143,   144,   144,   144,   144,   121,   121,   143,   144,
     4482     121,   183,    54,    55,   123,   193,   194,   195,   181,   183,
     4483     144,   119,   182,   241,   123,   195,   105,   143,   105,   143,
     4484     118,   118,   141,   150,   119,   139,   124,   143,   143,   289,
     4485     326,   124,   144,   156,   156,   119,   119,   119,   119,   284,
     4486      52,   175,   191,   192,   327,   139,   143,   183,   193,   119,
     4487     141,   183,   141,   143,   119,   143,   119,   143,   105,   143,
     4488     105,   143,   139,   141,   120,   150,   212,   213,   214,   141,
     4489     281,   315,   121,   144,   144,   183,   105,   125,   139,   144,
     4490     217,   218,   224,   141,   182,   182,   217,   185,   209,   239,
     4491     241,   383,   185,   209,   119,   143,   119,   143,   139,   175,
     4492     118,   119,   139,   125,   144,   124,   121,   121,   175,   191,
     4493     194,   196,   197,   143,   141,   194,   198,   199,   144,   118,
     4494     161,   326,   374,   148,   144,   185,   209,   185,   209,   212,
     4495     121,   175,   141,   212,   214,   119,   118,   183,   188,   124,
     4496     194,   224,   182,    66,   188,   201,   124,   194,   119,   241,
     4497     119,   144,   144,   139,   150,   119,   119,   139,   309,   183,
     4498     188,   141,   200,   201,   188,   201,   185,   185,   119,   119,
     4499     150,   215,   118,   141,   215,   119,   200,   144,   144,   185,
     4500     185,   125,   139,   175,   119,   144,   144,   150,   148,   216,
     4501     119,   141,   119,   125,   141,   148
    43924502};
    43934503
     
    52265336
    52275337/* Line 1806 of yacc.c  */
    5228 #line 328 "parser.yy"
     5338#line 330 "parser.yy"
    52295339    { typedefTable.enterScope(); }
    52305340    break;
     
    52335343
    52345344/* Line 1806 of yacc.c  */
    5235 #line 332 "parser.yy"
     5345#line 334 "parser.yy"
    52365346    { typedefTable.leaveScope(); }
    52375347    break;
     
    52405350
    52415351/* Line 1806 of yacc.c  */
    5242 #line 339 "parser.yy"
     5352#line 341 "parser.yy"
    52435353    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    52445354    break;
    52455355
    52465356  case 5:
    5247 
    5248 /* Line 1806 of yacc.c  */
    5249 #line 340 "parser.yy"
    5250     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    5251     break;
    5252 
    5253   case 6:
    5254 
    5255 /* Line 1806 of yacc.c  */
    5256 #line 341 "parser.yy"
    5257     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    5258     break;
    5259 
    5260   case 7:
    52615357
    52625358/* Line 1806 of yacc.c  */
     
    52655361    break;
    52665362
     5363  case 6:
     5364
     5365/* Line 1806 of yacc.c  */
     5366#line 343 "parser.yy"
     5367    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     5368    break;
     5369
     5370  case 7:
     5371
     5372/* Line 1806 of yacc.c  */
     5373#line 344 "parser.yy"
     5374    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     5375    break;
     5376
    52675377  case 8:
    52685378
    52695379/* Line 1806 of yacc.c  */
    5270 #line 343 "parser.yy"
     5380#line 345 "parser.yy"
    52715381    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    52725382    break;
     
    52755385
    52765386/* Line 1806 of yacc.c  */
    5277 #line 368 "parser.yy"
     5387#line 370 "parser.yy"
    52785388    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    52795389    break;
     
    52825392
    52835393/* Line 1806 of yacc.c  */
    5284 #line 372 "parser.yy"
     5394#line 374 "parser.yy"
    52855395    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    52865396    break;
     
    52895399
    52905400/* Line 1806 of yacc.c  */
    5291 #line 374 "parser.yy"
     5401#line 376 "parser.yy"
    52925402    {
    52935403                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    53005410
    53015411/* Line 1806 of yacc.c  */
    5302 #line 385 "parser.yy"
     5412#line 387 "parser.yy"
    53035413    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    53045414    break;
     
    53075417
    53085418/* Line 1806 of yacc.c  */
    5309 #line 387 "parser.yy"
     5419#line 389 "parser.yy"
    53105420    { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); }
    53115421    break;
     
    53145424
    53155425/* Line 1806 of yacc.c  */
    5316 #line 390 "parser.yy"
     5426#line 392 "parser.yy"
    53175427    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    53185428    break;
     
    53215431
    53225432/* Line 1806 of yacc.c  */
    5323 #line 392 "parser.yy"
     5433#line 394 "parser.yy"
    53245434    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    53255435    break;
     
    53285438
    53295439/* Line 1806 of yacc.c  */
    5330 #line 402 "parser.yy"
     5440#line 404 "parser.yy"
    53315441    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    53325442    break;
     
    53355445
    53365446/* Line 1806 of yacc.c  */
    5337 #line 404 "parser.yy"
     5447#line 406 "parser.yy"
    53385448    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    53395449    break;
     
    53425452
    53435453/* Line 1806 of yacc.c  */
    5344 #line 406 "parser.yy"
     5454#line 408 "parser.yy"
    53455455    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    53465456    break;
     
    53495459
    53505460/* Line 1806 of yacc.c  */
    5351 #line 408 "parser.yy"
     5461#line 410 "parser.yy"
    53525462    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    53535463    break;
     
    53565466
    53575467/* Line 1806 of yacc.c  */
    5358 #line 410 "parser.yy"
     5468#line 412 "parser.yy"
    53595469    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); }
    53605470    break;
     
    53635473
    53645474/* Line 1806 of yacc.c  */
    5365 #line 412 "parser.yy"
     5475#line 414 "parser.yy"
    53665476    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    53675477    break;
     
    53705480
    53715481/* Line 1806 of yacc.c  */
    5372 #line 414 "parser.yy"
     5482#line 416 "parser.yy"
    53735483    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    53745484    break;
     
    53775487
    53785488/* Line 1806 of yacc.c  */
    5379 #line 416 "parser.yy"
     5489#line 418 "parser.yy"
    53805490    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    53815491    break;
     
    53845494
    53855495/* Line 1806 of yacc.c  */
    5386 #line 418 "parser.yy"
     5496#line 420 "parser.yy"
    53875497    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    53885498    break;
     
    53915501
    53925502/* Line 1806 of yacc.c  */
    5393 #line 420 "parser.yy"
     5503#line 422 "parser.yy"
    53945504    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    53955505    break;
     
    53985508
    53995509/* Line 1806 of yacc.c  */
    5400 #line 422 "parser.yy"
     5510#line 424 "parser.yy"
    54015511    {
    54025512                        Token fn;
     
    54095519
    54105520/* Line 1806 of yacc.c  */
    5411 #line 432 "parser.yy"
     5521#line 434 "parser.yy"
    54125522    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    54135523    break;
     
    54165526
    54175527/* Line 1806 of yacc.c  */
    5418 #line 437 "parser.yy"
     5528#line 439 "parser.yy"
    54195529    { (yyval.en) = nullptr; }
    54205530    break;
     
    54235533
    54245534/* Line 1806 of yacc.c  */
    5425 #line 443 "parser.yy"
     5535#line 445 "parser.yy"
    54265536    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    54275537    break;
     
    54305540
    54315541/* Line 1806 of yacc.c  */
    5432 #line 449 "parser.yy"
     5542#line 451 "parser.yy"
    54335543    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }
    54345544    break;
     
    54375547
    54385548/* Line 1806 of yacc.c  */
    5439 #line 451 "parser.yy"
     5549#line 453 "parser.yy"
    54405550    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }
    54415551    break;
     
    54445554
    54455555/* Line 1806 of yacc.c  */
    5446 #line 453 "parser.yy"
     5556#line 455 "parser.yy"
    54475557    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    54485558    break;
     
    54515561
    54525562/* Line 1806 of yacc.c  */
    5453 #line 455 "parser.yy"
     5563#line 457 "parser.yy"
    54545564    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    54555565    break;
     
    54585568
    54595569/* Line 1806 of yacc.c  */
    5460 #line 457 "parser.yy"
     5570#line 459 "parser.yy"
    54615571    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    54625572    break;
     
    54655575
    54665576/* Line 1806 of yacc.c  */
    5467 #line 459 "parser.yy"
     5577#line 461 "parser.yy"
    54685578    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    54695579    break;
     
    54725582
    54735583/* Line 1806 of yacc.c  */
    5474 #line 464 "parser.yy"
     5584#line 466 "parser.yy"
    54755585    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
    54765586    break;
     
    54795589
    54805590/* Line 1806 of yacc.c  */
    5481 #line 466 "parser.yy"
     5591#line 468 "parser.yy"
    54825592    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
    54835593    break;
     
    54865596
    54875597/* Line 1806 of yacc.c  */
    5488 #line 468 "parser.yy"
     5598#line 470 "parser.yy"
    54895599    {
    54905600                        if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) {
     
    54995609
    55005610/* Line 1806 of yacc.c  */
    5501 #line 479 "parser.yy"
     5611#line 481 "parser.yy"
    55025612    { (yyval.en) = nullptr; }
    55035613    break;
     
    55065616
    55075617/* Line 1806 of yacc.c  */
    5508 #line 481 "parser.yy"
     5618#line 483 "parser.yy"
    55095619    {
    55105620                        Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) );
     
    55165626
    55175627/* Line 1806 of yacc.c  */
    5518 #line 492 "parser.yy"
     5628#line 494 "parser.yy"
    55195629    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    55205630    break;
     
    55235633
    55245634/* Line 1806 of yacc.c  */
    5525 #line 494 "parser.yy"
     5635#line 496 "parser.yy"
    55265636    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    55275637    break;
     
    55305640
    55315641/* Line 1806 of yacc.c  */
    5532 #line 496 "parser.yy"
     5642#line 498 "parser.yy"
    55335643    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    55345644    break;
     
    55375647
    55385648/* Line 1806 of yacc.c  */
    5539 #line 501 "parser.yy"
     5649#line 503 "parser.yy"
    55405650    {
    55415651                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    55555665
    55565666/* Line 1806 of yacc.c  */
    5557 #line 514 "parser.yy"
     5667#line 516 "parser.yy"
    55585668    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    55595669    break;
     
    55625672
    55635673/* Line 1806 of yacc.c  */
    5564 #line 516 "parser.yy"
     5674#line 518 "parser.yy"
    55655675    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    55665676    break;
     
    55695679
    55705680/* Line 1806 of yacc.c  */
    5571 #line 518 "parser.yy"
     5681#line 520 "parser.yy"
    55725682    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    55735683    break;
     
    55765686
    55775687/* Line 1806 of yacc.c  */
    5578 #line 520 "parser.yy"
     5688#line 522 "parser.yy"
    55795689    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    55805690    break;
     
    55835693
    55845694/* Line 1806 of yacc.c  */
    5585 #line 522 "parser.yy"
     5695#line 524 "parser.yy"
    55865696    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    55875697    break;
     
    55905700
    55915701/* Line 1806 of yacc.c  */
    5592 #line 524 "parser.yy"
     5702#line 526 "parser.yy"
    55935703    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    55945704    break;
     
    55975707
    55985708/* Line 1806 of yacc.c  */
    5599 #line 526 "parser.yy"
     5709#line 528 "parser.yy"
    56005710    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    56015711    break;
     
    56045714
    56055715/* Line 1806 of yacc.c  */
    5606 #line 528 "parser.yy"
     5716#line 530 "parser.yy"
    56075717    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    56085718    break;
     
    56115721
    56125722/* Line 1806 of yacc.c  */
    5613 #line 530 "parser.yy"
     5723#line 532 "parser.yy"
    56145724    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    56155725    break;
     
    56185728
    56195729/* Line 1806 of yacc.c  */
    5620 #line 532 "parser.yy"
     5730#line 534 "parser.yy"
    56215731    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    56225732    break;
     
    56255735
    56265736/* Line 1806 of yacc.c  */
    5627 #line 534 "parser.yy"
     5737#line 536 "parser.yy"
    56285738    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    56295739    break;
     
    56325742
    56335743/* Line 1806 of yacc.c  */
    5634 #line 540 "parser.yy"
     5744#line 542 "parser.yy"
    56355745    { (yyval.op) = OperKinds::PointTo; }
    56365746    break;
     
    56395749
    56405750/* Line 1806 of yacc.c  */
    5641 #line 541 "parser.yy"
     5751#line 543 "parser.yy"
    56425752    { (yyval.op) = OperKinds::AddressOf; }
    56435753    break;
     
    56465756
    56475757/* Line 1806 of yacc.c  */
    5648 #line 547 "parser.yy"
     5758#line 549 "parser.yy"
    56495759    { (yyval.op) = OperKinds::UnPlus; }
    56505760    break;
     
    56535763
    56545764/* Line 1806 of yacc.c  */
    5655 #line 548 "parser.yy"
     5765#line 550 "parser.yy"
    56565766    { (yyval.op) = OperKinds::UnMinus; }
    56575767    break;
     
    56605770
    56615771/* Line 1806 of yacc.c  */
    5662 #line 549 "parser.yy"
     5772#line 551 "parser.yy"
    56635773    { (yyval.op) = OperKinds::Neg; }
    56645774    break;
     
    56675777
    56685778/* Line 1806 of yacc.c  */
    5669 #line 550 "parser.yy"
     5779#line 552 "parser.yy"
    56705780    { (yyval.op) = OperKinds::BitNeg; }
    56715781    break;
     
    56745784
    56755785/* Line 1806 of yacc.c  */
    5676 #line 556 "parser.yy"
     5786#line 558 "parser.yy"
    56775787    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    56785788    break;
     
    56815791
    56825792/* Line 1806 of yacc.c  */
    5683 #line 564 "parser.yy"
     5793#line 566 "parser.yy"
    56845794    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56855795    break;
     
    56885798
    56895799/* Line 1806 of yacc.c  */
    5690 #line 566 "parser.yy"
     5800#line 568 "parser.yy"
    56915801    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56925802    break;
     
    56955805
    56965806/* Line 1806 of yacc.c  */
    5697 #line 568 "parser.yy"
     5807#line 570 "parser.yy"
    56985808    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56995809    break;
     
    57025812
    57035813/* Line 1806 of yacc.c  */
    5704 #line 574 "parser.yy"
     5814#line 576 "parser.yy"
    57055815    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57065816    break;
     
    57095819
    57105820/* Line 1806 of yacc.c  */
    5711 #line 576 "parser.yy"
     5821#line 578 "parser.yy"
    57125822    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57135823    break;
     
    57165826
    57175827/* Line 1806 of yacc.c  */
    5718 #line 582 "parser.yy"
     5828#line 584 "parser.yy"
    57195829    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57205830    break;
     
    57235833
    57245834/* Line 1806 of yacc.c  */
    5725 #line 584 "parser.yy"
     5835#line 586 "parser.yy"
    57265836    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57275837    break;
     
    57305840
    57315841/* Line 1806 of yacc.c  */
    5732 #line 590 "parser.yy"
     5842#line 592 "parser.yy"
    57335843    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57345844    break;
     
    57375847
    57385848/* Line 1806 of yacc.c  */
    5739 #line 592 "parser.yy"
     5849#line 594 "parser.yy"
    57405850    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57415851    break;
     
    57445854
    57455855/* Line 1806 of yacc.c  */
    5746 #line 594 "parser.yy"
     5856#line 596 "parser.yy"
    57475857    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57485858    break;
     
    57515861
    57525862/* Line 1806 of yacc.c  */
    5753 #line 596 "parser.yy"
     5863#line 598 "parser.yy"
    57545864    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57555865    break;
     
    57585868
    57595869/* Line 1806 of yacc.c  */
    5760 #line 602 "parser.yy"
     5870#line 604 "parser.yy"
    57615871    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57625872    break;
     
    57655875
    57665876/* Line 1806 of yacc.c  */
    5767 #line 604 "parser.yy"
     5877#line 606 "parser.yy"
    57685878    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57695879    break;
     
    57725882
    57735883/* Line 1806 of yacc.c  */
    5774 #line 610 "parser.yy"
     5884#line 612 "parser.yy"
    57755885    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57765886    break;
     
    57795889
    57805890/* Line 1806 of yacc.c  */
    5781 #line 616 "parser.yy"
     5891#line 618 "parser.yy"
    57825892    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57835893    break;
     
    57865896
    57875897/* Line 1806 of yacc.c  */
    5788 #line 622 "parser.yy"
     5898#line 624 "parser.yy"
    57895899    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57905900    break;
     
    57935903
    57945904/* Line 1806 of yacc.c  */
    5795 #line 628 "parser.yy"
     5905#line 630 "parser.yy"
    57965906    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    57975907    break;
     
    58005910
    58015911/* Line 1806 of yacc.c  */
    5802 #line 634 "parser.yy"
     5912#line 636 "parser.yy"
    58035913    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    58045914    break;
     
    58075917
    58085918/* Line 1806 of yacc.c  */
    5809 #line 640 "parser.yy"
     5919#line 642 "parser.yy"
    58105920    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    58115921    break;
     
    58145924
    58155925/* Line 1806 of yacc.c  */
    5816 #line 643 "parser.yy"
     5926#line 645 "parser.yy"
    58175927    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    58185928    break;
     
    58215931
    58225932/* Line 1806 of yacc.c  */
    5823 #line 656 "parser.yy"
     5933#line 658 "parser.yy"
    58245934    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58255935    break;
     
    58285938
    58295939/* Line 1806 of yacc.c  */
    5830 #line 663 "parser.yy"
     5940#line 665 "parser.yy"
    58315941    { (yyval.en) = nullptr; }
    58325942    break;
     
    58355945
    58365946/* Line 1806 of yacc.c  */
    5837 #line 668 "parser.yy"
     5947#line 670 "parser.yy"
    58385948    { (yyval.op) = OperKinds::Assign; }
    58395949    break;
     
    58425952
    58435953/* Line 1806 of yacc.c  */
    5844 #line 669 "parser.yy"
     5954#line 671 "parser.yy"
    58455955    { (yyval.op) = OperKinds::AtAssn; }
    58465956    break;
     
    58495959
    58505960/* Line 1806 of yacc.c  */
    5851 #line 670 "parser.yy"
     5961#line 672 "parser.yy"
    58525962    { (yyval.op) = OperKinds::MulAssn; }
    58535963    break;
     
    58565966
    58575967/* Line 1806 of yacc.c  */
    5858 #line 671 "parser.yy"
     5968#line 673 "parser.yy"
    58595969    { (yyval.op) = OperKinds::DivAssn; }
    58605970    break;
     
    58635973
    58645974/* Line 1806 of yacc.c  */
    5865 #line 672 "parser.yy"
     5975#line 674 "parser.yy"
    58665976    { (yyval.op) = OperKinds::ModAssn; }
    58675977    break;
     
    58705980
    58715981/* Line 1806 of yacc.c  */
    5872 #line 673 "parser.yy"
     5982#line 675 "parser.yy"
    58735983    { (yyval.op) = OperKinds::PlusAssn; }
    58745984    break;
     
    58775987
    58785988/* Line 1806 of yacc.c  */
    5879 #line 674 "parser.yy"
     5989#line 676 "parser.yy"
    58805990    { (yyval.op) = OperKinds::MinusAssn; }
    58815991    break;
     
    58845994
    58855995/* Line 1806 of yacc.c  */
    5886 #line 675 "parser.yy"
     5996#line 677 "parser.yy"
    58875997    { (yyval.op) = OperKinds::LSAssn; }
    58885998    break;
     
    58916001
    58926002/* Line 1806 of yacc.c  */
    5893 #line 676 "parser.yy"
     6003#line 678 "parser.yy"
    58946004    { (yyval.op) = OperKinds::RSAssn; }
    58956005    break;
     
    58986008
    58996009/* Line 1806 of yacc.c  */
    5900 #line 677 "parser.yy"
     6010#line 679 "parser.yy"
    59016011    { (yyval.op) = OperKinds::AndAssn; }
    59026012    break;
     
    59056015
    59066016/* Line 1806 of yacc.c  */
    5907 #line 678 "parser.yy"
     6017#line 680 "parser.yy"
    59086018    { (yyval.op) = OperKinds::ERAssn; }
    59096019    break;
     
    59126022
    59136023/* Line 1806 of yacc.c  */
    5914 #line 679 "parser.yy"
     6024#line 681 "parser.yy"
    59156025    { (yyval.op) = OperKinds::OrAssn; }
    59166026    break;
     
    59196029
    59206030/* Line 1806 of yacc.c  */
    5921 #line 690 "parser.yy"
     6031#line 692 "parser.yy"
    59226032    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    59236033    break;
     
    59266036
    59276037/* Line 1806 of yacc.c  */
    5928 #line 692 "parser.yy"
     6038#line 694 "parser.yy"
    59296039    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    59306040    break;
     
    59336043
    59346044/* Line 1806 of yacc.c  */
    5935 #line 698 "parser.yy"
     6045#line 700 "parser.yy"
    59366046    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    59376047    break;
     
    59406050
    59416051/* Line 1806 of yacc.c  */
    5942 #line 704 "parser.yy"
     6052#line 706 "parser.yy"
    59436053    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    59446054    break;
     
    59476057
    59486058/* Line 1806 of yacc.c  */
    5949 #line 709 "parser.yy"
     6059#line 711 "parser.yy"
    59506060    { (yyval.en) = nullptr; }
    59516061    break;
     
    59546064
    59556065/* Line 1806 of yacc.c  */
    5956 #line 718 "parser.yy"
     6066#line 720 "parser.yy"
    59576067    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    59586068    break;
     
    59616071
    59626072/* Line 1806 of yacc.c  */
    5963 #line 725 "parser.yy"
     6073#line 727 "parser.yy"
    59646074    {
    59656075                        Token fn;
     
    59726082
    59736083/* Line 1806 of yacc.c  */
    5974 #line 735 "parser.yy"
     6084#line 737 "parser.yy"
    59756085    {
    59766086                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) );
     
    59816091
    59826092/* Line 1806 of yacc.c  */
    5983 #line 742 "parser.yy"
     6093#line 744 "parser.yy"
    59846094    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    59856095    break;
     
    59886098
    59896099/* Line 1806 of yacc.c  */
    5990 #line 750 "parser.yy"
     6100#line 752 "parser.yy"
    59916101    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    59926102    break;
     
    59956105
    59966106/* Line 1806 of yacc.c  */
    5997 #line 756 "parser.yy"
     6107#line 758 "parser.yy"
    59986108    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    59996109    break;
     
    60026112
    60036113/* Line 1806 of yacc.c  */
    6004 #line 761 "parser.yy"
     6114#line 763 "parser.yy"
    60056115    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    60066116    break;
     
    60096119
    60106120/* Line 1806 of yacc.c  */
    6011 #line 763 "parser.yy"
     6121#line 765 "parser.yy"
    60126122    {
    60136123                        distExt( (yyvsp[(2) - (2)].decl) );
     
    60196129
    60206130/* Line 1806 of yacc.c  */
    6021 #line 768 "parser.yy"
     6131#line 770 "parser.yy"
    60226132    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    60236133    break;
     
    60266136
    60276137/* Line 1806 of yacc.c  */
    6028 #line 770 "parser.yy"
     6138#line 772 "parser.yy"
    60296139    {
    60306140                        distExt( (yyvsp[(2) - (2)].decl) );
     
    60366146
    60376147/* Line 1806 of yacc.c  */
    6038 #line 780 "parser.yy"
     6148#line 782 "parser.yy"
    60396149    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    60406150    break;
     
    60436153
    60446154/* Line 1806 of yacc.c  */
    6045 #line 785 "parser.yy"
     6155#line 787 "parser.yy"
    60466156    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    60476157    break;
     
    60506160
    60516161/* Line 1806 of yacc.c  */
    6052 #line 791 "parser.yy"
     6162#line 793 "parser.yy"
    60536163    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    60546164    break;
     
    60576167
    60586168/* Line 1806 of yacc.c  */
    6059 #line 793 "parser.yy"
     6169#line 795 "parser.yy"
    60606170    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    60616171    break;
     
    60646174
    60656175/* Line 1806 of yacc.c  */
    6066 #line 795 "parser.yy"
     6176#line 797 "parser.yy"
    60676177    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    60686178    break;
     
    60716181
    60726182/* Line 1806 of yacc.c  */
    6073 #line 797 "parser.yy"
     6183#line 799 "parser.yy"
    60746184    {
    60756185                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    60866196
    60876197/* Line 1806 of yacc.c  */
    6088 #line 807 "parser.yy"
     6198#line 809 "parser.yy"
    60896199    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    60906200    break;
     
    60936203
    60946204/* Line 1806 of yacc.c  */
    6095 #line 809 "parser.yy"
     6205#line 811 "parser.yy"
    60966206    {
    60976207                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    61036213
    61046214/* Line 1806 of yacc.c  */
    6105 #line 819 "parser.yy"
     6215#line 821 "parser.yy"
    61066216    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    61076217    break;
     
    61106220
    61116221/* Line 1806 of yacc.c  */
    6112 #line 821 "parser.yy"
     6222#line 823 "parser.yy"
    61136223    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    61146224    break;
     
    61176227
    61186228/* Line 1806 of yacc.c  */
    6119 #line 826 "parser.yy"
     6229#line 828 "parser.yy"
    61206230    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    61216231    break;
     
    61246234
    61256235/* Line 1806 of yacc.c  */
    6126 #line 828 "parser.yy"
     6236#line 830 "parser.yy"
    61276237    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    61286238    break;
     
    61316241
    61326242/* Line 1806 of yacc.c  */
    6133 #line 832 "parser.yy"
     6243#line 834 "parser.yy"
    61346244    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    61356245    break;
     
    61386248
    61396249/* Line 1806 of yacc.c  */
    6140 #line 833 "parser.yy"
     6250#line 835 "parser.yy"
    61416251    { (yyval.sn) = new StatementNode( build_default() ); }
    61426252    break;
     
    61456255
    61466256/* Line 1806 of yacc.c  */
    6147 #line 839 "parser.yy"
     6257#line 841 "parser.yy"
    61486258    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    61496259    break;
     
    61526262
    61536263/* Line 1806 of yacc.c  */
    6154 #line 843 "parser.yy"
     6264#line 845 "parser.yy"
    61556265    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    61566266    break;
     
    61596269
    61606270/* Line 1806 of yacc.c  */
    6161 #line 848 "parser.yy"
     6271#line 850 "parser.yy"
    61626272    { (yyval.sn) = nullptr; }
    61636273    break;
     
    61666276
    61676277/* Line 1806 of yacc.c  */
    6168 #line 854 "parser.yy"
     6278#line 856 "parser.yy"
    61696279    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    61706280    break;
     
    61736283
    61746284/* Line 1806 of yacc.c  */
    6175 #line 856 "parser.yy"
     6285#line 858 "parser.yy"
    61766286    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    61776287    break;
     
    61806290
    61816291/* Line 1806 of yacc.c  */
    6182 #line 861 "parser.yy"
     6292#line 863 "parser.yy"
    61836293    { (yyval.sn) = nullptr; }
    61846294    break;
     
    61876297
    61886298/* Line 1806 of yacc.c  */
    6189 #line 867 "parser.yy"
     6299#line 869 "parser.yy"
    61906300    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    61916301    break;
     
    61946304
    61956305/* Line 1806 of yacc.c  */
    6196 #line 869 "parser.yy"
     6306#line 871 "parser.yy"
    61976307    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    61986308    break;
     
    62016311
    62026312/* Line 1806 of yacc.c  */
    6203 #line 871 "parser.yy"
     6313#line 873 "parser.yy"
    62046314    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    62056315    break;
     
    62086318
    62096319/* Line 1806 of yacc.c  */
    6210 #line 873 "parser.yy"
     6320#line 875 "parser.yy"
    62116321    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    62126322    break;
     
    62156325
    62166326/* Line 1806 of yacc.c  */
    6217 #line 878 "parser.yy"
     6327#line 880 "parser.yy"
    62186328    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    62196329    break;
    62206330
    62216331  case 186:
    6222 
    6223 /* Line 1806 of yacc.c  */
    6224 #line 884 "parser.yy"
    6225     { (yyval.sn) = nullptr; }
    6226     break;
    6227 
    6228   case 187:
    62296332
    62306333/* Line 1806 of yacc.c  */
     
    62336336    break;
    62346337
     6338  case 187:
     6339
     6340/* Line 1806 of yacc.c  */
     6341#line 888 "parser.yy"
     6342    { (yyval.sn) = nullptr; }
     6343    break;
     6344
    62356345  case 188:
    62366346
    62376347/* Line 1806 of yacc.c  */
    6238 #line 891 "parser.yy"
     6348#line 893 "parser.yy"
    62396349    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    62406350    break;
     
    62436353
    62446354/* Line 1806 of yacc.c  */
    6245 #line 893 "parser.yy"
     6355#line 895 "parser.yy"
    62466356    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    62476357    break;
     
    62506360
    62516361/* Line 1806 of yacc.c  */
    6252 #line 895 "parser.yy"
     6362#line 897 "parser.yy"
    62536363    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    62546364    break;
     
    62576367
    62586368/* Line 1806 of yacc.c  */
    6259 #line 900 "parser.yy"
     6369#line 902 "parser.yy"
    62606370    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    62616371    break;
     
    62646374
    62656375/* Line 1806 of yacc.c  */
    6266 #line 902 "parser.yy"
     6376#line 904 "parser.yy"
    62676377    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    62686378    break;
     
    62716381
    62726382/* Line 1806 of yacc.c  */
    6273 #line 907 "parser.yy"
     6383#line 909 "parser.yy"
    62746384    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    62756385    break;
     
    62786388
    62796389/* Line 1806 of yacc.c  */
    6280 #line 911 "parser.yy"
     6390#line 913 "parser.yy"
    62816391    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    62826392    break;
     
    62856395
    62866396/* Line 1806 of yacc.c  */
    6287 #line 914 "parser.yy"
     6397#line 916 "parser.yy"
    62886398    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    62896399    break;
     
    62926402
    62936403/* Line 1806 of yacc.c  */
    6294 #line 918 "parser.yy"
     6404#line 920 "parser.yy"
    62956405    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    62966406    break;
     
    62996409
    63006410/* Line 1806 of yacc.c  */
    6301 #line 921 "parser.yy"
     6411#line 923 "parser.yy"
    63026412    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    63036413    break;
     
    63066416
    63076417/* Line 1806 of yacc.c  */
    6308 #line 925 "parser.yy"
     6418#line 927 "parser.yy"
    63096419    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    63106420    break;
     
    63136423
    63146424/* Line 1806 of yacc.c  */
    6315 #line 927 "parser.yy"
     6425#line 929 "parser.yy"
    63166426    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    63176427    break;
    63186428
    63196429  case 200:
    6320 
    6321 /* Line 1806 of yacc.c  */
    6322 #line 929 "parser.yy"
    6323     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    6324     break;
    6325 
    6326   case 201:
    63276430
    63286431/* Line 1806 of yacc.c  */
     
    63316434    break;
    63326435
     6436  case 201:
     6437
     6438/* Line 1806 of yacc.c  */
     6439#line 933 "parser.yy"
     6440    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6441    break;
     6442
    63336443  case 202:
    63346444
    63356445/* Line 1806 of yacc.c  */
    6336 #line 933 "parser.yy"
     6446#line 935 "parser.yy"
    63376447    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    63386448    break;
     
    63416451
    63426452/* Line 1806 of yacc.c  */
    6343 #line 938 "parser.yy"
     6453#line 940 "parser.yy"
    63446454    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    63456455    break;
     
    63486458
    63496459/* Line 1806 of yacc.c  */
    6350 #line 940 "parser.yy"
     6460#line 942 "parser.yy"
    63516461    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    63526462    break;
     
    63556465
    63566466/* Line 1806 of yacc.c  */
    6357 #line 942 "parser.yy"
     6467#line 944 "parser.yy"
    63586468    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    63596469    break;
     
    63626472
    63636473/* Line 1806 of yacc.c  */
    6364 #line 949 "parser.yy"
     6474#line 951 "parser.yy"
    63656475    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    63666476    break;
     
    63696479
    63706480/* Line 1806 of yacc.c  */
    6371 #line 951 "parser.yy"
     6481#line 953 "parser.yy"
    63726482    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    63736483    break;
     
    63766486
    63776487/* Line 1806 of yacc.c  */
    6378 #line 953 "parser.yy"
     6488#line 955 "parser.yy"
    63796489    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    63806490    break;
     
    63836493
    63846494/* Line 1806 of yacc.c  */
    6385 #line 955 "parser.yy"
     6495#line 957 "parser.yy"
    63866496    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    63876497    break;
     
    63906500
    63916501/* Line 1806 of yacc.c  */
    6392 #line 960 "parser.yy"
     6502#line 962 "parser.yy"
    63936503    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    63946504    break;
     
    63976507
    63986508/* Line 1806 of yacc.c  */
    6399 #line 962 "parser.yy"
     6509#line 964 "parser.yy"
    64006510    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    64016511    break;
     
    64046514
    64056515/* Line 1806 of yacc.c  */
    6406 #line 964 "parser.yy"
     6516#line 966 "parser.yy"
    64076517    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    64086518    break;
     
    64116521
    64126522/* Line 1806 of yacc.c  */
    6413 #line 966 "parser.yy"
     6523#line 968 "parser.yy"
    64146524    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    64156525    break;
     
    64186528
    64196529/* Line 1806 of yacc.c  */
    6420 #line 971 "parser.yy"
     6530#line 973 "parser.yy"
    64216531    {
    64226532                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    64276537
    64286538/* Line 1806 of yacc.c  */
    6429 #line 980 "parser.yy"
     6539#line 982 "parser.yy"
    64306540    {
    64316541                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64376547
    64386548/* Line 1806 of yacc.c  */
    6439 #line 985 "parser.yy"
     6549#line 987 "parser.yy"
    64406550    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    64416551    break;
     
    64446554
    64456555/* Line 1806 of yacc.c  */
    6446 #line 987 "parser.yy"
     6556#line 989 "parser.yy"
    64476557    {
    64486558                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64546564
    64556565/* Line 1806 of yacc.c  */
    6456 #line 996 "parser.yy"
     6566#line 998 "parser.yy"
    64576567    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    64586568    break;
     
    64616571
    64626572/* Line 1806 of yacc.c  */
    6463 #line 998 "parser.yy"
     6573#line 1000 "parser.yy"
    64646574    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    64656575    break;
     
    64686578
    64696579/* Line 1806 of yacc.c  */
    6470 #line 1000 "parser.yy"
     6580#line 1002 "parser.yy"
    64716581    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    64726582    break;
     
    64756585
    64766586/* Line 1806 of yacc.c  */
    6477 #line 1002 "parser.yy"
     6587#line 1004 "parser.yy"
    64786588    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    64796589    break;
     
    64826592
    64836593/* Line 1806 of yacc.c  */
    6484 #line 1004 "parser.yy"
     6594#line 1006 "parser.yy"
    64856595    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    64866596    break;
     
    64896599
    64906600/* Line 1806 of yacc.c  */
    6491 #line 1009 "parser.yy"
     6601#line 1011 "parser.yy"
    64926602    { (yyval.flag) = false; }
    64936603    break;
     
    64966606
    64976607/* Line 1806 of yacc.c  */
    6498 #line 1011 "parser.yy"
     6608#line 1013 "parser.yy"
    64996609    { (yyval.flag) = true; }
    65006610    break;
     
    65036613
    65046614/* Line 1806 of yacc.c  */
    6505 #line 1016 "parser.yy"
     6615#line 1018 "parser.yy"
    65066616    { (yyval.en) = nullptr; }
    65076617    break;
     
    65106620
    65116621/* Line 1806 of yacc.c  */
    6512 #line 1023 "parser.yy"
     6622#line 1025 "parser.yy"
    65136623    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    65146624    break;
     
    65176627
    65186628/* Line 1806 of yacc.c  */
    6519 #line 1028 "parser.yy"
     6629#line 1030 "parser.yy"
    65206630    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    65216631    break;
     
    65246634
    65256635/* Line 1806 of yacc.c  */
    6526 #line 1030 "parser.yy"
     6636#line 1032 "parser.yy"
    65276637    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    65286638    break;
     
    65316641
    65326642/* Line 1806 of yacc.c  */
    6533 #line 1035 "parser.yy"
     6643#line 1037 "parser.yy"
    65346644    { (yyval.en) = nullptr; }
    65356645    break;
     
    65386648
    65396649/* Line 1806 of yacc.c  */
    6540 #line 1037 "parser.yy"
     6650#line 1039 "parser.yy"
    65416651    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    65426652    break;
     
    65456655
    65466656/* Line 1806 of yacc.c  */
    6547 #line 1040 "parser.yy"
     6657#line 1042 "parser.yy"
    65486658    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    65496659    break;
     
    65526662
    65536663/* Line 1806 of yacc.c  */
    6554 #line 1045 "parser.yy"
     6664#line 1047 "parser.yy"
    65556665    {
    65566666                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    65626672
    65636673/* Line 1806 of yacc.c  */
    6564 #line 1050 "parser.yy"
     6674#line 1052 "parser.yy"
    65656675    {
    65666676                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    65726682
    65736683/* Line 1806 of yacc.c  */
    6574 #line 1060 "parser.yy"
     6684#line 1062 "parser.yy"
    65756685    { (yyval.decl) = nullptr; }
    65766686    break;
     
    65796689
    65806690/* Line 1806 of yacc.c  */
    6581 #line 1067 "parser.yy"
     6691#line 1069 "parser.yy"
    65826692    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65836693    break;
     
    65866696
    65876697/* Line 1806 of yacc.c  */
    6588 #line 1072 "parser.yy"
     6698#line 1074 "parser.yy"
    65896699    { (yyval.decl) = nullptr; }
    65906700    break;
     
    65936703
    65946704/* Line 1806 of yacc.c  */
    6595 #line 1079 "parser.yy"
     6705#line 1081 "parser.yy"
    65966706    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65976707    break;
     
    66006710
    66016711/* Line 1806 of yacc.c  */
    6602 #line 1093 "parser.yy"
     6712#line 1095 "parser.yy"
    66036713    {}
    66046714    break;
     
    66076717
    66086718/* Line 1806 of yacc.c  */
    6609 #line 1094 "parser.yy"
     6719#line 1096 "parser.yy"
    66106720    {}
    66116721    break;
     
    66146724
    66156725/* Line 1806 of yacc.c  */
    6616 #line 1123 "parser.yy"
     6726#line 1125 "parser.yy"
    66176727    {
    66186728                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66246734
    66256735/* Line 1806 of yacc.c  */
    6626 #line 1130 "parser.yy"
     6736#line 1132 "parser.yy"
    66276737    {
    66286738                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66346744
    66356745/* Line 1806 of yacc.c  */
    6636 #line 1135 "parser.yy"
     6746#line 1137 "parser.yy"
    66376747    {
    66386748                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    66446754
    66456755/* Line 1806 of yacc.c  */
    6646 #line 1145 "parser.yy"
     6756#line 1147 "parser.yy"
    66476757    {
    66486758                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    66546764
    66556765/* Line 1806 of yacc.c  */
    6656 #line 1150 "parser.yy"
     6766#line 1152 "parser.yy"
    66576767    {
    66586768                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    66646774
    66656775/* Line 1806 of yacc.c  */
    6666 #line 1155 "parser.yy"
     6776#line 1157 "parser.yy"
    66676777    {
    66686778                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    66746784
    66756785/* Line 1806 of yacc.c  */
    6676 #line 1163 "parser.yy"
     6786#line 1165 "parser.yy"
    66776787    {
    66786788                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66846794
    66856795/* Line 1806 of yacc.c  */
    6686 #line 1168 "parser.yy"
     6796#line 1170 "parser.yy"
    66876797    {
    66886798                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66946804
    66956805/* Line 1806 of yacc.c  */
    6696 #line 1173 "parser.yy"
     6806#line 1175 "parser.yy"
    66976807    {
    66986808                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    67046814
    67056815/* Line 1806 of yacc.c  */
    6706 #line 1178 "parser.yy"
     6816#line 1180 "parser.yy"
    67076817    {
    67086818                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    67146824
    67156825/* Line 1806 of yacc.c  */
    6716 #line 1183 "parser.yy"
     6826#line 1185 "parser.yy"
    67176827    {
    67186828                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    67246834
    67256835/* Line 1806 of yacc.c  */
    6726 #line 1214 "parser.yy"
     6836#line 1216 "parser.yy"
    67276837    {
    67286838                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    67336843
    67346844/* Line 1806 of yacc.c  */
    6735 #line 1218 "parser.yy"
     6845#line 1220 "parser.yy"
    67366846    {
    67376847                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    67426852
    67436853/* Line 1806 of yacc.c  */
    6744 #line 1225 "parser.yy"
     6854#line 1227 "parser.yy"
    67456855    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    67466856    break;
     
    67496859
    67506860/* Line 1806 of yacc.c  */
    6751 #line 1229 "parser.yy"
     6861#line 1231 "parser.yy"
    67526862    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    67536863    break;
     
    67566866
    67576867/* Line 1806 of yacc.c  */
    6758 #line 1234 "parser.yy"
     6868#line 1236 "parser.yy"
    67596869    {
    67606870                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67666876
    67676877/* Line 1806 of yacc.c  */
    6768 #line 1239 "parser.yy"
     6878#line 1241 "parser.yy"
    67696879    {
    67706880                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67766886
    67776887/* Line 1806 of yacc.c  */
    6778 #line 1244 "parser.yy"
     6888#line 1246 "parser.yy"
    67796889    {
    67806890                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    67866896
    67876897/* Line 1806 of yacc.c  */
    6788 #line 1255 "parser.yy"
     6898#line 1257 "parser.yy"
    67896899    {
    67906900                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67966906
    67976907/* Line 1806 of yacc.c  */
    6798 #line 1260 "parser.yy"
     6908#line 1262 "parser.yy"
    67996909    {
    68006910                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    68066916
    68076917/* Line 1806 of yacc.c  */
    6808 #line 1265 "parser.yy"
     6918#line 1267 "parser.yy"
    68096919    {
    68106920                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    68166926
    68176927/* Line 1806 of yacc.c  */
    6818 #line 1270 "parser.yy"
     6928#line 1272 "parser.yy"
    68196929    {
    68206930                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    68266936
    68276937/* Line 1806 of yacc.c  */
    6828 #line 1275 "parser.yy"
     6938#line 1277 "parser.yy"
    68296939    {
    68306940                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    68366946
    68376947/* Line 1806 of yacc.c  */
    6838 #line 1284 "parser.yy"
     6948#line 1286 "parser.yy"
    68396949    {
    68406950                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    68466956
    68476957/* Line 1806 of yacc.c  */
    6848 #line 1289 "parser.yy"
     6958#line 1291 "parser.yy"
    68496959    {
    68506960                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    68566966
    68576967/* Line 1806 of yacc.c  */
    6858 #line 1319 "parser.yy"
     6968#line 1321 "parser.yy"
    68596969    {
    68606970                        (yyval.decl) = distAttr( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].decl) );
     
    68656975
    68666976/* Line 1806 of yacc.c  */
    6867 #line 1331 "parser.yy"
     6977#line 1333 "parser.yy"
    68686978    {
    68696979                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68756985
    68766986/* Line 1806 of yacc.c  */
    6877 #line 1336 "parser.yy"
     6987#line 1338 "parser.yy"
    68786988    {
    68796989                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68856995
    68866996/* Line 1806 of yacc.c  */
    6887 #line 1382 "parser.yy"
     6997#line 1384 "parser.yy"
    68886998    { (yyval.decl) = nullptr; }
    68896999    break;
     
    68927002
    68937003/* Line 1806 of yacc.c  */
    6894 #line 1394 "parser.yy"
     7004#line 1396 "parser.yy"
    68957005    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68967006    break;
     
    68997009
    69007010/* Line 1806 of yacc.c  */
    6901 #line 1404 "parser.yy"
     7011#line 1406 "parser.yy"
    69027012    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Const ); }
    69037013    break;
     
    69067016
    69077017/* Line 1806 of yacc.c  */
    6908 #line 1406 "parser.yy"
     7018#line 1408 "parser.yy"
    69097019    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Restrict ); }
    69107020    break;
     
    69137023
    69147024/* Line 1806 of yacc.c  */
    6915 #line 1408 "parser.yy"
     7025#line 1410 "parser.yy"
    69167026    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Volatile ); }
    69177027    break;
     
    69207030
    69217031/* Line 1806 of yacc.c  */
    6922 #line 1410 "parser.yy"
     7032#line 1412 "parser.yy"
    69237033    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Lvalue ); }
    69247034    break;
     
    69277037
    69287038/* Line 1806 of yacc.c  */
    6929 #line 1412 "parser.yy"
     7039#line 1414 "parser.yy"
    69307040    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Mutex ); }
    69317041    break;
     
    69347044
    69357045/* Line 1806 of yacc.c  */
    6936 #line 1414 "parser.yy"
     7046#line 1416 "parser.yy"
    69377047    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Atomic ); }
    69387048    break;
     
    69417051
    69427052/* Line 1806 of yacc.c  */
    6943 #line 1416 "parser.yy"
     7053#line 1418 "parser.yy"
    69447054    {
    69457055                        typedefTable.enterScope();
     
    69507060
    69517061/* Line 1806 of yacc.c  */
    6952 #line 1420 "parser.yy"
     7062#line 1422 "parser.yy"
    69537063    {
    69547064                        typedefTable.leaveScope();
     
    69607070
    69617071/* Line 1806 of yacc.c  */
    6962 #line 1429 "parser.yy"
     7072#line 1431 "parser.yy"
    69637073    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69647074    break;
     
    69677077
    69687078/* Line 1806 of yacc.c  */
    6969 #line 1431 "parser.yy"
     7079#line 1433 "parser.yy"
    69707080    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69717081    break;
     
    69747084
    69757085/* Line 1806 of yacc.c  */
    6976 #line 1442 "parser.yy"
     7086#line 1444 "parser.yy"
    69777087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69787088    break;
     
    69817091
    69827092/* Line 1806 of yacc.c  */
    6983 #line 1447 "parser.yy"
     7093#line 1449 "parser.yy"
    69847094    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    69857095    break;
     
    69887098
    69897099/* Line 1806 of yacc.c  */
    6990 #line 1449 "parser.yy"
     7100#line 1451 "parser.yy"
    69917101    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    69927102    break;
     
    69957105
    69967106/* Line 1806 of yacc.c  */
    6997 #line 1451 "parser.yy"
     7107#line 1453 "parser.yy"
    69987108    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    69997109    break;
     
    70027112
    70037113/* Line 1806 of yacc.c  */
    7004 #line 1453 "parser.yy"
     7114#line 1455 "parser.yy"
    70057115    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    70067116    break;
     
    70097119
    70107120/* Line 1806 of yacc.c  */
    7011 #line 1455 "parser.yy"
     7121#line 1457 "parser.yy"
    70127122    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    70137123    break;
     
    70167126
    70177127/* Line 1806 of yacc.c  */
    7018 #line 1458 "parser.yy"
     7128#line 1460 "parser.yy"
    70197129    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Inline ); }
    70207130    break;
     
    70237133
    70247134/* Line 1806 of yacc.c  */
    7025 #line 1460 "parser.yy"
     7135#line 1462 "parser.yy"
    70267136    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Fortran ); }
    70277137    break;
     
    70307140
    70317141/* Line 1806 of yacc.c  */
    7032 #line 1462 "parser.yy"
     7142#line 1464 "parser.yy"
    70337143    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Noreturn ); }
    70347144    break;
     
    70377147
    70387148/* Line 1806 of yacc.c  */
    7039 #line 1467 "parser.yy"
     7149#line 1469 "parser.yy"
    70407150    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    70417151    break;
     
    70447154
    70457155/* Line 1806 of yacc.c  */
    7046 #line 1469 "parser.yy"
     7156#line 1471 "parser.yy"
    70477157    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    70487158    break;
     
    70517161
    70527162/* Line 1806 of yacc.c  */
    7053 #line 1471 "parser.yy"
     7163#line 1473 "parser.yy"
    70547164    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    70557165    break;
     
    70587168
    70597169/* Line 1806 of yacc.c  */
    7060 #line 1473 "parser.yy"
     7170#line 1475 "parser.yy"
    70617171    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    70627172    break;
     
    70657175
    70667176/* Line 1806 of yacc.c  */
    7067 #line 1475 "parser.yy"
     7177#line 1477 "parser.yy"
    70687178    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    70697179    break;
     
    70727182
    70737183/* Line 1806 of yacc.c  */
    7074 #line 1477 "parser.yy"
     7184#line 1479 "parser.yy"
    70757185    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    70767186    break;
     
    70797189
    70807190/* Line 1806 of yacc.c  */
    7081 #line 1479 "parser.yy"
     7191#line 1481 "parser.yy"
    70827192    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    70837193    break;
     
    70867196
    70877197/* Line 1806 of yacc.c  */
    7088 #line 1481 "parser.yy"
     7198#line 1483 "parser.yy"
    70897199    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    70907200    break;
     
    70937203
    70947204/* Line 1806 of yacc.c  */
    7095 #line 1483 "parser.yy"
     7205#line 1485 "parser.yy"
    70967206    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    70977207    break;
     
    71007210
    71017211/* Line 1806 of yacc.c  */
    7102 #line 1485 "parser.yy"
     7212#line 1487 "parser.yy"
    71037213    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    71047214    break;
     
    71077217
    71087218/* Line 1806 of yacc.c  */
    7109 #line 1487 "parser.yy"
     7219#line 1489 "parser.yy"
    71107220    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    71117221    break;
     
    71147224
    71157225/* Line 1806 of yacc.c  */
    7116 #line 1489 "parser.yy"
     7226#line 1491 "parser.yy"
    71177227    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    71187228    break;
     
    71217231
    71227232/* Line 1806 of yacc.c  */
    7123 #line 1491 "parser.yy"
     7233#line 1493 "parser.yy"
    71247234    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    71257235    break;
     
    71287238
    71297239/* Line 1806 of yacc.c  */
    7130 #line 1493 "parser.yy"
     7240#line 1495 "parser.yy"
    71317241    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
    71327242    break;
     
    71357245
    71367246/* Line 1806 of yacc.c  */
    7137 #line 1495 "parser.yy"
     7247#line 1497 "parser.yy"
    71387248    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
    71397249    break;
     
    71427252
    71437253/* Line 1806 of yacc.c  */
    7144 #line 1502 "parser.yy"
     7254#line 1504 "parser.yy"
    71457255    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71467256    break;
     
    71497259
    71507260/* Line 1806 of yacc.c  */
    7151 #line 1504 "parser.yy"
     7261#line 1506 "parser.yy"
    71527262    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71537263    break;
     
    71567266
    71577267/* Line 1806 of yacc.c  */
    7158 #line 1506 "parser.yy"
     7268#line 1508 "parser.yy"
    71597269    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71607270    break;
     
    71637273
    71647274/* Line 1806 of yacc.c  */
    7165 #line 1508 "parser.yy"
     7275#line 1510 "parser.yy"
    71667276    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    71677277    break;
     
    71707280
    71717281/* Line 1806 of yacc.c  */
    7172 #line 1514 "parser.yy"
     7282#line 1516 "parser.yy"
    71737283    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71747284    break;
     
    71777287
    71787288/* Line 1806 of yacc.c  */
    7179 #line 1521 "parser.yy"
     7289#line 1523 "parser.yy"
    71807290    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71817291    break;
     
    71847294
    71857295/* Line 1806 of yacc.c  */
    7186 #line 1523 "parser.yy"
     7296#line 1525 "parser.yy"
    71877297    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71887298    break;
     
    71917301
    71927302/* Line 1806 of yacc.c  */
    7193 #line 1525 "parser.yy"
     7303#line 1527 "parser.yy"
    71947304    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    71957305    break;
     
    71987308
    71997309/* Line 1806 of yacc.c  */
    7200 #line 1530 "parser.yy"
     7310#line 1532 "parser.yy"
    72017311    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    72027312    break;
     
    72057315
    72067316/* Line 1806 of yacc.c  */
    7207 #line 1532 "parser.yy"
     7317#line 1534 "parser.yy"
    72087318    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    72097319    break;
     
    72127322
    72137323/* Line 1806 of yacc.c  */
    7214 #line 1534 "parser.yy"
     7324#line 1536 "parser.yy"
    72157325    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    72167326    break;
     
    72197329
    72207330/* Line 1806 of yacc.c  */
    7221 #line 1536 "parser.yy"
     7331#line 1538 "parser.yy"
    72227332    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    72237333    break;
     
    72267336
    72277337/* Line 1806 of yacc.c  */
    7228 #line 1542 "parser.yy"
     7338#line 1544 "parser.yy"
    72297339    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72307340    break;
     
    72337343
    72347344/* Line 1806 of yacc.c  */
    7235 #line 1544 "parser.yy"
     7345#line 1546 "parser.yy"
    72367346    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72377347    break;
     
    72407350
    72417351/* Line 1806 of yacc.c  */
    7242 #line 1546 "parser.yy"
     7352#line 1548 "parser.yy"
    72437353    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    72447354    break;
     
    72477357
    72487358/* Line 1806 of yacc.c  */
    7249 #line 1552 "parser.yy"
     7359#line 1554 "parser.yy"
    72507360    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72517361    break;
     
    72547364
    72557365/* Line 1806 of yacc.c  */
    7256 #line 1554 "parser.yy"
     7366#line 1556 "parser.yy"
    72577367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72587368    break;
     
    72617371
    72627372/* Line 1806 of yacc.c  */
    7263 #line 1560 "parser.yy"
     7373#line 1562 "parser.yy"
    72647374    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72657375    break;
     
    72687378
    72697379/* Line 1806 of yacc.c  */
    7270 #line 1562 "parser.yy"
     7380#line 1564 "parser.yy"
    72717381    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72727382    break;
     
    72757385
    72767386/* Line 1806 of yacc.c  */
    7277 #line 1564 "parser.yy"
     7387#line 1566 "parser.yy"
    72787388    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    72797389    break;
     
    72827392
    72837393/* Line 1806 of yacc.c  */
    7284 #line 1570 "parser.yy"
     7394#line 1572 "parser.yy"
    72857395    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72867396    break;
     
    72897399
    72907400/* Line 1806 of yacc.c  */
    7291 #line 1572 "parser.yy"
     7401#line 1574 "parser.yy"
    72927402    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72937403    break;
     
    72967406
    72977407/* Line 1806 of yacc.c  */
    7298 #line 1578 "parser.yy"
     7408#line 1580 "parser.yy"
    72997409    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73007410    break;
     
    73037413
    73047414/* Line 1806 of yacc.c  */
    7305 #line 1580 "parser.yy"
     7415#line 1582 "parser.yy"
    73067416    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73077417    break;
     
    73107420
    73117421/* Line 1806 of yacc.c  */
    7312 #line 1582 "parser.yy"
     7422#line 1584 "parser.yy"
    73137423    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    73147424    break;
     
    73177427
    73187428/* Line 1806 of yacc.c  */
    7319 #line 1587 "parser.yy"
     7429#line 1589 "parser.yy"
    73207430    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    73217431    break;
     
    73247434
    73257435/* Line 1806 of yacc.c  */
    7326 #line 1589 "parser.yy"
     7436#line 1591 "parser.yy"
    73277437    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73287438    break;
     
    73317441
    73327442/* Line 1806 of yacc.c  */
    7333 #line 1591 "parser.yy"
     7443#line 1593 "parser.yy"
    73347444    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73357445    break;
     
    73387448
    73397449/* Line 1806 of yacc.c  */
    7340 #line 1606 "parser.yy"
     7450#line 1608 "parser.yy"
    73417451    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), nullptr, nullptr, (yyvsp[(4) - (5)].decl), true )->addQualifiers( (yyvsp[(2) - (5)].decl) ); }
    73427452    break;
     
    73457455
    73467456/* Line 1806 of yacc.c  */
    7347 #line 1608 "parser.yy"
     7457#line 1610 "parser.yy"
    73487458    { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
    73497459    break;
     
    73527462
    73537463/* Line 1806 of yacc.c  */
    7354 #line 1610 "parser.yy"
     7464#line 1612 "parser.yy"
    73557465    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(3) - (7)].tok), nullptr, (yyvsp[(6) - (7)].decl), true )->addQualifiers( (yyvsp[(2) - (7)].decl) ); }
    73567466    break;
     
    73597469
    73607470/* Line 1806 of yacc.c  */
    7361 #line 1612 "parser.yy"
     7471#line 1614 "parser.yy"
    73627472    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (8)].aggKey), nullptr, (yyvsp[(4) - (8)].en), (yyvsp[(7) - (8)].decl), false )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
    73637473    break;
     
    73667476
    73677477/* Line 1806 of yacc.c  */
    7368 #line 1618 "parser.yy"
     7478#line 1620 "parser.yy"
    73697479    {
    73707480                        typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
     
    73767486
    73777487/* Line 1806 of yacc.c  */
    7378 #line 1623 "parser.yy"
     7488#line 1625 "parser.yy"
    73797489    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) ); }
    73807490    break;
     
    73837493
    73847494/* Line 1806 of yacc.c  */
    7385 #line 1628 "parser.yy"
     7495#line 1630 "parser.yy"
    73867496    { (yyval.aggKey) = DeclarationNode::Struct; }
    73877497    break;
     
    73907500
    73917501/* Line 1806 of yacc.c  */
    7392 #line 1630 "parser.yy"
     7502#line 1632 "parser.yy"
    73937503    { (yyval.aggKey) = DeclarationNode::Union; }
    73947504    break;
     
    73977507
    73987508/* Line 1806 of yacc.c  */
    7399 #line 1635 "parser.yy"
     7509#line 1634 "parser.yy"
     7510    { (yyval.aggKey) = DeclarationNode::Struct; }
     7511    break;
     7512
     7513  case 399:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1636 "parser.yy"
     7517    { (yyval.aggKey) = DeclarationNode::Struct; }
     7518    break;
     7519
     7520  case 400:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1638 "parser.yy"
     7524    { (yyval.aggKey) = DeclarationNode::Struct; }
     7525    break;
     7526
     7527  case 401:
     7528
     7529/* Line 1806 of yacc.c  */
     7530#line 1643 "parser.yy"
    74007531    { (yyval.decl) = nullptr; }
    74017532    break;
    74027533
    7403   case 399:
    7404 
    7405 /* Line 1806 of yacc.c  */
    7406 #line 1637 "parser.yy"
     7534  case 402:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1645 "parser.yy"
    74077538    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    74087539    break;
    74097540
    7410   case 401:
    7411 
    7412 /* Line 1806 of yacc.c  */
    7413 #line 1643 "parser.yy"
     7541  case 404:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1651 "parser.yy"
    74147545    {
    74157546                        distExt( (yyvsp[(2) - (3)].decl) );                                                             // mark all fields in list
     
    74187549    break;
    74197550
    7420   case 402:
    7421 
    7422 /* Line 1806 of yacc.c  */
    7423 #line 1648 "parser.yy"
     7551  case 405:
     7552
     7553/* Line 1806 of yacc.c  */
     7554#line 1656 "parser.yy"
    74247555    {
    74257556                        (yyval.decl) = distAttr( (yyvsp[(1) - (3)].decl), (yyvsp[(2) - (3)].decl) ); }
    74267557    break;
    74277558
    7428   case 403:
    7429 
    7430 /* Line 1806 of yacc.c  */
    7431 #line 1651 "parser.yy"
     7559  case 406:
     7560
     7561/* Line 1806 of yacc.c  */
     7562#line 1659 "parser.yy"
    74327563    {
    74337564                        distExt( (yyvsp[(3) - (4)].decl) );                                                             // mark all fields in list
     
    74367567    break;
    74377568
    7438   case 405:
    7439 
    7440 /* Line 1806 of yacc.c  */
    7441 #line 1660 "parser.yy"
     7569  case 408:
     7570
     7571/* Line 1806 of yacc.c  */
     7572#line 1668 "parser.yy"
    74427573    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    74437574    break;
    74447575
    7445   case 406:
    7446 
    7447 /* Line 1806 of yacc.c  */
    7448 #line 1662 "parser.yy"
     7576  case 409:
     7577
     7578/* Line 1806 of yacc.c  */
     7579#line 1670 "parser.yy"
    74497580    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    74507581    break;
    74517582
    7452   case 407:
    7453 
    7454 /* Line 1806 of yacc.c  */
    7455 #line 1664 "parser.yy"
     7583  case 410:
     7584
     7585/* Line 1806 of yacc.c  */
     7586#line 1672 "parser.yy"
    74567587    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    74577588    break;
    74587589
    7459   case 409:
    7460 
    7461 /* Line 1806 of yacc.c  */
    7462 #line 1670 "parser.yy"
     7590  case 412:
     7591
     7592/* Line 1806 of yacc.c  */
     7593#line 1678 "parser.yy"
    74637594    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(3) - (4)].decl) ) ); }
    74647595    break;
    74657596
    7466   case 410:
    7467 
    7468 /* Line 1806 of yacc.c  */
    7469 #line 1675 "parser.yy"
     7597  case 413:
     7598
     7599/* Line 1806 of yacc.c  */
     7600#line 1683 "parser.yy"
    74707601    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    74717602    break;
    74727603
    7473   case 411:
    7474 
    7475 /* Line 1806 of yacc.c  */
    7476 #line 1677 "parser.yy"
     7604  case 414:
     7605
     7606/* Line 1806 of yacc.c  */
     7607#line 1685 "parser.yy"
    74777608    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    74787609    break;
    74797610
    7480   case 412:
    7481 
    7482 /* Line 1806 of yacc.c  */
    7483 #line 1680 "parser.yy"
     7611  case 415:
     7612
     7613/* Line 1806 of yacc.c  */
     7614#line 1688 "parser.yy"
    74847615    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    74857616    break;
    74867617
    7487   case 413:
    7488 
    7489 /* Line 1806 of yacc.c  */
    7490 #line 1683 "parser.yy"
     7618  case 416:
     7619
     7620/* Line 1806 of yacc.c  */
     7621#line 1691 "parser.yy"
    74917622    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    74927623    break;
    74937624
    7494   case 415:
    7495 
    7496 /* Line 1806 of yacc.c  */
    7497 #line 1689 "parser.yy"
     7625  case 418:
     7626
     7627/* Line 1806 of yacc.c  */
     7628#line 1697 "parser.yy"
    74987629    { (yyval.en) = nullptr; }
    74997630    break;
    75007631
    7501   case 416:
    7502 
    7503 /* Line 1806 of yacc.c  */
    7504 #line 1691 "parser.yy"
     7632  case 419:
     7633
     7634/* Line 1806 of yacc.c  */
     7635#line 1699 "parser.yy"
    75057636    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    75067637    break;
    75077638
    7508   case 417:
    7509 
    7510 /* Line 1806 of yacc.c  */
    7511 #line 1696 "parser.yy"
     7639  case 420:
     7640
     7641/* Line 1806 of yacc.c  */
     7642#line 1704 "parser.yy"
    75127643    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    75137644    break;
    75147645
    7515   case 418:
    7516 
    7517 /* Line 1806 of yacc.c  */
    7518 #line 1701 "parser.yy"
     7646  case 421:
     7647
     7648/* Line 1806 of yacc.c  */
     7649#line 1709 "parser.yy"
    75197650    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(4) - (6)].decl), true )->addQualifiers( (yyvsp[(2) - (6)].decl) ); }
    75207651    break;
    75217652
    7522   case 419:
    7523 
    7524 /* Line 1806 of yacc.c  */
    7525 #line 1703 "parser.yy"
     7653  case 422:
     7654
     7655/* Line 1806 of yacc.c  */
     7656#line 1711 "parser.yy"
    75267657    { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
    75277658    break;
    75287659
    7529   case 420:
    7530 
    7531 /* Line 1806 of yacc.c  */
    7532 #line 1705 "parser.yy"
     7660  case 423:
     7661
     7662/* Line 1806 of yacc.c  */
     7663#line 1713 "parser.yy"
    75337664    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (8)].tok), (yyvsp[(6) - (8)].decl), true )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
    75347665    break;
    75357666
    7536   case 422:
    7537 
    7538 /* Line 1806 of yacc.c  */
    7539 #line 1711 "parser.yy"
     7667  case 425:
     7668
     7669/* Line 1806 of yacc.c  */
     7670#line 1719 "parser.yy"
    75407671    {
    75417672                        typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
     
    75447675    break;
    75457676
    7546   case 423:
    7547 
    7548 /* Line 1806 of yacc.c  */
    7549 #line 1719 "parser.yy"
     7677  case 426:
     7678
     7679/* Line 1806 of yacc.c  */
     7680#line 1727 "parser.yy"
    75507681    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    75517682    break;
    75527683
    7553   case 424:
    7554 
    7555 /* Line 1806 of yacc.c  */
    7556 #line 1721 "parser.yy"
     7684  case 427:
     7685
     7686/* Line 1806 of yacc.c  */
     7687#line 1729 "parser.yy"
    75577688    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    75587689    break;
    75597690
    7560   case 425:
    7561 
    7562 /* Line 1806 of yacc.c  */
    7563 #line 1726 "parser.yy"
     7691  case 428:
     7692
     7693/* Line 1806 of yacc.c  */
     7694#line 1734 "parser.yy"
    75647695    { (yyval.en) = nullptr; }
    75657696    break;
    75667697
    7567   case 426:
    7568 
    7569 /* Line 1806 of yacc.c  */
    7570 #line 1728 "parser.yy"
     7698  case 429:
     7699
     7700/* Line 1806 of yacc.c  */
     7701#line 1736 "parser.yy"
    75717702    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    75727703    break;
    75737704
    7574   case 427:
    7575 
    7576 /* Line 1806 of yacc.c  */
    7577 #line 1735 "parser.yy"
     7705  case 430:
     7706
     7707/* Line 1806 of yacc.c  */
     7708#line 1743 "parser.yy"
    75787709    { (yyval.decl) = nullptr; }
    75797710    break;
    75807711
    7581   case 431:
    7582 
    7583 /* Line 1806 of yacc.c  */
    7584 #line 1743 "parser.yy"
     7712  case 434:
     7713
     7714/* Line 1806 of yacc.c  */
     7715#line 1751 "parser.yy"
    75857716    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    75867717    break;
    75877718
    7588   case 432:
    7589 
    7590 /* Line 1806 of yacc.c  */
    7591 #line 1745 "parser.yy"
     7719  case 435:
     7720
     7721/* Line 1806 of yacc.c  */
     7722#line 1753 "parser.yy"
    75927723    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    75937724    break;
    75947725
    7595   case 433:
    7596 
    7597 /* Line 1806 of yacc.c  */
    7598 #line 1747 "parser.yy"
     7726  case 436:
     7727
     7728/* Line 1806 of yacc.c  */
     7729#line 1755 "parser.yy"
    75997730    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    76007731    break;
    76017732
    7602   case 435:
    7603 
    7604 /* Line 1806 of yacc.c  */
    7605 #line 1755 "parser.yy"
     7733  case 438:
     7734
     7735/* Line 1806 of yacc.c  */
     7736#line 1763 "parser.yy"
    76067737    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7607     break;
    7608 
    7609   case 436:
    7610 
    7611 /* Line 1806 of yacc.c  */
    7612 #line 1757 "parser.yy"
    7613     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7614     break;
    7615 
    7616   case 437:
    7617 
    7618 /* Line 1806 of yacc.c  */
    7619 #line 1759 "parser.yy"
    7620     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    76217738    break;
    76227739
     
    76317748
    76327749/* Line 1806 of yacc.c  */
    7633 #line 1770 "parser.yy"
     7750#line 1767 "parser.yy"
     7751    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7752    break;
     7753
     7754  case 442:
     7755
     7756/* Line 1806 of yacc.c  */
     7757#line 1773 "parser.yy"
     7758    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7759    break;
     7760
     7761  case 443:
     7762
     7763/* Line 1806 of yacc.c  */
     7764#line 1778 "parser.yy"
    76347765    { (yyval.decl) = nullptr; }
    76357766    break;
    76367767
    7637   case 443:
    7638 
    7639 /* Line 1806 of yacc.c  */
    7640 #line 1777 "parser.yy"
     7768  case 446:
     7769
     7770/* Line 1806 of yacc.c  */
     7771#line 1785 "parser.yy"
    76417772    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    76427773    break;
    76437774
    7644   case 446:
    7645 
    7646 /* Line 1806 of yacc.c  */
    7647 #line 1784 "parser.yy"
     7775  case 449:
     7776
     7777/* Line 1806 of yacc.c  */
     7778#line 1792 "parser.yy"
    76487779    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    76497780    break;
    76507781
    7651   case 447:
    7652 
    7653 /* Line 1806 of yacc.c  */
    7654 #line 1786 "parser.yy"
     7782  case 450:
     7783
     7784/* Line 1806 of yacc.c  */
     7785#line 1794 "parser.yy"
    76557786    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    76567787    break;
    76577788
    7658   case 449:
    7659 
    7660 /* Line 1806 of yacc.c  */
    7661 #line 1795 "parser.yy"
     7789  case 452:
     7790
     7791/* Line 1806 of yacc.c  */
     7792#line 1803 "parser.yy"
    76627793    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    76637794    break;
    76647795
    7665   case 450:
    7666 
    7667 /* Line 1806 of yacc.c  */
    7668 #line 1798 "parser.yy"
     7796  case 453:
     7797
     7798/* Line 1806 of yacc.c  */
     7799#line 1806 "parser.yy"
    76697800    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    76707801    break;
    76717802
    7672   case 451:
    7673 
    7674 /* Line 1806 of yacc.c  */
    7675 #line 1800 "parser.yy"
     7803  case 454:
     7804
     7805/* Line 1806 of yacc.c  */
     7806#line 1808 "parser.yy"
    76767807    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    76777808    break;
    76787809
    7679   case 456:
    7680 
    7681 /* Line 1806 of yacc.c  */
    7682 #line 1810 "parser.yy"
     7810  case 459:
     7811
     7812/* Line 1806 of yacc.c  */
     7813#line 1818 "parser.yy"
    76837814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    76847815    break;
    76857816
    7686   case 458:
    7687 
    7688 /* Line 1806 of yacc.c  */
    7689 #line 1817 "parser.yy"
     7817  case 461:
     7818
     7819/* Line 1806 of yacc.c  */
     7820#line 1825 "parser.yy"
    76907821    {
    76917822                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    76947825    break;
    76957826
    7696   case 459:
    7697 
    7698 /* Line 1806 of yacc.c  */
    7699 #line 1822 "parser.yy"
     7827  case 462:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 1830 "parser.yy"
    77007831    {
    77017832                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77047835    break;
    77057836
    7706   case 460:
    7707 
    7708 /* Line 1806 of yacc.c  */
    7709 #line 1830 "parser.yy"
     7837  case 463:
     7838
     7839/* Line 1806 of yacc.c  */
     7840#line 1838 "parser.yy"
    77107841    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].en) ? new InitializerNode( (yyvsp[(2) - (2)].en) ) : nullptr ); }
    77117842    break;
    77127843
    7713   case 461:
    7714 
    7715 /* Line 1806 of yacc.c  */
    7716 #line 1832 "parser.yy"
     7844  case 464:
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 1840 "parser.yy"
    77177848    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); }
    77187849    break;
    77197850
    7720   case 462:
    7721 
    7722 /* Line 1806 of yacc.c  */
    7723 #line 1841 "parser.yy"
     7851  case 465:
     7852
     7853/* Line 1806 of yacc.c  */
     7854#line 1849 "parser.yy"
    77247855    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    77257856    break;
    77267857
    7727   case 463:
    7728 
    7729 /* Line 1806 of yacc.c  */
    7730 #line 1843 "parser.yy"
     7858  case 466:
     7859
     7860/* Line 1806 of yacc.c  */
     7861#line 1851 "parser.yy"
    77317862    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    77327863    break;
    77337864
    7734   case 475:
    7735 
    7736 /* Line 1806 of yacc.c  */
    7737 #line 1868 "parser.yy"
     7865  case 478:
     7866
     7867/* Line 1806 of yacc.c  */
     7868#line 1876 "parser.yy"
    77387869    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    77397870    break;
    77407871
    7741   case 478:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1878 "parser.yy"
     7872  case 481:
     7873
     7874/* Line 1806 of yacc.c  */
     7875#line 1886 "parser.yy"
    77457876    { (yyval.in) = nullptr; }
    77467877    break;
    77477878
    7748   case 479:
    7749 
    7750 /* Line 1806 of yacc.c  */
    7751 #line 1880 "parser.yy"
     7879  case 482:
     7880
     7881/* Line 1806 of yacc.c  */
     7882#line 1888 "parser.yy"
    77527883    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    77537884    break;
    77547885
    7755   case 480:
    7756 
    7757 /* Line 1806 of yacc.c  */
    7758 #line 1882 "parser.yy"
     7886  case 483:
     7887
     7888/* Line 1806 of yacc.c  */
     7889#line 1890 "parser.yy"
    77597890    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    77607891    break;
    77617892
    7762   case 481:
    7763 
    7764 /* Line 1806 of yacc.c  */
    7765 #line 1886 "parser.yy"
     7893  case 484:
     7894
     7895/* Line 1806 of yacc.c  */
     7896#line 1894 "parser.yy"
    77667897    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    77677898    break;
    77687899
    7769   case 482:
    7770 
    7771 /* Line 1806 of yacc.c  */
    7772 #line 1887 "parser.yy"
     7900  case 485:
     7901
     7902/* Line 1806 of yacc.c  */
     7903#line 1895 "parser.yy"
    77737904    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    77747905    break;
    77757906
    7776   case 483:
    7777 
    7778 /* Line 1806 of yacc.c  */
    7779 #line 1892 "parser.yy"
     7907  case 486:
     7908
     7909/* Line 1806 of yacc.c  */
     7910#line 1900 "parser.yy"
    77807911    { (yyval.in) = nullptr; }
    77817912    break;
    77827913
    7783   case 485:
    7784 
    7785 /* Line 1806 of yacc.c  */
    7786 #line 1894 "parser.yy"
     7914  case 488:
     7915
     7916/* Line 1806 of yacc.c  */
     7917#line 1902 "parser.yy"
    77877918    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    77887919    break;
    77897920
    7790   case 486:
    7791 
    7792 /* Line 1806 of yacc.c  */
    7793 #line 1895 "parser.yy"
     7921  case 489:
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 1903 "parser.yy"
    77947925    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    77957926    break;
    77967927
    7797   case 487:
    7798 
    7799 /* Line 1806 of yacc.c  */
    7800 #line 1897 "parser.yy"
     7928  case 490:
     7929
     7930/* Line 1806 of yacc.c  */
     7931#line 1905 "parser.yy"
    78017932    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    78027933    break;
    78037934
    7804   case 489:
    7805 
    7806 /* Line 1806 of yacc.c  */
    7807 #line 1913 "parser.yy"
     7935  case 492:
     7936
     7937/* Line 1806 of yacc.c  */
     7938#line 1921 "parser.yy"
    78087939    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    78097940    break;
    78107941
    7811   case 491:
    7812 
    7813 /* Line 1806 of yacc.c  */
    7814 #line 1919 "parser.yy"
     7942  case 494:
     7943
     7944/* Line 1806 of yacc.c  */
     7945#line 1927 "parser.yy"
    78157946    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    78167947    break;
    78177948
    7818   case 492:
    7819 
    7820 /* Line 1806 of yacc.c  */
    7821 #line 1925 "parser.yy"
     7949  case 495:
     7950
     7951/* Line 1806 of yacc.c  */
     7952#line 1933 "parser.yy"
    78227953    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    78237954    break;
    78247955
    7825   case 493:
    7826 
    7827 /* Line 1806 of yacc.c  */
    7828 #line 1928 "parser.yy"
     7956  case 496:
     7957
     7958/* Line 1806 of yacc.c  */
     7959#line 1936 "parser.yy"
    78297960    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    78307961    break;
    78317962
    7832   case 494:
    7833 
    7834 /* Line 1806 of yacc.c  */
    7835 #line 1930 "parser.yy"
     7963  case 497:
     7964
     7965/* Line 1806 of yacc.c  */
     7966#line 1938 "parser.yy"
    78367967    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    78377968    break;
    78387969
    7839   case 495:
    7840 
    7841 /* Line 1806 of yacc.c  */
    7842 #line 1932 "parser.yy"
     7970  case 498:
     7971
     7972/* Line 1806 of yacc.c  */
     7973#line 1940 "parser.yy"
    78437974    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    78447975    break;
    78457976
    7846   case 496:
    7847 
    7848 /* Line 1806 of yacc.c  */
    7849 #line 1934 "parser.yy"
     7977  case 499:
     7978
     7979/* Line 1806 of yacc.c  */
     7980#line 1942 "parser.yy"
    78507981    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    78517982    break;
    78527983
    7853   case 498:
    7854 
    7855 /* Line 1806 of yacc.c  */
    7856 #line 1958 "parser.yy"
     7984  case 501:
     7985
     7986/* Line 1806 of yacc.c  */
     7987#line 1966 "parser.yy"
    78577988    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78587989    break;
    78597990
    7860   case 499:
    7861 
    7862 /* Line 1806 of yacc.c  */
    7863 #line 1960 "parser.yy"
     7991  case 502:
     7992
     7993/* Line 1806 of yacc.c  */
     7994#line 1968 "parser.yy"
    78647995    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78657996    break;
    78667997
    7867   case 500:
    7868 
    7869 /* Line 1806 of yacc.c  */
    7870 #line 1962 "parser.yy"
     7998  case 503:
     7999
     8000/* Line 1806 of yacc.c  */
     8001#line 1970 "parser.yy"
    78718002    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    78728003    break;
    78738004
    7874   case 502:
    7875 
    7876 /* Line 1806 of yacc.c  */
    7877 #line 1968 "parser.yy"
     8005  case 505:
     8006
     8007/* Line 1806 of yacc.c  */
     8008#line 1976 "parser.yy"
    78788009    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    78798010    break;
    78808011
    7881   case 503:
    7882 
    7883 /* Line 1806 of yacc.c  */
    7884 #line 1970 "parser.yy"
     8012  case 506:
     8013
     8014/* Line 1806 of yacc.c  */
     8015#line 1978 "parser.yy"
    78858016    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    78868017    break;
    78878018
    7888   case 504:
    7889 
    7890 /* Line 1806 of yacc.c  */
    7891 #line 1975 "parser.yy"
     8019  case 507:
     8020
     8021/* Line 1806 of yacc.c  */
     8022#line 1983 "parser.yy"
    78928023    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    78938024    break;
    78948025
    7895   case 506:
    7896 
    7897 /* Line 1806 of yacc.c  */
    7898 #line 1981 "parser.yy"
     8026  case 509:
     8027
     8028/* Line 1806 of yacc.c  */
     8029#line 1989 "parser.yy"
    78998030    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    79008031    break;
    79018032
    7902   case 507:
    7903 
    7904 /* Line 1806 of yacc.c  */
    7905 #line 1986 "parser.yy"
     8033  case 510:
     8034
     8035/* Line 1806 of yacc.c  */
     8036#line 1994 "parser.yy"
    79068037    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    79078038    break;
    79088039
    7909   case 508:
    7910 
    7911 /* Line 1806 of yacc.c  */
    7912 #line 1988 "parser.yy"
     8040  case 511:
     8041
     8042/* Line 1806 of yacc.c  */
     8043#line 1996 "parser.yy"
    79138044    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    79148045    break;
    79158046
    7916   case 510:
    7917 
    7918 /* Line 1806 of yacc.c  */
    7919 #line 1994 "parser.yy"
     8047  case 513:
     8048
     8049/* Line 1806 of yacc.c  */
     8050#line 2002 "parser.yy"
    79208051    { (yyval.tclass) = DeclarationNode::Otype; }
    79218052    break;
    79228053
    7923   case 511:
    7924 
    7925 /* Line 1806 of yacc.c  */
    7926 #line 1996 "parser.yy"
     8054  case 514:
     8055
     8056/* Line 1806 of yacc.c  */
     8057#line 2004 "parser.yy"
    79278058    { (yyval.tclass) = DeclarationNode::Dtype; }
    79288059    break;
    79298060
    7930   case 512:
    7931 
    7932 /* Line 1806 of yacc.c  */
    7933 #line 1998 "parser.yy"
     8061  case 515:
     8062
     8063/* Line 1806 of yacc.c  */
     8064#line 2006 "parser.yy"
    79348065    { (yyval.tclass) = DeclarationNode::Ftype; }
    79358066    break;
    79368067
    7937   case 513:
    7938 
    7939 /* Line 1806 of yacc.c  */
    7940 #line 2000 "parser.yy"
     8068  case 516:
     8069
     8070/* Line 1806 of yacc.c  */
     8071#line 2008 "parser.yy"
    79418072    { (yyval.tclass) = DeclarationNode::Ttype; }
    79428073    break;
    79438074
    7944   case 514:
    7945 
    7946 /* Line 1806 of yacc.c  */
    7947 #line 2005 "parser.yy"
     8075  case 517:
     8076
     8077/* Line 1806 of yacc.c  */
     8078#line 2013 "parser.yy"
    79488079    { (yyval.decl) = nullptr; }
    79498080    break;
    79508081
    7951   case 515:
    7952 
    7953 /* Line 1806 of yacc.c  */
    7954 #line 2007 "parser.yy"
     8082  case 518:
     8083
     8084/* Line 1806 of yacc.c  */
     8085#line 2015 "parser.yy"
    79558086    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    79568087    break;
    79578088
    7958   case 516:
    7959 
    7960 /* Line 1806 of yacc.c  */
    7961 #line 2012 "parser.yy"
     8089  case 519:
     8090
     8091/* Line 1806 of yacc.c  */
     8092#line 2020 "parser.yy"
    79628093    {
    79638094                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    79668097    break;
    79678098
    7968   case 517:
    7969 
    7970 /* Line 1806 of yacc.c  */
    7971 #line 2017 "parser.yy"
     8099  case 520:
     8100
     8101/* Line 1806 of yacc.c  */
     8102#line 2025 "parser.yy"
    79728103    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    79738104    break;
    79748105
    7975   case 518:
    7976 
    7977 /* Line 1806 of yacc.c  */
    7978 #line 2019 "parser.yy"
     8106  case 521:
     8107
     8108/* Line 1806 of yacc.c  */
     8109#line 2027 "parser.yy"
    79798110    { (yyval.decl) = nullptr; }
    79808111    break;
    79818112
    7982   case 519:
    7983 
    7984 /* Line 1806 of yacc.c  */
    7985 #line 2024 "parser.yy"
     8113  case 522:
     8114
     8115/* Line 1806 of yacc.c  */
     8116#line 2032 "parser.yy"
    79868117    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    79878118    break;
    79888119
    7989   case 521:
    7990 
    7991 /* Line 1806 of yacc.c  */
    7992 #line 2027 "parser.yy"
     8120  case 524:
     8121
     8122/* Line 1806 of yacc.c  */
     8123#line 2035 "parser.yy"
    79938124    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    79948125    break;
    79958126
    7996   case 522:
    7997 
    7998 /* Line 1806 of yacc.c  */
    7999 #line 2029 "parser.yy"
     8127  case 525:
     8128
     8129/* Line 1806 of yacc.c  */
     8130#line 2037 "parser.yy"
    80008131    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    80018132    break;
    80028133
    8003   case 523:
    8004 
    8005 /* Line 1806 of yacc.c  */
    8006 #line 2034 "parser.yy"
     8134  case 526:
     8135
     8136/* Line 1806 of yacc.c  */
     8137#line 2042 "parser.yy"
    80078138    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    80088139    break;
    80098140
    8010   case 524:
    8011 
    8012 /* Line 1806 of yacc.c  */
    8013 #line 2036 "parser.yy"
     8141  case 527:
     8142
     8143/* Line 1806 of yacc.c  */
     8144#line 2044 "parser.yy"
    80148145    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    80158146    break;
    80168147
    8017   case 525:
    8018 
    8019 /* Line 1806 of yacc.c  */
    8020 #line 2038 "parser.yy"
     8148  case 528:
     8149
     8150/* Line 1806 of yacc.c  */
     8151#line 2046 "parser.yy"
    80218152    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copySpecifiers( (yyvsp[(1) - (3)].decl) ) ); }
    80228153    break;
    80238154
    8024   case 526:
    8025 
    8026 /* Line 1806 of yacc.c  */
    8027 #line 2043 "parser.yy"
     8155  case 529:
     8156
     8157/* Line 1806 of yacc.c  */
     8158#line 2051 "parser.yy"
    80288159    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    80298160    break;
    80308161
    8031   case 527:
    8032 
    8033 /* Line 1806 of yacc.c  */
    8034 #line 2045 "parser.yy"
     8162  case 530:
     8163
     8164/* Line 1806 of yacc.c  */
     8165#line 2053 "parser.yy"
    80358166    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    80368167    break;
    80378168
    8038   case 528:
    8039 
    8040 /* Line 1806 of yacc.c  */
    8041 #line 2050 "parser.yy"
     8169  case 531:
     8170
     8171/* Line 1806 of yacc.c  */
     8172#line 2058 "parser.yy"
    80428173    {
    80438174                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    80468177    break;
    80478178
    8048   case 529:
    8049 
    8050 /* Line 1806 of yacc.c  */
    8051 #line 2055 "parser.yy"
     8179  case 532:
     8180
     8181/* Line 1806 of yacc.c  */
     8182#line 2063 "parser.yy"
    80528183    {
    80538184                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    80568187    break;
    80578188
    8058   case 530:
    8059 
    8060 /* Line 1806 of yacc.c  */
    8061 #line 2063 "parser.yy"
     8189  case 533:
     8190
     8191/* Line 1806 of yacc.c  */
     8192#line 2071 "parser.yy"
    80628193    {
    80638194                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    80668197    break;
    80678198
    8068   case 531:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2068 "parser.yy"
     8199  case 534:
     8200
     8201/* Line 1806 of yacc.c  */
     8202#line 2076 "parser.yy"
    80728203    {
    80738204                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    80768207    break;
    80778208
    8078   case 532:
    8079 
    8080 /* Line 1806 of yacc.c  */
    8081 #line 2073 "parser.yy"
     8209  case 535:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2081 "parser.yy"
    80828213    {
    80838214                        typedefTable.leaveTrait();
     
    80878218    break;
    80888219
    8089   case 534:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2083 "parser.yy"
     8220  case 537:
     8221
     8222/* Line 1806 of yacc.c  */
     8223#line 2091 "parser.yy"
    80938224    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    80948225    break;
    80958226
    8096   case 537:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2093 "parser.yy"
     8227  case 540:
     8228
     8229/* Line 1806 of yacc.c  */
     8230#line 2101 "parser.yy"
    81008231    {
    81018232                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    81048235    break;
    81058236
    8106   case 538:
    8107 
    8108 /* Line 1806 of yacc.c  */
    8109 #line 2098 "parser.yy"
     8237  case 541:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2106 "parser.yy"
    81108241    {
    81118242                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    81148245    break;
    81158246
    8116   case 539:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2103 "parser.yy"
     8247  case 542:
     8248
     8249/* Line 1806 of yacc.c  */
     8250#line 2111 "parser.yy"
    81208251    {
    81218252                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    81248255    break;
    81258256
    8126   case 540:
    8127 
    8128 /* Line 1806 of yacc.c  */
    8129 #line 2111 "parser.yy"
     8257  case 543:
     8258
     8259/* Line 1806 of yacc.c  */
     8260#line 2119 "parser.yy"
    81308261    {
    81318262                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    81348265    break;
    81358266
    8136   case 541:
    8137 
    8138 /* Line 1806 of yacc.c  */
    8139 #line 2116 "parser.yy"
     8267  case 544:
     8268
     8269/* Line 1806 of yacc.c  */
     8270#line 2124 "parser.yy"
    81408271    {
    81418272                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    81448275    break;
    81458276
    8146   case 542:
    8147 
    8148 /* Line 1806 of yacc.c  */
    8149 #line 2126 "parser.yy"
     8277  case 545:
     8278
     8279/* Line 1806 of yacc.c  */
     8280#line 2134 "parser.yy"
    81508281    {}
    81518282    break;
    81528283
    8153   case 543:
    8154 
    8155 /* Line 1806 of yacc.c  */
    8156 #line 2128 "parser.yy"
     8284  case 546:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2136 "parser.yy"
    81578288    { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);       }
    81588289    break;
    81598290
    8160   case 545:
    8161 
    8162 /* Line 1806 of yacc.c  */
    8163 #line 2134 "parser.yy"
     8291  case 548:
     8292
     8293/* Line 1806 of yacc.c  */
     8294#line 2142 "parser.yy"
    81648295    { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    81658296    break;
    81668297
    8167   case 546:
    8168 
    8169 /* Line 1806 of yacc.c  */
    8170 #line 2139 "parser.yy"
     8298  case 549:
     8299
     8300/* Line 1806 of yacc.c  */
     8301#line 2147 "parser.yy"
    81718302    { (yyval.decl) = nullptr; }
    81728303    break;
    81738304
    8174   case 550:
    8175 
    8176 /* Line 1806 of yacc.c  */
    8177 #line 2147 "parser.yy"
     8305  case 553:
     8306
     8307/* Line 1806 of yacc.c  */
     8308#line 2155 "parser.yy"
    81788309    {
    81798310                        (yyval.decl) = DeclarationNode::newAsmStmt( new StatementNode( build_asmstmt( false, (yyvsp[(3) - (5)].constant), 0 ) ) );
     
    81818312    break;
    81828313
    8183   case 551:
    8184 
    8185 /* Line 1806 of yacc.c  */
    8186 #line 2151 "parser.yy"
     8314  case 554:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2159 "parser.yy"
    81878318    {
    81888319                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    81918322    break;
    81928323
    8193   case 552:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2156 "parser.yy"
     8324  case 555:
     8325
     8326/* Line 1806 of yacc.c  */
     8327#line 2164 "parser.yy"
    81978328    {
    81988329                        linkage = linkageStack.top();
     
    82028333    break;
    82038334
    8204   case 553:
    8205 
    8206 /* Line 1806 of yacc.c  */
    8207 #line 2162 "parser.yy"
     8335  case 556:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2170 "parser.yy"
    82088339    {
    82098340                        distExt( (yyvsp[(2) - (2)].decl) );                                                             // mark all fields in list
     
    82128343    break;
    82138344
    8214   case 555:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2176 "parser.yy"
     8345  case 558:
     8346
     8347/* Line 1806 of yacc.c  */
     8348#line 2184 "parser.yy"
    82188349    {
    82198350                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82238354    break;
    82248355
    8225   case 556:
    8226 
    8227 /* Line 1806 of yacc.c  */
    8228 #line 2182 "parser.yy"
     8356  case 559:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2190 "parser.yy"
    82298360    {
    82308361                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82348365    break;
    82358366
    8236   case 557:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2191 "parser.yy"
     8367  case 560:
     8368
     8369/* Line 1806 of yacc.c  */
     8370#line 2199 "parser.yy"
    82408371    {
    82418372                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82458376    break;
    82468377
    8247   case 558:
    8248 
    8249 /* Line 1806 of yacc.c  */
    8250 #line 2197 "parser.yy"
     8378  case 561:
     8379
     8380/* Line 1806 of yacc.c  */
     8381#line 2205 "parser.yy"
    82518382    {
    82528383                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82568387    break;
    82578388
    8258   case 559:
    8259 
    8260 /* Line 1806 of yacc.c  */
    8261 #line 2203 "parser.yy"
     8389  case 562:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2211 "parser.yy"
    82628393    {
    82638394                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82678398    break;
    82688399
    8269   case 560:
    8270 
    8271 /* Line 1806 of yacc.c  */
    8272 #line 2209 "parser.yy"
     8400  case 563:
     8401
     8402/* Line 1806 of yacc.c  */
     8403#line 2217 "parser.yy"
    82738404    {
    82748405                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82788409    break;
    82798410
    8280   case 561:
    8281 
    8282 /* Line 1806 of yacc.c  */
    8283 #line 2215 "parser.yy"
     8411  case 564:
     8412
     8413/* Line 1806 of yacc.c  */
     8414#line 2223 "parser.yy"
    82848415    {
    82858416                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82898420    break;
    82908421
    8291   case 562:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2223 "parser.yy"
     8422  case 565:
     8423
     8424/* Line 1806 of yacc.c  */
     8425#line 2231 "parser.yy"
    82958426    {
    82968427                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    83008431    break;
    83018432
    8302   case 563:
    8303 
    8304 /* Line 1806 of yacc.c  */
    8305 #line 2229 "parser.yy"
    8306     {
    8307                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    8308                         typedefTable.leaveScope();
    8309                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    8310                 }
    8311     break;
    8312 
    8313   case 564:
     8433  case 566:
    83148434
    83158435/* Line 1806 of yacc.c  */
     
    83228442    break;
    83238443
    8324   case 565:
    8325 
    8326 /* Line 1806 of yacc.c  */
    8327 #line 2243 "parser.yy"
     8444  case 567:
     8445
     8446/* Line 1806 of yacc.c  */
     8447#line 2245 "parser.yy"
     8448    {
     8449                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     8450                        typedefTable.leaveScope();
     8451                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     8452                }
     8453    break;
     8454
     8455  case 568:
     8456
     8457/* Line 1806 of yacc.c  */
     8458#line 2251 "parser.yy"
    83288459    {
    83298460                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    83338464    break;
    83348465
    8335   case 569:
    8336 
    8337 /* Line 1806 of yacc.c  */
    8338 #line 2258 "parser.yy"
     8466  case 572:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2266 "parser.yy"
    83398470    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    83408471    break;
    83418472
    8342   case 570:
    8343 
    8344 /* Line 1806 of yacc.c  */
    8345 #line 2263 "parser.yy"
     8473  case 573:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2271 "parser.yy"
    83468477    { (yyval.decl) = nullptr; }
    83478478    break;
    83488479
    8349   case 571:
    8350 
    8351 /* Line 1806 of yacc.c  */
    8352 #line 2265 "parser.yy"
     8480  case 574:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2273 "parser.yy"
    83538484    {
    83548485                        DeclarationNode * name = new DeclarationNode();
     
    83588489    break;
    83598490
    8360   case 572:
    8361 
    8362 /* Line 1806 of yacc.c  */
    8363 #line 2274 "parser.yy"
     8491  case 575:
     8492
     8493/* Line 1806 of yacc.c  */
     8494#line 2282 "parser.yy"
    83648495    { (yyval.decl) = nullptr; }
    83658496    break;
    83668497
    8367   case 575:
    8368 
    8369 /* Line 1806 of yacc.c  */
    8370 #line 2281 "parser.yy"
     8498  case 578:
     8499
     8500/* Line 1806 of yacc.c  */
     8501#line 2289 "parser.yy"
    83718502    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    83728503    break;
    83738504
    8374   case 576:
    8375 
    8376 /* Line 1806 of yacc.c  */
    8377 #line 2286 "parser.yy"
     8505  case 579:
     8506
     8507/* Line 1806 of yacc.c  */
     8508#line 2294 "parser.yy"
    83788509    { (yyval.decl) = (yyvsp[(4) - (6)].decl); }
    83798510    break;
    83808511
    8381   case 578:
    8382 
    8383 /* Line 1806 of yacc.c  */
    8384 #line 2292 "parser.yy"
     8512  case 581:
     8513
     8514/* Line 1806 of yacc.c  */
     8515#line 2300 "parser.yy"
    83858516    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    83868517    break;
    83878518
    8388   case 579:
    8389 
    8390 /* Line 1806 of yacc.c  */
    8391 #line 2297 "parser.yy"
     8519  case 582:
     8520
     8521/* Line 1806 of yacc.c  */
     8522#line 2305 "parser.yy"
    83928523    { (yyval.decl) = nullptr; }
    83938524    break;
    83948525
    8395   case 580:
    8396 
    8397 /* Line 1806 of yacc.c  */
    8398 #line 2299 "parser.yy"
     8526  case 583:
     8527
     8528/* Line 1806 of yacc.c  */
     8529#line 2307 "parser.yy"
    83998530    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); }
    84008531    break;
    84018532
    8402   case 581:
    8403 
    8404 /* Line 1806 of yacc.c  */
    8405 #line 2301 "parser.yy"
     8533  case 584:
     8534
     8535/* Line 1806 of yacc.c  */
     8536#line 2309 "parser.yy"
    84068537    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    84078538    break;
    84088539
    8409   case 585:
    8410 
    8411 /* Line 1806 of yacc.c  */
    8412 #line 2309 "parser.yy"
     8540  case 588:
     8541
     8542/* Line 1806 of yacc.c  */
     8543#line 2317 "parser.yy"
    84138544    { (yyval.tok) = Token{ new string( "__const__" ) }; }
    84148545    break;
    84158546
    8416   case 586:
    8417 
    8418 /* Line 1806 of yacc.c  */
    8419 #line 2344 "parser.yy"
     8547  case 589:
     8548
     8549/* Line 1806 of yacc.c  */
     8550#line 2352 "parser.yy"
    84208551    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84218552    break;
    84228553
    8423   case 588:
    8424 
    8425 /* Line 1806 of yacc.c  */
    8426 #line 2347 "parser.yy"
     8554  case 591:
     8555
     8556/* Line 1806 of yacc.c  */
     8557#line 2355 "parser.yy"
    84278558    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84288559    break;
    84298560
    8430   case 589:
    8431 
    8432 /* Line 1806 of yacc.c  */
    8433 #line 2349 "parser.yy"
     8561  case 592:
     8562
     8563/* Line 1806 of yacc.c  */
     8564#line 2357 "parser.yy"
    84348565    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84358566    break;
    84368567
    8437   case 590:
    8438 
    8439 /* Line 1806 of yacc.c  */
    8440 #line 2354 "parser.yy"
     8568  case 593:
     8569
     8570/* Line 1806 of yacc.c  */
     8571#line 2362 "parser.yy"
    84418572    {
    84428573                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84458576    break;
    84468577
    8447   case 591:
    8448 
    8449 /* Line 1806 of yacc.c  */
    8450 #line 2359 "parser.yy"
     8578  case 594:
     8579
     8580/* Line 1806 of yacc.c  */
     8581#line 2367 "parser.yy"
    84518582    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84528583    break;
    84538584
    8454   case 592:
    8455 
    8456 /* Line 1806 of yacc.c  */
    8457 #line 2364 "parser.yy"
     8585  case 595:
     8586
     8587/* Line 1806 of yacc.c  */
     8588#line 2372 "parser.yy"
    84588589    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84598590    break;
    84608591
    8461   case 593:
    8462 
    8463 /* Line 1806 of yacc.c  */
    8464 #line 2366 "parser.yy"
     8592  case 596:
     8593
     8594/* Line 1806 of yacc.c  */
     8595#line 2374 "parser.yy"
    84658596    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84668597    break;
    84678598
    8468   case 594:
    8469 
    8470 /* Line 1806 of yacc.c  */
    8471 #line 2368 "parser.yy"
     8599  case 597:
     8600
     8601/* Line 1806 of yacc.c  */
     8602#line 2376 "parser.yy"
    84728603    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    84738604    break;
    84748605
    8475   case 595:
    8476 
    8477 /* Line 1806 of yacc.c  */
    8478 #line 2373 "parser.yy"
     8606  case 598:
     8607
     8608/* Line 1806 of yacc.c  */
     8609#line 2381 "parser.yy"
    84798610    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84808611    break;
    84818612
    8482   case 596:
    8483 
    8484 /* Line 1806 of yacc.c  */
    8485 #line 2375 "parser.yy"
     8613  case 599:
     8614
     8615/* Line 1806 of yacc.c  */
     8616#line 2383 "parser.yy"
    84868617    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84878618    break;
    84888619
    8489   case 597:
    8490 
    8491 /* Line 1806 of yacc.c  */
    8492 #line 2377 "parser.yy"
     8620  case 600:
     8621
     8622/* Line 1806 of yacc.c  */
     8623#line 2385 "parser.yy"
    84938624    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84948625    break;
    84958626
    8496   case 598:
    8497 
    8498 /* Line 1806 of yacc.c  */
    8499 #line 2379 "parser.yy"
     8627  case 601:
     8628
     8629/* Line 1806 of yacc.c  */
     8630#line 2387 "parser.yy"
    85008631    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85018632    break;
    85028633
    8503   case 599:
    8504 
    8505 /* Line 1806 of yacc.c  */
    8506 #line 2384 "parser.yy"
     8634  case 602:
     8635
     8636/* Line 1806 of yacc.c  */
     8637#line 2392 "parser.yy"
    85078638    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85088639    break;
    85098640
    8510   case 600:
    8511 
    8512 /* Line 1806 of yacc.c  */
    8513 #line 2386 "parser.yy"
     8641  case 603:
     8642
     8643/* Line 1806 of yacc.c  */
     8644#line 2394 "parser.yy"
    85148645    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85158646    break;
    85168647
    8517   case 601:
    8518 
    8519 /* Line 1806 of yacc.c  */
    8520 #line 2395 "parser.yy"
     8648  case 604:
     8649
     8650/* Line 1806 of yacc.c  */
     8651#line 2403 "parser.yy"
    85218652    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85228653    break;
    85238654
    8524   case 603:
    8525 
    8526 /* Line 1806 of yacc.c  */
    8527 #line 2398 "parser.yy"
     8655  case 606:
     8656
     8657/* Line 1806 of yacc.c  */
     8658#line 2406 "parser.yy"
    85288659    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85298660    break;
    85308661
    8531   case 604:
    8532 
    8533 /* Line 1806 of yacc.c  */
    8534 #line 2403 "parser.yy"
     8662  case 607:
     8663
     8664/* Line 1806 of yacc.c  */
     8665#line 2411 "parser.yy"
    85358666    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85368667    break;
    85378668
    8538   case 605:
    8539 
    8540 /* Line 1806 of yacc.c  */
    8541 #line 2405 "parser.yy"
     8669  case 608:
     8670
     8671/* Line 1806 of yacc.c  */
     8672#line 2413 "parser.yy"
    85428673    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85438674    break;
    85448675
    8545   case 606:
    8546 
    8547 /* Line 1806 of yacc.c  */
    8548 #line 2407 "parser.yy"
     8676  case 609:
     8677
     8678/* Line 1806 of yacc.c  */
     8679#line 2415 "parser.yy"
    85498680    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85508681    break;
    85518682
    8552   case 607:
    8553 
    8554 /* Line 1806 of yacc.c  */
    8555 #line 2412 "parser.yy"
     8683  case 610:
     8684
     8685/* Line 1806 of yacc.c  */
     8686#line 2420 "parser.yy"
    85568687    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85578688    break;
    85588689
    8559   case 608:
    8560 
    8561 /* Line 1806 of yacc.c  */
    8562 #line 2414 "parser.yy"
     8690  case 611:
     8691
     8692/* Line 1806 of yacc.c  */
     8693#line 2422 "parser.yy"
    85638694    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85648695    break;
    85658696
    8566   case 609:
    8567 
    8568 /* Line 1806 of yacc.c  */
    8569 #line 2416 "parser.yy"
     8697  case 612:
     8698
     8699/* Line 1806 of yacc.c  */
     8700#line 2424 "parser.yy"
    85708701    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85718702    break;
    85728703
    8573   case 610:
    8574 
    8575 /* Line 1806 of yacc.c  */
    8576 #line 2421 "parser.yy"
     8704  case 613:
     8705
     8706/* Line 1806 of yacc.c  */
     8707#line 2429 "parser.yy"
    85778708    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85788709    break;
    85798710
    8580   case 611:
    8581 
    8582 /* Line 1806 of yacc.c  */
    8583 #line 2423 "parser.yy"
     8711  case 614:
     8712
     8713/* Line 1806 of yacc.c  */
     8714#line 2431 "parser.yy"
    85848715    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85858716    break;
    85868717
    8587   case 612:
    8588 
    8589 /* Line 1806 of yacc.c  */
    8590 #line 2425 "parser.yy"
     8718  case 615:
     8719
     8720/* Line 1806 of yacc.c  */
     8721#line 2433 "parser.yy"
    85918722    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85928723    break;
    85938724
    8594   case 616:
    8595 
    8596 /* Line 1806 of yacc.c  */
    8597 #line 2443 "parser.yy"
     8725  case 619:
     8726
     8727/* Line 1806 of yacc.c  */
     8728#line 2451 "parser.yy"
    85988729    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    85998730    break;
    86008731
    8601   case 617:
    8602 
    8603 /* Line 1806 of yacc.c  */
    8604 #line 2445 "parser.yy"
     8732  case 620:
     8733
     8734/* Line 1806 of yacc.c  */
     8735#line 2453 "parser.yy"
    86058736    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86068737    break;
    86078738
    8608   case 618:
    8609 
    8610 /* Line 1806 of yacc.c  */
    8611 #line 2447 "parser.yy"
     8739  case 621:
     8740
     8741/* Line 1806 of yacc.c  */
     8742#line 2455 "parser.yy"
    86128743    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86138744    break;
    86148745
    8615   case 619:
    8616 
    8617 /* Line 1806 of yacc.c  */
    8618 #line 2452 "parser.yy"
     8746  case 622:
     8747
     8748/* Line 1806 of yacc.c  */
     8749#line 2460 "parser.yy"
    86198750    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86208751    break;
    86218752
    8622   case 620:
    8623 
    8624 /* Line 1806 of yacc.c  */
    8625 #line 2454 "parser.yy"
     8753  case 623:
     8754
     8755/* Line 1806 of yacc.c  */
     8756#line 2462 "parser.yy"
    86268757    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86278758    break;
    86288759
    8629   case 621:
    8630 
    8631 /* Line 1806 of yacc.c  */
    8632 #line 2456 "parser.yy"
     8760  case 624:
     8761
     8762/* Line 1806 of yacc.c  */
     8763#line 2464 "parser.yy"
    86338764    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86348765    break;
    86358766
    8636   case 622:
    8637 
    8638 /* Line 1806 of yacc.c  */
    8639 #line 2461 "parser.yy"
     8767  case 625:
     8768
     8769/* Line 1806 of yacc.c  */
     8770#line 2469 "parser.yy"
    86408771    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86418772    break;
    86428773
    8643   case 623:
    8644 
    8645 /* Line 1806 of yacc.c  */
    8646 #line 2463 "parser.yy"
     8774  case 626:
     8775
     8776/* Line 1806 of yacc.c  */
     8777#line 2471 "parser.yy"
    86478778    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86488779    break;
    86498780
    8650   case 624:
    8651 
    8652 /* Line 1806 of yacc.c  */
    8653 #line 2465 "parser.yy"
     8781  case 627:
     8782
     8783/* Line 1806 of yacc.c  */
     8784#line 2473 "parser.yy"
    86548785    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86558786    break;
    86568787
    8657   case 625:
    8658 
    8659 /* Line 1806 of yacc.c  */
    8660 #line 2480 "parser.yy"
     8788  case 628:
     8789
     8790/* Line 1806 of yacc.c  */
     8791#line 2488 "parser.yy"
    86618792    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86628793    break;
    86638794
    8664   case 627:
    8665 
    8666 /* Line 1806 of yacc.c  */
    8667 #line 2483 "parser.yy"
     8795  case 630:
     8796
     8797/* Line 1806 of yacc.c  */
     8798#line 2491 "parser.yy"
    86688799    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86698800    break;
    86708801
    8671   case 628:
    8672 
    8673 /* Line 1806 of yacc.c  */
    8674 #line 2485 "parser.yy"
     8802  case 631:
     8803
     8804/* Line 1806 of yacc.c  */
     8805#line 2493 "parser.yy"
    86758806    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86768807    break;
    86778808
    8678   case 630:
    8679 
    8680 /* Line 1806 of yacc.c  */
    8681 #line 2491 "parser.yy"
     8809  case 633:
     8810
     8811/* Line 1806 of yacc.c  */
     8812#line 2499 "parser.yy"
    86828813    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86838814    break;
    86848815
    8685   case 631:
    8686 
    8687 /* Line 1806 of yacc.c  */
    8688 #line 2496 "parser.yy"
     8816  case 634:
     8817
     8818/* Line 1806 of yacc.c  */
     8819#line 2504 "parser.yy"
    86898820    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86908821    break;
    86918822
    8692   case 632:
    8693 
    8694 /* Line 1806 of yacc.c  */
    8695 #line 2498 "parser.yy"
     8823  case 635:
     8824
     8825/* Line 1806 of yacc.c  */
     8826#line 2506 "parser.yy"
    86968827    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86978828    break;
    86988829
    8699   case 633:
    8700 
    8701 /* Line 1806 of yacc.c  */
    8702 #line 2500 "parser.yy"
     8830  case 636:
     8831
     8832/* Line 1806 of yacc.c  */
     8833#line 2508 "parser.yy"
    87038834    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    87048835    break;
    87058836
    8706   case 634:
    8707 
    8708 /* Line 1806 of yacc.c  */
    8709 #line 2505 "parser.yy"
     8837  case 637:
     8838
     8839/* Line 1806 of yacc.c  */
     8840#line 2513 "parser.yy"
    87108841    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87118842    break;
    87128843
    8713   case 635:
    8714 
    8715 /* Line 1806 of yacc.c  */
    8716 #line 2507 "parser.yy"
     8844  case 638:
     8845
     8846/* Line 1806 of yacc.c  */
     8847#line 2515 "parser.yy"
    87178848    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87188849    break;
    87198850
    8720   case 636:
    8721 
    8722 /* Line 1806 of yacc.c  */
    8723 #line 2509 "parser.yy"
     8851  case 639:
     8852
     8853/* Line 1806 of yacc.c  */
     8854#line 2517 "parser.yy"
    87248855    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87258856    break;
    87268857
    8727   case 637:
    8728 
    8729 /* Line 1806 of yacc.c  */
    8730 #line 2511 "parser.yy"
     8858  case 640:
     8859
     8860/* Line 1806 of yacc.c  */
     8861#line 2519 "parser.yy"
    87318862    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87328863    break;
    87338864
    8734   case 638:
    8735 
    8736 /* Line 1806 of yacc.c  */
    8737 #line 2516 "parser.yy"
     8865  case 641:
     8866
     8867/* Line 1806 of yacc.c  */
     8868#line 2524 "parser.yy"
    87388869    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    87398870    break;
    87408871
    8741   case 639:
    8742 
    8743 /* Line 1806 of yacc.c  */
    8744 #line 2518 "parser.yy"
     8872  case 642:
     8873
     8874/* Line 1806 of yacc.c  */
     8875#line 2526 "parser.yy"
    87458876    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87468877    break;
    87478878
    8748   case 640:
    8749 
    8750 /* Line 1806 of yacc.c  */
    8751 #line 2520 "parser.yy"
     8879  case 643:
     8880
     8881/* Line 1806 of yacc.c  */
     8882#line 2528 "parser.yy"
    87528883    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87538884    break;
    87548885
    8755   case 641:
    8756 
    8757 /* Line 1806 of yacc.c  */
    8758 #line 2530 "parser.yy"
     8886  case 644:
     8887
     8888/* Line 1806 of yacc.c  */
     8889#line 2538 "parser.yy"
    87598890    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87608891    break;
    87618892
    8762   case 643:
    8763 
    8764 /* Line 1806 of yacc.c  */
    8765 #line 2533 "parser.yy"
     8893  case 646:
     8894
     8895/* Line 1806 of yacc.c  */
     8896#line 2541 "parser.yy"
    87668897    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87678898    break;
    87688899
    8769   case 644:
    8770 
    8771 /* Line 1806 of yacc.c  */
    8772 #line 2535 "parser.yy"
     8900  case 647:
     8901
     8902/* Line 1806 of yacc.c  */
     8903#line 2543 "parser.yy"
    87738904    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87748905    break;
    87758906
    8776   case 645:
    8777 
    8778 /* Line 1806 of yacc.c  */
    8779 #line 2540 "parser.yy"
     8907  case 648:
     8908
     8909/* Line 1806 of yacc.c  */
     8910#line 2548 "parser.yy"
    87808911    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87818912    break;
    87828913
    8783   case 646:
    8784 
    8785 /* Line 1806 of yacc.c  */
    8786 #line 2542 "parser.yy"
     8914  case 649:
     8915
     8916/* Line 1806 of yacc.c  */
     8917#line 2550 "parser.yy"
    87878918    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87888919    break;
    87898920
    8790   case 647:
    8791 
    8792 /* Line 1806 of yacc.c  */
    8793 #line 2544 "parser.yy"
     8921  case 650:
     8922
     8923/* Line 1806 of yacc.c  */
     8924#line 2552 "parser.yy"
    87948925    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    87958926    break;
    87968927
    8797   case 648:
    8798 
    8799 /* Line 1806 of yacc.c  */
    8800 #line 2549 "parser.yy"
     8928  case 651:
     8929
     8930/* Line 1806 of yacc.c  */
     8931#line 2557 "parser.yy"
    88018932    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    88028933    break;
    88038934
    8804   case 649:
    8805 
    8806 /* Line 1806 of yacc.c  */
    8807 #line 2551 "parser.yy"
     8935  case 652:
     8936
     8937/* Line 1806 of yacc.c  */
     8938#line 2559 "parser.yy"
    88088939    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88098940    break;
    88108941
    8811   case 650:
    8812 
    8813 /* Line 1806 of yacc.c  */
    8814 #line 2553 "parser.yy"
     8942  case 653:
     8943
     8944/* Line 1806 of yacc.c  */
     8945#line 2561 "parser.yy"
    88158946    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88168947    break;
    88178948
    8818   case 651:
    8819 
    8820 /* Line 1806 of yacc.c  */
    8821 #line 2555 "parser.yy"
     8949  case 654:
     8950
     8951/* Line 1806 of yacc.c  */
     8952#line 2563 "parser.yy"
    88228953    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88238954    break;
    88248955
    8825   case 652:
    8826 
    8827 /* Line 1806 of yacc.c  */
    8828 #line 2560 "parser.yy"
     8956  case 655:
     8957
     8958/* Line 1806 of yacc.c  */
     8959#line 2568 "parser.yy"
    88298960    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    88308961    break;
    88318962
    8832   case 653:
    8833 
    8834 /* Line 1806 of yacc.c  */
    8835 #line 2562 "parser.yy"
     8963  case 656:
     8964
     8965/* Line 1806 of yacc.c  */
     8966#line 2570 "parser.yy"
    88368967    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88378968    break;
    88388969
    8839   case 654:
    8840 
    8841 /* Line 1806 of yacc.c  */
    8842 #line 2564 "parser.yy"
     8970  case 657:
     8971
     8972/* Line 1806 of yacc.c  */
     8973#line 2572 "parser.yy"
    88438974    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88448975    break;
    88458976
    8846   case 655:
    8847 
    8848 /* Line 1806 of yacc.c  */
    8849 #line 2577 "parser.yy"
     8977  case 658:
     8978
     8979/* Line 1806 of yacc.c  */
     8980#line 2585 "parser.yy"
    88508981    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88518982    break;
    88528983
    8853   case 657:
    8854 
    8855 /* Line 1806 of yacc.c  */
    8856 #line 2580 "parser.yy"
     8984  case 660:
     8985
     8986/* Line 1806 of yacc.c  */
     8987#line 2588 "parser.yy"
    88578988    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88588989    break;
    88598990
    8860   case 658:
    8861 
    8862 /* Line 1806 of yacc.c  */
    8863 #line 2582 "parser.yy"
     8991  case 661:
     8992
     8993/* Line 1806 of yacc.c  */
     8994#line 2590 "parser.yy"
    88648995    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88658996    break;
    88668997
    8867   case 659:
    8868 
    8869 /* Line 1806 of yacc.c  */
    8870 #line 2587 "parser.yy"
     8998  case 662:
     8999
     9000/* Line 1806 of yacc.c  */
     9001#line 2595 "parser.yy"
    88719002    {
    88729003                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    88759006    break;
    88769007
    8877   case 660:
    8878 
    8879 /* Line 1806 of yacc.c  */
    8880 #line 2592 "parser.yy"
     9008  case 663:
     9009
     9010/* Line 1806 of yacc.c  */
     9011#line 2600 "parser.yy"
    88819012    {
    88829013                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    88859016    break;
    88869017
    8887   case 661:
    8888 
    8889 /* Line 1806 of yacc.c  */
    8890 #line 2600 "parser.yy"
     9018  case 664:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2608 "parser.yy"
    88919022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88929023    break;
    88939024
    8894   case 662:
    8895 
    8896 /* Line 1806 of yacc.c  */
    8897 #line 2602 "parser.yy"
     9025  case 665:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2610 "parser.yy"
    88989029    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88999030    break;
    89009031
    8901   case 663:
    8902 
    8903 /* Line 1806 of yacc.c  */
    8904 #line 2604 "parser.yy"
     9032  case 666:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2612 "parser.yy"
    89059036    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    89069037    break;
    89079038
    8908   case 664:
    8909 
    8910 /* Line 1806 of yacc.c  */
    8911 #line 2609 "parser.yy"
     9039  case 667:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2617 "parser.yy"
    89129043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    89139044    break;
    89149045
    8915   case 665:
    8916 
    8917 /* Line 1806 of yacc.c  */
    8918 #line 2611 "parser.yy"
     9046  case 668:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2619 "parser.yy"
    89199050    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89209051    break;
    89219052
    8922   case 666:
    8923 
    8924 /* Line 1806 of yacc.c  */
    8925 #line 2616 "parser.yy"
     9053  case 669:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2624 "parser.yy"
    89269057    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    89279058    break;
    89289059
    8929   case 667:
    8930 
    8931 /* Line 1806 of yacc.c  */
    8932 #line 2618 "parser.yy"
     9060  case 670:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2626 "parser.yy"
    89339064    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    89349065    break;
    89359066
    8936   case 669:
    8937 
    8938 /* Line 1806 of yacc.c  */
    8939 #line 2636 "parser.yy"
     9067  case 672:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2644 "parser.yy"
    89409071    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    89419072    break;
    89429073
    8943   case 670:
    8944 
    8945 /* Line 1806 of yacc.c  */
    8946 #line 2638 "parser.yy"
     9074  case 673:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2646 "parser.yy"
    89479078    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    89489079    break;
    89499080
    8950   case 671:
    8951 
    8952 /* Line 1806 of yacc.c  */
    8953 #line 2643 "parser.yy"
     9081  case 674:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2651 "parser.yy"
    89549085    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    89559086    break;
    89569087
    8957   case 672:
    8958 
    8959 /* Line 1806 of yacc.c  */
    8960 #line 2645 "parser.yy"
     9088  case 675:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2653 "parser.yy"
    89619092    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    89629093    break;
    89639094
    8964   case 673:
    8965 
    8966 /* Line 1806 of yacc.c  */
    8967 #line 2647 "parser.yy"
     9095  case 676:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2655 "parser.yy"
    89689099    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    89699100    break;
    89709101
    8971   case 674:
    8972 
    8973 /* Line 1806 of yacc.c  */
    8974 #line 2649 "parser.yy"
     9102  case 677:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2657 "parser.yy"
    89759106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    89769107    break;
    89779108
    8978   case 675:
    8979 
    8980 /* Line 1806 of yacc.c  */
    8981 #line 2651 "parser.yy"
     9109  case 678:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2659 "parser.yy"
    89829113    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    89839114    break;
    89849115
    8985   case 677:
    8986 
    8987 /* Line 1806 of yacc.c  */
    8988 #line 2657 "parser.yy"
     9116  case 680:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2665 "parser.yy"
    89899120    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89909121    break;
    89919122
    8992   case 678:
    8993 
    8994 /* Line 1806 of yacc.c  */
    8995 #line 2659 "parser.yy"
     9123  case 681:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2667 "parser.yy"
    89969127    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89979128    break;
    89989129
    8999   case 679:
    9000 
    9001 /* Line 1806 of yacc.c  */
    9002 #line 2661 "parser.yy"
     9130  case 682:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2669 "parser.yy"
    90039134    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    90049135    break;
    90059136
    9006   case 680:
    9007 
    9008 /* Line 1806 of yacc.c  */
    9009 #line 2666 "parser.yy"
     9137  case 683:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2674 "parser.yy"
    90109141    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    90119142    break;
    90129143
    9013   case 681:
    9014 
    9015 /* Line 1806 of yacc.c  */
    9016 #line 2668 "parser.yy"
     9144  case 684:
     9145
     9146/* Line 1806 of yacc.c  */
     9147#line 2676 "parser.yy"
    90179148    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    90189149    break;
    90199150
    9020   case 682:
    9021 
    9022 /* Line 1806 of yacc.c  */
    9023 #line 2670 "parser.yy"
     9151  case 685:
     9152
     9153/* Line 1806 of yacc.c  */
     9154#line 2678 "parser.yy"
    90249155    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    90259156    break;
    90269157
    9027   case 683:
    9028 
    9029 /* Line 1806 of yacc.c  */
    9030 #line 2676 "parser.yy"
     9158  case 686:
     9159
     9160/* Line 1806 of yacc.c  */
     9161#line 2684 "parser.yy"
    90319162    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    90329163    break;
    90339164
    9034   case 684:
    9035 
    9036 /* Line 1806 of yacc.c  */
    9037 #line 2678 "parser.yy"
     9165  case 687:
     9166
     9167/* Line 1806 of yacc.c  */
     9168#line 2686 "parser.yy"
    90389169    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    90399170    break;
    90409171
    9041   case 686:
    9042 
    9043 /* Line 1806 of yacc.c  */
    9044 #line 2684 "parser.yy"
     9172  case 689:
     9173
     9174/* Line 1806 of yacc.c  */
     9175#line 2692 "parser.yy"
    90459176    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    90469177    break;
    90479178
    9048   case 687:
    9049 
    9050 /* Line 1806 of yacc.c  */
    9051 #line 2686 "parser.yy"
     9179  case 690:
     9180
     9181/* Line 1806 of yacc.c  */
     9182#line 2694 "parser.yy"
    90529183    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    90539184    break;
    90549185
    9055   case 688:
    9056 
    9057 /* Line 1806 of yacc.c  */
    9058 #line 2688 "parser.yy"
     9186  case 691:
     9187
     9188/* Line 1806 of yacc.c  */
     9189#line 2696 "parser.yy"
    90599190    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    90609191    break;
    90619192
    9062   case 689:
    9063 
    9064 /* Line 1806 of yacc.c  */
    9065 #line 2690 "parser.yy"
     9193  case 692:
     9194
     9195/* Line 1806 of yacc.c  */
     9196#line 2698 "parser.yy"
    90669197    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    90679198    break;
    90689199
    9069   case 691:
    9070 
    9071 /* Line 1806 of yacc.c  */
    9072 #line 2725 "parser.yy"
     9200  case 694:
     9201
     9202/* Line 1806 of yacc.c  */
     9203#line 2733 "parser.yy"
    90739204    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    90749205    break;
    90759206
    9076   case 692:
    9077 
    9078 /* Line 1806 of yacc.c  */
    9079 #line 2727 "parser.yy"
     9207  case 695:
     9208
     9209/* Line 1806 of yacc.c  */
     9210#line 2735 "parser.yy"
    90809211    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    90819212    break;
    90829213
    9083   case 693:
    9084 
    9085 /* Line 1806 of yacc.c  */
    9086 #line 2732 "parser.yy"
     9214  case 696:
     9215
     9216/* Line 1806 of yacc.c  */
     9217#line 2740 "parser.yy"
    90879218    { (yyval.decl) = DeclarationNode::newPointer( nullptr ); }
    90889219    break;
    90899220
    9090   case 694:
    9091 
    9092 /* Line 1806 of yacc.c  */
    9093 #line 2734 "parser.yy"
     9221  case 697:
     9222
     9223/* Line 1806 of yacc.c  */
     9224#line 2742 "parser.yy"
    90949225    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    90959226    break;
    90969227
    9097   case 695:
    9098 
    9099 /* Line 1806 of yacc.c  */
    9100 #line 2736 "parser.yy"
     9228  case 698:
     9229
     9230/* Line 1806 of yacc.c  */
     9231#line 2744 "parser.yy"
    91019232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( nullptr ) ); }
    91029233    break;
    91039234
    9104   case 696:
    9105 
    9106 /* Line 1806 of yacc.c  */
    9107 #line 2738 "parser.yy"
     9235  case 699:
     9236
     9237/* Line 1806 of yacc.c  */
     9238#line 2746 "parser.yy"
    91089239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    91099240    break;
    91109241
    9111   case 697:
    9112 
    9113 /* Line 1806 of yacc.c  */
    9114 #line 2740 "parser.yy"
     9242  case 700:
     9243
     9244/* Line 1806 of yacc.c  */
     9245#line 2748 "parser.yy"
    91159246    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    91169247    break;
    91179248
    9118   case 699:
    9119 
    9120 /* Line 1806 of yacc.c  */
    9121 #line 2746 "parser.yy"
     9249  case 702:
     9250
     9251/* Line 1806 of yacc.c  */
     9252#line 2754 "parser.yy"
    91229253    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    91239254    break;
    91249255
    9125   case 700:
    9126 
    9127 /* Line 1806 of yacc.c  */
    9128 #line 2748 "parser.yy"
     9256  case 703:
     9257
     9258/* Line 1806 of yacc.c  */
     9259#line 2756 "parser.yy"
    91299260    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    91309261    break;
    91319262
    9132   case 701:
    9133 
    9134 /* Line 1806 of yacc.c  */
    9135 #line 2750 "parser.yy"
     9263  case 704:
     9264
     9265/* Line 1806 of yacc.c  */
     9266#line 2758 "parser.yy"
    91369267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    91379268    break;
    91389269
    9139   case 702:
    9140 
    9141 /* Line 1806 of yacc.c  */
    9142 #line 2755 "parser.yy"
     9270  case 705:
     9271
     9272/* Line 1806 of yacc.c  */
     9273#line 2763 "parser.yy"
    91439274    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    91449275    break;
    91459276
    9146   case 703:
    9147 
    9148 /* Line 1806 of yacc.c  */
    9149 #line 2757 "parser.yy"
     9277  case 706:
     9278
     9279/* Line 1806 of yacc.c  */
     9280#line 2765 "parser.yy"
    91509281    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    91519282    break;
    91529283
    9153   case 704:
    9154 
    9155 /* Line 1806 of yacc.c  */
    9156 #line 2759 "parser.yy"
     9284  case 707:
     9285
     9286/* Line 1806 of yacc.c  */
     9287#line 2767 "parser.yy"
    91579288    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    91589289    break;
    91599290
    9160   case 706:
    9161 
    9162 /* Line 1806 of yacc.c  */
    9163 #line 2766 "parser.yy"
     9291  case 709:
     9292
     9293/* Line 1806 of yacc.c  */
     9294#line 2774 "parser.yy"
    91649295    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    91659296    break;
    91669297
    9167   case 708:
    9168 
    9169 /* Line 1806 of yacc.c  */
    9170 #line 2777 "parser.yy"
     9298  case 711:
     9299
     9300/* Line 1806 of yacc.c  */
     9301#line 2785 "parser.yy"
    91719302    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    91729303    break;
    91739304
    9174   case 709:
    9175 
    9176 /* Line 1806 of yacc.c  */
    9177 #line 2780 "parser.yy"
     9305  case 712:
     9306
     9307/* Line 1806 of yacc.c  */
     9308#line 2788 "parser.yy"
    91789309    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    91799310    break;
    91809311
    9181   case 710:
    9182 
    9183 /* Line 1806 of yacc.c  */
    9184 #line 2782 "parser.yy"
     9312  case 713:
     9313
     9314/* Line 1806 of yacc.c  */
     9315#line 2790 "parser.yy"
    91859316    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    91869317    break;
    91879318
    9188   case 711:
    9189 
    9190 /* Line 1806 of yacc.c  */
    9191 #line 2785 "parser.yy"
     9319  case 714:
     9320
     9321/* Line 1806 of yacc.c  */
     9322#line 2793 "parser.yy"
    91929323    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    91939324    break;
    91949325
    9195   case 712:
    9196 
    9197 /* Line 1806 of yacc.c  */
    9198 #line 2787 "parser.yy"
     9326  case 715:
     9327
     9328/* Line 1806 of yacc.c  */
     9329#line 2795 "parser.yy"
    91999330    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    92009331    break;
    92019332
    9202   case 713:
    9203 
    9204 /* Line 1806 of yacc.c  */
    9205 #line 2789 "parser.yy"
     9333  case 716:
     9334
     9335/* Line 1806 of yacc.c  */
     9336#line 2797 "parser.yy"
    92069337    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    92079338    break;
    92089339
    9209   case 715:
    9210 
    9211 /* Line 1806 of yacc.c  */
    9212 #line 2804 "parser.yy"
     9340  case 718:
     9341
     9342/* Line 1806 of yacc.c  */
     9343#line 2812 "parser.yy"
    92139344    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    92149345    break;
    92159346
    9216   case 716:
    9217 
    9218 /* Line 1806 of yacc.c  */
    9219 #line 2806 "parser.yy"
     9347  case 719:
     9348
     9349/* Line 1806 of yacc.c  */
     9350#line 2814 "parser.yy"
    92209351    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    92219352    break;
    92229353
    9223   case 717:
    9224 
    9225 /* Line 1806 of yacc.c  */
    9226 #line 2811 "parser.yy"
     9354  case 720:
     9355
     9356/* Line 1806 of yacc.c  */
     9357#line 2819 "parser.yy"
    92279358    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    92289359    break;
    92299360
    9230   case 718:
    9231 
    9232 /* Line 1806 of yacc.c  */
    9233 #line 2813 "parser.yy"
     9361  case 721:
     9362
     9363/* Line 1806 of yacc.c  */
     9364#line 2821 "parser.yy"
    92349365    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    92359366    break;
    92369367
    9237   case 719:
    9238 
    9239 /* Line 1806 of yacc.c  */
    9240 #line 2815 "parser.yy"
     9368  case 722:
     9369
     9370/* Line 1806 of yacc.c  */
     9371#line 2823 "parser.yy"
    92419372    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    92429373    break;
    92439374
    9244   case 720:
    9245 
    9246 /* Line 1806 of yacc.c  */
    9247 #line 2817 "parser.yy"
     9375  case 723:
     9376
     9377/* Line 1806 of yacc.c  */
     9378#line 2825 "parser.yy"
    92489379    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    92499380    break;
    92509381
    9251   case 721:
    9252 
    9253 /* Line 1806 of yacc.c  */
    9254 #line 2819 "parser.yy"
     9382  case 724:
     9383
     9384/* Line 1806 of yacc.c  */
     9385#line 2827 "parser.yy"
    92559386    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
    92569387    break;
    92579388
    9258   case 723:
    9259 
    9260 /* Line 1806 of yacc.c  */
    9261 #line 2825 "parser.yy"
     9389  case 726:
     9390
     9391/* Line 1806 of yacc.c  */
     9392#line 2833 "parser.yy"
    92629393    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    92639394    break;
    92649395
    9265   case 724:
    9266 
    9267 /* Line 1806 of yacc.c  */
    9268 #line 2827 "parser.yy"
     9396  case 727:
     9397
     9398/* Line 1806 of yacc.c  */
     9399#line 2835 "parser.yy"
    92699400    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    92709401    break;
    92719402
    9272   case 725:
    9273 
    9274 /* Line 1806 of yacc.c  */
    9275 #line 2829 "parser.yy"
     9403  case 728:
     9404
     9405/* Line 1806 of yacc.c  */
     9406#line 2837 "parser.yy"
    92769407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    92779408    break;
    92789409
    9279   case 726:
    9280 
    9281 /* Line 1806 of yacc.c  */
    9282 #line 2834 "parser.yy"
     9410  case 729:
     9411
     9412/* Line 1806 of yacc.c  */
     9413#line 2842 "parser.yy"
    92839414    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    92849415    break;
    92859416
    9286   case 727:
    9287 
    9288 /* Line 1806 of yacc.c  */
    9289 #line 2836 "parser.yy"
     9417  case 730:
     9418
     9419/* Line 1806 of yacc.c  */
     9420#line 2844 "parser.yy"
    92909421    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    92919422    break;
    92929423
    9293   case 730:
    9294 
    9295 /* Line 1806 of yacc.c  */
    9296 #line 2846 "parser.yy"
     9424  case 733:
     9425
     9426/* Line 1806 of yacc.c  */
     9427#line 2854 "parser.yy"
    92979428    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    92989429    break;
    92999430
    9300   case 733:
    9301 
    9302 /* Line 1806 of yacc.c  */
    9303 #line 2857 "parser.yy"
    9304     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9305     break;
    9306 
    9307   case 734:
    9308 
    9309 /* Line 1806 of yacc.c  */
    9310 #line 2859 "parser.yy"
    9311     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9312     break;
    9313 
    9314   case 735:
    9315 
    9316 /* Line 1806 of yacc.c  */
    9317 #line 2861 "parser.yy"
    9318     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9319     break;
    9320 
    93219431  case 736:
    9322 
    9323 /* Line 1806 of yacc.c  */
    9324 #line 2863 "parser.yy"
    9325     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9326     break;
    9327 
    9328   case 737:
    93299432
    93309433/* Line 1806 of yacc.c  */
     
    93339436    break;
    93349437
    9335   case 738:
     9438  case 737:
    93369439
    93379440/* Line 1806 of yacc.c  */
     
    93409443    break;
    93419444
     9445  case 738:
     9446
     9447/* Line 1806 of yacc.c  */
     9448#line 2869 "parser.yy"
     9449    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9450    break;
     9451
    93429452  case 739:
    93439453
    93449454/* Line 1806 of yacc.c  */
    9345 #line 2874 "parser.yy"
     9455#line 2871 "parser.yy"
     9456    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9457    break;
     9458
     9459  case 740:
     9460
     9461/* Line 1806 of yacc.c  */
     9462#line 2873 "parser.yy"
     9463    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9464    break;
     9465
     9466  case 741:
     9467
     9468/* Line 1806 of yacc.c  */
     9469#line 2875 "parser.yy"
     9470    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9471    break;
     9472
     9473  case 742:
     9474
     9475/* Line 1806 of yacc.c  */
     9476#line 2882 "parser.yy"
    93469477    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93479478    break;
    93489479
    9349   case 740:
    9350 
    9351 /* Line 1806 of yacc.c  */
    9352 #line 2876 "parser.yy"
     9480  case 743:
     9481
     9482/* Line 1806 of yacc.c  */
     9483#line 2884 "parser.yy"
    93539484    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93549485    break;
    93559486
    9356   case 741:
    9357 
    9358 /* Line 1806 of yacc.c  */
    9359 #line 2878 "parser.yy"
     9487  case 744:
     9488
     9489/* Line 1806 of yacc.c  */
     9490#line 2886 "parser.yy"
    93609491    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93619492    break;
    93629493
    9363   case 742:
    9364 
    9365 /* Line 1806 of yacc.c  */
    9366 #line 2880 "parser.yy"
     9494  case 745:
     9495
     9496/* Line 1806 of yacc.c  */
     9497#line 2888 "parser.yy"
    93679498    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    93689499    break;
    93699500
    9370   case 743:
    9371 
    9372 /* Line 1806 of yacc.c  */
    9373 #line 2882 "parser.yy"
     9501  case 746:
     9502
     9503/* Line 1806 of yacc.c  */
     9504#line 2890 "parser.yy"
    93749505    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93759506    break;
    93769507
    9377   case 744:
    9378 
    9379 /* Line 1806 of yacc.c  */
    9380 #line 2885 "parser.yy"
     9508  case 747:
     9509
     9510/* Line 1806 of yacc.c  */
     9511#line 2893 "parser.yy"
    93819512    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93829513    break;
    93839514
    9384   case 745:
    9385 
    9386 /* Line 1806 of yacc.c  */
    9387 #line 2887 "parser.yy"
     9515  case 748:
     9516
     9517/* Line 1806 of yacc.c  */
     9518#line 2895 "parser.yy"
    93889519    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93899520    break;
    93909521
    9391   case 746:
    9392 
    9393 /* Line 1806 of yacc.c  */
    9394 #line 2889 "parser.yy"
     9522  case 749:
     9523
     9524/* Line 1806 of yacc.c  */
     9525#line 2897 "parser.yy"
    93959526    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93969527    break;
    93979528
    9398   case 747:
    9399 
    9400 /* Line 1806 of yacc.c  */
    9401 #line 2891 "parser.yy"
     9529  case 750:
     9530
     9531/* Line 1806 of yacc.c  */
     9532#line 2899 "parser.yy"
    94029533    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    94039534    break;
    94049535
    9405   case 748:
    9406 
    9407 /* Line 1806 of yacc.c  */
    9408 #line 2893 "parser.yy"
     9536  case 751:
     9537
     9538/* Line 1806 of yacc.c  */
     9539#line 2901 "parser.yy"
    94099540    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    94109541    break;
    94119542
    9412   case 749:
    9413 
    9414 /* Line 1806 of yacc.c  */
    9415 #line 2898 "parser.yy"
     9543  case 752:
     9544
     9545/* Line 1806 of yacc.c  */
     9546#line 2906 "parser.yy"
    94169547    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    94179548    break;
    94189549
    9419   case 750:
    9420 
    9421 /* Line 1806 of yacc.c  */
    9422 #line 2900 "parser.yy"
     9550  case 753:
     9551
     9552/* Line 1806 of yacc.c  */
     9553#line 2908 "parser.yy"
    94239554    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    94249555    break;
    94259556
    9426   case 751:
    9427 
    9428 /* Line 1806 of yacc.c  */
    9429 #line 2905 "parser.yy"
     9557  case 754:
     9558
     9559/* Line 1806 of yacc.c  */
     9560#line 2913 "parser.yy"
    94309561    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    94319562    break;
    94329563
    9433   case 752:
    9434 
    9435 /* Line 1806 of yacc.c  */
    9436 #line 2907 "parser.yy"
     9564  case 755:
     9565
     9566/* Line 1806 of yacc.c  */
     9567#line 2915 "parser.yy"
    94379568    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    94389569    break;
    94399570
    9440   case 754:
    9441 
    9442 /* Line 1806 of yacc.c  */
    9443 #line 2934 "parser.yy"
     9571  case 757:
     9572
     9573/* Line 1806 of yacc.c  */
     9574#line 2942 "parser.yy"
    94449575    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    94459576    break;
    94469577
    9447   case 758:
    9448 
    9449 /* Line 1806 of yacc.c  */
    9450 #line 2945 "parser.yy"
    9451     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9452     break;
    9453 
    9454   case 759:
    9455 
    9456 /* Line 1806 of yacc.c  */
    9457 #line 2947 "parser.yy"
    9458     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9459     break;
    9460 
    9461   case 760:
    9462 
    9463 /* Line 1806 of yacc.c  */
    9464 #line 2949 "parser.yy"
    9465     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9466     break;
    9467 
    94689578  case 761:
    9469 
    9470 /* Line 1806 of yacc.c  */
    9471 #line 2951 "parser.yy"
    9472     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9473     break;
    9474 
    9475   case 762:
    94769579
    94779580/* Line 1806 of yacc.c  */
     
    94809583    break;
    94819584
    9482   case 763:
     9585  case 762:
    94839586
    94849587/* Line 1806 of yacc.c  */
     
    94879590    break;
    94889591
     9592  case 763:
     9593
     9594/* Line 1806 of yacc.c  */
     9595#line 2957 "parser.yy"
     9596    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9597    break;
     9598
    94899599  case 764:
    94909600
    94919601/* Line 1806 of yacc.c  */
    9492 #line 2962 "parser.yy"
     9602#line 2959 "parser.yy"
     9603    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9604    break;
     9605
     9606  case 765:
     9607
     9608/* Line 1806 of yacc.c  */
     9609#line 2961 "parser.yy"
     9610    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9611    break;
     9612
     9613  case 766:
     9614
     9615/* Line 1806 of yacc.c  */
     9616#line 2963 "parser.yy"
     9617    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9618    break;
     9619
     9620  case 767:
     9621
     9622/* Line 1806 of yacc.c  */
     9623#line 2970 "parser.yy"
    94939624    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    94949625    break;
    94959626
    9496   case 765:
    9497 
    9498 /* Line 1806 of yacc.c  */
    9499 #line 2964 "parser.yy"
     9627  case 768:
     9628
     9629/* Line 1806 of yacc.c  */
     9630#line 2972 "parser.yy"
    95009631    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    95019632    break;
    95029633
    9503   case 766:
    9504 
    9505 /* Line 1806 of yacc.c  */
    9506 #line 2966 "parser.yy"
     9634  case 769:
     9635
     9636/* Line 1806 of yacc.c  */
     9637#line 2974 "parser.yy"
    95079638    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    95089639    break;
    95099640
    9510   case 767:
    9511 
    9512 /* Line 1806 of yacc.c  */
    9513 #line 2968 "parser.yy"
     9641  case 770:
     9642
     9643/* Line 1806 of yacc.c  */
     9644#line 2976 "parser.yy"
    95149645    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    95159646    break;
    95169647
    9517   case 768:
    9518 
    9519 /* Line 1806 of yacc.c  */
    9520 #line 2970 "parser.yy"
     9648  case 771:
     9649
     9650/* Line 1806 of yacc.c  */
     9651#line 2978 "parser.yy"
    95219652    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    95229653    break;
    95239654
    9524   case 769:
    9525 
    9526 /* Line 1806 of yacc.c  */
    9527 #line 2972 "parser.yy"
     9655  case 772:
     9656
     9657/* Line 1806 of yacc.c  */
     9658#line 2980 "parser.yy"
    95289659    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    95299660    break;
    95309661
    9531   case 770:
    9532 
    9533 /* Line 1806 of yacc.c  */
    9534 #line 2977 "parser.yy"
     9662  case 773:
     9663
     9664/* Line 1806 of yacc.c  */
     9665#line 2985 "parser.yy"
    95359666    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    95369667    break;
    95379668
    9538   case 771:
    9539 
    9540 /* Line 1806 of yacc.c  */
    9541 #line 2984 "parser.yy"
     9669  case 774:
     9670
     9671/* Line 1806 of yacc.c  */
     9672#line 2992 "parser.yy"
    95429673    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    95439674    break;
    95449675
    9545   case 772:
    9546 
    9547 /* Line 1806 of yacc.c  */
    9548 #line 2986 "parser.yy"
     9676  case 775:
     9677
     9678/* Line 1806 of yacc.c  */
     9679#line 2994 "parser.yy"
    95499680    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    95509681    break;
    95519682
    9552   case 775:
    9553 
    9554 /* Line 1806 of yacc.c  */
    9555 #line 3010 "parser.yy"
     9683  case 778:
     9684
     9685/* Line 1806 of yacc.c  */
     9686#line 3018 "parser.yy"
    95569687    { (yyval.en) = nullptr; }
    95579688    break;
    95589689
    9559   case 776:
    9560 
    9561 /* Line 1806 of yacc.c  */
    9562 #line 3012 "parser.yy"
     9690  case 779:
     9691
     9692/* Line 1806 of yacc.c  */
     9693#line 3020 "parser.yy"
    95639694    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    95649695    break;
     
    95679698
    95689699/* Line 1806 of yacc.c  */
    9569 #line 9570 "Parser/parser.cc"
     9700#line 9701 "Parser/parser.cc"
    95709701      default: break;
    95719702    }
     
    97989929
    97999930/* Line 2067 of yacc.c  */
    9800 #line 3015 "parser.yy"
     9931#line 3023 "parser.yy"
    98019932
    98029933// ----end of grammar----
  • src/Parser/parser.h

    rc3396e0 rd3bc0ad  
    7474     STRUCT = 292,
    7575     UNION = 293,
    76      OTYPE = 294,
    77      FTYPE = 295,
    78      DTYPE = 296,
    79      TTYPE = 297,
    80      TRAIT = 298,
    81      SIZEOF = 299,
    82      OFFSETOF = 300,
    83      ATTRIBUTE = 301,
    84      EXTENSION = 302,
    85      IF = 303,
    86      ELSE = 304,
    87      SWITCH = 305,
    88      CASE = 306,
    89      DEFAULT = 307,
    90      DO = 308,
    91      WHILE = 309,
    92      FOR = 310,
    93      BREAK = 311,
    94      CONTINUE = 312,
    95      GOTO = 313,
    96      RETURN = 314,
    97      CHOOSE = 315,
    98      DISABLE = 316,
    99      ENABLE = 317,
    100      FALLTHRU = 318,
    101      TRY = 319,
    102      CATCH = 320,
    103      CATCHRESUME = 321,
    104      FINALLY = 322,
    105      THROW = 323,
    106      THROWRESUME = 324,
    107      AT = 325,
    108      ASM = 326,
    109      ALIGNAS = 327,
    110      ALIGNOF = 328,
    111      GENERIC = 329,
    112      STATICASSERT = 330,
    113      IDENTIFIER = 331,
    114      QUOTED_IDENTIFIER = 332,
    115      TYPEDEFname = 333,
    116      TYPEGENname = 334,
    117      ATTR_IDENTIFIER = 335,
    118      ATTR_TYPEDEFname = 336,
    119      ATTR_TYPEGENname = 337,
    120      INTEGERconstant = 338,
    121      CHARACTERconstant = 339,
    122      STRINGliteral = 340,
    123      REALDECIMALconstant = 341,
    124      REALFRACTIONconstant = 342,
    125      FLOATINGconstant = 343,
    126      ZERO = 344,
    127      ONE = 345,
    128      ARROW = 346,
    129      ICR = 347,
    130      DECR = 348,
    131      LS = 349,
    132      RS = 350,
    133      LE = 351,
    134      GE = 352,
    135      EQ = 353,
    136      NE = 354,
    137      ANDAND = 355,
    138      OROR = 356,
    139      ELLIPSIS = 357,
    140      MULTassign = 358,
    141      DIVassign = 359,
    142      MODassign = 360,
    143      PLUSassign = 361,
    144      MINUSassign = 362,
    145      LSassign = 363,
    146      RSassign = 364,
    147      ANDassign = 365,
    148      ERassign = 366,
    149      ORassign = 367,
    150      ATassign = 368,
    151      THEN = 369
     76     COROUTINE = 294,
     77     MONITOR = 295,
     78     THREAD = 296,
     79     OTYPE = 297,
     80     FTYPE = 298,
     81     DTYPE = 299,
     82     TTYPE = 300,
     83     TRAIT = 301,
     84     SIZEOF = 302,
     85     OFFSETOF = 303,
     86     ATTRIBUTE = 304,
     87     EXTENSION = 305,
     88     IF = 306,
     89     ELSE = 307,
     90     SWITCH = 308,
     91     CASE = 309,
     92     DEFAULT = 310,
     93     DO = 311,
     94     WHILE = 312,
     95     FOR = 313,
     96     BREAK = 314,
     97     CONTINUE = 315,
     98     GOTO = 316,
     99     RETURN = 317,
     100     CHOOSE = 318,
     101     DISABLE = 319,
     102     ENABLE = 320,
     103     FALLTHRU = 321,
     104     TRY = 322,
     105     CATCH = 323,
     106     CATCHRESUME = 324,
     107     FINALLY = 325,
     108     THROW = 326,
     109     THROWRESUME = 327,
     110     AT = 328,
     111     ASM = 329,
     112     ALIGNAS = 330,
     113     ALIGNOF = 331,
     114     GENERIC = 332,
     115     STATICASSERT = 333,
     116     IDENTIFIER = 334,
     117     QUOTED_IDENTIFIER = 335,
     118     TYPEDEFname = 336,
     119     TYPEGENname = 337,
     120     ATTR_IDENTIFIER = 338,
     121     ATTR_TYPEDEFname = 339,
     122     ATTR_TYPEGENname = 340,
     123     INTEGERconstant = 341,
     124     CHARACTERconstant = 342,
     125     STRINGliteral = 343,
     126     REALDECIMALconstant = 344,
     127     REALFRACTIONconstant = 345,
     128     FLOATINGconstant = 346,
     129     ZERO = 347,
     130     ONE = 348,
     131     ARROW = 349,
     132     ICR = 350,
     133     DECR = 351,
     134     LS = 352,
     135     RS = 353,
     136     LE = 354,
     137     GE = 355,
     138     EQ = 356,
     139     NE = 357,
     140     ANDAND = 358,
     141     OROR = 359,
     142     ELLIPSIS = 360,
     143     MULTassign = 361,
     144     DIVassign = 362,
     145     MODassign = 363,
     146     PLUSassign = 364,
     147     MINUSassign = 365,
     148     LSassign = 366,
     149     RSassign = 367,
     150     ANDassign = 368,
     151     ERassign = 369,
     152     ORassign = 370,
     153     ATassign = 371,
     154     THEN = 372
    152155   };
    153156#endif
     
    189192#define STRUCT 292
    190193#define UNION 293
    191 #define OTYPE 294
    192 #define FTYPE 295
    193 #define DTYPE 296
    194 #define TTYPE 297
    195 #define TRAIT 298
    196 #define SIZEOF 299
    197 #define OFFSETOF 300
    198 #define ATTRIBUTE 301
    199 #define EXTENSION 302
    200 #define IF 303
    201 #define ELSE 304
    202 #define SWITCH 305
    203 #define CASE 306
    204 #define DEFAULT 307
    205 #define DO 308
    206 #define WHILE 309
    207 #define FOR 310
    208 #define BREAK 311
    209 #define CONTINUE 312
    210 #define GOTO 313
    211 #define RETURN 314
    212 #define CHOOSE 315
    213 #define DISABLE 316
    214 #define ENABLE 317
    215 #define FALLTHRU 318
    216 #define TRY 319
    217 #define CATCH 320
    218 #define CATCHRESUME 321
    219 #define FINALLY 322
    220 #define THROW 323
    221 #define THROWRESUME 324
    222 #define AT 325
    223 #define ASM 326
    224 #define ALIGNAS 327
    225 #define ALIGNOF 328
    226 #define GENERIC 329
    227 #define STATICASSERT 330
    228 #define IDENTIFIER 331
    229 #define QUOTED_IDENTIFIER 332
    230 #define TYPEDEFname 333
    231 #define TYPEGENname 334
    232 #define ATTR_IDENTIFIER 335
    233 #define ATTR_TYPEDEFname 336
    234 #define ATTR_TYPEGENname 337
    235 #define INTEGERconstant 338
    236 #define CHARACTERconstant 339
    237 #define STRINGliteral 340
    238 #define REALDECIMALconstant 341
    239 #define REALFRACTIONconstant 342
    240 #define FLOATINGconstant 343
    241 #define ZERO 344
    242 #define ONE 345
    243 #define ARROW 346
    244 #define ICR 347
    245 #define DECR 348
    246 #define LS 349
    247 #define RS 350
    248 #define LE 351
    249 #define GE 352
    250 #define EQ 353
    251 #define NE 354
    252 #define ANDAND 355
    253 #define OROR 356
    254 #define ELLIPSIS 357
    255 #define MULTassign 358
    256 #define DIVassign 359
    257 #define MODassign 360
    258 #define PLUSassign 361
    259 #define MINUSassign 362
    260 #define LSassign 363
    261 #define RSassign 364
    262 #define ANDassign 365
    263 #define ERassign 366
    264 #define ORassign 367
    265 #define ATassign 368
    266 #define THEN 369
     194#define COROUTINE 294
     195#define MONITOR 295
     196#define THREAD 296
     197#define OTYPE 297
     198#define FTYPE 298
     199#define DTYPE 299
     200#define TTYPE 300
     201#define TRAIT 301
     202#define SIZEOF 302
     203#define OFFSETOF 303
     204#define ATTRIBUTE 304
     205#define EXTENSION 305
     206#define IF 306
     207#define ELSE 307
     208#define SWITCH 308
     209#define CASE 309
     210#define DEFAULT 310
     211#define DO 311
     212#define WHILE 312
     213#define FOR 313
     214#define BREAK 314
     215#define CONTINUE 315
     216#define GOTO 316
     217#define RETURN 317
     218#define CHOOSE 318
     219#define DISABLE 319
     220#define ENABLE 320
     221#define FALLTHRU 321
     222#define TRY 322
     223#define CATCH 323
     224#define CATCHRESUME 324
     225#define FINALLY 325
     226#define THROW 326
     227#define THROWRESUME 327
     228#define AT 328
     229#define ASM 329
     230#define ALIGNAS 330
     231#define ALIGNOF 331
     232#define GENERIC 332
     233#define STATICASSERT 333
     234#define IDENTIFIER 334
     235#define QUOTED_IDENTIFIER 335
     236#define TYPEDEFname 336
     237#define TYPEGENname 337
     238#define ATTR_IDENTIFIER 338
     239#define ATTR_TYPEDEFname 339
     240#define ATTR_TYPEGENname 340
     241#define INTEGERconstant 341
     242#define CHARACTERconstant 342
     243#define STRINGliteral 343
     244#define REALDECIMALconstant 344
     245#define REALFRACTIONconstant 345
     246#define FLOATINGconstant 346
     247#define ZERO 347
     248#define ONE 348
     249#define ARROW 349
     250#define ICR 350
     251#define DECR 351
     252#define LS 352
     253#define RS 353
     254#define LE 354
     255#define GE 355
     256#define EQ 356
     257#define NE 357
     258#define ANDAND 358
     259#define OROR 359
     260#define ELLIPSIS 360
     261#define MULTassign 361
     262#define DIVassign 362
     263#define MODassign 363
     264#define PLUSassign 364
     265#define MINUSassign 365
     266#define LSassign 366
     267#define RSassign 367
     268#define ANDassign 368
     269#define ERassign 369
     270#define ORassign 370
     271#define ATassign 371
     272#define THEN 372
    267273
    268274
     
    274280
    275281/* Line 2068 of yacc.c  */
    276 #line 141 "parser.yy"
     282#line 142 "parser.yy"
    277283
    278284        Token tok;
     
    294300
    295301/* Line 2068 of yacc.c  */
    296 #line 297 "Parser/parser.h"
     302#line 303 "Parser/parser.h"
    297303} YYSTYPE;
    298304# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    rc3396e0 rd3bc0ad  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Mar  5 15:48:24 2017
    13 // Update Count     : 2227
     12// Last Modified On : Thu Mar  9 21:40:20 2017
     13// Update Count     : 2292
    1414//
    1515
     
    104104%token TYPEOF LABEL                                                                             // GCC
    105105%token ENUM STRUCT UNION
     106%token COROUTINE MONITOR THREAD                                                 // CFA
    106107%token OTYPE FTYPE DTYPE TTYPE TRAIT                                    // CFA
    107108%token SIZEOF OFFSETOF
     
    223224%type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr
    224225
    225 %type<decl> identifier_parameter_array identifier_parameter_declarator identifier_parameter_function
    226 %type<decl> identifier_parameter_ptr identifier_list
     226%type<decl> identifier_parameter_declarator identifier_parameter_ptr identifier_parameter_array identifier_parameter_function
     227%type<decl> identifier_list
    227228
    228229%type<decl> cfa_abstract_array cfa_abstract_declarator_no_tuple cfa_abstract_declarator_tuple
     
    270271%type<en> type_name_list
    271272
    272 %type<decl> type_qualifier type_qualifier_name type_qualifier_list type_qualifier_list_opt type_specifier type_specifier_nobody
     273%type<decl> type_qualifier type_qualifier_name type_qualifier_list_opt type_qualifier_list
     274%type<decl> type_specifier type_specifier_nobody
    273275
    274276%type<decl> variable_declarator variable_ptr variable_array variable_function
     
    16291631        | UNION
    16301632                { $$ = DeclarationNode::Union; }
     1633        | COROUTINE
     1634                { $$ = DeclarationNode::Struct; }
     1635        | MONITOR
     1636                { $$ = DeclarationNode::Struct; }
     1637        | THREAD
     1638                { $$ = DeclarationNode::Struct; }
    16311639        ;
    16321640
Note: See TracChangeset for help on using the changeset viewer.