From 16613c00065fee056e110924ba56a98332fff4e0 Mon Sep 17 00:00:00 2001 From: Timm Friebe Date: Sun, 20 Sep 2015 17:35:40 +0200 Subject: [PATCH 1/3] Add function type syntax for XP language --- src/main/jay/grammars/php.jay | 2 +- src/main/jay/grammars/xp.jay | 12 + .../xp/compiler/emit/php/Emitter.class.php | 2 + .../xp/compiler/syntax/php/Parser.class.php | 2 +- .../xp/compiler/syntax/xp/Parser.class.php | 2663 +++++++++-------- .../compiler/types/FunctionTypeOf.class.php | 262 ++ .../php/xp/compiler/types/Scope.class.php | 2 + .../php/xp/compiler/types/TypeName.class.php | 39 +- .../php/xp/compiler/types/Types.class.php | 6 +- .../syntax/xp/MethodDeclarationTest.class.php | 48 + .../tests/types/TypeNameTest.class.php | 119 +- 11 files changed, 1724 insertions(+), 1433 deletions(-) create mode 100755 src/main/php/xp/compiler/types/FunctionTypeOf.class.php diff --git a/src/main/jay/grammars/php.jay b/src/main/jay/grammars/php.jay index 0a7543eca..6c564c07c 100644 --- a/src/main/jay/grammars/php.jay +++ b/src/main/jay/grammars/php.jay @@ -846,7 +846,7 @@ typeref: ; typename: - qualifiedname { $$= new TypeName($1); } + qualifiedname { $$= 'callable' === $1 ? new TypeName('->var', null) : new TypeName($1); } ; arraytype: diff --git a/src/main/jay/grammars/xp.jay b/src/main/jay/grammars/xp.jay index 57fd658d7..3d6e0b322 100644 --- a/src/main/jay/grammars/xp.jay +++ b/src/main/jay/grammars/xp.jay @@ -1051,6 +1051,7 @@ typeref: typename | arraytype | maptype + | functiontype ; typename: @@ -1076,6 +1077,17 @@ typeparameter: | '?' T_EXTENDS qualifiedname { $$= new TypeName($3.'+'); } ; +signature: + /* empty */ { $$= array(); } + | typeref { $$= array($1); } + | signature ',' typeref { $$= array_merge($1, array($3)); } +; + +functiontype: + '(' '?' T_ARROW typeref ')' { $$= new TypeName('->'.$4->compoundName(), null); } + | '(' signature T_ARROW typeref ')' { $$= new TypeName('->'.$4->compoundName(), $2); } +; + name_list: typename { $$= array($1); } | typename ',' name_list { $$= array_merge(array($1), $3); } diff --git a/src/main/php/xp/compiler/emit/php/Emitter.class.php b/src/main/php/xp/compiler/emit/php/Emitter.class.php index 055bafac2..9cc1c7064 100755 --- a/src/main/php/xp/compiler/emit/php/Emitter.class.php +++ b/src/main/php/xp/compiler/emit/php/Emitter.class.php @@ -1312,6 +1312,8 @@ protected function emitParameters($b, array $parameters, $delim) { // No runtime type checks } else if ($t->isArray() || $t->isMap()) { $b->append('array '); + } else if ($t->isFunction()) { + $b->append('callable '); } else if ($t->isClass() && !$this->scope[0]->declarations[0]->name->isPlaceHolder($t)) { $b->append($this->literal($ptr))->append(' '); } else if ('{' === $delim) { diff --git a/src/main/php/xp/compiler/syntax/php/Parser.class.php b/src/main/php/xp/compiler/syntax/php/Parser.class.php index ba1e212cb..2a9b2b865 100644 --- a/src/main/php/xp/compiler/syntax/php/Parser.class.php +++ b/src/main/php/xp/compiler/syntax/php/Parser.class.php @@ -2402,7 +2402,7 @@ public function yyparse($yyLex) { } break; case 236: #line 849 "src/main/jay/grammars/php.jay" - { $yyVal= new TypeName($yyVals[0+$yyTop]); } break; + { $yyVal= 'callable' === $yyVals[0+$yyTop] ? new TypeName('->var', null) : new TypeName($yyVals[0+$yyTop]); } break; case 237: #line 853 "src/main/jay/grammars/php.jay" { $yyVal= new TypeName('var[]'); } break; diff --git a/src/main/php/xp/compiler/syntax/xp/Parser.class.php b/src/main/php/xp/compiler/syntax/xp/Parser.class.php index 6f7ae055e..ccc11373f 100644 --- a/src/main/php/xp/compiler/syntax/xp/Parser.class.php +++ b/src/main/php/xp/compiler/syntax/xp/Parser.class.php @@ -182,9 +182,10 @@ class Parser extends \text\parser\generic\AbstractParser { 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 111, 111, 101, 101, 120, 120, 122, 121, 121, 124, 121, 125, 121, - 123, 123, 10, 10, 10, 32, 32, 32, 12, 12, - 95, 96, 126, 126, 127, 127, 21, 21, 49, 49, - 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, + 123, 123, 10, 10, 10, 32, 32, 32, 32, 12, + 12, 95, 96, 127, 127, 128, 128, 129, 129, 129, + 126, 126, 21, 21, 49, 49, 130, 130, 131, 131, + 131, 131, 131, 131, 131, 131, ); protected static $yyLen= array(2, 3, 0, 0, 4, 0, 1, 1, 2, 5, 6, @@ -216,1428 +217,1447 @@ class Parser extends \text\parser\generic\AbstractParser { 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 2, 0, 4, 2, 0, 6, 0, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 3, 4, 1, 3, 1, 3, 1, 3, 0, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 3, 4, 1, 3, 1, 3, 0, 1, 3, + 5, 5, 1, 3, 0, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, ); protected static $yyDefRed= array(0, 3, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 293, 0, 0, 295, 294, 0, 15, 0, 313, - 315, 314, 317, 319, 318, 320, 316, 1, 0, 68, - 0, 311, 8, 0, 0, 4, 0, 0, 0, 0, - 0, 69, 20, 24, 22, 312, 18, 19, 0, 0, + 0, 293, 0, 0, 295, 294, 0, 15, 0, 319, + 321, 320, 323, 325, 324, 326, 322, 1, 0, 68, + 0, 317, 8, 0, 0, 4, 0, 0, 0, 0, + 0, 69, 20, 24, 22, 318, 18, 19, 0, 0, 0, 14, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 9, 0, 0, 0, 70, 67, 0, 0, 0, 0, 11, 12, 10, 74, 75, 223, 0, 0, 229, 225, 228, 226, 227, 0, 0, 81, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 73, - 0, 0, 296, 0, 297, 298, 0, 303, 27, 0, - 0, 0, 31, 35, 0, 0, 232, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 0, 231, 203, 204, 205, 206, - 207, 0, 0, 234, 0, 0, 79, 80, 83, 84, - 0, 78, 0, 0, 0, 0, 300, 29, 35, 0, + 0, 0, 0, 296, 0, 297, 298, 299, 0, 304, + 27, 0, 0, 0, 31, 35, 0, 0, 232, 0, + 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 230, 0, 231, 203, 204, + 205, 206, 207, 0, 0, 234, 0, 0, 79, 80, + 83, 84, 0, 78, 0, 0, 0, 0, 0, 0, + 0, 301, 29, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 196, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 218, 0, 194, 0, 0, + 0, 218, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 278, 279, - 0, 284, 292, 291, 289, 191, 281, 0, 0, 0, - 224, 0, 0, 306, 0, 301, 304, 0, 308, 0, - 0, 25, 0, 34, 36, 37, 0, 0, 0, 42, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 186, 188, 0, 100, 0, 0, 0, 220, 0, 0, + 0, 0, 0, 0, 278, 279, 0, 284, 292, 291, + 289, 191, 281, 0, 0, 0, 224, 0, 0, 307, + 0, 0, 0, 0, 302, 305, 0, 314, 0, 0, + 25, 0, 34, 36, 37, 0, 0, 0, 42, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, + 188, 0, 0, 100, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 202, 0, 0, - 283, 0, 175, 0, 0, 237, 235, 82, 302, 21, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 35, - 0, 0, 193, 0, 0, 0, 0, 0, 189, 0, - 221, 190, 219, 0, 0, 184, 181, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 287, 113, 0, - 131, 117, 121, 123, 119, 127, 129, 115, 125, 0, - 0, 0, 0, 111, 0, 63, 0, 0, 0, 0, - 0, 0, 35, 45, 0, 43, 0, 0, 0, 0, - 0, 0, 0, 212, 0, 195, 0, 285, 290, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 137, 112, 0, 0, 61, 59, - 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, - 0, 0, 0, 179, 180, 197, 215, 0, 0, 0, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 155, - 0, 0, 128, 130, 0, 0, 0, 0, 142, 222, - 0, 0, 93, 0, 0, 0, 0, 0, 65, 0, - 48, 0, 0, 53, 33, 0, 178, 213, 182, 288, - 114, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 98, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 55, 0, 49, 54, 47, 0, 0, 139, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 0, 143, 0, - 0, 0, 0, 94, 96, 95, 0, 0, 0, 0, - 0, 164, 170, 134, 0, 161, 162, 0, 0, 122, - 0, 146, 0, 0, 0, 0, 97, 102, 0, 85, - 0, 64, 0, 0, 0, 56, 0, 0, 160, 169, - 163, 135, 0, 0, 0, 158, 116, 151, 153, 0, - 0, 149, 136, 0, 0, 62, 60, 0, 0, 0, - 0, 124, 120, 0, 0, 0, 126, 150, 87, 86, - 66, 166, 0, 0, 0, 159, 0, 0, 0, 0, - 171, 118, 0, 154, 167, 0, 152, 0, 0, 165, + 283, 0, 175, 0, 0, 237, 235, 82, 303, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 35, 0, 0, 193, 0, 0, 0, 0, + 0, 189, 0, 221, 190, 219, 0, 0, 184, 181, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 287, 311, 312, 113, 0, 131, 117, 121, 123, 119, + 127, 129, 115, 125, 0, 0, 0, 0, 111, 0, + 63, 0, 0, 0, 0, 0, 0, 35, 45, 0, + 43, 0, 0, 0, 0, 0, 0, 0, 212, 0, + 195, 0, 285, 290, 0, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 38, 137, + 112, 0, 0, 61, 59, 103, 104, 105, 106, 107, + 108, 0, 0, 0, 0, 0, 0, 0, 179, 180, + 197, 215, 0, 0, 0, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 155, 0, 0, 128, 130, 0, + 0, 0, 0, 142, 222, 0, 0, 93, 0, 0, + 0, 0, 0, 65, 0, 48, 0, 0, 53, 33, + 0, 178, 213, 182, 288, 114, 0, 0, 0, 0, + 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 55, 0, 49, 54, 47, + 0, 0, 139, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 143, 0, 0, 0, 0, 94, 96, + 95, 0, 0, 0, 0, 0, 164, 170, 134, 0, + 161, 162, 0, 0, 122, 0, 146, 0, 0, 0, + 0, 97, 102, 0, 85, 0, 64, 0, 0, 0, + 56, 0, 0, 160, 169, 163, 135, 0, 0, 0, + 158, 116, 151, 153, 0, 0, 149, 136, 0, 0, + 62, 60, 0, 0, 0, 0, 124, 120, 0, 0, + 0, 126, 150, 87, 86, 66, 166, 0, 0, 0, + 159, 0, 0, 0, 0, 171, 118, 0, 154, 167, + 0, 152, 0, 0, 165, ); protected static $yyDgoto= array(2, - 3, 6, 28, 141, 4, 7, 8, 17, 53, 18, - 253, 113, 61, 99, 121, 171, 63, 258, 62, 101, - 123, 394, 254, 255, 256, 381, 259, 260, 336, 337, - 382, 192, 351, 392, 483, 143, 473, 484, 516, 478, - 543, 572, 477, 474, 428, 437, 519, 41, 30, 42, - 58, 94, 95, 96, 144, 475, 476, 383, 384, 294, - 411, 421, 461, 587, 415, 418, 502, 416, 417, 422, - 590, 419, 420, 414, 452, 554, 454, 468, 455, 469, - 591, 592, 605, 606, 604, 555, 579, 556, 557, 577, - 613, 578, 145, 264, 115, 116, 146, 358, 271, 186, - 236, 187, 194, 181, 280, 268, 147, 148, 149, 150, - 151, 448, 195, 196, 152, 103, 153, 154, 327, 237, - 238, 319, 239, 410, 320, 117, 118, 31, 32, + 3, 6, 28, 143, 4, 7, 8, 17, 53, 18, + 262, 114, 61, 99, 123, 176, 63, 267, 62, 101, + 125, 409, 263, 264, 265, 396, 268, 269, 349, 350, + 397, 198, 364, 407, 498, 145, 488, 499, 531, 493, + 558, 587, 492, 489, 443, 452, 534, 41, 30, 42, + 58, 94, 95, 96, 146, 490, 491, 398, 399, 304, + 426, 436, 476, 602, 430, 433, 517, 431, 432, 437, + 605, 434, 435, 429, 467, 569, 469, 483, 470, 484, + 606, 607, 620, 621, 619, 570, 594, 571, 572, 592, + 628, 593, 147, 273, 116, 117, 148, 371, 280, 191, + 242, 192, 200, 186, 290, 277, 149, 150, 151, 152, + 153, 463, 201, 202, 154, 103, 155, 156, 337, 243, + 244, 329, 245, 425, 330, 118, 119, 120, 169, 31, + 32, ); - protected static $yySindex = array( -235, - 0, 0, -217, 82, 224, 923, -217, 0, 80, 94, - 98, 0, -209, -209, 0, 0, 101, 0, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, - 993, 0, 0, 82, 82, 0, -24, 166, -28, 182, - 30, 0, 0, 0, 0, 0, 0, 0, -28, -28, - -28, 0, 157, 0, 110, 129, 0, 204, 118, 993, - 82, 82, 82, 199, 0, 215, 254, 0, 82, 82, - 567, 0, 0, 269, 113, 137, 113, 0, 0, 0, - 0, 0, 0, 82, 153, 0, 0, 0, 0, 0, - 279, 47, 0, 420, 370, 0, 334, 82, 154, 82, - 353, 154, 5217, 443, 646, 646, -215, 0, -155, 0, - 210, 427, 0, 441, 0, 0, 191, 0, 0, 82, - 417, 516, 0, 0, 442, 5507, 0, 5507, 5507, 5507, - 5507, 5507, 5507, 0, 5507, 397, 529, 0, 5538, 466, - 189, 3842, -36, 0, 547, 0, 0, 0, 0, 0, - 0, 508, 566, 0, 5507, 80, 0, 0, 0, 0, - 555, 0, 82, 72, 530, 334, 0, 0, 0, 82, - 1303, 369, 321, 2939, -85, -85, -91, -85, -85, -85, - 72, 0, 5507, 0, 5507, 377, -36, 427, 0, -51, - 2769, 128, 287, 594, 593, 0, -21, 0, 5507, 5507, - 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507, - 5507, 5507, 5507, 5507, 5228, 5257, 5071, 5507, 5158, 5507, - 5507, 5507, 5507, 5507, 5507, 5507, 82, 5507, 0, 0, - 72, 0, 0, 0, 0, 0, 0, -36, -209, 5507, - 0, 239, 599, 0, 263, 0, 0, 1331, 0, 524, - 394, 0, 127, 0, 0, 0, 0, 549, 31, 0, - 5507, 632, 441, -36, 552, 556, 3842, 5507, 3842, 5406, - 0, 0, -36, 0, 617, 377, -21, 0, 377, -228, - 4003, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, - 4038, 4038, 3842, 622, 91, 310, 812, 5507, 183, 5507, - 183, 5507, 5507, 141, 141, 5507, 5507, 141, 141, 205, - 205, -9, -9, -9, -91, 0, -85, 0, 5507, 5507, - 0, 642, 0, 631, 529, 0, 0, 0, 0, 0, - 557, 440, 424, 444, -12, 578, 662, 0, 369, 0, - 77, 5507, 0, 5507, 90, 665, 557, 3842, 0, 5507, - 0, 0, 0, 582, 663, 0, 0, -36, 5507, 4038, - 4038, 141, 141, 141, 141, 615, 673, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 675, - 591, 2966, 557, 0, 656, 0, 679, 683, 409, 633, - 617, 603, 0, 0, 5507, 0, 754, 686, 604, 605, - -36, 607, 3842, 0, 5507, 0, 77, 0, 0, 5507, - 5507, 0, 388, 5507, 694, 695, 523, 696, 680, 682, - 698, 702, 410, 0, 0, 0, 928, 104, 0, 0, - 0, 0, 0, 0, 0, 0, 709, 104, 697, 493, - 1370, 2993, 578, 0, 0, 0, 0, -36, 713, 718, - 704, 557, 700, 386, 0, 3158, 5507, 5507, 557, 0, - 403, 429, 0, 0, 5507, 5507, 712, 425, 0, 0, - 715, 371, 0, 735, 737, 70, 89, 89, 0, 689, - 0, 38, -102, 0, 0, 578, 0, 0, 0, 0, - 0, 664, 5507, 388, 676, 0, 742, 3378, 677, 763, - 760, 446, 3405, 3543, 5507, 410, 703, 0, 545, 0, - 502, 104, 494, 617, 104, 765, 737, 784, 104, 0, - 0, 557, 0, 0, 0, 160, 3842, 0, 557, 5507, - 523, 0, 5507, 498, 5507, 523, 710, 3842, 0, 557, - 617, 82, -47, 0, 0, 0, 737, 502, 502, 798, - 717, 0, 0, 0, 160, 0, 0, 723, 781, 0, - 3570, 0, 3597, 479, 175, 726, 0, 0, 5507, 0, - 557, 0, -47, -47, 502, 0, 816, 729, 0, 0, - 0, 0, 5507, 799, 523, 0, 0, 0, 0, 736, - 175, 0, 0, 3707, 743, 0, 0, -47, 82, 557, - 819, 0, 0, 523, 5507, 804, 0, 0, 0, 0, - 0, 0, -107, 746, 523, 0, 3805, 557, 82, 832, - 0, 0, 557, 0, 0, 752, 0, 557, 755, 0, + protected static $yySindex = array( -283, + 0, 0, -231, -146, 375, 1112, -231, 0, 36, 41, + 86, 0, -169, -169, 0, 0, 124, 0, 110, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, + 1036, 0, 0, -146, -146, 0, -30, 166, -24, 85, + 177, 0, 0, 0, 0, 0, 0, 0, -24, -24, + -24, 0, 172, 0, 186, 216, 0, 246, 110, 1036, + -146, -146, -146, 273, 0, 307, 324, 0, -146, -146, + 320, 0, 0, 347, 168, 182, 168, 0, 0, 0, + 0, 0, 0, -146, 433, 0, 0, 0, 0, 0, + 407, 103, 0, 490, 54, 0, 419, -146, 211, -146, + 437, 211, 5183, 496, 878, 878, -192, 0, -161, 0, + 232, 507, 527, 0, 495, 0, 0, 0, 292, 0, + 0, -146, 465, 551, 0, 0, 474, 5586, 0, 5586, + 5586, 5586, 5586, 5586, 5586, 0, 5586, 481, 541, 0, + 5597, 477, 197, 3834, -35, 0, 567, 0, 0, 0, + 0, 0, 0, 520, 575, 0, 5586, 36, 0, 0, + 0, 0, 560, 0, -146, -17, 365, 495, -22, 539, + 419, 0, 0, 0, -146, 1461, 374, 414, 2849, 17, + 17, -51, 17, 17, 17, -17, 0, 5586, 0, 5586, + 384, -35, 507, 0, 5282, -45, 2946, 96, 302, 618, + 608, 0, 64, 0, 5586, 5586, 5586, 5586, 5586, 5586, + 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, + 5393, 5433, 5022, 5586, 5151, 5586, 5586, 5586, 5586, 5586, + 5586, 5586, -146, 5586, 0, 0, -17, 0, 0, 0, + 0, 0, 0, -35, -169, 5586, 0, -207, 635, 0, + 333, -17, -17, -17, 0, 0, 1702, 0, 554, 418, + 0, -7, 0, 0, 0, 0, 555, 317, 0, 5586, + 644, 495, -35, 566, 568, 3834, 5586, 3834, 5465, 0, + 0, 96, -35, 0, 629, 384, 64, 0, 384, 158, + 3869, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, + 3966, 3966, 3834, 642, 296, 104, 1517, 5586, 63, 5586, + 63, 5586, 5586, 138, 138, 5586, 5586, 138, 138, 116, + 116, 149, 149, 149, -51, 0, 17, 0, 5586, 5586, + 0, 661, 0, 646, 541, 0, 0, 0, 0, -14, + 495, 44, 0, 692, 450, 416, 452, 112, 593, 682, + 0, 374, 0, 74, 5586, 0, 5586, -9, 685, 692, + 3834, 0, 5586, 0, 0, 0, 605, 691, 0, 0, + -35, 5586, 3966, 3966, 138, 138, 138, 138, 641, 697, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 700, 616, 3004, 692, 0, 695, + 0, 706, 712, 980, 652, 629, 630, 0, 0, 5586, + 0, 816, 716, 639, 640, -35, 647, 3834, 0, 5586, + 0, 74, 0, 0, 5586, 5586, 0, 436, 5586, 737, + 739, 569, 744, 726, 727, 748, 749, 451, 0, 0, + 0, 583, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 752, 87, 734, 537, 2406, 3121, 593, 0, 0, + 0, 0, -35, 757, 759, 742, 692, 741, 390, 0, + 3242, 5586, 5586, 692, 0, 442, 464, 0, 0, 5586, + 5586, 745, 429, 0, 0, 753, 435, 0, 766, 770, + 37, -5, -5, 0, 722, 0, 33, -54, 0, 0, + 593, 0, 0, 0, 0, 0, 694, 5586, 436, 693, + 0, 758, 3277, 696, 780, 781, 472, 3393, 3420, 5586, + 451, 714, 0, 579, 0, 519, 87, 512, 629, 87, + 812, 770, 813, 87, 0, 0, 692, 0, 0, 0, + 43, 3834, 0, 692, 5586, 569, 0, 5586, 516, 5586, + 569, 735, 3834, 0, 692, 629, -146, 73, 0, 0, + 0, 770, 519, 519, 818, 750, 0, 0, 0, 43, + 0, 0, 755, 801, 0, 3538, 0, 3573, 502, 127, + 765, 0, 0, 5586, 0, 692, 0, 73, 73, 519, + 0, 834, 754, 0, 0, 0, 0, 5586, 840, 569, + 0, 0, 0, 0, 775, 127, 0, 0, 3693, 776, + 0, 0, 73, -146, 692, 861, 0, 0, 569, 5586, + 845, 0, 0, 0, 0, 0, 0, -114, 779, 569, + 0, 3721, 692, -146, 864, 0, 0, 692, 0, 0, + 794, 0, 692, 795, 0, ); - protected static $yyRindex= array( 845, - 0, 0, 1739, 0, 0, 277, 1918, 0, 753, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, + protected static $yyRindex= array( 1162, + 0, 0, 1344, 0, 0, 337, 1599, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -39, 59, 0, 0, 316, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 927, -54, 758, -54, 0, 0, 0, - 0, 0, 0, 0, -25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, - 0, 759, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 0, 2513, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2032, 1911, 985, 850, 0, - 0, 956, 1703, 0, 468, 0, 0, 0, 0, 0, - 0, 0, -41, 0, 851, -33, 0, 0, 0, 0, + 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -182, 769, 1138, 965, 2103, 2211, 2734, 2296, 2333, 2434, - 0, 0, 0, 0, 0, 0, 1703, 5419, 1771, -30, - 0, 1582, 0, 0, -23, 0, 639, 0, 0, 0, + 0, 0, 0, -40, 427, 0, 0, 276, 0, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 948, -86, 798, -86, 0, 0, 0, + 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, + 0, 800, 831, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -16, 0, 353, 0, 0, 0, 0, 0, + 0, 0, 0, 278, 0, 0, 0, 2706, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2187, 2073, 1067, + 865, 0, 0, 674, 1772, 0, 4, 0, 0, 0, + 0, 0, 0, 0, -42, 0, 884, -32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, + 0, 0, 0, 0, 0, -1, 803, 1125, 1130, 2225, + 2263, 2795, 2300, 2371, 2408, 0, 0, 0, 0, 0, + 0, 1772, 5557, 1800, 11, -19, 0, 1664, 0, 0, + -20, 0, 669, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1882, 0, 1444, - 0, 18, 0, 0, 0, 0, 0, -182, 0, 968, - 0, 0, 0, 0, 0, 0, 457, 0, 777, 0, - 0, 813, 0, 1703, 814, 821, 51, 851, 88, 0, - 0, 0, 1703, 0, 9, 0, 0, 0, 0, 0, - 5, -16, 48, 131, 580, 584, 1093, 1186, 1224, 1435, - 1443, 1563, 1711, 0, 280, 887, 4945, 0, 4961, 0, - 4988, 0, 0, 3069, 4435, 0, 0, 4494, 4523, 4301, - 4338, 4108, 4227, 4264, 2842, 0, 2542, 0, 822, 851, - 0, 1374, 0, 0, 0, 0, 0, 0, 0, 0, - 789, 0, -6, 0, 0, 29, 0, 0, 0, 0, - 699, 851, 0, 791, 0, 0, 789, 1404, 0, 0, - 0, 0, 0, 0, 1472, 0, 0, 1703, 0, 1713, - 1810, 4562, 4731, 4768, 4822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -110, 0, 0, 0, 0, 807, 0, 0, - 874, 0, 0, 0, 0, 0, 181, 0, 0, 0, - 1703, 0, 105, 0, 851, 0, 4752, 0, 0, 851, - 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, + 0, 0, 0, 1965, 0, 903, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 0, -1, 0, 611, 0, + 0, 0, 0, 0, 0, 443, 0, 815, 0, 0, + 846, 0, 1772, 847, 851, 59, 884, 76, 0, 0, + 0, -18, 1772, 0, 20, 0, 0, 0, 0, 0, + 670, -12, 305, 665, 701, 703, 764, 783, 923, 943, + 956, 1204, 135, 0, 2669, 1635, 4888, 0, 4936, 0, + 4977, 0, 0, 2975, 4354, 0, 0, 4428, 4466, 4255, + 4297, 4025, 4132, 4170, 2822, 0, 2523, 0, 853, 884, + 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, + -3, 0, 0, 836, 0, 97, 0, 0, 413, 0, + 0, 0, 0, 2892, 884, 0, 838, 0, 0, 836, + 820, 0, 0, 0, 0, 0, 0, 1547, 0, 0, + 1772, 0, 1456, 1458, 4554, 4681, 4763, 4851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -182, 0, 1316, 0, 0, 0, 0, 1703, 0, 0, - 0, 789, 477, 0, 0, 0, 878, 0, 789, 0, + 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, + 0, 0, 842, 0, 0, 900, 0, 0, 0, 0, + 0, 82, 0, 0, 0, 1772, 0, 164, 0, 884, + 0, 4735, 0, 0, 884, 907, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -7, 0, 0, 898, 0, 899, 899, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 0, 927, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1, 0, 1249, 0, 0, + 0, 0, 1772, 0, 0, 0, 836, 470, 0, 0, + 0, 911, 0, 836, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 340, 0, 0, 932, + 0, 933, 933, 0, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 612, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 0, 0, 340, 0, + 0, 934, 0, 927, 0, 0, 836, 0, 0, 0, + 0, 488, 0, 836, 911, 0, 0, 0, 0, 0, + 0, 0, 517, 0, 836, 340, 0, 0, 0, 0, + 0, 936, 300, 300, 0, 0, 0, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 0, 408, 854, + 0, 0, 0, 0, 0, 836, 0, 0, 0, 300, + 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, + 0, 0, 0, 0, 0, 855, 0, 0, 0, 0, + 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, -7, 0, 0, 901, 0, 894, 0, - 0, 789, 0, 0, 0, 0, 484, 0, 789, 878, - 0, 0, 0, 0, 0, 0, 0, 485, 0, 789, - -7, 0, 0, 0, 0, 0, 902, 192, 192, 0, - 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, - 0, 0, 0, 405, 824, 0, 0, 0, 0, 0, - 789, 0, 0, 0, 192, 0, 0, 0, 0, 0, - 0, 0, 851, 0, 0, 0, 0, 0, 0, 0, - 826, 0, 0, 0, 0, 0, 0, 0, 0, 789, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -104, 0, 0, - 0, 0, -104, 0, 0, 0, 0, 789, 0, 0, + 0, 0, -108, 0, 0, 0, 0, -108, 0, 0, + 0, 0, 836, 0, 0, ); protected static $yyGindex= array(0, - 0, 0, 0, -4, 0, 0, 937, 561, 568, 32, - 946, -60, 0, 877, 853, -143, 0, 0, 0, 0, - -114, -312, 0, 0, 0, 3080, 0, 618, 0, 0, - 76, 294, -372, 0, 0, -58, -399, 475, 488, 0, - -183, -167, 0, 454, 0, 0, 0, 0, 915, 917, - 0, 507, 0, 868, -150, -76, 367, 0, 140, -211, - 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 489, 472, - 0, 391, 0, 0, 0, 0, 0, 436, 448, 0, - 0, 0, 0, 0, 803, 815, 634, 0, 291, 0, - 332, 0, 808, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 724, 0, 0, 0, 762, 0, 770, - 0, 0, 0, 0, 0, 0, 867, 0, 986, + 0, 0, 0, -4, 0, 0, 976, 536, 613, 39, + 988, -60, 0, 921, 901, -126, 0, 0, 0, 0, + -115, -304, 0, 0, 0, 50, 0, 656, 0, 0, + 83, 1739, -337, 0, 0, -63, -383, 506, 525, 0, + 8, -379, 0, 478, 0, 0, 0, 0, 953, 960, + 0, 487, 0, 915, -153, -2, -65, 0, 904, -139, + 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 511, 505, + 0, 423, 0, 0, 0, 0, 0, 460, 461, 0, + 0, 0, 0, 0, 857, 858, 679, 0, 287, 0, + -27, 0, 843, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 760, 0, 0, 0, 797, 0, 806, + 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, + 1025, ); protected static $yyTable = array(11, - 75, 76, 77, 235, 243, 168, 16, 222, 97, 234, - 222, 570, 93, 52, 110, 222, 619, 217, 439, 13, - 109, 50, 523, 104, 210, 248, 310, 210, 323, 47, - 48, 355, 299, 57, 228, 57, 57, 119, 480, 122, - 228, 210, 210, 413, 159, 209, 93, 93, 209, 57, - 12, 233, 57, 17, 232, 249, 74, 74, 74, 122, - 299, 236, 209, 209, 81, 82, 92, 1, 26, 112, - 54, 356, 32, 59, 339, 571, 210, 309, 165, 74, - 65, 54, 54, 233, 17, 57, 5, 32, 240, 340, - 15, 240, 74, 74, 238, 74, 521, 209, 17, 510, - 92, 92, 17, 309, 161, 240, 240, 366, 210, 122, - 236, 357, 544, 225, 214, 74, 228, 346, 223, 221, - 262, 222, 60, 224, 160, 34, 412, 225, 214, 209, - 487, 239, 223, 221, 190, 222, 217, 224, 219, 35, - 240, 546, 236, 238, 91, 58, 39, 127, 58, 309, - 217, 17, 219, 32, 16, 34, 36, 482, 244, 74, - 522, 74, 112, 58, 307, 74, 316, 69, 567, 367, - 213, 241, 240, 525, 241, 238, 74, 225, 142, 112, - 239, 40, 223, 221, 213, 222, 70, 224, 241, 241, - 274, 398, 74, 399, 112, 310, 397, 58, 34, 451, - 212, 174, 228, 175, 176, 177, 178, 179, 180, 569, - 182, 51, 239, 105, 191, 68, 228, 112, 165, 225, - 227, 310, 74, 241, 223, 221, 74, 222, 307, 224, - 142, 12, 620, 217, 166, 310, 310, 310, 9, 231, - 210, 225, 217, 71, 219, 231, 223, 388, 74, 441, - 101, 224, 167, 17, 449, 241, 26, 78, 267, 450, - 269, 209, 110, 110, 10, 57, 228, 310, 109, 109, - 322, 15, 74, 79, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 295, 296, 297, - 299, 301, 304, 305, 308, 309, 310, 311, 312, 313, - 314, 315, 227, 317, 240, 39, 497, 389, 228, 299, - 229, 230, 80, 17, 101, 293, 229, 230, 278, 390, - 266, 231, 168, 266, 168, 17, 305, 391, 97, 168, - 228, 9, 168, 17, 168, 16, 341, 266, 266, 106, - 266, 9, 266, 142, 305, 348, 225, 214, 9, 324, - 325, 223, 221, 165, 222, 329, 224, 10, 198, 71, - 184, 58, 307, 9, 573, 574, 34, 10, 471, 217, - 16, 219, 266, 360, 10, 361, 17, 362, 363, 559, - 168, 364, 365, 233, 17, 49, 333, 241, 227, 10, - 114, 598, 229, 230, 293, 142, 111, 210, 210, 513, - 517, 517, 227, 266, 266, 596, 597, 231, 71, 514, - 110, 226, 10, 109, 168, 168, 509, 142, 209, 142, - 515, 231, 98, 74, 112, 403, 495, 568, 472, 494, - 611, 350, 601, 74, 407, 228, 184, 157, 547, 157, - 309, 55, 34, 472, 157, 435, 100, 157, 101, 157, - 433, 431, 227, 432, 183, 434, 107, 245, 334, 114, - 108, 240, 240, 386, 120, 507, 309, 10, 506, 34, - 442, 231, 74, 74, 263, 124, 220, 218, 229, 230, - 142, 122, 155, 12, 164, 142, 293, 215, 216, 456, - 220, 218, 229, 230, 227, 157, 46, 226, 324, 325, - 44, 215, 216, 552, 553, 193, 13, 74, 173, 14, - 74, 226, 309, 231, 74, 44, 227, 140, 272, 163, - 140, 56, 426, 15, 141, 144, 173, 141, 144, 157, - 157, 165, 142, 498, 436, 231, 266, 74, 612, 169, - 503, 504, 229, 230, 241, 241, 335, 588, 589, 168, - 168, 168, 168, 168, 168, 130, 460, 140, 625, 170, - 173, 226, 139, 193, 172, 128, 352, 129, 527, 354, - 43, 44, 45, 37, 38, 168, 309, 309, 309, 44, - 538, 44, 220, 218, 229, 230, 185, 16, 197, 130, - 240, 140, 173, 9, 74, 343, 139, 318, 198, 128, - 241, 129, 168, 226, 349, 142, 229, 230, 561, 242, - 563, 157, 158, 83, 74, 105, 64, 66, 67, 10, - 242, 227, 246, 242, 243, 226, 275, 243, 257, 168, - 168, 168, 168, 270, 276, 168, 277, 242, 242, 328, - 231, 243, 243, 193, 594, 459, 331, 83, 131, 168, - 168, 168, 168, 332, 168, 168, 168, 83, 142, 168, - 168, 168, 168, 168, 157, 157, 157, 157, 157, 157, - 460, 342, 242, 338, 344, 460, 243, 350, 345, 359, - 617, 368, 131, 266, 266, 266, 266, 266, 183, 406, - 157, 168, 168, 266, 266, 266, 266, 266, 266, 385, - 393, 395, 405, 387, 242, 401, 404, 408, 243, 220, - 218, 229, 230, 409, 423, 424, 427, 157, 429, 168, - 215, 216, 430, 438, 460, 440, 443, 453, 444, 445, - 226, 447, 446, 457, 458, 462, 83, 465, 463, 201, - 464, 466, 201, 460, 157, 157, 157, 157, 479, 467, - 157, 309, 482, 489, 460, 481, 201, 201, 490, 201, - 493, 201, 491, 500, 157, 157, 157, 157, 501, 157, - 157, 157, 505, 508, 157, 511, 157, 157, 157, 488, - 512, 520, 173, 86, 87, 88, 89, 90, 526, 17, - 17, 201, 17, 17, 17, 17, 17, 17, 529, 17, - 530, 532, 533, 534, 541, 548, 157, 157, 10, 535, - 17, 17, 17, 17, 17, 17, 173, 86, 87, 88, - 89, 90, 542, 201, 549, 540, 85, 86, 87, 88, - 89, 90, 565, 545, 157, 135, 242, 562, 575, 583, - 243, 576, 10, 17, 19, 17, 17, 582, 225, 586, - 593, 600, 10, 223, 221, 599, 222, 602, 224, 615, - 607, 618, 138, 369, 370, 371, 91, 610, 134, 135, - 621, 217, 626, 219, 628, 17, 17, 17, 17, 630, - 30, 28, 372, 373, 374, 375, 172, 376, 377, 126, - 216, 172, 378, 41, 379, 216, 138, 369, 370, 371, - 176, 40, 134, 296, 297, 156, 86, 87, 88, 89, - 90, 298, 84, 109, 176, 172, 372, 373, 374, 375, - 309, 376, 377, 126, 132, 133, 378, 268, 379, 51, - 268, 10, 57, 176, 91, 2, 172, 228, 92, 88, - 145, 90, 89, 33, 268, 268, 309, 268, 147, 268, - 148, 29, 380, 102, 125, 201, 396, 524, 132, 133, - 309, 309, 309, 299, 299, 518, 299, 299, 299, 299, - 299, 299, 550, 299, 73, 72, 162, 539, 400, 268, - 268, 608, 528, 265, 299, 299, 380, 299, 299, 299, - 580, 84, 309, 242, 242, 266, 174, 243, 243, 174, - 353, 560, 581, 326, 279, 200, 564, 321, 200, 17, - 268, 268, 17, 19, 174, 0, 46, 299, 83, 299, - 299, 187, 187, 200, 187, 187, 187, 187, 187, 187, - 187, 187, 247, 20, 21, 22, 250, 24, 25, 0, - 26, 0, 187, 187, 187, 187, 187, 187, 174, 299, - 299, 299, 299, 0, 0, 603, 27, 200, 317, 0, - 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 616, 187, 0, 187, 187, 0, - 174, 0, 17, 17, 17, 622, 0, 251, 0, 200, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 201, 201, 201, 201, 201, 0, 187, 187, - 187, 0, 201, 201, 201, 201, 201, 201, 0, 0, - 0, 0, 0, 227, 2, 2, 2, 2, 2, 2, - 0, 2, 0, 244, 0, 0, 244, 0, 0, 0, - 0, 0, 231, 268, 2, 2, 2, 0, 2, 0, - 244, 244, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 0, 17, 17, 17, 0, 17, 17, 17, 17, - 17, 17, 0, 17, 222, 222, 0, 0, 222, 222, - 222, 222, 222, 299, 222, 244, 299, 470, 86, 87, - 88, 89, 90, 0, 0, 222, 222, 17, 222, 222, - 17, 0, 20, 21, 22, 23, 24, 25, 0, 26, - 0, 220, 218, 229, 230, 0, 0, 244, 0, 0, - 0, 200, 215, 216, 0, 27, 246, 317, 17, 246, - 222, 222, 226, 0, 0, 0, 299, 299, 299, 0, - 0, 185, 0, 246, 246, 0, 299, 317, 317, 317, - 317, 317, 317, 317, 317, 0, 299, 299, 299, 0, - 0, 222, 222, 222, 245, 0, 299, 245, 0, 0, - 317, 0, 20, 21, 22, 23, 24, 25, 246, 26, - 0, 245, 245, 0, 0, 0, 0, 0, 0, 0, - 268, 268, 268, 268, 268, 27, 187, 0, 0, 317, - 268, 268, 268, 268, 268, 268, 0, 0, 0, 0, - 246, 0, 0, 0, 0, 187, 245, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 0, 0, 299, 299, 0, - 299, 299, 299, 299, 299, 299, 0, 299, 245, 244, - 0, 0, 32, 32, 0, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32, 32, 32, 32, 32, 32, 0, - 0, 0, 0, 0, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 19, 222, 187, 187, 0, 187, 187, - 187, 187, 187, 187, 187, 187, 32, 0, 32, 32, - 286, 286, 0, 0, 286, 286, 286, 286, 286, 286, - 286, 19, 0, 0, 0, 0, 0, 252, 0, 0, - 0, 286, 286, 286, 286, 286, 286, 0, 0, 32, - 32, 32, 246, 0, 214, 0, 0, 214, 0, 222, - 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, - 19, 214, 214, 0, 286, 0, 286, 286, 222, 0, - 0, 0, 0, 0, 0, 247, 0, 17, 247, 0, - 245, 0, 0, 248, 176, 0, 248, 176, 0, 0, - 0, 0, 247, 247, 485, 0, 214, 286, 286, 286, - 248, 248, 176, 0, 0, 0, 244, 244, 183, 183, - 0, 0, 183, 183, 183, 183, 183, 183, 183, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 214, 183, - 183, 183, 183, 183, 183, 248, 176, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 0, 17, 222, 222, - 0, 222, 222, 222, 222, 222, 222, 222, 222, 247, - 0, 0, 183, 0, 183, 183, 0, 248, 176, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 22, 250, 24, 25, 0, 26, - 0, 0, 0, 0, 0, 183, 183, 183, 0, 246, - 246, 0, 0, 249, 0, 27, 249, 0, 0, 0, - 20, 21, 22, 250, 24, 25, 0, 26, 99, 99, - 249, 249, 99, 99, 99, 99, 99, 32, 99, 0, - 286, 0, 0, 27, 0, 0, 251, 245, 245, 99, - 99, 99, 99, 99, 0, 0, 32, 0, 0, 20, - 21, 22, 250, 24, 25, 249, 26, 0, 0, 0, - 214, 0, 0, 0, 251, 0, 0, 0, 0, 0, - 0, 0, 27, 0, 99, 99, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 249, 0, 0, - 0, 247, 0, 0, 0, 0, 0, 0, 0, 248, - 0, 0, 0, 251, 286, 99, 99, 99, 0, 0, - 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 0, 0, 32, 32, 183, 32, - 32, 32, 32, 32, 32, 32, 32, 0, 0, 280, - 280, 0, 0, 280, 280, 280, 280, 280, 0, 280, - 0, 177, 0, 258, 177, 0, 258, 0, 0, 0, - 280, 280, 280, 280, 280, 280, 0, 0, 177, 177, - 258, 258, 0, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 0, 183, 286, 286, 0, 286, 286, 286, - 286, 286, 286, 286, 286, 280, 280, 0, 0, 0, - 0, 0, 183, 177, 0, 258, 0, 187, 187, 0, - 187, 187, 187, 187, 220, 187, 187, 187, 0, 249, - 0, 0, 0, 0, 0, 0, 280, 280, 280, 5, - 187, 187, 187, 187, 0, 177, 0, 258, 99, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, - 259, 0, 0, 259, 0, 0, 248, 248, 0, 0, - 0, 187, 0, 0, 187, 0, 0, 259, 259, 0, - 0, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 0, 0, 183, 183, 0, 183, 183, 183, 183, 183, - 183, 183, 183, 99, 187, 0, 187, 0, 0, 0, - 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, - 0, 99, 99, 0, 0, 0, 0, 0, 282, 282, - 0, 99, 282, 282, 282, 282, 282, 0, 282, 0, - 0, 0, 0, 0, 259, 0, 0, 0, 0, 282, - 282, 282, 282, 282, 282, 0, 0, 229, 229, 0, - 229, 0, 229, 229, 229, 229, 229, 229, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, - 229, 229, 229, 229, 282, 282, 249, 249, 0, 0, - 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 0, 0, 99, 99, 0, 99, 99, 99, 99, 99, - 99, 229, 99, 229, 229, 282, 282, 282, 6, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 5, 5, - 5, 5, 5, 5, 0, 5, 0, 185, 0, 0, - 0, 0, 0, 280, 229, 0, 229, 0, 5, 5, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 259, 0, 222, 222, - 0, 0, 0, 222, 222, 222, 222, 0, 222, 0, - 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 222, 222, 222, 222, 0, 0, 0, 0, 0, - 0, 187, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 0, 0, 280, 280, 0, 280, 280, 280, 280, - 280, 280, 222, 280, 222, 222, 258, 258, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 282, 274, - 274, 0, 0, 274, 274, 274, 274, 274, 0, 274, - 0, 0, 0, 0, 0, 222, 0, 222, 0, 0, - 274, 274, 274, 274, 274, 274, 0, 0, 0, 0, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 0, - 0, 187, 187, 0, 187, 187, 187, 187, 187, 187, - 187, 187, 0, 282, 0, 274, 274, 6, 6, 6, - 6, 6, 6, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 282, 0, 0, 0, 0, 6, 6, 6, - 6, 0, 229, 259, 259, 0, 274, 274, 0, 0, + 75, 76, 77, 249, 241, 16, 173, 93, 222, 634, + 240, 222, 222, 110, 97, 50, 109, 52, 13, 1, + 217, 253, 113, 104, 300, 309, 382, 308, 210, 47, + 48, 210, 113, 309, 113, 57, 26, 121, 315, 124, + 310, 93, 93, 300, 173, 210, 210, 257, 129, 428, + 233, 216, 334, 335, 308, 238, 74, 74, 74, 258, + 57, 124, 173, 57, 81, 82, 92, 161, 454, 495, + 538, 300, 5, 112, 234, 199, 170, 54, 236, 74, + 210, 34, 233, 112, 383, 112, 35, 65, 54, 54, + 12, 536, 74, 74, 110, 74, 173, 109, 163, 231, + 92, 92, 238, 113, 229, 227, 333, 228, 74, 230, + 231, 220, 210, 9, 124, 229, 227, 74, 228, 239, + 230, 315, 223, 359, 225, 271, 113, 236, 173, 199, + 15, 585, 427, 223, 170, 225, 196, 199, 91, 10, + 231, 220, 234, 559, 36, 229, 227, 162, 228, 525, + 230, 238, 231, 502, 112, 537, 17, 229, 284, 236, + 250, 74, 230, 223, 281, 225, 74, 219, 239, 39, + 74, 328, 326, 40, 231, 177, 380, 112, 177, 229, + 227, 74, 228, 238, 230, 144, 170, 17, 234, 379, + 196, 561, 177, 177, 16, 586, 540, 218, 74, 234, + 239, 413, 170, 414, 58, 497, 39, 58, 611, 612, + 179, 51, 180, 181, 182, 183, 184, 185, 582, 187, + 59, 199, 58, 197, 26, 635, 412, 177, 74, 234, + 68, 34, 74, 626, 254, 12, 217, 300, 309, 144, + 308, 234, 9, 69, 210, 356, 309, 74, 74, 74, + 334, 335, 346, 310, 9, 362, 58, 74, 315, 177, + 233, 110, 110, 234, 109, 109, 464, 308, 10, 60, + 276, 465, 278, 70, 234, 15, 57, 197, 10, 237, + 10, 456, 74, 332, 315, 71, 466, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 305, 306, 307, 309, 311, 314, 315, 318, 319, 320, + 321, 322, 323, 324, 325, 168, 327, 168, 512, 71, + 300, 99, 168, 9, 347, 168, 530, 168, 303, 584, + 315, 78, 231, 220, 487, 171, 313, 229, 227, 16, + 228, 315, 230, 421, 55, 240, 9, 237, 240, 10, + 235, 236, 354, 172, 316, 223, 17, 225, 101, 144, + 352, 361, 240, 240, 204, 79, 528, 315, 71, 16, + 10, 403, 10, 168, 233, 353, 529, 17, 486, 49, + 57, 17, 80, 57, 239, 233, 567, 568, 461, 219, + 373, 574, 374, 237, 375, 376, 306, 240, 377, 378, + 313, 210, 210, 288, 237, 316, 97, 168, 168, 417, + 83, 303, 144, 315, 306, 233, 17, 368, 235, 236, + 58, 234, 101, 170, 56, 339, 487, 233, 17, 240, + 510, 404, 57, 509, 237, 503, 17, 144, 74, 144, + 157, 583, 157, 405, 616, 418, 237, 157, 74, 233, + 157, 406, 157, 189, 422, 401, 32, 369, 113, 34, + 233, 34, 226, 224, 235, 236, 17, 106, 237, 522, + 17, 32, 521, 226, 224, 235, 236, 98, 34, 237, + 524, 111, 46, 232, 221, 222, 44, 74, 74, 532, + 532, 100, 457, 105, 232, 363, 124, 370, 157, 603, + 604, 44, 144, 226, 224, 235, 236, 144, 303, 112, + 140, 471, 107, 140, 221, 222, 507, 235, 236, 17, + 189, 122, 74, 514, 232, 74, 34, 562, 141, 74, + 108, 141, 157, 157, 313, 157, 232, 32, 188, 235, + 236, 165, 168, 168, 168, 168, 168, 168, 37, 38, + 235, 236, 74, 627, 144, 513, 101, 144, 232, 126, + 144, 240, 518, 519, 166, 44, 113, 44, 168, 232, + 588, 589, 365, 640, 316, 367, 43, 44, 45, 85, + 86, 87, 88, 89, 90, 170, 566, 174, 315, 167, + 542, 159, 160, 573, 175, 168, 177, 613, 190, 203, + 316, 132, 553, 142, 581, 10, 204, 233, 141, 74, + 246, 130, 247, 131, 316, 316, 316, 112, 248, 91, + 105, 252, 168, 168, 168, 168, 237, 144, 168, 74, + 576, 255, 578, 266, 12, 610, 315, 315, 315, 315, + 279, 285, 168, 168, 168, 168, 316, 168, 168, 168, + 323, 287, 168, 168, 168, 168, 168, 13, 286, 83, + 14, 64, 66, 67, 629, 84, 609, 157, 157, 157, + 157, 157, 157, 83, 15, 338, 344, 345, 9, 351, + 144, 575, 639, 355, 168, 168, 579, 642, 357, 363, + 358, 474, 644, 157, 133, 226, 224, 235, 236, 372, + 381, 323, 632, 188, 10, 241, 221, 222, 241, 400, + 209, 402, 168, 209, 174, 408, 232, 174, 240, 240, + 157, 410, 241, 241, 132, 416, 142, 209, 209, 419, + 420, 141, 174, 423, 130, 618, 131, 424, 16, 438, + 439, 242, 453, 243, 242, 444, 243, 157, 157, 157, + 157, 445, 455, 157, 631, 442, 458, 241, 242, 242, + 243, 243, 209, 459, 460, 637, 174, 157, 157, 157, + 157, 462, 157, 157, 157, 468, 472, 157, 473, 157, + 157, 157, 83, 477, 478, 479, 9, 480, 481, 241, + 482, 494, 496, 242, 209, 243, 497, 504, 174, 505, + 506, 508, 515, 516, 244, 520, 526, 244, 315, 157, + 157, 523, 10, 527, 535, 544, 545, 133, 541, 548, + 547, 244, 244, 246, 549, 242, 246, 243, 178, 86, + 87, 88, 89, 90, 315, 550, 555, 157, 556, 557, + 246, 246, 485, 86, 87, 88, 89, 90, 315, 315, + 315, 560, 563, 564, 10, 577, 244, 580, 590, 598, + 214, 17, 17, 214, 17, 17, 17, 17, 17, 17, + 323, 17, 601, 614, 591, 246, 615, 214, 214, 597, + 315, 137, 17, 17, 17, 17, 17, 17, 244, 608, + 323, 323, 323, 323, 323, 323, 323, 323, 617, 622, + 625, 630, 633, 636, 641, 216, 19, 246, 140, 384, + 385, 386, 214, 323, 136, 17, 643, 17, 17, 645, + 30, 241, 28, 172, 172, 216, 209, 41, 387, 388, + 389, 390, 176, 391, 392, 128, 296, 297, 393, 40, + 394, 298, 323, 176, 214, 176, 176, 17, 17, 17, + 17, 178, 86, 87, 88, 89, 90, 242, 57, 243, + 109, 176, 172, 245, 51, 176, 245, 91, 83, 172, + 134, 135, 92, 88, 90, 145, 89, 10, 147, 148, + 245, 245, 33, 247, 300, 300, 247, 300, 300, 300, + 300, 300, 300, 29, 300, 176, 248, 102, 395, 248, + 247, 247, 127, 539, 137, 300, 300, 411, 300, 300, + 300, 565, 73, 248, 248, 245, 450, 533, 72, 543, + 244, 448, 446, 164, 447, 554, 449, 176, 623, 595, + 596, 140, 384, 385, 386, 247, 415, 136, 300, 246, + 300, 300, 274, 275, 336, 289, 366, 245, 248, 331, + 256, 387, 388, 389, 390, 46, 391, 392, 128, 0, + 0, 393, 0, 394, 0, 0, 0, 247, 0, 0, + 300, 300, 300, 300, 0, 0, 214, 0, 241, 241, + 248, 17, 0, 209, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 134, 135, 20, 21, 22, 259, 24, + 25, 0, 26, 187, 187, 451, 187, 187, 187, 187, + 187, 187, 187, 187, 242, 242, 243, 243, 27, 0, + 0, 395, 0, 0, 187, 187, 187, 187, 187, 187, + 0, 0, 0, 0, 17, 17, 17, 158, 86, 87, + 88, 89, 90, 0, 17, 0, 0, 0, 0, 260, + 0, 0, 0, 0, 17, 17, 17, 187, 0, 187, + 187, 222, 222, 10, 17, 222, 222, 222, 17, 222, + 200, 222, 0, 200, 0, 0, 0, 244, 244, 245, + 0, 0, 222, 222, 17, 222, 222, 17, 200, 0, + 187, 187, 187, 0, 0, 0, 246, 246, 0, 247, + 0, 0, 19, 0, 300, 0, 0, 300, 0, 0, + 0, 0, 248, 0, 0, 17, 0, 222, 222, 0, + 0, 0, 200, 84, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 0, 17, 17, 17, 0, 17, 17, + 17, 17, 17, 17, 249, 17, 0, 249, 222, 222, + 222, 0, 2, 0, 200, 0, 0, 300, 300, 300, + 0, 249, 249, 0, 0, 0, 0, 300, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 300, 300, + 0, 0, 0, 0, 0, 32, 32, 300, 32, 32, + 32, 32, 32, 32, 32, 32, 249, 0, 0, 0, + 0, 441, 0, 0, 0, 0, 32, 32, 32, 32, + 32, 32, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 0, 26, 185, 0, 0, 0, 0, 249, 0, + 0, 0, 0, 0, 0, 475, 245, 245, 27, 32, + 0, 32, 32, 0, 0, 0, 0, 300, 300, 300, + 300, 300, 300, 300, 300, 300, 247, 247, 300, 300, + 0, 300, 300, 300, 300, 300, 300, 0, 300, 248, + 248, 0, 32, 32, 32, 0, 0, 0, 187, 0, + 0, 17, 0, 0, 0, 0, 200, 0, 0, 0, + 0, 20, 21, 22, 23, 24, 25, 187, 26, 0, + 0, 0, 286, 286, 0, 0, 286, 286, 286, 286, + 286, 286, 286, 0, 27, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 286, 286, 286, 286, 286, 0, + 0, 0, 0, 0, 5, 0, 222, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 0, 2, 475, + 0, 0, 0, 0, 475, 222, 286, 0, 286, 286, + 249, 2, 2, 2, 17, 2, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 0, 0, 187, 187, 0, + 187, 187, 187, 187, 187, 187, 187, 187, 0, 286, + 286, 286, 0, 0, 0, 0, 258, 0, 259, 258, + 0, 259, 0, 475, 0, 32, 0, 0, 0, 0, + 0, 0, 0, 258, 258, 259, 259, 0, 0, 0, + 0, 0, 475, 0, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 475, 17, 222, 222, 0, 222, 222, + 222, 222, 222, 222, 222, 222, 0, 0, 258, 0, + 259, 19, 0, 231, 0, 0, 0, 0, 229, 227, + 32, 228, 0, 230, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 225, 32, + 258, 0, 259, 183, 183, 261, 0, 183, 183, 183, + 183, 183, 183, 183, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 183, 183, 183, 183, 183, + 0, 0, 0, 0, 0, 0, 0, 249, 249, 0, + 0, 0, 286, 5, 5, 5, 5, 5, 5, 0, + 5, 0, 0, 0, 0, 0, 0, 183, 0, 183, + 183, 0, 234, 5, 5, 5, 5, 0, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, + 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, + 183, 183, 183, 0, 0, 268, 0, 286, 268, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 268, 268, 0, 268, 286, 268, 0, 0, + 99, 99, 0, 0, 99, 99, 99, 99, 99, 0, + 99, 0, 258, 0, 259, 0, 0, 0, 0, 0, + 0, 99, 99, 99, 99, 99, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 275, 275, 0, - 0, 275, 275, 275, 275, 275, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 275, - 275, 275, 275, 275, 0, 0, 0, 0, 0, 0, - 0, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 0, 0, 282, 282, 0, 282, 282, 282, 282, 282, - 282, 0, 282, 275, 275, 0, 0, 0, 0, 0, - 229, 229, 229, 229, 229, 229, 229, 229, 229, 0, - 0, 229, 229, 0, 229, 229, 229, 229, 229, 229, - 229, 229, 273, 273, 275, 275, 273, 273, 273, 273, - 273, 0, 273, 222, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 273, 273, 273, 273, 273, 273, 274, - 0, 0, 222, 0, 0, 0, 0, 0, 0, 276, - 276, 0, 0, 276, 276, 276, 276, 276, 0, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 273, 273, - 276, 276, 276, 276, 276, 276, 0, 0, 0, 0, + 20, 21, 22, 259, 24, 25, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 99, 99, 268, 268, + 0, 0, 0, 27, 0, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 0, 0, 286, 286, 0, 286, + 286, 286, 286, 286, 286, 286, 286, 99, 99, 99, + 0, 0, 19, 0, 260, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 0, 0, 0, 0, 280, 280, + 0, 0, 280, 280, 280, 280, 280, 0, 280, 0, + 0, 0, 0, 0, 0, 0, 343, 0, 233, 280, + 280, 280, 280, 280, 280, 115, 187, 187, 0, 187, + 187, 187, 187, 220, 187, 187, 187, 237, 0, 0, + 0, 168, 0, 0, 0, 0, 0, 0, 183, 187, + 187, 187, 187, 0, 280, 280, 0, 0, 0, 258, + 258, 259, 259, 0, 0, 0, 0, 183, 6, 6, + 6, 6, 6, 6, 0, 6, 0, 0, 0, 0, + 187, 268, 0, 187, 0, 280, 280, 280, 6, 6, + 6, 6, 0, 0, 251, 0, 0, 0, 0, 115, + 0, 0, 0, 0, 0, 0, 226, 224, 235, 236, + 99, 0, 0, 187, 272, 187, 0, 221, 222, 0, + 0, 0, 0, 282, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 0, 0, 183, 183, 0, + 183, 183, 183, 183, 183, 183, 183, 183, 0, 0, + 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, + 0, 20, 21, 22, 259, 24, 25, 0, 26, 0, + 340, 341, 342, 99, 99, 0, 0, 0, 0, 0, + 348, 282, 282, 99, 27, 282, 282, 282, 282, 282, + 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 282, 282, 282, 282, 282, 282, 280, 0, + 0, 0, 0, 0, 0, 260, 0, 0, 268, 268, + 268, 268, 268, 0, 0, 0, 0, 0, 268, 268, + 268, 268, 268, 268, 0, 0, 185, 282, 282, 0, + 0, 0, 0, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 0, 0, 99, 99, 0, 99, 99, 99, + 99, 99, 99, 280, 99, 0, 0, 0, 282, 282, + 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 229, + 229, 187, 229, 0, 229, 229, 229, 229, 229, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 0, 0, 0, 273, - 273, 0, 0, 0, 0, 276, 276, 0, 0, 0, - 0, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 0, 17, 222, 222, 0, 222, 222, 222, 222, 222, - 222, 222, 222, 0, 0, 0, 276, 276, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, - 277, 277, 0, 0, 277, 277, 277, 277, 277, 0, - 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 277, 277, 277, 277, 277, 277, 0, 0, 0, - 0, 0, 274, 274, 0, 0, 274, 274, 274, 274, - 274, 0, 0, 274, 274, 0, 274, 274, 274, 274, - 274, 274, 275, 274, 0, 0, 277, 277, 0, 0, + 187, 0, 229, 229, 229, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, - 199, 0, 273, 199, 199, 0, 199, 277, 277, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 199, 199, 199, 199, 199, 199, 0, 0, 265, 265, - 0, 0, 265, 265, 265, 265, 265, 0, 265, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 265, 265, 265, 265, 265, 199, 199, 273, 0, 0, - 275, 275, 0, 0, 275, 275, 275, 275, 275, 0, - 0, 275, 275, 0, 275, 275, 275, 275, 275, 275, - 0, 275, 0, 0, 265, 265, 199, 199, 0, 0, - 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 0, 229, 229, 0, 0, 0, + 0, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 0, 0, 280, 280, 0, 280, 280, 280, 280, 280, + 280, 0, 280, 0, 0, 0, 229, 0, 229, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 0, 0, + 187, 187, 0, 187, 187, 187, 187, 187, 187, 187, + 187, 282, 0, 222, 222, 0, 0, 0, 222, 222, + 222, 222, 0, 222, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 222, 222, 222, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 265, 0, 0, 0, + 0, 274, 274, 0, 0, 274, 274, 274, 274, 274, + 0, 274, 0, 0, 0, 0, 282, 222, 0, 222, + 222, 0, 274, 274, 274, 274, 274, 274, 0, 0, + 0, 0, 0, 0, 0, 282, 0, 0, 0, 275, + 275, 0, 0, 275, 275, 275, 275, 275, 0, 275, + 222, 0, 222, 0, 0, 0, 0, 274, 274, 0, + 275, 275, 275, 275, 275, 275, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, + 273, 273, 273, 273, 273, 0, 273, 0, 274, 274, + 0, 0, 0, 0, 0, 275, 275, 273, 273, 273, + 273, 273, 273, 0, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 0, 0, 282, 282, 0, 282, 282, + 282, 282, 282, 282, 229, 282, 275, 275, 0, 0, + 0, 0, 273, 273, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 0, 0, 0, 276, 276, 0, + 0, 276, 276, 276, 276, 276, 0, 276, 0, 0, + 0, 0, 0, 273, 273, 0, 0, 0, 276, 276, + 276, 276, 276, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 277, 277, 0, 0, 277, 277, + 277, 277, 277, 0, 277, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 276, 277, 277, 277, 277, 277, + 277, 0, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 274, 0, 229, 229, 0, 229, 229, 229, 229, + 229, 229, 229, 229, 276, 276, 19, 0, 222, 0, + 277, 277, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 222, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 500, 277, 277, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 0, 0, 0, 0, 273, 273, 0, 0, 273, - 273, 273, 273, 273, 0, 0, 273, 273, 0, 273, - 273, 273, 273, 273, 273, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 273, 0, 0, 265, + 265, 0, 0, 265, 265, 265, 265, 265, 0, 265, + 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, + 265, 265, 265, 265, 265, 265, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 0, 17, 222, 222, 0, + 222, 222, 222, 222, 222, 222, 222, 222, 0, 0, + 0, 273, 0, 0, 0, 265, 265, 0, 0, 0, + 0, 0, 0, 0, 274, 274, 0, 276, 274, 274, + 274, 274, 274, 0, 0, 274, 274, 0, 274, 274, + 274, 274, 274, 274, 0, 274, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 276, 276, 0, 0, 276, 276, 276, 276, - 276, 0, 0, 276, 276, 277, 276, 276, 276, 276, - 276, 276, 0, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, - 272, 272, 0, 0, 272, 272, 272, 272, 272, 0, - 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 272, 272, 272, 272, 272, 272, 0, 265, 0, - 0, 0, 0, 0, 0, 225, 214, 0, 0, 273, - 223, 221, 0, 222, 0, 224, 0, 0, 0, 0, - 0, 0, 0, 0, 199, 0, 272, 272, 217, 201, - 219, 211, 0, 277, 277, 0, 0, 277, 277, 277, - 277, 277, 0, 199, 277, 277, 0, 277, 277, 277, - 277, 277, 277, 265, 277, 0, 0, 272, 272, 0, - 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 271, 271, + 0, 0, 275, 275, 277, 0, 275, 275, 275, 275, + 275, 0, 0, 275, 275, 0, 275, 275, 275, 275, + 275, 275, 276, 275, 0, 20, 21, 22, 259, 24, + 25, 0, 26, 0, 0, 0, 0, 0, 0, 273, + 273, 0, 0, 273, 273, 273, 273, 273, 27, 266, + 273, 273, 266, 273, 273, 273, 273, 273, 273, 277, + 273, 0, 0, 0, 0, 0, 266, 266, 0, 266, + 0, 266, 0, 0, 0, 0, 0, 0, 0, 260, + 0, 0, 199, 199, 0, 0, 199, 199, 0, 199, + 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 0, 199, 199, 199, 199, 199, 199, 0, + 276, 276, 0, 0, 276, 276, 276, 276, 276, 265, + 0, 276, 276, 0, 276, 276, 276, 276, 276, 276, + 0, 276, 266, 266, 0, 0, 0, 0, 199, 199, + 0, 0, 0, 0, 0, 0, 0, 277, 277, 0, + 0, 277, 277, 277, 277, 277, 0, 0, 277, 277, + 0, 277, 277, 277, 277, 277, 277, 0, 277, 199, + 199, 272, 272, 0, 265, 272, 272, 272, 272, 272, + 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 272, 272, 272, 272, 272, 272, 271, 271, 0, 0, 271, 271, 271, 271, 271, 0, 271, 0, - 0, 0, 212, 0, 228, 0, 0, 0, 0, 271, - 271, 271, 271, 271, 271, 0, 0, 0, 0, 0, - 0, 0, 199, 199, 0, 0, 199, 199, 199, 199, - 199, 0, 0, 199, 199, 0, 199, 199, 199, 199, - 199, 199, 0, 199, 271, 271, 0, 0, 0, 0, - 0, 265, 265, 0, 0, 265, 265, 265, 265, 265, - 0, 0, 265, 265, 0, 265, 265, 265, 265, 265, - 265, 0, 265, 0, 0, 271, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 214, 0, 0, 0, - 223, 221, 0, 222, 0, 224, 0, 0, 0, 0, - 272, 0, 0, 0, 0, 0, 261, 0, 217, 201, - 219, 211, 225, 214, 0, 0, 0, 223, 221, 0, - 222, 0, 224, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 425, 217, 201, 219, 211, 225, - 214, 0, 213, 486, 223, 221, 0, 222, 0, 224, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 217, 201, 219, 211, 0, 0, 0, 213, - 0, 0, 212, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 271, 271, 271, 271, 271, 231, 220, 272, 272, 0, + 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 270, 0, 223, 207, + 225, 217, 0, 0, 271, 271, 0, 0, 272, 272, + 0, 0, 265, 265, 0, 266, 265, 265, 265, 265, + 265, 0, 201, 265, 265, 201, 265, 265, 265, 265, + 265, 265, 219, 265, 0, 271, 271, 0, 0, 201, + 201, 0, 201, 0, 201, 0, 0, 0, 0, 0, + 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, + 0, 0, 231, 220, 201, 0, 283, 229, 227, 0, + 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 207, 225, 217, 0, + 0, 0, 252, 0, 0, 252, 201, 199, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 213, 0, 0, 212, - 0, 228, 0, 0, 0, 0, 0, 0, 271, 231, - 0, 0, 0, 0, 0, 0, 252, 0, 0, 252, - 0, 0, 252, 0, 0, 0, 212, 0, 228, 0, - 0, 0, 0, 0, 0, 0, 252, 252, 0, 252, - 0, 252, 0, 272, 272, 0, 0, 272, 272, 272, - 272, 272, 0, 0, 272, 272, 0, 272, 272, 272, - 272, 272, 272, 0, 272, 0, 0, 0, 0, 0, - 0, 252, 252, 0, 0, 0, 0, 0, 220, 218, - 229, 230, 202, 203, 204, 205, 207, 0, 0, 215, - 216, 0, 199, 200, 206, 209, 208, 210, 0, 226, - 0, 0, 252, 252, 225, 214, 0, 0, 0, 223, - 221, 0, 222, 0, 224, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 496, 217, 201, 219, - 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 252, 252, 0, 252, 199, 252, 0, 219, + 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, + 230, 272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 440, 223, 207, 225, 217, 252, 252, 218, + 0, 234, 266, 266, 266, 266, 266, 0, 271, 0, + 0, 0, 266, 266, 266, 266, 266, 266, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 219, 252, 252, + 0, 0, 0, 0, 0, 199, 199, 0, 0, 199, + 199, 199, 199, 199, 0, 0, 199, 199, 0, 199, + 199, 199, 199, 199, 199, 0, 199, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, + 0, 0, 0, 0, 0, 0, 0, 231, 220, 0, + 233, 501, 229, 227, 0, 228, 0, 230, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 223, 207, 225, 217, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 272, 272, 0, 0, 272, 272, + 272, 272, 272, 0, 0, 272, 272, 0, 272, 272, + 272, 272, 272, 272, 219, 272, 0, 0, 0, 0, 0, 271, 271, 0, 0, 271, 271, 271, 271, 271, - 227, 213, 271, 271, 0, 271, 271, 271, 271, 271, - 271, 0, 271, 0, 0, 0, 0, 0, 0, 231, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 212, 0, 228, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, - 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 252, 271, 271, 0, 271, 271, 271, 271, 271, + 271, 0, 271, 0, 218, 0, 234, 0, 226, 224, + 235, 236, 208, 209, 210, 211, 213, 233, 0, 221, + 222, 0, 205, 206, 212, 215, 214, 216, 0, 232, + 0, 0, 0, 0, 0, 0, 237, 0, 231, 220, + 0, 0, 0, 229, 227, 0, 228, 0, 230, 0, + 0, 0, 0, 0, 0, 201, 201, 201, 201, 201, + 511, 223, 207, 225, 217, 201, 201, 201, 201, 201, + 201, 0, 0, 231, 220, 233, 0, 546, 229, 227, + 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 219, 223, 207, 225, 217, + 0, 0, 0, 0, 0, 226, 224, 235, 236, 208, + 209, 210, 211, 213, 0, 0, 221, 222, 0, 205, + 206, 212, 215, 214, 216, 218, 232, 234, 0, 0, + 219, 0, 0, 0, 0, 0, 0, 0, 252, 252, + 252, 252, 252, 0, 0, 252, 252, 0, 252, 252, + 252, 252, 252, 252, 0, 0, 0, 0, 0, 0, + 218, 0, 234, 226, 224, 235, 236, 208, 209, 210, + 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, + 215, 214, 216, 0, 232, 0, 0, 0, 0, 231, + 220, 0, 233, 551, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 231, 0, 252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 220, 218, - 229, 230, 202, 203, 204, 205, 207, 0, 0, 215, - 216, 0, 199, 200, 206, 209, 208, 210, 0, 226, - 0, 0, 0, 0, 0, 220, 218, 229, 230, 202, - 203, 204, 205, 207, 0, 0, 215, 216, 0, 199, - 200, 206, 209, 208, 210, 0, 226, 0, 0, 0, - 0, 0, 220, 218, 229, 230, 202, 203, 204, 205, - 207, 0, 0, 215, 216, 0, 199, 200, 206, 209, - 208, 210, 0, 226, 225, 214, 0, 0, 531, 223, - 221, 0, 222, 0, 224, 0, 402, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 217, 201, 219, - 211, 225, 214, 0, 0, 536, 223, 221, 0, 222, - 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 217, 201, 219, 211, 0, 227, - 0, 213, 252, 252, 252, 252, 252, 0, 0, 252, - 252, 0, 252, 252, 252, 252, 252, 252, 231, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, - 0, 212, 0, 228, 0, 0, 0, 0, 0, 0, + 0, 237, 223, 207, 225, 217, 231, 220, 0, 0, + 552, 229, 227, 0, 228, 0, 230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, + 207, 225, 217, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, - 228, 492, 0, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 220, 218, 229, - 230, 202, 203, 204, 205, 207, 0, 0, 215, 216, - 0, 199, 200, 206, 209, 208, 210, 0, 226, 225, - 214, 0, 0, 537, 223, 221, 0, 222, 0, 224, + 0, 0, 0, 219, 0, 0, 218, 0, 234, 0, + 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, + 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, + 0, 232, 0, 218, 0, 234, 0, 0, 0, 0, + 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 551, 217, 201, 219, 211, 225, 214, 558, 0, - 584, 223, 221, 0, 222, 0, 224, 0, 0, 566, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, - 201, 219, 211, 225, 214, 0, 213, 585, 223, 221, - 0, 222, 0, 224, 0, 0, 0, 0, 0, 0, - 595, 0, 0, 0, 0, 0, 217, 201, 219, 211, - 0, 0, 0, 213, 0, 0, 212, 0, 228, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 213, 0, 0, 212, 0, 228, 0, 624, 0, 0, - 0, 0, 627, 0, 0, 0, 0, 629, 231, 0, - 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, - 212, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, - 0, 0, 0, 225, 214, 0, 0, 0, 223, 221, - 0, 222, 0, 224, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 609, 217, 201, 219, 211, - 0, 0, 0, 0, 0, 0, 0, 220, 218, 229, - 230, 202, 203, 204, 205, 207, 0, 0, 215, 216, - 0, 199, 200, 206, 209, 208, 210, 0, 226, 0, - 213, 0, 0, 0, 220, 218, 229, 230, 202, 203, - 204, 205, 207, 0, 0, 215, 216, 0, 199, 200, - 206, 209, 208, 210, 0, 226, 0, 0, 0, 0, - 212, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 0, 225, 214, 0, 0, 0, 223, 221, 0, 222, - 0, 224, 0, 0, 227, 0, 0, 0, 0, 0, - 0, 0, 623, 0, 217, 201, 219, 211, 0, 0, - 0, 0, 0, 231, 0, 0, 0, 0, 225, 214, - 0, 227, 0, 223, 221, 0, 222, 0, 224, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, - 231, 217, 201, 219, 211, 0, 0, 0, 227, 0, + 0, 0, 237, 0, 231, 220, 0, 0, 599, 229, + 227, 0, 228, 0, 230, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 0, 223, 207, 225, + 217, 0, 0, 0, 0, 0, 0, 237, 0, 231, + 220, 0, 0, 600, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 231, 212, 0, - 228, 0, 0, 0, 0, 213, 0, 0, 0, 0, - 0, 0, 220, 218, 229, 230, 202, 203, 204, 205, - 207, 0, 0, 215, 216, 0, 199, 200, 206, 209, - 208, 210, 0, 226, 0, 212, 0, 228, 0, 220, - 218, 229, 230, 202, 203, 204, 205, 207, 0, 0, - 215, 216, 0, 199, 200, 206, 209, 208, 210, 0, - 226, 0, 0, 0, 0, 0, 220, 218, 229, 230, - 202, 203, 204, 205, 207, 0, 0, 215, 216, 0, - 199, 200, 206, 209, 208, 210, 0, 226, 227, 0, + 0, 219, 223, 207, 225, 217, 0, 0, 0, 0, + 0, 226, 224, 235, 236, 208, 209, 210, 211, 213, + 0, 0, 221, 222, 0, 205, 206, 212, 215, 214, + 216, 218, 232, 234, 0, 0, 219, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 226, 224, 235, 236, + 208, 209, 210, 211, 213, 0, 0, 221, 222, 0, + 205, 206, 212, 215, 214, 216, 218, 232, 234, 0, + 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 231, 0, 225, - 214, 0, 0, 0, 223, 221, 0, 222, 0, 224, + 0, 0, 0, 237, 0, 0, 0, 0, 0, 231, + 220, 233, 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 217, 201, 219, 211, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 214, 0, 0, 0, 223, - 221, 0, 222, 0, 224, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 217, 201, 219, - 211, 0, 0, 0, 0, 0, 220, 218, 229, 230, - 202, 203, 204, 205, 207, 0, 227, 215, 216, 0, - 199, 200, 206, 209, 208, 210, 212, 226, 228, 0, - 0, 213, 0, 0, 0, 231, 0, 0, 0, 0, - 0, 0, 0, 0, 262, 262, 0, 0, 262, 262, - 262, 262, 262, 227, 262, 0, 0, 0, 0, 0, - 0, 212, 0, 228, 0, 262, 262, 262, 262, 262, - 262, 0, 231, 0, 0, 0, 0, 0, 0, 0, + 237, 624, 223, 207, 225, 217, 0, 231, 220, 0, + 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, + 223, 207, 225, 217, 0, 0, 219, 0, 0, 0, + 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, + 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, + 214, 216, 0, 232, 219, 0, 218, 0, 234, 226, + 224, 235, 236, 208, 209, 210, 211, 213, 0, 0, + 221, 222, 0, 205, 206, 212, 215, 214, 216, 0, + 232, 0, 0, 0, 218, 0, 234, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, + 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, + 230, 0, 0, 0, 233, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 207, 225, 217, 0, 0, 0, + 0, 0, 0, 237, 0, 231, 220, 0, 0, 0, + 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 219, 223, 207, + 225, 217, 0, 0, 0, 0, 0, 226, 224, 235, + 236, 208, 209, 210, 211, 213, 0, 0, 221, 222, + 0, 205, 206, 212, 215, 214, 216, 218, 232, 234, + 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, + 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, + 214, 216, 218, 232, 234, 0, 0, 0, 0, 0, + 0, 0, 231, 220, 233, 0, 0, 229, 227, 0, + 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 237, 0, 223, 207, 225, 217, 0, + 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 262, 262, 0, 0, 220, 218, 229, 230, 202, 203, - 204, 205, 207, 0, 0, 215, 216, 0, 199, 200, - 206, 209, 208, 210, 0, 226, 0, 0, 0, 0, - 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 218, 229, 230, 202, 203, 204, 205, 207, - 0, 0, 215, 216, 0, 199, 200, 206, 209, 208, - 210, 0, 226, 263, 263, 0, 0, 263, 263, 263, - 263, 263, 0, 263, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 263, 263, 263, 263, 263, 263, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 219, + 0, 262, 262, 0, 0, 262, 262, 262, 262, 262, + 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 262, 262, 262, 262, 262, 262, 0, 218, + 0, 234, 226, 224, 235, 236, 208, 209, 210, 211, + 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, + 214, 216, 0, 232, 0, 0, 0, 262, 262, 0, + 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, + 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, + 0, 232, 0, 0, 0, 233, 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 264, 264, 0, 0, 264, 264, 264, 264, 264, 0, - 264, 0, 0, 0, 227, 0, 0, 0, 0, 263, - 263, 264, 264, 264, 264, 264, 264, 0, 0, 0, - 0, 0, 0, 231, 0, 0, 0, 0, 260, 0, - 0, 260, 0, 260, 260, 260, 0, 0, 0, 227, - 263, 263, 0, 0, 0, 0, 264, 264, 260, 260, - 260, 260, 260, 260, 262, 0, 0, 0, 231, 0, - 0, 0, 0, 0, 0, 261, 0, 0, 261, 0, - 261, 261, 261, 0, 0, 0, 0, 264, 264, 0, - 0, 0, 0, 260, 260, 261, 261, 261, 261, 261, - 261, 0, 220, 218, 229, 230, 202, 203, 204, 205, - 207, 0, 0, 215, 216, 0, 0, 200, 206, 209, - 208, 210, 0, 226, 260, 260, 0, 0, 0, 0, - 261, 261, 0, 0, 0, 0, 0, 220, 218, 229, - 230, 202, 203, 204, 205, 207, 0, 0, 215, 216, - 0, 0, 0, 206, 209, 208, 210, 0, 226, 0, - 0, 261, 261, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 254, 0, 0, 254, 0, 0, 254, 0, - 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, - 0, 0, 254, 254, 0, 254, 0, 254, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 262, 0, - 0, 262, 262, 262, 262, 262, 0, 0, 262, 262, - 264, 262, 262, 262, 262, 262, 262, 254, 254, 0, - 0, 253, 0, 0, 253, 0, 0, 253, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 0, 263, 263, + 0, 0, 263, 263, 263, 263, 263, 0, 263, 0, + 233, 0, 0, 0, 0, 0, 0, 0, 0, 263, + 263, 263, 263, 263, 263, 0, 0, 0, 0, 237, + 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, + 264, 264, 264, 264, 264, 0, 264, 0, 0, 0, + 0, 0, 0, 0, 263, 263, 0, 264, 264, 264, + 264, 264, 264, 226, 224, 235, 236, 208, 209, 210, + 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, + 215, 214, 216, 0, 232, 263, 263, 0, 0, 0, + 0, 0, 264, 264, 0, 0, 0, 0, 226, 224, + 235, 236, 208, 209, 210, 211, 213, 233, 0, 221, + 222, 262, 0, 206, 212, 215, 214, 216, 0, 232, + 0, 0, 260, 264, 264, 260, 237, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 253, 0, 253, 0, 253, 260, 254, 254, - 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, + 0, 0, 260, 260, 260, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 255, 255, 0, 255, 0, 255, 253, 253, 0, 0, - 0, 0, 0, 0, 261, 0, 0, 0, 0, 270, - 0, 0, 270, 0, 0, 270, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 255, 255, 253, 253, 270, - 270, 0, 270, 0, 270, 0, 263, 263, 0, 0, - 263, 263, 263, 263, 263, 0, 0, 263, 263, 0, - 263, 263, 263, 263, 263, 263, 255, 255, 0, 0, - 0, 0, 0, 0, 270, 270, 0, 0, 0, 0, - 0, 0, 0, 264, 264, 0, 0, 264, 264, 264, - 264, 264, 0, 0, 264, 264, 0, 264, 264, 264, - 264, 264, 264, 0, 0, 270, 270, 0, 0, 0, - 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, - 260, 260, 0, 0, 260, 260, 260, 260, 260, 0, - 0, 260, 260, 0, 260, 260, 260, 260, 260, 260, + 0, 0, 0, 0, 261, 0, 0, 261, 0, 261, + 261, 261, 0, 0, 0, 0, 0, 260, 260, 0, + 0, 0, 0, 0, 261, 261, 261, 261, 261, 261, + 0, 0, 0, 0, 0, 226, 224, 235, 236, 208, + 209, 210, 211, 213, 0, 0, 221, 222, 260, 260, + 0, 212, 215, 214, 216, 0, 232, 0, 263, 261, + 261, 254, 0, 0, 254, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 261, 261, 0, - 0, 261, 261, 261, 261, 261, 0, 0, 261, 261, - 253, 261, 261, 261, 261, 261, 261, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 251, 0, - 0, 251, 0, 0, 251, 0, 0, 0, 0, 255, + 0, 254, 254, 0, 254, 0, 254, 0, 0, 0, + 261, 261, 0, 0, 262, 262, 264, 0, 262, 262, + 262, 262, 262, 0, 0, 262, 262, 0, 262, 262, + 262, 262, 262, 262, 0, 0, 254, 254, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 253, 0, + 0, 253, 0, 0, 0, 0, 0, 254, 254, 0, + 0, 0, 0, 0, 0, 253, 253, 0, 253, 0, + 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, + 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, + 253, 253, 0, 255, 255, 0, 255, 0, 255, 0, + 0, 263, 263, 0, 0, 263, 263, 263, 263, 263, + 0, 0, 263, 263, 0, 263, 263, 263, 263, 263, + 263, 253, 253, 261, 0, 0, 0, 0, 255, 255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, + 264, 0, 0, 264, 264, 264, 264, 264, 0, 0, + 264, 264, 0, 264, 264, 264, 264, 264, 264, 255, + 255, 270, 0, 0, 270, 0, 0, 270, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 254, 270, 270, 0, 270, 0, 270, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 270, 270, 0, 0, + 0, 0, 0, 0, 260, 260, 0, 0, 260, 260, + 260, 260, 260, 0, 0, 260, 260, 0, 260, 260, + 260, 260, 260, 260, 0, 0, 0, 270, 270, 0, + 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, + 261, 261, 261, 261, 261, 0, 0, 261, 261, 0, + 261, 261, 261, 261, 261, 261, 0, 0, 251, 0, + 0, 251, 255, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 251, - 0, 251, 208, 251, 0, 208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 269, 0, 0, 269, 208, - 208, 269, 208, 0, 208, 0, 0, 0, 270, 0, - 0, 0, 0, 251, 251, 269, 269, 0, 269, 0, - 269, 0, 0, 0, 0, 0, 0, 0, 254, 254, - 254, 254, 254, 0, 208, 254, 254, 0, 254, 254, - 254, 254, 254, 254, 251, 251, 0, 0, 0, 250, - 269, 269, 250, 0, 0, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 0, 250, - 250, 0, 250, 0, 250, 0, 0, 0, 0, 0, - 0, 269, 269, 0, 0, 0, 0, 253, 253, 253, - 253, 253, 0, 0, 253, 253, 0, 253, 253, 253, - 253, 253, 253, 0, 250, 250, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, - 255, 0, 0, 255, 255, 0, 255, 255, 255, 255, - 255, 255, 0, 0, 0, 250, 250, 0, 0, 0, + 0, 251, 0, 251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, + 254, 254, 0, 0, 254, 254, 0, 254, 254, 254, + 254, 254, 254, 251, 251, 208, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 270, 270, 270, 270, - 0, 0, 270, 270, 0, 270, 270, 270, 270, 270, - 270, 0, 267, 0, 0, 267, 0, 251, 267, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, - 0, 256, 267, 267, 256, 267, 0, 267, 208, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, - 0, 256, 0, 256, 269, 257, 0, 0, 257, 0, - 0, 257, 0, 0, 0, 0, 0, 267, 267, 0, - 0, 0, 0, 0, 0, 257, 257, 0, 257, 0, - 257, 0, 0, 256, 256, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 267, 267, - 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, - 257, 257, 0, 0, 256, 256, 0, 0, 0, 0, + 0, 0, 208, 208, 0, 208, 0, 208, 0, 0, + 269, 0, 0, 269, 251, 251, 269, 0, 0, 0, + 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 269, 269, 0, 269, 0, 269, 0, 208, 0, 0, + 0, 253, 253, 253, 253, 253, 0, 0, 253, 253, + 0, 253, 253, 253, 253, 253, 253, 0, 0, 0, + 0, 0, 0, 0, 0, 269, 269, 0, 0, 208, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, + 255, 255, 255, 255, 0, 0, 255, 255, 0, 255, + 255, 255, 255, 255, 255, 0, 269, 269, 250, 0, + 0, 250, 0, 0, 250, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 250, 250, + 0, 250, 0, 250, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 267, 0, 0, 267, 0, + 0, 267, 0, 0, 0, 0, 0, 251, 0, 0, + 0, 0, 0, 250, 250, 267, 267, 0, 267, 0, + 267, 0, 0, 0, 0, 0, 0, 270, 270, 270, + 270, 270, 0, 0, 270, 270, 0, 270, 270, 270, + 270, 270, 270, 256, 250, 250, 256, 0, 0, 256, + 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 208, 0, 256, 256, 0, 256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 130, 0, 140, 0, 0, 0, 0, - 139, 257, 257, 128, 0, 129, 0, 0, 0, 0, + 0, 267, 267, 0, 257, 0, 0, 257, 0, 269, + 257, 0, 0, 0, 0, 0, 0, 0, 256, 256, + 0, 0, 0, 0, 257, 257, 0, 257, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 302, 0, 0, 0, 251, 251, 251, 251, 251, 0, + 0, 0, 0, 0, 132, 0, 142, 0, 0, 256, + 256, 141, 0, 0, 130, 0, 131, 0, 0, 257, + 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 312, 0, 0, 251, 251, 251, 251, 251, 0, 0, 251, 251, 0, 251, 251, 251, 251, 251, 251, - 0, 0, 0, 0, 0, 208, 208, 208, 208, 208, - 0, 83, 0, 0, 0, 208, 208, 208, 208, 208, - 208, 269, 269, 269, 269, 269, 0, 0, 269, 269, - 0, 269, 269, 269, 269, 269, 269, 0, 0, 0, - 130, 0, 140, 0, 0, 0, 131, 139, 0, 0, - 128, 267, 129, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 256, 0, 306, - 0, 0, 0, 0, 0, 250, 250, 250, 250, 250, - 0, 0, 250, 250, 0, 250, 250, 250, 250, 250, - 250, 0, 0, 0, 257, 0, 0, 0, 83, 130, - 0, 140, 0, 0, 0, 0, 139, 0, 0, 128, - 130, 129, 140, 0, 0, 0, 0, 139, 0, 0, - 128, 0, 129, 0, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 0, 298, 130, - 0, 140, 0, 0, 0, 0, 139, 0, 0, 128, - 0, 129, 0, 0, 0, 0, 0, 83, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 83, 0, + 257, 257, 0, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 173, 86, 87, 88, 89, 90, 0, 0, 0, 0, - 0, 0, 131, 0, 0, 0, 0, 83, 267, 267, - 267, 267, 267, 131, 0, 0, 10, 0, 267, 267, - 267, 267, 267, 267, 256, 256, 256, 256, 256, 0, - 0, 0, 0, 0, 256, 256, 256, 256, 256, 256, - 0, 0, 131, 135, 0, 0, 0, 0, 0, 0, - 0, 257, 257, 257, 257, 257, 0, 0, 0, 0, - 0, 257, 257, 257, 257, 257, 257, 0, 0, 0, - 138, 0, 0, 0, 0, 0, 134, 173, 86, 87, - 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 130, 0, - 140, 0, 0, 10, 0, 139, 0, 0, 128, 0, - 129, 223, 0, 223, 0, 0, 0, 0, 223, 0, - 0, 223, 0, 223, 0, 0, 0, 0, 0, 0, - 135, 303, 132, 133, 0, 0, 136, 137, 87, 88, - 89, 90, 0, 0, 0, 0, 0, 173, 86, 87, - 88, 89, 90, 0, 0, 0, 83, 138, 0, 0, - 0, 0, 10, 134, 0, 0, 0, 0, 0, 223, - 0, 223, 0, 10, 0, 0, 173, 86, 87, 88, - 89, 90, 0, 0, 126, 0, 0, 0, 347, 135, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 130, - 135, 140, 10, 0, 223, 0, 139, 0, 0, 128, - 0, 129, 0, 0, 0, 0, 138, 307, 0, 132, - 133, 0, 134, 0, 0, 0, 0, 138, 0, 135, - 130, 0, 140, 134, 0, 0, 0, 139, 0, 0, - 128, 0, 129, 126, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 138, 83, 0, 0, - 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, - 0, 0, 0, 126, 0, 0, 0, 0, 188, 132, - 133, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, + 208, 208, 208, 0, 267, 0, 0, 133, 208, 208, + 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 269, 269, 269, 269, + 269, 0, 0, 269, 269, 0, 269, 269, 269, 269, + 269, 269, 0, 132, 0, 142, 0, 0, 0, 0, + 141, 0, 256, 130, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 133, - 0, 0, 0, 131, 0, 173, 86, 87, 88, 89, - 90, 0, 0, 0, 0, 0, 0, 0, 223, 223, - 223, 223, 223, 223, 0, 0, 0, 0, 0, 0, - 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, + 0, 0, 316, 0, 0, 132, 0, 142, 0, 0, + 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, + 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, + 129, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 250, 250, 250, 250, 250, 0, + 0, 250, 250, 0, 250, 250, 250, 250, 250, 250, + 0, 0, 0, 83, 0, 0, 133, 0, 0, 0, + 0, 178, 86, 87, 88, 89, 90, 0, 0, 0, + 0, 267, 267, 267, 267, 267, 0, 0, 0, 0, + 0, 267, 267, 267, 267, 267, 267, 10, 133, 0, + 0, 0, 0, 0, 132, 0, 142, 0, 0, 0, + 0, 195, 0, 0, 130, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 137, 0, 0, 0, 0, 256, + 256, 256, 256, 256, 167, 0, 0, 0, 0, 256, + 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, + 0, 140, 0, 0, 0, 0, 0, 136, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, + 257, 257, 257, 257, 257, 0, 0, 0, 128, 0, + 257, 257, 257, 257, 257, 257, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, + 178, 86, 87, 88, 89, 90, 0, 0, 0, 0, + 0, 0, 313, 134, 135, 132, 0, 142, 0, 0, + 0, 0, 141, 0, 0, 130, 10, 131, 0, 0, + 0, 0, 138, 139, 87, 88, 89, 90, 0, 0, + 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 0, 132, 0, 142, 10, 0, + 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, + 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, + 140, 0, 0, 310, 0, 137, 136, 132, 0, 142, + 0, 0, 0, 0, 141, 0, 0, 130, 0, 131, + 0, 0, 0, 0, 0, 0, 0, 128, 133, 0, + 0, 0, 140, 83, 0, 0, 0, 0, 136, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 178, 86, 87, 88, 89, 90, 0, 0, 128, + 317, 0, 134, 135, 0, 83, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 135, 0, 360, 0, 223, + 133, 223, 0, 0, 137, 0, 223, 0, 0, 223, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 0, 134, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 223, 0, 173, 86, 87, 88, - 89, 90, 126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 0, 173, 86, 87, - 88, 89, 90, 0, 0, 0, 0, 132, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 223, 223, 0, 10, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, + 142, 194, 0, 0, 0, 141, 0, 136, 130, 132, + 131, 142, 0, 0, 0, 0, 195, 0, 0, 130, + 0, 131, 0, 0, 0, 0, 0, 223, 128, 223, + 0, 0, 178, 86, 87, 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, - 135, 0, 134, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 83, 0, 10, 0, + 0, 0, 223, 134, 135, 0, 0, 193, 0, 0, + 0, 0, 178, 86, 87, 88, 89, 90, 0, 0, + 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, + 0, 133, 0, 0, 0, 0, 0, 0, 10, 0, + 0, 0, 133, 0, 178, 86, 87, 88, 89, 90, + 0, 0, 140, 0, 0, 0, 0, 0, 136, 0, + 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 0, 0, 0, 189, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 137, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 0, 132, 133, + 0, 0, 0, 0, 134, 135, 0, 0, 0, 128, + 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, + 136, 0, 0, 0, 0, 0, 223, 223, 223, 223, + 223, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 134, 135, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 178, 86, 87, 88, 89, + 90, 0, 0, 0, 0, 0, 178, 86, 87, 88, + 89, 90, 0, 0, 0, 0, 134, 135, 0, 223, + 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 137, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 0, 140, 0, 0, 0, 0, + 0, 136, 0, 0, 0, 0, 194, 0, 0, 0, + 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 223, 223, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 133, + 0, 0, 0, 0, 0, 0, 0, 134, 135, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, ); protected static $yyCheck = array(4, - 61, 62, 63, 40, 155, 120, 46, 41, 60, 46, - 44, 59, 71, 42, 125, 41, 124, 41, 391, 59, - 125, 46, 125, 84, 41, 169, 91, 44, 240, 34, - 35, 260, 63, 41, 126, 40, 44, 98, 438, 100, - 126, 58, 59, 40, 260, 41, 105, 106, 44, 41, - 260, 93, 44, 60, 91, 170, 61, 62, 63, 120, - 91, 44, 58, 59, 69, 70, 71, 303, 123, 91, - 39, 300, 44, 44, 44, 123, 93, 260, 91, 84, - 49, 50, 51, 125, 91, 93, 304, 59, 41, 59, - 300, 44, 97, 98, 44, 100, 59, 93, 40, 472, - 105, 106, 44, 286, 260, 58, 59, 319, 125, 170, - 93, 340, 512, 37, 38, 120, 126, 268, 42, 43, - 181, 45, 93, 47, 340, 46, 123, 37, 38, 125, - 443, 44, 42, 43, 139, 45, 60, 47, 62, 46, - 93, 514, 125, 93, 300, 41, 46, 58, 44, 332, - 60, 93, 62, 125, 364, 46, 59, 260, 163, 164, - 123, 166, 91, 59, 59, 170, 227, 58, 541, 320, - 94, 41, 125, 486, 44, 125, 181, 37, 103, 91, - 93, 64, 42, 43, 94, 45, 58, 47, 58, 59, - 63, 342, 197, 344, 91, 260, 340, 93, 46, 411, - 124, 126, 126, 128, 129, 130, 131, 132, 133, 257, - 135, 46, 125, 61, 139, 59, 126, 91, 91, 37, - 312, 286, 227, 93, 42, 43, 231, 45, 123, 47, - 155, 260, 340, 257, 44, 300, 301, 302, 260, 331, - 257, 37, 60, 40, 62, 331, 42, 260, 253, 393, - 59, 47, 62, 260, 405, 125, 311, 59, 183, 410, - 185, 257, 373, 374, 286, 257, 126, 332, 373, 374, - 239, 300, 277, 59, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 312, 228, 257, 125, 457, 320, 126, 340, - 402, 403, 59, 320, 123, 240, 402, 403, 340, 332, - 41, 331, 33, 44, 35, 332, 44, 340, 60, 40, - 126, 260, 43, 340, 45, 364, 261, 58, 59, 61, - 61, 260, 63, 268, 62, 270, 37, 38, 260, 260, - 261, 42, 43, 91, 45, 93, 47, 286, 410, 44, - 40, 257, 257, 260, 548, 549, 46, 286, 427, 60, - 410, 62, 93, 298, 286, 300, 410, 302, 303, 530, - 91, 306, 307, 420, 410, 410, 260, 257, 312, 286, - 97, 575, 402, 403, 319, 320, 63, 414, 415, 330, - 477, 478, 312, 124, 125, 573, 574, 331, 93, 340, - 41, 421, 286, 44, 125, 126, 46, 342, 414, 344, - 332, 331, 310, 428, 91, 350, 41, 542, 340, 44, - 598, 61, 583, 438, 359, 126, 40, 33, 515, 35, - 260, 260, 46, 340, 40, 37, 310, 43, 257, 45, - 42, 43, 312, 45, 58, 47, 410, 164, 332, 166, - 41, 414, 415, 40, 311, 41, 286, 286, 44, 46, - 395, 331, 477, 478, 181, 123, 400, 401, 402, 403, - 405, 542, 40, 260, 58, 410, 411, 411, 412, 414, - 400, 401, 402, 403, 312, 91, 40, 421, 260, 261, - 44, 411, 412, 344, 345, 139, 283, 512, 41, 286, - 515, 421, 332, 331, 519, 59, 312, 41, 187, 310, - 44, 340, 383, 300, 41, 41, 59, 44, 44, 125, - 126, 91, 457, 458, 126, 331, 257, 542, 599, 123, - 465, 466, 402, 403, 414, 415, 253, 373, 374, 260, - 261, 262, 263, 264, 265, 33, 417, 35, 619, 44, - 93, 421, 40, 197, 123, 43, 276, 45, 493, 279, - 300, 301, 302, 13, 14, 286, 300, 301, 302, 123, - 505, 125, 400, 401, 402, 403, 58, 364, 123, 33, - 44, 35, 125, 260, 599, 264, 40, 231, 410, 43, - 93, 45, 313, 421, 273, 530, 402, 403, 533, 44, - 535, 105, 106, 91, 619, 61, 49, 50, 51, 286, - 41, 312, 93, 44, 41, 421, 340, 44, 260, 340, - 341, 342, 343, 257, 41, 346, 44, 58, 59, 41, - 331, 58, 59, 277, 569, 123, 123, 91, 126, 360, - 361, 362, 363, 260, 365, 366, 367, 91, 583, 370, - 371, 372, 373, 374, 260, 261, 262, 263, 264, 265, - 531, 40, 93, 125, 123, 536, 93, 61, 123, 58, - 605, 40, 126, 404, 405, 406, 407, 408, 58, 358, - 286, 402, 403, 414, 415, 416, 417, 418, 419, 260, - 123, 40, 40, 260, 125, 41, 125, 93, 125, 400, - 401, 402, 403, 41, 40, 125, 61, 313, 40, 430, - 411, 412, 40, 91, 585, 123, 41, 340, 125, 125, - 421, 125, 401, 40, 40, 40, 91, 40, 59, 41, - 59, 40, 44, 604, 340, 341, 342, 343, 40, 340, - 346, 91, 260, 41, 615, 59, 58, 59, 41, 61, - 61, 63, 59, 361, 360, 361, 362, 363, 340, 365, - 366, 367, 61, 59, 370, 41, 372, 373, 374, 448, - 44, 93, 260, 261, 262, 263, 264, 265, 125, 37, - 38, 93, 40, 41, 42, 43, 44, 45, 123, 47, - 59, 125, 40, 44, 260, 41, 402, 403, 286, 364, - 58, 59, 60, 61, 62, 63, 260, 261, 262, 263, - 264, 265, 321, 125, 41, 123, 260, 261, 262, 263, - 264, 265, 123, 340, 430, 313, 257, 340, 41, 59, - 257, 125, 286, 91, 91, 93, 94, 125, 37, 371, - 125, 123, 286, 42, 43, 40, 45, 59, 47, 41, - 125, 58, 340, 341, 342, 343, 300, 125, 346, 313, - 125, 60, 41, 62, 123, 123, 124, 125, 126, 125, - 123, 123, 360, 361, 362, 363, 93, 365, 366, 367, - 41, 41, 370, 125, 372, 257, 340, 341, 342, 343, - 58, 125, 346, 91, 91, 260, 261, 262, 263, 264, - 265, 91, 346, 125, 93, 125, 360, 361, 362, 363, - 260, 365, 366, 367, 402, 403, 370, 41, 372, 123, - 44, 286, 59, 59, 41, 91, 59, 126, 41, 41, - 364, 41, 41, 7, 58, 59, 286, 61, 125, 63, - 125, 6, 430, 77, 102, 257, 339, 483, 402, 403, - 300, 301, 302, 37, 38, 478, 40, 41, 42, 43, - 44, 45, 519, 47, 60, 59, 109, 506, 345, 93, - 94, 591, 494, 181, 58, 59, 430, 61, 62, 63, - 555, 346, 332, 414, 415, 181, 41, 414, 415, 44, - 277, 531, 555, 242, 197, 41, 536, 238, 44, 257, - 124, 125, 260, 91, 59, -1, 31, 91, 91, 93, - 94, 37, 38, 59, 40, 41, 42, 43, 44, 45, - 46, 47, 166, 280, 281, 282, 283, 284, 285, -1, - 287, -1, 58, 59, 60, 61, 62, 63, 93, 123, - 124, 125, 126, -1, -1, 585, 303, 93, 91, -1, - -1, -1, 310, 311, 312, -1, -1, -1, -1, -1, - -1, -1, 320, -1, 604, 91, -1, 93, 94, -1, - 125, -1, 330, 331, 332, 615, -1, 334, -1, 125, - -1, -1, 340, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 404, 405, 406, 407, 408, -1, 124, 125, - 126, -1, 414, 415, 416, 417, 418, 419, -1, -1, - -1, -1, -1, 312, 280, 281, 282, 283, 284, 285, - -1, 287, -1, 41, -1, -1, 44, -1, -1, -1, - -1, -1, 331, 257, 300, 301, 302, -1, 304, -1, - 58, 59, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, 410, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, 37, 38, -1, -1, 41, 42, - 43, 44, 45, 257, 47, 93, 260, 260, 261, 262, - 263, 264, 265, -1, -1, 58, 59, 60, 61, 62, - 63, -1, 280, 281, 282, 283, 284, 285, -1, 287, - -1, 400, 401, 402, 403, -1, -1, 125, -1, -1, - -1, 257, 411, 412, -1, 303, 41, 260, 91, 44, - 93, 94, 421, -1, -1, -1, 310, 311, 312, -1, - -1, 257, -1, 58, 59, -1, 320, 280, 281, 282, - 283, 284, 285, 286, 287, -1, 330, 331, 332, -1, - -1, 124, 125, 126, 41, -1, 340, 44, -1, -1, - 303, -1, 280, 281, 282, 283, 284, 285, 93, 287, - -1, 58, 59, -1, -1, -1, -1, -1, -1, -1, - 404, 405, 406, 407, 408, 303, 312, -1, -1, 332, - 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, - 125, -1, -1, -1, -1, 331, 93, -1, -1, -1, + 61, 62, 63, 157, 40, 46, 122, 71, 41, 124, + 46, 44, 41, 125, 60, 46, 125, 42, 59, 303, + 41, 44, 40, 84, 44, 44, 41, 44, 41, 34, + 35, 44, 40, 44, 40, 40, 123, 98, 40, 100, + 44, 105, 106, 63, 41, 58, 59, 174, 58, 40, + 93, 41, 260, 261, 44, 91, 61, 62, 63, 175, + 41, 122, 59, 44, 69, 70, 71, 260, 406, 453, + 125, 91, 304, 91, 126, 141, 91, 39, 44, 84, + 93, 46, 125, 91, 41, 91, 46, 49, 50, 51, + 260, 59, 97, 98, 41, 100, 93, 44, 260, 37, + 105, 106, 44, 40, 42, 43, 246, 45, 113, 47, + 37, 38, 125, 260, 175, 42, 43, 122, 45, 44, + 47, 40, 60, 277, 62, 186, 40, 93, 125, 195, + 300, 59, 123, 60, 91, 62, 141, 203, 300, 286, + 37, 38, 126, 527, 59, 42, 43, 340, 45, 487, + 47, 93, 37, 458, 91, 123, 60, 42, 63, 125, + 165, 166, 47, 60, 192, 62, 171, 94, 93, 46, + 175, 237, 233, 64, 37, 41, 330, 91, 44, 42, + 43, 186, 45, 125, 47, 103, 91, 91, 126, 329, + 195, 529, 58, 59, 364, 123, 501, 124, 203, 126, + 125, 355, 91, 357, 41, 260, 125, 44, 588, 589, + 128, 46, 130, 131, 132, 133, 134, 135, 556, 137, + 44, 287, 59, 141, 311, 340, 353, 93, 233, 126, + 59, 46, 237, 613, 257, 260, 257, 257, 257, 157, + 257, 126, 260, 58, 257, 273, 257, 252, 253, 254, + 260, 261, 260, 257, 260, 283, 93, 262, 260, 125, + 312, 373, 374, 126, 373, 374, 420, 257, 286, 93, + 188, 425, 190, 58, 126, 300, 257, 195, 286, 331, + 286, 408, 287, 245, 286, 40, 426, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 33, 234, 35, 472, 44, + 340, 340, 40, 260, 332, 43, 332, 45, 246, 257, + 332, 59, 37, 38, 340, 44, 59, 42, 43, 364, + 45, 260, 47, 371, 260, 41, 260, 331, 44, 286, + 402, 403, 270, 62, 40, 60, 260, 62, 59, 277, + 44, 279, 58, 59, 410, 59, 330, 286, 93, 410, + 286, 260, 286, 91, 312, 59, 340, 410, 442, 410, + 41, 410, 59, 44, 420, 312, 344, 345, 416, 94, + 308, 545, 310, 331, 312, 313, 44, 93, 316, 317, + 123, 414, 415, 340, 331, 91, 60, 125, 126, 360, + 91, 329, 330, 332, 62, 312, 320, 260, 402, 403, + 257, 126, 123, 91, 340, 93, 340, 312, 332, 125, + 41, 320, 93, 44, 331, 463, 340, 355, 443, 357, + 33, 557, 35, 332, 598, 363, 331, 40, 453, 312, + 43, 340, 45, 40, 372, 40, 44, 300, 40, 46, + 312, 46, 400, 401, 402, 403, 40, 61, 331, 41, + 44, 59, 44, 400, 401, 402, 403, 310, 46, 331, + 46, 63, 40, 421, 411, 412, 44, 492, 493, 492, + 493, 310, 410, 61, 421, 61, 557, 340, 91, 373, + 374, 59, 420, 400, 401, 402, 403, 425, 426, 91, + 41, 429, 410, 44, 411, 412, 467, 402, 403, 93, + 40, 311, 527, 474, 421, 530, 46, 530, 41, 534, + 41, 44, 125, 126, 257, 40, 421, 125, 58, 402, + 403, 310, 260, 261, 262, 263, 264, 265, 13, 14, + 402, 403, 557, 614, 472, 473, 257, 41, 421, 123, + 44, 257, 480, 481, 58, 123, 40, 125, 286, 421, + 563, 564, 286, 634, 260, 289, 300, 301, 302, 260, + 261, 262, 263, 264, 265, 91, 537, 123, 40, 63, + 508, 105, 106, 544, 44, 313, 123, 590, 58, 123, + 286, 33, 520, 35, 555, 286, 410, 312, 40, 614, + 44, 43, 93, 45, 300, 301, 302, 91, 44, 300, + 61, 257, 340, 341, 342, 343, 331, 545, 346, 634, + 548, 93, 550, 260, 260, 586, 300, 301, 302, 91, + 257, 340, 360, 361, 362, 363, 332, 365, 366, 367, + 40, 44, 370, 371, 372, 373, 374, 283, 41, 91, + 286, 49, 50, 51, 615, 346, 584, 260, 261, 262, + 263, 264, 265, 91, 300, 41, 123, 260, 260, 125, + 598, 546, 633, 40, 402, 403, 551, 638, 123, 61, + 123, 123, 643, 286, 126, 400, 401, 402, 403, 58, + 40, 91, 620, 58, 286, 41, 411, 412, 44, 260, + 41, 260, 430, 44, 41, 123, 421, 44, 414, 415, + 313, 40, 58, 59, 33, 41, 35, 58, 59, 125, + 40, 40, 59, 93, 43, 600, 45, 41, 364, 40, + 125, 41, 91, 41, 44, 40, 44, 340, 341, 342, + 343, 40, 123, 346, 619, 61, 41, 93, 58, 59, + 58, 59, 93, 125, 125, 630, 93, 360, 361, 362, + 363, 125, 365, 366, 367, 340, 40, 370, 40, 372, + 373, 374, 91, 40, 59, 59, 260, 40, 40, 125, + 340, 40, 59, 93, 125, 93, 260, 41, 125, 41, + 59, 61, 361, 340, 41, 61, 41, 44, 260, 402, + 403, 59, 286, 44, 93, 123, 59, 126, 125, 40, + 125, 58, 59, 41, 44, 125, 44, 125, 260, 261, + 262, 263, 264, 265, 286, 364, 123, 430, 260, 321, + 58, 59, 260, 261, 262, 263, 264, 265, 300, 301, + 302, 340, 41, 41, 286, 340, 93, 123, 41, 59, + 41, 37, 38, 44, 40, 41, 42, 43, 44, 45, + 260, 47, 371, 40, 125, 93, 123, 58, 59, 125, + 332, 313, 58, 59, 60, 61, 62, 63, 125, 125, + 280, 281, 282, 283, 284, 285, 286, 287, 59, 125, + 125, 41, 58, 125, 41, 41, 91, 125, 340, 341, + 342, 343, 93, 303, 346, 91, 123, 93, 94, 125, + 123, 257, 123, 93, 41, 257, 257, 125, 360, 361, + 362, 363, 58, 365, 366, 367, 91, 91, 370, 125, + 372, 91, 332, 41, 125, 93, 44, 123, 124, 125, + 126, 260, 261, 262, 263, 264, 265, 257, 59, 257, + 125, 59, 125, 41, 123, 59, 44, 41, 91, 59, + 402, 403, 41, 41, 41, 364, 41, 286, 125, 125, + 58, 59, 7, 41, 37, 38, 44, 40, 41, 42, + 43, 44, 45, 6, 47, 93, 41, 77, 430, 44, + 58, 59, 102, 498, 313, 58, 59, 352, 61, 62, + 63, 534, 60, 58, 59, 93, 37, 493, 59, 509, + 257, 42, 43, 109, 45, 521, 47, 125, 606, 570, + 570, 340, 341, 342, 343, 93, 358, 346, 91, 257, + 93, 94, 186, 186, 248, 203, 287, 125, 93, 244, + 171, 360, 361, 362, 363, 31, 365, 366, 367, -1, + -1, 370, -1, 372, -1, -1, -1, 125, -1, -1, + 123, 124, 125, 126, -1, -1, 257, -1, 414, 415, + 125, 257, -1, 414, 260, -1, -1, -1, -1, -1, + -1, -1, -1, 402, 403, 280, 281, 282, 283, 284, + 285, -1, 287, 37, 38, 126, 40, 41, 42, 43, + 44, 45, 46, 47, 414, 415, 414, 415, 303, -1, + -1, 430, -1, -1, 58, 59, 60, 61, 62, 63, + -1, -1, -1, -1, 310, 311, 312, 260, 261, 262, + 263, 264, 265, -1, 320, -1, -1, -1, -1, 334, + -1, -1, -1, -1, 330, 331, 332, 91, -1, 93, + 94, 37, 38, 286, 340, 41, 42, 43, 44, 45, + 41, 47, -1, 44, -1, -1, -1, 414, 415, 257, + -1, -1, 58, 59, 60, 61, 62, 63, 59, -1, + 124, 125, 126, -1, -1, -1, 414, 415, -1, 257, + -1, -1, 91, -1, 257, -1, -1, 260, -1, -1, + -1, -1, 257, -1, -1, 91, -1, 93, 94, -1, + -1, -1, 93, 346, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 41, 421, -1, 44, 124, 125, + 126, -1, 91, -1, 125, -1, -1, 310, 311, 312, + -1, 58, 59, -1, -1, -1, -1, 320, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 330, 331, 332, + -1, -1, -1, -1, -1, 37, 38, 340, 40, 41, + 42, 43, 44, 45, 46, 47, 93, -1, -1, -1, + -1, 398, -1, -1, -1, -1, 58, 59, 60, 61, + 62, 63, -1, -1, -1, 280, 281, 282, 283, 284, + 285, -1, 287, 257, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, 432, 414, 415, 303, 91, + -1, 93, 94, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 414, 415, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, 414, + 415, -1, 124, 125, 126, -1, -1, -1, 312, -1, + -1, 257, -1, -1, -1, -1, 257, -1, -1, -1, + -1, 280, 281, 282, 283, 284, 285, 331, 287, -1, + -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, + 45, 46, 47, -1, 303, -1, -1, -1, -1, -1, + -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, + -1, -1, -1, -1, 91, -1, 312, -1, -1, -1, + -1, 280, 281, 282, 283, 284, 285, -1, 287, 546, + -1, -1, -1, -1, 551, 331, 91, -1, 93, 94, + 257, 300, 301, 302, 340, 304, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, 124, + 125, 126, -1, -1, -1, -1, 41, -1, 41, 44, + -1, 44, -1, 600, -1, 257, -1, -1, -1, -1, + -1, -1, -1, 58, 59, 58, 59, -1, -1, -1, + -1, -1, 619, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 630, 410, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, 93, -1, + 93, 91, -1, 37, -1, -1, -1, -1, 42, 43, + 312, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, -1, 62, 331, + 125, -1, 125, 37, 38, 125, -1, 41, 42, 43, + 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, + -1, -1, -1, -1, -1, -1, -1, 414, 415, -1, + -1, -1, 257, 280, 281, 282, 283, 284, 285, -1, + 287, -1, -1, -1, -1, -1, -1, 91, -1, 93, + 94, -1, 126, 300, 301, 302, 303, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, + 124, 125, 126, -1, -1, 41, -1, 312, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + -1, -1, 58, 59, -1, 61, 331, 63, -1, -1, + 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, + 47, -1, 257, -1, 257, -1, -1, -1, -1, -1, + -1, 58, 59, 60, 61, 62, -1, 93, 94, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 280, 281, 282, 283, 284, 285, -1, 287, -1, -1, + -1, -1, -1, -1, -1, -1, 93, 94, 124, 125, + -1, -1, -1, 303, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, 124, 125, 126, + -1, -1, 91, -1, 334, -1, -1, -1, -1, -1, + -1, -1, -1, 257, -1, -1, -1, -1, 37, 38, + -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 125, -1, 312, 58, + 59, 60, 61, 62, 63, 97, 37, 38, -1, 40, + 41, 42, 43, 44, 45, 46, 47, 331, -1, -1, + -1, 113, -1, -1, -1, -1, -1, -1, 312, 60, + 61, 62, 63, -1, 93, 94, -1, -1, -1, 414, + 415, 414, 415, -1, -1, -1, -1, 331, 280, 281, + 282, 283, 284, 285, -1, 287, -1, -1, -1, -1, + 91, 257, -1, 94, -1, 124, 125, 126, 300, 301, + 302, 303, -1, -1, 166, -1, -1, -1, -1, 171, + -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, + 257, -1, -1, 124, 186, 126, -1, 411, 412, -1, + -1, -1, -1, 195, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, -1, 421, 125, 257, - -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, - 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 91, 257, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, 91, -1, 93, 94, - 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, - 47, 91, -1, -1, -1, -1, -1, 125, -1, -1, - -1, 58, 59, 60, 61, 62, 63, -1, -1, 124, - 125, 126, 257, -1, 41, -1, -1, 44, -1, 312, - -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, - 91, 58, 59, -1, 91, -1, 93, 94, 331, -1, - -1, -1, -1, -1, -1, 41, -1, 340, 44, -1, - 257, -1, -1, 41, 41, -1, 44, 44, -1, -1, - -1, -1, 58, 59, 125, -1, 93, 124, 125, 126, - 58, 59, 59, -1, -1, -1, 414, 415, 37, 38, - -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 125, 58, - 59, 60, 61, 62, 63, 93, 93, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, - -1, 414, 415, 416, 417, 418, 419, 420, 421, 125, - -1, -1, 91, -1, 93, 94, -1, 125, 125, -1, - -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 280, 281, 282, 283, 284, 285, -1, 287, - -1, -1, -1, -1, -1, 124, 125, 126, -1, 414, - 415, -1, -1, 41, -1, 303, 44, -1, -1, -1, - 280, 281, 282, 283, 284, 285, -1, 287, 37, 38, - 58, 59, 41, 42, 43, 44, 45, 312, 47, -1, - 257, -1, -1, 303, -1, -1, 334, 414, 415, 58, - 59, 60, 61, 62, -1, -1, 331, -1, -1, 280, - 281, 282, 283, 284, 285, 93, 287, -1, -1, -1, - 257, -1, -1, -1, 334, -1, -1, -1, -1, -1, - -1, -1, 303, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 312, -1, 125, -1, -1, - -1, 257, -1, -1, -1, -1, -1, -1, -1, 257, - -1, -1, -1, 334, 331, 124, 125, 126, -1, -1, - -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 411, 412, 257, 414, - 415, 416, 417, 418, 419, 420, 421, -1, -1, 37, - 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - -1, 41, -1, 41, 44, -1, 44, -1, -1, -1, - 58, 59, 60, 61, 62, 63, -1, -1, 58, 59, - 58, 59, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, 312, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 420, 421, 93, 94, -1, -1, -1, - -1, -1, 331, 93, -1, 93, -1, 37, 38, -1, - 40, 41, 42, 43, 44, 45, 46, 47, -1, 257, - -1, -1, -1, -1, -1, -1, 124, 125, 126, 91, - 60, 61, 62, 63, -1, 125, -1, 125, 257, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 414, 415, - 41, -1, -1, 44, -1, -1, 414, 415, -1, -1, - -1, 91, -1, -1, 94, -1, -1, 58, 59, -1, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 420, 421, 312, 124, -1, 126, -1, -1, -1, - -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, - -1, 330, 331, -1, -1, -1, -1, -1, 37, 38, - -1, 340, 41, 42, 43, 44, 45, -1, 47, -1, - -1, -1, -1, -1, 125, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, -1, -1, 37, 38, -1, - 40, -1, 42, 43, 44, 45, 46, 47, -1, 257, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, - 60, 61, 62, 63, 93, 94, 414, 415, -1, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, + -1, 280, 281, 282, 283, 284, 285, -1, 287, -1, + 252, 253, 254, 330, 331, -1, -1, -1, -1, -1, + 262, 37, 38, 340, 303, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 257, -1, + -1, -1, -1, -1, -1, 334, -1, -1, 404, 405, + 406, 407, 408, -1, -1, -1, -1, -1, 414, 415, + 416, 417, 418, 419, -1, -1, 257, 93, 94, -1, + -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 312, 421, -1, -1, -1, 124, 125, + 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 331, -1, -1, -1, -1, -1, -1, 37, + 38, 312, 40, -1, 42, 43, 44, 45, 46, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 331, -1, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 91, 421, 93, 94, 124, 125, 126, 91, -1, - -1, -1, -1, -1, 312, -1, -1, -1, 280, 281, - 282, 283, 284, 285, -1, 287, -1, 257, -1, -1, - -1, -1, -1, 331, 124, -1, 126, -1, 300, 301, - 302, 303, -1, -1, -1, -1, -1, -1, -1, -1, + 419, -1, 421, -1, -1, -1, 124, -1, 126, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, 257, -1, 37, 38, -1, -1, -1, 42, 43, + 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 257, -1, 37, 38, - -1, -1, -1, 42, 43, 44, 45, -1, 47, -1, - -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, - -1, 60, 61, 62, 63, -1, -1, -1, -1, -1, - -1, 331, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, 91, 421, 93, 94, 414, 415, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 257, 37, + -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, 312, 91, -1, 93, + 94, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, -1, 331, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, + 124, -1, 126, -1, -1, -1, -1, 93, 94, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - 420, 421, -1, 312, -1, 93, 94, 280, 281, 282, - 283, 284, 285, -1, 287, -1, -1, -1, -1, -1, - -1, -1, 331, -1, -1, -1, -1, 300, 301, 302, - 303, -1, 312, 414, 415, -1, 124, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 331, -1, -1, -1, -1, -1, 37, 38, -1, + -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + 41, 42, 43, 44, 45, -1, 47, -1, 124, 125, + -1, -1, -1, -1, -1, 93, 94, 58, 59, 60, + 61, 62, 63, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 312, 421, 124, 125, -1, -1, + -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 331, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + -1, -1, -1, 124, 125, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, 93, 94, -1, -1, -1, -1, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - 420, 421, 37, 38, 124, 125, 41, 42, 43, 44, - 45, -1, 47, 312, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 62, 63, 257, - -1, -1, 331, -1, -1, -1, -1, -1, -1, 37, - 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 312, -1, -1, -1, -1, 124, - 125, -1, -1, -1, -1, 93, 94, -1, -1, -1, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, 410, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 420, 421, -1, -1, -1, 124, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, - 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, - -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, 312, 421, -1, -1, 93, 94, -1, -1, + -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, + 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, 93, 94, 58, 59, 60, 61, 62, + 63, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 257, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 420, 421, 124, 125, 91, -1, 312, -1, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 331, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, - 38, -1, 257, 41, 42, -1, 44, 124, 125, 47, + 125, 124, 125, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, 62, 63, -1, -1, 37, 38, - -1, -1, 41, 42, 43, 44, 45, -1, 47, 257, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, 93, 94, 312, -1, -1, - 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, -1, -1, 93, 94, 124, 125, -1, -1, + -1, -1, -1, -1, -1, -1, 257, -1, -1, 37, + 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, + 58, 59, 60, 61, 62, 63, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, + -1, 312, -1, -1, -1, 93, 94, -1, -1, -1, + -1, -1, -1, -1, 400, 401, -1, 257, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, 421, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 257, -1, -1, -1, -1, 400, 401, -1, -1, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 421, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, - 408, -1, -1, 411, 412, 312, 414, 415, 416, 417, - 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, - 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, 60, 61, 62, 63, -1, 257, -1, - -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, - 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, 312, -1, 93, 94, 60, 61, - 62, 63, -1, 400, 401, -1, -1, 404, 405, 406, - 407, 408, -1, 331, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 312, 421, -1, -1, 124, 125, -1, - -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, - -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, - -1, -1, 124, -1, 126, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, - -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, + -1, -1, 400, 401, 257, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, 93, 94, -1, -1, -1, -1, - -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, 124, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 37, 38, -1, -1, -1, + 418, 419, 312, 421, -1, 280, 281, 282, 283, 284, + 285, -1, 287, -1, -1, -1, -1, -1, -1, 400, + 401, -1, -1, 404, 405, 406, 407, 408, 303, 41, + 411, 412, 44, 414, 415, 416, 417, 418, 419, 312, + 421, -1, -1, -1, -1, -1, 58, 59, -1, 61, + -1, 63, -1, -1, -1, -1, -1, -1, -1, 334, + -1, -1, 37, 38, -1, -1, 41, 42, -1, 44, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, 93, -1, 58, 59, 60, 61, 62, 63, -1, + 400, 401, -1, -1, 404, 405, 406, 407, 408, 257, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, 124, 125, -1, -1, -1, -1, 93, 94, + -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, + -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, 124, + 125, 37, 38, -1, 312, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 37, 38, + -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, 37, 38, 93, 94, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, - 257, -1, -1, -1, -1, -1, 58, -1, 60, 61, - 62, 63, 37, 38, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, 63, 37, - 38, -1, 94, 41, 42, 43, -1, 45, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, 61, 62, 63, -1, -1, -1, 94, + -1, -1, -1, -1, -1, -1, 58, -1, 60, 61, + 62, 63, -1, -1, 93, 94, -1, -1, 124, 125, + -1, -1, 400, 401, -1, 257, 404, 405, 406, 407, + 408, -1, 41, 411, 412, 44, 414, 415, 416, 417, + 418, 419, 94, 421, -1, 124, 125, -1, -1, 58, + 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, + -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, + -1, -1, 37, 38, 93, -1, 41, 42, 43, -1, + 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, 61, 62, 63, -1, + -1, -1, 38, -1, -1, 41, 125, 312, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 312, -1, -1, -1, -1, -1, 94, -1, -1, 124, - -1, 126, -1, -1, -1, -1, -1, -1, 257, 331, - -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, - -1, -1, 44, -1, -1, -1, 124, -1, 126, -1, - -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, - -1, 63, -1, 400, 401, -1, -1, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, -1, 421, -1, -1, -1, -1, -1, - -1, 93, 94, -1, -1, -1, -1, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, - 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, - -1, -1, 124, 125, 37, 38, -1, -1, -1, 42, - 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, -1, 61, 331, 63, -1, 94, + 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, + 47, 257, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, 63, 93, 94, 124, + -1, 126, 404, 405, 406, 407, 408, -1, 257, -1, + -1, -1, 414, 415, 416, 417, 418, 419, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 94, 124, 125, + -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, 421, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, + -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, + 312, 41, 42, 43, -1, 45, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, + 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 94, 421, -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, - 312, 94, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, -1, -1, -1, -1, 331, - -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, - -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, - -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 331, -1, 257, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + -1, 257, 411, 412, -1, 414, 415, 416, 417, 418, + 419, -1, 421, -1, 124, -1, 126, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 312, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, + -1, -1, -1, -1, -1, -1, 331, -1, 37, 38, + -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, + -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, + 59, 60, 61, 62, 63, 414, 415, 416, 417, 418, + 419, -1, -1, 37, 38, 312, -1, 41, 42, 43, + -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 331, 94, 60, 61, 62, 63, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 421, -1, -1, -1, - -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, 37, 38, -1, -1, 41, 42, - 43, -1, 45, -1, 47, -1, 347, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, - 63, 37, 38, -1, -1, 41, 42, 43, -1, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, -1, 312, - -1, 94, 404, 405, 406, 407, 408, -1, -1, 411, - 412, -1, 414, 415, 416, 417, 418, 419, 331, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, - -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, + 415, 416, 417, 418, 419, 124, 421, 126, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, + 124, -1, 126, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, -1, 421, -1, -1, -1, -1, 37, + 38, -1, 312, 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, - 126, 452, -1, -1, -1, -1, -1, -1, 459, -1, + -1, 331, 60, 61, 62, 63, 37, 38, -1, -1, + 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + 61, 62, 63, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, 421, 37, - 38, -1, -1, 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 522, 60, 61, 62, 63, 37, 38, 529, -1, - 41, 42, 43, -1, 45, -1, 47, -1, -1, 540, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 37, 38, -1, 94, 41, 42, 43, - -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, - 571, -1, -1, -1, -1, -1, 60, 61, 62, 63, -1, -1, -1, 94, -1, -1, 124, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 600, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, - 94, -1, -1, 124, -1, 126, -1, 618, -1, -1, - -1, -1, 623, -1, -1, -1, -1, 628, 331, -1, - -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, - 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 331, -1, -1, -1, -1, - -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, - -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, - -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, 421, -1, - 94, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, -1, -1, -1, -1, - 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, - -1, 47, -1, -1, 312, -1, -1, -1, -1, -1, - -1, -1, 58, -1, 60, 61, 62, 63, -1, -1, - -1, -1, -1, 331, -1, -1, -1, -1, 37, 38, - -1, 312, -1, 42, 43, -1, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, - 331, 60, 61, 62, 63, -1, -1, -1, 312, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, -1, 124, -1, 126, -1, -1, -1, -1, + -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 331, -1, 37, 38, -1, -1, 41, 42, + 43, -1, 45, -1, 47, -1, -1, -1, 312, -1, + -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, + 63, -1, -1, -1, -1, -1, -1, 331, -1, 37, + 38, -1, -1, 41, 42, 43, -1, 45, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 94, 60, 61, 62, 63, -1, -1, -1, -1, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 124, 421, 126, -1, -1, 94, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 124, 421, 126, -1, + -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 331, 124, -1, - 126, -1, -1, -1, -1, 94, -1, -1, -1, -1, + -1, -1, -1, 331, -1, -1, -1, -1, -1, 37, + 38, 312, -1, -1, 42, 43, -1, 45, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 331, 59, 60, 61, 62, 63, -1, 37, 38, -1, + -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, + 60, 61, 62, 63, -1, -1, 94, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, -1, 124, -1, 126, -1, 400, + 418, 419, -1, 421, 94, -1, 124, -1, 126, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, - 421, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, -1, 421, 312, -1, + 421, -1, -1, -1, 124, -1, 126, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 331, -1, 37, - 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, + 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, + 47, -1, -1, -1, 312, -1, -1, -1, -1, -1, + -1, -1, -1, 60, 61, 62, 63, -1, -1, -1, + -1, -1, -1, 331, -1, 37, 38, -1, -1, -1, + 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 94, 60, 61, + 62, 63, -1, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 124, 421, 126, + -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 124, 421, 126, -1, -1, -1, -1, -1, + -1, -1, 37, 38, 312, -1, -1, 42, 43, -1, + 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 331, -1, 60, 61, 62, 63, -1, + -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, -1, -1, 37, 38, -1, -1, -1, 42, - 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 94, 60, 61, 62, - 63, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, 312, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 124, 421, 126, -1, - -1, 94, -1, -1, -1, 331, -1, -1, -1, -1, - -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, - 43, 44, 45, 312, 47, -1, -1, -1, -1, -1, - -1, 124, -1, 126, -1, 58, 59, 60, 61, 62, - 63, -1, 331, -1, -1, -1, -1, -1, -1, -1, + -1, 331, -1, -1, -1, -1, -1, -1, -1, 94, + -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, -1, 124, + -1, 126, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 421, -1, -1, -1, 93, 94, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, -1, -1, -1, 312, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 331, -1, -1, -1, 37, 38, + -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, + 312, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, -1, -1, -1, -1, 331, + -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, 58, 59, 60, + 61, 62, 63, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, -1, 421, 124, 125, -1, -1, -1, + -1, -1, 93, 94, -1, -1, -1, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 312, -1, 411, + 412, 257, -1, 415, 416, 417, 418, 419, -1, 421, + -1, -1, 38, 124, 125, 41, 331, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, -1, -1, -1, -1, - -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, 37, 38, -1, -1, 41, 42, 43, - 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, -1, -1, 41, -1, 43, + 44, 45, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, + -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 411, 412, 124, 125, + -1, 416, 417, 418, 419, -1, 421, -1, 257, 93, + 94, 38, -1, -1, 41, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, + 124, 125, -1, -1, 400, 401, 257, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, - 47, -1, -1, -1, 312, -1, -1, -1, -1, 93, - 94, 58, 59, 60, 61, 62, 63, -1, -1, -1, - -1, -1, -1, 331, -1, -1, -1, -1, 38, -1, - -1, 41, -1, 43, 44, 45, -1, -1, -1, 312, - 124, 125, -1, -1, -1, -1, 93, 94, 58, 59, - 60, 61, 62, 63, 257, -1, -1, -1, 331, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, - 43, 44, 45, -1, -1, -1, -1, 124, 125, -1, - -1, -1, -1, 93, 94, 58, 59, 60, 61, 62, - 63, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, -1, 415, 416, 417, - 418, 419, -1, 421, 124, 125, -1, -1, -1, -1, - 93, 94, -1, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, -1, -1, 416, 417, 418, 419, -1, 421, -1, - -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, - -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, - -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, - 257, 414, 415, 416, 417, 418, 419, 93, 94, -1, - -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, + -1, 44, -1, -1, -1, -1, -1, 124, 125, -1, + -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, + 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, + -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, -1, 58, 59, -1, 61, -1, 63, -1, + -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, + -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 124, 125, 257, -1, -1, -1, -1, 93, 94, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, + 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 124, + 125, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, -1, 61, -1, 63, 257, 124, 125, - 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, + 257, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, -1, 61, -1, 63, 93, 94, -1, -1, - -1, -1, -1, -1, 257, -1, -1, -1, -1, 38, - -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 124, 125, 58, - 59, -1, 61, -1, 63, -1, 400, 401, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, + -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, -1, -1, 124, 125, -1, + -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 124, 125, -1, -1, - -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, + 414, 415, 416, 417, 418, 419, -1, -1, 38, -1, + -1, 41, 257, -1, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, -1, -1, 124, 125, -1, -1, -1, - -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, - 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 417, 418, 419, 93, 94, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, + -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, + 38, -1, -1, 41, 124, 125, 44, -1, -1, -1, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 58, 59, -1, 61, -1, 63, -1, 93, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, - 257, 414, 415, 416, 417, 418, 419, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, - -1, 41, -1, -1, 44, -1, -1, -1, -1, 257, + -1, 414, 415, 416, 417, 418, 419, -1, -1, -1, + -1, -1, -1, -1, -1, 93, 94, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, 124, 125, 38, -1, + -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - -1, 61, 41, 63, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 38, -1, -1, 41, 58, - 59, 44, 61, -1, 63, -1, -1, -1, 257, -1, + -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, + -1, 44, -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, 93, 94, 58, 59, -1, 61, -1, - 63, -1, -1, -1, -1, -1, -1, -1, 404, 405, - 406, 407, 408, -1, 93, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 124, 125, -1, -1, -1, 38, - 93, 94, 41, -1, -1, 44, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 125, -1, -1, 58, - 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, - -1, 124, 125, -1, -1, -1, -1, 404, 405, 406, + 63, -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, -1, 93, 94, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, -1, -1, 124, 125, -1, -1, -1, + 417, 418, 419, 38, 124, 125, 41, -1, -1, 44, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 257, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 38, -1, -1, 41, -1, 257, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, - -1, 41, 58, 59, 44, 61, -1, 63, 257, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - -1, 61, -1, 63, 257, 38, -1, -1, 41, -1, - -1, 44, -1, -1, -1, -1, -1, 93, 94, -1, - -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, - 63, -1, -1, 93, 94, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, - -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, - 93, 94, -1, -1, 124, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, 35, -1, -1, -1, -1, - 40, 124, 125, 43, -1, 45, -1, -1, -1, -1, + -1, 124, 125, -1, 38, -1, -1, 41, -1, 257, + 44, -1, -1, -1, -1, -1, -1, -1, 93, 94, + -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, -1, 404, 405, 406, 407, 408, -1, + -1, -1, -1, -1, 33, -1, 35, -1, -1, 124, + 125, 40, -1, -1, 43, -1, 45, -1, -1, 93, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, - -1, 91, -1, -1, -1, 414, 415, 416, 417, 418, - 419, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, -1, -1, - 33, -1, 35, -1, -1, -1, 126, 40, -1, -1, - 43, 257, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, -1, 62, - -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, -1, -1, 257, -1, -1, -1, 91, 33, - -1, 35, -1, -1, -1, -1, 40, -1, -1, 43, - 33, 45, 35, -1, -1, -1, -1, 40, -1, -1, - 43, -1, 45, -1, 58, -1, -1, -1, -1, -1, - -1, -1, -1, 126, -1, -1, -1, -1, 61, 33, - -1, 35, -1, -1, -1, -1, 40, -1, -1, 43, - -1, 45, -1, -1, -1, -1, -1, 91, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, 91, -1, + 124, 125, -1, -1, -1, -1, -1, 257, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, - -1, -1, 126, -1, -1, -1, -1, 91, 404, 405, - 406, 407, 408, 126, -1, -1, 286, -1, 414, 415, - 416, 417, 418, 419, 404, 405, 406, 407, 408, -1, - -1, -1, -1, -1, 414, 415, 416, 417, 418, 419, - -1, -1, 126, 313, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 404, 405, + 406, 407, 408, -1, 257, -1, -1, 126, 414, 415, + 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 33, -1, 35, -1, -1, -1, -1, + 40, -1, 257, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 62, -1, -1, 33, -1, 35, -1, -1, + -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, + -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, + 58, 91, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, -1, -1, 91, -1, -1, 126, -1, -1, -1, + -1, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, -1, -1, - -1, 414, 415, 416, 417, 418, 419, -1, -1, -1, - 340, -1, -1, -1, -1, -1, 346, 260, 261, 262, - 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 367, 33, -1, - 35, -1, -1, 286, -1, 40, -1, -1, 43, -1, - 45, 33, -1, 35, -1, -1, -1, -1, 40, -1, - -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, - 313, 401, 402, 403, -1, -1, 260, 261, 262, 263, - 264, 265, -1, -1, -1, -1, -1, 260, 261, 262, - 263, 264, 265, -1, -1, -1, 91, 340, -1, -1, - -1, -1, 286, 346, -1, -1, -1, -1, -1, 91, - -1, 93, -1, 286, -1, -1, 260, 261, 262, 263, - 264, 265, -1, -1, 367, -1, -1, -1, 123, 313, - -1, 126, -1, -1, -1, -1, -1, -1, -1, 33, - 313, 35, 286, -1, 126, -1, 40, -1, -1, 43, - -1, 45, -1, -1, -1, -1, 340, 400, -1, 402, - 403, -1, 346, -1, -1, -1, -1, 340, -1, 313, - 33, -1, 35, 346, -1, -1, -1, 40, -1, -1, - 43, -1, 45, 367, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, 340, 91, -1, -1, - -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, - -1, -1, -1, 367, -1, -1, -1, -1, 91, 402, - 403, -1, 126, -1, -1, -1, -1, -1, -1, -1, + -1, 414, 415, 416, 417, 418, 419, 286, 126, -1, + -1, -1, -1, -1, 33, -1, 35, -1, -1, -1, + -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, + -1, -1, -1, -1, 313, -1, -1, -1, -1, 404, + 405, 406, 407, 408, 63, -1, -1, -1, -1, 414, + 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, + -1, 340, -1, -1, -1, -1, -1, 346, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + 404, 405, 406, 407, 408, -1, -1, -1, 367, -1, + 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, + 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, + -1, -1, 401, 402, 403, 33, -1, 35, -1, -1, + -1, -1, 40, -1, -1, 43, 286, 45, -1, -1, + -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 313, -1, 33, -1, 35, 286, -1, + -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, + -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, + 340, -1, -1, 61, -1, 313, 346, 33, -1, 35, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, -1, -1, -1, 367, 126, -1, + -1, -1, 340, 91, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, - -1, -1, -1, 126, -1, 260, 261, 262, 263, 264, - 265, -1, -1, -1, -1, -1, -1, -1, 260, 261, - 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, - -1, 286, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, + -1, 260, 261, 262, 263, 264, 265, -1, -1, 367, + 400, -1, 402, 403, -1, 91, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 313, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, - -1, 346, -1, -1, -1, -1, -1, -1, 340, -1, - -1, -1, -1, -1, 346, -1, 260, 261, 262, 263, - 264, 265, 367, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 367, -1, -1, -1, -1, - -1, -1, 286, -1, -1, -1, -1, 260, 261, 262, - 263, 264, 265, -1, -1, -1, -1, 402, 403, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, - 402, 403, -1, 286, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 402, 403, -1, 123, -1, 33, + 126, 35, -1, -1, 313, -1, 40, -1, -1, 43, + -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, + 35, 340, -1, -1, -1, 40, -1, 346, 43, 33, + 45, 35, -1, -1, -1, -1, 40, -1, -1, 43, + -1, 45, -1, -1, -1, -1, -1, 91, 367, 93, + -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, - 313, -1, 346, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 91, -1, 286, -1, + -1, -1, 126, 402, 403, -1, -1, 91, -1, -1, + -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, + -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, + -1, 126, -1, -1, -1, -1, -1, -1, 286, -1, + -1, -1, 126, -1, 260, 261, 262, 263, 264, 265, + -1, -1, 340, -1, -1, -1, -1, -1, 346, -1, + -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, + 286, -1, -1, -1, -1, -1, -1, -1, -1, 367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 367, -1, -1, -1, 340, -1, -1, - -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, + -1, -1, 340, -1, -1, -1, -1, 313, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, -1, -1, 402, 403, + -1, -1, -1, -1, 402, 403, -1, -1, -1, 367, + -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, + 346, -1, -1, -1, -1, -1, 260, 261, 262, 263, + 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 367, -1, -1, 402, 403, -1, -1, -1, -1, + -1, -1, 286, -1, -1, 260, 261, 262, 263, 264, + 265, -1, -1, -1, -1, -1, 260, 261, 262, 263, + 264, 265, -1, -1, -1, -1, 402, 403, -1, 313, + -1, 286, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 340, -1, 313, -1, + -1, -1, 346, -1, -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 367, -1, 340, -1, -1, -1, -1, + -1, 346, -1, -1, -1, -1, 340, -1, -1, -1, + -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 367, -1, -1, -1, -1, -1, 402, 403, + -1, -1, -1, 367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 402, - 403, + -1, -1, -1, -1, -1, -1, -1, 402, 403, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, ); protected static $yyFinal= 2; protected static $yyName= array( @@ -2965,69 +2985,84 @@ public function yyparse($yyLex) { case 292: #line 1039 "src/main/jay/grammars/xp.jay" { $yyVal= TRUE; } break; - case 299: #line 1057 "src/main/jay/grammars/xp.jay" + case 300: #line 1058 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName($yyVals[0+$yyTop]); } break; - case 300: #line 1058 "src/main/jay/grammars/xp.jay" + case 301: #line 1059 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName($yyVals[-3+$yyTop], $yyVals[-1+$yyTop]); } break; - case 301: #line 1062 "src/main/jay/grammars/xp.jay" + case 302: #line 1063 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName($yyVals[-2+$yyTop]->compoundName().'[]'); } break; - case 302: #line 1066 "src/main/jay/grammars/xp.jay" + case 303: #line 1067 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName('[:'.$yyVals[-1+$yyTop]->compoundName().']'); } break; - case 303: #line 1070 "src/main/jay/grammars/xp.jay" + case 304: #line 1071 "src/main/jay/grammars/xp.jay" { $yyVal= array($yyVals[0+$yyTop]); } break; - case 304: #line 1071 "src/main/jay/grammars/xp.jay" + case 305: #line 1072 "src/main/jay/grammars/xp.jay" { $yyVal= array_merge($yyVals[-2+$yyTop], array($yyVals[0+$yyTop])); } break; - case 306: #line 1076 "src/main/jay/grammars/xp.jay" + case 307: #line 1077 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName($yyVals[0+$yyTop].'+'); } break; - case 307: #line 1080 "src/main/jay/grammars/xp.jay" + case 308: #line 1081 "src/main/jay/grammars/xp.jay" + { $yyVal= array(); } break; + + case 309: #line 1082 "src/main/jay/grammars/xp.jay" { $yyVal= array($yyVals[0+$yyTop]); } break; - case 308: #line 1081 "src/main/jay/grammars/xp.jay" + case 310: #line 1083 "src/main/jay/grammars/xp.jay" + { $yyVal= array_merge($yyVals[-2+$yyTop], array($yyVals[0+$yyTop])); } break; + + case 311: #line 1087 "src/main/jay/grammars/xp.jay" + { $yyVal= new TypeName('->'.$yyVals[-1+$yyTop]->compoundName(), null); } break; + + case 312: #line 1088 "src/main/jay/grammars/xp.jay" + { $yyVal= new TypeName('->'.$yyVals[-1+$yyTop]->compoundName(), $yyVals[-3+$yyTop]); } break; + + case 313: #line 1092 "src/main/jay/grammars/xp.jay" + { $yyVal= array($yyVals[0+$yyTop]); } break; + + case 314: #line 1093 "src/main/jay/grammars/xp.jay" { $yyVal= array_merge(array($yyVals[-2+$yyTop]), $yyVals[0+$yyTop]); } break; - case 309: #line 1087 "src/main/jay/grammars/xp.jay" + case 315: #line 1099 "src/main/jay/grammars/xp.jay" { $yyVal= 0; } break; - case 310: #line 1088 "src/main/jay/grammars/xp.jay" + case 316: #line 1100 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[0+$yyTop]; } break; - case 311: #line 1092 "src/main/jay/grammars/xp.jay" + case 317: #line 1104 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[0+$yyTop]; } break; - case 312: #line 1093 "src/main/jay/grammars/xp.jay" + case 318: #line 1105 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[-1+$yyTop] | $yyVals[0+$yyTop]; } break; - case 313: #line 1097 "src/main/jay/grammars/xp.jay" + case 319: #line 1109 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PUBLIC; } break; - case 314: #line 1098 "src/main/jay/grammars/xp.jay" + case 320: #line 1110 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PROTECTED; } break; - case 315: #line 1099 "src/main/jay/grammars/xp.jay" + case 321: #line 1111 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PRIVATE; } break; - case 316: #line 1100 "src/main/jay/grammars/xp.jay" + case 322: #line 1112 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PACKAGE; } break; - case 317: #line 1101 "src/main/jay/grammars/xp.jay" + case 323: #line 1113 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_STATIC; } break; - case 318: #line 1102 "src/main/jay/grammars/xp.jay" + case 324: #line 1114 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_ABSTRACT; } break; - case 319: #line 1103 "src/main/jay/grammars/xp.jay" + case 325: #line 1115 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_FINAL; } break; - case 320: #line 1104 "src/main/jay/grammars/xp.jay" + case 326: #line 1116 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_INLINE; } break; -#line 3031 "-" +#line 3066 "-" } $yyTop-= self::$yyLen[$yyN]; diff --git a/src/main/php/xp/compiler/types/FunctionTypeOf.class.php b/src/main/php/xp/compiler/types/FunctionTypeOf.class.php new file mode 100755 index 000000000..c70101f03 --- /dev/null +++ b/src/main/php/xp/compiler/types/FunctionTypeOf.class.php @@ -0,0 +1,262 @@ +return= $return; + $this->parameters= $parameters; + } + + /** + * Returns modifiers + * + * @return int + */ + public function modifiers() { + return MODIFIER_PUBLIC; + } + + /** + * Returns name + * + * @return string + */ + public function name() { + return sprintf( + 'function(%s): %s', + null === $this->parameters ? '?' : implode(', ', array_map(function($type) { return $type->name(); }, $this->parameters)), + $this->return->name() + ); + } + + /** + * Returns parent type + * + * @return xp.compiler.types.Types + */ + public function parent() { + return null; + } + + /** + * Returns literal for use in code + * + * @return string + */ + public function literal() { + return 'callable'; + } + + /** + * Returns type kind (one of the *_KIND constants). + * + * @return string + */ + public function kind() { + return self::FUNCTION_KIND; + } + + /** + * Checks whether a given type instance is a subclass of this class. + * + * @param xp.compiler.types.Types + * @return bool + */ + public function isSubclassOf(Types $t) { + return false; + } + + /** + * Returns whether this type is enumerable (that is: usable in foreach) + * + * @return bool + */ + public function isEnumerable() { + return false; + } + + /** + * Returns the enumerator for this class or null if none exists. + * + * @see php://language.oop5.iterations + * @return xp.compiler.types.Enumerator + */ + public function getEnumerator() { + return null; + } + + /** + * Returns whether a constructor exists + * + * @return bool + */ + public function hasConstructor() { + return false; + } + + /** + * Returns the constructor + * + * @return xp.compiler.types.Constructor + */ + public function getConstructor() { + return null; + } + + /** + * Returns whether a method with a given name exists + * + * @param string name + * @return bool + */ + public function hasMethod($name) { + return false; + } + + /** + * Returns a method by a given name + * + * @param string name + * @return xp.compiler.types.Method + */ + public function getMethod($name) { + return null; + } + + /** + * Gets a list of extension methods + * + * @return [:xp.compiler.types.Method[]] + */ + public function getExtensions() { + return array(); + } + + /** + * Returns whether an operator by a given symbol exists + * + * @param string symbol + * @return bool + */ + public function hasOperator($symbol) { + return false; + } + + /** + * Returns an operator by a given name + * + * @param string symbol + * @return xp.compiler.types.Operator + */ + public function getOperator($symbol) { + return null; + } + + /** + * Returns a field by a given name + * + * @param string name + * @return bool + */ + public function hasField($name) { + return false; + } + + /** + * Returns a field by a given name + * + * @param string name + * @return xp.compiler.types.Field + */ + public function getField($name) { + return null; + } + + /** + * Returns a property by a given name + * + * @param string name + * @return bool + */ + public function hasProperty($name) { + return false; + } + + /** + * Returns a property by a given name + * + * @param string name + * @return xp.compiler.types.Property + */ + public function getProperty($name) { + return null; + } + + /** + * Returns a constant by a given name + * + * @param string name + * @return bool + */ + public function hasConstant($name) { + return false; + } + + /** + * Returns a constant by a given name + * + * @param string name + * @return xp.compiler.types.Constant + */ + public function getConstant($name) { + return null; + } + + /** + * Returns whether this class has an indexer + * + * @return bool + */ + public function hasIndexer() { + return false; + } + + /** + * Returns indexer + * + * @return xp.compiler.types.Indexer + */ + public function getIndexer() { + return null; + } + + /** + * Returns a lookup map of generic placeholders + * + * @return [:int] + */ + public function genericPlaceholders() { + return array(); + } + + /** + * Creates a string representation of this object + * + * @return string + */ + public function toString() { + return sprintf( + '%s@(%s)', + $this->getClassName(), + $this->name() + ); + } +} diff --git a/src/main/php/xp/compiler/types/Scope.class.php b/src/main/php/xp/compiler/types/Scope.class.php index 1b7a918fc..949a7146f 100644 --- a/src/main/php/xp/compiler/types/Scope.class.php +++ b/src/main/php/xp/compiler/types/Scope.class.php @@ -206,6 +206,8 @@ public function resolveType(TypeName $name, $register= true) { return new PrimitiveTypeOf($name); } else if ($name->isGeneric()) { return new GenericType($this->resolveType(new TypeName($name->name), $register), $name->components); + } else if ($name->isFunction()) { + return new FunctionTypeOf($this->resolveType($name->functionReturnType(), $register), $name->components); } if ($this->declarations) { diff --git a/src/main/php/xp/compiler/types/TypeName.class.php b/src/main/php/xp/compiler/types/TypeName.class.php index 2a9fb2d7d..4de206008 100644 --- a/src/main/php/xp/compiler/types/TypeName.class.php +++ b/src/main/php/xp/compiler/types/TypeName.class.php @@ -6,13 +6,14 @@ * Type literals and their representation * -------------------------------------- * ``` - * int : TypeName('int') - * var : TypeName('var') - * string : TypeName('string') - * bool[] : TypeName('bool[]') - * [:var] : TypeName('[:var]') - * List : TypeName('List', [TypeName('T')]) - * Map : TypeName('Map', [TypeName('K'), TypeName('V')]) + * int : TypeName('int') + * var : TypeName('var') + * string : TypeName('string') + * bool[] : TypeName('bool[]') + * [:var] : TypeName('[:var]') + * List : TypeName('List', [TypeName('T')]) + * Map : TypeName('Map', [TypeName('K'), TypeName('V')]) + * function(int): string : TypeName('->string', [TypeName('int')]) * ``` * * @test xp://net.xp_lang.tests.types.TypeNameTest @@ -49,7 +50,7 @@ public function __construct($name, $components= array()) { * @return bool */ public function isClass() { - return !$this->isArray() && !$this->isMap() && !$this->isVariable() && !$this->isVoid() && !$this->isPrimitive(); + return !$this->isArray() && !$this->isMap() && !$this->isVariable() && !$this->isVoid() && !$this->isPrimitive() && !$this->isFunction(); } /** @@ -115,13 +116,31 @@ public function mapComponentType() { return $this->isMap() ? new self(substr($this->name, 2, -1)) : null; } + /** + * Return whether this type is a function type + * + * @return bool + */ + public function isFunction() { + return 0 === strncmp($this->name, '->', 2); + } + + /** + * Return function return type or null if this is not a function + * + * @return xp.compiler.types.TypeName + */ + public function functionReturnType() { + return $this->isFunction() ? new self(substr($this->name, 2)) : null; + } + /** * Return whether this type is a generic * * @return bool */ public function isGeneric() { - return !empty($this->components); + return 0 !== strncmp($this->name, '->', 2) && !empty($this->components); } /** @@ -153,7 +172,7 @@ public function isPlaceholder(self $ref) { public function equals($cmp) { if (!$cmp instanceof self || $this->name !== $cmp->name) return false; - foreach ($this->components as $i => $c) { + foreach ((array)$this->components as $i => $c) { if (!$c->equals($cmp->components[$i])) return false; } return true; diff --git a/src/main/php/xp/compiler/types/Types.class.php b/src/main/php/xp/compiler/types/Types.class.php index 3991dc7f0..8be026450 100644 --- a/src/main/php/xp/compiler/types/Types.class.php +++ b/src/main/php/xp/compiler/types/Types.class.php @@ -1,15 +1,15 @@ assertEquals($result, $cmp); } + + #[@test] + public function addingMethod() { + $this->assertEquals(new MethodNode(array( + 'modifiers' => MODIFIER_PUBLIC, + 'annotations'=> null, + 'name' => 'adding', + 'returns' => new TypeName('->int', null), + 'parameters' => null, + 'throws' => null, + 'body' => array(), + 'extension' => null + )), $this->parse( + 'public (? -> int) adding() { }' + )); + } + + #[@test] + public function countingMethod() { + $this->assertEquals(new MethodNode(array( + 'modifiers' => MODIFIER_PUBLIC, + 'annotations'=> null, + 'name' => 'counting', + 'returns' => new TypeName('->int', [new TypeName('Collection')]), + 'parameters' => null, + 'throws' => null, + 'body' => array(), + 'extension' => null + )), $this->parse( + 'public (Collection -> int) counting() { }' + )); + } + + #[@test] + public function groupingMethod() { + $this->assertEquals(new MethodNode(array( + 'modifiers' => MODIFIER_PUBLIC, + 'annotations'=> null, + 'name' => 'grouping', + 'returns' => new TypeName('->int', [new TypeName('Map'), new TypeName('string')]), + 'parameters' => null, + 'throws' => null, + 'body' => array(), + 'extension' => null + )), $this->parse( + 'public (Map, string -> int) grouping() { }' + )); + } } diff --git a/src/test/php/net/xp_lang/tests/types/TypeNameTest.class.php b/src/test/php/net/xp_lang/tests/types/TypeNameTest.class.php index d999f53ff..0a0a92087 100644 --- a/src/test/php/net/xp_lang/tests/types/TypeNameTest.class.php +++ b/src/test/php/net/xp_lang/tests/types/TypeNameTest.class.php @@ -10,199 +10,111 @@ */ class TypeNameTest extends \unittest\TestCase { - /** - * Test isVariable() - * - */ #[@test] public function varIsVariable() { $this->assertTrue(TypeName::$VAR->isVariable()); } - /** - * Test isVariable() - * - */ #[@test] public function voidIsNotVariable() { $this->assertFalse(TypeName::$VOID->isVariable()); } - /** - * Test isVariable() - * - */ #[@test] public function objectIsNotVariable() { $this->assertFalse((new TypeName('lang.Object'))->isVariable()); } - /** - * Test isVoid() - * - */ #[@test] public function varIsNotVoid() { $this->assertFalse(TypeName::$VAR->isVoid()); } - /** - * Test isVoid() - * - */ #[@test] public function voidIsVoid() { $this->assertTrue(TypeName::$VOID->isVoid()); } - /** - * Test isVoid() - * - */ #[@test] public function objectIsNotVoid() { $this->assertFalse((new TypeName('lang.Object'))->isVoid()); } - /** - * Test isPrimitive() - * - */ #[@test] public function intIsPrimitive() { $this->assertTrue((new TypeName('int'))->isPrimitive()); } - /** - * Test isPrimitive() - * - */ #[@test] public function objectIsNotPrimitive() { $this->assertFalse((new TypeName('lang.Object'))->isPrimitive()); } - /** - * Test isArray() - * - */ #[@test] public function intArrayIsArray() { $this->assertTrue((new TypeName('int[]'))->isArray()); } - /** - * Test isArray() - * - */ #[@test] public function intIsNotArray() { $this->assertFalse((new TypeName('int'))->isArray()); } - /** - * Test isMap() - * - */ #[@test] public function intMapIsMap() { $this->assertTrue((new TypeName('[:int]'))->isMap()); } - /** - * Test isMap() - * - */ #[@test] public function intIsNotMap() { $this->assertFalse((new TypeName('int'))->isMap()); } - /** - * Test isMap() - * - */ #[@test] public function intArrayIsNotMap() { $this->assertFalse((new TypeName('int[]'))->isMap()); } - /** - * Test isGeneric() - * - */ #[@test] public function genericListIsGeneric() { $this->assertTrue((new TypeName('List', array(new TypeName('T'))))->isGeneric()); } - /** - * Test isGeneric() - * - */ #[@test] public function arrayIsNotGeneric() { $this->assertFalse((new TypeName('T[]'))->isGeneric()); } - /** - * Test compoundName() - * - */ #[@test] public function intPrimitiveCompoundName() { $this->assertEquals('int', (new TypeName('int'))->compoundName()); } - /** - * Test compoundName() - * - */ #[@test] public function stringArrayCompoundName() { $this->assertEquals('string[]', (new TypeName('string[]'))->compoundName()); } - /** - * Test compoundName() - * - */ #[@test] public function objectClassCompoundName() { $this->assertEquals('lang.Object', (new TypeName('lang.Object'))->compoundName()); } - /** - * Test compoundName() - * - */ #[@test] public function genericListCompoundName() { $this->assertEquals('List', (new TypeName('List', array(new TypeName('T'))))->compoundName()); } - /** - * Test arrayComponentType() - * - */ #[@test] public function arrayComponentType() { $this->assertEquals(new TypeName('string'), (new TypeName('string[]'))->arrayComponentType()); } - /** - * Test arrayComponentType() - * - */ #[@test] public function arrayComponentTypeOfNonArray() { $this->assertEquals(null, (new TypeName('string'))->arrayComponentType()); } - /** - * Test mapComponentType() - * - */ #[@test] public function mapComponentType() { $this->assertEquals( @@ -211,43 +123,42 @@ public function mapComponentType() { ); } - /** - * Test mapComponentType() - * - */ #[@test] public function mapComponentTypeOfNonMap() { $this->assertEquals(null, (new TypeName('string'))->mapComponentType()); } - /** - * Test isPlaceholder() - * - */ #[@test] public function tIsPlaceHolderInListOfT() { $decl= new TypeName('List', array(new TypeName('T'))); $this->assertTrue($decl->isPlaceholder(new TypeName('T'))); } - /** - * Test isPlaceholder() - * - */ #[@test] public function kIsNotPlaceHolderInListOfT() { $decl= new TypeName('List', array(new TypeName('T'))); $this->assertFalse($decl->isPlaceholder(new TypeName('K'))); } - /** - * Test isPlaceholder() - * - */ #[@test] public function kAndVArePlaceHoldersInMapOfKV() { $decl= new TypeName('Map', array(new TypeName('K'), new TypeName('V'))); $this->assertTrue($decl->isPlaceholder(new TypeName('K')), 'K'); $this->assertTrue($decl->isPlaceholder(new TypeName('V')), 'V'); } + + #[@test] + public function intIsNotFunction() { + $this->assertFalse((new TypeName('int'))->isFunction()); + } + + #[@test] + public function isFunction() { + $this->assertTrue((new TypeName('->string', array(new TypeName('int'))))->isFunction()); + } + + #[@test] + public function functionReturnType() { + $this->assertEquals(new TypeName('string'), (new TypeName('->string', array()))->functionReturnType()); + } } \ No newline at end of file From f93c3619d975357f8685783ef90faf9738d94200 Mon Sep 17 00:00:00 2001 From: Timm Friebe Date: Sun, 20 Sep 2015 17:56:04 +0200 Subject: [PATCH 2/3] Use square braces, looks better --- src/main/jay/grammars/xp.jay | 4 +- .../xp/compiler/syntax/xp/Parser.class.php | 2576 +++++++++-------- .../syntax/xp/MethodDeclarationTest.class.php | 6 +- 3 files changed, 1296 insertions(+), 1290 deletions(-) diff --git a/src/main/jay/grammars/xp.jay b/src/main/jay/grammars/xp.jay index 3d6e0b322..0cbb91aa6 100644 --- a/src/main/jay/grammars/xp.jay +++ b/src/main/jay/grammars/xp.jay @@ -1084,8 +1084,8 @@ signature: ; functiontype: - '(' '?' T_ARROW typeref ')' { $$= new TypeName('->'.$4->compoundName(), null); } - | '(' signature T_ARROW typeref ')' { $$= new TypeName('->'.$4->compoundName(), $2); } + '{' '?' T_ARROW typeref '}' { $$= new TypeName('->'.$4->compoundName(), null); } + | '{' signature T_ARROW typeref '}' { $$= new TypeName('->'.$4->compoundName(), $2); } ; name_list: diff --git a/src/main/php/xp/compiler/syntax/xp/Parser.class.php b/src/main/php/xp/compiler/syntax/xp/Parser.class.php index ccc11373f..6835b57f7 100644 --- a/src/main/php/xp/compiler/syntax/xp/Parser.class.php +++ b/src/main/php/xp/compiler/syntax/xp/Parser.class.php @@ -243,1421 +243,1427 @@ class Parser extends \text\parser\generic\AbstractParser { 0, 301, 29, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 218, 0, 194, 0, 0, 0, 0, 0, 0, + 218, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 278, 279, 0, 284, 292, 291, - 289, 191, 281, 0, 0, 0, 224, 0, 0, 307, - 0, 0, 0, 0, 302, 305, 0, 314, 0, 0, - 25, 0, 34, 36, 37, 0, 0, 0, 42, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, - 188, 0, 0, 100, 0, 0, 0, 220, 0, 0, + 0, 0, 0, 278, 279, 0, 284, 292, 291, 289, + 191, 281, 0, 0, 0, 224, 0, 0, 307, 0, + 0, 0, 0, 302, 305, 0, 314, 0, 0, 25, + 0, 34, 36, 37, 0, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 186, 188, + 0, 100, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 211, 0, 202, 0, 0, - 283, 0, 175, 0, 0, 237, 235, 82, 303, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 35, 0, 0, 193, 0, 0, 0, 0, - 0, 189, 0, 221, 190, 219, 0, 0, 184, 181, + 0, 0, 0, 211, 0, 202, 0, 0, 283, 0, + 175, 0, 0, 237, 235, 82, 303, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 35, 0, 0, 193, 0, 0, 0, 0, 0, 189, + 0, 221, 190, 219, 0, 0, 184, 181, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 287, 311, + 312, 113, 0, 131, 117, 121, 123, 119, 127, 129, + 115, 125, 0, 0, 0, 0, 111, 0, 63, 0, + 0, 0, 0, 0, 0, 35, 45, 0, 43, 0, + 0, 0, 0, 0, 0, 0, 212, 0, 195, 0, + 285, 290, 0, 0, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 38, 137, 112, 0, + 0, 61, 59, 103, 104, 105, 106, 107, 108, 0, + 0, 0, 0, 0, 0, 0, 179, 180, 197, 215, + 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 155, 0, 0, 128, 130, 0, 0, 0, + 0, 142, 222, 0, 0, 93, 0, 0, 0, 0, + 0, 65, 0, 48, 0, 0, 53, 33, 0, 178, + 213, 182, 288, 114, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 287, 311, 312, 113, 0, 131, 117, 121, 123, 119, - 127, 129, 115, 125, 0, 0, 0, 0, 111, 0, - 63, 0, 0, 0, 0, 0, 0, 35, 45, 0, - 43, 0, 0, 0, 0, 0, 0, 0, 212, 0, - 195, 0, 285, 290, 0, 0, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 137, - 112, 0, 0, 61, 59, 103, 104, 105, 106, 107, - 108, 0, 0, 0, 0, 0, 0, 0, 179, 180, - 197, 215, 0, 0, 0, 0, 0, 0, 0, 138, - 0, 0, 0, 0, 155, 0, 0, 128, 130, 0, - 0, 0, 0, 142, 222, 0, 0, 93, 0, 0, - 0, 0, 0, 65, 0, 48, 0, 0, 53, 33, - 0, 178, 213, 182, 288, 114, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 98, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 55, 0, 49, 54, 47, - 0, 0, 139, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 143, 0, 0, 0, 0, 94, 96, - 95, 0, 0, 0, 0, 0, 164, 170, 134, 0, - 161, 162, 0, 0, 122, 0, 146, 0, 0, 0, - 0, 97, 102, 0, 85, 0, 64, 0, 0, 0, - 56, 0, 0, 160, 169, 163, 135, 0, 0, 0, - 158, 116, 151, 153, 0, 0, 149, 136, 0, 0, - 62, 60, 0, 0, 0, 0, 124, 120, 0, 0, - 0, 126, 150, 87, 86, 66, 166, 0, 0, 0, - 159, 0, 0, 0, 0, 171, 118, 0, 154, 167, - 0, 152, 0, 0, 165, + 50, 0, 98, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 55, 0, 49, 54, 47, 0, 0, + 139, 0, 0, 0, 156, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 94, 96, 95, 0, + 0, 0, 0, 0, 164, 170, 134, 0, 161, 162, + 0, 0, 122, 0, 146, 0, 0, 0, 0, 97, + 102, 0, 85, 0, 64, 0, 0, 0, 56, 0, + 0, 160, 169, 163, 135, 0, 0, 0, 158, 116, + 151, 153, 0, 0, 149, 136, 0, 0, 62, 60, + 0, 0, 0, 0, 124, 120, 0, 0, 0, 126, + 150, 87, 86, 66, 166, 0, 0, 0, 159, 0, + 0, 0, 0, 171, 118, 0, 154, 167, 0, 152, + 0, 0, 165, ); protected static $yyDgoto= array(2, 3, 6, 28, 143, 4, 7, 8, 17, 53, 18, - 262, 114, 61, 99, 123, 176, 63, 267, 62, 101, - 125, 409, 263, 264, 265, 396, 268, 269, 349, 350, - 397, 198, 364, 407, 498, 145, 488, 499, 531, 493, - 558, 587, 492, 489, 443, 452, 534, 41, 30, 42, - 58, 94, 95, 96, 146, 490, 491, 398, 399, 304, - 426, 436, 476, 602, 430, 433, 517, 431, 432, 437, - 605, 434, 435, 429, 467, 569, 469, 483, 470, 484, - 606, 607, 620, 621, 619, 570, 594, 571, 572, 592, - 628, 593, 147, 273, 116, 117, 148, 371, 280, 191, - 242, 192, 200, 186, 290, 277, 149, 150, 151, 152, - 153, 463, 201, 202, 154, 103, 155, 156, 337, 243, - 244, 329, 245, 425, 330, 118, 119, 120, 169, 31, + 261, 114, 61, 99, 123, 176, 63, 266, 62, 101, + 125, 407, 262, 263, 264, 394, 267, 268, 347, 348, + 395, 197, 362, 405, 496, 145, 486, 497, 529, 491, + 556, 585, 490, 487, 441, 450, 532, 41, 30, 42, + 58, 94, 95, 96, 146, 488, 489, 396, 397, 302, + 424, 434, 474, 600, 428, 431, 515, 429, 430, 435, + 603, 432, 433, 427, 465, 567, 467, 481, 468, 482, + 604, 605, 618, 619, 617, 568, 592, 569, 570, 590, + 626, 591, 147, 272, 116, 117, 148, 369, 279, 191, + 241, 192, 199, 186, 288, 276, 149, 150, 151, 152, + 153, 461, 200, 201, 154, 103, 155, 156, 335, 242, + 243, 327, 244, 423, 328, 118, 119, 120, 169, 31, 32, ); - protected static $yySindex = array( -283, - 0, 0, -231, -146, 375, 1112, -231, 0, 36, 41, - 86, 0, -169, -169, 0, 0, 124, 0, 110, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, - 1036, 0, 0, -146, -146, 0, -30, 166, -24, 85, - 177, 0, 0, 0, 0, 0, 0, 0, -24, -24, - -24, 0, 172, 0, 186, 216, 0, 246, 110, 1036, - -146, -146, -146, 273, 0, 307, 324, 0, -146, -146, - 320, 0, 0, 347, 168, 182, 168, 0, 0, 0, - 0, 0, 0, -146, 433, 0, 0, 0, 0, 0, - 407, 103, 0, 490, 54, 0, 419, -146, 211, -146, - 437, 211, 5183, 496, 878, 878, -192, 0, -161, 0, - 232, 507, 527, 0, 495, 0, 0, 0, 292, 0, - 0, -146, 465, 551, 0, 0, 474, 5586, 0, 5586, - 5586, 5586, 5586, 5586, 5586, 0, 5586, 481, 541, 0, - 5597, 477, 197, 3834, -35, 0, 567, 0, 0, 0, - 0, 0, 0, 520, 575, 0, 5586, 36, 0, 0, - 0, 0, 560, 0, -146, -17, 365, 495, -22, 539, - 419, 0, 0, 0, -146, 1461, 374, 414, 2849, 17, - 17, -51, 17, 17, 17, -17, 0, 5586, 0, 5586, - 384, -35, 507, 0, 5282, -45, 2946, 96, 302, 618, - 608, 0, 64, 0, 5586, 5586, 5586, 5586, 5586, 5586, - 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, 5586, - 5393, 5433, 5022, 5586, 5151, 5586, 5586, 5586, 5586, 5586, - 5586, 5586, -146, 5586, 0, 0, -17, 0, 0, 0, - 0, 0, 0, -35, -169, 5586, 0, -207, 635, 0, - 333, -17, -17, -17, 0, 0, 1702, 0, 554, 418, - 0, -7, 0, 0, 0, 0, 555, 317, 0, 5586, - 644, 495, -35, 566, 568, 3834, 5586, 3834, 5465, 0, - 0, 96, -35, 0, 629, 384, 64, 0, 384, 158, - 3869, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, - 3966, 3966, 3834, 642, 296, 104, 1517, 5586, 63, 5586, - 63, 5586, 5586, 138, 138, 5586, 5586, 138, 138, 116, - 116, 149, 149, 149, -51, 0, 17, 0, 5586, 5586, - 0, 661, 0, 646, 541, 0, 0, 0, 0, -14, - 495, 44, 0, 692, 450, 416, 452, 112, 593, 682, - 0, 374, 0, 74, 5586, 0, 5586, -9, 685, 692, - 3834, 0, 5586, 0, 0, 0, 605, 691, 0, 0, - -35, 5586, 3966, 3966, 138, 138, 138, 138, 641, 697, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 700, 616, 3004, 692, 0, 695, - 0, 706, 712, 980, 652, 629, 630, 0, 0, 5586, - 0, 816, 716, 639, 640, -35, 647, 3834, 0, 5586, - 0, 74, 0, 0, 5586, 5586, 0, 436, 5586, 737, - 739, 569, 744, 726, 727, 748, 749, 451, 0, 0, - 0, 583, 87, 0, 0, 0, 0, 0, 0, 0, - 0, 752, 87, 734, 537, 2406, 3121, 593, 0, 0, - 0, 0, -35, 757, 759, 742, 692, 741, 390, 0, - 3242, 5586, 5586, 692, 0, 442, 464, 0, 0, 5586, - 5586, 745, 429, 0, 0, 753, 435, 0, 766, 770, - 37, -5, -5, 0, 722, 0, 33, -54, 0, 0, - 593, 0, 0, 0, 0, 0, 694, 5586, 436, 693, - 0, 758, 3277, 696, 780, 781, 472, 3393, 3420, 5586, - 451, 714, 0, 579, 0, 519, 87, 512, 629, 87, - 812, 770, 813, 87, 0, 0, 692, 0, 0, 0, - 43, 3834, 0, 692, 5586, 569, 0, 5586, 516, 5586, - 569, 735, 3834, 0, 692, 629, -146, 73, 0, 0, - 0, 770, 519, 519, 818, 750, 0, 0, 0, 43, - 0, 0, 755, 801, 0, 3538, 0, 3573, 502, 127, - 765, 0, 0, 5586, 0, 692, 0, 73, 73, 519, - 0, 834, 754, 0, 0, 0, 0, 5586, 840, 569, - 0, 0, 0, 0, 775, 127, 0, 0, 3693, 776, - 0, 0, 73, -146, 692, 861, 0, 0, 569, 5586, - 845, 0, 0, 0, 0, 0, 0, -114, 779, 569, - 0, 3721, 692, -146, 864, 0, 0, 692, 0, 0, - 794, 0, 692, 795, 0, + protected static $yySindex = array( -228, + 0, 0, -207, -59, 260, 1773, -207, 0, 65, 110, + 114, 0, -223, -223, 0, 0, 151, 0, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, + 956, 0, 0, -59, -59, 0, -29, 180, -23, -148, + 54, 0, 0, 0, 0, 0, 0, 0, -23, -23, + -23, 0, 136, 0, 226, 193, 0, 216, 49, 956, + -59, -59, -59, 219, 0, 224, 261, 0, -59, -59, + 269, 0, 0, 336, 102, 109, 102, 0, 0, 0, + 0, 0, 0, -59, 221, 0, 0, 0, 0, 0, + 353, 36, 0, 383, 390, 0, 116, -59, 152, -59, + 352, 152, 5344, 454, 252, 252, -206, 0, -96, 0, + 194, 451, 370, 0, 420, 0, 0, 0, 104, 0, + 0, -59, 404, 478, 0, 0, 414, 5618, 0, 5618, + 5618, 5618, 5618, 5618, 5618, 0, 5618, 595, 484, 0, + 5235, 426, 147, 3749, -28, 0, 521, 0, 0, 0, + 0, 0, 0, 480, 527, 0, 5618, 65, 0, 0, + 0, 0, 516, 0, -59, -1, 327, 420, -21, 493, + 116, 0, 0, 0, -59, 51, 351, 355, 2710, -73, + -73, -78, -73, -73, -73, -1, 0, 5618, 0, 5618, + 364, -28, 451, 0, -54, 2872, 67, 285, 582, 596, + 0, -76, 0, 5618, 5618, 5618, 5618, 5618, 5618, 5618, + 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5353, + 5468, 3995, 5618, 5226, 5618, 5618, 5618, 5618, 5618, 5618, + 5618, -59, 5618, 0, 0, -1, 0, 0, 0, 0, + 0, 0, -28, -223, 5618, 0, 339, 603, 0, 312, + -1, -1, -1, 0, 0, 1322, 0, 528, 398, 0, + 259, 0, 0, 0, 0, 539, 298, 0, 5618, 630, + 420, -28, 565, 566, 3749, 5618, 3749, 5497, 0, 0, + -28, 0, 629, 364, -76, 0, 364, 149, 3777, 3895, + 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, + 3749, 633, 4005, 808, 4021, 5618, 27, 5618, 27, 5618, + 5618, 39, 39, 5618, 5618, 39, 39, 14, 14, -81, + -81, -81, -78, 0, -73, 0, 5618, 5618, 0, 673, + 0, 657, 484, 0, 0, 0, 0, 78, 420, 262, + 0, 711, 456, 399, 463, -66, 601, 685, 0, 351, + 0, 326, 5618, 0, 5618, -17, 691, 711, 3749, 0, + 5618, 0, 0, 0, 608, 696, 0, 0, -28, 5618, + 3895, 3895, 39, 39, 39, 39, 647, 700, 0, 0, + 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 708, 624, 3036, 711, 0, 689, 0, 712, + 713, 605, 664, 629, 634, 0, 0, 5618, 0, 427, + 717, 638, 640, -28, 641, 3749, 0, 5618, 0, 326, + 0, 0, 5618, 5618, 0, 419, 5618, 728, 729, 523, + 731, 715, 716, 739, 740, 432, 0, 0, 0, 825, + 139, 0, 0, 0, 0, 0, 0, 0, 0, 756, + 139, 730, 545, 1389, 3095, 601, 0, 0, 0, 0, + -28, 763, 765, 753, 711, 752, 418, 0, 3133, 5618, + 5618, 711, 0, 453, 475, 0, 0, 5618, 5618, 760, + 455, 0, 0, 769, 301, 0, 792, 790, -288, -77, + -77, 0, 742, 0, 20, -90, 0, 0, 601, 0, + 0, 0, 0, 0, 714, 5618, 419, 718, 0, 779, + 3173, 722, 800, 799, 485, 3270, 3297, 5618, 432, 733, + 0, 592, 0, 533, 139, 518, 629, 139, 821, 790, + 826, 139, 0, 0, 711, 0, 0, 0, 310, 3749, + 0, 711, 5618, 523, 0, 5618, 531, 5618, 523, 738, + 3749, 0, 711, 629, -59, -38, 0, 0, 0, 790, + 533, 533, 831, 748, 0, 0, 0, 310, 0, 0, + 750, 818, 0, 3337, 0, 3569, 507, 303, 754, 0, + 0, 5618, 0, 711, 0, -38, -38, 533, 0, 840, + 758, 0, 0, 0, 0, 5618, 823, 523, 0, 0, + 0, 0, 766, 303, 0, 0, 3596, 767, 0, 0, + -38, -59, 711, 853, 0, 0, 523, 5618, 842, 0, + 0, 0, 0, 0, 0, -111, 782, 523, 0, 3722, + 711, -59, 868, 0, 0, 711, 0, 0, 787, 0, + 711, 788, 0, ); - protected static $yyRindex= array( 1162, - 0, 0, 1344, 0, 0, 337, 1599, 0, 825, 0, + protected static $yyRindex= array( 1380, + 0, 0, 720, 0, 0, 361, 1596, 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -40, 427, 0, 0, 276, 0, 549, + 0, 0, 0, -30, 168, 0, 0, 75, 0, 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 948, -86, 798, -86, 0, 0, 0, - 0, 0, 0, 0, -28, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, - 0, 800, 831, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -16, 0, 353, 0, 0, 0, 0, 0, - 0, 0, 0, 278, 0, 0, 0, 2706, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2187, 2073, 1067, - 865, 0, 0, 674, 1772, 0, 4, 0, 0, 0, - 0, 0, 0, 0, -42, 0, 884, -32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, - 0, 0, 0, 0, 0, -1, 803, 1125, 1130, 2225, - 2263, 2795, 2300, 2371, 2408, 0, 0, 0, 0, 0, - 0, 1772, 5557, 1800, 11, -19, 0, 1664, 0, 0, - -20, 0, 669, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, + 0, 0, 0, 902, -89, 789, -89, 0, 0, 0, + 0, 0, 0, 0, -31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 791, 0, + 0, 791, 824, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -12, 0, 293, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 2576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2026, 1915, 1000, + 886, 0, 0, 701, 1730, 0, 307, 0, 0, 0, + 0, 0, 0, 0, 81, 0, 887, -36, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, + 0, 0, 0, 0, 0, -97, 804, 1298, 751, 1985, + 2150, 2613, 2411, 2448, 2485, 0, 0, 0, 0, 0, + 0, 1730, 5510, 1848, -13, 0, 1529, 0, 0, -19, + 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1965, 0, 903, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 0, -1, 0, 611, 0, - 0, 0, 0, 0, 0, 443, 0, 815, 0, 0, - 846, 0, 1772, 847, 851, 59, 884, 76, 0, 0, - 0, -18, 1772, 0, 20, 0, 0, 0, 0, 0, - 670, -12, 305, 665, 701, 703, 764, 783, 923, 943, - 956, 1204, 135, 0, 2669, 1635, 4888, 0, 4936, 0, - 4977, 0, 0, 2975, 4354, 0, 0, 4428, 4466, 4255, - 4297, 4025, 4132, 4170, 2822, 0, 2523, 0, 853, 884, - 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, - -3, 0, 0, 836, 0, 97, 0, 0, 413, 0, - 0, 0, 0, 2892, 884, 0, 838, 0, 0, 836, - 820, 0, 0, 0, 0, 0, 0, 1547, 0, 0, - 1772, 0, 1456, 1458, 4554, 4681, 4763, 4851, 0, 0, + 0, 0, 1958, 0, 732, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 0, -97, 0, 820, 0, 0, + 0, 0, 0, 0, 55, 0, 810, 0, 0, 845, + 0, 1730, 846, 847, 481, 887, 534, 0, 0, 0, + 1730, 0, 87, 0, 0, 0, 0, 0, 62, 363, + 482, 544, 575, 723, 749, 874, 971, 973, 1306, 1488, + 546, 0, 5003, 4949, 4879, 0, 4895, 0, 4924, 0, + 0, 66, 1092, 0, 0, 4426, 4454, 4325, 4400, 4180, + 4225, 4285, 2651, 0, 2539, 0, 848, 887, 0, 1395, + 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, + 0, 832, 0, 86, 0, 0, 24, 0, 0, 0, + 0, 5024, 887, 0, 837, 0, 0, 832, 410, 0, + 0, 0, 0, 0, 0, 1432, 0, 0, 1730, 0, + 1501, 1600, 4496, 4621, 4727, 4836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -111, 0, 0, - 0, 0, 842, 0, 0, 900, 0, 0, 0, 0, - 0, 82, 0, 0, 0, 1772, 0, 164, 0, 884, - 0, 4735, 0, 0, 884, 907, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, + 827, 0, 0, 889, 0, 0, 0, 0, 0, 290, + 0, 0, 0, 1730, 0, 92, 0, 887, 0, 5047, + 0, 0, 887, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 927, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, 1249, 0, 0, - 0, 0, 1772, 0, 0, 0, 836, 470, 0, 0, - 0, 911, 0, 836, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 340, 0, 0, 932, - 0, 933, 933, 0, 0, 0, 0, 0, 0, 0, - 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 612, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 0, 0, 340, 0, - 0, 934, 0, 927, 0, 0, 836, 0, 0, 0, - 0, 488, 0, 836, 911, 0, 0, 0, 0, 0, - 0, 0, 517, 0, 836, 340, 0, 0, 0, 0, - 0, 936, 300, 300, 0, 0, 0, 0, 0, 283, - 0, 0, 0, 0, 0, 0, 0, 0, 408, 854, - 0, 0, 0, 0, 0, 836, 0, 0, 0, 300, - 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, - 0, 0, 0, 0, 0, 855, 0, 0, 0, 0, - 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, + 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -97, 0, 1335, 0, 0, 0, 0, + 1730, 0, 0, 0, 832, 464, 0, 0, 0, 909, + 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 64, 0, 0, 928, 0, 929, + 929, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -108, 0, 0, 0, 0, -108, 0, 0, - 0, 0, 836, 0, 0, + 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 58, 0, 0, 64, 0, 0, 937, + 0, 915, 0, 0, 832, 0, 0, 0, 0, 495, + 0, 832, 909, 0, 0, 0, 0, 0, 0, 0, + 503, 0, 832, 64, 0, 0, 0, 0, 0, 938, + 58, 58, 0, 0, 0, 0, 0, 332, 0, 0, + 0, 0, 0, 0, 0, 0, 457, 856, 0, 0, + 0, 0, 0, 832, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, + 0, 0, 0, 857, 0, 0, 0, 0, 0, 0, + 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -98, 0, 0, 0, 0, -98, 0, 0, 0, 0, + 832, 0, 0, ); protected static $yyGindex= array(0, - 0, 0, 0, -4, 0, 0, 976, 536, 613, 39, - 988, -60, 0, 921, 901, -126, 0, 0, 0, 0, - -115, -304, 0, 0, 0, 50, 0, 656, 0, 0, - 83, 1739, -337, 0, 0, -63, -383, 506, 525, 0, - 8, -379, 0, 478, 0, 0, 0, 0, 953, 960, - 0, 487, 0, 915, -153, -2, -65, 0, 904, -139, - 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 511, 505, - 0, 423, 0, 0, 0, 0, 0, 460, 461, 0, - 0, 0, 0, 0, 857, 858, 679, 0, 287, 0, - -27, 0, 843, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 760, 0, 0, 0, 797, 0, 806, - 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, - 1025, + 0, 0, 0, -4, 0, 0, 976, 670, 631, 416, + 982, -60, 0, 914, 890, -146, 0, 0, 0, 0, + -115, -364, 0, 0, 0, 980, 0, 644, 0, 0, + 83, 1032, -331, 0, 0, -62, -380, 513, 519, 0, + 48, -203, 0, 479, 0, 0, 0, 0, 953, 957, + 0, 581, 0, 910, -153, -249, -86, 0, 68, -106, + 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 511, 514, + 0, 430, 0, 0, 0, 0, 0, 467, 468, 0, + 0, 0, 0, 0, 862, 863, 683, 0, 283, 0, + -181, 0, 854, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 803, 0, 822, + 0, 0, 0, 0, 0, 0, 0, 896, 0, 0, + 1037, ); protected static $yyTable = array(11, - 75, 76, 77, 249, 241, 16, 173, 93, 222, 634, - 240, 222, 222, 110, 97, 50, 109, 52, 13, 1, - 217, 253, 113, 104, 300, 309, 382, 308, 210, 47, - 48, 210, 113, 309, 113, 57, 26, 121, 315, 124, - 310, 93, 93, 300, 173, 210, 210, 257, 129, 428, - 233, 216, 334, 335, 308, 238, 74, 74, 74, 258, - 57, 124, 173, 57, 81, 82, 92, 161, 454, 495, - 538, 300, 5, 112, 234, 199, 170, 54, 236, 74, - 210, 34, 233, 112, 383, 112, 35, 65, 54, 54, - 12, 536, 74, 74, 110, 74, 173, 109, 163, 231, - 92, 92, 238, 113, 229, 227, 333, 228, 74, 230, - 231, 220, 210, 9, 124, 229, 227, 74, 228, 239, - 230, 315, 223, 359, 225, 271, 113, 236, 173, 199, - 15, 585, 427, 223, 170, 225, 196, 199, 91, 10, - 231, 220, 234, 559, 36, 229, 227, 162, 228, 525, - 230, 238, 231, 502, 112, 537, 17, 229, 284, 236, - 250, 74, 230, 223, 281, 225, 74, 219, 239, 39, - 74, 328, 326, 40, 231, 177, 380, 112, 177, 229, - 227, 74, 228, 238, 230, 144, 170, 17, 234, 379, - 196, 561, 177, 177, 16, 586, 540, 218, 74, 234, - 239, 413, 170, 414, 58, 497, 39, 58, 611, 612, - 179, 51, 180, 181, 182, 183, 184, 185, 582, 187, - 59, 199, 58, 197, 26, 635, 412, 177, 74, 234, - 68, 34, 74, 626, 254, 12, 217, 300, 309, 144, - 308, 234, 9, 69, 210, 356, 309, 74, 74, 74, - 334, 335, 346, 310, 9, 362, 58, 74, 315, 177, - 233, 110, 110, 234, 109, 109, 464, 308, 10, 60, - 276, 465, 278, 70, 234, 15, 57, 197, 10, 237, - 10, 456, 74, 332, 315, 71, 466, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 305, 306, 307, 309, 311, 314, 315, 318, 319, 320, - 321, 322, 323, 324, 325, 168, 327, 168, 512, 71, - 300, 99, 168, 9, 347, 168, 530, 168, 303, 584, - 315, 78, 231, 220, 487, 171, 313, 229, 227, 16, - 228, 315, 230, 421, 55, 240, 9, 237, 240, 10, - 235, 236, 354, 172, 316, 223, 17, 225, 101, 144, - 352, 361, 240, 240, 204, 79, 528, 315, 71, 16, - 10, 403, 10, 168, 233, 353, 529, 17, 486, 49, - 57, 17, 80, 57, 239, 233, 567, 568, 461, 219, - 373, 574, 374, 237, 375, 376, 306, 240, 377, 378, - 313, 210, 210, 288, 237, 316, 97, 168, 168, 417, - 83, 303, 144, 315, 306, 233, 17, 368, 235, 236, - 58, 234, 101, 170, 56, 339, 487, 233, 17, 240, - 510, 404, 57, 509, 237, 503, 17, 144, 74, 144, - 157, 583, 157, 405, 616, 418, 237, 157, 74, 233, - 157, 406, 157, 189, 422, 401, 32, 369, 113, 34, - 233, 34, 226, 224, 235, 236, 17, 106, 237, 522, - 17, 32, 521, 226, 224, 235, 236, 98, 34, 237, - 524, 111, 46, 232, 221, 222, 44, 74, 74, 532, - 532, 100, 457, 105, 232, 363, 124, 370, 157, 603, - 604, 44, 144, 226, 224, 235, 236, 144, 303, 112, - 140, 471, 107, 140, 221, 222, 507, 235, 236, 17, - 189, 122, 74, 514, 232, 74, 34, 562, 141, 74, - 108, 141, 157, 157, 313, 157, 232, 32, 188, 235, - 236, 165, 168, 168, 168, 168, 168, 168, 37, 38, - 235, 236, 74, 627, 144, 513, 101, 144, 232, 126, - 144, 240, 518, 519, 166, 44, 113, 44, 168, 232, - 588, 589, 365, 640, 316, 367, 43, 44, 45, 85, - 86, 87, 88, 89, 90, 170, 566, 174, 315, 167, - 542, 159, 160, 573, 175, 168, 177, 613, 190, 203, - 316, 132, 553, 142, 581, 10, 204, 233, 141, 74, - 246, 130, 247, 131, 316, 316, 316, 112, 248, 91, - 105, 252, 168, 168, 168, 168, 237, 144, 168, 74, - 576, 255, 578, 266, 12, 610, 315, 315, 315, 315, - 279, 285, 168, 168, 168, 168, 316, 168, 168, 168, - 323, 287, 168, 168, 168, 168, 168, 13, 286, 83, - 14, 64, 66, 67, 629, 84, 609, 157, 157, 157, - 157, 157, 157, 83, 15, 338, 344, 345, 9, 351, - 144, 575, 639, 355, 168, 168, 579, 642, 357, 363, - 358, 474, 644, 157, 133, 226, 224, 235, 236, 372, - 381, 323, 632, 188, 10, 241, 221, 222, 241, 400, - 209, 402, 168, 209, 174, 408, 232, 174, 240, 240, - 157, 410, 241, 241, 132, 416, 142, 209, 209, 419, - 420, 141, 174, 423, 130, 618, 131, 424, 16, 438, - 439, 242, 453, 243, 242, 444, 243, 157, 157, 157, - 157, 445, 455, 157, 631, 442, 458, 241, 242, 242, - 243, 243, 209, 459, 460, 637, 174, 157, 157, 157, - 157, 462, 157, 157, 157, 468, 472, 157, 473, 157, - 157, 157, 83, 477, 478, 479, 9, 480, 481, 241, - 482, 494, 496, 242, 209, 243, 497, 504, 174, 505, - 506, 508, 515, 516, 244, 520, 526, 244, 315, 157, - 157, 523, 10, 527, 535, 544, 545, 133, 541, 548, - 547, 244, 244, 246, 549, 242, 246, 243, 178, 86, - 87, 88, 89, 90, 315, 550, 555, 157, 556, 557, - 246, 246, 485, 86, 87, 88, 89, 90, 315, 315, - 315, 560, 563, 564, 10, 577, 244, 580, 590, 598, - 214, 17, 17, 214, 17, 17, 17, 17, 17, 17, - 323, 17, 601, 614, 591, 246, 615, 214, 214, 597, - 315, 137, 17, 17, 17, 17, 17, 17, 244, 608, - 323, 323, 323, 323, 323, 323, 323, 323, 617, 622, - 625, 630, 633, 636, 641, 216, 19, 246, 140, 384, - 385, 386, 214, 323, 136, 17, 643, 17, 17, 645, - 30, 241, 28, 172, 172, 216, 209, 41, 387, 388, - 389, 390, 176, 391, 392, 128, 296, 297, 393, 40, - 394, 298, 323, 176, 214, 176, 176, 17, 17, 17, - 17, 178, 86, 87, 88, 89, 90, 242, 57, 243, - 109, 176, 172, 245, 51, 176, 245, 91, 83, 172, - 134, 135, 92, 88, 90, 145, 89, 10, 147, 148, - 245, 245, 33, 247, 300, 300, 247, 300, 300, 300, - 300, 300, 300, 29, 300, 176, 248, 102, 395, 248, - 247, 247, 127, 539, 137, 300, 300, 411, 300, 300, - 300, 565, 73, 248, 248, 245, 450, 533, 72, 543, - 244, 448, 446, 164, 447, 554, 449, 176, 623, 595, - 596, 140, 384, 385, 386, 247, 415, 136, 300, 246, - 300, 300, 274, 275, 336, 289, 366, 245, 248, 331, - 256, 387, 388, 389, 390, 46, 391, 392, 128, 0, - 0, 393, 0, 394, 0, 0, 0, 247, 0, 0, - 300, 300, 300, 300, 0, 0, 214, 0, 241, 241, - 248, 17, 0, 209, 17, 0, 0, 0, 0, 0, - 0, 0, 0, 134, 135, 20, 21, 22, 259, 24, - 25, 0, 26, 187, 187, 451, 187, 187, 187, 187, - 187, 187, 187, 187, 242, 242, 243, 243, 27, 0, - 0, 395, 0, 0, 187, 187, 187, 187, 187, 187, - 0, 0, 0, 0, 17, 17, 17, 158, 86, 87, - 88, 89, 90, 0, 17, 0, 0, 0, 0, 260, - 0, 0, 0, 0, 17, 17, 17, 187, 0, 187, - 187, 222, 222, 10, 17, 222, 222, 222, 17, 222, - 200, 222, 0, 200, 0, 0, 0, 244, 244, 245, - 0, 0, 222, 222, 17, 222, 222, 17, 200, 0, - 187, 187, 187, 0, 0, 0, 246, 246, 0, 247, - 0, 0, 19, 0, 300, 0, 0, 300, 0, 0, - 0, 0, 248, 0, 0, 17, 0, 222, 222, 0, - 0, 0, 200, 84, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 0, 17, 17, 17, 0, 17, 17, - 17, 17, 17, 17, 249, 17, 0, 249, 222, 222, - 222, 0, 2, 0, 200, 0, 0, 300, 300, 300, - 0, 249, 249, 0, 0, 0, 0, 300, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 300, 300, - 0, 0, 0, 0, 0, 32, 32, 300, 32, 32, - 32, 32, 32, 32, 32, 32, 249, 0, 0, 0, - 0, 441, 0, 0, 0, 0, 32, 32, 32, 32, - 32, 32, 0, 0, 0, 20, 21, 22, 23, 24, - 25, 0, 26, 185, 0, 0, 0, 0, 249, 0, - 0, 0, 0, 0, 0, 475, 245, 245, 27, 32, - 0, 32, 32, 0, 0, 0, 0, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 247, 247, 300, 300, - 0, 300, 300, 300, 300, 300, 300, 0, 300, 248, - 248, 0, 32, 32, 32, 0, 0, 0, 187, 0, - 0, 17, 0, 0, 0, 0, 200, 0, 0, 0, - 0, 20, 21, 22, 23, 24, 25, 187, 26, 0, - 0, 0, 286, 286, 0, 0, 286, 286, 286, 286, - 286, 286, 286, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 286, 286, 286, 286, 286, 286, 0, - 0, 0, 0, 0, 5, 0, 222, 0, 0, 0, - 0, 2, 2, 2, 2, 2, 2, 0, 2, 475, - 0, 0, 0, 0, 475, 222, 286, 0, 286, 286, - 249, 2, 2, 2, 17, 2, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 0, 0, 187, 187, 0, - 187, 187, 187, 187, 187, 187, 187, 187, 0, 286, - 286, 286, 0, 0, 0, 0, 258, 0, 259, 258, - 0, 259, 0, 475, 0, 32, 0, 0, 0, 0, - 0, 0, 0, 258, 258, 259, 259, 0, 0, 0, - 0, 0, 475, 0, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 475, 17, 222, 222, 0, 222, 222, - 222, 222, 222, 222, 222, 222, 0, 0, 258, 0, - 259, 19, 0, 231, 0, 0, 0, 0, 229, 227, - 32, 228, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 225, 32, - 258, 0, 259, 183, 183, 261, 0, 183, 183, 183, - 183, 183, 183, 183, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 183, 183, 183, 183, 183, 183, - 0, 0, 0, 0, 0, 0, 0, 249, 249, 0, - 0, 0, 286, 5, 5, 5, 5, 5, 5, 0, - 5, 0, 0, 0, 0, 0, 0, 183, 0, 183, - 183, 0, 234, 5, 5, 5, 5, 0, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 0, 0, 32, - 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, - 183, 183, 183, 0, 0, 268, 0, 286, 268, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 0, 0, 268, 268, 0, 268, 286, 268, 0, 0, - 99, 99, 0, 0, 99, 99, 99, 99, 99, 0, - 99, 0, 258, 0, 259, 0, 0, 0, 0, 0, - 0, 99, 99, 99, 99, 99, 0, 268, 268, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 21, 22, 259, 24, 25, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 99, 99, 268, 268, - 0, 0, 0, 27, 0, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 0, 0, 286, 286, 0, 286, - 286, 286, 286, 286, 286, 286, 286, 99, 99, 99, - 0, 0, 19, 0, 260, 0, 0, 0, 0, 0, - 0, 0, 0, 183, 0, 0, 0, 0, 280, 280, - 0, 0, 280, 280, 280, 280, 280, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 343, 0, 233, 280, - 280, 280, 280, 280, 280, 115, 187, 187, 0, 187, - 187, 187, 187, 220, 187, 187, 187, 237, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 183, 187, - 187, 187, 187, 0, 280, 280, 0, 0, 0, 258, - 258, 259, 259, 0, 0, 0, 0, 183, 6, 6, - 6, 6, 6, 6, 0, 6, 0, 0, 0, 0, - 187, 268, 0, 187, 0, 280, 280, 280, 6, 6, - 6, 6, 0, 0, 251, 0, 0, 0, 0, 115, - 0, 0, 0, 0, 0, 0, 226, 224, 235, 236, - 99, 0, 0, 187, 272, 187, 0, 221, 222, 0, - 0, 0, 0, 282, 0, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 0, 0, 183, 183, 0, - 183, 183, 183, 183, 183, 183, 183, 183, 0, 0, - 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, - 0, 20, 21, 22, 259, 24, 25, 0, 26, 0, - 340, 341, 342, 99, 99, 0, 0, 0, 0, 0, - 348, 282, 282, 99, 27, 282, 282, 282, 282, 282, - 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 282, 282, 282, 282, 282, 282, 280, 0, - 0, 0, 0, 0, 0, 260, 0, 0, 268, 268, - 268, 268, 268, 0, 0, 0, 0, 0, 268, 268, - 268, 268, 268, 268, 0, 0, 185, 282, 282, 0, - 0, 0, 0, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 0, 0, 99, 99, 0, 99, 99, 99, - 99, 99, 99, 280, 99, 0, 0, 0, 282, 282, - 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 229, - 229, 187, 229, 0, 229, 229, 229, 229, 229, 229, + 75, 76, 77, 248, 222, 97, 173, 222, 93, 222, + 280, 240, 632, 112, 112, 16, 50, 239, 52, 110, + 583, 217, 252, 104, 170, 315, 109, 256, 13, 47, + 48, 308, 309, 26, 536, 57, 12, 121, 310, 124, + 129, 526, 93, 93, 233, 113, 113, 233, 426, 300, + 230, 527, 233, 161, 198, 228, 74, 74, 74, 257, + 229, 124, 237, 230, 81, 82, 92, 32, 228, 226, + 493, 227, 452, 229, 1, 230, 15, 300, 534, 74, + 228, 226, 32, 227, 584, 229, 222, 313, 224, 112, + 354, 500, 74, 74, 46, 74, 5, 59, 44, 360, + 92, 92, 209, 252, 57, 209, 252, 57, 74, 252, + 34, 55, 40, 44, 124, 198, 101, 74, 71, 209, + 209, 113, 357, 252, 252, 270, 252, 57, 252, 282, + 57, 425, 58, 162, 538, 58, 195, 10, 331, 233, + 16, 19, 535, 236, 557, 17, 60, 171, 32, 326, + 58, 313, 233, 523, 209, 35, 57, 170, 252, 252, + 249, 74, 315, 163, 233, 172, 74, 71, 170, 495, + 74, 324, 36, 233, 378, 260, 17, 44, 111, 44, + 101, 74, 9, 9, 58, 144, 209, 419, 315, 252, + 252, 56, 236, 401, 68, 559, 39, 74, 198, 411, + 9, 412, 380, 91, 410, 233, 112, 17, 10, 10, + 179, 17, 180, 181, 182, 183, 184, 185, 582, 187, + 377, 26, 580, 196, 236, 51, 10, 74, 633, 112, + 232, 74, 459, 232, 315, 253, 12, 217, 113, 144, + 530, 530, 332, 333, 308, 309, 74, 74, 74, 236, + 70, 310, 236, 402, 528, 71, 74, 236, 9, 454, + 17, 113, 485, 286, 462, 403, 34, 110, 110, 463, + 275, 34, 277, 404, 109, 109, 15, 78, 560, 501, + 74, 105, 79, 69, 10, 313, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 303, + 304, 305, 307, 309, 312, 313, 316, 317, 318, 319, + 320, 321, 322, 323, 101, 325, 510, 464, 209, 80, + 234, 235, 252, 234, 235, 232, 300, 301, 234, 235, + 20, 21, 22, 258, 24, 25, 306, 26, 232, 231, + 16, 350, 83, 57, 236, 17, 522, 173, 58, 112, + 232, 352, 170, 27, 306, 203, 351, 236, 144, 83, + 359, 361, 230, 219, 168, 173, 168, 228, 226, 236, + 227, 168, 229, 17, 168, 9, 168, 484, 17, 16, + 49, 113, 609, 610, 259, 222, 381, 224, 371, 572, + 372, 238, 373, 374, 189, 97, 375, 376, 9, 173, + 34, 10, 170, 210, 337, 17, 210, 624, 366, 301, + 144, 98, 315, 106, 39, 234, 235, 17, 100, 218, + 210, 210, 168, 108, 10, 17, 225, 223, 234, 235, + 110, 173, 167, 109, 231, 144, 74, 144, 399, 581, + 234, 235, 614, 416, 34, 107, 74, 231, 367, 217, + 214, 233, 420, 214, 54, 210, 168, 168, 508, 231, + 112, 507, 122, 439, 65, 54, 54, 214, 214, 252, + 252, 252, 252, 252, 126, 209, 252, 252, 485, 252, + 252, 252, 252, 252, 252, 74, 74, 210, 368, 157, + 455, 157, 113, 157, 124, 520, 157, 473, 519, 157, + 144, 157, 214, 165, 140, 144, 301, 140, 166, 469, + 170, 158, 86, 87, 88, 89, 90, 19, 344, 12, + 74, 175, 240, 74, 238, 240, 174, 74, 85, 86, + 87, 88, 89, 90, 214, 141, 177, 10, 141, 240, + 240, 190, 13, 144, 10, 14, 144, 157, 202, 315, + 74, 625, 144, 511, 10, 132, 203, 142, 573, 15, + 516, 517, 141, 577, 245, 130, 363, 131, 91, 365, + 247, 638, 246, 238, 240, 315, 105, 239, 43, 44, + 45, 157, 157, 251, 241, 254, 177, 241, 540, 177, + 345, 168, 168, 168, 168, 168, 168, 84, 332, 333, + 551, 241, 241, 177, 177, 238, 240, 74, 586, 587, + 265, 473, 616, 83, 84, 242, 473, 168, 242, 210, + 278, 315, 284, 16, 283, 144, 239, 74, 574, 9, + 576, 629, 242, 242, 189, 611, 241, 232, 177, 285, + 34, 448, 635, 336, 168, 472, 446, 444, 133, 445, + 342, 447, 188, 565, 566, 10, 236, 343, 239, 330, + 315, 315, 315, 349, 607, 473, 214, 242, 241, 353, + 177, 168, 168, 168, 168, 601, 602, 168, 144, 64, + 66, 67, 37, 38, 473, 159, 160, 355, 356, 361, + 370, 168, 168, 168, 168, 473, 168, 168, 168, 242, + 630, 168, 168, 168, 168, 168, 20, 21, 22, 258, + 24, 25, 379, 26, 188, 398, 157, 157, 157, 157, + 157, 157, 400, 406, 408, 225, 223, 234, 235, 27, + 449, 414, 417, 168, 168, 418, 220, 221, 240, 421, + 422, 174, 157, 132, 174, 142, 231, 436, 437, 440, + 141, 442, 443, 130, 451, 131, 453, 456, 466, 174, + 259, 168, 457, 243, 458, 460, 243, 470, 471, 157, + 475, 480, 176, 476, 477, 176, 210, 210, 478, 479, + 243, 243, 178, 86, 87, 88, 89, 90, 494, 244, + 176, 200, 244, 174, 200, 492, 157, 157, 157, 157, + 241, 83, 157, 502, 495, 503, 244, 244, 10, 200, + 5, 504, 506, 513, 514, 243, 157, 157, 157, 157, + 518, 157, 157, 157, 176, 174, 157, 521, 157, 157, + 157, 242, 524, 525, 533, 137, 133, 543, 539, 546, + 542, 244, 547, 200, 230, 219, 545, 243, 548, 228, + 226, 554, 227, 555, 229, 553, 176, 558, 157, 157, + 578, 561, 140, 382, 383, 384, 562, 222, 136, 224, + 575, 588, 589, 244, 595, 200, 596, 599, 606, 612, + 613, 615, 385, 386, 387, 388, 157, 389, 390, 128, + 620, 623, 391, 628, 392, 240, 240, 17, 17, 631, + 17, 17, 17, 17, 17, 17, 634, 17, 639, 641, + 323, 30, 643, 28, 246, 83, 172, 246, 17, 17, + 17, 17, 17, 17, 134, 135, 216, 172, 41, 176, + 216, 246, 246, 233, 40, 296, 297, 298, 300, 300, + 176, 300, 300, 300, 300, 300, 300, 57, 300, 51, + 176, 17, 393, 17, 17, 91, 109, 241, 241, 300, + 300, 172, 300, 300, 300, 316, 246, 172, 92, 88, + 178, 86, 87, 88, 89, 90, 145, 90, 89, 243, + 147, 148, 33, 17, 17, 17, 17, 29, 242, 242, + 102, 127, 300, 409, 300, 300, 10, 316, 246, 5, + 5, 5, 5, 5, 5, 244, 5, 200, 537, 531, + 563, 245, 73, 247, 245, 72, 247, 541, 164, 5, + 5, 5, 5, 137, 300, 300, 300, 300, 245, 245, + 247, 247, 552, 621, 593, 594, 187, 187, 413, 187, + 187, 187, 187, 187, 187, 187, 187, 273, 274, 334, + 140, 382, 383, 384, 364, 287, 136, 187, 187, 187, + 187, 187, 187, 245, 329, 247, 255, 46, 0, 0, + 385, 386, 387, 388, 0, 389, 390, 128, 0, 323, + 391, 0, 392, 0, 483, 86, 87, 88, 89, 90, + 187, 0, 187, 187, 0, 245, 0, 247, 0, 323, + 323, 323, 323, 323, 323, 323, 323, 0, 0, 0, + 0, 0, 134, 135, 0, 0, 0, 17, 0, 232, + 17, 0, 323, 187, 187, 187, 0, 0, 115, 254, + 246, 0, 254, 0, 316, 254, 243, 243, 236, 0, + 393, 315, 0, 0, 168, 0, 0, 0, 0, 254, + 254, 323, 254, 0, 254, 0, 0, 0, 300, 0, + 316, 300, 244, 244, 0, 0, 0, 0, 0, 0, + 17, 17, 17, 315, 316, 316, 316, 0, 0, 0, + 17, 0, 0, 0, 254, 254, 0, 0, 0, 0, + 17, 17, 17, 0, 0, 0, 0, 250, 0, 0, + 17, 0, 115, 0, 0, 0, 316, 225, 223, 234, + 235, 300, 300, 300, 0, 254, 254, 271, 220, 221, + 0, 300, 0, 0, 0, 0, 0, 245, 231, 247, + 0, 300, 300, 300, 0, 20, 21, 22, 23, 24, + 25, 300, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 27, 0, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, + 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, + 0, 17, 338, 339, 340, 0, 0, 246, 246, 0, + 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 300, 300, 300, 300, 300, 300, 300, 300, + 315, 187, 300, 300, 0, 300, 300, 300, 300, 300, + 300, 0, 300, 0, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 222, 222, 315, 415, 222, 222, + 222, 222, 222, 0, 222, 0, 248, 0, 254, 248, + 315, 315, 315, 0, 0, 222, 222, 17, 222, 222, + 17, 0, 0, 248, 248, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 32, 32, 32, 32, 32, 32, + 32, 32, 315, 0, 245, 245, 247, 247, 17, 0, + 222, 222, 32, 32, 32, 32, 32, 32, 248, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 0, 0, + 187, 187, 19, 187, 187, 187, 187, 187, 187, 187, + 187, 222, 222, 222, 0, 32, 0, 32, 32, 0, + 248, 286, 286, 0, 0, 286, 286, 286, 286, 286, + 286, 286, 0, 0, 505, 0, 341, 0, 0, 0, + 0, 512, 286, 286, 286, 286, 286, 286, 32, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 183, 183, + 2, 0, 183, 183, 183, 183, 183, 183, 183, 19, + 0, 0, 0, 0, 0, 286, 0, 286, 286, 183, + 183, 183, 183, 183, 183, 254, 254, 254, 254, 254, + 0, 0, 254, 254, 0, 254, 254, 254, 254, 254, + 254, 0, 0, 498, 564, 0, 0, 0, 286, 286, + 286, 571, 183, 0, 183, 183, 0, 0, 249, 0, + 0, 249, 579, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 0, 0, 258, 249, 249, 0, 0, 0, + 0, 0, 0, 0, 222, 183, 183, 183, 258, 258, + 0, 0, 248, 608, 0, 99, 99, 0, 0, 99, + 99, 99, 99, 99, 0, 99, 0, 0, 0, 0, + 249, 0, 0, 0, 0, 0, 99, 99, 99, 99, + 99, 32, 627, 258, 0, 0, 0, 0, 0, 0, + 0, 20, 21, 22, 258, 24, 25, 0, 26, 222, + 637, 0, 249, 0, 0, 640, 0, 0, 0, 0, + 642, 99, 99, 0, 27, 258, 0, 0, 222, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, + 259, 0, 0, 259, 0, 0, 32, 0, 0, 0, + 0, 286, 99, 99, 99, 259, 0, 259, 259, 2, + 2, 2, 2, 2, 2, 32, 2, 0, 20, 21, + 22, 258, 24, 25, 0, 26, 0, 0, 0, 2, + 2, 2, 0, 2, 0, 0, 6, 0, 183, 0, + 0, 27, 259, 0, 0, 0, 0, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 286, 17, 222, 222, + 0, 222, 222, 222, 222, 222, 222, 222, 222, 248, + 248, 0, 259, 0, 259, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 183, 249, 32, 32, 0, 32, 32, + 32, 32, 32, 32, 32, 32, 0, 258, 0, 0, + 0, 0, 183, 0, 0, 0, 280, 280, 0, 0, + 280, 280, 280, 280, 280, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 99, 0, 280, 280, 280, + 280, 280, 280, 0, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 0, 0, 286, 286, 0, 286, 286, + 286, 286, 286, 286, 286, 286, 0, 0, 0, 0, + 0, 0, 280, 280, 0, 0, 0, 0, 0, 0, + 0, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 99, 0, 183, 183, 0, 183, 183, 183, 183, 183, + 183, 183, 183, 280, 280, 280, 259, 0, 99, 99, + 0, 0, 0, 19, 0, 0, 0, 0, 99, 0, + 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, + 6, 0, 6, 0, 187, 187, 0, 187, 187, 187, + 187, 220, 187, 187, 187, 6, 6, 6, 6, 0, + 0, 249, 249, 0, 0, 0, 0, 187, 187, 187, + 187, 0, 0, 0, 258, 258, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 0, 187, 99, + 99, 187, 99, 99, 99, 99, 99, 99, 0, 99, + 0, 229, 229, 0, 229, 0, 229, 229, 229, 229, + 229, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 0, 187, 229, 229, 229, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 282, 282, 0, 0, 282, 282, + 282, 282, 282, 0, 282, 229, 0, 229, 229, 0, + 0, 0, 0, 259, 259, 282, 282, 282, 282, 282, + 282, 274, 274, 0, 0, 274, 274, 274, 274, 274, + 0, 274, 0, 0, 0, 0, 0, 0, 229, 0, + 229, 280, 274, 274, 274, 274, 274, 274, 0, 0, + 282, 282, 20, 21, 22, 23, 24, 25, 0, 26, + 280, 0, 222, 222, 0, 0, 0, 222, 222, 222, + 222, 0, 222, 0, 0, 27, 0, 274, 274, 0, + 0, 282, 282, 282, 0, 222, 222, 222, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 229, 229, 229, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 0, 0, 0, 274, 274, + 0, 0, 0, 0, 0, 0, 222, 0, 222, 222, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 0, 0, + 280, 280, 0, 280, 280, 280, 280, 280, 280, 222, + 280, 222, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 275, 275, 0, 0, + 275, 275, 275, 275, 275, 0, 275, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 275, 275, 275, + 275, 275, 275, 0, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 0, 229, 229, 0, 0, 0, - 0, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 0, 0, 280, 280, 0, 280, 280, 280, 280, 280, - 280, 0, 280, 0, 0, 0, 229, 0, 229, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 0, 0, - 187, 187, 0, 187, 187, 187, 187, 187, 187, 187, - 187, 282, 0, 222, 222, 0, 0, 0, 222, 222, - 222, 222, 0, 222, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 222, 222, 222, + 0, 274, 275, 275, 0, 229, 0, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 0, 0, 187, 187, + 0, 187, 187, 187, 187, 187, 187, 187, 187, 282, + 0, 0, 0, 275, 275, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 274, 274, 0, 0, 274, 274, 274, 274, 274, - 0, 274, 0, 0, 0, 0, 282, 222, 0, 222, - 222, 0, 274, 274, 274, 274, 274, 274, 0, 0, - 0, 0, 0, 0, 0, 282, 0, 0, 0, 275, - 275, 0, 0, 275, 275, 275, 275, 275, 0, 275, - 222, 0, 222, 0, 0, 0, 0, 274, 274, 0, - 275, 275, 275, 275, 275, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 273, 273, 0, 0, - 273, 273, 273, 273, 273, 0, 273, 0, 274, 274, - 0, 0, 0, 0, 0, 275, 275, 273, 273, 273, - 273, 273, 273, 0, 282, 282, 282, 282, 282, 282, - 282, 282, 282, 0, 0, 282, 282, 0, 282, 282, - 282, 282, 282, 282, 229, 282, 275, 275, 0, 0, - 0, 0, 273, 273, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 0, 0, 0, 276, 276, 0, - 0, 276, 276, 276, 276, 276, 0, 276, 0, 0, - 0, 0, 0, 273, 273, 0, 0, 0, 276, 276, - 276, 276, 276, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 277, 277, 0, 0, 277, 277, - 277, 277, 277, 0, 277, 0, 0, 0, 0, 0, - 0, 0, 0, 276, 276, 277, 277, 277, 277, 277, - 277, 0, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 274, 0, 229, 229, 0, 229, 229, 229, 229, - 229, 229, 229, 229, 276, 276, 19, 0, 222, 0, - 277, 277, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 222, 0, 275, + 0, 0, 0, 0, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 0, 0, 229, 229, 0, 229, 229, + 229, 229, 229, 229, 229, 229, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 500, 277, 277, 0, 0, 0, 274, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 273, 0, 0, 265, - 265, 0, 0, 265, 265, 265, 265, 265, 0, 265, - 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, - 265, 265, 265, 265, 265, 265, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 0, 17, 222, 222, 0, - 222, 222, 222, 222, 222, 222, 222, 222, 0, 0, - 0, 273, 0, 0, 0, 265, 265, 0, 0, 0, - 0, 0, 0, 0, 274, 274, 0, 276, 274, 274, + 0, 0, 0, 0, 0, 0, 222, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 0, 0, 282, 282, + 0, 282, 282, 282, 282, 282, 282, 0, 282, 0, + 0, 0, 0, 0, 274, 274, 0, 0, 274, 274, 274, 274, 274, 0, 0, 274, 274, 0, 274, 274, - 274, 274, 274, 274, 0, 274, 265, 265, 0, 0, + 274, 274, 274, 274, 0, 274, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 275, 277, 0, 275, 275, 275, 275, - 275, 0, 0, 275, 275, 0, 275, 275, 275, 275, - 275, 275, 276, 275, 0, 20, 21, 22, 259, 24, - 25, 0, 26, 0, 0, 0, 0, 0, 0, 273, - 273, 0, 0, 273, 273, 273, 273, 273, 27, 266, - 273, 273, 266, 273, 273, 273, 273, 273, 273, 277, - 273, 0, 0, 0, 0, 0, 266, 266, 0, 266, - 0, 266, 0, 0, 0, 0, 0, 0, 0, 260, + 0, 0, 0, 0, 0, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 0, 17, 222, 222, 0, 222, + 222, 222, 222, 222, 222, 222, 222, 273, 273, 0, + 0, 273, 273, 273, 273, 273, 0, 273, 0, 0, + 0, 275, 0, 0, 0, 0, 0, 0, 273, 273, + 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 276, 0, 0, 276, 276, + 276, 276, 276, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 273, 273, 276, 276, 276, 276, 276, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 277, 277, 0, 0, 277, 277, 277, 277, 277, + 0, 277, 0, 0, 273, 273, 0, 0, 0, 0, + 276, 276, 277, 277, 277, 277, 277, 277, 0, 275, + 275, 0, 0, 275, 275, 275, 275, 275, 0, 0, + 275, 275, 0, 275, 275, 275, 275, 275, 275, 0, + 275, 276, 276, 0, 0, 265, 265, 277, 277, 265, + 265, 265, 265, 265, 0, 265, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 265, 265, 265, + 265, 265, 0, 0, 0, 0, 0, 0, 277, 277, 0, 0, 199, 199, 0, 0, 199, 199, 0, 199, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, - 0, 266, 0, 199, 199, 199, 199, 199, 199, 0, - 276, 276, 0, 0, 276, 276, 276, 276, 276, 265, - 0, 276, 276, 0, 276, 276, 276, 276, 276, 276, - 0, 276, 266, 266, 0, 0, 0, 0, 199, 199, - 0, 0, 0, 0, 0, 0, 0, 277, 277, 0, - 0, 277, 277, 277, 277, 277, 0, 0, 277, 277, - 0, 277, 277, 277, 277, 277, 277, 0, 277, 199, - 199, 272, 272, 0, 265, 272, 272, 272, 272, 272, - 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 272, 272, 272, 272, 272, 272, 271, 271, - 0, 0, 271, 271, 271, 271, 271, 0, 271, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, - 271, 271, 271, 271, 271, 231, 220, 272, 272, 0, - 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 223, 207, - 225, 217, 0, 0, 271, 271, 0, 0, 272, 272, - 0, 0, 265, 265, 0, 266, 265, 265, 265, 265, - 265, 0, 201, 265, 265, 201, 265, 265, 265, 265, - 265, 265, 219, 265, 0, 271, 271, 0, 0, 201, - 201, 0, 201, 0, 201, 0, 0, 0, 0, 0, - 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, - 0, 0, 231, 220, 201, 0, 283, 229, 227, 0, - 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 207, 225, 217, 0, - 0, 0, 252, 0, 0, 252, 201, 199, 252, 0, + 0, 265, 265, 199, 199, 199, 199, 199, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, + 272, 0, 0, 272, 272, 272, 272, 272, 0, 272, + 0, 0, 265, 265, 0, 0, 0, 273, 199, 199, + 272, 272, 272, 272, 272, 272, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 271, 0, + 0, 271, 271, 271, 271, 271, 0, 271, 0, 199, + 199, 0, 0, 0, 276, 272, 272, 0, 271, 271, + 271, 271, 271, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 272, 272, 0, 0, + 0, 277, 0, 271, 271, 0, 230, 219, 0, 0, + 0, 228, 226, 0, 227, 0, 229, 0, 0, 276, + 0, 0, 0, 0, 0, 0, 0, 269, 0, 222, + 206, 224, 216, 0, 271, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 252, 252, 0, 252, 199, 252, 0, 219, - 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, - 230, 272, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 440, 223, 207, 225, 217, 252, 252, 218, - 0, 234, 266, 266, 266, 266, 266, 0, 271, 0, - 0, 0, 266, 266, 266, 266, 266, 266, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 219, 252, 252, - 0, 0, 0, 0, 0, 199, 199, 0, 0, 199, - 199, 199, 199, 199, 0, 0, 199, 199, 0, 199, - 199, 199, 199, 199, 199, 0, 199, 218, 0, 234, + 0, 0, 0, 0, 0, 265, 277, 0, 0, 0, + 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, + 273, 273, 0, 0, 273, 273, 273, 273, 273, 0, + 0, 273, 273, 0, 273, 273, 273, 273, 273, 273, + 0, 273, 199, 217, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 276, 0, + 265, 276, 276, 276, 276, 276, 0, 0, 276, 276, + 0, 276, 276, 276, 276, 276, 276, 0, 276, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 231, 220, 0, - 233, 501, 229, 227, 0, 228, 0, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, - 223, 207, 225, 217, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 272, 272, 0, 0, 272, 272, - 272, 272, 272, 0, 0, 272, 272, 0, 272, 272, - 272, 272, 272, 272, 219, 272, 0, 0, 0, 0, - 0, 271, 271, 0, 0, 271, 271, 271, 271, 271, - 0, 252, 271, 271, 0, 271, 271, 271, 271, 271, - 271, 0, 271, 0, 218, 0, 234, 0, 226, 224, - 235, 236, 208, 209, 210, 211, 213, 233, 0, 221, - 222, 0, 205, 206, 212, 215, 214, 216, 0, 232, - 0, 0, 0, 0, 0, 0, 237, 0, 231, 220, - 0, 0, 0, 229, 227, 0, 228, 0, 230, 0, - 0, 0, 0, 0, 0, 201, 201, 201, 201, 201, - 511, 223, 207, 225, 217, 201, 201, 201, 201, 201, - 201, 0, 0, 231, 220, 233, 0, 546, 229, 227, - 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 237, 219, 223, 207, 225, 217, - 0, 0, 0, 0, 0, 226, 224, 235, 236, 208, - 209, 210, 211, 213, 0, 0, 221, 222, 0, 205, - 206, 212, 215, 214, 216, 218, 232, 234, 0, 0, - 219, 0, 0, 0, 0, 0, 0, 0, 252, 252, - 252, 252, 252, 0, 0, 252, 252, 0, 252, 252, - 252, 252, 252, 252, 0, 0, 0, 0, 0, 0, - 218, 0, 234, 226, 224, 235, 236, 208, 209, 210, - 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, - 215, 214, 216, 0, 232, 0, 0, 0, 0, 231, - 220, 0, 233, 551, 229, 227, 0, 228, 0, 230, + 0, 0, 0, 0, 277, 277, 0, 199, 277, 277, + 277, 277, 277, 0, 0, 277, 277, 0, 277, 277, + 277, 277, 277, 277, 0, 277, 199, 271, 230, 219, + 0, 0, 281, 228, 226, 0, 227, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 237, 223, 207, 225, 217, 231, 220, 0, 0, - 552, 229, 227, 0, 228, 0, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 207, 225, 217, 0, 0, 0, 219, 0, 0, 0, + 0, 222, 206, 224, 216, 0, 0, 0, 265, 265, + 0, 0, 265, 265, 265, 265, 265, 0, 0, 265, + 265, 0, 265, 265, 265, 265, 265, 265, 0, 265, + 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 199, 0, 0, 199, + 199, 199, 199, 199, 0, 0, 199, 199, 0, 199, + 199, 199, 199, 199, 199, 217, 199, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 272, 272, 0, 0, 272, 272, 272, 272, + 272, 232, 0, 272, 272, 0, 272, 272, 272, 272, + 272, 272, 0, 272, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 271, 271, 0, 0, 271, 271, 271, 271, 271, 0, + 0, 271, 271, 0, 271, 271, 271, 271, 271, 271, + 0, 271, 230, 219, 0, 0, 0, 228, 226, 0, + 227, 0, 229, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 438, 222, 206, 224, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 223, 234, 235, 207, 208, 209, 210, 212, 0, 0, + 220, 221, 0, 204, 205, 211, 214, 213, 215, 218, + 231, 230, 219, 0, 0, 499, 228, 226, 0, 227, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 222, 206, 224, 216, 0, 217, + 0, 233, 0, 0, 0, 0, 0, 0, 0, 230, + 219, 0, 0, 0, 228, 226, 0, 227, 0, 229, + 0, 0, 0, 232, 0, 0, 0, 0, 218, 0, + 0, 509, 222, 206, 224, 216, 0, 0, 0, 0, + 0, 0, 236, 0, 0, 0, 0, 0, 0, 230, + 219, 0, 0, 544, 228, 226, 0, 227, 217, 229, + 233, 0, 0, 0, 0, 0, 218, 0, 0, 0, + 0, 0, 222, 206, 224, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 0, 0, 218, 0, 234, 0, - 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, - 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, - 0, 232, 0, 218, 0, 234, 0, 0, 0, 0, - 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 217, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, + 0, 225, 223, 234, 235, 207, 208, 209, 210, 212, + 0, 0, 220, 221, 0, 204, 205, 211, 214, 213, + 215, 0, 231, 0, 0, 0, 217, 0, 233, 0, + 0, 0, 0, 0, 0, 0, 230, 219, 0, 0, + 549, 228, 226, 0, 227, 0, 229, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, + 206, 224, 216, 230, 219, 0, 0, 550, 228, 226, + 0, 227, 0, 229, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 222, 206, 224, 216, + 0, 0, 0, 218, 0, 0, 236, 0, 0, 0, + 0, 0, 0, 230, 219, 0, 0, 597, 228, 226, + 0, 227, 0, 229, 0, 0, 0, 0, 0, 0, + 218, 0, 0, 217, 0, 233, 222, 206, 224, 216, + 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 231, 220, 0, 0, 599, 229, - 227, 0, 228, 0, 230, 0, 0, 0, 233, 0, - 0, 0, 0, 0, 0, 0, 0, 223, 207, 225, - 217, 0, 0, 0, 0, 0, 0, 237, 0, 231, - 220, 0, 0, 600, 229, 227, 0, 228, 0, 230, + 217, 0, 233, 0, 0, 236, 0, 0, 0, 0, + 218, 0, 0, 0, 0, 225, 223, 234, 235, 207, + 208, 209, 210, 212, 232, 0, 220, 221, 0, 204, + 205, 211, 214, 213, 215, 0, 231, 0, 0, 0, + 217, 0, 233, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 223, 207, 225, 217, 0, 0, 0, 0, - 0, 226, 224, 235, 236, 208, 209, 210, 211, 213, - 0, 0, 221, 222, 0, 205, 206, 212, 215, 214, - 216, 218, 232, 234, 0, 0, 219, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 224, 235, 236, - 208, 209, 210, 211, 213, 0, 0, 221, 222, 0, - 205, 206, 212, 215, 214, 216, 218, 232, 234, 0, - 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 223, 234, 235, 207, 208, + 209, 210, 212, 236, 0, 220, 221, 0, 204, 205, + 211, 214, 213, 215, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 237, 0, 0, 0, 0, 0, 231, - 220, 233, 0, 0, 229, 227, 0, 228, 0, 230, + 0, 0, 225, 223, 234, 235, 207, 208, 209, 210, + 212, 0, 0, 220, 221, 0, 204, 205, 211, 214, + 213, 215, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 237, 624, 223, 207, 225, 217, 0, 231, 220, 0, - 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, - 223, 207, 225, 217, 0, 0, 219, 0, 0, 0, - 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, - 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, - 214, 216, 0, 232, 219, 0, 218, 0, 234, 226, - 224, 235, 236, 208, 209, 210, 211, 213, 0, 0, - 221, 222, 0, 205, 206, 212, 215, 214, 216, 0, - 232, 0, 0, 0, 218, 0, 234, 0, 0, 233, + 0, 0, 225, 223, 234, 235, 207, 208, 209, 210, + 212, 232, 0, 220, 221, 0, 204, 205, 211, 214, + 213, 215, 0, 231, 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 0, 230, 219, 0, 232, 598, + 228, 226, 0, 227, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 222, 206, + 224, 216, 230, 219, 0, 0, 0, 228, 226, 0, + 227, 0, 229, 0, 0, 0, 0, 0, 232, 0, + 0, 0, 0, 0, 622, 222, 206, 224, 216, 0, + 0, 0, 218, 0, 0, 0, 0, 236, 0, 225, + 223, 234, 235, 207, 208, 209, 210, 212, 0, 0, + 220, 221, 0, 204, 205, 211, 214, 213, 215, 218, + 231, 0, 217, 0, 233, 0, 225, 223, 234, 235, + 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, + 204, 205, 211, 214, 213, 215, 0, 231, 0, 217, + 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 225, 223, 234, 235, + 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, + 204, 205, 211, 214, 213, 215, 0, 231, 230, 219, + 0, 0, 0, 228, 226, 0, 227, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, + 0, 222, 206, 224, 216, 230, 219, 0, 0, 0, + 228, 226, 0, 227, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 222, 206, + 224, 216, 0, 230, 219, 218, 0, 0, 228, 226, + 0, 227, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 222, 206, 224, 216, + 0, 0, 218, 0, 0, 217, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, - 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, - 230, 0, 0, 0, 233, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 207, 225, 217, 0, 0, 0, - 0, 0, 0, 237, 0, 231, 220, 0, 0, 0, - 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 219, 223, 207, - 225, 217, 0, 0, 0, 0, 0, 226, 224, 235, - 236, 208, 209, 210, 211, 213, 0, 0, 221, 222, - 0, 205, 206, 212, 215, 214, 216, 218, 232, 234, - 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, - 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, - 214, 216, 218, 232, 234, 0, 0, 0, 0, 0, - 0, 0, 231, 220, 233, 0, 0, 229, 227, 0, - 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 237, 0, 223, 207, 225, 217, 0, - 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 237, 0, 0, 0, 0, 0, 0, 0, 219, - 0, 262, 262, 0, 0, 262, 262, 262, 262, 262, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 262, 262, 262, 262, 262, 0, 218, - 0, 234, 226, 224, 235, 236, 208, 209, 210, 211, - 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, - 214, 216, 0, 232, 0, 0, 0, 262, 262, 0, - 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, - 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, - 0, 232, 0, 0, 0, 233, 0, 0, 262, 262, + 218, 0, 217, 0, 233, 0, 0, 0, 0, 0, + 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 217, 0, 233, 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 237, 0, 0, 0, 263, 263, - 0, 0, 263, 263, 263, 263, 263, 0, 263, 0, - 233, 0, 0, 0, 0, 0, 0, 0, 0, 263, - 263, 263, 263, 263, 263, 0, 0, 0, 0, 237, - 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, - 264, 264, 264, 264, 264, 0, 264, 0, 0, 0, - 0, 0, 0, 0, 263, 263, 0, 264, 264, 264, - 264, 264, 264, 226, 224, 235, 236, 208, 209, 210, - 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, - 215, 214, 216, 0, 232, 263, 263, 0, 0, 0, - 0, 0, 264, 264, 0, 0, 0, 0, 226, 224, - 235, 236, 208, 209, 210, 211, 213, 233, 0, 221, - 222, 262, 0, 206, 212, 215, 214, 216, 0, 232, - 0, 0, 260, 264, 264, 260, 237, 260, 260, 260, + 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, + 0, 230, 219, 0, 0, 0, 228, 226, 0, 227, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 222, 206, 224, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 225, 223, + 234, 235, 207, 208, 209, 210, 212, 0, 0, 220, + 221, 0, 204, 205, 211, 214, 213, 215, 218, 231, + 0, 0, 0, 0, 0, 225, 223, 234, 235, 207, + 208, 209, 210, 212, 0, 0, 220, 221, 0, 204, + 205, 211, 214, 213, 215, 0, 231, 0, 217, 0, + 233, 0, 0, 0, 0, 0, 0, 132, 0, 142, + 0, 0, 0, 232, 141, 0, 0, 130, 0, 131, + 0, 230, 219, 0, 0, 0, 228, 226, 0, 227, + 0, 229, 236, 0, 310, 0, 0, 230, 0, 0, + 232, 0, 228, 226, 222, 227, 224, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, + 222, 0, 224, 0, 0, 83, 0, 0, 232, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 225, 223, 234, 235, 207, 208, 209, 210, 212, + 233, 0, 220, 221, 0, 204, 205, 211, 214, 213, + 215, 0, 231, 0, 0, 0, 233, 0, 225, 223, + 234, 235, 207, 208, 209, 210, 212, 0, 0, 220, + 221, 0, 204, 205, 211, 214, 213, 215, 0, 231, + 0, 0, 0, 0, 0, 0, 225, 223, 234, 235, + 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, + 0, 205, 211, 214, 213, 215, 0, 231, 0, 0, + 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, + 262, 262, 262, 262, 262, 236, 262, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 262, 262, + 262, 262, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 178, 86, 87, 88, 89, 90, + 0, 263, 263, 0, 0, 263, 263, 263, 263, 263, + 0, 263, 262, 262, 0, 0, 0, 0, 0, 0, + 10, 0, 263, 263, 263, 263, 263, 263, 0, 0, + 0, 0, 0, 0, 225, 223, 234, 235, 207, 208, + 209, 210, 212, 262, 262, 220, 221, 137, 0, 0, + 211, 214, 213, 215, 0, 231, 232, 263, 263, 0, + 0, 264, 264, 0, 0, 264, 264, 264, 264, 264, + 0, 264, 232, 0, 140, 236, 0, 0, 0, 0, + 136, 0, 264, 264, 264, 264, 264, 264, 263, 263, + 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 260, 0, 0, 260, 0, 260, 260, 260, + 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, 0, 260, 260, 260, 260, 260, 260, 0, 0, + 0, 0, 0, 0, 0, 311, 134, 135, 0, 0, + 0, 0, 0, 0, 225, 223, 234, 235, 264, 264, + 0, 0, 0, 0, 0, 220, 221, 260, 260, 0, + 225, 223, 234, 235, 0, 231, 0, 0, 0, 0, + 0, 220, 221, 0, 0, 0, 262, 261, 0, 0, + 261, 231, 261, 261, 261, 0, 0, 0, 260, 260, + 0, 0, 0, 0, 0, 0, 0, 261, 261, 261, + 261, 261, 261, 253, 0, 0, 253, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 261, 0, 0, 261, 0, 261, - 261, 261, 0, 0, 0, 0, 0, 260, 260, 0, - 0, 0, 0, 0, 261, 261, 261, 261, 261, 261, - 0, 0, 0, 0, 0, 226, 224, 235, 236, 208, - 209, 210, 211, 213, 0, 0, 221, 222, 260, 260, - 0, 212, 215, 214, 216, 0, 232, 0, 263, 261, - 261, 254, 0, 0, 254, 0, 0, 254, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 254, 0, 254, 0, 254, 0, 0, 0, - 261, 261, 0, 0, 262, 262, 264, 0, 262, 262, - 262, 262, 262, 0, 0, 262, 262, 0, 262, 262, - 262, 262, 262, 262, 0, 0, 254, 254, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 253, 0, 0, 253, 0, - 0, 253, 0, 0, 0, 0, 0, 254, 254, 0, - 0, 0, 0, 0, 0, 253, 253, 0, 253, 0, - 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, - 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 253, 0, 255, 255, 0, 255, 0, 255, 0, - 0, 263, 263, 0, 0, 263, 263, 263, 263, 263, - 0, 0, 263, 263, 0, 263, 263, 263, 263, 263, - 263, 253, 253, 261, 0, 0, 0, 0, 255, 255, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, - 264, 0, 0, 264, 264, 264, 264, 264, 0, 0, - 264, 264, 0, 264, 264, 264, 264, 264, 264, 255, - 255, 270, 0, 0, 270, 0, 0, 270, 0, 0, + 0, 263, 0, 253, 253, 0, 253, 0, 253, 0, + 0, 255, 261, 261, 255, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 254, 270, 270, 0, 270, 0, 270, 0, 0, 0, + 0, 255, 255, 0, 255, 0, 255, 0, 253, 253, + 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, + 0, 0, 0, 270, 0, 0, 270, 0, 0, 270, + 0, 264, 0, 0, 0, 0, 255, 255, 0, 253, + 253, 0, 0, 270, 270, 0, 270, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 255, 262, + 262, 260, 0, 262, 262, 262, 262, 262, 270, 270, + 262, 262, 0, 262, 262, 262, 262, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 270, 270, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, + 270, 0, 0, 0, 263, 263, 0, 0, 263, 263, + 263, 263, 263, 0, 0, 263, 263, 0, 263, 263, + 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 261, 0, 251, 0, + 0, 251, 0, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 251, 251, + 0, 251, 253, 251, 264, 264, 0, 0, 264, 264, + 264, 264, 264, 0, 0, 264, 264, 0, 264, 264, + 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, + 255, 0, 0, 251, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, 260, 260, 260, 260, 260, 0, 0, 260, 260, 0, 260, 260, - 260, 260, 260, 260, 0, 0, 0, 270, 270, 0, - 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 261, 0, 0, - 261, 261, 261, 261, 261, 0, 0, 261, 261, 0, - 261, 261, 261, 261, 261, 261, 0, 0, 251, 0, - 0, 251, 255, 0, 251, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 251, 251, - 0, 251, 0, 251, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, - 254, 254, 0, 0, 254, 254, 0, 254, 254, 254, - 254, 254, 254, 251, 251, 208, 0, 0, 208, 0, + 260, 260, 260, 260, 251, 251, 0, 0, 0, 0, + 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 0, 0, 269, 0, 0, + 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 269, 269, 0, 269, 0, 269, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, + 261, 0, 0, 261, 261, 261, 261, 261, 0, 0, + 261, 261, 0, 261, 261, 261, 261, 261, 261, 269, + 269, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 253, 253, 253, 253, 0, 0, 253, 253, 0, 253, + 253, 253, 253, 253, 253, 0, 0, 0, 0, 0, + 269, 269, 0, 0, 0, 0, 0, 255, 255, 255, + 255, 255, 0, 0, 255, 255, 0, 255, 255, 255, + 255, 255, 255, 250, 0, 0, 250, 251, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 208, 0, 208, 0, 208, 0, 0, - 269, 0, 0, 269, 251, 251, 269, 0, 0, 0, - 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 269, 269, 0, 269, 0, 269, 0, 208, 0, 0, - 0, 253, 253, 253, 253, 253, 0, 0, 253, 253, - 0, 253, 253, 253, 253, 253, 253, 0, 0, 0, - 0, 0, 0, 0, 0, 269, 269, 0, 0, 208, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, - 255, 255, 255, 255, 0, 0, 255, 255, 0, 255, - 255, 255, 255, 255, 255, 0, 269, 269, 250, 0, - 0, 250, 0, 0, 250, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 250, 250, - 0, 250, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 267, 0, 0, 267, 0, - 0, 267, 0, 0, 0, 0, 0, 251, 0, 0, - 0, 0, 0, 250, 250, 267, 267, 0, 267, 0, - 267, 0, 0, 0, 0, 0, 0, 270, 270, 270, - 270, 270, 0, 0, 270, 270, 0, 270, 270, 270, - 270, 270, 270, 256, 250, 250, 256, 0, 0, 256, - 267, 267, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 256, 256, 0, 256, 0, 256, 0, + 0, 0, 0, 250, 250, 0, 250, 0, 250, 270, + 270, 270, 270, 270, 0, 0, 270, 270, 0, 270, + 270, 270, 270, 270, 270, 0, 267, 0, 0, 267, + 0, 0, 267, 0, 0, 0, 0, 0, 250, 250, + 0, 0, 256, 0, 0, 256, 267, 267, 256, 267, + 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 256, 256, 0, 256, 0, 256, 0, 250, + 250, 257, 0, 0, 257, 0, 0, 257, 0, 0, + 0, 267, 267, 0, 0, 0, 0, 0, 0, 0, + 0, 257, 257, 269, 257, 0, 257, 256, 256, 268, + 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 267, 267, 0, 0, 268, 268, 0, 268, + 0, 268, 0, 0, 0, 0, 257, 257, 256, 256, + 0, 0, 0, 0, 251, 251, 251, 251, 251, 0, + 0, 251, 251, 0, 251, 251, 251, 251, 251, 251, + 0, 268, 268, 266, 0, 0, 266, 257, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 267, 267, 0, 257, 0, 0, 257, 0, 269, - 257, 0, 0, 0, 0, 0, 0, 0, 256, 256, - 0, 0, 0, 0, 257, 257, 0, 257, 0, 257, + 266, 266, 0, 266, 201, 266, 0, 201, 0, 0, + 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, + 0, 201, 201, 0, 201, 0, 201, 208, 0, 0, + 208, 0, 250, 0, 0, 266, 0, 0, 0, 0, + 0, 0, 0, 0, 208, 208, 0, 208, 0, 208, + 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 266, 0, 0, + 269, 269, 269, 269, 269, 267, 0, 269, 269, 208, + 269, 269, 269, 269, 269, 269, 0, 0, 201, 0, + 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 132, 0, 142, 0, 0, 256, - 256, 141, 0, 0, 130, 0, 131, 0, 0, 257, + 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 251, 251, 251, 251, 251, 0, - 0, 251, 251, 0, 251, 251, 251, 251, 251, 251, - 257, 257, 0, 0, 0, 0, 0, 250, 0, 0, - 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, - 208, 208, 208, 0, 267, 0, 0, 133, 208, 208, - 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 269, 269, 269, 269, - 269, 0, 0, 269, 269, 0, 269, 269, 269, 269, - 269, 269, 0, 132, 0, 142, 0, 0, 0, 0, - 141, 0, 256, 130, 0, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 0, 0, 132, 0, 142, 0, 0, - 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, - 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, - 129, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 250, 250, 250, 250, 250, 0, - 0, 250, 250, 0, 250, 250, 250, 250, 250, 250, - 0, 0, 0, 83, 0, 0, 133, 0, 0, 0, - 0, 178, 86, 87, 88, 89, 90, 0, 0, 0, - 0, 267, 267, 267, 267, 267, 0, 0, 0, 0, - 0, 267, 267, 267, 267, 267, 267, 10, 133, 0, - 0, 0, 0, 0, 132, 0, 142, 0, 0, 0, - 0, 195, 0, 0, 130, 0, 131, 0, 0, 0, - 0, 0, 0, 0, 137, 0, 0, 0, 0, 256, - 256, 256, 256, 256, 167, 0, 0, 0, 0, 256, - 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, - 0, 140, 0, 0, 0, 0, 0, 136, 0, 0, - 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, - 257, 257, 257, 257, 257, 0, 0, 0, 128, 0, - 257, 257, 257, 257, 257, 257, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, - 178, 86, 87, 88, 89, 90, 0, 0, 0, 0, - 0, 0, 313, 134, 135, 132, 0, 142, 0, 0, - 0, 0, 141, 0, 0, 130, 10, 131, 0, 0, - 0, 0, 138, 139, 87, 88, 89, 90, 0, 0, - 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 132, 0, 142, 10, 0, - 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, - 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, - 140, 0, 0, 310, 0, 137, 136, 132, 0, 142, - 0, 0, 0, 0, 141, 0, 0, 130, 0, 131, - 0, 0, 0, 0, 0, 0, 0, 128, 133, 0, - 0, 0, 140, 83, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 86, 87, 88, 89, 90, 0, 0, 128, - 317, 0, 134, 135, 0, 83, 0, 0, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, + 250, 250, 250, 250, 0, 0, 250, 250, 0, 250, + 250, 250, 250, 250, 250, 0, 0, 0, 132, 266, + 142, 0, 0, 0, 0, 141, 0, 132, 130, 142, + 131, 0, 0, 0, 141, 0, 0, 130, 0, 131, + 201, 0, 267, 267, 267, 267, 267, 314, 0, 0, + 0, 0, 267, 267, 267, 267, 267, 267, 256, 256, + 256, 256, 256, 208, 0, 0, 0, 0, 256, 256, + 256, 256, 256, 256, 0, 0, 83, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 257, 257, 257, + 257, 257, 0, 0, 0, 0, 0, 257, 257, 257, + 257, 257, 257, 0, 0, 0, 0, 0, 0, 0, + 0, 133, 268, 268, 268, 268, 268, 113, 0, 0, + 133, 0, 268, 268, 268, 268, 268, 268, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 142, 0, + 0, 0, 0, 141, 0, 132, 130, 142, 131, 0, + 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, + 0, 129, 0, 0, 0, 0, 266, 266, 266, 266, + 266, 0, 0, 306, 0, 0, 266, 266, 266, 266, + 266, 266, 0, 0, 0, 0, 0, 201, 201, 201, + 201, 201, 0, 0, 83, 0, 0, 201, 201, 201, + 201, 201, 201, 83, 0, 0, 0, 0, 0, 0, + 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, + 208, 208, 208, 208, 208, 208, 0, 0, 0, 133, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 178, 86, 87, 88, 89, + 90, 0, 0, 0, 178, 86, 87, 88, 89, 90, + 132, 0, 142, 0, 0, 0, 0, 141, 0, 0, + 130, 10, 131, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 308, 132, + 0, 142, 0, 0, 0, 0, 141, 0, 137, 130, + 0, 131, 223, 0, 223, 0, 0, 137, 0, 223, + 0, 0, 223, 0, 223, 0, 0, 0, 83, 0, + 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 136, 0, 0, 194, 0, 0, 0, 0, 0, + 136, 0, 0, 0, 0, 0, 0, 83, 0, 0, + 0, 0, 128, 133, 0, 0, 0, 0, 0, 0, + 223, 128, 223, 138, 139, 87, 88, 89, 90, 0, + 0, 0, 178, 86, 87, 88, 89, 90, 0, 358, + 0, 0, 133, 0, 0, 315, 0, 134, 135, 10, + 0, 0, 0, 0, 0, 223, 134, 135, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134, 135, 0, 360, 0, 223, - 133, 223, 0, 0, 137, 0, 223, 0, 0, 223, - 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, - 142, 194, 0, 0, 0, 141, 0, 136, 130, 132, - 131, 142, 0, 0, 0, 0, 195, 0, 0, 130, - 0, 131, 0, 0, 0, 0, 0, 223, 128, 223, - 0, 0, 178, 86, 87, 88, 89, 90, 0, 0, + 132, 0, 142, 0, 0, 0, 137, 141, 0, 0, + 130, 0, 131, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 0, 10, 0, - 0, 0, 223, 134, 135, 0, 0, 193, 0, 0, - 0, 0, 178, 86, 87, 88, 89, 90, 0, 0, - 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 10, 0, - 0, 0, 133, 0, 178, 86, 87, 88, 89, 90, + 0, 0, 0, 140, 0, 0, 0, 0, 0, 136, 0, 0, 140, 0, 0, 0, 0, 0, 136, 0, - 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, + 0, 0, 0, 0, 0, 0, 0, 178, 86, 87, + 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 134, 135, 0, 0, 0, + 0, 0, 0, 10, 134, 135, 178, 86, 87, 88, + 89, 90, 0, 0, 0, 0, 0, 0, 0, 223, + 223, 223, 223, 223, 223, 0, 0, 0, 0, 0, + 137, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 140, 0, 137, + 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 140, 0, 0, 0, + 0, 0, 136, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 134, + 135, 0, 0, 0, 0, 0, 223, 178, 86, 87, + 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, + 0, 223, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 0, 0, 137, 136, 0, + 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134, 135, 0, 0, 0, 128, - 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 223, 223, 223, 223, - 223, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 134, 135, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 178, 86, 87, 88, 89, - 90, 0, 0, 0, 0, 0, 178, 86, 87, 88, - 89, 90, 0, 0, 0, 0, 134, 135, 0, 223, - 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 137, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, + 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 140, 0, 0, 0, 0, - 0, 136, 0, 0, 0, 0, 194, 0, 0, 0, - 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 128, 0, 0, 0, 0, 0, 223, 223, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 135, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, + 135, ); protected static $yyCheck = array(4, - 61, 62, 63, 157, 40, 46, 122, 71, 41, 124, - 46, 44, 41, 125, 60, 46, 125, 42, 59, 303, - 41, 44, 40, 84, 44, 44, 41, 44, 41, 34, - 35, 44, 40, 44, 40, 40, 123, 98, 40, 100, - 44, 105, 106, 63, 41, 58, 59, 174, 58, 40, - 93, 41, 260, 261, 44, 91, 61, 62, 63, 175, - 41, 122, 59, 44, 69, 70, 71, 260, 406, 453, - 125, 91, 304, 91, 126, 141, 91, 39, 44, 84, - 93, 46, 125, 91, 41, 91, 46, 49, 50, 51, - 260, 59, 97, 98, 41, 100, 93, 44, 260, 37, - 105, 106, 44, 40, 42, 43, 246, 45, 113, 47, - 37, 38, 125, 260, 175, 42, 43, 122, 45, 44, - 47, 40, 60, 277, 62, 186, 40, 93, 125, 195, - 300, 59, 123, 60, 91, 62, 141, 203, 300, 286, - 37, 38, 126, 527, 59, 42, 43, 340, 45, 487, - 47, 93, 37, 458, 91, 123, 60, 42, 63, 125, - 165, 166, 47, 60, 192, 62, 171, 94, 93, 46, - 175, 237, 233, 64, 37, 41, 330, 91, 44, 42, - 43, 186, 45, 125, 47, 103, 91, 91, 126, 329, - 195, 529, 58, 59, 364, 123, 501, 124, 203, 126, - 125, 355, 91, 357, 41, 260, 125, 44, 588, 589, - 128, 46, 130, 131, 132, 133, 134, 135, 556, 137, - 44, 287, 59, 141, 311, 340, 353, 93, 233, 126, - 59, 46, 237, 613, 257, 260, 257, 257, 257, 157, - 257, 126, 260, 58, 257, 273, 257, 252, 253, 254, - 260, 261, 260, 257, 260, 283, 93, 262, 260, 125, - 312, 373, 374, 126, 373, 374, 420, 257, 286, 93, - 188, 425, 190, 58, 126, 300, 257, 195, 286, 331, - 286, 408, 287, 245, 286, 40, 426, 205, 206, 207, + 61, 62, 63, 157, 41, 60, 122, 44, 71, 41, + 192, 40, 124, 91, 91, 46, 46, 46, 42, 125, + 59, 41, 44, 84, 91, 123, 125, 174, 59, 34, + 35, 44, 44, 123, 125, 40, 260, 98, 44, 100, + 58, 330, 105, 106, 126, 123, 123, 126, 40, 63, + 37, 340, 126, 260, 141, 42, 61, 62, 63, 175, + 47, 122, 91, 37, 69, 70, 71, 44, 42, 43, + 451, 45, 404, 47, 303, 37, 300, 91, 59, 84, + 42, 43, 59, 45, 123, 47, 60, 59, 62, 91, + 272, 456, 97, 98, 40, 100, 304, 44, 44, 281, + 105, 106, 41, 38, 41, 44, 41, 44, 113, 44, + 46, 260, 64, 59, 175, 202, 59, 122, 44, 58, + 59, 123, 276, 58, 59, 186, 61, 41, 63, 63, + 44, 123, 41, 340, 499, 44, 141, 286, 245, 126, + 364, 91, 123, 44, 525, 60, 93, 44, 125, 236, + 59, 123, 126, 485, 93, 46, 93, 91, 93, 94, + 165, 166, 260, 260, 126, 62, 171, 93, 91, 260, + 175, 232, 59, 93, 328, 125, 91, 123, 63, 125, + 123, 186, 260, 260, 93, 103, 125, 369, 286, 124, + 125, 340, 93, 260, 59, 527, 46, 202, 285, 353, + 260, 355, 125, 300, 351, 125, 91, 40, 286, 286, + 128, 44, 130, 131, 132, 133, 134, 135, 257, 137, + 327, 311, 554, 141, 125, 46, 286, 232, 340, 91, + 312, 236, 414, 312, 332, 257, 260, 257, 123, 157, + 490, 491, 260, 261, 257, 257, 251, 252, 253, 331, + 58, 257, 331, 320, 332, 40, 261, 331, 260, 406, + 93, 123, 340, 340, 418, 332, 46, 373, 374, 423, + 188, 46, 190, 340, 373, 374, 300, 59, 528, 461, + 285, 61, 59, 58, 286, 257, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 33, 234, 35, 472, 44, - 340, 340, 40, 260, 332, 43, 332, 45, 246, 257, - 332, 59, 37, 38, 340, 44, 59, 42, 43, 364, - 45, 260, 47, 371, 260, 41, 260, 331, 44, 286, - 402, 403, 270, 62, 40, 60, 260, 62, 59, 277, - 44, 279, 58, 59, 410, 59, 330, 286, 93, 410, - 286, 260, 286, 91, 312, 59, 340, 410, 442, 410, - 41, 410, 59, 44, 420, 312, 344, 345, 416, 94, - 308, 545, 310, 331, 312, 313, 44, 93, 316, 317, - 123, 414, 415, 340, 331, 91, 60, 125, 126, 360, - 91, 329, 330, 332, 62, 312, 320, 260, 402, 403, - 257, 126, 123, 91, 340, 93, 340, 312, 332, 125, - 41, 320, 93, 44, 331, 463, 340, 355, 443, 357, - 33, 557, 35, 332, 598, 363, 331, 40, 453, 312, - 43, 340, 45, 40, 372, 40, 44, 300, 40, 46, - 312, 46, 400, 401, 402, 403, 40, 61, 331, 41, - 44, 59, 44, 400, 401, 402, 403, 310, 46, 331, - 46, 63, 40, 421, 411, 412, 44, 492, 493, 492, - 493, 310, 410, 61, 421, 61, 557, 340, 91, 373, - 374, 59, 420, 400, 401, 402, 403, 425, 426, 91, - 41, 429, 410, 44, 411, 412, 467, 402, 403, 93, - 40, 311, 527, 474, 421, 530, 46, 530, 41, 534, - 41, 44, 125, 126, 257, 40, 421, 125, 58, 402, - 403, 310, 260, 261, 262, 263, 264, 265, 13, 14, - 402, 403, 557, 614, 472, 473, 257, 41, 421, 123, - 44, 257, 480, 481, 58, 123, 40, 125, 286, 421, - 563, 564, 286, 634, 260, 289, 300, 301, 302, 260, - 261, 262, 263, 264, 265, 91, 537, 123, 40, 63, - 508, 105, 106, 544, 44, 313, 123, 590, 58, 123, - 286, 33, 520, 35, 555, 286, 410, 312, 40, 614, - 44, 43, 93, 45, 300, 301, 302, 91, 44, 300, - 61, 257, 340, 341, 342, 343, 331, 545, 346, 634, - 548, 93, 550, 260, 260, 586, 300, 301, 302, 91, - 257, 340, 360, 361, 362, 363, 332, 365, 366, 367, - 40, 44, 370, 371, 372, 373, 374, 283, 41, 91, - 286, 49, 50, 51, 615, 346, 584, 260, 261, 262, - 263, 264, 265, 91, 300, 41, 123, 260, 260, 125, - 598, 546, 633, 40, 402, 403, 551, 638, 123, 61, - 123, 123, 643, 286, 126, 400, 401, 402, 403, 58, - 40, 91, 620, 58, 286, 41, 411, 412, 44, 260, - 41, 260, 430, 44, 41, 123, 421, 44, 414, 415, - 313, 40, 58, 59, 33, 41, 35, 58, 59, 125, - 40, 40, 59, 93, 43, 600, 45, 41, 364, 40, - 125, 41, 91, 41, 44, 40, 44, 340, 341, 342, - 343, 40, 123, 346, 619, 61, 41, 93, 58, 59, - 58, 59, 93, 125, 125, 630, 93, 360, 361, 362, - 363, 125, 365, 366, 367, 340, 40, 370, 40, 372, - 373, 374, 91, 40, 59, 59, 260, 40, 40, 125, - 340, 40, 59, 93, 125, 93, 260, 41, 125, 41, - 59, 61, 361, 340, 41, 61, 41, 44, 260, 402, - 403, 59, 286, 44, 93, 123, 59, 126, 125, 40, - 125, 58, 59, 41, 44, 125, 44, 125, 260, 261, - 262, 263, 264, 265, 286, 364, 123, 430, 260, 321, - 58, 59, 260, 261, 262, 263, 264, 265, 300, 301, - 302, 340, 41, 41, 286, 340, 93, 123, 41, 59, - 41, 37, 38, 44, 40, 41, 42, 43, 44, 45, - 260, 47, 371, 40, 125, 93, 123, 58, 59, 125, - 332, 313, 58, 59, 60, 61, 62, 63, 125, 125, - 280, 281, 282, 283, 284, 285, 286, 287, 59, 125, - 125, 41, 58, 125, 41, 41, 91, 125, 340, 341, - 342, 343, 93, 303, 346, 91, 123, 93, 94, 125, - 123, 257, 123, 93, 41, 257, 257, 125, 360, 361, - 362, 363, 58, 365, 366, 367, 91, 91, 370, 125, - 372, 91, 332, 41, 125, 93, 44, 123, 124, 125, - 126, 260, 261, 262, 263, 264, 265, 257, 59, 257, - 125, 59, 125, 41, 123, 59, 44, 41, 91, 59, - 402, 403, 41, 41, 41, 364, 41, 286, 125, 125, - 58, 59, 7, 41, 37, 38, 44, 40, 41, 42, - 43, 44, 45, 6, 47, 93, 41, 77, 430, 44, - 58, 59, 102, 498, 313, 58, 59, 352, 61, 62, - 63, 534, 60, 58, 59, 93, 37, 493, 59, 509, - 257, 42, 43, 109, 45, 521, 47, 125, 606, 570, - 570, 340, 341, 342, 343, 93, 358, 346, 91, 257, - 93, 94, 186, 186, 248, 203, 287, 125, 93, 244, - 171, 360, 361, 362, 363, 31, 365, 366, 367, -1, - -1, 370, -1, 372, -1, -1, -1, 125, -1, -1, - 123, 124, 125, 126, -1, -1, 257, -1, 414, 415, - 125, 257, -1, 414, 260, -1, -1, -1, -1, -1, - -1, -1, -1, 402, 403, 280, 281, 282, 283, 284, - 285, -1, 287, 37, 38, 126, 40, 41, 42, 43, - 44, 45, 46, 47, 414, 415, 414, 415, 303, -1, - -1, 430, -1, -1, 58, 59, 60, 61, 62, 63, - -1, -1, -1, -1, 310, 311, 312, 260, 261, 262, - 263, 264, 265, -1, 320, -1, -1, -1, -1, 334, - -1, -1, -1, -1, 330, 331, 332, 91, -1, 93, - 94, 37, 38, 286, 340, 41, 42, 43, 44, 45, - 41, 47, -1, 44, -1, -1, -1, 414, 415, 257, - -1, -1, 58, 59, 60, 61, 62, 63, 59, -1, - 124, 125, 126, -1, -1, -1, 414, 415, -1, 257, - -1, -1, 91, -1, 257, -1, -1, 260, -1, -1, - -1, -1, 257, -1, -1, 91, -1, 93, 94, -1, - -1, -1, 93, 346, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, 410, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 41, 421, -1, 44, 124, 125, - 126, -1, 91, -1, 125, -1, -1, 310, 311, 312, - -1, 58, 59, -1, -1, -1, -1, 320, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 330, 331, 332, - -1, -1, -1, -1, -1, 37, 38, 340, 40, 41, - 42, 43, 44, 45, 46, 47, 93, -1, -1, -1, - -1, 398, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 63, -1, -1, -1, 280, 281, 282, 283, 284, - 285, -1, 287, 257, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 432, 414, 415, 303, 91, - -1, 93, 94, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 414, 415, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, 421, 414, - 415, -1, 124, 125, 126, -1, -1, -1, 312, -1, - -1, 257, -1, -1, -1, -1, 257, -1, -1, -1, - -1, 280, 281, 282, 283, 284, 285, 331, 287, -1, - -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, - 45, 46, 47, -1, 303, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, - -1, -1, -1, -1, 91, -1, 312, -1, -1, -1, - -1, 280, 281, 282, 283, 284, 285, -1, 287, 546, - -1, -1, -1, -1, 551, 331, 91, -1, 93, 94, - 257, 300, 301, 302, 340, 304, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 420, 421, -1, 124, - 125, 126, -1, -1, -1, -1, 41, -1, 41, 44, - -1, 44, -1, 600, -1, 257, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 58, 59, -1, -1, -1, - -1, -1, 619, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 630, 410, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, -1, -1, 93, -1, - 93, 91, -1, 37, -1, -1, -1, -1, 42, 43, - 312, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, 62, 331, - 125, -1, 125, 37, 38, 125, -1, 41, 42, 43, - 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, - -1, -1, -1, -1, -1, -1, -1, 414, 415, -1, - -1, -1, 257, 280, 281, 282, 283, 284, 285, -1, - 287, -1, -1, -1, -1, -1, -1, 91, -1, 93, - 94, -1, 126, 300, 301, 302, 303, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, - 412, -1, 414, 415, 416, 417, 418, 419, 420, 421, - 124, 125, 126, -1, -1, 41, -1, 312, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - -1, -1, 58, 59, -1, 61, 331, 63, -1, -1, - 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, - 47, -1, 257, -1, 257, -1, -1, -1, -1, -1, - -1, 58, 59, 60, 61, 62, -1, 93, 94, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 280, 281, 282, 283, 284, 285, -1, 287, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 124, 125, - -1, -1, -1, 303, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, 420, 421, 124, 125, 126, - -1, -1, 91, -1, 334, -1, -1, -1, -1, -1, - -1, -1, -1, 257, -1, -1, -1, -1, 37, 38, - -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, 125, -1, 312, 58, - 59, 60, 61, 62, 63, 97, 37, 38, -1, 40, - 41, 42, 43, 44, 45, 46, 47, 331, -1, -1, - -1, 113, -1, -1, -1, -1, -1, -1, 312, 60, - 61, 62, 63, -1, 93, 94, -1, -1, -1, 414, - 415, 414, 415, -1, -1, -1, -1, 331, 280, 281, - 282, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 91, 257, -1, 94, -1, 124, 125, 126, 300, 301, - 302, 303, -1, -1, 166, -1, -1, -1, -1, 171, - -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 257, -1, -1, 124, 186, 126, -1, 411, 412, -1, - -1, -1, -1, 195, -1, -1, -1, 421, -1, -1, - -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, - -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, - -1, 280, 281, 282, 283, 284, 285, -1, 287, -1, - 252, 253, 254, 330, 331, -1, -1, -1, -1, -1, - 262, 37, 38, 340, 303, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, 257, -1, - -1, -1, -1, -1, -1, 334, -1, -1, 404, 405, - 406, 407, 408, -1, -1, -1, -1, -1, 414, 415, - 416, 417, 418, 419, -1, -1, 257, 93, 94, -1, - -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 312, 421, -1, -1, -1, 124, 125, - 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 331, -1, -1, -1, -1, -1, -1, 37, - 38, 312, 40, -1, 42, 43, 44, 45, 46, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 331, -1, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, + 228, 229, 230, 231, 257, 233, 470, 424, 257, 59, + 402, 403, 257, 402, 403, 312, 340, 245, 402, 403, + 280, 281, 282, 283, 284, 285, 44, 287, 312, 421, + 364, 44, 91, 257, 331, 260, 46, 41, 257, 91, + 312, 269, 91, 303, 62, 410, 59, 331, 276, 91, + 278, 61, 37, 38, 33, 59, 35, 42, 43, 331, + 45, 40, 47, 410, 43, 260, 45, 440, 410, 410, + 410, 123, 586, 587, 334, 60, 125, 62, 306, 543, + 308, 420, 310, 311, 40, 60, 314, 315, 260, 93, + 46, 286, 91, 41, 93, 320, 44, 611, 260, 327, + 328, 310, 123, 61, 125, 402, 403, 332, 310, 94, + 58, 59, 91, 41, 286, 340, 400, 401, 402, 403, + 41, 125, 63, 44, 421, 353, 441, 355, 40, 555, + 402, 403, 596, 361, 46, 410, 451, 421, 300, 124, + 41, 126, 370, 44, 39, 93, 125, 126, 41, 421, + 91, 44, 311, 396, 49, 50, 51, 58, 59, 404, + 405, 406, 407, 408, 123, 414, 411, 412, 340, 414, + 415, 416, 417, 418, 419, 490, 491, 125, 340, 33, + 408, 35, 123, 40, 555, 41, 40, 430, 44, 43, + 418, 45, 93, 310, 41, 423, 424, 44, 58, 427, + 91, 260, 261, 262, 263, 264, 265, 91, 260, 260, + 525, 44, 41, 528, 44, 44, 123, 532, 260, 261, + 262, 263, 264, 265, 125, 41, 123, 286, 44, 58, + 59, 58, 283, 41, 286, 286, 44, 91, 123, 260, + 555, 612, 470, 471, 286, 33, 410, 35, 544, 300, + 478, 479, 40, 549, 44, 43, 284, 45, 300, 287, + 44, 632, 93, 93, 93, 286, 61, 44, 300, 301, + 302, 125, 126, 257, 41, 93, 41, 44, 506, 44, + 332, 260, 261, 262, 263, 264, 265, 346, 260, 261, + 518, 58, 59, 58, 59, 125, 125, 612, 561, 562, + 260, 544, 598, 91, 346, 41, 549, 286, 44, 257, + 257, 332, 41, 364, 340, 543, 93, 632, 546, 260, + 548, 617, 58, 59, 40, 588, 93, 312, 93, 44, + 46, 37, 628, 41, 313, 123, 42, 43, 126, 45, + 123, 47, 58, 344, 345, 286, 331, 260, 125, 244, + 300, 301, 302, 125, 582, 598, 257, 93, 125, 40, + 125, 340, 341, 342, 343, 373, 374, 346, 596, 49, + 50, 51, 13, 14, 617, 105, 106, 123, 123, 61, + 58, 360, 361, 362, 363, 628, 365, 366, 367, 125, + 618, 370, 371, 372, 373, 374, 280, 281, 282, 283, + 284, 285, 40, 287, 58, 260, 260, 261, 262, 263, + 264, 265, 260, 123, 40, 400, 401, 402, 403, 303, + 126, 41, 125, 402, 403, 40, 411, 412, 257, 93, + 41, 41, 286, 33, 44, 35, 421, 40, 125, 61, + 40, 40, 40, 43, 91, 45, 123, 41, 340, 59, + 334, 430, 125, 41, 125, 125, 44, 40, 40, 313, + 40, 340, 41, 59, 59, 44, 414, 415, 40, 40, + 58, 59, 260, 261, 262, 263, 264, 265, 59, 41, + 59, 41, 44, 93, 44, 40, 340, 341, 342, 343, + 257, 91, 346, 41, 260, 41, 58, 59, 286, 59, + 91, 59, 61, 361, 340, 93, 360, 361, 362, 363, + 61, 365, 366, 367, 93, 125, 370, 59, 372, 373, + 374, 257, 41, 44, 93, 313, 126, 59, 125, 40, + 123, 93, 44, 93, 37, 38, 125, 125, 364, 42, + 43, 260, 45, 321, 47, 123, 125, 340, 402, 403, + 123, 41, 340, 341, 342, 343, 41, 60, 346, 62, + 340, 41, 125, 125, 125, 125, 59, 371, 125, 40, + 123, 59, 360, 361, 362, 363, 430, 365, 366, 367, + 125, 125, 370, 41, 372, 414, 415, 37, 38, 58, + 40, 41, 42, 43, 44, 45, 125, 47, 41, 123, + 91, 123, 125, 123, 41, 91, 93, 44, 58, 59, + 60, 61, 62, 63, 402, 403, 41, 41, 125, 58, + 257, 58, 59, 126, 125, 91, 91, 91, 37, 38, + 93, 40, 41, 42, 43, 44, 45, 59, 47, 123, + 59, 91, 430, 93, 94, 41, 125, 414, 415, 58, + 59, 125, 61, 62, 63, 91, 93, 59, 41, 41, + 260, 261, 262, 263, 264, 265, 364, 41, 41, 257, + 125, 125, 7, 123, 124, 125, 126, 6, 414, 415, + 77, 102, 91, 350, 93, 94, 286, 123, 125, 280, + 281, 282, 283, 284, 285, 257, 287, 257, 496, 491, + 532, 41, 60, 41, 44, 59, 44, 507, 109, 300, + 301, 302, 303, 313, 123, 124, 125, 126, 58, 59, + 58, 59, 519, 604, 568, 568, 37, 38, 356, 40, + 41, 42, 43, 44, 45, 46, 47, 186, 186, 247, + 340, 341, 342, 343, 285, 202, 346, 58, 59, 60, + 61, 62, 63, 93, 243, 93, 171, 31, -1, -1, + 360, 361, 362, 363, -1, 365, 366, 367, -1, 260, + 370, -1, 372, -1, 260, 261, 262, 263, 264, 265, + 91, -1, 93, 94, -1, 125, -1, 125, -1, 280, + 281, 282, 283, 284, 285, 286, 287, -1, -1, -1, + -1, -1, 402, 403, -1, -1, -1, 257, -1, 312, + 260, -1, 303, 124, 125, 126, -1, -1, 97, 38, + 257, -1, 41, -1, 260, 44, 414, 415, 331, -1, + 430, 91, -1, -1, 113, -1, -1, -1, -1, 58, + 59, 332, 61, -1, 63, -1, -1, -1, 257, -1, + 286, 260, 414, 415, -1, -1, -1, -1, -1, -1, + 310, 311, 312, 123, 300, 301, 302, -1, -1, -1, + 320, -1, -1, -1, 93, 94, -1, -1, -1, -1, + 330, 331, 332, -1, -1, -1, -1, 166, -1, -1, + 340, -1, 171, -1, -1, -1, 332, 400, 401, 402, + 403, 310, 311, 312, -1, 124, 125, 186, 411, 412, + -1, 320, -1, -1, -1, -1, -1, 257, 421, 257, + -1, 330, 331, 332, -1, 280, 281, 282, 283, 284, + 285, 340, 287, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 257, -1, 303, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, 251, 252, 253, -1, -1, 414, 415, -1, + -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 260, 312, 411, 412, -1, 414, 415, 416, 417, 418, + 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, + 331, -1, -1, -1, 37, 38, 286, 358, 41, 42, + 43, 44, 45, -1, 47, -1, 41, -1, 257, 44, + 300, 301, 302, -1, -1, 58, 59, 60, 61, 62, + 63, -1, -1, 58, 59, -1, -1, -1, -1, -1, + -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, + 46, 47, 332, -1, 414, 415, 414, 415, 91, -1, + 93, 94, 58, 59, 60, 61, 62, 63, 93, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + 411, 412, 91, 414, 415, 416, 417, 418, 419, 420, + 421, 124, 125, 126, -1, 91, -1, 93, 94, -1, + 125, 37, 38, -1, -1, 41, 42, 43, 44, 45, + 46, 47, -1, -1, 465, -1, 125, -1, -1, -1, + -1, 472, 58, 59, 60, 61, 62, 63, 124, 125, + 126, -1, -1, -1, -1, -1, -1, -1, 37, 38, + 91, -1, 41, 42, 43, 44, 45, 46, 47, 91, + -1, -1, -1, -1, -1, 91, -1, 93, 94, 58, + 59, 60, 61, 62, 63, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, -1, 124, -1, 126, 400, + 419, -1, -1, 125, 535, -1, -1, -1, 124, 125, + 126, 542, 91, -1, 93, 94, -1, -1, 41, -1, + -1, 44, 553, -1, -1, -1, -1, -1, -1, -1, + -1, 41, -1, -1, 44, 58, 59, -1, -1, -1, + -1, -1, -1, -1, 257, 124, 125, 126, 58, 59, + -1, -1, 257, 584, -1, 37, 38, -1, -1, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + 93, -1, -1, -1, -1, -1, 58, 59, 60, 61, + 62, 257, 613, 93, -1, -1, -1, -1, -1, -1, + -1, 280, 281, 282, 283, 284, 285, -1, 287, 312, + 631, -1, 125, -1, -1, 636, -1, -1, -1, -1, + 641, 93, 94, -1, 303, 125, -1, -1, 331, -1, + -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, + 41, -1, -1, 44, -1, -1, 312, -1, -1, -1, + -1, 257, 124, 125, 126, 334, -1, 58, 59, 280, + 281, 282, 283, 284, 285, 331, 287, -1, 280, 281, + 282, 283, 284, 285, -1, 287, -1, -1, -1, 300, + 301, 302, -1, 304, -1, -1, 91, -1, 257, -1, + -1, 303, 93, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 312, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 414, + 415, -1, 334, -1, 125, 331, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 312, 257, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, 257, -1, -1, + -1, -1, 331, -1, -1, -1, 37, 38, -1, -1, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, 257, -1, 58, 59, 60, + 61, 62, 63, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, + -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 312, -1, 411, 412, -1, 414, 415, 416, 417, 418, + 419, 420, 421, 124, 125, 126, 257, -1, 330, 331, + -1, -1, -1, 91, -1, -1, -1, -1, 340, -1, + -1, -1, -1, -1, -1, 280, 281, 282, 283, 284, + 285, -1, 287, -1, 37, 38, -1, 40, 41, 42, + 43, 44, 45, 46, 47, 300, 301, 302, 303, -1, + -1, 414, 415, -1, -1, -1, -1, 60, 61, 62, + 63, -1, -1, -1, 414, 415, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, 91, 411, + 412, 94, 414, 415, 416, 417, 418, 419, -1, 421, + -1, 37, 38, -1, 40, -1, 42, 43, 44, 45, + 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, -1, 126, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, + -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, + 43, 44, 45, -1, 47, 91, -1, 93, 94, -1, + -1, -1, -1, 414, 415, 58, 59, 60, 61, 62, + 63, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, -1, -1, -1, -1, -1, -1, 124, -1, + 126, 312, 58, 59, 60, 61, 62, 63, -1, -1, + 93, 94, 280, 281, 282, 283, 284, 285, -1, 287, + 331, -1, 37, 38, -1, -1, -1, 42, 43, 44, + 45, -1, 47, -1, -1, 303, -1, 93, 94, -1, + -1, 124, 125, 126, -1, 60, 61, 62, 63, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 257, -1, -1, -1, 124, 125, + -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, - 421, 257, -1, 37, 38, -1, -1, -1, 42, 43, - 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 124, + 421, 126, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, 312, 91, -1, 93, - 94, -1, 58, 59, 60, 61, 62, 63, -1, -1, - -1, -1, -1, -1, -1, 331, -1, -1, -1, 37, - 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - 124, -1, 126, -1, -1, -1, -1, 93, 94, -1, - 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, - 41, 42, 43, 44, 45, -1, 47, -1, 124, 125, - -1, -1, -1, -1, -1, 93, 94, 58, 59, 60, - 61, 62, 63, -1, 400, 401, 402, 403, 404, 405, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 62, 63, -1, 257, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 257, 93, 94, -1, 331, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 312, + -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, + -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 312, 421, 124, 125, -1, -1, - -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 331, -1, -1, -1, 37, 38, -1, + 416, 417, 418, 419, 420, 421, -1, 312, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 331, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, -1, + -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, 421, 257, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, 412, -1, 414, + 415, 416, 417, 418, 419, 420, 421, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, - -1, -1, -1, 124, 125, -1, -1, -1, 58, 59, + -1, 312, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 58, 59, 60, 61, 62, - 63, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 257, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, 420, 421, 124, 125, 91, -1, 312, -1, - 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 331, -1, 257, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 125, 124, 125, -1, -1, -1, 312, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 257, -1, -1, 37, - 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, - 58, 59, 60, 61, 62, 63, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, 410, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 420, 421, -1, -1, - -1, 312, -1, -1, -1, 93, 94, -1, -1, -1, - -1, -1, -1, -1, 400, 401, -1, 257, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, 124, 125, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 400, 401, 257, -1, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, 312, 421, -1, 280, 281, 282, 283, 284, - 285, -1, 287, -1, -1, -1, -1, -1, -1, 400, - 401, -1, -1, 404, 405, 406, 407, 408, 303, 41, - 411, 412, 44, 414, 415, 416, 417, 418, 419, 312, - 421, -1, -1, -1, -1, -1, 58, 59, -1, 61, - -1, 63, -1, -1, -1, -1, -1, -1, -1, 334, + 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, -1, -1, 124, 125, -1, -1, -1, -1, + 93, 94, 58, 59, 60, 61, 62, 63, -1, 400, + 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, + 421, 124, 125, -1, -1, 37, 38, 93, 94, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, + 62, 63, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, -1, 44, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 93, -1, 58, 59, 60, 61, 62, 63, -1, - 400, 401, -1, -1, 404, 405, 406, 407, 408, 257, + -1, 93, 94, 58, 59, 60, 61, 62, 63, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, + -1, -1, 124, 125, -1, -1, -1, 257, 93, 94, + 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, + -1, 41, 42, 43, 44, 45, -1, 47, -1, 124, + 125, -1, -1, -1, 257, 93, 94, -1, 58, 59, + 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, + -1, 257, -1, 93, 94, -1, 37, 38, -1, -1, + -1, 42, 43, -1, 45, -1, 47, -1, -1, 312, + -1, -1, -1, -1, -1, -1, -1, 58, -1, 60, + 61, 62, 63, -1, 124, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, 312, -1, -1, -1, + -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, + 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, 124, 125, -1, -1, -1, -1, 93, 94, + -1, 421, 257, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, - -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, 421, 124, - 125, 37, 38, -1, 312, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, 37, 38, - -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, 37, 38, 93, 94, -1, - 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 58, -1, 60, 61, - 62, 63, -1, -1, 93, 94, -1, -1, 124, 125, - -1, -1, 400, 401, -1, 257, 404, 405, 406, 407, - 408, -1, 41, 411, 412, 44, 414, 415, 416, 417, - 418, 419, 94, 421, -1, 124, 125, -1, -1, 58, - 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, - -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, - -1, -1, 37, 38, 93, -1, 41, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, 62, 63, -1, - -1, -1, 38, -1, -1, 41, 125, 312, 44, -1, + 312, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, -1, 61, 331, 63, -1, 94, - 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, - 47, 257, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, 60, 61, 62, 63, 93, 94, 124, - -1, 126, 404, 405, 406, 407, 408, -1, 257, -1, - -1, -1, 414, 415, 416, 417, 418, 419, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 94, 124, 125, - -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 421, 124, -1, 126, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, - -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, - 312, 41, 42, 43, -1, 45, -1, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, - 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + -1, -1, -1, -1, 400, 401, -1, 312, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 94, 421, -1, -1, -1, -1, - -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, - -1, 257, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, 124, -1, 126, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 312, -1, 411, + 416, 417, 418, 419, -1, 421, 331, 257, 37, 38, + -1, -1, 41, 42, 43, -1, 45, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, 63, -1, -1, -1, 400, 401, + -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, - -1, -1, -1, -1, -1, -1, 331, -1, 37, 38, - -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, - -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, - 59, 60, 61, 62, 63, 414, 415, 416, 417, 418, - 419, -1, -1, 37, 38, 312, -1, 41, 42, 43, - -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 331, 94, 60, 61, 62, 63, - -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, + -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, 124, 421, 126, -1, -1, - 94, -1, -1, -1, -1, -1, -1, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, - 124, -1, 126, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, -1, 421, -1, -1, -1, -1, 37, - 38, -1, 312, 41, 42, 43, -1, 45, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 331, 60, 61, 62, 63, 37, 38, -1, -1, - 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, -1, -1, -1, 94, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 94, -1, -1, 124, -1, 126, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, + 408, 312, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, + 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, -1, 124, -1, 126, -1, -1, -1, -1, - -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 331, -1, 37, 38, -1, -1, 41, 42, - 43, -1, 45, -1, 47, -1, -1, -1, 312, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, - 63, -1, -1, -1, -1, -1, -1, 331, -1, 37, - 38, -1, -1, 41, 42, 43, -1, 45, -1, 47, + -1, 421, 37, 38, -1, -1, -1, 42, 43, -1, + 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 94, + 421, 37, 38, -1, -1, 41, 42, 43, -1, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, 61, 62, 63, -1, 124, + -1, 126, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, + -1, -1, -1, 312, -1, -1, -1, -1, 94, -1, + -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, 331, -1, -1, -1, -1, -1, -1, 37, + 38, -1, -1, 41, 42, 43, -1, 45, 124, 47, + 126, -1, -1, -1, -1, -1, 94, -1, -1, -1, + -1, -1, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 94, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, + -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 124, 421, 126, -1, -1, 94, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, 124, 421, 126, -1, - -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, + 419, -1, 421, -1, -1, -1, 124, -1, 126, -1, + -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + 61, 62, 63, 37, 38, -1, -1, 41, 42, 43, + -1, 45, -1, 47, -1, -1, -1, 312, -1, -1, + -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, + -1, -1, -1, 94, -1, -1, 331, -1, -1, -1, + -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, + -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, + 94, -1, -1, 124, -1, 126, 60, 61, 62, 63, + -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 124, -1, 126, -1, -1, 331, -1, -1, -1, -1, + 94, -1, -1, -1, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 312, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, 421, -1, -1, -1, + 124, -1, 126, 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 331, -1, -1, -1, -1, -1, 37, - 38, 312, -1, -1, 42, 43, -1, 45, -1, 47, + -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 331, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 331, 59, 60, 61, 62, 63, -1, 37, 38, -1, - -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, - 60, 61, 62, 63, -1, -1, 94, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, 94, -1, 124, -1, 126, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, - 421, -1, -1, -1, 124, -1, 126, -1, -1, 312, + 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, - 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, - 47, -1, -1, -1, 312, -1, -1, -1, -1, -1, - -1, -1, -1, 60, 61, 62, 63, -1, -1, -1, - -1, -1, -1, 331, -1, 37, 38, -1, -1, -1, - 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 94, 60, 61, - 62, 63, -1, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, 124, 421, 126, - -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, 124, 421, 126, -1, -1, -1, -1, -1, - -1, -1, 37, 38, 312, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 331, -1, 60, 61, 62, 63, -1, - -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, + 408, 312, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, + 331, -1, -1, -1, -1, 37, 38, -1, 312, 41, + 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 331, 60, 61, + 62, 63, 37, 38, -1, -1, -1, 42, 43, -1, + 45, -1, 47, -1, -1, -1, -1, -1, 312, -1, + -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, + -1, -1, 94, -1, -1, -1, -1, 331, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 94, + 421, -1, 124, -1, 126, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, -1, 421, -1, 124, + -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, -1, 421, 37, 38, + -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + -1, 60, 61, 62, 63, 37, 38, -1, -1, -1, + 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, + 62, 63, -1, 37, 38, 94, -1, -1, 42, 43, + -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, + -1, -1, 94, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 331, -1, -1, -1, -1, -1, -1, -1, 94, - -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 94, -1, 124, -1, 126, -1, -1, -1, -1, -1, + 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, + 124, -1, 126, -1, -1, -1, -1, 312, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, + -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, -1, 124, - -1, 126, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, -1, -1, -1, 93, 94, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, -1, -1, -1, 312, -1, -1, 124, 125, + -1, -1, -1, -1, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 94, 421, + -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, 421, -1, 124, -1, + 126, -1, -1, -1, -1, -1, -1, 33, -1, 35, + -1, -1, -1, 312, 40, -1, -1, 43, -1, 45, + -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, + -1, 47, 331, -1, 60, -1, -1, 37, -1, -1, + 312, -1, 42, 43, 60, 45, 62, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, + 60, -1, 62, -1, -1, 91, -1, -1, 312, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, + -1, -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 331, -1, -1, -1, 37, 38, - -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, - 312, -1, -1, -1, -1, -1, -1, -1, -1, 58, - 59, 60, 61, 62, 63, -1, -1, -1, -1, 331, + 126, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 126, -1, 411, 412, -1, 414, 415, 416, 417, 418, + 419, -1, 421, -1, -1, -1, 126, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, + -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + -1, 415, 416, 417, 418, 419, -1, 421, -1, -1, + -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, - 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, - -1, -1, -1, -1, 93, 94, -1, 58, 59, 60, - 61, 62, 63, 400, 401, 402, 403, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, -1, 421, 124, 125, -1, -1, -1, - -1, -1, 93, 94, -1, -1, -1, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 312, -1, 411, - 412, 257, -1, 415, 416, 417, 418, 419, -1, 421, - -1, -1, 38, 124, 125, 41, 331, 43, 44, 45, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, 42, 43, 44, 45, 331, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 260, 261, 262, 263, 264, 265, + -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, 93, 94, -1, -1, -1, -1, -1, -1, + 286, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 124, 125, 411, 412, 313, -1, -1, + 416, 417, 418, 419, -1, 421, 312, 93, 94, -1, + -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, + -1, 47, 312, -1, 340, 331, -1, -1, -1, -1, + 346, -1, 58, 59, 60, 61, 62, 63, 124, 125, + -1, 331, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 367, 38, -1, -1, 41, -1, 43, 44, 45, + -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, -1, -1, -1, -1, 401, 402, 403, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 124, 125, + -1, -1, -1, -1, -1, 411, 412, 93, 94, -1, + 400, 401, 402, 403, -1, 421, -1, -1, -1, -1, + -1, 411, 412, -1, -1, -1, 257, 38, -1, -1, + 41, 421, 43, 44, 45, -1, -1, -1, 124, 125, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 62, 63, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, -1, -1, 41, -1, 43, - 44, 45, -1, -1, -1, -1, -1, 93, 94, -1, - -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, - -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 411, 412, 124, 125, - -1, 416, 417, 418, 419, -1, 421, -1, 257, 93, - 94, 38, -1, -1, 41, -1, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, - 124, 125, -1, -1, 400, 401, 257, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, -1, 93, 94, -1, -1, + -1, 257, -1, 58, 59, -1, 61, -1, 63, -1, + -1, 38, 93, 94, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, - -1, 44, -1, -1, -1, -1, -1, 124, 125, -1, - -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, - 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 58, 59, -1, 61, -1, 63, -1, 93, 94, + -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, - -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, -1, 58, 59, -1, 61, -1, 63, -1, - -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 124, 125, 257, -1, -1, -1, -1, 93, 94, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, - 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 124, - 125, 38, -1, -1, 41, -1, -1, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 257, 58, 59, -1, 61, -1, 63, -1, -1, -1, + -1, 257, -1, -1, -1, -1, 93, 94, -1, 124, + 125, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, 400, + 401, 257, -1, 404, 405, 406, 407, 408, 93, 94, + 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, - -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + 125, -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, -1, -1, 124, 125, -1, - -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 400, 401, -1, -1, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, -1, -1, 38, -1, - -1, 41, 257, -1, 44, -1, -1, -1, -1, -1, + 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 257, -1, 38, -1, + -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 404, 405, 406, + -1, 61, 257, 63, 400, 401, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, + 257, -1, -1, 93, 94, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 124, 125, -1, -1, -1, -1, + -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, + 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 93, + 94, -1, -1, -1, -1, -1, -1, -1, -1, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, + 124, 125, -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 93, 94, 41, -1, -1, 44, -1, + 417, 418, 419, 38, -1, -1, 41, 257, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, - 38, -1, -1, 41, 124, 125, 44, -1, -1, -1, - 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, -1, 61, -1, 63, -1, 93, -1, -1, - -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, -1, -1, 125, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 404, + -1, -1, -1, 58, 59, -1, 61, -1, 63, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 124, 125, 38, -1, - -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, - -1, 44, -1, -1, -1, -1, -1, 257, -1, -1, - -1, -1, -1, 93, 94, 58, 59, -1, 61, -1, - 63, -1, -1, -1, -1, -1, -1, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 38, 124, 125, 41, -1, -1, 44, - 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 257, -1, 58, 59, -1, 61, -1, 63, -1, + 415, 416, 417, 418, 419, -1, 38, -1, -1, 41, + -1, -1, 44, -1, -1, -1, -1, -1, 93, 94, + -1, -1, 38, -1, -1, 41, 58, 59, 44, 61, + -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, -1, 61, -1, 63, -1, 124, + 125, 38, -1, -1, 41, -1, -1, 44, -1, -1, + -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, + -1, 58, 59, 257, 61, -1, 63, 93, 94, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 124, 125, -1, -1, 58, 59, -1, 61, + -1, 63, -1, -1, -1, -1, 93, 94, 124, 125, + -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 93, 94, 41, -1, -1, 44, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, 125, -1, 38, -1, -1, 41, -1, 257, - 44, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 58, 59, -1, 61, 41, 63, -1, 44, -1, -1, + -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, + -1, 58, 59, -1, 61, -1, 63, 41, -1, -1, + 44, -1, 257, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, + -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, + 404, 405, 406, 407, 408, 257, -1, 411, 412, 93, + 414, 415, 416, 417, 418, 419, -1, -1, 125, -1, + -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 35, -1, -1, 124, - 125, 40, -1, -1, 43, -1, 45, -1, -1, 93, - 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - 124, 125, -1, -1, -1, -1, -1, 257, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 404, 405, - 406, 407, 408, -1, 257, -1, -1, 126, 414, 415, - 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 33, -1, 35, -1, -1, -1, -1, - 40, -1, 257, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 62, -1, -1, 33, -1, 35, -1, -1, - -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, - -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, - 58, 91, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, -1, -1, 91, -1, -1, 126, -1, -1, -1, - -1, 260, 261, 262, 263, 264, 265, -1, -1, -1, - -1, 404, 405, 406, 407, 408, -1, -1, -1, -1, - -1, 414, 415, 416, 417, 418, 419, 286, 126, -1, - -1, -1, -1, -1, 33, -1, 35, -1, -1, -1, - -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, - -1, -1, -1, -1, 313, -1, -1, -1, -1, 404, - 405, 406, 407, 408, 63, -1, -1, -1, -1, 414, - 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, - -1, 340, -1, -1, -1, -1, -1, 346, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, - 404, 405, 406, 407, 408, -1, -1, -1, 367, -1, - 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, - 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, - -1, -1, 401, 402, 403, 33, -1, 35, -1, -1, - -1, -1, 40, -1, -1, 43, 286, 45, -1, -1, - -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 313, -1, 33, -1, 35, 286, -1, - -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, - -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, - 340, -1, -1, 61, -1, 313, 346, 33, -1, 35, - -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, - -1, -1, -1, -1, -1, -1, -1, 367, 126, -1, - -1, -1, 340, 91, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 260, 261, 262, 263, 264, 265, -1, -1, 367, - 400, -1, 402, 403, -1, 91, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 286, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, -1, -1, 33, 257, + 35, -1, -1, -1, -1, 40, -1, 33, 43, 35, + 45, -1, -1, -1, 40, -1, -1, 43, -1, 45, + 257, -1, 404, 405, 406, 407, 408, 62, -1, -1, + -1, -1, 414, 415, 416, 417, 418, 419, 404, 405, + 406, 407, 408, 257, -1, -1, -1, -1, 414, 415, + 416, 417, 418, 419, -1, -1, 91, -1, -1, -1, + -1, -1, -1, -1, -1, 91, -1, 404, 405, 406, + 407, 408, -1, -1, -1, -1, -1, 414, 415, 416, + 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, + -1, 126, 404, 405, 406, 407, 408, 123, -1, -1, + 126, -1, 414, 415, 416, 417, 418, 419, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, 35, -1, + -1, -1, -1, 40, -1, 33, 43, 35, 45, -1, + -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, + -1, 58, -1, -1, -1, -1, 404, 405, 406, 407, + 408, -1, -1, 61, -1, -1, 414, 415, 416, 417, + 418, 419, -1, -1, -1, -1, -1, 404, 405, 406, + 407, 408, -1, -1, 91, -1, -1, 414, 415, 416, + 417, 418, 419, 91, -1, -1, -1, -1, -1, -1, + 404, 405, 406, 407, 408, -1, -1, -1, -1, -1, + 414, 415, 416, 417, 418, 419, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 260, 261, 262, 263, 264, + 265, -1, -1, -1, 260, 261, 262, 263, 264, 265, + 33, -1, 35, -1, -1, -1, -1, 40, -1, -1, + 43, 286, 45, -1, -1, -1, -1, -1, -1, -1, + 286, -1, -1, -1, -1, -1, -1, -1, 61, 33, + -1, 35, -1, -1, -1, -1, 40, -1, 313, 43, + -1, 45, 33, -1, 35, -1, -1, 313, -1, 40, + -1, -1, 43, -1, 45, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, + -1, 346, -1, -1, 340, -1, -1, -1, -1, -1, + 346, -1, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, 367, 126, -1, -1, -1, -1, -1, -1, + 91, 367, 93, 260, 261, 262, 263, 264, 265, -1, + -1, -1, 260, 261, 262, 263, 264, 265, -1, 123, + -1, -1, 126, -1, -1, 400, -1, 402, 403, 286, + -1, -1, -1, -1, -1, 126, 402, 403, 286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 402, 403, -1, 123, -1, 33, - 126, 35, -1, -1, 313, -1, 40, -1, -1, 43, - -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, - 35, 340, -1, -1, -1, 40, -1, 346, 43, 33, - 45, 35, -1, -1, -1, -1, 40, -1, -1, 43, - -1, 45, -1, -1, -1, -1, -1, 91, 367, 93, - -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, + 33, -1, 35, -1, -1, -1, 313, 40, -1, -1, + 43, -1, 45, -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, -1, 286, -1, - -1, -1, 126, 402, 403, -1, -1, 91, -1, -1, - -1, -1, 260, 261, 262, 263, 264, 265, -1, -1, - -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, - -1, 126, -1, -1, -1, -1, -1, -1, 286, -1, - -1, -1, 126, -1, 260, 261, 262, 263, 264, 265, + -1, -1, -1, 340, -1, -1, -1, -1, -1, 346, -1, -1, 340, -1, -1, -1, -1, -1, 346, -1, - -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, - 286, -1, -1, -1, -1, -1, -1, -1, -1, 367, + -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, + 367, -1, -1, -1, -1, -1, -1, -1, -1, 367, + -1, -1, -1, -1, -1, -1, -1, 260, 261, 262, + 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, -1, 402, 403, -1, -1, -1, + -1, -1, -1, 286, 402, 403, 260, 261, 262, 263, + 264, 265, -1, -1, -1, -1, -1, -1, -1, 260, + 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, + 313, -1, 286, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 286, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 340, -1, 313, + -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, + -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 367, -1, 340, -1, -1, -1, + -1, -1, 346, -1, -1, -1, -1, -1, -1, 340, + -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, + -1, -1, -1, 367, -1, -1, -1, -1, -1, 402, + 403, -1, -1, -1, -1, -1, 367, 260, 261, 262, + 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, + -1, -1, -1, 286, -1, -1, -1, -1, -1, -1, + -1, 402, 403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 340, -1, -1, -1, -1, 313, 346, -1, + 313, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 402, 403, -1, -1, -1, 367, - -1, -1, -1, -1, 340, -1, -1, -1, -1, -1, - 346, -1, -1, -1, -1, -1, 260, 261, 262, 263, - 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 367, -1, -1, 402, 403, -1, -1, -1, -1, - -1, -1, 286, -1, -1, 260, 261, 262, 263, 264, - 265, -1, -1, -1, -1, -1, 260, 261, 262, 263, - 264, 265, -1, -1, -1, -1, 402, 403, -1, 313, - -1, 286, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 340, -1, 313, -1, - -1, -1, 346, -1, -1, -1, -1, -1, -1, 313, + -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, + -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 367, -1, 340, -1, -1, -1, -1, - -1, 346, -1, -1, -1, -1, 340, -1, -1, -1, - -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 367, -1, -1, -1, -1, -1, 402, 403, - -1, -1, -1, 367, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 402, 403, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 402, + 403, ); protected static $yyFinal= 2; protected static $yyName= array( @@ -3062,7 +3068,7 @@ public function yyparse($yyLex) { case 326: #line 1116 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_INLINE; } break; -#line 3066 "-" +#line 3072 "-" } $yyTop-= self::$yyLen[$yyN]; diff --git a/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php b/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php index f75bc7bce..80d3f595c 100644 --- a/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php +++ b/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php @@ -264,7 +264,7 @@ public function addingMethod() { 'body' => array(), 'extension' => null )), $this->parse( - 'public (? -> int) adding() { }' + 'public {? -> int} adding() { }' )); } @@ -280,7 +280,7 @@ public function countingMethod() { 'body' => array(), 'extension' => null )), $this->parse( - 'public (Collection -> int) counting() { }' + 'public {Collection -> int} counting() { }' )); } @@ -296,7 +296,7 @@ public function groupingMethod() { 'body' => array(), 'extension' => null )), $this->parse( - 'public (Map, string -> int) grouping() { }' + 'public {Map, string -> int} grouping() { }' )); } } From db544b740d0a1d4a5f7da4e60cd1a05b167b92dd Mon Sep 17 00:00:00 2001 From: Timm Friebe Date: Sun, 20 Sep 2015 17:59:13 +0200 Subject: [PATCH 3/3] Require round braces for signature except if using only one type --- src/main/jay/grammars/xp.jay | 5 +- .../xp/compiler/syntax/xp/Parser.class.php | 2669 +++++++++-------- .../syntax/xp/MethodDeclarationTest.class.php | 2 +- 3 files changed, 1340 insertions(+), 1336 deletions(-) diff --git a/src/main/jay/grammars/xp.jay b/src/main/jay/grammars/xp.jay index 0cbb91aa6..4bf48ec7a 100644 --- a/src/main/jay/grammars/xp.jay +++ b/src/main/jay/grammars/xp.jay @@ -1078,9 +1078,10 @@ typeparameter: ; signature: - /* empty */ { $$= array(); } + '(' ')' { $$= array(); } | typeref { $$= array($1); } - | signature ',' typeref { $$= array_merge($1, array($3)); } + | '(' typeref ')' { $$= array($2); } + | '(' signature ',' typeref ')' { $$= array_merge($2, array($4)); } ; functiontype: diff --git a/src/main/php/xp/compiler/syntax/xp/Parser.class.php b/src/main/php/xp/compiler/syntax/xp/Parser.class.php index 6835b57f7..497af31f9 100644 --- a/src/main/php/xp/compiler/syntax/xp/Parser.class.php +++ b/src/main/php/xp/compiler/syntax/xp/Parser.class.php @@ -184,8 +184,8 @@ class Parser extends \text\parser\generic\AbstractParser { 101, 120, 120, 122, 121, 121, 124, 121, 125, 121, 123, 123, 10, 10, 10, 32, 32, 32, 32, 12, 12, 95, 96, 127, 127, 128, 128, 129, 129, 129, - 126, 126, 21, 21, 49, 49, 130, 130, 131, 131, - 131, 131, 131, 131, 131, 131, + 129, 126, 126, 21, 21, 49, 49, 130, 130, 131, + 131, 131, 131, 131, 131, 131, 131, ); protected static $yyLen= array(2, 3, 0, 0, 4, 0, 1, 1, 2, 5, 6, @@ -218,16 +218,16 @@ class Parser extends \text\parser\generic\AbstractParser { 3, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 2, 0, 4, 2, 0, 6, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 3, 4, 1, 3, 1, 3, 0, 1, 3, - 5, 5, 1, 3, 0, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, + 4, 3, 4, 1, 3, 1, 3, 2, 1, 3, + 5, 5, 5, 1, 3, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, ); protected static $yyDefRed= array(0, 3, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 293, 0, 0, 295, 294, 0, 15, 0, 319, - 321, 320, 323, 325, 324, 326, 322, 1, 0, 68, - 0, 317, 8, 0, 0, 4, 0, 0, 0, 0, - 0, 69, 20, 24, 22, 318, 18, 19, 0, 0, + 0, 293, 0, 0, 295, 294, 0, 15, 0, 320, + 322, 321, 324, 326, 325, 327, 323, 1, 0, 68, + 0, 318, 8, 0, 0, 4, 0, 0, 0, 0, + 0, 69, 20, 24, 22, 319, 18, 19, 0, 0, 0, 14, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 9, 0, 0, 0, 70, 67, 0, 0, 0, 0, 11, 12, 10, @@ -240,1430 +240,1430 @@ class Parser extends \text\parser\generic\AbstractParser { 0, 0, 0, 0, 0, 230, 0, 231, 203, 204, 205, 206, 207, 0, 0, 234, 0, 0, 79, 80, 83, 84, 0, 78, 0, 0, 0, 0, 0, 0, - 0, 301, 29, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 196, 0, + 0, 0, 301, 29, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 218, 0, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 218, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 278, 279, 0, 284, 292, 291, 289, - 191, 281, 0, 0, 0, 224, 0, 0, 307, 0, - 0, 0, 0, 302, 305, 0, 314, 0, 0, 25, - 0, 34, 36, 37, 0, 0, 0, 42, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 186, 188, - 0, 100, 0, 0, 0, 220, 0, 0, 0, 0, + 0, 0, 0, 0, 278, 279, 0, 284, 292, 291, + 289, 191, 281, 0, 0, 0, 224, 0, 0, 307, + 0, 0, 308, 0, 0, 0, 302, 305, 0, 315, + 0, 0, 25, 0, 34, 36, 37, 0, 0, 0, + 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 186, 188, 0, 100, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 211, 0, 202, 0, 0, 283, 0, - 175, 0, 0, 237, 235, 82, 303, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 0, 23, 0, - 35, 0, 0, 193, 0, 0, 0, 0, 0, 189, - 0, 221, 190, 219, 0, 0, 184, 181, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 287, 311, - 312, 113, 0, 131, 117, 121, 123, 119, 127, 129, - 115, 125, 0, 0, 0, 0, 111, 0, 63, 0, - 0, 0, 0, 0, 0, 35, 45, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 212, 0, 195, 0, - 285, 290, 0, 0, 133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 38, 137, 112, 0, - 0, 61, 59, 103, 104, 105, 106, 107, 108, 0, - 0, 0, 0, 0, 0, 0, 179, 180, 197, 215, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, - 0, 0, 155, 0, 0, 128, 130, 0, 0, 0, - 0, 142, 222, 0, 0, 93, 0, 0, 0, 0, - 0, 65, 0, 48, 0, 0, 53, 33, 0, 178, - 213, 182, 288, 114, 0, 0, 0, 0, 132, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 98, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 55, 0, 49, 54, 47, 0, 0, - 139, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 143, 0, 0, 0, 0, 94, 96, 95, 0, - 0, 0, 0, 0, 164, 170, 134, 0, 161, 162, - 0, 0, 122, 0, 146, 0, 0, 0, 0, 97, - 102, 0, 85, 0, 64, 0, 0, 0, 56, 0, - 0, 160, 169, 163, 135, 0, 0, 0, 158, 116, - 151, 153, 0, 0, 149, 136, 0, 0, 62, 60, - 0, 0, 0, 0, 124, 120, 0, 0, 0, 126, - 150, 87, 86, 66, 166, 0, 0, 0, 159, 0, - 0, 0, 0, 171, 118, 0, 154, 167, 0, 152, - 0, 0, 165, + 0, 0, 0, 0, 0, 0, 211, 0, 202, 0, + 0, 283, 0, 175, 0, 0, 237, 235, 82, 303, + 0, 310, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 35, 0, 0, 193, 0, 0, + 0, 0, 0, 189, 0, 221, 190, 219, 0, 0, + 184, 181, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 287, 312, 0, 313, 113, 0, 131, 117, + 121, 123, 119, 127, 129, 115, 125, 0, 0, 0, + 0, 111, 0, 63, 0, 0, 0, 0, 0, 0, + 35, 45, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 212, 0, 195, 0, 285, 290, 0, 311, 0, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 38, 137, 112, 0, 0, 61, 59, 103, + 104, 105, 106, 107, 108, 0, 0, 0, 0, 0, + 0, 0, 179, 180, 197, 215, 0, 0, 0, 0, + 0, 0, 0, 138, 0, 0, 0, 0, 155, 0, + 0, 128, 130, 0, 0, 0, 0, 142, 222, 0, + 0, 93, 0, 0, 0, 0, 0, 65, 0, 48, + 0, 0, 53, 33, 0, 178, 213, 182, 288, 114, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 98, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 55, + 0, 49, 54, 47, 0, 0, 139, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 94, 96, 95, 0, 0, 0, 0, 0, + 164, 170, 134, 0, 161, 162, 0, 0, 122, 0, + 146, 0, 0, 0, 0, 97, 102, 0, 85, 0, + 64, 0, 0, 0, 56, 0, 0, 160, 169, 163, + 135, 0, 0, 0, 158, 116, 151, 153, 0, 0, + 149, 136, 0, 0, 62, 60, 0, 0, 0, 0, + 124, 120, 0, 0, 0, 126, 150, 87, 86, 66, + 166, 0, 0, 0, 159, 0, 0, 0, 0, 171, + 118, 0, 154, 167, 0, 152, 0, 0, 165, ); protected static $yyDgoto= array(2, 3, 6, 28, 143, 4, 7, 8, 17, 53, 18, - 261, 114, 61, 99, 123, 176, 63, 266, 62, 101, - 125, 407, 262, 263, 264, 394, 267, 268, 347, 348, - 395, 197, 362, 405, 496, 145, 486, 497, 529, 491, - 556, 585, 490, 487, 441, 450, 532, 41, 30, 42, - 58, 94, 95, 96, 146, 488, 489, 396, 397, 302, - 424, 434, 474, 600, 428, 431, 515, 429, 430, 435, - 603, 432, 433, 427, 465, 567, 467, 481, 468, 482, - 604, 605, 618, 619, 617, 568, 592, 569, 570, 590, - 626, 591, 147, 272, 116, 117, 148, 369, 279, 191, - 241, 192, 199, 186, 288, 276, 149, 150, 151, 152, - 153, 461, 200, 201, 154, 103, 155, 156, 335, 242, - 243, 327, 244, 423, 328, 118, 119, 120, 169, 31, + 264, 114, 61, 99, 123, 177, 63, 269, 62, 101, + 125, 412, 265, 266, 267, 399, 270, 271, 351, 352, + 400, 198, 366, 410, 502, 145, 492, 503, 535, 497, + 562, 591, 496, 493, 447, 456, 538, 41, 30, 42, + 58, 94, 95, 96, 146, 494, 495, 401, 402, 305, + 430, 440, 480, 606, 434, 437, 521, 435, 436, 441, + 609, 438, 439, 433, 471, 573, 473, 487, 474, 488, + 610, 611, 624, 625, 623, 574, 598, 575, 576, 596, + 632, 597, 147, 275, 116, 117, 148, 373, 282, 192, + 242, 193, 200, 187, 291, 279, 149, 150, 151, 152, + 153, 467, 201, 202, 154, 103, 155, 156, 338, 243, + 244, 330, 245, 428, 331, 118, 119, 120, 170, 31, 32, ); - protected static $yySindex = array( -228, - 0, 0, -207, -59, 260, 1773, -207, 0, 65, 110, - 114, 0, -223, -223, 0, 0, 151, 0, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, - 956, 0, 0, -59, -59, 0, -29, 180, -23, -148, - 54, 0, 0, 0, 0, 0, 0, 0, -23, -23, - -23, 0, 136, 0, 226, 193, 0, 216, 49, 956, - -59, -59, -59, 219, 0, 224, 261, 0, -59, -59, - 269, 0, 0, 336, 102, 109, 102, 0, 0, 0, - 0, 0, 0, -59, 221, 0, 0, 0, 0, 0, - 353, 36, 0, 383, 390, 0, 116, -59, 152, -59, - 352, 152, 5344, 454, 252, 252, -206, 0, -96, 0, - 194, 451, 370, 0, 420, 0, 0, 0, 104, 0, - 0, -59, 404, 478, 0, 0, 414, 5618, 0, 5618, - 5618, 5618, 5618, 5618, 5618, 0, 5618, 595, 484, 0, - 5235, 426, 147, 3749, -28, 0, 521, 0, 0, 0, - 0, 0, 0, 480, 527, 0, 5618, 65, 0, 0, - 0, 0, 516, 0, -59, -1, 327, 420, -21, 493, - 116, 0, 0, 0, -59, 51, 351, 355, 2710, -73, - -73, -78, -73, -73, -73, -1, 0, 5618, 0, 5618, - 364, -28, 451, 0, -54, 2872, 67, 285, 582, 596, - 0, -76, 0, 5618, 5618, 5618, 5618, 5618, 5618, 5618, - 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5353, - 5468, 3995, 5618, 5226, 5618, 5618, 5618, 5618, 5618, 5618, - 5618, -59, 5618, 0, 0, -1, 0, 0, 0, 0, - 0, 0, -28, -223, 5618, 0, 339, 603, 0, 312, - -1, -1, -1, 0, 0, 1322, 0, 528, 398, 0, - 259, 0, 0, 0, 0, 539, 298, 0, 5618, 630, - 420, -28, 565, 566, 3749, 5618, 3749, 5497, 0, 0, - -28, 0, 629, 364, -76, 0, 364, 149, 3777, 3895, - 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, - 3749, 633, 4005, 808, 4021, 5618, 27, 5618, 27, 5618, - 5618, 39, 39, 5618, 5618, 39, 39, 14, 14, -81, - -81, -81, -78, 0, -73, 0, 5618, 5618, 0, 673, - 0, 657, 484, 0, 0, 0, 0, 78, 420, 262, - 0, 711, 456, 399, 463, -66, 601, 685, 0, 351, - 0, 326, 5618, 0, 5618, -17, 691, 711, 3749, 0, - 5618, 0, 0, 0, 608, 696, 0, 0, -28, 5618, - 3895, 3895, 39, 39, 39, 39, 647, 700, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 708, 624, 3036, 711, 0, 689, 0, 712, - 713, 605, 664, 629, 634, 0, 0, 5618, 0, 427, - 717, 638, 640, -28, 641, 3749, 0, 5618, 0, 326, - 0, 0, 5618, 5618, 0, 419, 5618, 728, 729, 523, - 731, 715, 716, 739, 740, 432, 0, 0, 0, 825, - 139, 0, 0, 0, 0, 0, 0, 0, 0, 756, - 139, 730, 545, 1389, 3095, 601, 0, 0, 0, 0, - -28, 763, 765, 753, 711, 752, 418, 0, 3133, 5618, - 5618, 711, 0, 453, 475, 0, 0, 5618, 5618, 760, - 455, 0, 0, 769, 301, 0, 792, 790, -288, -77, - -77, 0, 742, 0, 20, -90, 0, 0, 601, 0, - 0, 0, 0, 0, 714, 5618, 419, 718, 0, 779, - 3173, 722, 800, 799, 485, 3270, 3297, 5618, 432, 733, - 0, 592, 0, 533, 139, 518, 629, 139, 821, 790, - 826, 139, 0, 0, 711, 0, 0, 0, 310, 3749, - 0, 711, 5618, 523, 0, 5618, 531, 5618, 523, 738, - 3749, 0, 711, 629, -59, -38, 0, 0, 0, 790, - 533, 533, 831, 748, 0, 0, 0, 310, 0, 0, - 750, 818, 0, 3337, 0, 3569, 507, 303, 754, 0, - 0, 5618, 0, 711, 0, -38, -38, 533, 0, 840, - 758, 0, 0, 0, 0, 5618, 823, 523, 0, 0, - 0, 0, 766, 303, 0, 0, 3596, 767, 0, 0, - -38, -59, 711, 853, 0, 0, 523, 5618, 842, 0, - 0, 0, 0, 0, 0, -111, 782, 523, 0, 3722, - 711, -59, 868, 0, 0, 711, 0, 0, 787, 0, - 711, 788, 0, + protected static $yySindex = array( -282, + 0, 0, -234, -78, -186, 1781, -234, 0, 35, 144, + 106, 0, -185, -185, 0, 0, 205, 0, 189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, + 849, 0, 0, -78, -78, 0, -35, 221, -23, -143, + 151, 0, 0, 0, 0, 0, 0, 0, -23, -23, + -23, 0, 284, 0, 307, 266, 0, 318, 189, 849, + -78, -78, -78, 311, 0, 323, 361, 0, -78, -78, + 812, 0, 0, 349, 126, 131, 126, 0, 0, 0, + 0, 0, 0, -78, 108, 0, 0, 0, 0, 0, + 402, 55, 0, 426, 354, 0, 403, -78, 158, -78, + 363, 158, 5272, 444, -6, -6, -177, 0, 88, 0, + 187, 441, 664, 0, 417, 0, 0, 0, 287, 0, + 0, -78, 387, 468, 0, 0, 410, 5623, 0, 5623, + 5623, 5623, 5623, 5623, 5623, 0, 5623, 498, 479, 0, + 5434, 430, 129, 3858, -30, 0, 529, 0, 0, 0, + 0, 0, 0, 500, 541, 0, 5623, 35, 0, 0, + 0, 0, 535, 0, -78, 463, 343, 381, 417, 346, + 512, 403, 0, 0, 0, -78, 1319, 362, 377, 2955, + -121, -121, -70, -121, -121, -121, 463, 0, 5623, 0, + 5623, 367, -30, 441, 0, -51, 2785, -9, 289, 592, + 600, 0, 382, 0, 5623, 5623, 5623, 5623, 5623, 5623, + 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, + 5462, 5479, 5180, 5623, 5225, 5623, 5623, 5623, 5623, 5623, + 5623, 5623, -78, 5623, 0, 0, 463, 0, 0, 0, + 0, 0, 0, -30, -185, 5623, 0, 350, 608, 0, + 145, 463, 0, 135, 609, 463, 0, 0, 1347, 0, + 538, 406, 0, 107, 0, 0, 0, 0, 568, 112, + 0, 5623, 654, 417, -30, 574, 575, 3858, 5623, 3858, + 5589, 0, 0, -30, 0, 642, 367, 382, 0, 367, + -112, 4019, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, + 4054, 4054, 4054, 3858, 647, 309, 342, 828, 5623, 440, + 5623, 440, 5623, 5623, 4, 4, 5623, 5623, 4, 4, + 159, 159, 119, 119, 119, -70, 0, -121, 0, 5623, + 5623, 0, 666, 0, 655, 479, 0, 0, 0, 0, + -12, 0, 463, 50, 0, 573, 456, 384, 458, -57, + 596, 684, 0, 362, 0, 26, 5623, 0, 5623, -14, + 687, 573, 3858, 0, 5623, 0, 0, 0, 610, 685, + 0, 0, -30, 5623, 4054, 4054, 4, 4, 4, 4, + 643, 696, 0, 0, 171, 0, 0, -11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 698, 614, 2982, + 573, 0, 680, 0, 706, 707, 97, 657, 642, 628, + 0, 0, 5623, 0, 1395, 720, 639, 640, -30, 645, + 3858, 0, 5623, 0, 26, 0, 0, 5623, 0, 5623, + 0, 427, 5623, 732, 733, 539, 734, 716, 725, 745, + 751, 453, 0, 0, 0, 327, 400, 0, 0, 0, + 0, 0, 0, 0, 0, 755, 400, 735, 536, 1386, + 3009, 596, 0, 0, 0, 0, -30, 756, 774, 758, + 573, 759, 364, 0, 3174, 5623, 5623, 573, 0, 460, + 486, 0, 0, 5623, 5623, 763, 375, 0, 0, 780, + 139, 0, 803, 804, -54, 243, 243, 0, 757, 0, + -33, -93, 0, 0, 596, 0, 0, 0, 0, 0, + 722, 5623, 427, 726, 0, 792, 3394, 728, 814, 811, + 494, 3421, 3559, 5623, 453, 741, 0, 606, 0, 546, + 400, 516, 642, 400, 827, 804, 831, 400, 0, 0, + 573, 0, 0, 0, 275, 3858, 0, 573, 5623, 539, + 0, 5623, 534, 5623, 539, 746, 3858, 0, 573, 642, + -78, -36, 0, 0, 0, 804, 546, 546, 835, 753, + 0, 0, 0, 275, 0, 0, 762, 824, 0, 3586, + 0, 3613, 513, 265, 766, 0, 0, 5623, 0, 573, + 0, -36, -36, 546, 0, 857, 775, 0, 0, 0, + 0, 5623, 848, 539, 0, 0, 0, 0, 783, 265, + 0, 0, 3723, 785, 0, 0, -36, -78, 573, 871, + 0, 0, 539, 5623, 859, 0, 0, 0, 0, 0, + 0, -106, 793, 539, 0, 3821, 573, -78, 879, 0, + 0, 573, 0, 0, 798, 0, 573, 797, 0, ); - protected static $yyRindex= array( 1380, - 0, 0, 720, 0, 0, 361, 1596, 0, 861, 0, + protected static $yyRindex= array( 1755, + 0, 0, 924, 0, 0, 263, 1934, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 875, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -30, 168, 0, 0, 75, 0, 1051, + 0, 0, 0, -24, 109, 0, 0, 298, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 902, -89, 789, -89, 0, 0, 0, - 0, 0, 0, 0, -31, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 791, 0, - 0, 791, 824, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -12, 0, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 0, 0, 0, 2576, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2026, 1915, 1000, - 886, 0, 0, 701, 1730, 0, 307, 0, 0, 0, - 0, 0, 0, 0, 81, 0, 887, -36, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -11, 0, 0, - 0, 0, 0, 0, 0, -97, 804, 1298, 751, 1985, - 2150, 2613, 2411, 2448, 2485, 0, 0, 0, 0, 0, - 0, 1730, 5510, 1848, -13, 0, 1529, 0, 0, -19, - 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, + 0, 0, 0, 943, -84, 800, -84, 0, 0, 0, + 0, 0, 0, 0, -37, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 806, 0, + 0, 806, 834, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, + 0, 0, 0, -32, 0, 0, 0, 2529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2048, 1927, 1001, + 890, 0, 0, 484, 1719, 0, 667, 0, 0, 0, + 0, 0, 0, 0, -41, 0, 891, -29, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 689, 0, + 0, 0, 0, 0, 0, 0, 249, 823, 1154, 62, + 2119, 2227, 2750, 2312, 2349, 2450, 0, 0, 0, 0, + 0, 0, 1719, 5609, 1787, -13, 0, 1598, 0, 0, + -8, 0, 692, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1958, 0, 732, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 0, -97, 0, 820, 0, 0, - 0, 0, 0, 0, 55, 0, 810, 0, 0, 845, - 0, 1730, 846, 847, 481, 887, 534, 0, 0, 0, - 1730, 0, 87, 0, 0, 0, 0, 0, 62, 363, - 482, 544, 575, 723, 749, 874, 971, 973, 1306, 1488, - 546, 0, 5003, 4949, 4879, 0, 4895, 0, 4924, 0, - 0, 66, 1092, 0, 0, 4426, 4454, 4325, 4400, 4180, - 4225, 4285, 2651, 0, 2539, 0, 848, 887, 0, 1395, - 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, - 0, 832, 0, 86, 0, 0, 24, 0, 0, 0, - 0, 5024, 887, 0, 837, 0, 0, 832, 410, 0, - 0, 0, 0, 0, 0, 1432, 0, 0, 1730, 0, - 1501, 1600, 4496, 4621, 4727, 4836, 0, 0, 0, 0, + 0, 0, 0, 1898, 0, 1069, 0, 33, 0, 0, + 0, 0, 0, 909, 0, 0, 0, 0, 249, 0, + 861, 0, 0, 0, 0, 0, 0, 492, 0, 830, + 0, 0, 846, 0, 1719, 865, 866, 45, 891, 67, + 0, 0, 0, 1719, 0, -16, 0, 0, 0, 0, + 0, 764, 64, 66, 319, 511, 673, 1109, 1202, 1240, + 1451, 1459, 1579, 991, 0, 4768, 903, 4961, 0, 4977, + 0, 5004, 0, 0, 3085, 4451, 0, 0, 4510, 4539, + 4317, 4354, 4124, 4243, 4280, 2858, 0, 2558, 0, 867, + 891, 0, 1390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 833, 0, 114, 0, 0, + 220, 0, 0, 0, 0, 5020, 891, 0, 838, 0, + 0, 833, 1727, 0, 0, 0, 0, 0, 0, 1488, + 0, 0, 1719, 0, 1729, 1826, 4578, 4747, 4784, 4838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -105, 0, 0, 0, 0, - 827, 0, 0, 889, 0, 0, 0, 0, 0, 290, - 0, 0, 0, 1730, 0, 92, 0, 887, 0, 5047, - 0, 0, 887, 892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -97, 0, 1335, 0, 0, 0, 0, - 1730, 0, 0, 0, 832, 464, 0, 0, 0, 909, - 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 0, 0, 928, 0, 929, - 929, 0, 0, 0, 0, 0, 0, 0, 24, 0, + -108, 0, 0, 0, 0, 836, 0, 0, 906, 0, + 0, 0, 0, 0, 337, 0, 0, 0, 1719, 0, + 87, 0, 891, 0, 5046, 0, 0, 891, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 613, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 58, 0, 0, 64, 0, 0, 937, - 0, 915, 0, 0, 832, 0, 0, 0, 0, 495, - 0, 832, 909, 0, 0, 0, 0, 0, 0, 0, - 503, 0, 832, 64, 0, 0, 0, 0, 0, 938, - 58, 58, 0, 0, 0, 0, 0, 332, 0, 0, - 0, 0, 0, 0, 0, 0, 457, 856, 0, 0, - 0, 0, 0, 832, 0, 0, 0, 58, 0, 0, - 0, 0, 0, 0, 0, 887, 0, 0, 0, 0, - 0, 0, 0, 857, 0, 0, 0, 0, 0, 0, - 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 927, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, + 0, 1332, 0, 0, 0, 0, 1719, 0, 0, 0, + 833, 414, 0, 0, 0, 911, 0, 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -98, 0, 0, 0, 0, -98, 0, 0, 0, 0, - 832, 0, 0, + 178, 0, 0, 930, 0, 931, 931, 0, 0, 0, + 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 178, 0, 0, 932, 0, 927, 0, 0, + 833, 0, 0, 0, 0, 454, 0, 833, 911, 0, + 0, 0, 0, 0, 0, 0, 473, 0, 833, 178, + 0, 0, 0, 0, 0, 933, 13, 13, 0, 0, + 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, + 0, 0, 416, 853, 0, 0, 0, 0, 0, 833, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 891, 0, 0, 0, 0, 0, 0, 0, 854, + 0, 0, 0, 0, 0, 0, 0, 0, 833, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -105, 0, 0, 0, + 0, -105, 0, 0, 0, 0, 833, 0, 0, ); protected static $yyGindex= array(0, - 0, 0, 0, -4, 0, 0, 976, 670, 631, 416, - 982, -60, 0, 914, 890, -146, 0, 0, 0, 0, - -115, -364, 0, 0, 0, 980, 0, 644, 0, 0, - 83, 1032, -331, 0, 0, -62, -380, 513, 519, 0, - 48, -203, 0, 479, 0, 0, 0, 0, 953, 957, - 0, 581, 0, 910, -153, -249, -86, 0, 68, -106, - 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 511, 514, - 0, 430, 0, 0, 0, 0, 0, 467, 468, 0, - 0, 0, 0, 0, 862, 863, 683, 0, 283, 0, - -181, 0, 854, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 770, 0, 0, 0, 803, 0, 822, - 0, 0, 0, 0, 0, 0, 0, 896, 0, 0, - 1037, + 0, 0, 0, -4, 0, 0, 975, 661, 633, 425, + 983, -60, 0, 914, 892, -161, 0, 0, 0, 0, + -116, -407, 0, 0, 0, 53, 0, 638, 0, 0, + 83, -21, -356, 0, 0, -63, -412, 491, 501, 0, + -79, -256, 0, 457, 0, 0, 0, 0, 939, 941, + 0, 586, 0, 898, -150, -64, -104, 0, 682, -198, + 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 495, 485, + 0, 399, 0, 0, 0, 0, 0, 437, 438, 0, + 0, 0, 0, 0, 826, 829, 658, 0, 312, 0, + -180, 0, 816, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 729, 0, 0, 0, 772, 0, 778, + 0, 0, 0, 0, 0, 0, 0, 851, 856, 0, + 994, ); protected static $yyTable = array(11, - 75, 76, 77, 248, 222, 97, 173, 222, 93, 222, - 280, 240, 632, 112, 112, 16, 50, 239, 52, 110, - 583, 217, 252, 104, 170, 315, 109, 256, 13, 47, - 48, 308, 309, 26, 536, 57, 12, 121, 310, 124, - 129, 526, 93, 93, 233, 113, 113, 233, 426, 300, - 230, 527, 233, 161, 198, 228, 74, 74, 74, 257, - 229, 124, 237, 230, 81, 82, 92, 32, 228, 226, - 493, 227, 452, 229, 1, 230, 15, 300, 534, 74, - 228, 226, 32, 227, 584, 229, 222, 313, 224, 112, - 354, 500, 74, 74, 46, 74, 5, 59, 44, 360, - 92, 92, 209, 252, 57, 209, 252, 57, 74, 252, - 34, 55, 40, 44, 124, 198, 101, 74, 71, 209, - 209, 113, 357, 252, 252, 270, 252, 57, 252, 282, - 57, 425, 58, 162, 538, 58, 195, 10, 331, 233, - 16, 19, 535, 236, 557, 17, 60, 171, 32, 326, - 58, 313, 233, 523, 209, 35, 57, 170, 252, 252, - 249, 74, 315, 163, 233, 172, 74, 71, 170, 495, - 74, 324, 36, 233, 378, 260, 17, 44, 111, 44, - 101, 74, 9, 9, 58, 144, 209, 419, 315, 252, - 252, 56, 236, 401, 68, 559, 39, 74, 198, 411, - 9, 412, 380, 91, 410, 233, 112, 17, 10, 10, - 179, 17, 180, 181, 182, 183, 184, 185, 582, 187, - 377, 26, 580, 196, 236, 51, 10, 74, 633, 112, - 232, 74, 459, 232, 315, 253, 12, 217, 113, 144, - 530, 530, 332, 333, 308, 309, 74, 74, 74, 236, - 70, 310, 236, 402, 528, 71, 74, 236, 9, 454, - 17, 113, 485, 286, 462, 403, 34, 110, 110, 463, - 275, 34, 277, 404, 109, 109, 15, 78, 560, 501, - 74, 105, 79, 69, 10, 313, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 303, - 304, 305, 307, 309, 312, 313, 316, 317, 318, 319, - 320, 321, 322, 323, 101, 325, 510, 464, 209, 80, - 234, 235, 252, 234, 235, 232, 300, 301, 234, 235, - 20, 21, 22, 258, 24, 25, 306, 26, 232, 231, - 16, 350, 83, 57, 236, 17, 522, 173, 58, 112, - 232, 352, 170, 27, 306, 203, 351, 236, 144, 83, - 359, 361, 230, 219, 168, 173, 168, 228, 226, 236, - 227, 168, 229, 17, 168, 9, 168, 484, 17, 16, - 49, 113, 609, 610, 259, 222, 381, 224, 371, 572, - 372, 238, 373, 374, 189, 97, 375, 376, 9, 173, - 34, 10, 170, 210, 337, 17, 210, 624, 366, 301, - 144, 98, 315, 106, 39, 234, 235, 17, 100, 218, - 210, 210, 168, 108, 10, 17, 225, 223, 234, 235, - 110, 173, 167, 109, 231, 144, 74, 144, 399, 581, - 234, 235, 614, 416, 34, 107, 74, 231, 367, 217, - 214, 233, 420, 214, 54, 210, 168, 168, 508, 231, - 112, 507, 122, 439, 65, 54, 54, 214, 214, 252, - 252, 252, 252, 252, 126, 209, 252, 252, 485, 252, - 252, 252, 252, 252, 252, 74, 74, 210, 368, 157, - 455, 157, 113, 157, 124, 520, 157, 473, 519, 157, - 144, 157, 214, 165, 140, 144, 301, 140, 166, 469, - 170, 158, 86, 87, 88, 89, 90, 19, 344, 12, - 74, 175, 240, 74, 238, 240, 174, 74, 85, 86, - 87, 88, 89, 90, 214, 141, 177, 10, 141, 240, - 240, 190, 13, 144, 10, 14, 144, 157, 202, 315, - 74, 625, 144, 511, 10, 132, 203, 142, 573, 15, - 516, 517, 141, 577, 245, 130, 363, 131, 91, 365, - 247, 638, 246, 238, 240, 315, 105, 239, 43, 44, - 45, 157, 157, 251, 241, 254, 177, 241, 540, 177, - 345, 168, 168, 168, 168, 168, 168, 84, 332, 333, - 551, 241, 241, 177, 177, 238, 240, 74, 586, 587, - 265, 473, 616, 83, 84, 242, 473, 168, 242, 210, - 278, 315, 284, 16, 283, 144, 239, 74, 574, 9, - 576, 629, 242, 242, 189, 611, 241, 232, 177, 285, - 34, 448, 635, 336, 168, 472, 446, 444, 133, 445, - 342, 447, 188, 565, 566, 10, 236, 343, 239, 330, - 315, 315, 315, 349, 607, 473, 214, 242, 241, 353, - 177, 168, 168, 168, 168, 601, 602, 168, 144, 64, - 66, 67, 37, 38, 473, 159, 160, 355, 356, 361, - 370, 168, 168, 168, 168, 473, 168, 168, 168, 242, - 630, 168, 168, 168, 168, 168, 20, 21, 22, 258, - 24, 25, 379, 26, 188, 398, 157, 157, 157, 157, - 157, 157, 400, 406, 408, 225, 223, 234, 235, 27, - 449, 414, 417, 168, 168, 418, 220, 221, 240, 421, - 422, 174, 157, 132, 174, 142, 231, 436, 437, 440, - 141, 442, 443, 130, 451, 131, 453, 456, 466, 174, - 259, 168, 457, 243, 458, 460, 243, 470, 471, 157, - 475, 480, 176, 476, 477, 176, 210, 210, 478, 479, - 243, 243, 178, 86, 87, 88, 89, 90, 494, 244, - 176, 200, 244, 174, 200, 492, 157, 157, 157, 157, - 241, 83, 157, 502, 495, 503, 244, 244, 10, 200, - 5, 504, 506, 513, 514, 243, 157, 157, 157, 157, - 518, 157, 157, 157, 176, 174, 157, 521, 157, 157, - 157, 242, 524, 525, 533, 137, 133, 543, 539, 546, - 542, 244, 547, 200, 230, 219, 545, 243, 548, 228, - 226, 554, 227, 555, 229, 553, 176, 558, 157, 157, - 578, 561, 140, 382, 383, 384, 562, 222, 136, 224, - 575, 588, 589, 244, 595, 200, 596, 599, 606, 612, - 613, 615, 385, 386, 387, 388, 157, 389, 390, 128, - 620, 623, 391, 628, 392, 240, 240, 17, 17, 631, - 17, 17, 17, 17, 17, 17, 634, 17, 639, 641, - 323, 30, 643, 28, 246, 83, 172, 246, 17, 17, - 17, 17, 17, 17, 134, 135, 216, 172, 41, 176, - 216, 246, 246, 233, 40, 296, 297, 298, 300, 300, - 176, 300, 300, 300, 300, 300, 300, 57, 300, 51, - 176, 17, 393, 17, 17, 91, 109, 241, 241, 300, - 300, 172, 300, 300, 300, 316, 246, 172, 92, 88, - 178, 86, 87, 88, 89, 90, 145, 90, 89, 243, - 147, 148, 33, 17, 17, 17, 17, 29, 242, 242, - 102, 127, 300, 409, 300, 300, 10, 316, 246, 5, - 5, 5, 5, 5, 5, 244, 5, 200, 537, 531, - 563, 245, 73, 247, 245, 72, 247, 541, 164, 5, - 5, 5, 5, 137, 300, 300, 300, 300, 245, 245, - 247, 247, 552, 621, 593, 594, 187, 187, 413, 187, - 187, 187, 187, 187, 187, 187, 187, 273, 274, 334, - 140, 382, 383, 384, 364, 287, 136, 187, 187, 187, - 187, 187, 187, 245, 329, 247, 255, 46, 0, 0, - 385, 386, 387, 388, 0, 389, 390, 128, 0, 323, - 391, 0, 392, 0, 483, 86, 87, 88, 89, 90, - 187, 0, 187, 187, 0, 245, 0, 247, 0, 323, - 323, 323, 323, 323, 323, 323, 323, 0, 0, 0, - 0, 0, 134, 135, 0, 0, 0, 17, 0, 232, - 17, 0, 323, 187, 187, 187, 0, 0, 115, 254, - 246, 0, 254, 0, 316, 254, 243, 243, 236, 0, - 393, 315, 0, 0, 168, 0, 0, 0, 0, 254, - 254, 323, 254, 0, 254, 0, 0, 0, 300, 0, - 316, 300, 244, 244, 0, 0, 0, 0, 0, 0, - 17, 17, 17, 315, 316, 316, 316, 0, 0, 0, - 17, 0, 0, 0, 254, 254, 0, 0, 0, 0, - 17, 17, 17, 0, 0, 0, 0, 250, 0, 0, - 17, 0, 115, 0, 0, 0, 316, 225, 223, 234, - 235, 300, 300, 300, 0, 254, 254, 271, 220, 221, - 0, 300, 0, 0, 0, 0, 0, 245, 231, 247, - 0, 300, 300, 300, 0, 20, 21, 22, 23, 24, - 25, 300, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 27, 0, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, - 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, - 0, 17, 338, 339, 340, 0, 0, 246, 246, 0, - 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 300, 300, 300, 300, 300, 300, 300, 300, - 315, 187, 300, 300, 0, 300, 300, 300, 300, 300, - 300, 0, 300, 0, 0, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 222, 222, 315, 415, 222, 222, - 222, 222, 222, 0, 222, 0, 248, 0, 254, 248, - 315, 315, 315, 0, 0, 222, 222, 17, 222, 222, - 17, 0, 0, 248, 248, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 32, 32, 32, 32, 32, 32, - 32, 32, 315, 0, 245, 245, 247, 247, 17, 0, - 222, 222, 32, 32, 32, 32, 32, 32, 248, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 0, 0, - 187, 187, 19, 187, 187, 187, 187, 187, 187, 187, - 187, 222, 222, 222, 0, 32, 0, 32, 32, 0, - 248, 286, 286, 0, 0, 286, 286, 286, 286, 286, - 286, 286, 0, 0, 505, 0, 341, 0, 0, 0, - 0, 512, 286, 286, 286, 286, 286, 286, 32, 32, - 32, 0, 0, 0, 0, 0, 0, 0, 183, 183, - 2, 0, 183, 183, 183, 183, 183, 183, 183, 19, - 0, 0, 0, 0, 0, 286, 0, 286, 286, 183, - 183, 183, 183, 183, 183, 254, 254, 254, 254, 254, - 0, 0, 254, 254, 0, 254, 254, 254, 254, 254, - 254, 0, 0, 498, 564, 0, 0, 0, 286, 286, - 286, 571, 183, 0, 183, 183, 0, 0, 249, 0, - 0, 249, 579, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 258, 249, 249, 0, 0, 0, - 0, 0, 0, 0, 222, 183, 183, 183, 258, 258, - 0, 0, 248, 608, 0, 99, 99, 0, 0, 99, - 99, 99, 99, 99, 0, 99, 0, 0, 0, 0, - 249, 0, 0, 0, 0, 0, 99, 99, 99, 99, - 99, 32, 627, 258, 0, 0, 0, 0, 0, 0, - 0, 20, 21, 22, 258, 24, 25, 0, 26, 222, - 637, 0, 249, 0, 0, 640, 0, 0, 0, 0, - 642, 99, 99, 0, 27, 258, 0, 0, 222, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 259, 0, 0, 259, 0, 0, 32, 0, 0, 0, - 0, 286, 99, 99, 99, 259, 0, 259, 259, 2, - 2, 2, 2, 2, 2, 32, 2, 0, 20, 21, - 22, 258, 24, 25, 0, 26, 0, 0, 0, 2, - 2, 2, 0, 2, 0, 0, 6, 0, 183, 0, - 0, 27, 259, 0, 0, 0, 0, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 286, 17, 222, 222, - 0, 222, 222, 222, 222, 222, 222, 222, 222, 248, - 248, 0, 259, 0, 259, 286, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 183, 249, 32, 32, 0, 32, 32, - 32, 32, 32, 32, 32, 32, 0, 258, 0, 0, - 0, 0, 183, 0, 0, 0, 280, 280, 0, 0, - 280, 280, 280, 280, 280, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 99, 0, 280, 280, 280, - 280, 280, 280, 0, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 0, 0, 286, 286, 0, 286, 286, - 286, 286, 286, 286, 286, 286, 0, 0, 0, 0, - 0, 0, 280, 280, 0, 0, 0, 0, 0, 0, - 0, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 99, 0, 183, 183, 0, 183, 183, 183, 183, 183, - 183, 183, 183, 280, 280, 280, 259, 0, 99, 99, - 0, 0, 0, 19, 0, 0, 0, 0, 99, 0, - 0, 0, 0, 0, 0, 6, 6, 6, 6, 6, - 6, 0, 6, 0, 187, 187, 0, 187, 187, 187, - 187, 220, 187, 187, 187, 6, 6, 6, 6, 0, - 0, 249, 249, 0, 0, 0, 0, 187, 187, 187, - 187, 0, 0, 0, 258, 258, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 0, 187, 99, - 99, 187, 99, 99, 99, 99, 99, 99, 0, 99, - 0, 229, 229, 0, 229, 0, 229, 229, 229, 229, - 229, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 187, 229, 229, 229, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 282, 282, 0, 0, 282, 282, - 282, 282, 282, 0, 282, 229, 0, 229, 229, 0, - 0, 0, 0, 259, 259, 282, 282, 282, 282, 282, - 282, 274, 274, 0, 0, 274, 274, 274, 274, 274, - 0, 274, 0, 0, 0, 0, 0, 0, 229, 0, - 229, 280, 274, 274, 274, 274, 274, 274, 0, 0, - 282, 282, 20, 21, 22, 23, 24, 25, 0, 26, - 280, 0, 222, 222, 0, 0, 0, 222, 222, 222, - 222, 0, 222, 0, 0, 27, 0, 274, 274, 0, - 0, 282, 282, 282, 0, 222, 222, 222, 222, 0, + 75, 76, 77, 222, 234, 174, 249, 93, 97, 241, + 50, 222, 283, 259, 222, 240, 110, 638, 52, 109, + 1, 16, 589, 104, 57, 540, 314, 57, 432, 47, + 48, 542, 217, 171, 13, 57, 199, 121, 26, 124, + 231, 93, 93, 129, 499, 229, 227, 334, 228, 300, + 230, 233, 458, 285, 506, 234, 74, 74, 74, 260, + 238, 124, 231, 220, 81, 82, 92, 229, 227, 5, + 228, 101, 230, 12, 12, 115, 236, 300, 171, 74, + 34, 171, 161, 233, 83, 223, 590, 225, 238, 541, + 314, 169, 74, 74, 358, 74, 13, 544, 199, 14, + 92, 92, 200, 364, 210, 200, 240, 210, 74, 240, + 239, 431, 384, 15, 15, 124, 55, 74, 563, 219, + 200, 210, 210, 240, 240, 236, 273, 58, 361, 234, + 58, 381, 329, 454, 529, 101, 196, 238, 452, 450, + 171, 451, 10, 453, 251, 58, 254, 370, 17, 218, + 115, 234, 17, 34, 200, 354, 210, 236, 240, 239, + 250, 74, 162, 74, 36, 274, 501, 74, 105, 238, + 355, 74, 327, 17, 386, 342, 565, 16, 16, 58, + 382, 9, 74, 199, 528, 144, 200, 371, 210, 35, + 240, 239, 424, 415, 59, 231, 56, 112, 74, 365, + 229, 17, 406, 586, 17, 230, 416, 10, 417, 237, + 180, 429, 181, 182, 183, 184, 185, 186, 57, 188, + 588, 57, 455, 197, 314, 171, 26, 372, 74, 113, + 341, 470, 74, 639, 344, 171, 12, 340, 465, 144, + 57, 233, 350, 60, 234, 335, 336, 74, 217, 460, + 39, 74, 40, 158, 86, 87, 88, 89, 90, 74, + 237, 171, 407, 32, 110, 110, 51, 109, 109, 101, + 57, 278, 468, 280, 408, 532, 15, 469, 32, 10, + 235, 236, 409, 74, 234, 533, 507, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 306, 307, 308, 310, 312, 315, 316, 319, 320, 321, + 322, 323, 324, 325, 326, 233, 328, 168, 200, 168, + 210, 385, 240, 70, 168, 516, 300, 168, 304, 168, + 172, 235, 236, 112, 237, 615, 616, 233, 74, 84, + 16, 71, 68, 58, 32, 231, 220, 163, 173, 306, + 229, 227, 34, 228, 356, 230, 237, 71, 204, 241, + 630, 144, 241, 363, 69, 113, 348, 306, 223, 78, + 225, 316, 17, 17, 49, 168, 241, 241, 231, 220, + 17, 79, 490, 229, 227, 16, 228, 91, 230, 239, + 71, 375, 10, 376, 110, 377, 378, 109, 578, 379, + 380, 223, 219, 225, 514, 235, 236, 513, 97, 168, + 168, 241, 304, 144, 420, 526, 190, 83, 525, 80, + 168, 253, 34, 404, 232, 226, 224, 235, 236, 34, + 233, 536, 536, 17, 234, 98, 221, 222, 349, 144, + 100, 144, 74, 241, 587, 17, 232, 421, 157, 237, + 157, 620, 74, 17, 140, 157, 425, 140, 157, 316, + 157, 39, 106, 54, 107, 111, 108, 234, 122, 566, + 233, 112, 112, 65, 54, 54, 231, 210, 210, 240, + 240, 229, 227, 157, 228, 126, 230, 592, 593, 237, + 112, 74, 74, 112, 141, 461, 165, 141, 166, 223, + 124, 225, 9, 113, 113, 144, 157, 171, 316, 175, + 144, 176, 304, 144, 617, 475, 144, 43, 44, 45, + 235, 236, 113, 511, 174, 113, 74, 174, 10, 74, + 518, 46, 178, 74, 316, 44, 191, 190, 204, 232, + 157, 157, 174, 34, 168, 168, 168, 168, 168, 168, + 44, 242, 203, 112, 242, 189, 74, 631, 144, 517, + 235, 236, 316, 316, 316, 234, 522, 523, 242, 242, + 168, 132, 246, 142, 534, 241, 174, 644, 141, 232, + 316, 130, 491, 131, 248, 113, 489, 86, 87, 88, + 89, 90, 247, 570, 546, 105, 316, 168, 367, 252, + 577, 369, 256, 242, 257, 132, 557, 142, 174, 335, + 336, 585, 141, 74, 44, 130, 44, 131, 571, 572, + 233, 268, 316, 281, 168, 168, 168, 168, 286, 83, + 168, 144, 287, 74, 580, 242, 582, 607, 608, 237, + 9, 9, 614, 288, 168, 168, 168, 168, 339, 168, + 168, 168, 343, 233, 168, 168, 168, 168, 168, 9, + 346, 478, 9, 83, 133, 347, 10, 10, 316, 333, + 613, 633, 237, 37, 38, 157, 157, 157, 157, 157, + 157, 64, 66, 67, 144, 10, 168, 168, 10, 643, + 159, 160, 353, 357, 646, 579, 359, 360, 133, 648, + 583, 157, 365, 168, 374, 383, 636, 173, 226, 224, + 235, 236, 189, 243, 168, 403, 243, 405, 411, 221, + 222, 289, 9, 413, 423, 173, 167, 419, 157, 232, + 243, 243, 241, 241, 422, 426, 427, 442, 443, 491, + 446, 226, 224, 235, 236, 448, 449, 457, 10, 622, + 459, 233, 221, 222, 112, 157, 157, 157, 157, 173, + 462, 157, 232, 463, 464, 243, 472, 242, 635, 466, + 237, 476, 477, 481, 482, 157, 157, 157, 157, 641, + 157, 157, 157, 483, 484, 157, 113, 157, 157, 157, + 485, 173, 486, 500, 498, 501, 508, 243, 179, 86, + 87, 88, 89, 90, 209, 17, 17, 209, 17, 17, + 17, 17, 17, 17, 509, 17, 510, 157, 157, 512, + 519, 209, 209, 524, 10, 520, 17, 17, 17, 17, + 17, 17, 179, 86, 87, 88, 89, 90, 527, 226, + 224, 235, 236, 530, 317, 157, 545, 531, 548, 539, + 549, 137, 551, 552, 553, 564, 209, 554, 10, 17, + 232, 17, 17, 559, 231, 560, 561, 567, 584, 229, + 227, 568, 228, 581, 230, 594, 317, 595, 140, 387, + 388, 389, 602, 605, 136, 137, 601, 223, 209, 225, + 612, 17, 17, 17, 17, 316, 618, 619, 390, 391, + 392, 393, 83, 394, 395, 128, 621, 626, 396, 629, + 397, 634, 140, 387, 388, 389, 637, 640, 136, 645, + 647, 649, 30, 9, 242, 242, 172, 316, 28, 243, + 216, 172, 390, 391, 392, 393, 296, 394, 395, 128, + 134, 135, 396, 268, 397, 309, 268, 41, 216, 10, + 176, 324, 309, 234, 40, 297, 298, 109, 51, 176, + 268, 268, 172, 268, 57, 268, 176, 91, 398, 172, + 92, 88, 90, 89, 134, 135, 145, 147, 148, 300, + 300, 33, 300, 300, 300, 300, 300, 300, 29, 300, + 102, 414, 543, 127, 569, 268, 268, 537, 73, 72, + 300, 300, 398, 300, 300, 300, 164, 547, 627, 558, + 599, 600, 276, 317, 5, 277, 368, 418, 290, 337, + 209, 332, 258, 255, 46, 17, 268, 268, 17, 0, + 0, 177, 0, 300, 177, 300, 300, 187, 187, 317, + 187, 187, 187, 187, 187, 187, 187, 187, 177, 177, + 0, 0, 0, 317, 317, 317, 0, 0, 187, 187, + 187, 187, 187, 187, 316, 300, 300, 300, 300, 0, + 0, 85, 86, 87, 88, 89, 90, 0, 17, 17, + 17, 0, 445, 177, 0, 317, 243, 243, 17, 0, + 316, 187, 0, 187, 187, 0, 0, 10, 17, 17, + 17, 0, 0, 0, 316, 316, 316, 0, 17, 176, + 0, 91, 176, 0, 0, 177, 0, 479, 0, 0, + 324, 0, 0, 0, 187, 187, 187, 176, 20, 21, + 22, 23, 24, 25, 0, 26, 316, 0, 0, 233, + 324, 324, 324, 324, 324, 324, 324, 324, 0, 244, + 0, 27, 244, 0, 0, 0, 0, 84, 237, 268, + 0, 176, 0, 324, 0, 0, 244, 244, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 209, 17, 17, + 17, 0, 17, 17, 17, 17, 17, 17, 0, 17, + 222, 222, 324, 176, 222, 222, 222, 222, 222, 300, + 222, 244, 300, 5, 5, 5, 5, 5, 5, 0, + 5, 222, 222, 17, 222, 222, 17, 0, 0, 0, + 0, 0, 0, 5, 5, 5, 5, 226, 224, 235, + 236, 479, 0, 244, 0, 0, 479, 0, 221, 222, + 0, 0, 246, 0, 17, 246, 222, 222, 232, 0, + 0, 0, 300, 300, 300, 0, 0, 185, 0, 246, + 246, 0, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 300, 300, 0, 0, 222, 222, 222, + 245, 0, 300, 245, 0, 479, 0, 0, 0, 0, + 0, 0, 0, 0, 246, 0, 0, 245, 245, 0, + 0, 0, 0, 0, 479, 0, 268, 268, 268, 268, + 268, 0, 187, 0, 0, 479, 268, 268, 268, 268, + 268, 268, 0, 0, 0, 0, 246, 0, 0, 0, + 0, 187, 245, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 300, 300, 300, 300, 300, 300, 300, + 300, 0, 0, 300, 300, 0, 300, 300, 300, 300, + 300, 300, 0, 300, 245, 244, 0, 0, 32, 32, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 19, + 222, 187, 187, 0, 187, 187, 187, 187, 187, 187, + 187, 187, 32, 0, 32, 32, 286, 286, 0, 0, + 286, 286, 286, 286, 286, 286, 286, 19, 0, 0, + 0, 0, 0, 263, 0, 0, 0, 286, 286, 286, + 286, 286, 286, 0, 0, 32, 32, 32, 246, 0, + 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, + 0, 345, 0, 0, 0, 0, 19, 0, 0, 0, + 286, 0, 286, 286, 222, 19, 0, 0, 0, 0, + 0, 247, 0, 17, 247, 0, 245, 0, 0, 248, + 0, 0, 248, 0, 0, 0, 0, 0, 247, 247, + 504, 0, 0, 286, 286, 286, 248, 248, 0, 0, + 0, 0, 244, 244, 183, 183, 0, 0, 183, 183, + 183, 183, 183, 183, 183, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 183, 183, 183, 183, 183, + 183, 248, 0, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 0, 17, 222, 222, 0, 222, 222, 222, + 222, 222, 222, 222, 222, 247, 0, 0, 183, 0, + 183, 183, 0, 248, 0, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, + 22, 261, 24, 25, 0, 26, 0, 0, 0, 0, + 0, 183, 183, 183, 0, 246, 246, 0, 0, 249, + 0, 27, 249, 0, 0, 0, 20, 21, 22, 261, + 24, 25, 0, 26, 99, 99, 249, 249, 99, 99, + 99, 99, 99, 32, 99, 0, 286, 0, 0, 27, + 0, 0, 262, 245, 245, 99, 99, 99, 99, 99, + 0, 0, 32, 0, 0, 20, 21, 22, 261, 24, + 25, 249, 26, 0, 20, 21, 22, 261, 24, 25, + 262, 26, 0, 0, 0, 0, 0, 0, 27, 0, + 99, 99, 0, 0, 0, 0, 0, 27, 0, 0, + 0, 286, 0, 249, 0, 0, 0, 247, 0, 0, + 0, 0, 0, 0, 0, 248, 0, 0, 0, 262, + 286, 99, 99, 99, 0, 0, 0, 0, 262, 0, + 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 0, 0, 32, 32, 183, 32, 32, 32, 32, 32, + 32, 32, 32, 0, 0, 280, 280, 0, 0, 280, + 280, 280, 280, 280, 0, 280, 0, 214, 0, 258, + 214, 0, 258, 0, 0, 0, 280, 280, 280, 280, + 280, 280, 0, 0, 214, 214, 258, 258, 0, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 0, 183, + 286, 286, 0, 286, 286, 286, 286, 286, 286, 286, + 286, 280, 280, 0, 0, 0, 0, 0, 183, 214, + 0, 258, 0, 187, 187, 0, 187, 187, 187, 187, + 220, 187, 187, 187, 0, 249, 0, 0, 0, 0, + 0, 0, 280, 280, 280, 2, 187, 187, 187, 187, + 0, 214, 0, 258, 99, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 247, 259, 0, 0, 259, + 0, 19, 248, 248, 0, 0, 0, 187, 0, 0, + 187, 0, 0, 259, 259, 0, 0, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 0, 0, 183, 183, + 0, 183, 183, 183, 183, 183, 183, 183, 183, 99, + 187, 0, 187, 0, 0, 0, 0, 0, 259, 0, + 0, 0, 0, 0, 0, 0, 0, 99, 99, 0, + 0, 0, 0, 0, 282, 282, 0, 99, 282, 282, + 282, 282, 282, 0, 282, 0, 0, 0, 0, 0, + 259, 0, 0, 0, 0, 282, 282, 282, 282, 282, + 282, 0, 0, 229, 229, 0, 229, 0, 229, 229, + 229, 229, 229, 229, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 214, 0, 258, 229, 229, 229, 229, + 282, 282, 249, 249, 0, 0, 0, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 0, 0, 99, 99, + 0, 99, 99, 99, 99, 99, 99, 229, 99, 229, + 229, 282, 282, 282, 6, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 0, 2, 0, 185, 0, 0, 0, 0, 0, 280, + 229, 0, 229, 0, 2, 2, 2, 0, 2, 0, + 20, 21, 22, 23, 24, 25, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 0, 0, 274, 274, - 0, 0, 0, 0, 0, 0, 222, 0, 222, 222, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 0, 0, - 280, 280, 0, 280, 280, 280, 280, 280, 280, 222, - 280, 222, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 0, 259, 27, 222, 222, 0, 0, 0, 222, + 222, 222, 222, 0, 222, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 222, 222, 222, + 222, 0, 0, 0, 0, 0, 0, 187, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 0, 0, 280, + 280, 0, 280, 280, 280, 280, 280, 280, 222, 280, + 222, 222, 258, 258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 274, 274, 0, 0, 274, + 274, 274, 274, 274, 0, 274, 0, 0, 0, 0, + 0, 222, 0, 222, 0, 0, 274, 274, 274, 274, + 274, 274, 0, 0, 0, 0, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 0, 0, 187, 187, 0, + 187, 187, 187, 187, 187, 187, 187, 187, 0, 282, + 0, 274, 274, 6, 6, 6, 6, 6, 6, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 282, 0, + 0, 0, 0, 6, 6, 6, 6, 0, 229, 259, + 259, 0, 274, 274, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 275, 275, 0, 0, 275, 275, 275, + 275, 275, 0, 275, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 275, 275, 275, 275, 275, 275, + 0, 0, 0, 0, 0, 0, 0, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 0, 0, 282, 282, + 0, 282, 282, 282, 282, 282, 282, 0, 282, 275, + 275, 0, 0, 0, 0, 0, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 0, 0, 229, 229, 0, + 229, 229, 229, 229, 229, 229, 229, 229, 273, 273, + 275, 275, 273, 273, 273, 273, 273, 0, 273, 222, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, + 273, 273, 273, 273, 273, 274, 0, 0, 222, 0, + 0, 0, 0, 0, 0, 276, 276, 0, 0, 276, + 276, 276, 276, 276, 0, 276, 0, 0, 0, 0, + 0, 0, 0, 0, 273, 273, 276, 276, 276, 276, + 276, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, - 0, 0, 0, 0, 0, 0, 275, 275, 0, 0, - 275, 275, 275, 275, 275, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 275, 275, - 275, 275, 275, 0, 282, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, + 274, 0, 0, 0, 0, 273, 273, 0, 0, 0, + 0, 276, 276, 0, 0, 0, 0, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 0, 17, 222, 222, + 0, 222, 222, 222, 222, 222, 222, 222, 222, 0, + 0, 0, 276, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 0, 277, 277, 0, 0, + 277, 277, 277, 277, 277, 0, 277, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 277, 277, 277, + 277, 277, 277, 0, 0, 0, 0, 0, 274, 274, + 0, 0, 274, 274, 274, 274, 274, 0, 0, 274, + 274, 0, 274, 274, 274, 274, 274, 274, 275, 274, + 0, 0, 277, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 274, 275, 275, 0, 229, 0, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 0, 0, 187, 187, - 0, 187, 187, 187, 187, 187, 187, 187, 187, 282, - 0, 0, 0, 275, 275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 199, 0, 273, 199, + 199, 0, 199, 277, 277, 199, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 199, 199, 199, 199, + 199, 199, 0, 0, 265, 265, 0, 0, 265, 265, + 265, 265, 265, 0, 265, 276, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 265, 265, 265, 265, 265, + 265, 199, 199, 273, 0, 0, 275, 275, 0, 0, + 275, 275, 275, 275, 275, 0, 0, 275, 275, 0, + 275, 275, 275, 275, 275, 275, 0, 275, 0, 0, + 265, 265, 199, 199, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 0, 0, 229, 229, 0, 229, 229, - 229, 229, 229, 229, 229, 229, 0, 222, 0, 0, + 0, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 282, 282, 282, - 282, 282, 282, 282, 282, 282, 0, 0, 282, 282, - 0, 282, 282, 282, 282, 282, 282, 0, 282, 0, - 0, 0, 0, 0, 274, 274, 0, 0, 274, 274, - 274, 274, 274, 0, 0, 274, 274, 0, 274, 274, - 274, 274, 274, 274, 0, 274, 275, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, + 0, 273, 273, 0, 0, 273, 273, 273, 273, 273, + 0, 0, 273, 273, 0, 273, 273, 273, 273, 273, + 273, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 276, + 0, 0, 276, 276, 276, 276, 276, 0, 0, 276, + 276, 277, 276, 276, 276, 276, 276, 276, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 0, 17, 222, 222, 0, 222, - 222, 222, 222, 222, 222, 222, 222, 273, 273, 0, - 0, 273, 273, 273, 273, 273, 0, 273, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 273, 273, - 273, 273, 273, 273, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 276, 276, 0, 0, 276, 276, - 276, 276, 276, 0, 276, 0, 0, 0, 0, 0, - 0, 0, 0, 273, 273, 276, 276, 276, 276, 276, - 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 277, 277, 0, 0, 277, 277, 277, 277, 277, - 0, 277, 0, 0, 273, 273, 0, 0, 0, 0, - 276, 276, 277, 277, 277, 277, 277, 277, 0, 275, - 275, 0, 0, 275, 275, 275, 275, 275, 0, 0, - 275, 275, 0, 275, 275, 275, 275, 275, 275, 0, - 275, 276, 276, 0, 0, 265, 265, 277, 277, 265, - 265, 265, 265, 265, 0, 265, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 265, 265, 265, - 265, 265, 0, 0, 0, 0, 0, 0, 277, 277, - 0, 0, 199, 199, 0, 0, 199, 199, 0, 199, - 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 265, 199, 199, 199, 199, 199, 199, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, - 272, 0, 0, 272, 272, 272, 272, 272, 0, 272, - 0, 0, 265, 265, 0, 0, 0, 273, 199, 199, - 272, 272, 272, 272, 272, 272, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 271, 271, 0, - 0, 271, 271, 271, 271, 271, 0, 271, 0, 199, - 199, 0, 0, 0, 276, 272, 272, 0, 271, 271, - 271, 271, 271, 271, 0, 0, 0, 0, 0, 0, - 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 272, 272, 0, 0, - 0, 277, 0, 271, 271, 0, 230, 219, 0, 0, - 0, 228, 226, 0, 227, 0, 229, 0, 0, 276, - 0, 0, 0, 0, 0, 0, 0, 269, 0, 222, - 206, 224, 216, 0, 271, 271, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 272, 272, 0, 0, + 272, 272, 272, 272, 272, 0, 272, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 272, 272, 272, + 272, 272, 272, 0, 265, 0, 0, 0, 0, 0, + 0, 231, 220, 0, 0, 284, 229, 227, 0, 228, + 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, + 199, 0, 272, 272, 223, 207, 225, 217, 0, 277, + 277, 0, 0, 277, 277, 277, 277, 277, 0, 199, + 277, 277, 0, 277, 277, 277, 277, 277, 277, 265, + 277, 0, 0, 272, 272, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 277, 0, 0, 0, - 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, - 273, 273, 0, 0, 273, 273, 273, 273, 273, 0, - 0, 273, 273, 0, 273, 273, 273, 273, 273, 273, - 0, 273, 199, 217, 0, 233, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 276, 276, 0, - 265, 276, 276, 276, 276, 276, 0, 0, 276, 276, - 0, 276, 276, 276, 276, 276, 276, 0, 276, 272, + 0, 0, 0, 0, 271, 271, 0, 0, 271, 271, + 271, 271, 271, 0, 271, 0, 0, 0, 218, 0, + 234, 0, 0, 0, 0, 271, 271, 271, 271, 271, + 271, 0, 0, 0, 0, 0, 0, 0, 199, 199, + 0, 0, 199, 199, 199, 199, 199, 0, 0, 199, + 199, 0, 199, 199, 199, 199, 199, 199, 0, 199, + 271, 271, 0, 0, 0, 0, 0, 265, 265, 0, + 0, 265, 265, 265, 265, 265, 0, 0, 265, 265, + 0, 265, 265, 265, 265, 265, 265, 0, 265, 0, + 0, 271, 271, 0, 0, 0, 0, 0, 0, 0, + 0, 231, 220, 0, 0, 0, 229, 227, 0, 228, + 0, 230, 0, 0, 0, 0, 272, 0, 0, 0, + 0, 0, 272, 0, 223, 207, 225, 217, 231, 220, + 0, 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 277, 277, 0, 199, 277, 277, - 277, 277, 277, 0, 0, 277, 277, 0, 277, 277, - 277, 277, 277, 277, 0, 277, 199, 271, 230, 219, - 0, 0, 281, 228, 226, 0, 227, 0, 229, 0, + 444, 223, 207, 225, 217, 231, 220, 0, 219, 505, + 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 207, + 225, 217, 0, 0, 0, 219, 0, 0, 218, 0, + 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, + 0, 0, 219, 0, 0, 218, 0, 234, 0, 0, + 0, 0, 0, 0, 271, 237, 0, 0, 0, 0, + 0, 0, 252, 0, 0, 252, 0, 0, 252, 0, + 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, + 0, 0, 252, 252, 0, 252, 0, 252, 0, 272, + 272, 0, 0, 272, 272, 272, 272, 272, 0, 0, + 272, 272, 0, 272, 272, 272, 272, 272, 272, 0, + 272, 0, 0, 0, 0, 0, 0, 252, 252, 0, + 0, 0, 0, 0, 226, 224, 235, 236, 208, 209, + 210, 211, 213, 0, 0, 221, 222, 0, 205, 206, + 212, 215, 214, 216, 0, 232, 0, 0, 252, 252, + 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, + 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 223, 207, 225, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 222, 206, 224, 216, 0, 0, 0, 265, 265, - 0, 0, 265, 265, 265, 265, 265, 0, 0, 265, - 265, 0, 265, 265, 265, 265, 265, 265, 0, 265, - 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 199, 199, 0, 0, 199, - 199, 199, 199, 199, 0, 0, 199, 199, 0, 199, - 199, 199, 199, 199, 199, 217, 199, 233, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 271, 0, + 0, 271, 271, 271, 271, 271, 233, 219, 271, 271, + 0, 271, 271, 271, 271, 271, 271, 0, 271, 0, + 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, + 0, 0, 0, 233, 0, 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 272, 272, 0, 0, 272, 272, 272, 272, - 272, 232, 0, 272, 272, 0, 272, 272, 272, 272, - 272, 272, 0, 272, 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 271, 0, 0, 271, 271, 271, 271, 271, 0, - 0, 271, 271, 0, 271, 271, 271, 271, 271, 271, - 0, 271, 230, 219, 0, 0, 0, 228, 226, 0, - 227, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 438, 222, 206, 224, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 223, 234, 235, 207, 208, 209, 210, 212, 0, 0, - 220, 221, 0, 204, 205, 211, 214, 213, 215, 218, - 231, 230, 219, 0, 0, 499, 228, 226, 0, 227, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 222, 206, 224, 216, 0, 217, - 0, 233, 0, 0, 0, 0, 0, 0, 0, 230, - 219, 0, 0, 0, 228, 226, 0, 227, 0, 229, - 0, 0, 0, 232, 0, 0, 0, 0, 218, 0, - 0, 509, 222, 206, 224, 216, 0, 0, 0, 0, - 0, 0, 236, 0, 0, 0, 0, 0, 0, 230, - 219, 0, 0, 544, 228, 226, 0, 227, 217, 229, - 233, 0, 0, 0, 0, 0, 218, 0, 0, 0, - 0, 0, 222, 206, 224, 216, 0, 0, 0, 0, + 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, + 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 226, 224, 235, 236, 208, 209, + 210, 211, 213, 0, 0, 221, 222, 0, 205, 206, + 212, 215, 214, 216, 0, 232, 0, 0, 0, 0, + 0, 226, 224, 235, 236, 208, 209, 210, 211, 213, + 0, 0, 221, 222, 0, 205, 206, 212, 215, 214, + 216, 0, 232, 0, 0, 0, 0, 0, 226, 224, + 235, 236, 208, 209, 210, 211, 213, 0, 0, 221, + 222, 0, 205, 206, 212, 215, 214, 216, 0, 232, + 231, 220, 0, 0, 550, 229, 227, 0, 228, 0, + 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 207, 225, 217, 231, 220, 0, + 0, 555, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 217, 0, 233, 0, - 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, - 0, 225, 223, 234, 235, 207, 208, 209, 210, 212, - 0, 0, 220, 221, 0, 204, 205, 211, 214, 213, - 215, 0, 231, 0, 0, 0, 217, 0, 233, 0, - 0, 0, 0, 0, 0, 0, 230, 219, 0, 0, - 549, 228, 226, 0, 227, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, - 206, 224, 216, 230, 219, 0, 0, 550, 228, 226, - 0, 227, 0, 229, 0, 0, 0, 232, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 206, 224, 216, - 0, 0, 0, 218, 0, 0, 236, 0, 0, 0, - 0, 0, 0, 230, 219, 0, 0, 597, 228, 226, - 0, 227, 0, 229, 0, 0, 0, 0, 0, 0, - 218, 0, 0, 217, 0, 233, 222, 206, 224, 216, - 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, + 223, 207, 225, 217, 0, 233, 0, 219, 252, 252, + 252, 252, 252, 0, 0, 252, 252, 0, 252, 252, + 252, 252, 252, 252, 237, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 219, 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 217, 0, 233, 0, 0, 236, 0, 0, 0, 0, - 218, 0, 0, 0, 0, 225, 223, 234, 235, 207, - 208, 209, 210, 212, 232, 0, 220, 221, 0, 204, - 205, 211, 214, 213, 215, 0, 231, 0, 0, 0, - 217, 0, 233, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 223, 234, 235, 207, 208, - 209, 210, 212, 236, 0, 220, 221, 0, 204, 205, - 211, 214, 213, 215, 0, 231, 0, 0, 0, 0, + 0, 0, 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 223, 234, 235, 207, 208, 209, 210, - 212, 0, 0, 220, 221, 0, 204, 205, 211, 214, - 213, 215, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 223, 234, 235, 207, 208, 209, 210, - 212, 232, 0, 220, 221, 0, 204, 205, 211, 214, - 213, 215, 0, 231, 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 0, 230, 219, 0, 232, 598, - 228, 226, 0, 227, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 222, 206, - 224, 216, 230, 219, 0, 0, 0, 228, 226, 0, - 227, 0, 229, 0, 0, 0, 0, 0, 232, 0, - 0, 0, 0, 0, 622, 222, 206, 224, 216, 0, - 0, 0, 218, 0, 0, 0, 0, 236, 0, 225, - 223, 234, 235, 207, 208, 209, 210, 212, 0, 0, - 220, 221, 0, 204, 205, 211, 214, 213, 215, 218, - 231, 0, 217, 0, 233, 0, 225, 223, 234, 235, - 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, - 204, 205, 211, 214, 213, 215, 0, 231, 0, 217, - 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 223, 234, 235, - 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, - 204, 205, 211, 214, 213, 215, 0, 231, 230, 219, - 0, 0, 0, 228, 226, 0, 227, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 636, - 0, 222, 206, 224, 216, 230, 219, 0, 0, 0, - 228, 226, 0, 227, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 206, - 224, 216, 0, 230, 219, 218, 0, 0, 228, 226, - 0, 227, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 222, 206, 224, 216, - 0, 0, 218, 0, 0, 217, 0, 233, 0, 0, + 0, 0, 0, 226, 224, 235, 236, 208, 209, 210, + 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, + 215, 214, 216, 0, 232, 231, 220, 0, 0, 556, + 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 207, + 225, 217, 231, 220, 0, 0, 603, 229, 227, 0, + 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 223, 207, 225, 217, 231, + 220, 0, 219, 604, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 207, 225, 217, 0, 0, 0, 219, + 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 218, 0, 217, 0, 233, 0, 0, 0, 0, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 217, 0, 233, 0, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 233, 219, 0, 0, 218, + 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, + 0, 0, 233, 0, 0, 0, 218, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, - 0, 230, 219, 0, 0, 0, 228, 226, 0, 227, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 222, 206, 224, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 223, - 234, 235, 207, 208, 209, 210, 212, 0, 0, 220, - 221, 0, 204, 205, 211, 214, 213, 215, 218, 231, - 0, 0, 0, 0, 0, 225, 223, 234, 235, 207, - 208, 209, 210, 212, 0, 0, 220, 221, 0, 204, - 205, 211, 214, 213, 215, 0, 231, 0, 217, 0, - 233, 0, 0, 0, 0, 0, 0, 132, 0, 142, - 0, 0, 0, 232, 141, 0, 0, 130, 0, 131, - 0, 230, 219, 0, 0, 0, 228, 226, 0, 227, - 0, 229, 236, 0, 310, 0, 0, 230, 0, 0, - 232, 0, 228, 226, 222, 227, 224, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, - 222, 0, 224, 0, 0, 83, 0, 0, 232, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, - 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 231, + 220, 0, 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 133, 225, 223, 234, 235, 207, 208, 209, 210, 212, - 233, 0, 220, 221, 0, 204, 205, 211, 214, 213, - 215, 0, 231, 0, 0, 0, 233, 0, 225, 223, - 234, 235, 207, 208, 209, 210, 212, 0, 0, 220, - 221, 0, 204, 205, 211, 214, 213, 215, 0, 231, - 0, 0, 0, 0, 0, 0, 225, 223, 234, 235, - 207, 208, 209, 210, 212, 0, 0, 220, 221, 0, - 0, 205, 211, 214, 213, 215, 0, 231, 0, 0, - 0, 0, 0, 0, 0, 0, 232, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, - 262, 262, 262, 262, 262, 236, 262, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 262, 262, 262, - 262, 262, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 178, 86, 87, 88, 89, 90, - 0, 263, 263, 0, 0, 263, 263, 263, 263, 263, - 0, 263, 262, 262, 0, 0, 0, 0, 0, 0, - 10, 0, 263, 263, 263, 263, 263, 263, 0, 0, - 0, 0, 0, 0, 225, 223, 234, 235, 207, 208, - 209, 210, 212, 262, 262, 220, 221, 137, 0, 0, - 211, 214, 213, 215, 0, 231, 232, 263, 263, 0, - 0, 264, 264, 0, 0, 264, 264, 264, 264, 264, - 0, 264, 232, 0, 140, 236, 0, 0, 0, 0, - 136, 0, 264, 264, 264, 264, 264, 264, 263, 263, - 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 260, 0, 0, 260, 0, 260, 260, 260, - 0, 0, 0, 0, 0, 0, 0, 264, 264, 0, - 0, 0, 260, 260, 260, 260, 260, 260, 0, 0, - 0, 0, 0, 0, 0, 311, 134, 135, 0, 0, - 0, 0, 0, 0, 225, 223, 234, 235, 264, 264, - 0, 0, 0, 0, 0, 220, 221, 260, 260, 0, - 225, 223, 234, 235, 0, 231, 0, 0, 0, 0, - 0, 220, 221, 0, 0, 0, 262, 261, 0, 0, - 261, 231, 261, 261, 261, 0, 0, 0, 260, 260, - 0, 0, 0, 0, 0, 0, 0, 261, 261, 261, - 261, 261, 261, 253, 0, 0, 253, 0, 0, 253, + 0, 628, 223, 207, 225, 217, 0, 0, 0, 0, + 0, 0, 0, 226, 224, 235, 236, 208, 209, 210, + 211, 213, 0, 0, 221, 222, 0, 205, 206, 212, + 215, 214, 216, 0, 232, 0, 219, 0, 0, 0, + 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, + 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, + 0, 232, 0, 0, 0, 0, 218, 0, 234, 0, + 0, 0, 0, 0, 0, 0, 0, 231, 220, 0, + 0, 0, 229, 227, 0, 228, 0, 230, 0, 0, + 233, 0, 0, 0, 0, 0, 0, 0, 642, 0, + 223, 207, 225, 217, 0, 0, 0, 0, 0, 237, + 0, 0, 0, 0, 231, 220, 0, 233, 0, 229, + 227, 0, 228, 0, 230, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 219, 0, 237, 223, 207, 225, + 217, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 263, 0, 253, 253, 0, 253, 0, 253, 0, - 0, 255, 261, 261, 255, 0, 0, 255, 0, 0, + 0, 0, 0, 237, 218, 0, 234, 0, 0, 0, + 0, 219, 0, 0, 0, 0, 0, 0, 226, 224, + 235, 236, 208, 209, 210, 211, 213, 0, 0, 221, + 222, 0, 205, 206, 212, 215, 214, 216, 0, 232, + 0, 218, 0, 234, 0, 226, 224, 235, 236, 208, + 209, 210, 211, 213, 0, 0, 221, 222, 0, 205, + 206, 212, 215, 214, 216, 0, 232, 0, 0, 0, + 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, + 213, 0, 0, 221, 222, 0, 205, 206, 212, 215, + 214, 216, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 255, 255, 0, 255, 0, 255, 0, 253, 253, - 0, 0, 0, 261, 261, 0, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 0, 270, 0, 0, 270, - 0, 264, 0, 0, 0, 0, 255, 255, 0, 253, - 253, 0, 0, 270, 270, 0, 270, 0, 270, 0, + 0, 0, 0, 237, 0, 231, 220, 0, 0, 0, + 229, 227, 0, 228, 0, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 207, + 225, 217, 0, 0, 0, 0, 0, 0, 0, 0, + 231, 220, 0, 0, 0, 229, 227, 0, 228, 0, + 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 219, 223, 207, 225, 217, 0, 0, 0, + 0, 0, 226, 224, 235, 236, 208, 209, 210, 211, + 213, 0, 233, 221, 222, 0, 205, 206, 212, 215, + 214, 216, 218, 232, 234, 0, 0, 219, 0, 0, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 262, 262, 0, 0, 262, 262, 262, 262, 262, 233, + 262, 0, 0, 0, 0, 0, 0, 218, 0, 234, + 0, 262, 262, 262, 262, 262, 262, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 255, 255, 262, - 262, 260, 0, 262, 262, 262, 262, 262, 270, 270, - 262, 262, 0, 262, 262, 262, 262, 262, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 270, - 270, 0, 0, 0, 263, 263, 0, 0, 263, 263, - 263, 263, 263, 0, 0, 263, 263, 0, 263, 263, - 263, 263, 263, 263, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 0, 251, 0, - 0, 251, 0, 0, 251, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 251, 251, - 0, 251, 253, 251, 264, 264, 0, 0, 264, 264, - 264, 264, 264, 0, 0, 264, 264, 0, 264, 264, - 264, 264, 264, 264, 0, 0, 0, 0, 0, 0, - 255, 0, 0, 251, 251, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 260, 260, 0, 0, 260, 260, - 260, 260, 260, 0, 0, 260, 260, 0, 260, 260, - 260, 260, 260, 260, 251, 251, 0, 0, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 269, 0, 0, 269, 0, 0, - 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 269, 269, 0, 269, 0, 269, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 261, - 261, 0, 0, 261, 261, 261, 261, 261, 0, 0, - 261, 261, 0, 261, 261, 261, 261, 261, 261, 269, - 269, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 253, 253, 253, 253, 0, 0, 253, 253, 0, 253, - 253, 253, 253, 253, 253, 0, 0, 0, 0, 0, - 269, 269, 0, 0, 0, 0, 0, 255, 255, 255, - 255, 255, 0, 0, 255, 255, 0, 255, 255, 255, - 255, 255, 255, 250, 0, 0, 250, 251, 0, 250, + 0, 0, 0, 0, 0, 0, 262, 262, 0, 0, + 226, 224, 235, 236, 208, 209, 210, 211, 213, 0, + 0, 221, 222, 0, 205, 206, 212, 215, 214, 216, + 0, 232, 0, 0, 0, 0, 0, 262, 262, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 224, 235, + 236, 208, 209, 210, 211, 213, 0, 0, 221, 222, + 0, 205, 206, 212, 215, 214, 216, 0, 232, 263, + 263, 0, 0, 263, 263, 263, 263, 263, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 250, 250, 0, 250, 0, 250, 270, - 270, 270, 270, 270, 0, 0, 270, 270, 0, 270, - 270, 270, 270, 270, 270, 0, 267, 0, 0, 267, - 0, 0, 267, 0, 0, 0, 0, 0, 250, 250, - 0, 0, 256, 0, 0, 256, 267, 267, 256, 267, - 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 256, 256, 0, 256, 0, 256, 0, 250, - 250, 257, 0, 0, 257, 0, 0, 257, 0, 0, - 0, 267, 267, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 257, 269, 257, 0, 257, 256, 256, 268, - 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 267, 267, 0, 0, 268, 268, 0, 268, - 0, 268, 0, 0, 0, 0, 257, 257, 256, 256, - 0, 0, 0, 0, 251, 251, 251, 251, 251, 0, - 0, 251, 251, 0, 251, 251, 251, 251, 251, 251, - 0, 268, 268, 266, 0, 0, 266, 257, 257, 0, + 263, 263, 263, 263, 263, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 264, 264, 0, 0, + 264, 264, 264, 264, 264, 0, 264, 0, 0, 0, + 233, 0, 0, 0, 0, 263, 263, 264, 264, 264, + 264, 264, 264, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 0, 0, 260, 0, 0, 260, 0, 260, + 260, 260, 0, 0, 0, 233, 263, 263, 0, 0, + 0, 0, 264, 264, 260, 260, 260, 260, 260, 260, + 262, 0, 0, 0, 237, 0, 0, 0, 0, 0, + 0, 261, 0, 0, 261, 0, 261, 261, 261, 0, + 0, 0, 0, 264, 264, 0, 0, 0, 0, 260, + 260, 261, 261, 261, 261, 261, 261, 0, 226, 224, + 235, 236, 208, 209, 210, 211, 213, 0, 0, 221, + 222, 0, 0, 206, 212, 215, 214, 216, 0, 232, + 260, 260, 0, 0, 0, 0, 261, 261, 0, 0, + 0, 0, 0, 226, 224, 235, 236, 208, 209, 210, + 211, 213, 0, 0, 221, 222, 0, 0, 0, 212, + 215, 214, 216, 0, 232, 0, 0, 261, 261, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, + 0, 254, 0, 0, 254, 0, 0, 0, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, + 0, 254, 0, 254, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 262, 262, 0, 0, 262, 262, 262, + 262, 262, 0, 0, 262, 262, 264, 262, 262, 262, + 262, 262, 262, 254, 254, 0, 0, 253, 0, 0, + 253, 0, 0, 253, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 253, 0, + 253, 0, 253, 260, 254, 254, 255, 0, 0, 255, + 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255, 255, 0, 255, + 0, 255, 253, 253, 0, 0, 0, 0, 0, 0, + 261, 0, 0, 0, 0, 270, 0, 0, 270, 0, + 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 255, 255, 253, 253, 270, 270, 0, 270, 0, + 270, 0, 263, 263, 0, 0, 263, 263, 263, 263, + 263, 0, 0, 263, 263, 0, 263, 263, 263, 263, + 263, 263, 255, 255, 0, 0, 0, 0, 0, 0, + 270, 270, 0, 0, 0, 0, 0, 0, 0, 264, + 264, 0, 0, 264, 264, 264, 264, 264, 0, 0, + 264, 264, 0, 264, 264, 264, 264, 264, 264, 0, + 0, 270, 270, 0, 0, 0, 0, 254, 0, 0, + 0, 0, 0, 0, 0, 0, 260, 260, 0, 0, + 260, 260, 260, 260, 260, 0, 0, 260, 260, 0, + 260, 260, 260, 260, 260, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 266, 266, 0, 266, 201, 266, 0, 201, 0, 0, - 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, - 0, 201, 201, 0, 201, 0, 201, 208, 0, 0, - 208, 0, 250, 0, 0, 266, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 208, 0, 208, 0, 208, - 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 266, 266, 0, 0, - 269, 269, 269, 269, 269, 267, 0, 269, 269, 208, - 269, 269, 269, 269, 269, 269, 0, 0, 201, 0, - 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 261, 261, 0, 0, 261, 261, 261, + 261, 261, 0, 0, 261, 261, 253, 261, 261, 261, + 261, 261, 261, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 251, 0, 0, 251, 0, 0, + 251, 0, 0, 0, 0, 255, 0, 0, 0, 0, + 0, 0, 0, 0, 251, 251, 0, 251, 266, 251, + 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 269, 0, 0, 269, 266, 266, 269, 266, 0, + 266, 0, 0, 0, 270, 0, 0, 0, 0, 251, + 251, 269, 269, 0, 269, 0, 269, 0, 0, 0, + 0, 0, 0, 0, 254, 254, 254, 254, 254, 0, + 266, 254, 254, 0, 254, 254, 254, 254, 254, 254, + 251, 251, 0, 0, 0, 250, 269, 269, 250, 0, + 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 266, 0, 0, 250, 250, 0, 250, 0, + 250, 0, 0, 0, 0, 0, 0, 269, 269, 0, + 0, 0, 0, 253, 253, 253, 253, 253, 0, 0, + 253, 253, 0, 253, 253, 253, 253, 253, 253, 0, + 250, 250, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 255, 255, 255, 255, 255, 0, 0, 255, + 255, 0, 255, 255, 255, 255, 255, 255, 0, 0, + 0, 250, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 270, 270, 270, 270, 270, 0, 0, 270, 270, + 0, 270, 270, 270, 270, 270, 270, 0, 267, 0, + 0, 267, 0, 251, 267, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 256, 0, 0, 256, 267, 267, + 256, 267, 0, 267, 266, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 256, 256, 0, 256, 0, 256, + 269, 257, 0, 0, 257, 0, 0, 257, 0, 0, + 0, 0, 0, 267, 267, 0, 0, 0, 0, 0, + 201, 257, 257, 201, 257, 0, 257, 0, 0, 256, + 256, 0, 0, 0, 0, 0, 0, 201, 201, 0, + 201, 0, 201, 0, 267, 267, 208, 0, 0, 208, + 0, 0, 0, 0, 250, 0, 257, 257, 0, 0, + 256, 256, 0, 208, 208, 0, 208, 0, 208, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 257, 257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, + 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, + 251, 251, 251, 251, 251, 0, 0, 251, 251, 0, + 251, 251, 251, 251, 251, 251, 0, 0, 0, 0, + 208, 266, 266, 266, 266, 266, 0, 0, 0, 0, + 0, 266, 266, 266, 266, 266, 266, 269, 269, 269, + 269, 269, 0, 0, 269, 269, 0, 269, 269, 269, + 269, 269, 269, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 142, 0, 0, 267, 0, 141, + 0, 0, 130, 0, 131, 0, 0, 0, 0, 0, + 0, 0, 0, 256, 0, 0, 0, 0, 0, 313, + 0, 250, 250, 250, 250, 250, 0, 0, 250, 250, + 0, 250, 250, 250, 250, 250, 250, 132, 0, 142, + 257, 0, 0, 0, 141, 0, 0, 130, 0, 131, + 83, 0, 0, 0, 0, 0, 201, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, + 0, 0, 208, 0, 132, 133, 142, 0, 0, 0, + 0, 141, 0, 0, 130, 83, 131, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, - 250, 250, 250, 250, 0, 0, 250, 250, 0, 250, - 250, 250, 250, 250, 250, 0, 0, 0, 132, 266, - 142, 0, 0, 0, 0, 141, 0, 132, 130, 142, - 131, 0, 0, 0, 141, 0, 0, 130, 0, 131, - 201, 0, 267, 267, 267, 267, 267, 314, 0, 0, - 0, 0, 267, 267, 267, 267, 267, 267, 256, 256, - 256, 256, 256, 208, 0, 0, 0, 0, 256, 256, - 256, 256, 256, 256, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 0, 257, 257, 257, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 83, 0, 267, 267, 267, 267, 267, 0, + 0, 0, 0, 0, 267, 267, 267, 267, 267, 267, + 256, 256, 256, 256, 256, 0, 0, 0, 0, 0, + 256, 256, 256, 256, 256, 256, 0, 133, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 257, 257, 257, 257, 257, 0, 0, 0, 0, 0, 257, 257, 257, - 257, 257, 257, 0, 0, 0, 0, 0, 0, 0, - 0, 133, 268, 268, 268, 268, 268, 113, 0, 0, - 133, 0, 268, 268, 268, 268, 268, 268, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 0, 142, 0, - 0, 0, 0, 141, 0, 132, 130, 142, 131, 0, + 257, 257, 257, 201, 201, 201, 201, 201, 0, 0, + 0, 0, 0, 201, 201, 201, 201, 201, 201, 179, + 86, 87, 88, 89, 90, 0, 0, 0, 0, 208, + 208, 208, 208, 208, 0, 0, 0, 0, 0, 208, + 208, 208, 208, 208, 208, 10, 132, 0, 142, 0, + 0, 0, 0, 141, 0, 0, 130, 0, 131, 0, + 0, 0, 0, 0, 179, 86, 87, 88, 89, 90, + 0, 0, 137, 0, 132, 0, 142, 0, 0, 0, + 0, 141, 0, 0, 130, 0, 131, 0, 0, 0, + 10, 132, 0, 142, 0, 0, 0, 0, 141, 140, + 0, 130, 309, 131, 194, 136, 0, 0, 0, 0, + 0, 138, 139, 87, 88, 89, 90, 137, 0, 311, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 113, 10, 0, 133, + 0, 0, 0, 0, 140, 0, 0, 0, 0, 83, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 314, 134, 135, 0, 137, 0, 0, 133, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, + 0, 140, 0, 0, 0, 0, 0, 136, 0, 0, + 0, 132, 0, 142, 318, 0, 134, 135, 141, 0, + 0, 130, 0, 131, 0, 0, 0, 0, 128, 0, + 0, 223, 0, 223, 0, 0, 0, 0, 223, 0, + 0, 223, 0, 223, 0, 132, 0, 142, 0, 0, 0, 0, 141, 0, 0, 130, 0, 131, 0, 0, - 0, 129, 0, 0, 0, 0, 266, 266, 266, 266, - 266, 0, 0, 306, 0, 0, 266, 266, 266, 266, - 266, 266, 0, 0, 0, 0, 0, 201, 201, 201, - 201, 201, 0, 0, 83, 0, 0, 201, 201, 201, - 201, 201, 201, 83, 0, 0, 0, 0, 0, 0, - 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, - 208, 208, 208, 208, 208, 208, 0, 0, 0, 133, - 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, - 0, 0, 0, 0, 0, 178, 86, 87, 88, 89, - 90, 0, 0, 0, 178, 86, 87, 88, 89, 90, - 132, 0, 142, 0, 0, 0, 0, 141, 0, 0, - 130, 10, 131, 0, 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 308, 132, - 0, 142, 0, 0, 0, 0, 141, 0, 137, 130, - 0, 131, 223, 0, 223, 0, 0, 137, 0, 223, - 0, 0, 223, 0, 223, 0, 0, 0, 83, 0, - 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, - 0, 136, 0, 0, 194, 0, 0, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 0, 83, 0, 0, - 0, 0, 128, 133, 0, 0, 0, 0, 0, 0, - 223, 128, 223, 138, 139, 87, 88, 89, 90, 0, - 0, 0, 178, 86, 87, 88, 89, 90, 0, 358, - 0, 0, 133, 0, 0, 315, 0, 134, 135, 10, - 0, 0, 0, 0, 0, 223, 134, 135, 10, 0, + 0, 0, 0, 134, 135, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 142, 0, 0, 0, 137, 141, 0, 0, - 130, 0, 131, 0, 0, 137, 0, 0, 0, 0, + 0, 0, 0, 179, 86, 87, 88, 89, 90, 223, + 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 362, 0, 83, 133, 0, 0, 0, 0, 10, + 0, 179, 86, 87, 88, 89, 90, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 179, 86, + 87, 88, 89, 90, 0, 0, 137, 10, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 140, 0, 0, 0, 0, 0, 136, - 0, 0, 140, 0, 0, 0, 0, 0, 136, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 0, 0, 0, 0, 178, 86, 87, - 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 133, 0, 134, 135, 0, 0, 0, - 0, 0, 0, 10, 134, 135, 178, 86, 87, 88, - 89, 90, 0, 0, 0, 0, 0, 0, 0, 223, - 223, 223, 223, 223, 223, 0, 0, 0, 0, 0, - 137, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 140, 0, 137, - 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 0, 140, 0, 0, 0, - 0, 0, 136, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 134, - 135, 0, 0, 0, 0, 0, 223, 178, 86, 87, - 88, 89, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, - 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, - 0, 223, 223, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 195, 137, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 140, 0, 0, - 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, + 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 140, 0, 0, 0, 0, 0, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 140, 0, + 0, 0, 0, 0, 136, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 0, 179, 86, + 87, 88, 89, 90, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 134, 135, 0, 0, 0, 223, 223, + 223, 223, 223, 223, 10, 0, 0, 0, 0, 0, + 134, 135, 179, 86, 87, 88, 89, 90, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, + 0, 137, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 0, 0, 0, 0, 140, 0, + 0, 0, 0, 0, 136, 137, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 0, 0, 0, 0, 223, 128, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 136, 0, + 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, + 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 135, + 223, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 135, ); protected static $yyCheck = array(4, - 61, 62, 63, 157, 41, 60, 122, 44, 71, 41, - 192, 40, 124, 91, 91, 46, 46, 46, 42, 125, - 59, 41, 44, 84, 91, 123, 125, 174, 59, 34, - 35, 44, 44, 123, 125, 40, 260, 98, 44, 100, - 58, 330, 105, 106, 126, 123, 123, 126, 40, 63, - 37, 340, 126, 260, 141, 42, 61, 62, 63, 175, - 47, 122, 91, 37, 69, 70, 71, 44, 42, 43, - 451, 45, 404, 47, 303, 37, 300, 91, 59, 84, - 42, 43, 59, 45, 123, 47, 60, 59, 62, 91, - 272, 456, 97, 98, 40, 100, 304, 44, 44, 281, - 105, 106, 41, 38, 41, 44, 41, 44, 113, 44, - 46, 260, 64, 59, 175, 202, 59, 122, 44, 58, - 59, 123, 276, 58, 59, 186, 61, 41, 63, 63, - 44, 123, 41, 340, 499, 44, 141, 286, 245, 126, - 364, 91, 123, 44, 525, 60, 93, 44, 125, 236, - 59, 123, 126, 485, 93, 46, 93, 91, 93, 94, - 165, 166, 260, 260, 126, 62, 171, 93, 91, 260, - 175, 232, 59, 93, 328, 125, 91, 123, 63, 125, - 123, 186, 260, 260, 93, 103, 125, 369, 286, 124, - 125, 340, 93, 260, 59, 527, 46, 202, 285, 353, - 260, 355, 125, 300, 351, 125, 91, 40, 286, 286, - 128, 44, 130, 131, 132, 133, 134, 135, 257, 137, - 327, 311, 554, 141, 125, 46, 286, 232, 340, 91, - 312, 236, 414, 312, 332, 257, 260, 257, 123, 157, - 490, 491, 260, 261, 257, 257, 251, 252, 253, 331, - 58, 257, 331, 320, 332, 40, 261, 331, 260, 406, - 93, 123, 340, 340, 418, 332, 46, 373, 374, 423, - 188, 46, 190, 340, 373, 374, 300, 59, 528, 461, - 285, 61, 59, 58, 286, 257, 204, 205, 206, 207, + 61, 62, 63, 41, 126, 122, 157, 71, 60, 40, + 46, 41, 193, 175, 44, 46, 125, 124, 42, 125, + 303, 46, 59, 84, 41, 59, 59, 44, 40, 34, + 35, 125, 41, 91, 59, 40, 141, 98, 123, 100, + 37, 105, 106, 58, 457, 42, 43, 246, 45, 63, + 47, 93, 409, 63, 462, 126, 61, 62, 63, 176, + 91, 122, 37, 38, 69, 70, 71, 42, 43, 304, + 45, 59, 47, 260, 260, 97, 44, 91, 91, 84, + 46, 91, 260, 125, 91, 60, 123, 62, 44, 123, + 123, 113, 97, 98, 275, 100, 283, 505, 203, 286, + 105, 106, 41, 284, 41, 44, 41, 44, 113, 44, + 44, 123, 125, 300, 300, 176, 260, 122, 531, 94, + 59, 58, 59, 58, 59, 93, 187, 41, 279, 126, + 44, 330, 237, 37, 491, 123, 141, 93, 42, 43, + 91, 45, 286, 47, 166, 59, 168, 260, 40, 124, + 172, 126, 44, 46, 93, 44, 93, 125, 93, 93, + 165, 166, 340, 168, 59, 187, 260, 172, 61, 125, + 59, 176, 233, 60, 125, 41, 533, 364, 364, 93, + 331, 260, 187, 288, 46, 103, 125, 300, 125, 46, + 125, 125, 373, 355, 44, 37, 340, 91, 203, 61, + 42, 93, 260, 560, 91, 47, 357, 286, 359, 331, + 128, 41, 130, 131, 132, 133, 134, 135, 41, 137, + 257, 44, 126, 141, 257, 91, 311, 340, 233, 123, + 252, 430, 237, 340, 256, 91, 260, 93, 419, 157, + 257, 312, 264, 93, 126, 260, 261, 252, 257, 411, + 46, 256, 64, 260, 261, 262, 263, 264, 265, 264, + 331, 91, 320, 44, 373, 374, 46, 373, 374, 257, + 93, 189, 423, 191, 332, 330, 300, 428, 59, 286, + 402, 403, 340, 288, 126, 340, 467, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 257, 233, 470, 424, 257, 59, - 402, 403, 257, 402, 403, 312, 340, 245, 402, 403, - 280, 281, 282, 283, 284, 285, 44, 287, 312, 421, - 364, 44, 91, 257, 331, 260, 46, 41, 257, 91, - 312, 269, 91, 303, 62, 410, 59, 331, 276, 91, - 278, 61, 37, 38, 33, 59, 35, 42, 43, 331, - 45, 40, 47, 410, 43, 260, 45, 440, 410, 410, - 410, 123, 586, 587, 334, 60, 125, 62, 306, 543, - 308, 420, 310, 311, 40, 60, 314, 315, 260, 93, - 46, 286, 91, 41, 93, 320, 44, 611, 260, 327, - 328, 310, 123, 61, 125, 402, 403, 332, 310, 94, - 58, 59, 91, 41, 286, 340, 400, 401, 402, 403, - 41, 125, 63, 44, 421, 353, 441, 355, 40, 555, - 402, 403, 596, 361, 46, 410, 451, 421, 300, 124, - 41, 126, 370, 44, 39, 93, 125, 126, 41, 421, - 91, 44, 311, 396, 49, 50, 51, 58, 59, 404, - 405, 406, 407, 408, 123, 414, 411, 412, 340, 414, - 415, 416, 417, 418, 419, 490, 491, 125, 340, 33, - 408, 35, 123, 40, 555, 41, 40, 430, 44, 43, - 418, 45, 93, 310, 41, 423, 424, 44, 58, 427, - 91, 260, 261, 262, 263, 264, 265, 91, 260, 260, - 525, 44, 41, 528, 44, 44, 123, 532, 260, 261, - 262, 263, 264, 265, 125, 41, 123, 286, 44, 58, - 59, 58, 283, 41, 286, 286, 44, 91, 123, 260, - 555, 612, 470, 471, 286, 33, 410, 35, 544, 300, - 478, 479, 40, 549, 44, 43, 284, 45, 300, 287, - 44, 632, 93, 93, 93, 286, 61, 44, 300, 301, - 302, 125, 126, 257, 41, 93, 41, 44, 506, 44, - 332, 260, 261, 262, 263, 264, 265, 346, 260, 261, - 518, 58, 59, 58, 59, 125, 125, 612, 561, 562, - 260, 544, 598, 91, 346, 41, 549, 286, 44, 257, - 257, 332, 41, 364, 340, 543, 93, 632, 546, 260, - 548, 617, 58, 59, 40, 588, 93, 312, 93, 44, - 46, 37, 628, 41, 313, 123, 42, 43, 126, 45, - 123, 47, 58, 344, 345, 286, 331, 260, 125, 244, - 300, 301, 302, 125, 582, 598, 257, 93, 125, 40, - 125, 340, 341, 342, 343, 373, 374, 346, 596, 49, - 50, 51, 13, 14, 617, 105, 106, 123, 123, 61, - 58, 360, 361, 362, 363, 628, 365, 366, 367, 125, - 618, 370, 371, 372, 373, 374, 280, 281, 282, 283, - 284, 285, 40, 287, 58, 260, 260, 261, 262, 263, - 264, 265, 260, 123, 40, 400, 401, 402, 403, 303, - 126, 41, 125, 402, 403, 40, 411, 412, 257, 93, - 41, 41, 286, 33, 44, 35, 421, 40, 125, 61, - 40, 40, 40, 43, 91, 45, 123, 41, 340, 59, - 334, 430, 125, 41, 125, 125, 44, 40, 40, 313, - 40, 340, 41, 59, 59, 44, 414, 415, 40, 40, - 58, 59, 260, 261, 262, 263, 264, 265, 59, 41, - 59, 41, 44, 93, 44, 40, 340, 341, 342, 343, - 257, 91, 346, 41, 260, 41, 58, 59, 286, 59, - 91, 59, 61, 361, 340, 93, 360, 361, 362, 363, - 61, 365, 366, 367, 93, 125, 370, 59, 372, 373, - 374, 257, 41, 44, 93, 313, 126, 59, 125, 40, - 123, 93, 44, 93, 37, 38, 125, 125, 364, 42, - 43, 260, 45, 321, 47, 123, 125, 340, 402, 403, - 123, 41, 340, 341, 342, 343, 41, 60, 346, 62, - 340, 41, 125, 125, 125, 125, 59, 371, 125, 40, - 123, 59, 360, 361, 362, 363, 430, 365, 366, 367, - 125, 125, 370, 41, 372, 414, 415, 37, 38, 58, - 40, 41, 42, 43, 44, 45, 125, 47, 41, 123, - 91, 123, 125, 123, 41, 91, 93, 44, 58, 59, - 60, 61, 62, 63, 402, 403, 41, 41, 125, 58, - 257, 58, 59, 126, 125, 91, 91, 91, 37, 38, - 93, 40, 41, 42, 43, 44, 45, 59, 47, 123, - 59, 91, 430, 93, 94, 41, 125, 414, 415, 58, - 59, 125, 61, 62, 63, 91, 93, 59, 41, 41, - 260, 261, 262, 263, 264, 265, 364, 41, 41, 257, - 125, 125, 7, 123, 124, 125, 126, 6, 414, 415, - 77, 102, 91, 350, 93, 94, 286, 123, 125, 280, - 281, 282, 283, 284, 285, 257, 287, 257, 496, 491, - 532, 41, 60, 41, 44, 59, 44, 507, 109, 300, - 301, 302, 303, 313, 123, 124, 125, 126, 58, 59, - 58, 59, 519, 604, 568, 568, 37, 38, 356, 40, - 41, 42, 43, 44, 45, 46, 47, 186, 186, 247, - 340, 341, 342, 343, 285, 202, 346, 58, 59, 60, - 61, 62, 63, 93, 243, 93, 171, 31, -1, -1, - 360, 361, 362, 363, -1, 365, 366, 367, -1, 260, - 370, -1, 372, -1, 260, 261, 262, 263, 264, 265, - 91, -1, 93, 94, -1, 125, -1, 125, -1, 280, - 281, 282, 283, 284, 285, 286, 287, -1, -1, -1, - -1, -1, 402, 403, -1, -1, -1, 257, -1, 312, - 260, -1, 303, 124, 125, 126, -1, -1, 97, 38, - 257, -1, 41, -1, 260, 44, 414, 415, 331, -1, - 430, 91, -1, -1, 113, -1, -1, -1, -1, 58, - 59, 332, 61, -1, 63, -1, -1, -1, 257, -1, - 286, 260, 414, 415, -1, -1, -1, -1, -1, -1, - 310, 311, 312, 123, 300, 301, 302, -1, -1, -1, - 320, -1, -1, -1, 93, 94, -1, -1, -1, -1, - 330, 331, 332, -1, -1, -1, -1, 166, -1, -1, - 340, -1, 171, -1, -1, -1, 332, 400, 401, 402, - 403, 310, 311, 312, -1, 124, 125, 186, 411, 412, - -1, 320, -1, -1, -1, -1, -1, 257, 421, 257, - -1, 330, 331, 332, -1, 280, 281, 282, 283, 284, - 285, 340, 287, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 257, -1, 303, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, - 410, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, 251, 252, 253, -1, -1, 414, 415, -1, - -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, + 228, 229, 230, 231, 232, 312, 234, 33, 257, 35, + 257, 343, 257, 58, 40, 476, 340, 43, 246, 45, + 44, 402, 403, 91, 331, 592, 593, 312, 343, 346, + 364, 44, 59, 257, 125, 37, 38, 260, 62, 44, + 42, 43, 46, 45, 272, 47, 331, 40, 410, 41, + 617, 279, 44, 281, 58, 123, 260, 62, 60, 59, + 62, 123, 410, 260, 410, 91, 58, 59, 37, 38, + 410, 59, 446, 42, 43, 410, 45, 300, 47, 420, + 93, 309, 286, 311, 41, 313, 314, 44, 549, 317, + 318, 60, 94, 62, 41, 402, 403, 44, 60, 125, + 126, 93, 330, 331, 362, 41, 40, 91, 44, 59, + 40, 41, 46, 40, 421, 400, 401, 402, 403, 46, + 312, 496, 497, 320, 126, 310, 411, 412, 332, 357, + 310, 359, 447, 125, 561, 332, 421, 365, 33, 331, + 35, 602, 457, 340, 41, 40, 374, 44, 43, 123, + 45, 125, 61, 39, 410, 63, 41, 126, 311, 534, + 312, 91, 91, 49, 50, 51, 37, 414, 415, 414, + 415, 42, 43, 40, 45, 123, 47, 567, 568, 331, + 91, 496, 497, 91, 41, 413, 310, 44, 58, 60, + 561, 62, 260, 123, 123, 423, 91, 91, 260, 123, + 428, 44, 430, 41, 594, 433, 44, 300, 301, 302, + 402, 403, 123, 471, 41, 123, 531, 44, 286, 534, + 478, 40, 123, 538, 286, 44, 58, 40, 410, 421, + 125, 126, 59, 46, 260, 261, 262, 263, 264, 265, + 59, 41, 123, 91, 44, 58, 561, 618, 476, 477, + 402, 403, 300, 301, 302, 126, 484, 485, 58, 59, + 286, 33, 44, 35, 332, 257, 93, 638, 40, 421, + 332, 43, 340, 45, 44, 123, 260, 261, 262, 263, + 264, 265, 93, 541, 512, 61, 260, 313, 287, 257, + 548, 290, 257, 93, 93, 33, 524, 35, 125, 260, + 261, 559, 40, 618, 123, 43, 125, 45, 344, 345, + 312, 260, 286, 257, 340, 341, 342, 343, 340, 91, + 346, 549, 41, 638, 552, 125, 554, 373, 374, 331, + 260, 260, 590, 44, 360, 361, 362, 363, 41, 365, + 366, 367, 44, 312, 370, 371, 372, 373, 374, 260, + 123, 123, 260, 91, 126, 260, 286, 286, 332, 245, + 588, 619, 331, 13, 14, 260, 261, 262, 263, 264, + 265, 49, 50, 51, 602, 286, 402, 403, 286, 637, + 105, 106, 125, 40, 642, 550, 123, 123, 126, 647, + 555, 286, 61, 40, 58, 40, 624, 41, 400, 401, + 402, 403, 58, 41, 430, 260, 44, 260, 123, 411, + 412, 340, 260, 40, 40, 59, 63, 41, 313, 421, + 58, 59, 414, 415, 125, 93, 41, 40, 125, 340, + 61, 400, 401, 402, 403, 40, 40, 91, 286, 604, + 123, 312, 411, 412, 91, 340, 341, 342, 343, 93, + 41, 346, 421, 125, 125, 93, 340, 257, 623, 125, + 331, 40, 40, 40, 59, 360, 361, 362, 363, 634, + 365, 366, 367, 59, 40, 370, 123, 372, 373, 374, + 40, 125, 340, 59, 40, 260, 41, 125, 260, 261, + 262, 263, 264, 265, 41, 37, 38, 44, 40, 41, + 42, 43, 44, 45, 41, 47, 59, 402, 403, 61, + 361, 58, 59, 61, 286, 340, 58, 59, 60, 61, + 62, 63, 260, 261, 262, 263, 264, 265, 59, 400, + 401, 402, 403, 41, 91, 430, 125, 44, 123, 93, + 59, 313, 125, 40, 44, 340, 93, 364, 286, 91, + 421, 93, 94, 123, 37, 260, 321, 41, 123, 42, + 43, 41, 45, 340, 47, 41, 123, 125, 340, 341, + 342, 343, 59, 371, 346, 313, 125, 60, 125, 62, + 125, 123, 124, 125, 126, 91, 40, 123, 360, 361, + 362, 363, 91, 365, 366, 367, 59, 125, 370, 125, + 372, 41, 340, 341, 342, 343, 58, 125, 346, 41, + 123, 125, 123, 260, 414, 415, 93, 123, 123, 257, + 41, 41, 360, 361, 362, 363, 91, 365, 366, 367, + 402, 403, 370, 41, 372, 257, 44, 125, 257, 286, + 58, 91, 44, 126, 125, 91, 91, 125, 123, 93, + 58, 59, 125, 61, 59, 63, 59, 41, 430, 59, + 41, 41, 41, 41, 402, 403, 364, 125, 125, 37, + 38, 7, 40, 41, 42, 43, 44, 45, 6, 47, + 77, 354, 502, 102, 538, 93, 94, 497, 60, 59, + 58, 59, 430, 61, 62, 63, 109, 513, 610, 525, + 574, 574, 187, 260, 91, 187, 288, 360, 203, 248, + 257, 244, 172, 168, 31, 257, 124, 125, 260, -1, + -1, 41, -1, 91, 44, 93, 94, 37, 38, 286, + 40, 41, 42, 43, 44, 45, 46, 47, 58, 59, + -1, -1, -1, 300, 301, 302, -1, -1, 58, 59, + 60, 61, 62, 63, 260, 123, 124, 125, 126, -1, + -1, 260, 261, 262, 263, 264, 265, -1, 310, 311, + 312, -1, 401, 93, -1, 332, 414, 415, 320, -1, + 286, 91, -1, 93, 94, -1, -1, 286, 330, 331, + 332, -1, -1, -1, 300, 301, 302, -1, 340, 41, + -1, 300, 44, -1, -1, 125, -1, 436, -1, -1, + 260, -1, -1, -1, 124, 125, 126, 59, 280, 281, + 282, 283, 284, 285, -1, 287, 332, -1, -1, 312, + 280, 281, 282, 283, 284, 285, 286, 287, -1, 41, + -1, 303, 44, -1, -1, -1, -1, 346, 331, 257, + -1, 93, -1, 303, -1, -1, 58, 59, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 414, 410, 411, + 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, + 37, 38, 332, 125, 41, 42, 43, 44, 45, 257, + 47, 93, 260, 280, 281, 282, 283, 284, 285, -1, + 287, 58, 59, 60, 61, 62, 63, -1, -1, -1, + -1, -1, -1, 300, 301, 302, 303, 400, 401, 402, + 403, 550, -1, 125, -1, -1, 555, -1, 411, 412, + -1, -1, 41, -1, 91, 44, 93, 94, 421, -1, + -1, -1, 310, 311, 312, -1, -1, 257, -1, 58, + 59, -1, 320, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 330, 331, 332, -1, -1, 124, 125, 126, + 41, -1, 340, 44, -1, 604, -1, -1, -1, -1, + -1, -1, -1, -1, 93, -1, -1, 58, 59, -1, + -1, -1, -1, -1, 623, -1, 404, 405, 406, 407, + 408, -1, 312, -1, -1, 634, 414, 415, 416, 417, + 418, 419, -1, -1, -1, -1, 125, -1, -1, -1, + -1, 331, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 421, 125, 257, -1, -1, 37, 38, + -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 91, + 257, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 420, 421, 91, -1, 93, 94, 37, 38, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 91, -1, -1, + -1, -1, -1, 125, -1, -1, -1, 58, 59, 60, + 61, 62, 63, -1, -1, 124, 125, 126, 257, -1, + -1, -1, -1, -1, -1, 312, -1, -1, -1, -1, + -1, 125, -1, -1, -1, -1, 91, -1, -1, -1, + 91, -1, 93, 94, 331, 91, -1, -1, -1, -1, + -1, 41, -1, 340, 44, -1, 257, -1, -1, 41, + -1, -1, 44, -1, -1, -1, -1, -1, 58, 59, + 125, -1, -1, 124, 125, 126, 58, 59, -1, -1, + -1, -1, 414, 415, 37, 38, -1, -1, 41, 42, + 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, + -1, -1, -1, 93, -1, 58, 59, 60, 61, 62, + 63, 93, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, -1, 414, 415, 416, + 417, 418, 419, 420, 421, 125, -1, -1, 91, -1, + 93, 94, -1, 125, -1, -1, -1, -1, 257, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 280, 281, + 282, 283, 284, 285, -1, 287, -1, -1, -1, -1, + -1, 124, 125, 126, -1, 414, 415, -1, -1, 41, + -1, 303, 44, -1, -1, -1, 280, 281, 282, 283, + 284, 285, -1, 287, 37, 38, 58, 59, 41, 42, + 43, 44, 45, 312, 47, -1, 257, -1, -1, 303, + -1, -1, 334, 414, 415, 58, 59, 60, 61, 62, + -1, -1, 331, -1, -1, 280, 281, 282, 283, 284, + 285, 93, 287, -1, 280, 281, 282, 283, 284, 285, + 334, 287, -1, -1, -1, -1, -1, -1, 303, -1, + 93, 94, -1, -1, -1, -1, -1, 303, -1, -1, + -1, 312, -1, 125, -1, -1, -1, 257, -1, -1, + -1, -1, -1, -1, -1, 257, -1, -1, -1, 334, + 331, 124, 125, 126, -1, -1, -1, -1, 334, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 260, 312, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, - 331, -1, -1, -1, 37, 38, 286, 358, 41, 42, - 43, 44, 45, -1, 47, -1, 41, -1, 257, 44, - 300, 301, 302, -1, -1, 58, 59, 60, 61, 62, - 63, -1, -1, 58, 59, -1, -1, -1, -1, -1, - -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, - 46, 47, 332, -1, 414, 415, 414, 415, 91, -1, - 93, 94, 58, 59, 60, 61, 62, 63, 93, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, 91, 414, 415, 416, 417, 418, 419, 420, - 421, 124, 125, 126, -1, 91, -1, 93, 94, -1, - 125, 37, 38, -1, -1, 41, 42, 43, 44, 45, - 46, 47, -1, -1, 465, -1, 125, -1, -1, -1, - -1, 472, 58, 59, 60, 61, 62, 63, 124, 125, - 126, -1, -1, -1, -1, -1, -1, -1, 37, 38, - 91, -1, 41, 42, 43, 44, 45, 46, 47, 91, - -1, -1, -1, -1, -1, 91, -1, 93, 94, 58, - 59, 60, 61, 62, 63, 404, 405, 406, 407, 408, - -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, -1, 125, 535, -1, -1, -1, 124, 125, - 126, 542, 91, -1, 93, 94, -1, -1, 41, -1, - -1, 44, 553, -1, -1, -1, -1, -1, -1, -1, - -1, 41, -1, -1, 44, 58, 59, -1, -1, -1, - -1, -1, -1, -1, 257, 124, 125, 126, 58, 59, - -1, -1, 257, 584, -1, 37, 38, -1, -1, 41, + -1, -1, 411, 412, 257, 414, 415, 416, 417, 418, + 419, 420, 421, -1, -1, 37, 38, -1, -1, 41, + 42, 43, 44, 45, -1, 47, -1, 41, -1, 41, + 44, -1, 44, -1, -1, -1, 58, 59, 60, 61, + 62, 63, -1, -1, 58, 59, 58, 59, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, 312, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 420, + 421, 93, 94, -1, -1, -1, -1, -1, 331, 93, + -1, 93, -1, 37, 38, -1, 40, 41, 42, 43, + 44, 45, 46, 47, -1, 257, -1, -1, -1, -1, + -1, -1, 124, 125, 126, 91, 60, 61, 62, 63, + -1, 125, -1, 125, 257, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, 415, 41, -1, -1, 44, + -1, 91, 414, 415, -1, -1, -1, 91, -1, -1, + 94, -1, -1, 58, 59, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, 312, + 124, -1, 126, -1, -1, -1, -1, -1, 93, -1, + -1, -1, -1, -1, -1, -1, -1, 330, 331, -1, + -1, -1, -1, -1, 37, 38, -1, 340, 41, 42, + 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, + 125, -1, -1, -1, -1, 58, 59, 60, 61, 62, + 63, -1, -1, 37, 38, -1, 40, -1, 42, 43, + 44, 45, 46, 47, -1, 257, -1, -1, -1, -1, + -1, -1, -1, 257, -1, 257, 60, 61, 62, 63, + 93, 94, 414, 415, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 91, 421, 93, + 94, 124, 125, 126, 91, -1, -1, -1, -1, -1, + 312, -1, -1, -1, 280, 281, 282, 283, 284, 285, + -1, 287, -1, 257, -1, -1, -1, -1, -1, 331, + 124, -1, 126, -1, 300, 301, 302, -1, 304, -1, + 280, 281, 282, 283, 284, 285, -1, 287, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 257, 303, 37, 38, -1, -1, -1, 42, + 43, 44, 45, -1, 47, -1, -1, -1, 312, -1, + -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, + 63, -1, -1, -1, -1, -1, -1, 331, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 91, 421, + 93, 94, 414, 415, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 257, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, - 93, -1, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 257, 613, 93, -1, -1, -1, -1, -1, -1, - -1, 280, 281, 282, 283, 284, 285, -1, 287, 312, - 631, -1, 125, -1, -1, 636, -1, -1, -1, -1, - 641, 93, 94, -1, 303, 125, -1, -1, 331, -1, - -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, - 41, -1, -1, 44, -1, -1, 312, -1, -1, -1, - -1, 257, 124, 125, 126, 334, -1, 58, 59, 280, - 281, 282, 283, 284, 285, 331, 287, -1, 280, 281, - 282, 283, 284, 285, -1, 287, -1, -1, -1, 300, - 301, 302, -1, 304, -1, -1, 91, -1, 257, -1, - -1, 303, 93, -1, -1, -1, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 312, 410, 411, 412, - -1, 414, 415, 416, 417, 418, 419, 420, 421, 414, - 415, -1, 334, -1, 125, 331, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 312, 257, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, -1, 257, -1, -1, - -1, -1, 331, -1, -1, -1, 37, 38, -1, -1, + -1, 124, -1, 126, -1, -1, 58, 59, 60, 61, + 62, 63, -1, -1, -1, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, -1, 312, + -1, 93, 94, 280, 281, 282, 283, 284, 285, -1, + 287, -1, -1, -1, -1, -1, -1, -1, 331, -1, + -1, -1, -1, 300, 301, 302, 303, -1, 312, 414, + 415, -1, 124, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 331, -1, -1, + -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, + 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, + -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, 93, + 94, -1, -1, -1, -1, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, 420, 421, 37, 38, + 124, 125, 41, 42, 43, 44, 45, -1, 47, 312, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, 257, -1, -1, 331, -1, + -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, 58, 59, 60, 61, + 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 312, -1, -1, -1, -1, 124, 125, -1, -1, -1, + -1, 93, 94, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 420, 421, -1, + -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 257, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, 257, -1, 58, 59, 60, - 61, 62, 63, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 62, 63, -1, -1, -1, -1, -1, 400, 401, + -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, 312, 421, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 312, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, 420, 421, 124, 125, 126, 257, -1, 330, 331, - -1, -1, -1, 91, -1, -1, -1, -1, 340, -1, - -1, -1, -1, -1, -1, 280, 281, 282, 283, 284, - 285, -1, 287, -1, 37, 38, -1, 40, 41, 42, - 43, 44, 45, 46, 47, 300, 301, 302, 303, -1, - -1, 414, 415, -1, -1, -1, -1, 60, 61, 62, - 63, -1, -1, -1, 414, 415, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, 91, 411, - 412, 94, 414, 415, 416, 417, 418, 419, -1, 421, - -1, 37, 38, -1, 40, -1, 42, 43, 44, 45, - 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 124, -1, 126, 60, 61, 62, 63, -1, -1, - -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, - -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, - 43, 44, 45, -1, 47, 91, -1, 93, 94, -1, - -1, -1, -1, 414, 415, 58, 59, 60, 61, 62, - 63, 37, 38, -1, -1, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, 124, -1, - 126, 312, 58, 59, 60, 61, 62, 63, -1, -1, - 93, 94, 280, 281, 282, 283, 284, 285, -1, 287, - 331, -1, 37, 38, -1, -1, -1, 42, 43, 44, - 45, -1, 47, -1, -1, 303, -1, 93, 94, -1, - -1, 124, 125, 126, -1, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 257, -1, -1, -1, 124, 125, - -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 124, - 421, 126, -1, -1, -1, -1, -1, -1, -1, 312, + -1, -1, -1, -1, -1, 37, 38, -1, 257, 41, + 42, -1, 44, 124, 125, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, + 62, 63, -1, -1, 37, 38, -1, -1, 41, 42, + 43, 44, 45, -1, 47, 257, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, + 63, 93, 94, 312, -1, -1, 400, 401, -1, -1, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, -1, 421, -1, -1, + 93, 94, 124, 125, -1, -1, -1, -1, -1, -1, + 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, - -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + -1, -1, -1, -1, -1, -1, 257, -1, -1, -1, + -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, + -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, + 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, + -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, + 412, 312, 414, 415, 416, 417, 418, 419, -1, 421, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, 257, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 257, 93, 94, -1, 331, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, 420, 421, 312, - -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 331, -1, - -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, -1, 312, -1, -1, + -1, 37, 38, -1, -1, 41, 42, 43, -1, 45, + -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, + 312, -1, 93, 94, 60, 61, 62, 63, -1, 400, + 401, -1, -1, 404, 405, 406, 407, 408, -1, 331, + 411, 412, -1, 414, 415, 416, 417, 418, 419, 312, + 421, -1, -1, 124, 125, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 331, 400, 401, 402, - 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, + 43, 44, 45, -1, 47, -1, -1, -1, 124, -1, + 126, -1, -1, -1, -1, 58, 59, 60, 61, 62, + 63, -1, -1, -1, -1, -1, -1, -1, 400, 401, + -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, + 93, 94, -1, -1, -1, -1, -1, 400, 401, -1, + -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, -1, - -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, 257, -1, -1, -1, + -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, + -1, 47, -1, -1, -1, -1, 257, -1, -1, -1, + -1, -1, 58, -1, 60, 61, 62, 63, 37, 38, + -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, 410, 411, 412, -1, 414, - 415, 416, 417, 418, 419, 420, 421, 37, 38, -1, - -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, - -1, 312, -1, -1, -1, -1, -1, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, - 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, 93, 94, 58, 59, 60, 61, 62, - 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, - -1, 47, -1, -1, 124, 125, -1, -1, -1, -1, - 93, 94, 58, 59, 60, 61, 62, 63, -1, 400, + 59, 60, 61, 62, 63, 37, 38, -1, 94, 41, + 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, + 62, 63, -1, -1, -1, 94, -1, -1, 124, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + -1, -1, 94, -1, -1, 124, -1, 126, -1, -1, + -1, -1, -1, -1, 257, 331, -1, -1, -1, -1, + -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, + -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, + -1, -1, 58, 59, -1, 61, -1, 63, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, - 421, 124, 125, -1, -1, 37, 38, 93, 94, 41, - 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 63, -1, -1, -1, -1, -1, -1, 124, 125, - -1, -1, 37, 38, -1, -1, 41, 42, -1, 44, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 93, 94, 58, 59, 60, 61, 62, 63, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, - 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, - -1, -1, 124, 125, -1, -1, -1, 257, 93, 94, - 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, - -1, 41, 42, 43, 44, 45, -1, 47, -1, 124, - 125, -1, -1, -1, 257, 93, 94, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, - -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, - -1, 257, -1, 93, 94, -1, 37, 38, -1, -1, - -1, 42, 43, -1, 45, -1, 47, -1, -1, 312, - -1, -1, -1, -1, -1, -1, -1, 58, -1, 60, - 61, 62, 63, -1, 124, 125, -1, -1, -1, -1, + 421, -1, -1, -1, -1, -1, -1, 93, 94, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, -1, 421, -1, -1, 124, 125, + 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, 312, -1, -1, -1, - -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, - 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, 257, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, - 312, 404, 405, 406, 407, 408, -1, -1, 411, 412, - -1, 414, 415, 416, 417, 418, 419, -1, 421, 257, + -1, 404, 405, 406, 407, 408, 312, 94, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, -1, + -1, -1, -1, -1, -1, 331, -1, -1, -1, -1, + -1, -1, -1, 312, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, -1, 312, 404, 405, + -1, -1, 331, -1, -1, -1, -1, -1, -1, -1, + 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, + -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, 331, 257, 37, 38, - -1, -1, 41, 42, 43, -1, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, 61, 62, 63, -1, -1, -1, 400, 401, - -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, - 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, - -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, 124, 421, 126, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, - 408, 312, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, - 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 421, 37, 38, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 94, - 421, 37, 38, -1, -1, 41, 42, 43, -1, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, -1, 124, - -1, 126, -1, -1, -1, -1, -1, -1, -1, 37, - 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, - -1, -1, -1, 312, -1, -1, -1, -1, 94, -1, - -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, 331, -1, -1, -1, -1, -1, -1, 37, - 38, -1, -1, 41, 42, 43, -1, 45, 124, 47, - 126, -1, -1, -1, -1, -1, 94, -1, -1, -1, - -1, -1, 60, 61, 62, 63, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, - -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, + 416, 417, 418, 419, -1, 421, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, -1, 124, -1, 126, -1, - -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, - 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 37, 38, -1, -1, 41, 42, 43, - -1, 45, -1, 47, -1, -1, -1, 312, -1, -1, - -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, - -1, -1, -1, 94, -1, -1, 331, -1, -1, -1, - -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, - -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, - 94, -1, -1, 124, -1, 126, 60, 61, 62, 63, - -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + 419, -1, 421, -1, -1, -1, -1, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, + 37, 38, -1, -1, 41, 42, 43, -1, 45, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, 61, 62, 63, 37, 38, -1, + -1, 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 124, -1, 126, -1, -1, 331, -1, -1, -1, -1, - 94, -1, -1, -1, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 312, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 421, -1, -1, -1, - 124, -1, 126, 331, -1, -1, -1, -1, -1, -1, + 60, 61, 62, 63, -1, 312, -1, 94, 404, 405, + 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, + 416, 417, 418, 419, 331, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 94, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 312, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 331, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 312, -1, 411, 412, -1, 414, 415, 416, 417, - 418, 419, -1, 421, -1, -1, -1, -1, -1, -1, - 331, -1, -1, -1, -1, 37, 38, -1, 312, 41, - 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 331, 60, 61, - 62, 63, 37, 38, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, 312, -1, - -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, - -1, -1, 94, -1, -1, -1, -1, 331, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 94, - 421, -1, 124, -1, 126, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, -1, 421, -1, 124, - -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - 414, 415, 416, 417, 418, 419, -1, 421, 37, 38, - -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - -1, 60, 61, 62, 63, 37, 38, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, -1, 421, 37, 38, -1, -1, 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, - 62, 63, -1, 37, 38, 94, -1, -1, 42, 43, - -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, - -1, -1, 94, -1, -1, 124, -1, 126, -1, -1, + 62, 63, 37, 38, -1, -1, 41, 42, 43, -1, + 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, 61, 62, 63, 37, + 38, -1, 94, 41, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, 61, 62, 63, -1, -1, -1, 94, + -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 94, -1, 124, -1, 126, -1, -1, -1, -1, -1, - 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, - 124, -1, 126, -1, -1, -1, -1, 312, -1, -1, + -1, -1, -1, -1, -1, 312, 94, -1, -1, 124, + -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 331, -1, -1, -1, -1, -1, + -1, -1, 312, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, - -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, - 412, -1, 414, 415, 416, 417, 418, 419, 94, 421, - -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 421, -1, 124, -1, - 126, -1, -1, -1, -1, -1, -1, 33, -1, 35, - -1, -1, -1, 312, 40, -1, -1, 43, -1, 45, - -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, - -1, 47, 331, -1, 60, -1, -1, 37, -1, -1, - 312, -1, 42, 43, 60, 45, 62, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, - 60, -1, 62, -1, -1, 91, -1, -1, 312, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, - -1, -1, -1, -1, -1, -1, -1, 331, -1, -1, + -1, 331, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, -1, 421, -1, 94, -1, -1, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, -1, -1, -1, -1, 124, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, + -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, + 312, -1, -1, -1, -1, -1, -1, -1, 58, -1, + 60, 61, 62, 63, -1, -1, -1, -1, -1, 331, + -1, -1, -1, -1, 37, 38, -1, 312, -1, 42, + 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 94, -1, 331, 60, 61, 62, + 63, -1, -1, -1, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 126, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 126, -1, 411, 412, -1, 414, 415, 416, 417, 418, - 419, -1, 421, -1, -1, -1, 126, -1, 400, 401, + -1, -1, -1, 331, 124, -1, 126, -1, -1, -1, + -1, 94, -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, 421, - -1, -1, -1, -1, -1, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, - -1, 415, 416, 417, 418, 419, -1, 421, -1, -1, - -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, - 41, 42, 43, 44, 45, 331, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, - 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 260, 261, 262, 263, 264, 265, - -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, - -1, 47, 93, 94, -1, -1, -1, -1, -1, -1, - 286, -1, 58, 59, 60, 61, 62, 63, -1, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 124, 125, 411, 412, 313, -1, -1, - 416, 417, 418, 419, -1, 421, 312, 93, 94, -1, - -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, - -1, 47, 312, -1, 340, 331, -1, -1, -1, -1, - 346, -1, 58, 59, 60, 61, 62, 63, 124, 125, - -1, 331, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 367, 38, -1, -1, 41, -1, 43, 44, 45, - -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, - -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, - -1, -1, -1, -1, -1, 401, 402, 403, -1, -1, - -1, -1, -1, -1, 400, 401, 402, 403, 124, 125, - -1, -1, -1, -1, -1, 411, 412, 93, 94, -1, - 400, 401, 402, 403, -1, 421, -1, -1, -1, -1, - -1, 411, 412, -1, -1, -1, 257, 38, -1, -1, - 41, 421, 43, 44, 45, -1, -1, -1, 124, 125, - -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, - 61, 62, 63, 38, -1, -1, 41, -1, -1, 44, + -1, 124, -1, 126, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, + 415, 416, 417, 418, 419, -1, 421, -1, -1, -1, + -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, -1, 421, 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 257, -1, 58, 59, -1, 61, -1, 63, -1, - -1, 38, 93, 94, 41, -1, -1, 44, -1, -1, + -1, -1, -1, 331, -1, 37, 38, -1, -1, -1, + 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, + 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, + 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 94, 60, 61, 62, 63, -1, -1, -1, + -1, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 312, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 124, 421, 126, -1, -1, 94, -1, -1, + -1, 331, -1, -1, -1, -1, -1, -1, -1, -1, + 37, 38, -1, -1, 41, 42, 43, 44, 45, 312, + 47, -1, -1, -1, -1, -1, -1, 124, -1, 126, + -1, 58, 59, 60, 61, 62, 63, -1, 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, -1, 61, -1, 63, -1, 93, 94, - -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, - -1, 257, -1, -1, -1, -1, 93, 94, -1, 124, - 125, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 124, 125, 400, - 401, 257, -1, 404, 405, 406, 407, 408, 93, 94, - 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, + -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, + -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, + -1, 421, -1, -1, -1, -1, -1, 124, 125, -1, + -1, -1, -1, -1, -1, -1, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 421, 37, + 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, - 125, -1, -1, -1, 400, 401, -1, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 257, -1, 38, -1, - -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, + 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + 312, -1, -1, -1, -1, 93, 94, 58, 59, 60, + 61, 62, 63, -1, -1, -1, -1, -1, -1, 331, + -1, -1, -1, -1, 38, -1, -1, 41, -1, 43, + 44, 45, -1, -1, -1, 312, 124, 125, -1, -1, + -1, -1, 93, 94, 58, 59, 60, 61, 62, 63, + 257, -1, -1, -1, 331, -1, -1, -1, -1, -1, + -1, 38, -1, -1, 41, -1, 43, 44, 45, -1, + -1, -1, -1, 124, 125, -1, -1, -1, -1, 93, + 94, 58, 59, 60, 61, 62, 63, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, -1, 415, 416, 417, 418, 419, -1, 421, + 124, 125, -1, -1, -1, -1, 93, 94, -1, -1, + -1, -1, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, -1, -1, 416, + 417, 418, 419, -1, 421, -1, -1, 124, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, + -1, 41, -1, -1, 44, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - -1, 61, 257, 63, 400, 401, -1, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, - 257, -1, -1, 93, 94, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, - 406, 407, 408, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 124, 125, -1, -1, -1, -1, - -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, + -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, + 407, 408, -1, -1, 411, 412, 257, 414, 415, 416, + 417, 418, 419, 93, 94, -1, -1, 38, -1, -1, + 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, + 61, -1, 63, 257, 124, 125, 38, -1, -1, 41, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, + -1, 63, 93, 94, -1, -1, -1, -1, -1, -1, + 257, -1, -1, -1, -1, 38, -1, -1, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 93, 94, 124, 125, 58, 59, -1, 61, -1, + 63, -1, 400, 401, -1, -1, 404, 405, 406, 407, + 408, -1, -1, 411, 412, -1, 414, 415, 416, 417, + 418, 419, 124, 125, -1, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, -1, -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, 407, 408, -1, -1, - 411, 412, -1, 414, 415, 416, 417, 418, 419, 93, - 94, -1, -1, -1, -1, -1, -1, -1, -1, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, - 124, 125, -1, -1, -1, -1, -1, 404, 405, 406, - 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, - 417, 418, 419, 38, -1, -1, 41, 257, -1, 44, + 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, + -1, 124, 125, -1, -1, -1, -1, 257, -1, -1, + -1, -1, -1, -1, -1, -1, 400, 401, -1, -1, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, -1, 61, -1, 63, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, 38, -1, -1, 41, - -1, -1, 44, -1, -1, -1, -1, -1, 93, 94, - -1, -1, 38, -1, -1, 41, 58, 59, 44, 61, - -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, -1, 61, -1, 63, -1, 124, - 125, 38, -1, -1, 41, -1, -1, 44, -1, -1, - -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, 257, 61, -1, 63, 93, 94, 41, - -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 124, 125, -1, -1, 58, 59, -1, 61, - -1, 63, -1, -1, -1, -1, 93, 94, 124, 125, + -1, -1, -1, 400, 401, -1, -1, 404, 405, 406, + 407, 408, -1, -1, 411, 412, 257, 414, 415, 416, + 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, + 44, -1, -1, -1, -1, 257, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, -1, 61, 41, 63, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 38, -1, -1, 41, 58, 59, 44, 61, -1, + 63, -1, -1, -1, 257, -1, -1, -1, -1, 93, + 94, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, - -1, 411, 412, -1, 414, 415, 416, 417, 418, 419, - -1, 93, 94, 41, -1, -1, 44, 124, 125, -1, + 93, 411, 412, -1, 414, 415, 416, 417, 418, 419, + 124, 125, -1, -1, -1, 38, 93, 94, 41, -1, + -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 124, 125, -1, -1, 58, 59, -1, 61, -1, + 63, -1, -1, -1, -1, -1, -1, 124, 125, -1, + -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, + 411, 412, -1, 414, 415, 416, 417, 418, 419, -1, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 404, 405, 406, 407, 408, -1, -1, 411, + 412, -1, 414, 415, 416, 417, 418, 419, -1, -1, + -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, -1, 61, 41, 63, -1, 44, -1, -1, - -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, - -1, 58, 59, -1, 61, -1, 63, 41, -1, -1, - 44, -1, 257, -1, -1, 93, -1, -1, -1, -1, + -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, -1, 38, -1, + -1, 41, -1, 257, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 38, -1, -1, 41, 58, 59, + 44, 61, -1, 63, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, - -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, - 404, 405, 406, 407, 408, 257, -1, 411, 412, 93, - 414, 415, 416, 417, 418, 419, -1, -1, 125, -1, - -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, - 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 257, 38, -1, -1, 41, -1, -1, 44, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, + 41, 58, 59, 44, 61, -1, 63, -1, -1, 93, + 94, -1, -1, -1, -1, -1, -1, 58, 59, -1, + 61, -1, 63, -1, 124, 125, 41, -1, -1, 44, + -1, -1, -1, -1, 257, -1, 93, 94, -1, -1, + 124, 125, -1, 58, 59, -1, 61, -1, 63, -1, + -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, + 404, 405, 406, 407, 408, -1, -1, 411, 412, -1, + 414, 415, 416, 417, 418, 419, -1, -1, -1, -1, + 125, 404, 405, 406, 407, 408, -1, -1, -1, -1, + -1, 414, 415, 416, 417, 418, 419, 404, 405, 406, + 407, 408, -1, -1, 411, 412, -1, 414, 415, 416, + 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, -1, 35, -1, -1, 257, -1, 40, + -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, + -1, -1, -1, 257, -1, -1, -1, -1, -1, 60, + -1, 404, 405, 406, 407, 408, -1, -1, 411, 412, + -1, 414, 415, 416, 417, 418, 419, 33, -1, 35, + 257, -1, -1, -1, 40, -1, -1, 43, -1, 45, + 91, -1, -1, -1, -1, -1, 257, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, -1, -1, -1, -1, + -1, -1, 257, -1, 33, 126, 35, -1, -1, -1, + -1, 40, -1, -1, 43, 91, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 404, - 405, 406, 407, 408, -1, -1, 411, 412, -1, 414, - 415, 416, 417, 418, 419, -1, -1, -1, 33, 257, - 35, -1, -1, -1, -1, 40, -1, 33, 43, 35, - 45, -1, -1, -1, 40, -1, -1, 43, -1, 45, - 257, -1, 404, 405, 406, 407, 408, 62, -1, -1, - -1, -1, 414, 415, 416, 417, 418, 419, 404, 405, - 406, 407, 408, 257, -1, -1, -1, -1, 414, 415, - 416, 417, 418, 419, -1, -1, 91, -1, -1, -1, - -1, -1, -1, -1, -1, 91, -1, 404, 405, 406, + 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 91, -1, 404, 405, 406, 407, 408, -1, + -1, -1, -1, -1, 414, 415, 416, 417, 418, 419, + 404, 405, 406, 407, 408, -1, -1, -1, -1, -1, + 414, 415, 416, 417, 418, 419, -1, 126, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 404, 405, 406, 407, 408, -1, -1, -1, -1, -1, 414, 415, 416, - 417, 418, 419, -1, -1, -1, -1, -1, -1, -1, - -1, 126, 404, 405, 406, 407, 408, 123, -1, -1, - 126, -1, 414, 415, 416, 417, 418, 419, -1, -1, - -1, -1, -1, -1, -1, -1, 33, -1, 35, -1, - -1, -1, -1, 40, -1, 33, 43, 35, 45, -1, + 417, 418, 419, 404, 405, 406, 407, 408, -1, -1, + -1, -1, -1, 414, 415, 416, 417, 418, 419, 260, + 261, 262, 263, 264, 265, -1, -1, -1, -1, 404, + 405, 406, 407, 408, -1, -1, -1, -1, -1, 414, + 415, 416, 417, 418, 419, 286, 33, -1, 35, -1, + -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, + -1, -1, -1, -1, 260, 261, 262, 263, 264, 265, + -1, -1, 313, -1, 33, -1, 35, -1, -1, -1, + -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, + 286, 33, -1, 35, -1, -1, -1, -1, 40, 340, + -1, 43, 61, 45, 91, 346, -1, -1, -1, -1, + -1, 260, 261, 262, 263, 264, 265, 313, -1, 61, + -1, -1, -1, -1, -1, -1, 367, -1, -1, -1, + -1, -1, 91, -1, -1, -1, 123, 286, -1, 126, + -1, -1, -1, -1, 340, -1, -1, -1, -1, 91, + 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 401, 402, 403, -1, 313, -1, -1, 126, -1, -1, + -1, 367, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 340, -1, -1, -1, -1, -1, 346, -1, -1, + -1, 33, -1, 35, 400, -1, 402, 403, 40, -1, + -1, 43, -1, 45, -1, -1, -1, -1, 367, -1, + -1, 33, -1, 35, -1, -1, -1, -1, 40, -1, + -1, 43, -1, 45, -1, 33, -1, 35, -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, - -1, 58, -1, -1, -1, -1, 404, 405, 406, 407, - 408, -1, -1, 61, -1, -1, 414, 415, 416, 417, - 418, 419, -1, -1, -1, -1, -1, 404, 405, 406, - 407, 408, -1, -1, 91, -1, -1, 414, 415, 416, - 417, 418, 419, 91, -1, -1, -1, -1, -1, -1, - 404, 405, 406, 407, 408, -1, -1, -1, -1, -1, - 414, 415, 416, 417, 418, 419, -1, -1, -1, 126, - -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 260, 261, 262, 263, 264, - 265, -1, -1, -1, 260, 261, 262, 263, 264, 265, - 33, -1, 35, -1, -1, -1, -1, 40, -1, -1, - 43, 286, 45, -1, -1, -1, -1, -1, -1, -1, - 286, -1, -1, -1, -1, -1, -1, -1, 61, 33, - -1, 35, -1, -1, -1, -1, 40, -1, 313, 43, - -1, 45, 33, -1, 35, -1, -1, 313, -1, 40, - -1, -1, 43, -1, 45, -1, -1, -1, 91, -1, - -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, - -1, 346, -1, -1, 340, -1, -1, -1, -1, -1, - 346, -1, -1, -1, -1, -1, -1, 91, -1, -1, - -1, -1, 367, 126, -1, -1, -1, -1, -1, -1, - 91, 367, 93, 260, 261, 262, 263, 264, 265, -1, - -1, -1, 260, 261, 262, 263, 264, 265, -1, 123, - -1, -1, 126, -1, -1, 400, -1, 402, 403, 286, - -1, -1, -1, -1, -1, 126, 402, 403, 286, -1, + -1, -1, -1, 402, 403, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 33, -1, 35, -1, -1, -1, 313, 40, -1, -1, - 43, -1, 45, -1, -1, 313, -1, -1, -1, -1, + -1, -1, -1, 260, 261, 262, 263, 264, 265, 91, + -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 91, 126, -1, -1, -1, -1, 286, + -1, 260, 261, 262, 263, 264, 265, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, 260, 261, + 262, 263, 264, 265, -1, -1, 313, 286, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 340, -1, -1, -1, -1, -1, 346, - -1, -1, 340, -1, -1, -1, -1, -1, 346, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, - 367, -1, -1, -1, -1, -1, -1, -1, -1, 367, - -1, -1, -1, -1, -1, -1, -1, 260, 261, 262, - 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, -1, 402, 403, -1, -1, -1, - -1, -1, -1, 286, 402, 403, 260, 261, 262, 263, - 264, 265, -1, -1, -1, -1, -1, -1, -1, 260, - 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, - 313, -1, 286, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 286, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 340, -1, 313, - -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, - -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, 340, -1, -1, -1, - -1, -1, 346, -1, -1, -1, -1, -1, -1, 340, - -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, - -1, -1, -1, 367, -1, -1, -1, -1, -1, 402, - 403, -1, -1, -1, -1, -1, 367, 260, 261, 262, - 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 402, 403, - -1, -1, -1, 286, -1, -1, -1, -1, -1, -1, - -1, 402, 403, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 313, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, + -1, -1, -1, 340, 313, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, - -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 367, -1, -1, -1, -1, -1, + -1, 313, -1, -1, -1, -1, -1, -1, -1, -1, + 367, 340, -1, -1, -1, -1, -1, 346, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, + -1, -1, -1, -1, 346, -1, -1, -1, 367, -1, + -1, -1, -1, -1, -1, 402, 403, -1, -1, -1, + -1, -1, -1, -1, -1, 367, -1, -1, 260, 261, + 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 402, 403, -1, -1, -1, 260, 261, + 262, 263, 264, 265, 286, -1, -1, -1, -1, -1, + 402, 403, 260, 261, 262, 263, 264, 265, -1, -1, + -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, + -1, 313, -1, -1, -1, -1, -1, -1, 286, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 313, -1, -1, -1, -1, -1, -1, 340, -1, + -1, -1, -1, -1, 346, 313, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, + -1, -1, -1, -1, 346, 367, -1, -1, -1, -1, + -1, -1, 340, -1, -1, -1, -1, -1, 346, -1, + -1, -1, -1, -1, -1, 367, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 367, + 402, 403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 402, - 403, + 402, 403, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 402, 403, ); protected static $yyFinal= 2; protected static $yyName= array( @@ -3019,56 +3019,59 @@ public function yyparse($yyLex) { { $yyVal= array($yyVals[0+$yyTop]); } break; case 310: #line 1083 "src/main/jay/grammars/xp.jay" - { $yyVal= array_merge($yyVals[-2+$yyTop], array($yyVals[0+$yyTop])); } break; + { $yyVal= array($yyVals[-1+$yyTop]); } break; - case 311: #line 1087 "src/main/jay/grammars/xp.jay" - { $yyVal= new TypeName('->'.$yyVals[-1+$yyTop]->compoundName(), null); } break; + case 311: #line 1084 "src/main/jay/grammars/xp.jay" + { $yyVal= array_merge($yyVals[-3+$yyTop], array($yyVals[-1+$yyTop])); } break; case 312: #line 1088 "src/main/jay/grammars/xp.jay" + { $yyVal= new TypeName('->'.$yyVals[-1+$yyTop]->compoundName(), null); } break; + + case 313: #line 1089 "src/main/jay/grammars/xp.jay" { $yyVal= new TypeName('->'.$yyVals[-1+$yyTop]->compoundName(), $yyVals[-3+$yyTop]); } break; - case 313: #line 1092 "src/main/jay/grammars/xp.jay" + case 314: #line 1093 "src/main/jay/grammars/xp.jay" { $yyVal= array($yyVals[0+$yyTop]); } break; - case 314: #line 1093 "src/main/jay/grammars/xp.jay" + case 315: #line 1094 "src/main/jay/grammars/xp.jay" { $yyVal= array_merge(array($yyVals[-2+$yyTop]), $yyVals[0+$yyTop]); } break; - case 315: #line 1099 "src/main/jay/grammars/xp.jay" + case 316: #line 1100 "src/main/jay/grammars/xp.jay" { $yyVal= 0; } break; - case 316: #line 1100 "src/main/jay/grammars/xp.jay" + case 317: #line 1101 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[0+$yyTop]; } break; - case 317: #line 1104 "src/main/jay/grammars/xp.jay" + case 318: #line 1105 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[0+$yyTop]; } break; - case 318: #line 1105 "src/main/jay/grammars/xp.jay" + case 319: #line 1106 "src/main/jay/grammars/xp.jay" { $yyVal= $yyVals[-1+$yyTop] | $yyVals[0+$yyTop]; } break; - case 319: #line 1109 "src/main/jay/grammars/xp.jay" + case 320: #line 1110 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PUBLIC; } break; - case 320: #line 1110 "src/main/jay/grammars/xp.jay" + case 321: #line 1111 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PROTECTED; } break; - case 321: #line 1111 "src/main/jay/grammars/xp.jay" + case 322: #line 1112 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PRIVATE; } break; - case 322: #line 1112 "src/main/jay/grammars/xp.jay" + case 323: #line 1113 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_PACKAGE; } break; - case 323: #line 1113 "src/main/jay/grammars/xp.jay" + case 324: #line 1114 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_STATIC; } break; - case 324: #line 1114 "src/main/jay/grammars/xp.jay" + case 325: #line 1115 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_ABSTRACT; } break; - case 325: #line 1115 "src/main/jay/grammars/xp.jay" + case 326: #line 1116 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_FINAL; } break; - case 326: #line 1116 "src/main/jay/grammars/xp.jay" + case 327: #line 1117 "src/main/jay/grammars/xp.jay" { $yyVal= MODIFIER_INLINE; } break; -#line 3072 "-" +#line 3075 "-" } $yyTop-= self::$yyLen[$yyN]; diff --git a/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php b/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php index 80d3f595c..d2cfe07b8 100644 --- a/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php +++ b/src/test/php/net/xp_lang/tests/syntax/xp/MethodDeclarationTest.class.php @@ -296,7 +296,7 @@ public function groupingMethod() { 'body' => array(), 'extension' => null )), $this->parse( - 'public {Map, string -> int} grouping() { }' + 'public {(Map, string) -> int} grouping() { }' )); } }