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

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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