ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2185
Committed: Tue Jun 4 12:29:18 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 223854 byte(s)
Log Message:
- Removed usermode +C

File Contents

# Content
1 /* A Bison parser, made by GNU Bison 2.7.12-4996. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "2.7.12-4996"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 /* Line 371 of yacc.c */
66 #line 25 "conf_parser.y"
67
68
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
72
73 #include "config.h"
74 #include "stdinc.h"
75 #include "ircd.h"
76 #include "list.h"
77 #include "conf.h"
78 #include "conf_class.h"
79 #include "event.h"
80 #include "log.h"
81 #include "client.h" /* for UMODE_ALL only */
82 #include "irc_string.h"
83 #include "memory.h"
84 #include "modules.h"
85 #include "s_serv.h"
86 #include "hostmask.h"
87 #include "send.h"
88 #include "listener.h"
89 #include "resv.h"
90 #include "numeric.h"
91 #include "s_user.h"
92 #include "motd.h"
93
94 #ifdef HAVE_LIBCRYPTO
95 #include <openssl/rsa.h>
96 #include <openssl/bio.h>
97 #include <openssl/pem.h>
98 #include <openssl/dh.h>
99 #endif
100
101 #include "rsa.h"
102
103 int yylex(void);
104
105 static struct
106 {
107 struct {
108 dlink_list list;
109 } mask,
110 leaf,
111 hub;
112
113 struct {
114 char buf[IRCD_BUFSIZE];
115 } name,
116 user,
117 host,
118 addr,
119 bind,
120 file,
121 ciph,
122 rpass,
123 spass,
124 class;
125
126 struct {
127 unsigned int value;
128 } flags,
129 modes,
130 size,
131 type,
132 port,
133 aftype,
134 ping_freq,
135 max_perip,
136 con_freq,
137 min_idle,
138 max_idle,
139 max_total,
140 max_global,
141 max_local,
142 max_ident,
143 max_sendq,
144 max_recvq,
145 cidr_bitlen_ipv4,
146 cidr_bitlen_ipv6,
147 number_per_cidr;
148 } block_state;
149
150 static void
151 reset_block_state(void)
152 {
153 dlink_node *ptr = NULL, *ptr_next = NULL;
154
155 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156 {
157 MyFree(ptr->data);
158 dlinkDelete(ptr, &block_state.mask.list);
159 free_dlink_node(ptr);
160 }
161
162 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163 {
164 MyFree(ptr->data);
165 dlinkDelete(ptr, &block_state.leaf.list);
166 free_dlink_node(ptr);
167 }
168
169 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170 {
171 MyFree(ptr->data);
172 dlinkDelete(ptr, &block_state.hub.list);
173 free_dlink_node(ptr);
174 }
175
176 memset(&block_state, 0, sizeof(block_state));
177 }
178
179
180 /* Line 371 of yacc.c */
181 #line 182 "conf_parser.c"
182
183 # ifndef YY_NULL
184 # if defined __cplusplus && 201103L <= __cplusplus
185 # define YY_NULL nullptr
186 # else
187 # define YY_NULL 0
188 # endif
189 # endif
190
191 /* Enabling verbose error messages. */
192 #ifdef YYERROR_VERBOSE
193 # undef YYERROR_VERBOSE
194 # define YYERROR_VERBOSE 1
195 #else
196 # define YYERROR_VERBOSE 0
197 #endif
198
199 /* In a future release of Bison, this section will be replaced
200 by #include "y.tab.h". */
201 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
202 # define YY_YY_CONF_PARSER_H_INCLUDED
203 /* Enabling traces. */
204 #ifndef YYDEBUG
205 # define YYDEBUG 0
206 #endif
207 #if YYDEBUG
208 extern int yydebug;
209 #endif
210
211 /* Tokens. */
212 #ifndef YYTOKENTYPE
213 # define YYTOKENTYPE
214 /* Put the tokens into the symbol table, so that GDB and other debuggers
215 know about them. */
216 enum yytokentype {
217 ACCEPT_PASSWORD = 258,
218 ADMIN = 259,
219 AFTYPE = 260,
220 ANTI_NICK_FLOOD = 261,
221 ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
222 AUTOCONN = 263,
223 BYTES = 264,
224 KBYTES = 265,
225 MBYTES = 266,
226 CALLER_ID_WAIT = 267,
227 CAN_FLOOD = 268,
228 CHANNEL = 269,
229 CIDR_BITLEN_IPV4 = 270,
230 CIDR_BITLEN_IPV6 = 271,
231 CLASS = 272,
232 CONNECT = 273,
233 CONNECTFREQ = 274,
234 DEFAULT_FLOODCOUNT = 275,
235 DEFAULT_SPLIT_SERVER_COUNT = 276,
236 DEFAULT_SPLIT_USER_COUNT = 277,
237 DENY = 278,
238 DESCRIPTION = 279,
239 DIE = 280,
240 DISABLE_AUTH = 281,
241 DISABLE_FAKE_CHANNELS = 282,
242 DISABLE_REMOTE_COMMANDS = 283,
243 DOTS_IN_IDENT = 284,
244 EGDPOOL_PATH = 285,
245 EMAIL = 286,
246 ENCRYPTED = 287,
247 EXCEED_LIMIT = 288,
248 EXEMPT = 289,
249 FAILED_OPER_NOTICE = 290,
250 FLATTEN_LINKS = 291,
251 GECOS = 292,
252 GENERAL = 293,
253 GLINE = 294,
254 GLINE_DURATION = 295,
255 GLINE_ENABLE = 296,
256 GLINE_EXEMPT = 297,
257 GLINE_MIN_CIDR = 298,
258 GLINE_MIN_CIDR6 = 299,
259 GLINE_REQUEST_DURATION = 300,
260 GLOBAL_KILL = 301,
261 HAVENT_READ_CONF = 302,
262 HIDDEN = 303,
263 HIDDEN_NAME = 304,
264 HIDE_IDLE_FROM_OPERS = 305,
265 HIDE_SERVER_IPS = 306,
266 HIDE_SERVERS = 307,
267 HIDE_SERVICES = 308,
268 HIDE_SPOOF_IPS = 309,
269 HOST = 310,
270 HUB = 311,
271 HUB_MASK = 312,
272 IGNORE_BOGUS_TS = 313,
273 INVISIBLE_ON_CONNECT = 314,
274 IP = 315,
275 IRCD_AUTH = 316,
276 IRCD_FLAGS = 317,
277 IRCD_SID = 318,
278 JOIN_FLOOD_COUNT = 319,
279 JOIN_FLOOD_TIME = 320,
280 KILL = 321,
281 KILL_CHASE_TIME_LIMIT = 322,
282 KLINE = 323,
283 KLINE_EXEMPT = 324,
284 KNOCK_DELAY = 325,
285 KNOCK_DELAY_CHANNEL = 326,
286 LEAF_MASK = 327,
287 LINKS_DELAY = 328,
288 LISTEN = 329,
289 MASK = 330,
290 MAX_ACCEPT = 331,
291 MAX_BANS = 332,
292 MAX_CHANS_PER_OPER = 333,
293 MAX_CHANS_PER_USER = 334,
294 MAX_GLOBAL = 335,
295 MAX_IDENT = 336,
296 MAX_IDLE = 337,
297 MAX_LOCAL = 338,
298 MAX_NICK_CHANGES = 339,
299 MAX_NICK_LENGTH = 340,
300 MAX_NICK_TIME = 341,
301 MAX_NUMBER = 342,
302 MAX_TARGETS = 343,
303 MAX_TOPIC_LENGTH = 344,
304 MAX_WATCH = 345,
305 MIN_IDLE = 346,
306 MIN_NONWILDCARD = 347,
307 MIN_NONWILDCARD_SIMPLE = 348,
308 MODULE = 349,
309 MODULES = 350,
310 MOTD = 351,
311 NAME = 352,
312 NEED_IDENT = 353,
313 NEED_PASSWORD = 354,
314 NETWORK_DESC = 355,
315 NETWORK_NAME = 356,
316 NICK = 357,
317 NO_CREATE_ON_SPLIT = 358,
318 NO_JOIN_ON_SPLIT = 359,
319 NO_OPER_FLOOD = 360,
320 NO_TILDE = 361,
321 NUMBER = 362,
322 NUMBER_PER_CIDR = 363,
323 NUMBER_PER_IP = 364,
324 OPER_ONLY_UMODES = 365,
325 OPER_PASS_RESV = 366,
326 OPER_UMODES = 367,
327 OPERATOR = 368,
328 OPERS_BYPASS_CALLERID = 369,
329 PACE_WAIT = 370,
330 PACE_WAIT_SIMPLE = 371,
331 PASSWORD = 372,
332 PATH = 373,
333 PING_COOKIE = 374,
334 PING_TIME = 375,
335 PORT = 376,
336 QSTRING = 377,
337 RANDOM_IDLE = 378,
338 REASON = 379,
339 REDIRPORT = 380,
340 REDIRSERV = 381,
341 REHASH = 382,
342 REMOTE = 383,
343 REMOTEBAN = 384,
344 RESV = 385,
345 RESV_EXEMPT = 386,
346 RSA_PRIVATE_KEY_FILE = 387,
347 RSA_PUBLIC_KEY_FILE = 388,
348 SECONDS = 389,
349 MINUTES = 390,
350 HOURS = 391,
351 DAYS = 392,
352 WEEKS = 393,
353 MONTHS = 394,
354 YEARS = 395,
355 SEND_PASSWORD = 396,
356 SENDQ = 397,
357 SERVERHIDE = 398,
358 SERVERINFO = 399,
359 SHORT_MOTD = 400,
360 SPOOF = 401,
361 SPOOF_NOTICE = 402,
362 SQUIT = 403,
363 SSL_CERTIFICATE_FILE = 404,
364 SSL_DH_PARAM_FILE = 405,
365 STATS_E_DISABLED = 406,
366 STATS_I_OPER_ONLY = 407,
367 STATS_K_OPER_ONLY = 408,
368 STATS_O_OPER_ONLY = 409,
369 STATS_P_OPER_ONLY = 410,
370 T_ALL = 411,
371 T_BOTS = 412,
372 T_CALLERID = 413,
373 T_CCONN = 414,
374 T_CLUSTER = 415,
375 T_DEAF = 416,
376 T_DEBUG = 417,
377 T_DLINE = 418,
378 T_EXTERNAL = 419,
379 T_FARCONNECT = 420,
380 T_FILE = 421,
381 T_FULL = 422,
382 T_GLOBOPS = 423,
383 T_INVISIBLE = 424,
384 T_IPV4 = 425,
385 T_IPV6 = 426,
386 T_LOCOPS = 427,
387 T_LOG = 428,
388 T_MAX_CLIENTS = 429,
389 T_NCHANGE = 430,
390 T_NONONREG = 431,
391 T_OPERWALL = 432,
392 T_RECVQ = 433,
393 T_REJ = 434,
394 T_RESTART = 435,
395 T_SERVER = 436,
396 T_SERVICE = 437,
397 T_SERVICES_NAME = 438,
398 T_SERVNOTICE = 439,
399 T_SET = 440,
400 T_SHARED = 441,
401 T_SIZE = 442,
402 T_SKILL = 443,
403 T_SOFTCALLERID = 444,
404 T_SPY = 445,
405 T_SSL = 446,
406 T_SSL_CIPHER_LIST = 447,
407 T_SSL_CLIENT_METHOD = 448,
408 T_SSL_SERVER_METHOD = 449,
409 T_SSLV3 = 450,
410 T_TLSV1 = 451,
411 T_UMODES = 452,
412 T_UNAUTH = 453,
413 T_UNDLINE = 454,
414 T_UNLIMITED = 455,
415 T_UNRESV = 456,
416 T_UNXLINE = 457,
417 T_WALLOP = 458,
418 T_WALLOPS = 459,
419 T_WEBIRC = 460,
420 TBOOL = 461,
421 THROTTLE_TIME = 462,
422 TKLINE_EXPIRE_NOTICES = 463,
423 TMASKED = 464,
424 TRUE_NO_OPER_FLOOD = 465,
425 TS_MAX_DELTA = 466,
426 TS_WARN_DELTA = 467,
427 TWODOTS = 468,
428 TYPE = 469,
429 UNKLINE = 470,
430 USE_EGD = 471,
431 USE_LOGGING = 472,
432 USER = 473,
433 VHOST = 474,
434 VHOST6 = 475,
435 WARN_NO_NLINE = 476,
436 XLINE = 477
437 };
438 #endif
439 /* Tokens. */
440 #define ACCEPT_PASSWORD 258
441 #define ADMIN 259
442 #define AFTYPE 260
443 #define ANTI_NICK_FLOOD 261
444 #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
445 #define AUTOCONN 263
446 #define BYTES 264
447 #define KBYTES 265
448 #define MBYTES 266
449 #define CALLER_ID_WAIT 267
450 #define CAN_FLOOD 268
451 #define CHANNEL 269
452 #define CIDR_BITLEN_IPV4 270
453 #define CIDR_BITLEN_IPV6 271
454 #define CLASS 272
455 #define CONNECT 273
456 #define CONNECTFREQ 274
457 #define DEFAULT_FLOODCOUNT 275
458 #define DEFAULT_SPLIT_SERVER_COUNT 276
459 #define DEFAULT_SPLIT_USER_COUNT 277
460 #define DENY 278
461 #define DESCRIPTION 279
462 #define DIE 280
463 #define DISABLE_AUTH 281
464 #define DISABLE_FAKE_CHANNELS 282
465 #define DISABLE_REMOTE_COMMANDS 283
466 #define DOTS_IN_IDENT 284
467 #define EGDPOOL_PATH 285
468 #define EMAIL 286
469 #define ENCRYPTED 287
470 #define EXCEED_LIMIT 288
471 #define EXEMPT 289
472 #define FAILED_OPER_NOTICE 290
473 #define FLATTEN_LINKS 291
474 #define GECOS 292
475 #define GENERAL 293
476 #define GLINE 294
477 #define GLINE_DURATION 295
478 #define GLINE_ENABLE 296
479 #define GLINE_EXEMPT 297
480 #define GLINE_MIN_CIDR 298
481 #define GLINE_MIN_CIDR6 299
482 #define GLINE_REQUEST_DURATION 300
483 #define GLOBAL_KILL 301
484 #define HAVENT_READ_CONF 302
485 #define HIDDEN 303
486 #define HIDDEN_NAME 304
487 #define HIDE_IDLE_FROM_OPERS 305
488 #define HIDE_SERVER_IPS 306
489 #define HIDE_SERVERS 307
490 #define HIDE_SERVICES 308
491 #define HIDE_SPOOF_IPS 309
492 #define HOST 310
493 #define HUB 311
494 #define HUB_MASK 312
495 #define IGNORE_BOGUS_TS 313
496 #define INVISIBLE_ON_CONNECT 314
497 #define IP 315
498 #define IRCD_AUTH 316
499 #define IRCD_FLAGS 317
500 #define IRCD_SID 318
501 #define JOIN_FLOOD_COUNT 319
502 #define JOIN_FLOOD_TIME 320
503 #define KILL 321
504 #define KILL_CHASE_TIME_LIMIT 322
505 #define KLINE 323
506 #define KLINE_EXEMPT 324
507 #define KNOCK_DELAY 325
508 #define KNOCK_DELAY_CHANNEL 326
509 #define LEAF_MASK 327
510 #define LINKS_DELAY 328
511 #define LISTEN 329
512 #define MASK 330
513 #define MAX_ACCEPT 331
514 #define MAX_BANS 332
515 #define MAX_CHANS_PER_OPER 333
516 #define MAX_CHANS_PER_USER 334
517 #define MAX_GLOBAL 335
518 #define MAX_IDENT 336
519 #define MAX_IDLE 337
520 #define MAX_LOCAL 338
521 #define MAX_NICK_CHANGES 339
522 #define MAX_NICK_LENGTH 340
523 #define MAX_NICK_TIME 341
524 #define MAX_NUMBER 342
525 #define MAX_TARGETS 343
526 #define MAX_TOPIC_LENGTH 344
527 #define MAX_WATCH 345
528 #define MIN_IDLE 346
529 #define MIN_NONWILDCARD 347
530 #define MIN_NONWILDCARD_SIMPLE 348
531 #define MODULE 349
532 #define MODULES 350
533 #define MOTD 351
534 #define NAME 352
535 #define NEED_IDENT 353
536 #define NEED_PASSWORD 354
537 #define NETWORK_DESC 355
538 #define NETWORK_NAME 356
539 #define NICK 357
540 #define NO_CREATE_ON_SPLIT 358
541 #define NO_JOIN_ON_SPLIT 359
542 #define NO_OPER_FLOOD 360
543 #define NO_TILDE 361
544 #define NUMBER 362
545 #define NUMBER_PER_CIDR 363
546 #define NUMBER_PER_IP 364
547 #define OPER_ONLY_UMODES 365
548 #define OPER_PASS_RESV 366
549 #define OPER_UMODES 367
550 #define OPERATOR 368
551 #define OPERS_BYPASS_CALLERID 369
552 #define PACE_WAIT 370
553 #define PACE_WAIT_SIMPLE 371
554 #define PASSWORD 372
555 #define PATH 373
556 #define PING_COOKIE 374
557 #define PING_TIME 375
558 #define PORT 376
559 #define QSTRING 377
560 #define RANDOM_IDLE 378
561 #define REASON 379
562 #define REDIRPORT 380
563 #define REDIRSERV 381
564 #define REHASH 382
565 #define REMOTE 383
566 #define REMOTEBAN 384
567 #define RESV 385
568 #define RESV_EXEMPT 386
569 #define RSA_PRIVATE_KEY_FILE 387
570 #define RSA_PUBLIC_KEY_FILE 388
571 #define SECONDS 389
572 #define MINUTES 390
573 #define HOURS 391
574 #define DAYS 392
575 #define WEEKS 393
576 #define MONTHS 394
577 #define YEARS 395
578 #define SEND_PASSWORD 396
579 #define SENDQ 397
580 #define SERVERHIDE 398
581 #define SERVERINFO 399
582 #define SHORT_MOTD 400
583 #define SPOOF 401
584 #define SPOOF_NOTICE 402
585 #define SQUIT 403
586 #define SSL_CERTIFICATE_FILE 404
587 #define SSL_DH_PARAM_FILE 405
588 #define STATS_E_DISABLED 406
589 #define STATS_I_OPER_ONLY 407
590 #define STATS_K_OPER_ONLY 408
591 #define STATS_O_OPER_ONLY 409
592 #define STATS_P_OPER_ONLY 410
593 #define T_ALL 411
594 #define T_BOTS 412
595 #define T_CALLERID 413
596 #define T_CCONN 414
597 #define T_CLUSTER 415
598 #define T_DEAF 416
599 #define T_DEBUG 417
600 #define T_DLINE 418
601 #define T_EXTERNAL 419
602 #define T_FARCONNECT 420
603 #define T_FILE 421
604 #define T_FULL 422
605 #define T_GLOBOPS 423
606 #define T_INVISIBLE 424
607 #define T_IPV4 425
608 #define T_IPV6 426
609 #define T_LOCOPS 427
610 #define T_LOG 428
611 #define T_MAX_CLIENTS 429
612 #define T_NCHANGE 430
613 #define T_NONONREG 431
614 #define T_OPERWALL 432
615 #define T_RECVQ 433
616 #define T_REJ 434
617 #define T_RESTART 435
618 #define T_SERVER 436
619 #define T_SERVICE 437
620 #define T_SERVICES_NAME 438
621 #define T_SERVNOTICE 439
622 #define T_SET 440
623 #define T_SHARED 441
624 #define T_SIZE 442
625 #define T_SKILL 443
626 #define T_SOFTCALLERID 444
627 #define T_SPY 445
628 #define T_SSL 446
629 #define T_SSL_CIPHER_LIST 447
630 #define T_SSL_CLIENT_METHOD 448
631 #define T_SSL_SERVER_METHOD 449
632 #define T_SSLV3 450
633 #define T_TLSV1 451
634 #define T_UMODES 452
635 #define T_UNAUTH 453
636 #define T_UNDLINE 454
637 #define T_UNLIMITED 455
638 #define T_UNRESV 456
639 #define T_UNXLINE 457
640 #define T_WALLOP 458
641 #define T_WALLOPS 459
642 #define T_WEBIRC 460
643 #define TBOOL 461
644 #define THROTTLE_TIME 462
645 #define TKLINE_EXPIRE_NOTICES 463
646 #define TMASKED 464
647 #define TRUE_NO_OPER_FLOOD 465
648 #define TS_MAX_DELTA 466
649 #define TS_WARN_DELTA 467
650 #define TWODOTS 468
651 #define TYPE 469
652 #define UNKLINE 470
653 #define USE_EGD 471
654 #define USE_LOGGING 472
655 #define USER 473
656 #define VHOST 474
657 #define VHOST6 475
658 #define WARN_NO_NLINE 476
659 #define XLINE 477
660
661
662
663 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
664 typedef union YYSTYPE
665 {
666 /* Line 387 of yacc.c */
667 #line 139 "conf_parser.y"
668
669 int number;
670 char *string;
671
672
673 /* Line 387 of yacc.c */
674 #line 675 "conf_parser.c"
675 } YYSTYPE;
676 # define YYSTYPE_IS_TRIVIAL 1
677 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
678 # define YYSTYPE_IS_DECLARED 1
679 #endif
680
681 extern YYSTYPE yylval;
682
683 #ifdef YYPARSE_PARAM
684 #if defined __STDC__ || defined __cplusplus
685 int yyparse (void *YYPARSE_PARAM);
686 #else
687 int yyparse ();
688 #endif
689 #else /* ! YYPARSE_PARAM */
690 #if defined __STDC__ || defined __cplusplus
691 int yyparse (void);
692 #else
693 int yyparse ();
694 #endif
695 #endif /* ! YYPARSE_PARAM */
696
697 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
698
699 /* Copy the second part of user declarations. */
700
701 /* Line 390 of yacc.c */
702 #line 703 "conf_parser.c"
703
704 #ifdef short
705 # undef short
706 #endif
707
708 #ifdef YYTYPE_UINT8
709 typedef YYTYPE_UINT8 yytype_uint8;
710 #else
711 typedef unsigned char yytype_uint8;
712 #endif
713
714 #ifdef YYTYPE_INT8
715 typedef YYTYPE_INT8 yytype_int8;
716 #elif (defined __STDC__ || defined __C99__FUNC__ \
717 || defined __cplusplus || defined _MSC_VER)
718 typedef signed char yytype_int8;
719 #else
720 typedef short int yytype_int8;
721 #endif
722
723 #ifdef YYTYPE_UINT16
724 typedef YYTYPE_UINT16 yytype_uint16;
725 #else
726 typedef unsigned short int yytype_uint16;
727 #endif
728
729 #ifdef YYTYPE_INT16
730 typedef YYTYPE_INT16 yytype_int16;
731 #else
732 typedef short int yytype_int16;
733 #endif
734
735 #ifndef YYSIZE_T
736 # ifdef __SIZE_TYPE__
737 # define YYSIZE_T __SIZE_TYPE__
738 # elif defined size_t
739 # define YYSIZE_T size_t
740 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
741 || defined __cplusplus || defined _MSC_VER)
742 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
743 # define YYSIZE_T size_t
744 # else
745 # define YYSIZE_T unsigned int
746 # endif
747 #endif
748
749 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
750
751 #ifndef YY_
752 # if defined YYENABLE_NLS && YYENABLE_NLS
753 # if ENABLE_NLS
754 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
755 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
756 # endif
757 # endif
758 # ifndef YY_
759 # define YY_(Msgid) Msgid
760 # endif
761 #endif
762
763 #ifndef __attribute__
764 /* This feature is available in gcc versions 2.5 and later. */
765 # if (! defined __GNUC__ || __GNUC__ < 2 \
766 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
767 # define __attribute__(Spec) /* empty */
768 # endif
769 #endif
770
771 /* Suppress unused-variable warnings by "using" E. */
772 #if ! defined lint || defined __GNUC__
773 # define YYUSE(E) ((void) (E))
774 #else
775 # define YYUSE(E) /* empty */
776 #endif
777
778
779 /* Identity function, used to suppress warnings about constant conditions. */
780 #ifndef lint
781 # define YYID(N) (N)
782 #else
783 #if (defined __STDC__ || defined __C99__FUNC__ \
784 || defined __cplusplus || defined _MSC_VER)
785 static int
786 YYID (int yyi)
787 #else
788 static int
789 YYID (yyi)
790 int yyi;
791 #endif
792 {
793 return yyi;
794 }
795 #endif
796
797 #if ! defined yyoverflow || YYERROR_VERBOSE
798
799 /* The parser invokes alloca or malloc; define the necessary symbols. */
800
801 # ifdef YYSTACK_USE_ALLOCA
802 # if YYSTACK_USE_ALLOCA
803 # ifdef __GNUC__
804 # define YYSTACK_ALLOC __builtin_alloca
805 # elif defined __BUILTIN_VA_ARG_INCR
806 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
807 # elif defined _AIX
808 # define YYSTACK_ALLOC __alloca
809 # elif defined _MSC_VER
810 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
811 # define alloca _alloca
812 # else
813 # define YYSTACK_ALLOC alloca
814 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
815 || defined __cplusplus || defined _MSC_VER)
816 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
817 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
818 # ifndef EXIT_SUCCESS
819 # define EXIT_SUCCESS 0
820 # endif
821 # endif
822 # endif
823 # endif
824 # endif
825
826 # ifdef YYSTACK_ALLOC
827 /* Pacify GCC's `empty if-body' warning. */
828 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
829 # ifndef YYSTACK_ALLOC_MAXIMUM
830 /* The OS might guarantee only one guard page at the bottom of the stack,
831 and a page size can be as small as 4096 bytes. So we cannot safely
832 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
833 to allow for a few compiler-allocated temporary stack slots. */
834 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
835 # endif
836 # else
837 # define YYSTACK_ALLOC YYMALLOC
838 # define YYSTACK_FREE YYFREE
839 # ifndef YYSTACK_ALLOC_MAXIMUM
840 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
841 # endif
842 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
843 && ! ((defined YYMALLOC || defined malloc) \
844 && (defined YYFREE || defined free)))
845 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
846 # ifndef EXIT_SUCCESS
847 # define EXIT_SUCCESS 0
848 # endif
849 # endif
850 # ifndef YYMALLOC
851 # define YYMALLOC malloc
852 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
853 || defined __cplusplus || defined _MSC_VER)
854 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
855 # endif
856 # endif
857 # ifndef YYFREE
858 # define YYFREE free
859 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
860 || defined __cplusplus || defined _MSC_VER)
861 void free (void *); /* INFRINGES ON USER NAME SPACE */
862 # endif
863 # endif
864 # endif
865 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
866
867
868 #if (! defined yyoverflow \
869 && (! defined __cplusplus \
870 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
871
872 /* A type that is properly aligned for any stack member. */
873 union yyalloc
874 {
875 yytype_int16 yyss_alloc;
876 YYSTYPE yyvs_alloc;
877 };
878
879 /* The size of the maximum gap between one aligned stack and the next. */
880 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
881
882 /* The size of an array large to enough to hold all stacks, each with
883 N elements. */
884 # define YYSTACK_BYTES(N) \
885 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
886 + YYSTACK_GAP_MAXIMUM)
887
888 # define YYCOPY_NEEDED 1
889
890 /* Relocate STACK from its old location to the new one. The
891 local variables YYSIZE and YYSTACKSIZE give the old and new number of
892 elements in the stack, and YYPTR gives the new location of the
893 stack. Advance YYPTR to a properly aligned location for the next
894 stack. */
895 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
896 do \
897 { \
898 YYSIZE_T yynewbytes; \
899 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
900 Stack = &yyptr->Stack_alloc; \
901 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
902 yyptr += yynewbytes / sizeof (*yyptr); \
903 } \
904 while (YYID (0))
905
906 #endif
907
908 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
909 /* Copy COUNT objects from SRC to DST. The source and destination do
910 not overlap. */
911 # ifndef YYCOPY
912 # if defined __GNUC__ && 1 < __GNUC__
913 # define YYCOPY(Dst, Src, Count) \
914 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
915 # else
916 # define YYCOPY(Dst, Src, Count) \
917 do \
918 { \
919 YYSIZE_T yyi; \
920 for (yyi = 0; yyi < (Count); yyi++) \
921 (Dst)[yyi] = (Src)[yyi]; \
922 } \
923 while (YYID (0))
924 # endif
925 # endif
926 #endif /* !YYCOPY_NEEDED */
927
928 /* YYFINAL -- State number of the termination state. */
929 #define YYFINAL 2
930 /* YYLAST -- Last index in YYTABLE. */
931 #define YYLAST 1228
932
933 /* YYNTOKENS -- Number of terminals. */
934 #define YYNTOKENS 229
935 /* YYNNTS -- Number of nonterminals. */
936 #define YYNNTS 286
937 /* YYNRULES -- Number of rules. */
938 #define YYNRULES 644
939 /* YYNRULES -- Number of states. */
940 #define YYNSTATES 1260
941
942 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
943 #define YYUNDEFTOK 2
944 #define YYMAXUTOK 477
945
946 #define YYTRANSLATE(YYX) \
947 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
948
949 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
950 static const yytype_uint8 yytranslate[] =
951 {
952 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
953 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
954 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
955 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
956 2, 2, 2, 2, 227, 2, 2, 2, 2, 2,
957 2, 2, 2, 2, 2, 2, 2, 2, 228, 223,
958 2, 226, 2, 2, 2, 2, 2, 2, 2, 2,
959 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
960 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
961 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
963 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
964 2, 2, 2, 225, 2, 224, 2, 2, 2, 2,
965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
968 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
970 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
971 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
972 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
973 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
974 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
975 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
977 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
978 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
979 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
980 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
981 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
982 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
983 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
984 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
985 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
986 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
987 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
988 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
989 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
990 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
991 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
992 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
993 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
994 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
995 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
996 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
997 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
998 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
999 215, 216, 217, 218, 219, 220, 221, 222
1000 };
1001
1002 #if YYDEBUG
1003 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1004 YYRHS. */
1005 static const yytype_uint16 yyprhs[] =
1006 {
1007 0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
1008 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1009 39, 41, 43, 45, 47, 49, 52, 55, 56, 58,
1010 61, 65, 69, 73, 77, 81, 85, 89, 90, 92,
1011 95, 99, 103, 107, 113, 116, 118, 120, 122, 125,
1012 130, 135, 141, 144, 146, 148, 150, 152, 154, 156,
1013 158, 160, 162, 164, 166, 168, 170, 172, 174, 176,
1014 178, 180, 183, 188, 193, 197, 199, 201, 203, 207,
1015 209, 211, 213, 218, 223, 228, 233, 238, 243, 248,
1016 253, 258, 263, 268, 273, 278, 283, 288, 294, 297,
1017 299, 301, 303, 305, 308, 313, 318, 323, 324, 331,
1018 334, 336, 338, 340, 343, 348, 353, 359, 362, 364,
1019 366, 368, 371, 376, 377, 384, 387, 389, 391, 393,
1020 395, 398, 403, 408, 413, 414, 420, 424, 426, 428,
1021 430, 432, 434, 436, 438, 440, 441, 448, 451, 453,
1022 455, 457, 459, 461, 463, 465, 467, 469, 472, 477,
1023 482, 487, 492, 497, 502, 503, 509, 513, 515, 517,
1024 519, 521, 523, 525, 527, 529, 531, 533, 535, 537,
1025 539, 541, 543, 545, 547, 549, 551, 553, 555, 557,
1026 558, 564, 568, 570, 574, 576, 580, 582, 586, 588,
1027 590, 592, 594, 596, 598, 600, 602, 604, 606, 608,
1028 610, 612, 614, 616, 618, 620, 622, 623, 630, 633,
1029 635, 637, 639, 641, 643, 645, 647, 649, 651, 653,
1030 655, 657, 659, 661, 663, 665, 667, 670, 675, 680,
1031 685, 690, 695, 700, 705, 710, 715, 720, 725, 730,
1032 735, 740, 745, 746, 752, 756, 758, 760, 762, 763,
1033 770, 771, 777, 781, 783, 785, 787, 789, 792, 794,
1034 796, 798, 800, 802, 805, 806, 812, 816, 818, 820,
1035 824, 829, 834, 835, 842, 845, 847, 849, 851, 853,
1036 855, 857, 859, 861, 863, 866, 871, 876, 881, 886,
1037 887, 893, 897, 899, 901, 903, 905, 907, 909, 911,
1038 913, 915, 917, 919, 924, 929, 934, 935, 942, 945,
1039 947, 949, 951, 953, 956, 961, 966, 971, 977, 980,
1040 982, 984, 986, 991, 992, 999, 1002, 1004, 1006, 1008,
1041 1010, 1013, 1018, 1023, 1024, 1030, 1034, 1036, 1038, 1040,
1042 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1057, 1064,
1043 1067, 1069, 1071, 1073, 1076, 1081, 1082, 1088, 1092, 1094,
1044 1096, 1098, 1100, 1102, 1104, 1106, 1108, 1110, 1112, 1114,
1045 1115, 1122, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139,
1046 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1156, 1161, 1166,
1047 1171, 1176, 1181, 1186, 1191, 1196, 1197, 1203, 1207, 1209,
1048 1211, 1213, 1218, 1223, 1228, 1233, 1238, 1239, 1246, 1249,
1049 1251, 1253, 1255, 1257, 1262, 1267, 1268, 1275, 1278, 1280,
1050 1282, 1284, 1286, 1291, 1296, 1302, 1305, 1307, 1309, 1311,
1051 1316, 1317, 1324, 1327, 1329, 1331, 1333, 1335, 1340, 1345,
1052 1351, 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370,
1053 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390,
1054 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1406, 1408, 1410,
1055 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1428, 1430,
1056 1432, 1434, 1436, 1438, 1440, 1442, 1444, 1446, 1448, 1450,
1057 1452, 1454, 1459, 1464, 1469, 1474, 1479, 1484, 1489, 1494,
1058 1499, 1504, 1509, 1514, 1519, 1524, 1529, 1534, 1539, 1544,
1059 1549, 1554, 1559, 1564, 1569, 1574, 1579, 1584, 1589, 1594,
1060 1599, 1604, 1609, 1614, 1619, 1624, 1629, 1634, 1639, 1644,
1061 1649, 1654, 1659, 1664, 1669, 1674, 1679, 1680, 1686, 1690,
1062 1692, 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710,
1063 1712, 1714, 1716, 1718, 1720, 1722, 1724, 1726, 1728, 1730,
1064 1732, 1734, 1735, 1741, 1745, 1747, 1749, 1751, 1753, 1755,
1065 1757, 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773, 1775,
1066 1777, 1779, 1781, 1783, 1785, 1787, 1789, 1794, 1799, 1804,
1067 1810, 1813, 1815, 1817, 1819, 1821, 1823, 1825, 1827, 1829,
1068 1831, 1833, 1835, 1837, 1839, 1841, 1846, 1851, 1856, 1861,
1069 1866, 1871, 1876, 1881, 1886, 1891, 1896, 1901, 1907, 1910,
1070 1912, 1914, 1916, 1918, 1920, 1922, 1924, 1926, 1928, 1933,
1071 1938, 1943, 1948, 1953, 1958
1072 };
1073
1074 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1075 static const yytype_int16 yyrhs[] =
1076 {
1077 230, 0, -1, -1, 230, 231, -1, 265, -1, 277,
1078 -1, 291, -1, 490, -1, 309, -1, 332, -1, 346,
1079 -1, 241, -1, 505, -1, 361, -1, 368, -1, 372,
1080 -1, 382, -1, 391, -1, 411, -1, 417, -1, 423,
1081 -1, 433, -1, 427, -1, 236, -1, 271, -1, 1,
1082 223, -1, 1, 224, -1, -1, 233, -1, 107, 232,
1083 -1, 107, 134, 232, -1, 107, 135, 232, -1, 107,
1084 136, 232, -1, 107, 137, 232, -1, 107, 138, 232,
1085 -1, 107, 139, 232, -1, 107, 140, 232, -1, -1,
1086 235, -1, 107, 234, -1, 107, 9, 234, -1, 107,
1087 10, 234, -1, 107, 11, 234, -1, 95, 225, 237,
1088 224, 223, -1, 237, 238, -1, 238, -1, 239, -1,
1089 240, -1, 1, 223, -1, 94, 226, 122, 223, -1,
1090 118, 226, 122, 223, -1, 144, 225, 242, 224, 223,
1091 -1, 242, 243, -1, 243, -1, 254, -1, 259, -1,
1092 264, -1, 256, -1, 257, -1, 258, -1, 261, -1,
1093 262, -1, 263, -1, 252, -1, 251, -1, 260, -1,
1094 255, -1, 250, -1, 244, -1, 245, -1, 253, -1,
1095 1, 223, -1, 193, 226, 246, 223, -1, 194, 226,
1096 248, 223, -1, 246, 227, 247, -1, 247, -1, 195,
1097 -1, 196, -1, 248, 227, 249, -1, 249, -1, 195,
1098 -1, 196, -1, 149, 226, 122, 223, -1, 132, 226,
1099 122, 223, -1, 150, 226, 122, 223, -1, 192, 226,
1100 122, 223, -1, 97, 226, 122, 223, -1, 63, 226,
1101 122, 223, -1, 24, 226, 122, 223, -1, 101, 226,
1102 122, 223, -1, 100, 226, 122, 223, -1, 219, 226,
1103 122, 223, -1, 220, 226, 122, 223, -1, 174, 226,
1104 107, 223, -1, 85, 226, 107, 223, -1, 89, 226,
1105 107, 223, -1, 56, 226, 206, 223, -1, 4, 225,
1106 266, 224, 223, -1, 266, 267, -1, 267, -1, 268,
1107 -1, 270, -1, 269, -1, 1, 223, -1, 97, 226,
1108 122, 223, -1, 31, 226, 122, 223, -1, 24, 226,
1109 122, 223, -1, -1, 96, 272, 225, 273, 224, 223,
1110 -1, 273, 274, -1, 274, -1, 275, -1, 276, -1,
1111 1, 223, -1, 75, 226, 122, 223, -1, 166, 226,
1112 122, 223, -1, 173, 225, 278, 224, 223, -1, 278,
1113 279, -1, 279, -1, 280, -1, 281, -1, 1, 223,
1114 -1, 217, 226, 206, 223, -1, -1, 282, 166, 225,
1115 283, 224, 223, -1, 283, 284, -1, 284, -1, 285,
1116 -1, 287, -1, 286, -1, 1, 223, -1, 97, 226,
1117 122, 223, -1, 187, 226, 235, 223, -1, 187, 226,
1118 200, 223, -1, -1, 214, 288, 226, 289, 223, -1,
1119 289, 227, 290, -1, 290, -1, 218, -1, 113, -1,
1120 39, -1, 163, -1, 68, -1, 66, -1, 162, -1,
1121 -1, 113, 292, 225, 293, 224, 223, -1, 293, 294,
1122 -1, 294, -1, 295, -1, 296, -1, 297, -1, 301,
1123 -1, 300, -1, 298, -1, 299, -1, 305, -1, 1,
1124 223, -1, 97, 226, 122, 223, -1, 218, 226, 122,
1125 223, -1, 117, 226, 122, 223, -1, 32, 226, 206,
1126 223, -1, 133, 226, 122, 223, -1, 17, 226, 122,
1127 223, -1, -1, 197, 302, 226, 303, 223, -1, 303,
1128 227, 304, -1, 304, -1, 157, -1, 159, -1, 161,
1129 -1, 162, -1, 167, -1, 48, -1, 188, -1, 175,
1130 -1, 179, -1, 198, -1, 190, -1, 164, -1, 177,
1131 -1, 184, -1, 169, -1, 203, -1, 189, -1, 158,
1132 -1, 172, -1, 176, -1, 165, -1, -1, 62, 306,
1133 226, 307, 223, -1, 307, 227, 308, -1, 308, -1,
1134 66, 228, 128, -1, 66, -1, 18, 228, 128, -1,
1135 18, -1, 148, 228, 128, -1, 148, -1, 68, -1,
1136 215, -1, 163, -1, 199, -1, 222, -1, 39, -1,
1137 25, -1, 180, -1, 127, -1, 4, -1, 177, -1,
1138 168, -1, 204, -1, 172, -1, 129, -1, 185, -1,
1139 94, -1, -1, 17, 310, 225, 311, 224, 223, -1,
1140 311, 312, -1, 312, -1, 313, -1, 323, -1, 324,
1141 -1, 314, -1, 325, -1, 315, -1, 316, -1, 317,
1142 -1, 318, -1, 319, -1, 320, -1, 321, -1, 322,
1143 -1, 326, -1, 327, -1, 328, -1, 1, 223, -1,
1144 97, 226, 122, 223, -1, 120, 226, 233, 223, -1,
1145 109, 226, 107, 223, -1, 19, 226, 233, 223, -1,
1146 87, 226, 107, 223, -1, 80, 226, 107, 223, -1,
1147 83, 226, 107, 223, -1, 81, 226, 107, 223, -1,
1148 142, 226, 235, 223, -1, 178, 226, 235, 223, -1,
1149 15, 226, 107, 223, -1, 16, 226, 107, 223, -1,
1150 108, 226, 107, 223, -1, 91, 226, 233, 223, -1,
1151 82, 226, 233, 223, -1, -1, 62, 329, 226, 330,
1152 223, -1, 330, 227, 331, -1, 331, -1, 123, -1,
1153 50, -1, -1, 74, 333, 225, 338, 224, 223, -1,
1154 -1, 62, 335, 226, 336, 223, -1, 336, 227, 337,
1155 -1, 337, -1, 191, -1, 48, -1, 181, -1, 338,
1156 339, -1, 339, -1, 340, -1, 334, -1, 344, -1,
1157 345, -1, 1, 223, -1, -1, 121, 226, 342, 341,
1158 223, -1, 342, 227, 343, -1, 343, -1, 107, -1,
1159 107, 213, 107, -1, 60, 226, 122, 223, -1, 55,
1160 226, 122, 223, -1, -1, 61, 347, 225, 348, 224,
1161 223, -1, 348, 349, -1, 349, -1, 350, -1, 351,
1162 -1, 352, -1, 354, -1, 358, -1, 359, -1, 360,
1163 -1, 353, -1, 1, 223, -1, 218, 226, 122, 223,
1164 -1, 117, 226, 122, 223, -1, 17, 226, 122, 223,
1165 -1, 32, 226, 206, 223, -1, -1, 62, 355, 226,
1166 356, 223, -1, 356, 227, 357, -1, 357, -1, 147,
1167 -1, 33, -1, 69, -1, 98, -1, 13, -1, 106,
1168 -1, 42, -1, 131, -1, 205, -1, 99, -1, 146,
1169 226, 122, 223, -1, 126, 226, 122, 223, -1, 125,
1170 226, 107, 223, -1, -1, 130, 362, 225, 363, 224,
1171 223, -1, 363, 364, -1, 364, -1, 365, -1, 366,
1172 -1, 367, -1, 1, 223, -1, 75, 226, 122, 223,
1173 -1, 124, 226, 122, 223, -1, 34, 226, 122, 223,
1174 -1, 182, 225, 369, 224, 223, -1, 369, 370, -1,
1175 370, -1, 371, -1, 1, -1, 97, 226, 122, 223,
1176 -1, -1, 186, 373, 225, 374, 224, 223, -1, 374,
1177 375, -1, 375, -1, 376, -1, 377, -1, 378, -1,
1178 1, 223, -1, 97, 226, 122, 223, -1, 218, 226,
1179 122, 223, -1, -1, 214, 379, 226, 380, 223, -1,
1180 380, 227, 381, -1, 381, -1, 68, -1, 215, -1,
1181 163, -1, 199, -1, 222, -1, 202, -1, 130, -1,
1182 201, -1, 172, -1, 156, -1, -1, 160, 383, 225,
1183 384, 224, 223, -1, 384, 385, -1, 385, -1, 386,
1184 -1, 387, -1, 1, 223, -1, 97, 226, 122, 223,
1185 -1, -1, 214, 388, 226, 389, 223, -1, 389, 227,
1186 390, -1, 390, -1, 68, -1, 215, -1, 163, -1,
1187 199, -1, 222, -1, 202, -1, 130, -1, 201, -1,
1188 172, -1, 156, -1, -1, 18, 392, 225, 393, 224,
1189 223, -1, 393, 394, -1, 394, -1, 395, -1, 396,
1190 -1, 397, -1, 398, -1, 399, -1, 401, -1, 400,
1191 -1, 410, -1, 402, -1, 407, -1, 408, -1, 409,
1192 -1, 406, -1, 1, 223, -1, 97, 226, 122, 223,
1193 -1, 55, 226, 122, 223, -1, 219, 226, 122, 223,
1194 -1, 141, 226, 122, 223, -1, 3, 226, 122, 223,
1195 -1, 121, 226, 107, 223, -1, 5, 226, 170, 223,
1196 -1, 5, 226, 171, 223, -1, -1, 62, 403, 226,
1197 404, 223, -1, 404, 227, 405, -1, 405, -1, 8,
1198 -1, 191, -1, 32, 226, 206, 223, -1, 57, 226,
1199 122, 223, -1, 72, 226, 122, 223, -1, 17, 226,
1200 122, 223, -1, 192, 226, 122, 223, -1, -1, 66,
1201 412, 225, 413, 224, 223, -1, 413, 414, -1, 414,
1202 -1, 415, -1, 416, -1, 1, -1, 218, 226, 122,
1203 223, -1, 124, 226, 122, 223, -1, -1, 23, 418,
1204 225, 419, 224, 223, -1, 419, 420, -1, 420, -1,
1205 421, -1, 422, -1, 1, -1, 60, 226, 122, 223,
1206 -1, 124, 226, 122, 223, -1, 34, 225, 424, 224,
1207 223, -1, 424, 425, -1, 425, -1, 426, -1, 1,
1208 -1, 60, 226, 122, 223, -1, -1, 37, 428, 225,
1209 429, 224, 223, -1, 429, 430, -1, 430, -1, 431,
1210 -1, 432, -1, 1, -1, 97, 226, 122, 223, -1,
1211 124, 226, 122, 223, -1, 38, 225, 434, 224, 223,
1212 -1, 434, 435, -1, 435, -1, 444, -1, 445, -1,
1213 447, -1, 448, -1, 449, -1, 450, -1, 451, -1,
1214 452, -1, 453, -1, 454, -1, 443, -1, 456, -1,
1215 457, -1, 471, -1, 459, -1, 461, -1, 463, -1,
1216 462, -1, 466, -1, 460, -1, 467, -1, 468, -1,
1217 469, -1, 470, -1, 483, -1, 472, -1, 473, -1,
1218 474, -1, 479, -1, 464, -1, 465, -1, 489, -1,
1219 487, -1, 488, -1, 446, -1, 478, -1, 455, -1,
1220 476, -1, 477, -1, 442, -1, 437, -1, 438, -1,
1221 439, -1, 440, -1, 441, -1, 458, -1, 436, -1,
1222 475, -1, 1, -1, 90, 226, 107, 223, -1, 41,
1223 226, 206, 223, -1, 40, 226, 233, 223, -1, 45,
1224 226, 233, 223, -1, 43, 226, 107, 223, -1, 44,
1225 226, 107, 223, -1, 208, 226, 206, 223, -1, 67,
1226 226, 233, 223, -1, 54, 226, 206, 223, -1, 58,
1227 226, 206, 223, -1, 28, 226, 206, 223, -1, 35,
1228 226, 206, 223, -1, 6, 226, 206, 223, -1, 86,
1229 226, 233, 223, -1, 84, 226, 107, 223, -1, 76,
1230 226, 107, 223, -1, 7, 226, 233, 223, -1, 212,
1231 226, 233, 223, -1, 211, 226, 233, 223, -1, 47,
1232 226, 107, 223, -1, 59, 226, 206, 223, -1, 221,
1233 226, 206, 223, -1, 151, 226, 206, 223, -1, 154,
1234 226, 206, 223, -1, 155, 226, 206, 223, -1, 153,
1235 226, 206, 223, -1, 153, 226, 209, 223, -1, 152,
1236 226, 206, 223, -1, 152, 226, 209, 223, -1, 115,
1237 226, 233, 223, -1, 12, 226, 233, 223, -1, 114,
1238 226, 206, 223, -1, 116, 226, 233, 223, -1, 145,
1239 226, 206, 223, -1, 105, 226, 206, 223, -1, 210,
1240 226, 206, 223, -1, 111, 226, 206, 223, -1, 29,
1241 226, 107, 223, -1, 88, 226, 107, 223, -1, 216,
1242 226, 206, 223, -1, 30, 226, 122, 223, -1, 183,
1243 226, 122, 223, -1, 119, 226, 206, 223, -1, 26,
1244 226, 206, 223, -1, 207, 226, 233, 223, -1, -1,
1245 112, 480, 226, 481, 223, -1, 481, 227, 482, -1,
1246 482, -1, 157, -1, 159, -1, 161, -1, 162, -1,
1247 167, -1, 48, -1, 188, -1, 175, -1, 179, -1,
1248 198, -1, 190, -1, 164, -1, 177, -1, 184, -1,
1249 169, -1, 203, -1, 189, -1, 158, -1, 172, -1,
1250 176, -1, 165, -1, -1, 110, 484, 226, 485, 223,
1251 -1, 485, 227, 486, -1, 486, -1, 157, -1, 159,
1252 -1, 161, -1, 162, -1, 167, -1, 188, -1, 48,
1253 -1, 175, -1, 179, -1, 198, -1, 190, -1, 164,
1254 -1, 177, -1, 184, -1, 169, -1, 203, -1, 189,
1255 -1, 158, -1, 172, -1, 176, -1, 165, -1, 92,
1256 226, 107, 223, -1, 93, 226, 107, 223, -1, 20,
1257 226, 107, 223, -1, 14, 225, 491, 224, 223, -1,
1258 491, 492, -1, 492, -1, 498, -1, 494, -1, 495,
1259 -1, 496, -1, 497, -1, 499, -1, 500, -1, 501,
1260 -1, 502, -1, 503, -1, 504, -1, 493, -1, 1,
1261 -1, 27, 226, 206, 223, -1, 70, 226, 233, 223,
1262 -1, 71, 226, 233, 223, -1, 79, 226, 107, 223,
1263 -1, 78, 226, 107, 223, -1, 77, 226, 107, 223,
1264 -1, 22, 226, 107, 223, -1, 21, 226, 107, 223,
1265 -1, 103, 226, 206, 223, -1, 104, 226, 206, 223,
1266 -1, 64, 226, 107, 223, -1, 65, 226, 233, 223,
1267 -1, 143, 225, 506, 224, 223, -1, 506, 507, -1,
1268 507, -1, 508, -1, 509, -1, 510, -1, 512, -1,
1269 513, -1, 511, -1, 514, -1, 1, -1, 36, 226,
1270 206, 223, -1, 52, 226, 206, 223, -1, 53, 226,
1271 206, 223, -1, 49, 226, 122, 223, -1, 73, 226,
1272 233, 223, -1, 48, 226, 206, 223, -1, 51, 226,
1273 206, 223, -1
1274 };
1275
1276 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1277 static const yytype_uint16 yyrline[] =
1278 {
1279 0, 365, 365, 366, 369, 370, 371, 372, 373, 374,
1280 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1281 385, 386, 387, 388, 389, 390, 391, 395, 395, 396,
1282 400, 404, 408, 412, 416, 420, 424, 430, 430, 431,
1283 432, 433, 434, 441, 444, 444, 445, 445, 445, 447,
1284 453, 460, 462, 462, 463, 463, 464, 464, 465, 465,
1285 466, 466, 467, 467, 468, 468, 469, 469, 470, 470,
1286 471, 472, 475, 476, 478, 478, 479, 485, 493, 493,
1287 494, 500, 508, 550, 609, 637, 645, 660, 675, 684,
1288 698, 707, 735, 765, 790, 812, 834, 843, 845, 845,
1289 846, 846, 847, 847, 849, 858, 867, 880, 879, 897,
1290 897, 898, 898, 898, 900, 906, 915, 916, 916, 918,
1291 918, 919, 921, 928, 928, 941, 942, 944, 944, 945,
1292 945, 947, 955, 958, 964, 963, 969, 969, 970, 974,
1293 978, 982, 986, 990, 994, 1005, 1004, 1081, 1081, 1082,
1294 1082, 1082, 1083, 1083, 1083, 1084, 1084, 1084, 1086, 1092,
1295 1098, 1104, 1115, 1121, 1128, 1127, 1133, 1133, 1134, 1138,
1296 1142, 1146, 1150, 1154, 1158, 1162, 1166, 1170, 1174, 1178,
1297 1182, 1186, 1190, 1194, 1198, 1202, 1206, 1210, 1214, 1221,
1298 1220, 1226, 1226, 1227, 1231, 1235, 1239, 1243, 1247, 1251,
1299 1255, 1259, 1263, 1267, 1271, 1275, 1279, 1283, 1287, 1291,
1300 1295, 1299, 1303, 1307, 1311, 1315, 1326, 1325, 1386, 1386,
1301 1387, 1388, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1302 1396, 1397, 1397, 1398, 1399, 1400, 1401, 1403, 1409, 1415,
1303 1421, 1427, 1433, 1439, 1445, 1451, 1457, 1464, 1470, 1476,
1304 1482, 1491, 1501, 1500, 1506, 1506, 1507, 1511, 1522, 1521,
1305 1528, 1527, 1532, 1532, 1533, 1537, 1541, 1547, 1547, 1548,
1306 1548, 1548, 1548, 1548, 1550, 1550, 1552, 1552, 1554, 1568,
1307 1588, 1594, 1604, 1603, 1645, 1645, 1646, 1646, 1646, 1646,
1308 1647, 1647, 1647, 1648, 1648, 1650, 1656, 1662, 1668, 1680,
1309 1679, 1685, 1685, 1686, 1690, 1694, 1698, 1702, 1706, 1710,
1310 1714, 1718, 1722, 1728, 1742, 1751, 1765, 1764, 1779, 1779,
1311 1780, 1780, 1780, 1780, 1782, 1788, 1794, 1804, 1806, 1806,
1312 1807, 1807, 1809, 1825, 1824, 1849, 1849, 1850, 1850, 1850,
1313 1850, 1852, 1858, 1878, 1877, 1883, 1883, 1884, 1888, 1892,
1314 1896, 1900, 1904, 1908, 1912, 1916, 1920, 1930, 1929, 1950,
1315 1950, 1951, 1951, 1951, 1953, 1960, 1959, 1965, 1965, 1966,
1316 1970, 1974, 1978, 1982, 1986, 1990, 1994, 1998, 2002, 2012,
1317 2011, 2077, 2077, 2078, 2078, 2078, 2079, 2079, 2080, 2080,
1318 2080, 2081, 2081, 2081, 2082, 2082, 2083, 2085, 2091, 2097,
1319 2103, 2116, 2129, 2135, 2139, 2148, 2147, 2152, 2152, 2153,
1320 2157, 2163, 2174, 2180, 2186, 2192, 2208, 2207, 2233, 2233,
1321 2234, 2234, 2234, 2236, 2256, 2266, 2265, 2292, 2292, 2293,
1322 2293, 2293, 2295, 2301, 2310, 2312, 2312, 2313, 2313, 2315,
1323 2333, 2332, 2355, 2355, 2356, 2356, 2356, 2358, 2364, 2373,
1324 2376, 2376, 2377, 2377, 2378, 2378, 2379, 2379, 2380, 2380,
1325 2381, 2381, 2382, 2383, 2384, 2384, 2385, 2385, 2386, 2386,
1326 2387, 2387, 2388, 2388, 2389, 2389, 2390, 2390, 2391, 2391,
1327 2392, 2392, 2393, 2393, 2394, 2394, 2395, 2396, 2396, 2397,
1328 2398, 2399, 2399, 2400, 2400, 2401, 2402, 2403, 2404, 2404,
1329 2405, 2408, 2413, 2419, 2425, 2431, 2436, 2441, 2446, 2451,
1330 2456, 2461, 2466, 2471, 2476, 2481, 2486, 2491, 2496, 2501,
1331 2507, 2518, 2523, 2528, 2533, 2538, 2543, 2546, 2551, 2554,
1332 2559, 2564, 2569, 2574, 2579, 2584, 2589, 2594, 2599, 2604,
1333 2609, 2614, 2623, 2632, 2637, 2642, 2648, 2647, 2652, 2652,
1334 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680,
1335 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710,
1336 2713, 2719, 2718, 2723, 2723, 2724, 2727, 2730, 2733, 2736,
1337 2739, 2742, 2745, 2748, 2751, 2754, 2757, 2760, 2763, 2766,
1338 2769, 2772, 2775, 2778, 2781, 2784, 2789, 2794, 2799, 2808,
1339 2811, 2811, 2812, 2813, 2813, 2814, 2814, 2815, 2816, 2817,
1340 2818, 2819, 2819, 2820, 2820, 2822, 2827, 2832, 2837, 2842,
1341 2847, 2852, 2857, 2862, 2867, 2872, 2877, 2885, 2888, 2888,
1342 2889, 2889, 2890, 2891, 2892, 2892, 2893, 2894, 2896, 2902,
1343 2908, 2914, 2923, 2937, 2943
1344 };
1345 #endif
1346
1347 #if YYDEBUG || YYERROR_VERBOSE || 0
1348 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1349 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1350 static const char *const yytname[] =
1351 {
1352 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1353 "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1354 "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1355 "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1356 "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1357 "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1358 "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1359 "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1360 "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1361 "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1362 "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1363 "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1364 "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1365 "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1366 "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1367 "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1368 "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1369 "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1370 "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1371 "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1372 "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1373 "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1374 "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1375 "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1376 "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1377 "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1378 "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1379 "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1380 "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1381 "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1382 "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1383 "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1384 "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1385 "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1386 "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1387 "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1388 "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1389 "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1390 "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1391 "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1392 "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1393 "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1394 "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1395 "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1396 "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1397 "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1398 "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1399 "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1400 "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1401 "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1402 "sizespec", "modules_entry", "modules_items", "modules_item",
1403 "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1404 "serverinfo_item", "serverinfo_ssl_client_method",
1405 "serverinfo_ssl_server_method", "client_method_types",
1406 "client_method_type_item", "server_method_types",
1407 "server_method_type_item", "serverinfo_ssl_certificate_file",
1408 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1409 "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1410 "serverinfo_description", "serverinfo_network_name",
1411 "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1412 "serverinfo_max_clients", "serverinfo_max_nick_length",
1413 "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1414 "admin_items", "admin_item", "admin_name", "admin_email",
1415 "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1416 "motd_mask", "motd_file", "logging_entry", "logging_items",
1417 "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1418 "logging_file_items", "logging_file_item", "logging_file_name",
1419 "logging_file_size", "logging_file_type", "$@3",
1420 "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1421 "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1422 "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1423 "oper_umodes", "$@5", "oper_umodes_items", "oper_umodes_item",
1424 "oper_flags", "$@6", "oper_flags_items", "oper_flags_item",
1425 "class_entry", "$@7", "class_items", "class_item", "class_name",
1426 "class_ping_time", "class_number_per_ip", "class_connectfreq",
1427 "class_max_number", "class_max_global", "class_max_local",
1428 "class_max_ident", "class_sendq", "class_recvq",
1429 "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1430 "class_number_per_cidr", "class_min_idle", "class_max_idle",
1431 "class_flags", "$@8", "class_flags_items", "class_flags_item",
1432 "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1433 "listen_flags_item", "listen_items", "listen_item", "listen_port",
1434 "$@11", "port_items", "port_item", "listen_address", "listen_host",
1435 "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1436 "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1437 "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1438 "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1439 "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1440 "service_items", "service_item", "service_name", "shared_entry", "$@15",
1441 "shared_items", "shared_item", "shared_name", "shared_user",
1442 "shared_type", "$@16", "shared_types", "shared_type_item",
1443 "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1444 "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1445 "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1446 "connect_host", "connect_vhost", "connect_send_password",
1447 "connect_accept_password", "connect_port", "connect_aftype",
1448 "connect_flags", "$@20", "connect_flags_items", "connect_flags_item",
1449 "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1450 "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@21",
1451 "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1452 "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1453 "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1454 "gecos_entry", "$@23", "gecos_items", "gecos_item", "gecos_name",
1455 "gecos_reason", "general_entry", "general_items", "general_item",
1456 "general_max_watch", "general_gline_enable", "general_gline_duration",
1457 "general_gline_request_duration", "general_gline_min_cidr",
1458 "general_gline_min_cidr6", "general_tkline_expire_notices",
1459 "general_kill_chase_time_limit", "general_hide_spoof_ips",
1460 "general_ignore_bogus_ts", "general_disable_remote_commands",
1461 "general_failed_oper_notice", "general_anti_nick_flood",
1462 "general_max_nick_time", "general_max_nick_changes",
1463 "general_max_accept", "general_anti_spam_exit_message_time",
1464 "general_ts_warn_delta", "general_ts_max_delta",
1465 "general_havent_read_conf", "general_invisible_on_connect",
1466 "general_warn_no_nline", "general_stats_e_disabled",
1467 "general_stats_o_oper_only", "general_stats_P_oper_only",
1468 "general_stats_k_oper_only", "general_stats_i_oper_only",
1469 "general_pace_wait", "general_caller_id_wait",
1470 "general_opers_bypass_callerid", "general_pace_wait_simple",
1471 "general_short_motd", "general_no_oper_flood",
1472 "general_true_no_oper_flood", "general_oper_pass_resv",
1473 "general_dots_in_ident", "general_max_targets", "general_use_egd",
1474 "general_egdpool_path", "general_services_name", "general_ping_cookie",
1475 "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1476 "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1477 "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1478 "general_min_nonwildcard_simple", "general_default_floodcount",
1479 "channel_entry", "channel_items", "channel_item",
1480 "channel_disable_fake_channels", "channel_knock_delay",
1481 "channel_knock_delay_channel", "channel_max_chans_per_user",
1482 "channel_max_chans_per_oper", "channel_max_bans",
1483 "channel_default_split_user_count", "channel_default_split_server_count",
1484 "channel_no_create_on_split", "channel_no_join_on_split",
1485 "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1486 "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1487 "serverhide_hide_servers", "serverhide_hide_services",
1488 "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1489 "serverhide_hide_server_ips", YY_NULL
1490 };
1491 #endif
1492
1493 # ifdef YYPRINT
1494 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1495 token YYLEX-NUM. */
1496 static const yytype_uint16 yytoknum[] =
1497 {
1498 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1499 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1500 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1501 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1502 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1503 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1504 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1505 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1506 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1507 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1508 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1509 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1510 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1511 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1512 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1513 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1514 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1515 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1516 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1517 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1518 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1519 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1520 475, 476, 477, 59, 125, 123, 61, 44, 58
1521 };
1522 # endif
1523
1524 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1525 static const yytype_uint16 yyr1[] =
1526 {
1527 0, 229, 230, 230, 231, 231, 231, 231, 231, 231,
1528 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1529 231, 231, 231, 231, 231, 231, 231, 232, 232, 233,
1530 233, 233, 233, 233, 233, 233, 233, 234, 234, 235,
1531 235, 235, 235, 236, 237, 237, 238, 238, 238, 239,
1532 240, 241, 242, 242, 243, 243, 243, 243, 243, 243,
1533 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
1534 243, 243, 244, 245, 246, 246, 247, 247, 248, 248,
1535 249, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1536 258, 259, 260, 261, 262, 263, 264, 265, 266, 266,
1537 267, 267, 267, 267, 268, 269, 270, 272, 271, 273,
1538 273, 274, 274, 274, 275, 276, 277, 278, 278, 279,
1539 279, 279, 280, 282, 281, 283, 283, 284, 284, 284,
1540 284, 285, 286, 286, 288, 287, 289, 289, 290, 290,
1541 290, 290, 290, 290, 290, 292, 291, 293, 293, 294,
1542 294, 294, 294, 294, 294, 294, 294, 294, 295, 296,
1543 297, 298, 299, 300, 302, 301, 303, 303, 304, 304,
1544 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
1545 304, 304, 304, 304, 304, 304, 304, 304, 304, 306,
1546 305, 307, 307, 308, 308, 308, 308, 308, 308, 308,
1547 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1548 308, 308, 308, 308, 308, 308, 310, 309, 311, 311,
1549 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1550 312, 312, 312, 312, 312, 312, 312, 313, 314, 315,
1551 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1552 326, 327, 329, 328, 330, 330, 331, 331, 333, 332,
1553 335, 334, 336, 336, 337, 337, 337, 338, 338, 339,
1554 339, 339, 339, 339, 341, 340, 342, 342, 343, 343,
1555 344, 345, 347, 346, 348, 348, 349, 349, 349, 349,
1556 349, 349, 349, 349, 349, 350, 351, 352, 353, 355,
1557 354, 356, 356, 357, 357, 357, 357, 357, 357, 357,
1558 357, 357, 357, 358, 359, 360, 362, 361, 363, 363,
1559 364, 364, 364, 364, 365, 366, 367, 368, 369, 369,
1560 370, 370, 371, 373, 372, 374, 374, 375, 375, 375,
1561 375, 376, 377, 379, 378, 380, 380, 381, 381, 381,
1562 381, 381, 381, 381, 381, 381, 381, 383, 382, 384,
1563 384, 385, 385, 385, 386, 388, 387, 389, 389, 390,
1564 390, 390, 390, 390, 390, 390, 390, 390, 390, 392,
1565 391, 393, 393, 394, 394, 394, 394, 394, 394, 394,
1566 394, 394, 394, 394, 394, 394, 394, 395, 396, 397,
1567 398, 399, 400, 401, 401, 403, 402, 404, 404, 405,
1568 405, 406, 407, 408, 409, 410, 412, 411, 413, 413,
1569 414, 414, 414, 415, 416, 418, 417, 419, 419, 420,
1570 420, 420, 421, 422, 423, 424, 424, 425, 425, 426,
1571 428, 427, 429, 429, 430, 430, 430, 431, 432, 433,
1572 434, 434, 435, 435, 435, 435, 435, 435, 435, 435,
1573 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
1574 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
1575 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
1576 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
1577 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1578 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1579 455, 456, 457, 458, 459, 460, 461, 461, 462, 462,
1580 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
1581 473, 474, 475, 476, 477, 478, 480, 479, 481, 481,
1582 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1583 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1584 482, 484, 483, 485, 485, 486, 486, 486, 486, 486,
1585 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
1586 486, 486, 486, 486, 486, 486, 487, 488, 489, 490,
1587 491, 491, 492, 492, 492, 492, 492, 492, 492, 492,
1588 492, 492, 492, 492, 492, 493, 494, 495, 496, 497,
1589 498, 499, 500, 501, 502, 503, 504, 505, 506, 506,
1590 507, 507, 507, 507, 507, 507, 507, 507, 508, 509,
1591 510, 511, 512, 513, 514
1592 };
1593
1594 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1595 static const yytype_uint8 yyr2[] =
1596 {
1597 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1599 1, 1, 1, 1, 1, 2, 2, 0, 1, 2,
1600 3, 3, 3, 3, 3, 3, 3, 0, 1, 2,
1601 3, 3, 3, 5, 2, 1, 1, 1, 2, 4,
1602 4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1603 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1604 1, 2, 4, 4, 3, 1, 1, 1, 3, 1,
1605 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
1606 4, 4, 4, 4, 4, 4, 4, 5, 2, 1,
1607 1, 1, 1, 2, 4, 4, 4, 0, 6, 2,
1608 1, 1, 1, 2, 4, 4, 5, 2, 1, 1,
1609 1, 2, 4, 0, 6, 2, 1, 1, 1, 1,
1610 2, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1611 1, 1, 1, 1, 1, 0, 6, 2, 1, 1,
1612 1, 1, 1, 1, 1, 1, 1, 2, 4, 4,
1613 4, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1615 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1616 5, 3, 1, 3, 1, 3, 1, 3, 1, 1,
1617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1618 1, 1, 1, 1, 1, 1, 0, 6, 2, 1,
1619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1620 1, 1, 1, 1, 1, 1, 2, 4, 4, 4,
1621 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1622 4, 4, 0, 5, 3, 1, 1, 1, 0, 6,
1623 0, 5, 3, 1, 1, 1, 1, 2, 1, 1,
1624 1, 1, 1, 2, 0, 5, 3, 1, 1, 3,
1625 4, 4, 0, 6, 2, 1, 1, 1, 1, 1,
1626 1, 1, 1, 1, 2, 4, 4, 4, 4, 0,
1627 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1628 1, 1, 1, 4, 4, 4, 0, 6, 2, 1,
1629 1, 1, 1, 2, 4, 4, 4, 5, 2, 1,
1630 1, 1, 4, 0, 6, 2, 1, 1, 1, 1,
1631 2, 4, 4, 0, 5, 3, 1, 1, 1, 1,
1632 1, 1, 1, 1, 1, 1, 1, 0, 6, 2,
1633 1, 1, 1, 2, 4, 0, 5, 3, 1, 1,
1634 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1635 6, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1636 1, 1, 1, 1, 1, 1, 2, 4, 4, 4,
1637 4, 4, 4, 4, 4, 0, 5, 3, 1, 1,
1638 1, 4, 4, 4, 4, 4, 0, 6, 2, 1,
1639 1, 1, 1, 4, 4, 0, 6, 2, 1, 1,
1640 1, 1, 4, 4, 5, 2, 1, 1, 1, 4,
1641 0, 6, 2, 1, 1, 1, 1, 4, 4, 5,
1642 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1643 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1648 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1649 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1650 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1651 4, 4, 4, 4, 4, 4, 0, 5, 3, 1,
1652 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 1, 0, 5, 3, 1, 1, 1, 1, 1, 1,
1655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1656 1, 1, 1, 1, 1, 1, 4, 4, 4, 5,
1657 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 1, 1, 1, 1, 4, 4, 4, 4, 4,
1659 4, 4, 4, 4, 4, 4, 4, 5, 2, 1,
1660 1, 1, 1, 1, 1, 1, 1, 1, 4, 4,
1661 4, 4, 4, 4, 4
1662 };
1663
1664 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1665 Performed when YYTABLE doesn't specify something else to do. Zero
1666 means the default is an error. */
1667 static const yytype_uint16 yydefact[] =
1668 {
1669 2, 0, 1, 0, 0, 0, 216, 379, 425, 0,
1670 440, 0, 282, 416, 258, 0, 107, 145, 316, 0,
1671 0, 357, 0, 0, 333, 3, 23, 11, 4, 24,
1672 5, 6, 8, 9, 10, 13, 14, 15, 16, 17,
1673 18, 19, 20, 22, 21, 7, 12, 25, 26, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676 0, 0, 0, 0, 0, 99, 100, 102, 101, 614,
1677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 0, 601, 613, 603, 604, 605, 606, 602,
1679 607, 608, 609, 610, 611, 612, 0, 0, 0, 438,
1680 0, 0, 436, 437, 0, 500, 0, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1683 0, 0, 0, 571, 0, 546, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 0, 0, 0, 0, 451, 498, 492, 493, 494,
1686 495, 496, 491, 462, 452, 453, 486, 454, 455, 456,
1687 457, 458, 459, 460, 461, 488, 463, 464, 497, 466,
1688 471, 467, 469, 468, 481, 482, 470, 472, 473, 474,
1689 475, 465, 477, 478, 479, 499, 489, 490, 487, 480,
1690 476, 484, 485, 483, 0, 0, 0, 0, 0, 0,
1691 0, 45, 46, 47, 0, 0, 0, 637, 0, 0,
1692 0, 0, 0, 0, 0, 0, 629, 630, 631, 632,
1693 635, 633, 634, 636, 0, 0, 0, 0, 0, 0,
1694 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695 0, 0, 0, 53, 68, 69, 67, 64, 63, 70,
1696 54, 66, 57, 58, 59, 55, 65, 60, 61, 62,
1697 56, 0, 0, 0, 0, 118, 119, 120, 0, 331,
1698 0, 0, 329, 330, 0, 103, 0, 0, 0, 0,
1699 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 0, 600, 0, 0, 0, 0, 252,
1701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702 0, 0, 0, 219, 220, 223, 225, 226, 227, 228,
1703 229, 230, 231, 232, 221, 222, 224, 233, 234, 235,
1704 0, 0, 0, 0, 0, 0, 0, 405, 0, 0,
1705 0, 0, 0, 0, 0, 382, 383, 384, 385, 386,
1706 387, 389, 388, 391, 395, 392, 393, 394, 390, 431,
1707 0, 0, 0, 428, 429, 430, 0, 0, 435, 446,
1708 0, 0, 0, 443, 444, 445, 0, 0, 0, 0,
1709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1713 0, 0, 0, 0, 0, 450, 0, 0, 0, 299,
1714 0, 0, 0, 0, 0, 0, 285, 286, 287, 288,
1715 293, 289, 290, 291, 292, 422, 0, 0, 0, 419,
1716 420, 421, 0, 0, 0, 260, 0, 270, 0, 268,
1717 269, 271, 272, 48, 0, 0, 0, 44, 0, 0,
1718 0, 0, 110, 111, 112, 0, 0, 0, 189, 0,
1719 0, 0, 164, 0, 0, 148, 149, 150, 151, 154,
1720 155, 153, 152, 156, 0, 0, 0, 0, 0, 319,
1721 320, 321, 322, 0, 0, 0, 0, 0, 0, 0,
1722 0, 628, 71, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 52, 0, 0, 365, 0, 360, 361, 362, 121,
1725 0, 0, 117, 0, 0, 0, 328, 0, 0, 343,
1726 0, 0, 336, 337, 338, 339, 0, 0, 0, 97,
1727 0, 0, 0, 0, 27, 0, 0, 0, 0, 0,
1728 0, 0, 0, 599, 236, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 218, 396, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 381, 0,
1732 0, 0, 427, 0, 434, 0, 0, 0, 442, 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, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 449,
1738 294, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 284, 0, 0, 0, 418, 273, 0, 0, 0, 0,
1740 0, 267, 0, 0, 43, 113, 0, 0, 0, 109,
1741 157, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 147, 323, 0, 0, 0, 0, 318, 0, 0, 0,
1743 0, 0, 0, 0, 627, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 76, 77,
1745 0, 75, 80, 81, 0, 79, 0, 0, 51, 363,
1746 0, 0, 0, 359, 0, 116, 0, 0, 327, 340,
1747 0, 0, 0, 0, 335, 106, 105, 104, 622, 621,
1748 615, 625, 27, 27, 27, 27, 27, 27, 27, 29,
1749 28, 626, 616, 617, 620, 619, 618, 623, 624, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 37, 0, 0, 217, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 380, 0, 0, 426, 439, 0, 0, 441, 513,
1754 517, 531, 598, 544, 511, 538, 541, 512, 503, 502,
1755 505, 506, 504, 520, 509, 510, 521, 508, 516, 515,
1756 514, 539, 501, 596, 597, 535, 581, 575, 592, 576,
1757 577, 578, 586, 595, 579, 589, 593, 582, 594, 587,
1758 583, 588, 580, 591, 585, 584, 590, 0, 574, 537,
1759 555, 550, 567, 551, 552, 553, 561, 570, 554, 564,
1760 568, 557, 569, 562, 558, 563, 556, 566, 560, 559,
1761 565, 0, 549, 532, 530, 533, 543, 534, 523, 528,
1762 529, 526, 527, 524, 525, 542, 545, 507, 536, 519,
1763 518, 540, 522, 0, 0, 0, 0, 0, 0, 0,
1764 0, 283, 0, 0, 417, 0, 0, 0, 278, 274,
1765 277, 259, 49, 50, 0, 0, 108, 0, 0, 0,
1766 0, 0, 0, 0, 0, 146, 0, 0, 0, 317,
1767 638, 643, 641, 644, 639, 640, 642, 88, 96, 87,
1768 94, 95, 86, 90, 89, 83, 82, 84, 93, 85,
1769 72, 0, 73, 0, 91, 92, 0, 0, 358, 122,
1770 0, 0, 0, 134, 0, 126, 127, 129, 128, 332,
1771 0, 0, 0, 334, 30, 31, 32, 33, 34, 35,
1772 36, 247, 248, 240, 257, 256, 0, 255, 242, 244,
1773 251, 243, 241, 250, 237, 249, 239, 238, 37, 37,
1774 37, 39, 38, 245, 246, 401, 403, 404, 414, 411,
1775 398, 412, 409, 410, 0, 408, 413, 397, 402, 400,
1776 415, 399, 432, 433, 447, 448, 572, 0, 547, 0,
1777 297, 298, 307, 304, 309, 305, 306, 312, 308, 310,
1778 303, 311, 0, 302, 296, 315, 314, 313, 295, 424,
1779 423, 281, 280, 265, 266, 264, 0, 263, 0, 0,
1780 0, 114, 115, 163, 161, 208, 196, 205, 204, 194,
1781 199, 215, 207, 213, 198, 201, 210, 212, 209, 206,
1782 214, 202, 211, 200, 203, 0, 192, 158, 160, 162,
1783 173, 168, 185, 169, 170, 171, 179, 188, 172, 182,
1784 186, 175, 187, 180, 176, 181, 174, 184, 178, 177,
1785 183, 0, 167, 159, 326, 324, 325, 74, 78, 364,
1786 369, 375, 378, 371, 377, 372, 376, 374, 370, 373,
1787 0, 368, 130, 0, 0, 0, 0, 125, 341, 347,
1788 353, 356, 349, 355, 350, 354, 352, 348, 351, 0,
1789 346, 342, 253, 0, 40, 41, 42, 406, 0, 573,
1790 548, 300, 0, 261, 0, 279, 276, 275, 0, 0,
1791 0, 190, 0, 165, 0, 366, 0, 0, 0, 0,
1792 0, 124, 344, 0, 254, 407, 301, 262, 195, 193,
1793 197, 191, 166, 367, 131, 133, 132, 140, 143, 142,
1794 139, 144, 141, 138, 0, 137, 345, 135, 0, 136
1795 };
1796
1797 /* YYDEFGOTO[NTERM-NUM]. */
1798 static const yytype_int16 yydefgoto[] =
1799 {
1800 -1, 1, 25, 799, 800, 1051, 1052, 26, 220, 221,
1801 222, 223, 27, 262, 263, 264, 265, 760, 761, 764,
1802 765, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1803 275, 276, 277, 278, 279, 280, 28, 74, 75, 76,
1804 77, 78, 29, 61, 491, 492, 493, 494, 30, 284,
1805 285, 286, 287, 288, 1014, 1015, 1016, 1017, 1018, 1185,
1806 1254, 1255, 31, 62, 504, 505, 506, 507, 508, 509,
1807 510, 511, 512, 727, 1161, 1162, 513, 723, 1135, 1136,
1808 32, 51, 332, 333, 334, 335, 336, 337, 338, 339,
1809 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
1810 598, 1036, 1037, 33, 59, 477, 708, 1106, 1107, 478,
1811 479, 480, 1110, 959, 960, 481, 482, 34, 57, 455,
1812 456, 457, 458, 459, 460, 461, 693, 1092, 1093, 462,
1813 463, 464, 35, 63, 518, 519, 520, 521, 522, 36,
1814 291, 292, 293, 37, 69, 571, 572, 573, 574, 575,
1815 781, 1199, 1200, 38, 66, 555, 556, 557, 558, 771,
1816 1180, 1181, 39, 52, 364, 365, 366, 367, 368, 369,
1817 370, 371, 372, 373, 620, 1064, 1065, 374, 375, 376,
1818 377, 378, 40, 58, 468, 469, 470, 471, 41, 53,
1819 382, 383, 384, 385, 42, 111, 112, 113, 43, 55,
1820 392, 393, 394, 395, 44, 164, 165, 166, 167, 168,
1821 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1822 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1823 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1824 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1825 209, 425, 921, 922, 210, 423, 897, 898, 211, 212,
1826 213, 45, 92, 93, 94, 95, 96, 97, 98, 99,
1827 100, 101, 102, 103, 104, 105, 46, 235, 236, 237,
1828 238, 239, 240, 241, 242, 243
1829 };
1830
1831 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1832 STATE-NUM. */
1833 #define YYPACT_NINF -1010
1834 static const yytype_int16 yypact[] =
1835 {
1836 -1010, 612, -1010, -210, -218, -199, -1010, -1010, -1010, -171,
1837 -1010, -160, -1010, -1010, -1010, -153, -1010, -1010, -1010, -147,
1838 -134, -1010, -128, -117, -1010, -1010, -1010, -1010, -1010, -1010,
1839 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1840 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 344,
1841 674, -106, -79, -65, 10, -50, 360, -47, -41, -34,
1842 5, -29, -15, -13, 631, 328, -10, 41, 55, -2,
1843 -189, 45, 47, 59, 7, -1010, -1010, -1010, -1010, -1010,
1844 61, 62, 69, 74, 76, 98, 105, 106, 118, 122,
1845 124, 127, 256, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1846 -1010, -1010, -1010, -1010, -1010, -1010, 640, 527, 32, -1010,
1847 129, 8, -1010, -1010, 29, -1010, 130, 131, 136, 138,
1848 143, 145, 147, 148, 150, 152, 153, 155, 156, 166,
1849 168, 170, 176, 183, 184, 185, 186, 189, 194, 195,
1850 196, 197, 198, -1010, 204, -1010, 205, 213, 214, 217,
1851 219, 225, 229, 230, 233, 237, 238, 241, 243, 257,
1852 258, 260, 263, 264, 17, -1010, -1010, -1010, -1010, -1010,
1853 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1854 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1855 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1856 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1857 -1010, -1010, -1010, -1010, 493, 43, 19, 23, 270, 272,
1858 65, -1010, -1010, -1010, 21, 376, 274, -1010, 277, 278,
1859 280, 281, 290, 291, 292, 146, -1010, -1010, -1010, -1010,
1860 -1010, -1010, -1010, -1010, 99, 300, 301, 303, 305, 307,
1861 308, 309, 310, 312, 313, 315, 316, 320, 323, 324,
1862 325, 327, 117, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1863 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1864 -1010, 111, 331, 334, 20, -1010, -1010, -1010, 86, -1010,
1865 336, 24, -1010, -1010, 54, -1010, 218, 378, 435, 340,
1866 -1010, 330, 457, 193, 458, 459, 459, 459, 462, 467,
1867 471, 373, 374, 362, -1010, 363, 357, 361, 367, -1010,
1868 369, 370, 377, 379, 381, 382, 391, 394, 395, 396,
1869 397, 399, 173, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1870 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1871 392, 401, 405, 408, 410, 411, 412, -1010, 414, 416,
1872 417, 419, 421, 426, 242, -1010, -1010, -1010, -1010, -1010,
1873 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1874 427, 428, 26, -1010, -1010, -1010, 478, 434, -1010, -1010,
1875 432, 443, 52, -1010, -1010, -1010, 464, 459, 459, 495,
1876 465, 466, 567, 554, 475, 459, 481, 570, 581, 459,
1877 582, 484, 485, 487, 459, 587, 590, 459, 591, 592,
1878 593, 596, 499, 480, 503, 498, 504, 459, 459, 520,
1879 522, 523, -158, -43, 524, 526, 611, 459, 528, 530,
1880 459, 459, 534, 535, 531, -1010, 536, 517, 521, -1010,
1881 532, 537, 538, 539, 540, 18, -1010, -1010, -1010, -1010,
1882 -1010, -1010, -1010, -1010, -1010, -1010, 541, 542, 66, -1010,
1883 -1010, -1010, 546, 545, 547, -1010, 548, -1010, 27, -1010,
1884 -1010, -1010, -1010, -1010, 628, 635, 552, -1010, 553, 555,
1885 557, 141, -1010, -1010, -1010, 556, 558, 560, -1010, 561,
1886 562, 563, -1010, 564, 68, -1010, -1010, -1010, -1010, -1010,
1887 -1010, -1010, -1010, -1010, 568, 566, 569, 571, 15, -1010,
1888 -1010, -1010, -1010, 574, 594, 639, 598, 601, 604, 459,
1889 573, -1010, -1010, 671, 606, 677, 655, 707, 693, 695,
1890 700, 702, 703, 704, 720, 708, 67, 84, 709, 713,
1891 613, -1010, 614, 603, -1010, 114, -1010, -1010, -1010, -1010,
1892 632, 616, -1010, 615, 719, 620, -1010, 627, 629, -1010,
1893 634, 16, -1010, -1010, -1010, -1010, 630, 638, 642, -1010,
1894 645, 646, 647, 649, 578, 650, 651, 659, 665, 669,
1895 670, 672, 673, -1010, -1010, 750, 751, 459, 641, 771,
1896 793, 459, 795, 796, 459, 782, 798, 800, 459, 801,
1897 801, 686, -1010, -1010, 791, 33, 792, 710, 797, 799,
1898 689, 802, 804, 810, 805, 806, 807, 699, -1010, 808,
1899 809, 711, -1010, 712, -1010, 811, 814, 714, -1010, 715,
1900 716, 717, 718, 721, 723, 724, 725, 726, 727, 728,
1901 729, 730, 731, 732, 733, 734, 735, 736, 737, 738,
1902 739, 740, 741, 742, 743, 744, 644, 745, 687, 746,
1903 747, 748, 749, 752, 753, 754, 755, 756, 757, 758,
1904 759, 760, 761, 762, 763, 764, 765, 766, 767, -1010,
1905 -1010, 820, 768, 692, 821, 816, 823, 851, 869, 769,
1906 -1010, 871, 872, 772, -1010, -1010, 874, 875, 706, 891,
1907 776, -1010, 777, 778, -1010, -1010, 880, 881, 781, -1010,
1908 -1010, 883, 803, 780, 885, 886, 888, 785, 890, 790,
1909 -1010, -1010, 892, 893, 894, 794, -1010, 812, 813, 815,
1910 817, 818, 819, 822, -1010, 824, 825, 826, 827, 828,
1911 829, 830, 831, 832, 833, 834, 835, 836, -1010, -1010,
1912 -191, -1010, -1010, -1010, -164, -1010, 837, 838, -1010, -1010,
1913 896, 839, 840, -1010, 841, -1010, 116, 843, -1010, -1010,
1914 897, 842, 898, 844, -1010, -1010, -1010, -1010, -1010, -1010,
1915 -1010, -1010, 459, 459, 459, 459, 459, 459, 459, -1010,
1916 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 846,
1917 847, 848, -35, 849, 850, 852, 853, 854, 855, 856,
1918 857, 858, 859, 211, 860, 861, -1010, 862, 863, 864,
1919 865, 866, 867, 868, 2, 870, 873, 876, 877, 878,
1920 879, -1010, 882, 884, -1010, -1010, 887, 889, -1010, -1010,
1921 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1922 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1923 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1924 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1925 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -150, -1010, -1010,
1926 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1927 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1928 -1010, -107, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1929 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1930 -1010, -1010, -1010, 895, 899, 393, 900, 901, 902, 903,
1931 904, -1010, 905, 906, -1010, 907, 908, -36, 919, 909,
1932 -1010, -1010, -1010, -1010, 910, 911, -1010, 912, 914, 429,
1933 915, 916, 917, 722, 918, -1010, 920, 921, 922, -1010,
1934 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1935 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1936 -1010, 67, -1010, 84, -1010, -1010, 923, 286, -1010, -1010,
1937 924, 925, 926, -1010, 82, -1010, -1010, -1010, -1010, -1010,
1938 927, 389, 930, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1939 -1010, -1010, -1010, -1010, -1010, -1010, -69, -1010, -1010, -1010,
1940 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 801, 801,
1941 801, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1942 -1010, -1010, -1010, -1010, -66, -1010, -1010, -1010, -1010, -1010,
1943 -1010, -1010, -1010, -1010, -1010, -1010, -1010, 644, -1010, 687,
1944 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1945 -1010, -1010, -46, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1946 -1010, -1010, -1010, -1010, -1010, -1010, -18, -1010, 932, 891,
1947 931, -1010, -1010, -1010, -1010, -1010, 928, -1010, -1010, 929,
1948 -1010, -1010, -1010, -1010, 933, -1010, -1010, -1010, -1010, -1010,
1949 -1010, -1010, -1010, -1010, -1010, 89, -1010, -1010, -1010, -1010,
1950 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1951 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1952 -1010, 90, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1953 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1954 96, -1010, -1010, 940, -102, 934, 935, -1010, -1010, -1010,
1955 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 119,
1956 -1010, -1010, -1010, -35, -1010, -1010, -1010, -1010, 2, -1010,
1957 -1010, -1010, 393, -1010, -36, -1010, -1010, -1010, 946, 964,
1958 966, -1010, 429, -1010, 722, -1010, 286, 936, 939, 941,
1959 319, -1010, -1010, 389, -1010, -1010, -1010, -1010, -1010, -1010,
1960 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1961 -1010, -1010, -1010, -1010, 120, -1010, -1010, -1010, 319, -1010
1962 };
1963
1964 /* YYPGOTO[NTERM-NUM]. */
1965 static const yytype_int16 yypgoto[] =
1966 {
1967 -1010, -1010, -1010, -132, -303, -1009, -609, -1010, -1010, 943,
1968 -1010, -1010, -1010, -1010, 770, -1010, -1010, -1010, 22, -1010,
1969 25, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1970 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 947, -1010,
1971 -1010, -1010, -1010, -1010, -1010, 533, -1010, -1010, -1010, -1010,
1972 913, -1010, -1010, -1010, -1010, 11, -1010, -1010, -1010, -1010,
1973 -1010, -236, -1010, -1010, -1010, 525, -1010, -1010, -1010, -1010,
1974 -1010, -1010, -1010, -1010, -1010, -198, -1010, -1010, -1010, -195,
1975 -1010, -1010, -1010, 698, -1010, -1010, -1010, -1010, -1010, -1010,
1976 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1977 -1010, -1010, -172, -1010, -1010, -1010, -1010, -1010, -181, -1010,
1978 559, -1010, -1010, -1010, -75, -1010, -1010, -1010, -1010, -1010,
1979 588, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -168, -1010,
1980 -1010, -1010, -1010, -1010, -1010, 577, -1010, -1010, -1010, -1010,
1981 -1010, 937, -1010, -1010, -1010, -1010, 543, -1010, -1010, -1010,
1982 -1010, -1010, -187, -1010, -1010, -1010, 549, -1010, -1010, -1010,
1983 -1010, -129, -1010, -1010, -1010, 784, -1010, -1010, -1010, -1010,
1984 -1010, -1010, -1010, -1010, -1010, -1010, -110, -1010, -1010, -1010,
1985 -1010, -1010, -1010, -1010, -1010, 643, -1010, -1010, -1010, -1010,
1986 -1010, 773, -1010, -1010, -1010, -1010, 992, -1010, -1010, -1010,
1987 -1010, 774, -1010, -1010, -1010, -1010, 942, -1010, -1010, -1010,
1988 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1989 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1990 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1991 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1992 -1010, -1010, -1010, 30, -1010, -1010, -1010, 31, -1010, -1010,
1993 -1010, -1010, -1010, 1021, -1010, -1010, -1010, -1010, -1010, -1010,
1994 -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, 938, -1010,
1995 -1010, -1010, -1010, -1010, -1010, -1010
1996 };
1997
1998 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1999 positive, shift that token. If negative, reduce the rule which
2000 number is the opposite. If YYTABLE_NINF, syntax error. */
2001 #define YYTABLE_NINF -124
2002 static const yytype_int16 yytable[] =
2003 {
2004 824, 825, 585, 586, 587, 823, 217, 49, 70, 109,
2005 1062, 109, 1103, 47, 48, 1034, 514, 567, 115, 446,
2006 472, 282, 488, 116, 117, 289, 50, 379, 472, 118,
2007 389, 71, 1000, 379, 295, 447, 1001, 119, 72, 1204,
2008 1205, 1206, 282, 120, 465, 121, 122, 123, 675, 515,
2009 448, 676, 124, 389, 54, 567, 289, 125, 126, 1002,
2010 127, 128, 129, 1003, 130, 56, 217, 465, 110, 495,
2011 110, 131, 60, 1076, 473, 132, 133, 1077, 64, 474,
2012 449, 475, 473, 1010, 134, 496, 380, 474, 1035, 475,
2013 516, 65, 380, 135, 640, 641, 489, 67, 1228, 218,
2014 497, 136, 648, 137, 73, 138, 652, 139, 68, 140,
2015 141, 657, 552, 568, 660, 552, 1078, 1010, 244, 106,
2016 1079, 290, 142, 219, 670, 671, 390, 143, 144, 145,
2017 498, 146, 147, 148, 682, 450, 149, 685, 686, 517,
2018 476, 245, 488, 451, 452, 1104, 107, 227, 476, 390,
2019 381, 568, 290, 391, 1202, 1105, 381, 1207, 1203, 218,
2020 108, 1208, 150, 677, 453, 499, 678, 466, 151, 152,
2021 153, 154, 155, 246, 315, 114, 391, 1211, 214, 1011,
2022 247, 1212, 228, 219, 215, 500, -123, 490, 316, 317,
2023 466, 216, 318, 1063, 229, 230, 224, 231, 232, 233,
2024 156, 501, 248, 828, 829, 1213, 249, -123, 553, 1214,
2025 225, 553, 226, 1011, 250, 281, 489, 251, 252, 234,
2026 1048, 1049, 1050, 294, 157, 158, 743, 159, 160, 161,
2027 569, 299, 387, 162, 570, 319, 454, 283, 163, 735,
2028 783, 444, 699, 350, 561, 351, 483, 352, 565, 253,
2029 631, 710, 563, 320, 321, 322, 323, 79, 283, 353,
2030 324, 467, 758, 759, 325, 502, 254, 255, 569, 1012,
2031 326, 296, 570, 297, 354, 514, 637, 80, 81, 762,
2032 763, 327, 328, 82, 467, 298, 503, 301, 302, 486,
2033 703, 256, 729, 329, 811, 303, 1013, 355, 815, 356,
2034 304, 818, 305, 1012, 357, 822, 1186, 490, 515, 257,
2035 258, 259, 1221, 1223, 358, 330, 1222, 1224, 823, 1225,
2036 83, 84, 532, 1226, 306, 554, 85, 86, 554, 244,
2037 1013, 307, 308, 87, 88, 89, 260, 261, 772, 359,
2038 576, 550, 1232, 1257, 309, 70, 1233, 1258, 310, 516,
2039 311, 331, 245, 312, 1170, 386, 396, 397, 1247, 90,
2040 91, 115, 398, 360, 399, 718, 116, 117, 71, 400,
2041 530, 401, 118, 402, 403, 72, 404, 495, 405, 406,
2042 119, 407, 408, 361, 246, 1248, 120, 1249, 121, 122,
2043 123, 247, 409, 496, 410, 124, 411, 611, 517, 582,
2044 125, 126, 412, 127, 128, 129, 1082, 130, 497, 413,
2045 414, 415, 416, 248, 131, 417, 1171, 249, 132, 133,
2046 418, 419, 420, 421, 422, 250, 1083, 134, 251, 252,
2047 424, 426, 1250, 1115, 362, 1084, 135, 580, 498, 427,
2048 428, 73, 1172, 429, 136, 430, 137, 1116, 138, 1173,
2049 139, 431, 140, 141, 1117, 432, 433, 1189, 1174, 434,
2050 253, 363, 1085, 435, 436, 142, 627, 437, 1118, 438,
2051 143, 144, 145, 499, 146, 147, 148, 254, 255, 149,
2052 313, 1251, 1252, 439, 440, 1175, 441, 1176, 1177, 442,
2053 443, 1086, 1087, 500, 446, 1119, 484, 1120, 485, 1088,
2054 577, 1178, 256, 523, 524, 150, 525, 526, 1179, 501,
2055 447, 151, 152, 153, 154, 155, 527, 528, 529, 1190,
2056 257, 258, 259, 1121, 1089, 448, 533, 534, 350, 535,
2057 351, 536, 352, 537, 538, 539, 540, 1253, 541, 542,
2058 1090, 543, 544, 156, 353, 1191, 545, 260, 261, 546,
2059 547, 548, 1192, 549, 559, 449, 1122, 578, 1123, 354,
2060 560, 1193, 564, 579, 581, 583, 584, 157, 158, 588,
2061 159, 160, 161, 502, 589, 1229, 162, 1124, 590, 591,
2062 592, 163, 355, 595, 356, 593, 594, 596, 1194, 357,
2063 1195, 1196, 1125, 597, 503, 599, 600, 1126, 1091, 358,
2064 633, 1127, 642, 601, 1197, 602, 1128, 603, 604, 1129,
2065 450, 1198, 2, 3, 1130, 613, 4, 605, 451, 452,
2066 606, 607, 608, 609, 359, 610, 5, 614, 1131, 6,
2067 7, 615, 227, 1132, 616, 8, 617, 618, 619, 453,
2068 621, 315, 622, 623, 1133, 624, 9, 625, 360, 10,
2069 11, 1134, 626, 629, 630, 316, 317, 634, 635, 318,
2070 1024, 1025, 1026, 1027, 1028, 1029, 1030, 228, 361, 636,
2071 639, 643, 644, 12, 645, 79, 646, 650, 13, 229,
2072 230, 647, 231, 232, 233, 584, 14, 649, 651, 653,
2073 654, 655, 876, 656, 658, 80, 81, 659, 661, 662,
2074 663, 82, 319, 664, 234, 665, 666, 15, 16, 667,
2075 669, 454, 792, 793, 794, 795, 796, 797, 798, 362,
2076 320, 321, 322, 323, 668, 17, 672, 324, 673, 674,
2077 679, 325, 680, 681, 683, 900, 684, 326, 83, 84,
2078 687, 688, 18, 691, 85, 86, 363, 692, 327, 328,
2079 712, 87, 88, 89, 689, 19, 20, 713, 694, 690,
2080 329, 739, 748, 695, 696, 697, 698, 701, 702, 705,
2081 1140, 706, 21, 707, 709, 714, 715, 90, 91, 720,
2082 737, 716, 330, 717, 721, 22, 722, 724, 725, 726,
2083 728, 731, 732, 745, 23, 733, 744, 734, 24, 747,
2084 738, 877, 878, 879, 740, 880, 881, 741, 882, 883,
2085 742, 884, 746, 885, 749, 750, 886, 751, 331, 887,
2086 888, 889, 752, 890, 753, 754, 755, 756, 891, 770,
2087 757, 766, 892, 893, 894, 767, 768, 769, 774, 775,
2088 776, 777, 895, 778, 901, 902, 903, 896, 904, 905,
2089 779, 906, 907, 785, 908, 780, 909, 809, 810, 910,
2090 782, 786, 911, 912, 913, 787, 914, 812, 788, 789,
2091 790, 915, 791, 801, 802, 916, 917, 918, 813, 1141,
2092 1142, 1143, 803, 1144, 1145, 919, 1146, 1147, 804, 1148,
2093 920, 1149, 805, 806, 1150, 807, 808, 1151, 1152, 1153,
2094 814, 1154, 816, 817, 819, 820, 1155, 821, 823, 826,
2095 1156, 1157, 1158, 827, 830, 834, 831, 837, 945, 832,
2096 1159, 833, 841, 947, 835, 1160, 836, 838, 839, 840,
2097 842, 843, 957, 846, 844, 845, 847, 848, 849, 850,
2098 851, 852, 943, 946, 853, 948, 854, 855, 856, 857,
2099 858, 859, 860, 861, 862, 863, 864, 865, 866, 867,
2100 868, 869, 870, 871, 872, 873, 874, 875, 899, 923,
2101 924, 925, 926, 949, 944, 927, 928, 929, 930, 931,
2102 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
2103 942, 950, 951, 952, 953, 954, 955, 956, 958, 961,
2104 962, 963, 964, 965, 966, 967, 969, 970, 971, 968,
2105 972, 973, 974, 975, 976, 977, 978, 979, 1006, 1020,
2106 1022, 300, 1259, 1167, 719, 1187, 1242, 1241, 1168, 730,
2107 612, 1234, 551, 1237, 1216, 980, 981, 711, 982, 1215,
2108 983, 984, 985, 700, 1236, 986, 1256, 987, 988, 989,
2109 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
2110 1004, 1005, 1227, 1008, 1009, 1007, 1019, 1023, 1021, 1031,
2111 1032, 1033, 1038, 1039, 1238, 1040, 1041, 1042, 1043, 1044,
2112 1045, 1046, 1047, 1053, 1054, 1055, 1056, 1057, 1058, 1059,
2113 1060, 1061, 1239, 1066, 1240, 736, 1067, 1243, 1235, 1068,
2114 1069, 1070, 1071, 388, 773, 1072, 445, 1073, 1209, 1210,
2115 1074, 704, 1075, 314, 784, 0, 0, 0, 1080, 0,
2116 0, 0, 1081, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
2117 1101, 1102, 1108, 1111, 1112, 1113, 1109, 1114, 1137, 1138,
2118 1139, 1163, 0, 1164, 1165, 1166, 1169, 1182, 628, 0,
2119 1188, 1183, 1184, 1201, 1217, 632, 1218, 1219, 1231, 1244,
2120 1230, 1220, 1245, 487, 1246, 0, 638, 0, 0, 0,
2121 0, 0, 0, 531, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 562, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0, 566
2127 };
2128
2129 #define yypact_value_is_default(Yystate) \
2130 (!!((Yystate) == (-1010)))
2131
2132 #define yytable_value_is_error(Yytable_value) \
2133 YYID (0)
2134
2135 static const yytype_int16 yycheck[] =
2136 {
2137 609, 610, 305, 306, 307, 107, 1, 225, 1, 1,
2138 8, 1, 48, 223, 224, 50, 1, 1, 1, 1,
2139 1, 1, 1, 6, 7, 1, 225, 1, 1, 12,
2140 1, 24, 223, 1, 223, 17, 227, 20, 31, 1048,
2141 1049, 1050, 1, 26, 1, 28, 29, 30, 206, 34,
2142 32, 209, 35, 1, 225, 1, 1, 40, 41, 223,
2143 43, 44, 45, 227, 47, 225, 1, 1, 60, 1,
2144 60, 54, 225, 223, 55, 58, 59, 227, 225, 60,
2145 62, 62, 55, 1, 67, 17, 60, 60, 123, 62,
2146 75, 225, 60, 76, 397, 398, 75, 225, 200, 94,
2147 32, 84, 405, 86, 97, 88, 409, 90, 225, 92,
2148 93, 414, 1, 97, 417, 1, 223, 1, 1, 225,
2149 227, 97, 105, 118, 427, 428, 97, 110, 111, 112,
2150 62, 114, 115, 116, 437, 117, 119, 440, 441, 124,
2151 121, 24, 1, 125, 126, 181, 225, 1, 121, 97,
2152 124, 97, 97, 124, 223, 191, 124, 223, 227, 94,
2153 225, 227, 145, 206, 146, 97, 209, 124, 151, 152,
2154 153, 154, 155, 56, 1, 225, 124, 223, 225, 97,
2155 63, 227, 36, 118, 225, 117, 166, 166, 15, 16,
2156 124, 225, 19, 191, 48, 49, 225, 51, 52, 53,
2157 183, 133, 85, 170, 171, 223, 89, 166, 97, 227,
2158 225, 97, 225, 97, 97, 225, 75, 100, 101, 73,
2159 9, 10, 11, 225, 207, 208, 529, 210, 211, 212,
2160 214, 224, 224, 216, 218, 62, 218, 217, 221, 224,
2161 224, 224, 224, 1, 224, 3, 223, 5, 224, 132,
2162 224, 224, 166, 80, 81, 82, 83, 1, 217, 17,
2163 87, 218, 195, 196, 91, 197, 149, 150, 214, 187,
2164 97, 226, 218, 226, 32, 1, 224, 21, 22, 195,
2165 196, 108, 109, 27, 218, 226, 218, 226, 226, 224,
2166 224, 174, 224, 120, 597, 226, 214, 55, 601, 57,
2167 226, 604, 226, 187, 62, 608, 224, 166, 34, 192,
2168 193, 194, 223, 223, 72, 142, 227, 227, 107, 223,
2169 64, 65, 223, 227, 226, 214, 70, 71, 214, 1,
2170 214, 226, 226, 77, 78, 79, 219, 220, 224, 97,
2171 122, 224, 223, 223, 226, 1, 227, 227, 226, 75,
2172 226, 178, 24, 226, 68, 226, 226, 226, 39, 103,
2173 104, 1, 226, 121, 226, 224, 6, 7, 24, 226,
2174 224, 226, 12, 226, 226, 31, 226, 1, 226, 226,
2175 20, 226, 226, 141, 56, 66, 26, 68, 28, 29,
2176 30, 63, 226, 17, 226, 35, 226, 224, 124, 206,
2177 40, 41, 226, 43, 44, 45, 13, 47, 32, 226,
2178 226, 226, 226, 85, 54, 226, 130, 89, 58, 59,
2179 226, 226, 226, 226, 226, 97, 33, 67, 100, 101,
2180 226, 226, 113, 4, 192, 42, 76, 107, 62, 226,
2181 226, 97, 156, 226, 84, 226, 86, 18, 88, 163,
2182 90, 226, 92, 93, 25, 226, 226, 68, 172, 226,
2183 132, 219, 69, 226, 226, 105, 224, 226, 39, 226,
2184 110, 111, 112, 97, 114, 115, 116, 149, 150, 119,
2185 224, 162, 163, 226, 226, 199, 226, 201, 202, 226,
2186 226, 98, 99, 117, 1, 66, 226, 68, 226, 106,
2187 122, 215, 174, 226, 226, 145, 226, 226, 222, 133,
2188 17, 151, 152, 153, 154, 155, 226, 226, 226, 130,
2189 192, 193, 194, 94, 131, 32, 226, 226, 1, 226,
2190 3, 226, 5, 226, 226, 226, 226, 218, 226, 226,
2191 147, 226, 226, 183, 17, 156, 226, 219, 220, 226,
2192 226, 226, 163, 226, 223, 62, 127, 122, 129, 32,
2193 226, 172, 226, 223, 107, 107, 107, 207, 208, 107,
2194 210, 211, 212, 197, 107, 1184, 216, 148, 107, 206,
2195 206, 221, 55, 226, 57, 223, 223, 226, 199, 62,
2196 201, 202, 163, 226, 218, 226, 226, 168, 205, 72,
2197 122, 172, 107, 226, 215, 226, 177, 226, 226, 180,
2198 117, 222, 0, 1, 185, 223, 4, 226, 125, 126,
2199 226, 226, 226, 226, 97, 226, 14, 226, 199, 17,
2200 18, 226, 1, 204, 226, 23, 226, 226, 226, 146,
2201 226, 1, 226, 226, 215, 226, 34, 226, 121, 37,
2202 38, 222, 226, 226, 226, 15, 16, 223, 226, 19,
2203 792, 793, 794, 795, 796, 797, 798, 36, 141, 226,
2204 206, 206, 206, 61, 107, 1, 122, 107, 66, 48,
2205 49, 206, 51, 52, 53, 107, 74, 206, 107, 107,
2206 206, 206, 48, 206, 107, 21, 22, 107, 107, 107,
2207 107, 27, 62, 107, 73, 206, 226, 95, 96, 206,
2208 206, 218, 134, 135, 136, 137, 138, 139, 140, 192,
2209 80, 81, 82, 83, 226, 113, 206, 87, 206, 206,
2210 206, 91, 206, 122, 206, 48, 206, 97, 64, 65,
2211 206, 206, 130, 226, 70, 71, 219, 226, 108, 109,
2212 122, 77, 78, 79, 223, 143, 144, 122, 226, 223,
2213 120, 122, 107, 226, 226, 226, 226, 226, 226, 223,
2214 48, 226, 160, 226, 226, 223, 223, 103, 104, 223,
2215 206, 226, 142, 226, 226, 173, 226, 226, 226, 226,
2216 226, 223, 226, 122, 182, 226, 223, 226, 186, 122,
2217 206, 157, 158, 159, 206, 161, 162, 206, 164, 165,
2218 206, 167, 206, 169, 107, 122, 172, 122, 178, 175,
2219 176, 177, 122, 179, 122, 122, 122, 107, 184, 226,
2220 122, 122, 188, 189, 190, 122, 223, 223, 206, 223,
2221 225, 122, 198, 223, 157, 158, 159, 203, 161, 162,
2222 223, 164, 165, 223, 167, 226, 169, 107, 107, 172,
2223 226, 223, 175, 176, 177, 223, 179, 226, 223, 223,
2224 223, 184, 223, 223, 223, 188, 189, 190, 107, 157,
2225 158, 159, 223, 161, 162, 198, 164, 165, 223, 167,
2226 203, 169, 223, 223, 172, 223, 223, 175, 176, 177,
2227 107, 179, 107, 107, 122, 107, 184, 107, 107, 223,
2228 188, 189, 190, 122, 122, 226, 206, 107, 226, 122,
2229 198, 122, 223, 107, 122, 203, 122, 122, 122, 122,
2230 122, 122, 226, 122, 223, 223, 122, 223, 223, 223,
2231 223, 223, 122, 122, 223, 122, 223, 223, 223, 223,
2232 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2233 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2234 223, 223, 223, 122, 206, 223, 223, 223, 223, 223,
2235 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2236 223, 122, 223, 122, 122, 223, 122, 122, 107, 223,
2237 223, 223, 122, 122, 223, 122, 226, 122, 122, 206,
2238 122, 226, 122, 223, 122, 122, 122, 223, 122, 122,
2239 122, 74, 1258, 1001, 491, 1014, 1224, 1222, 1003, 504,
2240 332, 1203, 262, 1214, 1109, 223, 223, 478, 223, 107,
2241 223, 223, 223, 455, 1212, 223, 1233, 223, 223, 223,
2242 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2243 223, 223, 122, 223, 223, 226, 223, 223, 226, 223,
2244 223, 223, 223, 223, 128, 223, 223, 223, 223, 223,
2245 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2246 223, 223, 128, 223, 128, 518, 223, 1226, 1208, 223,
2247 223, 223, 223, 111, 555, 223, 164, 223, 1077, 1079,
2248 223, 468, 223, 92, 571, -1, -1, -1, 223, -1,
2249 -1, -1, 223, 223, 223, 223, 223, 223, 223, 223,
2250 223, 223, 213, 223, 223, 223, 227, 223, 223, 223,
2251 223, 223, -1, 223, 223, 223, 223, 223, 364, -1,
2252 223, 226, 226, 223, 223, 382, 228, 228, 223, 223,
2253 226, 228, 223, 220, 223, -1, 392, -1, -1, -1,
2254 -1, -1, -1, 235, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2259 -1, -1, -1, -1, -1, -1, -1, -1, 291
2260 };
2261
2262 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2263 symbol of state STATE-NUM. */
2264 static const yytype_uint16 yystos[] =
2265 {
2266 0, 230, 0, 1, 4, 14, 17, 18, 23, 34,
2267 37, 38, 61, 66, 74, 95, 96, 113, 130, 143,
2268 144, 160, 173, 182, 186, 231, 236, 241, 265, 271,
2269 277, 291, 309, 332, 346, 361, 368, 372, 382, 391,
2270 411, 417, 423, 427, 433, 490, 505, 223, 224, 225,
2271 225, 310, 392, 418, 225, 428, 225, 347, 412, 333,
2272 225, 272, 292, 362, 225, 225, 383, 225, 225, 373,
2273 1, 24, 31, 97, 266, 267, 268, 269, 270, 1,
2274 21, 22, 27, 64, 65, 70, 71, 77, 78, 79,
2275 103, 104, 491, 492, 493, 494, 495, 496, 497, 498,
2276 499, 500, 501, 502, 503, 504, 225, 225, 225, 1,
2277 60, 424, 425, 426, 225, 1, 6, 7, 12, 20,
2278 26, 28, 29, 30, 35, 40, 41, 43, 44, 45,
2279 47, 54, 58, 59, 67, 76, 84, 86, 88, 90,
2280 92, 93, 105, 110, 111, 112, 114, 115, 116, 119,
2281 145, 151, 152, 153, 154, 155, 183, 207, 208, 210,
2282 211, 212, 216, 221, 434, 435, 436, 437, 438, 439,
2283 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
2284 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
2285 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
2286 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
2287 483, 487, 488, 489, 225, 225, 225, 1, 94, 118,
2288 237, 238, 239, 240, 225, 225, 225, 1, 36, 48,
2289 49, 51, 52, 53, 73, 506, 507, 508, 509, 510,
2290 511, 512, 513, 514, 1, 24, 56, 63, 85, 89,
2291 97, 100, 101, 132, 149, 150, 174, 192, 193, 194,
2292 219, 220, 242, 243, 244, 245, 250, 251, 252, 253,
2293 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2294 264, 225, 1, 217, 278, 279, 280, 281, 282, 1,
2295 97, 369, 370, 371, 225, 223, 226, 226, 226, 224,
2296 267, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2297 226, 226, 226, 224, 492, 1, 15, 16, 19, 62,
2298 80, 81, 82, 83, 87, 91, 97, 108, 109, 120,
2299 142, 178, 311, 312, 313, 314, 315, 316, 317, 318,
2300 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
2301 1, 3, 5, 17, 32, 55, 57, 62, 72, 97,
2302 121, 141, 192, 219, 393, 394, 395, 396, 397, 398,
2303 399, 400, 401, 402, 406, 407, 408, 409, 410, 1,
2304 60, 124, 419, 420, 421, 422, 226, 224, 425, 1,
2305 97, 124, 429, 430, 431, 432, 226, 226, 226, 226,
2306 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2307 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2308 226, 226, 226, 484, 226, 480, 226, 226, 226, 226,
2309 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2310 226, 226, 226, 226, 224, 435, 1, 17, 32, 62,
2311 117, 125, 126, 146, 218, 348, 349, 350, 351, 352,
2312 353, 354, 358, 359, 360, 1, 124, 218, 413, 414,
2313 415, 416, 1, 55, 60, 62, 121, 334, 338, 339,
2314 340, 344, 345, 223, 226, 226, 224, 238, 1, 75,
2315 166, 273, 274, 275, 276, 1, 17, 32, 62, 97,
2316 117, 133, 197, 218, 293, 294, 295, 296, 297, 298,
2317 299, 300, 301, 305, 1, 34, 75, 124, 363, 364,
2318 365, 366, 367, 226, 226, 226, 226, 226, 226, 226,
2319 224, 507, 223, 226, 226, 226, 226, 226, 226, 226,
2320 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2321 224, 243, 1, 97, 214, 384, 385, 386, 387, 223,
2322 226, 224, 279, 166, 226, 224, 370, 1, 97, 214,
2323 218, 374, 375, 376, 377, 378, 122, 122, 122, 223,
2324 107, 107, 206, 107, 107, 233, 233, 233, 107, 107,
2325 107, 206, 206, 223, 223, 226, 226, 226, 329, 226,
2326 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2327 226, 224, 312, 223, 226, 226, 226, 226, 226, 226,
2328 403, 226, 226, 226, 226, 226, 226, 224, 394, 226,
2329 226, 224, 420, 122, 223, 226, 226, 224, 430, 206,
2330 233, 233, 107, 206, 206, 107, 122, 206, 233, 206,
2331 107, 107, 233, 107, 206, 206, 206, 233, 107, 107,
2332 233, 107, 107, 107, 107, 206, 226, 206, 226, 206,
2333 233, 233, 206, 206, 206, 206, 209, 206, 209, 206,
2334 206, 122, 233, 206, 206, 233, 233, 206, 206, 223,
2335 223, 226, 226, 355, 226, 226, 226, 226, 226, 224,
2336 349, 226, 226, 224, 414, 223, 226, 226, 335, 226,
2337 224, 339, 122, 122, 223, 223, 226, 226, 224, 274,
2338 223, 226, 226, 306, 226, 226, 226, 302, 226, 224,
2339 294, 223, 226, 226, 226, 224, 364, 206, 206, 122,
2340 206, 206, 206, 233, 223, 122, 206, 122, 107, 107,
2341 122, 122, 122, 122, 122, 122, 107, 122, 195, 196,
2342 246, 247, 195, 196, 248, 249, 122, 122, 223, 223,
2343 226, 388, 224, 385, 206, 223, 225, 122, 223, 223,
2344 226, 379, 226, 224, 375, 223, 223, 223, 223, 223,
2345 223, 223, 134, 135, 136, 137, 138, 139, 140, 232,
2346 233, 223, 223, 223, 223, 223, 223, 223, 223, 107,
2347 107, 233, 226, 107, 107, 233, 107, 107, 233, 122,
2348 107, 107, 233, 107, 235, 235, 223, 122, 170, 171,
2349 122, 206, 122, 122, 226, 122, 122, 107, 122, 122,
2350 122, 223, 122, 122, 223, 223, 122, 122, 223, 223,
2351 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2352 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2353 223, 223, 223, 223, 223, 223, 48, 157, 158, 159,
2354 161, 162, 164, 165, 167, 169, 172, 175, 176, 177,
2355 179, 184, 188, 189, 190, 198, 203, 485, 486, 223,
2356 48, 157, 158, 159, 161, 162, 164, 165, 167, 169,
2357 172, 175, 176, 177, 179, 184, 188, 189, 190, 198,
2358 203, 481, 482, 223, 223, 223, 223, 223, 223, 223,
2359 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2360 223, 223, 223, 122, 206, 226, 122, 107, 122, 122,
2361 122, 223, 122, 122, 223, 122, 122, 226, 107, 342,
2362 343, 223, 223, 223, 122, 122, 223, 122, 206, 226,
2363 122, 122, 122, 226, 122, 223, 122, 122, 122, 223,
2364 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2365 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2366 223, 227, 223, 227, 223, 223, 122, 226, 223, 223,
2367 1, 97, 187, 214, 283, 284, 285, 286, 287, 223,
2368 122, 226, 122, 223, 232, 232, 232, 232, 232, 232,
2369 232, 223, 223, 223, 50, 123, 330, 331, 223, 223,
2370 223, 223, 223, 223, 223, 223, 223, 223, 9, 10,
2371 11, 234, 235, 223, 223, 223, 223, 223, 223, 223,
2372 223, 223, 8, 191, 404, 405, 223, 223, 223, 223,
2373 223, 223, 223, 223, 223, 223, 223, 227, 223, 227,
2374 223, 223, 13, 33, 42, 69, 98, 99, 106, 131,
2375 147, 205, 356, 357, 223, 223, 223, 223, 223, 223,
2376 223, 223, 223, 48, 181, 191, 336, 337, 213, 227,
2377 341, 223, 223, 223, 223, 4, 18, 25, 39, 66,
2378 68, 94, 127, 129, 148, 163, 168, 172, 177, 180,
2379 185, 199, 204, 215, 222, 307, 308, 223, 223, 223,
2380 48, 157, 158, 159, 161, 162, 164, 165, 167, 169,
2381 172, 175, 176, 177, 179, 184, 188, 189, 190, 198,
2382 203, 303, 304, 223, 223, 223, 223, 247, 249, 223,
2383 68, 130, 156, 163, 172, 199, 201, 202, 215, 222,
2384 389, 390, 223, 226, 226, 288, 224, 284, 223, 68,
2385 130, 156, 163, 172, 199, 201, 202, 215, 222, 380,
2386 381, 223, 223, 227, 234, 234, 234, 223, 227, 486,
2387 482, 223, 227, 223, 227, 107, 343, 223, 228, 228,
2388 228, 223, 227, 223, 227, 223, 227, 122, 200, 235,
2389 226, 223, 223, 227, 331, 405, 357, 337, 128, 128,
2390 128, 308, 304, 390, 223, 223, 223, 39, 66, 68,
2391 113, 162, 163, 218, 289, 290, 381, 223, 227, 290
2392 };
2393
2394 #define yyerrok (yyerrstatus = 0)
2395 #define yyclearin (yychar = YYEMPTY)
2396 #define YYEMPTY (-2)
2397 #define YYEOF 0
2398
2399 #define YYACCEPT goto yyacceptlab
2400 #define YYABORT goto yyabortlab
2401 #define YYERROR goto yyerrorlab
2402
2403
2404 /* Like YYERROR except do call yyerror. This remains here temporarily
2405 to ease the transition to the new meaning of YYERROR, for GCC.
2406 Once GCC version 2 has supplanted version 1, this can go. However,
2407 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2408 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2409 discussed. */
2410
2411 #define YYFAIL goto yyerrlab
2412 #if defined YYFAIL
2413 /* This is here to suppress warnings from the GCC cpp's
2414 -Wunused-macros. Normally we don't worry about that warning, but
2415 some users do, and we want to make it easy for users to remove
2416 YYFAIL uses, which will produce warnings from Bison 2.5. */
2417 #endif
2418
2419 #define YYRECOVERING() (!!yyerrstatus)
2420
2421 #define YYBACKUP(Token, Value) \
2422 do \
2423 if (yychar == YYEMPTY) \
2424 { \
2425 yychar = (Token); \
2426 yylval = (Value); \
2427 YYPOPSTACK (yylen); \
2428 yystate = *yyssp; \
2429 goto yybackup; \
2430 } \
2431 else \
2432 { \
2433 yyerror (YY_("syntax error: cannot back up")); \
2434 YYERROR; \
2435 } \
2436 while (YYID (0))
2437
2438 /* Error token number */
2439 #define YYTERROR 1
2440 #define YYERRCODE 256
2441
2442
2443 /* This macro is provided for backward compatibility. */
2444 #ifndef YY_LOCATION_PRINT
2445 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2446 #endif
2447
2448
2449 /* YYLEX -- calling `yylex' with the right arguments. */
2450 #ifdef YYLEX_PARAM
2451 # define YYLEX yylex (YYLEX_PARAM)
2452 #else
2453 # define YYLEX yylex ()
2454 #endif
2455
2456 /* Enable debugging if requested. */
2457 #if YYDEBUG
2458
2459 # ifndef YYFPRINTF
2460 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2461 # define YYFPRINTF fprintf
2462 # endif
2463
2464 # define YYDPRINTF(Args) \
2465 do { \
2466 if (yydebug) \
2467 YYFPRINTF Args; \
2468 } while (YYID (0))
2469
2470 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2471 do { \
2472 if (yydebug) \
2473 { \
2474 YYFPRINTF (stderr, "%s ", Title); \
2475 yy_symbol_print (stderr, \
2476 Type, Value); \
2477 YYFPRINTF (stderr, "\n"); \
2478 } \
2479 } while (YYID (0))
2480
2481
2482 /*--------------------------------.
2483 | Print this symbol on YYOUTPUT. |
2484 `--------------------------------*/
2485
2486 /*ARGSUSED*/
2487 #if (defined __STDC__ || defined __C99__FUNC__ \
2488 || defined __cplusplus || defined _MSC_VER)
2489 static void
2490 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2491 #else
2492 static void
2493 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2494 FILE *yyoutput;
2495 int yytype;
2496 YYSTYPE const * const yyvaluep;
2497 #endif
2498 {
2499 FILE *yyo = yyoutput;
2500 YYUSE (yyo);
2501 if (!yyvaluep)
2502 return;
2503 # ifdef YYPRINT
2504 if (yytype < YYNTOKENS)
2505 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2506 # else
2507 YYUSE (yyoutput);
2508 # endif
2509 YYUSE (yytype);
2510 }
2511
2512
2513 /*--------------------------------.
2514 | Print this symbol on YYOUTPUT. |
2515 `--------------------------------*/
2516
2517 #if (defined __STDC__ || defined __C99__FUNC__ \
2518 || defined __cplusplus || defined _MSC_VER)
2519 static void
2520 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2521 #else
2522 static void
2523 yy_symbol_print (yyoutput, yytype, yyvaluep)
2524 FILE *yyoutput;
2525 int yytype;
2526 YYSTYPE const * const yyvaluep;
2527 #endif
2528 {
2529 if (yytype < YYNTOKENS)
2530 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2531 else
2532 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2533
2534 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2535 YYFPRINTF (yyoutput, ")");
2536 }
2537
2538 /*------------------------------------------------------------------.
2539 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2540 | TOP (included). |
2541 `------------------------------------------------------------------*/
2542
2543 #if (defined __STDC__ || defined __C99__FUNC__ \
2544 || defined __cplusplus || defined _MSC_VER)
2545 static void
2546 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2547 #else
2548 static void
2549 yy_stack_print (yybottom, yytop)
2550 yytype_int16 *yybottom;
2551 yytype_int16 *yytop;
2552 #endif
2553 {
2554 YYFPRINTF (stderr, "Stack now");
2555 for (; yybottom <= yytop; yybottom++)
2556 {
2557 int yybot = *yybottom;
2558 YYFPRINTF (stderr, " %d", yybot);
2559 }
2560 YYFPRINTF (stderr, "\n");
2561 }
2562
2563 # define YY_STACK_PRINT(Bottom, Top) \
2564 do { \
2565 if (yydebug) \
2566 yy_stack_print ((Bottom), (Top)); \
2567 } while (YYID (0))
2568
2569
2570 /*------------------------------------------------.
2571 | Report that the YYRULE is going to be reduced. |
2572 `------------------------------------------------*/
2573
2574 #if (defined __STDC__ || defined __C99__FUNC__ \
2575 || defined __cplusplus || defined _MSC_VER)
2576 static void
2577 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2578 #else
2579 static void
2580 yy_reduce_print (yyvsp, yyrule)
2581 YYSTYPE *yyvsp;
2582 int yyrule;
2583 #endif
2584 {
2585 int yynrhs = yyr2[yyrule];
2586 int yyi;
2587 unsigned long int yylno = yyrline[yyrule];
2588 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2589 yyrule - 1, yylno);
2590 /* The symbols being reduced. */
2591 for (yyi = 0; yyi < yynrhs; yyi++)
2592 {
2593 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2594 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2595 &(yyvsp[(yyi + 1) - (yynrhs)])
2596 );
2597 YYFPRINTF (stderr, "\n");
2598 }
2599 }
2600
2601 # define YY_REDUCE_PRINT(Rule) \
2602 do { \
2603 if (yydebug) \
2604 yy_reduce_print (yyvsp, Rule); \
2605 } while (YYID (0))
2606
2607 /* Nonzero means print parse trace. It is left uninitialized so that
2608 multiple parsers can coexist. */
2609 int yydebug;
2610 #else /* !YYDEBUG */
2611 # define YYDPRINTF(Args)
2612 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2613 # define YY_STACK_PRINT(Bottom, Top)
2614 # define YY_REDUCE_PRINT(Rule)
2615 #endif /* !YYDEBUG */
2616
2617
2618 /* YYINITDEPTH -- initial size of the parser's stacks. */
2619 #ifndef YYINITDEPTH
2620 # define YYINITDEPTH 200
2621 #endif
2622
2623 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2624 if the built-in stack extension method is used).
2625
2626 Do not make this value too large; the results are undefined if
2627 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2628 evaluated with infinite-precision integer arithmetic. */
2629
2630 #ifndef YYMAXDEPTH
2631 # define YYMAXDEPTH 10000
2632 #endif
2633
2634
2635 #if YYERROR_VERBOSE
2636
2637 # ifndef yystrlen
2638 # if defined __GLIBC__ && defined _STRING_H
2639 # define yystrlen strlen
2640 # else
2641 /* Return the length of YYSTR. */
2642 #if (defined __STDC__ || defined __C99__FUNC__ \
2643 || defined __cplusplus || defined _MSC_VER)
2644 static YYSIZE_T
2645 yystrlen (const char *yystr)
2646 #else
2647 static YYSIZE_T
2648 yystrlen (yystr)
2649 const char *yystr;
2650 #endif
2651 {
2652 YYSIZE_T yylen;
2653 for (yylen = 0; yystr[yylen]; yylen++)
2654 continue;
2655 return yylen;
2656 }
2657 # endif
2658 # endif
2659
2660 # ifndef yystpcpy
2661 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2662 # define yystpcpy stpcpy
2663 # else
2664 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2665 YYDEST. */
2666 #if (defined __STDC__ || defined __C99__FUNC__ \
2667 || defined __cplusplus || defined _MSC_VER)
2668 static char *
2669 yystpcpy (char *yydest, const char *yysrc)
2670 #else
2671 static char *
2672 yystpcpy (yydest, yysrc)
2673 char *yydest;
2674 const char *yysrc;
2675 #endif
2676 {
2677 char *yyd = yydest;
2678 const char *yys = yysrc;
2679
2680 while ((*yyd++ = *yys++) != '\0')
2681 continue;
2682
2683 return yyd - 1;
2684 }
2685 # endif
2686 # endif
2687
2688 # ifndef yytnamerr
2689 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2690 quotes and backslashes, so that it's suitable for yyerror. The
2691 heuristic is that double-quoting is unnecessary unless the string
2692 contains an apostrophe, a comma, or backslash (other than
2693 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2694 null, do not copy; instead, return the length of what the result
2695 would have been. */
2696 static YYSIZE_T
2697 yytnamerr (char *yyres, const char *yystr)
2698 {
2699 if (*yystr == '"')
2700 {
2701 YYSIZE_T yyn = 0;
2702 char const *yyp = yystr;
2703
2704 for (;;)
2705 switch (*++yyp)
2706 {
2707 case '\'':
2708 case ',':
2709 goto do_not_strip_quotes;
2710
2711 case '\\':
2712 if (*++yyp != '\\')
2713 goto do_not_strip_quotes;
2714 /* Fall through. */
2715 default:
2716 if (yyres)
2717 yyres[yyn] = *yyp;
2718 yyn++;
2719 break;
2720
2721 case '"':
2722 if (yyres)
2723 yyres[yyn] = '\0';
2724 return yyn;
2725 }
2726 do_not_strip_quotes: ;
2727 }
2728
2729 if (! yyres)
2730 return yystrlen (yystr);
2731
2732 return yystpcpy (yyres, yystr) - yyres;
2733 }
2734 # endif
2735
2736 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2737 about the unexpected token YYTOKEN for the state stack whose top is
2738 YYSSP.
2739
2740 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2741 not large enough to hold the message. In that case, also set
2742 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2743 required number of bytes is too large to store. */
2744 static int
2745 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2746 yytype_int16 *yyssp, int yytoken)
2747 {
2748 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2749 YYSIZE_T yysize = yysize0;
2750 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2751 /* Internationalized format string. */
2752 const char *yyformat = YY_NULL;
2753 /* Arguments of yyformat. */
2754 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2755 /* Number of reported tokens (one for the "unexpected", one per
2756 "expected"). */
2757 int yycount = 0;
2758
2759 /* There are many possibilities here to consider:
2760 - Assume YYFAIL is not used. It's too flawed to consider. See
2761 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2762 for details. YYERROR is fine as it does not invoke this
2763 function.
2764 - If this state is a consistent state with a default action, then
2765 the only way this function was invoked is if the default action
2766 is an error action. In that case, don't check for expected
2767 tokens because there are none.
2768 - The only way there can be no lookahead present (in yychar) is if
2769 this state is a consistent state with a default action. Thus,
2770 detecting the absence of a lookahead is sufficient to determine
2771 that there is no unexpected or expected token to report. In that
2772 case, just report a simple "syntax error".
2773 - Don't assume there isn't a lookahead just because this state is a
2774 consistent state with a default action. There might have been a
2775 previous inconsistent state, consistent state with a non-default
2776 action, or user semantic action that manipulated yychar.
2777 - Of course, the expected token list depends on states to have
2778 correct lookahead information, and it depends on the parser not
2779 to perform extra reductions after fetching a lookahead from the
2780 scanner and before detecting a syntax error. Thus, state merging
2781 (from LALR or IELR) and default reductions corrupt the expected
2782 token list. However, the list is correct for canonical LR with
2783 one exception: it will still contain any token that will not be
2784 accepted due to an error action in a later state.
2785 */
2786 if (yytoken != YYEMPTY)
2787 {
2788 int yyn = yypact[*yyssp];
2789 yyarg[yycount++] = yytname[yytoken];
2790 if (!yypact_value_is_default (yyn))
2791 {
2792 /* Start YYX at -YYN if negative to avoid negative indexes in
2793 YYCHECK. In other words, skip the first -YYN actions for
2794 this state because they are default actions. */
2795 int yyxbegin = yyn < 0 ? -yyn : 0;
2796 /* Stay within bounds of both yycheck and yytname. */
2797 int yychecklim = YYLAST - yyn + 1;
2798 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2799 int yyx;
2800
2801 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2802 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2803 && !yytable_value_is_error (yytable[yyx + yyn]))
2804 {
2805 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2806 {
2807 yycount = 1;
2808 yysize = yysize0;
2809 break;
2810 }
2811 yyarg[yycount++] = yytname[yyx];
2812 {
2813 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2814 if (! (yysize <= yysize1
2815 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2816 return 2;
2817 yysize = yysize1;
2818 }
2819 }
2820 }
2821 }
2822
2823 switch (yycount)
2824 {
2825 # define YYCASE_(N, S) \
2826 case N: \
2827 yyformat = S; \
2828 break
2829 YYCASE_(0, YY_("syntax error"));
2830 YYCASE_(1, YY_("syntax error, unexpected %s"));
2831 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2832 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2833 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2834 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2835 # undef YYCASE_
2836 }
2837
2838 {
2839 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2840 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2841 return 2;
2842 yysize = yysize1;
2843 }
2844
2845 if (*yymsg_alloc < yysize)
2846 {
2847 *yymsg_alloc = 2 * yysize;
2848 if (! (yysize <= *yymsg_alloc
2849 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2850 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2851 return 1;
2852 }
2853
2854 /* Avoid sprintf, as that infringes on the user's name space.
2855 Don't have undefined behavior even if the translation
2856 produced a string with the wrong number of "%s"s. */
2857 {
2858 char *yyp = *yymsg;
2859 int yyi = 0;
2860 while ((*yyp = *yyformat) != '\0')
2861 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2862 {
2863 yyp += yytnamerr (yyp, yyarg[yyi++]);
2864 yyformat += 2;
2865 }
2866 else
2867 {
2868 yyp++;
2869 yyformat++;
2870 }
2871 }
2872 return 0;
2873 }
2874 #endif /* YYERROR_VERBOSE */
2875
2876 /*-----------------------------------------------.
2877 | Release the memory associated to this symbol. |
2878 `-----------------------------------------------*/
2879
2880 /*ARGSUSED*/
2881 #if (defined __STDC__ || defined __C99__FUNC__ \
2882 || defined __cplusplus || defined _MSC_VER)
2883 static void
2884 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2885 #else
2886 static void
2887 yydestruct (yymsg, yytype, yyvaluep)
2888 const char *yymsg;
2889 int yytype;
2890 YYSTYPE *yyvaluep;
2891 #endif
2892 {
2893 YYUSE (yyvaluep);
2894
2895 if (!yymsg)
2896 yymsg = "Deleting";
2897 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2898
2899 YYUSE (yytype);
2900 }
2901
2902
2903
2904
2905 /* The lookahead symbol. */
2906 int yychar;
2907
2908
2909 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2910 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2911 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2912 #endif
2913 #ifndef YY_INITIAL_VALUE
2914 # define YY_INITIAL_VALUE(Value) /* Nothing. */
2915 #endif
2916
2917 /* The semantic value of the lookahead symbol. */
2918 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2919
2920 /* Number of syntax errors so far. */
2921 int yynerrs;
2922
2923
2924 /*----------.
2925 | yyparse. |
2926 `----------*/
2927
2928 #ifdef YYPARSE_PARAM
2929 #if (defined __STDC__ || defined __C99__FUNC__ \
2930 || defined __cplusplus || defined _MSC_VER)
2931 int
2932 yyparse (void *YYPARSE_PARAM)
2933 #else
2934 int
2935 yyparse (YYPARSE_PARAM)
2936 void *YYPARSE_PARAM;
2937 #endif
2938 #else /* ! YYPARSE_PARAM */
2939 #if (defined __STDC__ || defined __C99__FUNC__ \
2940 || defined __cplusplus || defined _MSC_VER)
2941 int
2942 yyparse (void)
2943 #else
2944 int
2945 yyparse ()
2946
2947 #endif
2948 #endif
2949 {
2950 int yystate;
2951 /* Number of tokens to shift before error messages enabled. */
2952 int yyerrstatus;
2953
2954 /* The stacks and their tools:
2955 `yyss': related to states.
2956 `yyvs': related to semantic values.
2957
2958 Refer to the stacks through separate pointers, to allow yyoverflow
2959 to reallocate them elsewhere. */
2960
2961 /* The state stack. */
2962 yytype_int16 yyssa[YYINITDEPTH];
2963 yytype_int16 *yyss;
2964 yytype_int16 *yyssp;
2965
2966 /* The semantic value stack. */
2967 YYSTYPE yyvsa[YYINITDEPTH];
2968 YYSTYPE *yyvs;
2969 YYSTYPE *yyvsp;
2970
2971 YYSIZE_T yystacksize;
2972
2973 int yyn;
2974 int yyresult;
2975 /* Lookahead token as an internal (translated) token number. */
2976 int yytoken = 0;
2977 /* The variables used to return semantic value and location from the
2978 action routines. */
2979 YYSTYPE yyval;
2980
2981 #if YYERROR_VERBOSE
2982 /* Buffer for error messages, and its allocated size. */
2983 char yymsgbuf[128];
2984 char *yymsg = yymsgbuf;
2985 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2986 #endif
2987
2988 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2989
2990 /* The number of symbols on the RHS of the reduced rule.
2991 Keep to zero when no symbol should be popped. */
2992 int yylen = 0;
2993
2994 yyssp = yyss = yyssa;
2995 yyvsp = yyvs = yyvsa;
2996 yystacksize = YYINITDEPTH;
2997
2998 YYDPRINTF ((stderr, "Starting parse\n"));
2999
3000 yystate = 0;
3001 yyerrstatus = 0;
3002 yynerrs = 0;
3003 yychar = YYEMPTY; /* Cause a token to be read. */
3004 goto yysetstate;
3005
3006 /*------------------------------------------------------------.
3007 | yynewstate -- Push a new state, which is found in yystate. |
3008 `------------------------------------------------------------*/
3009 yynewstate:
3010 /* In all cases, when you get here, the value and location stacks
3011 have just been pushed. So pushing a state here evens the stacks. */
3012 yyssp++;
3013
3014 yysetstate:
3015 *yyssp = yystate;
3016
3017 if (yyss + yystacksize - 1 <= yyssp)
3018 {
3019 /* Get the current used size of the three stacks, in elements. */
3020 YYSIZE_T yysize = yyssp - yyss + 1;
3021
3022 #ifdef yyoverflow
3023 {
3024 /* Give user a chance to reallocate the stack. Use copies of
3025 these so that the &'s don't force the real ones into
3026 memory. */
3027 YYSTYPE *yyvs1 = yyvs;
3028 yytype_int16 *yyss1 = yyss;
3029
3030 /* Each stack pointer address is followed by the size of the
3031 data in use in that stack, in bytes. This used to be a
3032 conditional around just the two extra args, but that might
3033 be undefined if yyoverflow is a macro. */
3034 yyoverflow (YY_("memory exhausted"),
3035 &yyss1, yysize * sizeof (*yyssp),
3036 &yyvs1, yysize * sizeof (*yyvsp),
3037 &yystacksize);
3038
3039 yyss = yyss1;
3040 yyvs = yyvs1;
3041 }
3042 #else /* no yyoverflow */
3043 # ifndef YYSTACK_RELOCATE
3044 goto yyexhaustedlab;
3045 # else
3046 /* Extend the stack our own way. */
3047 if (YYMAXDEPTH <= yystacksize)
3048 goto yyexhaustedlab;
3049 yystacksize *= 2;
3050 if (YYMAXDEPTH < yystacksize)
3051 yystacksize = YYMAXDEPTH;
3052
3053 {
3054 yytype_int16 *yyss1 = yyss;
3055 union yyalloc *yyptr =
3056 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3057 if (! yyptr)
3058 goto yyexhaustedlab;
3059 YYSTACK_RELOCATE (yyss_alloc, yyss);
3060 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3061 # undef YYSTACK_RELOCATE
3062 if (yyss1 != yyssa)
3063 YYSTACK_FREE (yyss1);
3064 }
3065 # endif
3066 #endif /* no yyoverflow */
3067
3068 yyssp = yyss + yysize - 1;
3069 yyvsp = yyvs + yysize - 1;
3070
3071 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3072 (unsigned long int) yystacksize));
3073
3074 if (yyss + yystacksize - 1 <= yyssp)
3075 YYABORT;
3076 }
3077
3078 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3079
3080 if (yystate == YYFINAL)
3081 YYACCEPT;
3082
3083 goto yybackup;
3084
3085 /*-----------.
3086 | yybackup. |
3087 `-----------*/
3088 yybackup:
3089
3090 /* Do appropriate processing given the current state. Read a
3091 lookahead token if we need one and don't already have one. */
3092
3093 /* First try to decide what to do without reference to lookahead token. */
3094 yyn = yypact[yystate];
3095 if (yypact_value_is_default (yyn))
3096 goto yydefault;
3097
3098 /* Not known => get a lookahead token if don't already have one. */
3099
3100 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3101 if (yychar == YYEMPTY)
3102 {
3103 YYDPRINTF ((stderr, "Reading a token: "));
3104 yychar = YYLEX;
3105 }
3106
3107 if (yychar <= YYEOF)
3108 {
3109 yychar = yytoken = YYEOF;
3110 YYDPRINTF ((stderr, "Now at end of input.\n"));
3111 }
3112 else
3113 {
3114 yytoken = YYTRANSLATE (yychar);
3115 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3116 }
3117
3118 /* If the proper action on seeing token YYTOKEN is to reduce or to
3119 detect an error, take that action. */
3120 yyn += yytoken;
3121 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3122 goto yydefault;
3123 yyn = yytable[yyn];
3124 if (yyn <= 0)
3125 {
3126 if (yytable_value_is_error (yyn))
3127 goto yyerrlab;
3128 yyn = -yyn;
3129 goto yyreduce;
3130 }
3131
3132 /* Count tokens shifted since error; after three, turn off error
3133 status. */
3134 if (yyerrstatus)
3135 yyerrstatus--;
3136
3137 /* Shift the lookahead token. */
3138 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3139
3140 /* Discard the shifted token. */
3141 yychar = YYEMPTY;
3142
3143 yystate = yyn;
3144 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3145 *++yyvsp = yylval;
3146 YY_IGNORE_MAYBE_UNINITIALIZED_END
3147
3148 goto yynewstate;
3149
3150
3151 /*-----------------------------------------------------------.
3152 | yydefault -- do the default action for the current state. |
3153 `-----------------------------------------------------------*/
3154 yydefault:
3155 yyn = yydefact[yystate];
3156 if (yyn == 0)
3157 goto yyerrlab;
3158 goto yyreduce;
3159
3160
3161 /*-----------------------------.
3162 | yyreduce -- Do a reduction. |
3163 `-----------------------------*/
3164 yyreduce:
3165 /* yyn is the number of a rule to reduce with. */
3166 yylen = yyr2[yyn];
3167
3168 /* If YYLEN is nonzero, implement the default value of the action:
3169 `$$ = $1'.
3170
3171 Otherwise, the following line sets YYVAL to garbage.
3172 This behavior is undocumented and Bison
3173 users should not rely upon it. Assigning to YYVAL
3174 unconditionally makes the parser a bit smaller, and it avoids a
3175 GCC warning that YYVAL may be used uninitialized. */
3176 yyval = yyvsp[1-yylen];
3177
3178
3179 YY_REDUCE_PRINT (yyn);
3180 switch (yyn)
3181 {
3182 case 27:
3183 /* Line 1787 of yacc.c */
3184 #line 395 "conf_parser.y"
3185 { (yyval.number) = 0; }
3186 break;
3187
3188 case 29:
3189 /* Line 1787 of yacc.c */
3190 #line 397 "conf_parser.y"
3191 {
3192 (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3193 }
3194 break;
3195
3196 case 30:
3197 /* Line 1787 of yacc.c */
3198 #line 401 "conf_parser.y"
3199 {
3200 (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3201 }
3202 break;
3203
3204 case 31:
3205 /* Line 1787 of yacc.c */
3206 #line 405 "conf_parser.y"
3207 {
3208 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3209 }
3210 break;
3211
3212 case 32:
3213 /* Line 1787 of yacc.c */
3214 #line 409 "conf_parser.y"
3215 {
3216 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3217 }
3218 break;
3219
3220 case 33:
3221 /* Line 1787 of yacc.c */
3222 #line 413 "conf_parser.y"
3223 {
3224 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3225 }
3226 break;
3227
3228 case 34:
3229 /* Line 1787 of yacc.c */
3230 #line 417 "conf_parser.y"
3231 {
3232 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3233 }
3234 break;
3235
3236 case 35:
3237 /* Line 1787 of yacc.c */
3238 #line 421 "conf_parser.y"
3239 {
3240 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3241 }
3242 break;
3243
3244 case 36:
3245 /* Line 1787 of yacc.c */
3246 #line 425 "conf_parser.y"
3247 {
3248 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3249 }
3250 break;
3251
3252 case 37:
3253 /* Line 1787 of yacc.c */
3254 #line 430 "conf_parser.y"
3255 { (yyval.number) = 0; }
3256 break;
3257
3258 case 39:
3259 /* Line 1787 of yacc.c */
3260 #line 431 "conf_parser.y"
3261 { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3262 break;
3263
3264 case 40:
3265 /* Line 1787 of yacc.c */
3266 #line 432 "conf_parser.y"
3267 { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3268 break;
3269
3270 case 41:
3271 /* Line 1787 of yacc.c */
3272 #line 433 "conf_parser.y"
3273 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3274 break;
3275
3276 case 42:
3277 /* Line 1787 of yacc.c */
3278 #line 434 "conf_parser.y"
3279 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3280 break;
3281
3282 case 49:
3283 /* Line 1787 of yacc.c */
3284 #line 448 "conf_parser.y"
3285 {
3286 if (conf_parser_ctx.pass == 2)
3287 add_conf_module(libio_basename(yylval.string));
3288 }
3289 break;
3290
3291 case 50:
3292 /* Line 1787 of yacc.c */
3293 #line 454 "conf_parser.y"
3294 {
3295 if (conf_parser_ctx.pass == 2)
3296 mod_add_path(yylval.string);
3297 }
3298 break;
3299
3300 case 76:
3301 /* Line 1787 of yacc.c */
3302 #line 480 "conf_parser.y"
3303 {
3304 #ifdef HAVE_LIBCRYPTO
3305 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3306 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3307 #endif
3308 }
3309 break;
3310
3311 case 77:
3312 /* Line 1787 of yacc.c */
3313 #line 486 "conf_parser.y"
3314 {
3315 #ifdef HAVE_LIBCRYPTO
3316 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3317 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3318 #endif
3319 }
3320 break;
3321
3322 case 80:
3323 /* Line 1787 of yacc.c */
3324 #line 495 "conf_parser.y"
3325 {
3326 #ifdef HAVE_LIBCRYPTO
3327 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3328 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3329 #endif
3330 }
3331 break;
3332
3333 case 81:
3334 /* Line 1787 of yacc.c */
3335 #line 501 "conf_parser.y"
3336 {
3337 #ifdef HAVE_LIBCRYPTO
3338 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3339 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3340 #endif
3341 }
3342 break;
3343
3344 case 82:
3345 /* Line 1787 of yacc.c */
3346 #line 509 "conf_parser.y"
3347 {
3348 #ifdef HAVE_LIBCRYPTO
3349 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3350 {
3351 if (!ServerInfo.rsa_private_key_file)
3352 {
3353 conf_error_report("No rsa_private_key_file specified, SSL disabled");
3354 break;
3355 }
3356
3357 if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3358 SSL_FILETYPE_PEM) <= 0 ||
3359 SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3360 SSL_FILETYPE_PEM) <= 0)
3361 {
3362 report_crypto_errors();
3363 conf_error_report("Could not open/read certificate file");
3364 break;
3365 }
3366
3367 if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3368 SSL_FILETYPE_PEM) <= 0 ||
3369 SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3370 SSL_FILETYPE_PEM) <= 0)
3371 {
3372 report_crypto_errors();
3373 conf_error_report("Could not read RSA private key");
3374 break;
3375 }
3376
3377 if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3378 !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3379 {
3380 report_crypto_errors();
3381 conf_error_report("Could not read RSA private key");
3382 break;
3383 }
3384 }
3385 #endif
3386 }
3387 break;
3388
3389 case 83:
3390 /* Line 1787 of yacc.c */
3391 #line 551 "conf_parser.y"
3392 {
3393 #ifdef HAVE_LIBCRYPTO
3394 BIO *file = NULL;
3395
3396 if (conf_parser_ctx.pass != 1)
3397 break;
3398
3399 if (ServerInfo.rsa_private_key)
3400 {
3401 RSA_free(ServerInfo.rsa_private_key);
3402 ServerInfo.rsa_private_key = NULL;
3403 }
3404
3405 if (ServerInfo.rsa_private_key_file)
3406 {
3407 MyFree(ServerInfo.rsa_private_key_file);
3408 ServerInfo.rsa_private_key_file = NULL;
3409 }
3410
3411 ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3412
3413 if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3414 {
3415 conf_error_report("File open failed, ignoring");
3416 break;
3417 }
3418
3419 ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3420
3421 BIO_set_close(file, BIO_CLOSE);
3422 BIO_free(file);
3423
3424 if (ServerInfo.rsa_private_key == NULL)
3425 {
3426 conf_error_report("Couldn't extract key, ignoring");
3427 break;
3428 }
3429
3430 if (!RSA_check_key(ServerInfo.rsa_private_key))
3431 {
3432 RSA_free(ServerInfo.rsa_private_key);
3433 ServerInfo.rsa_private_key = NULL;
3434
3435 conf_error_report("Invalid key, ignoring");
3436 break;
3437 }
3438
3439 /* require 2048 bit (256 byte) key */
3440 if (RSA_size(ServerInfo.rsa_private_key) != 256)
3441 {
3442 RSA_free(ServerInfo.rsa_private_key);
3443 ServerInfo.rsa_private_key = NULL;
3444
3445 conf_error_report("Not a 2048 bit key, ignoring");
3446 }
3447 #endif
3448 }
3449 break;
3450
3451 case 84:
3452 /* Line 1787 of yacc.c */
3453 #line 610 "conf_parser.y"
3454 {
3455 /* TBD - XXX: error reporting */
3456 #ifdef HAVE_LIBCRYPTO
3457 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3458 {
3459 BIO *file = BIO_new_file(yylval.string, "r");
3460
3461 if (file)
3462 {
3463 DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3464
3465 BIO_free(file);
3466
3467 if (dh)
3468 {
3469 if (DH_size(dh) < 128)
3470 conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3471 else
3472 SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3473
3474 DH_free(dh);
3475 }
3476 }
3477 }
3478 #endif
3479 }
3480 break;
3481
3482 case 85:
3483 /* Line 1787 of yacc.c */
3484 #line 638 "conf_parser.y"
3485 {
3486 #ifdef HAVE_LIBCRYPTO
3487 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3488 SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3489 #endif
3490 }
3491 break;
3492
3493 case 86:
3494 /* Line 1787 of yacc.c */
3495 #line 646 "conf_parser.y"
3496 {
3497 /* this isn't rehashable */
3498 if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3499 {
3500 if (valid_servname(yylval.string))
3501 ServerInfo.name = xstrdup(yylval.string);
3502 else
3503 {
3504 conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3505 exit(0);
3506 }
3507 }
3508 }
3509 break;
3510
3511 case 87:
3512 /* Line 1787 of yacc.c */
3513 #line 661 "conf_parser.y"
3514 {
3515 /* this isn't rehashable */
3516 if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3517 {
3518 if (valid_sid(yylval.string))
3519 ServerInfo.sid = xstrdup(yylval.string);
3520 else
3521 {
3522 conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3523 exit(0);
3524 }
3525 }
3526 }
3527 break;
3528
3529 case 88:
3530 /* Line 1787 of yacc.c */
3531 #line 676 "conf_parser.y"
3532 {
3533 if (conf_parser_ctx.pass == 2)
3534 {
3535 MyFree(ServerInfo.description);
3536 ServerInfo.description = xstrdup(yylval.string);
3537 }
3538 }
3539 break;
3540
3541 case 89:
3542 /* Line 1787 of yacc.c */
3543 #line 685 "conf_parser.y"
3544 {
3545 if (conf_parser_ctx.pass == 2)
3546 {
3547 char *p;
3548
3549 if ((p = strchr(yylval.string, ' ')) != NULL)
3550 p = '\0';
3551
3552 MyFree(ServerInfo.network_name);
3553 ServerInfo.network_name = xstrdup(yylval.string);
3554 }
3555 }
3556 break;
3557
3558 case 90:
3559 /* Line 1787 of yacc.c */
3560 #line 699 "conf_parser.y"
3561 {
3562 if (conf_parser_ctx.pass != 2)
3563 break;
3564
3565 MyFree(ServerInfo.network_desc);
3566 ServerInfo.network_desc = xstrdup(yylval.string);
3567 }
3568 break;
3569
3570 case 91:
3571 /* Line 1787 of yacc.c */
3572 #line 708 "conf_parser.y"
3573 {
3574 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3575 {
3576 struct addrinfo hints, *res;
3577
3578 memset(&hints, 0, sizeof(hints));
3579
3580 hints.ai_family = AF_UNSPEC;
3581 hints.ai_socktype = SOCK_STREAM;
3582 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3583
3584 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3585 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3586 else
3587 {
3588 assert(res != NULL);
3589
3590 memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3591 ServerInfo.ip.ss.ss_family = res->ai_family;
3592 ServerInfo.ip.ss_len = res->ai_addrlen;
3593 freeaddrinfo(res);
3594
3595 ServerInfo.specific_ipv4_vhost = 1;
3596 }
3597 }
3598 }
3599 break;
3600
3601 case 92:
3602 /* Line 1787 of yacc.c */
3603 #line 736 "conf_parser.y"
3604 {
3605 #ifdef IPV6
3606 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3607 {
3608 struct addrinfo hints, *res;
3609
3610 memset(&hints, 0, sizeof(hints));
3611
3612 hints.ai_family = AF_UNSPEC;
3613 hints.ai_socktype = SOCK_STREAM;
3614 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3615
3616 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3617 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3618 else
3619 {
3620 assert(res != NULL);
3621
3622 memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3623 ServerInfo.ip6.ss.ss_family = res->ai_family;
3624 ServerInfo.ip6.ss_len = res->ai_addrlen;
3625 freeaddrinfo(res);
3626
3627 ServerInfo.specific_ipv6_vhost = 1;
3628 }
3629 }
3630 #endif
3631 }
3632 break;
3633
3634 case 93:
3635 /* Line 1787 of yacc.c */
3636 #line 766 "conf_parser.y"
3637 {
3638 if (conf_parser_ctx.pass != 2)
3639 break;
3640
3641 if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3642 {
3643 char buf[IRCD_BUFSIZE];
3644
3645 snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3646 conf_error_report(buf);
3647 ServerInfo.max_clients = MAXCLIENTS_MIN;
3648 }
3649 else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3650 {
3651 char buf[IRCD_BUFSIZE];
3652
3653 snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3654 conf_error_report(buf);
3655 ServerInfo.max_clients = MAXCLIENTS_MAX;
3656 }
3657 else
3658 ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3659 }
3660 break;
3661
3662 case 94:
3663 /* Line 1787 of yacc.c */
3664 #line 791 "conf_parser.y"
3665 {
3666 if (conf_parser_ctx.pass != 2)
3667 break;
3668
3669 if ((yyvsp[(3) - (4)].number) < 9)
3670 {
3671 conf_error_report("max_nick_length too low, setting to 9");
3672 ServerInfo.max_nick_length = 9;
3673 }
3674 else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3675 {
3676 char buf[IRCD_BUFSIZE];
3677
3678 snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3679 conf_error_report(buf);
3680 ServerInfo.max_nick_length = NICKLEN;
3681 }
3682 else
3683 ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3684 }
3685 break;
3686
3687 case 95:
3688 /* Line 1787 of yacc.c */
3689 #line 813 "conf_parser.y"
3690 {
3691 if (conf_parser_ctx.pass != 2)
3692 break;
3693
3694 if ((yyvsp[(3) - (4)].number) < 80)
3695 {
3696 conf_error_report("max_topic_length too low, setting to 80");
3697 ServerInfo.max_topic_length = 80;
3698 }
3699 else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3700 {
3701 char buf[IRCD_BUFSIZE];
3702
3703 snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3704 conf_error_report(buf);
3705 ServerInfo.max_topic_length = TOPICLEN;
3706 }
3707 else
3708 ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3709 }
3710 break;
3711
3712 case 96:
3713 /* Line 1787 of yacc.c */
3714 #line 835 "conf_parser.y"
3715 {
3716 if (conf_parser_ctx.pass == 2)
3717 ServerInfo.hub = yylval.number;
3718 }
3719 break;
3720
3721 case 104:
3722 /* Line 1787 of yacc.c */
3723 #line 850 "conf_parser.y"
3724 {
3725 if (conf_parser_ctx.pass != 2)
3726 break;
3727
3728 MyFree(AdminInfo.name);
3729 AdminInfo.name = xstrdup(yylval.string);
3730 }
3731 break;
3732
3733 case 105:
3734 /* Line 1787 of yacc.c */
3735 #line 859 "conf_parser.y"
3736 {
3737 if (conf_parser_ctx.pass != 2)
3738 break;
3739
3740 MyFree(AdminInfo.email);
3741 AdminInfo.email = xstrdup(yylval.string);
3742 }
3743 break;
3744
3745 case 106:
3746 /* Line 1787 of yacc.c */
3747 #line 868 "conf_parser.y"
3748 {
3749 if (conf_parser_ctx.pass != 2)
3750 break;
3751
3752 MyFree(AdminInfo.description);
3753 AdminInfo.description = xstrdup(yylval.string);
3754 }
3755 break;
3756
3757 case 107:
3758 /* Line 1787 of yacc.c */
3759 #line 880 "conf_parser.y"
3760 {
3761 if (conf_parser_ctx.pass == 2)
3762 reset_block_state();
3763 }
3764 break;
3765
3766 case 108:
3767 /* Line 1787 of yacc.c */
3768 #line 884 "conf_parser.y"
3769 {
3770 dlink_node *ptr = NULL;
3771
3772 if (conf_parser_ctx.pass != 2)
3773 break;
3774
3775 if (!block_state.file.buf[0])
3776 break;
3777
3778 DLINK_FOREACH(ptr, block_state.mask.list.head)
3779 motd_add(ptr->data, block_state.file.buf);
3780 }
3781 break;
3782
3783 case 114:
3784 /* Line 1787 of yacc.c */
3785 #line 901 "conf_parser.y"
3786 {
3787 if (conf_parser_ctx.pass == 2)
3788 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3789 }
3790 break;
3791
3792 case 115:
3793 /* Line 1787 of yacc.c */
3794 #line 907 "conf_parser.y"
3795 {
3796 if (conf_parser_ctx.pass == 2)
3797 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3798 }
3799 break;
3800
3801 case 122:
3802 /* Line 1787 of yacc.c */
3803 #line 922 "conf_parser.y"
3804 {
3805 if (conf_parser_ctx.pass == 2)
3806 ConfigLoggingEntry.use_logging = yylval.number;
3807 }
3808 break;
3809
3810 case 123:
3811 /* Line 1787 of yacc.c */
3812 #line 928 "conf_parser.y"
3813 {
3814 if (conf_parser_ctx.pass == 2)
3815 reset_block_state();
3816 }
3817 break;
3818
3819 case 124:
3820 /* Line 1787 of yacc.c */
3821 #line 932 "conf_parser.y"
3822 {
3823 if (conf_parser_ctx.pass != 2)
3824 break;
3825
3826 if (block_state.type.value && block_state.file.buf[0])
3827 log_set_file(block_state.type.value, block_state.size.value,
3828 block_state.file.buf);
3829 }
3830 break;
3831
3832 case 131:
3833 /* Line 1787 of yacc.c */
3834 #line 948 "conf_parser.y"
3835 {
3836 if (conf_parser_ctx.pass != 2)
3837 break;
3838
3839 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3840 }
3841 break;
3842
3843 case 132:
3844 /* Line 1787 of yacc.c */
3845 #line 956 "conf_parser.y"
3846 {
3847 block_state.size.value = (yyvsp[(3) - (4)].number);
3848 }
3849 break;
3850
3851 case 133:
3852 /* Line 1787 of yacc.c */
3853 #line 959 "conf_parser.y"
3854 {
3855 block_state.size.value = 0;
3856 }
3857 break;
3858
3859 case 134:
3860 /* Line 1787 of yacc.c */
3861 #line 964 "conf_parser.y"
3862 {
3863 if (conf_parser_ctx.pass == 2)
3864 block_state.type.value = 0;
3865 }
3866 break;
3867
3868 case 138:
3869 /* Line 1787 of yacc.c */
3870 #line 971 "conf_parser.y"
3871 {
3872 if (conf_parser_ctx.pass == 2)
3873 block_state.type.value = LOG_TYPE_USER;
3874 }
3875 break;
3876
3877 case 139:
3878 /* Line 1787 of yacc.c */
3879 #line 975 "conf_parser.y"
3880 {
3881 if (conf_parser_ctx.pass == 2)
3882 block_state.type.value = LOG_TYPE_OPER;
3883 }
3884 break;
3885
3886 case 140:
3887 /* Line 1787 of yacc.c */
3888 #line 979 "conf_parser.y"
3889 {
3890 if (conf_parser_ctx.pass == 2)
3891 block_state.type.value = LOG_TYPE_GLINE;
3892 }
3893 break;
3894
3895 case 141:
3896 /* Line 1787 of yacc.c */
3897 #line 983 "conf_parser.y"
3898 {
3899 if (conf_parser_ctx.pass == 2)
3900 block_state.type.value = LOG_TYPE_DLINE;
3901 }
3902 break;
3903
3904 case 142:
3905 /* Line 1787 of yacc.c */
3906 #line 987 "conf_parser.y"
3907 {
3908 if (conf_parser_ctx.pass == 2)
3909 block_state.type.value = LOG_TYPE_KLINE;
3910 }
3911 break;
3912
3913 case 143:
3914 /* Line 1787 of yacc.c */
3915 #line 991 "conf_parser.y"
3916 {
3917 if (conf_parser_ctx.pass == 2)
3918 block_state.type.value = LOG_TYPE_KILL;
3919 }
3920 break;
3921
3922 case 144:
3923 /* Line 1787 of yacc.c */
3924 #line 995 "conf_parser.y"
3925 {
3926 if (conf_parser_ctx.pass == 2)
3927 block_state.type.value = LOG_TYPE_DEBUG;
3928 }
3929 break;
3930
3931 case 145:
3932 /* Line 1787 of yacc.c */
3933 #line 1005 "conf_parser.y"
3934 {
3935 if (conf_parser_ctx.pass != 2)
3936 break;
3937
3938 reset_block_state();
3939 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3940 }
3941 break;
3942
3943 case 146:
3944 /* Line 1787 of yacc.c */
3945 #line 1012 "conf_parser.y"
3946 {
3947 dlink_node *ptr = NULL;
3948
3949 if (conf_parser_ctx.pass != 2)
3950 break;
3951
3952 if (!block_state.name.buf[0])
3953 break;
3954 #ifdef HAVE_LIBCRYPTO
3955 if (!block_state.file.buf[0] &&
3956 !block_state.rpass.buf[0])
3957 break;
3958 #else
3959 if (!block_state.rpass.buf[0])
3960 break;
3961 #endif
3962
3963 DLINK_FOREACH(ptr, block_state.mask.list.head)
3964 {
3965 struct MaskItem *conf = NULL;
3966 struct split_nuh_item nuh;
3967
3968 nuh.nuhmask = ptr->data;
3969 nuh.nickptr = NULL;
3970 nuh.userptr = block_state.user.buf;
3971 nuh.hostptr = block_state.host.buf;
3972 nuh.nicksize = 0;
3973 nuh.usersize = sizeof(block_state.user.buf);
3974 nuh.hostsize = sizeof(block_state.host.buf);
3975 split_nuh(&nuh);
3976
3977 conf = conf_make(CONF_OPER);
3978 conf->name = xstrdup(block_state.name.buf);
3979 conf->user = xstrdup(block_state.user.buf);
3980 conf->host = xstrdup(block_state.host.buf);
3981
3982 if (block_state.rpass.buf[0])
3983 conf->passwd = xstrdup(block_state.rpass.buf);
3984
3985 conf->flags = block_state.flags.value;
3986 conf->modes = block_state.modes.value;
3987 conf->port = block_state.port.value;
3988 conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3989
3990 conf_add_class_to_conf(conf, block_state.class.buf);
3991
3992 #ifdef HAVE_LIBCRYPTO
3993 if (block_state.file.buf[0])
3994 {
3995 BIO *file = NULL;
3996 RSA *pkey = NULL;
3997
3998 if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3999 {
4000 conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4001 break;
4002 }
4003
4004 if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4005 conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4006
4007 conf->rsa_public_key = pkey;
4008 BIO_set_close(file, BIO_CLOSE);
4009 BIO_free(file);
4010 }
4011 #endif /* HAVE_LIBCRYPTO */
4012 }
4013 }
4014 break;
4015
4016 case 158:
4017 /* Line 1787 of yacc.c */
4018 #line 1087 "conf_parser.y"
4019 {
4020 if (conf_parser_ctx.pass == 2)
4021 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4022 }
4023 break;
4024
4025 case 159:
4026 /* Line 1787 of yacc.c */
4027 #line 1093 "conf_parser.y"
4028 {
4029 if (conf_parser_ctx.pass == 2)
4030 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4031 }
4032 break;
4033
4034 case 160:
4035 /* Line 1787 of yacc.c */
4036 #line 1099 "conf_parser.y"
4037 {
4038 if (conf_parser_ctx.pass == 2)
4039 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4040 }
4041 break;
4042
4043 case 161:
4044 /* Line 1787 of yacc.c */
4045 #line 1105 "conf_parser.y"
4046 {
4047 if (conf_parser_ctx.pass != 2)
4048 break;
4049
4050 if (yylval.number)
4051 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4052 else
4053 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4054 }
4055 break;
4056
4057 case 162:
4058 /* Line 1787 of yacc.c */
4059 #line 1116 "conf_parser.y"
4060 {
4061 if (conf_parser_ctx.pass == 2)
4062 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4063 }
4064 break;
4065
4066 case 163:
4067 /* Line 1787 of yacc.c */
4068 #line 1122 "conf_parser.y"
4069 {
4070 if (conf_parser_ctx.pass == 2)
4071 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4072 }
4073 break;
4074
4075 case 164:
4076 /* Line 1787 of yacc.c */
4077 #line 1128 "conf_parser.y"
4078 {
4079 if (conf_parser_ctx.pass == 2)
4080 block_state.modes.value = 0;
4081 }
4082 break;
4083
4084 case 168:
4085 /* Line 1787 of yacc.c */
4086 #line 1135 "conf_parser.y"
4087 {
4088 if (conf_parser_ctx.pass == 2)
4089 block_state.modes.value |= UMODE_BOTS;
4090 }
4091 break;
4092
4093 case 169:
4094 /* Line 1787 of yacc.c */
4095 #line 1139 "conf_parser.y"
4096 {
4097 if (conf_parser_ctx.pass == 2)
4098 block_state.modes.value |= UMODE_CCONN;
4099 }
4100 break;
4101
4102 case 170:
4103 /* Line 1787 of yacc.c */
4104 #line 1143 "conf_parser.y"
4105 {
4106 if (conf_parser_ctx.pass == 2)
4107 block_state.modes.value |= UMODE_DEAF;
4108 }
4109 break;
4110
4111 case 171:
4112 /* Line 1787 of yacc.c */
4113 #line 1147 "conf_parser.y"
4114 {
4115 if (conf_parser_ctx.pass == 2)
4116 block_state.modes.value |= UMODE_DEBUG;
4117 }
4118 break;
4119
4120 case 172:
4121 /* Line 1787 of yacc.c */
4122 #line 1151 "conf_parser.y"
4123 {
4124 if (conf_parser_ctx.pass == 2)
4125 block_state.modes.value |= UMODE_FULL;
4126 }
4127 break;
4128
4129 case 173:
4130 /* Line 1787 of yacc.c */
4131 #line 1155 "conf_parser.y"
4132 {
4133 if (conf_parser_ctx.pass == 2)
4134 block_state.modes.value |= UMODE_HIDDEN;
4135 }
4136 break;
4137
4138 case 174:
4139 /* Line 1787 of yacc.c */
4140 #line 1159 "conf_parser.y"
4141 {
4142 if (conf_parser_ctx.pass == 2)
4143 block_state.modes.value |= UMODE_SKILL;
4144 }
4145 break;
4146
4147 case 175:
4148 /* Line 1787 of yacc.c */
4149 #line 1163 "conf_parser.y"
4150 {
4151 if (conf_parser_ctx.pass == 2)
4152 block_state.modes.value |= UMODE_NCHANGE;
4153 }
4154 break;
4155
4156 case 176:
4157 /* Line 1787 of yacc.c */
4158 #line 1167 "conf_parser.y"
4159 {
4160 if (conf_parser_ctx.pass == 2)
4161 block_state.modes.value |= UMODE_REJ;
4162 }
4163 break;
4164
4165 case 177:
4166 /* Line 1787 of yacc.c */
4167 #line 1171 "conf_parser.y"
4168 {
4169 if (conf_parser_ctx.pass == 2)
4170 block_state.modes.value |= UMODE_UNAUTH;
4171 }
4172 break;
4173
4174 case 178:
4175 /* Line 1787 of yacc.c */
4176 #line 1175 "conf_parser.y"
4177 {
4178 if (conf_parser_ctx.pass == 2)
4179 block_state.modes.value |= UMODE_SPY;
4180 }
4181 break;
4182
4183 case 179:
4184 /* Line 1787 of yacc.c */
4185 #line 1179 "conf_parser.y"
4186 {
4187 if (conf_parser_ctx.pass == 2)
4188 block_state.modes.value |= UMODE_EXTERNAL;
4189 }
4190 break;
4191
4192 case 180:
4193 /* Line 1787 of yacc.c */
4194 #line 1183 "conf_parser.y"
4195 {
4196 if (conf_parser_ctx.pass == 2)
4197 block_state.modes.value |= UMODE_OPERWALL;
4198 }
4199 break;
4200
4201 case 181:
4202 /* Line 1787 of yacc.c */
4203 #line 1187 "conf_parser.y"
4204 {
4205 if (conf_parser_ctx.pass == 2)
4206 block_state.modes.value |= UMODE_SERVNOTICE;
4207 }
4208 break;
4209
4210 case 182:
4211 /* Line 1787 of yacc.c */
4212 #line 1191 "conf_parser.y"
4213 {
4214 if (conf_parser_ctx.pass == 2)
4215 block_state.modes.value |= UMODE_INVISIBLE;
4216 }
4217 break;
4218
4219 case 183:
4220 /* Line 1787 of yacc.c */
4221 #line 1195 "conf_parser.y"
4222 {
4223 if (conf_parser_ctx.pass == 2)
4224 block_state.modes.value |= UMODE_WALLOP;
4225 }
4226 break;
4227
4228 case 184:
4229 /* Line 1787 of yacc.c */
4230 #line 1199 "conf_parser.y"
4231 {
4232 if (conf_parser_ctx.pass == 2)
4233 block_state.modes.value |= UMODE_SOFTCALLERID;
4234 }
4235 break;
4236
4237 case 185:
4238 /* Line 1787 of yacc.c */
4239 #line 1203 "conf_parser.y"
4240 {
4241 if (conf_parser_ctx.pass == 2)
4242 block_state.modes.value |= UMODE_CALLERID;
4243 }
4244 break;
4245
4246 case 186:
4247 /* Line 1787 of yacc.c */
4248 #line 1207 "conf_parser.y"
4249 {
4250 if (conf_parser_ctx.pass == 2)
4251 block_state.modes.value |= UMODE_LOCOPS;
4252 }
4253 break;
4254
4255 case 187:
4256 /* Line 1787 of yacc.c */
4257 #line 1211 "conf_parser.y"
4258 {
4259 if (conf_parser_ctx.pass == 2)
4260 block_state.modes.value |= UMODE_REGONLY;
4261 }
4262 break;
4263
4264 case 188:
4265 /* Line 1787 of yacc.c */
4266 #line 1215 "conf_parser.y"
4267 {
4268 if (conf_parser_ctx.pass == 2)
4269 block_state.modes.value |= UMODE_FARCONNECT;
4270 }
4271 break;
4272
4273 case 189:
4274 /* Line 1787 of yacc.c */
4275 #line 1221 "conf_parser.y"
4276 {
4277 if (conf_parser_ctx.pass == 2)
4278 block_state.port.value = 0;
4279 }
4280 break;
4281
4282 case 193:
4283 /* Line 1787 of yacc.c */
4284 #line 1228 "conf_parser.y"
4285 {
4286 if (conf_parser_ctx.pass == 2)
4287 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4288 }
4289 break;
4290
4291 case 194:
4292 /* Line 1787 of yacc.c */
4293 #line 1232 "conf_parser.y"
4294 {
4295 if (conf_parser_ctx.pass == 2)
4296 block_state.port.value |= OPER_FLAG_KILL;
4297 }
4298 break;
4299
4300 case 195:
4301 /* Line 1787 of yacc.c */
4302 #line 1236 "conf_parser.y"
4303 {
4304 if (conf_parser_ctx.pass == 2)
4305 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4306 }
4307 break;
4308
4309 case 196:
4310 /* Line 1787 of yacc.c */
4311 #line 1240 "conf_parser.y"
4312 {
4313 if (conf_parser_ctx.pass == 2)
4314 block_state.port.value |= OPER_FLAG_CONNECT;
4315 }
4316 break;
4317
4318 case 197:
4319 /* Line 1787 of yacc.c */
4320 #line 1244 "conf_parser.y"
4321 {
4322 if (conf_parser_ctx.pass == 2)
4323 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4324 }
4325 break;
4326
4327 case 198:
4328 /* Line 1787 of yacc.c */
4329 #line 1248 "conf_parser.y"
4330 {
4331 if (conf_parser_ctx.pass == 2)
4332 block_state.port.value |= OPER_FLAG_SQUIT;
4333 }
4334 break;
4335
4336 case 199:
4337 /* Line 1787 of yacc.c */
4338 #line 1252 "conf_parser.y"
4339 {
4340 if (conf_parser_ctx.pass == 2)
4341 block_state.port.value |= OPER_FLAG_K;
4342 }
4343 break;
4344
4345 case 200:
4346 /* Line 1787 of yacc.c */
4347 #line 1256 "conf_parser.y"
4348 {
4349 if (conf_parser_ctx.pass == 2)
4350 block_state.port.value |= OPER_FLAG_UNKLINE;
4351 }
4352 break;
4353
4354 case 201:
4355 /* Line 1787 of yacc.c */
4356 #line 1260 "conf_parser.y"
4357 {
4358 if (conf_parser_ctx.pass == 2)
4359 block_state.port.value |= OPER_FLAG_DLINE;
4360 }
4361 break;
4362
4363 case 202:
4364 /* Line 1787 of yacc.c */
4365 #line 1264 "conf_parser.y"
4366 {
4367 if (conf_parser_ctx.pass == 2)
4368 block_state.port.value |= OPER_FLAG_UNDLINE;
4369 }
4370 break;
4371
4372 case 203:
4373 /* Line 1787 of yacc.c */
4374 #line 1268 "conf_parser.y"
4375 {
4376 if (conf_parser_ctx.pass == 2)
4377 block_state.port.value |= OPER_FLAG_X;
4378 }
4379 break;
4380
4381 case 204:
4382 /* Line 1787 of yacc.c */
4383 #line 1272 "conf_parser.y"
4384 {
4385 if (conf_parser_ctx.pass == 2)
4386 block_state.port.value |= OPER_FLAG_GLINE;
4387 }
4388 break;
4389
4390 case 205:
4391 /* Line 1787 of yacc.c */
4392 #line 1276 "conf_parser.y"
4393 {
4394 if (conf_parser_ctx.pass == 2)
4395 block_state.port.value |= OPER_FLAG_DIE;
4396 }
4397 break;
4398
4399 case 206:
4400 /* Line 1787 of yacc.c */
4401 #line 1280 "conf_parser.y"
4402 {
4403 if (conf_parser_ctx.pass == 2)
4404 block_state.port.value |= OPER_FLAG_RESTART;
4405 }
4406 break;
4407
4408 case 207:
4409 /* Line 1787 of yacc.c */
4410 #line 1284 "conf_parser.y"
4411 {
4412 if (conf_parser_ctx.pass == 2)
4413 block_state.port.value |= OPER_FLAG_REHASH;
4414 }
4415 break;
4416
4417 case 208:
4418 /* Line 1787 of yacc.c */
4419 #line 1288 "conf_parser.y"
4420 {
4421 if (conf_parser_ctx.pass == 2)
4422 block_state.port.value |= OPER_FLAG_ADMIN;
4423 }
4424 break;
4425
4426 case 209:
4427 /* Line 1787 of yacc.c */
4428 #line 1292 "conf_parser.y"
4429 {
4430 if (conf_parser_ctx.pass == 2)
4431 block_state.port.value |= OPER_FLAG_OPERWALL;
4432 }
4433 break;
4434
4435 case 210:
4436 /* Line 1787 of yacc.c */
4437 #line 1296 "conf_parser.y"
4438 {
4439 if (conf_parser_ctx.pass == 2)
4440 block_state.port.value |= OPER_FLAG_GLOBOPS;
4441 }
4442 break;
4443
4444 case 211:
4445 /* Line 1787 of yacc.c */
4446 #line 1300 "conf_parser.y"
4447 {
4448 if (conf_parser_ctx.pass == 2)
4449 block_state.port.value |= OPER_FLAG_WALLOPS;
4450 }
4451 break;
4452
4453 case 212:
4454 /* Line 1787 of yacc.c */
4455 #line 1304 "conf_parser.y"
4456 {
4457 if (conf_parser_ctx.pass == 2)
4458 block_state.port.value |= OPER_FLAG_LOCOPS;
4459 }
4460 break;
4461
4462 case 213:
4463 /* Line 1787 of yacc.c */
4464 #line 1308 "conf_parser.y"
4465 {
4466 if (conf_parser_ctx.pass == 2)
4467 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4468 }
4469 break;
4470
4471 case 214:
4472 /* Line 1787 of yacc.c */
4473 #line 1312 "conf_parser.y"
4474 {
4475 if (conf_parser_ctx.pass == 2)
4476 block_state.port.value |= OPER_FLAG_SET;
4477 }
4478 break;
4479
4480 case 215:
4481 /* Line 1787 of yacc.c */
4482 #line 1316 "conf_parser.y"
4483 {
4484 if (conf_parser_ctx.pass == 2)
4485 block_state.port.value |= OPER_FLAG_MODULE;
4486 }
4487 break;
4488
4489 case 216:
4490 /* Line 1787 of yacc.c */
4491 #line 1326 "conf_parser.y"
4492 {
4493 if (conf_parser_ctx.pass != 1)
4494 break;
4495
4496 reset_block_state();
4497
4498 block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4499 block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4500 block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4501 block_state.max_sendq.value = DEFAULT_SENDQ;
4502 block_state.max_recvq.value = DEFAULT_RECVQ;
4503 }
4504 break;
4505
4506 case 217:
4507 /* Line 1787 of yacc.c */
4508 #line 1338 "conf_parser.y"
4509 {
4510 struct ClassItem *class = NULL;
4511
4512 if (conf_parser_ctx.pass != 1)
4513 break;
4514
4515 if (!block_state.class.buf[0])
4516 break;
4517
4518 if (!(class = class_find(block_state.class.buf, 0)))
4519 class = class_make();
4520
4521 class->active = 1;
4522 MyFree(class->name);
4523 class->name = xstrdup(block_state.class.buf);
4524 class->ping_freq = block_state.ping_freq.value;
4525 class->max_perip = block_state.max_perip.value;
4526 class->con_freq = block_state.con_freq.value;
4527 class->max_total = block_state.max_total.value;
4528 class->max_global = block_state.max_global.value;
4529 class->max_local = block_state.max_local.value;
4530 class->max_ident = block_state.max_ident.value;
4531 class->max_sendq = block_state.max_sendq.value;
4532 class->max_recvq = block_state.max_recvq.value;
4533
4534 if (block_state.min_idle.value > block_state.max_idle.value)
4535 {
4536 block_state.min_idle.value = 0;
4537 block_state.max_idle.value = 0;
4538 block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4539 }
4540
4541 class->flags = block_state.flags.value;
4542 class->min_idle = block_state.min_idle.value;
4543 class->max_idle = block_state.max_idle.value;
4544
4545 if (class->number_per_cidr && block_state.number_per_cidr.value)
4546 if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4547 (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4548 if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4549 (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4550 rebuild_cidr_list(class);
4551
4552 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4553 class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4554 class->number_per_cidr = block_state.number_per_cidr.value;
4555 }
4556 break;
4557
4558 case 237:
4559 /* Line 1787 of yacc.c */
4560 #line 1404 "conf_parser.y"
4561 {
4562 if (conf_parser_ctx.pass == 1)
4563 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4564 }
4565 break;
4566
4567 case 238:
4568 /* Line 1787 of yacc.c */
4569 #line 1410 "conf_parser.y"
4570 {
4571 if (conf_parser_ctx.pass == 1)
4572 block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4573 }
4574 break;
4575
4576 case 239:
4577 /* Line 1787 of yacc.c */
4578 #line 1416 "conf_parser.y"
4579 {
4580 if (conf_parser_ctx.pass == 1)
4581 block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4582 }
4583 break;
4584
4585 case 240:
4586 /* Line 1787 of yacc.c */
4587 #line 1422 "conf_parser.y"
4588 {
4589 if (conf_parser_ctx.pass == 1)
4590 block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4591 }
4592 break;
4593
4594 case 241:
4595 /* Line 1787 of yacc.c */
4596 #line 1428 "conf_parser.y"
4597 {
4598 if (conf_parser_ctx.pass == 1)
4599 block_state.max_total.value = (yyvsp[(3) - (4)].number);
4600 }
4601 break;
4602
4603 case 242:
4604 /* Line 1787 of yacc.c */
4605 #line 1434 "conf_parser.y"
4606 {
4607 if (conf_parser_ctx.pass == 1)
4608 block_state.max_global.value = (yyvsp[(3) - (4)].number);
4609 }
4610 break;
4611
4612 case 243:
4613 /* Line 1787 of yacc.c */
4614 #line 1440 "conf_parser.y"
4615 {
4616 if (conf_parser_ctx.pass == 1)
4617 block_state.max_local.value = (yyvsp[(3) - (4)].number);
4618 }
4619 break;
4620
4621 case 244:
4622 /* Line 1787 of yacc.c */
4623 #line 1446 "conf_parser.y"
4624 {
4625 if (conf_parser_ctx.pass == 1)
4626 block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4627 }
4628 break;
4629
4630 case 245:
4631 /* Line 1787 of yacc.c */
4632 #line 1452 "conf_parser.y"
4633 {
4634 if (conf_parser_ctx.pass == 1)
4635 block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4636 }
4637 break;
4638
4639 case 246:
4640 /* Line 1787 of yacc.c */
4641 #line 1458 "conf_parser.y"
4642 {
4643 if (conf_parser_ctx.pass == 1)
4644 if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4645 block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4646 }
4647 break;
4648
4649 case 247:
4650 /* Line 1787 of yacc.c */
4651 #line 1465 "conf_parser.y"
4652 {
4653 if (conf_parser_ctx.pass == 1)
4654 block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4655 }
4656 break;
4657
4658 case 248:
4659 /* Line 1787 of yacc.c */
4660 #line 1471 "conf_parser.y"
4661 {
4662 if (conf_parser_ctx.pass == 1)
4663 block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4664 }
4665 break;
4666
4667 case 249:
4668 /* Line 1787 of yacc.c */
4669 #line 1477 "conf_parser.y"
4670 {
4671 if (conf_parser_ctx.pass == 1)
4672 block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4673 }
4674 break;
4675
4676 case 250:
4677 /* Line 1787 of yacc.c */
4678 #line 1483 "conf_parser.y"
4679 {
4680 if (conf_parser_ctx.pass != 1)
4681 break;
4682
4683 block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4684 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4685 }
4686 break;
4687
4688 case 251:
4689 /* Line 1787 of yacc.c */
4690 #line 1492 "conf_parser.y"
4691 {
4692 if (conf_parser_ctx.pass != 1)
4693 break;
4694
4695 block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4696 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4697 }
4698 break;
4699
4700 case 252:
4701 /* Line 1787 of yacc.c */
4702 #line 1501 "conf_parser.y"
4703 {
4704 if (conf_parser_ctx.pass == 1)
4705 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4706 }
4707 break;
4708
4709 case 256:
4710 /* Line 1787 of yacc.c */
4711 #line 1508 "conf_parser.y"
4712 {
4713 if (conf_parser_ctx.pass == 1)
4714 block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4715 }
4716 break;
4717
4718 case 257:
4719 /* Line 1787 of yacc.c */
4720 #line 1512 "conf_parser.y"
4721 {
4722 if (conf_parser_ctx.pass == 1)
4723 block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4724 }
4725 break;
4726
4727 case 258:
4728 /* Line 1787 of yacc.c */
4729 #line 1522 "conf_parser.y"
4730 {
4731 if (conf_parser_ctx.pass == 2)
4732 reset_block_state();
4733 }
4734 break;
4735
4736 case 260:
4737 /* Line 1787 of yacc.c */
4738 #line 1528 "conf_parser.y"
4739 {
4740 block_state.flags.value = 0;
4741 }
4742 break;
4743
4744 case 264:
4745 /* Line 1787 of yacc.c */
4746 #line 1534 "conf_parser.y"
4747 {
4748 if (conf_parser_ctx.pass == 2)
4749 block_state.flags.value |= LISTENER_SSL;
4750 }
4751 break;
4752
4753 case 265:
4754 /* Line 1787 of yacc.c */
4755 #line 1538 "conf_parser.y"
4756 {
4757 if (conf_parser_ctx.pass == 2)
4758 block_state.flags.value |= LISTENER_HIDDEN;
4759 }
4760 break;
4761
4762 case 266:
4763 /* Line 1787 of yacc.c */
4764 #line 1542 "conf_parser.y"
4765 {
4766 if (conf_parser_ctx.pass == 2)
4767 block_state.flags.value |= LISTENER_SERVER;
4768 }
4769 break;
4770
4771 case 274:
4772 /* Line 1787 of yacc.c */
4773 #line 1550 "conf_parser.y"
4774 { block_state.flags.value = 0; }
4775 break;
4776
4777 case 278:
4778 /* Line 1787 of yacc.c */
4779 #line 1555 "conf_parser.y"
4780 {
4781 if (conf_parser_ctx.pass == 2)
4782 {
4783 if (block_state.flags.value & LISTENER_SSL)
4784 #ifdef HAVE_LIBCRYPTO
4785 if (!ServerInfo.server_ctx)
4786 #endif
4787 {
4788 conf_error_report("SSL not available - port closed");
4789 break;
4790 }
4791 add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4792 }
4793 }
4794 break;
4795
4796 case 279:
4797 /* Line 1787 of yacc.c */
4798 #line 1569 "conf_parser.y"
4799 {
4800 if (conf_parser_ctx.pass == 2)
4801 {
4802 int i;
4803
4804 if (block_state.flags.value & LISTENER_SSL)
4805 #ifdef HAVE_LIBCRYPTO
4806 if (!ServerInfo.server_ctx)
4807 #endif
4808 {
4809 conf_error_report("SSL not available - port closed");
4810 break;
4811 }
4812
4813 for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4814 add_listener(i, block_state.addr.buf, block_state.flags.value);
4815 }
4816 }
4817 break;
4818
4819 case 280:
4820 /* Line 1787 of yacc.c */
4821 #line 1589 "conf_parser.y"
4822 {
4823 if (conf_parser_ctx.pass == 2)
4824 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4825 }
4826 break;
4827
4828 case 281:
4829 /* Line 1787 of yacc.c */
4830 #line 1595 "conf_parser.y"
4831 {
4832 if (conf_parser_ctx.pass == 2)
4833 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4834 }
4835 break;
4836
4837 case 282:
4838 /* Line 1787 of yacc.c */
4839 #line 1604 "conf_parser.y"
4840 {
4841 if (conf_parser_ctx.pass == 2)
4842 reset_block_state();
4843 }
4844 break;
4845
4846 case 283:
4847 /* Line 1787 of yacc.c */
4848 #line 1608 "conf_parser.y"
4849 {
4850 dlink_node *ptr = NULL;
4851
4852 if (conf_parser_ctx.pass != 2)
4853 break;
4854
4855 DLINK_FOREACH(ptr, block_state.mask.list.head)
4856 {
4857 struct MaskItem *conf = NULL;
4858 struct split_nuh_item nuh;
4859
4860 nuh.nuhmask = ptr->data;
4861 nuh.nickptr = NULL;
4862 nuh.userptr = block_state.user.buf;
4863 nuh.hostptr = block_state.host.buf;
4864 nuh.nicksize = 0;
4865 nuh.usersize = sizeof(block_state.user.buf);
4866 nuh.hostsize = sizeof(block_state.host.buf);
4867 split_nuh(&nuh);
4868
4869 conf = conf_make(CONF_CLIENT);
4870 conf->user = xstrdup(block_state.user.buf);
4871 conf->host = xstrdup(block_state.host.buf);
4872
4873 if (block_state.rpass.buf[0])
4874 conf->passwd = xstrdup(block_state.rpass.buf);
4875 if (block_state.name.buf[0])
4876 conf->name = xstrdup(block_state.name.buf);
4877
4878 conf->flags = block_state.flags.value;
4879 conf->port = block_state.port.value;
4880
4881 conf_add_class_to_conf(conf, block_state.class.buf);
4882 add_conf_by_address(CONF_CLIENT, conf);
4883 }
4884 }
4885 break;
4886
4887 case 295:
4888 /* Line 1787 of yacc.c */
4889 #line 1651 "conf_parser.y"
4890 {
4891 if (conf_parser_ctx.pass == 2)
4892 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4893 }
4894 break;
4895
4896 case 296:
4897 /* Line 1787 of yacc.c */
4898 #line 1657 "conf_parser.y"
4899 {
4900 if (conf_parser_ctx.pass == 2)
4901 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4902 }
4903 break;
4904
4905 case 297:
4906 /* Line 1787 of yacc.c */
4907 #line 1663 "conf_parser.y"
4908 {
4909 if (conf_parser_ctx.pass == 2)
4910 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4911 }
4912 break;
4913
4914 case 298:
4915 /* Line 1787 of yacc.c */
4916 #line 1669 "conf_parser.y"
4917 {
4918 if (conf_parser_ctx.pass == 2)
4919 {
4920 if (yylval.number)
4921 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4922 else
4923 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4924 }
4925 }
4926 break;
4927
4928 case 299:
4929 /* Line 1787 of yacc.c */
4930 #line 1680 "conf_parser.y"
4931 {
4932 if (conf_parser_ctx.pass == 2)
4933 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4934 }
4935 break;
4936
4937 case 303:
4938 /* Line 1787 of yacc.c */
4939 #line 1687 "conf_parser.y"
4940 {
4941 if (conf_parser_ctx.pass == 2)
4942 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4943 }
4944 break;
4945
4946 case 304:
4947 /* Line 1787 of yacc.c */
4948 #line 1691 "conf_parser.y"
4949 {
4950 if (conf_parser_ctx.pass == 2)
4951 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4952 }
4953 break;
4954
4955 case 305:
4956 /* Line 1787 of yacc.c */
4957 #line 1695 "conf_parser.y"
4958 {
4959 if (conf_parser_ctx.pass == 2)
4960 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4961 }
4962 break;
4963
4964 case 306:
4965 /* Line 1787 of yacc.c */
4966 #line 1699 "conf_parser.y"
4967 {
4968 if (conf_parser_ctx.pass == 2)
4969 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4970 }
4971 break;
4972
4973 case 307:
4974 /* Line 1787 of yacc.c */
4975 #line 1703 "conf_parser.y"
4976 {
4977 if (conf_parser_ctx.pass == 2)
4978 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4979 }
4980 break;
4981
4982 case 308:
4983 /* Line 1787 of yacc.c */
4984 #line 1707 "conf_parser.y"
4985 {
4986 if (conf_parser_ctx.pass == 2)
4987 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4988 }
4989 break;
4990
4991 case 309:
4992 /* Line 1787 of yacc.c */
4993 #line 1711 "conf_parser.y"
4994 {
4995 if (conf_parser_ctx.pass == 2)
4996 block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4997 }
4998 break;
4999
5000 case 310:
5001 /* Line 1787 of yacc.c */
5002 #line 1715 "conf_parser.y"
5003 {
5004 if (conf_parser_ctx.pass == 2)
5005 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5006 }
5007 break;
5008
5009 case 311:
5010 /* Line 1787 of yacc.c */
5011 #line 1719 "conf_parser.y"
5012 {
5013 if (conf_parser_ctx.pass == 2)
5014 block_state.flags.value |= CONF_FLAGS_WEBIRC;
5015 }
5016 break;
5017
5018 case 312:
5019 /* Line 1787 of yacc.c */
5020 #line 1723 "conf_parser.y"
5021 {
5022 if (conf_parser_ctx.pass == 2)
5023 block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5024 }
5025 break;
5026
5027 case 313:
5028 /* Line 1787 of yacc.c */
5029 #line 1729 "conf_parser.y"
5030 {
5031 if (conf_parser_ctx.pass != 2)
5032 break;
5033
5034 if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5035 {
5036 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5037 block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5038 }
5039 else
5040 ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5041 }
5042 break;
5043
5044 case 314:
5045 /* Line 1787 of yacc.c */
5046 #line 1743 "conf_parser.y"
5047 {
5048 if (conf_parser_ctx.pass != 2)
5049 break;
5050
5051 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5052 block_state.flags.value |= CONF_FLAGS_REDIR;
5053 }
5054 break;
5055
5056 case 315:
5057 /* Line 1787 of yacc.c */
5058 #line 1752 "conf_parser.y"
5059 {
5060 if (conf_parser_ctx.pass != 2)
5061 break;
5062
5063 block_state.flags.value |= CONF_FLAGS_REDIR;
5064 block_state.port.value = (yyvsp[(3) - (4)].number);
5065 }
5066 break;
5067
5068 case 316:
5069 /* Line 1787 of yacc.c */
5070 #line 1765 "conf_parser.y"
5071 {
5072 if (conf_parser_ctx.pass != 2)
5073 break;
5074
5075 reset_block_state();
5076 strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5077 }
5078 break;
5079
5080 case 317:
5081 /* Line 1787 of yacc.c */
5082 #line 1772 "conf_parser.y"
5083 {
5084 if (conf_parser_ctx.pass != 2)
5085 break;
5086
5087 create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5088 }
5089 break;
5090
5091 case 324:
5092 /* Line 1787 of yacc.c */
5093 #line 1783 "conf_parser.y"
5094 {
5095 if (conf_parser_ctx.pass == 2)
5096 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5097 }
5098 break;
5099
5100 case 325:
5101 /* Line 1787 of yacc.c */
5102 #line 1789 "conf_parser.y"
5103 {
5104 if (conf_parser_ctx.pass == 2)
5105 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5106 }
5107 break;
5108
5109 case 326:
5110 /* Line 1787 of yacc.c */
5111 #line 1795 "conf_parser.y"
5112 {
5113 if (conf_parser_ctx.pass == 2)
5114 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5115 }
5116 break;
5117
5118 case 332:
5119 /* Line 1787 of yacc.c */
5120 #line 1810 "conf_parser.y"
5121 {
5122 if (conf_parser_ctx.pass != 2)
5123 break;
5124
5125 if (valid_servname(yylval.string))
5126 {
5127 struct MaskItem *conf = conf_make(CONF_SERVICE);
5128 conf->name = xstrdup(yylval.string);
5129 }
5130 }
5131 break;
5132
5133 case 333:
5134 /* Line 1787 of yacc.c */
5135 #line 1825 "conf_parser.y"
5136 {
5137 if (conf_parser_ctx.pass != 2)
5138 break;
5139
5140 reset_block_state();
5141
5142 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5143 strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5144 strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5145 block_state.flags.value = SHARED_ALL;
5146 }
5147 break;
5148
5149 case 334:
5150 /* Line 1787 of yacc.c */
5151 #line 1836 "conf_parser.y"
5152 {
5153 struct MaskItem *conf = NULL;
5154
5155 if (conf_parser_ctx.pass != 2)
5156 break;
5157
5158 conf = conf_make(CONF_ULINE);
5159 conf->flags = block_state.flags.value;
5160 conf->name = xstrdup(block_state.name.buf);
5161 conf->user = xstrdup(block_state.user.buf);
5162 conf->host = xstrdup(block_state.host.buf);
5163 }
5164 break;
5165
5166 case 341:
5167 /* Line 1787 of yacc.c */
5168 #line 1853 "conf_parser.y"
5169 {
5170 if (conf_parser_ctx.pass == 2)
5171 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5172 }
5173 break;
5174
5175 case 342:
5176 /* Line 1787 of yacc.c */
5177 #line 1859 "conf_parser.y"
5178 {
5179 if (conf_parser_ctx.pass == 2)
5180 {
5181 struct split_nuh_item nuh;
5182
5183 nuh.nuhmask = yylval.string;
5184 nuh.nickptr = NULL;
5185 nuh.userptr = block_state.user.buf;
5186 nuh.hostptr = block_state.host.buf;
5187
5188 nuh.nicksize = 0;
5189 nuh.usersize = sizeof(block_state.user.buf);
5190 nuh.hostsize = sizeof(block_state.host.buf);
5191
5192 split_nuh(&nuh);
5193 }
5194 }
5195 break;
5196
5197 case 343:
5198 /* Line 1787 of yacc.c */
5199 #line 1878 "conf_parser.y"
5200 {
5201 if (conf_parser_ctx.pass == 2)
5202 block_state.flags.value = 0;
5203 }
5204 break;
5205
5206 case 347:
5207 /* Line 1787 of yacc.c */
5208 #line 1885 "conf_parser.y"
5209 {
5210 if (conf_parser_ctx.pass == 2)
5211 block_state.flags.value |= SHARED_KLINE;
5212 }
5213 break;
5214
5215 case 348:
5216 /* Line 1787 of yacc.c */
5217 #line 1889 "conf_parser.y"
5218 {
5219 if (conf_parser_ctx.pass == 2)
5220 block_state.flags.value |= SHARED_UNKLINE;
5221 }
5222 break;
5223
5224 case 349:
5225 /* Line 1787 of yacc.c */
5226 #line 1893 "conf_parser.y"
5227 {
5228 if (conf_parser_ctx.pass == 2)
5229 block_state.flags.value |= SHARED_DLINE;
5230 }
5231 break;
5232
5233 case 350:
5234 /* Line 1787 of yacc.c */
5235 #line 1897 "conf_parser.y"
5236 {
5237 if (conf_parser_ctx.pass == 2)
5238 block_state.flags.value |= SHARED_UNDLINE;
5239 }
5240 break;
5241
5242 case 351:
5243 /* Line 1787 of yacc.c */
5244 #line 1901 "conf_parser.y"
5245 {
5246 if (conf_parser_ctx.pass == 2)
5247 block_state.flags.value |= SHARED_XLINE;
5248 }
5249 break;
5250
5251 case 352:
5252 /* Line 1787 of yacc.c */
5253 #line 1905 "conf_parser.y"
5254 {
5255 if (conf_parser_ctx.pass == 2)
5256 block_state.flags.value |= SHARED_UNXLINE;
5257 }
5258 break;
5259
5260 case 353:
5261 /* Line 1787 of yacc.c */
5262 #line 1909 "conf_parser.y"
5263 {
5264 if (conf_parser_ctx.pass == 2)
5265 block_state.flags.value |= SHARED_RESV;
5266 }
5267 break;
5268
5269 case 354:
5270 /* Line 1787 of yacc.c */
5271 #line 1913 "conf_parser.y"
5272 {
5273 if (conf_parser_ctx.pass == 2)
5274 block_state.flags.value |= SHARED_UNRESV;
5275 }
5276 break;
5277
5278 case 355:
5279 /* Line 1787 of yacc.c */
5280 #line 1917 "conf_parser.y"
5281 {
5282 if (conf_parser_ctx.pass == 2)
5283 block_state.flags.value |= SHARED_LOCOPS;
5284 }
5285 break;
5286
5287 case 356:
5288 /* Line 1787 of yacc.c */
5289 #line 1921 "conf_parser.y"
5290 {
5291 if (conf_parser_ctx.pass == 2)
5292 block_state.flags.value = SHARED_ALL;
5293 }
5294 break;
5295
5296 case 357:
5297 /* Line 1787 of yacc.c */
5298 #line 1930 "conf_parser.y"
5299 {
5300 if (conf_parser_ctx.pass != 2)
5301 break;
5302
5303 reset_block_state();
5304
5305 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5306 block_state.flags.value = SHARED_ALL;
5307 }
5308 break;
5309
5310 case 358:
5311 /* Line 1787 of yacc.c */
5312 #line 1939 "conf_parser.y"
5313 {
5314 struct MaskItem *conf = NULL;
5315
5316 if (conf_parser_ctx.pass != 2)
5317 break;
5318
5319 conf = conf_make(CONF_CLUSTER);
5320 conf->flags = block_state.flags.value;
5321 conf->name = xstrdup(block_state.name.buf);
5322 }
5323 break;
5324
5325 case 364:
5326 /* Line 1787 of yacc.c */
5327 #line 1954 "conf_parser.y"
5328 {
5329 if (conf_parser_ctx.pass == 2)
5330 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5331 }
5332 break;
5333
5334 case 365:
5335 /* Line 1787 of yacc.c */
5336 #line 1960 "conf_parser.y"
5337 {
5338 if (conf_parser_ctx.pass == 2)
5339 block_state.flags.value = 0;
5340 }
5341 break;
5342
5343 case 369:
5344 /* Line 1787 of yacc.c */
5345 #line 1967 "conf_parser.y"
5346 {
5347 if (conf_parser_ctx.pass == 2)
5348 block_state.flags.value |= SHARED_KLINE;
5349 }
5350 break;
5351
5352 case 370:
5353 /* Line 1787 of yacc.c */
5354 #line 1971 "conf_parser.y"
5355 {
5356 if (conf_parser_ctx.pass == 2)
5357 block_state.flags.value |= SHARED_UNKLINE;
5358 }
5359 break;
5360
5361 case 371:
5362 /* Line 1787 of yacc.c */
5363 #line 1975 "conf_parser.y"
5364 {
5365 if (conf_parser_ctx.pass == 2)
5366 block_state.flags.value |= SHARED_DLINE;
5367 }
5368 break;
5369
5370 case 372:
5371 /* Line 1787 of yacc.c */
5372 #line 1979 "conf_parser.y"
5373 {
5374 if (conf_parser_ctx.pass == 2)
5375 block_state.flags.value |= SHARED_UNDLINE;
5376 }
5377 break;
5378
5379 case 373:
5380 /* Line 1787 of yacc.c */
5381 #line 1983 "conf_parser.y"
5382 {
5383 if (conf_parser_ctx.pass == 2)
5384 block_state.flags.value |= SHARED_XLINE;
5385 }
5386 break;
5387
5388 case 374:
5389 /* Line 1787 of yacc.c */
5390 #line 1987 "conf_parser.y"
5391 {
5392 if (conf_parser_ctx.pass == 2)
5393 block_state.flags.value |= SHARED_UNXLINE;
5394 }
5395 break;
5396
5397 case 375:
5398 /* Line 1787 of yacc.c */
5399 #line 1991 "conf_parser.y"
5400 {
5401 if (conf_parser_ctx.pass == 2)
5402 block_state.flags.value |= SHARED_RESV;
5403 }
5404 break;
5405
5406 case 376:
5407 /* Line 1787 of yacc.c */
5408 #line 1995 "conf_parser.y"
5409 {
5410 if (conf_parser_ctx.pass == 2)
5411 block_state.flags.value |= SHARED_UNRESV;
5412 }
5413 break;
5414
5415 case 377:
5416 /* Line 1787 of yacc.c */
5417 #line 1999 "conf_parser.y"
5418 {
5419 if (conf_parser_ctx.pass == 2)
5420 block_state.flags.value |= SHARED_LOCOPS;
5421 }
5422 break;
5423
5424 case 378:
5425 /* Line 1787 of yacc.c */
5426 #line 2003 "conf_parser.y"
5427 {
5428 if (conf_parser_ctx.pass == 2)
5429 block_state.flags.value = SHARED_ALL;
5430 }
5431 break;
5432
5433 case 379:
5434 /* Line 1787 of yacc.c */
5435 #line 2012 "conf_parser.y"
5436 {
5437
5438 if (conf_parser_ctx.pass != 2)
5439 break;
5440
5441 reset_block_state();
5442 block_state.port.value = PORTNUM;
5443 }
5444 break;
5445
5446 case 380:
5447 /* Line 1787 of yacc.c */
5448 #line 2020 "conf_parser.y"
5449 {
5450 struct MaskItem *conf = NULL;
5451 struct addrinfo hints, *res;
5452
5453 if (conf_parser_ctx.pass != 2)
5454 break;
5455
5456 if (!block_state.name.buf[0] ||
5457 !block_state.host.buf[0])
5458 break;
5459
5460 if (!block_state.rpass.buf[0] ||
5461 !block_state.spass.buf[0])
5462 break;
5463
5464 if (has_wildcards(block_state.name.buf) ||
5465 has_wildcards(block_state.host.buf))
5466 break;
5467
5468 conf = conf_make(CONF_SERVER);
5469 conf->port = block_state.port.value;
5470 conf->flags = block_state.flags.value;
5471 conf->aftype = block_state.aftype.value;
5472 conf->host = xstrdup(block_state.host.buf);
5473 conf->name = xstrdup(block_state.name.buf);
5474 conf->passwd = xstrdup(block_state.rpass.buf);
5475 conf->spasswd = xstrdup(block_state.spass.buf);
5476 conf->cipher_list = xstrdup(block_state.ciph.buf);
5477
5478 dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5479 dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5480
5481 if (block_state.bind.buf[0])
5482 {
5483 memset(&hints, 0, sizeof(hints));
5484
5485 hints.ai_family = AF_UNSPEC;
5486 hints.ai_socktype = SOCK_STREAM;
5487 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5488
5489 if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5490 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5491 else
5492 {
5493 assert(res != NULL);
5494
5495 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5496 conf->bind.ss.ss_family = res->ai_family;
5497 conf->bind.ss_len = res->ai_addrlen;
5498 freeaddrinfo(res);
5499 }
5500 }
5501
5502 conf_add_class_to_conf(conf, block_state.class.buf);
5503 lookup_confhost(conf);
5504 }
5505 break;
5506
5507 case 397:
5508 /* Line 1787 of yacc.c */
5509 #line 2086 "conf_parser.y"
5510 {
5511 if (conf_parser_ctx.pass == 2)
5512 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5513 }
5514 break;
5515
5516 case 398:
5517 /* Line 1787 of yacc.c */
5518 #line 2092 "conf_parser.y"
5519 {
5520 if (conf_parser_ctx.pass == 2)
5521 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5522 }
5523 break;
5524
5525 case 399:
5526 /* Line 1787 of yacc.c */
5527 #line 2098 "conf_parser.y"
5528 {
5529 if (conf_parser_ctx.pass == 2)
5530 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5531 }
5532 break;
5533
5534 case 400:
5535 /* Line 1787 of yacc.c */
5536 #line 2104 "conf_parser.y"
5537 {
5538 if (conf_parser_ctx.pass != 2)
5539 break;
5540
5541 if ((yyvsp[(3) - (4)].string)[0] == ':')
5542 conf_error_report("Server passwords cannot begin with a colon");
5543 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5544 conf_error_report("Server passwords cannot contain spaces");
5545 else
5546 strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5547 }
5548 break;
5549
5550 case 401:
5551 /* Line 1787 of yacc.c */
5552 #line 2117 "conf_parser.y"
5553 {
5554 if (conf_parser_ctx.pass != 2)
5555 break;
5556
5557 if ((yyvsp[(3) - (4)].string)[0] == ':')
5558 conf_error_report("Server passwords cannot begin with a colon");
5559 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5560 conf_error_report("Server passwords cannot contain spaces");
5561 else
5562 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5563 }
5564 break;
5565
5566 case 402:
5567 /* Line 1787 of yacc.c */
5568 #line 2130 "conf_parser.y"
5569 {
5570 if (conf_parser_ctx.pass == 2)
5571 block_state.port.value = (yyvsp[(3) - (4)].number);
5572 }
5573 break;
5574
5575 case 403:
5576 /* Line 1787 of yacc.c */
5577 #line 2136 "conf_parser.y"
5578 {
5579 if (conf_parser_ctx.pass == 2)
5580 block_state.aftype.value = AF_INET;
5581 }
5582 break;
5583
5584 case 404:
5585 /* Line 1787 of yacc.c */
5586 #line 2140 "conf_parser.y"
5587 {
5588 #ifdef IPV6
5589 if (conf_parser_ctx.pass == 2)
5590 block_state.aftype.value = AF_INET6;
5591 #endif
5592 }
5593 break;
5594
5595 case 405:
5596 /* Line 1787 of yacc.c */
5597 #line 2148 "conf_parser.y"
5598 {
5599 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5600 }
5601 break;
5602
5603 case 409:
5604 /* Line 1787 of yacc.c */
5605 #line 2154 "conf_parser.y"
5606 {
5607 if (conf_parser_ctx.pass == 2)
5608 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5609 }
5610 break;
5611
5612 case 410:
5613 /* Line 1787 of yacc.c */
5614 #line 2158 "conf_parser.y"
5615 {
5616 if (conf_parser_ctx.pass == 2)
5617 block_state.flags.value |= CONF_FLAGS_SSL;
5618 }
5619 break;
5620
5621 case 411:
5622 /* Line 1787 of yacc.c */
5623 #line 2164 "conf_parser.y"
5624 {
5625 if (conf_parser_ctx.pass == 2)
5626 {
5627 if (yylval.number)
5628 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5629 else
5630 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5631 }
5632 }
5633 break;
5634
5635 case 412:
5636 /* Line 1787 of yacc.c */
5637 #line 2175 "conf_parser.y"
5638 {
5639 if (conf_parser_ctx.pass == 2)
5640 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5641 }
5642 break;
5643
5644 case 413:
5645 /* Line 1787 of yacc.c */
5646 #line 2181 "conf_parser.y"
5647 {
5648 if (conf_parser_ctx.pass == 2)
5649 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5650 }
5651 break;
5652
5653 case 414:
5654 /* Line 1787 of yacc.c */
5655 #line 2187 "conf_parser.y"
5656 {
5657 if (conf_parser_ctx.pass == 2)
5658 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5659 }
5660 break;
5661
5662 case 415:
5663 /* Line 1787 of yacc.c */
5664 #line 2193 "conf_parser.y"
5665 {
5666 #ifdef HAVE_LIBCRYPTO
5667 if (conf_parser_ctx.pass == 2)
5668 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5669 #else
5670 if (conf_parser_ctx.pass == 2)
5671 conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5672 #endif
5673 }
5674 break;
5675
5676 case 416:
5677 /* Line 1787 of yacc.c */
5678 #line 2208 "conf_parser.y"
5679 {
5680 if (conf_parser_ctx.pass == 2)
5681 reset_block_state();
5682 }
5683 break;
5684
5685 case 417:
5686 /* Line 1787 of yacc.c */
5687 #line 2212 "conf_parser.y"
5688 {
5689 struct MaskItem *conf = NULL;
5690
5691 if (conf_parser_ctx.pass != 2)
5692 break;
5693
5694 if (!block_state.user.buf[0] ||
5695 !block_state.host.buf[0])
5696 break;
5697
5698 conf = conf_make(CONF_KLINE);
5699 conf->user = xstrdup(block_state.user.buf);
5700 conf->host = xstrdup(block_state.host.buf);
5701
5702 if (block_state.rpass.buf[0])
5703 conf->reason = xstrdup(block_state.rpass.buf);
5704 else
5705 conf->reason = xstrdup(CONF_NOREASON);
5706 add_conf_by_address(CONF_KLINE, conf);
5707 }
5708 break;
5709
5710 case 423:
5711 /* Line 1787 of yacc.c */
5712 #line 2237 "conf_parser.y"
5713 {
5714
5715 if (conf_parser_ctx.pass == 2)
5716 {
5717 struct split_nuh_item nuh;
5718
5719 nuh.nuhmask = yylval.string;
5720 nuh.nickptr = NULL;
5721 nuh.userptr = block_state.user.buf;
5722 nuh.hostptr = block_state.host.buf;
5723
5724 nuh.nicksize = 0;
5725 nuh.usersize = sizeof(block_state.user.buf);
5726 nuh.hostsize = sizeof(block_state.host.buf);
5727
5728 split_nuh(&nuh);
5729 }
5730 }
5731 break;
5732
5733 case 424:
5734 /* Line 1787 of yacc.c */
5735 #line 2257 "conf_parser.y"
5736 {
5737 if (conf_parser_ctx.pass == 2)
5738 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5739 }
5740 break;
5741
5742 case 425:
5743 /* Line 1787 of yacc.c */
5744 #line 2266 "conf_parser.y"
5745 {
5746 if (conf_parser_ctx.pass == 2)
5747 reset_block_state();
5748 }
5749 break;
5750
5751 case 426:
5752 /* Line 1787 of yacc.c */
5753 #line 2270 "conf_parser.y"
5754 {
5755 struct MaskItem *conf = NULL;
5756
5757 if (conf_parser_ctx.pass != 2)
5758 break;
5759
5760 if (!block_state.addr.buf[0])
5761 break;
5762
5763 if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5764 {
5765 conf = conf_make(CONF_DLINE);
5766 conf->host = xstrdup(block_state.addr.buf);
5767
5768 if (block_state.rpass.buf[0])
5769 conf->reason = xstrdup(block_state.rpass.buf);
5770 else
5771 conf->reason = xstrdup(CONF_NOREASON);
5772 add_conf_by_address(CONF_DLINE, conf);
5773 }
5774 }
5775 break;
5776
5777 case 432:
5778 /* Line 1787 of yacc.c */
5779 #line 2296 "conf_parser.y"
5780 {
5781 if (conf_parser_ctx.pass == 2)
5782 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5783 }
5784 break;
5785
5786 case 433:
5787 /* Line 1787 of yacc.c */
5788 #line 2302 "conf_parser.y"
5789 {
5790 if (conf_parser_ctx.pass == 2)
5791 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5792 }
5793 break;
5794
5795 case 439:
5796 /* Line 1787 of yacc.c */
5797 #line 2316 "conf_parser.y"
5798 {
5799 if (conf_parser_ctx.pass == 2)
5800 {
5801 if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5802 {
5803 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5804 conf->host = xstrdup(yylval.string);
5805
5806 add_conf_by_address(CONF_EXEMPT, conf);
5807 }
5808 }
5809 }
5810 break;
5811
5812 case 440:
5813 /* Line 1787 of yacc.c */
5814 #line 2333 "conf_parser.y"
5815 {
5816 if (conf_parser_ctx.pass == 2)
5817 reset_block_state();
5818 }
5819 break;
5820
5821 case 441:
5822 /* Line 1787 of yacc.c */
5823 #line 2337 "conf_parser.y"
5824 {
5825 struct MaskItem *conf = NULL;
5826
5827 if (conf_parser_ctx.pass != 2)
5828 break;
5829
5830 if (!block_state.name.buf[0])
5831 break;
5832
5833 conf = conf_make(CONF_XLINE);
5834 conf->name = xstrdup(block_state.name.buf);
5835
5836 if (block_state.rpass.buf[0])
5837 conf->reason = xstrdup(block_state.rpass.buf);
5838 else
5839 conf->reason = xstrdup(CONF_NOREASON);
5840 }
5841 break;
5842
5843 case 447:
5844 /* Line 1787 of yacc.c */
5845 #line 2359 "conf_parser.y"
5846 {
5847 if (conf_parser_ctx.pass == 2)
5848 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5849 }
5850 break;
5851
5852 case 448:
5853 /* Line 1787 of yacc.c */
5854 #line 2365 "conf_parser.y"
5855 {
5856 if (conf_parser_ctx.pass == 2)
5857 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5858 }
5859 break;
5860
5861 case 501:
5862 /* Line 1787 of yacc.c */
5863 #line 2409 "conf_parser.y"
5864 {
5865 ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5866 }
5867 break;
5868
5869 case 502:
5870 /* Line 1787 of yacc.c */
5871 #line 2414 "conf_parser.y"
5872 {
5873 if (conf_parser_ctx.pass == 2)
5874 ConfigFileEntry.glines = yylval.number;
5875 }
5876 break;
5877
5878 case 503:
5879 /* Line 1787 of yacc.c */
5880 #line 2420 "conf_parser.y"
5881 {
5882 if (conf_parser_ctx.pass == 2)
5883 ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5884 }
5885 break;
5886
5887 case 504:
5888 /* Line 1787 of yacc.c */
5889 #line 2426 "conf_parser.y"
5890 {
5891 if (conf_parser_ctx.pass == 2)
5892 ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5893 }
5894 break;
5895
5896 case 505:
5897 /* Line 1787 of yacc.c */
5898 #line 2432 "conf_parser.y"
5899 {
5900 ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5901 }
5902 break;
5903
5904 case 506:
5905 /* Line 1787 of yacc.c */
5906 #line 2437 "conf_parser.y"
5907 {
5908 ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5909 }
5910 break;
5911
5912 case 507:
5913 /* Line 1787 of yacc.c */
5914 #line 2442 "conf_parser.y"
5915 {
5916 ConfigFileEntry.tkline_expire_notices = yylval.number;
5917 }
5918 break;
5919
5920 case 508:
5921 /* Line 1787 of yacc.c */
5922 #line 2447 "conf_parser.y"
5923 {
5924 ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5925 }
5926 break;
5927
5928 case 509:
5929 /* Line 1787 of yacc.c */
5930 #line 2452 "conf_parser.y"
5931 {
5932 ConfigFileEntry.hide_spoof_ips = yylval.number;
5933 }
5934 break;
5935
5936 case 510:
5937 /* Line 1787 of yacc.c */
5938 #line 2457 "conf_parser.y"
5939 {
5940 ConfigFileEntry.ignore_bogus_ts = yylval.number;
5941 }
5942 break;
5943
5944 case 511:
5945 /* Line 1787 of yacc.c */
5946 #line 2462 "conf_parser.y"
5947 {
5948 ConfigFileEntry.disable_remote = yylval.number;
5949 }
5950 break;
5951
5952 case 512:
5953 /* Line 1787 of yacc.c */
5954 #line 2467 "conf_parser.y"
5955 {
5956 ConfigFileEntry.failed_oper_notice = yylval.number;
5957 }
5958 break;
5959
5960 case 513:
5961 /* Line 1787 of yacc.c */
5962 #line 2472 "conf_parser.y"
5963 {
5964 ConfigFileEntry.anti_nick_flood = yylval.number;
5965 }
5966 break;
5967
5968 case 514:
5969 /* Line 1787 of yacc.c */
5970 #line 2477 "conf_parser.y"
5971 {
5972 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5973 }
5974 break;
5975
5976 case 515:
5977 /* Line 1787 of yacc.c */
5978 #line 2482 "conf_parser.y"
5979 {
5980 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5981 }
5982 break;
5983
5984 case 516:
5985 /* Line 1787 of yacc.c */
5986 #line 2487 "conf_parser.y"
5987 {
5988 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5989 }
5990 break;
5991
5992 case 517:
5993 /* Line 1787 of yacc.c */
5994 #line 2492 "conf_parser.y"
5995 {
5996 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5997 }
5998 break;
5999
6000 case 518:
6001 /* Line 1787 of yacc.c */
6002 #line 2497 "conf_parser.y"
6003 {
6004 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6005 }
6006 break;
6007
6008 case 519:
6009 /* Line 1787 of yacc.c */
6010 #line 2502 "conf_parser.y"
6011 {
6012 if (conf_parser_ctx.pass == 2)
6013 ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6014 }
6015 break;
6016
6017 case 520:
6018 /* Line 1787 of yacc.c */
6019 #line 2508 "conf_parser.y"
6020 {
6021 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6022 {
6023 ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6024 ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6025 ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6026 exit(0);
6027 }
6028 }
6029 break;
6030
6031 case 521:
6032 /* Line 1787 of yacc.c */
6033 #line 2519 "conf_parser.y"
6034 {
6035 ConfigFileEntry.invisible_on_connect = yylval.number;
6036 }
6037 break;
6038
6039 case 522:
6040 /* Line 1787 of yacc.c */
6041 #line 2524 "conf_parser.y"
6042 {
6043 ConfigFileEntry.warn_no_nline = yylval.number;
6044 }
6045 break;
6046
6047 case 523:
6048 /* Line 1787 of yacc.c */
6049 #line 2529 "conf_parser.y"
6050 {
6051 ConfigFileEntry.stats_e_disabled = yylval.number;
6052 }
6053 break;
6054
6055 case 524:
6056 /* Line 1787 of yacc.c */
6057 #line 2534 "conf_parser.y"
6058 {
6059 ConfigFileEntry.stats_o_oper_only = yylval.number;
6060 }
6061 break;
6062
6063 case 525:
6064 /* Line 1787 of yacc.c */
6065 #line 2539 "conf_parser.y"
6066 {
6067 ConfigFileEntry.stats_P_oper_only = yylval.number;
6068 }
6069 break;
6070
6071 case 526:
6072 /* Line 1787 of yacc.c */
6073 #line 2544 "conf_parser.y"
6074 {
6075 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6076 }
6077 break;
6078
6079 case 527:
6080 /* Line 1787 of yacc.c */
6081 #line 2547 "conf_parser.y"
6082 {
6083 ConfigFileEntry.stats_k_oper_only = 1;
6084 }
6085 break;
6086
6087 case 528:
6088 /* Line 1787 of yacc.c */
6089 #line 2552 "conf_parser.y"
6090 {
6091 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6092 }
6093 break;
6094
6095 case 529:
6096 /* Line 1787 of yacc.c */
6097 #line 2555 "conf_parser.y"
6098 {
6099 ConfigFileEntry.stats_i_oper_only = 1;
6100 }
6101 break;
6102
6103 case 530:
6104 /* Line 1787 of yacc.c */
6105 #line 2560 "conf_parser.y"
6106 {
6107 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6108 }
6109 break;
6110
6111 case 531:
6112 /* Line 1787 of yacc.c */
6113 #line 2565 "conf_parser.y"
6114 {
6115 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6116 }
6117 break;
6118
6119 case 532:
6120 /* Line 1787 of yacc.c */
6121 #line 2570 "conf_parser.y"
6122 {
6123 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6124 }
6125 break;
6126
6127 case 533:
6128 /* Line 1787 of yacc.c */
6129 #line 2575 "conf_parser.y"
6130 {
6131 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6132 }
6133 break;
6134
6135 case 534:
6136 /* Line 1787 of yacc.c */
6137 #line 2580 "conf_parser.y"
6138 {
6139 ConfigFileEntry.short_motd = yylval.number;
6140 }
6141 break;
6142
6143 case 535:
6144 /* Line 1787 of yacc.c */
6145 #line 2585 "conf_parser.y"
6146 {
6147 ConfigFileEntry.no_oper_flood = yylval.number;
6148 }
6149 break;
6150
6151 case 536:
6152 /* Line 1787 of yacc.c */
6153 #line 2590 "conf_parser.y"
6154 {
6155 ConfigFileEntry.true_no_oper_flood = yylval.number;
6156 }
6157 break;
6158
6159 case 537:
6160 /* Line 1787 of yacc.c */
6161 #line 2595 "conf_parser.y"
6162 {
6163 ConfigFileEntry.oper_pass_resv = yylval.number;
6164 }
6165 break;
6166
6167 case 538:
6168 /* Line 1787 of yacc.c */
6169 #line 2600 "conf_parser.y"
6170 {
6171 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6172 }
6173 break;
6174
6175 case 539:
6176 /* Line 1787 of yacc.c */
6177 #line 2605 "conf_parser.y"
6178 {
6179 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6180 }
6181 break;
6182
6183 case 540:
6184 /* Line 1787 of yacc.c */
6185 #line 2610 "conf_parser.y"
6186 {
6187 ConfigFileEntry.use_egd = yylval.number;
6188 }
6189 break;
6190
6191 case 541:
6192 /* Line 1787 of yacc.c */
6193 #line 2615 "conf_parser.y"
6194 {
6195 if (conf_parser_ctx.pass == 2)
6196 {
6197 MyFree(ConfigFileEntry.egdpool_path);
6198 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6199 }
6200 }
6201 break;
6202
6203 case 542:
6204 /* Line 1787 of yacc.c */
6205 #line 2624 "conf_parser.y"
6206 {
6207 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6208 {
6209 MyFree(ConfigFileEntry.service_name);
6210 ConfigFileEntry.service_name = xstrdup(yylval.string);
6211 }
6212 }
6213 break;
6214
6215 case 543:
6216 /* Line 1787 of yacc.c */
6217 #line 2633 "conf_parser.y"
6218 {
6219 ConfigFileEntry.ping_cookie = yylval.number;
6220 }
6221 break;
6222
6223 case 544:
6224 /* Line 1787 of yacc.c */
6225 #line 2638 "conf_parser.y"
6226 {
6227 ConfigFileEntry.disable_auth = yylval.number;
6228 }
6229 break;
6230
6231 case 545:
6232 /* Line 1787 of yacc.c */
6233 #line 2643 "conf_parser.y"
6234 {
6235 ConfigFileEntry.throttle_time = yylval.number;
6236 }
6237 break;
6238
6239 case 546:
6240 /* Line 1787 of yacc.c */
6241 #line 2648 "conf_parser.y"
6242 {
6243 ConfigFileEntry.oper_umodes = 0;
6244 }
6245 break;
6246
6247 case 550:
6248 /* Line 1787 of yacc.c */
6249 #line 2654 "conf_parser.y"
6250 {
6251 ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6252 }
6253 break;
6254
6255 case 551:
6256 /* Line 1787 of yacc.c */
6257 #line 2657 "conf_parser.y"
6258 {
6259 ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6260 }
6261 break;
6262
6263 case 552:
6264 /* Line 1787 of yacc.c */
6265 #line 2660 "conf_parser.y"
6266 {
6267 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6268 }
6269 break;
6270
6271 case 553:
6272 /* Line 1787 of yacc.c */
6273 #line 2663 "conf_parser.y"
6274 {
6275 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6276 }
6277 break;
6278
6279 case 554:
6280 /* Line 1787 of yacc.c */
6281 #line 2666 "conf_parser.y"
6282 {
6283 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6284 }
6285 break;
6286
6287 case 555:
6288 /* Line 1787 of yacc.c */
6289 #line 2669 "conf_parser.y"
6290 {
6291 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6292 }
6293 break;
6294
6295 case 556:
6296 /* Line 1787 of yacc.c */
6297 #line 2672 "conf_parser.y"
6298 {
6299 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6300 }
6301 break;
6302
6303 case 557:
6304 /* Line 1787 of yacc.c */
6305 #line 2675 "conf_parser.y"
6306 {
6307 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6308 }
6309 break;
6310
6311 case 558:
6312 /* Line 1787 of yacc.c */
6313 #line 2678 "conf_parser.y"
6314 {
6315 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6316 }
6317 break;
6318
6319 case 559:
6320 /* Line 1787 of yacc.c */
6321 #line 2681 "conf_parser.y"
6322 {
6323 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6324 }
6325 break;
6326
6327 case 560:
6328 /* Line 1787 of yacc.c */
6329 #line 2684 "conf_parser.y"
6330 {
6331 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6332 }
6333 break;
6334
6335 case 561:
6336 /* Line 1787 of yacc.c */
6337 #line 2687 "conf_parser.y"
6338 {
6339 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6340 }
6341 break;
6342
6343 case 562:
6344 /* Line 1787 of yacc.c */
6345 #line 2690 "conf_parser.y"
6346 {
6347 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6348 }
6349 break;
6350
6351 case 563:
6352 /* Line 1787 of yacc.c */
6353 #line 2693 "conf_parser.y"
6354 {
6355 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6356 }
6357 break;
6358
6359 case 564:
6360 /* Line 1787 of yacc.c */
6361 #line 2696 "conf_parser.y"
6362 {
6363 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6364 }
6365 break;
6366
6367 case 565:
6368 /* Line 1787 of yacc.c */
6369 #line 2699 "conf_parser.y"
6370 {
6371 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6372 }
6373 break;
6374
6375 case 566:
6376 /* Line 1787 of yacc.c */
6377 #line 2702 "conf_parser.y"
6378 {
6379 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6380 }
6381 break;
6382
6383 case 567:
6384 /* Line 1787 of yacc.c */
6385 #line 2705 "conf_parser.y"
6386 {
6387 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6388 }
6389 break;
6390
6391 case 568:
6392 /* Line 1787 of yacc.c */
6393 #line 2708 "conf_parser.y"
6394 {
6395 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6396 }
6397 break;
6398
6399 case 569:
6400 /* Line 1787 of yacc.c */
6401 #line 2711 "conf_parser.y"
6402 {
6403 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6404 }
6405 break;
6406
6407 case 570:
6408 /* Line 1787 of yacc.c */
6409 #line 2714 "conf_parser.y"
6410 {
6411 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6412 }
6413 break;
6414
6415 case 571:
6416 /* Line 1787 of yacc.c */
6417 #line 2719 "conf_parser.y"
6418 {
6419 ConfigFileEntry.oper_only_umodes = 0;
6420 }
6421 break;
6422
6423 case 575:
6424 /* Line 1787 of yacc.c */
6425 #line 2725 "conf_parser.y"
6426 {
6427 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6428 }
6429 break;
6430
6431 case 576:
6432 /* Line 1787 of yacc.c */
6433 #line 2728 "conf_parser.y"
6434 {
6435 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6436 }
6437 break;
6438
6439 case 577:
6440 /* Line 1787 of yacc.c */
6441 #line 2731 "conf_parser.y"
6442 {
6443 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6444 }
6445 break;
6446
6447 case 578:
6448 /* Line 1787 of yacc.c */
6449 #line 2734 "conf_parser.y"
6450 {
6451 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6452 }
6453 break;
6454
6455 case 579:
6456 /* Line 1787 of yacc.c */
6457 #line 2737 "conf_parser.y"
6458 {
6459 ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6460 }
6461 break;
6462
6463 case 580:
6464 /* Line 1787 of yacc.c */
6465 #line 2740 "conf_parser.y"
6466 {
6467 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6468 }
6469 break;
6470
6471 case 581:
6472 /* Line 1787 of yacc.c */
6473 #line 2743 "conf_parser.y"
6474 {
6475 ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6476 }
6477 break;
6478
6479 case 582:
6480 /* Line 1787 of yacc.c */
6481 #line 2746 "conf_parser.y"
6482 {
6483 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6484 }
6485 break;
6486
6487 case 583:
6488 /* Line 1787 of yacc.c */
6489 #line 2749 "conf_parser.y"
6490 {
6491 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6492 }
6493 break;
6494
6495 case 584:
6496 /* Line 1787 of yacc.c */
6497 #line 2752 "conf_parser.y"
6498 {
6499 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6500 }
6501 break;
6502
6503 case 585:
6504 /* Line 1787 of yacc.c */
6505 #line 2755 "conf_parser.y"
6506 {
6507 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6508 }
6509 break;
6510
6511 case 586:
6512 /* Line 1787 of yacc.c */
6513 #line 2758 "conf_parser.y"
6514 {
6515 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6516 }
6517 break;
6518
6519 case 587:
6520 /* Line 1787 of yacc.c */
6521 #line 2761 "conf_parser.y"
6522 {
6523 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6524 }
6525 break;
6526
6527 case 588:
6528 /* Line 1787 of yacc.c */
6529 #line 2764 "conf_parser.y"
6530 {
6531 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6532 }
6533 break;
6534
6535 case 589:
6536 /* Line 1787 of yacc.c */
6537 #line 2767 "conf_parser.y"
6538 {
6539 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6540 }
6541 break;
6542
6543 case 590:
6544 /* Line 1787 of yacc.c */
6545 #line 2770 "conf_parser.y"
6546 {
6547 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6548 }
6549 break;
6550
6551 case 591:
6552 /* Line 1787 of yacc.c */
6553 #line 2773 "conf_parser.y"
6554 {
6555 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6556 }
6557 break;
6558
6559 case 592:
6560 /* Line 1787 of yacc.c */
6561 #line 2776 "conf_parser.y"
6562 {
6563 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6564 }
6565 break;
6566
6567 case 593:
6568 /* Line 1787 of yacc.c */
6569 #line 2779 "conf_parser.y"
6570 {
6571 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6572 }
6573 break;
6574
6575 case 594:
6576 /* Line 1787 of yacc.c */
6577 #line 2782 "conf_parser.y"
6578 {
6579 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6580 }
6581 break;
6582
6583 case 595:
6584 /* Line 1787 of yacc.c */
6585 #line 2785 "conf_parser.y"
6586 {
6587 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6588 }
6589 break;
6590
6591 case 596:
6592 /* Line 1787 of yacc.c */
6593 #line 2790 "conf_parser.y"
6594 {
6595 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6596 }
6597 break;
6598
6599 case 597:
6600 /* Line 1787 of yacc.c */
6601 #line 2795 "conf_parser.y"
6602 {
6603 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6604 }
6605 break;
6606
6607 case 598:
6608 /* Line 1787 of yacc.c */
6609 #line 2800 "conf_parser.y"
6610 {
6611 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6612 }
6613 break;
6614
6615 case 615:
6616 /* Line 1787 of yacc.c */
6617 #line 2823 "conf_parser.y"
6618 {
6619 ConfigChannel.disable_fake_channels = yylval.number;
6620 }
6621 break;
6622
6623 case 616:
6624 /* Line 1787 of yacc.c */
6625 #line 2828 "conf_parser.y"
6626 {
6627 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6628 }
6629 break;
6630
6631 case 617:
6632 /* Line 1787 of yacc.c */
6633 #line 2833 "conf_parser.y"
6634 {
6635 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6636 }
6637 break;
6638
6639 case 618:
6640 /* Line 1787 of yacc.c */
6641 #line 2838 "conf_parser.y"
6642 {
6643 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6644 }
6645 break;
6646
6647 case 619:
6648 /* Line 1787 of yacc.c */
6649 #line 2843 "conf_parser.y"
6650 {
6651 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6652 }
6653 break;
6654
6655 case 620:
6656 /* Line 1787 of yacc.c */
6657 #line 2848 "conf_parser.y"
6658 {
6659 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6660 }
6661 break;
6662
6663 case 621:
6664 /* Line 1787 of yacc.c */
6665 #line 2853 "conf_parser.y"
6666 {
6667 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6668 }
6669 break;
6670
6671 case 622:
6672 /* Line 1787 of yacc.c */
6673 #line 2858 "conf_parser.y"
6674 {
6675 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6676 }
6677 break;
6678
6679 case 623:
6680 /* Line 1787 of yacc.c */
6681 #line 2863 "conf_parser.y"
6682 {
6683 ConfigChannel.no_create_on_split = yylval.number;
6684 }
6685 break;
6686
6687 case 624:
6688 /* Line 1787 of yacc.c */
6689 #line 2868 "conf_parser.y"
6690 {
6691 ConfigChannel.no_join_on_split = yylval.number;
6692 }
6693 break;
6694
6695 case 625:
6696 /* Line 1787 of yacc.c */
6697 #line 2873 "conf_parser.y"
6698 {
6699 GlobalSetOptions.joinfloodcount = yylval.number;
6700 }
6701 break;
6702
6703 case 626:
6704 /* Line 1787 of yacc.c */
6705 #line 2878 "conf_parser.y"
6706 {
6707 GlobalSetOptions.joinfloodtime = yylval.number;
6708 }
6709 break;
6710
6711 case 638:
6712 /* Line 1787 of yacc.c */
6713 #line 2897 "conf_parser.y"
6714 {
6715 if (conf_parser_ctx.pass == 2)
6716 ConfigServerHide.flatten_links = yylval.number;
6717 }
6718 break;
6719
6720 case 639:
6721 /* Line 1787 of yacc.c */
6722 #line 2903 "conf_parser.y"
6723 {
6724 if (conf_parser_ctx.pass == 2)
6725 ConfigServerHide.hide_servers = yylval.number;
6726 }
6727 break;
6728
6729 case 640:
6730 /* Line 1787 of yacc.c */
6731 #line 2909 "conf_parser.y"
6732 {
6733 if (conf_parser_ctx.pass == 2)
6734 ConfigServerHide.hide_services = yylval.number;
6735 }
6736 break;
6737
6738 case 641:
6739 /* Line 1787 of yacc.c */
6740 #line 2915 "conf_parser.y"
6741 {
6742 if (conf_parser_ctx.pass == 2)
6743 {
6744 MyFree(ConfigServerHide.hidden_name);
6745 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6746 }
6747 }
6748 break;
6749
6750 case 642:
6751 /* Line 1787 of yacc.c */
6752 #line 2924 "conf_parser.y"
6753 {
6754 if (conf_parser_ctx.pass == 2)
6755 {
6756 if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6757 {
6758 eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6759 ConfigServerHide.links_disabled = 0;
6760 }
6761
6762 ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6763 }
6764 }
6765 break;
6766
6767 case 643:
6768 /* Line 1787 of yacc.c */
6769 #line 2938 "conf_parser.y"
6770 {
6771 if (conf_parser_ctx.pass == 2)
6772 ConfigServerHide.hidden = yylval.number;
6773 }
6774 break;
6775
6776 case 644:
6777 /* Line 1787 of yacc.c */
6778 #line 2944 "conf_parser.y"
6779 {
6780 if (conf_parser_ctx.pass == 2)
6781 ConfigServerHide.hide_server_ips = yylval.number;
6782 }
6783 break;
6784
6785
6786 /* Line 1787 of yacc.c */
6787 #line 6788 "conf_parser.c"
6788 default: break;
6789 }
6790 /* User semantic actions sometimes alter yychar, and that requires
6791 that yytoken be updated with the new translation. We take the
6792 approach of translating immediately before every use of yytoken.
6793 One alternative is translating here after every semantic action,
6794 but that translation would be missed if the semantic action invokes
6795 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6796 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6797 incorrect destructor might then be invoked immediately. In the
6798 case of YYERROR or YYBACKUP, subsequent parser actions might lead
6799 to an incorrect destructor call or verbose syntax error message
6800 before the lookahead is translated. */
6801 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6802
6803 YYPOPSTACK (yylen);
6804 yylen = 0;
6805 YY_STACK_PRINT (yyss, yyssp);
6806
6807 *++yyvsp = yyval;
6808
6809 /* Now `shift' the result of the reduction. Determine what state
6810 that goes to, based on the state we popped back to and the rule
6811 number reduced by. */
6812
6813 yyn = yyr1[yyn];
6814
6815 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6816 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6817 yystate = yytable[yystate];
6818 else
6819 yystate = yydefgoto[yyn - YYNTOKENS];
6820
6821 goto yynewstate;
6822
6823
6824 /*------------------------------------.
6825 | yyerrlab -- here on detecting error |
6826 `------------------------------------*/
6827 yyerrlab:
6828 /* Make sure we have latest lookahead translation. See comments at
6829 user semantic actions for why this is necessary. */
6830 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6831
6832 /* If not already recovering from an error, report this error. */
6833 if (!yyerrstatus)
6834 {
6835 ++yynerrs;
6836 #if ! YYERROR_VERBOSE
6837 yyerror (YY_("syntax error"));
6838 #else
6839 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6840 yyssp, yytoken)
6841 {
6842 char const *yymsgp = YY_("syntax error");
6843 int yysyntax_error_status;
6844 yysyntax_error_status = YYSYNTAX_ERROR;
6845 if (yysyntax_error_status == 0)
6846 yymsgp = yymsg;
6847 else if (yysyntax_error_status == 1)
6848 {
6849 if (yymsg != yymsgbuf)
6850 YYSTACK_FREE (yymsg);
6851 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6852 if (!yymsg)
6853 {
6854 yymsg = yymsgbuf;
6855 yymsg_alloc = sizeof yymsgbuf;
6856 yysyntax_error_status = 2;
6857 }
6858 else
6859 {
6860 yysyntax_error_status = YYSYNTAX_ERROR;
6861 yymsgp = yymsg;
6862 }
6863 }
6864 yyerror (yymsgp);
6865 if (yysyntax_error_status == 2)
6866 goto yyexhaustedlab;
6867 }
6868 # undef YYSYNTAX_ERROR
6869 #endif
6870 }
6871
6872
6873
6874 if (yyerrstatus == 3)
6875 {
6876 /* If just tried and failed to reuse lookahead token after an
6877 error, discard it. */
6878
6879 if (yychar <= YYEOF)
6880 {
6881 /* Return failure if at end of input. */
6882 if (yychar == YYEOF)
6883 YYABORT;
6884 }
6885 else
6886 {
6887 yydestruct ("Error: discarding",
6888 yytoken, &yylval);
6889 yychar = YYEMPTY;
6890 }
6891 }
6892
6893 /* Else will try to reuse lookahead token after shifting the error
6894 token. */
6895 goto yyerrlab1;
6896
6897
6898 /*---------------------------------------------------.
6899 | yyerrorlab -- error raised explicitly by YYERROR. |
6900 `---------------------------------------------------*/
6901 yyerrorlab:
6902
6903 /* Pacify compilers like GCC when the user code never invokes
6904 YYERROR and the label yyerrorlab therefore never appears in user
6905 code. */
6906 if (/*CONSTCOND*/ 0)
6907 goto yyerrorlab;
6908
6909 /* Do not reclaim the symbols of the rule which action triggered
6910 this YYERROR. */
6911 YYPOPSTACK (yylen);
6912 yylen = 0;
6913 YY_STACK_PRINT (yyss, yyssp);
6914 yystate = *yyssp;
6915 goto yyerrlab1;
6916
6917
6918 /*-------------------------------------------------------------.
6919 | yyerrlab1 -- common code for both syntax error and YYERROR. |
6920 `-------------------------------------------------------------*/
6921 yyerrlab1:
6922 yyerrstatus = 3; /* Each real token shifted decrements this. */
6923
6924 for (;;)
6925 {
6926 yyn = yypact[yystate];
6927 if (!yypact_value_is_default (yyn))
6928 {
6929 yyn += YYTERROR;
6930 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6931 {
6932 yyn = yytable[yyn];
6933 if (0 < yyn)
6934 break;
6935 }
6936 }
6937
6938 /* Pop the current state because it cannot handle the error token. */
6939 if (yyssp == yyss)
6940 YYABORT;
6941
6942
6943 yydestruct ("Error: popping",
6944 yystos[yystate], yyvsp);
6945 YYPOPSTACK (1);
6946 yystate = *yyssp;
6947 YY_STACK_PRINT (yyss, yyssp);
6948 }
6949
6950 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6951 *++yyvsp = yylval;
6952 YY_IGNORE_MAYBE_UNINITIALIZED_END
6953
6954
6955 /* Shift the error token. */
6956 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6957
6958 yystate = yyn;
6959 goto yynewstate;
6960
6961
6962 /*-------------------------------------.
6963 | yyacceptlab -- YYACCEPT comes here. |
6964 `-------------------------------------*/
6965 yyacceptlab:
6966 yyresult = 0;
6967 goto yyreturn;
6968
6969 /*-----------------------------------.
6970 | yyabortlab -- YYABORT comes here. |
6971 `-----------------------------------*/
6972 yyabortlab:
6973 yyresult = 1;
6974 goto yyreturn;
6975
6976 #if !defined yyoverflow || YYERROR_VERBOSE
6977 /*-------------------------------------------------.
6978 | yyexhaustedlab -- memory exhaustion comes here. |
6979 `-------------------------------------------------*/
6980 yyexhaustedlab:
6981 yyerror (YY_("memory exhausted"));
6982 yyresult = 2;
6983 /* Fall through. */
6984 #endif
6985
6986 yyreturn:
6987 if (yychar != YYEMPTY)
6988 {
6989 /* Make sure we have latest lookahead translation. See comments at
6990 user semantic actions for why this is necessary. */
6991 yytoken = YYTRANSLATE (yychar);
6992 yydestruct ("Cleanup: discarding lookahead",
6993 yytoken, &yylval);
6994 }
6995 /* Do not reclaim the symbols of the rule which action triggered
6996 this YYABORT or YYACCEPT. */
6997 YYPOPSTACK (yylen);
6998 YY_STACK_PRINT (yyss, yyssp);
6999 while (yyssp != yyss)
7000 {
7001 yydestruct ("Cleanup: popping",
7002 yystos[*yyssp], yyvsp);
7003 YYPOPSTACK (1);
7004 }
7005 #ifndef yyoverflow
7006 if (yyss != yyssa)
7007 YYSTACK_FREE (yyss);
7008 #endif
7009 #if YYERROR_VERBOSE
7010 if (yymsg != yymsgbuf)
7011 YYSTACK_FREE (yymsg);
7012 #endif
7013 /* Make sure YYID is used. */
7014 return YYID (yyresult);
7015 }
7016
7017

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision