ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/src/conf_parser.c
(Generate patch)

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1520 by michael, Wed Sep 5 15:50:02 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

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

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1520 by michael, Wed Sep 5 15:50:02 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1992 by michael, Fri May 10 18:32:26 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)