Changeset 2715 for trunk/NEMOGCM/EXTERNAL/AGRIF/LIB/fortran.tab.c
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/EXTERNAL/AGRIF/LIB/fortran.tab.c
r2528 r2715 1 #ifndef lint 2 static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; 3 #endif 4 #define YYBYACC 1 5 #define YYMAJOR 1 6 #define YYMINOR 9 7 #define yyclearin (yychar=(-1)) 8 #define yyerrok (yyerrflag=0) 9 #define YYRECOVERING (yyerrflag!=0) 1 /* A Bison parser, made by GNU Bison 2.3. */ 2 3 /* Skeleton implementation for Bison's Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 6 Free Software Foundation, Inc. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2, or (at your option) 11 any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 Boston, MA 02110-1301, USA. */ 22 23 /* As a special exception, you may create a larger work that contains 24 part or all of the Bison parser skeleton and distribute that work 25 under terms of your choice, so long as that work isn't itself a 26 parser generator using the skeleton or a modified version thereof 27 as a parser skeleton. Alternatively, if you modify or redistribute 28 the parser skeleton itself, you may (at your option) remove this 29 special exception, which will cause the skeleton and the resulting 30 Bison output files to be licensed under the GNU General Public 31 License without this special exception. 32 33 This special exception was added by the Free Software Foundation in 34 version 2.2 of Bison. */ 35 36 /* C LALR(1) parser skeleton written by Richard Stallman, by 37 simplifying the original so-called "semantic" parser. */ 38 39 /* All symbols defined below should begin with yy or YY, to avoid 40 infringing on user name space. This should be done even for local 41 variables, as they might otherwise be expanded by user macros. 42 There are some unavoidable exceptions within include files to 43 define necessary library symbols; they are noted "INFRINGES ON 44 USER NAME SPACE" below. */ 45 46 /* Identify Bison output. */ 47 #define YYBISON 1 48 49 /* Bison version. */ 50 #define YYBISON_VERSION "2.3" 51 52 /* Skeleton name. */ 53 #define YYSKELETON_NAME "yacc.c" 54 55 /* Pure parsers. */ 56 #define YYPURE 0 57 58 /* Using locations. */ 59 #define YYLSP_NEEDED 0 60 61 /* Substitute the variable and function names. */ 10 62 #define yyparse fortranparse 11 63 #define yylex fortranlex 12 64 #define yyerror fortranerror 13 #define yychar fortranchar14 #define yyval fortranval15 65 #define yylval fortranlval 66 #define yychar fortranchar 16 67 #define yydebug fortrandebug 17 68 #define yynerrs fortrannerrs 18 #define yyerrflag fortranerrflag 19 #define yyss fortranss 20 #define yyssp fortranssp 21 #define yyvs fortranvs 22 #define yyvsp fortranvsp 23 #define yylhs fortranlhs 24 #define yylen fortranlen 25 #define yydefred fortrandefred 26 #define yydgoto fortrandgoto 27 #define yysindex fortransindex 28 #define yyrindex fortranrindex 29 #define yygindex fortrangindex 30 #define yytable fortrantable 31 #define yycheck fortrancheck 32 #define yyname fortranname 33 #define yyrule fortranrule 34 #define YYPREFIX "fortran" 69 70 71 /* Tokens. */ 72 #ifndef YYTOKENTYPE 73 # define YYTOKENTYPE 74 /* Put the tokens into the symbol table, so that GDB and other debuggers 75 know about them. */ 76 enum yytokentype { 77 TOK_BINARY_OP = 258, 78 TOK_NEQV = 259, 79 TOK_EQV = 260, 80 TOK_XOR = 261, 81 TOK_OR = 262, 82 TOK_AND = 263, 83 TOK_NOT = 264, 84 TOK_NE = 265, 85 TOK_EQ = 266, 86 TOK_GE = 267, 87 TOK_LE = 268, 88 TOK_GT = 269, 89 TOK_LT = 270, 90 TOK_UNARY_OP = 271, 91 TOK_DSLASH = 272, 92 TOK_SLASH = 273, 93 TOK_DASTER = 274, 94 TOK_SEP = 275, 95 TOK_SEMICOLON = 276, 96 TOK_NEXTLINE = 277, 97 TOK_PARAMETER = 278, 98 TOK_RESULT = 279, 99 TOK_ONLY = 280, 100 TOK_INCLUDE = 281, 101 TOK_SUBROUTINE = 282, 102 TOK_PROGRAM = 283, 103 TOK_FUNCTION = 284, 104 TOK_OMP = 285, 105 TOK_DOLLAR = 286, 106 TOK_FORMAT = 287, 107 TOK_MAX = 288, 108 TOK_TANH = 289, 109 TOK_WHERE = 290, 110 TOK_ELSEWHERE = 291, 111 TOK_ENDWHERE = 292, 112 TOK_MAXVAL = 293, 113 TOK_TRIM = 294, 114 TOK_SUM = 295, 115 TOK_SQRT = 296, 116 TOK_CASE = 297, 117 TOK_SELECTCASE = 298, 118 TOK_FILE = 299, 119 TOK_END = 300, 120 TOK_ERR = 301, 121 TOK_DONOTTREAT = 302, 122 TOK_ENDDONOTTREAT = 303, 123 TOK_EXIST = 304, 124 TOK_MIN = 305, 125 TOK_FLOAT = 306, 126 TOK_EXP = 307, 127 TOK_COS = 308, 128 TOK_COSH = 309, 129 TOK_ACOS = 310, 130 TOK_NINT = 311, 131 TOK_CYCLE = 312, 132 TOK_SIN = 313, 133 TOK_SINH = 314, 134 TOK_ASIN = 315, 135 TOK_EQUIVALENCE = 316, 136 TOK_BACKSPACE = 317, 137 TOK_LOG = 318, 138 TOK_TAN = 319, 139 TOK_ATAN = 320, 140 TOK_RECURSIVE = 321, 141 TOK_ABS = 322, 142 TOK_MOD = 323, 143 TOK_SIGN = 324, 144 TOK_MINLOC = 325, 145 TOK_MAXLOC = 326, 146 TOK_EXIT = 327, 147 TOK_MINVAL = 328, 148 TOK_PUBLIC = 329, 149 TOK_PRIVATE = 330, 150 TOK_ALLOCATABLE = 331, 151 TOK_RETURN = 332, 152 TOK_THEN = 333, 153 TOK_ELSEIF = 334, 154 TOK_ELSE = 335, 155 TOK_ENDIF = 336, 156 TOK_PRINT = 337, 157 TOK_PLAINGOTO = 338, 158 TOK_CONSTRUCTID = 339, 159 TOK_LOGICALIF = 340, 160 TOK_PLAINDO = 341, 161 TOK_CONTAINS = 342, 162 TOK_ENDDO = 343, 163 TOK_MODULE = 344, 164 TOK_ENDMODULE = 345, 165 TOK_DOWHILE = 346, 166 TOK_ALLOCATE = 347, 167 TOK_OPEN = 348, 168 TOK_CLOSE = 349, 169 TOK_INQUIRE = 350, 170 TOK_WRITE = 351, 171 TOK_READ = 352, 172 TOK_REWIND = 353, 173 TOK_DEALLOCATE = 354, 174 TOK_NULLIFY = 355, 175 TOK_FIN = 356, 176 TOK_DEBUT = 357, 177 TOK_DIMENSION = 358, 178 TOK_ENDSELECT = 359, 179 TOK_EXTERNAL = 360, 180 TOK_INTENT = 361, 181 TOK_INTRINSIC = 362, 182 TOK_NAMELIST = 363, 183 TOK_CASEDEFAULT = 364, 184 TOK_OPTIONAL = 365, 185 TOK_POINTER = 366, 186 TOK_CONTINUE = 367, 187 TOK_SAVE = 368, 188 TOK_TARGET = 369, 189 TOK_QUOTE = 370, 190 TOK_IMPLICIT = 371, 191 TOK_NONE = 372, 192 TOK_CALL = 373, 193 TOK_STAT = 374, 194 TOK_POINT_TO = 375, 195 TOK_COMMON = 376, 196 TOK_GLOBAL = 377, 197 TOK_INTERFACE = 378, 198 TOK_ENDINTERFACE = 379, 199 TOK_LEFTAB = 380, 200 TOK_RIGHTAB = 381, 201 TOK_PAUSE = 382, 202 TOK_PROCEDURE = 383, 203 TOK_STOP = 384, 204 TOK_NAMEEQ = 385, 205 TOK_REAL8 = 386, 206 TOK_OUT = 387, 207 TOK_INOUT = 388, 208 TOK_IN = 389, 209 TOK_USE = 390, 210 TOK_TRUE = 391, 211 TOK_FALSE = 392, 212 TOK_LABEL = 393, 213 TOK_TYPE = 394, 214 TOK_TYPEPAR = 395, 215 TOK_ENDTYPE = 396, 216 TOK_REAL = 397, 217 TOK_INTEGER = 398, 218 TOK_LOGICAL = 399, 219 TOK_DOUBLEPRECISION = 400, 220 TOK_DOUBLEREAL = 401, 221 TOK_ENDSUBROUTINE = 402, 222 TOK_ENDFUNCTION = 403, 223 TOK_ENDPROGRAM = 404, 224 TOK_ENDUNIT = 405, 225 TOK_CHARACTER = 406, 226 TOK_CHAR_CONSTANT = 407, 227 TOK_CHAR_CUT = 408, 228 TOK_DATA = 409, 229 TOK_CHAR_INT = 410, 230 TOK_CHAR_MESSAGE = 411, 231 TOK_CSTREAL = 412, 232 TOK_CSTREALDP = 413, 233 TOK_CSTREALQP = 414, 234 TOK_SFREAL = 415, 235 TOK_COMPLEX = 416, 236 TOK_DOUBLECOMPLEX = 417, 237 TOK_NAME = 418, 238 TOK_NAME_CHAR = 419, 239 TOK_PROBTYPE = 420, 240 TOK_INTERPTYPE = 421, 241 TOK_VARTYPE = 422, 242 TOK_BC = 423, 243 TOK_OP = 424, 244 TOK_CSTINT = 425, 245 TOK_COMMENT = 426, 246 TOK_FILENAME = 427 247 }; 248 #endif 249 /* Tokens. */ 250 #define TOK_BINARY_OP 258 251 #define TOK_NEQV 259 252 #define TOK_EQV 260 253 #define TOK_XOR 261 254 #define TOK_OR 262 255 #define TOK_AND 263 256 #define TOK_NOT 264 257 #define TOK_NE 265 258 #define TOK_EQ 266 259 #define TOK_GE 267 260 #define TOK_LE 268 261 #define TOK_GT 269 262 #define TOK_LT 270 263 #define TOK_UNARY_OP 271 264 #define TOK_DSLASH 272 265 #define TOK_SLASH 273 266 #define TOK_DASTER 274 267 #define TOK_SEP 275 268 #define TOK_SEMICOLON 276 269 #define TOK_NEXTLINE 277 270 #define TOK_PARAMETER 278 271 #define TOK_RESULT 279 272 #define TOK_ONLY 280 273 #define TOK_INCLUDE 281 274 #define TOK_SUBROUTINE 282 275 #define TOK_PROGRAM 283 276 #define TOK_FUNCTION 284 277 #define TOK_OMP 285 278 #define TOK_DOLLAR 286 279 #define TOK_FORMAT 287 280 #define TOK_MAX 288 281 #define TOK_TANH 289 282 #define TOK_WHERE 290 283 #define TOK_ELSEWHERE 291 284 #define TOK_ENDWHERE 292 285 #define TOK_MAXVAL 293 286 #define TOK_TRIM 294 287 #define TOK_SUM 295 288 #define TOK_SQRT 296 289 #define TOK_CASE 297 290 #define TOK_SELECTCASE 298 291 #define TOK_FILE 299 292 #define TOK_END 300 293 #define TOK_ERR 301 294 #define TOK_DONOTTREAT 302 295 #define TOK_ENDDONOTTREAT 303 296 #define TOK_EXIST 304 297 #define TOK_MIN 305 298 #define TOK_FLOAT 306 299 #define TOK_EXP 307 300 #define TOK_COS 308 301 #define TOK_COSH 309 302 #define TOK_ACOS 310 303 #define TOK_NINT 311 304 #define TOK_CYCLE 312 305 #define TOK_SIN 313 306 #define TOK_SINH 314 307 #define TOK_ASIN 315 308 #define TOK_EQUIVALENCE 316 309 #define TOK_BACKSPACE 317 310 #define TOK_LOG 318 311 #define TOK_TAN 319 312 #define TOK_ATAN 320 313 #define TOK_RECURSIVE 321 314 #define TOK_ABS 322 315 #define TOK_MOD 323 316 #define TOK_SIGN 324 317 #define TOK_MINLOC 325 318 #define TOK_MAXLOC 326 319 #define TOK_EXIT 327 320 #define TOK_MINVAL 328 321 #define TOK_PUBLIC 329 322 #define TOK_PRIVATE 330 323 #define TOK_ALLOCATABLE 331 324 #define TOK_RETURN 332 325 #define TOK_THEN 333 326 #define TOK_ELSEIF 334 327 #define TOK_ELSE 335 328 #define TOK_ENDIF 336 329 #define TOK_PRINT 337 330 #define TOK_PLAINGOTO 338 331 #define TOK_CONSTRUCTID 339 332 #define TOK_LOGICALIF 340 333 #define TOK_PLAINDO 341 334 #define TOK_CONTAINS 342 335 #define TOK_ENDDO 343 336 #define TOK_MODULE 344 337 #define TOK_ENDMODULE 345 338 #define TOK_DOWHILE 346 339 #define TOK_ALLOCATE 347 340 #define TOK_OPEN 348 341 #define TOK_CLOSE 349 342 #define TOK_INQUIRE 350 343 #define TOK_WRITE 351 344 #define TOK_READ 352 345 #define TOK_REWIND 353 346 #define TOK_DEALLOCATE 354 347 #define TOK_NULLIFY 355 348 #define TOK_FIN 356 349 #define TOK_DEBUT 357 350 #define TOK_DIMENSION 358 351 #define TOK_ENDSELECT 359 352 #define TOK_EXTERNAL 360 353 #define TOK_INTENT 361 354 #define TOK_INTRINSIC 362 355 #define TOK_NAMELIST 363 356 #define TOK_CASEDEFAULT 364 357 #define TOK_OPTIONAL 365 358 #define TOK_POINTER 366 359 #define TOK_CONTINUE 367 360 #define TOK_SAVE 368 361 #define TOK_TARGET 369 362 #define TOK_QUOTE 370 363 #define TOK_IMPLICIT 371 364 #define TOK_NONE 372 365 #define TOK_CALL 373 366 #define TOK_STAT 374 367 #define TOK_POINT_TO 375 368 #define TOK_COMMON 376 369 #define TOK_GLOBAL 377 370 #define TOK_INTERFACE 378 371 #define TOK_ENDINTERFACE 379 372 #define TOK_LEFTAB 380 373 #define TOK_RIGHTAB 381 374 #define TOK_PAUSE 382 375 #define TOK_PROCEDURE 383 376 #define TOK_STOP 384 377 #define TOK_NAMEEQ 385 378 #define TOK_REAL8 386 379 #define TOK_OUT 387 380 #define TOK_INOUT 388 381 #define TOK_IN 389 382 #define TOK_USE 390 383 #define TOK_TRUE 391 384 #define TOK_FALSE 392 385 #define TOK_LABEL 393 386 #define TOK_TYPE 394 387 #define TOK_TYPEPAR 395 388 #define TOK_ENDTYPE 396 389 #define TOK_REAL 397 390 #define TOK_INTEGER 398 391 #define TOK_LOGICAL 399 392 #define TOK_DOUBLEPRECISION 400 393 #define TOK_DOUBLEREAL 401 394 #define TOK_ENDSUBROUTINE 402 395 #define TOK_ENDFUNCTION 403 396 #define TOK_ENDPROGRAM 404 397 #define TOK_ENDUNIT 405 398 #define TOK_CHARACTER 406 399 #define TOK_CHAR_CONSTANT 407 400 #define TOK_CHAR_CUT 408 401 #define TOK_DATA 409 402 #define TOK_CHAR_INT 410 403 #define TOK_CHAR_MESSAGE 411 404 #define TOK_CSTREAL 412 405 #define TOK_CSTREALDP 413 406 #define TOK_CSTREALQP 414 407 #define TOK_SFREAL 415 408 #define TOK_COMPLEX 416 409 #define TOK_DOUBLECOMPLEX 417 410 #define TOK_NAME 418 411 #define TOK_NAME_CHAR 419 412 #define TOK_PROBTYPE 420 413 #define TOK_INTERPTYPE 421 414 #define TOK_VARTYPE 422 415 #define TOK_BC 423 416 #define TOK_OP 424 417 #define TOK_CSTINT 425 418 #define TOK_COMMENT 426 419 #define TOK_FILENAME 427 420 421 422 423 424 /* Copy the first part of user declarations. */ 35 425 #line 36 "fortran.y" 426 427 #define YYMAXDEPTH 1000 36 428 #include <stdlib.h> 37 429 #include <stdio.h> … … 53 445 int removeline=0; 54 446 listvar *test; 55 #line 57 "fortran.y" 56 typedef union { 447 448 449 /* Enabling traces. */ 450 #ifndef YYDEBUG 451 # define YYDEBUG 1 452 #endif 453 454 /* Enabling verbose error messages. */ 455 #ifdef YYERROR_VERBOSE 456 # undef YYERROR_VERBOSE 457 # define YYERROR_VERBOSE 1 458 #else 459 # define YYERROR_VERBOSE 0 460 #endif 461 462 /* Enabling the token table. */ 463 #ifndef YYTOKEN_TABLE 464 # define YYTOKEN_TABLE 0 465 #endif 466 467 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 468 typedef union YYSTYPE 469 #line 59 "fortran.y" 470 { 57 471 char nac[LONG_C]; 58 472 char na[LONGNOM]; … … 64 478 typedim dim1; 65 479 variable *v; 66 } YYSTYPE; 67 #line 68 "y.tab.c" 68 #define TOK_BINARY_OP 257 69 #define TOK_EQV 258 70 #define TOK_NEQV 259 71 #define TOK_OR 260 72 #define TOK_XOR 261 73 #define TOK_AND 262 74 #define TOK_NOT 263 75 #define TOK_LT 264 76 #define TOK_GT 265 77 #define TOK_LE 266 78 #define TOK_GE 267 79 #define TOK_EQ 268 80 #define TOK_NE 269 81 #define TOK_UNARY_OP 270 82 #define TOK_DSLASH 271 83 #define TOK_SLASH 272 84 #define TOK_DASTER 273 85 #define TOK_SEP 274 86 #define TOK_SEMICOLON 275 87 #define TOK_NEXTLINE 276 88 #define TOK_PARAMETER 277 89 #define TOK_RESULT 278 90 #define TOK_ONLY 279 91 #define TOK_INCLUDE 280 92 #define TOK_SUBROUTINE 281 93 #define TOK_PROGRAM 282 94 #define TOK_FUNCTION 283 95 #define TOK_OMP 284 96 #define TOK_DOLLAR 285 97 #define TOK_FORMAT 286 98 #define TOK_MAX 287 99 #define TOK_TANH 288 100 #define TOK_WHERE 289 101 #define TOK_ELSEWHERE 290 102 #define TOK_ENDWHERE 291 103 #define TOK_MAXVAL 292 104 #define TOK_TRIM 293 105 #define TOK_SUM 294 106 #define TOK_SQRT 295 107 #define TOK_CASE 296 108 #define TOK_SELECTCASE 297 109 #define TOK_FILE 298 110 #define TOK_END 299 111 #define TOK_ERR 300 112 #define TOK_DONOTTREAT 301 113 #define TOK_ENDDONOTTREAT 302 114 #define TOK_EXIST 303 115 #define TOK_MIN 304 116 #define TOK_FLOAT 305 117 #define TOK_EXP 306 118 #define TOK_COS 307 119 #define TOK_COSH 308 120 #define TOK_ACOS 309 121 #define TOK_NINT 310 122 #define TOK_CYCLE 311 123 #define TOK_SIN 312 124 #define TOK_SINH 313 125 #define TOK_ASIN 314 126 #define TOK_EQUIVALENCE 315 127 #define TOK_BACKSPACE 316 128 #define TOK_LOG 317 129 #define TOK_TAN 318 130 #define TOK_ATAN 319 131 #define TOK_RECURSIVE 320 132 #define TOK_ABS 321 133 #define TOK_MOD 322 134 #define TOK_SIGN 323 135 #define TOK_MINLOC 324 136 #define TOK_MAXLOC 325 137 #define TOK_EXIT 326 138 #define TOK_MINVAL 327 139 #define TOK_PUBLIC 328 140 #define TOK_PRIVATE 329 141 #define TOK_ALLOCATABLE 330 142 #define TOK_RETURN 331 143 #define TOK_THEN 332 144 #define TOK_ELSEIF 333 145 #define TOK_ELSE 334 146 #define TOK_ENDIF 335 147 #define TOK_PRINT 336 148 #define TOK_PLAINGOTO 337 149 #define TOK_CONSTRUCTID 338 150 #define TOK_LOGICALIF 339 151 #define TOK_PLAINDO 340 152 #define TOK_CONTAINS 341 153 #define TOK_ENDDO 342 154 #define TOK_MODULE 343 155 #define TOK_ENDMODULE 344 156 #define TOK_DOWHILE 345 157 #define TOK_ALLOCATE 346 158 #define TOK_OPEN 347 159 #define TOK_CLOSE 348 160 #define TOK_INQUIRE 349 161 #define TOK_WRITE 350 162 #define TOK_READ 351 163 #define TOK_REWIND 352 164 #define TOK_DEALLOCATE 353 165 #define TOK_NULLIFY 354 166 #define TOK_FIN 355 167 #define TOK_DEBUT 356 168 #define TOK_DIMENSION 357 169 #define TOK_ENDSELECT 358 170 #define TOK_EXTERNAL 359 171 #define TOK_INTENT 360 172 #define TOK_INTRINSIC 361 173 #define TOK_NAMELIST 362 174 #define TOK_CASEDEFAULT 363 175 #define TOK_OPTIONAL 364 176 #define TOK_POINTER 365 177 #define TOK_CONTINUE 366 178 #define TOK_SAVE 367 179 #define TOK_TARGET 368 180 #define TOK_QUOTE 369 181 #define TOK_IMPLICIT 370 182 #define TOK_NONE 371 183 #define TOK_CALL 372 184 #define TOK_STAT 373 185 #define TOK_POINT_TO 374 186 #define TOK_COMMON 375 187 #define TOK_GLOBAL 376 188 #define TOK_INTERFACE 377 189 #define TOK_ENDINTERFACE 378 190 #define TOK_LEFTAB 379 191 #define TOK_RIGHTAB 380 192 #define TOK_PAUSE 381 193 #define TOK_PROCEDURE 382 194 #define TOK_STOP 383 195 #define TOK_NAMEEQ 384 196 #define TOK_REAL8 385 197 #define TOK_OUT 386 198 #define TOK_INOUT 387 199 #define TOK_IN 388 200 #define TOK_USE 389 201 #define TOK_TRUE 390 202 #define TOK_FALSE 391 203 #define TOK_LABEL 392 204 #define TOK_TYPE 393 205 #define TOK_TYPEPAR 394 206 #define TOK_ENDTYPE 395 207 #define TOK_REAL 396 208 #define TOK_INTEGER 397 209 #define TOK_LOGICAL 398 210 #define TOK_DOUBLEPRECISION 399 211 #define TOK_DOUBLEREAL 400 212 #define TOK_ENDSUBROUTINE 401 213 #define TOK_ENDFUNCTION 402 214 #define TOK_ENDPROGRAM 403 215 #define TOK_ENDUNIT 404 216 #define TOK_CHARACTER 405 217 #define TOK_CHAR_CONSTANT 406 218 #define TOK_CHAR_CUT 407 219 #define TOK_DATA 408 220 #define TOK_CHAR_INT 409 221 #define TOK_CHAR_MESSAGE 410 222 #define TOK_CSTREAL 411 223 #define TOK_CSTREALDP 412 224 #define TOK_CSTREALQP 413 225 #define TOK_SFREAL 414 226 #define TOK_COMPLEX 415 227 #define TOK_DOUBLECOMPLEX 416 228 #define TOK_NAME 417 229 #define TOK_NAME_CHAR 418 230 #define TOK_PROBTYPE 419 231 #define TOK_INTERPTYPE 420 232 #define TOK_VARTYPE 421 233 #define TOK_BC 422 234 #define TOK_OP 423 235 #define TOK_CSTINT 424 236 #define TOK_COMMENT 425 237 #define TOK_FILENAME 426 238 #define YYERRCODE 256 239 short fortranlhs[] = { -1, 240 0, 0, 68, 68, 68, 68, 68, 71, 71, 76, 241 76, 76, 76, 76, 82, 78, 72, 72, 72, 72, 242 69, 70, 70, 73, 73, 83, 75, 84, 84, 77, 243 77, 77, 77, 77, 77, 16, 74, 80, 33, 6, 244 6, 6, 85, 85, 85, 5, 5, 38, 38, 79, 245 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 246 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 247 86, 86, 103, 103, 103, 103, 103, 103, 103, 103, 248 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 249 103, 103, 103, 103, 103, 103, 98, 98, 88, 88, 250 99, 99, 105, 106, 106, 104, 104, 87, 87, 2, 251 2, 108, 89, 100, 101, 101, 101, 58, 58, 91, 252 91, 91, 91, 111, 112, 112, 110, 110, 110, 47, 253 47, 47, 47, 47, 32, 32, 97, 113, 113, 113, 254 113, 114, 96, 96, 115, 3, 3, 93, 93, 67, 255 67, 66, 66, 90, 90, 90, 117, 117, 118, 118, 256 119, 15, 15, 109, 109, 4, 4, 14, 95, 120, 257 120, 92, 92, 121, 1, 1, 107, 19, 19, 19, 258 19, 127, 126, 126, 126, 126, 128, 128, 128, 125, 259 25, 24, 24, 24, 24, 24, 24, 116, 116, 65, 260 65, 124, 124, 124, 130, 130, 34, 34, 34, 34, 261 37, 37, 129, 129, 122, 122, 122, 131, 131, 132, 262 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 263 30, 30, 30, 102, 102, 11, 11, 12, 12, 13, 264 13, 13, 13, 13, 63, 63, 62, 62, 62, 62, 265 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 266 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 267 61, 61, 61, 61, 61, 61, 40, 40, 39, 39, 268 39, 39, 39, 39, 31, 31, 64, 64, 64, 64, 269 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 270 64, 64, 64, 64, 64, 64, 64, 59, 59, 59, 271 59, 60, 60, 41, 41, 41, 133, 49, 49, 49, 272 49, 36, 48, 42, 50, 50, 52, 52, 51, 51, 273 53, 53, 53, 53, 53, 53, 53, 28, 27, 27, 274 27, 27, 27, 27, 27, 27, 26, 26, 26, 26, 275 55, 55, 54, 57, 57, 56, 56, 123, 123, 134, 276 35, 94, 94, 94, 94, 135, 17, 9, 9, 10, 277 7, 7, 8, 8, 81, 81, 81, 81, 81, 81, 278 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 279 81, 81, 81, 81, 81, 81, 81, 20, 23, 22, 280 21, 143, 143, 143, 141, 141, 141, 146, 146, 146, 281 145, 145, 18, 18, 148, 148, 144, 147, 149, 149, 282 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 283 136, 136, 157, 150, 150, 156, 156, 151, 151, 154, 284 159, 159, 160, 160, 158, 162, 161, 161, 163, 163, 285 155, 155, 153, 153, 153, 153, 153, 153, 171, 171, 286 172, 172, 172, 173, 173, 174, 174, 168, 168, 178, 287 178, 177, 177, 166, 166, 170, 170, 170, 170, 170, 288 179, 179, 181, 181, 181, 181, 181, 181, 181, 181, 289 165, 165, 176, 176, 167, 167, 167, 169, 180, 180, 290 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 291 182, 182, 182, 183, 183, 175, 175, 185, 185, 184, 292 184, 184, 184, 184, 186, 186, 186, 43, 43, 43, 293 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 294 45, 45, 45, 46, 46, 187, 187, 164, 152, 152, 295 137, 137, 137, 188, 188, 188, 189, 190, 190, 139, 296 139, 138, 138, 140, 140, 191, 191, 192, 192, 142, 297 29, 480 } 481 /* Line 193 of yacc.c. */ 482 #line 483 "fortran.tab.c" 483 YYSTYPE; 484 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 485 # define YYSTYPE_IS_DECLARED 1 486 # define YYSTYPE_IS_TRIVIAL 1 487 #endif 488 489 490 491 /* Copy the second part of user declarations. */ 492 493 494 /* Line 216 of yacc.c. */ 495 #line 496 "fortran.tab.c" 496 497 #ifdef short 498 # undef short 499 #endif 500 501 #ifdef YYTYPE_UINT8 502 typedef YYTYPE_UINT8 yytype_uint8; 503 #else 504 typedef unsigned char yytype_uint8; 505 #endif 506 507 #ifdef YYTYPE_INT8 508 typedef YYTYPE_INT8 yytype_int8; 509 #elif (defined __STDC__ || defined __C99__FUNC__ \ 510 || defined __cplusplus || defined _MSC_VER) 511 typedef signed char yytype_int8; 512 #else 513 typedef short int yytype_int8; 514 #endif 515 516 #ifdef YYTYPE_UINT16 517 typedef YYTYPE_UINT16 yytype_uint16; 518 #else 519 typedef unsigned short int yytype_uint16; 520 #endif 521 522 #ifdef YYTYPE_INT16 523 typedef YYTYPE_INT16 yytype_int16; 524 #else 525 typedef short int yytype_int16; 526 #endif 527 528 #ifndef YYSIZE_T 529 # ifdef __SIZE_TYPE__ 530 # define YYSIZE_T __SIZE_TYPE__ 531 # elif defined size_t 532 # define YYSIZE_T size_t 533 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 534 || defined __cplusplus || defined _MSC_VER) 535 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 536 # define YYSIZE_T size_t 537 # else 538 # define YYSIZE_T unsigned int 539 # endif 540 #endif 541 542 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 543 544 #ifndef YY_ 545 # if defined YYENABLE_NLS && YYENABLE_NLS 546 # if ENABLE_NLS 547 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 548 # define YY_(msgid) dgettext ("bison-runtime", msgid) 549 # endif 550 # endif 551 # ifndef YY_ 552 # define YY_(msgid) msgid 553 # endif 554 #endif 555 556 /* Suppress unused-variable warnings by "using" E. */ 557 #if ! defined lint || defined __GNUC__ 558 # define YYUSE(e) ((void) (e)) 559 #else 560 # define YYUSE(e) /* empty */ 561 #endif 562 563 /* Identity function, used to suppress warnings about constant conditions. */ 564 #ifndef lint 565 # define YYID(n) (n) 566 #else 567 #if (defined __STDC__ || defined __C99__FUNC__ \ 568 || defined __cplusplus || defined _MSC_VER) 569 static int 570 YYID (int i) 571 #else 572 static int 573 YYID (i) 574 int i; 575 #endif 576 { 577 return i; 578 } 579 #endif 580 581 #if ! defined yyoverflow || YYERROR_VERBOSE 582 583 /* The parser invokes alloca or malloc; define the necessary symbols. */ 584 585 # ifdef YYSTACK_USE_ALLOCA 586 # if YYSTACK_USE_ALLOCA 587 # ifdef __GNUC__ 588 # define YYSTACK_ALLOC __builtin_alloca 589 # elif defined __BUILTIN_VA_ARG_INCR 590 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 591 # elif defined _AIX 592 # define YYSTACK_ALLOC __alloca 593 # elif defined _MSC_VER 594 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 595 # define alloca _alloca 596 # else 597 # define YYSTACK_ALLOC alloca 598 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 599 || defined __cplusplus || defined _MSC_VER) 600 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 601 # ifndef _STDLIB_H 602 # define _STDLIB_H 1 603 # endif 604 # endif 605 # endif 606 # endif 607 # endif 608 609 # ifdef YYSTACK_ALLOC 610 /* Pacify GCC's `empty if-body' warning. */ 611 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 612 # ifndef YYSTACK_ALLOC_MAXIMUM 613 /* The OS might guarantee only one guard page at the bottom of the stack, 614 and a page size can be as small as 4096 bytes. So we cannot safely 615 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 616 to allow for a few compiler-allocated temporary stack slots. */ 617 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 618 # endif 619 # else 620 # define YYSTACK_ALLOC YYMALLOC 621 # define YYSTACK_FREE YYFREE 622 # ifndef YYSTACK_ALLOC_MAXIMUM 623 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 624 # endif 625 # if (defined __cplusplus && ! defined _STDLIB_H \ 626 && ! ((defined YYMALLOC || defined malloc) \ 627 && (defined YYFREE || defined free))) 628 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 629 # ifndef _STDLIB_H 630 # define _STDLIB_H 1 631 # endif 632 # endif 633 # ifndef YYMALLOC 634 # define YYMALLOC malloc 635 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 636 || defined __cplusplus || defined _MSC_VER) 637 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 638 # endif 639 # endif 640 # ifndef YYFREE 641 # define YYFREE free 642 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 643 || defined __cplusplus || defined _MSC_VER) 644 void free (void *); /* INFRINGES ON USER NAME SPACE */ 645 # endif 646 # endif 647 # endif 648 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 649 650 651 #if (! defined yyoverflow \ 652 && (! defined __cplusplus \ 653 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 654 655 /* A type that is properly aligned for any stack member. */ 656 union yyalloc 657 { 658 yytype_int16 yyss; 659 YYSTYPE yyvs; 660 }; 661 662 /* The size of the maximum gap between one aligned stack and the next. */ 663 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 664 665 /* The size of an array large to enough to hold all stacks, each with 666 N elements. */ 667 # define YYSTACK_BYTES(N) \ 668 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 669 + YYSTACK_GAP_MAXIMUM) 670 671 /* Copy COUNT objects from FROM to TO. The source and destination do 672 not overlap. */ 673 # ifndef YYCOPY 674 # if defined __GNUC__ && 1 < __GNUC__ 675 # define YYCOPY(To, From, Count) \ 676 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 677 # else 678 # define YYCOPY(To, From, Count) \ 679 do \ 680 { \ 681 YYSIZE_T yyi; \ 682 for (yyi = 0; yyi < (Count); yyi++) \ 683 (To)[yyi] = (From)[yyi]; \ 684 } \ 685 while (YYID (0)) 686 # endif 687 # endif 688 689 /* Relocate STACK from its old location to the new one. The 690 local variables YYSIZE and YYSTACKSIZE give the old and new number of 691 elements in the stack, and YYPTR gives the new location of the 692 stack. Advance YYPTR to a properly aligned location for the next 693 stack. */ 694 # define YYSTACK_RELOCATE(Stack) \ 695 do \ 696 { \ 697 YYSIZE_T yynewbytes; \ 698 YYCOPY (&yyptr->Stack, Stack, yysize); \ 699 Stack = &yyptr->Stack; \ 700 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 701 yyptr += yynewbytes / sizeof (*yyptr); \ 702 } \ 703 while (YYID (0)) 704 705 #endif 706 707 /* YYFINAL -- State number of the termination state. */ 708 #define YYFINAL 2 709 /* YYLAST -- Last index in YYTABLE. */ 710 #define YYLAST 5878 711 712 /* YYNTOKENS -- Number of terminals. */ 713 #define YYNTOKENS 190 714 /* YYNNTS -- Number of nonterminals. */ 715 #define YYNNTS 184 716 /* YYNRULES -- Number of rules. */ 717 #define YYNRULES 552 718 /* YYNRULES -- Number of states. */ 719 #define YYNSTATES 978 720 721 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 722 #define YYUNDEFTOK 2 723 #define YYMAXUTOK 427 724 725 #define YYTRANSLATE(YYX) \ 726 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 727 728 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 729 static const yytype_uint8 yytranslate[] = 730 { 731 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 732 187, 2, 2, 2, 2, 2, 2, 2, 2, 2, 733 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 734 2, 2, 2, 183, 2, 2, 2, 189, 2, 2, 735 179, 180, 23, 21, 3, 22, 2, 188, 2, 2, 736 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 737 185, 5, 186, 2, 2, 2, 2, 2, 2, 2, 738 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 739 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 740 2, 181, 2, 182, 2, 184, 2, 2, 2, 2, 741 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 742 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 743 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 744 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 745 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 746 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 747 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 748 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 749 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 750 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 751 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 753 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 754 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 755 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 756 2, 2, 2, 2, 2, 2, 1, 2, 6, 7, 757 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 758 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 759 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 760 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 761 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 762 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 763 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 764 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 765 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 766 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 767 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 768 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 769 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 770 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 771 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 772 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 773 171, 172, 173, 174, 175, 176, 177, 178 298 774 }; 299 short fortranlen[] = { 2, 300 0, 2, 2, 2, 1, 3, 3, 1, 3, 2, 301 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 302 0, 0, 2, 0, 1, 0, 0, 0, 1, 0, 303 4, 2, 5, 3, 2, 1, 0, 1, 1, 0, 304 2, 3, 0, 2, 3, 1, 3, 1, 1, 2, 305 4, 2, 2, 4, 2, 1, 1, 1, 1, 1, 306 1, 1, 1, 1, 1, 4, 3, 3, 2, 3, 307 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 775 776 #if YYDEBUG 777 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 778 YYRHS. */ 779 static const yytype_uint16 yyprhs[] = 780 { 781 0, 0, 3, 4, 7, 10, 13, 15, 19, 23, 782 25, 29, 32, 35, 39, 43, 46, 49, 52, 54, 783 56, 58, 60, 61, 62, 65, 66, 68, 69, 70, 784 72, 73, 78, 81, 87, 91, 94, 96, 97, 99, 785 101, 102, 105, 109, 110, 113, 117, 119, 123, 125, 786 127, 130, 135, 138, 141, 146, 149, 151, 153, 155, 787 157, 159, 161, 163, 165, 167, 169, 174, 178, 182, 788 185, 189, 190, 192, 194, 196, 198, 200, 202, 204, 789 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 790 226, 228, 230, 232, 234, 236, 238, 240, 242, 246, 791 250, 256, 258, 262, 266, 269, 274, 276, 280, 281, 792 284, 287, 291, 293, 295, 297, 302, 309, 314, 316, 793 320, 323, 327, 333, 337, 339, 340, 343, 345, 350, 794 354, 357, 361, 365, 369, 373, 374, 376, 379, 382, 795 386, 392, 396, 397, 400, 403, 405, 411, 417, 420, 796 424, 427, 431, 433, 437, 440, 444, 450, 452, 455, 797 457, 461, 464, 466, 470, 471, 473, 475, 479, 483, 798 486, 488, 492, 495, 498, 499, 506, 514, 515, 518, 799 521, 525, 529, 531, 532, 535, 540, 544, 548, 553, 800 556, 558, 560, 562, 564, 566, 568, 570, 572, 573, 801 576, 578, 582, 583, 586, 590, 592, 596, 599, 603, 802 605, 607, 609, 611, 612, 616, 617, 620, 625, 627, 803 631, 633, 635, 637, 640, 642, 647, 649, 651, 653, 804 655, 657, 659, 661, 663, 665, 667, 668, 672, 674, 805 678, 680, 682, 685, 688, 692, 694, 696, 698, 702, 806 704, 706, 710, 714, 719, 724, 728, 733, 738, 742, 807 747, 752, 757, 762, 767, 772, 777, 782, 787, 792, 808 797, 802, 807, 811, 816, 821, 826, 831, 833, 837, 809 839, 841, 843, 846, 849, 852, 854, 856, 859, 862, 810 865, 868, 871, 874, 877, 880, 883, 886, 889, 893, 811 896, 900, 903, 906, 909, 912, 915, 918, 921, 922, 812 924, 927, 930, 933, 935, 937, 939, 941, 942, 944, 813 947, 952, 958, 963, 967, 971, 973, 976, 978, 982, 814 984, 986, 990, 996, 1001, 1005, 1008, 1011, 1013, 1015, 815 1017, 1019, 1021, 1023, 1025, 1027, 1030, 1033, 1035, 1038, 816 1040, 1042, 1043, 1045, 1051, 1052, 1054, 1056, 1058, 1059, 817 1063, 1064, 1070, 1073, 1078, 1085, 1092, 1094, 1096, 1098, 818 1102, 1106, 1108, 1112, 1116, 1118, 1120, 1126, 1132, 1137, 819 1139, 1142, 1145, 1148, 1151, 1153, 1156, 1162, 1164, 1166, 820 1169, 1175, 1177, 1180, 1184, 1189, 1191, 1193, 1195, 1197, 821 1199, 1201, 1203, 1205, 1209, 1213, 1217, 1220, 1223, 1224, 822 1230, 1238, 1239, 1242, 1244, 1246, 1247, 1249, 1251, 1253, 823 1255, 1258, 1260, 1262, 1264, 1270, 1276, 1279, 1282, 1285, 824 1288, 1290, 1291, 1296, 1303, 1305, 1309, 1312, 1315, 1318, 825 1319, 1323, 1324, 1326, 1329, 1331, 1333, 1337, 1339, 1342, 826 1344, 1346, 1349, 1352, 1355, 1359, 1362, 1364, 1365, 1367, 827 1370, 1373, 1374, 1377, 1381, 1385, 1389, 1393, 1395, 1399, 828 1401, 1403, 1407, 1409, 1411, 1413, 1416, 1421, 1426, 1429, 829 1432, 1434, 1436, 1438, 1440, 1442, 1444, 1446, 1448, 1450, 830 1454, 1456, 1458, 1462, 1466, 1470, 1474, 1477, 1481, 1484, 831 1487, 1490, 1493, 1497, 1499, 1501, 1503, 1507, 1508, 1510, 832 1513, 1518, 1521, 1524, 1530, 1531, 1533, 1536, 1538, 1540, 833 1542, 1546, 1550, 1554, 1558, 1562, 1566, 1568, 1570, 1572, 834 1576, 1582, 1588, 1594, 1600, 1608, 1610, 1619, 1622, 1624, 835 1626, 1630, 1632, 1634, 1636, 1641, 1643, 1647, 1648, 1653, 836 1655, 1659, 1663 837 }; 838 839 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 840 static const yytype_int16 yyrhs[] = 841 { 842 191, 0, -1, -1, 191, 192, -1, 187, 198, -1, 843 199, 193, -1, 177, -1, 197, 200, 205, -1, 1, 844 205, 201, -1, 194, -1, 193, 27, 194, -1, 203, 845 196, -1, 212, 196, -1, 206, 207, 196, -1, 315, 846 200, 205, -1, 195, 196, -1, 298, 4, -1, 198, 847 200, -1, 53, -1, 54, -1, 36, -1, 37, -1, 848 -1, -1, 144, 201, -1, -1, 177, -1, -1, -1, 849 72, -1, -1, 202, 33, 204, 208, -1, 34, 204, 850 -1, 35, 204, 208, 30, 209, -1, 35, 204, 208, 851 -1, 95, 169, -1, 169, -1, -1, 32, -1, 158, 852 -1, -1, 179, 180, -1, 179, 210, 180, -1, -1, 853 179, 180, -1, 179, 210, 180, -1, 211, -1, 210, 854 3, 211, -1, 169, -1, 23, -1, 257, 222, -1, 855 145, 213, 221, 324, -1, 147, 324, -1, 117, 216, 856 -1, 224, 179, 249, 180, -1, 224, 249, -1, 243, 857 -1, 228, -1, 253, -1, 239, -1, 241, -1, 240, 858 -1, 308, -1, 251, -1, 237, -1, 234, -1, 68, 859 179, 280, 180, -1, 111, 221, 242, -1, 113, 221, 860 215, -1, 67, 217, -1, 225, 226, 187, -1, -1, 861 275, -1, 46, -1, 40, -1, 44, -1, 56, -1, 862 79, -1, 45, -1, 47, -1, 62, -1, 57, -1, 863 58, -1, 59, -1, 60, -1, 61, -1, 64, -1, 864 65, -1, 66, -1, 69, -1, 70, -1, 71, -1, 865 74, -1, 75, -1, 76, -1, 77, -1, 169, -1, 866 214, -1, 215, 3, 214, -1, 179, 220, 180, -1, 867 216, 3, 179, 220, 180, -1, 218, -1, 217, 3, 868 218, -1, 179, 219, 180, -1, 298, 276, -1, 219, 869 3, 298, 276, -1, 280, -1, 220, 3, 280, -1, 870 -1, 4, 4, -1, 255, 256, -1, 223, 204, 208, 871 -1, 35, -1, 29, -1, 160, -1, 169, 24, 227, 872 24, -1, 226, 248, 169, 24, 227, 24, -1, 231, 873 24, 227, 24, -1, 232, -1, 232, 3, 227, -1, 874 229, 230, -1, 229, 247, 230, -1, 228, 248, 247, 875 248, 230, -1, 228, 3, 230, -1, 119, -1, -1, 876 169, 276, -1, 169, -1, 169, 179, 280, 180, -1, 877 231, 3, 231, -1, 233, 299, -1, 232, 21, 232, 878 -1, 232, 22, 232, -1, 232, 23, 232, -1, 232, 879 188, 232, -1, -1, 284, -1, 235, 236, -1, 114, 880 298, -1, 114, 247, 298, -1, 235, 248, 247, 248, 881 298, -1, 235, 3, 298, -1, -1, 129, 324, -1, 882 130, 324, -1, 109, -1, 238, 248, 169, 276, 264, 883 -1, 239, 3, 169, 276, 264, -1, 81, 187, -1, 884 81, 221, 242, -1, 80, 187, -1, 80, 221, 242, 885 -1, 169, -1, 242, 3, 169, -1, 244, 245, -1, 886 244, 247, 245, -1, 243, 248, 247, 248, 245, -1, 887 127, -1, 128, 127, -1, 246, -1, 245, 3, 246, 888 -1, 169, 276, -1, 20, -1, 24, 169, 24, -1, 889 -1, 3, -1, 250, -1, 249, 3, 250, -1, 169, 890 5, 280, -1, 134, 252, -1, 169, -1, 252, 3, 891 169, -1, 122, 123, -1, 122, 137, -1, -1, 271, 892 254, 169, 276, 264, 305, -1, 255, 3, 254, 169, 893 276, 264, 305, -1, -1, 262, 266, -1, 261, 259, 894 -1, 263, 23, 176, -1, 258, 268, 180, -1, 146, 895 -1, -1, 23, 176, -1, 23, 179, 260, 180, -1, 896 179, 260, 180, -1, 169, 269, 270, -1, 169, 5, 897 269, 270, -1, 269, 270, -1, 157, -1, 263, -1, 898 149, -1, 148, -1, 167, -1, 151, -1, 168, -1, 899 150, -1, -1, 23, 265, -1, 280, -1, 179, 23, 900 180, -1, -1, 23, 267, -1, 179, 268, 180, -1, 901 280, -1, 179, 23, 180, -1, 169, 269, -1, 169, 902 5, 269, -1, 169, -1, 176, -1, 280, -1, 23, 903 -1, -1, 3, 169, 269, -1, -1, 4, 4, -1, 904 3, 272, 4, 4, -1, 273, -1, 272, 3, 273, 905 -1, 29, -1, 275, -1, 82, -1, 109, 276, -1, 906 111, -1, 112, 179, 274, 180, -1, 113, -1, 116, 907 -1, 117, -1, 119, -1, 120, -1, 140, -1, 138, 908 -1, 139, -1, 80, -1, 81, -1, -1, 179, 277, 909 180, -1, 278, -1, 277, 3, 278, -1, 279, -1, 910 4, -1, 280, 4, -1, 4, 280, -1, 280, 4, 911 279, -1, 23, -1, 280, -1, 283, -1, 179, 280, 912 180, -1, 307, -1, 281, -1, 46, 282, 180, -1, 913 39, 282, 180, -1, 40, 179, 282, 180, -1, 44, 914 179, 282, 180, -1, 56, 282, 180, -1, 79, 179, 915 282, 180, -1, 45, 179, 280, 180, -1, 47, 280, 916 180, -1, 148, 179, 282, 180, -1, 62, 179, 280, 917 180, -1, 57, 179, 280, 180, -1, 58, 179, 280, 918 180, -1, 59, 179, 280, 180, -1, 60, 179, 280, 919 180, -1, 61, 179, 280, 180, -1, 64, 179, 280, 920 180, -1, 65, 179, 280, 180, -1, 66, 179, 280, 921 180, -1, 69, 179, 280, 180, -1, 70, 179, 280, 922 180, -1, 71, 179, 280, 180, -1, 73, 280, 180, 923 -1, 74, 179, 282, 180, -1, 75, 179, 282, 180, 924 -1, 76, 179, 282, 180, -1, 77, 179, 282, 180, 925 -1, 280, -1, 282, 3, 280, -1, 288, -1, 299, 926 -1, 293, -1, 280, 285, -1, 284, 280, -1, 12, 927 280, -1, 21, -1, 22, -1, 21, 280, -1, 22, 928 280, -1, 23, 280, -1, 25, 280, -1, 14, 280, 929 -1, 8, 280, -1, 17, 280, -1, 186, 280, -1, 930 18, 280, -1, 185, 280, -1, 15, 280, -1, 186, 931 5, 280, -1, 16, 280, -1, 185, 5, 280, -1, 932 13, 280, -1, 7, 280, -1, 9, 280, -1, 10, 933 280, -1, 11, 280, -1, 24, 286, -1, 5, 287, 934 -1, -1, 280, -1, 5, 280, -1, 24, 280, -1, 935 5, 280, -1, 280, -1, 298, -1, 292, -1, 290, 936 -1, -1, 291, -1, 291, 302, -1, 292, 179, 294, 937 180, -1, 292, 179, 294, 180, 302, -1, 298, 179, 938 294, 180, -1, 288, 189, 288, -1, 131, 360, 132, 939 -1, 289, -1, 289, 295, -1, 296, -1, 295, 3, 940 296, -1, 280, -1, 297, -1, 280, 4, 280, -1, 941 280, 4, 280, 4, 280, -1, 4, 280, 4, 280, 942 -1, 4, 4, 280, -1, 4, 280, -1, 280, 4, 943 -1, 4, -1, 169, -1, 142, -1, 143, -1, 176, 944 -1, 163, -1, 164, -1, 165, -1, 299, 169, -1, 945 300, 301, -1, 158, -1, 300, 158, -1, 162, -1, 946 159, -1, -1, 302, -1, 179, 303, 4, 303, 180, 947 -1, -1, 280, -1, 187, -1, 280, -1, -1, 306, 948 5, 280, -1, -1, 179, 283, 3, 283, 180, -1, 949 309, 310, -1, 309, 310, 3, 311, -1, 309, 310, 950 3, 31, 4, 187, -1, 309, 310, 3, 31, 4, 951 313, -1, 141, -1, 169, -1, 312, -1, 311, 3, 952 312, -1, 169, 126, 169, -1, 314, -1, 313, 3, 953 314, -1, 169, 126, 169, -1, 169, -1, 328, -1, 954 98, 179, 366, 370, 180, -1, 105, 179, 369, 370, 955 180, -1, 106, 179, 371, 180, -1, 317, -1, 318, 956 324, -1, 316, 324, -1, 319, 324, -1, 96, 324, 957 -1, 321, -1, 372, 328, -1, 41, 179, 280, 180, 958 304, -1, 42, -1, 43, -1, 372, 84, -1, 85, 959 179, 280, 180, 84, -1, 86, -1, 87, 324, -1, 960 48, 320, 180, -1, 49, 179, 280, 180, -1, 115, 961 -1, 110, -1, 93, -1, 153, -1, 156, -1, 155, 962 -1, 154, -1, 280, -1, 320, 3, 280, -1, 320, 963 4, 280, -1, 326, 323, 322, -1, 327, 280, -1, 964 94, 325, -1, -1, 373, 5, 280, 3, 280, -1, 965 373, 5, 280, 3, 280, 3, 280, -1, -1, 176, 966 248, -1, 187, -1, 169, -1, -1, 169, -1, 92, 967 -1, 97, -1, 118, -1, 330, 332, -1, 365, -1, 968 341, -1, 333, -1, 98, 179, 366, 370, 180, -1, 969 105, 179, 369, 370, 180, -1, 78, 303, -1, 83, 970 304, -1, 63, 304, -1, 340, 304, -1, 331, -1, 971 -1, 298, 329, 276, 276, -1, 330, 189, 298, 329, 972 276, 276, -1, 176, -1, 331, 3, 176, -1, 5, 973 280, -1, 126, 280, -1, 336, 334, -1, -1, 179, 974 335, 180, -1, -1, 338, -1, 337, 169, -1, 124, 975 -1, 339, -1, 338, 3, 339, -1, 280, -1, 23, 976 364, -1, 133, -1, 135, -1, 349, 345, -1, 351, 977 343, -1, 352, 345, -1, 352, 345, 360, -1, 104, 978 346, -1, 38, -1, -1, 356, -1, 345, 342, -1, 979 350, 344, -1, -1, 3, 356, -1, 179, 347, 180, 980 -1, 179, 353, 180, -1, 179, 298, 180, -1, 179, 981 176, 180, -1, 176, -1, 179, 283, 180, -1, 169, 982 -1, 348, -1, 347, 3, 348, -1, 353, -1, 23, 983 -1, 25, -1, 298, 280, -1, 298, 280, 189, 330, 984 -1, 298, 179, 297, 180, -1, 298, 23, -1, 298, 985 25, -1, 99, -1, 100, -1, 354, -1, 23, -1, 986 103, -1, 101, -1, 88, -1, 102, -1, 354, -1, 987 179, 353, 180, -1, 288, -1, 299, -1, 353, 355, 988 353, -1, 353, 23, 353, -1, 353, 24, 353, -1, 989 353, 25, 353, -1, 355, 353, -1, 353, 20, 353, 990 -1, 50, 280, -1, 55, 280, -1, 52, 280, -1, 991 51, 280, -1, 169, 5, 280, -1, 21, -1, 22, 992 -1, 358, -1, 356, 3, 358, -1, -1, 288, -1, 993 357, 359, -1, 179, 356, 180, 359, -1, 281, 359, 994 -1, 299, 359, -1, 179, 356, 3, 363, 180, -1, 995 -1, 285, -1, 359, 285, -1, 283, -1, 362, -1, 996 361, -1, 283, 3, 280, -1, 283, 3, 362, -1, 997 362, 3, 280, -1, 362, 3, 362, -1, 361, 3, 998 280, -1, 361, 3, 362, -1, 283, -1, 281, -1, 999 307, -1, 179, 280, 180, -1, 179, 283, 3, 363, 1000 180, -1, 179, 362, 3, 363, 180, -1, 179, 361, 1001 3, 363, 180, -1, 169, 5, 280, 3, 280, -1, 1002 169, 5, 280, 3, 280, 3, 280, -1, 176, -1, 1003 89, 179, 280, 3, 280, 180, 3, 280, -1, 89, 1004 364, -1, 367, -1, 330, -1, 366, 3, 367, -1, 1005 298, -1, 292, -1, 368, -1, 298, 179, 295, 180, 1006 -1, 367, -1, 369, 3, 367, -1, -1, 3, 125, 1007 5, 298, -1, 298, -1, 371, 3, 298, -1, 91, 1008 280, 180, -1, 298, -1 1009 }; 1010 1011 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 1012 static const yytype_uint16 yyrline[] = 1013 { 1014 0, 336, 336, 337, 339, 340, 341, 342, 343, 346, 1015 347, 349, 350, 351, 360, 361, 363, 365, 367, 374, 1016 379, 380, 382, 384, 385, 387, 388, 394, 397, 398, 1017 401, 402, 430, 448, 481, 515, 532, 539, 541, 545, 1018 550, 553, 556, 561, 562, 563, 571, 582, 594, 595, 1019 597, 605, 613, 619, 620, 635, 648, 649, 655, 656, 1020 693, 706, 707, 708, 709, 710, 711, 712, 713, 714, 1021 715, 734, 735, 741, 742, 743, 744, 745, 746, 747, 1022 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 1023 758, 759, 760, 761, 762, 763, 764, 766, 767, 769, 1024 770, 772, 773, 775, 777, 778, 780, 781, 783, 784, 1025 786, 869, 906, 912, 917, 922, 936, 950, 965, 972, 1026 981, 982, 983, 984, 986, 991, 992, 997, 1001, 1006, 1027 1011, 1013, 1015, 1017, 1019, 1023, 1024, 1027, 1029, 1030, 1028 1031, 1032, 1034, 1036, 1041, 1046, 1052, 1068, 1085, 1086, 1029 1088, 1092, 1097, 1101, 1106, 1112, 1123, 1135, 1140, 1146, 1030 1151, 1155, 1165, 1174, 1184, 1185, 1187, 1191, 1196, 1219, 1031 1221, 1222, 1224, 1234, 1236, 1238, 1270, 1305, 1307, 1309, 1032 1313, 1318, 1323, 1331, 1332, 1334, 1335, 1337, 1338, 1339, 1033 1341, 1346, 1348, 1353, 1357, 1360, 1366, 1368, 1374, 1375, 1034 1377, 1378, 1380, 1381, 1382, 1384, 1385, 1387, 1388, 1397, 1035 1401, 1406, 1408, 1411, 1412, 1414, 1415, 1416, 1418, 1419, 1036 1421, 1425, 1426, 1428, 1433, 1435, 1437, 1438, 1439, 1440, 1037 1446, 1449, 1450, 1451, 1453, 1455, 1458, 1463, 1467, 1469, 1038 1473, 1478, 1482, 1487, 1492, 1500, 1501, 1503, 1504, 1506, 1039 1508, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1040 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1041 1550, 1552, 1554, 1556, 1558, 1560, 1562, 1565, 1566, 1570, 1042 1571, 1573, 1575, 1577, 1579, 1582, 1583, 1585, 1587, 1589, 1043 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1044 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1628, 1629, 1045 1631, 1633, 1636, 1638, 1642, 1647, 1652, 1658, 1670, 1675, 1046 1677, 1680, 1684, 1694, 1700, 1703, 1704, 1707, 1708, 1711, 1047 1712, 1714, 1716, 1719, 1721, 1722, 1723, 1724, 1726, 1784, 1048 1786, 1787, 1788, 1789, 1790, 1791, 1793, 1795, 1797, 1798, 1049 1800, 1803, 1804, 1806, 1809, 1810, 1812, 1813, 1815, 1816, 1050 1825, 1827, 1830, 1850, 1884, 1904, 1955, 1963, 1966, 1970, 1051 1980, 1991, 1995, 2005, 2017, 2026, 2027, 2033, 2039, 2040, 1052 2090, 2108, 2128, 2147, 2180, 2181, 2182, 2183, 2184, 2185, 1053 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2230, 2240, 1054 2249, 2258, 2267, 2268, 2269, 2271, 2272, 2273, 2275, 2276, 1055 2277, 2278, 2279, 2281, 2282, 2284, 2285, 2287, 2289, 2296, 1056 2297, 2298, 2299, 2300, 2301, 2307, 2313, 2314, 2315, 2316, 1057 2317, 2319, 2320, 2330, 2332, 2333, 2335, 2336, 2338, 2366, 1058 2367, 2369, 2370, 2372, 2402, 2404, 2405, 2408, 2422, 2425, 1059 2426, 2429, 2430, 2431, 2432, 2433, 2434, 2446, 2447, 2449, 1060 2450, 2455, 2456, 2458, 2459, 2461, 2462, 2463, 2464, 2465, 1061 2467, 2468, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 1062 2479, 2480, 2482, 2483, 2486, 2487, 2488, 2491, 2494, 2495, 1063 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 1064 2507, 2508, 2509, 2511, 2512, 2514, 2515, 2517, 2518, 2520, 1065 2521, 2522, 2523, 2524, 2526, 2527, 2528, 2530, 2531, 2532, 1066 2534, 2536, 2538, 2540, 2542, 2544, 2546, 2547, 2549, 2551, 1067 2553, 2555, 2557, 2561, 2564, 2571, 2573, 2574, 2576, 2577, 1068 2578, 2580, 2582, 2583, 2585, 2592, 2593, 2595, 2596, 2598, 1069 2599, 2607, 2609 1070 }; 1071 #endif 1072 1073 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1074 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1075 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 1076 static const char *const yytname[] = 1077 { 1078 "$end", "error", "$undefined", "','", "':'", "'='", "TOK_BINARY_OP", 1079 "TOK_NEQV", "TOK_EQV", "TOK_XOR", "TOK_OR", "TOK_AND", "TOK_NOT", 1080 "TOK_NE", "TOK_EQ", "TOK_GE", "TOK_LE", "TOK_GT", "TOK_LT", 1081 "TOK_UNARY_OP", "TOK_DSLASH", "'+'", "'-'", "'*'", "TOK_SLASH", 1082 "TOK_DASTER", "TOK_SEP", "TOK_SEMICOLON", "TOK_NEXTLINE", 1083 "TOK_PARAMETER", "TOK_RESULT", "TOK_ONLY", "TOK_INCLUDE", 1084 "TOK_SUBROUTINE", "TOK_PROGRAM", "TOK_FUNCTION", "TOK_OMP", "TOK_DOLLAR", 1085 "TOK_FORMAT", "TOK_MAX", "TOK_TANH", "TOK_WHERE", "TOK_ELSEWHERE", 1086 "TOK_ENDWHERE", "TOK_MAXVAL", "TOK_TRIM", "TOK_SUM", "TOK_SQRT", 1087 "TOK_CASE", "TOK_SELECTCASE", "TOK_FILE", "TOK_END", "TOK_ERR", 1088 "TOK_DONOTTREAT", "TOK_ENDDONOTTREAT", "TOK_EXIST", "TOK_MIN", 1089 "TOK_FLOAT", "TOK_EXP", "TOK_COS", "TOK_COSH", "TOK_ACOS", "TOK_NINT", 1090 "TOK_CYCLE", "TOK_SIN", "TOK_SINH", "TOK_ASIN", "TOK_EQUIVALENCE", 1091 "TOK_BACKSPACE", "TOK_LOG", "TOK_TAN", "TOK_ATAN", "TOK_RECURSIVE", 1092 "TOK_ABS", "TOK_MOD", "TOK_SIGN", "TOK_MINLOC", "TOK_MAXLOC", "TOK_EXIT", 1093 "TOK_MINVAL", "TOK_PUBLIC", "TOK_PRIVATE", "TOK_ALLOCATABLE", 1094 "TOK_RETURN", "TOK_THEN", "TOK_ELSEIF", "TOK_ELSE", "TOK_ENDIF", 1095 "TOK_PRINT", "TOK_PLAINGOTO", "TOK_CONSTRUCTID", "TOK_LOGICALIF", 1096 "TOK_PLAINDO", "TOK_CONTAINS", "TOK_ENDDO", "TOK_MODULE", 1097 "TOK_ENDMODULE", "TOK_DOWHILE", "TOK_ALLOCATE", "TOK_OPEN", "TOK_CLOSE", 1098 "TOK_INQUIRE", "TOK_WRITE", "TOK_READ", "TOK_REWIND", "TOK_DEALLOCATE", 1099 "TOK_NULLIFY", "TOK_FIN", "TOK_DEBUT", "TOK_DIMENSION", "TOK_ENDSELECT", 1100 "TOK_EXTERNAL", "TOK_INTENT", "TOK_INTRINSIC", "TOK_NAMELIST", 1101 "TOK_CASEDEFAULT", "TOK_OPTIONAL", "TOK_POINTER", "TOK_CONTINUE", 1102 "TOK_SAVE", "TOK_TARGET", "TOK_QUOTE", "TOK_IMPLICIT", "TOK_NONE", 1103 "TOK_CALL", "TOK_STAT", "TOK_POINT_TO", "TOK_COMMON", "TOK_GLOBAL", 1104 "TOK_INTERFACE", "TOK_ENDINTERFACE", "TOK_LEFTAB", "TOK_RIGHTAB", 1105 "TOK_PAUSE", "TOK_PROCEDURE", "TOK_STOP", "TOK_NAMEEQ", "TOK_REAL8", 1106 "TOK_OUT", "TOK_INOUT", "TOK_IN", "TOK_USE", "TOK_TRUE", "TOK_FALSE", 1107 "TOK_LABEL", "TOK_TYPE", "TOK_TYPEPAR", "TOK_ENDTYPE", "TOK_REAL", 1108 "TOK_INTEGER", "TOK_LOGICAL", "TOK_DOUBLEPRECISION", "TOK_DOUBLEREAL", 1109 "TOK_ENDSUBROUTINE", "TOK_ENDFUNCTION", "TOK_ENDPROGRAM", "TOK_ENDUNIT", 1110 "TOK_CHARACTER", "TOK_CHAR_CONSTANT", "TOK_CHAR_CUT", "TOK_DATA", 1111 "TOK_CHAR_INT", "TOK_CHAR_MESSAGE", "TOK_CSTREAL", "TOK_CSTREALDP", 1112 "TOK_CSTREALQP", "TOK_SFREAL", "TOK_COMPLEX", "TOK_DOUBLECOMPLEX", 1113 "TOK_NAME", "TOK_NAME_CHAR", "TOK_PROBTYPE", "TOK_INTERPTYPE", 1114 "TOK_VARTYPE", "TOK_BC", "TOK_OP", "TOK_CSTINT", "TOK_COMMENT", 1115 "TOK_FILENAME", "'('", "')'", "'['", "']'", "'!'", "'_'", "'<'", "'>'", 1116 "'\\n'", "'/'", "'%'", "$accept", "input", "line", "suite_line_list", 1117 "suite_line", "instr", "fin_line", "keyword", "position", "thislabel", 1118 "cmnt", "nulcurbuf", "opt_recursive", "entry", "name_routine", 1119 "writedeclar", "before_include", "filename", "arglist", "arglist1", 1120 "args", "arg", "spec", "opt_spec", "name_intrinsic", 1121 "use_intrinsic_list", "list_couple", "list_expr_equi", "expr_equi", 1122 "list_expr_equi1", "list_expr", "opt_sep", "after_type", 1123 "before_function", "before_parameter", "before_data", "data", 1124 "datavallist", "save", "before_save", "varsave", "datanamelist", 1125 "expr_data", "opt_signe", "namelist", "namelist_action", 1126 "after_namelist", "interface", "before_dimension", "dimension", 1127 "private", "public", "use_name_list", "common", "before_common", 1128 "var_common_list", "var_common", "comblock", "opt_comma", "paramlist", 1129 "paramitem", "module_proc_stmt", "proc_name_list", "implicit", 1130 "opt_retour", "dcl", "nodimsgiven", "type", "before_typepar", 1131 "c_selector", "c_attribute", "before_character", "typespec", "typename", 1132 "lengspec", "proper_lengspec", "selector", "proper_selector", 1133 "attribute", "clause", "opt_clause", "options", "attr_spec_list", 1134 "attr_spec", "intent_spec", "access_spec", "dims", "dimlist", "dim", 1135 "ubound", "expr", "predefinedfunction", "minmaxlist", "uexpr", "signe", 1136 "operation", "after_slash", "after_equal", "lhs", "beforefunctionuse", 1137 "array_ele_substring_func_ref", "begin_array", "structure_component", 1138 "vec", "funarglist", "funargs", "funarg", "triplet", "ident", 1139 "simple_const", "string_constant", "opt_substring", "substring", 1140 "optexpr", "opt_expr", "initial_value", "before_initial", 1141 "complex_const", "use_stat", "word_use", "module_name", "rename_list", 1142 "rename_name", "only_list", "only_name", "exec", "word_endsubroutine", 1143 "word_endunit", "word_endprogram", "word_endfunction", "caselist", 1144 "boucledo", "do_arg", "opt_int", "opt_name", "optname", "worddo", 1145 "wordwhile", "iffable", "before_dims", "ident_dims", "int_list", 1146 "after_ident_dims", "call", "opt_call", "opt_callarglist", "keywordcall", 1147 "before_call", "callarglist", "callarg", "stop", "io", "option_inlist", 1148 "option_read", "opt_inlist", "ioctl", "after_rewind", "ctllist", 1149 "ioclause", "iofctl", "infmt", "read", "write", "fexpr", "unpar_fexpr", 1150 "addop", "inlist", "opt_lhs", "inelt", "opt_operation", "outlist", 1151 "out2", "other", "dospec", "label", "goto", "allocation_list", 1152 "allocate_object", "array_element", "allocate_object_list", 1153 "opt_stat_spec", "pointer_name_list", "logif", "do_var", 0 1154 }; 1155 #endif 1156 1157 # ifdef YYPRINT 1158 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 1159 token YYLEX-NUM. */ 1160 static const yytype_uint16 yytoknum[] = 1161 { 1162 0, 256, 257, 44, 58, 61, 258, 259, 260, 261, 1163 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 1164 272, 43, 45, 42, 273, 274, 275, 276, 277, 278, 1165 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 1166 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 1167 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 1168 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 1169 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 1170 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 1171 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 1172 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 1173 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 1174 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 1175 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 1176 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 1177 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 1178 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1179 419, 420, 421, 422, 423, 424, 425, 426, 427, 40, 1180 41, 91, 93, 33, 95, 60, 62, 10, 47, 37 1181 }; 1182 # endif 1183 1184 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1185 static const yytype_uint16 yyr1[] = 1186 { 1187 0, 190, 191, 191, 192, 192, 192, 192, 192, 193, 1188 193, 194, 194, 194, 194, 194, 195, 196, 197, 197, 1189 197, 197, 198, 199, 199, 200, 200, 201, 202, 202, 1190 203, 203, 203, 203, 203, 203, 204, 205, 206, 207, 1191 208, 208, 208, 209, 209, 209, 210, 210, 211, 211, 1192 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 1193 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 1194 212, 213, 213, 214, 214, 214, 214, 214, 214, 214, 1195 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 1196 214, 214, 214, 214, 214, 214, 214, 215, 215, 216, 1197 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 1198 222, 222, 223, 224, 225, 226, 226, 226, 227, 227, 1199 228, 228, 228, 228, 229, 230, 230, 231, 231, 231, 1200 232, 232, 232, 232, 232, 233, 233, 234, 235, 235, 1201 235, 235, 236, 237, 237, 238, 239, 239, 240, 240, 1202 241, 241, 242, 242, 243, 243, 243, 244, 244, 245, 1203 245, 246, 247, 247, 248, 248, 249, 249, 250, 251, 1204 252, 252, 253, 253, 254, 255, 255, 256, 257, 257, 1205 257, 257, 258, 259, 259, 259, 259, 260, 260, 260, 1206 261, 262, 263, 263, 263, 263, 263, 263, 264, 264, 1207 265, 265, 266, 266, 266, 267, 267, 268, 268, 268, 1208 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 1209 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 1210 273, 274, 274, 274, 275, 275, 276, 276, 277, 277, 1211 278, 278, 278, 278, 278, 279, 279, 280, 280, 280, 1212 280, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1213 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1214 281, 281, 281, 281, 281, 281, 281, 282, 282, 283, 1215 283, 283, 283, 283, 283, 284, 284, 285, 285, 285, 1216 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 1217 285, 285, 285, 285, 285, 285, 285, 285, 286, 286, 1218 286, 286, 287, 287, 288, 288, 288, 289, 290, 290, 1219 290, 290, 291, 292, 293, 294, 294, 295, 295, 296, 1220 296, 297, 297, 297, 297, 297, 297, 297, 298, 299, 1221 299, 299, 299, 299, 299, 299, 299, 300, 300, 300, 1222 300, 301, 301, 302, 303, 303, 304, 304, 305, 305, 1223 306, 307, 308, 308, 308, 308, 309, 310, 311, 311, 1224 312, 313, 313, 314, 314, 315, 315, 315, 315, 315, 1225 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 1226 315, 315, 315, 315, 315, 315, 315, 315, 316, 317, 1227 318, 319, 320, 320, 320, 321, 321, 321, 322, 322, 1228 322, 323, 323, 324, 324, 325, 325, 326, 327, 328, 1229 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 1230 328, 329, 330, 330, 331, 331, 332, 332, 333, 334, 1231 334, 335, 335, 336, 337, 338, 338, 339, 339, 340, 1232 340, 341, 341, 341, 341, 341, 341, 342, 342, 343, 1233 343, 344, 344, 345, 345, 346, 346, 346, 346, 346, 1234 347, 347, 348, 348, 348, 348, 348, 348, 348, 348, 1235 349, 349, 350, 350, 351, 351, 351, 352, 353, 353, 1236 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 1237 354, 354, 354, 355, 355, 356, 356, 357, 357, 358, 1238 358, 358, 358, 358, 359, 359, 359, 360, 360, 360, 1239 361, 361, 361, 361, 361, 361, 361, 361, 362, 362, 1240 362, 362, 362, 363, 363, 364, 365, 365, 366, 366, 1241 366, 367, 367, 367, 368, 369, 369, 370, 370, 371, 1242 371, 372, 373 1243 }; 1244 1245 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1246 static const yytype_uint8 yyr2[] = 1247 { 1248 0, 2, 0, 2, 2, 2, 1, 3, 3, 1, 1249 3, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1250 1, 1, 0, 0, 2, 0, 1, 0, 0, 1, 1251 0, 4, 2, 5, 3, 2, 1, 0, 1, 1, 1252 0, 2, 3, 0, 2, 3, 1, 3, 1, 1, 1253 2, 4, 2, 2, 4, 2, 1, 1, 1, 1, 1254 1, 1, 1, 1, 1, 1, 4, 3, 3, 2, 1255 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 308 1256 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 309 1, 1, 1, 1, 1, 1, 1, 3, 3, 5,310 1, 3, 3, 2, 4, 1, 3, 0, 2,2,311 3, 1, 1, 1, 4, 6, 4, 1, 3, 2,312 3, 5, 3, 1, 0, 2, 1, 4, 3, 2,313 3, 3, 3, 3, 0, 1, 2, 2, 3, 5,314 3, 0, 2, 2, 1, 5, 5, 2, 3, 2,315 3, 1, 3, 2, 3, 5, 1, 2, 1, 3,316 2, 1, 3, 0, 1, 1, 3, 3, 2, 1,317 3, 2, 2, 0, 6, 7, 0, 2, 2, 3,318 3, 1, 0, 2, 4, 3, 3, 4, 2, 1,319 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,320 3, 0, 2, 3, 1, 3, 2, 3, 1,1,321 1, 1, 0, 3, 0, 2, 4, 1, 3, 1,322 1, 1, 2, 1, 4, 1, 1, 1, 1,1,323 1, 1, 1, 1, 1, 0, 3, 1, 3, 1,324 1, 2, 2, 3, 1, 1, 1, 3, 1,1,325 3, 3, 4, 4, 3, 4, 4, 3, 4,4,1257 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1258 5, 1, 3, 3, 2, 4, 1, 3, 0, 2, 1259 2, 3, 1, 1, 1, 4, 6, 4, 1, 3, 1260 2, 3, 5, 3, 1, 0, 2, 1, 4, 3, 1261 2, 3, 3, 3, 3, 0, 1, 2, 2, 3, 1262 5, 3, 0, 2, 2, 1, 5, 5, 2, 3, 1263 2, 3, 1, 3, 2, 3, 5, 1, 2, 1, 1264 3, 2, 1, 3, 0, 1, 1, 3, 3, 2, 1265 1, 3, 2, 2, 0, 6, 7, 0, 2, 2, 1266 3, 3, 1, 0, 2, 4, 3, 3, 4, 2, 1267 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1268 1, 3, 0, 2, 3, 1, 3, 2, 3, 1, 1269 1, 1, 1, 0, 3, 0, 2, 4, 1, 3, 1270 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1271 1, 1, 1, 1, 1, 1, 0, 3, 1, 3, 1272 1, 1, 2, 2, 3, 1, 1, 1, 3, 1, 1273 1, 3, 3, 4, 4, 3, 4, 4, 3, 4, 326 1274 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 327 4, 3, 4, 4, 4, 4, 1, 3, 1, 1, 328 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 329 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 330 2, 2, 2, 2, 2, 2, 2, 0, 1, 2, 331 2, 2, 1, 1, 1, 1, 0, 1, 2, 4, 332 5, 4, 3, 3, 1, 2, 1, 3, 1, 1, 333 3, 5, 4, 3, 2, 2, 1, 1, 1, 1, 334 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 335 0, 1, 5, 0, 1, 1, 1, 0, 3, 0, 336 5, 2, 4, 6, 6, 1, 1, 1, 3, 3, 337 1, 3, 3, 1, 1, 5, 5, 4, 1, 2, 338 2, 2, 2, 1, 2, 5, 1, 1, 2, 5, 339 1, 2, 3, 4, 1, 1, 1, 1, 1, 1, 340 1, 1, 3, 3, 3, 2, 2, 0, 5, 7, 341 0, 2, 1, 1, 0, 1, 1, 1, 0, 1, 342 1, 2, 1, 1, 1, 5, 5, 2, 2, 2, 343 2, 1, 0, 4, 6, 1, 3, 2, 2, 2, 344 0, 3, 0, 1, 2, 1, 1, 3, 1, 2, 345 1, 1, 2, 2, 2, 3, 2, 1, 0, 2, 346 1, 1, 1, 0, 2, 0, 1, 2, 2, 0, 347 1, 0, 2, 3, 3, 3, 3, 1, 3, 1, 1275 4, 4, 3, 4, 4, 4, 4, 1, 3, 1, 1276 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1277 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1278 3, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1279 2, 2, 2, 1, 1, 1, 1, 0, 1, 2, 1280 4, 5, 4, 3, 3, 1, 2, 1, 3, 1, 1281 1, 3, 5, 4, 3, 2, 2, 1, 1, 1, 1282 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1283 1, 0, 1, 5, 0, 1, 1, 1, 0, 3, 1284 0, 5, 2, 4, 6, 6, 1, 1, 1, 3, 1285 3, 1, 3, 3, 1, 1, 5, 5, 4, 1, 1286 2, 2, 2, 2, 1, 2, 5, 1, 1, 2, 1287 5, 1, 2, 3, 4, 1, 1, 1, 1, 1, 1288 1, 1, 1, 3, 3, 3, 2, 2, 0, 5, 1289 7, 0, 2, 1, 1, 0, 1, 1, 1, 1, 1290 2, 1, 1, 1, 5, 5, 2, 2, 2, 2, 1291 1, 0, 4, 6, 1, 3, 2, 2, 2, 0, 1292 3, 0, 1, 2, 1, 1, 3, 1, 2, 1, 1293 1, 2, 2, 2, 3, 2, 1, 0, 1, 2, 1294 2, 0, 2, 3, 3, 3, 3, 1, 3, 1, 348 1295 1, 3, 1, 1, 1, 2, 4, 4, 2, 2, 349 1296 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, … … 352 1299 4, 2, 2, 5, 0, 1, 2, 1, 1, 1, 353 1300 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 354 5, 5, 5, 5, 7, 1, 3, 1, 8, 2, 355 1, 1, 3, 1, 1, 1, 4, 1, 3, 1, 356 3, 0, 4, 1, 3, 0, 1, 0, 2, 3, 357 1, 1301 5, 5, 5, 5, 7, 1, 8, 2, 1, 1, 1302 3, 1, 1, 1, 4, 1, 3, 0, 4, 1, 1303 3, 3, 1 358 1304 }; 359 short fortrandefred[] = { 1, 360 0, 37, 19, 20, 17, 18, 27, 5, 21, 2, 361 0, 0, 27, 23, 3, 113, 38, 0, 0, 458, 362 0, 387, 388, 0, 0, 0, 0, 0, 29, 0, 363 0, 0, 0, 0, 391, 0, 497, 0, 0, 417, 364 397, 0, 0, 0, 418, 0, 491, 492, 496, 498, 365 495, 0, 0, 0, 145, 396, 0, 0, 0, 395, 366 0, 421, 124, 0, 446, 157, 0, 0, 0, 451, 367 0, 452, 366, 0, 182, 0, 193, 192, 197, 195, 368 398, 401, 400, 399, 190, 114, 194, 196, 338, 436, 369 0, 0, 0, 0, 0, 379, 0, 0, 0, 60, 370 0, 8, 21, 21, 0, 0, 21, 0, 0, 0, 371 0, 58, 61, 62, 63, 64, 65, 0, 0, 0, 372 0, 0, 0, 0, 0, 375, 384, 0, 0, 0, 373 0, 423, 424, 425, 0, 0, 0, 0, 0, 0, 374 0, 25, 37, 7, 36, 32, 0, 0, 0, 285, 375 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377 0, 0, 0, 0, 0, 0, 0, 339, 340, 0, 378 347, 350, 349, 342, 343, 344, 341, 0, 0, 0, 379 0, 0, 249, 0, 247, 0, 281, 0, 316, 250, 380 0, 0, 0, 356, 430, 0, 0, 0, 101, 0, 381 428, 0, 0, 150, 0, 148, 0, 429, 0, 414, 382 413, 392, 548, 0, 550, 0, 416, 407, 35, 383, 383 0, 480, 478, 0, 457, 0, 0, 0, 0, 162, 384 0, 0, 138, 0, 0, 172, 173, 158, 143, 144, 385 170, 0, 234, 235, 0, 72, 52, 0, 0, 0, 386 112, 0, 50, 0, 174, 381, 382, 380, 0, 0, 387 0, 178, 15, 0, 0, 0, 10, 11, 39, 21, 388 37, 14, 0, 0, 0, 0, 166, 165, 0, 0, 389 0, 0, 0, 0, 0, 0, 120, 0, 0, 137, 390 0, 0, 0, 0, 159, 0, 0, 179, 0, 210, 391 0, 367, 0, 389, 0, 0, 433, 385, 0, 0, 392 0, 0, 0, 0, 422, 431, 0, 0, 440, 445, 393 0, 453, 514, 515, 494, 0, 0, 0, 0, 0, 394 0, 0, 0, 0, 454, 0, 0, 0, 0, 0, 395 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 398 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 399 0, 0, 348, 0, 352, 346, 345, 317, 0, 319, 400 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402 0, 282, 0, 0, 393, 0, 0, 0, 0, 0, 403 109, 152, 0, 0, 0, 0, 570, 0, 0, 0, 404 0, 0, 551, 556, 0, 0, 0, 0, 0, 560, 405 564, 0, 0, 74, 75, 78, 73, 79, 76, 81, 406 82, 83, 84, 85, 80, 86, 87, 88, 89, 90, 407 91, 92, 93, 94, 95, 77, 96, 0, 97, 0, 408 139, 0, 0, 0, 0, 0, 0, 220, 222, 0, 409 224, 0, 226, 227, 228, 229, 230, 221, 0, 218, 410 216, 174, 110, 0, 0, 180, 0, 0, 203, 0, 411 0, 0, 9, 16, 12, 13, 0, 0, 0, 0, 412 0, 123, 0, 0, 0, 70, 0, 0, 0, 126, 413 121, 141, 0, 0, 161, 0, 0, 184, 0, 212, 414 0, 0, 0, 0, 0, 207, 181, 0, 0, 0, 415 412, 571, 0, 405, 0, 0, 433, 437, 0, 0, 416 0, 0, 447, 484, 485, 0, 0, 0, 0, 481, 417 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418 0, 468, 0, 516, 0, 0, 469, 0, 0, 0, 419 0, 0, 0, 456, 49, 48, 41, 0, 46, 0, 420 0, 0, 252, 0, 0, 0, 251, 258, 255, 0, 421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 423 0, 0, 324, 0, 0, 0, 0, 248, 0, 0, 424 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, 425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 427 0, 394, 104, 0, 103, 102, 66, 0, 0, 0, 428 0, 0, 0, 477, 476, 479, 0, 0, 0, 378, 429 0, 163, 0, 99, 0, 171, 51, 0, 223, 0, 430 0, 0, 0, 111, 0, 0, 204, 0, 245, 0, 431 238, 0, 240, 434, 31, 0, 54, 167, 0, 0, 432 136, 0, 0, 0, 0, 0, 0, 129, 0, 0, 433 0, 160, 0, 0, 0, 0, 189, 186, 208, 0, 434 0, 0, 368, 0, 0, 0, 0, 450, 442, 0, 435 489, 490, 0, 0, 0, 0, 474, 475, 0, 0, 436 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 437 0, 0, 0, 42, 0, 33, 386, 0, 253, 254, 438 257, 261, 262, 263, 264, 265, 260, 266, 267, 268, 439 269, 270, 271, 273, 274, 275, 276, 256, 0, 0, 440 0, 248, 532, 0, 536, 0, 534, 0, 259, 0, 441 0, 322, 0, 327, 0, 330, 0, 0, 0, 0, 442 0, 0, 0, 0, 153, 390, 0, 0, 0, 553, 443 376, 561, 377, 565, 98, 0, 0, 0, 147, 232, 444 233, 231, 0, 219, 217, 0, 0, 206, 0, 0, 445 237, 0, 0, 122, 0, 0, 0, 0, 0, 0, 446 115, 128, 0, 117, 140, 146, 185, 0, 187, 0, 447 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 448 0, 500, 0, 482, 0, 0, 527, 517, 47, 44, 449 0, 0, 0, 0, 0, 361, 0, 0, 0, 0, 450 0, 321, 105, 0, 557, 0, 100, 0, 0, 199, 451 225, 0, 0, 239, 0, 244, 119, 0, 0, 0, 452 0, 0, 188, 214, 0, 364, 0, 371, 370, 369, 453 426, 427, 0, 435, 488, 0, 0, 0, 45, 0, 454 541, 543, 542, 353, 0, 0, 328, 0, 0, 563, 455 0, 0, 175, 0, 116, 0, 0, 0, 524, 0, 456 0, 0, 0, 201, 176, 0, 373, 372, 0, 0, 457 0, 0, 0, 0, 0, 0, 1305 1306 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 1307 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 1308 means the default is an error. */ 1309 static const yytype_uint16 yydefact[] = 1310 { 1311 2, 0, 1, 37, 20, 21, 18, 19, 27, 6, 1312 22, 3, 25, 30, 27, 24, 4, 26, 37, 113, 1313 38, 0, 0, 456, 0, 387, 388, 0, 0, 0, 1314 0, 0, 29, 354, 108, 108, 0, 0, 391, 0, 1315 486, 0, 0, 417, 397, 415, 0, 0, 418, 0, 1316 480, 481, 485, 487, 484, 0, 0, 0, 145, 396, 1317 108, 108, 0, 395, 0, 419, 124, 0, 444, 157, 1318 0, 0, 0, 449, 0, 450, 366, 71, 182, 0, 1319 193, 192, 197, 195, 398, 401, 400, 399, 190, 114, 1320 194, 196, 338, 434, 5, 9, 22, 0, 22, 0, 1321 22, 0, 0, 57, 125, 65, 142, 64, 164, 59, 1322 61, 60, 56, 0, 63, 58, 215, 0, 183, 202, 1323 191, 431, 62, 0, 25, 0, 379, 0, 0, 384, 1324 411, 0, 375, 0, 430, 423, 439, 0, 0, 422, 1325 0, 0, 0, 421, 0, 8, 7, 36, 32, 40, 1326 0, 0, 285, 286, 0, 0, 0, 0, 0, 0, 1327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1329 339, 340, 0, 347, 350, 349, 342, 343, 344, 341, 1330 0, 402, 250, 247, 0, 279, 316, 318, 315, 281, 1331 314, 280, 351, 249, 0, 0, 356, 357, 428, 0, 1332 69, 101, 0, 355, 426, 0, 150, 0, 148, 0, 1333 427, 0, 414, 413, 392, 535, 0, 537, 0, 416, 1334 407, 35, 383, 0, 469, 467, 0, 455, 0, 0, 1335 0, 0, 162, 0, 0, 138, 0, 53, 172, 173, 1336 158, 143, 144, 170, 169, 234, 235, 108, 72, 52, 1337 30, 15, 25, 0, 11, 39, 22, 12, 0, 0, 1338 55, 166, 127, 164, 0, 125, 0, 236, 120, 125, 1339 165, 137, 0, 165, 0, 0, 0, 236, 154, 159, 1340 0, 0, 0, 112, 50, 0, 177, 174, 209, 210, 1341 0, 0, 0, 179, 0, 0, 178, 0, 16, 236, 1342 367, 362, 37, 381, 380, 382, 164, 408, 406, 0, 1343 0, 0, 420, 0, 441, 438, 443, 429, 0, 451, 1344 503, 504, 483, 0, 0, 0, 0, 338, 0, 490, 1345 491, 452, 457, 461, 0, 482, 0, 453, 389, 0, 1346 0, 431, 385, 0, 34, 0, 284, 277, 0, 0, 1347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349 0, 0, 0, 0, 0, 527, 517, 249, 0, 519, 1350 518, 0, 0, 247, 0, 0, 0, 0, 0, 0, 1351 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 1352 0, 0, 0, 282, 283, 0, 354, 319, 317, 317, 1353 345, 348, 346, 352, 0, 0, 393, 0, 0, 236, 1354 0, 0, 109, 152, 151, 149, 0, 0, 551, 0, 1355 542, 431, 539, 547, 538, 543, 341, 247, 314, 541, 1356 545, 547, 549, 0, 67, 74, 75, 78, 73, 79, 1357 76, 81, 82, 83, 84, 85, 80, 86, 87, 88, 1358 89, 90, 91, 92, 93, 94, 95, 77, 96, 97, 1359 68, 0, 139, 0, 106, 0, 0, 0, 10, 17, 1360 40, 13, 0, 0, 0, 135, 0, 70, 0, 0, 1361 135, 123, 164, 0, 126, 121, 141, 164, 236, 236, 1362 164, 161, 0, 155, 220, 222, 236, 224, 0, 226, 1363 227, 228, 229, 230, 0, 218, 221, 216, 40, 174, 1364 110, 0, 0, 212, 207, 211, 181, 184, 0, 338, 1365 0, 213, 0, 203, 205, 0, 180, 236, 0, 14, 1366 412, 552, 405, 0, 436, 437, 431, 435, 0, 447, 1367 0, 442, 445, 473, 474, 0, 314, 0, 470, 472, 1368 488, 498, 501, 500, 499, 0, 472, 507, 514, 508, 1369 514, 459, 458, 514, 505, 507, 460, 0, 0, 0, 1370 0, 0, 496, 454, 0, 0, 49, 48, 41, 0, 1371 46, 43, 0, 0, 252, 0, 0, 0, 251, 258, 1372 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1373 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 1374 247, 0, 0, 0, 324, 0, 0, 0, 248, 0, 1375 0, 313, 307, 302, 292, 303, 304, 305, 301, 291, 1376 297, 299, 293, 295, 287, 288, 289, 0, 0, 309, 1377 306, 290, 0, 296, 0, 294, 323, 0, 325, 0, 1378 0, 403, 404, 394, 0, 103, 104, 102, 66, 0, 1379 0, 0, 317, 0, 0, 466, 468, 465, 0, 0, 1380 0, 378, 0, 163, 0, 99, 0, 171, 51, 31, 1381 168, 54, 167, 0, 118, 0, 136, 0, 0, 127, 1382 129, 0, 125, 241, 245, 0, 238, 240, 246, 0, 1383 198, 198, 0, 160, 223, 0, 0, 0, 111, 0, 1384 236, 208, 0, 0, 213, 186, 0, 189, 0, 204, 1385 432, 0, 0, 363, 368, 0, 236, 448, 440, 0, 1386 0, 478, 479, 317, 475, 0, 463, 464, 502, 464, 1387 0, 515, 511, 512, 507, 509, 462, 497, 493, 494, 1388 495, 492, 547, 547, 0, 42, 0, 33, 386, 278, 1389 253, 254, 257, 261, 262, 263, 264, 265, 260, 266, 1390 267, 268, 269, 270, 271, 273, 274, 275, 276, 256, 1391 248, 0, 0, 0, 520, 521, 524, 525, 522, 523, 1392 259, 247, 312, 310, 311, 300, 298, 354, 337, 329, 1393 326, 327, 330, 320, 322, 236, 153, 390, 0, 0, 1394 0, 540, 376, 546, 377, 550, 98, 107, 0, 115, 1395 135, 135, 135, 135, 135, 130, 128, 135, 117, 122, 1396 243, 0, 237, 242, 140, 0, 146, 147, 156, 232, 1397 233, 231, 0, 219, 217, 236, 198, 185, 213, 187, 1398 0, 206, 0, 0, 0, 0, 236, 446, 489, 0, 1399 0, 0, 471, 472, 507, 514, 516, 506, 0, 0, 1400 47, 44, 0, 338, 0, 0, 0, 361, 0, 0, 1401 335, 336, 0, 321, 105, 0, 544, 0, 100, 119, 1402 131, 132, 133, 134, 0, 239, 244, 246, 0, 199, 1403 200, 225, 198, 358, 188, 214, 374, 364, 365, 371, 1404 370, 369, 0, 433, 477, 476, 0, 510, 424, 425, 1405 45, 0, 530, 532, 531, 353, 334, 0, 331, 328, 1406 0, 548, 116, 0, 358, 175, 0, 0, 0, 409, 1407 513, 0, 333, 0, 536, 201, 176, 0, 373, 372, 1408 0, 0, 332, 359, 410, 533, 0, 534 458 1409 }; 459 short fortrandgoto[] = { 1, 460 262, 263, 91, 286, 598, 353, 927, 928, 742, 743, 461 512, 710, 711, 287, 242, 146, 313, 222, 92, 93, 462 94, 95, 96, 97, 98, 189, 190, 191, 553, 843, 463 192, 722, 280, 311, 193, 194, 542, 599, 195, 356, 464 196, 197, 385, 386, 387, 893, 723, 198, 199, 640, 465 814, 815, 816, 395, 396, 205, 211, 724, 663, 645, 466 200, 357, 713, 422, 910, 433, 100, 10, 276, 11, 467 101, 12, 143, 13, 14, 102, 103, 277, 104, 105, 468 106, 107, 0, 108, 776, 255, 215, 245, 109, 110, 469 111, 112, 113, 114, 115, 116, 117, 478, 208, 118, 470 293, 498, 479, 483, 209, 428, 503, 264, 289, 294, 471 119, 297, 120, 300, 121, 839, 122, 304, 305, 252, 472 505, 265, 953, 272, 123, 308, 124, 544, 737, 509, 473 499, 500, 641, 954, 125, 126, 441, 683, 449, 452, 474 127, 128, 202, 129, 320, 554, 130, 228, 0, 131, 475 325, 132, 133, 134, 135, 136, 274, 137, 329, 561, 476 562, 138, 563, 225, 139, 332, 140, 345, 141, 235, 477 0, 0, 0, 582, 583, 346, 587, 0, 568, 347, 478 570, 571, 349, 584, 585, 763, 0, 443, 444, 0, 479 0, 0, 1410 1411 /* YYDEFGOTO[NTERM-NUM]. */ 1412 static const yytype_int16 yydefgoto[] = 1413 { 1414 -1, 1, 11, 94, 95, 96, 261, 12, 262, 13, 1415 18, 15, 97, 98, 148, 14, 99, 266, 354, 777, 1416 599, 600, 100, 257, 479, 480, 247, 210, 211, 428, 1417 483, 217, 294, 295, 101, 102, 273, 703, 103, 104, 1418 278, 274, 704, 705, 105, 106, 281, 107, 108, 109, 1419 110, 111, 434, 112, 113, 288, 289, 244, 276, 270, 1420 271, 114, 254, 115, 531, 296, 530, 116, 117, 303, 1421 540, 118, 119, 120, 856, 919, 306, 543, 300, 541, 1422 737, 297, 524, 525, 862, 526, 504, 715, 716, 717, 1423 357, 192, 358, 193, 194, 413, 660, 642, 195, 668, 1424 196, 197, 198, 199, 670, 820, 821, 822, 200, 201, 1425 202, 422, 417, 214, 208, 955, 956, 203, 122, 123, 1426 311, 743, 744, 928, 929, 124, 125, 126, 127, 128, 1427 204, 129, 552, 317, 224, 230, 130, 131, 132, 309, 1428 133, 134, 322, 135, 325, 560, 136, 137, 561, 562, 1429 138, 139, 581, 341, 586, 329, 237, 567, 568, 140, 1430 343, 141, 142, 344, 570, 346, 582, 583, 584, 762, 1431 388, 389, 390, 894, 227, 143, 443, 444, 445, 451, 1432 684, 453, 144, 553 480 1433 }; 481 short fortransindex[] = { 0, 482 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483 27287, -307, 0, 0, 0, 0, 0, -289, -289, 0, 484 111, 0, 0,25188, 118, 1476, 147, 153, 0,25188, 485 91, 107, 1476, 163, 0, 27, 0, -13,25188, 0, 486 0, -250, -178, 27, 0, 208, 0, 0, 0, 0, 487 0, -14, 215, 229, 0, 0, 201, 201, -151, 0, 488 244, 0, 0, -237, 0, 0, -89, 27, 27, 0, 489 -100, 0, 0, -101, 0, 27, 0, 0, 0, 0, 490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 491 284, 35, 27, 27, 27, 0, 290, 134, 280, 0, 492 79, 0, 0, 0, -5, -307, 0, 138, -9, 387, 493 388, 0, 0, 0, 0, 0, 0, 42, -117, 404, 494 387, -110, 225, -312, 43, 0, 0, 3999, 54,25188, 495 41, 0, 0, 0, 1476, 420, 425, 59, 437,25721, 496 437, 0, 0, 0, 0, 0, 444,25188,25188, 0, 497 0,25188, 446, 448, 450,25188,25188,25188, 455, 456, 498 466, 478, 480, 486, 487, 497, 503, 504, 509, 513, 499 25188, 515, 524, 528, 532, 533,25241, 0, 0, 539, 500 0, 0, 0, 0, 0, 0, 0,25188, 18, 149, 501 542,25188, 0, 548, 0, 553, 0, 563, 0, 0, 502 8597, 115,25188, 0, 0, 8597, 190, 570, 0,25188, 503 0, 8597, 558, 0, 222, 0, 222, 0,25188, 0, 504 0, 0, 0,25188, 0,25903, 0, 0, 0, 0, 505 190, 0, 0,25380, 0, 190, 190, 222, 3040, 0, 506 224, 190, 0,25188, 609, 0, 0, 0, 0, 0, 507 0, 610, 0, 0, 201, 0, 0, 255, 1930, 603, 508 0, 651, 0, -289, 0, 0, 0, 0, 283,25428, 509 -312, 0, 0, 665,27287, -307, 0, 0, 0, 0, 510 0, 0, -289, 648, 296, 675, 0, 0, 19, 308, 511 19, -12, 86, -11, 665, 308, 0, 190, 19, 0, 512 313, 665, 318, 692, 0, -10, 3093, 0,24098, 0, 513 703, 0, 711, 0, 717, 732, 0, 0, 387, 190, 514 8597,25188,25188, 190, 0, 0, 360, 4498, 0, 0, 515 25685, 0, 0, 0, 0,25188,25188,25188,25188, 740, 516 25685, 149, 553, 1423, 0, 764, 209, 0, 9398,25241, 517 0, 8, 535,25936, 3157, 236, 8597,25188,25188,25188, 518 281,26019, 461,25188,25188,25188,25188,25188,25188,25188, 519 25188,25188,25188,25188,25188,26043,25188,25188,25188,25188, 520 25188,25241, 0, 781, 451, 786, 789, 0, 8597,25188, 521 790,26094, 0,25188, 0, 0, 0, 0, 48, 0, 522 190, 0,24299,25188,25188,25188,25188,25188,25188,25188, 523 25188,25188,25188,25188,25188,25188,25188, 2012,25188,24438, 524 24486, 0,25188,25188, 0,26169, 665, 475, 147,26191, 525 0, 0, 791, 791,26213,27040, 0, 796, 553, 563, 526 793, 801, 0, 0, 798, 256, 799, 796, 797, 0, 527 0, 568, 791, 0, 0, 0, 0, 0, 0, 0, 528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529 0, 0, 0, 0, 0, 0, 0, 800, 0, 571, 530 0, 8597, 577, 802, 428, 27, 665, 0, 0, 665, 531 0, 807, 0, 0, 0, 0, 0, 0, 119, 0, 532 0, 0, 0, 444, 436, 0,24627, 8597, 0, 819, 533 2554, 665, 0, 0, 0, 0, 444,25188, 599, 296, 534 387, 0, 387, 233,25188, 0, 447, 449, 233, 0, 535 0, 0, 387, 665, 0, 692, 318, 0, 3093, 0, 536 24251, 817, 8597, 824,24675, 0, 0, -225, 190, 190, 537 0, 0, 806, 0, 8597, 8597, 0, 0, 445, 8597, 538 827, 826, 0, 0, 0, 9456, 9398, 605, 100, 0, 539 0, 8597, 8597, 8597, 8597,25188, 333, 1423, 538, 553, 540 8597, 0, 828, 0, 8597, 1423, 0, 9398, 9398, 9398, 541 9398, 9398, 598, 0, 0, 0, 0, 614, 0, 833, 542 1476,25188, 0, 618, 619,26276, 0, 0, 0,26327, 543 26349,26446,26468,26509,26582,26604,26626,26701,26742,26764, 544 26859, 0, 626, 634, 636, 638, 642, 831, 834, 835, 545 26881,25241, 0,25241,25241, 644,25188, 0, 822, 840, 546 24813, 553, 841,25188, 0, 8597, 2081, 2081, 2226, 2226, 547 3157, 84, 84, 84, 84, 84, 84, 90, 90, 48, 548 25188,25188, 0, 8597, 48,25188, 84,25188, 84, 8597, 549 8597, 0, 0, 190, 0, 0, 0, 468, 551,25188, 550 24813, -278, 845, 0, 0, 0, -278, 846, 190, 0, 551 3040, 0,25188, 0,25188, 0, 0, 852, 0, -170, 552 1930, 843, 485, 0, 665, 864, 0,25188, 0, 646, 553 0, 6917, 0, 0, 0, 8597, 0, 0, 318, 308, 554 0, 321, 550, 635,26934, 643, 870, 0, 645, 190, 555 852, 0, 878,24675, 817, 506, 0, 0, 0, 862, 556 547, 880, 0, 793, 797,25188, 665, 0, 0, 4498, 557 0, 0,24813, 631, 544,25685, 0, 0, 8597, 0, 558 656, 0, 8597, 8597, 1423, 8597, 828, 250, 598, 598, 559 598, 38, -1, 0, 10, 0, 0, 8597, 0, 0, 560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 561 0, 0, 0, 0, 0, 0, 0, 0,25563,25563, 562 25563, 0, 0, 8597, 0, 8597, 0, 8597, 0, 885, 563 25188, 0,24866, 0, 883, 0, 7337, 548, 84, 84, 564 48, 84, 84, 665, 0, 0,26997, 658, 867, 0, 565 0, 0, 0, 0, 0, 8597, 660,25616, 0, 0, 566 0, 0, 891, 0, 0, 665, 852, 0, 8597, 2554, 567 0,25005, 692, 0, 149, 233, 233, 233, 233, 233, 568 0, 0, 233, 0, 0, 0, 0, 817, 0,24675, 569 28, 516, 517, 894, 895,27113, 665, 0, 896,24169, 570 190, 0, 209, 0, 2501, 8597, 0, 0, 0, 0, 571 662, 879, 898, 900, 902, 0, 903,25188, 7757,24813, 572 25188, 0, 0, 904, 0, 190, 0,25053, 8597, 0, 573 0, 852, 0, 0, 8597, 0, 0, 184, 184, 906, 574 491, 677, 0, 0, 573, 0, 917, 0, 0, 0, 575 0, 0,25188, 0, 0, 801, 909, 8597, 0,25188, 576 0, 0, 0, 0, 8597,25188, 0, 8177,25188, 0, 577 927, 0, 0, 911, 0, 557, 559,27166, 0,27187, 578 8597,25188, 8597, 0, 0,25188, 0, 0,25188,25188, 579 8597, 8597, 8597,27272,25188, 8597, 1434 1435 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1436 STATE-NUM. */ 1437 #define YYPACT_NINF -702 1438 static const yytype_int16 yypact[] = 1439 { 1440 -702, 921, -702, -702, -702, -702, -702, -702, -702, -702, 1441 -702, -702, -59, 5446, -702, -702, -702, -702, -702, -702, 1442 -702, -24, -24, -702, -3, -702, -702, 4703, 3, 2638, 1443 49, 56, -702, 4703, 37, 38, 2638, 146, -702, -93, 1444 -702, -110, 4703, -702, -702, 43, 48, -93, -702, 148, 1445 -702, -702, -702, -702, -702, 185, 156, 158, -702, -702, 1446 164, 164, 79, -702, 171, -702, -702, -51, -702, -702, 1447 -7, -93, -93, -702, 75, -702, -702, 53, -702, -93, 1448 -702, -702, -702, -702, -702, -702, -702, -702, -702, -702, 1449 -702, -702, -702, -702, 179, -702, -702, 224, -702, 130, 1450 -702, -81, 186, 136, 149, -702, 138, -702, 360, 363, 1451 -702, -702, 172, 150, -702, -702, 145, -19, 16, 29, 1452 370, 395, -702, 231, -59, -93, -702, -93, -93, -702, 1453 230, 4703, -702, 27, 405, -702, 233, 241, 2638, -702, 1454 236, 2722, 236, -702, 5702, -702, -702, -702, -702, 253, 1455 4703, 4703, -702, -702, 4703, 256, 257, 266, 4703, 4703, 1456 4703, 267, 271, 277, 289, 292, 298, 304, 312, 313, 1457 314, 315, 317, 4703, 318, 328, 329, 330, 331, 4831, 1458 -702, -702, 334, -702, -702, -702, -702, -702, -702, -702, 1459 4703, 2443, -702, -702, 4703, 244, -702, 335, 343, -702, 1460 344, 359, 228, -702, 58, 4703, -702, 2443, -702, 362, 1461 529, -702, 4703, 2443, -702, 536, -702, 372, -702, 372, 1462 -702, 4703, -702, -702, -702, -702, 4703, -702, 1425, -702, 1463 -702, -702, -702, 362, -702, -702, 4959, -702, 362, 362, 1464 372, 3079, -702, 373, 362, -702, 4703, 541, -702, -702, 1465 -702, -702, -702, -702, 544, -702, -702, 164, -702, -702, 1466 5446, -702, -59, -24, -702, -702, -702, -702, 548, 390, 1467 563, -702, 60, 28, 333, 408, 159, 399, -702, 408, 1468 362, -702, 159, -702, 410, 412, 159, 399, 571, -702, 1469 413, 445, 581, -702, -702, -24, 583, -702, 3039, -702, 1470 404, 147, 3935, -702, 5087, -19, -702, 411, -702, 399, 1471 -702, 586, -702, -702, -702, -702, 360, 362, 2443, 4703, 1472 4703, 362, -702, 414, 4063, -702, -702, -702, 2588, -702, 1473 -702, -702, -702, 4703, 4703, 4703, 4703, 587, 2588, 244, 1474 359, -702, 1096, 588, 403, 580, 2852, 4831, -702, 416, 1475 417, -702, -702, 17, 567, 1446, 2556, 2443, 23, 4703, 1476 4703, 4703, 42, 1469, 52, 4703, 4703, 4703, 4703, 4703, 1477 4703, 4703, 4703, 4703, 4703, 4703, 4703, 1491, 4703, 4703, 1478 4703, 4703, 4703, 4831, 2443, 1512, 722, -702, 461, 595, 1479 604, 4703, 1548, 607, 3423, 4703, 4703, 4703, 4703, 4703, 1480 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 3167, 1481 4703, 3551, 3679, -702, 19, 362, 4703, -702, -702, -702, 1482 -702, -702, -702, -702, 4703, 4703, -702, 1570, 65, 399, 1483 49, 1694, -702, -702, 608, 608, 1752, 791, -702, 244, 1484 -54, 22, 425, 612, -702, -702, 436, 437, 8, 22, 1485 -702, 616, -702, 70, 608, -702, -702, -702, -702, -702, 1486 -702, -702, -702, -702, -702, -702, -702, -702, -702, -702, 1487 -702, -702, -702, -702, -702, -702, -702, -702, -702, -702, 1488 617, 597, -702, 74, 2443, 443, 454, -93, -702, -702, 1489 253, -702, 4703, 76, 390, 260, 4703, -702, 455, 457, 1490 260, -702, 360, 2489, -702, -702, -702, 360, 399, 399, 1491 360, -702, 413, 571, -702, -702, 399, -702, 449, -702, 1492 -702, -702, -702, -702, 356, -702, -702, -702, 253, -702, 1493 -702, 460, 4191, -702, -702, 2443, -702, -702, 3935, 3295, 1494 452, 630, 4319, -702, 2443, 462, -702, 399, 33, -702, 1495 -702, -702, -702, 629, 2443, 2443, -702, -702, 467, 2443, 1496 464, 642, -702, -702, -702, 2852, 3807, 78, -702, 106, 1497 -702, 2443, 2443, 2443, 2443, 4703, 308, 5572, 2443, 244, 1498 1773, -702, 643, 2443, -702, 5572, -702, 2852, 2852, 2852, 1499 2852, 2852, 623, -702, 362, 362, -702, -702, -702, 86, 1500 -702, 471, 2638, 4703, -702, 87, 89, 1794, -702, -702, 1501 -702, 1815, 1836, 1876, 1897, 1939, 2018, 2079, 2121, 2142, 1502 2163, 2200, 2221, -702, 90, 92, 93, 94, 98, 2261, 1503 648, 649, 650, 4831, -702, 4831, 4831, 103, -702, 4703, 1504 4703, 2443, -702, 2460, 2460, 2481, 2481, 2556, 2577, 2577, 1505 2577, 2577, 2577, 2577, 119, 119, 19, 4703, 4703, 2443, 1506 -702, 19, 4703, 2577, 4703, 2577, 244, 652, 2783, 477, 1507 478, 2443, 2443, -702, 362, -702, -702, -702, -702, 490, 1508 576, 4703, 2783, -8, 481, -702, -702, -702, -8, 482, 1509 362, -702, 3079, -702, 4703, -702, 4703, -702, -702, -702, 1510 2443, -702, -702, 639, 35, 387, -702, 2345, 640, 486, 1511 -702, 646, 408, 4703, -702, 104, -702, -702, 1325, 362, 1512 651, 651, 413, -702, -702, 264, 445, 662, -702, 502, 1513 399, -702, 492, 4191, 630, -702, 504, -702, 495, -702, 1514 -702, 672, 552, 677, -702, 4703, 399, -702, -702, 4063, 1515 513, -702, -702, 2783, 674, 2588, -702, -702, 2443, 680, 1516 105, -702, 2443, 2443, 5572, 2443, 643, 547, 623, 623, 1517 623, 396, 612, 616, 20, -702, 141, -702, -702, 2443, 1518 -702, -702, -702, -702, -702, -702, -702, -702, -702, -702, 1519 -702, -702, -702, -702, -702, -702, -702, -702, -702, -702, 1520 -702, 5215, 5215, 5215, 2443, -702, 2443, -702, 2443, -702, 1521 -702, 514, 2577, 2577, 19, 2577, 2577, 4703, 2911, 1360, 1522 698, -702, -702, 335, -702, 399, -702, -702, 2403, 109, 1523 697, -702, -702, -702, -702, -702, -702, 2443, 111, -702, 1524 260, 260, 260, 260, 260, 359, -702, 260, -702, -702, 1525 2443, 2489, -702, 4447, -702, 5343, -702, -702, 571, -702, 1526 -702, -702, 523, -702, -702, 399, 651, -702, 630, -702, 1527 4191, -702, -47, 535, 538, 1171, 399, -702, -702, 744, 1528 525, 362, -702, 403, 5613, 2443, -702, -702, 530, 531, 1529 -702, -702, 116, 704, 532, 533, 534, -702, 537, 4703, 1530 1382, 4703, 2783, -702, -702, 712, -702, 362, -702, -702, 1531 10, 10, 528, 115, 695, -702, -702, 2443, 4575, -702, 1532 2443, -702, 651, 715, -702, -702, 598, -702, 718, -702, 1533 -702, -702, 4703, -702, -702, 425, 543, 2443, -702, -702, 1534 -702, 4703, -702, -702, -702, -702, 2443, 4703, 1404, -702, 1535 4703, -702, -702, 554, 715, -702, 723, 572, 573, 1194, 1536 -702, 1280, 2443, 4703, 2443, -702, -702, 4703, -702, -702, 1537 4703, 4703, 2443, 2443, 2443, 1303, 4703, 2443 580 1538 }; 581 short fortranrindex[] = { 0, 582 5433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583 223,23906, 0, 0, 0, 0, 0, 0, 0, 0, 584 0, 0, 0, 0, 0, 0, 0, 0, 0,23602, 585 560, 560, 0, 0, 0, 0, 0, 0, 0, 0, 586 0,22995, 0, 0, 0, 0, 0, 0, 0, 0, 587 0, 0, 0, 0, 0, 0, 560, 3577, 0, 0, 588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 589 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 591 18370, 579, 0, 0, 0, 0, 4, -15, 52, 0, 592 23145, 0, 0, 0, 0,23906, 0, 0, 0, 5953, 593 13515, 0, 0, 0, 0, 0, 0, 0,18586,13666, 594 580, 0, 11, 0, 0, 0, 0, 0,23298, 0, 595 0, 0, 0, 0, 0,18739,18890, 0, 0, 0, 596 0, 0, 0, 0, 0, 0,16959, 0, 0, 0, 597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 600 0, 0, 0, 0, 0, 0, 0, 0, 1107, 2724, 601 1277, 0, 0, 1646, 0, 2894, 0, 1816, 0, 0, 602 125, 0, 0, 0, 0,19043, 0,19194, 0, 0, 603 0,13884, 0, 0, 0, 0, 0, 0, 0, 0, 604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 606 0, 0, 0, 0,19347, 0, 0, 0, 0, 0, 607 0,19498, 0, 0, 29, 0, 0, 0, 0, 0, 608 0,19651, 0, 0, 0, 0, 0, 0, 0, 0, 609 0, 0, 0, 24, 223,23906, 0, 0, 0, 0, 610 0, 0, 0, 0, 0,19802, 0, 0, 0,14035, 611 0, 954, 580, 0, 908,14035, 0, 30, 0, 0, 612 0, 908, 0,14191, 0, 0, 0, 0, 960, 0, 613 0, 0,19955, 0, 0, 0, 0, 0,20106,23449, 614 20259, 0, 0, 0, 0, 0, 0, 987, 0, 0, 615 0, 0, 0, 0, 0, 0, 0, 0, 0, 9631, 616 0,10472,10208, 5640, 0,20410, 0,10627, 0,23753, 617 0, 0,20563, 0, 6171, 0, 673, 0, 0, 0, 618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 620 0, 0, 0, 4668, 0,17110,17263, 3263, 0, 0, 621 25786, 0, 0, 972, 0, 0, 0, 0, 3433, 0, 622 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 623 0, 0, 0, 0, 0, 0, 0, 5271, 0, 0, 624 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 625 0, 0,20714,20867, 0, 0, 0, 165, 0, 510, 626 995, 679, 0, 0, 6497, 869, 9017, 526, 995, 0, 627 0, 0,21018, 0, 0, 0, 0, 0, 0, 0, 628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629 0, 0, 0, 0, 0, 0, 0,21171, 0, 0, 630 0, 680, 0, 0, 0, 0,14404, 0, 0, 127, 631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 632 0, 0, 0,21322, 0, 0, 0, 40, 0, 0, 633 0, 24, 0, 0, 0, 0,21322, 0, 0, 0, 634 580, 0,14555, 356, 0, 0, 0, 0, 356, 0, 635 0, 0, 580,14404, 0,14711, 0, 0, 0, 0, 636 5618, 1012, 708, 0, 0, 0, 0, 0, 0, 0, 637 0, 0, 0, 0,21475,21626, 0, 0, 0, 709, 638 0, 1013, 0, 0, 0, 63, 0, 0, 1014, 0, 639 0,12251,12465,12620,12834, 0, 1014,25857,17479, 4299, 640 14924, 0,21779, 0,14924, 5802, 0, 0, 0, 0, 641 0, 0,10891, 0, 0, 0, 0, 0, 0,21930, 642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 644 0, 0, 0, 0, 0, 0, 0,27019, 0, 0, 645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646 1021, 2185, 0, 0, 0,11727, 9782,10051, 9111, 9262, 647 6322, 6591, 6742, 7011, 7162, 7431, 7582, 4838, 5101, 3696, 648 0, 0, 0,11882, 3866, 0, 7851, 0, 8002, 164, 649 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 650 1025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 651 0, 0, 0, 0, 0, 0, 0,17632, 0, 0, 652 0, 0, 0, 0,12989, 0, 0, 710, 0, 0, 653 0, 720, 0, 0, 0,15080, 0, 0, 0,14035, 654 0, 0, 795, 0, 0, 0, 16, 0, 0, 0, 655 17632, 0, 0, 0, 1012, 0, 0, 0, 0, 0, 656 0,22083, 0, 995, 995, 0, 24, 0, 0, 0, 657 0, 0, 0, 729, 0, 0, 0, 0,13203, 698, 658 0, 0,15293,15449, 5802,15662,22234,13358,11046,11309, 659 11464,12096, 0, 0, 0, 0, 0, 730, 0, 0, 660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662 0, 0, 0,15818, 0,15974, 0,16130, 0,27293, 663 1028, 0, 737, 0, 1030, 0, 738, 2355, 8271, 8422, 664 4129, 8691, 8842, 674, 0, 0, 0, 0, 0, 0, 665 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 666 0, 0, 0, 0, 0,12989,16286, 0, 744, 0, 667 0, 749,16437, 0, 467, 356, 356, 356, 356, 356, 668 0, 0, 356, 0, 0, 0, 0, 1012, 0, 0, 669 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 670 0, 0, 750, 0,25857,14924, 0, 0, 0, 0, 671 0, 590, 0, 0, 0, 0, 0, 0, 751, 0, 672 768, 0, 0, 0, 0, 0, 0, 0,17848, 0, 673 0,16286,16655, 0, 720, 0, 0, 93, 146, 31, 674 44, 0, 0, 0,18001, 0,22387, 0, 0, 0, 675 0, 0, 0, 0, 0, 777, 0,16806, 0, 0, 676 0, 0, 0, 0, 778, 0, 0, 779, 0, 0, 677 0,16655, 0, 0, 0, 0, 0,22538, 0, 0, 678 783, 0,22691, 0, 0, 0, 0, 0, 0, 0, 679 788,18217,22842, 1031, 0, 1036, 1539 1540 /* YYPGOTO[NTERM-NUM]. */ 1541 static const yytype_int16 yypgoto[] = 1542 { 1543 -702, -702, -702, -702, 503, -702, 2, -702, 740, -702, 1544 -49, 756, -702, -702, -1, 5, -702, -702, -407, -702, 1545 -5, 4, -702, -702, 85, -702, -702, -702, 349, -702, 1546 84, -11, -702, -702, -702, -702, -702, -482, -702, -702, 1547 -265, 282, -402, -702, -702, -702, -702, -702, -702, -702, 1548 -702, -702, 173, -702, -702, -278, 270, -39, -21, 515, 1549 291, -702, -702, -702, 258, -702, -702, -702, -702, -702, 1550 245, -702, -702, -702, -701, -702, -702, -702, 483, -290, 1551 -687, -702, -702, 63, -702, 709, -282, -702, -58, -61, 1552 -27, -176, -80, -154, -323, -532, -702, -702, -128, -702, 1553 -702, -702, -204, -702, 377, 121, -92, 64, 178, -87, 1554 -702, -702, -198, -399, -29, -143, -702, -163, -702, -702, 1555 -702, -702, -56, -702, -139, -702, -702, -702, -702, -702, 1556 -702, -702, -702, -702, -12, -702, -702, -702, 676, 265, 1557 -232, -702, -702, -702, -702, -702, -702, -702, -702, 73, 1558 -702, -702, -702, -702, -702, 254, -702, -702, 68, -702, 1559 -702, -702, -702, -275, 684, -316, -426, -702, -694, -561, 1560 480, 446, -372, -648, 272, -702, 237, -201, -702, 238, 1561 -421, -702, -702, -702 680 1562 }; 681 short fortrangindex[] = { 0, 682 0, 0, 0, 813, 303, -401, 0, 126, 0, 211, 683 -255, 0, 232, 565, 285, -2, 0, -23, 0, 0, 684 0, 0, 0, 0, 0, 0, -120, 7, 0, 0, 685 -328, 0, 0, 815, -135, 0, -305, 339, -152, 181, 686 -137, 0, 766, 736, -326, -686, -234, -220, 0, 718, 687 221, 438, 371, -189, 0, -26, -371, -495, 0, 0, 688 -169, -24, 273, -397, 0, -98, 0, 0, 1117, 0, 689 0, 0, -39, -56, 1119, 865, 0, 53, 0, 0, 690 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692 0, 1065, 452, 458, 716, 0, 0, 0, -30, 627, 693 0, -277, 0, 0, 0, -667, 0, -281, 620, 0, 694 654, 0, 194, 0, 0, 0, 0, 608, -649, 0, 695 0, 457, 0, 0, 0, 1032, 612, -392, 613, 0, 696 0, 0, 0, 0, 0, 0, 0, 0, 0, -230, 1563 1564 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1565 positive, shift that token. If negative, reduce the rule which 1566 number is the opposite. If zero, do what YYDEFACT says. 1567 If YYTABLE_NINF, syntax error. */ 1568 #define YYTABLE_NINF -508 1569 static const yytype_int16 yytable[] = 1570 { 1571 191, 442, 207, 385, 423, 511, 213, 220, 534, 207, 1572 501, 632, 513, 339, 505, 228, 387, 667, 711, 763, 1573 857, 149, 765, 146, 219, 386, 603, 547, 591, 440, 1574 689, 283, 319, 843, 440, 232, 393, 450, 840, 301, 1575 596, 215, 215, 596, 410, 603, 761, 869, 761, 240, 1576 241, 761, 304, 569, 340, 603, 841, 842, 843, 251, 1577 252, 424, 425, 576, 741, 279, 225, 259, 674, 226, 1578 887, 592, 248, 690, 290, 312, 222, 694, 362, 494, 1579 364, 755, 447, 699, 495, 282, 249, 284, 268, 774, 1580 603, 286, 603, 603, 223, 603, 603, 603, 269, 242, 1581 264, 603, 267, 243, 318, 439, 603, 851, 884, 327, 1582 439, 207, 902, 313, 694, 314, 315, 830, 17, 774, 1583 250, 728, 926, 355, 356, 418, 587, 330, 331, 588, 1584 589, 590, 363, 255, 256, -315, 841, 842, 843, 275, 1585 927, 280, 408, 409, 410, 147, 377, 676, 291, 292, 1586 298, 760, 384, 320, 895, 896, -164, 299, -164, 766, 1587 -164, 92, -164, 392, 596, 923, 578, 414, 215, 242, 1588 242, 385, 706, 243, 243, 283, 150, 706, 427, 242, 1589 293, 924, 205, 243, 387, 431, 597, 419, 687, 597, 1590 887, 121, -164, 386, 436, 302, -164, 598, 844, 437, 1591 339, 682, 742, 604, 411, 412, 260, 385, 305, 384, 1592 339, -314, 229, 489, 579, 497, 321, 231, 339, 484, 1593 387, 954, 608, 844, 216, 218, 720, 721, 209, 630, 1594 886, 886, 610, 886, 724, 212, 936, 502, 426, 496, 1595 245, 340, 731, 507, 253, 675, 487, 510, 92, 734, 1596 691, 340, 498, 591, 695, 580, 701, 263, 756, 340, 1597 591, 805, 490, 807, 809, 740, 775, 780, 491, 781, 1598 795, 535, 796, 797, 798, 535, 591, 544, 799, 605, 1599 606, 152, 153, 810, 852, 885, 757, 666, 265, 906, 1600 750, 908, 554, 555, 528, 550, 940, 559, 624, 625, 1601 626, 627, 628, 844, 411, 412, 571, 572, 573, 574, 1602 597, 637, 767, 768, 769, 770, 771, 549, 277, 287, 1603 384, 891, 351, 537, 937, 221, 538, 233, 587, 330, 1604 331, 588, 589, 590, 607, 238, 499, 239, 611, 612, 1605 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 1606 246, 888, 889, 761, 234, 272, 629, 500, 909, 726, 1607 727, 235, 442, 283, 236, 914, 285, 641, 643, 644, 1608 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 1609 655, 656, 659, 661, 663, 665, 421, 429, 393, 213, 1610 440, 440, 435, 307, 450, 342, 347, 671, 672, 308, 1611 310, 578, 859, 860, 861, 886, 316, 416, 323, 578, 1612 326, 441, 324, 454, 448, 328, 449, 452, 898, 588, 1613 589, 590, 482, 587, 330, 331, 588, 589, 590, 805, 1614 807, 809, 353, 415, 591, 359, 360, 339, 121, 910, 1615 911, 912, 913, 868, 858, 361, 365, 849, 866, 579, 1616 366, 591, 591, 591, 591, 591, 367, 579, 506, 339, 1617 339, 339, 339, 339, 876, 700, 439, 439, 368, 707, 1618 387, 369, 387, 387, 514, 698, 718, 370, 340, 440, 1619 883, 712, 831, 371, 440, 811, 719, 833, 759, 722, 1620 580, 372, 373, 374, 375, 551, 376, 378, 580, 556, 1621 340, 340, 340, 340, 340, 535, 566, 379, 380, 381, 1622 382, 535, 535, 391, 416, 392, 566, 706, 706, 706, 1623 706, 706, 418, 419, 706, 255, 256, 515, 420, 180, 1624 181, 92, 430, 587, 330, 331, 588, 589, 590, 754, 1625 432, 433, 481, 904, 485, 183, 184, 486, 758, 185, 1626 186, 187, 188, 492, 516, 439, 517, 518, 519, 268, 1627 439, 520, 521, 189, 522, 523, 494, 591, 330, 331, 1628 588, 589, 590, 778, 512, 207, 779, 277, 503, 508, 1629 925, 509, 287, 922, 536, 527, 529, 546, 578, 548, 1630 557, 585, 575, 634, 933, 594, 595, 601, 635, 393, 1631 -488, -488, -488, -488, -488, -488, 804, 636, 806, 808, 1632 639, 679, 384, 812, 321, 683, 685, 686, 845, 688, 1633 692, 693, 696, 697, 708, 903, 709, 339, 725, 730, 1634 813, 814, 735, 736, 745, 815, 579, 816, 387, 387, 1635 387, 819, 739, 225, 748, 749, 764, 811, 590, 935, 1636 776, 801, 802, 803, 828, 819, 817, 823, 824, 826, 1637 827, 832, 834, 839, 847, 496, 864, 837, 340, 484, 1638 848, 865, 867, 870, 855, 871, 872, 580, 873, 394, 1639 874, 395, 396, 397, 398, 399, 850, 400, 401, 402, 1640 403, 404, 405, 878, 897, 406, 407, 408, 409, 410, 1641 -489, 902, 907, 921, 930, 934, 535, 742, 578, 941, 1642 938, 939, 942, 943, 944, 950, 844, 945, 875, 952, 1643 -360, 958, 559, 960, 957, 633, 879, -247, 967, -247, 1644 -247, -247, -247, -247, 965, -247, -247, -247, -247, -247, 1645 -247, 968, 926, -247, -247, -247, -247, -247, 901, 394, 1646 16, 395, 396, 397, 398, 399, 579, 400, 401, 402, 1647 403, 404, 405, 488, 393, 406, 407, 408, 409, 410, 1648 145, 892, 441, 449, 804, 806, 808, 836, 890, 677, 1649 838, 710, 723, 732, 493, 702, 258, 729, 545, 863, 1650 213, 900, 916, 915, 681, 669, 394, 580, 395, 396, 1651 397, 398, 399, 829, 400, 401, 402, 403, 404, 405, 1652 949, 966, 406, 407, 408, 409, 410, 880, 931, 969, 1653 352, 746, 877, 882, 718, 345, 917, 593, 920, 631, 1654 747, 772, 0, 773, 0, 0, 0, 0, 0, 0, 1655 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 1656 0, 0, 825, 0, 0, 0, 0, 0, 0, 411, 1657 412, 449, 0, 881, 0, 0, 449, 0, 835, 0, 1658 0, 0, 946, 0, 948, 819, 0, 0, 0, 0, 1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1660 0, 392, 0, 0, 0, 0, 0, 854, 0, 0, 1661 0, 0, 0, 0, 0, 959, 0, -247, -247, 0, 1662 0, 0, 0, 0, 961, 0, 0, 0, 0, 0, 1663 962, 2, 3, 964, 638, 0, 0, 0, 0, 411, 1664 412, 0, 0, 566, 0, 0, 972, 0, 0, 0, 1665 973, 0, 0, 974, 975, 0, 0, 0, -23, 977, 1666 -23, 0, 0, -23, -23, -23, -23, 4, 5, -23, 1667 0, 0, -23, -23, -23, 0, 0, 0, 0, -23, 1668 -23, 0, 0, 0, 6, 7, 411, 412, 0, 0, 1669 0, 0, 0, 0, -23, 0, 0, 0, -23, -23, 1670 0, 0, 0, -23, 0, 0, 0, 0, 0, -23, 1671 0, -23, -23, 0, -23, 0, -23, -23, -23, -23, 1672 -23, 0, -23, -23, -23, -23, -23, -23, -23, -23, 1673 -23, -23, -23, -23, -23, -23, -23, -23, 0, 0, 1674 -23, -23, -23, 0, -23, -23, -23, 0, -23, -23, 1675 -23, 0, 0, -23, 0, -23, 0, 0, -23, -23, 1676 -23, -23, 0, 0, -23, -23, -23, 0, 0, 351, 1677 0, 0, -23, 0, 0, 8, -23, -23, -23, -23, 1678 -23, -23, -23, 0, -23, -23, -23, -23, -23, 0, 1679 0, -23, 0, 0, 0, 951, 0, 0, -23, -23, 1680 -23, 0, 0, 0, 0, 0, 0, -23, 9, -507, 1681 0, -507, 0, -507, -507, -507, -507, -507, 10, -507, 1682 -507, -507, -507, -507, -507, 0, 0, -507, -507, -507, 1683 -507, -507, 0, 0, 0, 0, 0, 0, 0, 0, 1684 0, 0, 0, 0, 0, 154, 155, 0, 0, 0, 1685 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, 1686 0, 0, 160, 161, 162, 163, 164, 165, 166, 0, 1687 167, 168, 169, 0, 0, 170, 171, 172, 0, 173, 1688 174, 175, 176, 177, 932, 178, 394, 0, 395, 396, 1689 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 1690 0, 0, 406, 407, 408, 409, 410, 970, 0, 394, 1691 0, 395, 396, 397, 398, 399, 0, 400, 401, 402, 1692 403, 404, 405, 0, 0, 406, 407, 408, 409, 410, 1693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1694 0, 0, 0, 0, 0, 0, 0, 0, 180, 181, 1695 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 1696 0, 0, 0, 0, 183, 184, 0, 0, 185, 186, 1697 187, 188, 0, 0, 0, 92, 0, 0, 0, 0, 1698 0, 0, 189, 0, 0, 577, 0, 0, 0, 0, 1699 0, -507, -507, 971, 0, 394, 0, 395, 396, 397, 1700 398, 399, 0, 400, 401, 402, 403, 404, 405, 0, 1701 0, 406, 407, 408, 409, 410, 976, 0, 394, 0, 1702 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 1703 404, 405, 0, 0, 406, 407, 408, 409, 410, 853, 1704 394, 0, 395, 396, 397, 398, 399, 0, 400, 401, 1705 402, 403, 404, 405, 0, 0, 406, 407, 408, 409, 1706 410, 0, 0, 0, 0, 0, 411, 412, 0, 0, 1707 0, 0, 0, 0, 901, 394, 0, 395, 396, 397, 1708 398, 399, 0, 400, 401, 402, 403, 404, 405, 411, 1709 412, 406, 407, 408, 409, 410, 947, 394, 0, 395, 1710 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 1711 405, 0, 0, 406, 407, 408, 409, 410, 963, 394, 1712 0, 395, 396, 397, 398, 399, 0, 400, 401, 402, 1713 403, 404, 405, 0, 0, 406, 407, 408, 409, 410, 1714 394, 0, 395, 396, 397, 398, 399, 0, 400, 401, 1715 402, 403, 404, 405, 0, 0, 406, 407, 408, 409, 1716 410, 394, 0, 395, 396, 397, 398, 399, 0, 400, 1717 401, 402, 403, 404, 405, 411, 412, 406, 407, 408, 1718 409, 410, 0, 0, 394, 0, 395, 396, 397, 398, 1719 399, 0, 400, 401, 402, 403, 404, 405, 411, 412, 1720 406, 407, 408, 409, 410, 0, 394, 0, 395, 396, 1721 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 1722 411, 412, 406, 407, 408, 409, 410, -250, 0, -250, 1723 -250, -250, -250, -250, 0, -250, -250, -250, -250, -250, 1724 -250, 0, 0, -250, -250, -250, -250, -250, 0, 0, 1725 0, 0, 0, 0, 0, 411, 412, 0, 0, 0, 1726 0, 0, 0, 394, 0, 395, 396, 397, 398, 399, 1727 0, 400, 401, 402, 403, 404, 405, 411, 412, 406, 1728 407, 408, 409, 410, 0, 394, 0, 395, 396, 397, 1729 398, 399, 0, 400, 401, 402, 403, 404, 405, 411, 1730 412, 406, 407, 408, 409, 410, 0, 0, 0, 0, 1731 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, 1732 411, 412, 0, 0, 0, 0, 0, 0, 0, 0, 697 1733 0, 0, 0, 0, 0, 0, 602, 0, 0, 0, 698 0, 0, 412, 607, 0, 219, 0, 0, 0, 0, 699 0, 0, 0, 0, -408, 0, 0, 0, 0, -317, 700 414, 1033, -335, -688, 0, -522, 0, -226, 0, 0, 701 0, 0, 1734 0, 411, 412, 0, 0, 0, 0, 0, 0, 0, 1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 609, 1736 0, 0, 0, 0, 411, 412, 0, 0, 0, 0, 1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1738 0, 623, 0, 0, 0, 0, 411, 412, 0, 0, 1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1740 0, 0, -250, 0, 0, 0, 0, -250, -250, 394, 1741 0, 395, 396, 397, 398, 399, 0, 400, 401, 402, 1742 403, 404, 405, 0, 0, 406, 407, 408, 409, 410, 1743 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 1744 0, 0, 0, 411, 412, 0, 0, 0, 0, 0, 1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1746 673, 0, 0, 0, 0, 411, 412, 394, 0, 395, 1747 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 1748 405, 0, 0, 406, 407, 408, 409, 410, 394, 0, 1749 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 1750 404, 405, 0, 0, 406, 407, 408, 409, 410, 394, 1751 0, 395, 396, 397, 398, 399, 0, 400, 401, 402, 1752 403, 404, 405, 0, 0, 406, 407, 408, 409, 410, 1753 394, 0, 395, 396, 397, 398, 399, 0, 400, 401, 1754 402, 403, 404, 405, 0, 0, 406, 407, 408, 409, 1755 410, 394, 0, 395, 396, 397, 398, 399, 0, 400, 1756 401, 402, 403, 404, 405, 0, 0, 406, 407, 408, 1757 409, 410, 0, 0, 0, 0, 0, 0, 0, 0, 1758 0, 0, 0, 0, 678, 0, 0, 0, 0, 411, 1759 412, 394, 0, 395, 396, 397, 398, 399, 0, 400, 1760 401, 402, 403, 404, 405, 0, 0, 406, 407, 408, 1761 409, 410, 394, 0, 395, 396, 397, 398, 399, 0, 1762 400, 401, 402, 403, 404, 405, 0, 0, 406, 407, 1763 408, 409, 410, 0, 0, 0, 0, 0, 0, 0, 1764 0, 0, 680, 0, 0, 0, 0, 411, 412, 0, 1765 0, 0, 420, 0, 394, 0, 395, 396, 397, 398, 1766 399, 0, 400, 401, 402, 403, 404, 405, 411, 412, 1767 406, 407, 408, 409, 410, 0, 0, 0, 0, 0, 1768 0, 0, 0, 0, 782, 0, 0, 0, 0, 411, 1769 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1770 0, 0, 0, 0, 0, 783, 0, 0, 0, 0, 1771 411, 412, 0, 0, 0, 0, 0, 0, 0, 0, 1772 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 1773 0, 411, 412, 394, 0, 395, 396, 397, 398, 399, 1774 0, 400, 401, 402, 403, 404, 405, 0, 0, 406, 1775 407, 408, 409, 410, 0, 0, 0, 0, 0, 0, 1776 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 1777 0, 411, 412, 0, 0, 0, 0, 0, 0, 0, 1778 0, 0, 0, 0, 0, 0, 0, 786, 0, 0, 1779 0, 0, 411, 412, 394, 0, 395, 396, 397, 398, 1780 399, 0, 400, 401, 402, 403, 404, 405, 0, 0, 1781 406, 407, 408, 409, 410, 0, 0, 0, 0, 0, 1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 787, 1783 0, 0, 0, 0, 411, 412, 394, 0, 395, 396, 1784 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 1785 0, 0, 406, 407, 408, 409, 410, 394, 0, 395, 1786 396, 397, 398, 399, 0, 400, 401, 402, 403, 404, 1787 405, 0, 0, 406, 407, 408, 409, 410, 394, 0, 1788 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 1789 404, 405, 0, 0, 406, 407, 408, 409, 410, 0, 1790 0, 0, 0, 0, 0, 0, 0, 0, 788, 0, 1791 0, 0, 0, 411, 412, 394, 0, 395, 396, 397, 1792 398, 399, 0, 400, 401, 402, 403, 404, 405, 0, 1793 0, 406, 407, 408, 409, 410, 394, 0, 395, 396, 1794 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 1795 0, 0, 406, 407, 408, 409, 410, 0, 0, 0, 1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 1797 0, 0, 0, 0, 411, 412, 394, 0, 395, 396, 1798 397, 398, 399, 0, 400, 401, 402, 403, 404, 405, 1799 0, 0, 406, 407, 408, 409, 410, 0, 0, 0, 1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1801 0, 790, 0, 0, 0, 0, 411, 412, 0, 0, 1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1803 0, 0, 791, 0, 0, 0, 0, 411, 412, 0, 1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1805 0, 0, 0, 792, 0, 0, 0, 0, 411, 412, 1806 394, 0, 395, 396, 397, 398, 399, 0, 400, 401, 1807 402, 403, 404, 405, 0, 0, 406, 407, 408, 409, 1808 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1809 793, 0, 0, 0, 0, 411, 412, 0, 0, 0, 1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1811 0, 794, 0, 0, 0, 0, 411, 412, 394, 0, 1812 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 1813 404, 405, 0, 0, 406, 407, 408, 409, 410, 0, 1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1815 0, 800, 0, 0, 0, 0, 411, 412, 394, 0, 1816 395, 396, 397, 398, 399, 0, 400, 401, 402, 403, 1817 404, 405, 0, 0, 406, 407, 408, 409, 410, 397, 1818 398, 399, 0, 400, 401, 402, 403, 404, 405, 0, 1819 0, 406, 407, 408, 409, 410, 0, 0, 0, 0, 1820 0, 0, 399, 713, 400, 401, 402, 403, 404, 405, 1821 0, 151, 406, 407, 408, 409, 410, 0, 0, 0, 1822 152, 153, 714, 0, 0, 0, 0, 0, 0, 0, 1823 0, 0, 0, 0, 0, 846, 0, 0, 154, 155, 1824 411, 412, 0, 156, 157, 158, 159, 0, 0, 0, 1825 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 1826 165, 166, 0, 167, 168, 169, 0, 0, 170, 171, 1827 172, 0, 173, 174, 175, 176, 177, 0, 178, 400, 1828 401, 402, 403, 404, 405, 0, 0, 406, 407, 408, 1829 409, 410, 0, 905, 0, 0, 0, 0, 411, 412, 1830 -508, -508, -508, -508, -508, -508, 0, 0, 406, 407, 1831 408, 409, 410, 0, 0, 0, 0, 0, 0, 330, 1832 331, 563, 0, 564, 0, 0, 0, 0, 0, 0, 1833 179, 0, 0, 0, 0, 0, 0, 0, 411, 412, 1834 0, 180, 181, 0, 0, 0, 0, 182, 333, 334, 1835 335, 0, 0, 336, 0, 411, 412, 183, 184, 0, 1836 151, 185, 186, 187, 188, 0, 0, 0, 92, 152, 1837 153, 0, 0, 0, 0, 189, 411, 412, 190, 0, 1838 0, 0, 0, 0, 0, 0, 0, 154, 155, 0, 1839 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, 1840 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, 1841 166, 0, 167, 168, 169, 0, 0, 170, 171, 172, 1842 0, 173, 174, 175, 176, 177, 0, 178, 0, 0, 1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1844 180, 181, 0, 0, 0, 0, 0, 0, 0, 0, 1845 0, 411, 412, 330, 331, 332, 183, 184, 0, 0, 1846 185, 186, 187, 188, 0, 0, 0, 337, 0, 0, 1847 0, 0, 411, 412, 189, 0, 0, 565, 0, 179, 1848 0, 0, 333, 334, 335, 0, 0, 336, 0, 0, 1849 180, 181, 0, 0, 0, 0, 182, 818, 0, 0, 1850 0, 0, 0, 0, 0, 151, 183, 184, 0, 0, 1851 185, 186, 187, 188, 152, 153, 0, 92, 0, 0, 1852 0, 0, 0, 0, 189, 0, 0, 190, 0, 0, 1853 0, 0, 154, 155, 0, 206, 0, 156, 157, 158, 1854 159, 0, 0, 0, 0, 0, 0, 0, 0, 160, 1855 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 1856 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 1857 177, 0, 178, 0, 180, 181, 0, 0, 0, 0, 1858 0, 0, 0, 330, 331, 0, 0, 0, 0, 0, 1859 183, 184, 0, 0, 185, 186, 187, 188, 0, 0, 1860 0, 337, 0, 0, 0, 0, 0, 0, 189, 0, 1861 0, 338, 333, 334, 335, 0, 0, 336, 0, 0, 1862 0, 0, 0, 0, 179, 899, 0, 0, 0, 0, 1863 0, 0, 0, 151, 0, 180, 181, 0, 0, 0, 1864 0, 182, 152, 153, 0, 0, 0, 0, 0, 0, 1865 0, 183, 184, 0, 0, 185, 186, 187, 188, 0, 1866 154, 155, 92, 0, 0, 156, 157, 158, 159, 189, 1867 0, 0, 190, 0, 0, 0, 0, 160, 161, 162, 1868 163, 164, 165, 166, 0, 167, 168, 169, 0, 0, 1869 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 1870 178, 0, 0, 0, 180, 181, 0, 0, 0, 0, 1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1872 183, 184, 0, 0, 185, 186, 187, 188, 0, 0, 1873 0, 337, 0, 0, 0, 0, 0, 0, 189, 0, 1874 0, 565, 0, 0, 0, 0, 0, 0, 0, 0, 1875 0, 0, 179, 0, 532, 0, 0, 0, 0, 0, 1876 0, 151, 0, 180, 181, 0, 0, 0, 0, 182, 1877 152, 153, 533, 0, 0, 0, 0, 0, 0, 183, 1878 184, 0, 0, 185, 186, 187, 188, 0, 154, 155, 1879 92, 0, 0, 156, 157, 158, 159, 189, 0, 0, 1880 190, 0, 0, 0, 0, 160, 161, 162, 163, 164, 1881 165, 166, 0, 167, 168, 169, 0, 0, 170, 171, 1882 172, 0, 173, 174, 175, 176, 177, 0, 178, 455, 1883 0, 0, 0, 456, 457, 458, 459, 0, 0, 0, 1884 0, 0, 0, 0, 0, 460, 461, 462, 463, 464, 1885 465, 466, 0, 467, 468, 469, 0, 0, 470, 471, 1886 472, 0, 0, 473, 474, 475, 476, 0, 477, 0, 1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1888 179, 0, 657, 0, 0, 0, 0, 0, 0, 151, 1889 0, 180, 181, 0, 0, 0, 0, 182, 152, 153, 1890 0, 658, 0, 0, 0, 0, 0, 183, 184, 0, 1891 0, 185, 186, 187, 188, 0, 154, 155, 92, 0, 1892 0, 156, 157, 158, 159, 189, 0, 0, 190, 0, 1893 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 1894 0, 167, 168, 169, 0, 0, 170, 171, 172, 0, 1895 173, 174, 175, 176, 177, 0, 178, 0, 478, 0, 1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1900 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 1901 733, 0, 0, 0, 0, 0, 0, 151, 0, 180, 1902 181, 0, 0, 0, 0, 182, 152, 153, 533, 0, 1903 0, 0, 0, 0, 0, 183, 184, 0, 0, 185, 1904 186, 187, 188, 0, 154, 155, 92, 0, 0, 156, 1905 157, 158, 159, 189, 0, 0, 190, 0, 0, 0, 1906 0, 160, 161, 162, 163, 164, 165, 166, 0, 167, 1907 168, 169, 0, 0, 170, 171, 172, 0, 173, 174, 1908 175, 176, 177, 0, 178, 0, 0, 0, 0, 0, 1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1913 0, 0, 0, 0, 0, 0, 179, 0, 640, 0, 1914 0, 0, 0, 0, 0, 151, 0, 180, 181, 0, 1915 0, 0, 0, 182, 152, 153, 0, 0, 0, 0, 1916 0, 0, 0, 183, 184, 0, 0, 185, 186, 187, 1917 188, 0, 154, 155, 92, 0, 0, 156, 157, 158, 1918 159, 189, 0, 0, 190, 0, 0, 0, 0, 160, 1919 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 1920 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 1921 177, 0, 178, 0, 0, 0, 0, 0, 0, 0, 1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926 0, 0, 0, 0, 179, 0, 662, 0, 0, 0, 1927 0, 0, 0, 151, 0, 180, 181, 0, 0, 0, 1928 0, 182, 152, 153, 0, 0, 0, 0, 0, 0, 1929 0, 183, 184, 0, 0, 185, 186, 187, 188, 0, 1930 154, 155, 92, 0, 0, 156, 157, 158, 159, 189, 1931 0, 0, 190, 0, 0, 0, 0, 160, 161, 162, 1932 163, 164, 165, 166, 0, 167, 168, 169, 0, 0, 1933 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 1934 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939 0, 0, 179, 0, 664, 0, 0, 0, 0, 0, 1940 0, 151, 0, 180, 181, 0, 0, 0, 0, 182, 1941 152, 153, 0, 0, 0, 0, 0, 0, 0, 183, 1942 184, 0, 0, 185, 186, 187, 188, 0, 154, 155, 1943 92, 0, 0, 156, 157, 158, 159, 189, 0, 0, 1944 190, 0, 0, 0, 0, 160, 161, 162, 163, 164, 1945 165, 166, 0, 167, 168, 169, 0, 0, 170, 171, 1946 172, 0, 173, 174, 175, 176, 177, 0, 178, 0, 1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1952 179, 0, 0, 0, 0, 0, 0, 0, 0, 151, 1953 0, 180, 181, 0, 0, 0, 0, 182, 152, 153, 1954 751, 0, 752, 0, 0, 0, 0, 183, 184, 0, 1955 0, 185, 186, 187, 188, 0, 154, 155, 92, 0, 1956 0, 156, 157, 158, 159, 189, 0, 0, 190, 0, 1957 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 1958 0, 167, 168, 169, 0, 0, 170, 171, 172, 0, 1959 173, 174, 175, 176, 177, 0, 178, 0, 0, 0, 1960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1964 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 1965 0, 0, 0, 0, 0, 0, 0, 151, 0, 180, 1966 181, 0, 0, 0, 0, 182, 152, 153, 533, 0, 1967 0, 0, 0, 0, 0, 183, 184, 0, 0, 185, 1968 186, 187, 188, 0, 154, 155, 92, 0, 0, 156, 1969 157, 158, 159, 189, 0, 0, 753, 0, 0, 0, 1970 0, 160, 161, 162, 163, 164, 165, 166, 0, 167, 1971 168, 169, 0, 0, 170, 171, 172, 0, 173, 174, 1972 175, 176, 177, 0, 178, 0, 0, 0, 0, 0, 1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 1978 0, 0, 0, 0, 0, 151, 0, 180, 181, 0, 1979 0, 0, 0, 182, 152, 153, 558, 0, 0, 0, 1980 0, 0, 0, 183, 184, 0, 0, 185, 186, 187, 1981 188, 0, 154, 155, 539, 0, 0, 156, 157, 158, 1982 159, 189, 0, 0, 190, 0, 0, 0, 0, 160, 1983 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 1984 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 1985 177, 0, 178, 0, 0, 0, 0, 0, 0, 0, 1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1990 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 1991 0, 0, 0, 151, 0, 180, 181, 0, 0, 0, 1992 0, 182, 152, 153, 533, 0, 0, 0, 0, 0, 1993 0, 183, 184, 0, 0, 185, 186, 187, 188, 0, 1994 154, 155, 92, 0, 0, 156, 157, 158, 159, 189, 1995 0, 0, 190, 0, 0, 0, 0, 160, 161, 162, 1996 163, 164, 165, 166, 0, 167, 168, 169, 0, 0, 1997 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 1998 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2003 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 2004 0, 151, 0, 180, 181, 0, 0, 0, 0, 182, 2005 152, 153, 738, 0, 0, 0, 0, 0, 0, 183, 2006 184, 0, 0, 185, 186, 187, 188, 0, 154, 155, 2007 92, 0, 0, 156, 157, 158, 159, 189, 0, 0, 2008 190, 0, 0, 0, 0, 160, 161, 162, 163, 164, 2009 165, 166, 0, 167, 168, 169, 0, 0, 170, 171, 2010 172, 0, 173, 174, 175, 176, 177, 0, 178, 0, 2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2016 179, 0, 0, 0, 0, 0, 0, 0, 0, 151, 2017 0, 180, 181, 0, 0, 0, 0, 182, 152, 153, 2018 714, 0, 0, 0, 0, 0, 0, 183, 184, 0, 2019 0, 185, 186, 187, 188, 0, 154, 155, 92, 0, 2020 0, 156, 157, 158, 159, 189, 0, 0, 190, 0, 2021 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 2022 0, 167, 168, 169, 0, 0, 170, 171, 172, 0, 2023 173, 174, 175, 176, 177, 0, 178, 0, 0, 0, 2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 2029 0, 0, 0, 0, 0, 0, 0, 151, 0, 180, 2030 181, 0, 0, 0, 0, 182, 152, 153, 953, 0, 2031 0, 0, 0, 0, 0, 183, 184, 0, 0, 185, 2032 186, 187, 188, 0, 154, 155, 92, 0, 0, 156, 2033 157, 158, 159, 189, 0, 0, 190, 0, 0, 0, 2034 0, 160, 161, 162, 163, 164, 165, 166, 0, 167, 2035 168, 169, 0, 0, 170, 171, 172, 0, 173, 174, 2036 175, 176, 177, 0, 178, 0, 0, 0, 0, 0, 2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2041 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 2042 0, 0, 0, 0, 0, 151, 0, 180, 181, 0, 2043 0, 0, 0, 182, 152, 153, 0, 0, 0, 0, 2044 0, 0, 0, 183, 184, 0, 0, 185, 186, 187, 2045 188, 0, 154, 155, 92, 0, 0, 156, 157, 158, 2046 159, 189, 0, 0, 190, 0, 0, 0, 0, 160, 2047 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 2048 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 2049 177, 0, 178, 0, 0, 0, 0, 0, 0, 0, 2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2054 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 2055 0, 0, 0, 151, 0, 180, 181, 0, 0, 0, 2056 0, 182, 152, 153, 0, 0, 0, 0, 0, 0, 2057 0, 183, 184, 0, 0, 185, 186, 187, 188, 0, 2058 154, 155, 92, 0, 0, 156, 157, 158, 159, 189, 2059 0, 0, 190, 0, 0, 0, 0, 160, 161, 162, 2060 163, 164, 165, 166, 0, 167, 168, 169, 0, 0, 2061 170, 171, 172, 0, 173, 174, 175, 176, 177, 0, 2062 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2067 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 2068 0, 151, 0, 180, 181, 0, 0, 0, 0, 182, 2069 152, 153, 0, 0, 0, 0, 0, 0, 0, 183, 2070 184, 0, 0, 185, 186, 187, 188, 0, 154, 155, 2071 92, 0, 0, 156, 157, 158, 159, 189, 0, 0, 2072 383, 0, 0, 0, 0, 160, 161, 162, 163, 164, 2073 165, 166, 0, 167, 168, 169, 0, 0, 170, 171, 2074 172, 0, 173, 174, 175, 176, 177, 0, 178, 0, 2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2080 179, 0, 0, 0, 0, 0, 0, 0, 0, 151, 2081 0, 180, 181, 0, 0, 0, 0, 182, 152, 153, 2082 0, 0, 0, 0, 0, 0, 0, 183, 184, 0, 2083 0, 185, 186, 187, 188, 0, 154, 155, 92, 0, 2084 0, 156, 157, 158, 159, 446, 0, 0, 190, 0, 2085 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 2086 0, 167, 168, 169, 0, 0, 170, 171, 172, 0, 2087 173, 174, 175, 176, 177, 0, 178, 0, 0, 0, 2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2092 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 2093 0, 0, 0, 0, 0, 0, 0, 151, 0, 180, 2094 181, 0, 0, 0, 0, 182, 152, 153, 0, 0, 2095 0, 0, 0, 0, 0, 183, 184, 0, 0, 185, 2096 186, 187, 188, 0, 154, 155, 92, 0, 0, 156, 2097 157, 158, 159, 189, 0, 0, 542, 0, 0, 0, 2098 0, 160, 161, 162, 163, 164, 165, 166, 0, 167, 2099 168, 169, 0, 0, 170, 171, 172, 0, 173, 174, 2100 175, 176, 177, 0, 178, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2105 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 2106 0, 0, 0, 0, 0, 151, 0, 180, 181, 0, 2107 0, 0, 0, 182, 152, 153, 0, 0, 0, 0, 2108 0, 0, 0, 183, 184, 0, 0, 185, 186, 187, 2109 188, 0, 154, 155, 893, 0, 0, 156, 157, 158, 2110 159, 189, 0, 0, 383, 0, 0, 0, 0, 160, 2111 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 2112 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 2113 177, 0, 178, 0, 0, 0, 0, 0, 0, 0, 2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2118 0, 0, 0, 0, 179, 19, 0, 0, 20, -28, 2119 21, 22, 0, 0, 23, 180, 181, 24, 25, 26, 2120 0, 182, 0, 0, 27, 28, 0, 0, 0, 0, 2121 0, 183, 184, 0, 0, 185, 186, 187, 188, 29, 2122 0, 0, 92, 30, 31, 0, 0, 0, 32, 189, 2123 0, 0, 918, 0, 33, 0, 34, 35, 0, 36, 2124 0, 37, 38, 39, 40, 41, 0, 42, 43, 44, 2125 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 2126 55, 56, 57, 0, 0, 58, 59, 60, 0, 61, 2127 62, 63, 0, 64, 65, 66, 0, 0, 67, 0, 2128 68, 0, 0, 69, 70, 71, 72, 0, 0, 73, 2129 74, 75, 0, 0, 0, 0, 0, 76, 0, 0, 2130 0, 77, 78, 79, 80, 81, 82, 83, 0, 84, 2131 85, 86, 87, 88, 0, 0, 89, 0, 0, 0, 2132 0, 154, 155, 90, 91, 92, 156, 157, 158, 159, 2133 0, 0, 93, 0, 0, 0, 0, 0, 160, 161, 2134 162, 163, 164, 165, 166, 0, 167, 168, 169, 0, 2135 0, 170, 171, 172, 0, 173, 174, 175, 176, 177, 2136 0, 178, 154, 155, 0, 0, 0, 156, 157, 158, 2137 159, 0, 0, 0, 0, 0, 0, 0, 0, 160, 2138 161, 162, 163, 164, 165, 166, 0, 167, 168, 169, 2139 0, 0, 170, 171, 172, 0, 173, 174, 175, 176, 2140 177, 0, 178, 0, 0, 0, 0, 0, 0, 0, 2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142 0, 0, 0, 0, 180, 181, 0, 0, 0, 0, 2143 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144 183, 184, 0, 0, 185, 186, 187, 188, 0, 0, 2145 23, 92, 0, 0, 0, 0, 0, 0, 189, 0, 2146 0, 577, 0, 0, 0, 180, 181, 0, 0, 0, 2147 0, 182, 0, 0, 0, 29, 0, 0, 0, 0, 2148 0, 183, 184, 0, 0, 185, 186, 187, 188, 0, 2149 33, 0, 893, 0, 0, 36, 348, 0, 0, 189, 2150 40, 41, 577, 0, 0, 0, 0, 0, 0, 0, 2151 349, 50, 51, 52, 53, 54, 55, 350, 0, 0, 2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153 65, 0, 0, 0, 0, 0, 68, 0, 0, 0, 2154 0, 0, 0, 0, 0, 73, 0, 75, 0, 0, 2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158 0, 92, 0, 0, 0, 0, 0, 0, 93 702 2159 }; 703 #define YYTABLESIZE 27711 704 short fortrantable[] = { 201, 705 442, 206, 343, 546, 400, 212, 218, 388, 206, 450, 706 440, 592, 522, 569, 226, 440, 147, 99, 531, 342, 707 230, 536, 639, 577, 384, 234, 224, 525, 202, 539, 708 285, 593, 528, 729, 71, 391, 221, 926, 108, 530, 709 595, 383, 202, 191, 249, 250, 535, 191, 597, 595, 710 890, 595, 257, 740, 183, 630, 688, 394, 764, 127, 711 236, 191, 766, 866, 236, 243, 281, 236, 183, 266, 712 267, 268, 133, 133, 133, 133, 888, 324, 259, 589, 713 291, 447, 71, 205, 236, 869, 351, 134, 433, 299, 714 301, 433, 260, 439, 829, 526, 217, 205, 439, 338, 715 214, 322, 704, 338, 309, 321, 338, 420, 326, 421, 716 206, 310, 433, 894, 895, 715, 216, 142, 434, 240, 717 241, 238, 239, 354, 355, 417, 415, 145, 416, 288, 718 9, 417, 362, 246, 317, 131, 131, 131, 89, 453, 719 758, 589, 333, 420, 334, 421, 376, 247, 213, 420, 720 148, 421, 389, 240, 241, 425, 278, 203, 423, 282, 721 240, 241, 701, 392, 213, 402, 227, 399, 402, 761, 722 236, 673, 424, 271, 581, 270, 702, 767, 426, 913, 723 388, 762, 402, 762, 236, 430, 207, 762, 132, 132, 724 132, 741, 210, 343, 435, 721, 888, 384, 937, 436, 725 721, 314, 219, 343, 403, 433, 580, 403, 433, 389, 726 342, 343, 388, 427, 383, 840, 841, 842, 923, 482, 727 342, 403, 30, 579, 516, 859, 253, 254, 342, 628, 728 860, 698, 30, 592, 699, 735, 514, 438, 229, 739, 729 446, 592, 448, 451, 952, 508, 383, 231, 481, 755, 730 589, 333, 404, 334, 236, 404, 714, 592, 213, 524, 731 529, 504, 527, 642, 307, 89, 306, 202, 237, 404, 732 768, 769, 770, 771, 772, 150, 603, 151, 731, 602, 733 517, 99, 543, 244, 543, 248, 191, 127, 551, 240, 734 241, 589, 333, 183, 334, 398, 685, 555, 556, 295, 735 165, 165, 133, 560, 532, 803, 302, 805, 807, 590, 736 591, 572, 573, 574, 575, 134, 251, 261, 442, 486, 737 419, 607, 205, 450, 602, 389, 552, 258, 440, 440, 738 557, 269, 515, 338, 338, 606, 361, 273, 363, 610, 739 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 740 621, 874, 875, 275, 391, 418, 419, 631, 344, 350, 741 917, 418, 419, 938, 131, 887, 887, 922, 887, 212, 742 588, 590, 591, 760, 589, 333, 2, 334, 646, 647, 743 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 744 658, 659, 660, 664, 665, 667, 669, 236, 670, 671, 745 279, 202, 232, 296, 3, 4, 303, 284, 581, 233, 746 223, 439, 439, 538, 323, 596, 581, 132, 283, 592, 747 191, 5, 6, 393, 596, 433, 596, 183, 868, 343, 748 288, 290, 592, 592, 592, 592, 592, 853, 883, 897, 749 580, 71, 854, 220, 925, 108, 342, 298, 580, 847, 750 343, 343, 343, 343, 343, 830, 205, 579, 292, 312, 751 832, 440, 697, 327, 328, 579, 440, 342, 342, 342, 752 342, 342, 803, 805, 807, 330, 331, 319, 30, 588, 753 590, 591, 392, 352, 810, 358, 712, 359, 762, 360, 754 719, 877, 720, 716, 364, 365, 383, 30, 383, 383, 755 725, 609, 730, 28, 602, 366, 30, 30, 130, 130, 756 130, 130, 7, 130, 543, 675, 543, 367, 674, 368, 757 543, 590, 591, 30, 30, 369, 370, 721, 721, 721, 758 721, 721, 859, 857, 721, 858, 371, 860, 604, 605, 759 887, 754, 372, 373, 439, 8, 315, 592, 374, 439, 760 555, 759, 375, 555, 377, 438, 448, 623, 624, 625, 761 626, 627, 314, 378, 924, 397, 554, 379, 903, 554, 762 636, 380, 381, 521, 777, 523, 206, 778, 390, 417, 763 415, 398, 416, 533, 882, 589, 333, 394, 334, 401, 764 912, 859, 857, 856, 858, 581, 860, 420, 403, 421, 765 391, 855, 402, 588, 590, 591, 89, 804, 690, 806, 766 808, 689, 389, 429, 30, 431, 817, 694, 343, 819, 767 693, 934, 918, 919, 920, 921, 338, 580, 902, 338, 768 338, 338, 338, 338, 338, 342, 820, 821, 432, 717, 769 480, 822, 520, 823, 579, 757, 810, 30, 756, 338, 770 936, 338, 484, 485, 774, 827, 817, 773, 779, 780, 771 501, 602, 602, 383, 383, 383, 794, 881, 836, 602, 772 482, 487, 417, 415, 795, 416, 796, 602, 797, 602, 773 824, 602, 798, 849, 809, 602, 851, 602, 448, 850, 774 420, 403, 421, 448, 502, 834, 886, 475, 905, 885, 775 907, 900, 939, 693, 511, 773, 506, 475, 518, 543, 776 178, 179, 284, 277, 236, 581, 277, 236, 520, 552, 777 106, 876, 552, 106, 295, 560, 181, 182, 880, 534, 778 183, 184, 185, 186, 302, 537, 865, 475, 130, 475, 779 475, 475, 475, 547, 187, 135, 135, 580, 211, 449, 780 241, 211, 449, 241, 548, 391, 549, 475, 475, 475, 781 246, 135, 135, 246, 579, 135, 135, 135, 135, 486, 782 278, 550, 486, 278, 804, 806, 808, 337, 329, 135, 783 337, 329, 107, 558, 243, 107, 212, 243, 899, 242, 784 483, 335, 242, 483, 335, 404, 405, 406, 407, 408, 785 576, 409, 410, 411, 412, 413, 414, 586, 336, 418, 786 419, 336, 600, 909, 588, 590, 591, 487, 334, 331, 787 487, 334, 331, 333, 632, 712, 333, 915, 332, 634, 788 633, 332, 635, 637, 678, 681, 682, 324, 684, 686, 789 687, 695, 692, 691, 696, 543, 700, 338, 338, 338, 790 338, 338, 705, 338, 338, 338, 338, 338, 338, 707, 791 736, 338, 338, 726, 738, 727, 746, 749, 223, 750, 792 591, 765, 775, 945, 799, 817, 948, 800, 801, 811, 793 812, 818, 826, 392, 825, 831, 833, 317, 404, 405, 794 406, 407, 408, 838, 409, 410, 411, 412, 413, 414, 795 845, 846, 418, 419, 848, 314, 861, 236, 958, 525, 796 314, 314, 950, 314, 863, 960, 864, 236, 867, 871, 797 872, 961, 870, 873, 963, 896, 900, 906, 314, 314, 798 314, 911, 929, 741, 931, 932, 935, 971, 941, 940, 799 942, 972, 943, 944, 973, 974, 956, 949, 955, 959, 800 976, 236, 860, 475, 397, 475, 475, 475, 475, 475, 801 957, 475, 475, 475, 475, 475, 475, 964, 500, 475, 802 475, 966, 475, 967, 475, 925, 108, 475, 475, 475, 803 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 804 475, 475, 475, 475, 475, 215, 164, 127, 475, 475, 805 209, 475, 475, 475, 475, 475, 475, 475, 475, 475, 806 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 807 475, 475, 475, 475, 475, 475, 475, 443, 475, 354, 808 475, 475, 475, 475, 475, 562, 475, 475, 475, 475, 809 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 810 475, 475, 213, 444, 475, 475, 475, 483, 475, 475, 811 475, 325, 475, 475, 475, 317, 118, 475, 354, 475, 812 326, 544, 475, 475, 475, 475, 545, 891, 475, 475, 813 475, 914, 968, 930, 718, 510, 475, 475, 475, 475, 814 475, 475, 475, 475, 475, 475, 475, 519, 475, 475, 815 475, 475, 475, 475, 475, 475, 351, 475, 475, 475, 816 475, 889, 475, 475, 475, 594, 351, 629, 828, 643, 817 947, 475, 475, 879, 916, 15, 314, 314, 314, 314, 818 314, 144, 314, 314, 314, 314, 314, 314, 256, 513, 819 314, 314, 835, 351, 676, 965, 733, 351, 351, 351, 820 351, 351, 837, 351, 728, 703, 732, 844, 747, 318, 821 744, 878, 745, 236, 351, 748, 351, 351, 351, 884, 822 0, 0, 348, 0, 0, 0, 0, 0, 236, 236, 823 0, 0, 236, 0, 236, 0, 0, 236, 236, 236, 824 236, 236, 236, 236, 0, 0, 236, 236, 236, 0, 825 0, 0, 0, 236, 236, 0, 0, 0, 236, 236, 826 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 827 0, 0, 236, 236, 0, 0, 0, 236, 0, 0, 828 0, 0, 0, 236, 0, 236, 236, 0, 236, 0, 829 236, 236, 236, 236, 236, 0, 236, 236, 236, 236, 830 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 831 236, 236, 0, 0, 236, 236, 236, 0, 236, 236, 832 236, 0, 236, 236, 236, 0, 314, 236, 0, 236, 833 0, 0, 236, 236, 236, 236, 314, 0, 236, 236, 834 236, 0, 0, 0, 0, 0, 236, 0, 0, 236, 835 236, 236, 236, 236, 236, 236, 236, 0, 236, 236, 836 236, 236, 236, 314, 0, 236, 0, 314, 314, 314, 837 314, 314, 236, 236, 236, 0, 0, 0, 0, 0, 838 0, 236, 236, 0, 314, 0, 314, 314, 314, 0, 839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 841 0, 0, 351, 0, 351, 351, 351, 351, 351, 0, 842 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 843 0, 351, 0, 351, 0, 0, 351, 351, 351, 351, 844 351, 351, 351, 0, 0, 351, 351, 351, 0, 0, 845 0, 0, 351, 351, 0, 0, 0, 351, 351, 0, 846 0, 0, 0, 0, 0, 0, 0, 351, 0, 0, 847 0, 351, 351, 0, 0, 0, 351, 0, 0, 0, 848 0, 0, 351, 0, 351, 351, 0, 351, 0, 351, 849 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 850 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 851 351, 0, 578, 351, 351, 351, 0, 351, 351, 351, 852 0, 351, 351, 351, 0, 0, 351, 0, 351, 0, 853 0, 351, 351, 351, 351, 204, 351, 351, 351, 351, 854 0, 0, 0, 0, 0, 351, 0, 0, 351, 351, 855 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 856 351, 351, 0, 0, 351, 188, 0, 0, 150, 0, 857 151, 351, 351, 351, 0, 0, 0, 0, 0, 0, 858 351, 351, 314, 0, 314, 314, 314, 314, 314, 0, 859 314, 314, 314, 314, 314, 314, 0, 314, 314, 314, 860 0, 314, 0, 314, 0, 0, 314, 314, 314, 314, 861 314, 314, 314, 0, 0, 314, 314, 314, 0, 0, 862 0, 0, 314, 314, 0, 0, 0, 314, 314, 0, 863 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 864 0, 314, 314, 0, 0, 0, 314, 0, 0, 0, 865 0, 0, 314, 0, 314, 314, 0, 314, 0, 314, 866 314, 314, 314, 314, 0, 314, 314, 314, 314, 314, 867 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 868 314, 0, 0, 314, 314, 314, 0, 314, 314, 314, 869 0, 314, 314, 314, 0, 318, 314, 0, 314, 0, 870 0, 314, 314, 314, 314, 318, 314, 314, 314, 314, 871 0, 0, 0, 0, 0, 314, 0, 0, 314, 314, 872 314, 314, 314, 314, 314, 314, 0, 314, 314, 314, 873 314, 314, 318, 0, 314, 0, 318, 318, 318, 318, 874 318, 314, 314, 314, 0, 0, 0, 0, 0, 0, 875 314, 314, 0, 318, 0, 318, 318, 318, 0, 152, 876 153, 0, 0, 0, 154, 155, 156, 157, 0, 0, 877 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 878 162, 163, 164, 0, 165, 166, 167, 0, 149, 168, 879 169, 170, 0, 171, 172, 173, 174, 175, 0, 176, 880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881 0, 0, 152, 153, 0, 0, 0, 154, 155, 156, 882 157, 0, 0, 0, 0, 0, 0, 0, 0, 158, 883 159, 160, 161, 162, 163, 164, 0, 165, 166, 167, 884 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 885 175, 0, 176, 0, 0, 0, 0, 0, 0, 0, 886 0, 0, 178, 179, 0, 315, 0, 0, 180, 0, 887 0, 0, 0, 0, 0, 315, 0, 0, 181, 182, 888 0, 0, 183, 184, 185, 186, 0, 0, 0, 89, 889 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 890 0, 0, 315, 0, 177, 0, 315, 315, 315, 315, 891 315, 0, 0, 0, 0, 178, 179, 0, 0, 0, 892 0, 180, 0, 315, 0, 315, 315, 315, 0, 0, 893 0, 181, 182, 0, 0, 183, 184, 185, 186, 0, 894 0, 0, 89, 0, 0, 0, 0, 0, 0, 187, 895 0, 318, 0, 318, 318, 318, 318, 318, 0, 318, 896 318, 318, 318, 318, 318, 0, 318, 318, 318, 0, 897 318, 0, 318, 0, 0, 318, 318, 318, 318, 318, 898 318, 318, 0, 0, 318, 318, 318, 0, 0, 0, 899 0, 318, 318, 0, 0, 0, 318, 318, 0, 0, 900 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 901 318, 318, 0, 0, 0, 318, 0, 0, 0, 0, 902 0, 318, 0, 318, 318, 0, 318, 0, 318, 318, 903 318, 318, 318, 0, 318, 318, 318, 318, 318, 318, 904 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 905 0, 0, 318, 318, 318, 0, 318, 318, 318, 0, 906 318, 318, 318, 0, 0, 318, 0, 318, 0, 0, 907 318, 318, 318, 318, 0, 318, 318, 318, 318, 0, 908 0, 0, 0, 0, 318, 0, 0, 318, 318, 318, 909 318, 318, 318, 318, 318, 0, 318, 318, 318, 318, 910 318, 188, 0, 318, 150, 0, 151, 0, 0, 0, 911 318, 318, 318, 0, 0, 0, 0, 0, 0, 318, 912 318, 315, 661, 315, 315, 315, 315, 315, 0, 315, 913 315, 315, 315, 315, 315, 0, 315, 315, 315, 0, 914 315, 0, 315, 0, 0, 315, 315, 315, 315, 315, 915 315, 315, 0, 0, 315, 315, 315, 0, 0, 0, 916 0, 315, 315, 0, 0, 0, 315, 315, 0, 0, 917 0, 0, 417, 415, 0, 416, 315, 0, 0, 0, 918 315, 315, 0, 0, 0, 315, 0, 0, 0, 0, 919 420, 315, 421, 315, 315, 0, 315, 0, 315, 315, 920 315, 315, 315, 0, 315, 315, 315, 315, 315, 315, 921 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 922 0, 0, 315, 315, 315, 0, 315, 315, 315, 0, 923 315, 315, 315, 0, 323, 315, 0, 315, 0, 0, 924 315, 315, 315, 315, 323, 315, 315, 315, 315, 0, 925 0, 0, 0, 0, 315, 0, 488, 315, 315, 315, 926 315, 315, 315, 315, 315, 0, 315, 315, 315, 315, 927 315, 0, 0, 315, 323, 323, 323, 323, 323, 323, 928 315, 315, 315, 0, 0, 0, 0, 0, 0, 315, 929 315, 0, 323, 0, 323, 323, 323, 0, 0, 0, 930 0, 0, 0, 0, 0, 0, 0, 253, 254, 489, 931 0, 0, 0, 0, 0, 0, 0, 417, 415, 0, 932 416, 0, 0, 0, 149, 0, 0, 0, 0, 0, 933 0, 0, 0, 662, 0, 420, 490, 421, 491, 492, 934 493, 0, 0, 494, 495, 0, 496, 497, 152, 153, 935 0, 0, 0, 154, 155, 156, 157, 0, 0, 0, 936 0, 0, 0, 0, 0, 158, 159, 160, 161, 162, 937 163, 164, 0, 165, 166, 167, 0, 0, 168, 169, 938 170, 0, 171, 172, 173, 174, 175, 0, 176, 0, 939 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 940 0, 0, 418, 419, 320, 0, 0, 0, 0, 0, 941 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 944 177, 320, 0, 0, 0, 320, 320, 320, 320, 320, 945 0, 178, 179, 0, 0, 0, 0, 180, 0, 0, 946 0, 0, 320, 0, 320, 320, 320, 181, 182, 0, 947 0, 183, 184, 185, 186, 0, 0, 0, 89, 0, 948 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 949 323, 0, 323, 323, 323, 323, 323, 0, 323, 323, 950 323, 323, 323, 323, 0, 323, 323, 323, 0, 323, 951 0, 323, 0, 0, 323, 323, 323, 323, 323, 323, 952 323, 0, 0, 323, 323, 323, 0, 0, 0, 0, 953 323, 323, 0, 0, 0, 323, 323, 408, 0, 409, 954 410, 411, 412, 413, 414, 323, 0, 418, 419, 323, 955 323, 0, 0, 0, 323, 0, 0, 0, 0, 0, 956 323, 0, 323, 323, 0, 323, 0, 323, 323, 323, 957 323, 323, 0, 323, 323, 323, 323, 323, 323, 323, 958 323, 323, 323, 323, 323, 323, 323, 323, 323, 0, 959 578, 323, 323, 323, 0, 323, 323, 323, 0, 323, 960 323, 323, 0, 0, 323, 0, 323, 0, 0, 323, 961 323, 323, 323, 0, 323, 323, 323, 323, 0, 0, 962 0, 0, 0, 323, 0, 0, 323, 323, 323, 323, 963 323, 323, 323, 323, 0, 323, 323, 323, 323, 323, 964 0, 0, 323, 188, 0, 709, 150, 0, 151, 323, 965 323, 323, 0, 0, 0, 0, 0, 0, 323, 323, 966 320, 708, 320, 320, 320, 320, 320, 0, 320, 320, 967 320, 320, 320, 320, 0, 320, 320, 320, 0, 320, 968 0, 320, 0, 0, 320, 320, 320, 320, 320, 320, 969 320, 0, 0, 320, 320, 320, 0, 0, 0, 0, 970 320, 320, 0, 0, 0, 320, 320, 0, 0, 0, 971 0, 0, 0, 0, 0, 320, 0, 0, 0, 320, 972 320, 0, 0, 0, 320, 0, 0, 0, 0, 0, 973 320, 0, 320, 320, 0, 320, 0, 320, 320, 320, 974 320, 320, 0, 320, 320, 320, 320, 320, 320, 320, 975 320, 320, 320, 320, 320, 320, 320, 320, 320, 0, 976 0, 320, 320, 320, 0, 320, 320, 320, 0, 320, 977 320, 320, 0, 280, 320, 0, 320, 0, 0, 320, 978 320, 320, 320, 280, 320, 320, 320, 320, 0, 0, 979 0, 0, 0, 320, 0, 0, 320, 320, 320, 320, 980 320, 320, 320, 320, 0, 320, 320, 320, 320, 320, 981 280, 0, 320, 0, 280, 280, 280, 280, 280, 320, 982 320, 320, 0, 0, 0, 0, 0, 0, 320, 320, 983 0, 280, 0, 280, 280, 280, 0, 152, 153, 0, 984 0, 0, 154, 155, 156, 157, 0, 0, 0, 0, 985 0, 0, 0, 0, 158, 159, 160, 161, 162, 163, 986 164, 0, 165, 166, 167, 0, 149, 168, 169, 170, 987 0, 171, 172, 173, 174, 175, 0, 176, 0, 0, 988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 989 152, 153, 0, 0, 0, 154, 155, 156, 157, 0, 990 0, 0, 0, 0, 0, 0, 0, 158, 159, 160, 991 161, 162, 163, 164, 0, 165, 166, 167, 0, 0, 992 168, 169, 170, 0, 171, 172, 173, 174, 175, 0, 993 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994 178, 179, 0, 279, 0, 0, 180, 0, 0, 0, 995 0, 0, 0, 279, 0, 0, 181, 182, 0, 0, 996 183, 184, 185, 186, 0, 0, 0, 892, 0, 0, 997 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 998 0, 0, 177, 0, 279, 279, 279, 279, 279, 0, 999 0, 0, 0, 178, 179, 0, 0, 0, 0, 180, 1000 0, 279, 0, 279, 279, 279, 0, 0, 0, 181, 1001 182, 0, 0, 183, 184, 185, 186, 0, 0, 0, 1002 89, 0, 0, 0, 0, 0, 0, 187, 0, 280, 1003 0, 280, 280, 280, 280, 280, 0, 280, 280, 280, 1004 280, 280, 280, 0, 280, 280, 280, 0, 280, 0, 1005 280, 0, 0, 280, 280, 280, 280, 280, 280, 280, 1006 0, 0, 280, 280, 280, 0, 0, 0, 0, 280, 1007 280, 0, 0, 0, 280, 280, 0, 0, 0, 0, 1008 0, 0, 0, 0, 280, 0, 0, 0, 280, 280, 1009 0, 0, 0, 280, 0, 0, 0, 0, 0, 280, 1010 0, 280, 280, 0, 280, 0, 280, 280, 280, 280, 1011 280, 0, 280, 280, 280, 280, 280, 280, 280, 280, 1012 280, 280, 280, 280, 280, 280, 280, 280, 0, 0, 1013 280, 280, 280, 0, 280, 280, 280, 0, 280, 280, 1014 280, 0, 0, 280, 0, 280, 0, 0, 280, 280, 1015 280, 280, 0, 280, 280, 280, 280, 0, 0, 0, 1016 0, 0, 280, 0, 0, 280, 280, 280, 280, 280, 1017 280, 280, 280, 0, 280, 280, 280, 280, 280, 0, 1018 0, 280, 188, 0, 540, 150, 0, 151, 280, 280, 1019 0, 0, 0, 0, 0, 0, 0, 280, 280, 279, 1020 0, 279, 279, 279, 279, 279, 0, 279, 279, 279, 1021 279, 279, 279, 0, 279, 279, 279, 0, 279, 0, 1022 279, 0, 0, 279, 279, 279, 279, 279, 279, 279, 1023 0, 0, 279, 279, 279, 0, 0, 0, 0, 279, 1024 279, 0, 0, 0, 279, 279, 0, 0, 417, 415, 1025 0, 416, 0, 0, 279, 0, 0, 0, 279, 279, 1026 0, 0, 0, 279, 0, 0, 420, 0, 421, 279, 1027 0, 279, 279, 0, 279, 0, 279, 279, 279, 279, 1028 279, 0, 279, 279, 279, 279, 279, 279, 279, 279, 1029 279, 279, 279, 279, 279, 279, 279, 279, 0, 0, 1030 279, 279, 279, 0, 279, 279, 279, 0, 279, 279, 1031 279, 0, 538, 279, 0, 279, 0, 0, 279, 279, 1032 279, 279, 538, 279, 279, 279, 279, 0, 0, 0, 1033 0, 0, 279, 0, 0, 279, 279, 279, 279, 279, 1034 279, 279, 279, 0, 279, 279, 279, 279, 279, 0, 1035 0, 279, 0, 250, 250, 250, 538, 250, 279, 279, 1036 279, 0, 0, 0, 0, 0, 0, 279, 279, 0, 1037 0, 0, 250, 250, 250, 0, 0, 454, 0, 0, 1038 0, 455, 456, 457, 458, 0, 0, 0, 0, 0, 1039 0, 0, 0, 459, 460, 461, 462, 463, 464, 465, 1040 0, 466, 467, 468, 0, 149, 469, 470, 471, 0, 1041 0, 472, 473, 474, 475, 0, 476, 0, 0, 0, 1042 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 1043 153, 0, 0, 0, 154, 155, 156, 157, 0, 0, 1044 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 1045 162, 163, 164, 0, 165, 166, 167, 0, 0, 168, 1046 169, 170, 0, 171, 172, 173, 174, 175, 0, 176, 1047 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1048 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 1049 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 1050 0, 0, 0, 0, 0, 0, 477, 0, 0, 0, 1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 1052 0, 177, 0, 283, 283, 283, 283, 283, 0, 0, 1053 0, 0, 178, 179, 0, 0, 0, 0, 180, 0, 1054 283, 0, 0, 283, 0, 0, 0, 0, 181, 182, 1055 0, 0, 183, 184, 185, 186, 0, 0, 0, 541, 1056 0, 0, 0, 0, 0, 0, 187, 0, 538, 0, 1057 250, 250, 250, 250, 250, 0, 250, 250, 250, 250, 1058 250, 250, 0, 0, 250, 250, 0, 538, 0, 538, 1059 0, 0, 538, 538, 538, 538, 538, 538, 538, 0, 1060 0, 538, 538, 538, 0, 0, 0, 0, 538, 538, 1061 0, 0, 0, 538, 538, 0, 0, 0, 0, 0, 1062 0, 0, 0, 538, 0, 0, 0, 538, 538, 0, 1063 0, 0, 538, 0, 0, 0, 0, 0, 538, 0, 1064 538, 538, 0, 538, 0, 538, 538, 538, 538, 538, 1065 0, 538, 538, 538, 538, 538, 538, 538, 538, 538, 1066 538, 538, 538, 538, 538, 538, 538, 0, 0, 538, 1067 538, 538, 0, 538, 538, 538, 0, 538, 538, 538, 1068 0, 0, 538, 0, 538, 0, 0, 538, 538, 538, 1069 538, 0, 538, 538, 538, 538, 0, 0, 0, 0, 1070 0, 538, 0, 0, 538, 538, 538, 538, 538, 538, 1071 538, 538, 0, 538, 538, 538, 538, 538, 0, 0, 1072 538, 0, 0, 0, 0, 0, 0, 538, 538, 538, 1073 0, 0, 0, 0, 0, 0, 538, 538, 283, 0, 1074 283, 283, 283, 283, 283, 289, 283, 283, 283, 283, 1075 283, 283, 0, 283, 283, 289, 0, 283, 0, 283, 1076 0, 0, 283, 283, 283, 283, 283, 283, 283, 0, 1077 0, 283, 283, 283, 0, 0, 0, 0, 283, 283, 1078 0, 0, 289, 283, 283, 0, 289, 289, 289, 289, 1079 289, 0, 0, 283, 0, 0, 0, 283, 283, 0, 1080 0, 0, 283, 289, 0, 0, 289, 0, 283, 0, 1081 283, 283, 0, 283, 0, 283, 283, 283, 283, 283, 1082 0, 283, 283, 283, 283, 283, 283, 283, 283, 283, 1083 283, 283, 283, 283, 283, 283, 283, 0, 0, 283, 1084 283, 283, 0, 283, 283, 283, 0, 283, 283, 283, 1085 0, 0, 283, 0, 283, 0, 0, 283, 283, 283, 1086 283, 0, 283, 283, 283, 283, 0, 0, 0, 0, 1087 0, 283, 0, 0, 283, 283, 283, 283, 283, 283, 1088 283, 283, 0, 283, 283, 283, 283, 283, 0, 0, 1089 283, 0, 0, 0, 0, 0, 0, 283, 283, 283, 1090 0, 0, 0, 0, 0, 0, 283, 283, 0, 0, 1091 0, 0, 0, 0, 108, 290, 0, 0, 108, 108, 1092 108, 108, 0, 0, 0, 290, 0, 0, 0, 0, 1093 108, 108, 108, 108, 108, 108, 108, 0, 108, 108, 1094 108, 0, 0, 108, 108, 108, 0, 0, 108, 108, 1095 108, 108, 290, 108, 0, 0, 290, 290, 290, 290, 1096 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1097 0, 0, 0, 290, 0, 0, 290, 0, 0, 0, 1098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100 0, 289, 0, 289, 289, 289, 289, 289, 0, 289, 1101 289, 289, 289, 289, 289, 0, 289, 289, 0, 0, 1102 289, 0, 289, 0, 0, 289, 289, 289, 289, 289, 1103 289, 289, 0, 0, 289, 289, 289, 0, 0, 0, 1104 0, 289, 289, 108, 0, 0, 289, 289, 0, 0, 1105 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 1106 289, 289, 0, 0, 0, 289, 0, 0, 0, 0, 1107 0, 289, 0, 289, 289, 0, 289, 0, 289, 289, 1108 289, 289, 289, 0, 289, 289, 289, 289, 289, 289, 1109 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, 1110 0, 0, 289, 289, 289, 0, 289, 289, 289, 0, 1111 289, 289, 289, 0, 0, 289, 0, 289, 0, 0, 1112 289, 289, 289, 289, 0, 289, 289, 289, 289, 0, 1113 0, 0, 0, 0, 289, 0, 0, 289, 289, 289, 1114 289, 289, 289, 289, 289, 0, 289, 289, 289, 289, 1115 289, 0, 0, 289, 0, 0, 0, 0, 0, 0, 1116 289, 289, 289, 0, 0, 0, 0, 0, 0, 289, 1117 289, 290, 0, 290, 290, 290, 290, 290, 311, 290, 1118 290, 290, 290, 290, 290, 0, 290, 290, 311, 0, 1119 290, 0, 290, 0, 0, 290, 290, 290, 290, 290, 1120 290, 290, 0, 0, 290, 290, 290, 0, 0, 0, 1121 0, 290, 290, 0, 0, 311, 290, 290, 0, 311, 1122 311, 311, 311, 311, 0, 0, 290, 0, 0, 0, 1123 290, 290, 0, 0, 0, 290, 311, 0, 0, 311, 1124 0, 290, 0, 290, 290, 0, 290, 0, 290, 290, 1125 290, 290, 290, 0, 290, 290, 290, 290, 290, 290, 1126 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1127 0, 0, 290, 290, 290, 0, 290, 290, 290, 0, 1128 290, 290, 290, 0, 0, 290, 0, 290, 0, 0, 1129 290, 290, 290, 290, 0, 290, 290, 290, 290, 0, 1130 0, 0, 0, 0, 290, 0, 0, 290, 290, 290, 1131 290, 290, 290, 290, 290, 0, 290, 290, 290, 290, 1132 290, 0, 0, 290, 0, 0, 0, 0, 0, 0, 1133 290, 290, 290, 0, 20, 0, 0, 0, 0, 290, 1134 290, 0, 0, 0, 0, 0, 0, 0, 519, 0, 1135 0, 0, 0, 0, 0, 0, 0, 0, 519, 26, 1136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1137 0, 0, 0, 0, 30, 0, 0, 0, 0, 33, 1138 314, 0, 0, 0, 37, 38, 0, 0, 0, 519, 1139 519, 519, 519, 519, 315, 47, 48, 49, 50, 51, 1140 52, 316, 0, 0, 0, 0, 0, 0, 519, 519, 1141 519, 0, 0, 0, 62, 0, 0, 0, 0, 0, 1142 65, 0, 0, 0, 0, 0, 0, 0, 0, 70, 1143 0, 72, 0, 0, 311, 0, 311, 311, 311, 311, 1144 311, 0, 311, 311, 311, 311, 311, 311, 0, 311, 1145 311, 0, 0, 311, 0, 311, 0, 0, 311, 311, 1146 311, 311, 311, 311, 311, 89, 0, 311, 311, 311, 1147 0, 0, 90, 0, 311, 311, 0, 0, 0, 311, 1148 311, 0, 0, 0, 0, 0, 0, 0, 0, 311, 1149 0, 0, 0, 311, 311, 0, 0, 0, 311, 0, 1150 0, 0, 0, 0, 311, 0, 311, 311, 0, 311, 1151 0, 311, 311, 311, 311, 311, 0, 311, 311, 311, 1152 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, 1153 311, 311, 311, 0, 0, 311, 311, 311, 0, 311, 1154 311, 311, 0, 311, 311, 311, 0, 0, 311, 0, 1155 311, 0, 0, 311, 311, 311, 311, 0, 311, 311, 1156 311, 311, 0, 0, 0, 0, 0, 311, 0, 0, 1157 311, 311, 311, 311, 311, 311, 311, 311, 0, 311, 1158 311, 311, 311, 311, 0, 0, 311, 188, 0, 559, 1159 150, 0, 151, 311, 311, 311, 0, 0, 0, 0, 1160 0, 0, 311, 311, 519, 0, 519, 519, 519, 519, 1161 519, 0, 519, 519, 519, 519, 519, 519, 0, 0, 1162 519, 519, 0, 519, 0, 519, 0, 0, 519, 519, 1163 519, 519, 519, 519, 519, 0, 0, 519, 519, 519, 1164 0, 0, 0, 0, 519, 519, 0, 0, 0, 519, 1165 519, 0, 0, 0, 0, 0, 0, 0, 0, 519, 1166 0, 0, 0, 519, 519, 0, 0, 0, 519, 0, 1167 0, 0, 0, 0, 519, 0, 519, 519, 0, 519, 1168 0, 519, 519, 519, 519, 519, 0, 519, 519, 519, 1169 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 1170 519, 519, 519, 0, 0, 519, 519, 519, 0, 519, 1171 519, 519, 0, 519, 519, 519, 0, 528, 519, 0, 1172 519, 0, 0, 519, 519, 519, 519, 528, 0, 519, 1173 519, 519, 0, 0, 0, 0, 0, 519, 0, 0, 1174 519, 519, 519, 519, 519, 519, 519, 519, 0, 519, 1175 519, 519, 519, 519, 0, 0, 519, 0, 0, 247, 1176 247, 0, 247, 519, 519, 519, 0, 0, 0, 0, 1177 0, 0, 519, 519, 0, 0, 0, 247, 247, 247, 1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1181 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1183 0, 0, 0, 0, 152, 153, 0, 0, 0, 154, 1184 155, 156, 157, 0, 0, 0, 0, 0, 0, 0, 1185 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, 1186 166, 167, 0, 0, 168, 169, 170, 0, 171, 172, 1187 173, 174, 175, 0, 176, 0, 0, 0, 0, 0, 1188 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 1189 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 1190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192 0, 0, 0, 0, 287, 0, 177, 0, 287, 0, 1193 287, 287, 287, 0, 0, 0, 0, 178, 179, 0, 1194 0, 0, 0, 180, 0, 287, 0, 0, 287, 0, 1195 0, 0, 0, 181, 182, 0, 0, 183, 184, 185, 1196 186, 0, 0, 0, 89, 0, 0, 0, 0, 0, 1197 0, 187, 0, 528, 0, 247, 247, 247, 247, 247, 1198 0, 247, 247, 247, 247, 247, 247, 0, 0, 247, 1199 247, 0, 528, 0, 528, 0, 0, 528, 528, 528, 1200 528, 528, 528, 528, 0, 0, 528, 528, 528, 0, 1201 0, 0, 0, 528, 528, 0, 0, 0, 528, 528, 1202 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 1203 0, 0, 528, 528, 0, 0, 0, 528, 0, 0, 1204 0, 0, 0, 528, 0, 528, 528, 0, 528, 0, 1205 528, 528, 528, 528, 528, 0, 528, 528, 528, 528, 1206 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 1207 528, 528, 0, 0, 528, 528, 528, 0, 528, 528, 1208 528, 0, 528, 528, 528, 0, 0, 528, 0, 528, 1209 0, 0, 528, 528, 528, 528, 0, 528, 528, 528, 1210 528, 0, 0, 0, 0, 0, 528, 0, 0, 528, 1211 528, 528, 528, 528, 528, 528, 528, 0, 528, 528, 1212 528, 528, 528, 0, 0, 528, 0, 0, 0, 0, 1213 0, 0, 528, 528, 528, 0, 0, 0, 0, 0, 1214 0, 528, 528, 287, 0, 287, 287, 287, 287, 287, 1215 288, 287, 287, 287, 287, 287, 287, 0, 287, 0, 1216 288, 0, 287, 0, 287, 0, 0, 287, 287, 287, 1217 287, 287, 287, 287, 0, 0, 287, 287, 287, 0, 1218 0, 0, 0, 287, 287, 0, 0, 288, 287, 287, 1219 0, 288, 0, 288, 288, 288, 0, 0, 287, 0, 1220 0, 0, 287, 287, 0, 0, 0, 287, 288, 0, 1221 0, 288, 0, 287, 0, 287, 287, 0, 287, 0, 1222 287, 287, 287, 287, 287, 0, 287, 287, 287, 287, 1223 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 1224 287, 287, 0, 0, 287, 287, 287, 0, 287, 287, 1225 287, 0, 287, 287, 287, 0, 0, 287, 0, 287, 1226 0, 0, 287, 287, 287, 287, 0, 287, 287, 287, 1227 287, 0, 0, 0, 0, 0, 287, 0, 0, 287, 1228 287, 287, 287, 287, 287, 287, 287, 0, 287, 287, 1229 287, 287, 287, 0, 0, 287, 0, 0, 0, 0, 1230 0, 0, 287, 287, 287, 0, 0, 0, 0, 0, 1231 0, 287, 287, 0, 0, 0, 0, 0, 0, 0, 1232 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1233 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1235 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 1236 0, 308, 308, 0, 308, 0, 0, 0, 0, 0, 1237 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 1238 308, 0, 308, 0, 0, 0, 0, 0, 0, 0, 1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240 0, 0, 0, 0, 0, 0, 288, 0, 288, 288, 1241 288, 288, 288, 0, 288, 288, 288, 288, 288, 288, 1242 0, 288, 0, 0, 0, 288, 0, 288, 0, 0, 1243 288, 288, 288, 288, 288, 288, 288, 0, 0, 288, 1244 288, 288, 0, 0, 0, 0, 288, 288, 0, 0, 1245 0, 288, 288, 0, 0, 0, 0, 0, 0, 0, 1246 0, 288, 0, 0, 0, 288, 288, 0, 0, 0, 1247 288, 0, 0, 0, 0, 0, 288, 0, 288, 288, 1248 0, 288, 22, 288, 288, 288, 288, 288, 0, 288, 1249 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 1250 288, 288, 288, 288, 288, 0, 0, 288, 288, 288, 1251 0, 288, 288, 288, 0, 288, 288, 288, 0, 0, 1252 288, 0, 288, 0, 0, 288, 288, 288, 288, 0, 1253 288, 288, 288, 288, 0, 0, 0, 0, 0, 288, 1254 0, 0, 288, 288, 288, 288, 288, 288, 288, 288, 1255 0, 288, 288, 288, 288, 288, 0, 0, 288, 0, 1256 0, 0, 0, 0, 0, 288, 288, 288, 0, 0, 1257 0, 0, 0, 0, 288, 288, 308, 0, 308, 308, 1258 308, 308, 308, 0, 308, 308, 308, 308, 308, 308, 1259 0, 308, 0, 308, 0, 308, 0, 308, 0, 0, 1260 308, 308, 308, 308, 308, 308, 308, 0, 0, 308, 1261 308, 308, 0, 0, 0, 0, 308, 308, 0, 0, 1262 0, 308, 308, 0, 0, 0, 0, 0, 0, 0, 1263 0, 308, 0, 0, 0, 308, 308, 0, 0, 0, 1264 308, 0, 0, 0, 0, 0, 308, 0, 308, 308, 1265 0, 308, 0, 308, 308, 308, 308, 308, 0, 308, 1266 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1267 308, 308, 308, 308, 308, 0, 0, 308, 308, 308, 1268 0, 308, 308, 308, 0, 308, 308, 308, 0, 466, 1269 308, 0, 308, 0, 0, 308, 308, 308, 308, 466, 1270 308, 308, 308, 308, 338, 0, 0, 0, 338, 308, 1271 0, 338, 308, 308, 308, 308, 0, 308, 308, 308, 1272 0, 308, 308, 308, 308, 308, 0, 338, 308, 338, 1273 0, 518, 518, 518, 518, 308, 308, 0, 0, 0, 1274 0, 0, 0, 0, 0, 308, 0, 0, 0, 518, 1275 518, 518, 0, 0, 0, 0, 0, 22, 0, 22, 1276 0, 0, 22, 22, 22, 22, 0, 0, 22, 0, 1277 0, 22, 22, 22, 0, 0, 0, 0, 22, 22, 1278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1279 0, 0, 0, 22, 0, 0, 0, 22, 22, 0, 1280 0, 0, 22, 0, 0, 0, 0, 0, 22, 0, 1281 22, 22, 0, 22, 0, 22, 22, 22, 22, 22, 1282 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 1283 22, 22, 22, 22, 22, 22, 22, 0, 0, 22, 1284 22, 22, 0, 22, 22, 22, 0, 22, 22, 22, 1285 0, 518, 22, 0, 22, 0, 0, 22, 22, 22, 1286 22, 518, 0, 22, 22, 22, 0, 0, 0, 0, 1287 0, 22, 0, 0, 0, 22, 22, 22, 22, 22, 1288 22, 22, 0, 22, 22, 22, 22, 22, 0, 0, 1289 22, 0, 0, 518, 518, 518, 518, 22, 22, 22, 1290 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 1291 0, 518, 518, 518, 0, 0, 0, 0, 0, 0, 1292 0, 0, 0, 0, 0, 338, 338, 338, 338, 338, 1293 0, 338, 338, 338, 338, 338, 338, 0, 0, 338, 1294 338, 0, 0, 0, 0, 466, 0, 518, 518, 518, 1295 518, 518, 0, 518, 518, 518, 518, 518, 518, 0, 1296 0, 518, 518, 0, 466, 0, 466, 0, 0, 466, 1297 466, 466, 466, 466, 466, 466, 0, 0, 466, 466, 1298 466, 0, 0, 0, 0, 466, 466, 0, 0, 0, 1299 466, 466, 0, 0, 0, 0, 0, 0, 0, 0, 1300 466, 0, 56, 0, 466, 466, 0, 0, 0, 466, 1301 0, 0, 56, 0, 0, 466, 0, 466, 466, 0, 1302 466, 0, 466, 466, 466, 466, 466, 0, 466, 466, 1303 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 1304 466, 466, 466, 466, 0, 0, 466, 466, 466, 0, 1305 466, 466, 466, 0, 466, 466, 466, 0, 0, 466, 1306 0, 466, 0, 0, 466, 466, 466, 466, 0, 0, 1307 466, 466, 466, 0, 0, 0, 0, 0, 466, 0, 1308 0, 466, 466, 466, 466, 0, 466, 466, 466, 0, 1309 466, 466, 466, 466, 466, 0, 0, 466, 0, 0, 1310 0, 0, 0, 0, 466, 466, 0, 518, 0, 518, 1311 518, 518, 518, 518, 466, 518, 518, 518, 518, 518, 1312 518, 0, 0, 518, 518, 0, 518, 0, 518, 0, 1313 0, 518, 518, 518, 518, 518, 518, 518, 0, 0, 1314 518, 518, 518, 0, 0, 0, 0, 518, 518, 0, 1315 0, 0, 518, 518, 0, 0, 0, 0, 0, 0, 1316 0, 0, 518, 0, 0, 0, 518, 518, 0, 0, 1317 0, 518, 0, 0, 0, 0, 0, 518, 0, 518, 1318 518, 0, 518, 0, 518, 518, 518, 518, 518, 0, 1319 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 1320 518, 518, 518, 518, 518, 518, 0, 0, 518, 518, 1321 518, 0, 518, 518, 518, 0, 518, 518, 518, 0, 1322 284, 518, 0, 518, 0, 0, 518, 518, 518, 518, 1323 284, 0, 518, 518, 518, 0, 0, 0, 0, 0, 1324 518, 0, 0, 518, 518, 518, 518, 0, 518, 518, 1325 518, 0, 518, 518, 518, 518, 518, 284, 56, 518, 1326 0, 284, 0, 0, 284, 0, 518, 518, 0, 0, 1327 0, 0, 0, 164, 164, 0, 518, 56, 284, 56, 1328 0, 284, 56, 56, 56, 56, 56, 56, 56, 0, 1329 0, 56, 56, 56, 0, 0, 0, 0, 56, 56, 1330 0, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1331 0, 0, 0, 56, 0, 0, 0, 56, 56, 0, 1332 0, 0, 56, 0, 0, 0, 0, 0, 56, 0, 1333 56, 56, 0, 56, 0, 56, 56, 56, 56, 56, 1334 0, 56, 56, 56, 56, 56, 56, 56, 56, 56, 1335 56, 56, 56, 56, 56, 56, 56, 0, 0, 56, 1336 56, 56, 0, 56, 56, 56, 0, 56, 56, 56, 1337 0, 305, 56, 0, 56, 0, 0, 56, 56, 56, 1338 56, 305, 0, 56, 56, 56, 0, 0, 0, 0, 1339 0, 56, 0, 0, 56, 56, 56, 56, 56, 56, 1340 56, 56, 0, 56, 56, 56, 56, 56, 305, 0, 1341 56, 0, 305, 0, 0, 305, 0, 56, 56, 56, 1342 0, 0, 0, 0, 0, 0, 56, 56, 0, 305, 1343 0, 0, 305, 0, 0, 0, 0, 0, 0, 0, 1344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1347 0, 0, 0, 0, 0, 0, 284, 0, 284, 284, 1348 284, 284, 284, 0, 0, 0, 0, 0, 0, 0, 1349 0, 284, 0, 0, 0, 284, 0, 284, 0, 0, 1350 284, 284, 284, 284, 284, 284, 284, 0, 0, 284, 1351 284, 284, 0, 0, 0, 0, 284, 284, 0, 0, 1352 0, 284, 284, 0, 0, 0, 0, 0, 0, 0, 1353 0, 284, 0, 0, 0, 284, 284, 0, 0, 0, 1354 284, 0, 0, 0, 0, 0, 284, 0, 284, 284, 1355 0, 284, 0, 284, 284, 284, 284, 284, 0, 284, 1356 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 1357 284, 284, 284, 284, 284, 0, 0, 284, 284, 284, 1358 0, 284, 284, 284, 0, 284, 284, 284, 341, 341, 1359 284, 341, 284, 0, 0, 284, 284, 284, 284, 0, 1360 284, 284, 284, 284, 0, 0, 341, 341, 341, 284, 1361 0, 0, 284, 284, 284, 284, 284, 284, 284, 284, 1362 0, 284, 284, 284, 284, 284, 0, 305, 284, 305, 1363 305, 305, 305, 305, 0, 284, 284, 284, 0, 0, 1364 295, 0, 305, 0, 284, 284, 305, 0, 305, 0, 1365 295, 305, 305, 305, 305, 305, 305, 305, 0, 0, 1366 305, 305, 305, 0, 0, 0, 0, 305, 305, 0, 1367 0, 0, 305, 305, 0, 0, 0, 295, 0, 0, 1368 0, 295, 305, 0, 295, 0, 305, 305, 0, 0, 1369 0, 305, 0, 0, 0, 0, 0, 305, 295, 305, 1370 305, 295, 305, 0, 305, 305, 305, 305, 305, 0, 1371 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 1372 305, 305, 305, 305, 305, 305, 0, 0, 305, 305, 1373 305, 0, 305, 305, 305, 0, 305, 305, 305, 0, 1374 0, 305, 0, 305, 0, 0, 305, 305, 305, 305, 1375 0, 305, 305, 305, 305, 0, 0, 0, 0, 0, 1376 305, 0, 0, 305, 305, 305, 305, 305, 305, 305, 1377 305, 0, 305, 305, 305, 305, 305, 0, 0, 305, 1378 0, 0, 0, 0, 0, 0, 305, 305, 305, 0, 1379 0, 293, 0, 0, 0, 305, 305, 0, 0, 0, 1380 0, 293, 0, 0, 341, 341, 341, 341, 341, 0, 1381 341, 341, 341, 341, 341, 341, 0, 0, 341, 341, 1382 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 1383 0, 0, 293, 0, 0, 293, 0, 0, 0, 0, 1384 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 1385 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 1386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1389 0, 0, 0, 0, 0, 0, 295, 0, 295, 295, 1390 295, 295, 295, 0, 0, 0, 0, 0, 0, 0, 1391 0, 295, 0, 0, 0, 295, 0, 295, 0, 0, 1392 295, 295, 295, 295, 295, 295, 295, 0, 0, 295, 1393 295, 295, 0, 0, 0, 0, 295, 295, 0, 0, 1394 0, 295, 295, 0, 0, 0, 0, 0, 0, 0, 1395 0, 295, 0, 0, 0, 295, 295, 0, 0, 0, 1396 295, 0, 0, 341, 0, 0, 295, 0, 295, 295, 1397 0, 295, 0, 295, 295, 295, 295, 295, 0, 295, 1398 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 1399 295, 295, 295, 295, 295, 0, 0, 295, 295, 295, 1400 0, 295, 295, 295, 0, 295, 295, 295, 417, 415, 1401 295, 416, 295, 0, 0, 295, 295, 295, 295, 0, 1402 295, 295, 295, 295, 852, 0, 420, 403, 421, 295, 1403 0, 0, 295, 295, 295, 295, 295, 295, 295, 295, 1404 0, 295, 295, 295, 295, 295, 0, 293, 295, 293, 1405 293, 293, 293, 293, 0, 295, 295, 295, 0, 0, 1406 299, 0, 293, 0, 295, 295, 293, 0, 293, 0, 1407 299, 293, 293, 293, 293, 293, 293, 293, 0, 0, 1408 293, 293, 293, 0, 0, 0, 0, 293, 293, 0, 1409 0, 0, 293, 293, 0, 0, 0, 299, 0, 0, 1410 0, 299, 293, 0, 299, 0, 293, 293, 0, 0, 1411 0, 293, 0, 0, 0, 0, 0, 293, 299, 293, 1412 293, 299, 293, 0, 293, 293, 293, 293, 293, 0, 1413 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 1414 293, 293, 293, 293, 293, 293, 0, 0, 293, 293, 1415 293, 0, 293, 293, 293, 0, 293, 293, 293, 0, 1416 0, 293, 0, 293, 0, 0, 293, 293, 293, 293, 1417 0, 293, 293, 293, 293, 0, 0, 0, 0, 0, 1418 293, 0, 0, 293, 293, 293, 293, 293, 293, 293, 1419 293, 0, 293, 293, 293, 293, 293, 0, 0, 293, 1420 0, 0, 0, 0, 0, 0, 293, 293, 293, 0, 1421 0, 297, 0, 0, 0, 293, 293, 0, 0, 0, 1422 0, 297, 0, 0, 404, 405, 406, 407, 408, 0, 1423 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1424 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 1425 0, 0, 297, 0, 0, 297, 0, 0, 0, 0, 1426 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 1427 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1431 0, 0, 0, 0, 0, 0, 299, 0, 299, 299, 1432 299, 299, 299, 0, 0, 0, 0, 0, 0, 0, 1433 0, 299, 0, 0, 0, 299, 0, 299, 0, 0, 1434 299, 299, 299, 299, 299, 299, 299, 0, 0, 299, 1435 299, 299, 0, 0, 0, 0, 299, 299, 0, 0, 1436 0, 299, 299, 0, 0, 0, 0, 0, 0, 0, 1437 0, 299, 0, 0, 0, 299, 299, 0, 0, 0, 1438 299, 0, 0, 0, 0, 0, 299, 0, 299, 299, 1439 0, 299, 0, 299, 299, 299, 299, 299, 0, 299, 1440 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 1441 299, 299, 299, 299, 299, 0, 0, 299, 299, 299, 1442 0, 299, 299, 299, 0, 299, 299, 299, 417, 415, 1443 299, 416, 299, 0, 0, 299, 299, 299, 299, 0, 1444 299, 299, 299, 299, 901, 0, 420, 403, 421, 299, 1445 0, 0, 299, 299, 299, 299, 299, 299, 299, 299, 1446 0, 299, 299, 299, 299, 299, 0, 297, 299, 297, 1447 297, 297, 297, 297, 0, 299, 299, 299, 0, 0, 1448 291, 0, 297, 0, 299, 299, 297, 0, 297, 0, 1449 291, 297, 297, 297, 297, 297, 297, 297, 0, 0, 1450 297, 297, 297, 0, 0, 0, 0, 297, 297, 0, 1451 0, 0, 297, 297, 0, 0, 0, 291, 0, 0, 1452 0, 291, 297, 0, 291, 0, 297, 297, 0, 0, 1453 0, 297, 0, 0, 0, 0, 0, 297, 291, 297, 1454 297, 291, 297, 0, 297, 297, 297, 297, 297, 0, 1455 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 1456 297, 297, 297, 297, 297, 297, 0, 0, 297, 297, 1457 297, 0, 297, 297, 297, 0, 297, 297, 297, 0, 1458 0, 297, 0, 297, 0, 0, 297, 297, 297, 297, 1459 0, 297, 297, 297, 297, 0, 0, 0, 0, 0, 1460 297, 0, 0, 297, 297, 297, 297, 297, 297, 297, 1461 297, 0, 297, 297, 297, 297, 297, 0, 0, 297, 1462 0, 0, 0, 0, 0, 0, 297, 297, 297, 0, 1463 0, 301, 0, 0, 0, 297, 297, 0, 0, 0, 1464 0, 301, 0, 0, 404, 405, 406, 407, 408, 0, 1465 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1466 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 1467 0, 0, 301, 0, 0, 301, 0, 0, 0, 0, 1468 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 1469 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473 0, 0, 0, 0, 0, 0, 291, 0, 291, 291, 1474 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 1475 0, 291, 0, 0, 0, 291, 0, 291, 0, 0, 1476 291, 291, 291, 291, 291, 291, 291, 0, 0, 291, 1477 291, 291, 0, 0, 0, 0, 291, 291, 0, 0, 1478 0, 291, 291, 0, 0, 0, 0, 0, 0, 0, 1479 0, 291, 0, 0, 0, 291, 291, 0, 0, 0, 1480 291, 0, 0, 0, 0, 0, 291, 0, 291, 291, 1481 0, 291, 0, 291, 291, 291, 291, 291, 0, 291, 1482 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 1483 291, 291, 291, 291, 291, 0, 0, 291, 291, 291, 1484 0, 291, 291, 291, 0, 291, 291, 291, 417, 415, 1485 291, 416, 291, 0, 0, 291, 291, 291, 291, 0, 1486 291, 291, 291, 291, 946, 0, 420, 403, 421, 291, 1487 0, 0, 291, 291, 291, 291, 291, 291, 291, 291, 1488 0, 291, 291, 291, 291, 291, 0, 301, 291, 301, 1489 301, 301, 301, 301, 0, 291, 291, 291, 0, 0, 1490 296, 0, 301, 0, 291, 291, 301, 0, 301, 0, 1491 296, 301, 301, 301, 301, 301, 301, 301, 0, 0, 1492 301, 301, 301, 0, 0, 0, 0, 301, 301, 0, 1493 0, 0, 301, 301, 0, 0, 0, 296, 0, 0, 1494 0, 296, 301, 0, 296, 0, 301, 301, 0, 0, 1495 0, 301, 0, 0, 0, 0, 0, 301, 296, 301, 1496 301, 296, 301, 0, 301, 301, 301, 301, 301, 0, 1497 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 1498 301, 301, 301, 301, 301, 301, 0, 0, 301, 301, 1499 301, 0, 301, 301, 301, 0, 301, 301, 301, 0, 1500 0, 301, 0, 301, 0, 0, 301, 301, 301, 301, 1501 0, 301, 301, 301, 301, 0, 0, 0, 0, 0, 1502 301, 0, 0, 301, 301, 301, 301, 301, 301, 301, 1503 301, 0, 301, 301, 301, 301, 301, 0, 0, 301, 1504 0, 0, 0, 0, 0, 0, 301, 301, 301, 0, 1505 0, 294, 0, 0, 0, 301, 301, 0, 0, 0, 1506 0, 294, 0, 0, 404, 405, 406, 407, 408, 0, 1507 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1508 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 1509 0, 0, 294, 0, 0, 294, 0, 0, 0, 0, 1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 1511 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 1512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1515 0, 0, 0, 0, 0, 0, 296, 0, 296, 296, 1516 296, 296, 296, 0, 0, 0, 0, 0, 0, 0, 1517 0, 296, 0, 0, 0, 296, 0, 296, 0, 0, 1518 296, 296, 296, 296, 296, 296, 296, 0, 0, 296, 1519 296, 296, 0, 0, 0, 0, 296, 296, 0, 0, 1520 0, 296, 296, 0, 0, 0, 0, 0, 0, 0, 1521 0, 296, 0, 0, 0, 296, 296, 0, 0, 0, 1522 296, 0, 0, 0, 0, 0, 296, 0, 296, 296, 1523 0, 296, 0, 296, 296, 296, 296, 296, 0, 296, 1524 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 1525 296, 296, 296, 296, 296, 0, 0, 296, 296, 296, 1526 0, 296, 296, 296, 0, 296, 296, 296, 417, 415, 1527 296, 416, 296, 0, 0, 296, 296, 296, 296, 0, 1528 296, 296, 296, 296, 962, 0, 420, 403, 421, 296, 1529 0, 0, 296, 296, 296, 296, 296, 296, 296, 296, 1530 0, 296, 296, 296, 296, 296, 0, 294, 296, 294, 1531 294, 294, 294, 294, 0, 296, 296, 296, 0, 0, 1532 312, 0, 294, 0, 296, 296, 294, 0, 294, 0, 1533 312, 294, 294, 294, 294, 294, 294, 294, 0, 0, 1534 294, 294, 294, 0, 0, 0, 0, 294, 294, 0, 1535 0, 0, 294, 294, 0, 0, 0, 312, 0, 0, 1536 0, 312, 294, 0, 312, 0, 294, 294, 0, 0, 1537 0, 294, 0, 0, 0, 0, 0, 294, 312, 294, 1538 294, 312, 294, 0, 294, 294, 294, 294, 294, 0, 1539 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 1540 294, 294, 294, 294, 294, 294, 0, 0, 294, 294, 1541 294, 0, 294, 294, 294, 0, 294, 294, 294, 0, 1542 0, 294, 0, 294, 0, 0, 294, 294, 294, 294, 1543 0, 294, 294, 294, 294, 0, 0, 0, 0, 0, 1544 294, 0, 0, 294, 294, 294, 294, 294, 294, 294, 1545 294, 0, 294, 294, 294, 294, 294, 0, 0, 294, 1546 0, 0, 0, 0, 0, 0, 294, 294, 294, 0, 1547 0, 310, 0, 0, 0, 294, 294, 0, 0, 0, 1548 0, 310, 0, 0, 404, 405, 406, 407, 408, 0, 1549 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1550 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 1551 0, 0, 310, 0, 0, 310, 0, 0, 0, 0, 1552 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 1553 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 1554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1557 0, 0, 0, 0, 0, 0, 312, 0, 312, 312, 1558 312, 312, 312, 0, 0, 0, 0, 0, 0, 0, 1559 0, 312, 0, 0, 0, 312, 0, 312, 0, 0, 1560 312, 312, 312, 312, 312, 312, 312, 0, 0, 312, 1561 312, 312, 0, 0, 0, 0, 312, 312, 0, 0, 1562 0, 312, 312, 0, 0, 0, 0, 0, 0, 0, 1563 0, 312, 0, 0, 0, 312, 312, 0, 0, 0, 1564 312, 0, 0, 0, 0, 0, 312, 0, 312, 312, 1565 0, 312, 0, 312, 312, 312, 312, 312, 0, 312, 1566 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 1567 312, 312, 312, 312, 312, 0, 0, 312, 312, 312, 1568 0, 312, 312, 312, 0, 312, 312, 312, 417, 415, 1569 312, 416, 312, 0, 0, 312, 312, 312, 312, 0, 1570 312, 312, 312, 312, 0, 0, 420, 403, 421, 312, 1571 0, 0, 312, 312, 312, 312, 312, 312, 312, 312, 1572 0, 312, 312, 312, 312, 312, 0, 310, 312, 310, 1573 310, 310, 310, 310, 0, 312, 312, 312, 0, 0, 1574 300, 0, 310, 0, 312, 312, 310, 0, 310, 0, 1575 300, 310, 310, 310, 310, 310, 310, 310, 0, 0, 1576 310, 310, 310, 0, 0, 0, 0, 310, 310, 0, 1577 0, 0, 310, 310, 0, 0, 0, 300, 0, 0, 1578 0, 300, 310, 0, 300, 0, 310, 310, 0, 0, 1579 0, 310, 0, 0, 0, 0, 0, 310, 300, 310, 1580 310, 300, 310, 0, 310, 310, 310, 310, 310, 0, 1581 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 1582 310, 310, 310, 310, 310, 310, 0, 0, 310, 310, 1583 310, 0, 310, 310, 310, 0, 310, 310, 310, 0, 1584 0, 310, 0, 310, 0, 0, 310, 310, 310, 310, 1585 0, 310, 310, 310, 310, 0, 0, 0, 0, 0, 1586 310, 0, 0, 310, 310, 310, 310, 310, 310, 310, 1587 310, 0, 310, 310, 310, 310, 310, 0, 0, 310, 1588 0, 0, 0, 0, 0, 0, 310, 310, 310, 0, 1589 0, 298, 0, 0, 0, 310, 310, 0, 0, 0, 1590 0, 298, 0, 0, 404, 405, 406, 407, 408, 0, 1591 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 1592 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 1593 0, 0, 298, 0, 0, 298, 0, 0, 0, 0, 1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 1595 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1599 0, 0, 0, 0, 0, 0, 300, 0, 300, 300, 1600 300, 300, 300, 0, 0, 0, 0, 0, 0, 0, 1601 0, 300, 0, 0, 0, 300, 0, 300, 0, 0, 1602 300, 300, 300, 300, 300, 300, 300, 0, 0, 300, 1603 300, 300, 0, 0, 0, 0, 300, 300, 0, 0, 1604 0, 300, 300, 0, 0, 0, 0, 0, 0, 0, 1605 0, 300, 0, 0, 0, 300, 300, 0, 0, 0, 1606 300, 0, 0, 0, 0, 0, 300, 0, 300, 300, 1607 0, 300, 0, 300, 300, 300, 300, 300, 0, 300, 1608 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 1609 300, 300, 300, 300, 300, 0, 0, 300, 300, 300, 1610 0, 300, 300, 300, 0, 300, 300, 300, 247, 247, 1611 300, 247, 300, 0, 0, 300, 300, 300, 300, 0, 1612 300, 300, 300, 300, 0, 0, 247, 247, 247, 300, 1613 0, 0, 300, 300, 300, 300, 300, 300, 300, 300, 1614 0, 300, 300, 300, 300, 300, 0, 298, 300, 298, 1615 298, 298, 298, 298, 0, 300, 300, 300, 0, 0, 1616 304, 0, 298, 0, 300, 300, 298, 0, 298, 0, 1617 304, 298, 298, 298, 298, 298, 298, 298, 0, 0, 1618 298, 298, 298, 0, 0, 0, 0, 298, 298, 0, 1619 0, 0, 298, 298, 0, 0, 0, 304, 0, 0, 1620 0, 304, 298, 0, 304, 0, 298, 298, 0, 0, 1621 0, 298, 0, 0, 0, 0, 0, 298, 304, 298, 1622 298, 304, 298, 0, 298, 298, 298, 298, 298, 0, 1623 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 1624 298, 298, 298, 298, 298, 298, 0, 0, 298, 298, 1625 298, 0, 298, 298, 298, 0, 298, 298, 298, 0, 1626 0, 298, 0, 298, 0, 0, 298, 298, 298, 298, 1627 0, 298, 298, 298, 298, 0, 0, 0, 0, 0, 1628 298, 0, 0, 298, 298, 298, 298, 298, 298, 298, 1629 298, 0, 298, 298, 298, 298, 298, 0, 0, 298, 1630 0, 0, 0, 0, 0, 0, 298, 298, 298, 0, 1631 0, 303, 0, 0, 0, 298, 298, 0, 0, 0, 1632 0, 303, 0, 0, 247, 247, 247, 247, 247, 0, 1633 247, 247, 247, 247, 247, 247, 0, 0, 247, 247, 1634 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, 1635 0, 0, 303, 0, 0, 303, 0, 0, 0, 0, 1636 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 1637 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 1638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641 0, 0, 0, 0, 0, 0, 304, 0, 304, 304, 1642 304, 304, 0, 0, 0, 0, 0, 0, 0, 0, 1643 0, 304, 0, 0, 0, 304, 0, 304, 0, 0, 1644 304, 304, 304, 304, 304, 304, 304, 0, 0, 304, 1645 304, 304, 0, 0, 0, 0, 304, 304, 0, 0, 1646 0, 304, 304, 0, 0, 0, 0, 0, 0, 0, 1647 0, 304, 0, 0, 0, 304, 304, 0, 0, 0, 1648 304, 0, 0, 0, 0, 0, 304, 567, 304, 304, 1649 333, 304, 334, 304, 304, 304, 304, 304, 0, 304, 1650 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 1651 304, 304, 304, 304, 304, 0, 0, 304, 304, 304, 1652 0, 304, 304, 304, 0, 304, 304, 304, 0, 0, 1653 304, 0, 304, 0, 0, 304, 304, 304, 304, 0, 1654 304, 304, 304, 304, 0, 753, 0, 751, 150, 304, 1655 151, 0, 304, 304, 304, 304, 304, 304, 304, 304, 1656 0, 304, 304, 304, 304, 304, 576, 303, 304, 303, 1657 303, 303, 303, 0, 0, 304, 304, 304, 0, 0, 1658 0, 0, 303, 0, 304, 304, 303, 0, 303, 0, 1659 0, 303, 303, 303, 303, 303, 303, 303, 0, 0, 1660 303, 303, 303, 0, 0, 0, 0, 303, 303, 0, 1661 0, 0, 303, 303, 0, 0, 0, 0, 0, 0, 1662 0, 0, 303, 0, 0, 0, 303, 303, 0, 0, 1663 0, 303, 0, 0, 0, 0, 0, 303, 0, 303, 1664 303, 0, 303, 0, 303, 303, 303, 303, 303, 0, 1665 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 1666 303, 303, 303, 303, 303, 303, 0, 0, 303, 303, 1667 303, 0, 303, 303, 303, 0, 303, 303, 303, 0, 1668 338, 303, 0, 303, 0, 0, 303, 303, 303, 303, 1669 338, 303, 303, 303, 303, 0, 0, 0, 0, 0, 1670 303, 0, 0, 303, 303, 303, 303, 303, 303, 303, 1671 303, 0, 303, 303, 303, 303, 303, 338, 0, 303, 1672 338, 338, 338, 338, 338, 338, 303, 303, 303, 0, 1673 0, 0, 0, 0, 0, 303, 303, 0, 0, 0, 1674 0, 0, 0, 0, 0, 336, 337, 338, 0, 0, 1675 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 1677 0, 0, 0, 0, 0, 0, 0, 0, 752, 0, 1678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1679 0, 0, 152, 153, 0, 0, 0, 154, 155, 156, 1680 157, 0, 0, 0, 0, 0, 0, 0, 0, 158, 1681 159, 160, 161, 162, 163, 164, 0, 165, 166, 167, 1682 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 1683 175, 292, 176, 0, 0, 0, 0, 178, 179, 0, 1684 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 1685 0, 0, 0, 181, 182, 0, 0, 183, 184, 185, 1686 186, 0, 0, 0, 340, 0, 0, 0, 292, 0, 1687 0, 187, 292, 0, 0, 292, 0, 0, 0, 0, 1688 0, 0, 0, 0, 177, 0, 0, 0, 0, 292, 1689 0, 0, 292, 0, 0, 178, 179, 0, 0, 0, 1690 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 1691 0, 181, 182, 0, 0, 183, 184, 185, 186, 0, 1692 0, 0, 89, 0, 0, 0, 0, 0, 0, 187, 1693 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1695 0, 338, 338, 338, 0, 338, 0, 338, 0, 0, 1696 338, 338, 338, 338, 338, 338, 338, 0, 0, 338, 1697 338, 338, 0, 0, 0, 0, 338, 338, 0, 0, 1698 0, 338, 338, 0, 0, 0, 0, 0, 0, 0, 1699 0, 338, 0, 0, 0, 338, 338, 0, 0, 0, 1700 338, 0, 0, 0, 0, 0, 338, 0, 338, 338, 1701 0, 338, 0, 338, 338, 338, 338, 338, 0, 338, 1702 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 1703 338, 338, 338, 338, 338, 0, 0, 338, 338, 338, 1704 0, 338, 338, 338, 0, 338, 338, 338, 0, 0, 1705 338, 0, 338, 0, 0, 338, 338, 338, 338, 0, 1706 0, 338, 338, 338, 0, 0, 0, 0, 0, 338, 1707 0, 0, 338, 338, 338, 338, 338, 338, 338, 338, 1708 0, 338, 338, 338, 338, 338, 0, 292, 338, 292, 1709 292, 0, 0, 0, 0, 338, 338, 338, 0, 0, 1710 302, 0, 292, 0, 338, 338, 292, 0, 292, 0, 1711 302, 292, 292, 292, 292, 292, 292, 292, 0, 0, 1712 292, 292, 292, 0, 0, 0, 0, 292, 292, 0, 1713 0, 0, 292, 292, 0, 0, 0, 302, 0, 0, 1714 0, 302, 292, 0, 302, 0, 292, 292, 0, 0, 1715 0, 292, 0, 0, 0, 0, 0, 292, 302, 292, 1716 292, 302, 292, 0, 292, 292, 292, 292, 292, 0, 1717 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 1718 292, 292, 292, 292, 292, 292, 0, 0, 292, 292, 1719 292, 0, 292, 292, 292, 0, 292, 292, 292, 0, 1720 0, 292, 0, 292, 0, 0, 292, 292, 292, 292, 1721 0, 292, 292, 292, 292, 0, 0, 0, 0, 0, 1722 292, 0, 0, 292, 292, 292, 292, 292, 292, 292, 1723 292, 0, 292, 292, 292, 292, 292, 0, 0, 292, 1724 0, 0, 0, 0, 0, 0, 292, 292, 292, 0, 1725 0, 0, 0, 0, 0, 292, 292, 501, 0, 0, 1726 0, 0, 0, 0, 0, 0, 0, 501, 0, 0, 1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1729 0, 0, 0, 0, 0, 0, 0, 0, 501, 501, 1730 501, 501, 501, 0, 0, 0, 0, 0, 0, 0, 1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1735 0, 0, 0, 0, 0, 0, 302, 0, 302, 302, 1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1737 0, 302, 0, 0, 0, 302, 0, 302, 0, 0, 1738 302, 302, 302, 302, 302, 302, 302, 0, 0, 302, 1739 302, 302, 0, 0, 0, 0, 302, 302, 0, 0, 1740 0, 302, 302, 0, 0, 0, 0, 0, 0, 0, 1741 0, 302, 0, 0, 0, 302, 302, 0, 0, 0, 1742 302, 0, 0, 0, 0, 0, 302, 0, 302, 302, 1743 0, 302, 0, 302, 302, 302, 302, 302, 0, 302, 1744 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 1745 302, 302, 302, 302, 302, 0, 0, 302, 302, 302, 1746 0, 302, 302, 302, 0, 302, 302, 302, 0, 0, 1747 302, 0, 302, 0, 0, 302, 302, 302, 302, 0, 1748 302, 302, 302, 302, 0, 0, 0, 0, 0, 302, 1749 0, 0, 302, 302, 302, 302, 302, 302, 302, 302, 1750 0, 302, 302, 302, 302, 302, 0, 0, 302, 0, 1751 0, 0, 0, 501, 0, 302, 302, 302, 0, 0, 1752 0, 502, 0, 0, 302, 302, 0, 0, 501, 501, 1753 501, 502, 501, 0, 501, 0, 0, 501, 501, 501, 1754 501, 501, 501, 501, 0, 0, 501, 501, 501, 0, 1755 0, 0, 0, 501, 501, 0, 0, 0, 501, 501, 1756 0, 0, 502, 502, 502, 502, 502, 0, 501, 0, 1757 0, 0, 501, 501, 0, 0, 0, 501, 0, 0, 1758 0, 0, 0, 501, 0, 501, 501, 0, 501, 0, 1759 501, 501, 501, 501, 501, 0, 501, 501, 501, 501, 1760 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 1761 501, 501, 0, 0, 501, 501, 501, 0, 501, 501, 1762 501, 0, 501, 501, 501, 0, 0, 501, 0, 501, 1763 0, 0, 501, 501, 501, 501, 0, 0, 501, 501, 1764 501, 0, 0, 0, 0, 0, 501, 0, 0, 501, 1765 501, 501, 501, 501, 501, 501, 501, 0, 501, 501, 1766 501, 501, 501, 0, 0, 501, 0, 0, 0, 0, 1767 0, 0, 501, 501, 501, 0, 493, 0, 0, 0, 1768 0, 501, 501, 0, 0, 0, 493, 0, 0, 0, 1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1771 0, 0, 0, 0, 0, 0, 0, 0, 499, 499, 1772 493, 499, 0, 0, 0, 0, 0, 0, 0, 0, 1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1777 0, 0, 0, 0, 0, 0, 0, 502, 0, 0, 1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1779 0, 0, 502, 502, 502, 0, 502, 0, 502, 0, 1780 0, 502, 502, 502, 502, 502, 502, 502, 0, 0, 1781 502, 502, 502, 0, 0, 0, 0, 502, 502, 0, 1782 0, 0, 502, 502, 0, 0, 0, 0, 0, 0, 1783 0, 0, 502, 0, 0, 0, 502, 502, 0, 0, 1784 0, 502, 0, 0, 0, 0, 0, 502, 0, 502, 1785 502, 0, 502, 0, 502, 502, 502, 502, 502, 0, 1786 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 1787 502, 502, 502, 502, 502, 502, 0, 0, 502, 502, 1788 502, 0, 502, 502, 502, 0, 502, 502, 502, 0, 1789 0, 502, 0, 502, 0, 0, 502, 502, 502, 502, 1790 0, 0, 502, 502, 502, 0, 0, 0, 0, 0, 1791 502, 0, 0, 502, 502, 502, 502, 502, 502, 502, 1792 502, 0, 502, 502, 502, 502, 502, 0, 0, 502, 1793 0, 0, 493, 0, 0, 0, 502, 502, 0, 0, 1794 507, 0, 0, 0, 0, 502, 502, 499, 499, 499, 1795 507, 493, 0, 493, 0, 0, 493, 493, 493, 493, 1796 493, 493, 493, 0, 0, 493, 493, 493, 0, 0, 1797 0, 0, 493, 493, 0, 0, 0, 493, 493, 0, 1798 0, 507, 507, 507, 507, 507, 0, 493, 0, 0, 1799 0, 493, 493, 0, 0, 0, 493, 0, 0, 0, 1800 0, 0, 493, 0, 493, 493, 0, 493, 0, 493, 1801 493, 493, 493, 493, 0, 493, 493, 493, 493, 493, 1802 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 1803 493, 0, 0, 493, 493, 493, 0, 493, 493, 493, 1804 0, 493, 493, 493, 0, 0, 493, 0, 493, 0, 1805 0, 493, 493, 493, 493, 0, 0, 493, 493, 493, 1806 0, 0, 0, 0, 0, 493, 0, 0, 493, 493, 1807 493, 493, 493, 493, 493, 493, 0, 493, 493, 493, 1808 493, 493, 0, 0, 493, 0, 0, 0, 0, 0, 1809 0, 493, 493, 493, 0, 504, 0, 0, 0, 0, 1810 493, 493, 0, 0, 0, 504, 0, 0, 0, 0, 1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813 0, 0, 0, 0, 0, 0, 504, 504, 504, 504, 1814 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1819 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1821 0, 507, 507, 0, 0, 507, 0, 507, 0, 0, 1822 507, 507, 507, 507, 507, 507, 507, 0, 0, 507, 1823 507, 507, 0, 0, 0, 0, 507, 507, 0, 0, 1824 0, 507, 507, 0, 0, 0, 0, 0, 0, 0, 1825 0, 507, 0, 0, 0, 507, 507, 0, 0, 0, 1826 507, 0, 0, 0, 0, 0, 507, 0, 507, 507, 1827 0, 507, 0, 507, 507, 507, 507, 507, 0, 507, 1828 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 1829 507, 507, 507, 507, 507, 0, 0, 507, 507, 507, 1830 0, 507, 507, 507, 0, 507, 507, 507, 0, 0, 1831 507, 0, 507, 0, 0, 507, 507, 507, 507, 0, 1832 0, 507, 507, 507, 0, 0, 0, 0, 0, 507, 1833 0, 0, 507, 507, 507, 507, 507, 507, 507, 507, 1834 0, 507, 507, 507, 507, 507, 0, 0, 507, 0, 1835 0, 504, 0, 0, 0, 507, 507, 507, 505, 0, 1836 0, 0, 0, 0, 507, 507, 504, 504, 505, 0, 1837 504, 0, 504, 0, 0, 504, 504, 504, 504, 504, 1838 504, 504, 0, 0, 504, 504, 504, 0, 0, 0, 1839 0, 504, 504, 0, 0, 0, 504, 504, 0, 505, 1840 505, 505, 505, 505, 0, 0, 504, 0, 0, 0, 1841 504, 504, 0, 0, 0, 504, 0, 0, 0, 0, 1842 0, 504, 0, 504, 504, 0, 504, 0, 504, 504, 1843 504, 504, 504, 0, 504, 504, 504, 504, 504, 504, 1844 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 1845 0, 0, 504, 504, 504, 0, 504, 504, 504, 0, 1846 504, 504, 504, 0, 0, 504, 0, 504, 0, 0, 1847 504, 504, 504, 504, 0, 0, 504, 504, 504, 0, 1848 0, 0, 0, 0, 504, 0, 0, 504, 504, 504, 1849 504, 504, 504, 504, 504, 0, 504, 504, 504, 504, 1850 504, 0, 0, 504, 0, 0, 0, 0, 0, 0, 1851 504, 504, 504, 506, 0, 0, 0, 0, 0, 504, 1852 504, 0, 0, 506, 0, 0, 0, 0, 0, 0, 1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1855 0, 0, 0, 0, 506, 506, 506, 506, 506, 0, 1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1861 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 1863 505, 0, 0, 505, 0, 505, 0, 0, 505, 505, 1864 505, 505, 505, 505, 505, 0, 0, 505, 505, 505, 1865 0, 0, 0, 0, 505, 505, 0, 0, 0, 505, 1866 505, 0, 0, 0, 0, 0, 0, 0, 0, 505, 1867 0, 0, 0, 505, 505, 0, 0, 0, 505, 0, 1868 0, 0, 0, 0, 505, 0, 505, 505, 0, 505, 1869 0, 505, 505, 505, 505, 505, 0, 505, 505, 505, 1870 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 1871 505, 505, 505, 0, 0, 505, 505, 505, 0, 505, 1872 505, 505, 0, 505, 505, 505, 0, 0, 505, 0, 1873 505, 0, 0, 505, 505, 505, 505, 0, 0, 505, 1874 505, 505, 0, 0, 0, 0, 0, 505, 0, 0, 1875 505, 505, 505, 505, 505, 505, 505, 505, 0, 505, 1876 505, 505, 505, 505, 0, 0, 505, 0, 0, 506, 1877 0, 0, 0, 505, 505, 505, 313, 0, 0, 0, 1878 0, 0, 505, 505, 506, 506, 313, 0, 506, 0, 1879 506, 0, 0, 506, 506, 506, 506, 506, 506, 506, 1880 0, 0, 506, 506, 506, 0, 0, 0, 0, 506, 1881 506, 0, 0, 313, 506, 506, 0, 313, 0, 0, 1882 313, 0, 0, 0, 506, 0, 0, 0, 506, 506, 1883 0, 0, 0, 506, 313, 0, 0, 0, 0, 506, 1884 0, 506, 506, 0, 506, 0, 506, 506, 506, 506, 1885 506, 0, 506, 506, 506, 506, 506, 506, 506, 506, 1886 506, 506, 506, 506, 506, 506, 506, 506, 0, 0, 1887 506, 506, 506, 0, 506, 506, 506, 0, 506, 506, 1888 506, 0, 0, 506, 0, 506, 0, 0, 506, 506, 1889 506, 506, 0, 0, 506, 506, 506, 0, 0, 0, 1890 0, 0, 506, 0, 0, 506, 506, 506, 506, 506, 1891 506, 506, 506, 0, 506, 506, 506, 506, 506, 0, 1892 0, 506, 0, 0, 0, 0, 0, 0, 506, 506, 1893 506, 309, 0, 0, 0, 0, 0, 506, 506, 0, 1894 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1896 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 1897 0, 0, 309, 0, 0, 309, 0, 0, 0, 0, 1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1903 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 1904 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 1905 0, 313, 0, 313, 0, 0, 313, 313, 313, 313, 1906 313, 313, 313, 0, 0, 313, 313, 313, 0, 0, 1907 0, 0, 313, 313, 0, 0, 0, 313, 313, 0, 1908 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 1909 0, 313, 313, 0, 0, 0, 313, 0, 0, 0, 1910 0, 0, 313, 0, 313, 313, 0, 313, 0, 313, 1911 313, 313, 313, 313, 0, 313, 313, 313, 313, 313, 1912 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 1913 313, 0, 0, 313, 313, 313, 0, 313, 313, 313, 1914 0, 313, 313, 313, 0, 503, 313, 0, 313, 0, 1915 0, 313, 313, 313, 313, 503, 313, 313, 313, 313, 1916 0, 0, 0, 0, 0, 313, 0, 0, 313, 313, 1917 313, 313, 313, 313, 313, 313, 0, 313, 313, 313, 1918 313, 313, 0, 0, 313, 0, 503, 309, 503, 503, 1919 503, 313, 313, 313, 0, 0, 0, 0, 0, 0, 1920 313, 313, 309, 0, 0, 0, 309, 0, 309, 0, 1921 0, 309, 309, 309, 309, 309, 309, 309, 0, 0, 1922 309, 309, 309, 0, 0, 0, 0, 309, 309, 0, 1923 0, 0, 309, 309, 0, 0, 0, 0, 0, 0, 1924 0, 0, 309, 0, 0, 0, 309, 309, 0, 0, 1925 0, 309, 0, 0, 0, 0, 0, 309, 0, 309, 1926 309, 0, 309, 0, 309, 309, 309, 309, 309, 0, 1927 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 1928 309, 309, 309, 309, 309, 309, 0, 0, 309, 309, 1929 309, 0, 309, 309, 309, 0, 309, 309, 309, 0, 1930 509, 309, 0, 309, 0, 0, 309, 309, 309, 309, 1931 509, 309, 309, 309, 309, 0, 0, 0, 0, 0, 1932 309, 0, 0, 309, 309, 309, 309, 309, 309, 309, 1933 309, 0, 309, 309, 309, 309, 309, 0, 0, 309, 1934 0, 509, 0, 0, 509, 0, 309, 309, 309, 0, 1935 0, 0, 0, 0, 0, 309, 309, 0, 0, 0, 1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1940 0, 503, 0, 0, 0, 0, 0, 0, 0, 0, 1941 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, 1942 503, 0, 503, 0, 0, 503, 503, 503, 503, 503, 1943 503, 503, 0, 0, 503, 503, 503, 0, 0, 0, 1944 0, 503, 503, 0, 0, 0, 503, 503, 0, 0, 1945 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, 1946 503, 503, 0, 0, 0, 503, 0, 0, 0, 0, 1947 0, 503, 0, 503, 503, 0, 503, 0, 503, 503, 1948 503, 503, 503, 0, 503, 503, 503, 503, 503, 503, 1949 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 1950 0, 0, 503, 503, 503, 0, 503, 503, 503, 0, 1951 503, 503, 503, 0, 512, 503, 0, 503, 0, 0, 1952 503, 503, 503, 503, 512, 0, 503, 503, 503, 0, 1953 0, 0, 0, 0, 503, 0, 0, 503, 503, 503, 1954 503, 503, 503, 503, 503, 0, 503, 503, 503, 503, 1955 503, 0, 0, 503, 0, 512, 509, 0, 512, 0, 1956 503, 503, 503, 0, 0, 0, 0, 0, 0, 503, 1957 503, 509, 0, 0, 0, 509, 0, 509, 0, 0, 1958 509, 509, 509, 509, 509, 509, 509, 0, 0, 509, 1959 509, 509, 0, 0, 0, 0, 509, 509, 0, 0, 1960 0, 509, 509, 0, 0, 0, 0, 0, 0, 0, 1961 0, 509, 0, 0, 0, 509, 509, 0, 0, 0, 1962 509, 0, 0, 0, 0, 0, 509, 0, 509, 509, 1963 0, 509, 0, 509, 509, 509, 509, 509, 0, 509, 1964 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 1965 509, 509, 509, 509, 509, 0, 0, 509, 509, 509, 1966 0, 509, 509, 509, 0, 509, 509, 509, 0, 511, 1967 509, 0, 509, 0, 0, 509, 509, 509, 509, 511, 1968 0, 509, 509, 509, 0, 0, 0, 0, 0, 509, 1969 0, 0, 509, 509, 509, 509, 509, 509, 509, 509, 1970 0, 509, 509, 509, 509, 509, 0, 0, 509, 0, 1971 511, 0, 0, 511, 0, 509, 509, 509, 0, 0, 1972 0, 0, 0, 0, 509, 509, 0, 0, 0, 0, 1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1978 0, 0, 0, 0, 0, 512, 0, 0, 0, 512, 1979 0, 512, 0, 0, 512, 512, 512, 512, 512, 512, 1980 512, 0, 0, 512, 512, 512, 0, 0, 0, 0, 1981 512, 512, 0, 0, 0, 512, 512, 0, 0, 0, 1982 0, 0, 0, 0, 0, 512, 0, 0, 0, 512, 1983 512, 0, 0, 0, 512, 0, 0, 0, 0, 0, 1984 512, 0, 512, 512, 0, 512, 0, 512, 512, 512, 1985 512, 512, 0, 512, 512, 512, 512, 512, 512, 512, 1986 512, 512, 512, 512, 512, 512, 512, 512, 512, 0, 1987 0, 512, 512, 512, 0, 512, 512, 512, 0, 512, 1988 512, 512, 0, 510, 512, 0, 512, 0, 0, 512, 1989 512, 512, 512, 510, 0, 512, 512, 512, 0, 0, 1990 0, 0, 0, 512, 0, 0, 512, 512, 512, 512, 1991 512, 512, 512, 512, 0, 512, 512, 512, 512, 512, 1992 0, 0, 512, 0, 510, 511, 0, 510, 0, 512, 1993 512, 512, 0, 0, 0, 0, 0, 0, 512, 512, 1994 511, 0, 0, 0, 511, 0, 511, 0, 0, 511, 1995 511, 511, 511, 511, 511, 511, 0, 0, 511, 511, 1996 511, 0, 0, 0, 0, 511, 511, 0, 0, 0, 1997 511, 511, 0, 0, 0, 0, 0, 0, 0, 0, 1998 511, 0, 0, 0, 511, 511, 0, 0, 0, 511, 1999 0, 0, 0, 0, 0, 511, 0, 511, 511, 0, 2000 511, 0, 511, 511, 511, 511, 511, 0, 511, 511, 2001 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 2002 511, 511, 511, 511, 0, 0, 511, 511, 511, 0, 2003 511, 511, 511, 0, 511, 511, 511, 0, 236, 511, 2004 0, 511, 0, 0, 511, 511, 511, 511, 236, 0, 2005 511, 511, 511, 0, 0, 0, 0, 0, 511, 0, 2006 0, 511, 511, 511, 511, 511, 511, 511, 511, 0, 2007 511, 511, 511, 511, 511, 0, 0, 511, 0, 0, 2008 236, 0, 236, 0, 511, 511, 511, 0, 0, 0, 2009 0, 0, 0, 511, 511, 0, 0, 0, 0, 236, 2010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015 0, 0, 0, 0, 510, 0, 0, 0, 510, 0, 2016 510, 0, 0, 510, 510, 510, 510, 510, 510, 510, 2017 0, 0, 510, 510, 510, 0, 0, 0, 0, 510, 2018 510, 0, 0, 0, 510, 510, 0, 0, 0, 0, 2019 0, 0, 0, 0, 510, 0, 0, 0, 510, 510, 2020 0, 0, 0, 510, 0, 0, 0, 0, 0, 510, 2021 0, 510, 510, 0, 510, 0, 510, 510, 510, 510, 2022 510, 0, 510, 510, 510, 510, 510, 510, 510, 510, 2023 510, 510, 510, 510, 510, 510, 510, 510, 0, 0, 2024 510, 510, 510, 0, 510, 510, 510, 0, 510, 510, 2025 510, 0, 513, 510, 0, 510, 0, 0, 510, 510, 2026 510, 510, 513, 0, 510, 510, 510, 0, 0, 0, 2027 0, 0, 510, 0, 0, 510, 510, 510, 510, 510, 2028 510, 510, 510, 0, 510, 510, 510, 510, 510, 0, 2029 0, 510, 0, 513, 236, 0, 513, 0, 510, 510, 2030 510, 0, 0, 0, 0, 0, 0, 510, 510, 0, 2031 0, 0, 0, 236, 0, 236, 0, 0, 236, 236, 2032 236, 236, 236, 236, 236, 0, 0, 236, 236, 236, 2033 0, 0, 0, 0, 236, 236, 0, 0, 0, 236, 2034 236, 0, 0, 0, 0, 0, 0, 0, 0, 236, 2035 0, 0, 0, 236, 236, 0, 0, 0, 236, 0, 2036 0, 0, 0, 0, 236, 0, 236, 236, 0, 236, 2037 0, 236, 236, 236, 236, 236, 0, 236, 236, 236, 2038 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 2039 236, 236, 236, 0, 0, 236, 236, 236, 0, 236, 2040 236, 236, 0, 236, 236, 236, 0, 508, 236, 0, 2041 236, 0, 0, 236, 236, 236, 236, 508, 0, 236, 2042 236, 236, 0, 0, 0, 0, 0, 236, 0, 0, 2043 236, 236, 236, 236, 236, 236, 236, 236, 0, 236, 2044 236, 236, 236, 236, 0, 0, 236, 0, 508, 0, 2045 0, 508, 0, 236, 236, 236, 0, 0, 0, 0, 2046 0, 0, 236, 236, 0, 0, 0, 0, 0, 0, 2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2050 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052 0, 0, 0, 513, 0, 0, 0, 513, 0, 513, 2053 0, 0, 513, 513, 513, 513, 513, 513, 513, 0, 2054 0, 513, 513, 513, 0, 0, 0, 0, 513, 513, 2055 0, 0, 0, 513, 513, 0, 0, 0, 0, 0, 2056 0, 0, 0, 513, 57, 0, 0, 513, 513, 0, 2057 0, 0, 513, 0, 57, 0, 0, 0, 513, 0, 2058 513, 513, 0, 513, 0, 513, 513, 513, 513, 513, 2059 0, 513, 513, 513, 513, 513, 513, 513, 513, 513, 2060 513, 513, 513, 513, 513, 513, 513, 0, 0, 513, 2061 513, 513, 0, 513, 513, 513, 0, 513, 513, 513, 2062 0, 0, 513, 0, 513, 0, 0, 513, 513, 513, 2063 513, 0, 0, 513, 513, 513, 0, 0, 0, 0, 2064 0, 513, 0, 0, 513, 513, 513, 513, 513, 513, 2065 513, 513, 0, 513, 513, 513, 513, 513, 0, 0, 2066 513, 0, 0, 508, 0, 0, 0, 513, 513, 513, 2067 0, 0, 0, 0, 0, 0, 513, 513, 508, 0, 2068 0, 0, 508, 0, 508, 0, 0, 508, 508, 508, 2069 508, 508, 508, 508, 0, 0, 508, 508, 508, 0, 2070 0, 0, 0, 508, 508, 0, 0, 0, 508, 508, 2071 0, 0, 0, 0, 0, 142, 0, 0, 508, 0, 2072 0, 0, 508, 508, 0, 142, 0, 508, 0, 0, 2073 0, 0, 0, 508, 0, 508, 508, 0, 508, 0, 2074 508, 508, 508, 508, 508, 0, 508, 508, 508, 508, 2075 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 2076 508, 508, 0, 0, 508, 508, 508, 0, 508, 508, 2077 508, 0, 508, 508, 508, 0, 0, 508, 0, 508, 2078 0, 0, 508, 508, 508, 508, 0, 0, 508, 508, 2079 508, 0, 0, 0, 0, 0, 508, 0, 0, 508, 2080 508, 508, 508, 508, 508, 508, 508, 0, 508, 508, 2081 508, 508, 508, 0, 0, 508, 0, 0, 0, 0, 2082 57, 0, 508, 508, 508, 0, 0, 0, 0, 0, 2083 0, 508, 508, 0, 0, 164, 164, 0, 0, 57, 2084 0, 57, 0, 0, 57, 57, 57, 57, 57, 57, 2085 57, 0, 0, 57, 57, 57, 0, 0, 0, 0, 2086 57, 57, 0, 0, 0, 57, 57, 0, 0, 0, 2087 0, 0, 0, 0, 0, 57, 0, 0, 0, 57, 2088 57, 0, 0, 0, 57, 0, 0, 0, 0, 0, 2089 57, 0, 57, 57, 0, 57, 0, 57, 57, 57, 2090 57, 57, 0, 57, 57, 57, 57, 57, 57, 57, 2091 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, 2092 0, 57, 57, 57, 0, 57, 57, 57, 0, 57, 2093 57, 57, 0, 355, 57, 0, 57, 0, 0, 57, 2094 57, 57, 57, 355, 0, 57, 57, 57, 0, 0, 2095 0, 0, 0, 57, 0, 0, 57, 57, 57, 57, 2096 57, 57, 57, 57, 0, 57, 57, 57, 57, 57, 2097 0, 142, 57, 0, 355, 0, 0, 0, 0, 57, 2098 57, 57, 0, 0, 0, 0, 164, 164, 57, 57, 2099 142, 355, 142, 0, 0, 142, 142, 142, 142, 142, 2100 142, 142, 0, 0, 142, 142, 142, 0, 0, 0, 2101 0, 142, 142, 0, 0, 0, 142, 142, 0, 0, 2102 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, 2103 142, 142, 0, 0, 0, 142, 0, 0, 0, 0, 2104 0, 142, 0, 142, 142, 0, 142, 0, 142, 142, 2105 142, 142, 142, 0, 142, 142, 142, 142, 142, 142, 2106 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 2107 0, 0, 142, 142, 142, 0, 142, 142, 142, 0, 2108 142, 142, 142, 0, 125, 142, 0, 142, 0, 0, 2109 142, 142, 142, 142, 125, 0, 142, 142, 142, 0, 2110 0, 0, 0, 0, 142, 0, 0, 142, 142, 142, 2111 142, 142, 142, 142, 142, 0, 142, 142, 142, 142, 2112 142, 0, 0, 142, 0, 0, 0, 0, 125, 0, 2113 142, 142, 142, 0, 0, 0, 0, 0, 0, 142, 2114 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2121 355, 0, 0, 355, 355, 355, 355, 355, 355, 355, 2122 0, 0, 355, 355, 355, 0, 0, 0, 0, 355, 2123 355, 0, 0, 0, 355, 355, 0, 0, 0, 0, 2124 154, 0, 0, 0, 355, 0, 0, 0, 355, 355, 2125 154, 0, 0, 355, 0, 0, 0, 0, 0, 355, 2126 0, 355, 355, 0, 355, 0, 355, 355, 355, 355, 2127 355, 0, 355, 355, 355, 355, 355, 355, 355, 355, 2128 355, 355, 355, 355, 355, 355, 355, 355, 0, 0, 2129 355, 355, 355, 0, 355, 355, 355, 0, 355, 355, 2130 355, 0, 0, 355, 0, 355, 0, 0, 355, 355, 2131 355, 355, 0, 0, 355, 355, 355, 0, 0, 0, 2132 0, 0, 355, 0, 0, 355, 355, 355, 355, 355, 2133 355, 355, 355, 0, 355, 355, 355, 355, 355, 0, 2134 125, 355, 0, 0, 0, 0, 0, 0, 355, 355, 2135 355, 0, 0, 0, 0, 125, 125, 355, 355, 125, 2136 0, 125, 0, 0, 125, 125, 125, 125, 125, 125, 2137 125, 0, 0, 125, 125, 125, 0, 0, 0, 0, 2138 125, 125, 0, 0, 0, 125, 125, 0, 0, 0, 2139 0, 0, 0, 0, 0, 125, 0, 0, 0, 125, 2140 125, 0, 0, 0, 125, 0, 0, 0, 0, 0, 2141 125, 0, 125, 125, 0, 125, 0, 125, 125, 125, 2142 125, 125, 0, 125, 125, 125, 125, 125, 125, 125, 2143 125, 125, 125, 125, 125, 125, 125, 125, 125, 0, 2144 0, 125, 125, 125, 0, 125, 125, 125, 0, 125, 2145 125, 125, 0, 236, 125, 0, 125, 0, 0, 125, 2146 125, 125, 125, 236, 0, 125, 125, 125, 0, 0, 2147 0, 0, 0, 125, 0, 0, 125, 125, 125, 125, 2148 125, 125, 125, 125, 0, 125, 125, 125, 125, 125, 2149 0, 0, 125, 0, 0, 236, 154, 236, 0, 125, 2150 125, 0, 0, 0, 0, 0, 0, 0, 125, 125, 2151 0, 154, 154, 0, 0, 154, 0, 154, 0, 0, 2152 154, 154, 154, 154, 154, 154, 154, 0, 0, 154, 2153 154, 154, 0, 0, 0, 0, 154, 154, 0, 0, 2154 0, 154, 154, 0, 0, 0, 0, 0, 0, 0, 2155 0, 154, 0, 0, 0, 154, 154, 0, 0, 0, 2156 154, 0, 0, 0, 0, 0, 154, 0, 154, 154, 2157 0, 154, 0, 154, 154, 154, 154, 154, 0, 154, 2158 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 2159 154, 154, 154, 154, 154, 0, 0, 154, 154, 154, 2160 0, 154, 154, 154, 164, 154, 154, 154, 0, 0, 2161 154, 0, 154, 0, 164, 154, 154, 154, 154, 0, 2162 0, 154, 154, 154, 0, 0, 0, 0, 0, 154, 2163 0, 0, 154, 154, 154, 154, 154, 154, 154, 154, 2164 0, 154, 154, 154, 154, 154, 0, 0, 154, 0, 2165 0, 0, 0, 0, 0, 154, 154, 154, 0, 0, 2166 0, 0, 0, 0, 154, 154, 0, 0, 0, 0, 2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 2173 236, 0, 0, 236, 236, 236, 236, 236, 236, 236, 2174 0, 0, 236, 236, 236, 0, 0, 0, 0, 236, 2175 236, 0, 0, 0, 236, 236, 0, 0, 0, 0, 2176 155, 0, 0, 0, 236, 0, 0, 0, 236, 236, 2177 155, 0, 0, 236, 0, 0, 0, 0, 0, 236, 2178 0, 236, 236, 0, 236, 0, 236, 236, 236, 236, 2179 236, 0, 236, 236, 236, 236, 236, 236, 236, 236, 2180 236, 236, 236, 236, 236, 236, 236, 236, 0, 0, 2181 236, 236, 236, 0, 236, 236, 236, 0, 236, 236, 2182 236, 0, 0, 236, 0, 236, 0, 0, 236, 236, 2183 236, 236, 0, 0, 236, 236, 236, 0, 0, 0, 2184 0, 0, 236, 0, 0, 236, 236, 236, 236, 236, 2185 236, 236, 236, 0, 236, 236, 236, 236, 236, 0, 2186 164, 236, 0, 0, 0, 0, 0, 0, 236, 236, 2187 236, 0, 0, 0, 0, 164, 164, 236, 236, 164, 2188 0, 164, 0, 0, 164, 164, 164, 164, 164, 164, 2189 164, 0, 0, 164, 164, 164, 0, 0, 0, 0, 2190 164, 164, 0, 0, 0, 164, 164, 0, 0, 0, 2191 0, 0, 0, 0, 0, 164, 0, 0, 0, 164, 2192 164, 0, 0, 0, 164, 0, 0, 0, 0, 0, 2193 164, 0, 164, 164, 0, 164, 0, 164, 164, 164, 2194 164, 164, 0, 164, 164, 164, 164, 164, 164, 164, 2195 164, 164, 164, 164, 164, 164, 164, 164, 164, 0, 2196 0, 164, 164, 164, 0, 164, 164, 164, 0, 164, 2197 164, 164, 0, 525, 164, 0, 164, 0, 0, 164, 2198 164, 164, 164, 525, 0, 164, 164, 164, 0, 0, 2199 0, 0, 0, 164, 0, 0, 164, 164, 164, 164, 2200 164, 164, 164, 164, 0, 164, 164, 164, 164, 164, 2201 0, 0, 164, 0, 525, 0, 155, 525, 0, 164, 2202 164, 164, 0, 0, 0, 0, 0, 0, 164, 164, 2203 0, 155, 155, 0, 0, 155, 0, 155, 0, 0, 2204 155, 155, 155, 155, 155, 155, 155, 0, 0, 155, 2205 155, 155, 0, 0, 0, 0, 155, 155, 0, 0, 2206 0, 155, 155, 0, 0, 0, 0, 0, 0, 0, 2207 0, 155, 0, 0, 0, 155, 155, 0, 0, 0, 2208 155, 0, 0, 0, 0, 0, 155, 0, 155, 155, 2209 0, 155, 0, 155, 155, 155, 155, 155, 0, 155, 2210 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 2211 155, 155, 155, 155, 155, 0, 0, 155, 155, 155, 2212 0, 155, 155, 155, 0, 155, 155, 155, 0, 168, 2213 155, 0, 155, 0, 0, 155, 155, 155, 155, 168, 2214 0, 155, 155, 155, 0, 0, 0, 0, 0, 155, 2215 0, 0, 155, 155, 155, 155, 155, 155, 155, 155, 2216 0, 155, 155, 155, 155, 155, 0, 0, 155, 0, 2217 168, 0, 0, 168, 0, 155, 155, 155, 0, 0, 2218 0, 0, 0, 0, 155, 155, 0, 0, 0, 0, 2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2224 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 2225 525, 0, 0, 525, 525, 525, 525, 525, 525, 525, 2226 0, 0, 525, 525, 525, 0, 0, 0, 0, 525, 2227 525, 0, 0, 0, 525, 525, 0, 0, 0, 0, 2228 0, 0, 0, 0, 525, 0, 0, 0, 525, 525, 2229 0, 0, 0, 525, 0, 0, 0, 0, 0, 525, 2230 0, 525, 525, 0, 525, 0, 525, 525, 525, 525, 2231 525, 0, 525, 525, 525, 525, 525, 525, 525, 525, 2232 525, 525, 525, 525, 525, 525, 525, 525, 0, 0, 2233 525, 525, 525, 0, 525, 525, 525, 0, 525, 525, 2234 525, 0, 523, 525, 0, 525, 0, 0, 525, 525, 2235 525, 525, 523, 0, 525, 525, 525, 0, 0, 0, 2236 0, 0, 525, 0, 0, 525, 525, 525, 525, 525, 2237 525, 525, 525, 0, 525, 525, 525, 525, 525, 0, 2238 0, 525, 0, 523, 0, 168, 523, 0, 525, 525, 2239 525, 0, 0, 0, 0, 0, 0, 525, 525, 0, 2240 0, 0, 0, 0, 168, 0, 168, 0, 0, 168, 2241 168, 168, 168, 168, 168, 168, 0, 0, 168, 168, 2242 168, 0, 0, 0, 0, 168, 168, 0, 0, 0, 2243 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 2244 168, 0, 0, 0, 168, 168, 0, 0, 0, 168, 2245 0, 0, 0, 0, 0, 168, 0, 168, 168, 0, 2246 168, 0, 168, 168, 168, 168, 168, 0, 168, 168, 2247 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 2248 168, 168, 168, 168, 0, 0, 168, 168, 168, 0, 2249 168, 168, 168, 0, 168, 168, 168, 0, 522, 168, 2250 0, 168, 0, 0, 168, 168, 168, 168, 522, 0, 2251 168, 168, 168, 0, 0, 0, 0, 0, 168, 0, 2252 0, 168, 168, 168, 168, 168, 168, 168, 168, 0, 2253 168, 168, 168, 168, 168, 0, 0, 168, 0, 522, 2254 0, 0, 522, 0, 168, 168, 168, 0, 0, 0, 2255 0, 0, 0, 168, 168, 0, 0, 0, 0, 0, 2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2259 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2261 0, 0, 0, 0, 0, 0, 0, 523, 0, 523, 2262 0, 0, 523, 523, 523, 523, 523, 523, 523, 0, 2263 0, 523, 523, 523, 0, 0, 0, 0, 523, 523, 2264 0, 0, 0, 523, 523, 0, 0, 0, 0, 0, 2265 0, 0, 0, 523, 0, 0, 0, 523, 523, 0, 2266 0, 0, 523, 0, 0, 0, 0, 0, 523, 0, 2267 523, 523, 0, 523, 0, 523, 523, 523, 523, 523, 2268 0, 523, 523, 523, 523, 523, 523, 523, 523, 523, 2269 523, 523, 523, 523, 523, 523, 523, 0, 0, 523, 2270 523, 523, 0, 523, 523, 523, 0, 523, 523, 523, 2271 0, 520, 523, 0, 523, 0, 0, 523, 523, 523, 2272 523, 520, 0, 523, 523, 523, 0, 0, 0, 0, 2273 0, 523, 0, 0, 523, 523, 523, 523, 523, 523, 2274 523, 523, 0, 523, 523, 523, 523, 523, 0, 0, 2275 523, 0, 520, 0, 522, 520, 0, 523, 523, 523, 2276 0, 0, 0, 0, 0, 0, 523, 523, 0, 0, 2277 0, 0, 0, 522, 0, 522, 0, 0, 522, 522, 2278 522, 522, 522, 522, 522, 0, 0, 522, 522, 522, 2279 0, 0, 0, 0, 522, 522, 0, 0, 0, 522, 2280 522, 0, 0, 0, 0, 0, 0, 0, 0, 522, 2281 0, 0, 0, 522, 522, 0, 0, 0, 522, 0, 2282 0, 0, 0, 0, 522, 0, 522, 522, 0, 522, 2283 0, 522, 522, 522, 522, 522, 0, 522, 522, 522, 2284 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 2285 522, 522, 522, 0, 0, 522, 522, 522, 0, 522, 2286 522, 522, 0, 522, 522, 522, 0, 531, 522, 0, 2287 522, 0, 0, 522, 522, 522, 522, 531, 0, 522, 2288 522, 522, 0, 0, 0, 0, 0, 522, 0, 0, 2289 522, 522, 522, 522, 522, 522, 522, 522, 0, 522, 2290 522, 522, 522, 522, 0, 0, 522, 0, 0, 0, 2291 0, 531, 0, 522, 522, 522, 0, 0, 0, 0, 2292 0, 0, 522, 522, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 0, 0, 0, 0, 520, 0, 0, 2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2298 0, 0, 0, 0, 0, 0, 520, 0, 520, 0, 2299 0, 520, 520, 520, 520, 520, 520, 520, 0, 0, 2300 520, 520, 520, 0, 0, 0, 0, 520, 520, 0, 2301 0, 0, 520, 520, 0, 0, 0, 0, 0, 0, 2302 0, 0, 520, 535, 0, 0, 520, 520, 0, 0, 2303 0, 520, 0, 535, 0, 0, 0, 520, 0, 520, 2304 520, 0, 520, 0, 520, 520, 520, 520, 520, 0, 2305 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 2306 520, 520, 520, 520, 520, 520, 0, 535, 520, 520, 2307 520, 0, 520, 520, 520, 0, 520, 520, 520, 0, 2308 0, 520, 0, 520, 0, 0, 520, 520, 520, 520, 2309 0, 0, 520, 520, 520, 0, 0, 0, 0, 0, 2310 520, 0, 0, 520, 520, 520, 520, 520, 520, 520, 2311 520, 0, 520, 520, 520, 520, 520, 0, 0, 520, 2312 0, 0, 0, 531, 0, 0, 520, 520, 520, 0, 2313 0, 0, 0, 0, 0, 520, 520, 0, 0, 0, 2314 0, 0, 531, 0, 531, 0, 0, 531, 531, 531, 2315 531, 531, 531, 531, 0, 0, 531, 531, 531, 0, 2316 0, 0, 0, 531, 531, 0, 0, 0, 531, 531, 2317 0, 0, 0, 0, 0, 0, 0, 0, 531, 533, 2318 0, 0, 531, 531, 0, 0, 0, 531, 0, 533, 2319 0, 0, 0, 531, 0, 531, 531, 0, 531, 0, 2320 531, 531, 531, 531, 531, 0, 531, 531, 531, 531, 2321 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 2322 531, 531, 0, 533, 531, 531, 531, 0, 531, 531, 2323 531, 0, 531, 531, 531, 0, 0, 531, 0, 531, 2324 0, 0, 531, 531, 531, 531, 0, 531, 531, 531, 2325 531, 0, 0, 0, 0, 0, 531, 0, 0, 531, 2326 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 2327 531, 531, 531, 0, 0, 531, 0, 0, 0, 535, 2328 0, 0, 531, 531, 531, 0, 0, 0, 0, 0, 2329 0, 531, 531, 0, 0, 0, 0, 0, 535, 0, 2330 535, 0, 0, 535, 535, 535, 535, 535, 535, 535, 2331 0, 0, 535, 535, 535, 0, 0, 0, 0, 535, 2332 535, 0, 0, 0, 535, 535, 0, 0, 0, 0, 2333 0, 0, 0, 0, 535, 198, 0, 0, 535, 535, 2334 0, 0, 0, 535, 0, 198, 0, 0, 0, 535, 2335 0, 535, 535, 0, 535, 0, 535, 535, 535, 535, 2336 535, 0, 535, 535, 535, 535, 535, 535, 535, 535, 2337 535, 535, 535, 535, 535, 535, 535, 535, 0, 198, 2338 535, 535, 535, 0, 535, 535, 535, 0, 535, 535, 2339 535, 0, 0, 535, 0, 535, 198, 0, 535, 535, 2340 535, 535, 0, 535, 535, 535, 535, 0, 0, 0, 2341 0, 0, 535, 0, 0, 535, 535, 535, 535, 535, 2342 535, 535, 535, 0, 535, 535, 535, 535, 535, 0, 2343 0, 535, 0, 0, 0, 533, 0, 0, 535, 535, 2344 535, 0, 0, 0, 0, 0, 0, 535, 535, 0, 2345 0, 0, 0, 0, 533, 0, 533, 0, 0, 533, 2346 533, 533, 533, 533, 533, 533, 0, 0, 533, 533, 2347 533, 0, 0, 0, 0, 533, 533, 0, 0, 0, 2348 533, 533, 0, 0, 0, 0, 156, 0, 0, 0, 2349 533, 0, 0, 0, 533, 533, 156, 0, 0, 533, 2350 0, 0, 0, 0, 0, 533, 0, 533, 533, 0, 2351 533, 0, 533, 533, 533, 533, 533, 0, 533, 533, 2352 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 2353 533, 533, 533, 533, 0, 0, 533, 533, 533, 0, 2354 533, 533, 533, 0, 533, 533, 533, 0, 0, 533, 2355 0, 533, 0, 0, 533, 533, 533, 533, 0, 533, 2356 533, 533, 533, 0, 0, 0, 0, 0, 533, 0, 2357 0, 533, 533, 533, 533, 533, 533, 533, 533, 0, 2358 533, 533, 533, 533, 533, 0, 0, 533, 0, 0, 2359 0, 198, 0, 0, 533, 533, 533, 0, 0, 0, 2360 0, 0, 0, 533, 533, 0, 0, 0, 0, 0, 2361 198, 0, 198, 0, 0, 198, 198, 198, 198, 198, 2362 198, 198, 0, 0, 198, 198, 198, 0, 0, 0, 2363 0, 198, 198, 0, 0, 0, 198, 198, 0, 0, 2364 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 2365 198, 198, 0, 0, 0, 198, 0, 0, 0, 0, 2366 0, 198, 0, 198, 198, 0, 198, 0, 198, 198, 2367 198, 198, 198, 0, 198, 198, 198, 198, 198, 198, 2368 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 2369 0, 0, 198, 198, 198, 0, 198, 198, 198, 0, 2370 198, 198, 198, 0, 358, 198, 0, 198, 0, 0, 2371 198, 198, 198, 198, 358, 0, 198, 198, 198, 0, 2372 0, 0, 0, 0, 198, 0, 0, 198, 198, 198, 2373 198, 198, 198, 198, 198, 0, 198, 198, 198, 198, 2374 198, 0, 156, 198, 0, 0, 0, 0, 358, 0, 2375 198, 198, 198, 0, 0, 0, 0, 156, 156, 198, 2376 198, 156, 0, 156, 0, 360, 156, 156, 156, 156, 2377 156, 156, 156, 0, 0, 156, 156, 156, 0, 0, 2378 0, 0, 156, 156, 0, 0, 0, 156, 156, 0, 2379 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 2380 0, 156, 156, 0, 0, 0, 156, 0, 0, 0, 2381 0, 0, 156, 0, 156, 156, 0, 156, 0, 156, 2382 156, 156, 156, 156, 0, 156, 156, 156, 156, 156, 2383 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 2384 156, 0, 0, 156, 156, 156, 0, 156, 156, 156, 2385 0, 156, 156, 156, 0, 521, 156, 0, 156, 0, 2386 0, 156, 156, 156, 156, 521, 0, 156, 156, 156, 2387 0, 0, 0, 0, 0, 156, 0, 0, 156, 156, 2388 156, 156, 156, 156, 156, 156, 0, 156, 156, 156, 2389 156, 156, 0, 0, 156, 0, 521, 0, 0, 521, 2390 0, 156, 156, 156, 0, 0, 0, 0, 0, 0, 2391 156, 156, 0, 0, 0, 0, 0, 0, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2396 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 2398 0, 358, 0, 0, 358, 358, 358, 358, 358, 358, 2399 358, 0, 0, 358, 358, 358, 0, 0, 0, 0, 2400 358, 358, 0, 0, 0, 358, 358, 0, 40, 0, 2401 0, 0, 0, 0, 0, 358, 0, 0, 40, 358, 2402 358, 0, 0, 0, 358, 0, 0, 0, 0, 0, 2403 358, 0, 358, 358, 0, 358, 0, 358, 358, 358, 2404 358, 358, 0, 358, 358, 358, 358, 358, 358, 358, 2405 358, 358, 358, 358, 358, 358, 358, 358, 358, 0, 2406 0, 358, 358, 358, 0, 358, 358, 358, 0, 358, 2407 358, 358, 0, 0, 358, 0, 358, 0, 0, 358, 2408 358, 358, 358, 0, 0, 358, 358, 358, 0, 0, 2409 0, 0, 0, 358, 0, 0, 358, 358, 358, 358, 2410 358, 358, 358, 358, 0, 358, 358, 358, 358, 358, 2411 0, 521, 358, 0, 0, 0, 0, 0, 0, 358, 2412 358, 358, 0, 0, 0, 0, 0, 0, 358, 358, 2413 521, 0, 521, 0, 0, 521, 521, 521, 521, 521, 2414 521, 521, 0, 0, 521, 521, 521, 0, 0, 0, 2415 0, 521, 521, 0, 0, 0, 521, 521, 0, 530, 2416 0, 0, 0, 0, 0, 0, 521, 0, 0, 530, 2417 521, 521, 0, 0, 0, 521, 0, 0, 0, 0, 2418 0, 521, 0, 521, 521, 0, 521, 0, 521, 521, 2419 521, 521, 521, 0, 521, 521, 521, 521, 521, 521, 2420 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 2421 0, 0, 521, 521, 521, 0, 521, 521, 521, 0, 2422 521, 521, 521, 0, 0, 521, 0, 521, 0, 0, 2423 521, 521, 521, 521, 0, 0, 521, 521, 521, 0, 2424 0, 0, 0, 0, 521, 0, 0, 521, 521, 521, 2425 521, 521, 521, 521, 521, 0, 521, 521, 521, 521, 2426 521, 0, 0, 521, 40, 0, 0, 0, 0, 0, 2427 521, 521, 521, 0, 0, 0, 0, 0, 0, 521, 2428 521, 0, 0, 40, 0, 40, 40, 0, 40, 40, 2429 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 2430 0, 0, 0, 0, 40, 40, 0, 0, 0, 40, 2431 40, 0, 529, 0, 0, 0, 0, 0, 0, 40, 2432 0, 0, 529, 40, 40, 0, 0, 0, 40, 0, 2433 0, 0, 0, 0, 40, 0, 40, 40, 0, 40, 2434 0, 40, 40, 40, 40, 40, 0, 40, 40, 40, 2435 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 2436 40, 40, 40, 0, 0, 40, 40, 40, 0, 40, 2437 40, 40, 0, 40, 40, 40, 0, 0, 40, 0, 2438 40, 0, 0, 40, 40, 40, 40, 0, 0, 40, 2439 40, 40, 0, 0, 0, 0, 0, 40, 0, 0, 2440 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 2441 40, 40, 40, 40, 0, 530, 40, 0, 0, 0, 2442 0, 0, 0, 40, 40, 40, 0, 0, 0, 0, 2443 0, 0, 40, 40, 530, 0, 530, 0, 0, 530, 2444 530, 530, 530, 530, 530, 530, 0, 0, 530, 530, 2445 530, 0, 0, 0, 0, 530, 530, 0, 0, 0, 2446 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 2447 530, 0, 0, 0, 530, 530, 0, 0, 0, 530, 2448 0, 0, 0, 0, 0, 530, 0, 530, 530, 0, 2449 530, 0, 530, 530, 530, 530, 530, 0, 530, 530, 2450 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 2451 530, 530, 530, 530, 0, 0, 530, 530, 530, 0, 2452 530, 530, 530, 0, 530, 530, 530, 0, 525, 530, 2453 0, 530, 0, 0, 530, 530, 530, 530, 525, 530, 2454 530, 530, 530, 0, 0, 0, 0, 0, 530, 0, 2455 0, 530, 530, 530, 530, 530, 530, 530, 530, 0, 2456 530, 530, 530, 530, 530, 0, 0, 530, 529, 525, 2457 0, 0, 525, 0, 530, 530, 530, 0, 0, 0, 2458 0, 0, 0, 530, 530, 0, 0, 529, 0, 529, 2459 0, 0, 529, 529, 529, 529, 529, 529, 529, 0, 2460 0, 529, 529, 529, 0, 0, 0, 0, 529, 529, 2461 0, 0, 0, 529, 529, 0, 0, 0, 0, 0, 2462 0, 0, 0, 529, 0, 0, 0, 529, 529, 0, 2463 0, 0, 529, 0, 0, 0, 0, 0, 529, 0, 2464 529, 529, 0, 529, 0, 529, 529, 529, 529, 529, 2465 0, 529, 529, 529, 529, 529, 529, 529, 529, 529, 2466 529, 529, 529, 529, 529, 529, 529, 0, 0, 529, 2467 529, 529, 0, 529, 529, 529, 0, 529, 529, 529, 2468 0, 198, 529, 0, 529, 0, 0, 529, 529, 529, 2469 529, 198, 529, 529, 529, 529, 0, 0, 0, 0, 2470 0, 529, 0, 0, 529, 529, 529, 529, 529, 529, 2471 529, 529, 0, 529, 529, 529, 529, 529, 0, 0, 2472 529, 0, 0, 0, 0, 198, 0, 529, 529, 529, 2473 0, 0, 0, 0, 0, 0, 529, 529, 0, 0, 2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2478 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2480 0, 0, 0, 525, 0, 525, 0, 0, 525, 525, 2481 525, 525, 525, 525, 525, 0, 0, 525, 525, 525, 2482 0, 0, 0, 0, 525, 525, 0, 0, 0, 525, 2483 525, 0, 0, 0, 0, 0, 0, 0, 0, 525, 2484 0, 0, 0, 525, 525, 0, 0, 0, 525, 0, 2485 0, 0, 0, 0, 525, 0, 525, 525, 0, 525, 2486 0, 525, 525, 525, 525, 525, 0, 525, 525, 525, 2487 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 2488 525, 525, 525, 0, 0, 525, 525, 525, 0, 525, 2489 525, 525, 0, 525, 525, 525, 0, 200, 525, 0, 2490 525, 0, 0, 525, 525, 525, 525, 200, 0, 525, 2491 525, 525, 0, 0, 0, 0, 0, 525, 0, 0, 2492 525, 525, 525, 525, 525, 525, 525, 525, 0, 525, 2493 525, 525, 525, 525, 0, 0, 525, 198, 0, 0, 2494 0, 200, 0, 525, 525, 0, 0, 0, 0, 0, 2495 0, 0, 525, 525, 0, 0, 198, 0, 198, 0, 2496 0, 198, 198, 198, 198, 198, 198, 198, 0, 0, 2497 198, 198, 198, 0, 0, 0, 0, 198, 198, 0, 2498 0, 0, 198, 198, 0, 0, 0, 0, 0, 0, 2499 0, 0, 198, 0, 0, 0, 198, 198, 0, 0, 2500 0, 198, 0, 0, 0, 0, 0, 198, 0, 198, 2501 198, 0, 198, 0, 198, 198, 198, 198, 198, 0, 2502 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 2503 198, 198, 198, 198, 198, 198, 0, 0, 198, 198, 2504 198, 0, 198, 198, 198, 0, 198, 198, 198, 0, 2505 374, 198, 0, 198, 0, 0, 198, 198, 198, 198, 2506 374, 0, 198, 198, 198, 0, 0, 0, 0, 0, 2507 198, 0, 0, 198, 198, 198, 198, 198, 198, 198, 2508 198, 0, 198, 198, 198, 198, 198, 0, 0, 198, 2509 0, 0, 0, 0, 374, 0, 198, 198, 198, 0, 2510 0, 0, 0, 0, 0, 198, 198, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517 0, 0, 200, 0, 200, 0, 0, 200, 200, 200, 2518 200, 200, 200, 200, 0, 0, 200, 200, 200, 0, 2519 0, 0, 0, 200, 200, 0, 0, 0, 200, 200, 2520 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, 2521 0, 0, 200, 200, 0, 0, 0, 200, 0, 0, 2522 0, 0, 0, 200, 0, 200, 200, 0, 200, 0, 2523 200, 200, 200, 200, 200, 0, 200, 200, 200, 200, 2524 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 2525 200, 200, 0, 0, 200, 200, 200, 0, 200, 200, 2526 200, 0, 200, 200, 200, 0, 359, 200, 0, 200, 2527 0, 0, 200, 200, 200, 200, 359, 0, 200, 200, 2528 200, 0, 0, 0, 0, 0, 200, 0, 0, 200, 2529 200, 200, 200, 200, 200, 200, 200, 0, 200, 200, 2530 200, 200, 200, 0, 0, 200, 374, 0, 0, 0, 2531 359, 0, 200, 200, 200, 0, 0, 0, 0, 0, 2532 0, 200, 200, 0, 0, 374, 0, 374, 0, 0, 2533 374, 374, 374, 374, 374, 374, 374, 0, 0, 374, 2534 374, 374, 0, 0, 0, 0, 374, 374, 0, 0, 2535 0, 374, 374, 0, 0, 0, 0, 0, 0, 0, 2536 0, 374, 0, 0, 0, 374, 374, 0, 0, 0, 2537 374, 0, 0, 0, 0, 0, 374, 0, 374, 374, 2538 0, 374, 0, 374, 374, 374, 374, 374, 0, 374, 2539 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2540 374, 374, 374, 374, 374, 0, 0, 374, 374, 374, 2541 0, 374, 374, 374, 0, 374, 374, 374, 0, 59, 2542 374, 0, 374, 0, 0, 374, 374, 374, 374, 59, 2543 0, 374, 374, 374, 0, 0, 0, 0, 0, 374, 2544 0, 0, 374, 374, 374, 374, 374, 374, 374, 374, 2545 0, 374, 374, 374, 374, 374, 0, 0, 374, 0, 2546 0, 0, 0, 0, 0, 374, 374, 374, 0, 0, 2547 0, 0, 0, 0, 374, 374, 0, 0, 0, 0, 2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 359, 0, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2554 0, 359, 0, 359, 0, 0, 359, 359, 359, 359, 2555 359, 359, 359, 0, 0, 359, 359, 359, 0, 0, 2556 0, 0, 359, 359, 0, 0, 0, 359, 359, 0, 2557 0, 0, 0, 0, 0, 0, 0, 359, 0, 0, 2558 0, 359, 359, 0, 0, 0, 359, 0, 0, 0, 2559 0, 0, 359, 0, 359, 359, 0, 359, 0, 359, 2560 359, 359, 359, 359, 0, 359, 359, 359, 359, 359, 2561 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, 2562 359, 0, 0, 359, 359, 359, 0, 359, 359, 359, 2563 0, 359, 359, 359, 0, 125, 359, 0, 359, 0, 2564 0, 359, 359, 359, 359, 125, 0, 359, 359, 359, 2565 0, 0, 0, 0, 0, 359, 0, 0, 359, 359, 2566 359, 359, 359, 359, 359, 359, 0, 359, 359, 359, 2567 359, 359, 0, 0, 359, 59, 0, 0, 0, 125, 2568 0, 359, 359, 359, 0, 0, 0, 0, 0, 0, 2569 359, 359, 0, 0, 59, 0, 59, 0, 0, 59, 2570 59, 59, 59, 59, 59, 59, 0, 0, 59, 59, 2571 59, 0, 0, 0, 0, 59, 59, 0, 0, 0, 2572 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 2573 59, 0, 0, 0, 59, 59, 0, 0, 0, 59, 2574 0, 0, 0, 0, 0, 59, 0, 59, 59, 0, 2575 59, 0, 59, 59, 59, 59, 59, 0, 59, 59, 2576 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 2577 59, 59, 59, 59, 0, 0, 59, 59, 59, 0, 2578 59, 59, 59, 0, 59, 59, 59, 0, 432, 59, 2579 0, 59, 0, 0, 59, 59, 59, 59, 432, 0, 2580 59, 59, 59, 0, 0, 0, 0, 0, 59, 0, 2581 0, 59, 59, 59, 59, 59, 59, 59, 59, 0, 2582 59, 59, 59, 59, 59, 0, 0, 59, 0, 0, 2583 0, 0, 0, 0, 59, 59, 59, 0, 0, 0, 2584 0, 0, 0, 59, 59, 0, 0, 0, 0, 0, 2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2591 125, 0, 125, 0, 0, 125, 125, 125, 125, 125, 2592 125, 125, 0, 0, 125, 125, 125, 0, 0, 0, 2593 0, 125, 125, 0, 0, 0, 125, 125, 0, 441, 2594 0, 0, 0, 0, 0, 0, 125, 0, 0, 441, 2595 125, 125, 0, 0, 0, 125, 0, 0, 0, 0, 2596 0, 125, 0, 125, 125, 0, 125, 0, 125, 125, 2597 125, 125, 125, 0, 125, 125, 125, 125, 125, 125, 2598 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 2599 0, 0, 125, 125, 125, 0, 125, 125, 125, 0, 2600 125, 125, 125, 0, 0, 125, 0, 125, 0, 0, 2601 125, 125, 125, 125, 0, 0, 125, 125, 125, 0, 2602 0, 0, 0, 0, 125, 0, 0, 125, 125, 125, 2603 125, 125, 125, 125, 125, 0, 125, 125, 125, 125, 2604 125, 0, 0, 125, 432, 0, 0, 0, 0, 0, 2605 125, 125, 0, 0, 0, 0, 0, 0, 0, 125, 2606 125, 0, 0, 432, 0, 432, 0, 0, 432, 432, 2607 432, 432, 432, 432, 432, 0, 0, 432, 432, 432, 2608 0, 0, 0, 0, 432, 432, 0, 0, 0, 432, 2609 432, 0, 357, 0, 0, 0, 0, 0, 0, 432, 2610 0, 0, 357, 432, 432, 0, 0, 0, 432, 0, 2611 0, 0, 0, 0, 432, 0, 432, 432, 0, 432, 2612 0, 432, 432, 432, 432, 432, 0, 432, 432, 432, 2613 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 2614 432, 432, 432, 0, 0, 432, 432, 432, 0, 432, 2615 432, 432, 0, 432, 432, 432, 0, 0, 432, 0, 2616 432, 0, 0, 432, 432, 432, 432, 0, 0, 432, 2617 432, 432, 0, 0, 0, 0, 0, 432, 0, 0, 2618 432, 432, 432, 432, 432, 432, 432, 432, 0, 432, 2619 432, 432, 432, 432, 0, 441, 432, 0, 0, 0, 2620 0, 0, 0, 432, 432, 432, 0, 0, 0, 0, 2621 0, 0, 432, 432, 441, 0, 441, 0, 0, 441, 2622 441, 441, 441, 441, 441, 441, 0, 0, 441, 441, 2623 441, 0, 0, 0, 0, 441, 441, 0, 0, 0, 2624 441, 441, 0, 69, 0, 0, 0, 0, 0, 0, 2625 441, 0, 0, 69, 441, 441, 0, 0, 0, 441, 2626 0, 0, 0, 0, 0, 441, 0, 441, 441, 0, 2627 441, 0, 441, 441, 441, 441, 441, 0, 441, 441, 2628 441, 441, 441, 441, 441, 441, 441, 441, 441, 441, 2629 441, 441, 441, 441, 0, 0, 441, 441, 441, 0, 2630 441, 441, 441, 0, 441, 441, 441, 0, 0, 441, 2631 0, 441, 0, 0, 441, 441, 441, 441, 0, 0, 2632 441, 441, 441, 0, 0, 0, 0, 0, 441, 0, 2633 0, 441, 441, 441, 441, 441, 441, 441, 441, 0, 2634 441, 441, 441, 441, 441, 0, 0, 441, 357, 0, 2635 0, 0, 0, 0, 441, 441, 441, 0, 0, 0, 2636 0, 0, 0, 441, 441, 0, 0, 357, 0, 357, 2637 0, 0, 357, 357, 357, 357, 357, 357, 357, 0, 2638 0, 357, 357, 357, 0, 0, 0, 0, 357, 357, 2639 0, 0, 0, 357, 357, 0, 53, 0, 0, 0, 2640 0, 0, 0, 357, 0, 0, 53, 357, 357, 0, 2641 0, 0, 357, 0, 0, 0, 0, 0, 357, 0, 2642 357, 357, 0, 357, 0, 357, 357, 357, 357, 357, 2643 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 2644 357, 357, 357, 357, 357, 357, 357, 0, 0, 357, 2645 357, 357, 0, 357, 357, 357, 0, 357, 357, 357, 2646 0, 0, 357, 0, 357, 0, 0, 357, 357, 357, 2647 357, 0, 0, 357, 357, 357, 0, 0, 0, 0, 2648 0, 357, 0, 0, 357, 357, 357, 357, 357, 357, 2649 357, 357, 0, 357, 357, 357, 357, 357, 0, 69, 2650 357, 0, 0, 0, 0, 0, 0, 357, 357, 357, 2651 0, 0, 0, 0, 0, 0, 357, 357, 69, 0, 2652 69, 0, 0, 69, 69, 69, 69, 69, 69, 69, 2653 0, 0, 69, 69, 69, 0, 0, 0, 0, 69, 2654 69, 0, 0, 0, 69, 69, 0, 169, 0, 0, 2655 0, 0, 0, 0, 69, 0, 0, 169, 69, 69, 2656 0, 0, 0, 69, 0, 0, 0, 0, 0, 69, 2657 0, 69, 69, 0, 69, 0, 69, 69, 69, 69, 2658 69, 0, 69, 69, 69, 69, 69, 69, 69, 69, 2659 69, 69, 69, 69, 69, 69, 69, 69, 0, 0, 2660 69, 69, 69, 0, 69, 69, 69, 0, 69, 69, 2661 69, 0, 0, 69, 0, 69, 0, 0, 69, 69, 2662 69, 69, 0, 0, 69, 69, 69, 0, 0, 0, 2663 0, 0, 69, 0, 0, 69, 69, 69, 69, 69, 2664 69, 69, 69, 0, 69, 69, 69, 69, 69, 0, 2665 0, 69, 53, 0, 0, 0, 0, 0, 69, 69, 2666 69, 0, 0, 0, 0, 0, 0, 69, 69, 0, 2667 0, 53, 0, 53, 0, 0, 53, 53, 53, 53, 2668 53, 53, 53, 0, 0, 53, 53, 53, 0, 0, 2669 0, 0, 53, 53, 0, 0, 0, 53, 53, 0, 2670 177, 0, 0, 0, 0, 0, 0, 53, 0, 0, 2671 177, 53, 53, 0, 0, 0, 53, 0, 0, 0, 2672 0, 0, 53, 0, 53, 53, 0, 53, 0, 53, 2673 53, 53, 53, 53, 0, 53, 53, 53, 53, 53, 2674 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 2675 53, 0, 0, 53, 53, 53, 0, 53, 53, 53, 2676 0, 53, 53, 53, 0, 0, 53, 0, 53, 0, 2677 0, 53, 53, 53, 53, 0, 0, 53, 53, 53, 2678 0, 0, 0, 0, 0, 53, 0, 0, 53, 53, 2679 53, 53, 53, 53, 53, 53, 0, 53, 53, 53, 2680 53, 53, 0, 169, 53, 0, 0, 0, 0, 0, 2681 0, 53, 53, 53, 0, 0, 0, 0, 0, 0, 2682 53, 53, 169, 0, 169, 0, 0, 169, 169, 169, 2683 169, 169, 169, 169, 0, 0, 169, 169, 169, 0, 2684 0, 0, 0, 169, 169, 0, 0, 0, 169, 169, 2685 0, 55, 0, 0, 0, 0, 0, 0, 169, 0, 2686 0, 55, 169, 169, 0, 0, 0, 169, 0, 0, 2687 0, 0, 0, 169, 0, 169, 169, 0, 169, 0, 2688 169, 169, 169, 169, 169, 0, 169, 169, 169, 169, 2689 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 2690 169, 169, 0, 0, 169, 169, 169, 0, 169, 169, 2691 169, 0, 169, 169, 169, 0, 0, 169, 0, 169, 2692 0, 0, 169, 169, 169, 169, 0, 0, 169, 169, 2693 169, 0, 0, 0, 0, 0, 169, 0, 0, 169, 2694 169, 169, 169, 169, 169, 169, 169, 0, 169, 169, 2695 169, 169, 169, 0, 0, 169, 177, 0, 0, 0, 2696 0, 0, 169, 169, 169, 0, 0, 0, 0, 0, 2697 0, 169, 169, 0, 0, 177, 0, 177, 0, 0, 2698 177, 177, 177, 177, 177, 177, 177, 0, 0, 177, 2699 177, 177, 0, 0, 0, 0, 177, 177, 0, 0, 2700 0, 177, 177, 0, 362, 0, 0, 0, 0, 0, 2701 0, 177, 0, 0, 362, 177, 177, 0, 0, 0, 2702 177, 0, 0, 0, 0, 0, 177, 0, 177, 177, 2703 0, 177, 0, 177, 177, 177, 177, 177, 0, 177, 2704 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 2705 177, 177, 177, 177, 177, 0, 0, 177, 177, 177, 2706 0, 177, 177, 177, 0, 177, 177, 177, 0, 0, 2707 177, 0, 177, 0, 0, 177, 177, 177, 177, 0, 2708 0, 177, 177, 177, 0, 0, 0, 0, 0, 177, 2709 0, 0, 177, 177, 177, 177, 177, 177, 177, 177, 2710 0, 177, 177, 177, 177, 177, 0, 55, 177, 0, 2711 0, 0, 0, 0, 0, 177, 177, 177, 0, 0, 2712 0, 0, 0, 0, 177, 177, 55, 0, 55, 0, 2713 0, 55, 55, 55, 55, 55, 55, 55, 0, 0, 2714 55, 55, 55, 0, 0, 0, 0, 55, 55, 0, 2715 0, 0, 55, 55, 0, 164, 0, 0, 0, 0, 2716 0, 0, 55, 0, 0, 164, 55, 55, 0, 0, 2717 0, 55, 0, 0, 0, 0, 0, 55, 0, 55, 2718 55, 0, 55, 0, 55, 55, 55, 55, 55, 0, 2719 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 2720 55, 55, 55, 55, 55, 55, 0, 0, 55, 55, 2721 55, 0, 55, 55, 55, 0, 55, 55, 55, 0, 2722 0, 55, 0, 55, 0, 0, 55, 55, 55, 55, 2723 0, 0, 55, 55, 55, 0, 0, 0, 0, 0, 2724 55, 0, 0, 55, 55, 55, 55, 55, 55, 55, 2725 55, 0, 55, 55, 55, 55, 55, 0, 0, 55, 2726 362, 0, 0, 0, 0, 0, 55, 55, 55, 0, 2727 0, 0, 0, 0, 0, 55, 55, 0, 0, 362, 2728 0, 362, 0, 0, 362, 362, 362, 362, 362, 362, 2729 362, 0, 0, 362, 362, 362, 0, 0, 0, 0, 2730 362, 362, 0, 0, 0, 362, 362, 0, 406, 0, 2731 0, 0, 0, 0, 0, 362, 0, 0, 406, 362, 2732 362, 0, 0, 0, 362, 0, 0, 0, 0, 0, 2733 362, 0, 362, 362, 0, 362, 0, 362, 362, 362, 2734 362, 362, 0, 362, 362, 362, 362, 362, 362, 362, 2735 362, 362, 362, 362, 362, 362, 362, 362, 362, 0, 2736 0, 362, 362, 362, 0, 362, 362, 362, 0, 362, 2737 362, 362, 0, 0, 362, 0, 362, 0, 0, 362, 2738 362, 362, 362, 0, 0, 362, 362, 362, 0, 0, 2739 0, 0, 0, 362, 0, 0, 362, 362, 362, 362, 2740 362, 362, 362, 362, 0, 362, 362, 362, 362, 362, 2741 0, 164, 362, 0, 0, 0, 0, 0, 0, 362, 2742 362, 362, 0, 0, 0, 0, 0, 0, 362, 362, 2743 164, 0, 164, 0, 0, 164, 164, 164, 164, 164, 2744 164, 164, 0, 0, 164, 164, 164, 0, 0, 0, 2745 0, 164, 164, 0, 0, 0, 164, 164, 0, 472, 2746 0, 0, 0, 0, 0, 0, 164, 0, 0, 472, 2747 164, 164, 0, 0, 0, 164, 0, 0, 0, 0, 2748 0, 164, 0, 164, 164, 0, 164, 0, 164, 164, 2749 164, 164, 164, 0, 164, 164, 164, 164, 164, 164, 2750 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 2751 0, 0, 164, 164, 164, 0, 164, 164, 164, 0, 2752 164, 164, 164, 0, 0, 164, 0, 164, 0, 0, 2753 164, 164, 164, 164, 0, 0, 164, 164, 164, 0, 2754 0, 0, 0, 0, 164, 0, 0, 164, 164, 164, 2755 164, 164, 164, 164, 164, 0, 164, 164, 164, 164, 2756 164, 0, 0, 164, 406, 0, 0, 0, 0, 0, 2757 164, 164, 164, 0, 0, 0, 0, 0, 0, 164, 2758 164, 0, 0, 406, 0, 406, 0, 0, 406, 406, 2759 406, 406, 406, 406, 406, 0, 0, 406, 406, 406, 2760 0, 0, 0, 0, 406, 406, 0, 0, 0, 406, 2761 406, 0, 34, 0, 0, 0, 0, 0, 0, 406, 2762 0, 0, 34, 406, 406, 0, 0, 0, 406, 0, 2763 0, 0, 0, 0, 406, 0, 406, 406, 0, 406, 2764 0, 406, 406, 406, 406, 406, 0, 406, 406, 406, 2765 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 2766 406, 406, 406, 0, 0, 406, 406, 406, 0, 406, 2767 406, 406, 0, 406, 406, 406, 0, 0, 406, 0, 2768 406, 0, 0, 406, 406, 406, 406, 0, 0, 406, 2769 406, 406, 0, 0, 0, 0, 0, 406, 0, 0, 2770 406, 406, 406, 406, 406, 406, 406, 406, 0, 406, 2771 406, 406, 406, 406, 0, 472, 406, 0, 0, 0, 2772 0, 0, 0, 406, 406, 406, 0, 0, 0, 0, 2773 0, 0, 406, 406, 472, 0, 472, 0, 0, 472, 2774 472, 472, 472, 472, 472, 472, 0, 0, 472, 472, 2775 472, 0, 0, 0, 0, 472, 472, 0, 0, 0, 2776 472, 472, 0, 151, 0, 0, 0, 0, 0, 0, 2777 472, 0, 0, 151, 472, 472, 0, 0, 0, 472, 2778 0, 0, 0, 0, 0, 472, 0, 472, 472, 0, 2779 472, 0, 472, 472, 472, 472, 472, 0, 472, 472, 2780 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 2781 472, 472, 472, 472, 0, 0, 472, 472, 472, 0, 2782 472, 472, 472, 0, 472, 472, 472, 0, 0, 472, 2783 0, 472, 0, 0, 472, 472, 472, 472, 0, 0, 2784 472, 472, 472, 0, 0, 0, 0, 0, 472, 0, 2785 0, 472, 472, 472, 472, 472, 472, 472, 472, 0, 2786 472, 472, 472, 472, 472, 0, 0, 472, 34, 0, 2787 0, 0, 0, 0, 472, 472, 472, 0, 0, 0, 2788 0, 0, 0, 472, 472, 0, 0, 34, 0, 34, 2789 0, 0, 34, 34, 34, 34, 34, 34, 34, 0, 2790 0, 34, 34, 34, 0, 0, 0, 0, 34, 34, 2791 0, 0, 0, 34, 34, 0, 149, 0, 0, 0, 2792 0, 0, 0, 34, 0, 0, 149, 34, 34, 0, 2793 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 2794 34, 34, 0, 34, 0, 34, 34, 34, 34, 34, 2795 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 2796 34, 34, 34, 34, 34, 34, 34, 0, 0, 34, 2797 34, 34, 0, 34, 34, 34, 0, 34, 34, 34, 2798 0, 0, 34, 0, 34, 0, 0, 34, 34, 34, 2799 34, 0, 0, 34, 34, 34, 0, 0, 0, 0, 2800 0, 34, 0, 0, 34, 34, 34, 34, 34, 34, 2801 34, 34, 0, 34, 34, 34, 34, 34, 0, 151, 2802 34, 0, 0, 0, 0, 0, 0, 34, 34, 34, 2803 0, 0, 0, 0, 0, 0, 34, 34, 151, 0, 2804 151, 0, 0, 151, 151, 151, 151, 151, 151, 151, 2805 0, 0, 151, 151, 151, 0, 0, 0, 0, 151, 2806 151, 0, 0, 0, 151, 151, 0, 67, 0, 0, 2807 0, 0, 0, 0, 151, 0, 0, 67, 151, 151, 2808 0, 0, 0, 151, 0, 0, 0, 0, 0, 151, 2809 0, 151, 151, 0, 151, 0, 151, 151, 151, 151, 2810 151, 0, 151, 151, 151, 151, 151, 151, 151, 151, 2811 151, 151, 151, 151, 151, 151, 151, 151, 0, 0, 2812 151, 151, 151, 0, 151, 151, 151, 0, 151, 151, 2813 151, 0, 0, 151, 0, 151, 0, 0, 151, 151, 2814 151, 151, 0, 0, 151, 151, 151, 0, 0, 0, 2815 0, 0, 151, 0, 0, 151, 151, 151, 151, 151, 2816 151, 151, 151, 0, 151, 151, 151, 151, 151, 0, 2817 0, 151, 149, 0, 0, 0, 0, 0, 151, 151, 2818 151, 0, 0, 0, 0, 0, 0, 151, 151, 0, 2819 0, 149, 0, 149, 0, 0, 149, 149, 149, 149, 2820 149, 149, 149, 0, 0, 149, 149, 149, 0, 0, 2821 0, 0, 149, 149, 0, 0, 0, 149, 149, 0, 2822 68, 0, 0, 0, 0, 0, 0, 149, 0, 0, 2823 68, 149, 149, 0, 0, 0, 149, 0, 0, 0, 2824 0, 0, 149, 0, 149, 149, 0, 149, 0, 149, 2825 149, 149, 149, 149, 0, 149, 149, 149, 149, 149, 2826 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 2827 149, 0, 0, 149, 149, 149, 0, 149, 149, 149, 2828 0, 149, 149, 149, 0, 0, 149, 0, 149, 0, 2829 0, 149, 149, 149, 149, 0, 0, 149, 149, 149, 2830 0, 0, 0, 0, 0, 149, 0, 0, 149, 149, 2831 149, 149, 149, 149, 149, 149, 0, 149, 149, 149, 2832 149, 149, 0, 67, 149, 0, 0, 0, 0, 0, 2833 0, 149, 149, 149, 0, 0, 0, 0, 0, 0, 2834 149, 149, 67, 0, 67, 0, 0, 67, 67, 67, 2835 67, 67, 67, 67, 0, 0, 67, 67, 67, 0, 2836 0, 0, 0, 67, 67, 0, 0, 0, 67, 67, 2837 0, 40, 0, 0, 0, 0, 0, 0, 67, 0, 2838 0, 40, 67, 67, 0, 0, 0, 67, 0, 0, 2839 0, 0, 0, 67, 0, 67, 67, 0, 67, 0, 2840 67, 67, 67, 67, 67, 0, 67, 67, 67, 67, 2841 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 2842 67, 67, 0, 0, 67, 67, 67, 0, 67, 67, 2843 67, 0, 67, 67, 67, 0, 0, 67, 0, 67, 2844 0, 0, 67, 67, 67, 67, 0, 0, 67, 67, 2845 67, 0, 0, 0, 0, 0, 67, 0, 0, 67, 2846 67, 67, 67, 67, 67, 67, 67, 0, 67, 67, 2847 67, 67, 67, 0, 0, 67, 68, 0, 0, 0, 2848 0, 0, 67, 67, 67, 0, 0, 0, 0, 0, 2849 0, 67, 67, 0, 0, 68, 0, 68, 0, 0, 2850 68, 68, 68, 68, 68, 68, 68, 0, 0, 68, 2851 68, 68, 0, 0, 0, 0, 68, 68, 0, 0, 2852 0, 68, 68, 0, 438, 0, 0, 0, 0, 0, 2853 0, 68, 0, 0, 438, 68, 68, 0, 0, 0, 2854 68, 0, 0, 0, 0, 0, 68, 0, 68, 68, 2855 0, 68, 0, 68, 68, 68, 68, 68, 0, 68, 2856 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 2857 68, 68, 68, 68, 68, 0, 0, 68, 68, 68, 2858 0, 68, 68, 68, 0, 68, 68, 68, 0, 0, 2859 68, 0, 68, 0, 0, 68, 68, 68, 68, 0, 2860 0, 68, 68, 68, 0, 0, 0, 0, 0, 68, 2861 0, 0, 68, 68, 68, 68, 68, 68, 68, 68, 2862 0, 68, 68, 68, 68, 68, 0, 40, 68, 0, 2863 0, 0, 0, 0, 0, 68, 68, 68, 0, 0, 2864 0, 0, 0, 0, 68, 68, 40, 0, 40, 0, 2865 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 2866 40, 40, 40, 0, 0, 0, 0, 40, 40, 0, 2867 0, 0, 40, 40, 0, 439, 0, 0, 0, 0, 2868 0, 0, 40, 0, 0, 439, 40, 40, 0, 0, 2869 0, 40, 0, 0, 0, 0, 0, 40, 0, 40, 2870 40, 0, 40, 0, 40, 40, 40, 40, 40, 0, 2871 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 2872 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 2873 40, 0, 40, 40, 40, 0, 40, 40, 40, 0, 2874 0, 40, 0, 40, 0, 0, 40, 40, 40, 40, 2875 0, 0, 40, 40, 40, 0, 0, 0, 0, 0, 2876 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 2877 40, 0, 40, 40, 40, 40, 40, 0, 0, 40, 2878 438, 0, 0, 0, 0, 0, 40, 40, 40, 0, 2879 0, 0, 0, 0, 0, 40, 40, 0, 0, 438, 2880 0, 438, 0, 0, 438, 438, 438, 438, 438, 438, 2881 438, 0, 0, 438, 438, 438, 0, 0, 0, 0, 2882 438, 438, 0, 0, 0, 438, 438, 0, 467, 0, 2883 0, 0, 0, 0, 0, 438, 0, 0, 467, 438, 2884 438, 0, 0, 0, 438, 0, 0, 0, 0, 0, 2885 438, 0, 438, 438, 0, 438, 0, 438, 438, 438, 2886 438, 438, 0, 438, 438, 438, 438, 438, 438, 438, 2887 438, 438, 438, 438, 438, 438, 438, 438, 438, 0, 2888 0, 438, 438, 438, 0, 438, 438, 438, 0, 438, 2889 438, 438, 0, 0, 438, 0, 438, 0, 0, 438, 2890 438, 438, 438, 0, 0, 438, 438, 438, 0, 0, 2891 0, 0, 0, 438, 0, 0, 438, 438, 438, 438, 2892 438, 438, 438, 438, 0, 438, 438, 438, 438, 438, 2893 0, 439, 438, 0, 0, 0, 0, 0, 0, 438, 2894 438, 438, 0, 0, 0, 0, 0, 0, 438, 438, 2895 439, 0, 439, 0, 0, 439, 439, 439, 439, 439, 2896 439, 439, 0, 0, 439, 439, 439, 0, 0, 0, 2897 0, 439, 439, 0, 0, 0, 439, 439, 0, 43, 2898 0, 0, 0, 0, 0, 0, 439, 0, 0, 43, 2899 439, 439, 0, 0, 0, 439, 0, 0, 0, 0, 2900 0, 439, 0, 439, 439, 0, 439, 0, 439, 439, 2901 439, 439, 439, 0, 439, 439, 439, 439, 439, 439, 2902 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 2903 0, 0, 439, 439, 439, 0, 439, 439, 439, 0, 2904 439, 439, 439, 0, 0, 439, 0, 439, 0, 0, 2905 439, 439, 439, 439, 0, 0, 439, 439, 439, 0, 2906 0, 0, 0, 0, 439, 0, 0, 439, 439, 439, 2907 439, 439, 439, 439, 439, 0, 439, 439, 439, 439, 2908 439, 0, 0, 439, 467, 0, 0, 0, 0, 0, 2909 439, 439, 439, 0, 0, 0, 0, 0, 0, 439, 2910 439, 0, 0, 467, 0, 467, 0, 0, 467, 467, 2911 467, 467, 467, 467, 467, 0, 0, 467, 467, 467, 2912 0, 0, 0, 0, 467, 467, 0, 0, 0, 467, 2913 467, 0, 363, 0, 0, 0, 0, 0, 0, 467, 2914 0, 0, 363, 467, 467, 0, 0, 0, 467, 0, 2915 0, 0, 0, 0, 467, 0, 467, 467, 0, 467, 2916 0, 467, 467, 467, 467, 467, 0, 467, 467, 467, 2917 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 2918 467, 467, 467, 0, 0, 467, 467, 467, 0, 467, 2919 467, 467, 0, 467, 467, 467, 0, 0, 467, 0, 2920 467, 0, 0, 467, 467, 467, 467, 0, 0, 467, 2921 467, 467, 0, 0, 0, 0, 0, 467, 0, 0, 2922 467, 467, 467, 467, 467, 467, 467, 467, 0, 467, 2923 467, 467, 467, 467, 0, 43, 467, 0, 0, 0, 2924 0, 0, 0, 467, 467, 467, 0, 0, 0, 0, 2925 0, 0, 467, 467, 43, 0, 43, 0, 0, 43, 2926 43, 43, 43, 43, 43, 43, 0, 0, 43, 43, 2927 43, 0, 0, 0, 0, 43, 43, 0, 0, 0, 2928 43, 43, 0, 473, 0, 0, 0, 0, 0, 0, 2929 43, 0, 0, 473, 43, 43, 0, 0, 0, 43, 2930 0, 0, 0, 0, 0, 43, 0, 43, 43, 0, 2931 43, 0, 43, 43, 43, 43, 43, 0, 43, 43, 2932 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 2933 43, 43, 43, 43, 0, 0, 43, 43, 43, 0, 2934 43, 43, 43, 0, 43, 43, 43, 0, 0, 43, 2935 0, 43, 0, 0, 43, 43, 43, 43, 0, 0, 2936 43, 43, 43, 0, 0, 0, 0, 0, 43, 0, 2937 0, 43, 43, 43, 43, 43, 43, 43, 43, 0, 2938 43, 43, 43, 43, 43, 0, 0, 43, 363, 0, 2939 0, 0, 0, 0, 43, 43, 43, 0, 0, 0, 2940 0, 0, 0, 43, 43, 0, 0, 363, 0, 363, 2941 0, 0, 363, 363, 363, 363, 363, 363, 363, 0, 2942 0, 363, 363, 363, 0, 0, 0, 0, 363, 363, 2943 0, 0, 0, 363, 363, 0, 365, 0, 0, 0, 2944 0, 0, 0, 363, 0, 0, 365, 363, 363, 0, 2945 0, 0, 363, 0, 0, 0, 0, 0, 363, 0, 2946 363, 363, 0, 363, 0, 363, 363, 363, 363, 363, 2947 0, 363, 363, 363, 363, 363, 363, 363, 363, 363, 2948 363, 363, 363, 363, 363, 363, 363, 0, 0, 363, 2949 363, 363, 0, 363, 363, 363, 0, 363, 363, 363, 2950 0, 0, 363, 0, 363, 0, 0, 363, 363, 363, 2951 363, 0, 0, 363, 363, 363, 0, 0, 0, 0, 2952 0, 363, 0, 0, 363, 363, 363, 363, 363, 363, 2953 363, 363, 0, 363, 363, 363, 363, 363, 0, 473, 2954 363, 0, 0, 0, 0, 0, 0, 363, 363, 363, 2955 0, 0, 0, 0, 0, 0, 363, 363, 473, 0, 2956 473, 0, 0, 473, 473, 473, 473, 473, 473, 473, 2957 0, 0, 473, 473, 473, 0, 0, 0, 0, 473, 2958 473, 0, 0, 0, 473, 473, 0, 409, 0, 0, 2959 0, 0, 0, 0, 473, 0, 0, 409, 473, 473, 2960 0, 0, 0, 473, 0, 0, 0, 0, 0, 473, 2961 0, 473, 473, 0, 473, 0, 473, 473, 473, 473, 2962 473, 0, 473, 473, 473, 473, 473, 473, 473, 473, 2963 473, 473, 473, 473, 473, 473, 473, 473, 0, 0, 2964 473, 473, 473, 0, 473, 473, 473, 0, 473, 473, 2965 473, 0, 0, 473, 0, 473, 0, 0, 473, 473, 2966 473, 473, 0, 0, 473, 473, 473, 0, 0, 0, 2967 0, 0, 473, 0, 0, 473, 473, 473, 473, 473, 2968 473, 473, 473, 0, 473, 473, 473, 473, 473, 0, 2969 0, 473, 365, 0, 0, 0, 0, 0, 473, 473, 2970 473, 0, 0, 0, 0, 0, 0, 473, 473, 0, 2971 0, 365, 0, 365, 0, 0, 365, 365, 365, 365, 2972 365, 365, 365, 0, 0, 365, 365, 365, 0, 0, 2973 0, 0, 365, 365, 0, 0, 0, 365, 365, 0, 2974 549, 0, 0, 0, 0, 0, 0, 365, 0, 0, 2975 549, 365, 365, 0, 0, 0, 365, 0, 0, 0, 2976 0, 0, 365, 0, 365, 365, 0, 365, 0, 365, 2977 365, 365, 365, 365, 0, 365, 365, 365, 365, 365, 2978 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 2979 365, 0, 0, 365, 365, 365, 0, 365, 365, 365, 2980 0, 365, 365, 365, 0, 0, 365, 0, 365, 0, 2981 0, 365, 365, 365, 365, 0, 0, 365, 365, 365, 2982 0, 0, 0, 0, 0, 365, 0, 0, 365, 365, 2983 365, 365, 365, 365, 365, 365, 0, 365, 365, 365, 2984 365, 365, 0, 409, 365, 0, 0, 0, 0, 0, 2985 0, 365, 365, 365, 0, 0, 0, 0, 0, 0, 2986 365, 365, 409, 0, 409, 0, 0, 409, 409, 409, 2987 409, 409, 409, 409, 0, 0, 409, 409, 409, 0, 2988 0, 0, 0, 409, 409, 0, 0, 0, 409, 409, 2989 0, 410, 0, 0, 0, 0, 0, 0, 409, 0, 2990 0, 410, 409, 409, 0, 0, 0, 409, 0, 0, 2991 0, 0, 0, 409, 0, 409, 409, 0, 409, 0, 2992 409, 409, 409, 409, 409, 0, 409, 409, 409, 409, 2993 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 2994 409, 409, 0, 0, 409, 409, 409, 0, 409, 409, 2995 409, 0, 409, 409, 409, 0, 0, 409, 0, 409, 2996 0, 0, 409, 409, 409, 409, 0, 0, 409, 409, 2997 409, 0, 0, 0, 0, 0, 409, 0, 0, 409, 2998 409, 409, 409, 409, 409, 409, 409, 0, 409, 409, 2999 409, 409, 409, 0, 0, 409, 549, 0, 0, 0, 3000 0, 0, 409, 409, 409, 0, 0, 0, 0, 0, 3001 0, 409, 409, 0, 0, 549, 0, 549, 0, 0, 3002 549, 549, 549, 549, 549, 549, 549, 0, 0, 549, 3003 549, 549, 0, 0, 0, 0, 549, 549, 0, 0, 3004 0, 549, 549, 0, 415, 0, 0, 0, 0, 0, 3005 0, 549, 0, 0, 415, 549, 549, 0, 0, 0, 3006 549, 0, 0, 0, 0, 0, 549, 0, 549, 549, 3007 0, 549, 0, 549, 549, 549, 549, 549, 0, 549, 3008 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 3009 549, 549, 549, 549, 549, 0, 0, 549, 549, 549, 3010 0, 549, 549, 549, 0, 549, 549, 549, 0, 0, 3011 549, 0, 549, 0, 0, 549, 549, 549, 549, 0, 3012 0, 549, 549, 549, 0, 0, 0, 0, 0, 549, 3013 0, 0, 549, 549, 549, 549, 549, 549, 549, 549, 3014 0, 549, 549, 549, 549, 549, 0, 410, 549, 0, 3015 0, 0, 0, 0, 0, 549, 549, 549, 0, 0, 3016 0, 0, 0, 0, 549, 549, 410, 0, 410, 0, 3017 0, 410, 410, 410, 410, 410, 410, 410, 0, 0, 3018 410, 410, 410, 0, 0, 0, 0, 410, 410, 0, 3019 0, 0, 410, 410, 4, 0, 0, 0, 0, 0, 3020 0, 0, 410, 0, 4, 0, 410, 410, 0, 0, 3021 0, 410, 0, 0, 0, 0, 0, 410, 0, 410, 3022 410, 0, 410, 0, 410, 410, 410, 410, 410, 0, 3023 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 3024 410, 410, 410, 410, 410, 410, 0, 0, 410, 410, 3025 410, 0, 410, 410, 410, 0, 410, 410, 410, 0, 3026 0, 410, 0, 410, 0, 0, 410, 410, 410, 410, 3027 0, 0, 410, 410, 410, 0, 0, 0, 0, 0, 3028 410, 0, 0, 410, 410, 410, 410, 410, 410, 410, 3029 410, 0, 410, 410, 410, 410, 410, 0, 0, 410, 3030 415, 0, 0, 0, 0, 0, 410, 410, 410, 0, 3031 0, 0, 0, 0, 0, 410, 410, 0, 0, 415, 3032 0, 415, 0, 0, 415, 415, 415, 415, 415, 415, 3033 415, 0, 0, 415, 415, 415, 0, 0, 0, 0, 3034 415, 415, 0, 0, 0, 415, 415, 411, 0, 0, 3035 0, 0, 0, 0, 0, 415, 0, 411, 0, 415, 3036 415, 0, 0, 0, 415, 0, 0, 0, 0, 0, 3037 415, 0, 415, 415, 0, 415, 0, 415, 415, 415, 3038 415, 415, 0, 415, 415, 415, 415, 415, 415, 415, 3039 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 3040 0, 415, 415, 415, 0, 415, 415, 415, 0, 415, 3041 415, 415, 0, 0, 415, 0, 415, 0, 0, 415, 3042 415, 415, 415, 0, 0, 415, 415, 415, 0, 0, 3043 0, 0, 0, 415, 0, 0, 415, 415, 415, 415, 3044 415, 415, 415, 415, 0, 415, 415, 415, 415, 415, 3045 4, 0, 415, 0, 0, 0, 0, 0, 0, 415, 3046 415, 0, 0, 0, 0, 0, 0, 0, 415, 415, 3047 0, 4, 0, 0, 4, 4, 4, 4, 4, 4, 3048 4, 0, 0, 4, 4, 4, 0, 0, 0, 0, 3049 4, 4, 0, 0, 0, 4, 4, 0, 408, 0, 3050 0, 0, 0, 0, 0, 4, 0, 0, 408, 4, 3051 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3052 4, 0, 4, 4, 0, 4, 0, 4, 4, 4, 3053 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 3054 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3055 0, 4, 4, 4, 0, 4, 4, 4, 0, 4, 3056 4, 4, 0, 0, 4, 0, 4, 0, 0, 4, 3057 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 3058 0, 0, 0, 4, 0, 0, 4, 4, 4, 4, 3059 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 3060 0, 0, 4, 411, 0, 0, 0, 0, 0, 4, 3061 4, 4, 0, 0, 0, 0, 0, 0, 4, 4, 3062 0, 0, 411, 0, 411, 0, 0, 411, 411, 411, 3063 411, 411, 411, 411, 0, 0, 411, 411, 411, 0, 3064 0, 0, 0, 411, 411, 0, 0, 0, 411, 411, 3065 0, 354, 0, 0, 0, 0, 0, 0, 411, 0, 3066 0, 354, 411, 411, 0, 0, 0, 411, 0, 0, 3067 0, 0, 0, 411, 0, 411, 411, 0, 411, 0, 3068 411, 411, 411, 411, 411, 0, 411, 411, 411, 411, 3069 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 3070 411, 411, 0, 0, 411, 411, 411, 0, 411, 411, 3071 411, 0, 411, 411, 411, 0, 0, 411, 0, 411, 3072 0, 0, 411, 411, 411, 411, 0, 0, 411, 411, 3073 411, 0, 0, 0, 0, 0, 411, 0, 0, 411, 3074 411, 411, 411, 411, 411, 411, 411, 0, 411, 411, 3075 411, 411, 411, 0, 408, 411, 0, 0, 0, 0, 3076 0, 0, 411, 411, 411, 0, 0, 0, 0, 0, 3077 0, 0, 411, 408, 0, 408, 0, 0, 408, 408, 3078 408, 408, 408, 408, 408, 0, 0, 408, 408, 408, 3079 0, 0, 0, 0, 408, 408, 0, 0, 0, 408, 3080 408, 0, 455, 0, 0, 0, 0, 0, 0, 408, 3081 0, 0, 455, 408, 408, 0, 0, 0, 408, 0, 3082 0, 0, 0, 0, 408, 0, 408, 408, 0, 408, 3083 0, 408, 408, 408, 408, 408, 0, 408, 408, 408, 3084 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 3085 408, 408, 408, 0, 0, 408, 408, 408, 0, 408, 3086 408, 408, 0, 408, 408, 408, 0, 0, 408, 0, 3087 408, 0, 0, 408, 408, 408, 408, 0, 0, 408, 3088 408, 408, 0, 0, 0, 0, 0, 408, 0, 0, 3089 408, 408, 408, 408, 408, 408, 408, 408, 0, 408, 3090 408, 408, 408, 408, 0, 0, 408, 354, 0, 0, 3091 0, 0, 0, 408, 408, 0, 0, 0, 0, 0, 3092 0, 0, 408, 408, 0, 0, 354, 0, 354, 0, 3093 0, 354, 354, 354, 354, 354, 354, 354, 0, 0, 3094 354, 354, 354, 0, 0, 0, 0, 354, 354, 0, 3095 0, 0, 354, 354, 0, 24, 0, 0, 0, 0, 3096 0, 0, 354, 0, 0, 24, 354, 354, 0, 0, 3097 0, 354, 0, 0, 0, 0, 0, 354, 0, 354, 3098 354, 0, 354, 0, 354, 354, 354, 354, 354, 0, 3099 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 3100 354, 354, 354, 354, 354, 354, 0, 0, 354, 354, 3101 354, 0, 354, 354, 354, 0, 354, 354, 354, 0, 3102 0, 354, 0, 354, 0, 0, 354, 354, 354, 354, 3103 0, 0, 354, 354, 354, 0, 0, 0, 0, 0, 3104 354, 0, 0, 354, 354, 354, 354, 0, 354, 354, 3105 354, 0, 354, 354, 354, 354, 354, 0, 455, 354, 3106 0, 0, 0, 0, 0, 0, 354, 354, 0, 0, 3107 0, 0, 0, 0, 0, 0, 354, 455, 0, 455, 3108 0, 0, 455, 455, 455, 455, 455, 455, 455, 0, 3109 0, 455, 455, 455, 0, 0, 0, 0, 455, 455, 3110 0, 0, 0, 455, 455, 0, 0, 0, 0, 0, 3111 0, 0, 0, 455, 0, 0, 0, 455, 455, 0, 3112 0, 0, 455, 0, 0, 0, 0, 0, 455, 0, 3113 455, 455, 0, 455, 0, 455, 455, 455, 455, 455, 3114 0, 455, 455, 455, 455, 455, 455, 455, 455, 455, 3115 455, 455, 455, 455, 455, 455, 455, 0, 0, 455, 3116 455, 455, 0, 455, 455, 455, 0, 455, 455, 455, 3117 0, 0, 455, 0, 455, 0, 0, 455, 455, 455, 3118 455, 0, 0, 455, 455, 455, 0, 188, 0, 540, 3119 150, 455, 151, 0, 455, 455, 455, 455, 0, 455, 3120 455, 455, 0, 455, 455, 455, 455, 455, 545, 0, 3121 455, 24, 0, 0, 0, 0, 0, 455, 455, 0, 3122 0, 0, 0, 0, 0, 0, 0, 455, 0, 0, 3123 24, 0, 24, 0, 0, 24, 24, 24, 24, 24, 3124 24, 24, 0, 0, 24, 24, 24, 0, 0, 0, 3125 0, 24, 24, 0, 0, 0, 24, 24, 0, 638, 3126 417, 415, 0, 416, 0, 0, 24, 0, 0, 0, 3127 24, 24, 0, 0, 0, 24, 901, 0, 420, 403, 3128 421, 24, 0, 24, 24, 0, 24, 0, 24, 24, 3129 24, 24, 24, 0, 24, 24, 24, 24, 24, 24, 3130 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 3131 0, 0, 24, 24, 24, 0, 24, 24, 24, 0, 3132 24, 24, 24, 0, 0, 24, 0, 24, 0, 0, 3133 24, 24, 24, 24, 0, 0, 24, 24, 24, 0, 3134 188, 0, 540, 150, 24, 151, 0, 24, 24, 24, 3135 24, 24, 24, 24, 24, 0, 24, 24, 24, 24, 3136 24, 734, 0, 24, 0, 0, 0, 0, 0, 0, 3137 24, 24, 24, 0, 0, 0, 0, 0, 0, 24, 3138 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 3139 0, 150, 0, 151, 0, 0, 0, 0, 0, 0, 3140 0, 0, 0, 0, 0, 0, 0, 0, 0, 644, 3141 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3143 0, 0, 0, 0, 152, 153, 0, 0, 0, 154, 3144 155, 156, 157, 0, 0, 0, 0, 0, 0, 0, 3145 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, 3146 166, 167, 0, 0, 168, 169, 170, 0, 171, 172, 3147 173, 174, 175, 0, 176, 0, 404, 405, 406, 407, 3148 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3149 418, 419, 0, 0, 0, 0, 0, 0, 0, 0, 3150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3152 0, 0, 0, 0, 0, 0, 177, 188, 0, 0, 3153 150, 0, 151, 0, 0, 0, 0, 178, 179, 0, 3154 0, 0, 0, 180, 0, 0, 0, 0, 666, 0, 3155 0, 0, 0, 181, 182, 0, 0, 183, 184, 185, 3156 186, 0, 0, 149, 89, 0, 0, 0, 0, 0, 3157 0, 187, 0, 0, 0, 188, 0, 0, 150, 0, 3158 151, 0, 0, 0, 0, 0, 0, 152, 153, 0, 3159 0, 0, 154, 155, 156, 157, 668, 0, 0, 0, 3160 0, 0, 0, 0, 158, 159, 160, 161, 162, 163, 3161 164, 149, 165, 166, 167, 0, 0, 168, 169, 170, 3162 0, 171, 172, 173, 174, 175, 0, 176, 0, 0, 3163 0, 0, 0, 0, 0, 152, 153, 0, 0, 0, 3164 154, 155, 156, 157, 0, 0, 0, 0, 0, 0, 3165 0, 0, 158, 159, 160, 161, 162, 163, 164, 0, 3166 165, 166, 167, 0, 0, 168, 169, 170, 0, 171, 3167 172, 173, 174, 175, 0, 176, 0, 0, 0, 177, 3168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3169 178, 179, 0, 0, 0, 0, 180, 0, 0, 0, 3170 0, 0, 0, 0, 0, 0, 181, 182, 0, 0, 3171 183, 184, 185, 186, 0, 0, 188, 89, 706, 150, 3172 0, 151, 0, 0, 187, 0, 0, 177, 0, 0, 3173 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, 3174 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 3175 149, 0, 0, 0, 181, 182, 0, 0, 183, 184, 3176 185, 186, 0, 0, 188, 89, 540, 150, 0, 151, 3177 0, 0, 187, 0, 152, 153, 0, 0, 0, 154, 3178 155, 156, 157, 0, 0, 0, 0, 0, 0, 0, 3179 0, 158, 159, 160, 161, 162, 163, 164, 149, 165, 3180 166, 167, 0, 0, 168, 169, 170, 0, 171, 172, 3181 173, 174, 175, 0, 176, 0, 0, 0, 0, 0, 3182 0, 0, 152, 153, 0, 0, 0, 154, 155, 156, 3183 157, 0, 0, 0, 0, 0, 0, 0, 0, 158, 3184 159, 160, 161, 162, 163, 164, 0, 165, 166, 167, 3185 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 3186 175, 0, 176, 0, 0, 0, 177, 0, 0, 0, 3187 0, 0, 0, 0, 0, 0, 0, 178, 179, 0, 3188 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 3189 0, 0, 0, 181, 182, 0, 0, 183, 184, 185, 3190 186, 0, 188, 0, 89, 150, 0, 151, 0, 0, 3191 0, 187, 0, 0, 177, 0, 0, 0, 0, 0, 3192 813, 0, 0, 0, 0, 178, 179, 0, 0, 0, 3193 0, 180, 0, 0, 0, 0, 0, 0, 0, 149, 3194 0, 181, 182, 0, 0, 183, 184, 185, 186, 0, 3195 0, 0, 89, 0, 0, 188, 0, 0, 150, 187, 3196 151, 0, 0, 152, 153, 0, 0, 0, 154, 155, 3197 156, 157, 0, 898, 0, 0, 0, 0, 0, 0, 3198 158, 159, 160, 161, 162, 163, 164, 149, 165, 166, 3199 167, 0, 0, 168, 169, 170, 0, 171, 172, 173, 3200 174, 175, 0, 176, 0, 0, 0, 0, 0, 0, 3201 0, 152, 153, 0, 0, 0, 154, 155, 156, 157, 3202 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, 3203 160, 161, 162, 163, 164, 0, 165, 166, 167, 0, 3204 0, 168, 169, 170, 0, 171, 172, 173, 174, 175, 3205 0, 176, 0, 0, 0, 177, 0, 0, 0, 0, 3206 0, 0, 0, 0, 0, 0, 178, 179, 0, 0, 3207 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, 3208 0, 0, 181, 182, 0, 0, 183, 184, 185, 186, 3209 0, 0, 0, 89, 188, 0, 709, 150, 0, 151, 3210 187, 0, 0, 177, 0, 0, 0, 0, 0, 0, 3211 0, 0, 0, 0, 178, 179, 0, 0, 0, 0, 3212 180, 0, 0, 0, 0, 149, 0, 0, 0, 0, 3213 181, 182, 0, 0, 183, 184, 185, 186, 0, 0, 3214 0, 89, 188, 0, 951, 150, 0, 151, 187, 152, 3215 153, 0, 0, 0, 154, 155, 156, 157, 0, 0, 3216 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 3217 162, 163, 164, 0, 165, 166, 167, 0, 149, 168, 3218 169, 170, 0, 171, 172, 173, 174, 175, 0, 176, 3219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3220 0, 0, 152, 153, 0, 0, 0, 154, 155, 156, 3221 157, 0, 0, 0, 0, 0, 0, 0, 0, 158, 3222 159, 160, 161, 162, 163, 164, 0, 165, 166, 167, 3223 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 3224 175, 177, 176, 0, 0, 0, 0, 0, 0, 0, 3225 0, 0, 178, 179, 0, 0, 0, 0, 180, 0, 3226 0, 0, 0, 0, 0, 0, 0, 0, 181, 182, 3227 0, 0, 183, 184, 185, 186, 0, 188, 0, 89, 3228 150, 0, 151, 0, 0, 0, 187, 0, 0, 0, 3229 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 3230 0, 0, 0, 0, 0, 178, 179, 0, 0, 0, 3231 0, 180, 0, 0, 0, 0, 0, 149, 0, 0, 3232 0, 181, 182, 0, 0, 183, 184, 185, 186, 0, 3233 382, 0, 89, 150, 0, 151, 0, 0, 0, 187, 3234 0, 152, 153, 0, 0, 0, 154, 155, 156, 157, 3235 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, 3236 160, 161, 162, 163, 164, 149, 165, 166, 167, 0, 3237 0, 168, 169, 170, 0, 171, 172, 173, 174, 175, 3238 0, 176, 0, 0, 0, 0, 0, 0, 0, 152, 3239 153, 0, 0, 0, 154, 155, 156, 157, 0, 0, 3240 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 3241 162, 163, 164, 0, 165, 166, 167, 0, 0, 168, 3242 169, 170, 0, 171, 172, 173, 174, 175, 0, 176, 3243 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 3244 0, 0, 0, 0, 178, 179, 0, 0, 0, 0, 3245 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3246 181, 182, 0, 0, 183, 184, 185, 186, 0, 188, 3247 0, 89, 150, 0, 151, 0, 0, 0, 187, 0, 3248 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 3249 0, 0, 178, 179, 0, 0, 0, 0, 180, 0, 3250 149, 0, 0, 0, 0, 0, 0, 0, 181, 182, 3251 0, 0, 183, 184, 185, 186, 0, 507, 0, 89, 3252 150, 0, 151, 0, 152, 153, 187, 0, 0, 154, 3253 155, 156, 157, 0, 0, 0, 0, 0, 0, 0, 3254 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, 3255 166, 167, 0, 149, 168, 169, 170, 0, 171, 172, 3256 173, 174, 175, 0, 176, 0, 0, 0, 0, 0, 3257 0, 0, 0, 0, 0, 0, 0, 152, 153, 0, 3258 0, 0, 154, 155, 156, 157, 0, 0, 0, 0, 3259 0, 0, 0, 0, 158, 159, 160, 161, 162, 163, 3260 164, 0, 165, 166, 167, 0, 0, 168, 169, 170, 3261 0, 171, 172, 173, 174, 175, 177, 176, 0, 0, 3262 0, 0, 0, 0, 0, 0, 0, 178, 179, 0, 3263 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, 3264 0, 0, 0, 181, 182, 0, 0, 183, 184, 185, 3265 186, 0, 382, 0, 89, 150, 0, 151, 0, 0, 3266 0, 187, 0, 0, 0, 0, 0, 0, 0, 177, 3267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3268 178, 179, 0, 0, 0, 0, 180, 0, 0, 0, 3269 0, 0, 149, 0, 0, 0, 181, 182, 0, 0, 3270 183, 184, 185, 186, 0, 908, 0, 89, 150, 0, 3271 151, 0, 0, 0, 187, 0, 152, 153, 0, 0, 3272 0, 154, 155, 156, 157, 0, 0, 0, 0, 0, 3273 0, 0, 0, 158, 159, 160, 161, 162, 163, 164, 3274 149, 165, 166, 167, 0, 0, 168, 169, 170, 0, 3275 171, 172, 173, 174, 175, 0, 176, 0, 0, 0, 3276 0, 0, 0, 0, 152, 153, 0, 0, 0, 154, 3277 155, 156, 157, 0, 567, 0, 564, 333, 0, 334, 3278 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, 3279 166, 167, 0, 0, 168, 169, 170, 0, 171, 172, 3280 173, 174, 175, 0, 176, 0, 0, 0, 177, 0, 3281 341, 0, 335, 333, 0, 334, 0, 0, 0, 178, 3282 179, 0, 0, 0, 0, 180, 0, 0, 0, 0, 3283 0, 0, 0, 0, 0, 181, 182, 0, 0, 183, 3284 184, 185, 186, 0, 0, 0, 89, 0, 0, 0, 3285 0, 0, 0, 445, 0, 0, 177, 0, 0, 0, 3286 0, 0, 0, 0, 0, 0, 0, 178, 179, 0, 3287 0, 0, 0, 180, 0, 149, 247, 247, 247, 0, 3288 247, 0, 0, 181, 182, 0, 0, 183, 184, 185, 3289 186, 0, 0, 247, 89, 247, 247, 247, 0, 152, 3290 153, 187, 0, 0, 154, 155, 156, 157, 0, 0, 3291 0, 0, 0, 0, 0, 0, 158, 159, 160, 161, 3292 162, 163, 164, 0, 165, 166, 167, 0, 149, 168, 3293 169, 170, 0, 171, 172, 173, 174, 175, 0, 176, 3294 0, 0, 0, 0, 0, 0, 0, 518, 518, 518, 3295 518, 518, 152, 153, 0, 0, 0, 154, 155, 156, 3296 157, 0, 0, 0, 0, 0, 518, 518, 518, 158, 3297 159, 160, 161, 162, 163, 164, 0, 165, 166, 167, 3298 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 3299 175, 177, 176, 437, 417, 415, 0, 416, 0, 0, 3300 0, 0, 178, 179, 0, 0, 0, 565, 180, 0, 3301 0, 0, 420, 403, 421, 0, 0, 0, 181, 182, 3302 0, 0, 183, 184, 185, 186, 601, 417, 415, 892, 3303 416, 0, 336, 337, 338, 0, 187, 339, 0, 0, 3304 0, 0, 0, 0, 177, 420, 403, 421, 0, 0, 3305 0, 0, 0, 0, 0, 178, 179, 0, 0, 0, 3306 0, 180, 0, 0, 0, 0, 0, 0, 336, 337, 3307 338, 181, 182, 339, 0, 183, 184, 185, 186, 0, 3308 0, 0, 89, 0, 0, 0, 0, 0, 0, 187, 3309 0, 0, 0, 247, 247, 247, 247, 247, 0, 247, 3310 247, 247, 247, 247, 247, 0, 0, 247, 247, 608, 3311 417, 415, 0, 416, 0, 0, 0, 0, 0, 0, 3312 0, 0, 0, 0, 178, 179, 0, 0, 420, 403, 3313 421, 0, 0, 622, 417, 415, 0, 416, 0, 0, 3314 181, 182, 0, 0, 183, 184, 185, 186, 0, 0, 3315 0, 566, 420, 403, 421, 0, 0, 0, 187, 0, 3316 178, 179, 0, 0, 518, 518, 518, 518, 518, 0, 3317 518, 518, 518, 518, 518, 518, 181, 182, 518, 518, 3318 183, 184, 185, 186, 638, 417, 415, 340, 416, 0, 3319 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 3320 0, 0, 0, 420, 403, 421, 0, 0, 0, 0, 3321 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 3322 413, 414, 0, 0, 418, 419, 0, 0, 0, 0, 3323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3324 0, 0, 0, 404, 405, 406, 407, 408, 0, 409, 3325 410, 411, 412, 413, 414, 0, 0, 418, 419, 672, 3326 417, 415, 0, 416, 0, 0, 0, 0, 0, 0, 3327 0, 0, 0, 0, 0, 0, 0, 0, 420, 403, 3328 421, 677, 417, 415, 0, 416, 0, 0, 0, 0, 3329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3330 420, 403, 421, 679, 417, 415, 0, 416, 0, 0, 3331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3332 0, 0, 420, 403, 421, 0, 404, 405, 406, 407, 3333 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3334 418, 419, 0, 0, 0, 0, 0, 0, 0, 0, 3335 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 3336 413, 414, 0, 0, 418, 419, 781, 417, 415, 0, 3337 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3338 0, 0, 0, 0, 0, 420, 403, 421, 0, 0, 3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3340 0, 404, 405, 406, 407, 408, 0, 409, 410, 411, 3341 412, 413, 414, 0, 0, 418, 419, 782, 417, 415, 3342 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 3343 0, 0, 0, 0, 0, 0, 420, 403, 421, 783, 3344 417, 415, 0, 416, 0, 0, 0, 0, 0, 0, 3345 0, 0, 0, 0, 0, 0, 0, 0, 420, 403, 3346 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3347 0, 0, 0, 0, 0, 0, 404, 405, 406, 407, 3348 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3349 418, 419, 0, 0, 0, 0, 0, 0, 404, 405, 3350 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 3351 0, 0, 418, 419, 0, 0, 0, 0, 0, 0, 3352 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 3353 413, 414, 0, 0, 418, 419, 784, 417, 415, 0, 3354 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3355 0, 0, 0, 0, 0, 420, 403, 421, 785, 417, 3356 415, 0, 416, 0, 0, 0, 0, 0, 0, 0, 3357 0, 0, 0, 0, 0, 0, 0, 420, 403, 421, 3358 0, 0, 0, 404, 405, 406, 407, 408, 0, 409, 3359 410, 411, 412, 413, 414, 0, 0, 418, 419, 786, 3360 417, 415, 0, 416, 0, 0, 0, 0, 0, 0, 3361 0, 0, 0, 0, 0, 0, 0, 0, 420, 403, 3362 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3363 0, 0, 0, 0, 404, 405, 406, 407, 408, 0, 3364 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 3365 0, 0, 0, 0, 0, 0, 404, 405, 406, 407, 3366 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3367 418, 419, 787, 417, 415, 0, 416, 0, 0, 0, 3368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3369 0, 420, 403, 421, 788, 417, 415, 0, 416, 0, 3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3371 0, 0, 0, 420, 403, 421, 789, 417, 415, 0, 3372 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3373 0, 0, 0, 0, 0, 420, 403, 421, 0, 0, 3374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3375 0, 0, 0, 404, 405, 406, 407, 408, 0, 409, 3376 410, 411, 412, 413, 414, 0, 0, 418, 419, 0, 3377 0, 0, 0, 0, 0, 404, 405, 406, 407, 408, 3378 0, 409, 410, 411, 412, 413, 414, 0, 0, 418, 3379 419, 790, 417, 415, 0, 416, 0, 0, 0, 0, 3380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3381 420, 403, 421, 0, 0, 0, 404, 405, 406, 407, 3382 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3383 418, 419, 791, 417, 415, 0, 416, 0, 0, 0, 3384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3385 0, 420, 403, 421, 792, 417, 415, 0, 416, 0, 3386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3387 0, 0, 0, 420, 403, 421, 0, 0, 0, 0, 3388 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 3389 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 3390 414, 0, 0, 418, 419, 0, 0, 0, 0, 0, 3391 0, 404, 405, 406, 407, 408, 0, 409, 410, 411, 3392 412, 413, 414, 0, 0, 418, 419, 0, 0, 0, 3393 0, 0, 0, 404, 405, 406, 407, 408, 0, 409, 3394 410, 411, 412, 413, 414, 0, 0, 418, 419, 793, 3395 417, 415, 0, 416, 0, 0, 0, 0, 0, 0, 3396 0, 0, 0, 0, 0, 0, 0, 0, 420, 403, 3397 421, 802, 417, 415, 0, 416, 0, 0, 0, 0, 3398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3399 420, 403, 421, 0, 0, 0, 0, 0, 0, 0, 3400 0, 0, 0, 0, 0, 0, 0, 0, 404, 405, 3401 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 3402 0, 0, 418, 419, 862, 417, 415, 0, 416, 0, 3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3404 0, 0, 0, 420, 403, 421, 0, 0, 0, 404, 3405 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 3406 414, 0, 0, 418, 419, 0, 0, 0, 0, 0, 3407 0, 404, 405, 406, 407, 408, 0, 409, 410, 411, 3408 412, 413, 414, 0, 0, 418, 419, 904, 417, 415, 3409 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 3410 0, 0, 0, 0, 0, 0, 420, 403, 421, 247, 3411 247, 247, 0, 247, 0, 0, 0, 0, 0, 0, 3412 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 3413 247, 417, 415, 680, 416, 0, 0, 0, 0, 0, 3414 0, 0, 0, 0, 0, 0, 0, 0, 0, 420, 3415 403, 421, 0, 0, 0, 0, 0, 0, 0, 0, 3416 0, 0, 0, 0, 0, 0, 404, 405, 406, 407, 3417 408, 0, 409, 410, 411, 412, 413, 414, 0, 0, 3418 418, 419, 0, 0, 0, 0, 0, 0, 404, 405, 3419 406, 407, 408, 0, 409, 410, 411, 412, 413, 414, 3420 0, 0, 418, 419, 417, 415, 933, 416, 0, 0, 3421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3422 0, 0, 420, 403, 421, 0, 0, 0, 0, 0, 3423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3424 0, 404, 405, 406, 407, 408, 0, 409, 410, 411, 3425 412, 413, 414, 0, 0, 418, 419, 417, 415, 969, 3426 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3427 0, 0, 0, 0, 0, 420, 403, 421, 417, 415, 3428 970, 416, 0, 0, 0, 0, 0, 0, 0, 0, 3429 0, 0, 0, 0, 0, 0, 420, 403, 421, 0, 3430 0, 0, 0, 0, 404, 405, 406, 407, 408, 0, 3431 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 3432 0, 0, 0, 0, 0, 0, 247, 247, 247, 247, 3433 247, 0, 247, 247, 247, 247, 247, 247, 0, 0, 3434 247, 247, 0, 0, 0, 0, 0, 404, 405, 406, 3435 407, 408, 0, 409, 410, 411, 412, 413, 414, 0, 3436 0, 418, 419, 417, 415, 975, 416, 0, 0, 0, 3437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3438 0, 420, 403, 421, 247, 247, 247, 247, 0, 0, 3439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440 0, 0, 247, 247, 247, 0, 0, 0, 0, 0, 3441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3442 404, 405, 406, 407, 408, 0, 409, 410, 411, 412, 3443 413, 414, 0, 0, 418, 419, 0, 0, 0, 0, 3444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3447 0, 0, 0, 404, 405, 406, 407, 408, 0, 409, 3448 410, 411, 412, 413, 414, 0, 0, 418, 419, 0, 3449 0, 0, 0, 0, 404, 405, 406, 407, 408, 0, 3450 409, 410, 411, 412, 413, 414, 0, 0, 418, 419, 3451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3457 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 3458 405, 406, 407, 408, 0, 409, 410, 411, 412, 413, 3459 414, 0, 0, 418, 419, 0, 0, 0, 0, 0, 3460 247, 247, 247, 247, 247, 0, 247, 247, 247, 247, 3461 247, 247, 0, 16, 247, 247, 17, 0, 18, 19, 3462 0, 0, 20, 0, 0, 21, 22, 23, 0, 0, 3463 0, 0, 24, 25, 0, 0, 0, 0, 0, 0, 3464 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 3465 0, 27, 28, 0, 0, 0, 29, 0, 0, 0, 3466 0, 0, 30, 0, 31, 32, 0, 33, 0, 34, 3467 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 3468 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3469 54, 0, 0, 55, 56, 57, 0, 58, 59, 60, 3470 0, 61, 62, 63, 0, 0, 64, 0, 65, 0, 3471 0, 66, 67, 68, 69, 0, 0, 70, 71, 72, 3472 0, 0, 0, 0, 0, 73, 0, 0, 0, 74, 3473 75, 76, 77, 78, 79, 80, 0, 81, 82, 83, 3474 84, 85, 0, 0, 86, 0, 0, 0, 0, 0, 3475 0, 87, 88, 89, 0, 0, 0, 0, 0, 0, 3476 90, 2160 2161 static const yytype_int16 yycheck[] = 2162 { 2163 27, 233, 29, 179, 202, 287, 33, 36, 298, 36, 2164 275, 383, 290, 141, 279, 42, 179, 416, 500, 580, 2165 721, 22, 583, 18, 35, 179, 3, 309, 344, 233, 2166 451, 3, 5, 23, 238, 47, 190, 238, 3, 23, 2167 23, 4, 4, 23, 25, 3, 578, 734, 580, 60, 2168 61, 583, 23, 328, 141, 3, 21, 22, 23, 71, 2169 72, 3, 4, 338, 31, 104, 176, 79, 3, 179, 2170 764, 346, 123, 3, 113, 124, 169, 3, 158, 3, 2171 160, 3, 236, 490, 24, 106, 137, 108, 169, 3, 2172 3, 112, 3, 3, 187, 3, 3, 3, 179, 20, 2173 98, 3, 100, 24, 131, 233, 3, 3, 3, 138, 2174 238, 138, 3, 125, 3, 127, 128, 125, 177, 3, 2175 127, 528, 169, 150, 151, 179, 20, 21, 22, 23, 2176 24, 25, 159, 80, 81, 189, 21, 22, 23, 3, 2177 187, 3, 23, 24, 25, 169, 173, 429, 3, 4, 2178 169, 577, 179, 126, 802, 803, 20, 176, 20, 585, 2179 24, 169, 24, 190, 23, 866, 342, 194, 4, 20, 2180 20, 347, 495, 24, 24, 3, 179, 500, 205, 20, 2181 35, 868, 179, 24, 347, 212, 169, 179, 180, 169, 2182 884, 13, 20, 347, 221, 179, 24, 180, 188, 226, 2183 328, 179, 169, 180, 185, 186, 27, 383, 179, 236, 2184 338, 189, 169, 262, 342, 187, 189, 169, 346, 246, 2185 383, 922, 180, 188, 187, 187, 508, 509, 179, 383, 2186 762, 763, 180, 765, 516, 179, 884, 276, 180, 179, 2187 62, 328, 532, 282, 169, 180, 257, 286, 169, 539, 2188 180, 338, 273, 569, 180, 342, 180, 33, 180, 346, 2189 576, 633, 263, 635, 636, 547, 180, 180, 266, 180, 2190 180, 298, 180, 180, 180, 302, 592, 304, 180, 359, 2191 360, 21, 22, 180, 180, 180, 180, 415, 158, 180, 2192 565, 180, 319, 320, 295, 316, 180, 324, 378, 379, 2193 380, 381, 382, 188, 185, 186, 333, 334, 335, 336, 2194 169, 391, 587, 588, 589, 590, 591, 312, 169, 169, 2195 347, 180, 144, 176, 885, 179, 179, 179, 20, 21, 2196 22, 23, 24, 25, 361, 179, 3, 179, 365, 366, 2197 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 2198 179, 772, 773, 885, 169, 169, 383, 24, 840, 3, 2199 4, 176, 594, 3, 179, 847, 3, 394, 395, 396, 2200 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 2201 407, 408, 409, 410, 411, 412, 158, 209, 542, 416, 2202 594, 595, 219, 23, 595, 141, 142, 424, 425, 4, 2203 169, 577, 138, 139, 140, 937, 176, 179, 3, 585, 2204 169, 233, 179, 240, 236, 179, 238, 239, 817, 23, 2205 24, 25, 244, 20, 21, 22, 23, 24, 25, 801, 2206 802, 803, 179, 189, 750, 179, 179, 565, 260, 841, 2207 842, 843, 844, 733, 722, 179, 179, 712, 730, 577, 2208 179, 767, 768, 769, 770, 771, 179, 585, 280, 587, 2209 588, 589, 590, 591, 746, 492, 594, 595, 179, 496, 2210 633, 179, 635, 636, 29, 487, 503, 179, 565, 683, 2211 755, 502, 683, 179, 688, 639, 507, 688, 180, 510, 2212 577, 179, 179, 179, 179, 317, 179, 179, 585, 321, 2213 587, 588, 589, 590, 591, 532, 328, 179, 179, 179, 2214 179, 538, 539, 179, 179, 542, 338, 840, 841, 842, 2215 843, 844, 179, 179, 847, 80, 81, 82, 169, 142, 2216 143, 169, 3, 20, 21, 22, 23, 24, 25, 566, 2217 4, 169, 169, 825, 3, 158, 159, 3, 575, 162, 2218 163, 164, 165, 5, 109, 683, 111, 112, 113, 169, 2219 688, 116, 117, 176, 119, 120, 3, 883, 21, 22, 2220 23, 24, 25, 602, 3, 602, 603, 169, 179, 169, 2221 870, 169, 169, 865, 180, 4, 3, 176, 764, 3, 2222 176, 3, 5, 132, 876, 179, 179, 30, 3, 753, 2223 20, 21, 22, 23, 24, 25, 633, 3, 635, 636, 2224 3, 3, 639, 640, 189, 3, 180, 180, 705, 3, 2225 3, 24, 179, 169, 169, 823, 169, 755, 179, 169, 2226 657, 658, 180, 3, 5, 662, 764, 664, 801, 802, 2227 803, 668, 180, 176, 180, 3, 3, 801, 25, 881, 2228 179, 3, 3, 3, 681, 682, 4, 180, 180, 169, 2229 84, 180, 180, 24, 24, 179, 4, 694, 755, 696, 2230 24, 169, 180, 169, 23, 180, 4, 764, 126, 5, 2231 3, 7, 8, 9, 10, 11, 713, 13, 14, 15, 2232 16, 17, 18, 180, 180, 21, 22, 23, 24, 25, 2233 20, 3, 5, 180, 169, 180, 733, 169, 884, 5, 2234 180, 180, 180, 180, 180, 3, 188, 180, 745, 24, 2235 5, 3, 749, 180, 126, 3, 753, 5, 5, 7, 2236 8, 9, 10, 11, 180, 13, 14, 15, 16, 17, 2237 18, 169, 169, 21, 22, 23, 24, 25, 4, 5, 2238 10, 7, 8, 9, 10, 11, 884, 13, 14, 15, 2239 16, 17, 18, 260, 918, 21, 22, 23, 24, 25, 2240 14, 776, 594, 595, 801, 802, 803, 692, 774, 430, 2241 696, 499, 512, 538, 269, 494, 77, 529, 305, 726, 2242 817, 818, 853, 851, 3, 418, 5, 884, 7, 8, 2243 9, 10, 11, 682, 13, 14, 15, 16, 17, 18, 2244 902, 954, 21, 22, 23, 24, 25, 753, 874, 958, 2245 144, 556, 749, 755, 851, 141, 853, 347, 855, 383, 2246 558, 594, -1, 595, -1, -1, -1, -1, -1, -1, 2247 -1, -1, -1, 870, -1, -1, -1, -1, -1, -1, 2248 -1, -1, 674, -1, -1, -1, -1, -1, -1, 185, 2249 186, 683, -1, 189, -1, -1, 688, -1, 690, -1, 2250 -1, -1, 899, -1, 901, 902, -1, -1, -1, -1, 2251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2252 -1, 918, -1, -1, -1, -1, -1, 719, -1, -1, 2253 -1, -1, -1, -1, -1, 932, -1, 185, 186, -1, 2254 -1, -1, -1, -1, 941, -1, -1, -1, -1, -1, 2255 947, 0, 1, 950, 180, -1, -1, -1, -1, 185, 2256 186, -1, -1, 755, -1, -1, 963, -1, -1, -1, 2257 967, -1, -1, 970, 971, -1, -1, -1, 27, 976, 2258 29, -1, -1, 32, 33, 34, 35, 36, 37, 38, 2259 -1, -1, 41, 42, 43, -1, -1, -1, -1, 48, 2260 49, -1, -1, -1, 53, 54, 185, 186, -1, -1, 2261 -1, -1, -1, -1, 63, -1, -1, -1, 67, 68, 2262 -1, -1, -1, 72, -1, -1, -1, -1, -1, 78, 2263 -1, 80, 81, -1, 83, -1, 85, 86, 87, 88, 2264 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 2265 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 2266 109, 110, 111, -1, 113, 114, 115, -1, 117, 118, 2267 119, -1, -1, 122, -1, 124, -1, -1, 127, 128, 2268 129, 130, -1, -1, 133, 134, 135, -1, -1, 881, 2269 -1, -1, 141, -1, -1, 144, 145, 146, 147, 148, 2270 149, 150, 151, -1, 153, 154, 155, 156, 157, -1, 2271 -1, 160, -1, -1, -1, 907, -1, -1, 167, 168, 2272 169, -1, -1, -1, -1, -1, -1, 176, 177, 3, 2273 -1, 5, -1, 7, 8, 9, 10, 11, 187, 13, 2274 14, 15, 16, 17, 18, -1, -1, 21, 22, 23, 2275 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, 2276 -1, -1, -1, -1, -1, 39, 40, -1, -1, -1, 2277 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 2278 -1, -1, 56, 57, 58, 59, 60, 61, 62, -1, 2279 64, 65, 66, -1, -1, 69, 70, 71, -1, 73, 2280 74, 75, 76, 77, 3, 79, 5, -1, 7, 8, 2281 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 2282 -1, -1, 21, 22, 23, 24, 25, 3, -1, 5, 2283 -1, 7, 8, 9, 10, 11, -1, 13, 14, 15, 2284 16, 17, 18, -1, -1, 21, 22, 23, 24, 25, 2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2286 -1, -1, -1, -1, -1, -1, -1, -1, 142, 143, 2287 -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, 2288 -1, -1, -1, -1, 158, 159, -1, -1, 162, 163, 2289 164, 165, -1, -1, -1, 169, -1, -1, -1, -1, 2290 -1, -1, 176, -1, -1, 179, -1, -1, -1, -1, 2291 -1, 185, 186, 3, -1, 5, -1, 7, 8, 9, 2292 10, 11, -1, 13, 14, 15, 16, 17, 18, -1, 2293 -1, 21, 22, 23, 24, 25, 3, -1, 5, -1, 2294 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 2295 17, 18, -1, -1, 21, 22, 23, 24, 25, 4, 2296 5, -1, 7, 8, 9, 10, 11, -1, 13, 14, 2297 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, 2298 25, -1, -1, -1, -1, -1, 185, 186, -1, -1, 2299 -1, -1, -1, -1, 4, 5, -1, 7, 8, 9, 2300 10, 11, -1, 13, 14, 15, 16, 17, 18, 185, 2301 186, 21, 22, 23, 24, 25, 4, 5, -1, 7, 2302 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 2303 18, -1, -1, 21, 22, 23, 24, 25, 4, 5, 2304 -1, 7, 8, 9, 10, 11, -1, 13, 14, 15, 2305 16, 17, 18, -1, -1, 21, 22, 23, 24, 25, 2306 5, -1, 7, 8, 9, 10, 11, -1, 13, 14, 2307 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, 2308 25, 5, -1, 7, 8, 9, 10, 11, -1, 13, 2309 14, 15, 16, 17, 18, 185, 186, 21, 22, 23, 2310 24, 25, -1, -1, 5, -1, 7, 8, 9, 10, 2311 11, -1, 13, 14, 15, 16, 17, 18, 185, 186, 2312 21, 22, 23, 24, 25, -1, 5, -1, 7, 8, 2313 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 2314 185, 186, 21, 22, 23, 24, 25, 5, -1, 7, 2315 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 2316 18, -1, -1, 21, 22, 23, 24, 25, -1, -1, 2317 -1, -1, -1, -1, -1, 185, 186, -1, -1, -1, 2318 -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, 2319 -1, 13, 14, 15, 16, 17, 18, 185, 186, 21, 2320 22, 23, 24, 25, -1, 5, -1, 7, 8, 9, 2321 10, 11, -1, 13, 14, 15, 16, 17, 18, 185, 2322 186, 21, 22, 23, 24, 25, -1, -1, -1, -1, 2323 -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 2324 185, 186, -1, -1, -1, -1, -1, -1, -1, -1, 2325 -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, 2326 -1, 185, 186, -1, -1, -1, -1, -1, -1, -1, 2327 -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 2328 -1, -1, -1, -1, 185, 186, -1, -1, -1, -1, 2329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2330 -1, 180, -1, -1, -1, -1, 185, 186, -1, -1, 2331 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2332 -1, -1, 180, -1, -1, -1, -1, 185, 186, 5, 2333 -1, 7, 8, 9, 10, 11, -1, 13, 14, 15, 2334 16, 17, 18, -1, -1, 21, 22, 23, 24, 25, 2335 -1, -1, -1, -1, -1, -1, -1, -1, 180, -1, 2336 -1, -1, -1, 185, 186, -1, -1, -1, -1, -1, 2337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2338 180, -1, -1, -1, -1, 185, 186, 5, -1, 7, 2339 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 2340 18, -1, -1, 21, 22, 23, 24, 25, 5, -1, 2341 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 2342 17, 18, -1, -1, 21, 22, 23, 24, 25, 5, 2343 -1, 7, 8, 9, 10, 11, -1, 13, 14, 15, 2344 16, 17, 18, -1, -1, 21, 22, 23, 24, 25, 2345 5, -1, 7, 8, 9, 10, 11, -1, 13, 14, 2346 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, 2347 25, 5, -1, 7, 8, 9, 10, 11, -1, 13, 2348 14, 15, 16, 17, 18, -1, -1, 21, 22, 23, 2349 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, 2350 -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 2351 186, 5, -1, 7, 8, 9, 10, 11, -1, 13, 2352 14, 15, 16, 17, 18, -1, -1, 21, 22, 23, 2353 24, 25, 5, -1, 7, 8, 9, 10, 11, -1, 2354 13, 14, 15, 16, 17, 18, -1, -1, 21, 22, 2355 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 2356 -1, -1, 180, -1, -1, -1, -1, 185, 186, -1, 2357 -1, -1, 169, -1, 5, -1, 7, 8, 9, 10, 2358 11, -1, 13, 14, 15, 16, 17, 18, 185, 186, 2359 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, 2360 -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, 2361 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2362 -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 2363 185, 186, -1, -1, -1, -1, -1, -1, -1, -1, 2364 -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, 2365 -1, 185, 186, 5, -1, 7, 8, 9, 10, 11, 2366 -1, 13, 14, 15, 16, 17, 18, -1, -1, 21, 2367 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 2368 -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, 2369 -1, 185, 186, -1, -1, -1, -1, -1, -1, -1, 2370 -1, -1, -1, -1, -1, -1, -1, 180, -1, -1, 2371 -1, -1, 185, 186, 5, -1, 7, 8, 9, 10, 2372 11, -1, 13, 14, 15, 16, 17, 18, -1, -1, 2373 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, 2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 2375 -1, -1, -1, -1, 185, 186, 5, -1, 7, 8, 2376 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 2377 -1, -1, 21, 22, 23, 24, 25, 5, -1, 7, 2378 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 2379 18, -1, -1, 21, 22, 23, 24, 25, 5, -1, 2380 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 2381 17, 18, -1, -1, 21, 22, 23, 24, 25, -1, 2382 -1, -1, -1, -1, -1, -1, -1, -1, 180, -1, 2383 -1, -1, -1, 185, 186, 5, -1, 7, 8, 9, 2384 10, 11, -1, 13, 14, 15, 16, 17, 18, -1, 2385 -1, 21, 22, 23, 24, 25, 5, -1, 7, 8, 2386 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 2387 -1, -1, 21, 22, 23, 24, 25, -1, -1, -1, 2388 -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 2389 -1, -1, -1, -1, 185, 186, 5, -1, 7, 8, 2390 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 2391 -1, -1, 21, 22, 23, 24, 25, -1, -1, -1, 2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2393 -1, 180, -1, -1, -1, -1, 185, 186, -1, -1, 2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2395 -1, -1, 180, -1, -1, -1, -1, 185, 186, -1, 2396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2397 -1, -1, -1, 180, -1, -1, -1, -1, 185, 186, 2398 5, -1, 7, 8, 9, 10, 11, -1, 13, 14, 2399 15, 16, 17, 18, -1, -1, 21, 22, 23, 24, 2400 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2401 180, -1, -1, -1, -1, 185, 186, -1, -1, -1, 2402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2403 -1, 180, -1, -1, -1, -1, 185, 186, 5, -1, 2404 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 2405 17, 18, -1, -1, 21, 22, 23, 24, 25, -1, 2406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2407 -1, 180, -1, -1, -1, -1, 185, 186, 5, -1, 2408 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 2409 17, 18, -1, -1, 21, 22, 23, 24, 25, 9, 2410 10, 11, -1, 13, 14, 15, 16, 17, 18, -1, 2411 -1, 21, 22, 23, 24, 25, -1, -1, -1, -1, 2412 -1, -1, 11, 4, 13, 14, 15, 16, 17, 18, 2413 -1, 12, 21, 22, 23, 24, 25, -1, -1, -1, 2414 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, 2415 -1, -1, -1, -1, -1, 180, -1, -1, 39, 40, 2416 185, 186, -1, 44, 45, 46, 47, -1, -1, -1, 2417 -1, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2418 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2419 71, -1, 73, 74, 75, 76, 77, -1, 79, 13, 2420 14, 15, 16, 17, 18, -1, -1, 21, 22, 23, 2421 24, 25, -1, 180, -1, -1, -1, -1, 185, 186, 2422 13, 14, 15, 16, 17, 18, -1, -1, 21, 22, 2423 23, 24, 25, -1, -1, -1, -1, -1, -1, 21, 2424 22, 23, -1, 25, -1, -1, -1, -1, -1, -1, 2425 131, -1, -1, -1, -1, -1, -1, -1, 185, 186, 2426 -1, 142, 143, -1, -1, -1, -1, 148, 50, 51, 2427 52, -1, -1, 55, -1, 185, 186, 158, 159, -1, 2428 12, 162, 163, 164, 165, -1, -1, -1, 169, 21, 2429 22, -1, -1, -1, -1, 176, 185, 186, 179, -1, 2430 -1, -1, -1, -1, -1, -1, -1, 39, 40, -1, 2431 -1, -1, 44, 45, 46, 47, -1, -1, -1, -1, 2432 -1, -1, -1, -1, 56, 57, 58, 59, 60, 61, 2433 62, -1, 64, 65, 66, -1, -1, 69, 70, 71, 2434 -1, 73, 74, 75, 76, 77, -1, 79, -1, -1, 2435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2436 142, 143, -1, -1, -1, -1, -1, -1, -1, -1, 2437 -1, 185, 186, 21, 22, 23, 158, 159, -1, -1, 2438 162, 163, 164, 165, -1, -1, -1, 169, -1, -1, 2439 -1, -1, 185, 186, 176, -1, -1, 179, -1, 131, 2440 -1, -1, 50, 51, 52, -1, -1, 55, -1, -1, 2441 142, 143, -1, -1, -1, -1, 148, 4, -1, -1, 2442 -1, -1, -1, -1, -1, 12, 158, 159, -1, -1, 2443 162, 163, 164, 165, 21, 22, -1, 169, -1, -1, 2444 -1, -1, -1, -1, 176, -1, -1, 179, -1, -1, 2445 -1, -1, 39, 40, -1, 187, -1, 44, 45, 46, 2446 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, 2447 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2448 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2449 77, -1, 79, -1, 142, 143, -1, -1, -1, -1, 2450 -1, -1, -1, 21, 22, -1, -1, -1, -1, -1, 2451 158, 159, -1, -1, 162, 163, 164, 165, -1, -1, 2452 -1, 169, -1, -1, -1, -1, -1, -1, 176, -1, 2453 -1, 179, 50, 51, 52, -1, -1, 55, -1, -1, 2454 -1, -1, -1, -1, 131, 4, -1, -1, -1, -1, 2455 -1, -1, -1, 12, -1, 142, 143, -1, -1, -1, 2456 -1, 148, 21, 22, -1, -1, -1, -1, -1, -1, 2457 -1, 158, 159, -1, -1, 162, 163, 164, 165, -1, 2458 39, 40, 169, -1, -1, 44, 45, 46, 47, 176, 2459 -1, -1, 179, -1, -1, -1, -1, 56, 57, 58, 2460 59, 60, 61, 62, -1, 64, 65, 66, -1, -1, 2461 69, 70, 71, -1, 73, 74, 75, 76, 77, -1, 2462 79, -1, -1, -1, 142, 143, -1, -1, -1, -1, 2463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2464 158, 159, -1, -1, 162, 163, 164, 165, -1, -1, 2465 -1, 169, -1, -1, -1, -1, -1, -1, 176, -1, 2466 -1, 179, -1, -1, -1, -1, -1, -1, -1, -1, 2467 -1, -1, 131, -1, 5, -1, -1, -1, -1, -1, 2468 -1, 12, -1, 142, 143, -1, -1, -1, -1, 148, 2469 21, 22, 23, -1, -1, -1, -1, -1, -1, 158, 2470 159, -1, -1, 162, 163, 164, 165, -1, 39, 40, 2471 169, -1, -1, 44, 45, 46, 47, 176, -1, -1, 2472 179, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2473 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2474 71, -1, 73, 74, 75, 76, 77, -1, 79, 40, 2475 -1, -1, -1, 44, 45, 46, 47, -1, -1, -1, 2476 -1, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2477 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2478 71, -1, -1, 74, 75, 76, 77, -1, 79, -1, 2479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2480 131, -1, 5, -1, -1, -1, -1, -1, -1, 12, 2481 -1, 142, 143, -1, -1, -1, -1, 148, 21, 22, 2482 -1, 24, -1, -1, -1, -1, -1, 158, 159, -1, 2483 -1, 162, 163, 164, 165, -1, 39, 40, 169, -1, 2484 -1, 44, 45, 46, 47, 176, -1, -1, 179, -1, 2485 -1, -1, -1, 56, 57, 58, 59, 60, 61, 62, 2486 -1, 64, 65, 66, -1, -1, 69, 70, 71, -1, 2487 73, 74, 75, 76, 77, -1, 79, -1, 169, -1, 2488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2492 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, 2493 5, -1, -1, -1, -1, -1, -1, 12, -1, 142, 2494 143, -1, -1, -1, -1, 148, 21, 22, 23, -1, 2495 -1, -1, -1, -1, -1, 158, 159, -1, -1, 162, 2496 163, 164, 165, -1, 39, 40, 169, -1, -1, 44, 2497 45, 46, 47, 176, -1, -1, 179, -1, -1, -1, 2498 -1, 56, 57, 58, 59, 60, 61, 62, -1, 64, 2499 65, 66, -1, -1, 69, 70, 71, -1, 73, 74, 2500 75, 76, 77, -1, 79, -1, -1, -1, -1, -1, 2501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2505 -1, -1, -1, -1, -1, -1, 131, -1, 5, -1, 2506 -1, -1, -1, -1, -1, 12, -1, 142, 143, -1, 2507 -1, -1, -1, 148, 21, 22, -1, -1, -1, -1, 2508 -1, -1, -1, 158, 159, -1, -1, 162, 163, 164, 2509 165, -1, 39, 40, 169, -1, -1, 44, 45, 46, 2510 47, 176, -1, -1, 179, -1, -1, -1, -1, 56, 2511 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2512 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2513 77, -1, 79, -1, -1, -1, -1, -1, -1, -1, 2514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2518 -1, -1, -1, -1, 131, -1, 5, -1, -1, -1, 2519 -1, -1, -1, 12, -1, 142, 143, -1, -1, -1, 2520 -1, 148, 21, 22, -1, -1, -1, -1, -1, -1, 2521 -1, 158, 159, -1, -1, 162, 163, 164, 165, -1, 2522 39, 40, 169, -1, -1, 44, 45, 46, 47, 176, 2523 -1, -1, 179, -1, -1, -1, -1, 56, 57, 58, 2524 59, 60, 61, 62, -1, 64, 65, 66, -1, -1, 2525 69, 70, 71, -1, 73, 74, 75, 76, 77, -1, 2526 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2528 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2531 -1, -1, 131, -1, 5, -1, -1, -1, -1, -1, 2532 -1, 12, -1, 142, 143, -1, -1, -1, -1, 148, 2533 21, 22, -1, -1, -1, -1, -1, -1, -1, 158, 2534 159, -1, -1, 162, 163, 164, 165, -1, 39, 40, 2535 169, -1, -1, 44, 45, 46, 47, 176, -1, -1, 2536 179, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2537 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2538 71, -1, 73, 74, 75, 76, 77, -1, 79, -1, 2539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2544 131, -1, -1, -1, -1, -1, -1, -1, -1, 12, 2545 -1, 142, 143, -1, -1, -1, -1, 148, 21, 22, 2546 23, -1, 25, -1, -1, -1, -1, 158, 159, -1, 2547 -1, 162, 163, 164, 165, -1, 39, 40, 169, -1, 2548 -1, 44, 45, 46, 47, 176, -1, -1, 179, -1, 2549 -1, -1, -1, 56, 57, 58, 59, 60, 61, 62, 2550 -1, 64, 65, 66, -1, -1, 69, 70, 71, -1, 2551 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, 2552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2554 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2556 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, 2557 -1, -1, -1, -1, -1, -1, -1, 12, -1, 142, 2558 143, -1, -1, -1, -1, 148, 21, 22, 23, -1, 2559 -1, -1, -1, -1, -1, 158, 159, -1, -1, 162, 2560 163, 164, 165, -1, 39, 40, 169, -1, -1, 44, 2561 45, 46, 47, 176, -1, -1, 179, -1, -1, -1, 2562 -1, 56, 57, 58, 59, 60, 61, 62, -1, 64, 2563 65, 66, -1, -1, 69, 70, 71, -1, 73, 74, 2564 75, 76, 77, -1, 79, -1, -1, -1, -1, -1, 2565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2566 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2569 -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 2570 -1, -1, -1, -1, -1, 12, -1, 142, 143, -1, 2571 -1, -1, -1, 148, 21, 22, 23, -1, -1, -1, 2572 -1, -1, -1, 158, 159, -1, -1, 162, 163, 164, 2573 165, -1, 39, 40, 169, -1, -1, 44, 45, 46, 2574 47, 176, -1, -1, 179, -1, -1, -1, -1, 56, 2575 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2576 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2577 77, -1, 79, -1, -1, -1, -1, -1, -1, -1, 2578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2582 -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, 2583 -1, -1, -1, 12, -1, 142, 143, -1, -1, -1, 2584 -1, 148, 21, 22, 23, -1, -1, -1, -1, -1, 2585 -1, 158, 159, -1, -1, 162, 163, 164, 165, -1, 2586 39, 40, 169, -1, -1, 44, 45, 46, 47, 176, 2587 -1, -1, 179, -1, -1, -1, -1, 56, 57, 58, 2588 59, 60, 61, 62, -1, 64, 65, 66, -1, -1, 2589 69, 70, 71, -1, 73, 74, 75, 76, 77, -1, 2590 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2595 -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, 2596 -1, 12, -1, 142, 143, -1, -1, -1, -1, 148, 2597 21, 22, 23, -1, -1, -1, -1, -1, -1, 158, 2598 159, -1, -1, 162, 163, 164, 165, -1, 39, 40, 2599 169, -1, -1, 44, 45, 46, 47, 176, -1, -1, 2600 179, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2601 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2602 71, -1, 73, 74, 75, 76, 77, -1, 79, -1, 2603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2608 131, -1, -1, -1, -1, -1, -1, -1, -1, 12, 2609 -1, 142, 143, -1, -1, -1, -1, 148, 21, 22, 2610 23, -1, -1, -1, -1, -1, -1, 158, 159, -1, 2611 -1, 162, 163, 164, 165, -1, 39, 40, 169, -1, 2612 -1, 44, 45, 46, 47, 176, -1, -1, 179, -1, 2613 -1, -1, -1, 56, 57, 58, 59, 60, 61, 62, 2614 -1, 64, 65, 66, -1, -1, 69, 70, 71, -1, 2615 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, 2616 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2620 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, 2621 -1, -1, -1, -1, -1, -1, -1, 12, -1, 142, 2622 143, -1, -1, -1, -1, 148, 21, 22, 23, -1, 2623 -1, -1, -1, -1, -1, 158, 159, -1, -1, 162, 2624 163, 164, 165, -1, 39, 40, 169, -1, -1, 44, 2625 45, 46, 47, 176, -1, -1, 179, -1, -1, -1, 2626 -1, 56, 57, 58, 59, 60, 61, 62, -1, 64, 2627 65, 66, -1, -1, 69, 70, 71, -1, 73, 74, 2628 75, 76, 77, -1, 79, -1, -1, -1, -1, -1, 2629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2633 -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 2634 -1, -1, -1, -1, -1, 12, -1, 142, 143, -1, 2635 -1, -1, -1, 148, 21, 22, -1, -1, -1, -1, 2636 -1, -1, -1, 158, 159, -1, -1, 162, 163, 164, 2637 165, -1, 39, 40, 169, -1, -1, 44, 45, 46, 2638 47, 176, -1, -1, 179, -1, -1, -1, -1, 56, 2639 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2640 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2641 77, -1, 79, -1, -1, -1, -1, -1, -1, -1, 2642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2646 -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, 2647 -1, -1, -1, 12, -1, 142, 143, -1, -1, -1, 2648 -1, 148, 21, 22, -1, -1, -1, -1, -1, -1, 2649 -1, 158, 159, -1, -1, 162, 163, 164, 165, -1, 2650 39, 40, 169, -1, -1, 44, 45, 46, 47, 176, 2651 -1, -1, 179, -1, -1, -1, -1, 56, 57, 58, 2652 59, 60, 61, 62, -1, 64, 65, 66, -1, -1, 2653 69, 70, 71, -1, 73, 74, 75, 76, 77, -1, 2654 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2659 -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, 2660 -1, 12, -1, 142, 143, -1, -1, -1, -1, 148, 2661 21, 22, -1, -1, -1, -1, -1, -1, -1, 158, 2662 159, -1, -1, 162, 163, 164, 165, -1, 39, 40, 2663 169, -1, -1, 44, 45, 46, 47, 176, -1, -1, 2664 179, -1, -1, -1, -1, 56, 57, 58, 59, 60, 2665 61, 62, -1, 64, 65, 66, -1, -1, 69, 70, 2666 71, -1, 73, 74, 75, 76, 77, -1, 79, -1, 2667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2672 131, -1, -1, -1, -1, -1, -1, -1, -1, 12, 2673 -1, 142, 143, -1, -1, -1, -1, 148, 21, 22, 2674 -1, -1, -1, -1, -1, -1, -1, 158, 159, -1, 2675 -1, 162, 163, 164, 165, -1, 39, 40, 169, -1, 2676 -1, 44, 45, 46, 47, 176, -1, -1, 179, -1, 2677 -1, -1, -1, 56, 57, 58, 59, 60, 61, 62, 2678 -1, 64, 65, 66, -1, -1, 69, 70, 71, -1, 2679 73, 74, 75, 76, 77, -1, 79, -1, -1, -1, 2680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2684 -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, 2685 -1, -1, -1, -1, -1, -1, -1, 12, -1, 142, 2686 143, -1, -1, -1, -1, 148, 21, 22, -1, -1, 2687 -1, -1, -1, -1, -1, 158, 159, -1, -1, 162, 2688 163, 164, 165, -1, 39, 40, 169, -1, -1, 44, 2689 45, 46, 47, 176, -1, -1, 179, -1, -1, -1, 2690 -1, 56, 57, 58, 59, 60, 61, 62, -1, 64, 2691 65, 66, -1, -1, 69, 70, 71, -1, 73, 74, 2692 75, 76, 77, -1, 79, -1, -1, -1, -1, -1, 2693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2697 -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, 2698 -1, -1, -1, -1, -1, 12, -1, 142, 143, -1, 2699 -1, -1, -1, 148, 21, 22, -1, -1, -1, -1, 2700 -1, -1, -1, 158, 159, -1, -1, 162, 163, 164, 2701 165, -1, 39, 40, 169, -1, -1, 44, 45, 46, 2702 47, 176, -1, -1, 179, -1, -1, -1, -1, 56, 2703 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2704 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2705 77, -1, 79, -1, -1, -1, -1, -1, -1, -1, 2706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2709 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2710 -1, -1, -1, -1, 131, 29, -1, -1, 32, 33, 2711 34, 35, -1, -1, 38, 142, 143, 41, 42, 43, 2712 -1, 148, -1, -1, 48, 49, -1, -1, -1, -1, 2713 -1, 158, 159, -1, -1, 162, 163, 164, 165, 63, 2714 -1, -1, 169, 67, 68, -1, -1, -1, 72, 176, 2715 -1, -1, 179, -1, 78, -1, 80, 81, -1, 83, 2716 -1, 85, 86, 87, 88, 89, -1, 91, 92, 93, 2717 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 2718 104, 105, 106, -1, -1, 109, 110, 111, -1, 113, 2719 114, 115, -1, 117, 118, 119, -1, -1, 122, -1, 2720 124, -1, -1, 127, 128, 129, 130, -1, -1, 133, 2721 134, 135, -1, -1, -1, -1, -1, 141, -1, -1, 2722 -1, 145, 146, 147, 148, 149, 150, 151, -1, 153, 2723 154, 155, 156, 157, -1, -1, 160, -1, -1, -1, 2724 -1, 39, 40, 167, 168, 169, 44, 45, 46, 47, 2725 -1, -1, 176, -1, -1, -1, -1, -1, 56, 57, 2726 58, 59, 60, 61, 62, -1, 64, 65, 66, -1, 2727 -1, 69, 70, 71, -1, 73, 74, 75, 76, 77, 2728 -1, 79, 39, 40, -1, -1, -1, 44, 45, 46, 2729 47, -1, -1, -1, -1, -1, -1, -1, -1, 56, 2730 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 2731 -1, -1, 69, 70, 71, -1, 73, 74, 75, 76, 2732 77, -1, 79, -1, -1, -1, -1, -1, -1, -1, 2733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2734 -1, -1, -1, -1, 142, 143, -1, -1, -1, -1, 2735 148, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2736 158, 159, -1, -1, 162, 163, 164, 165, -1, -1, 2737 38, 169, -1, -1, -1, -1, -1, -1, 176, -1, 2738 -1, 179, -1, -1, -1, 142, 143, -1, -1, -1, 2739 -1, 148, -1, -1, -1, 63, -1, -1, -1, -1, 2740 -1, 158, 159, -1, -1, 162, 163, 164, 165, -1, 2741 78, -1, 169, -1, -1, 83, 84, -1, -1, 176, 2742 88, 89, 179, -1, -1, -1, -1, -1, -1, -1, 2743 98, 99, 100, 101, 102, 103, 104, 105, -1, -1, 2744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2745 118, -1, -1, -1, -1, -1, 124, -1, -1, -1, 2746 -1, -1, -1, -1, -1, 133, -1, 135, -1, -1, 2747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2750 -1, 169, -1, -1, -1, -1, -1, -1, 176 3477 2751 }; 3478 short fortrancheck[] = { 24, 3479 231, 26, 140, 309, 194, 30, 33, 177, 33, 236, 3480 231, 347, 290, 331, 39, 236, 19, 11, 296, 140, 3481 44, 303, 394, 341, 177, 40, 40, 40, 44, 40, 3482 40, 349, 44, 529, 10, 188, 10, 10, 10, 295, 3483 42, 177, 58, 40, 68, 69, 302, 44, 41, 42, 3484 41, 42, 76, 279, 44, 382, 449, 40, 581, 44, 3485 37, 58, 585, 731, 41, 59, 106, 44, 58, 93, 3486 94, 95, 42, 43, 44, 45, 765, 37, 44, 42, 3487 111, 234, 58, 44, 61, 735, 143, 44, 37, 120, 3488 121, 40, 58, 231, 373, 10, 32, 58, 236, 37, 3489 10, 61, 504, 41, 417, 130, 44, 60, 135, 62, 3490 135, 424, 61, 800, 801, 517, 10, 425, 217, 271, 3491 272, 57, 58, 148, 149, 42, 43, 417, 45, 44, 3492 10, 42, 157, 371, 128, 43, 44, 45, 417, 238, 3493 41, 42, 43, 60, 45, 62, 171, 385, 58, 60, 3494 40, 62, 177, 271, 272, 41, 104, 40, 44, 107, 3495 271, 272, 44, 188, 58, 41, 417, 192, 44, 578, 3496 44, 427, 58, 40, 344, 42, 58, 586, 203, 847, 3497 350, 579, 58, 581, 58, 210, 40, 585, 43, 44, 3498 45, 417, 40, 331, 219, 524, 885, 350, 885, 224, 3499 529, 37, 40, 341, 41, 41, 344, 44, 44, 234, 3500 331, 349, 382, 207, 350, 386, 387, 388, 868, 244, 3501 341, 58, 0, 344, 281, 42, 328, 329, 349, 382, 3502 47, 487, 10, 569, 490, 541, 276, 231, 417, 545, 3503 234, 577, 236, 237, 912, 270, 382, 40, 242, 567, 3504 42, 43, 41, 45, 40, 44, 512, 593, 58, 272, 3505 272, 264, 293, 401, 40, 417, 42, 283, 40, 58, 3506 588, 589, 590, 591, 592, 43, 41, 45, 534, 44, 3507 283, 275, 307, 40, 309, 375, 283, 272, 319, 271, 3508 272, 42, 43, 283, 45, 40, 41, 322, 323, 417, 3509 271, 272, 272, 328, 298, 632, 417, 634, 635, 272, 3510 273, 336, 337, 338, 339, 272, 417, 283, 549, 255, 3511 273, 41, 283, 550, 44, 350, 320, 44, 549, 550, 3512 324, 42, 280, 271, 272, 360, 156, 58, 158, 364, 3513 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 3514 375, 744, 745, 275, 507, 272, 273, 382, 140, 141, 3515 856, 272, 273, 886, 272, 763, 764, 863, 766, 394, 3516 271, 272, 273, 41, 42, 43, 256, 45, 403, 404, 3517 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 3518 415, 416, 417, 418, 419, 420, 421, 374, 423, 424, 3519 406, 417, 417, 119, 284, 285, 122, 417, 578, 424, 3520 424, 549, 550, 424, 374, 417, 586, 272, 281, 755, 3521 417, 301, 302, 406, 417, 374, 417, 417, 734, 567, 3522 44, 44, 768, 769, 770, 771, 772, 719, 756, 811, 3523 578, 417, 720, 417, 417, 417, 567, 44, 586, 705, 3524 588, 589, 590, 591, 592, 682, 417, 578, 417, 417, 3525 687, 682, 486, 44, 40, 586, 687, 588, 589, 590, 3526 591, 592, 799, 800, 801, 417, 40, 424, 256, 271, 3527 272, 273, 507, 40, 637, 40, 511, 40, 886, 40, 3528 521, 747, 523, 518, 40, 40, 632, 275, 634, 635, 3529 525, 41, 533, 281, 44, 40, 284, 285, 42, 43, 3530 44, 45, 392, 47, 539, 41, 541, 40, 44, 40, 3531 545, 272, 273, 301, 302, 40, 40, 856, 857, 858, 3532 859, 860, 42, 43, 863, 45, 40, 47, 358, 359, 3533 938, 566, 40, 40, 682, 425, 37, 883, 40, 687, 3534 41, 576, 40, 44, 40, 549, 550, 377, 378, 379, 3535 380, 381, 37, 40, 870, 417, 41, 40, 824, 44, 3536 390, 40, 40, 289, 601, 291, 601, 602, 40, 42, 3537 43, 40, 45, 299, 41, 42, 43, 40, 45, 37, 3538 846, 42, 43, 44, 45, 765, 47, 60, 61, 62, 3539 753, 722, 40, 271, 272, 273, 417, 632, 41, 634, 3540 635, 44, 637, 44, 392, 58, 641, 41, 756, 644, 3541 44, 877, 857, 858, 859, 860, 37, 765, 818, 40, 3542 41, 42, 43, 44, 45, 756, 661, 662, 417, 41, 3543 417, 666, 44, 668, 765, 41, 799, 425, 44, 60, 3544 881, 62, 44, 44, 41, 680, 681, 44, 41, 41, 3545 58, 44, 44, 799, 800, 801, 41, 37, 693, 44, 3546 695, 417, 42, 43, 41, 45, 41, 44, 41, 44, 3547 674, 44, 41, 708, 41, 44, 41, 44, 682, 44, 3548 60, 61, 62, 687, 44, 689, 41, 0, 41, 44, 3549 41, 44, 41, 44, 40, 44, 424, 10, 61, 734, 3550 390, 391, 417, 41, 41, 885, 44, 44, 44, 41, 3551 41, 746, 44, 44, 417, 750, 406, 407, 753, 417, 3552 410, 411, 412, 413, 417, 44, 730, 40, 272, 42, 3553 43, 44, 45, 41, 424, 390, 391, 885, 41, 41, 3554 41, 44, 44, 44, 44, 908, 40, 60, 61, 62, 3555 41, 406, 407, 44, 885, 410, 411, 412, 413, 41, 3556 41, 40, 44, 44, 799, 800, 801, 41, 41, 424, 3557 44, 44, 41, 424, 41, 44, 811, 44, 813, 41, 3558 41, 41, 44, 44, 44, 258, 259, 260, 261, 262, 3559 61, 264, 265, 266, 267, 268, 269, 44, 41, 272, 3560 273, 44, 278, 838, 271, 272, 273, 41, 41, 41, 3561 44, 44, 44, 41, 44, 850, 44, 852, 41, 44, 3562 380, 44, 44, 44, 44, 40, 44, 37, 41, 41, 3563 44, 40, 272, 44, 417, 870, 40, 258, 259, 260, 3564 261, 262, 417, 264, 265, 266, 267, 268, 269, 41, 3565 44, 272, 273, 417, 41, 417, 61, 41, 424, 44, 3566 273, 44, 40, 898, 44, 900, 901, 44, 44, 58, 3567 41, 41, 332, 908, 417, 41, 41, 881, 258, 259, 3568 260, 261, 262, 42, 264, 265, 266, 267, 268, 269, 3569 58, 417, 272, 273, 41, 37, 272, 0, 933, 40, 3570 42, 43, 906, 45, 272, 940, 272, 10, 41, 58, 3571 374, 946, 417, 44, 949, 41, 44, 61, 60, 61, 3572 62, 41, 417, 417, 41, 41, 41, 962, 41, 61, 3573 41, 966, 41, 41, 969, 970, 374, 44, 272, 41, 3574 975, 44, 47, 256, 417, 258, 259, 260, 261, 262, 3575 44, 264, 265, 266, 267, 268, 269, 41, 271, 272, 3576 273, 61, 275, 417, 277, 417, 417, 280, 281, 282, 3577 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 3578 293, 294, 295, 296, 297, 417, 417, 44, 301, 302, 3579 41, 304, 305, 306, 307, 308, 309, 310, 311, 312, 3580 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 3581 323, 324, 325, 326, 327, 328, 329, 41, 331, 58, 3582 333, 334, 335, 336, 337, 41, 339, 340, 341, 342, 3583 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 3584 353, 354, 41, 41, 357, 358, 359, 44, 361, 362, 3585 363, 41, 365, 366, 367, 41, 272, 370, 41, 372, 3586 41, 41, 375, 376, 377, 378, 41, 775, 381, 382, 3587 383, 850, 957, 873, 520, 271, 389, 390, 391, 392, 3588 393, 394, 395, 396, 397, 398, 399, 285, 401, 402, 3589 403, 404, 405, 406, 407, 408, 0, 410, 411, 412, 3590 413, 773, 415, 416, 417, 350, 10, 382, 681, 402, 3591 900, 424, 425, 753, 852, 9, 258, 259, 260, 261, 3592 262, 13, 264, 265, 266, 267, 268, 269, 74, 275, 3593 272, 273, 691, 37, 429, 952, 539, 41, 42, 43, 3594 44, 45, 695, 47, 528, 502, 537, 701, 557, 128, 3595 549, 750, 550, 256, 58, 559, 60, 61, 62, 756, 3596 -1, -1, 140, -1, -1, -1, -1, -1, 271, 272, 3597 -1, -1, 275, -1, 277, -1, -1, 280, 281, 282, 3598 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 3599 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 3600 -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, 3601 -1, -1, 315, 316, -1, -1, -1, 320, -1, -1, 3602 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 3603 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 3604 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 3605 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 3606 363, -1, 365, 366, 367, -1, 0, 370, -1, 372, 3607 -1, -1, 375, 376, 377, 378, 10, -1, 381, 382, 3608 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 3609 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 3610 403, 404, 405, 37, -1, 408, -1, 41, 42, 43, 3611 44, 45, 415, 416, 417, -1, -1, -1, -1, -1, 3612 -1, 424, 425, -1, 58, -1, 60, 61, 62, -1, 3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3615 -1, -1, 256, -1, 258, 259, 260, 261, 262, -1, 3616 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 3617 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 3618 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 3619 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 3620 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 3621 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 3622 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 3623 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 3624 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 3625 354, -1, 40, 357, 358, 359, -1, 361, 362, 363, 3626 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 3627 -1, 375, 376, 377, 378, 10, 380, 381, 382, 383, 3628 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 3629 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 3630 404, 405, -1, -1, 408, 40, -1, -1, 43, -1, 3631 45, 415, 416, 417, -1, -1, -1, -1, -1, -1, 3632 424, 425, 256, -1, 258, 259, 260, 261, 262, -1, 3633 264, 265, 266, 267, 268, 269, -1, 271, 272, 273, 3634 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 3635 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 3636 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 3637 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 3638 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 3639 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 3640 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 3641 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 3642 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 3643 -1, 365, 366, 367, -1, 0, 370, -1, 372, -1, 3644 -1, 375, 376, 377, 378, 10, 380, 381, 382, 383, 3645 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 3646 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 3647 404, 405, 37, -1, 408, -1, 41, 42, 43, 44, 3648 45, 415, 416, 417, -1, -1, -1, -1, -1, -1, 3649 424, 425, -1, 58, -1, 60, 61, 62, -1, 287, 3650 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, 3651 -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, 3652 308, 309, 310, -1, 312, 313, 314, -1, 263, 317, 3653 318, 319, -1, 321, 322, 323, 324, 325, -1, 327, 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, -1, 287, 288, -1, -1, -1, 292, 293, 294, 3656 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 3657 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 3658 -1, -1, 317, 318, 319, -1, 321, 322, 323, 324, 3659 325, -1, 327, -1, -1, -1, -1, -1, -1, -1, 3660 -1, -1, 390, 391, -1, 0, -1, -1, 396, -1, 3661 -1, -1, -1, -1, -1, 10, -1, -1, 406, 407, 3662 -1, -1, 410, 411, 412, 413, -1, -1, -1, 417, 3663 -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, 3664 -1, -1, 37, -1, 379, -1, 41, 42, 43, 44, 3665 45, -1, -1, -1, -1, 390, 391, -1, -1, -1, 3666 -1, 396, -1, 58, -1, 60, 61, 62, -1, -1, 3667 -1, 406, 407, -1, -1, 410, 411, 412, 413, -1, 3668 -1, -1, 417, -1, -1, -1, -1, -1, -1, 424, 3669 -1, 256, -1, 258, 259, 260, 261, 262, -1, 264, 3670 265, 266, 267, 268, 269, -1, 271, 272, 273, -1, 3671 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 3672 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 3673 -1, 296, 297, -1, -1, -1, 301, 302, -1, -1, 3674 -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 3675 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 3676 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 3677 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 3678 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 3679 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 3680 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 3681 375, 376, 377, 378, -1, 380, 381, 382, 383, -1, 3682 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 3683 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 3684 405, 40, -1, 408, 43, -1, 45, -1, -1, -1, 3685 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 3686 425, 256, 61, 258, 259, 260, 261, 262, -1, 264, 3687 265, 266, 267, 268, 269, -1, 271, 272, 273, -1, 3688 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 3689 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 3690 -1, 296, 297, -1, -1, -1, 301, 302, -1, -1, 3691 -1, -1, 42, 43, -1, 45, 311, -1, -1, -1, 3692 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 3693 60, 326, 62, 328, 329, -1, 331, -1, 333, 334, 3694 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 3695 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 3696 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 3697 365, 366, 367, -1, 0, 370, -1, 372, -1, -1, 3698 375, 376, 377, 378, 10, 380, 381, 382, 383, -1, 3699 -1, -1, -1, -1, 389, -1, 277, 392, 393, 394, 3700 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 3701 405, -1, -1, 408, 40, 41, 42, 43, 44, 45, 3702 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 3703 425, -1, 58, -1, 60, 61, 62, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, 328, 329, 330, 3705 -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, 3706 45, -1, -1, -1, 263, -1, -1, -1, -1, -1, 3707 -1, -1, -1, 272, -1, 60, 357, 62, 359, 360, 3708 361, -1, -1, 364, 365, -1, 367, 368, 287, 288, 3709 -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 3710 -1, -1, -1, -1, -1, 304, 305, 306, 307, 308, 3711 309, 310, -1, 312, 313, 314, -1, -1, 317, 318, 3712 319, -1, 321, 322, 323, 324, 325, -1, 327, -1, 3713 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 3714 -1, -1, 272, 273, 0, -1, -1, -1, -1, -1, 3715 -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3718 379, 37, -1, -1, -1, 41, 42, 43, 44, 45, 3719 -1, 390, 391, -1, -1, -1, -1, 396, -1, -1, 3720 -1, -1, 58, -1, 60, 61, 62, 406, 407, -1, 3721 -1, 410, 411, 412, 413, -1, -1, -1, 417, -1, 3722 -1, -1, -1, -1, -1, 424, -1, -1, -1, -1, 3723 256, -1, 258, 259, 260, 261, 262, -1, 264, 265, 3724 266, 267, 268, 269, -1, 271, 272, 273, -1, 275, 3725 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 3726 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 3727 296, 297, -1, -1, -1, 301, 302, 262, -1, 264, 3728 265, 266, 267, 268, 269, 311, -1, 272, 273, 315, 3729 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 3730 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 3731 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 3732 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 3733 40, 357, 358, 359, -1, 361, 362, 363, -1, 365, 3734 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 3735 376, 377, 378, -1, 380, 381, 382, 383, -1, -1, 3736 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 3737 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 3738 -1, -1, 408, 40, -1, 42, 43, -1, 45, 415, 3739 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 3740 256, 58, 258, 259, 260, 261, 262, -1, 264, 265, 3741 266, 267, 268, 269, -1, 271, 272, 273, -1, 275, 3742 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 3743 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 3744 296, 297, -1, -1, -1, 301, 302, -1, -1, -1, 3745 -1, -1, -1, -1, -1, 311, -1, -1, -1, 315, 3746 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 3747 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 3748 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 3749 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 3750 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 3751 366, 367, -1, 0, 370, -1, 372, -1, -1, 375, 3752 376, 377, 378, 10, 380, 381, 382, 383, -1, -1, 3753 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 3754 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 3755 37, -1, 408, -1, 41, 42, 43, 44, 45, 415, 3756 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 3757 -1, 58, -1, 60, 61, 62, -1, 287, 288, -1, 3758 -1, -1, 292, 293, 294, 295, -1, -1, -1, -1, 3759 -1, -1, -1, -1, 304, 305, 306, 307, 308, 309, 3760 310, -1, 312, 313, 314, -1, 263, 317, 318, 319, 3761 -1, 321, 322, 323, 324, 325, -1, 327, -1, -1, 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, 3764 -1, -1, -1, -1, -1, -1, -1, 304, 305, 306, 3765 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 3766 317, 318, 319, -1, 321, 322, 323, 324, 325, -1, 3767 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3768 390, 391, -1, 0, -1, -1, 396, -1, -1, -1, 3769 -1, -1, -1, 10, -1, -1, 406, 407, -1, -1, 3770 410, 411, 412, 413, -1, -1, -1, 417, -1, -1, 3771 -1, -1, -1, -1, 424, -1, -1, -1, -1, -1, 3772 -1, -1, 379, -1, 41, 42, 43, 44, 45, -1, 3773 -1, -1, -1, 390, 391, -1, -1, -1, -1, 396, 3774 -1, 58, -1, 60, 61, 62, -1, -1, -1, 406, 3775 407, -1, -1, 410, 411, 412, 413, -1, -1, -1, 3776 417, -1, -1, -1, -1, -1, -1, 424, -1, 256, 3777 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 3778 267, 268, 269, -1, 271, 272, 273, -1, 275, -1, 3779 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 3780 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 3781 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 3782 -1, -1, -1, -1, 311, -1, -1, -1, 315, 316, 3783 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 3784 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 3785 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 3786 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 3787 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 3788 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 3789 377, 378, -1, 380, 381, 382, 383, -1, -1, -1, 3790 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 3791 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 3792 -1, 408, 40, -1, 42, 43, -1, 45, 415, 416, 3793 -1, -1, -1, -1, -1, -1, -1, 424, 425, 256, 3794 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 3795 267, 268, 269, -1, 271, 272, 273, -1, 275, -1, 3796 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 3797 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 3798 297, -1, -1, -1, 301, 302, -1, -1, 42, 43, 3799 -1, 45, -1, -1, 311, -1, -1, -1, 315, 316, 3800 -1, -1, -1, 320, -1, -1, 60, -1, 62, 326, 3801 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 3802 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 3803 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 3804 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 3805 367, -1, 0, 370, -1, 372, -1, -1, 375, 376, 3806 377, 378, 10, 380, 381, 382, 383, -1, -1, -1, 3807 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 3808 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 3809 -1, 408, -1, 41, 42, 43, 44, 45, 415, 416, 3810 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 3811 -1, -1, 60, 61, 62, -1, -1, 288, -1, -1, 3812 -1, 292, 293, 294, 295, -1, -1, -1, -1, -1, 3813 -1, -1, -1, 304, 305, 306, 307, 308, 309, 310, 3814 -1, 312, 313, 314, -1, 263, 317, 318, 319, -1, 3815 -1, 322, 323, 324, 325, -1, 327, -1, -1, -1, 3816 -1, -1, -1, -1, -1, -1, -1, -1, -1, 287, 3817 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, 3818 -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, 3819 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 3820 318, 319, -1, 321, 322, 323, 324, 325, -1, 327, 3821 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 3822 -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 3823 -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 3824 -1, -1, -1, -1, -1, -1, 417, -1, -1, -1, 3825 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3826 -1, 379, -1, 41, 42, 43, 44, 45, -1, -1, 3827 -1, -1, 390, 391, -1, -1, -1, -1, 396, -1, 3828 58, -1, -1, 61, -1, -1, -1, -1, 406, 407, 3829 -1, -1, 410, 411, 412, 413, -1, -1, -1, 417, 3830 -1, -1, -1, -1, -1, -1, 424, -1, 256, -1, 3831 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 3832 268, 269, -1, -1, 272, 273, -1, 275, -1, 277, 3833 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 3834 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 3835 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 3836 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 3837 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 3838 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 3839 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 3840 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 3841 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 3842 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 3843 378, -1, 380, 381, 382, 383, -1, -1, -1, -1, 3844 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 3845 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 3846 408, -1, -1, -1, -1, -1, -1, 415, 416, 417, 3847 -1, -1, -1, -1, -1, -1, 424, 425, 256, -1, 3848 258, 259, 260, 261, 262, 0, 264, 265, 266, 267, 3849 268, 269, -1, 271, 272, 10, -1, 275, -1, 277, 3850 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 3851 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 3852 -1, -1, 37, 301, 302, -1, 41, 42, 43, 44, 3853 45, -1, -1, 311, -1, -1, -1, 315, 316, -1, 3854 -1, -1, 320, 58, -1, -1, 61, -1, 326, -1, 3855 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 3856 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 3857 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 3858 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 3859 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 3860 378, -1, 380, 381, 382, 383, -1, -1, -1, -1, 3861 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 3862 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 3863 408, -1, -1, -1, -1, -1, -1, 415, 416, 417, 3864 -1, -1, -1, -1, -1, -1, 424, 425, -1, -1, 3865 -1, -1, -1, -1, 288, 0, -1, -1, 292, 293, 3866 294, 295, -1, -1, -1, 10, -1, -1, -1, -1, 3867 304, 305, 306, 307, 308, 309, 310, -1, 312, 313, 3868 314, -1, -1, 317, 318, 319, -1, -1, 322, 323, 3869 324, 325, 37, 327, -1, -1, 41, 42, 43, 44, 3870 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3871 -1, -1, -1, 58, -1, -1, 61, -1, -1, -1, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3873 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3874 -1, 256, -1, 258, 259, 260, 261, 262, -1, 264, 3875 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, 3876 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 3877 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 3878 -1, 296, 297, 417, -1, -1, 301, 302, -1, -1, 3879 -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 3880 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 3881 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 3882 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 3883 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 3884 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 3885 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 3886 375, 376, 377, 378, -1, 380, 381, 382, 383, -1, 3887 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 3888 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 3889 405, -1, -1, 408, -1, -1, -1, -1, -1, -1, 3890 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 3891 425, 256, -1, 258, 259, 260, 261, 262, 0, 264, 3892 265, 266, 267, 268, 269, -1, 271, 272, 10, -1, 3893 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 3894 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 3895 -1, 296, 297, -1, -1, 37, 301, 302, -1, 41, 3896 42, 43, 44, 45, -1, -1, 311, -1, -1, -1, 3897 315, 316, -1, -1, -1, 320, 58, -1, -1, 61, 3898 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 3899 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 3900 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 3901 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 3902 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 3903 375, 376, 377, 378, -1, 380, 381, 382, 383, -1, 3904 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 3905 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 3906 405, -1, -1, 408, -1, -1, -1, -1, -1, -1, 3907 415, 416, 417, -1, 286, -1, -1, -1, -1, 424, 3908 425, -1, -1, -1, -1, -1, -1, -1, 0, -1, 3909 -1, -1, -1, -1, -1, -1, -1, -1, 10, 311, 3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3911 -1, -1, -1, -1, 326, -1, -1, -1, -1, 331, 3912 332, -1, -1, -1, 336, 337, -1, -1, -1, 41, 3913 42, 43, 44, 45, 346, 347, 348, 349, 350, 351, 3914 352, 353, -1, -1, -1, -1, -1, -1, 60, 61, 3915 62, -1, -1, -1, 366, -1, -1, -1, -1, -1, 3916 372, -1, -1, -1, -1, -1, -1, -1, -1, 381, 3917 -1, 383, -1, -1, 256, -1, 258, 259, 260, 261, 3918 262, -1, 264, 265, 266, 267, 268, 269, -1, 271, 3919 272, -1, -1, 275, -1, 277, -1, -1, 280, 281, 3920 282, 283, 284, 285, 286, 417, -1, 289, 290, 291, 3921 -1, -1, 424, -1, 296, 297, -1, -1, -1, 301, 3922 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 3923 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 3924 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 3925 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 3926 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 3927 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 3928 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 3929 372, -1, -1, 375, 376, 377, 378, -1, 380, 381, 3930 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 3931 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 3932 402, 403, 404, 405, -1, -1, 408, 40, -1, 42, 3933 43, -1, 45, 415, 416, 417, -1, -1, -1, -1, 3934 -1, -1, 424, 425, 256, -1, 258, 259, 260, 261, 3935 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 3936 272, 273, -1, 275, -1, 277, -1, -1, 280, 281, 3937 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 3938 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 3939 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 3940 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 3941 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 3942 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 3943 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 3944 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 3945 362, 363, -1, 365, 366, 367, -1, 0, 370, -1, 3946 372, -1, -1, 375, 376, 377, 378, 10, -1, 381, 3947 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 3948 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 3949 402, 403, 404, 405, -1, -1, 408, -1, -1, 42, 3950 43, -1, 45, 415, 416, 417, -1, -1, -1, -1, 3951 -1, -1, 424, 425, -1, -1, -1, 60, 61, 62, 3952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3953 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3955 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, -1, -1, 287, 288, -1, -1, -1, 292, 3958 293, 294, 295, -1, -1, -1, -1, -1, -1, -1, 3959 -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 3960 313, 314, -1, -1, 317, 318, 319, -1, 321, 322, 3961 323, 324, 325, -1, 327, -1, -1, -1, -1, -1, 3962 -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 3963 -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 3964 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3965 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3966 -1, -1, -1, -1, 37, -1, 379, -1, 41, -1, 3967 43, 44, 45, -1, -1, -1, -1, 390, 391, -1, 3968 -1, -1, -1, 396, -1, 58, -1, -1, 61, -1, 3969 -1, -1, -1, 406, 407, -1, -1, 410, 411, 412, 3970 413, -1, -1, -1, 417, -1, -1, -1, -1, -1, 3971 -1, 424, -1, 256, -1, 258, 259, 260, 261, 262, 3972 -1, 264, 265, 266, 267, 268, 269, -1, -1, 272, 3973 273, -1, 275, -1, 277, -1, -1, 280, 281, 282, 3974 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 3975 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 3976 -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, 3977 -1, -1, 315, 316, -1, -1, -1, 320, -1, -1, 3978 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 3979 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 3980 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 3981 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 3982 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 3983 -1, -1, 375, 376, 377, 378, -1, 380, 381, 382, 3984 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 3985 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 3986 403, 404, 405, -1, -1, 408, -1, -1, -1, -1, 3987 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 3988 -1, 424, 425, 256, -1, 258, 259, 260, 261, 262, 3989 0, 264, 265, 266, 267, 268, 269, -1, 271, -1, 3990 10, -1, 275, -1, 277, -1, -1, 280, 281, 282, 3991 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 3992 -1, -1, -1, 296, 297, -1, -1, 37, 301, 302, 3993 -1, 41, -1, 43, 44, 45, -1, -1, 311, -1, 3994 -1, -1, 315, 316, -1, -1, -1, 320, 58, -1, 3995 -1, 61, -1, 326, -1, 328, 329, -1, 331, -1, 3996 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 3997 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 3998 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 3999 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 4000 -1, -1, 375, 376, 377, 378, -1, 380, 381, 382, 4001 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 4002 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 4003 403, 404, 405, -1, -1, 408, -1, -1, -1, -1, 4004 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 4005 -1, 424, 425, -1, -1, -1, -1, -1, -1, -1, 4006 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4007 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4009 -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, 4010 -1, 41, 42, -1, 44, -1, -1, -1, -1, -1, 4011 -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, 4012 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 4013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4014 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4015 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 4016 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4017 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4018 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4019 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4020 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4021 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4022 -1, 331, 0, 333, 334, 335, 336, 337, -1, 339, 4023 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4024 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4025 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 4026 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 4027 380, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4028 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4029 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4030 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 4031 -1, -1, -1, -1, 424, 425, 256, -1, 258, 259, 4032 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 4033 -1, 271, -1, 273, -1, 275, -1, 277, -1, -1, 4034 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4035 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4036 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4037 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4038 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4039 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4040 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4041 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4042 -1, 361, 362, 363, -1, 365, 366, 367, -1, 0, 4043 370, -1, 372, -1, -1, 375, 376, 377, 378, 10, 4044 380, 381, 382, 383, 37, -1, -1, -1, 41, 389, 4045 -1, 44, 392, 393, 394, 395, -1, 397, 398, 399, 4046 -1, 401, 402, 403, 404, 405, -1, 60, 408, 62, 4047 -1, 42, 43, 44, 45, 415, 416, -1, -1, -1, 4048 -1, -1, -1, -1, -1, 425, -1, -1, -1, 60, 4049 61, 62, -1, -1, -1, -1, -1, 275, -1, 277, 4050 -1, -1, 280, 281, 282, 283, -1, -1, 286, -1, 4051 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 4052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4053 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 4054 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 4055 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 4056 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 4057 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 4058 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 4059 -1, 0, 370, -1, 372, -1, -1, 375, 376, 377, 4060 378, 10, -1, 381, 382, 383, -1, -1, -1, -1, 4061 -1, 389, -1, -1, -1, 393, 394, 395, 396, 397, 4062 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 4063 408, -1, -1, 42, 43, 44, 45, 415, 416, 417, 4064 -1, -1, -1, -1, -1, -1, 424, -1, -1, -1, 4065 -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, 4066 -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 4067 -1, 264, 265, 266, 267, 268, 269, -1, -1, 272, 4068 273, -1, -1, -1, -1, 256, -1, 258, 259, 260, 4069 261, 262, -1, 264, 265, 266, 267, 268, 269, -1, 4070 -1, 272, 273, -1, 275, -1, 277, -1, -1, 280, 4071 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 4072 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 4073 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, 4074 311, -1, 0, -1, 315, 316, -1, -1, -1, 320, 4075 -1, -1, 10, -1, -1, 326, -1, 328, 329, -1, 4076 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 4077 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 4078 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 4079 361, 362, 363, -1, 365, 366, 367, -1, -1, 370, 4080 -1, 372, -1, -1, 375, 376, 377, 378, -1, -1, 4081 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 4082 -1, 392, 393, 394, 395, -1, 397, 398, 399, -1, 4083 401, 402, 403, 404, 405, -1, -1, 408, -1, -1, 4084 -1, -1, -1, -1, 415, 416, -1, 256, -1, 258, 4085 259, 260, 261, 262, 425, 264, 265, 266, 267, 268, 4086 269, -1, -1, 272, 273, -1, 275, -1, 277, -1, 4087 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4088 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4089 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 4090 -1, -1, 311, -1, -1, -1, 315, 316, -1, -1, 4091 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 4092 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 4093 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4094 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4095 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4096 0, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4097 10, -1, 381, 382, 383, -1, -1, -1, -1, -1, 4098 389, -1, -1, 392, 393, 394, 395, -1, 397, 398, 4099 399, -1, 401, 402, 403, 404, 405, 37, 256, 408, 4100 -1, 41, -1, -1, 44, -1, 415, 416, -1, -1, 4101 -1, -1, -1, 271, 272, -1, 425, 275, 58, 277, 4102 -1, 61, 280, 281, 282, 283, 284, 285, 286, -1, 4103 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 4104 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 4105 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 4106 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 4107 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 4108 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 4109 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 4110 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 4111 -1, 0, 370, -1, 372, -1, -1, 375, 376, 377, 4112 378, 10, -1, 381, 382, 383, -1, -1, -1, -1, 4113 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 4114 398, 399, -1, 401, 402, 403, 404, 405, 37, -1, 4115 408, -1, 41, -1, -1, 44, -1, 415, 416, 417, 4116 -1, -1, -1, -1, -1, -1, 424, 425, -1, 58, 4117 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4118 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4120 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4121 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4122 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4123 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4124 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4125 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4126 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4127 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4128 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4129 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4130 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4131 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4132 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4133 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4134 380, 381, 382, 383, -1, -1, 60, 61, 62, 389, 4135 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4136 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4137 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4138 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4139 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4140 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4141 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4142 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4143 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4144 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4145 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4146 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4147 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4148 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4149 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4150 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4151 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4152 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4153 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4154 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4155 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4156 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4157 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4159 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4162 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4163 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4164 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4165 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4166 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4167 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4168 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4169 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4170 320, -1, -1, 417, -1, -1, 326, -1, 328, 329, 4171 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4172 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4173 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4174 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4175 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4176 380, 381, 382, 383, 58, -1, 60, 61, 62, 389, 4177 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4178 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4179 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4180 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4181 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4182 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4183 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4184 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4185 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4186 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4187 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4188 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4189 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4190 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4191 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4192 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4193 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4194 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4195 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4196 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4197 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4198 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4199 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4200 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4201 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4205 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4206 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4207 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4208 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4209 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4210 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4211 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4212 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4213 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4214 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4215 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4216 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4217 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4218 380, 381, 382, 383, 58, -1, 60, 61, 62, 389, 4219 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4220 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4221 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4222 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4223 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4224 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4225 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4226 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4227 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4228 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4229 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4230 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4231 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4232 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4233 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4234 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4235 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4236 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4237 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4238 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4239 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4240 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4241 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4242 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4243 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4247 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4248 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4249 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4250 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4251 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4252 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4253 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4254 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4255 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4256 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4257 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4258 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4259 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4260 380, 381, 382, 383, 58, -1, 60, 61, 62, 389, 4261 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4262 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4263 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4264 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4265 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4266 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4267 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4268 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4269 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4270 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4271 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4272 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4273 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4274 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4275 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4276 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4277 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4278 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4279 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4280 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4281 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4282 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4283 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4284 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4285 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4289 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4290 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4291 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4292 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4293 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4294 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4295 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4296 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4297 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4298 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4299 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4300 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4301 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4302 380, 381, 382, 383, 58, -1, 60, 61, 62, 389, 4303 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4304 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4305 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4306 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4307 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4308 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4309 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4310 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4311 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4312 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4313 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4314 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4315 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4316 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4317 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4318 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4319 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4320 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4321 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4322 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4323 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4324 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4325 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4326 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4327 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4331 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4332 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4333 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4334 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4335 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4336 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4337 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4338 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4339 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4340 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4341 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4342 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4343 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4344 380, 381, 382, 383, -1, -1, 60, 61, 62, 389, 4345 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4346 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4347 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4348 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4349 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4350 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4351 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4352 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4353 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4354 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4355 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4356 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4357 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4358 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4359 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4360 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4361 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4362 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4363 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4364 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4365 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4366 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4367 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4368 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4369 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4372 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4373 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4374 260, 261, 262, -1, -1, -1, -1, -1, -1, -1, 4375 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4376 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4377 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4378 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4379 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4380 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4381 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4382 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4383 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4384 -1, 361, 362, 363, -1, 365, 366, 367, 42, 43, 4385 370, 45, 372, -1, -1, 375, 376, 377, 378, -1, 4386 380, 381, 382, 383, -1, -1, 60, 61, 62, 389, 4387 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4388 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4389 259, 260, 261, 262, -1, 415, 416, 417, -1, -1, 4390 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4391 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4392 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4393 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4394 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4395 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4396 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4397 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4398 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4399 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4400 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4401 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4402 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4403 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4404 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4405 -1, 0, -1, -1, -1, 424, 425, -1, -1, -1, 4406 -1, 10, -1, -1, 258, 259, 260, 261, 262, -1, 4407 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 4408 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4409 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4410 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4411 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, 4412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4415 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4416 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, 4417 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4418 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4419 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4420 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4421 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4422 320, -1, -1, -1, -1, -1, 326, 40, 328, 329, 4423 43, 331, 45, 333, 334, 335, 336, 337, -1, 339, 4424 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4425 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4426 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 4427 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 4428 380, 381, 382, 383, -1, 40, -1, 42, 43, 389, 4429 45, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4430 -1, 401, 402, 403, 404, 405, 61, 256, 408, 258, 4431 259, 260, 261, -1, -1, 415, 416, 417, -1, -1, 4432 -1, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4433 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4434 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4435 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 4436 -1, -1, 311, -1, -1, -1, 315, 316, -1, -1, 4437 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 4438 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 4439 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4440 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4441 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4442 0, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4443 10, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4444 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4445 399, -1, 401, 402, 403, 404, 405, 37, -1, 408, 4446 40, 41, 42, 43, 44, 45, 415, 416, 417, -1, 4447 -1, -1, -1, -1, -1, 424, 425, -1, -1, -1, 4448 -1, -1, -1, -1, -1, 298, 299, 300, -1, -1, 4449 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4450 -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, 4451 -1, -1, -1, -1, -1, -1, -1, -1, 273, -1, 4452 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4453 -1, -1, 287, 288, -1, -1, -1, 292, 293, 294, 4454 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 4455 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 4456 -1, -1, 317, 318, 319, -1, 321, 322, 323, 324, 4457 325, 0, 327, -1, -1, -1, -1, 390, 391, -1, 4458 -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 4459 -1, -1, -1, 406, 407, -1, -1, 410, 411, 412, 4460 413, -1, -1, -1, 417, -1, -1, -1, 37, -1, 4461 -1, 424, 41, -1, -1, 44, -1, -1, -1, -1, 4462 -1, -1, -1, -1, 379, -1, -1, -1, -1, 58, 4463 -1, -1, 61, -1, -1, 390, 391, -1, -1, -1, 4464 -1, 396, -1, -1, -1, -1, -1, -1, -1, -1, 4465 -1, 406, 407, -1, -1, 410, 411, 412, 413, -1, 4466 -1, -1, 417, -1, -1, -1, -1, -1, -1, 424, 4467 -1, -1, -1, -1, -1, -1, 256, -1, -1, -1, 4468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4469 -1, 271, 272, 273, -1, 275, -1, 277, -1, -1, 4470 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4471 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4472 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4473 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4474 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4475 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4476 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4477 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4478 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 4479 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 4480 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4481 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4482 -1, 401, 402, 403, 404, 405, -1, 256, 408, 258, 4483 259, -1, -1, -1, -1, 415, 416, 417, -1, -1, 4484 0, -1, 271, -1, 424, 425, 275, -1, 277, -1, 4485 10, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4486 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4487 -1, -1, 301, 302, -1, -1, -1, 37, -1, -1, 4488 -1, 41, 311, -1, 44, -1, 315, 316, -1, -1, 4489 -1, 320, -1, -1, -1, -1, -1, 326, 58, 328, 4490 329, 61, 331, -1, 333, 334, 335, 336, 337, -1, 4491 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4492 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4493 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4494 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4495 -1, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4496 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4497 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4498 -1, -1, -1, -1, -1, -1, 415, 416, 417, -1, 4499 -1, -1, -1, -1, -1, 424, 425, 0, -1, -1, 4500 -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 4501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4503 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, 4504 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, 4505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4509 -1, -1, -1, -1, -1, -1, 256, -1, 258, 259, 4510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4511 -1, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4512 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4513 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4514 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4515 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4516 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4517 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4518 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4519 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4520 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 4521 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 4522 380, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4523 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4524 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4525 -1, -1, -1, 256, -1, 415, 416, 417, -1, -1, 4526 -1, 0, -1, -1, 424, 425, -1, -1, 271, 272, 4527 273, 10, 275, -1, 277, -1, -1, 280, 281, 282, 4528 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 4529 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 4530 -1, -1, 41, 42, 43, 44, 45, -1, 311, -1, 4531 -1, -1, 315, 316, -1, -1, -1, 320, -1, -1, 4532 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 4533 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 4534 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 4535 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 4536 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 4537 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 4538 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 4539 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 4540 403, 404, 405, -1, -1, 408, -1, -1, -1, -1, 4541 -1, -1, 415, 416, 417, -1, 0, -1, -1, -1, 4542 -1, 424, 425, -1, -1, -1, 10, -1, -1, -1, 4543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4545 -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, 4546 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, 4547 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4551 -1, -1, -1, -1, -1, -1, -1, 256, -1, -1, 4552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4553 -1, -1, 271, 272, 273, -1, 275, -1, 277, -1, 4554 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4555 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4556 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 4557 -1, -1, 311, -1, -1, -1, 315, 316, -1, -1, 4558 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 4559 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 4560 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4561 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4562 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4563 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4564 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 4565 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4566 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4567 -1, -1, 256, -1, -1, -1, 415, 416, -1, -1, 4568 0, -1, -1, -1, -1, 424, 425, 271, 272, 273, 4569 10, 275, -1, 277, -1, -1, 280, 281, 282, 283, 4570 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 4571 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 4572 -1, 41, 42, 43, 44, 45, -1, 311, -1, -1, 4573 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 4574 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 4575 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 4576 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 4577 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 4578 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 4579 -1, 375, 376, 377, 378, -1, -1, 381, 382, 383, 4580 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 4581 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 4582 404, 405, -1, -1, 408, -1, -1, -1, -1, -1, 4583 -1, 415, 416, 417, -1, 0, -1, -1, -1, -1, 4584 424, 425, -1, -1, -1, 10, -1, -1, -1, -1, 4585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4587 -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, 4588 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4590 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4593 -1, -1, -1, -1, -1, -1, 256, -1, -1, -1, 4594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4595 -1, 271, 272, -1, -1, 275, -1, 277, -1, -1, 4596 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4597 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4598 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4599 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4600 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4601 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4602 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4603 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4604 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 4605 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 4606 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4607 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4608 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4609 -1, 256, -1, -1, -1, 415, 416, 417, 0, -1, 4610 -1, -1, -1, -1, 424, 425, 271, 272, 10, -1, 4611 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 4612 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 4613 -1, 296, 297, -1, -1, -1, 301, 302, -1, 41, 4614 42, 43, 44, 45, -1, -1, 311, -1, -1, -1, 4615 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 4616 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 4617 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 4618 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 4619 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 4620 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 4621 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 4622 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 4623 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 4624 405, -1, -1, 408, -1, -1, -1, -1, -1, -1, 4625 415, 416, 417, 0, -1, -1, -1, -1, -1, 424, 4626 425, -1, -1, 10, -1, -1, -1, -1, -1, -1, 4627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4628 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4629 -1, -1, -1, -1, 41, 42, 43, 44, 45, -1, 4630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4635 -1, -1, -1, -1, 256, -1, -1, -1, -1, -1, 4636 -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 4637 272, -1, -1, 275, -1, 277, -1, -1, 280, 281, 4638 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 4639 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 4640 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 4641 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 4642 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 4643 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 4644 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 4645 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 4646 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 4647 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 4648 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 4649 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 4650 402, 403, 404, 405, -1, -1, 408, -1, -1, 256, 4651 -1, -1, -1, 415, 416, 417, 0, -1, -1, -1, 4652 -1, -1, 424, 425, 271, 272, 10, -1, 275, -1, 4653 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 4654 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 4655 297, -1, -1, 37, 301, 302, -1, 41, -1, -1, 4656 44, -1, -1, -1, 311, -1, -1, -1, 315, 316, 4657 -1, -1, -1, 320, 58, -1, -1, -1, -1, 326, 4658 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 4659 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 4660 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 4661 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 4662 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 4663 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 4664 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 4665 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 4666 -1, 408, -1, -1, -1, -1, -1, -1, 415, 416, 4667 417, 0, -1, -1, -1, -1, -1, 424, 425, -1, 4668 -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 4669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4670 -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 4671 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 4672 -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 4673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4677 -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, 4678 -1, -1, -1, -1, -1, -1, -1, 271, -1, -1, 4679 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 4680 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 4681 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 4682 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 4683 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 4684 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 4685 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 4686 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 4687 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 4688 -1, 365, 366, 367, -1, 0, 370, -1, 372, -1, 4689 -1, 375, 376, 377, 378, 10, 380, 381, 382, 383, 4690 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 4691 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 4692 404, 405, -1, -1, 408, -1, 41, 256, 43, 44, 4693 45, 415, 416, 417, -1, -1, -1, -1, -1, -1, 4694 424, 425, 271, -1, -1, -1, 275, -1, 277, -1, 4695 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 4696 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 4697 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 4698 -1, -1, 311, -1, -1, -1, 315, 316, -1, -1, 4699 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 4700 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 4701 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 4702 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 4703 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 4704 0, 370, -1, 372, -1, -1, 375, 376, 377, 378, 4705 10, 380, 381, 382, 383, -1, -1, -1, -1, -1, 4706 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 4707 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 4708 -1, 41, -1, -1, 44, -1, 415, 416, 417, -1, 4709 -1, -1, -1, -1, -1, 424, 425, -1, -1, -1, 4710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4714 -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, 4715 -1, -1, -1, -1, -1, -1, 271, -1, -1, -1, 4716 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 4717 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 4718 -1, 296, 297, -1, -1, -1, 301, 302, -1, -1, 4719 -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 4720 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 4721 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 4722 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 4723 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 4724 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 4725 365, 366, 367, -1, 0, 370, -1, 372, -1, -1, 4726 375, 376, 377, 378, 10, -1, 381, 382, 383, -1, 4727 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 4728 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 4729 405, -1, -1, 408, -1, 41, 256, -1, 44, -1, 4730 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 4731 425, 271, -1, -1, -1, 275, -1, 277, -1, -1, 4732 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4733 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4734 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4735 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4736 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4737 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4738 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4739 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4740 -1, 361, 362, 363, -1, 365, 366, 367, -1, 0, 4741 370, -1, 372, -1, -1, 375, 376, 377, 378, 10, 4742 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4743 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4744 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4745 41, -1, -1, 44, -1, 415, 416, 417, -1, -1, 4746 -1, -1, -1, -1, 424, 425, -1, -1, -1, -1, 4747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4751 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4752 -1, -1, -1, -1, -1, 271, -1, -1, -1, 275, 4753 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 4754 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 4755 296, 297, -1, -1, -1, 301, 302, -1, -1, -1, 4756 -1, -1, -1, -1, -1, 311, -1, -1, -1, 315, 4757 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 4758 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 4759 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 4760 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 4761 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 4762 366, 367, -1, 0, 370, -1, 372, -1, -1, 375, 4763 376, 377, 378, 10, -1, 381, 382, 383, -1, -1, 4764 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 4765 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 4766 -1, -1, 408, -1, 41, 256, -1, 44, -1, 415, 4767 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 4768 271, -1, -1, -1, 275, -1, 277, -1, -1, 280, 4769 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 4770 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 4771 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, 4772 311, -1, -1, -1, 315, 316, -1, -1, -1, 320, 4773 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 4774 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 4775 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 4776 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 4777 361, 362, 363, -1, 365, 366, 367, -1, 0, 370, 4778 -1, 372, -1, -1, 375, 376, 377, 378, 10, -1, 4779 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 4780 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 4781 401, 402, 403, 404, 405, -1, -1, 408, -1, -1, 4782 42, -1, 44, -1, 415, 416, 417, -1, -1, -1, 4783 -1, -1, -1, 424, 425, -1, -1, -1, -1, 61, 4784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4787 -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, 4788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4789 -1, -1, -1, -1, 271, -1, -1, -1, 275, -1, 4790 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 4791 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 4792 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 4793 -1, -1, -1, -1, 311, -1, -1, -1, 315, 316, 4794 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 4795 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 4796 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 4797 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 4798 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 4799 367, -1, 0, 370, -1, 372, -1, -1, 375, 376, 4800 377, 378, 10, -1, 381, 382, 383, -1, -1, -1, 4801 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 4802 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 4803 -1, 408, -1, 41, 256, -1, 44, -1, 415, 416, 4804 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 4805 -1, -1, -1, 275, -1, 277, -1, -1, 280, 281, 4806 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 4807 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 4808 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 4809 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 4810 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 4811 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 4812 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 4813 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 4814 362, 363, -1, 365, 366, 367, -1, 0, 370, -1, 4815 372, -1, -1, 375, 376, 377, 378, 10, -1, 381, 4816 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 4817 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 4818 402, 403, 404, 405, -1, -1, 408, -1, 41, -1, 4819 -1, 44, -1, 415, 416, 417, -1, -1, -1, -1, 4820 -1, -1, 424, 425, -1, -1, -1, -1, -1, -1, 4821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4824 -1, -1, -1, -1, -1, -1, -1, -1, 256, -1, 4825 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4826 -1, -1, -1, 271, -1, -1, -1, 275, -1, 277, 4827 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 4828 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 4829 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 4830 -1, -1, -1, 311, 0, -1, -1, 315, 316, -1, 4831 -1, -1, 320, -1, 10, -1, -1, -1, 326, -1, 4832 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 4833 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 4834 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 4835 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 4836 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 4837 378, -1, -1, 381, 382, 383, -1, -1, -1, -1, 4838 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 4839 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 4840 408, -1, -1, 256, -1, -1, -1, 415, 416, 417, 4841 -1, -1, -1, -1, -1, -1, 424, 425, 271, -1, 4842 -1, -1, 275, -1, 277, -1, -1, 280, 281, 282, 4843 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 4844 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 4845 -1, -1, -1, -1, -1, 0, -1, -1, 311, -1, 4846 -1, -1, 315, 316, -1, 10, -1, 320, -1, -1, 4847 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 4848 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 4849 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 4850 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 4851 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 4852 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 4853 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 4854 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 4855 403, 404, 405, -1, -1, 408, -1, -1, -1, -1, 4856 256, -1, 415, 416, 417, -1, -1, -1, -1, -1, 4857 -1, 424, 425, -1, -1, 271, 272, -1, -1, 275, 4858 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 4859 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 4860 296, 297, -1, -1, -1, 301, 302, -1, -1, -1, 4861 -1, -1, -1, -1, -1, 311, -1, -1, -1, 315, 4862 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 4863 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 4864 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 4865 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 4866 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 4867 366, 367, -1, 0, 370, -1, 372, -1, -1, 375, 4868 376, 377, 378, 10, -1, 381, 382, 383, -1, -1, 4869 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 4870 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 4871 -1, 256, 408, -1, 41, -1, -1, -1, -1, 415, 4872 416, 417, -1, -1, -1, -1, 271, 272, 424, 425, 4873 275, 58, 277, -1, -1, 280, 281, 282, 283, 284, 4874 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 4875 -1, 296, 297, -1, -1, -1, 301, 302, -1, -1, 4876 -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 4877 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 4878 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 4879 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 4880 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 4881 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 4882 365, 366, 367, -1, 0, 370, -1, 372, -1, -1, 4883 375, 376, 377, 378, 10, -1, 381, 382, 383, -1, 4884 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 4885 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 4886 405, -1, -1, 408, -1, -1, -1, -1, 44, -1, 4887 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 4888 425, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4892 -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, 4893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4894 -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, 4895 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 4896 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 4897 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 4898 0, -1, -1, -1, 311, -1, -1, -1, 315, 316, 4899 10, -1, -1, 320, -1, -1, -1, -1, -1, 326, 4900 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 4901 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 4902 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 4903 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 4904 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 4905 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 4906 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 4907 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 4908 256, 408, -1, -1, -1, -1, -1, -1, 415, 416, 4909 417, -1, -1, -1, -1, 271, 272, 424, 425, 275, 4910 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 4911 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 4912 296, 297, -1, -1, -1, 301, 302, -1, -1, -1, 4913 -1, -1, -1, -1, -1, 311, -1, -1, -1, 315, 4914 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 4915 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 4916 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 4917 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 4918 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 4919 366, 367, -1, 0, 370, -1, 372, -1, -1, 375, 4920 376, 377, 378, 10, -1, 381, 382, 383, -1, -1, 4921 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 4922 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 4923 -1, -1, 408, -1, -1, 42, 256, 44, -1, 415, 4924 416, -1, -1, -1, -1, -1, -1, -1, 424, 425, 4925 -1, 271, 272, -1, -1, 275, -1, 277, -1, -1, 4926 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4927 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4928 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4929 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4930 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4931 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4932 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4933 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4934 -1, 361, 362, 363, 0, 365, 366, 367, -1, -1, 4935 370, -1, 372, -1, 10, 375, 376, 377, 378, -1, 4936 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4937 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4938 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4939 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 4940 -1, -1, -1, -1, 424, 425, -1, -1, -1, -1, 4941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4944 -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, 4945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4946 -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, 4947 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 4948 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 4949 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 4950 0, -1, -1, -1, 311, -1, -1, -1, 315, 316, 4951 10, -1, -1, 320, -1, -1, -1, -1, -1, 326, 4952 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 4953 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 4954 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 4955 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 4956 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 4957 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 4958 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 4959 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 4960 256, 408, -1, -1, -1, -1, -1, -1, 415, 416, 4961 417, -1, -1, -1, -1, 271, 272, 424, 425, 275, 4962 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 4963 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 4964 296, 297, -1, -1, -1, 301, 302, -1, -1, -1, 4965 -1, -1, -1, -1, -1, 311, -1, -1, -1, 315, 4966 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 4967 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 4968 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 4969 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 4970 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 4971 366, 367, -1, 0, 370, -1, 372, -1, -1, 375, 4972 376, 377, 378, 10, -1, 381, 382, 383, -1, -1, 4973 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 4974 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 4975 -1, -1, 408, -1, 41, -1, 256, 44, -1, 415, 4976 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 4977 -1, 271, 272, -1, -1, 275, -1, 277, -1, -1, 4978 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 4979 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 4980 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 4981 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 4982 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 4983 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 4984 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 4985 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 4986 -1, 361, 362, 363, -1, 365, 366, 367, -1, 0, 4987 370, -1, 372, -1, -1, 375, 376, 377, 378, 10, 4988 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 4989 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 4990 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 4991 41, -1, -1, 44, -1, 415, 416, 417, -1, -1, 4992 -1, -1, -1, -1, 424, 425, -1, -1, -1, -1, 4993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4994 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4995 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4996 -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, 4997 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4998 -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, 4999 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 5000 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 5001 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 5002 -1, -1, -1, -1, 311, -1, -1, -1, 315, 316, 5003 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 5004 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 5005 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 5006 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 5007 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 5008 367, -1, 0, 370, -1, 372, -1, -1, 375, 376, 5009 377, 378, 10, -1, 381, 382, 383, -1, -1, -1, 5010 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 5011 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 5012 -1, 408, -1, 41, -1, 256, 44, -1, 415, 416, 5013 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 5014 -1, -1, -1, -1, 275, -1, 277, -1, -1, 280, 5015 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5016 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5017 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, 5018 311, -1, -1, -1, 315, 316, -1, -1, -1, 320, 5019 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5020 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5021 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5022 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5023 361, 362, 363, -1, 365, 366, 367, -1, 0, 370, 5024 -1, 372, -1, -1, 375, 376, 377, 378, 10, -1, 5025 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5026 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5027 401, 402, 403, 404, 405, -1, -1, 408, -1, 41, 5028 -1, -1, 44, -1, 415, 416, 417, -1, -1, -1, 5029 -1, -1, -1, 424, 425, -1, -1, -1, -1, -1, 5030 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5031 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5033 -1, -1, -1, -1, -1, -1, -1, -1, 256, -1, 5034 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5035 -1, -1, -1, -1, -1, -1, -1, 275, -1, 277, 5036 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5037 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5038 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 5039 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 5040 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5041 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5042 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5043 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5044 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5045 -1, 0, 370, -1, 372, -1, -1, 375, 376, 377, 5046 378, 10, -1, 381, 382, 383, -1, -1, -1, -1, 5047 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 5048 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 5049 408, -1, 41, -1, 256, 44, -1, 415, 416, 417, 5050 -1, -1, -1, -1, -1, -1, 424, 425, -1, -1, 5051 -1, -1, -1, 275, -1, 277, -1, -1, 280, 281, 5052 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5053 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5054 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 5055 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 5056 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5057 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5058 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5059 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5060 362, 363, -1, 365, 366, 367, -1, 0, 370, -1, 5061 372, -1, -1, 375, 376, 377, 378, 10, -1, 381, 5062 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5063 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5064 402, 403, 404, 405, -1, -1, 408, -1, -1, -1, 5065 -1, 44, -1, 415, 416, 417, -1, -1, -1, -1, 5066 -1, -1, 424, 425, -1, -1, -1, -1, -1, -1, 5067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5070 -1, -1, -1, -1, -1, -1, -1, 256, -1, -1, 5071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5072 -1, -1, -1, -1, -1, -1, 275, -1, 277, -1, 5073 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5074 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5075 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 5076 -1, -1, 311, 0, -1, -1, 315, 316, -1, -1, 5077 -1, 320, -1, 10, -1, -1, -1, 326, -1, 328, 5078 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5079 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5080 349, 350, 351, 352, 353, 354, -1, 44, 357, 358, 5081 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5082 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5083 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5084 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 5085 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 5086 -1, -1, -1, 256, -1, -1, 415, 416, 417, -1, 5087 -1, -1, -1, -1, -1, 424, 425, -1, -1, -1, 5088 -1, -1, 275, -1, 277, -1, -1, 280, 281, 282, 5089 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5090 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5091 -1, -1, -1, -1, -1, -1, -1, -1, 311, 0, 5092 -1, -1, 315, 316, -1, -1, -1, 320, -1, 10, 5093 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5094 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5095 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5096 353, 354, -1, 44, 357, 358, 359, -1, 361, 362, 5097 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 5098 -1, -1, 375, 376, 377, 378, -1, 380, 381, 382, 5099 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5100 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5101 403, 404, 405, -1, -1, 408, -1, -1, -1, 256, 5102 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5103 -1, 424, 425, -1, -1, -1, -1, -1, 275, -1, 5104 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 5105 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 5106 297, -1, -1, -1, 301, 302, -1, -1, -1, -1, 5107 -1, -1, -1, -1, 311, 0, -1, -1, 315, 316, 5108 -1, -1, -1, 320, -1, 10, -1, -1, -1, 326, 5109 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 5110 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 5111 347, 348, 349, 350, 351, 352, 353, 354, -1, 44, 5112 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 5113 367, -1, -1, 370, -1, 372, 61, -1, 375, 376, 5114 377, 378, -1, 380, 381, 382, 383, -1, -1, -1, 5115 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 5116 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 5117 -1, 408, -1, -1, -1, 256, -1, -1, 415, 416, 5118 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 5119 -1, -1, -1, -1, 275, -1, 277, -1, -1, 280, 5120 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5121 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5122 301, 302, -1, -1, -1, -1, 0, -1, -1, -1, 5123 311, -1, -1, -1, 315, 316, 10, -1, -1, 320, 5124 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5125 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5126 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5127 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5128 361, 362, 363, -1, 365, 366, 367, -1, -1, 370, 5129 -1, 372, -1, -1, 375, 376, 377, 378, -1, 380, 5130 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5131 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5132 401, 402, 403, 404, 405, -1, -1, 408, -1, -1, 5133 -1, 256, -1, -1, 415, 416, 417, -1, -1, -1, 5134 -1, -1, -1, 424, 425, -1, -1, -1, -1, -1, 5135 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5136 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5137 -1, 296, 297, -1, -1, -1, 301, 302, -1, -1, 5138 -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, 5139 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 5140 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5141 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5142 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5143 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5144 365, 366, 367, -1, 0, 370, -1, 372, -1, -1, 5145 375, 376, 377, 378, 10, -1, 381, 382, 383, -1, 5146 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 5147 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5148 405, -1, 256, 408, -1, -1, -1, -1, 44, -1, 5149 415, 416, 417, -1, -1, -1, -1, 271, 272, 424, 5150 425, 275, -1, 277, -1, 61, 280, 281, 282, 283, 5151 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 5152 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 5153 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 5154 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 5155 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 5156 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 5157 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 5158 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 5159 -1, 365, 366, 367, -1, 0, 370, -1, 372, -1, 5160 -1, 375, 376, 377, 378, 10, -1, 381, 382, 383, 5161 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 5162 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 5163 404, 405, -1, -1, 408, -1, 41, -1, -1, 44, 5164 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 5165 424, 425, -1, -1, -1, -1, -1, -1, -1, -1, 5166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5167 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5169 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5170 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5171 -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, 5172 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 5173 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 5174 296, 297, -1, -1, -1, 301, 302, -1, 0, -1, 5175 -1, -1, -1, -1, -1, 311, -1, -1, 10, 315, 5176 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 5177 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 5178 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 5179 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 5180 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 5181 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 5182 376, 377, 378, -1, -1, 381, 382, 383, -1, -1, 5183 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 5184 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 5185 -1, 256, 408, -1, -1, -1, -1, -1, -1, 415, 5186 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 5187 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5188 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5189 -1, 296, 297, -1, -1, -1, 301, 302, -1, 0, 5190 -1, -1, -1, -1, -1, -1, 311, -1, -1, 10, 5191 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 5192 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5193 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5194 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5195 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5196 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 5197 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 5198 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 5199 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5200 405, -1, -1, 408, 256, -1, -1, -1, -1, -1, 5201 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 5202 425, -1, -1, 275, -1, 277, 278, -1, 280, 281, 5203 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5204 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5205 302, -1, 0, -1, -1, -1, -1, -1, -1, 311, 5206 -1, -1, 10, 315, 316, -1, -1, -1, 320, -1, 5207 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5208 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5209 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5210 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5211 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 5212 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 5213 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5214 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5215 402, 403, 404, 405, -1, 256, 408, -1, -1, -1, 5216 -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, 5217 -1, -1, 424, 425, 275, -1, 277, -1, -1, 280, 5218 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5219 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5220 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, 5221 311, -1, -1, -1, 315, 316, -1, -1, -1, 320, 5222 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5223 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5224 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5225 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5226 361, 362, 363, -1, 365, 366, 367, -1, 0, 370, 5227 -1, 372, -1, -1, 375, 376, 377, 378, 10, 380, 5228 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5229 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5230 401, 402, 403, 404, 405, -1, -1, 408, 256, 41, 5231 -1, -1, 44, -1, 415, 416, 417, -1, -1, -1, 5232 -1, -1, -1, 424, 425, -1, -1, 275, -1, 277, 5233 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5234 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5235 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 5236 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 5237 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5238 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5239 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5240 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5241 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5242 -1, 0, 370, -1, 372, -1, -1, 375, 376, 377, 5243 378, 10, 380, 381, 382, 383, -1, -1, -1, -1, 5244 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 5245 398, 399, -1, 401, 402, 403, 404, 405, -1, -1, 5246 408, -1, -1, -1, -1, 44, -1, 415, 416, 417, 5247 -1, -1, -1, -1, -1, -1, 424, 425, -1, -1, 5248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5251 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5252 -1, -1, -1, -1, 256, -1, -1, -1, -1, -1, 5253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5254 -1, -1, -1, 275, -1, 277, -1, -1, 280, 281, 5255 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5256 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5257 302, -1, -1, -1, -1, -1, -1, -1, -1, 311, 5258 -1, -1, -1, 315, 316, -1, -1, -1, 320, -1, 5259 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5260 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5261 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5262 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5263 362, 363, -1, 365, 366, 367, -1, 0, 370, -1, 5264 372, -1, -1, 375, 376, 377, 378, 10, -1, 381, 5265 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5266 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5267 402, 403, 404, 405, -1, -1, 408, 256, -1, -1, 5268 -1, 44, -1, 415, 416, -1, -1, -1, -1, -1, 5269 -1, -1, 424, 425, -1, -1, 275, -1, 277, -1, 5270 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5271 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5272 -1, -1, 301, 302, -1, -1, -1, -1, -1, -1, 5273 -1, -1, 311, -1, -1, -1, 315, 316, -1, -1, 5274 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 5275 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5276 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5277 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 5278 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5279 0, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5280 10, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5281 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 5282 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 5283 -1, -1, -1, -1, 44, -1, 415, 416, 417, -1, 5284 -1, -1, -1, -1, -1, 424, 425, -1, -1, -1, 5285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5286 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5289 -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, 5290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5291 -1, -1, 275, -1, 277, -1, -1, 280, 281, 282, 5292 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5293 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5294 -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, 5295 -1, -1, 315, 316, -1, -1, -1, 320, -1, -1, 5296 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5297 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5298 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5299 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 5300 363, -1, 365, 366, 367, -1, 0, 370, -1, 372, 5301 -1, -1, 375, 376, 377, 378, 10, -1, 381, 382, 5302 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5303 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5304 403, 404, 405, -1, -1, 408, 256, -1, -1, -1, 5305 44, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5306 -1, 424, 425, -1, -1, 275, -1, 277, -1, -1, 5307 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 5308 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 5309 -1, 301, 302, -1, -1, -1, -1, -1, -1, -1, 5310 -1, 311, -1, -1, -1, 315, 316, -1, -1, -1, 5311 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 5312 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 5313 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 5314 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 5315 -1, 361, 362, 363, -1, 365, 366, 367, -1, 0, 5316 370, -1, 372, -1, -1, 375, 376, 377, 378, 10, 5317 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 5318 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 5319 -1, 401, 402, 403, 404, 405, -1, -1, 408, -1, 5320 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 5321 -1, -1, -1, -1, 424, 425, -1, -1, -1, -1, 5322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5323 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5324 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5326 -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, 5327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5328 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 5329 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 5330 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 5331 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 5332 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 5333 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 5334 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 5335 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 5336 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 5337 -1, 365, 366, 367, -1, 0, 370, -1, 372, -1, 5338 -1, 375, 376, 377, 378, 10, -1, 381, 382, 383, 5339 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 5340 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 5341 404, 405, -1, -1, 408, 256, -1, -1, -1, 44, 5342 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 5343 424, 425, -1, -1, 275, -1, 277, -1, -1, 280, 5344 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5345 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5346 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, 5347 311, -1, -1, -1, 315, 316, -1, -1, -1, 320, 5348 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5349 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5350 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5351 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5352 361, 362, 363, -1, 365, 366, 367, -1, 0, 370, 5353 -1, 372, -1, -1, 375, 376, 377, 378, 10, -1, 5354 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5355 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5356 401, 402, 403, 404, 405, -1, -1, 408, -1, -1, 5357 -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, 5358 -1, -1, -1, 424, 425, -1, -1, -1, -1, -1, 5359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5362 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5363 -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, 5364 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5365 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5366 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5367 -1, 296, 297, -1, -1, -1, 301, 302, -1, 0, 5368 -1, -1, -1, -1, -1, -1, 311, -1, -1, 10, 5369 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 5370 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5371 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5372 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5373 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5374 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 5375 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 5376 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 5377 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5378 405, -1, -1, 408, 256, -1, -1, -1, -1, -1, 5379 415, 416, -1, -1, -1, -1, -1, -1, -1, 424, 5380 425, -1, -1, 275, -1, 277, -1, -1, 280, 281, 5381 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5382 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5383 302, -1, 0, -1, -1, -1, -1, -1, -1, 311, 5384 -1, -1, 10, 315, 316, -1, -1, -1, 320, -1, 5385 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5386 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5387 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5388 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5389 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 5390 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 5391 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5392 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5393 402, 403, 404, 405, -1, 256, 408, -1, -1, -1, 5394 -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, 5395 -1, -1, 424, 425, 275, -1, 277, -1, -1, 280, 5396 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5397 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5398 301, 302, -1, 0, -1, -1, -1, -1, -1, -1, 5399 311, -1, -1, 10, 315, 316, -1, -1, -1, 320, 5400 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5401 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5402 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5403 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5404 361, 362, 363, -1, 365, 366, 367, -1, -1, 370, 5405 -1, 372, -1, -1, 375, 376, 377, 378, -1, -1, 5406 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5407 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5408 401, 402, 403, 404, 405, -1, -1, 408, 256, -1, 5409 -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, 5410 -1, -1, -1, 424, 425, -1, -1, 275, -1, 277, 5411 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5412 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5413 -1, -1, -1, 301, 302, -1, 0, -1, -1, -1, 5414 -1, -1, -1, 311, -1, -1, 10, 315, 316, -1, 5415 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5416 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5417 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5418 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5419 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5420 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 5421 378, -1, -1, 381, 382, 383, -1, -1, -1, -1, 5422 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 5423 398, 399, -1, 401, 402, 403, 404, 405, -1, 256, 5424 408, -1, -1, -1, -1, -1, -1, 415, 416, 417, 5425 -1, -1, -1, -1, -1, -1, 424, 425, 275, -1, 5426 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 5427 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 5428 297, -1, -1, -1, 301, 302, -1, 0, -1, -1, 5429 -1, -1, -1, -1, 311, -1, -1, 10, 315, 316, 5430 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 5431 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 5432 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 5433 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 5434 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 5435 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 5436 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 5437 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 5438 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 5439 -1, 408, 256, -1, -1, -1, -1, -1, 415, 416, 5440 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 5441 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 5442 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 5443 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 5444 0, -1, -1, -1, -1, -1, -1, 311, -1, -1, 5445 10, 315, 316, -1, -1, -1, 320, -1, -1, -1, 5446 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 5447 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 5448 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 5449 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 5450 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 5451 -1, 375, 376, 377, 378, -1, -1, 381, 382, 383, 5452 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 5453 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 5454 404, 405, -1, 256, 408, -1, -1, -1, -1, -1, 5455 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 5456 424, 425, 275, -1, 277, -1, -1, 280, 281, 282, 5457 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5458 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5459 -1, 0, -1, -1, -1, -1, -1, -1, 311, -1, 5460 -1, 10, 315, 316, -1, -1, -1, 320, -1, -1, 5461 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5462 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5463 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5464 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 5465 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 5466 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 5467 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5468 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5469 403, 404, 405, -1, -1, 408, 256, -1, -1, -1, 5470 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5471 -1, 424, 425, -1, -1, 275, -1, 277, -1, -1, 5472 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 5473 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 5474 -1, 301, 302, -1, 0, -1, -1, -1, -1, -1, 5475 -1, 311, -1, -1, 10, 315, 316, -1, -1, -1, 5476 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 5477 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 5478 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 5479 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 5480 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 5481 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 5482 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 5483 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 5484 -1, 401, 402, 403, 404, 405, -1, 256, 408, -1, 5485 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 5486 -1, -1, -1, -1, 424, 425, 275, -1, 277, -1, 5487 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5488 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5489 -1, -1, 301, 302, -1, 0, -1, -1, -1, -1, 5490 -1, -1, 311, -1, -1, 10, 315, 316, -1, -1, 5491 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 5492 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5493 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5494 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 5495 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5496 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5497 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5498 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 5499 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 5500 256, -1, -1, -1, -1, -1, 415, 416, 417, -1, 5501 -1, -1, -1, -1, -1, 424, 425, -1, -1, 275, 5502 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 5503 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 5504 296, 297, -1, -1, -1, 301, 302, -1, 0, -1, 5505 -1, -1, -1, -1, -1, 311, -1, -1, 10, 315, 5506 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 5507 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 5508 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 5509 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 5510 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 5511 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 5512 376, 377, 378, -1, -1, 381, 382, 383, -1, -1, 5513 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 5514 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 5515 -1, 256, 408, -1, -1, -1, -1, -1, -1, 415, 5516 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 5517 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5518 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5519 -1, 296, 297, -1, -1, -1, 301, 302, -1, 0, 5520 -1, -1, -1, -1, -1, -1, 311, -1, -1, 10, 5521 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 5522 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5523 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5524 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5525 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5526 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 5527 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 5528 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 5529 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5530 405, -1, -1, 408, 256, -1, -1, -1, -1, -1, 5531 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 5532 425, -1, -1, 275, -1, 277, -1, -1, 280, 281, 5533 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5534 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5535 302, -1, 0, -1, -1, -1, -1, -1, -1, 311, 5536 -1, -1, 10, 315, 316, -1, -1, -1, 320, -1, 5537 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5538 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5539 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5540 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5541 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 5542 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 5543 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5544 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5545 402, 403, 404, 405, -1, 256, 408, -1, -1, -1, 5546 -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, 5547 -1, -1, 424, 425, 275, -1, 277, -1, -1, 280, 5548 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5549 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5550 301, 302, -1, 0, -1, -1, -1, -1, -1, -1, 5551 311, -1, -1, 10, 315, 316, -1, -1, -1, 320, 5552 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5553 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5554 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5555 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5556 361, 362, 363, -1, 365, 366, 367, -1, -1, 370, 5557 -1, 372, -1, -1, 375, 376, 377, 378, -1, -1, 5558 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5559 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5560 401, 402, 403, 404, 405, -1, -1, 408, 256, -1, 5561 -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, 5562 -1, -1, -1, 424, 425, -1, -1, 275, -1, 277, 5563 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5564 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5565 -1, -1, -1, 301, 302, -1, 0, -1, -1, -1, 5566 -1, -1, -1, 311, -1, -1, 10, 315, 316, -1, 5567 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5568 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5569 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5570 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5571 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5572 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 5573 378, -1, -1, 381, 382, 383, -1, -1, -1, -1, 5574 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 5575 398, 399, -1, 401, 402, 403, 404, 405, -1, 256, 5576 408, -1, -1, -1, -1, -1, -1, 415, 416, 417, 5577 -1, -1, -1, -1, -1, -1, 424, 425, 275, -1, 5578 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 5579 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 5580 297, -1, -1, -1, 301, 302, -1, 0, -1, -1, 5581 -1, -1, -1, -1, 311, -1, -1, 10, 315, 316, 5582 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 5583 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 5584 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 5585 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 5586 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 5587 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 5588 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 5589 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 5590 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 5591 -1, 408, 256, -1, -1, -1, -1, -1, 415, 416, 5592 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 5593 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 5594 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 5595 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 5596 0, -1, -1, -1, -1, -1, -1, 311, -1, -1, 5597 10, 315, 316, -1, -1, -1, 320, -1, -1, -1, 5598 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 5599 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 5600 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 5601 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 5602 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 5603 -1, 375, 376, 377, 378, -1, -1, 381, 382, 383, 5604 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 5605 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 5606 404, 405, -1, 256, 408, -1, -1, -1, -1, -1, 5607 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 5608 424, 425, 275, -1, 277, -1, -1, 280, 281, 282, 5609 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5610 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5611 -1, 0, -1, -1, -1, -1, -1, -1, 311, -1, 5612 -1, 10, 315, 316, -1, -1, -1, 320, -1, -1, 5613 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5614 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5615 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5616 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 5617 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 5618 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 5619 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5620 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5621 403, 404, 405, -1, -1, 408, 256, -1, -1, -1, 5622 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5623 -1, 424, 425, -1, -1, 275, -1, 277, -1, -1, 5624 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 5625 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 5626 -1, 301, 302, -1, 0, -1, -1, -1, -1, -1, 5627 -1, 311, -1, -1, 10, 315, 316, -1, -1, -1, 5628 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 5629 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 5630 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 5631 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 5632 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 5633 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 5634 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 5635 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 5636 -1, 401, 402, 403, 404, 405, -1, 256, 408, -1, 5637 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 5638 -1, -1, -1, -1, 424, 425, 275, -1, 277, -1, 5639 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5640 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5641 -1, -1, 301, 302, -1, 0, -1, -1, -1, -1, 5642 -1, -1, 311, -1, -1, 10, 315, 316, -1, -1, 5643 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 5644 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5645 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5646 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 5647 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5648 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5649 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5650 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 5651 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 5652 256, -1, -1, -1, -1, -1, 415, 416, 417, -1, 5653 -1, -1, -1, -1, -1, 424, 425, -1, -1, 275, 5654 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 5655 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 5656 296, 297, -1, -1, -1, 301, 302, -1, 0, -1, 5657 -1, -1, -1, -1, -1, 311, -1, -1, 10, 315, 5658 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 5659 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 5660 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 5661 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 5662 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 5663 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 5664 376, 377, 378, -1, -1, 381, 382, 383, -1, -1, 5665 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 5666 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 5667 -1, 256, 408, -1, -1, -1, -1, -1, -1, 415, 5668 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 5669 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5670 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5671 -1, 296, 297, -1, -1, -1, 301, 302, -1, 0, 5672 -1, -1, -1, -1, -1, -1, 311, -1, -1, 10, 5673 315, 316, -1, -1, -1, 320, -1, -1, -1, -1, 5674 -1, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5675 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5676 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5677 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5678 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 5679 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 5680 -1, -1, -1, -1, 389, -1, -1, 392, 393, 394, 5681 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5682 405, -1, -1, 408, 256, -1, -1, -1, -1, -1, 5683 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 5684 425, -1, -1, 275, -1, 277, -1, -1, 280, 281, 5685 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5686 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5687 302, -1, 0, -1, -1, -1, -1, -1, -1, 311, 5688 -1, -1, 10, 315, 316, -1, -1, -1, 320, -1, 5689 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5690 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5691 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5692 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5693 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 5694 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 5695 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5696 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5697 402, 403, 404, 405, -1, 256, 408, -1, -1, -1, 5698 -1, -1, -1, 415, 416, 417, -1, -1, -1, -1, 5699 -1, -1, 424, 425, 275, -1, 277, -1, -1, 280, 5700 281, 282, 283, 284, 285, 286, -1, -1, 289, 290, 5701 291, -1, -1, -1, -1, 296, 297, -1, -1, -1, 5702 301, 302, -1, 0, -1, -1, -1, -1, -1, -1, 5703 311, -1, -1, 10, 315, 316, -1, -1, -1, 320, 5704 -1, -1, -1, -1, -1, 326, -1, 328, 329, -1, 5705 331, -1, 333, 334, 335, 336, 337, -1, 339, 340, 5706 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 5707 351, 352, 353, 354, -1, -1, 357, 358, 359, -1, 5708 361, 362, 363, -1, 365, 366, 367, -1, -1, 370, 5709 -1, 372, -1, -1, 375, 376, 377, 378, -1, -1, 5710 381, 382, 383, -1, -1, -1, -1, -1, 389, -1, 5711 -1, 392, 393, 394, 395, 396, 397, 398, 399, -1, 5712 401, 402, 403, 404, 405, -1, -1, 408, 256, -1, 5713 -1, -1, -1, -1, 415, 416, 417, -1, -1, -1, 5714 -1, -1, -1, 424, 425, -1, -1, 275, -1, 277, 5715 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5716 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5717 -1, -1, -1, 301, 302, -1, 0, -1, -1, -1, 5718 -1, -1, -1, 311, -1, -1, 10, 315, 316, -1, 5719 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5720 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5721 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5722 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5723 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5724 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 5725 378, -1, -1, 381, 382, 383, -1, -1, -1, -1, 5726 -1, 389, -1, -1, 392, 393, 394, 395, 396, 397, 5727 398, 399, -1, 401, 402, 403, 404, 405, -1, 256, 5728 408, -1, -1, -1, -1, -1, -1, 415, 416, 417, 5729 -1, -1, -1, -1, -1, -1, 424, 425, 275, -1, 5730 277, -1, -1, 280, 281, 282, 283, 284, 285, 286, 5731 -1, -1, 289, 290, 291, -1, -1, -1, -1, 296, 5732 297, -1, -1, -1, 301, 302, -1, 0, -1, -1, 5733 -1, -1, -1, -1, 311, -1, -1, 10, 315, 316, 5734 -1, -1, -1, 320, -1, -1, -1, -1, -1, 326, 5735 -1, 328, 329, -1, 331, -1, 333, 334, 335, 336, 5736 337, -1, 339, 340, 341, 342, 343, 344, 345, 346, 5737 347, 348, 349, 350, 351, 352, 353, 354, -1, -1, 5738 357, 358, 359, -1, 361, 362, 363, -1, 365, 366, 5739 367, -1, -1, 370, -1, 372, -1, -1, 375, 376, 5740 377, 378, -1, -1, 381, 382, 383, -1, -1, -1, 5741 -1, -1, 389, -1, -1, 392, 393, 394, 395, 396, 5742 397, 398, 399, -1, 401, 402, 403, 404, 405, -1, 5743 -1, 408, 256, -1, -1, -1, -1, -1, 415, 416, 5744 417, -1, -1, -1, -1, -1, -1, 424, 425, -1, 5745 -1, 275, -1, 277, -1, -1, 280, 281, 282, 283, 5746 284, 285, 286, -1, -1, 289, 290, 291, -1, -1, 5747 -1, -1, 296, 297, -1, -1, -1, 301, 302, -1, 5748 0, -1, -1, -1, -1, -1, -1, 311, -1, -1, 5749 10, 315, 316, -1, -1, -1, 320, -1, -1, -1, 5750 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 5751 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 5752 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 5753 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 5754 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 5755 -1, 375, 376, 377, 378, -1, -1, 381, 382, 383, 5756 -1, -1, -1, -1, -1, 389, -1, -1, 392, 393, 5757 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 5758 404, 405, -1, 256, 408, -1, -1, -1, -1, -1, 5759 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 5760 424, 425, 275, -1, 277, -1, -1, 280, 281, 282, 5761 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5762 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5763 -1, 0, -1, -1, -1, -1, -1, -1, 311, -1, 5764 -1, 10, 315, 316, -1, -1, -1, 320, -1, -1, 5765 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5766 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5767 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5768 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 5769 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 5770 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 5771 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5772 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5773 403, 404, 405, -1, -1, 408, 256, -1, -1, -1, 5774 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5775 -1, 424, 425, -1, -1, 275, -1, 277, -1, -1, 5776 280, 281, 282, 283, 284, 285, 286, -1, -1, 289, 5777 290, 291, -1, -1, -1, -1, 296, 297, -1, -1, 5778 -1, 301, 302, -1, 0, -1, -1, -1, -1, -1, 5779 -1, 311, -1, -1, 10, 315, 316, -1, -1, -1, 5780 320, -1, -1, -1, -1, -1, 326, -1, 328, 329, 5781 -1, 331, -1, 333, 334, 335, 336, 337, -1, 339, 5782 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 5783 350, 351, 352, 353, 354, -1, -1, 357, 358, 359, 5784 -1, 361, 362, 363, -1, 365, 366, 367, -1, -1, 5785 370, -1, 372, -1, -1, 375, 376, 377, 378, -1, 5786 -1, 381, 382, 383, -1, -1, -1, -1, -1, 389, 5787 -1, -1, 392, 393, 394, 395, 396, 397, 398, 399, 5788 -1, 401, 402, 403, 404, 405, -1, 256, 408, -1, 5789 -1, -1, -1, -1, -1, 415, 416, 417, -1, -1, 5790 -1, -1, -1, -1, 424, 425, 275, -1, 277, -1, 5791 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5792 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5793 -1, -1, 301, 302, 0, -1, -1, -1, -1, -1, 5794 -1, -1, 311, -1, 10, -1, 315, 316, -1, -1, 5795 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 5796 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5797 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5798 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 5799 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5800 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5801 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5802 389, -1, -1, 392, 393, 394, 395, 396, 397, 398, 5803 399, -1, 401, 402, 403, 404, 405, -1, -1, 408, 5804 256, -1, -1, -1, -1, -1, 415, 416, 417, -1, 5805 -1, -1, -1, -1, -1, 424, 425, -1, -1, 275, 5806 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 5807 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 5808 296, 297, -1, -1, -1, 301, 302, 0, -1, -1, 5809 -1, -1, -1, -1, -1, 311, -1, 10, -1, 315, 5810 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 5811 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 5812 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 5813 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 5814 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 5815 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 5816 376, 377, 378, -1, -1, 381, 382, 383, -1, -1, 5817 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 5818 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 5819 256, -1, 408, -1, -1, -1, -1, -1, -1, 415, 5820 416, -1, -1, -1, -1, -1, -1, -1, 424, 425, 5821 -1, 277, -1, -1, 280, 281, 282, 283, 284, 285, 5822 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, 5823 296, 297, -1, -1, -1, 301, 302, -1, 0, -1, 5824 -1, -1, -1, -1, -1, 311, -1, -1, 10, 315, 5825 316, -1, -1, -1, 320, -1, -1, -1, -1, -1, 5826 326, -1, 328, 329, -1, 331, -1, 333, 334, 335, 5827 336, 337, -1, 339, 340, 341, 342, 343, 344, 345, 5828 346, 347, 348, 349, 350, 351, 352, 353, 354, -1, 5829 -1, 357, 358, 359, -1, 361, 362, 363, -1, 365, 5830 366, 367, -1, -1, 370, -1, 372, -1, -1, 375, 5831 376, 377, 378, -1, -1, 381, 382, 383, -1, -1, 5832 -1, -1, -1, 389, -1, -1, 392, 393, 394, 395, 5833 396, 397, 398, 399, -1, 401, 402, 403, 404, 405, 5834 -1, -1, 408, 256, -1, -1, -1, -1, -1, 415, 5835 416, 417, -1, -1, -1, -1, -1, -1, 424, 425, 5836 -1, -1, 275, -1, 277, -1, -1, 280, 281, 282, 5837 283, 284, 285, 286, -1, -1, 289, 290, 291, -1, 5838 -1, -1, -1, 296, 297, -1, -1, -1, 301, 302, 5839 -1, 0, -1, -1, -1, -1, -1, -1, 311, -1, 5840 -1, 10, 315, 316, -1, -1, -1, 320, -1, -1, 5841 -1, -1, -1, 326, -1, 328, 329, -1, 331, -1, 5842 333, 334, 335, 336, 337, -1, 339, 340, 341, 342, 5843 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 5844 353, 354, -1, -1, 357, 358, 359, -1, 361, 362, 5845 363, -1, 365, 366, 367, -1, -1, 370, -1, 372, 5846 -1, -1, 375, 376, 377, 378, -1, -1, 381, 382, 5847 383, -1, -1, -1, -1, -1, 389, -1, -1, 392, 5848 393, 394, 395, 396, 397, 398, 399, -1, 401, 402, 5849 403, 404, 405, -1, 256, 408, -1, -1, -1, -1, 5850 -1, -1, 415, 416, 417, -1, -1, -1, -1, -1, 5851 -1, -1, 425, 275, -1, 277, -1, -1, 280, 281, 5852 282, 283, 284, 285, 286, -1, -1, 289, 290, 291, 5853 -1, -1, -1, -1, 296, 297, -1, -1, -1, 301, 5854 302, -1, 0, -1, -1, -1, -1, -1, -1, 311, 5855 -1, -1, 10, 315, 316, -1, -1, -1, 320, -1, 5856 -1, -1, -1, -1, 326, -1, 328, 329, -1, 331, 5857 -1, 333, 334, 335, 336, 337, -1, 339, 340, 341, 5858 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 5859 352, 353, 354, -1, -1, 357, 358, 359, -1, 361, 5860 362, 363, -1, 365, 366, 367, -1, -1, 370, -1, 5861 372, -1, -1, 375, 376, 377, 378, -1, -1, 381, 5862 382, 383, -1, -1, -1, -1, -1, 389, -1, -1, 5863 392, 393, 394, 395, 396, 397, 398, 399, -1, 401, 5864 402, 403, 404, 405, -1, -1, 408, 256, -1, -1, 5865 -1, -1, -1, 415, 416, -1, -1, -1, -1, -1, 5866 -1, -1, 424, 425, -1, -1, 275, -1, 277, -1, 5867 -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, 5868 289, 290, 291, -1, -1, -1, -1, 296, 297, -1, 5869 -1, -1, 301, 302, -1, 0, -1, -1, -1, -1, 5870 -1, -1, 311, -1, -1, 10, 315, 316, -1, -1, 5871 -1, 320, -1, -1, -1, -1, -1, 326, -1, 328, 5872 329, -1, 331, -1, 333, 334, 335, 336, 337, -1, 5873 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 5874 349, 350, 351, 352, 353, 354, -1, -1, 357, 358, 5875 359, -1, 361, 362, 363, -1, 365, 366, 367, -1, 5876 -1, 370, -1, 372, -1, -1, 375, 376, 377, 378, 5877 -1, -1, 381, 382, 383, -1, -1, -1, -1, -1, 5878 389, -1, -1, 392, 393, 394, 395, -1, 397, 398, 5879 399, -1, 401, 402, 403, 404, 405, -1, 256, 408, 5880 -1, -1, -1, -1, -1, -1, 415, 416, -1, -1, 5881 -1, -1, -1, -1, -1, -1, 425, 275, -1, 277, 5882 -1, -1, 280, 281, 282, 283, 284, 285, 286, -1, 5883 -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, 5884 -1, -1, -1, 301, 302, -1, -1, -1, -1, -1, 5885 -1, -1, -1, 311, -1, -1, -1, 315, 316, -1, 5886 -1, -1, 320, -1, -1, -1, -1, -1, 326, -1, 5887 328, 329, -1, 331, -1, 333, 334, 335, 336, 337, 5888 -1, 339, 340, 341, 342, 343, 344, 345, 346, 347, 5889 348, 349, 350, 351, 352, 353, 354, -1, -1, 357, 5890 358, 359, -1, 361, 362, 363, -1, 365, 366, 367, 5891 -1, -1, 370, -1, 372, -1, -1, 375, 376, 377, 5892 378, -1, -1, 381, 382, 383, -1, 40, -1, 42, 5893 43, 389, 45, -1, 392, 393, 394, 395, -1, 397, 5894 398, 399, -1, 401, 402, 403, 404, 405, 61, -1, 5895 408, 256, -1, -1, -1, -1, -1, 415, 416, -1, 5896 -1, -1, -1, -1, -1, -1, -1, 425, -1, -1, 5897 275, -1, 277, -1, -1, 280, 281, 282, 283, 284, 5898 285, 286, -1, -1, 289, 290, 291, -1, -1, -1, 5899 -1, 296, 297, -1, -1, -1, 301, 302, -1, 41, 5900 42, 43, -1, 45, -1, -1, 311, -1, -1, -1, 5901 315, 316, -1, -1, -1, 320, 58, -1, 60, 61, 5902 62, 326, -1, 328, 329, -1, 331, -1, 333, 334, 5903 335, 336, 337, -1, 339, 340, 341, 342, 343, 344, 5904 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 5905 -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, 5906 365, 366, 367, -1, -1, 370, -1, 372, -1, -1, 5907 375, 376, 377, 378, -1, -1, 381, 382, 383, -1, 5908 40, -1, 42, 43, 389, 45, -1, 392, 393, 394, 5909 395, 396, 397, 398, 399, -1, 401, 402, 403, 404, 5910 405, 61, -1, 408, -1, -1, -1, -1, -1, -1, 5911 415, 416, 417, -1, -1, -1, -1, -1, -1, 424, 5912 -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, 5913 -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, 5914 -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, 5915 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5917 -1, -1, -1, -1, 287, 288, -1, -1, -1, 292, 5918 293, 294, 295, -1, -1, -1, -1, -1, -1, -1, 5919 -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 5920 313, 314, -1, -1, 317, 318, 319, -1, 321, 322, 5921 323, 324, 325, -1, 327, -1, 258, 259, 260, 261, 5922 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 5923 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, 5924 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5926 -1, -1, -1, -1, -1, -1, 379, 40, -1, -1, 5927 43, -1, 45, -1, -1, -1, -1, 390, 391, -1, 5928 -1, -1, -1, 396, -1, -1, -1, -1, 61, -1, 5929 -1, -1, -1, 406, 407, -1, -1, 410, 411, 412, 5930 413, -1, -1, 263, 417, -1, -1, -1, -1, -1, 5931 -1, 424, -1, -1, -1, 40, -1, -1, 43, -1, 5932 45, -1, -1, -1, -1, -1, -1, 287, 288, -1, 5933 -1, -1, 292, 293, 294, 295, 61, -1, -1, -1, 5934 -1, -1, -1, -1, 304, 305, 306, 307, 308, 309, 5935 310, 263, 312, 313, 314, -1, -1, 317, 318, 319, 5936 -1, 321, 322, 323, 324, 325, -1, 327, -1, -1, 5937 -1, -1, -1, -1, -1, 287, 288, -1, -1, -1, 5938 292, 293, 294, 295, -1, -1, -1, -1, -1, -1, 5939 -1, -1, 304, 305, 306, 307, 308, 309, 310, -1, 5940 312, 313, 314, -1, -1, 317, 318, 319, -1, 321, 5941 322, 323, 324, 325, -1, 327, -1, -1, -1, 379, 5942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5943 390, 391, -1, -1, -1, -1, 396, -1, -1, -1, 5944 -1, -1, -1, -1, -1, -1, 406, 407, -1, -1, 5945 410, 411, 412, 413, -1, -1, 40, 417, 42, 43, 5946 -1, 45, -1, -1, 424, -1, -1, 379, -1, -1, 5947 -1, -1, -1, -1, -1, -1, -1, -1, 390, 391, 5948 -1, -1, -1, -1, 396, -1, -1, -1, -1, -1, 5949 263, -1, -1, -1, 406, 407, -1, -1, 410, 411, 5950 412, 413, -1, -1, 40, 417, 42, 43, -1, 45, 5951 -1, -1, 424, -1, 287, 288, -1, -1, -1, 292, 5952 293, 294, 295, -1, -1, -1, -1, -1, -1, -1, 5953 -1, 304, 305, 306, 307, 308, 309, 310, 263, 312, 5954 313, 314, -1, -1, 317, 318, 319, -1, 321, 322, 5955 323, 324, 325, -1, 327, -1, -1, -1, -1, -1, 5956 -1, -1, 287, 288, -1, -1, -1, 292, 293, 294, 5957 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 5958 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 5959 -1, -1, 317, 318, 319, -1, 321, 322, 323, 324, 5960 325, -1, 327, -1, -1, -1, 379, -1, -1, -1, 5961 -1, -1, -1, -1, -1, -1, -1, 390, 391, -1, 5962 -1, -1, -1, 396, -1, -1, -1, -1, -1, -1, 5963 -1, -1, -1, 406, 407, -1, -1, 410, 411, 412, 5964 413, -1, 40, -1, 417, 43, -1, 45, -1, -1, 5965 -1, 424, -1, -1, 379, -1, -1, -1, -1, -1, 5966 58, -1, -1, -1, -1, 390, 391, -1, -1, -1, 5967 -1, 396, -1, -1, -1, -1, -1, -1, -1, 263, 5968 -1, 406, 407, -1, -1, 410, 411, 412, 413, -1, 5969 -1, -1, 417, -1, -1, 40, -1, -1, 43, 424, 5970 45, -1, -1, 287, 288, -1, -1, -1, 292, 293, 5971 294, 295, -1, 58, -1, -1, -1, -1, -1, -1, 5972 304, 305, 306, 307, 308, 309, 310, 263, 312, 313, 5973 314, -1, -1, 317, 318, 319, -1, 321, 322, 323, 5974 324, 325, -1, 327, -1, -1, -1, -1, -1, -1, 5975 -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, 5976 -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 5977 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, 5978 -1, 317, 318, 319, -1, 321, 322, 323, 324, 325, 5979 -1, 327, -1, -1, -1, 379, -1, -1, -1, -1, 5980 -1, -1, -1, -1, -1, -1, 390, 391, -1, -1, 5981 -1, -1, 396, -1, -1, -1, -1, -1, -1, -1, 5982 -1, -1, 406, 407, -1, -1, 410, 411, 412, 413, 5983 -1, -1, -1, 417, 40, -1, 42, 43, -1, 45, 5984 424, -1, -1, 379, -1, -1, -1, -1, -1, -1, 5985 -1, -1, -1, -1, 390, 391, -1, -1, -1, -1, 5986 396, -1, -1, -1, -1, 263, -1, -1, -1, -1, 5987 406, 407, -1, -1, 410, 411, 412, 413, -1, -1, 5988 -1, 417, 40, -1, 42, 43, -1, 45, 424, 287, 5989 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, 5990 -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, 5991 308, 309, 310, -1, 312, 313, 314, -1, 263, 317, 5992 318, 319, -1, 321, 322, 323, 324, 325, -1, 327, 5993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5994 -1, -1, 287, 288, -1, -1, -1, 292, 293, 294, 5995 295, -1, -1, -1, -1, -1, -1, -1, -1, 304, 5996 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 5997 -1, -1, 317, 318, 319, -1, 321, 322, 323, 324, 5998 325, 379, 327, -1, -1, -1, -1, -1, -1, -1, 5999 -1, -1, 390, 391, -1, -1, -1, -1, 396, -1, 6000 -1, -1, -1, -1, -1, -1, -1, -1, 406, 407, 6001 -1, -1, 410, 411, 412, 413, -1, 40, -1, 417, 6002 43, -1, 45, -1, -1, -1, 424, -1, -1, -1, 6003 -1, -1, -1, -1, 379, -1, -1, -1, -1, -1, 6004 -1, -1, -1, -1, -1, 390, 391, -1, -1, -1, 6005 -1, 396, -1, -1, -1, -1, -1, 263, -1, -1, 6006 -1, 406, 407, -1, -1, 410, 411, 412, 413, -1, 6007 40, -1, 417, 43, -1, 45, -1, -1, -1, 424, 6008 -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, 6009 -1, -1, -1, -1, -1, -1, -1, -1, 304, 305, 6010 306, 307, 308, 309, 310, 263, 312, 313, 314, -1, 6011 -1, 317, 318, 319, -1, 321, 322, 323, 324, 325, 6012 -1, 327, -1, -1, -1, -1, -1, -1, -1, 287, 6013 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, 6014 -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, 6015 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, 6016 318, 319, -1, 321, 322, 323, 324, 325, -1, 327, 6017 -1, -1, -1, 379, -1, -1, -1, -1, -1, -1, 6018 -1, -1, -1, -1, 390, 391, -1, -1, -1, -1, 6019 396, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6020 406, 407, -1, -1, 410, 411, 412, 413, -1, 40, 6021 -1, 417, 43, -1, 45, -1, -1, -1, 424, -1, 6022 -1, 379, -1, -1, -1, -1, -1, -1, -1, -1, 6023 -1, -1, 390, 391, -1, -1, -1, -1, 396, -1, 6024 263, -1, -1, -1, -1, -1, -1, -1, 406, 407, 6025 -1, -1, 410, 411, 412, 413, -1, 40, -1, 417, 6026 43, -1, 45, -1, 287, 288, 424, -1, -1, 292, 6027 293, 294, 295, -1, -1, -1, -1, -1, -1, -1, 6028 -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 6029 313, 314, -1, 263, 317, 318, 319, -1, 321, 322, 6030 323, 324, 325, -1, 327, -1, -1, -1, -1, -1, 6031 -1, -1, -1, -1, -1, -1, -1, 287, 288, -1, 6032 -1, -1, 292, 293, 294, 295, -1, -1, -1, -1, 6033 -1, -1, -1, -1, 304, 305, 306, 307, 308, 309, 6034 310, -1, 312, 313, 314, -1, -1, 317, 318, 319, 6035 -1, 321, 322, 323, 324, 325, 379, 327, -1, -1, 6036 -1, -1, -1, -1, -1, -1, -1, 390, 391, -1, 6037 -1, -1, -1, 396, -1, -1, -1, -1, -1, -1, 6038 -1, -1, -1, 406, 407, -1, -1, 410, 411, 412, 6039 413, -1, 40, -1, 417, 43, -1, 45, -1, -1, 6040 -1, 424, -1, -1, -1, -1, -1, -1, -1, 379, 6041 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6042 390, 391, -1, -1, -1, -1, 396, -1, -1, -1, 6043 -1, -1, 263, -1, -1, -1, 406, 407, -1, -1, 6044 410, 411, 412, 413, -1, 40, -1, 417, 43, -1, 6045 45, -1, -1, -1, 424, -1, 287, 288, -1, -1, 6046 -1, 292, 293, 294, 295, -1, -1, -1, -1, -1, 6047 -1, -1, -1, 304, 305, 306, 307, 308, 309, 310, 6048 263, 312, 313, 314, -1, -1, 317, 318, 319, -1, 6049 321, 322, 323, 324, 325, -1, 327, -1, -1, -1, 6050 -1, -1, -1, -1, 287, 288, -1, -1, -1, 292, 6051 293, 294, 295, -1, 40, -1, 42, 43, -1, 45, 6052 -1, 304, 305, 306, 307, 308, 309, 310, -1, 312, 6053 313, 314, -1, -1, 317, 318, 319, -1, 321, 322, 6054 323, 324, 325, -1, 327, -1, -1, -1, 379, -1, 6055 40, -1, 42, 43, -1, 45, -1, -1, -1, 390, 6056 391, -1, -1, -1, -1, 396, -1, -1, -1, -1, 6057 -1, -1, -1, -1, -1, 406, 407, -1, -1, 410, 6058 411, 412, 413, -1, -1, -1, 417, -1, -1, -1, 6059 -1, -1, -1, 424, -1, -1, 379, -1, -1, -1, 6060 -1, -1, -1, -1, -1, -1, -1, 390, 391, -1, 6061 -1, -1, -1, 396, -1, 263, 41, 42, 43, -1, 6062 45, -1, -1, 406, 407, -1, -1, 410, 411, 412, 6063 413, -1, -1, 58, 417, 60, 61, 62, -1, 287, 6064 288, 424, -1, -1, 292, 293, 294, 295, -1, -1, 6065 -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, 6066 308, 309, 310, -1, 312, 313, 314, -1, 263, 317, 6067 318, 319, -1, 321, 322, 323, 324, 325, -1, 327, 6068 -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, 6069 44, 45, 287, 288, -1, -1, -1, 292, 293, 294, 6070 295, -1, -1, -1, -1, -1, 60, 61, 62, 304, 6071 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 6072 -1, -1, 317, 318, 319, -1, 321, 322, 323, 324, 6073 325, 379, 327, 41, 42, 43, -1, 45, -1, -1, 6074 -1, -1, 390, 391, -1, -1, -1, 273, 396, -1, 6075 -1, -1, 60, 61, 62, -1, -1, -1, 406, 407, 6076 -1, -1, 410, 411, 412, 413, 41, 42, 43, 417, 6077 45, -1, 298, 299, 300, -1, 424, 303, -1, -1, 6078 -1, -1, -1, -1, 379, 60, 61, 62, -1, -1, 6079 -1, -1, -1, -1, -1, 390, 391, -1, -1, -1, 6080 -1, 396, -1, -1, -1, -1, -1, -1, 298, 299, 6081 300, 406, 407, 303, -1, 410, 411, 412, 413, -1, 6082 -1, -1, 417, -1, -1, -1, -1, -1, -1, 424, 6083 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6084 265, 266, 267, 268, 269, -1, -1, 272, 273, 41, 6085 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6086 -1, -1, -1, -1, 390, 391, -1, -1, 60, 61, 6087 62, -1, -1, 41, 42, 43, -1, 45, -1, -1, 6088 406, 407, -1, -1, 410, 411, 412, 413, -1, -1, 6089 -1, 417, 60, 61, 62, -1, -1, -1, 424, -1, 6090 390, 391, -1, -1, 258, 259, 260, 261, 262, -1, 6091 264, 265, 266, 267, 268, 269, 406, 407, 272, 273, 6092 410, 411, 412, 413, 41, 42, 43, 417, 45, -1, 6093 -1, -1, -1, -1, 424, -1, -1, -1, -1, -1, 6094 -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, 6095 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 6096 268, 269, -1, -1, 272, 273, -1, -1, -1, -1, 6097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6098 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6099 265, 266, 267, 268, 269, -1, -1, 272, 273, 41, 6100 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6101 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 6102 62, 41, 42, 43, -1, 45, -1, -1, -1, -1, 6103 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6104 60, 61, 62, 41, 42, 43, -1, 45, -1, -1, 6105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6106 -1, -1, 60, 61, 62, -1, 258, 259, 260, 261, 6107 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6108 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, 6109 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 6110 268, 269, -1, -1, 272, 273, 41, 42, 43, -1, 6111 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6112 -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, 6113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6114 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 6115 267, 268, 269, -1, -1, 272, 273, 41, 42, 43, 6116 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 6117 -1, -1, -1, -1, -1, -1, 60, 61, 62, 41, 6118 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6119 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 6120 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6121 -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 6122 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6123 272, 273, -1, -1, -1, -1, -1, -1, 258, 259, 6124 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 6125 -1, -1, 272, 273, -1, -1, -1, -1, -1, -1, 6126 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 6127 268, 269, -1, -1, 272, 273, 41, 42, 43, -1, 6128 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6129 -1, -1, -1, -1, -1, 60, 61, 62, 41, 42, 6130 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, 6131 -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, 6132 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6133 265, 266, 267, 268, 269, -1, -1, 272, 273, 41, 6134 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6135 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 6136 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6137 -1, -1, -1, -1, 258, 259, 260, 261, 262, -1, 6138 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 6139 -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 6140 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6141 272, 273, 41, 42, 43, -1, 45, -1, -1, -1, 6142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6143 -1, 60, 61, 62, 41, 42, 43, -1, 45, -1, 6144 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6145 -1, -1, -1, 60, 61, 62, 41, 42, 43, -1, 6146 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6147 -1, -1, -1, -1, -1, 60, 61, 62, -1, -1, 6148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6149 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6150 265, 266, 267, 268, 269, -1, -1, 272, 273, -1, 6151 -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 6152 -1, 264, 265, 266, 267, 268, 269, -1, -1, 272, 6153 273, 41, 42, 43, -1, 45, -1, -1, -1, -1, 6154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6155 60, 61, 62, -1, -1, -1, 258, 259, 260, 261, 6156 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6157 272, 273, 41, 42, 43, -1, 45, -1, -1, -1, 6158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6159 -1, 60, 61, 62, 41, 42, 43, -1, 45, -1, 6160 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6161 -1, -1, -1, 60, 61, 62, -1, -1, -1, -1, 6162 -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 6163 259, 260, 261, 262, -1, 264, 265, 266, 267, 268, 6164 269, -1, -1, 272, 273, -1, -1, -1, -1, -1, 6165 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 6166 267, 268, 269, -1, -1, 272, 273, -1, -1, -1, 6167 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6168 265, 266, 267, 268, 269, -1, -1, 272, 273, 41, 6169 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6170 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 6171 62, 41, 42, 43, -1, 45, -1, -1, -1, -1, 6172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6173 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, 6174 -1, -1, -1, -1, -1, -1, -1, -1, 258, 259, 6175 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 6176 -1, -1, 272, 273, 41, 42, 43, -1, 45, -1, 6177 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6178 -1, -1, -1, 60, 61, 62, -1, -1, -1, 258, 6179 259, 260, 261, 262, -1, 264, 265, 266, 267, 268, 6180 269, -1, -1, 272, 273, -1, -1, -1, -1, -1, 6181 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 6182 267, 268, 269, -1, -1, 272, 273, 41, 42, 43, 6183 -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 6184 -1, -1, -1, -1, -1, -1, 60, 61, 62, 41, 6185 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, 6186 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 6187 62, 42, 43, 44, 45, -1, -1, -1, -1, -1, 6188 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 6189 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, 6190 -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 6191 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6192 272, 273, -1, -1, -1, -1, -1, -1, 258, 259, 6193 260, 261, 262, -1, 264, 265, 266, 267, 268, 269, 6194 -1, -1, 272, 273, 42, 43, 44, 45, -1, -1, 6195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6196 -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, 6197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6198 -1, 258, 259, 260, 261, 262, -1, 264, 265, 266, 6199 267, 268, 269, -1, -1, 272, 273, 42, 43, 44, 6200 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6201 -1, -1, -1, -1, -1, 60, 61, 62, 42, 43, 6202 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, 6203 -1, -1, -1, -1, -1, -1, 60, 61, 62, -1, 6204 -1, -1, -1, -1, 258, 259, 260, 261, 262, -1, 6205 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 6206 -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 6207 262, -1, 264, 265, 266, 267, 268, 269, -1, -1, 6208 272, 273, -1, -1, -1, -1, -1, 258, 259, 260, 6209 261, 262, -1, 264, 265, 266, 267, 268, 269, -1, 6210 -1, 272, 273, 42, 43, 44, 45, -1, -1, -1, 6211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6212 -1, 60, 61, 62, 42, 43, 44, 45, -1, -1, 6213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6214 -1, -1, 60, 61, 62, -1, -1, -1, -1, -1, 6215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6216 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 6217 268, 269, -1, -1, 272, 273, -1, -1, -1, -1, 6218 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6221 -1, -1, -1, 258, 259, 260, 261, 262, -1, 264, 6222 265, 266, 267, 268, 269, -1, -1, 272, 273, -1, 6223 -1, -1, -1, -1, 258, 259, 260, 261, 262, -1, 6224 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, 6225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6229 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6230 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 6232 259, 260, 261, 262, -1, 264, 265, 266, 267, 268, 6233 269, -1, -1, 272, 273, -1, -1, -1, -1, -1, 6234 258, 259, 260, 261, 262, -1, 264, 265, 266, 267, 6235 268, 269, -1, 277, 272, 273, 280, -1, 282, 283, 6236 -1, -1, 286, -1, -1, 289, 290, 291, -1, -1, 6237 -1, -1, 296, 297, -1, -1, -1, -1, -1, -1, 6238 -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, 6239 -1, 315, 316, -1, -1, -1, 320, -1, -1, -1, 6240 -1, -1, 326, -1, 328, 329, -1, 331, -1, 333, 6241 334, 335, 336, 337, -1, 339, 340, 341, 342, 343, 6242 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 6243 354, -1, -1, 357, 358, 359, -1, 361, 362, 363, 6244 -1, 365, 366, 367, -1, -1, 370, -1, 372, -1, 6245 -1, 375, 376, 377, 378, -1, -1, 381, 382, 383, 6246 -1, -1, -1, -1, -1, 389, -1, -1, -1, 393, 6247 394, 395, 396, 397, 398, 399, -1, 401, 402, 403, 6248 404, 405, -1, -1, 408, -1, -1, -1, -1, -1, 6249 -1, 415, 416, 417, -1, -1, -1, -1, -1, -1, 6250 424, 2752 2753 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 2754 symbol of state STATE-NUM. */ 2755 static const yytype_uint16 yystos[] = 2756 { 2757 0, 191, 0, 1, 36, 37, 53, 54, 144, 177, 2758 187, 192, 197, 199, 205, 201, 198, 177, 200, 29, 2759 32, 34, 35, 38, 41, 42, 43, 48, 49, 63, 2760 67, 68, 72, 78, 80, 81, 83, 85, 86, 87, 2761 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 2762 99, 100, 101, 102, 103, 104, 105, 106, 109, 110, 2763 111, 113, 114, 115, 117, 118, 119, 122, 124, 127, 2764 128, 129, 130, 133, 134, 135, 141, 145, 146, 147, 2765 148, 149, 150, 151, 153, 154, 155, 156, 157, 160, 2766 167, 168, 169, 176, 193, 194, 195, 202, 203, 206, 2767 212, 224, 225, 228, 229, 234, 235, 237, 238, 239, 2768 240, 241, 243, 244, 251, 253, 257, 258, 261, 262, 2769 263, 298, 308, 309, 315, 316, 317, 318, 319, 321, 2770 326, 327, 328, 330, 331, 333, 336, 337, 340, 341, 2771 349, 351, 352, 365, 372, 201, 205, 169, 204, 204, 2772 179, 12, 21, 22, 39, 40, 44, 45, 46, 47, 2773 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 2774 69, 70, 71, 73, 74, 75, 76, 77, 79, 131, 2775 142, 143, 148, 158, 159, 162, 163, 164, 165, 176, 2776 179, 280, 281, 283, 284, 288, 290, 291, 292, 293, 2777 298, 299, 300, 307, 320, 179, 187, 280, 304, 179, 2778 217, 218, 179, 280, 303, 4, 187, 221, 187, 221, 2779 304, 179, 169, 187, 324, 176, 179, 364, 280, 169, 2780 325, 169, 324, 179, 169, 176, 179, 346, 179, 179, 2781 221, 221, 20, 24, 247, 298, 179, 216, 123, 137, 2782 127, 324, 324, 169, 252, 80, 81, 213, 275, 324, 2783 27, 196, 198, 33, 196, 158, 207, 196, 169, 179, 2784 249, 250, 169, 226, 231, 3, 248, 169, 230, 247, 2785 3, 236, 248, 3, 248, 3, 248, 169, 245, 246, 2786 247, 3, 4, 35, 222, 223, 255, 271, 169, 176, 2787 268, 23, 179, 259, 23, 179, 266, 23, 4, 329, 2788 169, 310, 200, 324, 324, 324, 176, 323, 280, 5, 2789 126, 189, 332, 3, 179, 334, 169, 304, 179, 345, 2790 21, 22, 23, 50, 51, 52, 55, 169, 179, 288, 2791 299, 343, 345, 350, 353, 354, 355, 345, 84, 98, 2792 105, 298, 328, 179, 208, 280, 280, 280, 282, 179, 2793 179, 179, 282, 280, 282, 179, 179, 179, 179, 179, 2794 179, 179, 179, 179, 179, 179, 179, 280, 179, 179, 2795 179, 179, 179, 179, 280, 281, 283, 307, 360, 361, 2796 362, 179, 280, 283, 5, 7, 8, 9, 10, 11, 2797 13, 14, 15, 16, 17, 18, 21, 22, 23, 24, 2798 25, 185, 186, 285, 280, 189, 179, 302, 179, 179, 2799 169, 158, 301, 302, 3, 4, 180, 280, 219, 298, 2800 3, 280, 4, 169, 242, 242, 280, 280, 180, 288, 2801 292, 298, 330, 366, 367, 368, 176, 283, 298, 298, 2802 367, 369, 298, 371, 242, 40, 44, 45, 46, 47, 2803 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 2804 69, 70, 71, 74, 75, 76, 77, 79, 169, 214, 2805 215, 169, 298, 220, 280, 3, 3, 221, 194, 200, 2806 204, 196, 5, 249, 3, 24, 179, 187, 248, 3, 2807 24, 230, 247, 179, 276, 230, 298, 247, 169, 169, 2808 247, 276, 3, 245, 29, 82, 109, 111, 112, 113, 2809 116, 117, 119, 120, 272, 273, 275, 4, 204, 3, 2810 256, 254, 5, 23, 269, 280, 180, 176, 179, 169, 2811 260, 269, 179, 267, 280, 268, 176, 276, 3, 205, 2812 248, 298, 322, 373, 280, 280, 298, 176, 23, 280, 2813 335, 338, 339, 23, 25, 179, 298, 347, 348, 353, 2814 354, 280, 280, 280, 280, 5, 353, 179, 281, 288, 2815 299, 342, 356, 357, 358, 3, 344, 20, 23, 24, 2816 25, 355, 353, 360, 179, 179, 23, 169, 180, 210, 2817 211, 30, 180, 3, 180, 282, 282, 280, 180, 180, 2818 180, 280, 280, 280, 280, 280, 280, 280, 280, 280, 2819 280, 280, 280, 180, 282, 282, 282, 282, 282, 280, 2820 283, 361, 362, 3, 132, 3, 3, 282, 180, 3, 2821 5, 280, 287, 280, 280, 280, 280, 280, 280, 280, 2822 280, 280, 280, 280, 280, 280, 280, 5, 24, 280, 2823 286, 280, 5, 280, 5, 280, 288, 303, 289, 294, 2824 294, 280, 280, 180, 3, 180, 276, 218, 180, 3, 2825 180, 3, 179, 3, 370, 180, 180, 180, 3, 370, 2826 3, 180, 3, 24, 3, 180, 179, 169, 324, 208, 2827 280, 180, 250, 227, 232, 233, 284, 280, 169, 169, 2828 231, 227, 248, 4, 23, 277, 278, 279, 280, 248, 2829 276, 276, 248, 246, 276, 179, 3, 4, 208, 254, 2830 169, 269, 260, 5, 269, 180, 3, 270, 23, 180, 2831 276, 31, 169, 311, 312, 5, 329, 364, 180, 3, 2832 353, 23, 25, 179, 280, 3, 180, 180, 280, 180, 2833 356, 285, 359, 359, 3, 359, 356, 353, 353, 353, 2834 353, 353, 366, 369, 3, 180, 179, 209, 304, 280, 2835 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 2836 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 2837 180, 3, 3, 3, 280, 362, 280, 362, 280, 362, 2838 180, 283, 280, 280, 280, 280, 280, 4, 4, 280, 2839 295, 296, 297, 180, 180, 298, 169, 84, 280, 295, 2840 125, 367, 180, 367, 180, 298, 214, 280, 220, 24, 2841 3, 21, 22, 23, 188, 299, 180, 24, 24, 230, 2842 280, 3, 180, 4, 298, 23, 264, 264, 245, 138, 2843 139, 140, 274, 273, 4, 169, 276, 180, 269, 270, 2844 169, 180, 4, 126, 3, 280, 276, 339, 180, 280, 2845 297, 189, 348, 353, 3, 180, 285, 358, 370, 370, 2846 211, 180, 210, 169, 363, 363, 363, 180, 303, 4, 2847 280, 4, 3, 302, 276, 180, 180, 5, 180, 227, 2848 232, 232, 232, 232, 227, 278, 279, 280, 179, 265, 2849 280, 180, 276, 264, 270, 269, 169, 187, 313, 314, 2850 169, 312, 3, 276, 180, 330, 363, 359, 180, 180, 2851 180, 5, 180, 180, 180, 180, 280, 4, 280, 296, 2852 3, 298, 24, 23, 264, 305, 306, 126, 3, 280, 2853 180, 280, 280, 4, 280, 180, 305, 5, 169, 314, 2854 3, 3, 280, 280, 280, 280, 3, 280 6251 2855 }; 6252 #define YYFINAL 1 6253 #ifndef YYDEBUG 6254 #define YYDEBUG 1 2856 2857 #define yyerrok (yyerrstatus = 0) 2858 #define yyclearin (yychar = YYEMPTY) 2859 #define YYEMPTY (-2) 2860 #define YYEOF 0 2861 2862 #define YYACCEPT goto yyacceptlab 2863 #define YYABORT goto yyabortlab 2864 #define YYERROR goto yyerrorlab 2865 2866 2867 /* Like YYERROR except do call yyerror. This remains here temporarily 2868 to ease the transition to the new meaning of YYERROR, for GCC. 2869 Once GCC version 2 has supplanted version 1, this can go. */ 2870 2871 #define YYFAIL goto yyerrlab 2872 2873 #define YYRECOVERING() (!!yyerrstatus) 2874 2875 #define YYBACKUP(Token, Value) \ 2876 do \ 2877 if (yychar == YYEMPTY && yylen == 1) \ 2878 { \ 2879 yychar = (Token); \ 2880 yylval = (Value); \ 2881 yytoken = YYTRANSLATE (yychar); \ 2882 YYPOPSTACK (1); \ 2883 goto yybackup; \ 2884 } \ 2885 else \ 2886 { \ 2887 yyerror (YY_("syntax error: cannot back up")); \ 2888 YYERROR; \ 2889 } \ 2890 while (YYID (0)) 2891 2892 2893 #define YYTERROR 1 2894 #define YYERRCODE 256 2895 2896 2897 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 2898 If N is 0, then set CURRENT to the empty location which ends 2899 the previous symbol: RHS[0] (always defined). */ 2900 2901 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 2902 #ifndef YYLLOC_DEFAULT 2903 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 2904 do \ 2905 if (YYID (N)) \ 2906 { \ 2907 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 2908 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 2909 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 2910 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 2911 } \ 2912 else \ 2913 { \ 2914 (Current).first_line = (Current).last_line = \ 2915 YYRHSLOC (Rhs, 0).last_line; \ 2916 (Current).first_column = (Current).last_column = \ 2917 YYRHSLOC (Rhs, 0).last_column; \ 2918 } \ 2919 while (YYID (0)) 6255 2920 #endif 6256 #define YYMAXTOKEN 426 2921 2922 2923 /* YY_LOCATION_PRINT -- Print the location on the stream. 2924 This macro was not mandated originally: define only if we know 2925 we won't break user code: when these are the locations we know. */ 2926 2927 #ifndef YY_LOCATION_PRINT 2928 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 2929 # define YY_LOCATION_PRINT(File, Loc) \ 2930 fprintf (File, "%d.%d-%d.%d", \ 2931 (Loc).first_line, (Loc).first_column, \ 2932 (Loc).last_line, (Loc).last_column) 2933 # else 2934 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 2935 # endif 2936 #endif 2937 2938 2939 /* YYLEX -- calling `yylex' with the right arguments. */ 2940 2941 #ifdef YYLEX_PARAM 2942 # define YYLEX yylex (YYLEX_PARAM) 2943 #else 2944 # define YYLEX yylex () 2945 #endif 2946 2947 /* Enable debugging if requested. */ 6257 2948 #if YYDEBUG 6258 char *fortranname[] = { 6259 "end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 6260 0,0,"'!'",0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0, 6261 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, 6262 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, 6263 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,0, 6264 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,0, 6265 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,0, 6266 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"TOK_BINARY_OP","TOK_EQV","TOK_NEQV", 6267 "TOK_OR","TOK_XOR","TOK_AND","TOK_NOT","TOK_LT","TOK_GT","TOK_LE","TOK_GE", 6268 "TOK_EQ","TOK_NE","TOK_UNARY_OP","TOK_DSLASH","TOK_SLASH","TOK_DASTER", 6269 "TOK_SEP","TOK_SEMICOLON","TOK_NEXTLINE","TOK_PARAMETER","TOK_RESULT", 6270 "TOK_ONLY","TOK_INCLUDE","TOK_SUBROUTINE","TOK_PROGRAM","TOK_FUNCTION", 6271 "TOK_OMP","TOK_DOLLAR","TOK_FORMAT","TOK_MAX","TOK_TANH","TOK_WHERE", 6272 "TOK_ELSEWHERE","TOK_ENDWHERE","TOK_MAXVAL","TOK_TRIM","TOK_SUM","TOK_SQRT", 6273 "TOK_CASE","TOK_SELECTCASE","TOK_FILE","TOK_END","TOK_ERR","TOK_DONOTTREAT", 6274 "TOK_ENDDONOTTREAT","TOK_EXIST","TOK_MIN","TOK_FLOAT","TOK_EXP","TOK_COS", 6275 "TOK_COSH","TOK_ACOS","TOK_NINT","TOK_CYCLE","TOK_SIN","TOK_SINH","TOK_ASIN", 6276 "TOK_EQUIVALENCE","TOK_BACKSPACE","TOK_LOG","TOK_TAN","TOK_ATAN", 6277 "TOK_RECURSIVE","TOK_ABS","TOK_MOD","TOK_SIGN","TOK_MINLOC","TOK_MAXLOC", 6278 "TOK_EXIT","TOK_MINVAL","TOK_PUBLIC","TOK_PRIVATE","TOK_ALLOCATABLE", 6279 "TOK_RETURN","TOK_THEN","TOK_ELSEIF","TOK_ELSE","TOK_ENDIF","TOK_PRINT", 6280 "TOK_PLAINGOTO","TOK_CONSTRUCTID","TOK_LOGICALIF","TOK_PLAINDO","TOK_CONTAINS", 6281 "TOK_ENDDO","TOK_MODULE","TOK_ENDMODULE","TOK_DOWHILE","TOK_ALLOCATE", 6282 "TOK_OPEN","TOK_CLOSE","TOK_INQUIRE","TOK_WRITE","TOK_READ","TOK_REWIND", 6283 "TOK_DEALLOCATE","TOK_NULLIFY","TOK_FIN","TOK_DEBUT","TOK_DIMENSION", 6284 "TOK_ENDSELECT","TOK_EXTERNAL","TOK_INTENT","TOK_INTRINSIC","TOK_NAMELIST", 6285 "TOK_CASEDEFAULT","TOK_OPTIONAL","TOK_POINTER","TOK_CONTINUE","TOK_SAVE", 6286 "TOK_TARGET","TOK_QUOTE","TOK_IMPLICIT","TOK_NONE","TOK_CALL","TOK_STAT", 6287 "TOK_POINT_TO","TOK_COMMON","TOK_GLOBAL","TOK_INTERFACE","TOK_ENDINTERFACE", 6288 "TOK_LEFTAB","TOK_RIGHTAB","TOK_PAUSE","TOK_PROCEDURE","TOK_STOP","TOK_NAMEEQ", 6289 "TOK_REAL8","TOK_OUT","TOK_INOUT","TOK_IN","TOK_USE","TOK_TRUE","TOK_FALSE", 6290 "TOK_LABEL","TOK_TYPE","TOK_TYPEPAR","TOK_ENDTYPE","TOK_REAL","TOK_INTEGER", 6291 "TOK_LOGICAL","TOK_DOUBLEPRECISION","TOK_DOUBLEREAL","TOK_ENDSUBROUTINE", 6292 "TOK_ENDFUNCTION","TOK_ENDPROGRAM","TOK_ENDUNIT","TOK_CHARACTER", 6293 "TOK_CHAR_CONSTANT","TOK_CHAR_CUT","TOK_DATA","TOK_CHAR_INT","TOK_CHAR_MESSAGE", 6294 "TOK_CSTREAL","TOK_CSTREALDP","TOK_CSTREALQP","TOK_SFREAL","TOK_COMPLEX", 6295 "TOK_DOUBLECOMPLEX","TOK_NAME","TOK_NAME_CHAR","TOK_PROBTYPE","TOK_INTERPTYPE", 6296 "TOK_VARTYPE","TOK_BC","TOK_OP","TOK_CSTINT","TOK_COMMENT","TOK_FILENAME", 6297 }; 6298 char *fortranrule[] = { 6299 "$accept : input", 6300 "input :", 6301 "input : input line", 6302 "line : '\\n' position", 6303 "line : thislabel suite_line_list", 6304 "line : TOK_COMMENT", 6305 "line : keyword cmnt writedeclar", 6306 "line : error writedeclar nulcurbuf", 6307 "suite_line_list : suite_line", 6308 "suite_line_list : suite_line_list TOK_SEMICOLON suite_line", 6309 "suite_line : entry fin_line", 6310 "suite_line : spec fin_line", 6311 "suite_line : before_include filename fin_line", 6312 "suite_line : exec cmnt writedeclar", 6313 "suite_line : instr fin_line", 6314 "instr : ident ':'", 6315 "fin_line : position cmnt", 6316 "keyword : TOK_DONOTTREAT", 6317 "keyword : TOK_ENDDONOTTREAT", 6318 "keyword : TOK_OMP", 6319 "keyword : TOK_DOLLAR", 6320 "position :", 6321 "thislabel :", 6322 "thislabel : TOK_LABEL nulcurbuf", 6323 "cmnt :", 6324 "cmnt : TOK_COMMENT", 6325 "incomment :", 6326 "nulcurbuf :", 6327 "opt_recursive :", 6328 "opt_recursive : TOK_RECURSIVE", 6329 "entry :", 6330 "entry : opt_recursive TOK_SUBROUTINE name_routine arglist", 6331 "entry : TOK_PROGRAM name_routine", 6332 "entry : TOK_FUNCTION name_routine arglist TOK_RESULT arglist1", 6333 "entry : TOK_FUNCTION name_routine arglist", 6334 "entry : TOK_MODULE TOK_NAME", 6335 "name_routine : TOK_NAME", 6336 "writedeclar :", 6337 "before_include : TOK_INCLUDE", 6338 "filename : TOK_CHAR_CONSTANT", 6339 "arglist :", 6340 "arglist : '(' ')'", 6341 "arglist : '(' args ')'", 6342 "arglist1 :", 6343 "arglist1 : '(' ')'", 6344 "arglist1 : '(' args ')'", 6345 "args : arg", 6346 "args : args ',' arg", 6347 "arg : TOK_NAME", 6348 "arg : '*'", 6349 "spec : type after_type", 6350 "spec : TOK_TYPE opt_spec opt_sep opt_name", 6351 "spec : TOK_ENDTYPE opt_name", 6352 "spec : TOK_POINTER list_couple", 6353 "spec : before_parameter '(' paramlist ')'", 6354 "spec : before_parameter paramlist", 6355 "spec : common", 6356 "spec : save", 6357 "spec : implicit", 6358 "spec : dimension", 6359 "spec : public", 6360 "spec : private", 6361 "spec : use_stat", 6362 "spec : module_proc_stmt", 6363 "spec : interface", 6364 "spec : namelist", 6365 "spec : TOK_BACKSPACE '(' expr ')'", 6366 "spec : TOK_EXTERNAL opt_sep use_name_list", 6367 "spec : TOK_INTRINSIC opt_sep use_intrinsic_list", 6368 "spec : TOK_EQUIVALENCE list_expr_equi", 6369 "spec : before_data data '\\n'", 6370 "opt_spec :", 6371 "opt_spec : access_spec", 6372 "name_intrinsic : TOK_SUM", 6373 "name_intrinsic : TOK_TANH", 6374 "name_intrinsic : TOK_MAXVAL", 6375 "name_intrinsic : TOK_MIN", 6376 "name_intrinsic : TOK_MINVAL", 6377 "name_intrinsic : TOK_TRIM", 6378 "name_intrinsic : TOK_SQRT", 6379 "name_intrinsic : TOK_NINT", 6380 "name_intrinsic : TOK_FLOAT", 6381 "name_intrinsic : TOK_EXP", 6382 "name_intrinsic : TOK_COS", 6383 "name_intrinsic : TOK_COSH", 6384 "name_intrinsic : TOK_ACOS", 6385 "name_intrinsic : TOK_SIN", 6386 "name_intrinsic : TOK_SINH", 6387 "name_intrinsic : TOK_ASIN", 6388 "name_intrinsic : TOK_LOG", 6389 "name_intrinsic : TOK_TAN", 6390 "name_intrinsic : TOK_ATAN", 6391 "name_intrinsic : TOK_MOD", 6392 "name_intrinsic : TOK_SIGN", 6393 "name_intrinsic : TOK_MINLOC", 6394 "name_intrinsic : TOK_MAXLOC", 6395 "name_intrinsic : TOK_NAME", 6396 "use_intrinsic_list : name_intrinsic", 6397 "use_intrinsic_list : use_intrinsic_list ',' name_intrinsic", 6398 "list_couple : '(' list_expr ')'", 6399 "list_couple : list_couple ',' '(' list_expr ')'", 6400 "list_expr_equi : expr_equi", 6401 "list_expr_equi : list_expr_equi ',' expr_equi", 6402 "expr_equi : '(' list_expr_equi1 ')'", 6403 "list_expr_equi1 : ident dims", 6404 "list_expr_equi1 : list_expr_equi1 ',' ident dims", 6405 "list_expr : expr", 6406 "list_expr : list_expr ',' expr", 6407 "opt_sep :", 6408 "opt_sep : ':' ':'", 6409 "after_type : dcl nodimsgiven", 6410 "after_type : before_function name_routine arglist", 6411 "before_function : TOK_FUNCTION", 6412 "before_parameter : TOK_PARAMETER", 6413 "before_data : TOK_DATA", 6414 "data : TOK_NAME TOK_SLASH datavallist TOK_SLASH", 6415 "data : data opt_comma TOK_NAME TOK_SLASH datavallist TOK_SLASH", 6416 "data : datanamelist TOK_SLASH datavallist TOK_SLASH", 6417 "datavallist : expr_data", 6418 "datavallist : expr_data ',' datavallist", 6419 "save : before_save varsave", 6420 "save : before_save comblock varsave", 6421 "save : save opt_comma comblock opt_comma varsave", 6422 "save : save ',' varsave", 6423 "before_save : TOK_SAVE", 6424 "varsave :", 6425 "varsave : TOK_NAME dims", 6426 "datanamelist : TOK_NAME", 6427 "datanamelist : TOK_NAME '(' expr ')'", 6428 "datanamelist : datanamelist ',' datanamelist", 6429 "expr_data : opt_signe simple_const", 6430 "expr_data : expr_data '+' expr_data", 6431 "expr_data : expr_data '-' expr_data", 6432 "expr_data : expr_data '*' expr_data", 6433 "expr_data : expr_data '/' expr_data", 6434 "opt_signe :", 6435 "opt_signe : signe", 6436 "namelist : namelist_action after_namelist", 6437 "namelist_action : TOK_NAMELIST ident", 6438 "namelist_action : TOK_NAMELIST comblock ident", 6439 "namelist_action : namelist_action opt_comma comblock opt_comma ident", 6440 "namelist_action : namelist_action ',' ident", 6441 "after_namelist :", 6442 "interface : TOK_INTERFACE opt_name", 6443 "interface : TOK_ENDINTERFACE opt_name", 6444 "before_dimension : TOK_DIMENSION", 6445 "dimension : before_dimension opt_comma TOK_NAME dims lengspec", 6446 "dimension : dimension ',' TOK_NAME dims lengspec", 6447 "private : TOK_PRIVATE '\\n'", 6448 "private : TOK_PRIVATE opt_sep use_name_list", 6449 "public : TOK_PUBLIC '\\n'", 6450 "public : TOK_PUBLIC opt_sep use_name_list", 6451 "use_name_list : TOK_NAME", 6452 "use_name_list : use_name_list ',' TOK_NAME", 6453 "common : before_common var_common_list", 6454 "common : before_common comblock var_common_list", 6455 "common : common opt_comma comblock opt_comma var_common_list", 6456 "before_common : TOK_COMMON", 6457 "before_common : TOK_GLOBAL TOK_COMMON", 6458 "var_common_list : var_common", 6459 "var_common_list : var_common_list ',' var_common", 6460 "var_common : TOK_NAME dims", 6461 "comblock : TOK_DSLASH", 6462 "comblock : TOK_SLASH TOK_NAME TOK_SLASH", 6463 "opt_comma :", 6464 "opt_comma : ','", 6465 "paramlist : paramitem", 6466 "paramlist : paramlist ',' paramitem", 6467 "paramitem : TOK_NAME '=' expr", 6468 "module_proc_stmt : TOK_PROCEDURE proc_name_list", 6469 "proc_name_list : TOK_NAME", 6470 "proc_name_list : proc_name_list ',' TOK_NAME", 6471 "implicit : TOK_IMPLICIT TOK_NONE", 6472 "implicit : TOK_IMPLICIT TOK_REAL8", 6473 "opt_retour :", 6474 "dcl : options opt_retour TOK_NAME dims lengspec initial_value", 6475 "dcl : dcl ',' opt_retour TOK_NAME dims lengspec initial_value", 6476 "nodimsgiven :", 6477 "type : typespec selector", 6478 "type : before_character c_selector", 6479 "type : typename '*' TOK_CSTINT", 6480 "type : before_typepar attribute ')'", 6481 "before_typepar : TOK_TYPEPAR", 6482 "c_selector :", 6483 "c_selector : '*' TOK_CSTINT", 6484 "c_selector : '*' '(' c_attribute ')'", 6485 "c_selector : '(' c_attribute ')'", 6486 "c_attribute : TOK_NAME clause opt_clause", 6487 "c_attribute : TOK_NAME '=' clause opt_clause", 6488 "c_attribute : clause opt_clause", 6489 "before_character : TOK_CHARACTER", 6490 "typespec : typename", 6491 "typename : TOK_INTEGER", 6492 "typename : TOK_REAL", 6493 "typename : TOK_COMPLEX", 6494 "typename : TOK_DOUBLEPRECISION", 6495 "typename : TOK_DOUBLECOMPLEX", 6496 "typename : TOK_LOGICAL", 6497 "lengspec :", 6498 "lengspec : '*' proper_lengspec", 6499 "proper_lengspec : expr", 6500 "proper_lengspec : '(' '*' ')'", 6501 "selector :", 6502 "selector : '*' proper_selector", 6503 "selector : '(' attribute ')'", 6504 "proper_selector : expr", 6505 "proper_selector : '(' '*' ')'", 6506 "attribute : TOK_NAME clause", 6507 "attribute : TOK_NAME '=' clause", 6508 "attribute : TOK_NAME", 6509 "attribute : TOK_CSTINT", 6510 "clause : expr", 6511 "clause : '*'", 6512 "opt_clause :", 6513 "opt_clause : ',' TOK_NAME clause", 6514 "options :", 6515 "options : ':' ':'", 6516 "options : ',' attr_spec_list ':' ':'", 6517 "attr_spec_list : attr_spec", 6518 "attr_spec_list : attr_spec_list ',' attr_spec", 6519 "attr_spec : TOK_PARAMETER", 6520 "attr_spec : access_spec", 6521 "attr_spec : TOK_ALLOCATABLE", 6522 "attr_spec : TOK_DIMENSION dims", 6523 "attr_spec : TOK_EXTERNAL", 6524 "attr_spec : TOK_INTENT '(' intent_spec ')'", 6525 "attr_spec : TOK_INTRINSIC", 6526 "attr_spec : TOK_OPTIONAL", 6527 "attr_spec : TOK_POINTER", 6528 "attr_spec : TOK_SAVE", 6529 "attr_spec : TOK_TARGET", 6530 "intent_spec : TOK_IN", 6531 "intent_spec : TOK_OUT", 6532 "intent_spec : TOK_INOUT", 6533 "access_spec : TOK_PUBLIC", 6534 "access_spec : TOK_PRIVATE", 6535 "dims :", 6536 "dims : '(' dimlist ')'", 6537 "dimlist : dim", 6538 "dimlist : dimlist ',' dim", 6539 "dim : ubound", 6540 "dim : ':'", 6541 "dim : expr ':'", 6542 "dim : ':' expr", 6543 "dim : expr ':' ubound", 6544 "ubound : '*'", 6545 "ubound : expr", 6546 "expr : uexpr", 6547 "expr : '(' expr ')'", 6548 "expr : complex_const", 6549 "expr : predefinedfunction", 6550 "predefinedfunction : TOK_SUM minmaxlist ')'", 6551 "predefinedfunction : TOK_MAX minmaxlist ')'", 6552 "predefinedfunction : TOK_TANH '(' minmaxlist ')'", 6553 "predefinedfunction : TOK_MAXVAL '(' minmaxlist ')'", 6554 "predefinedfunction : TOK_MIN minmaxlist ')'", 6555 "predefinedfunction : TOK_MINVAL '(' minmaxlist ')'", 6556 "predefinedfunction : TOK_TRIM '(' expr ')'", 6557 "predefinedfunction : TOK_SQRT expr ')'", 6558 "predefinedfunction : TOK_REAL '(' minmaxlist ')'", 6559 "predefinedfunction : TOK_NINT '(' expr ')'", 6560 "predefinedfunction : TOK_FLOAT '(' expr ')'", 6561 "predefinedfunction : TOK_EXP '(' expr ')'", 6562 "predefinedfunction : TOK_COS '(' expr ')'", 6563 "predefinedfunction : TOK_COSH '(' expr ')'", 6564 "predefinedfunction : TOK_ACOS '(' expr ')'", 6565 "predefinedfunction : TOK_SIN '(' expr ')'", 6566 "predefinedfunction : TOK_SINH '(' expr ')'", 6567 "predefinedfunction : TOK_ASIN '(' expr ')'", 6568 "predefinedfunction : TOK_LOG '(' expr ')'", 6569 "predefinedfunction : TOK_TAN '(' expr ')'", 6570 "predefinedfunction : TOK_ATAN '(' expr ')'", 6571 "predefinedfunction : TOK_ABS expr ')'", 6572 "predefinedfunction : TOK_MOD '(' minmaxlist ')'", 6573 "predefinedfunction : TOK_SIGN '(' minmaxlist ')'", 6574 "predefinedfunction : TOK_MINLOC '(' minmaxlist ')'", 6575 "predefinedfunction : TOK_MAXLOC '(' minmaxlist ')'", 6576 "minmaxlist : expr", 6577 "minmaxlist : minmaxlist ',' expr", 6578 "uexpr : lhs", 6579 "uexpr : simple_const", 6580 "uexpr : vec", 6581 "uexpr : expr operation", 6582 "uexpr : signe expr", 6583 "uexpr : TOK_NOT expr", 6584 "signe : '+'", 6585 "signe : '-'", 6586 "operation : '+' expr", 6587 "operation : '-' expr", 6588 "operation : '*' expr", 6589 "operation : TOK_DASTER expr", 6590 "operation : TOK_EQ expr", 6591 "operation : TOK_EQV expr", 6592 "operation : TOK_GT expr", 6593 "operation : '>' expr", 6594 "operation : TOK_LT expr", 6595 "operation : '<' expr", 6596 "operation : TOK_GE expr", 6597 "operation : '>' '=' expr", 6598 "operation : TOK_LE expr", 6599 "operation : '<' '=' expr", 6600 "operation : TOK_NE expr", 6601 "operation : TOK_NEQV expr", 6602 "operation : TOK_XOR expr", 6603 "operation : TOK_OR expr", 6604 "operation : TOK_AND expr", 6605 "operation : TOK_SLASH after_slash", 6606 "operation : '=' after_equal", 6607 "after_slash :", 6608 "after_slash : expr", 6609 "after_slash : '=' expr", 6610 "after_slash : TOK_SLASH expr", 6611 "after_equal : '=' expr", 6612 "after_equal : expr", 6613 "lhs : ident", 6614 "lhs : structure_component", 6615 "lhs : array_ele_substring_func_ref", 6616 "beforefunctionuse :", 6617 "array_ele_substring_func_ref : begin_array", 6618 "array_ele_substring_func_ref : begin_array substring", 6619 "array_ele_substring_func_ref : structure_component '(' funarglist ')'", 6620 "array_ele_substring_func_ref : structure_component '(' funarglist ')' substring", 6621 "begin_array : ident '(' funarglist ')'", 6622 "structure_component : lhs '%' lhs", 6623 "vec : TOK_LEFTAB outlist TOK_RIGHTAB", 6624 "funarglist : beforefunctionuse", 6625 "funarglist : beforefunctionuse funargs", 6626 "funargs : funarg", 6627 "funargs : funargs ',' funarg", 6628 "funarg : expr", 6629 "funarg : triplet", 6630 "triplet : expr ':' expr", 6631 "triplet : expr ':' expr ':' expr", 6632 "triplet : ':' expr ':' expr", 6633 "triplet : ':' ':' expr", 6634 "triplet : ':' expr", 6635 "triplet : expr ':'", 6636 "triplet : ':'", 6637 "ident : TOK_NAME", 6638 "simple_const : TOK_TRUE", 6639 "simple_const : TOK_FALSE", 6640 "simple_const : TOK_CSTINT", 6641 "simple_const : TOK_CSTREAL", 6642 "simple_const : TOK_CSTREALDP", 6643 "simple_const : TOK_CSTREALQP", 6644 "simple_const : simple_const TOK_NAME", 6645 "simple_const : string_constant opt_substring", 6646 "string_constant : TOK_CHAR_CONSTANT", 6647 "string_constant : string_constant TOK_CHAR_CONSTANT", 6648 "string_constant : TOK_CHAR_MESSAGE", 6649 "string_constant : TOK_CHAR_CUT", 6650 "opt_substring :", 6651 "opt_substring : substring", 6652 "substring : '(' optexpr ':' optexpr ')'", 6653 "optexpr :", 6654 "optexpr : expr", 6655 "opt_expr : '\\n'", 6656 "opt_expr : expr", 6657 "initial_value :", 6658 "initial_value : before_initial '=' expr", 6659 "before_initial :", 6660 "complex_const : '(' uexpr ',' uexpr ')'", 6661 "use_stat : word_use module_name", 6662 "use_stat : word_use module_name ',' rename_list", 6663 "use_stat : word_use module_name ',' TOK_ONLY ':' '\\n'", 6664 "use_stat : word_use module_name ',' TOK_ONLY ':' only_list", 6665 "word_use : TOK_USE", 6666 "module_name : TOK_NAME", 6667 "rename_list : rename_name", 6668 "rename_list : rename_list ',' rename_name", 6669 "rename_name : TOK_NAME TOK_POINT_TO TOK_NAME", 6670 "only_list : only_name", 6671 "only_list : only_list ',' only_name", 6672 "only_name : TOK_NAME TOK_POINT_TO TOK_NAME", 6673 "only_name : TOK_NAME", 6674 "exec : iffable", 6675 "exec : TOK_ALLOCATE '(' allocation_list opt_stat_spec ')'", 6676 "exec : TOK_DEALLOCATE '(' allocate_object_list opt_stat_spec ')'", 6677 "exec : TOK_NULLIFY '(' pointer_name_list ')'", 6678 "exec : word_endunit", 6679 "exec : word_endprogram opt_name", 6680 "exec : word_endsubroutine opt_name", 6681 "exec : word_endfunction opt_name", 6682 "exec : TOK_ENDMODULE opt_name", 6683 "exec : boucledo", 6684 "exec : logif iffable", 6685 "exec : TOK_WHERE '(' expr ')' opt_expr", 6686 "exec : TOK_ELSEWHERE", 6687 "exec : TOK_ENDWHERE", 6688 "exec : logif TOK_THEN", 6689 "exec : TOK_ELSEIF '(' expr ')' TOK_THEN", 6690 "exec : TOK_ELSE", 6691 "exec : TOK_ENDIF opt_name", 6692 "exec : TOK_CASE caselist ')'", 6693 "exec : TOK_SELECTCASE '(' expr ')'", 6694 "exec : TOK_CASEDEFAULT", 6695 "exec : TOK_ENDSELECT", 6696 "exec : TOK_CONTAINS", 6697 "word_endsubroutine : TOK_ENDSUBROUTINE", 6698 "word_endunit : TOK_ENDUNIT", 6699 "word_endprogram : TOK_ENDPROGRAM", 6700 "word_endfunction : TOK_ENDFUNCTION", 6701 "caselist : expr", 6702 "caselist : caselist ',' expr", 6703 "caselist : caselist ':' expr", 6704 "boucledo : worddo opt_int do_arg", 6705 "boucledo : wordwhile expr", 6706 "boucledo : TOK_ENDDO optname", 6707 "do_arg :", 6708 "do_arg : do_var '=' expr ',' expr", 6709 "do_arg : do_var '=' expr ',' expr ',' expr", 6710 "opt_int :", 6711 "opt_int : TOK_CSTINT opt_comma", 6712 "opt_name : '\\n'", 6713 "opt_name : TOK_NAME", 6714 "optname :", 6715 "optname : TOK_NAME", 6716 "worddo : TOK_PLAINDO", 6717 "wordwhile : TOK_DOWHILE", 6718 "dotarget :", 6719 "dotarget : TOK_CSTINT", 6720 "iffable : TOK_CONTINUE", 6721 "iffable : ident_dims after_ident_dims", 6722 "iffable : goto", 6723 "iffable : io", 6724 "iffable : call", 6725 "iffable : TOK_ALLOCATE '(' allocation_list opt_stat_spec ')'", 6726 "iffable : TOK_DEALLOCATE '(' allocate_object_list opt_stat_spec ')'", 6727 "iffable : TOK_EXIT optexpr", 6728 "iffable : TOK_RETURN opt_expr", 6729 "iffable : TOK_CYCLE opt_expr", 6730 "iffable : stop opt_expr", 6731 "iffable : int_list", 6732 "before_dims :", 6733 "ident_dims : ident before_dims dims dims", 6734 "ident_dims : ident_dims '%' ident before_dims dims dims", 6735 "int_list : TOK_CSTINT", 6736 "int_list : int_list ',' TOK_CSTINT", 6737 "after_ident_dims : '=' expr", 6738 "after_ident_dims : TOK_POINT_TO expr", 6739 "call : keywordcall opt_call", 6740 "opt_call :", 6741 "opt_call : '(' opt_callarglist ')'", 6742 "opt_callarglist :", 6743 "opt_callarglist : callarglist", 6744 "keywordcall : before_call TOK_NAME", 6745 "before_call : TOK_CALL", 6746 "callarglist : callarg", 6747 "callarglist : callarglist ',' callarg", 6748 "callarg : expr", 6749 "callarg : '*' label", 6750 "stop : TOK_PAUSE", 6751 "stop : TOK_STOP", 6752 "io : iofctl ioctl", 6753 "io : read option_read", 6754 "io : write ioctl", 6755 "io : write ioctl outlist", 6756 "io : TOK_REWIND after_rewind", 6757 "io : TOK_FORMAT", 6758 "opt_CHAR_INT :", 6759 "opt_CHAR_INT : TOK_CSTINT TOK_NAME", 6760 "idfile : '*'", 6761 "idfile : TOK_CSTINT", 6762 "idfile : ident", 6763 "option_print :", 6764 "option_print : ',' outlist", 6765 "option_inlist :", 6766 "option_inlist : inlist", 6767 "option_read : ioctl option_inlist", 6768 "option_read : infmt opt_inlist", 6769 "opt_outlist :", 6770 "opt_outlist : outlist", 6771 "opt_inlist :", 6772 "opt_inlist : ',' inlist", 6773 "ioctl : '(' ctllist ')'", 6774 "ioctl : '(' fexpr ')'", 6775 "after_rewind : '(' ident ')'", 6776 "after_rewind : '(' TOK_CSTINT ')'", 6777 "after_rewind : TOK_CSTINT", 6778 "after_rewind : '(' uexpr ')'", 6779 "after_rewind : TOK_NAME", 6780 "ctllist : ioclause", 6781 "ctllist : ctllist ',' ioclause", 6782 "ioclause : fexpr", 6783 "ioclause : '*'", 6784 "ioclause : TOK_DASTER", 6785 "ioclause : TOK_NAME expr", 6786 "ioclause : TOK_NAME expr '%' ident_dims", 6787 "ioclause : TOK_NAME '(' triplet ')'", 6788 "ioclause : TOK_NAME '*'", 6789 "ioclause : TOK_NAME TOK_DASTER", 6790 "iofctl : TOK_OPEN", 6791 "iofctl : TOK_CLOSE", 6792 "infmt : unpar_fexpr", 6793 "infmt : '*'", 6794 "read : TOK_READ", 6795 "read : TOK_INQUIRE", 6796 "read : TOK_PRINT", 6797 "write : TOK_WRITE", 6798 "fexpr : unpar_fexpr", 6799 "fexpr : '(' fexpr ')'", 6800 "unpar_fexpr : lhs", 6801 "unpar_fexpr : simple_const", 6802 "unpar_fexpr : fexpr addop fexpr", 6803 "unpar_fexpr : fexpr '*' fexpr", 6804 "unpar_fexpr : fexpr TOK_SLASH fexpr", 6805 "unpar_fexpr : fexpr TOK_DASTER fexpr", 6806 "unpar_fexpr : addop fexpr", 6807 "unpar_fexpr : fexpr TOK_DSLASH fexpr", 6808 "unpar_fexpr : TOK_FILE expr", 6809 "unpar_fexpr : TOK_EXIST expr", 6810 "unpar_fexpr : TOK_ERR expr", 6811 "unpar_fexpr : TOK_END expr", 6812 "unpar_fexpr : TOK_NAME '=' expr", 6813 "addop : '+'", 6814 "addop : '-'", 6815 "inlist : inelt", 6816 "inlist : inlist ',' inelt", 6817 "opt_lhs :", 6818 "opt_lhs : lhs", 6819 "inelt : opt_lhs opt_operation", 6820 "inelt : '(' inlist ')' opt_operation", 6821 "inelt : predefinedfunction opt_operation", 6822 "inelt : simple_const opt_operation", 6823 "inelt : '(' inlist ',' dospec ')'", 6824 "opt_operation :", 6825 "opt_operation : operation", 6826 "opt_operation : opt_operation operation", 6827 "outlist : uexpr", 6828 "outlist : other", 6829 "outlist : out2", 6830 "out2 : uexpr ',' expr", 6831 "out2 : uexpr ',' other", 6832 "out2 : other ',' expr", 6833 "out2 : other ',' other", 6834 "out2 : out2 ',' expr", 6835 "out2 : out2 ',' other", 6836 "out2 : uexpr", 6837 "out2 : predefinedfunction", 6838 "other : complex_const", 6839 "other : '(' expr ')'", 6840 "other : '(' uexpr ',' dospec ')'", 6841 "other : '(' other ',' dospec ')'", 6842 "other : '(' out2 ',' dospec ')'", 6843 "dospec : TOK_NAME '=' expr ',' expr", 6844 "dospec : TOK_NAME '=' expr ',' expr ',' expr", 6845 "labellist : label", 6846 "labellist : labellist ',' label", 6847 "label : TOK_CSTINT", 6848 "goto : TOK_PLAINGOTO '(' expr ',' expr ')' ',' expr", 6849 "goto : TOK_PLAINGOTO label", 6850 "allocation_list : allocate_object", 6851 "allocation_list : ident_dims", 6852 "allocation_list : allocation_list ',' allocate_object", 6853 "allocate_object : ident", 6854 "allocate_object : structure_component", 6855 "allocate_object : array_element", 6856 "array_element : ident '(' funargs ')'", 6857 "subscript_list : expr", 6858 "subscript_list : subscript_list ',' expr", 6859 "allocate_object_list : allocate_object", 6860 "allocate_object_list : allocate_object_list ',' allocate_object", 6861 "opt_stat_spec :", 6862 "opt_stat_spec : ',' TOK_STAT '=' ident", 6863 "pointer_name_list : ident", 6864 "pointer_name_list : pointer_name_list ',' ident", 6865 "opt_construct_name :", 6866 "opt_construct_name : TOK_NAME", 6867 "opt_construct_name_colon :", 6868 "opt_construct_name_colon : TOK_CONSTRUCTID ':'", 6869 "logif : TOK_LOGICALIF expr ')'", 6870 "do_var : ident", 6871 }; 2949 2950 # ifndef YYFPRINTF 2951 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 2952 # define YYFPRINTF fprintf 2953 # endif 2954 2955 # define YYDPRINTF(Args) \ 2956 do { \ 2957 if (yydebug) \ 2958 YYFPRINTF Args; \ 2959 } while (YYID (0)) 2960 2961 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 2962 do { \ 2963 if (yydebug) \ 2964 { \ 2965 YYFPRINTF (stderr, "%s ", Title); \ 2966 yy_symbol_print (stderr, \ 2967 Type, Value); \ 2968 YYFPRINTF (stderr, "\n"); \ 2969 } \ 2970 } while (YYID (0)) 2971 2972 2973 /*--------------------------------. 2974 | Print this symbol on YYOUTPUT. | 2975 `--------------------------------*/ 2976 2977 /*ARGSUSED*/ 2978 #if (defined __STDC__ || defined __C99__FUNC__ \ 2979 || defined __cplusplus || defined _MSC_VER) 2980 static void 2981 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 2982 #else 2983 static void 2984 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 2985 FILE *yyoutput; 2986 int yytype; 2987 YYSTYPE const * const yyvaluep; 6872 2988 #endif 6873 #ifdef YYSTACKSIZE 6874 #undef YYMAXDEPTH 6875 #define YYMAXDEPTH YYSTACKSIZE 2989 { 2990 if (!yyvaluep) 2991 return; 2992 # ifdef YYPRINT 2993 if (yytype < YYNTOKENS) 2994 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 2995 # else 2996 YYUSE (yyoutput); 2997 # endif 2998 switch (yytype) 2999 { 3000 default: 3001 break; 3002 } 3003 } 3004 3005 3006 /*--------------------------------. 3007 | Print this symbol on YYOUTPUT. | 3008 `--------------------------------*/ 3009 3010 #if (defined __STDC__ || defined __C99__FUNC__ \ 3011 || defined __cplusplus || defined _MSC_VER) 3012 static void 3013 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 6876 3014 #else 6877 #ifdef YYMAXDEPTH 6878 #define YYSTACKSIZE YYMAXDEPTH 3015 static void 3016 yy_symbol_print (yyoutput, yytype, yyvaluep) 3017 FILE *yyoutput; 3018 int yytype; 3019 YYSTYPE const * const yyvaluep; 3020 #endif 3021 { 3022 if (yytype < YYNTOKENS) 3023 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 3024 else 3025 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3026 3027 yy_symbol_value_print (yyoutput, yytype, yyvaluep); 3028 YYFPRINTF (yyoutput, ")"); 3029 } 3030 3031 /*------------------------------------------------------------------. 3032 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 3033 | TOP (included). | 3034 `------------------------------------------------------------------*/ 3035 3036 #if (defined __STDC__ || defined __C99__FUNC__ \ 3037 || defined __cplusplus || defined _MSC_VER) 3038 static void 3039 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) 6879 3040 #else 6880 #define YYSTACKSIZE 500 6881 #define YYMAXDEPTH 500 3041 static void 3042 yy_stack_print (bottom, top) 3043 yytype_int16 *bottom; 3044 yytype_int16 *top; 6882 3045 #endif 3046 { 3047 YYFPRINTF (stderr, "Stack now"); 3048 for (; bottom <= top; ++bottom) 3049 YYFPRINTF (stderr, " %d", *bottom); 3050 YYFPRINTF (stderr, "\n"); 3051 } 3052 3053 # define YY_STACK_PRINT(Bottom, Top) \ 3054 do { \ 3055 if (yydebug) \ 3056 yy_stack_print ((Bottom), (Top)); \ 3057 } while (YYID (0)) 3058 3059 3060 /*------------------------------------------------. 3061 | Report that the YYRULE is going to be reduced. | 3062 `------------------------------------------------*/ 3063 3064 #if (defined __STDC__ || defined __C99__FUNC__ \ 3065 || defined __cplusplus || defined _MSC_VER) 3066 static void 3067 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 3068 #else 3069 static void 3070 yy_reduce_print (yyvsp, yyrule) 3071 YYSTYPE *yyvsp; 3072 int yyrule; 6883 3073 #endif 3074 { 3075 int yynrhs = yyr2[yyrule]; 3076 int yyi; 3077 unsigned long int yylno = yyrline[yyrule]; 3078 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3079 yyrule - 1, yylno); 3080 /* The symbols being reduced. */ 3081 for (yyi = 0; yyi < yynrhs; yyi++) 3082 { 3083 fprintf (stderr, " $%d = ", yyi + 1); 3084 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 3085 &(yyvsp[(yyi + 1) - (yynrhs)]) 3086 ); 3087 fprintf (stderr, "\n"); 3088 } 3089 } 3090 3091 # define YY_REDUCE_PRINT(Rule) \ 3092 do { \ 3093 if (yydebug) \ 3094 yy_reduce_print (yyvsp, Rule); \ 3095 } while (YYID (0)) 3096 3097 /* Nonzero means print parse trace. It is left uninitialized so that 3098 multiple parsers can coexist. */ 6884 3099 int yydebug; 6885 int yynerrs; 6886 int yyerrflag; 6887 int yychar; 6888 short *yyssp; 6889 YYSTYPE *yyvsp; 6890 YYSTYPE yyval; 6891 YYSTYPE yylval; 6892 short yyss[YYSTACKSIZE]; 6893 YYSTYPE yyvs[YYSTACKSIZE]; 6894 #define yystacksize YYSTACKSIZE 6895 #line 2567 "fortran.y" 6896 6897 void processfortran(char *fichier_entree) 3100 #else /* !YYDEBUG */ 3101 # define YYDPRINTF(Args) 3102 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 3103 # define YY_STACK_PRINT(Bottom, Top) 3104 # define YY_REDUCE_PRINT(Rule) 3105 #endif /* !YYDEBUG */ 3106 3107 3108 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3109 #ifndef YYINITDEPTH 3110 # define YYINITDEPTH 200 3111 #endif 3112 3113 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 3114 if the built-in stack extension method is used). 3115 3116 Do not make this value too large; the results are undefined if 3117 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 3118 evaluated with infinite-precision integer arithmetic. */ 3119 3120 #ifndef YYMAXDEPTH 3121 # define YYMAXDEPTH 10000 3122 #endif 3123 3124 3125 3126 3127 #if YYERROR_VERBOSE 3128 3129 # ifndef yystrlen 3130 # if defined __GLIBC__ && defined _STRING_H 3131 # define yystrlen strlen 3132 # else 3133 /* Return the length of YYSTR. */ 3134 #if (defined __STDC__ || defined __C99__FUNC__ \ 3135 || defined __cplusplus || defined _MSC_VER) 3136 static YYSIZE_T 3137 yystrlen (const char *yystr) 3138 #else 3139 static YYSIZE_T 3140 yystrlen (yystr) 3141 const char *yystr; 3142 #endif 6898 3143 { 6899 extern FILE *fortranin; 6900 extern FILE *fortranout; 6901 char nomfile[LONG_C]; 6902 int c; 6903 int confirmyes; 6904 6905 /*fortrandebug = 1;*/ 6906 if ( mark == 1 ) printf("Firstpass == %d \n",firstpass); 6907 /******************************************************************************/ 6908 /* 1- Open input and output files */ 6909 /******************************************************************************/ 6910 strcpy(nomfile,commondirin); 6911 strcat(nomfile,"/"); 6912 strcat(nomfile,fichier_entree); 6913 fortranin=fopen( nomfile,"r"); 6914 if (! fortranin) 3144 YYSIZE_T yylen; 3145 for (yylen = 0; yystr[yylen]; yylen++) 3146 continue; 3147 return yylen; 3148 } 3149 # endif 3150 # endif 3151 3152 # ifndef yystpcpy 3153 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 3154 # define yystpcpy stpcpy 3155 # else 3156 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 3157 YYDEST. */ 3158 #if (defined __STDC__ || defined __C99__FUNC__ \ 3159 || defined __cplusplus || defined _MSC_VER) 3160 static char * 3161 yystpcpy (char *yydest, const char *yysrc) 3162 #else 3163 static char * 3164 yystpcpy (yydest, yysrc) 3165 char *yydest; 3166 const char *yysrc; 3167 #endif 3168 { 3169 char *yyd = yydest; 3170 const char *yys = yysrc; 3171 3172 while ((*yyd++ = *yys++) != '\0') 3173 continue; 3174 3175 return yyd - 1; 3176 } 3177 # endif 3178 # endif 3179 3180 # ifndef yytnamerr 3181 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 3182 quotes and backslashes, so that it's suitable for yyerror. The 3183 heuristic is that double-quoting is unnecessary unless the string 3184 contains an apostrophe, a comma, or backslash (other than 3185 backslash-backslash). YYSTR is taken from yytname. If YYRES is 3186 null, do not copy; instead, return the length of what the result 3187 would have been. */ 3188 static YYSIZE_T 3189 yytnamerr (char *yyres, const char *yystr) 3190 { 3191 if (*yystr == '"') 6915 3192 { 6916 printf("Error : File %s does not exist\n",nomfile); 6917 exit(1); 3193 YYSIZE_T yyn = 0; 3194 char const *yyp = yystr; 3195 3196 for (;;) 3197 switch (*++yyp) 3198 { 3199 case '\'': 3200 case ',': 3201 goto do_not_strip_quotes; 3202 3203 case '\\': 3204 if (*++yyp != '\\') 3205 goto do_not_strip_quotes; 3206 /* Fall through. */ 3207 default: 3208 if (yyres) 3209 yyres[yyn] = *yyp; 3210 yyn++; 3211 break; 3212 3213 case '"': 3214 if (yyres) 3215 yyres[yyn] = '\0'; 3216 return yyn; 6918 3217 } 6919 6920 strcpy(curfile,nomfile); 6921 strcpy(nomfile,commondirout); 6922 strcat(nomfile,"/"); 6923 strcat(nomfile,fichier_entree); 6924 strcpy(nomfileoutput,nomfile); 6925 Save_Length(nomfileoutput,31); 6926 if (firstpass == 1) 3218 do_not_strip_quotes: ; 3219 } 3220 3221 if (! yyres) 3222 return yystrlen (yystr); 3223 3224 return yystpcpy (yyres, yystr) - yyres; 3225 } 3226 # endif 3227 3228 /* Copy into YYRESULT an error message about the unexpected token 3229 YYCHAR while in state YYSTATE. Return the number of bytes copied, 3230 including the terminating null byte. If YYRESULT is null, do not 3231 copy anything; just return the number of bytes that would be 3232 copied. As a special case, return 0 if an ordinary "syntax error" 3233 message will do. Return YYSIZE_MAXIMUM if overflow occurs during 3234 size calculation. */ 3235 static YYSIZE_T 3236 yysyntax_error (char *yyresult, int yystate, int yychar) 3237 { 3238 int yyn = yypact[yystate]; 3239 3240 if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 3241 return 0; 3242 else 6927 3243 { 6928 if (checkexistcommon == 1) 3244 int yytype = YYTRANSLATE (yychar); 3245 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 3246 YYSIZE_T yysize = yysize0; 3247 YYSIZE_T yysize1; 3248 int yysize_overflow = 0; 3249 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 3250 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 3251 int yyx; 3252 3253 # if 0 3254 /* This is so xgettext sees the translatable formats that are 3255 constructed on the fly. */ 3256 YY_("syntax error, unexpected %s"); 3257 YY_("syntax error, unexpected %s, expecting %s"); 3258 YY_("syntax error, unexpected %s, expecting %s or %s"); 3259 YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 3260 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 3261 # endif 3262 char *yyfmt; 3263 char const *yyf; 3264 static char const yyunexpected[] = "syntax error, unexpected %s"; 3265 static char const yyexpecting[] = ", expecting %s"; 3266 static char const yyor[] = " or %s"; 3267 char yyformat[sizeof yyunexpected 3268 + sizeof yyexpecting - 1 3269 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 3270 * (sizeof yyor - 1))]; 3271 char const *yyprefix = yyexpecting; 3272 3273 /* Start YYX at -YYN if negative to avoid negative indexes in 3274 YYCHECK. */ 3275 int yyxbegin = yyn < 0 ? -yyn : 0; 3276 3277 /* Stay within bounds of both yycheck and yytname. */ 3278 int yychecklim = YYLAST - yyn + 1; 3279 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 3280 int yycount = 1; 3281 3282 yyarg[0] = yytname[yytype]; 3283 yyfmt = yystpcpy (yyformat, yyunexpected); 3284 3285 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 3286 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 6929 3287 { 6930 if (fopen(nomfile,"r"))3288 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 6931 3289 { 6932 printf("Warning : file %s already exist\n",nomfile); 6933 confirmyes = 0; 6934 while (confirmyes==0) 3290 yycount = 1; 3291 yysize = yysize0; 3292 yyformat[sizeof yyunexpected - 1] = '\0'; 3293 break; 3294 } 3295 yyarg[yycount++] = yytname[yyx]; 3296 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 3297 yysize_overflow |= (yysize1 < yysize); 3298 yysize = yysize1; 3299 yyfmt = yystpcpy (yyfmt, yyprefix); 3300 yyprefix = yyor; 3301 } 3302 3303 yyf = YY_(yyformat); 3304 yysize1 = yysize + yystrlen (yyf); 3305 yysize_overflow |= (yysize1 < yysize); 3306 yysize = yysize1; 3307 3308 if (yysize_overflow) 3309 return YYSIZE_MAXIMUM; 3310 3311 if (yyresult) 6935 3312 { 6936 printf("Override file %s ? [Y/N]\n",nomfile); 6937 c=getchar(); 6938 getchar(); 6939 if (c==79 || c==110) 3313 /* Avoid sprintf, as that infringes on the user's name space. 3314 Don't have undefined behavior even if the translation 3315 produced a string with the wrong number of "%s"s. */ 3316 char *yyp = yyresult; 3317 int yyi = 0; 3318 while ((*yyp = *yyf) != '\0') 6940 3319 { 6941 printf("We stop\n"); 6942 exit(1); 3320 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 3321 { 3322 yyp += yytnamerr (yyp, yyarg[yyi++]); 3323 yyf += 2; 6943 3324 } 6944 if (c==89 || c==121) 3325 else 6945 3326 { 6946 confirmyes=1; 3327 yyp++; 3328 yyf++; 6947 3329 } 6948 3330 } 6949 3331 } 3332 return yysize; 6950 3333 } 3334 } 3335 #endif /* YYERROR_VERBOSE */ 3336 3337 3338 3339 /*-----------------------------------------------. 3340 | Release the memory associated to this symbol. | 3341 `-----------------------------------------------*/ 3342 3343 /*ARGSUSED*/ 3344 #if (defined __STDC__ || defined __C99__FUNC__ \ 3345 || defined __cplusplus || defined _MSC_VER) 3346 static void 3347 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 3348 #else 3349 static void 3350 yydestruct (yymsg, yytype, yyvaluep) 3351 const char *yymsg; 3352 int yytype; 3353 YYSTYPE *yyvaluep; 3354 #endif 3355 { 3356 YYUSE (yyvaluep); 3357 3358 if (!yymsg) 3359 yymsg = "Deleting"; 3360 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 3361 3362 switch (yytype) 3363 { 3364 3365 default: 3366 break; 6951 3367 } 6952 6953 /******************************************************************************/6954 /* 2- Variables initialization */6955 /******************************************************************************/6956 6957 line_num_fortran_common=1;6958 line_num_fortran=1;6959 PublicDeclare = 0;6960 PrivateDeclare = 0;6961 ExternalDeclare = 0;6962 SaveDeclare = 0;6963 pointerdeclare = 0;6964 optionaldeclare = 0;6965 incalldeclare = 0;6966 VarType = 0;6967 VarTypepar = 0;6968 Allocatabledeclare = 0 ;6969 strcpy(NamePrecision," ");6970 VariableIsParameter = 0 ;6971 strcpy(NamePrecision,"");6972 c_star = 0 ;6973 functiondeclarationisdone = 0;6974 insubroutinedeclare = 0 ;6975 strcpy(subroutinename," ");6976 InitialValueGiven = 0 ;6977 strcpy(EmptyChar," ");6978 inmoduledeclare = 0;6979 colnum=0;6980 incom=0;6981 couldaddvariable=1;6982 aftercontainsdeclare = 1;6983 strcpy(nameinttypename,"");6984 /* Name of the file without format */6985 tmp = strchr(fichier_entree, '.');6986 strncpy(curfilename,fichier_entree,strlen(fichier_entree)-strlen(tmp));6987 Save_Length(curfilename,30);6988 /******************************************************************************/6989 /* 3- Parsing of the input file (1 time) */6990 /******************************************************************************/6991 if (firstpass == 0 )6992 {6993 fortranout=fopen(nomfileoutput,"w");6994 6995 NewModule_Creation_0();6996 }6997 6998 fortranparse();6999 7000 strcpy(curfile,mainfile);7001 7002 if (firstpass == 0 ) fclose(fortranout);7003 3368 } 7004 #line 7005 "y.tab.c" 7005 #define YYABORT goto yyabort 7006 #define YYREJECT goto yyabort 7007 #define YYACCEPT goto yyaccept 7008 #define YYERROR goto yyerrlab 3369 3370 3371 3372 /* Prevent warnings from -Wmissing-prototypes. */ 3373 3374 #ifdef YYPARSE_PARAM 3375 #if defined __STDC__ || defined __cplusplus 3376 int yyparse (void *YYPARSE_PARAM); 3377 #else 3378 int yyparse (); 3379 #endif 3380 #else /* ! YYPARSE_PARAM */ 3381 #if defined __STDC__ || defined __cplusplus 3382 int yyparse (void); 3383 #else 3384 int yyparse (); 3385 #endif 3386 #endif /* ! YYPARSE_PARAM */ 3387 3388 3389 3390 /* The look-ahead symbol. */ 3391 int yychar; 3392 3393 /* The semantic value of the look-ahead symbol. */ 3394 YYSTYPE yylval; 3395 3396 /* Number of syntax errors so far. */ 3397 int yynerrs; 3398 3399 3400 3401 /*----------. 3402 | yyparse. | 3403 `----------*/ 3404 3405 #ifdef YYPARSE_PARAM 3406 #if (defined __STDC__ || defined __C99__FUNC__ \ 3407 || defined __cplusplus || defined _MSC_VER) 7009 3408 int 7010 yyparse() 3409 yyparse (void *YYPARSE_PARAM) 3410 #else 3411 int 3412 yyparse (YYPARSE_PARAM) 3413 void *YYPARSE_PARAM; 3414 #endif 3415 #else /* ! YYPARSE_PARAM */ 3416 #if (defined __STDC__ || defined __C99__FUNC__ \ 3417 || defined __cplusplus || defined _MSC_VER) 3418 int 3419 yyparse (void) 3420 #else 3421 int 3422 yyparse () 3423 3424 #endif 3425 #endif 7011 3426 { 7012 register int yym, yyn, yystate; 7013 #if YYDEBUG 7014 register char *yys; 7015 extern char *getenv(); 7016 7017 if (yys = getenv("YYDEBUG")) 7018 { 7019 yyn = *yys; 7020 if (yyn >= '0' && yyn <= '9') 7021 yydebug = yyn - '0'; 7022 } 3427 3428 int yystate; 3429 int yyn; 3430 int yyresult; 3431 /* Number of tokens to shift before error messages enabled. */ 3432 int yyerrstatus; 3433 /* Look-ahead token as an internal (translated) token number. */ 3434 int yytoken = 0; 3435 #if YYERROR_VERBOSE 3436 /* Buffer for error messages, and its allocated size. */ 3437 char yymsgbuf[128]; 3438 char *yymsg = yymsgbuf; 3439 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 7023 3440 #endif 7024 3441 3442 /* Three stacks and their tools: 3443 `yyss': related to states, 3444 `yyvs': related to semantic values, 3445 `yyls': related to locations. 3446 3447 Refer to the stacks thru separate pointers, to allow yyoverflow 3448 to reallocate them elsewhere. */ 3449 3450 /* The state stack. */ 3451 yytype_int16 yyssa[YYINITDEPTH]; 3452 yytype_int16 *yyss = yyssa; 3453 yytype_int16 *yyssp; 3454 3455 /* The semantic value stack. */ 3456 YYSTYPE yyvsa[YYINITDEPTH]; 3457 YYSTYPE *yyvs = yyvsa; 3458 YYSTYPE *yyvsp; 3459 3460 3461 3462 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 3463 3464 YYSIZE_T yystacksize = YYINITDEPTH; 3465 3466 /* The variables used to return semantic value and location from the 3467 action routines. */ 3468 YYSTYPE yyval; 3469 3470 3471 /* The number of symbols on the RHS of the reduced rule. 3472 Keep to zero when no symbol should be popped. */ 3473 int yylen = 0; 3474 3475 YYDPRINTF ((stderr, "Starting parse\n")); 3476 3477 yystate = 0; 3478 yyerrstatus = 0; 7025 3479 yynerrs = 0; 7026 yyerrflag = 0; 7027 yychar = (-1); 3480 yychar = YYEMPTY; /* Cause a token to be read. */ 3481 3482 /* Initialize stack pointers. 3483 Waste one element of value and location stack 3484 so that they stay on the same level as the state stack. 3485 The wasted elements are never initialized. */ 7028 3486 7029 3487 yyssp = yyss; 7030 3488 yyvsp = yyvs; 7031 *yyssp = yystate = 0; 7032 7033 yyloop: 7034 if (yyn = yydefred[yystate]) goto yyreduce; 7035 if (yychar < 0) 7036 { 7037 if ((yychar = yylex()) < 0) yychar = 0; 7038 #if YYDEBUG 7039 if (yydebug) 3489 3490 goto yysetstate; 3491 3492 /*------------------------------------------------------------. 3493 | yynewstate -- Push a new state, which is found in yystate. | 3494 `------------------------------------------------------------*/ 3495 yynewstate: 3496 /* In all cases, when you get here, the value and location stacks 3497 have just been pushed. So pushing a state here evens the stacks. */ 3498 yyssp++; 3499 3500 yysetstate: 3501 *yyssp = yystate; 3502 3503 if (yyss + yystacksize - 1 <= yyssp) 3504 { 3505 /* Get the current used size of the three stacks, in elements. */ 3506 YYSIZE_T yysize = yyssp - yyss + 1; 3507 3508 #ifdef yyoverflow 7040 3509 { 7041 yys = 0; 7042 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 7043 if (!yys) yys = "illegal-symbol"; 7044 printf("%sdebug: state %d, reading %d (%s)\n", 7045 YYPREFIX, yystate, yychar, yys); 3510 /* Give user a chance to reallocate the stack. Use copies of 3511 these so that the &'s don't force the real ones into 3512 memory. */ 3513 YYSTYPE *yyvs1 = yyvs; 3514 yytype_int16 *yyss1 = yyss; 3515 3516 3517 /* Each stack pointer address is followed by the size of the 3518 data in use in that stack, in bytes. This used to be a 3519 conditional around just the two extra args, but that might 3520 be undefined if yyoverflow is a macro. */ 3521 yyoverflow (YY_("memory exhausted"), 3522 &yyss1, yysize * sizeof (*yyssp), 3523 &yyvs1, yysize * sizeof (*yyvsp), 3524 3525 &yystacksize); 3526 3527 yyss = yyss1; 3528 yyvs = yyvs1; 7046 3529 } 7047 #endif 3530 #else /* no yyoverflow */ 3531 # ifndef YYSTACK_RELOCATE 3532 goto yyexhaustedlab; 3533 # else 3534 /* Extend the stack our own way. */ 3535 if (YYMAXDEPTH <= yystacksize) 3536 goto yyexhaustedlab; 3537 yystacksize *= 2; 3538 if (YYMAXDEPTH < yystacksize) 3539 yystacksize = YYMAXDEPTH; 3540 3541 { 3542 yytype_int16 *yyss1 = yyss; 3543 union yyalloc *yyptr = 3544 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 3545 if (! yyptr) 3546 goto yyexhaustedlab; 3547 YYSTACK_RELOCATE (yyss); 3548 YYSTACK_RELOCATE (yyvs); 3549 3550 # undef YYSTACK_RELOCATE 3551 if (yyss1 != yyssa) 3552 YYSTACK_FREE (yyss1); 3553 } 3554 # endif 3555 #endif /* no yyoverflow */ 3556 3557 yyssp = yyss + yysize - 1; 3558 yyvsp = yyvs + yysize - 1; 3559 3560 3561 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 3562 (unsigned long int) yystacksize)); 3563 3564 if (yyss + yystacksize - 1 <= yyssp) 3565 YYABORT; 7048 3566 } 7049 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && 7050 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 7051 { 7052 #if YYDEBUG 7053 if (yydebug) 7054 printf("%sdebug: state %d, shifting to state %d\n", 7055 YYPREFIX, yystate, yytable[yyn]); 7056 #endif 7057 if (yyssp >= yyss + yystacksize - 1) 7058 { 7059 goto yyoverflow; 7060 } 7061 *++yyssp = yystate = yytable[yyn]; 7062 *++yyvsp = yylval; 7063 yychar = (-1); 7064 if (yyerrflag > 0) --yyerrflag; 7065 goto yyloop; 3567 3568 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 3569 3570 goto yybackup; 3571 3572 /*-----------. 3573 | yybackup. | 3574 `-----------*/ 3575 yybackup: 3576 3577 /* Do appropriate processing given the current state. Read a 3578 look-ahead token if we need one and don't already have one. */ 3579 3580 /* First try to decide what to do without reference to look-ahead token. */ 3581 yyn = yypact[yystate]; 3582 if (yyn == YYPACT_NINF) 3583 goto yydefault; 3584 3585 /* Not known => get a look-ahead token if don't already have one. */ 3586 3587 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ 3588 if (yychar == YYEMPTY) 3589 { 3590 YYDPRINTF ((stderr, "Reading a token: ")); 3591 yychar = YYLEX; 7066 3592 } 7067 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && 7068 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 7069 { 7070 yyn = yytable[yyn]; 7071 goto yyreduce; 7072 } 7073 if (yyerrflag) goto yyinrecovery; 7074 #ifdef lint 7075 goto yynewerror; 7076 #endif 7077 yynewerror: 7078 yyerror("syntax error"); 7079 #ifdef lint 7080 goto yyerrlab; 7081 #endif 7082 yyerrlab: 7083 ++yynerrs; 7084 yyinrecovery: 7085 if (yyerrflag < 3) 7086 { 7087 yyerrflag = 3; 7088 for (;;) 7089 { 7090 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && 7091 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) 7092 { 7093 #if YYDEBUG 7094 if (yydebug) 7095 printf("%sdebug: state %d, error recovery shifting\ 7096 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); 7097 #endif 7098 if (yyssp >= yyss + yystacksize - 1) 7099 { 7100 goto yyoverflow; 3593 3594 if (yychar <= YYEOF) 3595 { 3596 yychar = yytoken = YYEOF; 3597 YYDPRINTF ((stderr, "Now at end of input.\n")); 7101 3598 } 7102 *++yyssp = yystate = yytable[yyn];7103 *++yyvsp = yylval;7104 goto yyloop;7105 }7106 3599 else 7107 3600 { 7108 #if YYDEBUG 7109 if (yydebug) 7110 printf("%sdebug: error recovery discarding state %d\n", 7111 YYPREFIX, *yyssp); 7112 #endif 7113 if (yyssp <= yyss) goto yyabort; 7114 --yyssp; 7115 --yyvsp; 3601 yytoken = YYTRANSLATE (yychar); 3602 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 7116 3603 } 3604 3605 /* If the proper action on seeing token YYTOKEN is to reduce or to 3606 detect an error, take that action. */ 3607 yyn += yytoken; 3608 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 3609 goto yydefault; 3610 yyn = yytable[yyn]; 3611 if (yyn <= 0) 3612 { 3613 if (yyn == 0 || yyn == YYTABLE_NINF) 3614 goto yyerrlab; 3615 yyn = -yyn; 3616 goto yyreduce; 7117 3617 } 7118 } 7119 else 7120 { 7121 if (yychar == 0) goto yyabort; 7122 #if YYDEBUG 7123 if (yydebug) 7124 { 7125 yys = 0; 7126 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 7127 if (!yys) yys = "illegal-symbol"; 7128 printf("%sdebug: state %d, error recovery discards token %d (%s)\n", 7129 YYPREFIX, yystate, yychar, yys); 7130 } 7131 #endif 7132 yychar = (-1); 7133 goto yyloop; 7134 } 3618 3619 if (yyn == YYFINAL) 3620 YYACCEPT; 3621 3622 /* Count tokens shifted since error; after three, turn off error 3623 status. */ 3624 if (yyerrstatus) 3625 yyerrstatus--; 3626 3627 /* Shift the look-ahead token. */ 3628 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 3629 3630 /* Discard the shifted token unless it is eof. */ 3631 if (yychar != YYEOF) 3632 yychar = YYEMPTY; 3633 3634 yystate = yyn; 3635 *++yyvsp = yylval; 3636 3637 goto yynewstate; 3638 3639 3640 /*-----------------------------------------------------------. 3641 | yydefault -- do the default action for the current state. | 3642 `-----------------------------------------------------------*/ 3643 yydefault: 3644 yyn = yydefact[yystate]; 3645 if (yyn == 0) 3646 goto yyerrlab; 3647 goto yyreduce; 3648 3649 3650 /*-----------------------------. 3651 | yyreduce -- Do a reduction. | 3652 `-----------------------------*/ 7135 3653 yyreduce: 7136 #if YYDEBUG 7137 if (yydebug) 7138 printf("%sdebug: state %d, reducing by rule %d (%s)\n", 7139 YYPREFIX, yystate, yyn, yyrule[yyn]); 7140 #endif 7141 yym = yylen[yyn]; 7142 yyval = yyvsp[1-yym]; 3654 /* yyn is the number of a rule to reduce with. */ 3655 yylen = yyr2[yyn]; 3656 3657 /* If YYLEN is nonzero, implement the default value of the action: 3658 `$$ = $1'. 3659 3660 Otherwise, the following line sets YYVAL to garbage. 3661 This behavior is undocumented and Bison 3662 users should not rely upon it. Assigning to YYVAL 3663 unconditionally makes the parser a bit smaller, and it avoids a 3664 GCC warning that YYVAL may be used uninitialized. */ 3665 yyval = yyvsp[1-yylen]; 3666 3667 3668 YY_REDUCE_PRINT (yyn); 7143 3669 switch (yyn) 7144 3670 { 7145 case 7: 7146 #line 341 "fortran.y" 7147 {yyerrok;yyclearin;} 7148 break; 7149 case 12: 7150 #line 349 "fortran.y" 7151 { 3671 case 8: 3672 #line 344 "fortran.y" 3673 {yyerrok;yyclearin;;} 3674 break; 3675 3676 case 13: 3677 #line 352 "fortran.y" 3678 { 7152 3679 if (inmoduledeclare == 0 ) 7153 3680 { … … 7156 3683 pos_end-pos_curinclude); 7157 3684 } 7158 } 7159 break; 7160 case 17: 7161 #line 365 "fortran.y" 7162 { 3685 ;} 3686 break; 3687 3688 case 18: 3689 #line 368 "fortran.y" 3690 { 7163 3691 /* we should ignore the declaration until the keyword */ 7164 3692 /* TOK_ENDDONOTTREAT */ 7165 3693 couldaddvariable = 0 ; 7166 3694 RemoveWordCUR_0(fortranout,-20,20); 7167 } 7168 break; 7169 case 18: 7170 #line 372 "fortran.y" 7171 { 3695 ;} 3696 break; 3697 3698 case 19: 3699 #line 375 "fortran.y" 3700 { 7172 3701 couldaddvariable = 1 ; 7173 3702 RemoveWordCUR_0(fortranout,-24,24); 7174 } 7175 break; 7176 case 21: 7177 #line 379 "fortran.y" 7178 {pos_cur = setposcur();} 7179 break; 7180 case 26: 7181 #line 388 "fortran.y" 7182 {incom = 1;} 7183 break; 7184 case 27: 7185 #line 391 "fortran.y" 7186 {if (incom !=1) {strcpy(curbuf,"");incom=0;}} 7187 break; 7188 case 31: 7189 #line 398 "fortran.y" 7190 { 7191 if ( couldaddvariable == 1 ) 3703 ;} 3704 break; 3705 3706 case 22: 3707 #line 382 "fortran.y" 3708 {pos_cur = setposcur();;} 3709 break; 3710 3711 case 27: 3712 #line 394 "fortran.y" 3713 {if (incom !=1) {strcpy(curbuf,"");incom=0;};} 3714 break; 3715 3716 case 28: 3717 #line 397 "fortran.y" 3718 {isrecursive = 0;;} 3719 break; 3720 3721 case 29: 3722 #line 399 "fortran.y" 3723 {isrecursive = 1;;} 3724 break; 3725 3726 case 31: 3727 #line 403 "fortran.y" 3728 { 3729 if ( couldaddvariable == 1) 7192 3730 { 7193 3731 /* open param file */ 7194 3732 if ( firstpass == 0 ) 7195 3733 { 7196 sprintf(ligne,"%s/ParamFile%s.h",nomdir, yyvsp[-1].nac);3734 sprintf(ligne,"%s/ParamFile%s.h",nomdir,(yyvsp[(3) - (4)].nac)); 7197 3735 paramout=fopen(ligne,"w"); 7198 3736 if ( retour77 == 0 ) fprintf(paramout,"!\n"); … … 7200 3738 7201 3739 } 7202 Add_SubroutineArgument_Var_1( yyvsp[0].l);3740 Add_SubroutineArgument_Var_1((yyvsp[(4) - (4)].l)); 7203 3741 if ( inmodulemeet == 1 ) 7204 3742 { … … 7214 3752 } 7215 3753 } 7216 } 7217 break; 7218 case 32: 7219 #line 426 "fortran.y" 7220 { 3754 ;} 3755 break; 3756 3757 case 32: 3758 #line 431 "fortran.y" 3759 { 7221 3760 /* open param file */ 7222 3761 if ( firstpass == 0 ) 7223 3762 { 7224 sprintf(ligne,"%s/ParamFile%s.h",nomdir, yyvsp[0].nac);3763 sprintf(ligne,"%s/ParamFile%s.h",nomdir,(yyvsp[(2) - (2)].nac)); 7225 3764 paramout=fopen(ligne,"w"); 7226 3765 if ( retour77 == 0 ) fprintf(paramout,"!\n"); … … 7228 3767 7229 3768 } 7230 strcpy(subroutinename, yyvsp[0].nac);3769 strcpy(subroutinename,(yyvsp[(2) - (2)].nac)); 7231 3770 /* Common case */ 7232 3771 insubroutinedeclare = 1; … … 7234 3773 /* the subroutine sub_loop_<subroutinename> */ 7235 3774 writeheadnewsub_0(1); 7236 } 7237 break; 7238 case 33: 7239 #line 444 "fortran.y" 7240 { 3775 ;} 3776 break; 3777 3778 case 33: 3779 #line 449 "fortran.y" 3780 { 7241 3781 /* open param file */ 7242 3782 if ( firstpass == 0 ) 7243 3783 { 7244 sprintf(ligne,"%s/ParamFile%s.h",nomdir, yyvsp[-3].nac);3784 sprintf(ligne,"%s/ParamFile%s.h",nomdir,(yyvsp[(2) - (5)].nac)); 7245 3785 paramout=fopen(ligne,"w"); 7246 3786 if ( retour77 == 0 ) fprintf(paramout,"!\n"); 7247 3787 else fprintf(paramout,"C\n"); 7248 3788 } 7249 strcpy(subroutinename, yyvsp[-3].nac);3789 strcpy(subroutinename,(yyvsp[(2) - (5)].nac)); 7250 3790 if ( inmodulemeet == 1 ) 7251 3791 { … … 7253 3793 /* we should to list of the subroutine argument the */ 7254 3794 /* name of the function which has to be defined */ 7255 Add_SubroutineArgument_Var_1( yyvsp[-2].l);3795 Add_SubroutineArgument_Var_1((yyvsp[(3) - (5)].l)); 7256 3796 strcpy(DeclType,""); 7257 3797 /* in the second step we should write the head of */ … … 7264 3804 /* we should to list of the subroutine argument */ 7265 3805 /* name of the function which has to be defined */ 7266 Add_SubroutineArgument_Var_1( yyvsp[-2].l);3806 Add_SubroutineArgument_Var_1((yyvsp[(3) - (5)].l)); 7267 3807 strcpy(DeclType,""); 7268 Add_FunctionType_Var_1( yyvsp[-3].nac);3808 Add_FunctionType_Var_1((yyvsp[(2) - (5)].nac)); 7269 3809 writeheadnewsub_0(2); 7270 3810 } 7271 } 7272 break; 7273 case 34: 7274 #line 477 "fortran.y" 7275 { 3811 ;} 3812 break; 3813 3814 case 34: 3815 #line 482 "fortran.y" 3816 { 7276 3817 /* open param file */ 7277 3818 if ( firstpass == 0 ) 7278 3819 { 7279 sprintf(ligne,"%s/ParamFile%s.h",nomdir, yyvsp[-1].nac);3820 sprintf(ligne,"%s/ParamFile%s.h",nomdir,(yyvsp[(2) - (3)].nac)); 7280 3821 paramout=fopen(ligne,"w"); 7281 3822 if ( retour77 == 0 ) fprintf(paramout,"!\n"); 7282 3823 else fprintf(paramout,"C\n"); 7283 3824 } 7284 strcpy(subroutinename, yyvsp[-1].nac);3825 strcpy(subroutinename,(yyvsp[(2) - (3)].nac)); 7285 3826 if ( inmodulemeet == 1 ) 7286 3827 { … … 7288 3829 /* we should to list of the subroutine argument the */ 7289 3830 /* name of the function which has to be defined */ 7290 Add_SubroutineArgument_Var_1( yyvsp[0].l);3831 Add_SubroutineArgument_Var_1((yyvsp[(3) - (3)].l)); 7291 3832 strcpy(DeclType,""); 7292 Add_FunctionType_Var_1( yyvsp[-1].nac);3833 Add_FunctionType_Var_1((yyvsp[(2) - (3)].nac)); 7293 3834 /* in the second step we should write the head of */ 7294 3835 /* the subroutine sub_loop_<subroutinename> */ … … 7300 3841 /* we should to list of the subroutine argument */ 7301 3842 /* name of the function which has to be defined */ 7302 Add_SubroutineArgument_Var_1( yyvsp[0].l);3843 Add_SubroutineArgument_Var_1((yyvsp[(3) - (3)].l)); 7303 3844 strcpy(DeclType,""); 7304 Add_FunctionType_Var_1( yyvsp[-1].nac);3845 Add_FunctionType_Var_1((yyvsp[(2) - (3)].nac)); 7305 3846 writeheadnewsub_0(2); 7306 3847 } 7307 } 7308 break; 7309 case 35: 7310 #line 511 "fortran.y" 7311 { 3848 ;} 3849 break; 3850 3851 case 35: 3852 #line 516 "fortran.y" 3853 { 7312 3854 GlobalDeclaration = 0; 7313 strcpy(curmodulename, yyvsp[0].nac);3855 strcpy(curmodulename,(yyvsp[(2) - (2)].nac)); 7314 3856 strcpy(subroutinename,""); 7315 Add_NameOfModule_1( yyvsp[0].nac);3857 Add_NameOfModule_1((yyvsp[(2) - (2)].nac)); 7316 3858 if ( inmoduledeclare == 0 ) 7317 3859 { … … 7323 3865 aftercontainsdeclare = 0 ; 7324 3866 } 7325 } 7326 break; 7327 case 36: 7328 #line 528 "fortran.y" 7329 { 3867 ;} 3868 break; 3869 3870 case 36: 3871 #line 533 "fortran.y" 3872 { 7330 3873 if ( couldaddvariable == 1 ) 7331 3874 { 7332 strcpy( yyval.nac,yyvsp[0].nac);strcpy(subroutinename,yyvsp[0].nac);3875 strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));strcpy(subroutinename,(yyvsp[(1) - (1)].nac)); 7333 3876 } 7334 } 7335 break; 7336 case 38: 7337 #line 537 "fortran.y" 7338 { 3877 ;} 3878 break; 3879 3880 case 38: 3881 #line 542 "fortran.y" 3882 { 7339 3883 pos_curinclude = setposcur()-9; 7340 } 7341 break; 7342 case 39: 7343 #line 541 "fortran.y" 7344 { 7345 if ( couldaddvariable == 1 ) Add_Include_1(yyvsp[0].nac); 7346 } 7347 break; 7348 case 40: 7349 #line 545 "fortran.y" 7350 { 7351 if ( firstpass == 1 && couldaddvariable == 1) yyval.l=NULL; 7352 } 7353 break; 7354 case 41: 7355 #line 548 "fortran.y" 7356 { 7357 if ( firstpass == 1 && couldaddvariable == 1 ) yyval.l=NULL; 7358 } 7359 break; 7360 case 42: 7361 #line 552 "fortran.y" 7362 { 7363 if ( firstpass == 1 && couldaddvariable == 1 ) yyval.l=yyvsp[-1].l; 7364 } 7365 break; 7366 case 45: 7367 #line 559 "fortran.y" 7368 { 3884 ;} 3885 break; 3886 3887 case 39: 3888 #line 546 "fortran.y" 3889 { 3890 if ( couldaddvariable == 1 ) Add_Include_1((yyvsp[(1) - (1)].nac)); 3891 ;} 3892 break; 3893 3894 case 40: 3895 #line 550 "fortran.y" 3896 { 3897 if ( firstpass == 1 && couldaddvariable == 1) (yyval.l)=NULL; 3898 ;} 3899 break; 3900 3901 case 41: 3902 #line 553 "fortran.y" 3903 { 3904 if ( firstpass == 1 && couldaddvariable == 1 ) (yyval.l)=NULL; 3905 ;} 3906 break; 3907 3908 case 42: 3909 #line 557 "fortran.y" 3910 { 3911 if ( firstpass == 1 && couldaddvariable == 1 ) (yyval.l)=(yyvsp[(2) - (3)].l); 3912 ;} 3913 break; 3914 3915 case 45: 3916 #line 564 "fortran.y" 3917 { 7369 3918 if ( couldaddvariable == 1 ) 7370 3919 { 7371 Add_SubroutineArgument_Var_1( yyvsp[-1].l);3920 Add_SubroutineArgument_Var_1((yyvsp[(2) - (3)].l)); 7372 3921 } 7373 } 7374 break; 7375 case 46: 7376 #line 566 "fortran.y" 7377 { 3922 ;} 3923 break; 3924 3925 case 46: 3926 #line 571 "fortran.y" 3927 { 7378 3928 if ( firstpass == 1 && couldaddvariable == 1) 7379 3929 { 7380 3930 strcpy(nameinttypenameback,nameinttypename); 7381 3931 strcpy(nameinttypename,""); 7382 curvar=createvar( yyvsp[0].na,NULL);3932 curvar=createvar((yyvsp[(1) - (1)].na),NULL); 7383 3933 strcpy(nameinttypename,nameinttypenameback); 7384 3934 curlistvar=insertvar(NULL,curvar); 7385 yyval.l=settype("",curlistvar);3935 (yyval.l)=settype("",curlistvar); 7386 3936 } 7387 } 7388 break; 7389 case 47: 7390 #line 578 "fortran.y" 7391 { 3937 ;} 3938 break; 3939 3940 case 47: 3941 #line 583 "fortran.y" 3942 { 7392 3943 if ( firstpass == 1 && couldaddvariable == 1) 7393 3944 { 7394 3945 strcpy(nameinttypenameback,nameinttypename); 7395 3946 strcpy(nameinttypename,""); 7396 curvar=createvar( yyvsp[0].na,NULL);3947 curvar=createvar((yyvsp[(3) - (3)].na),NULL); 7397 3948 strcpy(nameinttypename,nameinttypenameback); 7398 yyval.l=insertvar(yyvsp[-2].l,curvar);3949 (yyval.l)=insertvar((yyvsp[(1) - (3)].l),curvar); 7399 3950 } 7400 } 7401 break; 7402 case 48: 7403 #line 589 "fortran.y" 7404 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].nac);} 7405 break; 7406 case 49: 7407 #line 590 "fortran.y" 7408 {if ( couldaddvariable == 1 ) strcpy(yyval.na,"*");} 7409 break; 7410 case 50: 7411 #line 593 "fortran.y" 7412 { 3951 ;} 3952 break; 3953 3954 case 48: 3955 #line 594 "fortran.y" 3956 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].nac));;} 3957 break; 3958 3959 case 49: 3960 #line 595 "fortran.y" 3961 {if ( couldaddvariable == 1 ) strcpy((yyval.na),"*");;} 3962 break; 3963 3964 case 50: 3965 #line 598 "fortran.y" 3966 { 7413 3967 if ( VarTypepar == 1 ) 7414 3968 { … … 7416 3970 VarTypepar = 0; 7417 3971 } 7418 } 7419 break; 7420 case 51: 7421 #line 601 "fortran.y" 7422 { 3972 ;} 3973 break; 3974 3975 case 51: 3976 #line 606 "fortran.y" 3977 { 7423 3978 if ( couldaddvariable == 1 ) 7424 3979 { … … 7426 3981 couldaddvariable = 0 ; 7427 3982 } 7428 } 7429 break; 7430 case 52: 7431 #line 609 "fortran.y" 7432 { 3983 ;} 3984 break; 3985 3986 case 52: 3987 #line 614 "fortran.y" 3988 { 7433 3989 if ( VarType == 1 ) couldaddvariable = 1 ; 7434 3990 VarType = 0; 7435 3991 VarTypepar = 0; 7436 } 7437 break; 7438 case 54: 7439 #line 616 "fortran.y" 7440 { 3992 ;} 3993 break; 3994 3995 case 54: 3996 #line 621 "fortran.y" 3997 { 7441 3998 if ( couldaddvariable == 1 ) 7442 3999 { 7443 4000 if ( insubroutinedeclare == 0 ) 7444 Add_GlobalParameter_Var_1(yyvsp[-1].l); 7445 else Add_Parameter_Var_1(yyvsp[-1].l); 4001 { 4002 Add_GlobalParameter_Var_1((yyvsp[(3) - (4)].l)); 4003 } 4004 else Add_Parameter_Var_1((yyvsp[(3) - (4)].l)); 7446 4005 pos_end = setposcur(); 7447 4006 RemoveWordSET_0(fortranout,pos_cur_decl, … … 7449 4008 } 7450 4009 VariableIsParameter = 0 ; 7451 } 7452 break; 7453 case 55: 7454 #line 629 "fortran.y" 7455 { 4010 ;} 4011 break; 4012 4013 case 55: 4014 #line 636 "fortran.y" 4015 { 7456 4016 if ( couldaddvariable == 1 ) 7457 4017 { 7458 4018 if ( insubroutinedeclare == 0 ) 7459 Add_GlobalParameter_Var_1( yyvsp[0].l);7460 else Add_Parameter_Var_1( yyvsp[0].l);4019 Add_GlobalParameter_Var_1((yyvsp[(2) - (2)].l)); 4020 else Add_Parameter_Var_1((yyvsp[(2) - (2)].l)); 7461 4021 pos_end = setposcur(); 7462 4022 RemoveWordSET_0(fortranout,pos_cur_decl, … … 7464 4024 } 7465 4025 VariableIsParameter = 0 ; 7466 } 7467 break; 7468 case 57: 7469 #line 643 "fortran.y" 7470 { 4026 ;} 4027 break; 4028 4029 case 57: 4030 #line 650 "fortran.y" 4031 { 7471 4032 pos_end = setposcur(); 7472 4033 RemoveWordSET_0(fortranout,pos_cursave, 7473 4034 pos_end-pos_cursave); 7474 } 7475 break; 7476 case 59: 7477 #line 650 "fortran.y" 7478 { 4035 ;} 4036 break; 4037 4038 case 59: 4039 #line 657 "fortran.y" 4040 { 7479 4041 /* if the variable is a parameter we can suppose that is */ 7480 4042 /* value is the same on each grid. It is not useless to */ … … 7482 4044 if ( couldaddvariable == 1 ) 7483 4045 { 7484 Add_Globliste_1( yyvsp[0].l);4046 Add_Globliste_1((yyvsp[(1) - (1)].l)); 7485 4047 /* if variableparamlists has been declared in a */ 7486 4048 /* subroutine */ 7487 4049 if ( insubroutinedeclare == 1 ) 7488 4050 { 7489 Add_Dimension_Var_1( yyvsp[0].l);4051 Add_Dimension_Var_1((yyvsp[(1) - (1)].l)); 7490 4052 } 7491 4053 pos_end = setposcur(); … … 7503 4065 VariableIsParameter = 0 ; 7504 4066 Allocatabledeclare = 0 ; 4067 Targetdeclare = 0 ; 7505 4068 SaveDeclare = 0; 7506 4069 pointerdeclare = 0; … … 7510 4073 strcpy(nameinttypename,""); 7511 4074 strcpy(c_selectorname,""); 7512 } 7513 break; 7514 case 60: 7515 #line 686 "fortran.y" 7516 { 4075 ;} 4076 break; 4077 4078 case 60: 4079 #line 694 "fortran.y" 4080 { 7517 4081 if (firstpass == 0) 7518 4082 { 7519 if ( yyvsp[0].lnn)4083 if ((yyvsp[(1) - (1)].lnn)) 7520 4084 { 7521 removeglobfromlist(&( yyvsp[0].lnn));4085 removeglobfromlist(&((yyvsp[(1) - (1)].lnn))); 7522 4086 pos_end = setposcur(); 7523 4087 RemoveWordSET_0(fortranout,pos_cur,pos_end-pos_cur); 7524 writelistpublic( yyvsp[0].lnn);4088 writelistpublic((yyvsp[(1) - (1)].lnn)); 7525 4089 } 7526 4090 } 7527 } 7528 break; 7529 case 70: 7530 #line 708 "fortran.y" 7531 { 4091 ;} 4092 break; 4093 4094 case 70: 4095 #line 716 "fortran.y" 4096 { 7532 4097 /* we should remove the data declaration */ 7533 if ( couldaddvariable == 1 && aftercontainsdeclare == 0)4098 if ( couldaddvariable == 1 && aftercontainsdeclare != 2 ) 7534 4099 { 7535 4100 pos_end = setposcur(); … … 7537 4102 pos_end-pos_curdata); 7538 4103 } 4104 if ( couldaddvariable == 1 && aftercontainsdeclare == 1 ) 4105 { 4106 if (firstpass == 0) 4107 { 4108 ReWriteDataStatement_0(fortranout); 4109 pos_end = setposcur(); 7539 4110 } 7540 break; 7541 case 72: 7542 #line 720 "fortran.y" 7543 { 4111 } 4112 ;} 4113 break; 4114 4115 case 72: 4116 #line 736 "fortran.y" 4117 { 7544 4118 PublicDeclare = 0 ; 7545 4119 PrivateDeclare = 0 ; 7546 } 7547 break; 7548 case 110: 7549 #line 771 "fortran.y" 7550 { 4120 ;} 4121 break; 4122 4123 case 110: 4124 #line 787 "fortran.y" 4125 { 7551 4126 /* if the variable is a parameter we can suppose that is*/ 7552 4127 /* value is the same on each grid. It is not useless */ … … 7563 4138 else 7564 4139 {*/ 7565 ReWriteDeclarationAndAddTosubroutine_01( yyvsp[-1].l);4140 ReWriteDeclarationAndAddTosubroutine_01((yyvsp[(1) - (2)].l)); 7566 4141 pos_cur_decl = setposcur(); 7567 4142 … … 7571 4146 insubroutinedeclare == 0 ) 7572 4147 { 4148 7573 4149 sprintf(ligne,"\n#include \"Module_Declar_%s.h\"\n" 7574 4150 ,curmodulename); … … 7579 4155 tofich (module_declar, ligne,1); 7580 4156 GlobalDeclaration = 1 ; 4157 pos_cur_decl = setposcur(); 4158 7581 4159 } 7582 yyval.l = yyvsp[-1].l;7583 Add_Globliste_1( yyvsp[-1].l);4160 (yyval.l) = (yyvsp[(1) - (2)].l); 4161 Add_Globliste_1((yyvsp[(1) - (2)].l)); 7584 4162 7585 4163 if ( insubroutinedeclare == 0 ) 7586 Add_GlobalParameter_Var_1( yyvsp[-1].l);4164 Add_GlobalParameter_Var_1((yyvsp[(1) - (2)].l)); 7587 4165 else 7588 4166 { 7589 4167 if ( pointerdeclare == 1 ) 7590 Add_Pointer_Var_From_List_1( yyvsp[-1].l);7591 Add_Parameter_Var_1( yyvsp[-1].l);4168 Add_Pointer_Var_From_List_1((yyvsp[(1) - (2)].l)); 4169 Add_Parameter_Var_1((yyvsp[(1) - (2)].l)); 7592 4170 } 7593 4171 … … 7604 4182 SaveDeclare == 1 && firstpass == 1 ) 7605 4183 { 7606 if ( inmodulemeet == 0 ) Add_Save_Var_dcl_1( yyvsp[-1].l);7607 else Add_SubroutineDeclarationSave_Var_1( yyvsp[-1].l);4184 if ( inmodulemeet == 0 ) Add_Save_Var_dcl_1((yyvsp[(1) - (2)].l)); 4185 else Add_SubroutineDeclarationSave_Var_1((yyvsp[(1) - (2)].l)); 7608 4186 } 7609 4187 } … … 7618 4196 VariableIsParameter = 0 ; 7619 4197 Allocatabledeclare = 0 ; 4198 Targetdeclare = 0 ; 7620 4199 SaveDeclare = 0; 7621 4200 pointerdeclare = 0; … … 7625 4204 strcpy(nameinttypename,""); 7626 4205 strcpy(c_selectorname,""); 7627 } 7628 break; 7629 case 111: 7630 #line 850 "fortran.y" 7631 { 4206 ;} 4207 break; 4208 4209 case 111: 4210 #line 870 "fortran.y" 4211 { 7632 4212 /* open param file */ 7633 4213 if ( firstpass == 0 ) 7634 4214 { 7635 sprintf(ligne,"%s/ParamFile%s.h",nomdir, yyvsp[-1].nac);4215 sprintf(ligne,"%s/ParamFile%s.h",nomdir,(yyvsp[(2) - (3)].nac)); 7636 4216 paramout=fopen(ligne,"w"); 7637 4217 if ( retour77 == 0 ) fprintf(paramout,"!\n"); 7638 4218 else fprintf(paramout,"C\n"); 7639 4219 } 7640 strcpy(subroutinename, yyvsp[-1].nac);4220 strcpy(subroutinename,(yyvsp[(2) - (3)].nac)); 7641 4221 if ( inmodulemeet == 1 ) 7642 4222 { … … 7644 4224 /* we should to list of the subroutine argument the */ 7645 4225 /* name of the function which has to be defined */ 7646 Add_SubroutineArgument_Var_1( yyvsp[0].l);7647 Add_FunctionType_Var_1( yyvsp[-1].nac);4226 Add_SubroutineArgument_Var_1((yyvsp[(3) - (3)].l)); 4227 Add_FunctionType_Var_1((yyvsp[(2) - (3)].nac)); 7648 4228 /* in the second step we should write the head of */ 7649 4229 /* the subroutine sub_loop_<subroutinename> */ … … 7655 4235 /* we should to list of the subroutine argument the */ 7656 4236 /* name of the function which has to be defined */ 7657 Add_SubroutineArgument_Var_1( yyvsp[0].l);7658 Add_FunctionType_Var_1( yyvsp[-1].nac);4237 Add_SubroutineArgument_Var_1((yyvsp[(3) - (3)].l)); 4238 Add_FunctionType_Var_1((yyvsp[(2) - (3)].nac)); 7659 4239 /* in the second step we should write the head of */ 7660 4240 /* the subroutine sub_loop_<subroutinename> */ … … 7663 4243 strcpy(nameinttypename,""); 7664 4244 7665 } 7666 break; 7667 case 112: 7668 #line 887 "fortran.y" 7669 { 4245 ;} 4246 break; 4247 4248 case 112: 4249 #line 907 "fortran.y" 4250 { 7670 4251 functiondeclarationisdone = 1; 7671 } 7672 break; 7673 case 113: 7674 #line 893 "fortran.y" 7675 { 4252 ;} 4253 break; 4254 4255 case 113: 4256 #line 913 "fortran.y" 4257 { 7676 4258 VariableIsParameter = 1; 7677 4259 pos_curparameter = setposcur()-9; 7678 } 7679 break; 7680 case 114: 7681 #line 898 "fortran.y" 7682 { 7683 pos_curdata = setposcur()-strlen(yyvsp[0].nac); 7684 } 7685 break; 7686 case 115: 7687 #line 902 "fortran.y" 7688 { 4260 ;} 4261 break; 4262 4263 case 114: 4264 #line 918 "fortran.y" 4265 { 4266 pos_curdata = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 4267 Init_List_Data_Var(); 4268 ;} 4269 break; 4270 4271 case 115: 4272 #line 923 "fortran.y" 4273 { 7689 4274 if ( couldaddvariable == 1 ) 7690 4275 { 7691 if ( aftercontainsdeclare == 1 ) strcpy(ligne,""); 7692 else sprintf(ligne,"(/ %s /)",yyvsp[-1].na); 7693 Add_Data_Var_1(yyvsp[-3].nac,ligne); 4276 /* if ( aftercontainsdeclare == 1 ) strcpy(ligne,""); 4277 else */ 4278 /* sprintf(ligne,"%s",$3);*/ 4279 createstringfromlistname(ligne,(yyvsp[(3) - (4)].lnn)); 4280 if (firstpass == 1) 4281 Add_Data_Var_1(&List_Data_Var,(yyvsp[(1) - (4)].nac),ligne); 4282 else 4283 Add_Data_Var_1(&List_Data_Var_Cur,(yyvsp[(1) - (4)].nac),ligne); 7694 4284 } 7695 } 7696 break; 7697 case 116: 7698 #line 911 "fortran.y" 7699 { 4285 ;} 4286 break; 4287 4288 case 116: 4289 #line 937 "fortran.y" 4290 { 7700 4291 if ( couldaddvariable == 1 ) 7701 4292 { 7702 if ( aftercontainsdeclare == 1 ) strcpy(ligne,""); 7703 else sprintf(ligne,"(/ %s /)",yyvsp[-1].na); 7704 Add_Data_Var_1(yyvsp[-3].nac,ligne); 4293 /*if ( aftercontainsdeclare == 1 ) strcpy(ligne,""); 4294 else */ 4295 /*sprintf(ligne,"%s",$5); */ 4296 createstringfromlistname(ligne,(yyvsp[(5) - (6)].lnn)); 4297 if (firstpass == 1) 4298 Add_Data_Var_1(&List_Data_Var,(yyvsp[(3) - (6)].nac),ligne); 4299 else 4300 Add_Data_Var_1(&List_Data_Var_Cur,(yyvsp[(3) - (6)].nac),ligne); 7705 4301 } 7706 } 7707 break; 7708 case 117: 7709 #line 920 "fortran.y" 7710 { 4302 ;} 4303 break; 4304 4305 case 117: 4306 #line 951 "fortran.y" 4307 { 7711 4308 /*******************************************************/ 7712 4309 /*******************************************************/ … … 7716 4313 /*******************************************************/ 7717 4314 /*******************************************************/ 7718 } 7719 break; 7720 case 118: 7721 #line 931 "fortran.y" 7722 { 4315 if (firstpass == 1) 4316 Add_Data_Var_Names_01(&List_Data_Var,(yyvsp[(1) - (4)].lnn),(yyvsp[(3) - (4)].lnn)); 4317 else 4318 Add_Data_Var_Names_01(&List_Data_Var_Cur,(yyvsp[(1) - (4)].lnn),(yyvsp[(3) - (4)].lnn)); 4319 ;} 4320 break; 4321 4322 case 118: 4323 #line 966 "fortran.y" 4324 { 7723 4325 if ( couldaddvariable == 1 ) 7724 4326 { 7725 strcpy(yyval.na,yyvsp[0].na);4327 (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].na),0); 7726 4328 } 7727 } 7728 break; 7729 case 119: 7730 #line 938 "fortran.y" 7731 { 4329 ;} 4330 break; 4331 4332 case 119: 4333 #line 973 "fortran.y" 4334 { 7732 4335 if ( couldaddvariable == 1 ) 7733 4336 { 7734 sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);4337 (yyval.lnn) = Insertname((yyvsp[(3) - (3)].lnn),(yyvsp[(1) - (3)].na),1); 7735 4338 } 7736 } 7737 break; 7738 case 124: 7739 #line 952 "fortran.y" 7740 { 4339 ;} 4340 break; 4341 4342 case 124: 4343 #line 987 "fortran.y" 4344 { 7741 4345 pos_cursave = setposcur()-4; 7742 } 7743 break; 7744 case 126: 7745 #line 958 "fortran.y" 7746 { 7747 if ( couldaddvariable == 1 ) Add_Save_Var_1(yyvsp[-1].nac,yyvsp[0].d); 7748 } 7749 break; 7750 case 130: 7751 #line 967 "fortran.y" 7752 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].nac);} 7753 break; 7754 case 131: 7755 #line 969 "fortran.y" 7756 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s+%s",yyvsp[-2].na,yyvsp[0].na);} 7757 break; 7758 case 132: 7759 #line 971 "fortran.y" 7760 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s-%s",yyvsp[-2].na,yyvsp[0].na);} 7761 break; 7762 case 133: 7763 #line 973 "fortran.y" 7764 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s*%s",yyvsp[-2].na,yyvsp[0].na);} 7765 break; 7766 case 134: 7767 #line 975 "fortran.y" 7768 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s/%s",yyvsp[-2].na,yyvsp[0].na);} 7769 break; 7770 case 135: 7771 #line 978 "fortran.y" 7772 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,"");} 7773 break; 7774 case 136: 7775 #line 980 "fortran.y" 7776 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 7777 break; 7778 case 145: 7779 #line 995 "fortran.y" 7780 { 4346 ;} 4347 break; 4348 4349 case 126: 4350 #line 993 "fortran.y" 4351 { 4352 if ( couldaddvariable == 1 ) Add_Save_Var_1((yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].d)); 4353 ;} 4354 break; 4355 4356 case 127: 4357 #line 998 "fortran.y" 4358 { 4359 (yyval.lnn)=Insertname(NULL,(yyvsp[(1) - (1)].nac),0); 4360 ;} 4361 break; 4362 4363 case 128: 4364 #line 1002 "fortran.y" 4365 { 4366 printf("INSTRUCTION NON TRAITEE : INITIALISATION DE DATA AVEC EXPRESSION\n"); 4367 exit(0); 4368 ;} 4369 break; 4370 4371 case 129: 4372 #line 1007 "fortran.y" 4373 { 4374 (yyval.lnn) = concat_listname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].lnn)); 4375 ;} 4376 break; 4377 4378 case 130: 4379 #line 1012 "fortran.y" 4380 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].nac));;} 4381 break; 4382 4383 case 131: 4384 #line 1014 "fortran.y" 4385 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s+%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 4386 break; 4387 4388 case 132: 4389 #line 1016 "fortran.y" 4390 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s-%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 4391 break; 4392 4393 case 133: 4394 #line 1018 "fortran.y" 4395 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s*%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 4396 break; 4397 4398 case 134: 4399 #line 1020 "fortran.y" 4400 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s/%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 4401 break; 4402 4403 case 135: 4404 #line 1023 "fortran.y" 4405 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),"");;} 4406 break; 4407 4408 case 136: 4409 #line 1025 "fortran.y" 4410 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 4411 break; 4412 4413 case 143: 4414 #line 1037 "fortran.y" 4415 { 4416 ininterfacedeclare = 1 ; 4417 printf("INTEFACE entree\n"); 4418 ;} 4419 break; 4420 4421 case 144: 4422 #line 1042 "fortran.y" 4423 { 4424 ininterfacedeclare = 0; 4425 ;} 4426 break; 4427 4428 case 145: 4429 #line 1047 "fortran.y" 4430 { 7781 4431 positioninblock=0; 7782 4432 pos_curdimension = setposcur()-9; 7783 } 7784 break; 7785 case 146: 7786 #line 1001 "fortran.y" 7787 { 4433 ;} 4434 break; 4435 4436 case 146: 4437 #line 1053 "fortran.y" 4438 { 7788 4439 if ( couldaddvariable == 1 ) 7789 4440 { 7790 4441 /* */ 7791 curvar=createvar( yyvsp[-2].nac,yyvsp[-1].d);4442 curvar=createvar((yyvsp[(3) - (5)].nac),(yyvsp[(4) - (5)].d)); 7792 4443 /* */ 7793 4444 CreateAndFillin_Curvar("",curvar); … … 7795 4446 curlistvar=insertvar(NULL,curvar); 7796 4447 /* */ 7797 yyval.l=settype("",curlistvar);4448 (yyval.l)=settype("",curlistvar); 7798 4449 /* */ 7799 4450 strcpy(vallengspec,""); 7800 4451 } 7801 } 7802 break; 7803 case 147: 7804 #line 1017 "fortran.y" 7805 { 4452 ;} 4453 break; 4454 4455 case 147: 4456 #line 1069 "fortran.y" 4457 { 7806 4458 if ( couldaddvariable == 1 ) 7807 4459 { 7808 4460 /* */ 7809 curvar=createvar( yyvsp[-2].nac,yyvsp[-1].d);4461 curvar=createvar((yyvsp[(3) - (5)].nac),(yyvsp[(4) - (5)].d)); 7810 4462 /* */ 7811 4463 CreateAndFillin_Curvar("",curvar); 7812 4464 /* */ 7813 curlistvar=insertvar( yyvsp[-4].l,curvar);4465 curlistvar=insertvar((yyvsp[(1) - (5)].l),curvar); 7814 4466 /* */ 7815 yyval.l=curlistvar;4467 (yyval.l)=curlistvar; 7816 4468 /* */ 7817 4469 strcpy(vallengspec,""); 7818 4470 } 7819 } 7820 break; 7821 case 150: 7822 #line 1037 "fortran.y" 7823 { 7824 yyval.lnn=(listname *)NULL; 7825 } 7826 break; 7827 case 151: 7828 #line 1041 "fortran.y" 7829 { 7830 yyval.lnn=yyvsp[0].lnn; 7831 } 7832 break; 7833 case 152: 7834 #line 1046 "fortran.y" 7835 { 7836 yyval.lnn = Insertname(NULL,yyvsp[0].nac); 7837 } 7838 break; 7839 case 153: 7840 #line 1050 "fortran.y" 7841 { 7842 yyval.lnn = Insertname(yyvsp[-2].lnn,yyvsp[0].nac); 7843 } 7844 break; 7845 case 154: 7846 #line 1055 "fortran.y" 7847 { 4471 ;} 4472 break; 4473 4474 case 150: 4475 #line 1089 "fortran.y" 4476 { 4477 (yyval.lnn)=(listname *)NULL; 4478 ;} 4479 break; 4480 4481 case 151: 4482 #line 1093 "fortran.y" 4483 { 4484 (yyval.lnn)=(yyvsp[(3) - (3)].lnn); 4485 ;} 4486 break; 4487 4488 case 152: 4489 #line 1098 "fortran.y" 4490 { 4491 (yyval.lnn) = Insertname(NULL,(yyvsp[(1) - (1)].nac),0); 4492 ;} 4493 break; 4494 4495 case 153: 4496 #line 1102 "fortran.y" 4497 { 4498 (yyval.lnn) = Insertname((yyvsp[(1) - (3)].lnn),(yyvsp[(3) - (3)].nac),0); 4499 ;} 4500 break; 4501 4502 case 154: 4503 #line 1107 "fortran.y" 4504 { 7848 4505 pos_end = setposcur(); 7849 4506 RemoveWordSET_0(fortranout,pos_curcommon, 7850 4507 pos_end-pos_curcommon); 7851 } 7852 break; 7853 case 155: 7854 #line 1061 "fortran.y" 7855 { 4508 ;} 4509 break; 4510 4511 case 155: 4512 #line 1113 "fortran.y" 4513 { 7856 4514 if ( couldaddvariable == 1 ) 7857 4515 { 7858 sprintf(charusemodule,"%s", yyvsp[-1].nac);7859 Add_NameOfCommon_1( yyvsp[-1].nac);4516 sprintf(charusemodule,"%s",(yyvsp[(2) - (3)].nac)); 4517 Add_NameOfCommon_1((yyvsp[(2) - (3)].nac),subroutinename); 7860 4518 pos_end = setposcur(); 7861 4519 RemoveWordSET_0(fortranout,pos_curcommon, 7862 4520 pos_end-pos_curcommon); 7863 4521 } 7864 } 7865 break; 7866 case 156: 7867 #line 1072 "fortran.y" 7868 { 4522 ;} 4523 break; 4524 4525 case 156: 4526 #line 1124 "fortran.y" 4527 { 7869 4528 if ( couldaddvariable == 1 ) 7870 4529 { 7871 sprintf(charusemodule,"%s", yyvsp[-2].nac);7872 Add_NameOfCommon_1( yyvsp[-2].nac);4530 sprintf(charusemodule,"%s",(yyvsp[(3) - (5)].nac)); 4531 Add_NameOfCommon_1((yyvsp[(3) - (5)].nac),subroutinename); 7873 4532 pos_end = setposcur(); 7874 4533 RemoveWordSET_0(fortranout,pos_curcommon, 7875 4534 pos_end-pos_curcommon); 7876 4535 } 7877 } 7878 break; 7879 case 157: 7880 #line 1084 "fortran.y" 7881 { 4536 ;} 4537 break; 4538 4539 case 157: 4540 #line 1136 "fortran.y" 4541 { 7882 4542 positioninblock=0; 7883 4543 pos_curcommon = setposcur()-6; 7884 } 7885 break; 7886 case 158: 7887 #line 1089 "fortran.y" 7888 { 4544 ;} 4545 break; 4546 4547 case 158: 4548 #line 1141 "fortran.y" 4549 { 7889 4550 positioninblock=0; 7890 4551 pos_curcommon = setposcur()-6-7; 7891 } 7892 break; 7893 case 159: 7894 #line 1095 "fortran.y" 7895 { 4552 ;} 4553 break; 4554 4555 case 159: 4556 #line 1147 "fortran.y" 4557 { 7896 4558 if ( couldaddvariable == 1 ) Add_Common_var_1(); 7897 } 7898 break; 7899 case 160: 7900 #line 1100 "fortran.y" 7901 { 4559 ;} 4560 break; 4561 4562 case 160: 4563 #line 1152 "fortran.y" 4564 { 7902 4565 if ( couldaddvariable == 1 ) Add_Common_var_1(); 7903 } 7904 break; 7905 case 161: 7906 #line 1104 "fortran.y" 7907 { 4566 ;} 4567 break; 4568 4569 case 161: 4570 #line 1156 "fortran.y" 4571 { 7908 4572 if ( couldaddvariable == 1 ) 7909 4573 { 7910 4574 positioninblock = positioninblock + 1 ; 7911 strcpy(commonvar, yyvsp[-1].nac);7912 commondim = yyvsp[0].d;4575 strcpy(commonvar,(yyvsp[(1) - (2)].nac)); 4576 commondim = (yyvsp[(2) - (2)].d); 7913 4577 } 7914 } 7915 break; 7916 case 162: 7917 #line 1114 "fortran.y" 7918 { 4578 ;} 4579 break; 4580 4581 case 162: 4582 #line 1166 "fortran.y" 4583 { 7919 4584 if ( couldaddvariable == 1 ) 7920 4585 { 7921 strcpy( yyval.nac,"");4586 strcpy((yyval.nac),""); 7922 4587 positioninblock=0; 7923 4588 strcpy(commonblockname,""); 7924 4589 } 7925 } 7926 break; 7927 case 163: 7928 #line 1123 "fortran.y" 7929 { 4590 ;} 4591 break; 4592 4593 case 163: 4594 #line 1175 "fortran.y" 4595 { 7930 4596 if ( couldaddvariable == 1 ) 7931 4597 { 7932 strcpy( yyval.nac,yyvsp[-1].nac);4598 strcpy((yyval.nac),(yyvsp[(2) - (3)].nac)); 7933 4599 positioninblock=0; 7934 strcpy(commonblockname, yyvsp[-1].nac);4600 strcpy(commonblockname,(yyvsp[(2) - (3)].nac)); 7935 4601 } 7936 } 7937 break; 7938 case 166: 7939 #line 1136 "fortran.y" 7940 { 7941 if ( couldaddvariable == 1 ) yyval.l=insertvar(NULL,yyvsp[0].v); 7942 } 7943 break; 7944 case 167: 7945 #line 1140 "fortran.y" 7946 { 7947 if ( couldaddvariable == 1 ) yyval.l=insertvar(yyvsp[-2].l,yyvsp[0].v); 7948 } 7949 break; 7950 case 168: 7951 #line 1145 "fortran.y" 7952 { 4602 ;} 4603 break; 4604 4605 case 166: 4606 #line 1188 "fortran.y" 4607 { 4608 if ( couldaddvariable == 1 ) (yyval.l)=insertvar(NULL,(yyvsp[(1) - (1)].v)); 4609 ;} 4610 break; 4611 4612 case 167: 4613 #line 1192 "fortran.y" 4614 { 4615 if ( couldaddvariable == 1 ) (yyval.l)=insertvar((yyvsp[(1) - (3)].l),(yyvsp[(3) - (3)].v)); 4616 ;} 4617 break; 4618 4619 case 168: 4620 #line 1197 "fortran.y" 4621 { 7953 4622 if ( couldaddvariable == 1 ) 7954 4623 { … … 7958 4627 /* */ 7959 4628 curvar->v_VariableIsParameter=1; 7960 strcpy(curvar->v_nomvar, yyvsp[-2].nac);7961 Save_Length( yyvsp[-2].nac,4);4629 strcpy(curvar->v_nomvar,(yyvsp[(1) - (3)].nac)); 4630 Save_Length((yyvsp[(1) - (3)].nac),4); 7962 4631 strcpy(curvar->v_subroutinename,subroutinename); 7963 4632 Save_Length(subroutinename,11); 7964 4633 strcpy(curvar->v_modulename,curmodulename); 7965 4634 Save_Length(curmodulename,6); 7966 strcpy(curvar->v_initialvalue, yyvsp[0].na);7967 Save_Length( yyvsp[0].na,14);4635 strcpy(curvar->v_initialvalue,(yyvsp[(3) - (3)].na)); 4636 Save_Length((yyvsp[(3) - (3)].na),14); 7968 4637 strcpy(curvar->v_commoninfile,mainfile); 7969 4638 Save_Length(mainfile,10); 7970 yyval.v=curvar;4639 (yyval.v)=curvar; 7971 4640 } 7972 } 7973 break; 7974 case 172: 7975 #line 1173 "fortran.y" 7976 { 4641 ;} 4642 break; 4643 4644 case 172: 4645 #line 1225 "fortran.y" 4646 { 7977 4647 if ( insubroutinedeclare == 1 ) 7978 4648 { … … 7982 4652 13); 7983 4653 } 7984 } 7985 break; 7986 case 175: 7987 #line 1187 "fortran.y" 7988 { 4654 ;} 4655 break; 4656 4657 case 175: 4658 #line 1239 "fortran.y" 4659 { 7989 4660 if ( couldaddvariable == 1 ) 7990 4661 { … … 7992 4663 if (dimsgiven == 1) 7993 4664 { 7994 curvar=createvar( yyvsp[-3].nac,curdim);4665 curvar=createvar((yyvsp[(3) - (6)].nac),curdim); 7995 4666 } 7996 4667 else 7997 4668 { 7998 curvar=createvar( yyvsp[-3].nac,yyvsp[-2].d);4669 curvar=createvar((yyvsp[(3) - (6)].nac),(yyvsp[(4) - (6)].d)); 7999 4670 } 8000 4671 /* */ … … 8013 4684 } 8014 4685 } 8015 yyval.l=settype(DeclType,curlistvar);4686 (yyval.l)=settype(DeclType,curlistvar); 8016 4687 } 8017 4688 strcpy(vallengspec,""); 8018 } 8019 break; 8020 case 176: 8021 #line 1219 "fortran.y" 8022 { 4689 ;} 4690 break; 4691 4692 case 176: 4693 #line 1271 "fortran.y" 4694 { 8023 4695 if ( couldaddvariable == 1 ) 8024 4696 { 8025 4697 if (dimsgiven == 1) 8026 4698 { 8027 curvar=createvar( yyvsp[-3].nac,curdim);4699 curvar=createvar((yyvsp[(4) - (7)].nac),curdim); 8028 4700 } 8029 4701 else 8030 4702 { 8031 curvar=createvar( yyvsp[-3].nac,yyvsp[-2].d);4703 curvar=createvar((yyvsp[(4) - (7)].nac),(yyvsp[(5) - (7)].d)); 8032 4704 } 8033 4705 /* */ 8034 CreateAndFillin_Curvar( yyvsp[-6].l->var->v_typevar,curvar);4706 CreateAndFillin_Curvar((yyvsp[(1) - (7)].l)->var->v_typevar,curvar); 8035 4707 /* */ 8036 strcpy(curvar->v_typevar,( yyvsp[-6].l->var->v_typevar));8037 Save_Length( yyvsp[-6].l->var->v_typevar,3);4708 strcpy(curvar->v_typevar,((yyvsp[(1) - (7)].l)->var->v_typevar)); 4709 Save_Length((yyvsp[(1) - (7)].l)->var->v_typevar,3); 8038 4710 /* */ 8039 curlistvar=insertvar( yyvsp[-6].l,curvar);4711 curlistvar=insertvar((yyvsp[(1) - (7)].l),curvar); 8040 4712 if (!strcasecmp(DeclType,"character")) 8041 4713 { … … 8049 4721 } 8050 4722 } 8051 yyval.l=curlistvar;4723 (yyval.l)=curlistvar; 8052 4724 } 8053 4725 strcpy(vallengspec,""); 8054 } 8055 break; 8056 case 177: 8057 #line 1253 "fortran.y" 8058 {dimsgiven=0;} 8059 break; 8060 case 178: 8061 #line 1256 "fortran.y" 8062 {strcpy(DeclType,yyvsp[-1].nac);} 8063 break; 8064 case 179: 8065 #line 1258 "fortran.y" 8066 { 4726 ;} 4727 break; 4728 4729 case 177: 4730 #line 1305 "fortran.y" 4731 {dimsgiven=0;;} 4732 break; 4733 4734 case 178: 4735 #line 1308 "fortran.y" 4736 {strcpy(DeclType,(yyvsp[(1) - (2)].nac));;} 4737 break; 4738 4739 case 179: 4740 #line 1310 "fortran.y" 4741 { 8067 4742 strcpy(DeclType,"CHARACTER"); 8068 } 8069 break; 8070 case 180: 8071 #line 1262 "fortran.y" 8072 { 8073 strcpy(DeclType,yyvsp[-2].nac); 8074 strcpy(nameinttypename,yyvsp[0].nac); 8075 } 8076 break; 8077 case 181: 8078 #line 1267 "fortran.y" 8079 { 4743 ;} 4744 break; 4745 4746 case 180: 4747 #line 1314 "fortran.y" 4748 { 4749 strcpy(DeclType,(yyvsp[(1) - (3)].nac)); 4750 strcpy(nameinttypename,(yyvsp[(3) - (3)].nac)); 4751 ;} 4752 break; 4753 4754 case 181: 4755 #line 1319 "fortran.y" 4756 { 8080 4757 strcpy(DeclType,"TYPE"); 8081 } 8082 break; 8083 case 182: 8084 #line 1272 "fortran.y" 8085 { 4758 ;} 4759 break; 4760 4761 case 182: 4762 #line 1324 "fortran.y" 4763 { 8086 4764 /* if ( couldaddvariable == 1 ) VarTypepar = 1 ; 8087 4765 couldaddvariable = 0 ; 8088 4766 pos_cur_decl = setposcur()-5;*/ 8089 4767 pos_cur_decl = setposcur()-5; 8090 } 8091 break; 8092 case 184: 8093 #line 1281 "fortran.y" 8094 {c_selectorgiven=1;strcpy(c_selectorname,yyvsp[0].nac);} 8095 break; 8096 case 185: 8097 #line 1282 "fortran.y" 8098 {c_star = 1;} 8099 break; 8100 case 190: 8101 #line 1290 "fortran.y" 8102 { 4768 ;} 4769 break; 4770 4771 case 184: 4772 #line 1333 "fortran.y" 4773 {c_selectorgiven=1;strcpy(c_selectorname,(yyvsp[(2) - (2)].nac));;} 4774 break; 4775 4776 case 185: 4777 #line 1334 "fortran.y" 4778 {c_star = 1;;} 4779 break; 4780 4781 case 190: 4782 #line 1342 "fortran.y" 4783 { 8103 4784 pos_cur_decl = setposcur()-9; 8104 } 8105 break; 8106 case 191: 8107 #line 1294 "fortran.y" 8108 {strcpy(yyval.nac,yyvsp[0].nac);} 8109 break; 8110 case 192: 8111 #line 1297 "fortran.y" 8112 { 8113 strcpy(yyval.nac,"INTEGER"); 4785 ;} 4786 break; 4787 4788 case 191: 4789 #line 1346 "fortran.y" 4790 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 4791 break; 4792 4793 case 192: 4794 #line 1349 "fortran.y" 4795 { 4796 strcpy((yyval.nac),"INTEGER"); 8114 4797 pos_cur_decl = setposcur()-7; 8115 } 8116 break; 8117 case 193: 8118 #line 1301 "fortran.y" 8119 { 8120 strcpy(yyval.nac,"REAL"); 4798 ;} 4799 break; 4800 4801 case 193: 4802 #line 1353 "fortran.y" 4803 { 4804 strcpy((yyval.nac),"REAL"); 8121 4805 pos_cur_decl = setposcur()-4; 8122 } 8123 break; 8124 case 194: 8125 #line 1306 "fortran.y" 8126 {strcpy(yyval.nac,"COMPLEX"); 8127 pos_cur_decl = setposcur()-7;} 8128 break; 8129 case 195: 8130 #line 1309 "fortran.y" 8131 { 4806 ;} 4807 break; 4808 4809 case 194: 4810 #line 1358 "fortran.y" 4811 {strcpy((yyval.nac),"COMPLEX"); 4812 pos_cur_decl = setposcur()-7;;} 4813 break; 4814 4815 case 195: 4816 #line 1361 "fortran.y" 4817 { 8132 4818 pos_cur_decl = setposcur()-16; 8133 strcpy( yyval.nac,"REAL");4819 strcpy((yyval.nac),"REAL"); 8134 4820 strcpy(nameinttypename,"8"); 8135 } 8136 break; 8137 case 196: 8138 #line 1315 "fortran.y" 8139 {strcpy(yyval.nac,"DOUBLE COMPLEX");} 8140 break; 8141 case 197: 8142 #line 1317 "fortran.y" 8143 { 8144 strcpy(yyval.nac,"LOGICAL"); 4821 ;} 4822 break; 4823 4824 case 196: 4825 #line 1367 "fortran.y" 4826 {strcpy((yyval.nac),"DOUBLE COMPLEX");;} 4827 break; 4828 4829 case 197: 4830 #line 1369 "fortran.y" 4831 { 4832 strcpy((yyval.nac),"LOGICAL"); 8145 4833 pos_cur_decl = setposcur()-7; 8146 } 8147 break; 8148 case 199: 8149 #line 1323 "fortran.y" 8150 {strcpy(vallengspec,yyvsp[0].na);} 8151 break; 8152 case 200: 8153 #line 1325 "fortran.y" 8154 {sprintf(yyval.na,"*%s",yyvsp[0].na);} 8155 break; 8156 case 201: 8157 #line 1326 "fortran.y" 8158 {strcpy(yyval.na,"*(*)");} 8159 break; 8160 case 208: 8161 #line 1337 "fortran.y" 8162 { 8163 if ( strstr(yyvsp[0].na,"0.d0") ) 4834 ;} 4835 break; 4836 4837 case 199: 4838 #line 1375 "fortran.y" 4839 {strcpy(vallengspec,(yyvsp[(2) - (2)].na));;} 4840 break; 4841 4842 case 200: 4843 #line 1377 "fortran.y" 4844 {sprintf((yyval.na),"*%s",(yyvsp[(1) - (1)].na));;} 4845 break; 4846 4847 case 201: 4848 #line 1378 "fortran.y" 4849 {strcpy((yyval.na),"*(*)");;} 4850 break; 4851 4852 case 208: 4853 #line 1389 "fortran.y" 4854 { 4855 if ( strstr((yyvsp[(3) - (3)].na),"0.d0") ) 8164 4856 { 8165 4857 strcpy(nameinttypename,"8"); 8166 4858 sprintf(NamePrecision,""); 8167 4859 } 8168 else sprintf(NamePrecision,"%s = %s",yyvsp[-2].nac,yyvsp[0].na); 8169 } 8170 break; 8171 case 209: 8172 #line 1346 "fortran.y" 8173 { 8174 strcpy(NamePrecision,yyvsp[0].nac); 8175 } 8176 break; 8177 case 210: 8178 #line 1350 "fortran.y" 8179 { 8180 strcpy(NamePrecision,yyvsp[0].nac); 8181 } 8182 break; 8183 case 211: 8184 #line 1354 "fortran.y" 8185 {strcpy(CharacterSize,yyvsp[0].na); 8186 strcpy(yyval.na,yyvsp[0].na);} 8187 break; 8188 case 212: 8189 #line 1356 "fortran.y" 8190 {strcpy(CharacterSize,"*"); 8191 strcpy(yyval.na,"*");} 8192 break; 8193 case 220: 8194 #line 1370 "fortran.y" 8195 { 4860 else sprintf(NamePrecision,"%s = %s",(yyvsp[(1) - (3)].nac),(yyvsp[(3) - (3)].na)); 4861 ;} 4862 break; 4863 4864 case 209: 4865 #line 1398 "fortran.y" 4866 { 4867 strcpy(NamePrecision,(yyvsp[(1) - (1)].nac)); 4868 ;} 4869 break; 4870 4871 case 210: 4872 #line 1402 "fortran.y" 4873 { 4874 strcpy(NamePrecision,(yyvsp[(1) - (1)].nac)); 4875 ;} 4876 break; 4877 4878 case 211: 4879 #line 1406 "fortran.y" 4880 {strcpy(CharacterSize,(yyvsp[(1) - (1)].na)); 4881 strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 4882 break; 4883 4884 case 212: 4885 #line 1408 "fortran.y" 4886 {strcpy(CharacterSize,"*"); 4887 strcpy((yyval.na),"*");;} 4888 break; 4889 4890 case 220: 4891 #line 1422 "fortran.y" 4892 { 8196 4893 VariableIsParameter = 1; 8197 } 8198 break; 8199 case 222: 8200 #line 1375 "fortran.y" 8201 {Allocatabledeclare = 1;} 8202 break; 8203 case 223: 8204 #line 1377 "fortran.y" 8205 { 4894 ;} 4895 break; 4896 4897 case 222: 4898 #line 1427 "fortran.y" 4899 {Allocatabledeclare = 1;;} 4900 break; 4901 4902 case 223: 4903 #line 1429 "fortran.y" 4904 { 8206 4905 dimsgiven=1; 8207 curdim=yyvsp[0].d; 8208 } 8209 break; 8210 case 224: 8211 #line 1382 "fortran.y" 8212 {ExternalDeclare = 1;} 8213 break; 8214 case 225: 8215 #line 1384 "fortran.y" 8216 {strcpy(IntentSpec,yyvsp[-1].nac);} 8217 break; 8218 case 227: 8219 #line 1386 "fortran.y" 8220 {optionaldeclare = 1 ;} 8221 break; 8222 case 228: 8223 #line 1387 "fortran.y" 8224 {pointerdeclare = 1 ;} 8225 break; 8226 case 229: 8227 #line 1388 "fortran.y" 8228 { 4906 curdim=(yyvsp[(2) - (2)].d); 4907 ;} 4908 break; 4909 4910 case 224: 4911 #line 1434 "fortran.y" 4912 {ExternalDeclare = 1;;} 4913 break; 4914 4915 case 225: 4916 #line 1436 "fortran.y" 4917 {strcpy(IntentSpec,(yyvsp[(3) - (4)].nac));;} 4918 break; 4919 4920 case 227: 4921 #line 1438 "fortran.y" 4922 {optionaldeclare = 1 ;;} 4923 break; 4924 4925 case 228: 4926 #line 1439 "fortran.y" 4927 {pointerdeclare = 1 ;;} 4928 break; 4929 4930 case 229: 4931 #line 1440 "fortran.y" 4932 { 8229 4933 /* if ( inmodulemeet == 1 ) 8230 4934 {*/ 8231 4935 SaveDeclare = 1 ; 8232 4936 /* }*/ 8233 } 8234 break; 8235 case 231: 8236 #line 1396 "fortran.y" 8237 {strcpy(yyval.nac,yyvsp[0].nac);} 8238 break; 8239 case 232: 8240 #line 1397 "fortran.y" 8241 {strcpy(yyval.nac,yyvsp[0].nac);} 8242 break; 8243 case 233: 8244 #line 1398 "fortran.y" 8245 {strcpy(yyval.nac,yyvsp[0].nac); } 8246 break; 8247 case 234: 8248 #line 1401 "fortran.y" 8249 {PublicDeclare = 1;} 8250 break; 8251 case 235: 8252 #line 1403 "fortran.y" 8253 {PrivateDeclare = 1;} 8254 break; 8255 case 236: 8256 #line 1405 "fortran.y" 8257 {if ( created_dimensionlist == 1 ) 4937 ;} 4938 break; 4939 4940 case 230: 4941 #line 1447 "fortran.y" 4942 {Targetdeclare = 1;;} 4943 break; 4944 4945 case 231: 4946 #line 1449 "fortran.y" 4947 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 4948 break; 4949 4950 case 232: 4951 #line 1450 "fortran.y" 4952 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 4953 break; 4954 4955 case 233: 4956 #line 1451 "fortran.y" 4957 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac)); ;} 4958 break; 4959 4960 case 234: 4961 #line 1454 "fortran.y" 4962 {PublicDeclare = 1;;} 4963 break; 4964 4965 case 235: 4966 #line 1456 "fortran.y" 4967 {PrivateDeclare = 1;;} 4968 break; 4969 4970 case 236: 4971 #line 1458 "fortran.y" 4972 {if ( created_dimensionlist == 1 ) 8258 4973 { 8259 yyval.d=(listdim *)NULL;4974 (yyval.d)=(listdim *)NULL; 8260 4975 } 8261 } 8262 break; 8263 case 237: 8264 #line 1411 "fortran.y" 8265 {if ( created_dimensionlist == 1 || 8266 agrif_parentcall == 1 ) yyval.d=yyvsp[-1].d;} 8267 break; 8268 case 238: 8269 #line 1414 "fortran.y" 8270 {if ( created_dimensionlist == 1 || 8271 agrif_parentcall == 1 ) yyval.d=insertdim(NULL,yyvsp[0].dim1);} 8272 break; 8273 case 239: 8274 #line 1417 "fortran.y" 8275 {if ( couldaddvariable == 1 ) 8276 if ( created_dimensionlist == 1 ) yyval.d=insertdim(yyvsp[-2].d,yyvsp[0].dim1);} 8277 break; 8278 case 240: 8279 #line 1420 "fortran.y" 8280 { 8281 strcpy(yyval.dim1.first,"1"); 8282 strcpy(yyval.dim1.last,yyvsp[0].na); 8283 Save_Length(yyvsp[0].na,1); 8284 } 8285 break; 8286 case 241: 8287 #line 1425 "fortran.y" 8288 { 8289 strcpy(yyval.dim1.first,""); 8290 strcpy(yyval.dim1.last,""); 8291 } 8292 break; 8293 case 242: 8294 #line 1429 "fortran.y" 8295 { 8296 strcpy(yyval.dim1.first,yyvsp[-1].na); 8297 Save_Length(yyvsp[-1].na,2); 8298 strcpy(yyval.dim1.last,""); 8299 } 8300 break; 8301 case 243: 8302 #line 1434 "fortran.y" 8303 { 8304 strcpy(yyval.dim1.first,""); 8305 strcpy(yyval.dim1.last,yyvsp[0].na); 8306 Save_Length(yyvsp[0].na,1); 8307 } 8308 break; 8309 case 244: 8310 #line 1440 "fortran.y" 8311 { 8312 strcpy(yyval.dim1.first,yyvsp[-2].na); 8313 Save_Length(yyvsp[-2].na,2); 8314 strcpy(yyval.dim1.last,yyvsp[0].na); 8315 Save_Length(yyvsp[0].na,1); 8316 } 8317 break; 8318 case 245: 8319 #line 1447 "fortran.y" 8320 {strcpy(yyval.na,"*");} 8321 break; 8322 case 246: 8323 #line 1448 "fortran.y" 8324 {strcpy(yyval.na,yyvsp[0].na);} 8325 break; 8326 case 247: 8327 #line 1450 "fortran.y" 8328 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8329 break; 8330 case 248: 8331 #line 1452 "fortran.y" 8332 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"(%s)",yyvsp[-1].na);} 8333 break; 8334 case 249: 8335 #line 1454 "fortran.y" 8336 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8337 break; 8338 case 250: 8339 #line 1456 "fortran.y" 8340 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8341 break; 8342 case 251: 8343 #line 1460 "fortran.y" 8344 {sprintf(yyval.na,"SUM(%s)",yyvsp[-1].na);} 8345 break; 8346 case 252: 8347 #line 1462 "fortran.y" 8348 {sprintf(yyval.na,"MAX(%s)",yyvsp[-1].na);} 8349 break; 8350 case 253: 4976 ;} 4977 break; 4978 4979 case 237: 8351 4980 #line 1464 "fortran.y" 8352 {sprintf(yyval.na,"TANH(%s)",yyvsp[-1].na);} 8353 break; 8354 case 254: 8355 #line 1466 "fortran.y" 8356 {sprintf(yyval.na,"MAXVAL(%s)",yyvsp[-1].na);} 8357 break; 8358 case 255: 8359 #line 1468 "fortran.y" 8360 {sprintf(yyval.na,"MIN(%s)",yyvsp[-1].na);} 8361 break; 8362 case 256:4981 {if ( created_dimensionlist == 1 || 4982 agrif_parentcall == 1 ) (yyval.d)=(yyvsp[(2) - (3)].d);;} 4983 break; 4984 4985 case 238: 4986 #line 1467 "fortran.y" 4987 {if ( created_dimensionlist == 1 || 4988 agrif_parentcall == 1 ) (yyval.d)=insertdim(NULL,(yyvsp[(1) - (1)].dim1));;} 4989 break; 4990 4991 case 239: 8363 4992 #line 1470 "fortran.y" 8364 {sprintf(yyval.na,"MINVAL(%s)",yyvsp[-1].na);} 8365 break; 8366 case 257: 8367 #line 1472 "fortran.y" 8368 {sprintf(yyval.na,"TRIM(%s)",yyvsp[-1].na);} 8369 break; 8370 case 258: 8371 #line 1474 "fortran.y" 8372 {sprintf(yyval.na,"SQRT(%s)",yyvsp[-1].na);} 8373 break; 8374 case 259: 8375 #line 1476 "fortran.y" 8376 {sprintf(yyval.na,"REAL(%s)",yyvsp[-1].na);} 8377 break; 8378 case 260: 4993 {if ( couldaddvariable == 1 ) 4994 if ( created_dimensionlist == 1 ) (yyval.d)=insertdim((yyvsp[(1) - (3)].d),(yyvsp[(3) - (3)].dim1));;} 4995 break; 4996 4997 case 240: 4998 #line 1473 "fortran.y" 4999 { 5000 strcpy((yyval.dim1).first,"1"); 5001 strcpy((yyval.dim1).last,(yyvsp[(1) - (1)].na)); 5002 Save_Length((yyvsp[(1) - (1)].na),1); 5003 ;} 5004 break; 5005 5006 case 241: 8379 5007 #line 1478 "fortran.y" 8380 {sprintf(yyval.na,"NINT(%s)",yyvsp[-1].na);} 8381 break;8382 case 261: 8383 #line 1480 "fortran.y" 8384 {sprintf(yyval.na,"FLOAT(%s)",yyvsp[-1].na);} 8385 break; 8386 case 262:5008 { 5009 strcpy((yyval.dim1).first,""); 5010 strcpy((yyval.dim1).last,""); 5011 ;} 5012 break; 5013 5014 case 242: 8387 5015 #line 1482 "fortran.y" 8388 {sprintf(yyval.na,"EXP(%s)",yyvsp[-1].na);} 8389 break; 8390 case 263: 8391 #line 1484 "fortran.y" 8392 {sprintf(yyval.na,"COS(%s)",yyvsp[-1].na);} 8393 break; 8394 case 264: 8395 #line 1486 "fortran.y" 8396 {sprintf(yyval.na,"COSH(%s)",yyvsp[-1].na);} 8397 break; 8398 case 265: 8399 #line 1488 "fortran.y" 8400 {sprintf(yyval.na,"ACOS(%s)",yyvsp[-1].na);} 8401 break; 8402 case 266: 8403 #line 1490 "fortran.y" 8404 {sprintf(yyval.na,"SIN(%s)",yyvsp[-1].na);} 8405 break; 8406 case 267: 8407 #line 1492 "fortran.y" 8408 {sprintf(yyval.na,"SINH(%s)",yyvsp[-1].na);} 8409 break; 8410 case 268: 8411 #line 1494 "fortran.y" 8412 {sprintf(yyval.na,"ASIN(%s)",yyvsp[-1].na);} 8413 break; 8414 case 269: 8415 #line 1496 "fortran.y" 8416 {sprintf(yyval.na,"LOG(%s)",yyvsp[-1].na);} 8417 break; 8418 case 270: 8419 #line 1498 "fortran.y" 8420 {sprintf(yyval.na,"TAN(%s)",yyvsp[-1].na);} 8421 break; 8422 case 271: 5016 { 5017 strcpy((yyval.dim1).first,(yyvsp[(1) - (2)].na)); 5018 Save_Length((yyvsp[(1) - (2)].na),2); 5019 strcpy((yyval.dim1).last,""); 5020 ;} 5021 break; 5022 5023 case 243: 5024 #line 1487 "fortran.y" 5025 { 5026 strcpy((yyval.dim1).first,""); 5027 strcpy((yyval.dim1).last,(yyvsp[(2) - (2)].na)); 5028 Save_Length((yyvsp[(2) - (2)].na),1); 5029 ;} 5030 break; 5031 5032 case 244: 5033 #line 1493 "fortran.y" 5034 { 5035 strcpy((yyval.dim1).first,(yyvsp[(1) - (3)].na)); 5036 Save_Length((yyvsp[(1) - (3)].na),2); 5037 strcpy((yyval.dim1).last,(yyvsp[(3) - (3)].na)); 5038 Save_Length((yyvsp[(3) - (3)].na),1); 5039 ;} 5040 break; 5041 5042 case 245: 8423 5043 #line 1500 "fortran.y" 8424 {sprintf(yyval.na,"ATAN(%s)",yyvsp[-1].na);} 8425 break; 8426 case 272: 8427 #line 1502 "fortran.y" 8428 {sprintf(yyval.na,"ABS(%s)",yyvsp[-1].na);} 8429 break; 8430 case 273: 8431 #line 1504 "fortran.y" 8432 {sprintf(yyval.na,"MOD(%s)",yyvsp[-1].na);} 8433 break; 8434 case 274: 8435 #line 1506 "fortran.y" 8436 {sprintf(yyval.na,"SIGN(%s)",yyvsp[-1].na);} 8437 break; 8438 case 275: 8439 #line 1508 "fortran.y" 8440 {sprintf(yyval.na,"MINLOC(%s)",yyvsp[-1].na);} 8441 break; 8442 case 276: 8443 #line 1510 "fortran.y" 8444 {sprintf(yyval.na,"MAXLOC(%s)",yyvsp[-1].na);} 8445 break; 8446 case 277: 8447 #line 1512 "fortran.y" 8448 {strcpy(yyval.na,yyvsp[0].na);} 8449 break; 8450 case 278: 8451 #line 1514 "fortran.y" 8452 {if ( couldaddvariable == 1 ) 8453 { strcpy(yyval.na,yyvsp[-2].na);strcat(yyval.na,",");strcat(yyval.na,yyvsp[0].na);}} 8454 break; 8455 case 279: 5044 {strcpy((yyval.na),"*");;} 5045 break; 5046 5047 case 246: 5048 #line 1501 "fortran.y" 5049 {strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5050 break; 5051 5052 case 247: 5053 #line 1503 "fortran.y" 5054 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5055 break; 5056 5057 case 248: 5058 #line 1505 "fortran.y" 5059 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"(%s)",(yyvsp[(2) - (3)].na));;} 5060 break; 5061 5062 case 249: 5063 #line 1507 "fortran.y" 5064 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5065 break; 5066 5067 case 250: 5068 #line 1509 "fortran.y" 5069 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5070 break; 5071 5072 case 251: 5073 #line 1513 "fortran.y" 5074 {sprintf((yyval.na),"SUM(%s)",(yyvsp[(2) - (3)].na));;} 5075 break; 5076 5077 case 252: 5078 #line 1515 "fortran.y" 5079 {sprintf((yyval.na),"MAX(%s)",(yyvsp[(2) - (3)].na));;} 5080 break; 5081 5082 case 253: 8456 5083 #line 1517 "fortran.y" 8457 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8458 break; 8459 case 280: 5084 {sprintf((yyval.na),"TANH(%s)",(yyvsp[(3) - (4)].na));;} 5085 break; 5086 5087 case 254: 8460 5088 #line 1519 "fortran.y" 8461 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].nac);} 8462 break; 8463 case 281: 5089 {sprintf((yyval.na),"MAXVAL(%s)",(yyvsp[(3) - (4)].na));;} 5090 break; 5091 5092 case 255: 8464 5093 #line 1521 "fortran.y" 8465 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8466 break; 8467 case 282: 5094 {sprintf((yyval.na),"MIN(%s)",(yyvsp[(2) - (3)].na));;} 5095 break; 5096 5097 case 256: 8468 5098 #line 1523 "fortran.y" 8469 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].na,yyvsp[0].na);} 8470 break; 8471 case 283: 5099 {sprintf((yyval.na),"MINVAL(%s)",(yyvsp[(3) - (4)].na));;} 5100 break; 5101 5102 case 257: 8472 5103 #line 1525 "fortran.y" 8473 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8474 break; 8475 case 284: 5104 {sprintf((yyval.na),"TRIM(%s)",(yyvsp[(3) - (4)].na));;} 5105 break; 5106 5107 case 258: 8476 5108 #line 1527 "fortran.y" 8477 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8478 break; 8479 case 285: 5109 {sprintf((yyval.na),"SQRT(%s)",(yyvsp[(2) - (3)].na));;} 5110 break; 5111 5112 case 259: 8480 5113 #line 1529 "fortran.y" 8481 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,"+");} 8482 break; 8483 case 286: 8484 #line 1530 "fortran.y" 8485 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,"-");} 8486 break; 8487 case 287: 5114 {sprintf((yyval.na),"REAL(%s)",(yyvsp[(3) - (4)].na));;} 5115 break; 5116 5117 case 260: 5118 #line 1531 "fortran.y" 5119 {sprintf((yyval.na),"NINT(%s)",(yyvsp[(3) - (4)].na));;} 5120 break; 5121 5122 case 261: 8488 5123 #line 1533 "fortran.y" 8489 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"+%s",yyvsp[0].na);} 8490 break; 8491 case 288: 5124 {sprintf((yyval.na),"FLOAT(%s)",(yyvsp[(3) - (4)].na));;} 5125 break; 5126 5127 case 262: 8492 5128 #line 1535 "fortran.y" 8493 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"-%s",yyvsp[0].na);} 8494 break; 8495 case 289: 5129 {sprintf((yyval.na),"EXP(%s)",(yyvsp[(3) - (4)].na));;} 5130 break; 5131 5132 case 263: 8496 5133 #line 1537 "fortran.y" 8497 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"*%s",yyvsp[0].na);} 8498 break; 8499 case 290: 5134 {sprintf((yyval.na),"COS(%s)",(yyvsp[(3) - (4)].na));;} 5135 break; 5136 5137 case 264: 8500 5138 #line 1539 "fortran.y" 8501 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8502 break; 8503 case 291: 5139 {sprintf((yyval.na),"COSH(%s)",(yyvsp[(3) - (4)].na));;} 5140 break; 5141 5142 case 265: 8504 5143 #line 1541 "fortran.y" 8505 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8506 break; 8507 case 292: 5144 {sprintf((yyval.na),"ACOS(%s)",(yyvsp[(3) - (4)].na));;} 5145 break; 5146 5147 case 266: 8508 5148 #line 1543 "fortran.y" 8509 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8510 break; 8511 case 293: 5149 {sprintf((yyval.na),"SIN(%s)",(yyvsp[(3) - (4)].na));;} 5150 break; 5151 5152 case 267: 8512 5153 #line 1545 "fortran.y" 8513 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8514 break; 8515 case 294: 5154 {sprintf((yyval.na),"SINH(%s)",(yyvsp[(3) - (4)].na));;} 5155 break; 5156 5157 case 268: 8516 5158 #line 1547 "fortran.y" 8517 {if ( couldaddvariable == 1 ) sprintf(yyval.na," > %s",yyvsp[0].na);} 8518 break; 8519 case 295: 5159 {sprintf((yyval.na),"ASIN(%s)",(yyvsp[(3) - (4)].na));;} 5160 break; 5161 5162 case 269: 8520 5163 #line 1549 "fortran.y" 8521 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8522 break; 8523 case 296: 5164 {sprintf((yyval.na),"LOG(%s)",(yyvsp[(3) - (4)].na));;} 5165 break; 5166 5167 case 270: 8524 5168 #line 1551 "fortran.y" 8525 {if ( couldaddvariable == 1 ) sprintf(yyval.na," < %s",yyvsp[0].na);} 8526 break; 8527 case 297: 5169 {sprintf((yyval.na),"TAN(%s)",(yyvsp[(3) - (4)].na));;} 5170 break; 5171 5172 case 271: 8528 5173 #line 1553 "fortran.y" 8529 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8530 break; 8531 case 298: 5174 {sprintf((yyval.na),"ATAN(%s)",(yyvsp[(3) - (4)].na));;} 5175 break; 5176 5177 case 272: 8532 5178 #line 1555 "fortran.y" 8533 {if ( couldaddvariable == 1 ) sprintf(yyval.na," >= %s",yyvsp[0].na);} 8534 break; 8535 case 299: 5179 {sprintf((yyval.na),"ABS(%s)",(yyvsp[(2) - (3)].na));;} 5180 break; 5181 5182 case 273: 8536 5183 #line 1557 "fortran.y" 8537 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8538 break; 8539 case 300: 5184 {sprintf((yyval.na),"MOD(%s)",(yyvsp[(3) - (4)].na));;} 5185 break; 5186 5187 case 274: 8540 5188 #line 1559 "fortran.y" 8541 {if ( couldaddvariable == 1 ) sprintf(yyval.na," <= %s",yyvsp[0].na);} 8542 break; 8543 case 301: 5189 {sprintf((yyval.na),"SIGN(%s)",(yyvsp[(3) - (4)].na));;} 5190 break; 5191 5192 case 275: 8544 5193 #line 1561 "fortran.y" 8545 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8546 break; 8547 case 302: 5194 {sprintf((yyval.na),"MINLOC(%s)",(yyvsp[(3) - (4)].na));;} 5195 break; 5196 5197 case 276: 8548 5198 #line 1563 "fortran.y" 8549 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8550 break; 8551 case 303: 5199 {sprintf((yyval.na),"MAXLOC(%s)",(yyvsp[(3) - (4)].na));;} 5200 break; 5201 5202 case 277: 8552 5203 #line 1565 "fortran.y" 8553 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8554 break; 8555 case 304: 5204 {strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5205 break; 5206 5207 case 278: 8556 5208 #line 1567 "fortran.y" 8557 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8558 break; 8559 case 305: 8560 #line 1569 "fortran.y" 8561 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s%s",yyvsp[-1].nac,yyvsp[0].na);} 8562 break; 8563 case 306: 8564 #line 1571 "fortran.y" 8565 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s",yyvsp[0].na);} 8566 break; 8567 case 307: 8568 #line 1573 "fortran.y" 8569 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s",yyvsp[0].na);} 8570 break; 8571 case 308: 8572 #line 1575 "fortran.y" 8573 {strcpy(yyval.na,"");} 8574 break; 8575 case 309: 8576 #line 1577 "fortran.y" 8577 {sprintf(yyval.na,"/%s",yyvsp[0].na);} 8578 break; 8579 case 310: 8580 #line 1579 "fortran.y" 8581 {sprintf(yyval.na,"/= %s",yyvsp[0].na);} 8582 break; 8583 case 311: 8584 #line 1581 "fortran.y" 8585 {sprintf(yyval.na,"//%s",yyvsp[0].na);} 8586 break; 8587 case 312: 8588 #line 1584 "fortran.y" 8589 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"==%s",yyvsp[0].na);} 8590 break; 8591 case 313: 5209 {if ( couldaddvariable == 1 ) 5210 { strcpy((yyval.na),(yyvsp[(1) - (3)].na));strcat((yyval.na),",");strcat((yyval.na),(yyvsp[(3) - (3)].na));};} 5211 break; 5212 5213 case 279: 5214 #line 1570 "fortran.y" 5215 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5216 break; 5217 5218 case 280: 5219 #line 1572 "fortran.y" 5220 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].nac));;} 5221 break; 5222 5223 case 281: 5224 #line 1574 "fortran.y" 5225 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5226 break; 5227 5228 case 282: 5229 #line 1576 "fortran.y" 5230 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));;} 5231 break; 5232 5233 case 283: 5234 #line 1578 "fortran.y" 5235 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5236 break; 5237 5238 case 284: 5239 #line 1580 "fortran.y" 5240 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5241 break; 5242 5243 case 285: 5244 #line 1582 "fortran.y" 5245 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),"+");;} 5246 break; 5247 5248 case 286: 5249 #line 1583 "fortran.y" 5250 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),"-");;} 5251 break; 5252 5253 case 287: 8592 5254 #line 1586 "fortran.y" 8593 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"= %s",yyvsp[0].na);} 8594 break; 8595 case 314: 8596 #line 1589 "fortran.y" 8597 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].nac);} 8598 break; 8599 case 315: 8600 #line 1591 "fortran.y" 8601 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8602 break; 8603 case 316: 8604 #line 1593 "fortran.y" 8605 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8606 break; 8607 case 317: 8608 #line 1595 "fortran.y" 8609 { 5255 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"+%s",(yyvsp[(2) - (2)].na));;} 5256 break; 5257 5258 case 288: 5259 #line 1588 "fortran.y" 5260 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"-%s",(yyvsp[(2) - (2)].na));;} 5261 break; 5262 5263 case 289: 5264 #line 1590 "fortran.y" 5265 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"*%s",(yyvsp[(2) - (2)].na));;} 5266 break; 5267 5268 case 290: 5269 #line 1592 "fortran.y" 5270 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5271 break; 5272 5273 case 291: 5274 #line 1594 "fortran.y" 5275 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5276 break; 5277 5278 case 292: 5279 #line 1596 "fortran.y" 5280 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5281 break; 5282 5283 case 293: 5284 #line 1598 "fortran.y" 5285 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5286 break; 5287 5288 case 294: 5289 #line 1600 "fortran.y" 5290 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," > %s",(yyvsp[(2) - (2)].na));;} 5291 break; 5292 5293 case 295: 5294 #line 1602 "fortran.y" 5295 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5296 break; 5297 5298 case 296: 5299 #line 1604 "fortran.y" 5300 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," < %s",(yyvsp[(2) - (2)].na));;} 5301 break; 5302 5303 case 297: 5304 #line 1606 "fortran.y" 5305 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5306 break; 5307 5308 case 298: 5309 #line 1608 "fortran.y" 5310 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," >= %s",(yyvsp[(3) - (3)].na));;} 5311 break; 5312 5313 case 299: 5314 #line 1610 "fortran.y" 5315 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5316 break; 5317 5318 case 300: 5319 #line 1612 "fortran.y" 5320 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," <= %s",(yyvsp[(3) - (3)].na));;} 5321 break; 5322 5323 case 301: 5324 #line 1614 "fortran.y" 5325 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5326 break; 5327 5328 case 302: 5329 #line 1616 "fortran.y" 5330 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5331 break; 5332 5333 case 303: 5334 #line 1618 "fortran.y" 5335 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5336 break; 5337 5338 case 304: 5339 #line 1620 "fortran.y" 5340 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5341 break; 5342 5343 case 305: 5344 #line 1622 "fortran.y" 5345 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].na));;} 5346 break; 5347 5348 case 306: 5349 #line 1624 "fortran.y" 5350 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na));;} 5351 break; 5352 5353 case 307: 5354 #line 1626 "fortran.y" 5355 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s",(yyvsp[(2) - (2)].na));;} 5356 break; 5357 5358 case 308: 5359 #line 1628 "fortran.y" 5360 {strcpy((yyval.na),"");;} 5361 break; 5362 5363 case 309: 5364 #line 1630 "fortran.y" 5365 {sprintf((yyval.na),"/%s",(yyvsp[(1) - (1)].na));;} 5366 break; 5367 5368 case 310: 5369 #line 1632 "fortran.y" 5370 {sprintf((yyval.na),"/= %s",(yyvsp[(2) - (2)].na));;} 5371 break; 5372 5373 case 311: 5374 #line 1634 "fortran.y" 5375 {sprintf((yyval.na),"//%s",(yyvsp[(2) - (2)].na));;} 5376 break; 5377 5378 case 312: 5379 #line 1637 "fortran.y" 5380 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"==%s",(yyvsp[(2) - (2)].na));;} 5381 break; 5382 5383 case 313: 5384 #line 1639 "fortran.y" 5385 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"= %s",(yyvsp[(1) - (1)].na));;} 5386 break; 5387 5388 case 314: 5389 #line 1642 "fortran.y" 5390 {if ( couldaddvariable == 1 ) 5391 { 5392 printf("ident = %s\n",(yyvsp[(1) - (1)].nac)); 5393 strcpy((yyval.na),(yyvsp[(1) - (1)].nac));} 5394 ;} 5395 break; 5396 5397 case 315: 5398 #line 1648 "fortran.y" 5399 {if ( couldaddvariable == 1 ) { 5400 printf("struct = %s\n",(yyvsp[(1) - (1)].na)); 5401 strcpy((yyval.na),(yyvsp[(1) - (1)].na));} 5402 ;} 5403 break; 5404 5405 case 316: 5406 #line 1653 "fortran.y" 5407 {if ( couldaddvariable == 1 ) { 5408 printf("arrayref = %s\n",(yyvsp[(1) - (1)].na)); 5409 strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 5410 };} 5411 break; 5412 5413 case 317: 5414 #line 1658 "fortran.y" 5415 { 8610 5416 agrif_parentcall =0; 8611 5417 if (!strcasecmp(identcopy,"Agrif_Parent") ) … … 8617 5423 curmodulename); 8618 5424 } 8619 } 8620 break; 8621 case 318: 8622 #line 1608 "fortran.y" 8623 { 8624 strcpy(yyval.na,yyvsp[0].na); 5425 ;} 5426 break; 5427 5428 case 318: 5429 #line 1671 "fortran.y" 5430 { 5431 strcpy((yyval.na),(yyvsp[(1) - (1)].na)); 8625 5432 if ( incalldeclare == 0 ) inagrifcallargument = 0; 8626 } 8627 break; 8628 case 319: 8629 #line 1613 "fortran.y" 8630 {if ( couldaddvariable == 1 ) sprintf(yyval.na," %s %s ",yyvsp[-1].na,yyvsp[0].na);} 8631 break; 8632 case 320: 8633 #line 1615 "fortran.y" 8634 {if ( couldaddvariable == 1 ) 8635 sprintf(yyval.na," %s ( %s )",yyvsp[-3].na,yyvsp[-1].na);} 8636 break; 8637 case 321: 8638 #line 1618 "fortran.y" 8639 {if ( couldaddvariable == 1 ) 8640 sprintf(yyval.na," %s ( %s ) %s ",yyvsp[-4].na,yyvsp[-2].na,yyvsp[0].na);} 8641 break; 8642 case 322: 8643 #line 1622 "fortran.y" 8644 { 5433 ;} 5434 break; 5435 5436 case 319: 5437 #line 1676 "fortran.y" 5438 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," %s %s ",(yyvsp[(1) - (2)].na),(yyvsp[(2) - (2)].na));;} 5439 break; 5440 5441 case 320: 5442 #line 1678 "fortran.y" 5443 {if ( couldaddvariable == 1 ) 5444 sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (4)].na),(yyvsp[(3) - (4)].na));;} 5445 break; 5446 5447 case 321: 5448 #line 1681 "fortran.y" 5449 {if ( couldaddvariable == 1 ) 5450 sprintf((yyval.na)," %s ( %s ) %s ",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));;} 5451 break; 5452 5453 case 322: 5454 #line 1685 "fortran.y" 5455 { 8645 5456 if ( couldaddvariable == 1 ) 8646 5457 { 8647 sprintf( yyval.na," %s ( %s )",yyvsp[-3].nac,yyvsp[-1].na);8648 ModifyTheAgrifFunction_0( yyvsp[-1].na);5458 sprintf((yyval.na)," %s ( %s )",(yyvsp[(1) - (4)].nac),(yyvsp[(3) - (4)].na)); 5459 ModifyTheAgrifFunction_0((yyvsp[(3) - (4)].na)); 8649 5460 agrif_parentcall =0; 8650 5461 } 8651 } 8652 break; 8653 case 323: 8654 #line 1632 "fortran.y" 8655 { 8656 sprintf(yyval.na," %s %% %s ",yyvsp[-2].na,yyvsp[0].na); 5462 ;} 5463 break; 5464 5465 case 323: 5466 #line 1695 "fortran.y" 5467 { 5468 sprintf((yyval.na)," %s %% %s ",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na)); 8657 5469 if ( incalldeclare == 0 ) inagrifcallargument = 0; 8658 } 8659 break; 8660 case 324: 8661 #line 1638 "fortran.y" 8662 {sprintf(yyval.na,"(/%s/)",yyvsp[-1].na);} 8663 break; 8664 case 325: 8665 #line 1640 "fortran.y" 8666 {strcpy(yyval.na," ");} 8667 break; 8668 case 326: 8669 #line 1642 "fortran.y" 8670 {strcpy(yyval.na,yyvsp[0].na);} 8671 break; 8672 case 327: 8673 #line 1644 "fortran.y" 8674 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8675 break; 8676 case 328: 8677 #line 1646 "fortran.y" 8678 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 8679 break; 8680 case 329: 8681 #line 1648 "fortran.y" 8682 {strcpy(yyval.na,yyvsp[0].na);} 8683 break; 8684 case 330: 8685 #line 1649 "fortran.y" 8686 {strcpy(yyval.na,yyvsp[0].na);} 8687 break; 8688 case 331: 8689 #line 1652 "fortran.y" 8690 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s :%s",yyvsp[-2].na,yyvsp[0].na);} 8691 break; 8692 case 332: 8693 #line 1654 "fortran.y" 8694 {if ( couldaddvariable == 1 ) 8695 sprintf(yyval.na,"%s :%s :%s",yyvsp[-4].na,yyvsp[-2].na,yyvsp[0].na);} 8696 break; 8697 case 333: 8698 #line 1657 "fortran.y" 8699 {if ( couldaddvariable == 1 ) sprintf(yyval.na,":%s :%s",yyvsp[-2].na,yyvsp[0].na);} 8700 break; 8701 case 334: 8702 #line 1658 "fortran.y" 8703 {if ( couldaddvariable == 1 ) sprintf(yyval.na,": : %s",yyvsp[0].na);} 8704 break; 8705 case 335: 8706 #line 1659 "fortran.y" 8707 {if ( couldaddvariable == 1 ) sprintf(yyval.na,":%s",yyvsp[0].na);} 8708 break; 8709 case 336: 8710 #line 1660 "fortran.y" 8711 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s :",yyvsp[-1].na);} 8712 break; 8713 case 337: 8714 #line 1661 "fortran.y" 8715 {if ( couldaddvariable == 1 ) sprintf(yyval.na,":");} 8716 break; 8717 case 338: 8718 #line 1663 "fortran.y" 8719 { 8720 if ( couldaddvariable == 1 ) 5470 ;} 5471 break; 5472 5473 case 324: 5474 #line 1701 "fortran.y" 5475 {sprintf((yyval.na),"(/%s/)",(yyvsp[(2) - (3)].na));;} 5476 break; 5477 5478 case 325: 5479 #line 1703 "fortran.y" 5480 {strcpy((yyval.na)," ");;} 5481 break; 5482 5483 case 326: 5484 #line 1705 "fortran.y" 5485 {strcpy((yyval.na),(yyvsp[(2) - (2)].na));;} 5486 break; 5487 5488 case 327: 5489 #line 1707 "fortran.y" 5490 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5491 break; 5492 5493 case 328: 5494 #line 1709 "fortran.y" 5495 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 5496 break; 5497 5498 case 329: 5499 #line 1711 "fortran.y" 5500 {strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5501 break; 5502 5503 case 330: 5504 #line 1712 "fortran.y" 5505 {strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5506 break; 5507 5508 case 331: 5509 #line 1715 "fortran.y" 5510 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s :%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 5511 break; 5512 5513 case 332: 5514 #line 1717 "fortran.y" 5515 {if ( couldaddvariable == 1 ) 5516 sprintf((yyval.na),"%s :%s :%s",(yyvsp[(1) - (5)].na),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));;} 5517 break; 5518 5519 case 333: 5520 #line 1720 "fortran.y" 5521 {if ( couldaddvariable == 1 ) sprintf((yyval.na),":%s :%s",(yyvsp[(2) - (4)].na),(yyvsp[(4) - (4)].na));;} 5522 break; 5523 5524 case 334: 5525 #line 1721 "fortran.y" 5526 {if ( couldaddvariable == 1 ) sprintf((yyval.na),": : %s",(yyvsp[(3) - (3)].na));;} 5527 break; 5528 5529 case 335: 5530 #line 1722 "fortran.y" 5531 {if ( couldaddvariable == 1 ) sprintf((yyval.na),":%s",(yyvsp[(2) - (2)].na));;} 5532 break; 5533 5534 case 336: 5535 #line 1723 "fortran.y" 5536 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s :",(yyvsp[(1) - (2)].na));;} 5537 break; 5538 5539 case 337: 5540 #line 1724 "fortran.y" 5541 {if ( couldaddvariable == 1 ) sprintf((yyval.na),":");;} 5542 break; 5543 5544 case 338: 5545 #line 1726 "fortran.y" 8721 5546 { 8722 if ( Vartonumber(yyvsp[0].nac) == 1 ) 5547 if ( couldaddvariable == 1 && afterpercent == 0) 5548 { 5549 if ( Vartonumber((yyvsp[(1) - (1)].nac)) == 1 ) 8723 5550 { 8724 5551 Add_SubroutineWhereAgrifUsed_1(subroutinename, 8725 5552 curmodulename); 8726 5553 } 8727 if (!strcasecmp( yyvsp[0].nac,"Agrif_Parent") )5554 if (!strcasecmp((yyvsp[(1) - (1)].nac),"Agrif_Parent") ) 8728 5555 agrif_parentcall =1; 8729 if ( VariableIsNotFunction( yyvsp[0].nac) == 0 )5556 if ( VariableIsNotFunction((yyvsp[(1) - (1)].nac)) == 0 ) 8730 5557 { 5558 printf("var = %s\n",(yyvsp[(1) - (1)].nac)); 8731 5559 if ( inagrifcallargument == 1 ) 8732 5560 { 8733 if ( !strcasecmp( yyvsp[0].nac,identcopy) )5561 if ( !strcasecmp((yyvsp[(1) - (1)].nac),identcopy) ) 8734 5562 { 8735 5563 strcpy(sameagrifname,identcopy); … … 8737 5565 } 8738 5566 } 8739 strcpy(identcopy, yyvsp[0].nac);5567 strcpy(identcopy,(yyvsp[(1) - (1)].nac)); 8740 5568 pointedvar=0; 8741 strcpy(truename,yyvsp[0].nac); 8742 if (variscoupled_0(yyvsp[0].nac)) strcpy(truename,getcoupledname_0(yyvsp[0].nac)); 8743 /* 8744 if ( VarIsNonGridDepend($1) == 0 && 8745 Variableshouldberemove($1) == 0 ) 8746 { 8747 if ( inagrifcallargument == 1 || 8748 varisallocatable_0($1) == 1 || 8749 varispointer_0($1) == 1 ) 8750 { 8751 if ((IsinListe(List_UsedInSubroutine_Var,$1) == 1) || (inagrifcallargument == 1)) 8752 { 8753 if (varistyped_0($1) == 0) 8754 { 8755 ModifyTheVariableName_0($1); 8756 } 8757 } 8758 else 8759 { 8760 } 8761 } 8762 if (variscoupled_0($1) == 1) 8763 { 8764 printf("mla variable %s est couplee %s\n",$1,getcoupledname_0($1)); 8765 ModifyTheVariableNamecoupled_0($1,getcoupledname_0($1)); 8766 } 8767 if ( inagrifcallargument != 1 || 8768 sameagrifargument ==1 ) 8769 Add_UsedInSubroutine_Var_1($1); 8770 } 8771 NotifyAgrifFunction_0($1); 8772 */ 5569 strcpy(truename,(yyvsp[(1) - (1)].nac)); 5570 if (variscoupled_0((yyvsp[(1) - (1)].nac))) strcpy(truename,getcoupledname_0((yyvsp[(1) - (1)].nac))); 5571 8773 5572 if ( VarIsNonGridDepend(truename) == 0 && 8774 5573 Variableshouldberemove(truename) == 0 ) 8775 { 5574 { 8776 5575 if ( inagrifcallargument == 1 || 8777 varisallocatable_0(truename) == 1 ||8778 5576 varispointer_0(truename) == 1 ) 8779 5577 { 8780 if ((IsinListe(List_UsedInSubroutine_Var,yyvsp[0].nac) == 1) || (inagrifcallargument == 1)) 5578 printf("var2 = %s\n",(yyvsp[(1) - (1)].nac)); 5579 if ((IsinListe(List_UsedInSubroutine_Var,(yyvsp[(1) - (1)].nac)) == 1) || (inagrifcallargument == 1)) 8781 5580 { 8782 5581 if (varistyped_0(truename) == 0) 8783 5582 { 8784 ModifyTheVariableName_0(truename,strlen( yyvsp[0].nac));5583 ModifyTheVariableName_0(truename,strlen((yyvsp[(1) - (1)].nac))); 8785 5584 } 8786 5585 } 8787 5586 } 5587 printf("ici3\n"); 8788 5588 if ( inagrifcallargument != 1 || 8789 5589 sameagrifargument ==1 ) 5590 { 5591 printf("ici5 %s\n",truename); 8790 5592 Add_UsedInSubroutine_Var_1(truename); 5593 } 8791 5594 } 8792 5595 NotifyAgrifFunction_0(truename); 8793 5596 } 8794 5597 } 5598 else 5599 { 5600 afterpercent = 0; 8795 5601 } 8796 break; 8797 case 339: 8798 #line 1742 "fortran.y" 8799 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,".TRUE.");} 8800 break; 8801 case 340: 8802 #line 1743 "fortran.y" 8803 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,".FALSE.");} 8804 break; 8805 case 341: 8806 #line 1744 "fortran.y" 8807 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8808 break; 8809 case 342: 8810 #line 1745 "fortran.y" 8811 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8812 break; 8813 case 343: 8814 #line 1746 "fortran.y" 8815 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8816 break; 8817 case 344: 8818 #line 1747 "fortran.y" 8819 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8820 break; 8821 case 345: 8822 #line 1749 "fortran.y" 8823 {if ( couldaddvariable == 1 ) sprintf(yyval.nac,"%s%s",yyvsp[-1].nac,yyvsp[0].nac);} 8824 break; 8825 case 347: 8826 #line 1753 "fortran.y" 8827 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8828 break; 8829 case 349: 8830 #line 1756 "fortran.y" 8831 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8832 break; 8833 case 350: 8834 #line 1758 "fortran.y" 8835 {if ( couldaddvariable == 1 ) strcpy(yyval.nac,yyvsp[0].nac);} 8836 break; 8837 case 351: 8838 #line 1760 "fortran.y" 8839 {if ( couldaddvariable == 1 ) strcpy(yyval.na," ");} 8840 break; 8841 case 352: 8842 #line 1761 "fortran.y" 8843 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8844 break; 8845 case 353: 8846 #line 1764 "fortran.y" 8847 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"(%s :%s)",yyvsp[-3].na,yyvsp[-1].na);} 8848 break; 8849 case 354: 8850 #line 1766 "fortran.y" 8851 {if ( couldaddvariable == 1 ) strcpy(yyval.na," ");} 8852 break; 8853 case 355: 8854 #line 1767 "fortran.y" 8855 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8856 break; 8857 case 356: 8858 #line 1769 "fortran.y" 8859 {if ( couldaddvariable == 1 ) strcpy(yyval.na," ");} 8860 break; 8861 case 357: 8862 #line 1770 "fortran.y" 8863 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 8864 break; 8865 case 358: 8866 #line 1772 "fortran.y" 8867 {InitialValueGiven = 0;} 8868 break; 8869 case 359: 8870 #line 1774 "fortran.y" 8871 { 5602 ;} 5603 break; 5604 5605 case 339: 5606 #line 1785 "fortran.y" 5607 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),".TRUE.");;} 5608 break; 5609 5610 case 340: 5611 #line 1786 "fortran.y" 5612 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),".FALSE.");;} 5613 break; 5614 5615 case 341: 5616 #line 1787 "fortran.y" 5617 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5618 break; 5619 5620 case 342: 5621 #line 1788 "fortran.y" 5622 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5623 break; 5624 5625 case 343: 5626 #line 1789 "fortran.y" 5627 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5628 break; 5629 5630 case 344: 5631 #line 1790 "fortran.y" 5632 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5633 break; 5634 5635 case 345: 5636 #line 1792 "fortran.y" 5637 {if ( couldaddvariable == 1 ) sprintf((yyval.nac),"%s%s",(yyvsp[(1) - (2)].nac),(yyvsp[(2) - (2)].nac));;} 5638 break; 5639 5640 case 347: 5641 #line 1796 "fortran.y" 5642 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5643 break; 5644 5645 case 349: 5646 #line 1799 "fortran.y" 5647 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5648 break; 5649 5650 case 350: 5651 #line 1801 "fortran.y" 5652 {if ( couldaddvariable == 1 ) strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5653 break; 5654 5655 case 351: 5656 #line 1803 "fortran.y" 5657 {if ( couldaddvariable == 1 ) strcpy((yyval.na)," ");;} 5658 break; 5659 5660 case 352: 5661 #line 1804 "fortran.y" 5662 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5663 break; 5664 5665 case 353: 5666 #line 1807 "fortran.y" 5667 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"(%s :%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));;} 5668 break; 5669 5670 case 354: 5671 #line 1809 "fortran.y" 5672 {if ( couldaddvariable == 1 ) strcpy((yyval.na)," ");;} 5673 break; 5674 5675 case 355: 5676 #line 1810 "fortran.y" 5677 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5678 break; 5679 5680 case 356: 5681 #line 1812 "fortran.y" 5682 {if ( couldaddvariable == 1 ) strcpy((yyval.na)," ");;} 5683 break; 5684 5685 case 357: 5686 #line 1813 "fortran.y" 5687 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 5688 break; 5689 5690 case 358: 5691 #line 1815 "fortran.y" 5692 {InitialValueGiven = 0;;} 5693 break; 5694 5695 case 359: 5696 #line 1817 "fortran.y" 5697 { 8872 5698 if ( couldaddvariable == 1 ) 8873 5699 { 8874 strcpy(InitValue, yyvsp[0].na);5700 strcpy(InitValue,(yyvsp[(3) - (3)].na)); 8875 5701 InitialValueGiven = 1; 8876 5702 } 8877 } 8878 break; 8879 case 360: 8880 #line 1782 "fortran.y" 8881 {pos_curinit = setposcur();} 8882 break; 8883 case 361: 8884 #line 1785 "fortran.y" 8885 {sprintf(yyval.na,"(%s,%s)",yyvsp[-3].na,yyvsp[-1].na);} 8886 break; 8887 case 362: 8888 #line 1788 "fortran.y" 8889 { 5703 ;} 5704 break; 5705 5706 case 360: 5707 #line 1825 "fortran.y" 5708 {pos_curinit = setposcur();;} 5709 break; 5710 5711 case 361: 5712 #line 1828 "fortran.y" 5713 {sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));;} 5714 break; 5715 5716 case 362: 5717 #line 1831 "fortran.y" 5718 { 8890 5719 if ( couldaddvariable == 1 ) 8891 5720 { … … 8893 5722 if (insubroutinedeclare == 1) 8894 5723 { 8895 copyuse_0( yyvsp[0].nac);5724 copyuse_0((yyvsp[(2) - (2)].nac)); 8896 5725 } 8897 sprintf(charusemodule,"%s", yyvsp[0].nac);8898 Add_NameOfModuleUsed_1( yyvsp[0].nac);5726 sprintf(charusemodule,"%s",(yyvsp[(2) - (2)].nac)); 5727 Add_NameOfModuleUsed_1((yyvsp[(2) - (2)].nac)); 8899 5728 8900 5729 if ( inmoduledeclare == 0 ) … … 8905 5734 } 8906 5735 } 8907 } 8908 break; 8909 case 363: 8910 #line 1808 "fortran.y" 8911 { 5736 ;} 5737 break; 5738 5739 case 363: 5740 #line 1851 "fortran.y" 5741 { 8912 5742 if ( couldaddvariable == 1 ) 8913 5743 { 8914 5744 if (insubroutinedeclare == 1) 8915 5745 { 8916 Add_CouplePointed_Var_1( yyvsp[-2].nac,yyvsp[0].lc);5746 Add_CouplePointed_Var_1((yyvsp[(2) - (4)].nac),(yyvsp[(4) - (4)].lc)); 8917 5747 } 8918 5748 if ( firstpass == 1 ) … … 8920 5750 if ( insubroutinedeclare == 1 ) 8921 5751 { 8922 coupletmp = yyvsp[0].lc;5752 coupletmp = (yyvsp[(4) - (4)].lc); 8923 5753 strcpy(ligne,""); 8924 5754 while ( coupletmp ) … … 8930 5760 if ( coupletmp ) strcat(ligne,","); 8931 5761 } 8932 sprintf(charusemodule,"%s", yyvsp[-2].nac);5762 sprintf(charusemodule,"%s",(yyvsp[(2) - (4)].nac)); 8933 5763 } 8934 Add_NameOfModuleUsed_1( yyvsp[-2].nac);5764 Add_NameOfModuleUsed_1((yyvsp[(2) - (4)].nac)); 8935 5765 } 8936 5766 if ( inmoduledeclare == 0 ) … … 8941 5771 } 8942 5772 } 8943 } 8944 break; 8945 case 364: 8946 #line 1842 "fortran.y" 8947 { 5773 ;} 5774 break; 5775 5776 case 364: 5777 #line 1885 "fortran.y" 5778 { 8948 5779 if ( couldaddvariable == 1 ) 8949 5780 { … … 8951 5782 if (insubroutinedeclare == 1) 8952 5783 { 8953 copyuseonly_0( yyvsp[-4].nac);5784 copyuseonly_0((yyvsp[(2) - (6)].nac)); 8954 5785 } 8955 sprintf(charusemodule,"%s", yyvsp[-4].nac);8956 Add_NameOfModuleUsed_1( yyvsp[-4].nac);5786 sprintf(charusemodule,"%s",(yyvsp[(2) - (6)].nac)); 5787 Add_NameOfModuleUsed_1((yyvsp[(2) - (6)].nac)); 8957 5788 8958 5789 if ( inmoduledeclare == 0 ) … … 8963 5794 } 8964 5795 } 8965 } 8966 break; 8967 case 365: 8968 #line 1862 "fortran.y" 8969 { 5796 ;} 5797 break; 5798 5799 case 365: 5800 #line 1905 "fortran.y" 5801 { 8970 5802 if ( couldaddvariable == 1 ) 8971 5803 { … … 8973 5805 if (insubroutinedeclare == 1) 8974 5806 { 8975 Add_CouplePointed_Var_1( yyvsp[-4].nac,yyvsp[0].lc);5807 Add_CouplePointed_Var_1((yyvsp[(2) - (6)].nac),(yyvsp[(6) - (6)].lc)); 8976 5808 } 8977 5809 if ( firstpass == 1 ) … … 8979 5811 if ( insubroutinedeclare == 1 ) 8980 5812 { 8981 coupletmp = yyvsp[0].lc;5813 coupletmp = (yyvsp[(6) - (6)].lc); 8982 5814 strcpy(ligne,""); 8983 5815 while ( coupletmp ) … … 8990 5822 if ( coupletmp ) strcat(ligne,","); 8991 5823 } 8992 sprintf(charusemodule,"%s", yyvsp[-4].nac);5824 sprintf(charusemodule,"%s",(yyvsp[(2) - (6)].nac)); 8993 5825 } 8994 Add_NameOfModuleUsed_1( yyvsp[-4].nac);5826 Add_NameOfModuleUsed_1((yyvsp[(2) - (6)].nac)); 8995 5827 } 8996 5828 if ( firstpass == 0 ) … … 9003 5835 pos_end-pos_curuse); 9004 5836 if (oldfortranout) 9005 variableisglobalinmodule( yyvsp[0].lc,yyvsp[-4].nac,oldfortranout,pos_curuseold);5837 variableisglobalinmodule((yyvsp[(6) - (6)].lc),(yyvsp[(2) - (6)].nac),oldfortranout,pos_curuseold); 9006 5838 9007 5839 } … … 9011 5843 /* if we are in the module declare and if the */ 9012 5844 /* onlylist is a list of global variable */ 9013 variableisglobalinmodule( yyvsp[0].lc, yyvsp[-4].nac, fortranout,pos_curuse);5845 variableisglobalinmodule((yyvsp[(6) - (6)].lc), (yyvsp[(2) - (6)].nac), fortranout,pos_curuse); 9014 5846 } 9015 5847 } 9016 5848 } 9017 } 9018 break; 9019 case 366: 9020 #line 1913 "fortran.y" 9021 { 9022 pos_curuse = setposcur()-strlen(yyvsp[0].nac); 5849 ;} 5850 break; 5851 5852 case 366: 5853 #line 1956 "fortran.y" 5854 { 5855 pos_curuse = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 9023 5856 if (firstpass == 0 && oldfortranout) { 9024 5857 pos_curuseold = setposcurname(oldfortranout); 9025 5858 } 9026 } 9027 break; 9028 case 367: 9029 #line 1921 "fortran.y" 9030 {strcpy(yyval.nac,yyvsp[0].nac);} 9031 break; 9032 case 368: 9033 #line 1924 "fortran.y" 9034 { 9035 if ( couldaddvariable == 1 ) yyval.lc = yyvsp[0].lc; 9036 } 9037 break; 9038 case 369: 9039 #line 1928 "fortran.y" 9040 { 5859 ;} 5860 break; 5861 5862 case 367: 5863 #line 1964 "fortran.y" 5864 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 5865 break; 5866 5867 case 368: 5868 #line 1967 "fortran.y" 5869 { 5870 if ( couldaddvariable == 1 ) (yyval.lc) = (yyvsp[(1) - (1)].lc); 5871 ;} 5872 break; 5873 5874 case 369: 5875 #line 1971 "fortran.y" 5876 { 9041 5877 if ( couldaddvariable == 1 ) 9042 5878 { 9043 5879 /* insert the variable in the list $1 */ 9044 yyvsp[0].lc->suiv = yyvsp[-2].lc;9045 yyval.lc = yyvsp[0].lc;5880 (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 5881 (yyval.lc) = (yyvsp[(3) - (3)].lc); 9046 5882 } 9047 } 9048 break; 9049 case 370: 9050 #line 1938 "fortran.y" 9051 { 5883 ;} 5884 break; 5885 5886 case 370: 5887 #line 1981 "fortran.y" 5888 { 9052 5889 coupletmp =(listcouple *)malloc(sizeof(listcouple)); 9053 strcpy(coupletmp->c_namevar, yyvsp[-2].nac);9054 Save_Length( yyvsp[-2].nac,21);9055 strcpy(coupletmp->c_namepointedvar, yyvsp[0].nac);9056 Save_Length( yyvsp[0].nac,22);5890 strcpy(coupletmp->c_namevar,(yyvsp[(1) - (3)].nac)); 5891 Save_Length((yyvsp[(1) - (3)].nac),21); 5892 strcpy(coupletmp->c_namepointedvar,(yyvsp[(3) - (3)].nac)); 5893 Save_Length((yyvsp[(3) - (3)].nac),22); 9057 5894 coupletmp->suiv = NULL; 9058 yyval.lc = coupletmp; 9059 } 9060 break; 9061 case 371: 9062 #line 1949 "fortran.y" 9063 { 9064 if ( couldaddvariable == 1 ) yyval.lc = yyvsp[0].lc; 9065 } 9066 break; 9067 case 372: 9068 #line 1953 "fortran.y" 9069 { 5895 (yyval.lc) = coupletmp; 5896 ;} 5897 break; 5898 5899 case 371: 5900 #line 1992 "fortran.y" 5901 { 5902 if ( couldaddvariable == 1 ) (yyval.lc) = (yyvsp[(1) - (1)].lc); 5903 ;} 5904 break; 5905 5906 case 372: 5907 #line 1996 "fortran.y" 5908 { 9070 5909 if ( couldaddvariable == 1 ) 9071 5910 { 9072 5911 /* insert the variable in the list $1 */ 9073 yyvsp[0].lc->suiv = yyvsp[-2].lc;9074 yyval.lc = yyvsp[0].lc;5912 (yyvsp[(3) - (3)].lc)->suiv = (yyvsp[(1) - (3)].lc); 5913 (yyval.lc) = (yyvsp[(3) - (3)].lc); 9075 5914 } 9076 } 9077 break; 9078 case 373: 9079 #line 1963 "fortran.y" 9080 { 5915 ;} 5916 break; 5917 5918 case 373: 5919 #line 2006 "fortran.y" 5920 { 9081 5921 coupletmp =(listcouple *)malloc(sizeof(listcouple)); 9082 strcpy(coupletmp->c_namevar, yyvsp[-2].nac);9083 Save_Length( yyvsp[-2].nac,21);9084 strcpy(coupletmp->c_namepointedvar, yyvsp[0].nac);9085 Save_Length( yyvsp[0].nac,22);5922 strcpy(coupletmp->c_namevar,(yyvsp[(1) - (3)].nac)); 5923 Save_Length((yyvsp[(1) - (3)].nac),21); 5924 strcpy(coupletmp->c_namepointedvar,(yyvsp[(3) - (3)].nac)); 5925 Save_Length((yyvsp[(3) - (3)].nac),22); 9086 5926 coupletmp->suiv = NULL; 9087 yyval.lc= coupletmp;5927 (yyval.lc) = coupletmp; 9088 5928 pointedvar=1; 9089 Add_UsedInSubroutine_Var_1(yyvsp[-2].nac); 9090 } 9091 break; 9092 case 374: 9093 #line 1974 "fortran.y" 9094 { 5929 Add_UsedInSubroutine_Var_1((yyvsp[(1) - (3)].nac)); 5930 ;} 5931 break; 5932 5933 case 374: 5934 #line 2017 "fortran.y" 5935 { 9095 5936 coupletmp =(listcouple *)malloc(sizeof(listcouple)); 9096 strcpy(coupletmp->c_namevar, yyvsp[0].nac);9097 Save_Length( yyvsp[0].nac,21);5937 strcpy(coupletmp->c_namevar,(yyvsp[(1) - (1)].nac)); 5938 Save_Length((yyvsp[(1) - (1)].nac),21); 9098 5939 strcpy(coupletmp->c_namepointedvar,""); 9099 5940 coupletmp->suiv = NULL; 9100 yyval.lc = coupletmp; 9101 } 9102 break; 9103 case 376: 9104 #line 1985 "fortran.y" 9105 { 5941 (yyval.lc) = coupletmp; 5942 ;} 5943 break; 5944 5945 case 376: 5946 #line 2028 "fortran.y" 5947 { 9106 5948 Add_SubroutineWhereAgrifUsed_1(subroutinename, 9107 5949 curmodulename); 9108 5950 inallocate = 0; 9109 } 9110 break; 9111 case 377: 9112 #line 1991 "fortran.y" 9113 { 5951 ;} 5952 break; 5953 5954 case 377: 5955 #line 2034 "fortran.y" 5956 { 9114 5957 Add_SubroutineWhereAgrifUsed_1(subroutinename, 9115 5958 curmodulename); 9116 5959 inallocate = 0; 9117 } 9118 break; 9119 case 379: 9120 #line 1998 "fortran.y" 9121 { 5960 ;} 5961 break; 5962 5963 case 379: 5964 #line 2041 "fortran.y" 5965 { 9122 5966 GlobalDeclaration = 0 ; 9123 5967 if ( firstpass == 0 && … … 9167 6011 } 9168 6012 strcpy(subroutinename,""); 9169 } 9170 break; 9171 case 380: 9172 #line 2048 "fortran.y" 9173 { 6013 ;} 6014 break; 6015 6016 case 380: 6017 #line 2091 "fortran.y" 6018 { 9174 6019 if ( couldaddvariable == 1 ) 9175 6020 { … … 9187 6032 strcpy(subroutinename,""); 9188 6033 } 9189 } 9190 break; 9191 case 381: 9192 #line 2066 "fortran.y" 9193 { 6034 ;} 6035 break; 6036 6037 case 381: 6038 #line 2109 "fortran.y" 6039 { 9194 6040 if ( couldaddvariable == 1 && 9195 6041 strcasecmp(subroutinename,"") ) … … 9209 6055 strcpy(subroutinename,""); 9210 6056 } 9211 } 9212 break; 9213 case 382: 9214 #line 2086 "fortran.y" 9215 { 6057 ;} 6058 break; 6059 6060 case 382: 6061 #line 2129 "fortran.y" 6062 { 9216 6063 if ( couldaddvariable == 1 ) 9217 6064 { … … 9230 6077 strcpy(subroutinename,""); 9231 6078 } 9232 } 9233 break; 9234 case 383: 9235 #line 2105 "fortran.y" 9236 { 6079 ;} 6080 break; 6081 6082 case 383: 6083 #line 2148 "fortran.y" 6084 { 9237 6085 if ( couldaddvariable == 1 ) 9238 6086 { 9239 6087 /* if we never meet the contains keyword */ 9240 Remove_Word_end_module_0(strlen( yyvsp[0].nac));6088 Remove_Word_end_module_0(strlen((yyvsp[(2) - (2)].nac))); 9241 6089 if ( inmoduledeclare == 1 ) 9242 6090 { … … 9265 6113 GlobalDeclaration = 0 ; 9266 6114 } 9267 } 9268 break; 9269 case 397: 9270 #line 2151 "fortran.y" 9271 { 6115 ;} 6116 break; 6117 6118 case 397: 6119 #line 2194 "fortran.y" 6120 { 9272 6121 if (inmoduledeclare == 1 ) 9273 6122 { … … 9282 6131 else 9283 6132 { 6133 incontainssubroutine = 1; 6134 strcpy(previoussubroutinename,subroutinename); 9284 6135 if ( couldaddvariable == 1 ) 9285 6136 { … … 9301 6152 strcpy(subroutinename,""); 9302 6153 } 9303 } 9304 break; 9305 case 398: 9306 #line 2186 "fortran.y" 9307 { 6154 ;} 6155 break; 6156 6157 case 398: 6158 #line 2231 "fortran.y" 6159 { 9308 6160 if ( couldaddvariable == 1 ) 9309 6161 { 9310 strcpy( yyval.nac,yyvsp[0].nac);9311 pos_endsubroutine = setposcur()-strlen( yyvsp[0].nac);6162 strcpy((yyval.nac),(yyvsp[(1) - (1)].nac)); 6163 pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 9312 6164 functiondeclarationisdone = 0; 9313 6165 } 9314 } 9315 break; 9316 case 399: 9317 #line 2196 "fortran.y" 9318 { 6166 ;} 6167 break; 6168 6169 case 399: 6170 #line 2241 "fortran.y" 6171 { 9319 6172 if ( couldaddvariable == 1 ) 9320 6173 { 9321 strcpy( yyval.nac,yyvsp[0].nac);9322 pos_endsubroutine = setposcur()-strlen( yyvsp[0].nac);6174 strcpy((yyval.nac),(yyvsp[(1) - (1)].nac)); 6175 pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 9323 6176 } 9324 } 9325 break; 9326 case 400: 9327 #line 2205 "fortran.y" 9328 { 6177 ;} 6178 break; 6179 6180 case 400: 6181 #line 2250 "fortran.y" 6182 { 9329 6183 if ( couldaddvariable == 1 ) 9330 6184 { 9331 strcpy( yyval.nac,yyvsp[0].nac);9332 pos_endsubroutine = setposcur()-strlen( yyvsp[0].nac);6185 strcpy((yyval.nac),(yyvsp[(1) - (1)].nac)); 6186 pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 9333 6187 } 9334 } 9335 break; 9336 case 401: 9337 #line 2214 "fortran.y" 9338 { 6188 ;} 6189 break; 6190 6191 case 401: 6192 #line 2259 "fortran.y" 6193 { 9339 6194 if ( couldaddvariable == 1 ) 9340 6195 { 9341 strcpy( yyval.nac,yyvsp[0].nac);9342 pos_endsubroutine = setposcur()-strlen( yyvsp[0].nac);6196 strcpy((yyval.nac),(yyvsp[(1) - (1)].nac)); 6197 pos_endsubroutine = setposcur()-strlen((yyvsp[(1) - (1)].nac)); 9343 6198 } 9344 } 9345 break; 9346 case 413: 9347 #line 2236 "fortran.y" 9348 {strcpy(yyval.nac,"");} 9349 break; 9350 case 414: 9351 #line 2237 "fortran.y" 9352 {strcpy(yyval.nac,yyvsp[0].nac);} 9353 break; 9354 case 426: 9355 #line 2257 "fortran.y" 9356 { 6199 ;} 6200 break; 6201 6202 case 413: 6203 #line 2281 "fortran.y" 6204 {strcpy((yyval.nac),"");;} 6205 break; 6206 6207 case 414: 6208 #line 2282 "fortran.y" 6209 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 6210 break; 6211 6212 case 424: 6213 #line 2302 "fortran.y" 6214 { 9357 6215 Add_SubroutineWhereAgrifUsed_1(subroutinename, 9358 6216 curmodulename); 9359 6217 inallocate = 0; 9360 } 9361 break; 9362 case 427: 9363 #line 2263 "fortran.y" 9364 { 6218 ;} 6219 break; 6220 6221 case 425: 6222 #line 2308 "fortran.y" 6223 { 9365 6224 Add_SubroutineWhereAgrifUsed_1(subroutinename, 9366 6225 curmodulename); 9367 6226 inallocate = 0; 9368 } 9369 break; 9370 case 433: 9371 #line 2274 "fortran.y" 9372 {if ( couldaddvariable == 1 ) created_dimensionlist = 0;} 9373 break; 9374 case 434: 9375 #line 2276 "fortran.y" 9376 { 6227 ;} 6228 break; 6229 6230 case 431: 6231 #line 2319 "fortran.y" 6232 {if ( couldaddvariable == 1 ) created_dimensionlist = 0;;} 6233 break; 6234 6235 case 432: 6236 #line 2321 "fortran.y" 6237 { 9377 6238 created_dimensionlist = 1; 9378 6239 if ( agrif_parentcall == 1 ) 9379 6240 { 9380 ModifyTheAgrifFunction_0( yyvsp[-1].d->dim.last);6241 ModifyTheAgrifFunction_0((yyvsp[(3) - (4)].d)->dim.last); 9381 6242 agrif_parentcall =0; 9382 6243 fprintf(fortranout," = "); 9383 6244 } 9384 } 9385 break; 9386 case 435: 9387 #line 2286 "fortran.y" 9388 {created_dimensionlist = 1;} 9389 break; 9390 case 440: 9391 #line 2294 "fortran.y" 9392 { 6245 ;} 6246 break; 6247 6248 case 433: 6249 #line 2331 "fortran.y" 6250 {created_dimensionlist = 1;;} 6251 break; 6252 6253 case 438: 6254 #line 2339 "fortran.y" 6255 { 9393 6256 inagrifcallargument = 0 ; 9394 6257 incalldeclare=0; … … 9415 6278 } 9416 6279 Instanciation_0(sameagrifname); 9417 } 9418 break; 9419 case 445: 9420 #line 2328 "fortran.y" 9421 { 9422 if (!strcasecmp(yyvsp[0].nac,"MPI_Init") ) 6280 ;} 6281 break; 6282 6283 case 443: 6284 #line 2373 "fortran.y" 6285 { 6286 if (!strcasecmp((yyvsp[(2) - (2)].nac),"MPI_Init") ) 9423 6287 { 9424 6288 callmpiinit = 1; … … 9428 6292 callmpiinit = 0; 9429 6293 } 9430 if (!strcasecmp( yyvsp[0].nac,"Agrif_Init_Grids") )6294 if (!strcasecmp((yyvsp[(2) - (2)].nac),"Agrif_Init_Grids") ) 9431 6295 { 9432 6296 callagrifinitgrids = 1; … … 9434 6298 } 9435 6299 else callagrifinitgrids = 0; 9436 if ( !strcasecmp( yyvsp[0].nac,"Agrif_Open_File") )6300 if ( !strcasecmp((yyvsp[(2) - (2)].nac),"Agrif_Open_File") ) 9437 6301 { 9438 6302 Add_SubroutineWhereAgrifUsed_1(subroutinename, 9439 6303 curmodulename); 9440 6304 } 9441 if ( Vartonumber( yyvsp[0].nac) == 1 )6305 if ( Vartonumber((yyvsp[(2) - (2)].nac)) == 1 ) 9442 6306 { 9443 6307 incalldeclare=1; … … 9446 6310 curmodulename); 9447 6311 } 9448 } 9449 break; 9450 case 446: 9451 #line 2358 "fortran.y" 9452 {pos_curcall=setposcur()-4;} 9453 break; 9454 case 449: 9455 #line 2363 "fortran.y" 9456 { 6312 ;} 6313 break; 6314 6315 case 444: 6316 #line 2403 "fortran.y" 6317 {pos_curcall=setposcur()-4;;} 6318 break; 6319 6320 case 447: 6321 #line 2408 "fortran.y" 6322 { 9457 6323 if ( callmpiinit == 1 ) 9458 6324 { 9459 strcpy(mpiinitvar, yyvsp[0].na);6325 strcpy(mpiinitvar,(yyvsp[(1) - (1)].na)); 9460 6326 if ( firstpass == 1 ) 9461 6327 { … … 9467 6333 } 9468 6334 } 9469 } 9470 break; 9471 case 528: 9472 #line 2485 "fortran.y" 9473 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9474 break; 9475 case 529: 9476 #line 2486 "fortran.y" 9477 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9478 break; 9479 case 530: 9480 #line 2487 "fortran.y" 9481 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9482 break; 9483 case 531: 9484 #line 2490 "fortran.y" 9485 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9486 break; 9487 case 532: 9488 #line 2492 "fortran.y" 9489 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9490 break; 9491 case 533: 9492 #line 2494 "fortran.y" 9493 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9494 break; 9495 case 534: 9496 #line 2496 "fortran.y" 9497 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9498 break; 9499 case 535: 9500 #line 2498 "fortran.y" 9501 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9502 break; 9503 case 536: 9504 #line 2500 "fortran.y" 9505 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"%s,%s",yyvsp[-2].na,yyvsp[0].na);} 9506 break; 9507 case 537: 9508 #line 2501 "fortran.y" 9509 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9510 break; 9511 case 538: 9512 #line 2502 "fortran.y" 9513 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9514 break; 9515 case 539: 9516 #line 2505 "fortran.y" 9517 {if ( couldaddvariable == 1 ) strcpy(yyval.na,yyvsp[0].na);} 9518 break; 9519 case 540: 9520 #line 2507 "fortran.y" 9521 {if ( couldaddvariable == 1 ) sprintf(yyval.na," (%s)",yyvsp[-1].na);} 9522 break; 9523 case 541: 9524 #line 2509 "fortran.y" 9525 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"(%s,%s)",yyvsp[-3].na,yyvsp[-1].na);} 9526 break; 9527 case 542: 9528 #line 2511 "fortran.y" 9529 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"(%s,%s)",yyvsp[-3].na,yyvsp[-1].na);} 9530 break; 9531 case 543: 9532 #line 2513 "fortran.y" 9533 {if ( couldaddvariable == 1 ) sprintf(yyval.na,"(%s,%s)",yyvsp[-3].na,yyvsp[-1].na);} 9534 break; 9535 case 544: 9536 #line 2517 "fortran.y" 9537 {if ( couldaddvariable == 1 ) 9538 sprintf(yyval.na,"%s=%s,%s)",yyvsp[-4].nac,yyvsp[-2].na,yyvsp[0].na);} 9539 break; 9540 case 545: 9541 #line 2520 "fortran.y" 9542 {if ( couldaddvariable == 1 ) 9543 sprintf(yyval.na,"%s=%s,%s,%s)",yyvsp[-6].nac,yyvsp[-4].na,yyvsp[-2].na,yyvsp[0].na);} 9544 break; 9545 case 554: 9546 #line 2536 "fortran.y" 9547 {Add_Allocate_Var_1(yyvsp[0].nac,curmodulename);} 9548 break; 9549 case 557: 6335 ;} 6336 break; 6337 6338 case 517: 6339 #line 2530 "fortran.y" 6340 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6341 break; 6342 6343 case 518: 6344 #line 2531 "fortran.y" 6345 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6346 break; 6347 6348 case 519: 6349 #line 2532 "fortran.y" 6350 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6351 break; 6352 6353 case 520: 6354 #line 2535 "fortran.y" 6355 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6356 break; 6357 6358 case 521: 6359 #line 2537 "fortran.y" 6360 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6361 break; 6362 6363 case 522: 6364 #line 2539 "fortran.y" 6365 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6366 break; 6367 6368 case 523: 9550 6369 #line 2541 "fortran.y" 9551 {Add_Allocate_Var_1(yyvsp[-3].nac,curmodulename);} 9552 break; 9553 case 571: 9554 #line 2564 "fortran.y" 9555 {strcpy(yyval.nac,yyvsp[0].nac);} 9556 break; 9557 #line 9558 "y.tab.c" 6370 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6371 break; 6372 6373 case 524: 6374 #line 2543 "fortran.y" 6375 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6376 break; 6377 6378 case 525: 6379 #line 2545 "fortran.y" 6380 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"%s,%s",(yyvsp[(1) - (3)].na),(yyvsp[(3) - (3)].na));;} 6381 break; 6382 6383 case 526: 6384 #line 2546 "fortran.y" 6385 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6386 break; 6387 6388 case 527: 6389 #line 2547 "fortran.y" 6390 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6391 break; 6392 6393 case 528: 6394 #line 2550 "fortran.y" 6395 {if ( couldaddvariable == 1 ) strcpy((yyval.na),(yyvsp[(1) - (1)].na));;} 6396 break; 6397 6398 case 529: 6399 #line 2552 "fortran.y" 6400 {if ( couldaddvariable == 1 ) sprintf((yyval.na)," (%s)",(yyvsp[(2) - (3)].na));;} 6401 break; 6402 6403 case 530: 6404 #line 2554 "fortran.y" 6405 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));;} 6406 break; 6407 6408 case 531: 6409 #line 2556 "fortran.y" 6410 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));;} 6411 break; 6412 6413 case 532: 6414 #line 2558 "fortran.y" 6415 {if ( couldaddvariable == 1 ) sprintf((yyval.na),"(%s,%s)",(yyvsp[(2) - (5)].na),(yyvsp[(4) - (5)].na));;} 6416 break; 6417 6418 case 533: 6419 #line 2562 "fortran.y" 6420 {if ( couldaddvariable == 1 ) 6421 sprintf((yyval.na),"%s=%s,%s)",(yyvsp[(1) - (5)].nac),(yyvsp[(3) - (5)].na),(yyvsp[(5) - (5)].na));;} 6422 break; 6423 6424 case 534: 6425 #line 2565 "fortran.y" 6426 {if ( couldaddvariable == 1 ) 6427 sprintf((yyval.na),"%s=%s,%s,%s)",(yyvsp[(1) - (7)].nac),(yyvsp[(3) - (7)].na),(yyvsp[(5) - (7)].na),(yyvsp[(7) - (7)].na));;} 6428 break; 6429 6430 case 541: 6431 #line 2581 "fortran.y" 6432 {Add_Allocate_Var_1((yyvsp[(1) - (1)].nac),curmodulename);;} 6433 break; 6434 6435 case 544: 6436 #line 2586 "fortran.y" 6437 {Add_Allocate_Var_1((yyvsp[(1) - (4)].nac),curmodulename);;} 6438 break; 6439 6440 case 552: 6441 #line 2609 "fortran.y" 6442 {strcpy((yyval.nac),(yyvsp[(1) - (1)].nac));;} 6443 break; 6444 6445 6446 /* Line 1267 of yacc.c. */ 6447 #line 6445 "fortran.tab.c" 6448 default: break; 9558 6449 } 9559 yyssp -= yym; 9560 yystate = *yyssp; 9561 yyvsp -= yym; 9562 yym = yylhs[yyn]; 9563 if (yystate == 0 && yym == 0) 9564 { 9565 #if YYDEBUG 9566 if (yydebug) 9567 printf("%sdebug: after reduction, shifting from state 0 to\ 9568 state %d\n", YYPREFIX, YYFINAL); 9569 #endif 9570 yystate = YYFINAL; 9571 *++yyssp = YYFINAL; 6450 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 6451 6452 YYPOPSTACK (yylen); 6453 yylen = 0; 6454 YY_STACK_PRINT (yyss, yyssp); 6455 9572 6456 *++yyvsp = yyval; 9573 if (yychar < 0) 6457 6458 6459 /* Now `shift' the result of the reduction. Determine what state 6460 that goes to, based on the state we popped back to and the rule 6461 number reduced by. */ 6462 6463 yyn = yyr1[yyn]; 6464 6465 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 6466 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 6467 yystate = yytable[yystate]; 6468 else 6469 yystate = yydefgoto[yyn - YYNTOKENS]; 6470 6471 goto yynewstate; 6472 6473 6474 /*------------------------------------. 6475 | yyerrlab -- here on detecting error | 6476 `------------------------------------*/ 6477 yyerrlab: 6478 /* If not already recovering from an error, report this error. */ 6479 if (!yyerrstatus) 9574 6480 { 9575 if ((yychar = yylex()) < 0) yychar = 0; 9576 #if YYDEBUG 9577 if (yydebug) 6481 ++yynerrs; 6482 #if ! YYERROR_VERBOSE 6483 yyerror (YY_("syntax error")); 6484 #else 9578 6485 { 9579 yys = 0; 9580 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 9581 if (!yys) yys = "illegal-symbol"; 9582 printf("%sdebug: state %d, reading %d (%s)\n", 9583 YYPREFIX, YYFINAL, yychar, yys); 6486 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 6487 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 6488 { 6489 YYSIZE_T yyalloc = 2 * yysize; 6490 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 6491 yyalloc = YYSTACK_ALLOC_MAXIMUM; 6492 if (yymsg != yymsgbuf) 6493 YYSTACK_FREE (yymsg); 6494 yymsg = (char *) YYSTACK_ALLOC (yyalloc); 6495 if (yymsg) 6496 yymsg_alloc = yyalloc; 6497 else 6498 { 6499 yymsg = yymsgbuf; 6500 yymsg_alloc = sizeof yymsgbuf; 9584 6501 } 6502 } 6503 6504 if (0 < yysize && yysize <= yymsg_alloc) 6505 { 6506 (void) yysyntax_error (yymsg, yystate, yychar); 6507 yyerror (yymsg); 6508 } 6509 else 6510 { 6511 yyerror (YY_("syntax error")); 6512 if (yysize != 0) 6513 goto yyexhaustedlab; 6514 } 6515 } 9585 6516 #endif 9586 6517 } 9587 if (yychar == 0) goto yyaccept; 9588 goto yyloop; 6518 6519 6520 6521 if (yyerrstatus == 3) 6522 { 6523 /* If just tried and failed to reuse look-ahead token after an 6524 error, discard it. */ 6525 6526 if (yychar <= YYEOF) 6527 { 6528 /* Return failure if at end of input. */ 6529 if (yychar == YYEOF) 6530 YYABORT; 9589 6531 } 9590 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&9591 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)9592 yystate = yytable[yyn];9593 6532 else 9594 yystate = yydgoto[yym]; 9595 #if YYDEBUG 9596 if (yydebug) 9597 printf("%sdebug: after reduction, shifting from state %d \ 9598 to state %d\n", YYPREFIX, *yyssp, yystate); 6533 { 6534 yydestruct ("Error: discarding", 6535 yytoken, &yylval); 6536 yychar = YYEMPTY; 6537 } 6538 } 6539 6540 /* Else will try to reuse look-ahead token after shifting the error 6541 token. */ 6542 goto yyerrlab1; 6543 6544 6545 /*---------------------------------------------------. 6546 | yyerrorlab -- error raised explicitly by YYERROR. | 6547 `---------------------------------------------------*/ 6548 yyerrorlab: 6549 6550 /* Pacify compilers like GCC when the user code never invokes 6551 YYERROR and the label yyerrorlab therefore never appears in user 6552 code. */ 6553 if (/*CONSTCOND*/ 0) 6554 goto yyerrorlab; 6555 6556 /* Do not reclaim the symbols of the rule which action triggered 6557 this YYERROR. */ 6558 YYPOPSTACK (yylen); 6559 yylen = 0; 6560 YY_STACK_PRINT (yyss, yyssp); 6561 yystate = *yyssp; 6562 goto yyerrlab1; 6563 6564 6565 /*-------------------------------------------------------------. 6566 | yyerrlab1 -- common code for both syntax error and YYERROR. | 6567 `-------------------------------------------------------------*/ 6568 yyerrlab1: 6569 yyerrstatus = 3; /* Each real token shifted decrements this. */ 6570 6571 for (;;) 6572 { 6573 yyn = yypact[yystate]; 6574 if (yyn != YYPACT_NINF) 6575 { 6576 yyn += YYTERROR; 6577 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 6578 { 6579 yyn = yytable[yyn]; 6580 if (0 < yyn) 6581 break; 6582 } 6583 } 6584 6585 /* Pop the current state because it cannot handle the error token. */ 6586 if (yyssp == yyss) 6587 YYABORT; 6588 6589 6590 yydestruct ("Error: popping", 6591 yystos[yystate], yyvsp); 6592 YYPOPSTACK (1); 6593 yystate = *yyssp; 6594 YY_STACK_PRINT (yyss, yyssp); 6595 } 6596 6597 if (yyn == YYFINAL) 6598 YYACCEPT; 6599 6600 *++yyvsp = yylval; 6601 6602 6603 /* Shift the error token. */ 6604 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 6605 6606 yystate = yyn; 6607 goto yynewstate; 6608 6609 6610 /*-------------------------------------. 6611 | yyacceptlab -- YYACCEPT comes here. | 6612 `-------------------------------------*/ 6613 yyacceptlab: 6614 yyresult = 0; 6615 goto yyreturn; 6616 6617 /*-----------------------------------. 6618 | yyabortlab -- YYABORT comes here. | 6619 `-----------------------------------*/ 6620 yyabortlab: 6621 yyresult = 1; 6622 goto yyreturn; 6623 6624 #ifndef yyoverflow 6625 /*-------------------------------------------------. 6626 | yyexhaustedlab -- memory exhaustion comes here. | 6627 `-------------------------------------------------*/ 6628 yyexhaustedlab: 6629 yyerror (YY_("memory exhausted")); 6630 yyresult = 2; 6631 /* Fall through. */ 9599 6632 #endif 9600 if (yyssp >= yyss + yystacksize - 1) 9601 { 9602 goto yyoverflow; 6633 6634 yyreturn: 6635 if (yychar != YYEOF && yychar != YYEMPTY) 6636 yydestruct ("Cleanup: discarding lookahead", 6637 yytoken, &yylval); 6638 /* Do not reclaim the symbols of the rule which action triggered 6639 this YYABORT or YYACCEPT. */ 6640 YYPOPSTACK (yylen); 6641 YY_STACK_PRINT (yyss, yyssp); 6642 while (yyssp != yyss) 6643 { 6644 yydestruct ("Cleanup: popping", 6645 yystos[*yyssp], yyvsp); 6646 YYPOPSTACK (1); 9603 6647 } 9604 *++yyssp = yystate; 9605 *++yyvsp = yyval; 9606 goto yyloop; 9607 yyoverflow: 9608 yyerror("yacc stack overflow"); 9609 yyabort: 9610 return (1); 9611 yyaccept: 9612 return (0); 6648 #ifndef yyoverflow 6649 if (yyss != yyssa) 6650 YYSTACK_FREE (yyss); 6651 #endif 6652 #if YYERROR_VERBOSE 6653 if (yymsg != yymsgbuf) 6654 YYSTACK_FREE (yymsg); 6655 #endif 6656 /* Make sure YYID is used. */ 6657 return YYID (yyresult); 9613 6658 } 6659 6660 6661 #line 2611 "fortran.y" 6662 6663 6664 void processfortran(char *fichier_entree) 6665 { 6666 extern FILE *fortranin; 6667 extern FILE *fortranout; 6668 char nomfile[LONG_C]; 6669 int c; 6670 int confirmyes; 6671 6672 /* fortrandebug = 1;*/ 6673 if ( mark == 1 ) printf("Firstpass == %d \n",firstpass); 6674 /******************************************************************************/ 6675 /* 1- Open input and output files */ 6676 /******************************************************************************/ 6677 strcpy(nomfile,commondirin); 6678 strcat(nomfile,"/"); 6679 strcat(nomfile,fichier_entree); 6680 fortranin=fopen( nomfile,"r"); 6681 if (! fortranin) 6682 { 6683 printf("Error : File %s does not exist\n",nomfile); 6684 exit(1); 6685 } 6686 6687 strcpy(curfile,nomfile); 6688 strcpy(nomfile,commondirout); 6689 strcat(nomfile,"/"); 6690 strcat(nomfile,fichier_entree); 6691 strcpy(nomfileoutput,nomfile); 6692 Save_Length(nomfileoutput,31); 6693 if (firstpass == 1) 6694 { 6695 if (checkexistcommon == 1) 6696 { 6697 if (fopen(nomfile,"r")) 6698 { 6699 printf("Warning : file %s already exist\n",nomfile); 6700 confirmyes = 0; 6701 while (confirmyes==0) 6702 { 6703 printf("Override file %s ? [Y/N]\n",nomfile); 6704 c=getchar(); 6705 getchar(); 6706 if (c==79 || c==110) 6707 { 6708 printf("We stop\n"); 6709 exit(1); 6710 } 6711 if (c==89 || c==121) 6712 { 6713 confirmyes=1; 6714 } 6715 } 6716 } 6717 } 6718 } 6719 6720 /******************************************************************************/ 6721 /* 2- Variables initialization */ 6722 /******************************************************************************/ 6723 6724 line_num_fortran_common=1; 6725 line_num_fortran=1; 6726 PublicDeclare = 0; 6727 PrivateDeclare = 0; 6728 ExternalDeclare = 0; 6729 SaveDeclare = 0; 6730 pointerdeclare = 0; 6731 optionaldeclare = 0; 6732 incalldeclare = 0; 6733 VarType = 0; 6734 VarTypepar = 0; 6735 Allocatabledeclare = 0 ; 6736 Targetdeclare = 0 ; 6737 strcpy(NamePrecision," "); 6738 VariableIsParameter = 0 ; 6739 strcpy(NamePrecision,""); 6740 c_star = 0 ; 6741 functiondeclarationisdone = 0; 6742 insubroutinedeclare = 0 ; 6743 ininterfacedeclare = 0 ; 6744 strcpy(subroutinename," "); 6745 isrecursive = 0; 6746 InitialValueGiven = 0 ; 6747 strcpy(EmptyChar," "); 6748 inmoduledeclare = 0; 6749 incontainssubroutine = 0; 6750 colnum=0; 6751 incom=0; 6752 couldaddvariable=1; 6753 afterpercent = 0; 6754 aftercontainsdeclare = 1; 6755 strcpy(nameinttypename,""); 6756 /* Name of the file without format */ 6757 tmp = strchr(fichier_entree, '.'); 6758 strncpy(curfilename,fichier_entree,strlen(fichier_entree)-strlen(tmp)); 6759 Save_Length(curfilename,30); 6760 /******************************************************************************/ 6761 /* 3- Parsing of the input file (1 time) */ 6762 /******************************************************************************/ 6763 if (firstpass == 0 ) 6764 { 6765 fortranout=fopen(nomfileoutput,"w"); 6766 6767 /* NewModule_Creation_0();*/ 6768 } 6769 6770 fortranparse(); 6771 6772 if (firstpass == 0 ) 6773 { 6774 NewModule_Creation_0(); 6775 } 6776 6777 strcpy(curfile,mainfile); 6778 6779 if (firstpass == 0 ) 6780 { 6781 fclose(fortranout); 6782 } 6783 } 6784
Note: See TracChangeset
for help on using the changeset viewer.