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/trunk/src/conf_parser.c (file contents):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 2196 by michael, Tue Jun 4 18:30:12 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.33-cc5a9.  */
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.33-cc5a9"
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 358 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 89 | Line 89
89   #include "resv.h"
90   #include "numeric.h"
91   #include "s_user.h"
92 + #include "motd.h"
93  
94   #ifdef HAVE_LIBCRYPTO
95   #include <openssl/rsa.h>
# Line 97 | Line 98
98   #include <openssl/dh.h>
99   #endif
100  
101 < int yylex(void);
101 > #include "rsa.h"
102  
103 < 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;
103 > int yylex(void);
104  
105 < struct CollectItem
105 > static struct
106   {
107 <  dlink_node node;
108 <  char *name;
109 <  char *user;
110 <  char *host;
111 <  char *passwd;
112 <  int  port;
113 <  int  flags;
114 < #ifdef HAVE_LIBCRYPTO
115 <  char *rsa_public_key_file;
116 <  RSA *rsa_public_key;
117 < #endif
118 < };
107 >  struct {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct {
114 >    char buf[IRCD_BUFSIZE];
115 >  } name,
116 >    user,
117 >    host,
118 >    addr,
119 >    bind,
120 >    file,
121 >    ciph,
122 >    rpass,
123 >    spass,
124 >    class;
125 >
126 >  struct {
127 >    unsigned int value;
128 >  } flags,
129 >    modes,
130 >    size,
131 >    type,
132 >    port,
133 >    aftype,
134 >    ping_freq,
135 >    max_perip,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_global,
141 >    max_local,
142 >    max_ident,
143 >    max_sendq,
144 >    max_recvq,
145 >    cidr_bitlen_ipv4,
146 >    cidr_bitlen_ipv6,
147 >    number_per_cidr;
148 > } block_state;
149  
150   static void
151 < free_collect_item(struct CollectItem *item)
151 > reset_block_state(void)
152   {
153 <  MyFree(item->name);
154 <  MyFree(item->user);
155 <  MyFree(item->host);
156 <  MyFree(item->passwd);
157 < #ifdef HAVE_LIBCRYPTO
158 <  MyFree(item->rsa_public_key_file);
159 < #endif
160 <  MyFree(item);
153 >  dlink_node *ptr = NULL, *ptr_next = NULL;
154 >
155 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156 >  {
157 >    MyFree(ptr->data);
158 >    dlinkDelete(ptr, &block_state.mask.list);
159 >    free_dlink_node(ptr);
160 >  }
161 >
162 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163 >  {
164 >    MyFree(ptr->data);
165 >    dlinkDelete(ptr, &block_state.leaf.list);
166 >    free_dlink_node(ptr);
167 >  }
168 >
169 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170 >  {
171 >    MyFree(ptr->data);
172 >    dlinkDelete(ptr, &block_state.hub.list);
173 >    free_dlink_node(ptr);
174 >  }
175 >
176 >  memset(&block_state, 0, sizeof(block_state));
177   }
178  
179  
180 < /* Line 358 of yacc.c  */
181 < #line 153 "conf_parser.c"
180 > /* Line 371 of yacc.c  */
181 > #line 182 "conf_parser.c"
182  
183   # ifndef YY_NULL
184   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 169 | Line 198 | free_collect_item(struct CollectItem *it
198  
199   /* In a future release of Bison, this section will be replaced
200     by #include "y.tab.h".  */
201 < #ifndef YY_YY_Y_TAB_H_INCLUDED
202 < # define YY_YY_Y_TAB_H_INCLUDED
201 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
202 > # define YY_YY_CONF_PARSER_H_INCLUDED
203   /* Enabling traces.  */
204   #ifndef YYDEBUG
205   # define YYDEBUG 0
# Line 218 | Line 247 | extern int yydebug;
247       EXCEED_LIMIT = 288,
248       EXEMPT = 289,
249       FAILED_OPER_NOTICE = 290,
250 <     IRCD_FLAGS = 291,
251 <     FLATTEN_LINKS = 292,
252 <     GECOS = 293,
253 <     GENERAL = 294,
254 <     GLINE = 295,
255 <     GLINE_DURATION = 296,
256 <     GLINE_ENABLE = 297,
257 <     GLINE_EXEMPT = 298,
258 <     GLINE_REQUEST_DURATION = 299,
259 <     GLINE_MIN_CIDR = 300,
260 <     GLINE_MIN_CIDR6 = 301,
261 <     GLOBAL_KILL = 302,
262 <     IRCD_AUTH = 303,
263 <     NEED_IDENT = 304,
264 <     HAVENT_READ_CONF = 305,
265 <     HIDDEN = 306,
266 <     HIDDEN_NAME = 307,
267 <     HIDE_SERVER_IPS = 308,
268 <     HIDE_SERVERS = 309,
269 <     HIDE_SPOOF_IPS = 310,
270 <     HOST = 311,
271 <     HUB = 312,
272 <     HUB_MASK = 313,
273 <     IGNORE_BOGUS_TS = 314,
274 <     INVISIBLE_ON_CONNECT = 315,
275 <     IP = 316,
276 <     KILL = 317,
277 <     KILL_CHASE_TIME_LIMIT = 318,
278 <     KLINE = 319,
279 <     KLINE_EXEMPT = 320,
280 <     KNOCK_DELAY = 321,
281 <     KNOCK_DELAY_CHANNEL = 322,
282 <     LEAF_MASK = 323,
283 <     LINKS_DELAY = 324,
284 <     LISTEN = 325,
285 <     T_LOG = 326,
286 <     MAX_ACCEPT = 327,
287 <     MAX_BANS = 328,
288 <     MAX_CHANS_PER_OPER = 329,
289 <     MAX_CHANS_PER_USER = 330,
290 <     MAX_GLOBAL = 331,
291 <     MAX_IDENT = 332,
292 <     MAX_LOCAL = 333,
293 <     MAX_NICK_CHANGES = 334,
294 <     MAX_NICK_TIME = 335,
295 <     MAX_NUMBER = 336,
296 <     MAX_TARGETS = 337,
297 <     MAX_WATCH = 338,
298 <     MESSAGE_LOCALE = 339,
299 <     MIN_NONWILDCARD = 340,
300 <     MIN_NONWILDCARD_SIMPLE = 341,
301 <     MODULE = 342,
302 <     MODULES = 343,
303 <     NAME = 344,
304 <     NEED_PASSWORD = 345,
305 <     NETWORK_DESC = 346,
306 <     NETWORK_NAME = 347,
307 <     NICK = 348,
308 <     NICK_CHANGES = 349,
309 <     NO_CREATE_ON_SPLIT = 350,
310 <     NO_JOIN_ON_SPLIT = 351,
311 <     NO_OPER_FLOOD = 352,
312 <     NO_TILDE = 353,
313 <     NUMBER = 354,
314 <     NUMBER_PER_CIDR = 355,
315 <     NUMBER_PER_IP = 356,
316 <     OPERATOR = 357,
317 <     OPERS_BYPASS_CALLERID = 358,
318 <     OPER_ONLY_UMODES = 359,
319 <     OPER_PASS_RESV = 360,
320 <     OPER_SPY_T = 361,
321 <     OPER_UMODES = 362,
322 <     JOIN_FLOOD_COUNT = 363,
323 <     JOIN_FLOOD_TIME = 364,
324 <     PACE_WAIT = 365,
325 <     PACE_WAIT_SIMPLE = 366,
326 <     PASSWORD = 367,
327 <     PATH = 368,
328 <     PING_COOKIE = 369,
329 <     PING_TIME = 370,
330 <     PING_WARNING = 371,
331 <     PORT = 372,
332 <     QSTRING = 373,
333 <     QUIET_ON_BAN = 374,
334 <     REASON = 375,
335 <     REDIRPORT = 376,
336 <     REDIRSERV = 377,
337 <     REGEX_T = 378,
338 <     REHASH = 379,
339 <     REMOTE = 380,
340 <     REMOTEBAN = 381,
341 <     RESTRICT_CHANNELS = 382,
342 <     RSA_PRIVATE_KEY_FILE = 383,
343 <     RSA_PUBLIC_KEY_FILE = 384,
344 <     SSL_CERTIFICATE_FILE = 385,
345 <     SSL_DH_PARAM_FILE = 386,
346 <     T_SSL_CLIENT_METHOD = 387,
347 <     T_SSL_SERVER_METHOD = 388,
348 <     T_SSLV3 = 389,
349 <     T_TLSV1 = 390,
350 <     RESV = 391,
351 <     RESV_EXEMPT = 392,
352 <     SECONDS = 393,
353 <     MINUTES = 394,
354 <     HOURS = 395,
355 <     DAYS = 396,
356 <     WEEKS = 397,
357 <     SENDQ = 398,
358 <     SEND_PASSWORD = 399,
359 <     SERVERHIDE = 400,
360 <     SERVERINFO = 401,
361 <     IRCD_SID = 402,
362 <     TKLINE_EXPIRE_NOTICES = 403,
363 <     T_SHARED = 404,
364 <     T_CLUSTER = 405,
365 <     TYPE = 406,
366 <     SHORT_MOTD = 407,
367 <     SPOOF = 408,
368 <     SPOOF_NOTICE = 409,
369 <     STATS_E_DISABLED = 410,
370 <     STATS_I_OPER_ONLY = 411,
371 <     STATS_K_OPER_ONLY = 412,
372 <     STATS_O_OPER_ONLY = 413,
373 <     STATS_P_OPER_ONLY = 414,
374 <     TBOOL = 415,
375 <     TMASKED = 416,
376 <     TS_MAX_DELTA = 417,
377 <     TS_WARN_DELTA = 418,
378 <     TWODOTS = 419,
379 <     T_ALL = 420,
380 <     T_BOTS = 421,
381 <     T_SOFTCALLERID = 422,
382 <     T_CALLERID = 423,
383 <     T_CCONN = 424,
384 <     T_CCONN_FULL = 425,
385 <     T_SSL_CIPHER_LIST = 426,
386 <     T_DEAF = 427,
387 <     T_DEBUG = 428,
388 <     T_DLINE = 429,
389 <     T_EXTERNAL = 430,
390 <     T_FULL = 431,
391 <     T_INVISIBLE = 432,
392 <     T_IPV4 = 433,
393 <     T_IPV6 = 434,
394 <     T_LOCOPS = 435,
395 <     T_MAX_CLIENTS = 436,
396 <     T_NCHANGE = 437,
397 <     T_OPERWALL = 438,
398 <     T_RECVQ = 439,
399 <     T_REJ = 440,
400 <     T_SERVER = 441,
401 <     T_SERVNOTICE = 442,
402 <     T_SET = 443,
403 <     T_SKILL = 444,
250 >     FLATTEN_LINKS = 291,
251 >     GECOS = 292,
252 >     GENERAL = 293,
253 >     GLINE = 294,
254 >     GLINE_DURATION = 295,
255 >     GLINE_ENABLE = 296,
256 >     GLINE_EXEMPT = 297,
257 >     GLINE_MIN_CIDR = 298,
258 >     GLINE_MIN_CIDR6 = 299,
259 >     GLINE_REQUEST_DURATION = 300,
260 >     GLOBAL_KILL = 301,
261 >     HAVENT_READ_CONF = 302,
262 >     HIDDEN = 303,
263 >     HIDDEN_NAME = 304,
264 >     HIDE_IDLE_FROM_OPERS = 305,
265 >     HIDE_SERVER_IPS = 306,
266 >     HIDE_SERVERS = 307,
267 >     HIDE_SERVICES = 308,
268 >     HIDE_SPOOF_IPS = 309,
269 >     HOST = 310,
270 >     HUB = 311,
271 >     HUB_MASK = 312,
272 >     IGNORE_BOGUS_TS = 313,
273 >     INVISIBLE_ON_CONNECT = 314,
274 >     IP = 315,
275 >     IRCD_AUTH = 316,
276 >     IRCD_FLAGS = 317,
277 >     IRCD_SID = 318,
278 >     JOIN_FLOOD_COUNT = 319,
279 >     JOIN_FLOOD_TIME = 320,
280 >     KILL = 321,
281 >     KILL_CHASE_TIME_LIMIT = 322,
282 >     KLINE = 323,
283 >     KLINE_EXEMPT = 324,
284 >     KNOCK_DELAY = 325,
285 >     KNOCK_DELAY_CHANNEL = 326,
286 >     LEAF_MASK = 327,
287 >     LINKS_DELAY = 328,
288 >     LISTEN = 329,
289 >     MASK = 330,
290 >     MAX_ACCEPT = 331,
291 >     MAX_BANS = 332,
292 >     MAX_CHANS_PER_OPER = 333,
293 >     MAX_CHANS_PER_USER = 334,
294 >     MAX_GLOBAL = 335,
295 >     MAX_IDENT = 336,
296 >     MAX_IDLE = 337,
297 >     MAX_LOCAL = 338,
298 >     MAX_NICK_CHANGES = 339,
299 >     MAX_NICK_LENGTH = 340,
300 >     MAX_NICK_TIME = 341,
301 >     MAX_NUMBER = 342,
302 >     MAX_TARGETS = 343,
303 >     MAX_TOPIC_LENGTH = 344,
304 >     MAX_WATCH = 345,
305 >     MIN_IDLE = 346,
306 >     MIN_NONWILDCARD = 347,
307 >     MIN_NONWILDCARD_SIMPLE = 348,
308 >     MODULE = 349,
309 >     MODULES = 350,
310 >     MOTD = 351,
311 >     NAME = 352,
312 >     NEED_IDENT = 353,
313 >     NEED_PASSWORD = 354,
314 >     NETWORK_DESC = 355,
315 >     NETWORK_NAME = 356,
316 >     NICK = 357,
317 >     NO_CREATE_ON_SPLIT = 358,
318 >     NO_JOIN_ON_SPLIT = 359,
319 >     NO_OPER_FLOOD = 360,
320 >     NO_TILDE = 361,
321 >     NUMBER = 362,
322 >     NUMBER_PER_CIDR = 363,
323 >     NUMBER_PER_IP = 364,
324 >     OPER_ONLY_UMODES = 365,
325 >     OPER_PASS_RESV = 366,
326 >     OPER_UMODES = 367,
327 >     OPERATOR = 368,
328 >     OPERS_BYPASS_CALLERID = 369,
329 >     PACE_WAIT = 370,
330 >     PACE_WAIT_SIMPLE = 371,
331 >     PASSWORD = 372,
332 >     PATH = 373,
333 >     PING_COOKIE = 374,
334 >     PING_TIME = 375,
335 >     PORT = 376,
336 >     QSTRING = 377,
337 >     RANDOM_IDLE = 378,
338 >     REASON = 379,
339 >     REDIRPORT = 380,
340 >     REDIRSERV = 381,
341 >     REHASH = 382,
342 >     REMOTE = 383,
343 >     REMOTEBAN = 384,
344 >     RESV = 385,
345 >     RESV_EXEMPT = 386,
346 >     RSA_PRIVATE_KEY_FILE = 387,
347 >     RSA_PUBLIC_KEY_FILE = 388,
348 >     SECONDS = 389,
349 >     MINUTES = 390,
350 >     HOURS = 391,
351 >     DAYS = 392,
352 >     WEEKS = 393,
353 >     MONTHS = 394,
354 >     YEARS = 395,
355 >     SEND_PASSWORD = 396,
356 >     SENDQ = 397,
357 >     SERVERHIDE = 398,
358 >     SERVERINFO = 399,
359 >     SHORT_MOTD = 400,
360 >     SPOOF = 401,
361 >     SPOOF_NOTICE = 402,
362 >     SQUIT = 403,
363 >     SSL_CERTIFICATE_FILE = 404,
364 >     SSL_DH_PARAM_FILE = 405,
365 >     STATS_E_DISABLED = 406,
366 >     STATS_I_OPER_ONLY = 407,
367 >     STATS_K_OPER_ONLY = 408,
368 >     STATS_O_OPER_ONLY = 409,
369 >     STATS_P_OPER_ONLY = 410,
370 >     T_ALL = 411,
371 >     T_BOTS = 412,
372 >     T_CALLERID = 413,
373 >     T_CCONN = 414,
374 >     T_CLUSTER = 415,
375 >     T_DEAF = 416,
376 >     T_DEBUG = 417,
377 >     T_DLINE = 418,
378 >     T_EXTERNAL = 419,
379 >     T_FARCONNECT = 420,
380 >     T_FILE = 421,
381 >     T_FULL = 422,
382 >     T_GLOBOPS = 423,
383 >     T_INVISIBLE = 424,
384 >     T_IPV4 = 425,
385 >     T_IPV6 = 426,
386 >     T_LOCOPS = 427,
387 >     T_LOG = 428,
388 >     T_MAX_CLIENTS = 429,
389 >     T_NCHANGE = 430,
390 >     T_NONONREG = 431,
391 >     T_OPERWALL = 432,
392 >     T_RECVQ = 433,
393 >     T_REJ = 434,
394 >     T_RESTART = 435,
395 >     T_SERVER = 436,
396 >     T_SERVICE = 437,
397 >     T_SERVICES_NAME = 438,
398 >     T_SERVNOTICE = 439,
399 >     T_SET = 440,
400 >     T_SHARED = 441,
401 >     T_SIZE = 442,
402 >     T_SKILL = 443,
403 >     T_SOFTCALLERID = 444,
404       T_SPY = 445,
405       T_SSL = 446,
406 <     T_UMODES = 447,
407 <     T_UNAUTH = 448,
408 <     T_UNDLINE = 449,
409 <     T_UNLIMITED = 450,
410 <     T_UNRESV = 451,
411 <     T_UNXLINE = 452,
412 <     T_GLOBOPS = 453,
413 <     T_WALLOP = 454,
414 <     T_RESTART = 455,
415 <     T_SERVICE = 456,
416 <     T_SERVICES_NAME = 457,
417 <     THROTTLE_TIME = 458,
418 <     TRUE_NO_OPER_FLOOD = 459,
419 <     UNKLINE = 460,
420 <     USER = 461,
421 <     USE_EGD = 462,
422 <     USE_LOGGING = 463,
423 <     VHOST = 464,
424 <     VHOST6 = 465,
425 <     XLINE = 466,
426 <     WARN_NO_NLINE = 467,
427 <     T_SIZE = 468,
428 <     T_FILE = 469
406 >     T_SSL_CIPHER_LIST = 447,
407 >     T_SSL_CLIENT_METHOD = 448,
408 >     T_SSL_SERVER_METHOD = 449,
409 >     T_SSLV3 = 450,
410 >     T_TLSV1 = 451,
411 >     T_UMODES = 452,
412 >     T_UNAUTH = 453,
413 >     T_UNDLINE = 454,
414 >     T_UNLIMITED = 455,
415 >     T_UNRESV = 456,
416 >     T_UNXLINE = 457,
417 >     T_WALLOP = 458,
418 >     T_WALLOPS = 459,
419 >     T_WEBIRC = 460,
420 >     TBOOL = 461,
421 >     THROTTLE_TIME = 462,
422 >     TKLINE_EXPIRE_NOTICES = 463,
423 >     TMASKED = 464,
424 >     TRUE_NO_OPER_FLOOD = 465,
425 >     TS_MAX_DELTA = 466,
426 >     TS_WARN_DELTA = 467,
427 >     TWODOTS = 468,
428 >     TYPE = 469,
429 >     UNKLINE = 470,
430 >     USE_EGD = 471,
431 >     USE_LOGGING = 472,
432 >     USER = 473,
433 >     VHOST = 474,
434 >     VHOST6 = 475,
435 >     WARN_NO_NLINE = 476,
436 >     XLINE = 477
437     };
438   #endif
439   /* Tokens.  */
# Line 433 | Line 470 | extern int yydebug;
470   #define EXCEED_LIMIT 288
471   #define EXEMPT 289
472   #define FAILED_OPER_NOTICE 290
473 < #define IRCD_FLAGS 291
474 < #define FLATTEN_LINKS 292
475 < #define GECOS 293
476 < #define GENERAL 294
477 < #define GLINE 295
478 < #define GLINE_DURATION 296
479 < #define GLINE_ENABLE 297
480 < #define GLINE_EXEMPT 298
481 < #define GLINE_REQUEST_DURATION 299
482 < #define GLINE_MIN_CIDR 300
483 < #define GLINE_MIN_CIDR6 301
484 < #define GLOBAL_KILL 302
485 < #define IRCD_AUTH 303
486 < #define NEED_IDENT 304
487 < #define HAVENT_READ_CONF 305
488 < #define HIDDEN 306
489 < #define HIDDEN_NAME 307
490 < #define HIDE_SERVER_IPS 308
491 < #define HIDE_SERVERS 309
492 < #define HIDE_SPOOF_IPS 310
493 < #define HOST 311
494 < #define HUB 312
495 < #define HUB_MASK 313
496 < #define IGNORE_BOGUS_TS 314
497 < #define INVISIBLE_ON_CONNECT 315
498 < #define IP 316
499 < #define KILL 317
500 < #define KILL_CHASE_TIME_LIMIT 318
501 < #define KLINE 319
502 < #define KLINE_EXEMPT 320
503 < #define KNOCK_DELAY 321
504 < #define KNOCK_DELAY_CHANNEL 322
505 < #define LEAF_MASK 323
506 < #define LINKS_DELAY 324
507 < #define LISTEN 325
508 < #define T_LOG 326
509 < #define MAX_ACCEPT 327
510 < #define MAX_BANS 328
511 < #define MAX_CHANS_PER_OPER 329
512 < #define MAX_CHANS_PER_USER 330
513 < #define MAX_GLOBAL 331
514 < #define MAX_IDENT 332
515 < #define MAX_LOCAL 333
516 < #define MAX_NICK_CHANGES 334
517 < #define MAX_NICK_TIME 335
518 < #define MAX_NUMBER 336
519 < #define MAX_TARGETS 337
520 < #define MAX_WATCH 338
521 < #define MESSAGE_LOCALE 339
522 < #define MIN_NONWILDCARD 340
523 < #define MIN_NONWILDCARD_SIMPLE 341
524 < #define MODULE 342
525 < #define MODULES 343
526 < #define NAME 344
527 < #define NEED_PASSWORD 345
528 < #define NETWORK_DESC 346
529 < #define NETWORK_NAME 347
530 < #define NICK 348
531 < #define NICK_CHANGES 349
532 < #define NO_CREATE_ON_SPLIT 350
533 < #define NO_JOIN_ON_SPLIT 351
534 < #define NO_OPER_FLOOD 352
535 < #define NO_TILDE 353
536 < #define NUMBER 354
537 < #define NUMBER_PER_CIDR 355
538 < #define NUMBER_PER_IP 356
539 < #define OPERATOR 357
540 < #define OPERS_BYPASS_CALLERID 358
541 < #define OPER_ONLY_UMODES 359
542 < #define OPER_PASS_RESV 360
543 < #define OPER_SPY_T 361
544 < #define OPER_UMODES 362
545 < #define JOIN_FLOOD_COUNT 363
546 < #define JOIN_FLOOD_TIME 364
547 < #define PACE_WAIT 365
548 < #define PACE_WAIT_SIMPLE 366
549 < #define PASSWORD 367
550 < #define PATH 368
551 < #define PING_COOKIE 369
552 < #define PING_TIME 370
553 < #define PING_WARNING 371
554 < #define PORT 372
555 < #define QSTRING 373
556 < #define QUIET_ON_BAN 374
557 < #define REASON 375
558 < #define REDIRPORT 376
559 < #define REDIRSERV 377
560 < #define REGEX_T 378
561 < #define REHASH 379
562 < #define REMOTE 380
563 < #define REMOTEBAN 381
564 < #define RESTRICT_CHANNELS 382
565 < #define RSA_PRIVATE_KEY_FILE 383
566 < #define RSA_PUBLIC_KEY_FILE 384
567 < #define SSL_CERTIFICATE_FILE 385
568 < #define SSL_DH_PARAM_FILE 386
569 < #define T_SSL_CLIENT_METHOD 387
570 < #define T_SSL_SERVER_METHOD 388
571 < #define T_SSLV3 389
572 < #define T_TLSV1 390
573 < #define RESV 391
574 < #define RESV_EXEMPT 392
575 < #define SECONDS 393
576 < #define MINUTES 394
577 < #define HOURS 395
578 < #define DAYS 396
579 < #define WEEKS 397
580 < #define SENDQ 398
581 < #define SEND_PASSWORD 399
582 < #define SERVERHIDE 400
583 < #define SERVERINFO 401
584 < #define IRCD_SID 402
585 < #define TKLINE_EXPIRE_NOTICES 403
586 < #define T_SHARED 404
587 < #define T_CLUSTER 405
588 < #define TYPE 406
589 < #define SHORT_MOTD 407
590 < #define SPOOF 408
591 < #define SPOOF_NOTICE 409
592 < #define STATS_E_DISABLED 410
593 < #define STATS_I_OPER_ONLY 411
594 < #define STATS_K_OPER_ONLY 412
595 < #define STATS_O_OPER_ONLY 413
596 < #define STATS_P_OPER_ONLY 414
597 < #define TBOOL 415
598 < #define TMASKED 416
599 < #define TS_MAX_DELTA 417
600 < #define TS_WARN_DELTA 418
601 < #define TWODOTS 419
602 < #define T_ALL 420
603 < #define T_BOTS 421
604 < #define T_SOFTCALLERID 422
605 < #define T_CALLERID 423
606 < #define T_CCONN 424
607 < #define T_CCONN_FULL 425
608 < #define T_SSL_CIPHER_LIST 426
609 < #define T_DEAF 427
610 < #define T_DEBUG 428
611 < #define T_DLINE 429
612 < #define T_EXTERNAL 430
613 < #define T_FULL 431
614 < #define T_INVISIBLE 432
615 < #define T_IPV4 433
616 < #define T_IPV6 434
617 < #define T_LOCOPS 435
618 < #define T_MAX_CLIENTS 436
619 < #define T_NCHANGE 437
620 < #define T_OPERWALL 438
621 < #define T_RECVQ 439
622 < #define T_REJ 440
623 < #define T_SERVER 441
624 < #define T_SERVNOTICE 442
625 < #define T_SET 443
626 < #define T_SKILL 444
473 > #define FLATTEN_LINKS 291
474 > #define GECOS 292
475 > #define GENERAL 293
476 > #define GLINE 294
477 > #define GLINE_DURATION 295
478 > #define GLINE_ENABLE 296
479 > #define GLINE_EXEMPT 297
480 > #define GLINE_MIN_CIDR 298
481 > #define GLINE_MIN_CIDR6 299
482 > #define GLINE_REQUEST_DURATION 300
483 > #define GLOBAL_KILL 301
484 > #define HAVENT_READ_CONF 302
485 > #define HIDDEN 303
486 > #define HIDDEN_NAME 304
487 > #define HIDE_IDLE_FROM_OPERS 305
488 > #define HIDE_SERVER_IPS 306
489 > #define HIDE_SERVERS 307
490 > #define HIDE_SERVICES 308
491 > #define HIDE_SPOOF_IPS 309
492 > #define HOST 310
493 > #define HUB 311
494 > #define HUB_MASK 312
495 > #define IGNORE_BOGUS_TS 313
496 > #define INVISIBLE_ON_CONNECT 314
497 > #define IP 315
498 > #define IRCD_AUTH 316
499 > #define IRCD_FLAGS 317
500 > #define IRCD_SID 318
501 > #define JOIN_FLOOD_COUNT 319
502 > #define JOIN_FLOOD_TIME 320
503 > #define KILL 321
504 > #define KILL_CHASE_TIME_LIMIT 322
505 > #define KLINE 323
506 > #define KLINE_EXEMPT 324
507 > #define KNOCK_DELAY 325
508 > #define KNOCK_DELAY_CHANNEL 326
509 > #define LEAF_MASK 327
510 > #define LINKS_DELAY 328
511 > #define LISTEN 329
512 > #define MASK 330
513 > #define MAX_ACCEPT 331
514 > #define MAX_BANS 332
515 > #define MAX_CHANS_PER_OPER 333
516 > #define MAX_CHANS_PER_USER 334
517 > #define MAX_GLOBAL 335
518 > #define MAX_IDENT 336
519 > #define MAX_IDLE 337
520 > #define MAX_LOCAL 338
521 > #define MAX_NICK_CHANGES 339
522 > #define MAX_NICK_LENGTH 340
523 > #define MAX_NICK_TIME 341
524 > #define MAX_NUMBER 342
525 > #define MAX_TARGETS 343
526 > #define MAX_TOPIC_LENGTH 344
527 > #define MAX_WATCH 345
528 > #define MIN_IDLE 346
529 > #define MIN_NONWILDCARD 347
530 > #define MIN_NONWILDCARD_SIMPLE 348
531 > #define MODULE 349
532 > #define MODULES 350
533 > #define MOTD 351
534 > #define NAME 352
535 > #define NEED_IDENT 353
536 > #define NEED_PASSWORD 354
537 > #define NETWORK_DESC 355
538 > #define NETWORK_NAME 356
539 > #define NICK 357
540 > #define NO_CREATE_ON_SPLIT 358
541 > #define NO_JOIN_ON_SPLIT 359
542 > #define NO_OPER_FLOOD 360
543 > #define NO_TILDE 361
544 > #define NUMBER 362
545 > #define NUMBER_PER_CIDR 363
546 > #define NUMBER_PER_IP 364
547 > #define OPER_ONLY_UMODES 365
548 > #define OPER_PASS_RESV 366
549 > #define OPER_UMODES 367
550 > #define OPERATOR 368
551 > #define OPERS_BYPASS_CALLERID 369
552 > #define PACE_WAIT 370
553 > #define PACE_WAIT_SIMPLE 371
554 > #define PASSWORD 372
555 > #define PATH 373
556 > #define PING_COOKIE 374
557 > #define PING_TIME 375
558 > #define PORT 376
559 > #define QSTRING 377
560 > #define RANDOM_IDLE 378
561 > #define REASON 379
562 > #define REDIRPORT 380
563 > #define REDIRSERV 381
564 > #define REHASH 382
565 > #define REMOTE 383
566 > #define REMOTEBAN 384
567 > #define RESV 385
568 > #define RESV_EXEMPT 386
569 > #define RSA_PRIVATE_KEY_FILE 387
570 > #define RSA_PUBLIC_KEY_FILE 388
571 > #define SECONDS 389
572 > #define MINUTES 390
573 > #define HOURS 391
574 > #define DAYS 392
575 > #define WEEKS 393
576 > #define MONTHS 394
577 > #define YEARS 395
578 > #define SEND_PASSWORD 396
579 > #define SENDQ 397
580 > #define SERVERHIDE 398
581 > #define SERVERINFO 399
582 > #define SHORT_MOTD 400
583 > #define SPOOF 401
584 > #define SPOOF_NOTICE 402
585 > #define SQUIT 403
586 > #define SSL_CERTIFICATE_FILE 404
587 > #define SSL_DH_PARAM_FILE 405
588 > #define STATS_E_DISABLED 406
589 > #define STATS_I_OPER_ONLY 407
590 > #define STATS_K_OPER_ONLY 408
591 > #define STATS_O_OPER_ONLY 409
592 > #define STATS_P_OPER_ONLY 410
593 > #define T_ALL 411
594 > #define T_BOTS 412
595 > #define T_CALLERID 413
596 > #define T_CCONN 414
597 > #define T_CLUSTER 415
598 > #define T_DEAF 416
599 > #define T_DEBUG 417
600 > #define T_DLINE 418
601 > #define T_EXTERNAL 419
602 > #define T_FARCONNECT 420
603 > #define T_FILE 421
604 > #define T_FULL 422
605 > #define T_GLOBOPS 423
606 > #define T_INVISIBLE 424
607 > #define T_IPV4 425
608 > #define T_IPV6 426
609 > #define T_LOCOPS 427
610 > #define T_LOG 428
611 > #define T_MAX_CLIENTS 429
612 > #define T_NCHANGE 430
613 > #define T_NONONREG 431
614 > #define T_OPERWALL 432
615 > #define T_RECVQ 433
616 > #define T_REJ 434
617 > #define T_RESTART 435
618 > #define T_SERVER 436
619 > #define T_SERVICE 437
620 > #define T_SERVICES_NAME 438
621 > #define T_SERVNOTICE 439
622 > #define T_SET 440
623 > #define T_SHARED 441
624 > #define T_SIZE 442
625 > #define T_SKILL 443
626 > #define T_SOFTCALLERID 444
627   #define T_SPY 445
628   #define T_SSL 446
629 < #define T_UMODES 447
630 < #define T_UNAUTH 448
631 < #define T_UNDLINE 449
632 < #define T_UNLIMITED 450
633 < #define T_UNRESV 451
634 < #define T_UNXLINE 452
635 < #define T_GLOBOPS 453
636 < #define T_WALLOP 454
637 < #define T_RESTART 455
638 < #define T_SERVICE 456
639 < #define T_SERVICES_NAME 457
640 < #define THROTTLE_TIME 458
641 < #define TRUE_NO_OPER_FLOOD 459
642 < #define UNKLINE 460
643 < #define USER 461
644 < #define USE_EGD 462
645 < #define USE_LOGGING 463
646 < #define VHOST 464
647 < #define VHOST6 465
648 < #define XLINE 466
649 < #define WARN_NO_NLINE 467
650 < #define T_SIZE 468
651 < #define T_FILE 469
629 > #define T_SSL_CIPHER_LIST 447
630 > #define T_SSL_CLIENT_METHOD 448
631 > #define T_SSL_SERVER_METHOD 449
632 > #define T_SSLV3 450
633 > #define T_TLSV1 451
634 > #define T_UMODES 452
635 > #define T_UNAUTH 453
636 > #define T_UNDLINE 454
637 > #define T_UNLIMITED 455
638 > #define T_UNRESV 456
639 > #define T_UNXLINE 457
640 > #define T_WALLOP 458
641 > #define T_WALLOPS 459
642 > #define T_WEBIRC 460
643 > #define TBOOL 461
644 > #define THROTTLE_TIME 462
645 > #define TKLINE_EXPIRE_NOTICES 463
646 > #define TMASKED 464
647 > #define TRUE_NO_OPER_FLOOD 465
648 > #define TS_MAX_DELTA 466
649 > #define TS_WARN_DELTA 467
650 > #define TWODOTS 468
651 > #define TYPE 469
652 > #define UNKLINE 470
653 > #define USE_EGD 471
654 > #define USE_LOGGING 472
655 > #define USER 473
656 > #define VHOST 474
657 > #define VHOST6 475
658 > #define WARN_NO_NLINE 476
659 > #define XLINE 477
660  
661  
662  
663   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
664   typedef union YYSTYPE
665   {
666 < /* Line 374 of yacc.c  */
667 < #line 110 "conf_parser.y"
666 > /* Line 387 of yacc.c  */
667 > #line 139 "conf_parser.y"
668  
669    int number;
670    char *string;
671  
672  
673 < /* Line 374 of yacc.c  */
674 < #line 630 "conf_parser.c"
673 > /* Line 387 of yacc.c  */
674 > #line 675 "conf_parser.c"
675   } YYSTYPE;
676   # define YYSTYPE_IS_TRIVIAL 1
677   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# Line 649 | Line 694 | int yyparse ();
694   #endif
695   #endif /* ! YYPARSE_PARAM */
696  
697 < #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
697 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
698  
699   /* Copy the second part of user declarations.  */
700  
701 < /* Line 377 of yacc.c  */
702 < #line 658 "conf_parser.c"
701 > /* Line 390 of yacc.c  */
702 > #line 703 "conf_parser.c"
703  
704   #ifdef short
705   # undef short
# Line 715 | Line 760 | typedef short int yytype_int16;
760   # endif
761   #endif
762  
763 + #ifndef __attribute__
764 + /* This feature is available in gcc versions 2.5 and later.  */
765 + # if (! defined __GNUC__ || __GNUC__ < 2 \
766 +      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
767 + #  define __attribute__(Spec) /* empty */
768 + # endif
769 + #endif
770 +
771   /* Suppress unused-variable warnings by "using" E.  */
772   #if ! defined lint || defined __GNUC__
773   # define YYUSE(E) ((void) (E))
# Line 722 | Line 775 | typedef short int yytype_int16;
775   # define YYUSE(E) /* empty */
776   #endif
777  
778 +
779   /* Identity function, used to suppress warnings about constant conditions.  */
780   #ifndef lint
781   # define YYID(N) (N)
# Line 874 | Line 928 | union yyalloc
928   /* YYFINAL -- State number of the termination state.  */
929   #define YYFINAL  2
930   /* YYLAST -- Last index in YYTABLE.  */
931 < #define YYLAST   1206
931 > #define YYLAST   1225
932  
933   /* YYNTOKENS -- Number of terminals.  */
934 < #define YYNTOKENS  220
934 > #define YYNTOKENS  229
935   /* YYNNTS -- Number of nonterminals.  */
936 < #define YYNNTS  283
936 > #define YYNNTS  286
937   /* YYNRULES -- Number of rules.  */
938 < #define YYNRULES  627
938 > #define YYNRULES  644
939   /* YYNRULES -- Number of states.  */
940 < #define YYNSTATES  1228
940 > #define YYNSTATES  1260
941  
942   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
943   #define YYUNDEFTOK  2
944 < #define YYMAXUTOK   469
944 > #define YYMAXUTOK   477
945  
946   #define YYTRANSLATE(YYX)                                                \
947    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 899 | Line 953 | static const yytype_uint8 yytranslate[]
953         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
957 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
958 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
956 >       2,     2,     2,     2,   227,     2,     2,     2,     2,     2,
957 >       2,     2,     2,     2,     2,     2,     2,     2,   228,   223,
958 >       2,   226,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
964 >       2,     2,     2,   225,     2,   224,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 995 | static const yytype_uint8 yytranslate[]
995       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
996       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
997       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
998 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
998 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
999 >     215,   216,   217,   218,   219,   220,   221,   222
1000   };
1001  
1002   #if YYDEBUG
# Line 951 | Line 1006 | static const yytype_uint16 yyprhs[] =
1006   {
1007         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1008        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1009 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1010 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1011 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1012 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1013 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
1014 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
1015 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
1016 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
1017 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
1018 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
1019 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
1020 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
1021 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
1022 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
1023 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1024 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
1025 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1026 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1027 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1028 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
1029 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
1030 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
1031 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
1032 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
1033 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
1034 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
1035 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
1036 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
1037 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
1038 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
1039 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
1040 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
1041 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
1042 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
1043 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
1044 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
1045 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
1046 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
1047 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
1048 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
1049 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
1050 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
1051 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
1052 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
1053 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
1054 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1055 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1056 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1057 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1058 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1059 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1060 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1061 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1062 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1063 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1064 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1065 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1066 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1067 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1068 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1069 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1009 >      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1010 >      61,    65,    69,    73,    77,    81,    85,    89,    90,    92,
1011 >      95,    99,   103,   107,   113,   116,   118,   120,   122,   125,
1012 >     130,   135,   141,   144,   146,   148,   150,   152,   154,   156,
1013 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1014 >     178,   180,   183,   188,   193,   197,   199,   201,   203,   207,
1015 >     209,   211,   213,   218,   223,   228,   233,   238,   243,   248,
1016 >     253,   258,   263,   268,   273,   278,   283,   288,   294,   297,
1017 >     299,   301,   303,   305,   308,   313,   318,   323,   324,   331,
1018 >     334,   336,   338,   340,   343,   348,   353,   359,   362,   364,
1019 >     366,   368,   371,   376,   377,   384,   387,   389,   391,   393,
1020 >     395,   398,   403,   408,   413,   414,   420,   424,   426,   428,
1021 >     430,   432,   434,   436,   438,   440,   441,   448,   451,   453,
1022 >     455,   457,   459,   461,   463,   465,   467,   469,   472,   477,
1023 >     482,   487,   492,   497,   502,   503,   509,   513,   515,   517,
1024 >     519,   521,   523,   525,   527,   529,   531,   533,   535,   537,
1025 >     539,   541,   543,   545,   547,   549,   551,   553,   555,   557,
1026 >     558,   564,   568,   570,   574,   576,   580,   582,   586,   588,
1027 >     590,   592,   594,   596,   598,   600,   602,   604,   606,   608,
1028 >     610,   612,   614,   616,   618,   620,   622,   623,   630,   633,
1029 >     635,   637,   639,   641,   643,   645,   647,   649,   651,   653,
1030 >     655,   657,   659,   661,   663,   665,   667,   670,   675,   680,
1031 >     685,   690,   695,   700,   705,   710,   715,   720,   725,   730,
1032 >     735,   740,   745,   746,   752,   756,   758,   760,   762,   763,
1033 >     770,   771,   777,   781,   783,   785,   787,   789,   792,   794,
1034 >     796,   798,   800,   802,   805,   806,   812,   816,   818,   820,
1035 >     824,   829,   834,   835,   842,   845,   847,   849,   851,   853,
1036 >     855,   857,   859,   861,   863,   866,   871,   876,   881,   886,
1037 >     887,   893,   897,   899,   901,   903,   905,   907,   909,   911,
1038 >     913,   915,   917,   919,   924,   929,   934,   935,   942,   945,
1039 >     947,   949,   951,   953,   956,   961,   966,   971,   977,   980,
1040 >     982,   984,   986,   991,   992,   999,  1002,  1004,  1006,  1008,
1041 >    1010,  1013,  1018,  1023,  1024,  1030,  1034,  1036,  1038,  1040,
1042 >    1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,  1057,  1064,
1043 >    1067,  1069,  1071,  1073,  1076,  1081,  1082,  1088,  1092,  1094,
1044 >    1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,
1045 >    1115,  1122,  1125,  1127,  1129,  1131,  1133,  1135,  1137,  1139,
1046 >    1141,  1143,  1145,  1147,  1149,  1151,  1153,  1156,  1161,  1166,
1047 >    1171,  1176,  1181,  1186,  1191,  1196,  1197,  1203,  1207,  1209,
1048 >    1211,  1213,  1218,  1223,  1228,  1233,  1238,  1239,  1246,  1249,
1049 >    1251,  1253,  1255,  1257,  1262,  1267,  1268,  1275,  1278,  1280,
1050 >    1282,  1284,  1286,  1291,  1296,  1302,  1305,  1307,  1309,  1311,
1051 >    1316,  1317,  1324,  1327,  1329,  1331,  1333,  1335,  1340,  1345,
1052 >    1351,  1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,
1053 >    1372,  1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,
1054 >    1392,  1394,  1396,  1398,  1400,  1402,  1404,  1406,  1408,  1410,
1055 >    1412,  1414,  1416,  1418,  1420,  1422,  1424,  1426,  1428,  1430,
1056 >    1432,  1434,  1436,  1438,  1440,  1442,  1444,  1446,  1448,  1450,
1057 >    1452,  1457,  1462,  1467,  1472,  1477,  1482,  1487,  1492,  1497,
1058 >    1502,  1507,  1512,  1517,  1522,  1527,  1532,  1537,  1542,  1547,
1059 >    1552,  1557,  1562,  1567,  1572,  1577,  1582,  1587,  1592,  1597,
1060 >    1602,  1607,  1612,  1617,  1622,  1627,  1632,  1637,  1642,  1647,
1061 >    1652,  1657,  1662,  1667,  1672,  1673,  1679,  1683,  1685,  1687,
1062 >    1689,  1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,
1063 >    1709,  1711,  1713,  1715,  1717,  1719,  1721,  1723,  1725,  1727,
1064 >    1728,  1734,  1738,  1740,  1742,  1744,  1746,  1748,  1750,  1752,
1065 >    1754,  1756,  1758,  1760,  1762,  1764,  1766,  1768,  1770,  1772,
1066 >    1774,  1776,  1778,  1780,  1782,  1787,  1792,  1797,  1803,  1806,
1067 >    1808,  1810,  1812,  1814,  1816,  1818,  1820,  1822,  1824,  1826,
1068 >    1828,  1830,  1832,  1834,  1839,  1844,  1849,  1854,  1859,  1864,
1069 >    1869,  1874,  1879,  1884,  1889,  1894,  1900,  1903,  1905,  1907,
1070 >    1909,  1911,  1913,  1915,  1917,  1919,  1921,  1923,  1928,  1933,
1071 >    1938,  1943,  1948,  1953,  1958
1072   };
1073  
1074   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1075   static const yytype_int16 yyrhs[] =
1076   {
1077 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1078 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1079 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1080 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1081 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1082 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1083 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1084 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1085 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1086 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1087 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1088 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1089 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1090 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1091 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1092 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1093 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1094 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1095 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1096 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1097 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1098 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1099 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1100 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1101 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1102 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1103 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1104 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1105 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1106 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1107 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1108 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1109 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1110 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1111 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1112 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1113 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1114 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1115 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1116 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1117 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1118 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1119 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1120 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1121 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1122 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1123 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1124 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1125 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1126 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1127 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1128 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1129 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1130 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1131 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1132 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1133 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1134 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1135 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1136 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1137 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1138 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1139 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1140 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1141 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1142 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1143 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1144 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1145 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1146 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1147 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1148 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1149 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1150 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1151 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1152 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1153 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1154 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1155 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1156 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1157 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1158 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1159 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1160 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1161 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1162 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1163 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1164 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1165 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1166 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1167 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1168 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1169 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1170 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1171 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1172 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1173 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1174 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1175 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1176 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1177 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1178 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1179 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1180 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1181 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1182 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1183 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1184 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1185 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1186 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1187 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1188 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1189 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1190 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1191 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1192 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1193 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1194 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1195 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1196 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1197 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1198 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1199 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1200 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1201 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1202 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1203 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1204 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1205 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1206 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1207 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1208 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1209 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1210 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1211 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1212 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1213 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1214 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1215 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1216 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1217 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1218 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1219 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1220 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1221 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1222 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1223 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1224 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1225 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1226 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1227 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1228 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1229 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1230 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1231 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1232 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1233 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1234 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1235 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1236 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1237 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1238 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1239 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1240 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1241 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1242 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1243 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1244 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1245 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1246 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1247 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1248 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1249 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1250 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1251 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1252 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1253 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1254 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1255 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1256 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1257 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1258 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1259 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1260 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1261 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1262 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1263 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1264 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1265 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1266 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1267 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1077 >     230,     0,    -1,    -1,   230,   231,    -1,   265,    -1,   277,
1078 >      -1,   291,    -1,   489,    -1,   309,    -1,   332,    -1,   346,
1079 >      -1,   241,    -1,   504,    -1,   361,    -1,   368,    -1,   372,
1080 >      -1,   382,    -1,   391,    -1,   411,    -1,   417,    -1,   423,
1081 >      -1,   433,    -1,   427,    -1,   236,    -1,   271,    -1,     1,
1082 >     223,    -1,     1,   224,    -1,    -1,   233,    -1,   107,   232,
1083 >      -1,   107,   134,   232,    -1,   107,   135,   232,    -1,   107,
1084 >     136,   232,    -1,   107,   137,   232,    -1,   107,   138,   232,
1085 >      -1,   107,   139,   232,    -1,   107,   140,   232,    -1,    -1,
1086 >     235,    -1,   107,   234,    -1,   107,     9,   234,    -1,   107,
1087 >      10,   234,    -1,   107,    11,   234,    -1,    95,   225,   237,
1088 >     224,   223,    -1,   237,   238,    -1,   238,    -1,   239,    -1,
1089 >     240,    -1,     1,   223,    -1,    94,   226,   122,   223,    -1,
1090 >     118,   226,   122,   223,    -1,   144,   225,   242,   224,   223,
1091 >      -1,   242,   243,    -1,   243,    -1,   254,    -1,   259,    -1,
1092 >     264,    -1,   256,    -1,   257,    -1,   258,    -1,   261,    -1,
1093 >     262,    -1,   263,    -1,   252,    -1,   251,    -1,   260,    -1,
1094 >     255,    -1,   250,    -1,   244,    -1,   245,    -1,   253,    -1,
1095 >       1,   223,    -1,   193,   226,   246,   223,    -1,   194,   226,
1096 >     248,   223,    -1,   246,   227,   247,    -1,   247,    -1,   195,
1097 >      -1,   196,    -1,   248,   227,   249,    -1,   249,    -1,   195,
1098 >      -1,   196,    -1,   149,   226,   122,   223,    -1,   132,   226,
1099 >     122,   223,    -1,   150,   226,   122,   223,    -1,   192,   226,
1100 >     122,   223,    -1,    97,   226,   122,   223,    -1,    63,   226,
1101 >     122,   223,    -1,    24,   226,   122,   223,    -1,   101,   226,
1102 >     122,   223,    -1,   100,   226,   122,   223,    -1,   219,   226,
1103 >     122,   223,    -1,   220,   226,   122,   223,    -1,   174,   226,
1104 >     107,   223,    -1,    85,   226,   107,   223,    -1,    89,   226,
1105 >     107,   223,    -1,    56,   226,   206,   223,    -1,     4,   225,
1106 >     266,   224,   223,    -1,   266,   267,    -1,   267,    -1,   268,
1107 >      -1,   270,    -1,   269,    -1,     1,   223,    -1,    97,   226,
1108 >     122,   223,    -1,    31,   226,   122,   223,    -1,    24,   226,
1109 >     122,   223,    -1,    -1,    96,   272,   225,   273,   224,   223,
1110 >      -1,   273,   274,    -1,   274,    -1,   275,    -1,   276,    -1,
1111 >       1,   223,    -1,    75,   226,   122,   223,    -1,   166,   226,
1112 >     122,   223,    -1,   173,   225,   278,   224,   223,    -1,   278,
1113 >     279,    -1,   279,    -1,   280,    -1,   281,    -1,     1,   223,
1114 >      -1,   217,   226,   206,   223,    -1,    -1,   282,   166,   225,
1115 >     283,   224,   223,    -1,   283,   284,    -1,   284,    -1,   285,
1116 >      -1,   287,    -1,   286,    -1,     1,   223,    -1,    97,   226,
1117 >     122,   223,    -1,   187,   226,   235,   223,    -1,   187,   226,
1118 >     200,   223,    -1,    -1,   214,   288,   226,   289,   223,    -1,
1119 >     289,   227,   290,    -1,   290,    -1,   218,    -1,   113,    -1,
1120 >      39,    -1,   163,    -1,    68,    -1,    66,    -1,   162,    -1,
1121 >      -1,   113,   292,   225,   293,   224,   223,    -1,   293,   294,
1122 >      -1,   294,    -1,   295,    -1,   296,    -1,   297,    -1,   301,
1123 >      -1,   300,    -1,   298,    -1,   299,    -1,   305,    -1,     1,
1124 >     223,    -1,    97,   226,   122,   223,    -1,   218,   226,   122,
1125 >     223,    -1,   117,   226,   122,   223,    -1,    32,   226,   206,
1126 >     223,    -1,   133,   226,   122,   223,    -1,    17,   226,   122,
1127 >     223,    -1,    -1,   197,   302,   226,   303,   223,    -1,   303,
1128 >     227,   304,    -1,   304,    -1,   157,    -1,   159,    -1,   161,
1129 >      -1,   162,    -1,   167,    -1,    48,    -1,   188,    -1,   175,
1130 >      -1,   179,    -1,   198,    -1,   190,    -1,   164,    -1,   177,
1131 >      -1,   184,    -1,   169,    -1,   203,    -1,   189,    -1,   158,
1132 >      -1,   172,    -1,   176,    -1,   165,    -1,    -1,    62,   306,
1133 >     226,   307,   223,    -1,   307,   227,   308,    -1,   308,    -1,
1134 >      66,   228,   128,    -1,    66,    -1,    18,   228,   128,    -1,
1135 >      18,    -1,   148,   228,   128,    -1,   148,    -1,    68,    -1,
1136 >     215,    -1,   163,    -1,   199,    -1,   222,    -1,    39,    -1,
1137 >      25,    -1,   180,    -1,   127,    -1,     4,    -1,   177,    -1,
1138 >     168,    -1,   204,    -1,   172,    -1,   129,    -1,   185,    -1,
1139 >      94,    -1,    -1,    17,   310,   225,   311,   224,   223,    -1,
1140 >     311,   312,    -1,   312,    -1,   313,    -1,   323,    -1,   324,
1141 >      -1,   314,    -1,   325,    -1,   315,    -1,   316,    -1,   317,
1142 >      -1,   318,    -1,   319,    -1,   320,    -1,   321,    -1,   322,
1143 >      -1,   326,    -1,   327,    -1,   328,    -1,     1,   223,    -1,
1144 >      97,   226,   122,   223,    -1,   120,   226,   233,   223,    -1,
1145 >     109,   226,   107,   223,    -1,    19,   226,   233,   223,    -1,
1146 >      87,   226,   107,   223,    -1,    80,   226,   107,   223,    -1,
1147 >      83,   226,   107,   223,    -1,    81,   226,   107,   223,    -1,
1148 >     142,   226,   235,   223,    -1,   178,   226,   235,   223,    -1,
1149 >      15,   226,   107,   223,    -1,    16,   226,   107,   223,    -1,
1150 >     108,   226,   107,   223,    -1,    91,   226,   233,   223,    -1,
1151 >      82,   226,   233,   223,    -1,    -1,    62,   329,   226,   330,
1152 >     223,    -1,   330,   227,   331,    -1,   331,    -1,   123,    -1,
1153 >      50,    -1,    -1,    74,   333,   225,   338,   224,   223,    -1,
1154 >      -1,    62,   335,   226,   336,   223,    -1,   336,   227,   337,
1155 >      -1,   337,    -1,   191,    -1,    48,    -1,   181,    -1,   338,
1156 >     339,    -1,   339,    -1,   340,    -1,   334,    -1,   344,    -1,
1157 >     345,    -1,     1,   223,    -1,    -1,   121,   226,   342,   341,
1158 >     223,    -1,   342,   227,   343,    -1,   343,    -1,   107,    -1,
1159 >     107,   213,   107,    -1,    60,   226,   122,   223,    -1,    55,
1160 >     226,   122,   223,    -1,    -1,    61,   347,   225,   348,   224,
1161 >     223,    -1,   348,   349,    -1,   349,    -1,   350,    -1,   351,
1162 >      -1,   352,    -1,   354,    -1,   358,    -1,   359,    -1,   360,
1163 >      -1,   353,    -1,     1,   223,    -1,   218,   226,   122,   223,
1164 >      -1,   117,   226,   122,   223,    -1,    17,   226,   122,   223,
1165 >      -1,    32,   226,   206,   223,    -1,    -1,    62,   355,   226,
1166 >     356,   223,    -1,   356,   227,   357,    -1,   357,    -1,   147,
1167 >      -1,    33,    -1,    69,    -1,    98,    -1,    13,    -1,   106,
1168 >      -1,    42,    -1,   131,    -1,   205,    -1,    99,    -1,   146,
1169 >     226,   122,   223,    -1,   126,   226,   122,   223,    -1,   125,
1170 >     226,   107,   223,    -1,    -1,   130,   362,   225,   363,   224,
1171 >     223,    -1,   363,   364,    -1,   364,    -1,   365,    -1,   366,
1172 >      -1,   367,    -1,     1,   223,    -1,    75,   226,   122,   223,
1173 >      -1,   124,   226,   122,   223,    -1,    34,   226,   122,   223,
1174 >      -1,   182,   225,   369,   224,   223,    -1,   369,   370,    -1,
1175 >     370,    -1,   371,    -1,     1,    -1,    97,   226,   122,   223,
1176 >      -1,    -1,   186,   373,   225,   374,   224,   223,    -1,   374,
1177 >     375,    -1,   375,    -1,   376,    -1,   377,    -1,   378,    -1,
1178 >       1,   223,    -1,    97,   226,   122,   223,    -1,   218,   226,
1179 >     122,   223,    -1,    -1,   214,   379,   226,   380,   223,    -1,
1180 >     380,   227,   381,    -1,   381,    -1,    68,    -1,   215,    -1,
1181 >     163,    -1,   199,    -1,   222,    -1,   202,    -1,   130,    -1,
1182 >     201,    -1,   172,    -1,   156,    -1,    -1,   160,   383,   225,
1183 >     384,   224,   223,    -1,   384,   385,    -1,   385,    -1,   386,
1184 >      -1,   387,    -1,     1,   223,    -1,    97,   226,   122,   223,
1185 >      -1,    -1,   214,   388,   226,   389,   223,    -1,   389,   227,
1186 >     390,    -1,   390,    -1,    68,    -1,   215,    -1,   163,    -1,
1187 >     199,    -1,   222,    -1,   202,    -1,   130,    -1,   201,    -1,
1188 >     172,    -1,   156,    -1,    -1,    18,   392,   225,   393,   224,
1189 >     223,    -1,   393,   394,    -1,   394,    -1,   395,    -1,   396,
1190 >      -1,   397,    -1,   398,    -1,   399,    -1,   401,    -1,   400,
1191 >      -1,   410,    -1,   402,    -1,   407,    -1,   408,    -1,   409,
1192 >      -1,   406,    -1,     1,   223,    -1,    97,   226,   122,   223,
1193 >      -1,    55,   226,   122,   223,    -1,   219,   226,   122,   223,
1194 >      -1,   141,   226,   122,   223,    -1,     3,   226,   122,   223,
1195 >      -1,   121,   226,   107,   223,    -1,     5,   226,   170,   223,
1196 >      -1,     5,   226,   171,   223,    -1,    -1,    62,   403,   226,
1197 >     404,   223,    -1,   404,   227,   405,    -1,   405,    -1,     8,
1198 >      -1,   191,    -1,    32,   226,   206,   223,    -1,    57,   226,
1199 >     122,   223,    -1,    72,   226,   122,   223,    -1,    17,   226,
1200 >     122,   223,    -1,   192,   226,   122,   223,    -1,    -1,    66,
1201 >     412,   225,   413,   224,   223,    -1,   413,   414,    -1,   414,
1202 >      -1,   415,    -1,   416,    -1,     1,    -1,   218,   226,   122,
1203 >     223,    -1,   124,   226,   122,   223,    -1,    -1,    23,   418,
1204 >     225,   419,   224,   223,    -1,   419,   420,    -1,   420,    -1,
1205 >     421,    -1,   422,    -1,     1,    -1,    60,   226,   122,   223,
1206 >      -1,   124,   226,   122,   223,    -1,    34,   225,   424,   224,
1207 >     223,    -1,   424,   425,    -1,   425,    -1,   426,    -1,     1,
1208 >      -1,    60,   226,   122,   223,    -1,    -1,    37,   428,   225,
1209 >     429,   224,   223,    -1,   429,   430,    -1,   430,    -1,   431,
1210 >      -1,   432,    -1,     1,    -1,    97,   226,   122,   223,    -1,
1211 >     124,   226,   122,   223,    -1,    38,   225,   434,   224,   223,
1212 >      -1,   434,   435,    -1,   435,    -1,   444,    -1,   445,    -1,
1213 >     446,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1214 >     451,    -1,   452,    -1,   453,    -1,   443,    -1,   455,    -1,
1215 >     456,    -1,   470,    -1,   458,    -1,   460,    -1,   462,    -1,
1216 >     461,    -1,   465,    -1,   459,    -1,   466,    -1,   467,    -1,
1217 >     468,    -1,   469,    -1,   482,    -1,   471,    -1,   472,    -1,
1218 >     473,    -1,   478,    -1,   463,    -1,   464,    -1,   488,    -1,
1219 >     486,    -1,   487,    -1,   477,    -1,   454,    -1,   475,    -1,
1220 >     476,    -1,   442,    -1,   437,    -1,   438,    -1,   439,    -1,
1221 >     440,    -1,   441,    -1,   457,    -1,   436,    -1,   474,    -1,
1222 >       1,    -1,    90,   226,   107,   223,    -1,    41,   226,   206,
1223 >     223,    -1,    40,   226,   233,   223,    -1,    45,   226,   233,
1224 >     223,    -1,    43,   226,   107,   223,    -1,    44,   226,   107,
1225 >     223,    -1,   208,   226,   206,   223,    -1,    67,   226,   233,
1226 >     223,    -1,    54,   226,   206,   223,    -1,    58,   226,   206,
1227 >     223,    -1,    35,   226,   206,   223,    -1,     6,   226,   206,
1228 >     223,    -1,    86,   226,   233,   223,    -1,    84,   226,   107,
1229 >     223,    -1,    76,   226,   107,   223,    -1,     7,   226,   233,
1230 >     223,    -1,   212,   226,   233,   223,    -1,   211,   226,   233,
1231 >     223,    -1,    47,   226,   107,   223,    -1,    59,   226,   206,
1232 >     223,    -1,   221,   226,   206,   223,    -1,   151,   226,   206,
1233 >     223,    -1,   154,   226,   206,   223,    -1,   155,   226,   206,
1234 >     223,    -1,   153,   226,   206,   223,    -1,   153,   226,   209,
1235 >     223,    -1,   152,   226,   206,   223,    -1,   152,   226,   209,
1236 >     223,    -1,   115,   226,   233,   223,    -1,    12,   226,   233,
1237 >     223,    -1,   114,   226,   206,   223,    -1,   116,   226,   233,
1238 >     223,    -1,   145,   226,   206,   223,    -1,   105,   226,   206,
1239 >     223,    -1,   210,   226,   206,   223,    -1,   111,   226,   206,
1240 >     223,    -1,    29,   226,   107,   223,    -1,    88,   226,   107,
1241 >     223,    -1,   216,   226,   206,   223,    -1,    30,   226,   122,
1242 >     223,    -1,   183,   226,   122,   223,    -1,   119,   226,   206,
1243 >     223,    -1,    26,   226,   206,   223,    -1,   207,   226,   233,
1244 >     223,    -1,    -1,   112,   479,   226,   480,   223,    -1,   480,
1245 >     227,   481,    -1,   481,    -1,   157,    -1,   159,    -1,   161,
1246 >      -1,   162,    -1,   167,    -1,    48,    -1,   188,    -1,   175,
1247 >      -1,   179,    -1,   198,    -1,   190,    -1,   164,    -1,   177,
1248 >      -1,   184,    -1,   169,    -1,   203,    -1,   189,    -1,   158,
1249 >      -1,   172,    -1,   176,    -1,   165,    -1,    -1,   110,   483,
1250 >     226,   484,   223,    -1,   484,   227,   485,    -1,   485,    -1,
1251 >     157,    -1,   159,    -1,   161,    -1,   162,    -1,   167,    -1,
1252 >     188,    -1,    48,    -1,   175,    -1,   179,    -1,   198,    -1,
1253 >     190,    -1,   164,    -1,   177,    -1,   184,    -1,   169,    -1,
1254 >     203,    -1,   189,    -1,   158,    -1,   172,    -1,   176,    -1,
1255 >     165,    -1,    92,   226,   107,   223,    -1,    93,   226,   107,
1256 >     223,    -1,    20,   226,   107,   223,    -1,    14,   225,   490,
1257 >     224,   223,    -1,   490,   491,    -1,   491,    -1,   497,    -1,
1258 >     493,    -1,   494,    -1,   495,    -1,   496,    -1,   498,    -1,
1259 >     499,    -1,   500,    -1,   501,    -1,   502,    -1,   503,    -1,
1260 >     492,    -1,     1,    -1,    27,   226,   206,   223,    -1,    70,
1261 >     226,   233,   223,    -1,    71,   226,   233,   223,    -1,    79,
1262 >     226,   107,   223,    -1,    78,   226,   107,   223,    -1,    77,
1263 >     226,   107,   223,    -1,    22,   226,   107,   223,    -1,    21,
1264 >     226,   107,   223,    -1,   103,   226,   206,   223,    -1,   104,
1265 >     226,   206,   223,    -1,    64,   226,   107,   223,    -1,    65,
1266 >     226,   233,   223,    -1,   143,   225,   505,   224,   223,    -1,
1267 >     505,   506,    -1,   506,    -1,   507,    -1,   508,    -1,   509,
1268 >      -1,   510,    -1,   512,    -1,   513,    -1,   511,    -1,   514,
1269 >      -1,     1,    -1,    36,   226,   206,   223,    -1,    28,   226,
1270 >     206,   223,    -1,    52,   226,   206,   223,    -1,    53,   226,
1271 >     206,   223,    -1,    49,   226,   122,   223,    -1,    73,   226,
1272 >     233,   223,    -1,    48,   226,   206,   223,    -1,    51,   226,
1273 >     206,   223,    -1
1274   };
1275  
1276   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1277   static const yytype_uint16 yyrline[] =
1278   {
1279 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1280 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1281 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1282 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1283 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1284 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1285 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1286 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1287 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1288 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1289 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1290 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1291 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1292 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1293 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1294 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1295 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1296 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1297 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1298 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1299 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1300 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1301 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1302 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1303 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1304 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1305 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1306 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1307 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1308 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1309 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1310 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1311 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1312 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1313 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1314 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1315 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1316 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1317 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2308,  2307,  2311,
1318 <    2311,  2312,  2318,  2318,  2319,  2319,  2319,  2319,  2321,  2340,
1319 <    2350,  2349,  2373,  2373,  2374,  2374,  2374,  2376,  2382,  2391,
1320 <    2393,  2393,  2394,  2394,  2396,  2415,  2414,  2463,  2462,  2466,
1321 <    2466,  2467,  2473,  2473,  2474,  2474,  2474,  2474,  2476,  2482,
1322 <    2491,  2494,  2494,  2495,  2495,  2496,  2496,  2497,  2497,  2498,
1323 <    2498,  2499,  2499,  2500,  2501,  2502,  2502,  2503,  2503,  2504,
1324 <    2504,  2505,  2505,  2506,  2506,  2507,  2507,  2508,  2509,  2509,
1325 <    2510,  2510,  2511,  2511,  2512,  2512,  2513,  2513,  2514,  2515,
1326 <    2515,  2516,  2517,  2518,  2518,  2519,  2519,  2520,  2521,  2522,
1327 <    2523,  2523,  2524,  2527,  2532,  2538,  2544,  2550,  2555,  2560,
1328 <    2565,  2570,  2575,  2580,  2585,  2590,  2595,  2600,  2605,  2610,
1329 <    2615,  2620,  2626,  2637,  2642,  2647,  2652,  2657,  2662,  2665,
1330 <    2670,  2673,  2678,  2683,  2688,  2693,  2698,  2703,  2708,  2713,
1331 <    2718,  2729,  2734,  2739,  2744,  2753,  2762,  2767,  2772,  2778,
1332 <    2777,  2782,  2782,  2783,  2786,  2789,  2792,  2795,  2798,  2801,
1333 <    2804,  2807,  2810,  2813,  2816,  2819,  2822,  2825,  2828,  2831,
1334 <    2834,  2837,  2840,  2846,  2845,  2850,  2850,  2851,  2854,  2857,
1335 <    2860,  2863,  2866,  2869,  2872,  2875,  2878,  2881,  2884,  2887,
1336 <    2890,  2893,  2896,  2899,  2902,  2905,  2908,  2913,  2918,  2923,
1337 <    2932,  2935,  2935,  2936,  2937,  2937,  2938,  2938,  2939,  2939,
1338 <    2940,  2941,  2941,  2942,  2943,  2943,  2944,  2944,  2946,  2951,
1339 <    2956,  2961,  2966,  2971,  2976,  2981,  2986,  2991,  2996,  3001,
1340 <    3006,  3011,  3019,  3022,  3022,  3023,  3023,  3024,  3025,  3025,
1341 <    3026,  3027,  3029,  3035,  3041,  3050,  3064,  3070
1279 >       0,   365,   365,   366,   369,   370,   371,   372,   373,   374,
1280 >     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1281 >     385,   386,   387,   388,   389,   390,   391,   395,   395,   396,
1282 >     400,   404,   408,   412,   416,   420,   424,   430,   430,   431,
1283 >     432,   433,   434,   441,   444,   444,   445,   445,   445,   447,
1284 >     453,   460,   462,   462,   463,   463,   464,   464,   465,   465,
1285 >     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1286 >     471,   472,   475,   476,   478,   478,   479,   485,   493,   493,
1287 >     494,   500,   508,   550,   609,   637,   645,   660,   675,   684,
1288 >     698,   707,   735,   765,   790,   812,   834,   843,   845,   845,
1289 >     846,   846,   847,   847,   849,   858,   867,   880,   879,   897,
1290 >     897,   898,   898,   898,   900,   906,   915,   916,   916,   918,
1291 >     918,   919,   921,   928,   928,   941,   942,   944,   944,   945,
1292 >     945,   947,   955,   958,   964,   963,   969,   969,   970,   974,
1293 >     978,   982,   986,   990,   994,  1005,  1004,  1081,  1081,  1082,
1294 >    1082,  1082,  1083,  1083,  1083,  1084,  1084,  1084,  1086,  1092,
1295 >    1098,  1104,  1115,  1121,  1128,  1127,  1133,  1133,  1134,  1138,
1296 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,
1297 >    1182,  1186,  1190,  1194,  1198,  1202,  1206,  1210,  1214,  1221,
1298 >    1220,  1226,  1226,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1299 >    1255,  1259,  1263,  1267,  1271,  1275,  1279,  1283,  1287,  1291,
1300 >    1295,  1299,  1303,  1307,  1311,  1315,  1326,  1325,  1386,  1386,
1301 >    1387,  1388,  1388,  1389,  1390,  1391,  1392,  1393,  1394,  1395,
1302 >    1396,  1397,  1397,  1398,  1399,  1400,  1401,  1403,  1409,  1415,
1303 >    1421,  1427,  1433,  1439,  1445,  1451,  1457,  1464,  1470,  1476,
1304 >    1482,  1491,  1501,  1500,  1506,  1506,  1507,  1511,  1522,  1521,
1305 >    1528,  1527,  1532,  1532,  1533,  1537,  1541,  1547,  1547,  1548,
1306 >    1548,  1548,  1548,  1548,  1550,  1550,  1552,  1552,  1554,  1568,
1307 >    1588,  1594,  1604,  1603,  1645,  1645,  1646,  1646,  1646,  1646,
1308 >    1647,  1647,  1647,  1648,  1648,  1650,  1656,  1662,  1668,  1680,
1309 >    1679,  1685,  1685,  1686,  1690,  1694,  1698,  1702,  1706,  1710,
1310 >    1714,  1718,  1722,  1728,  1742,  1751,  1765,  1764,  1779,  1779,
1311 >    1780,  1780,  1780,  1780,  1782,  1788,  1794,  1804,  1806,  1806,
1312 >    1807,  1807,  1809,  1825,  1824,  1849,  1849,  1850,  1850,  1850,
1313 >    1850,  1852,  1858,  1878,  1877,  1883,  1883,  1884,  1888,  1892,
1314 >    1896,  1900,  1904,  1908,  1912,  1916,  1920,  1930,  1929,  1950,
1315 >    1950,  1951,  1951,  1951,  1953,  1960,  1959,  1965,  1965,  1966,
1316 >    1970,  1974,  1978,  1982,  1986,  1990,  1994,  1998,  2002,  2012,
1317 >    2011,  2077,  2077,  2078,  2078,  2078,  2079,  2079,  2080,  2080,
1318 >    2080,  2081,  2081,  2081,  2082,  2082,  2083,  2085,  2091,  2097,
1319 >    2103,  2116,  2129,  2135,  2139,  2148,  2147,  2152,  2152,  2153,
1320 >    2157,  2163,  2174,  2180,  2186,  2192,  2208,  2207,  2233,  2233,
1321 >    2234,  2234,  2234,  2236,  2256,  2266,  2265,  2292,  2292,  2293,
1322 >    2293,  2293,  2295,  2301,  2310,  2312,  2312,  2313,  2313,  2315,
1323 >    2333,  2332,  2355,  2355,  2356,  2356,  2356,  2358,  2364,  2373,
1324 >    2376,  2376,  2377,  2377,  2378,  2378,  2379,  2379,  2380,  2380,
1325 >    2381,  2381,  2382,  2383,  2384,  2384,  2385,  2385,  2386,  2386,
1326 >    2387,  2387,  2388,  2388,  2389,  2389,  2390,  2390,  2391,  2391,
1327 >    2392,  2392,  2393,  2393,  2394,  2394,  2395,  2395,  2396,  2397,
1328 >    2398,  2398,  2399,  2399,  2400,  2401,  2402,  2403,  2403,  2404,
1329 >    2407,  2412,  2418,  2424,  2430,  2435,  2440,  2445,  2450,  2455,
1330 >    2460,  2465,  2470,  2475,  2480,  2485,  2490,  2495,  2501,  2512,
1331 >    2517,  2522,  2527,  2532,  2537,  2540,  2545,  2548,  2553,  2558,
1332 >    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1333 >    2617,  2626,  2631,  2636,  2642,  2641,  2646,  2646,  2647,  2650,
1334 >    2653,  2656,  2659,  2662,  2665,  2668,  2671,  2674,  2677,  2680,
1335 >    2683,  2686,  2689,  2692,  2695,  2698,  2701,  2704,  2707,  2713,
1336 >    2712,  2717,  2717,  2718,  2721,  2724,  2727,  2730,  2733,  2736,
1337 >    2739,  2742,  2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,
1338 >    2769,  2772,  2775,  2778,  2783,  2788,  2793,  2802,  2805,  2805,
1339 >    2806,  2807,  2807,  2808,  2808,  2809,  2810,  2811,  2812,  2813,
1340 >    2813,  2814,  2814,  2816,  2821,  2826,  2831,  2836,  2841,  2846,
1341 >    2851,  2856,  2861,  2866,  2871,  2879,  2882,  2882,  2883,  2883,
1342 >    2884,  2885,  2886,  2887,  2887,  2888,  2889,  2891,  2897,  2903,
1343 >    2909,  2915,  2924,  2938,  2944
1344   };
1345   #endif
1346  
# Line 1292 | Line 1357 | static const char *const yytname[] =
1357    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1358    "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1359    "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1360 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1361 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1362 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1363 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1364 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1360 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1361 >  "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1362 >  "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1363 >  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1364 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1365    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1366 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1367 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1368 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1369 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1370 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1371 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1372 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1373 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1374 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1375 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1376 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1377 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1378 <  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1379 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1380 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1381 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1382 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1383 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1384 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1385 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1386 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1387 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1388 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1389 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1390 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1391 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1392 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1393 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1394 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1395 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1396 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1397 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1398 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1399 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1400 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1401 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1402 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1366 >  "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1367 >  "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1368 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1369 >  "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1370 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1371 >  "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1372 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1373 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1374 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1375 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1376 >  "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1377 >  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1378 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1379 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1380 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1381 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1382 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1383 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1384 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1385 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1386 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1387 >  "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1388 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1389 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1390 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1391 >  "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1392 >  "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1393 >  "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1394 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1395 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1396 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1397 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1398 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1399 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1400 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1401 >  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1402 >  "sizespec", "modules_entry", "modules_items", "modules_item",
1403 >  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1404    "serverinfo_item", "serverinfo_ssl_client_method",
1405    "serverinfo_ssl_server_method", "client_method_types",
1406    "client_method_type_item", "server_method_types",
# Line 1343 | Line 1409 | static const char *const yytname[] =
1409    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1410    "serverinfo_description", "serverinfo_network_name",
1411    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1412 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1413 <  "admin_item", "admin_name", "admin_email", "admin_description",
1414 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1415 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1416 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1417 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1412 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1413 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1414 >  "admin_items", "admin_item", "admin_name", "admin_email",
1415 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1416 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1417 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1418 >  "logging_file_items", "logging_file_item", "logging_file_name",
1419 >  "logging_file_size", "logging_file_type", "$@3",
1420 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1421    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1422    "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1423 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1424 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1425 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1426 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1427 <  "class_connectfreq", "class_max_number", "class_max_global",
1428 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1423 >  "oper_umodes", "$@5", "oper_umodes_items", "oper_umodes_item",
1424 >  "oper_flags", "$@6", "oper_flags_items", "oper_flags_item",
1425 >  "class_entry", "$@7", "class_items", "class_item", "class_name",
1426 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1427 >  "class_max_number", "class_max_global", "class_max_local",
1428 >  "class_max_ident", "class_sendq", "class_recvq",
1429    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1430 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1431 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1432 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1433 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1434 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1435 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1436 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1437 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1438 <  "service_entry", "service_items", "service_item", "service_name",
1439 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1440 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1441 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1442 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1443 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1430 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1431 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1432 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1433 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1434 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1435 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1436 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1437 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1438 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1439 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1440 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1441 >  "shared_items", "shared_item", "shared_name", "shared_user",
1442 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1443 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1444 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1445 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1446    "connect_host", "connect_vhost", "connect_send_password",
1447    "connect_accept_password", "connect_port", "connect_aftype",
1448 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1448 >  "connect_flags", "$@20", "connect_flags_items", "connect_flags_item",
1449    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1450 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1451 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1452 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1453 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1454 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1455 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1456 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1386 <  "general_entry", "general_items", "general_item", "general_max_watch",
1387 <  "general_gline_enable", "general_gline_duration",
1450 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@21",
1451 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1452 >  "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1453 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1454 >  "gecos_entry", "$@23", "gecos_items", "gecos_item", "gecos_name",
1455 >  "gecos_reason", "general_entry", "general_items", "general_item",
1456 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1457    "general_gline_request_duration", "general_gline_min_cidr",
1458    "general_gline_min_cidr6", "general_tkline_expire_notices",
1459    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1460 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1461 <  "general_failed_oper_notice", "general_anti_nick_flood",
1462 <  "general_max_nick_time", "general_max_nick_changes",
1463 <  "general_max_accept", "general_anti_spam_exit_message_time",
1464 <  "general_ts_warn_delta", "general_ts_max_delta",
1465 <  "general_havent_read_conf", "general_invisible_on_connect",
1466 <  "general_warn_no_nline", "general_stats_e_disabled",
1467 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1468 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1469 <  "general_pace_wait", "general_caller_id_wait",
1470 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1471 <  "general_short_motd", "general_no_oper_flood",
1472 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1404 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1460 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1461 >  "general_anti_nick_flood", "general_max_nick_time",
1462 >  "general_max_nick_changes", "general_max_accept",
1463 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1464 >  "general_ts_max_delta", "general_havent_read_conf",
1465 >  "general_invisible_on_connect", "general_warn_no_nline",
1466 >  "general_stats_e_disabled", "general_stats_o_oper_only",
1467 >  "general_stats_P_oper_only", "general_stats_k_oper_only",
1468 >  "general_stats_i_oper_only", "general_pace_wait",
1469 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1470 >  "general_pace_wait_simple", "general_short_motd",
1471 >  "general_no_oper_flood", "general_true_no_oper_flood",
1472 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1473    "general_use_egd", "general_egdpool_path", "general_services_name",
1474    "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1475    "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1476    "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1477    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1478    "general_default_floodcount", "channel_entry", "channel_items",
1479 <  "channel_item", "channel_disable_fake_channels",
1412 <  "channel_restrict_channels", "channel_knock_delay",
1479 >  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1480    "channel_knock_delay_channel", "channel_max_chans_per_user",
1481 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1481 >  "channel_max_chans_per_oper", "channel_max_bans",
1482    "channel_default_split_user_count", "channel_default_split_server_count",
1483    "channel_no_create_on_split", "channel_no_join_on_split",
1484    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1485    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1486 <  "serverhide_hide_servers", "serverhide_hidden_name",
1486 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1487 >  "serverhide_hide_services", "serverhide_hidden_name",
1488    "serverhide_links_delay", "serverhide_hidden",
1489    "serverhide_hide_server_ips", YY_NULL
1490   };
# Line 1448 | Line 1516 | static const yytype_uint16 yytoknum[] =
1516       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1517       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1518       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1519 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1519 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1520 >     475,   476,   477,    59,   125,   123,    61,    44,    58
1521   };
1522   # endif
1523  
1524   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1525   static const yytype_uint16 yyr1[] =
1526   {
1527 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1528 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1529 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1530 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1531 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1532 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1533 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1534 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1535 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1536 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1537 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1538 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1539 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1540 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1541 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1542 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1543 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1544 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1545 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1546 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1547 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1548 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1549 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1550 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1551 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1552 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1553 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1554 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1555 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1556 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1557 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1558 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1559 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1560 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1561 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1562 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1563 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1564 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1565 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1566 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1567 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1568 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1569 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1570 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1571 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1572 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1573 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1574 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1575 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1576 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1577 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1578 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1579 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1580 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1581 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1582 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1583 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1584 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1585 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1586 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1587 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1588 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1589 <     496,   496,   497,   498,   499,   500,   501,   502
1527 >       0,   229,   230,   230,   231,   231,   231,   231,   231,   231,
1528 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1529 >     231,   231,   231,   231,   231,   231,   231,   232,   232,   233,
1530 >     233,   233,   233,   233,   233,   233,   233,   234,   234,   235,
1531 >     235,   235,   235,   236,   237,   237,   238,   238,   238,   239,
1532 >     240,   241,   242,   242,   243,   243,   243,   243,   243,   243,
1533 >     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1534 >     243,   243,   244,   245,   246,   246,   247,   247,   248,   248,
1535 >     249,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1536 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   266,
1537 >     267,   267,   267,   267,   268,   269,   270,   272,   271,   273,
1538 >     273,   274,   274,   274,   275,   276,   277,   278,   278,   279,
1539 >     279,   279,   280,   282,   281,   283,   283,   284,   284,   284,
1540 >     284,   285,   286,   286,   288,   287,   289,   289,   290,   290,
1541 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1542 >     294,   294,   294,   294,   294,   294,   294,   294,   295,   296,
1543 >     297,   298,   299,   300,   302,   301,   303,   303,   304,   304,
1544 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   304,
1545 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   306,
1546 >     305,   307,   307,   308,   308,   308,   308,   308,   308,   308,
1547 >     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1548 >     308,   308,   308,   308,   308,   308,   310,   309,   311,   311,
1549 >     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1550 >     312,   312,   312,   312,   312,   312,   312,   313,   314,   315,
1551 >     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1552 >     326,   327,   329,   328,   330,   330,   331,   331,   333,   332,
1553 >     335,   334,   336,   336,   337,   337,   337,   338,   338,   339,
1554 >     339,   339,   339,   339,   341,   340,   342,   342,   343,   343,
1555 >     344,   345,   347,   346,   348,   348,   349,   349,   349,   349,
1556 >     349,   349,   349,   349,   349,   350,   351,   352,   353,   355,
1557 >     354,   356,   356,   357,   357,   357,   357,   357,   357,   357,
1558 >     357,   357,   357,   358,   359,   360,   362,   361,   363,   363,
1559 >     364,   364,   364,   364,   365,   366,   367,   368,   369,   369,
1560 >     370,   370,   371,   373,   372,   374,   374,   375,   375,   375,
1561 >     375,   376,   377,   379,   378,   380,   380,   381,   381,   381,
1562 >     381,   381,   381,   381,   381,   381,   381,   383,   382,   384,
1563 >     384,   385,   385,   385,   386,   388,   387,   389,   389,   390,
1564 >     390,   390,   390,   390,   390,   390,   390,   390,   390,   392,
1565 >     391,   393,   393,   394,   394,   394,   394,   394,   394,   394,
1566 >     394,   394,   394,   394,   394,   394,   394,   395,   396,   397,
1567 >     398,   399,   400,   401,   401,   403,   402,   404,   404,   405,
1568 >     405,   406,   407,   408,   409,   410,   412,   411,   413,   413,
1569 >     414,   414,   414,   415,   416,   418,   417,   419,   419,   420,
1570 >     420,   420,   421,   422,   423,   424,   424,   425,   425,   426,
1571 >     428,   427,   429,   429,   430,   430,   430,   431,   432,   433,
1572 >     434,   434,   435,   435,   435,   435,   435,   435,   435,   435,
1573 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1574 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1575 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1576 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1577 >     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
1578 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1579 >     456,   457,   458,   459,   460,   460,   461,   461,   462,   463,
1580 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
1581 >     474,   475,   476,   477,   479,   478,   480,   480,   481,   481,
1582 >     481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
1583 >     481,   481,   481,   481,   481,   481,   481,   481,   481,   483,
1584 >     482,   484,   484,   485,   485,   485,   485,   485,   485,   485,
1585 >     485,   485,   485,   485,   485,   485,   485,   485,   485,   485,
1586 >     485,   485,   485,   485,   486,   487,   488,   489,   490,   490,
1587 >     491,   491,   491,   491,   491,   491,   491,   491,   491,   491,
1588 >     491,   491,   491,   492,   493,   494,   495,   496,   497,   498,
1589 >     499,   500,   501,   502,   503,   504,   505,   505,   506,   506,
1590 >     506,   506,   506,   506,   506,   506,   506,   507,   508,   509,
1591 >     510,   511,   512,   513,   514
1592   };
1593  
1594   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1525 | Line 1596 | static const yytype_uint8 yyr2[] =
1596   {
1597         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1600 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1601 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1599 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1600 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
1601 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
1602 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1605 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1606 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1607 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1608 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1609 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1610 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1611 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1612 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1613 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
1605 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1606 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1607 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
1608 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
1609 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1610 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1611 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1612 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1613 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1614         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1615 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1616 >       5,     3,     1,     3,     1,     3,     1,     3,     1,     1,
1617         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1618 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1618 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1619         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1620 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1621 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1620 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1621 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1622 >       4,     4,     0,     5,     3,     1,     1,     1,     0,     6,
1623         0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1624         1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1625         4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1626         1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1627         5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1628 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1629 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1630 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1631 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1632 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1633 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1634 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1635 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1636 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1637 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1638 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1639 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1628 >       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1629 >       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1630 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1631 >       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1632 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1633 >       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1634 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1635 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1636 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1637 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
1638 >       1,     4,     4,     4,     4,     4,     0,     6,     2,     1,
1639 >       1,     1,     1,     4,     4,     0,     6,     2,     1,     1,
1640 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     4,
1641         0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1642 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1568 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1569 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1642 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1644         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1645         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1646         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1574       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1647         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1648         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1649         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1650 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1650 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1651 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1652 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1653 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1654         5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1655         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1656 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1656 >       1,     1,     1,     1,     4,     4,     4,     5,     2,     1,
1657         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1658 +       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1659 +       4,     4,     4,     4,     4,     5,     2,     1,     1,     1,
1660         1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1661 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1585 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1586 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1587 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1588 <       1,     1,     4,     4,     4,     4,     4,     4
1661 >       4,     4,     4,     4,     4
1662   };
1663  
1664   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1593 | Line 1666 | static const yytype_uint8 yyr2[] =
1666     means the default is an error.  */
1667   static const yytype_uint16 yydefact[] =
1668   {
1669 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1670 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1671 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1672 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1673 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1669 >       2,     0,     1,     0,     0,     0,   216,   379,   425,     0,
1670 >     440,     0,   282,   416,   258,     0,   107,   145,   316,     0,
1671 >       0,   357,     0,     0,   333,     3,    23,    11,     4,    24,
1672 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1673 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1674 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676 +       0,     0,     0,     0,     0,    99,   100,   102,   101,   612,
1677         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1678 >       0,     0,     0,   599,   611,   601,   602,   603,   604,   600,
1679 >     605,   606,   607,   608,   609,   610,     0,     0,     0,   438,
1680 >       0,     0,   436,   437,     0,   499,     0,     0,     0,     0,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1605       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1606     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1607     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 +       0,     0,   569,     0,   544,     0,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1685 >       0,     0,     0,     0,   451,   497,   491,   492,   493,   494,
1686 >     495,   490,   462,   452,   453,   454,   455,   456,   457,   458,
1687 >     459,   460,   461,   487,   463,   464,   496,   466,   471,   467,
1688 >     469,   468,   481,   482,   470,   472,   473,   474,   475,   465,
1689 >     477,   478,   479,   498,   488,   489,   486,   480,   476,   484,
1690 >     485,   483,     0,     0,     0,     0,     0,     0,     0,    45,
1691 >      46,    47,     0,     0,     0,   636,     0,     0,     0,     0,
1692 >       0,     0,     0,     0,     0,   627,   628,   629,   630,   631,
1693 >     634,   632,   633,   635,     0,     0,     0,     0,     0,     0,
1694         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695 <       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1696 <     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1697 <     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1698 <     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1699 <     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1700 <     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1618 <       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1619 <       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1620 <       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1621 <     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622 <       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1623 <      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1624 <      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1625 <     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1695 >       0,     0,     0,    53,    68,    69,    67,    64,    63,    70,
1696 >      54,    66,    57,    58,    59,    55,    65,    60,    61,    62,
1697 >      56,     0,     0,     0,     0,   118,   119,   120,     0,   331,
1698 >       0,     0,   329,   330,     0,   103,     0,     0,     0,     0,
1699 >      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 >       0,     0,     0,     0,   598,     0,     0,     0,     0,   252,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1703 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1704 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1705 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1706 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1707 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1708 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1634 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1635 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,   219,   220,   223,   225,   226,   227,   228,
1703 >     229,   230,   231,   232,   221,   222,   224,   233,   234,   235,
1704 >       0,     0,     0,     0,     0,     0,     0,   405,     0,     0,
1705 >       0,     0,     0,     0,     0,   382,   383,   384,   385,   386,
1706 >     387,   389,   388,   391,   395,   392,   393,   394,   390,   431,
1707 >       0,     0,     0,   428,   429,   430,     0,     0,   435,   446,
1708 >       0,     0,     0,   443,   444,   445,     0,     0,     0,     0,
1709         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1710         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713 <       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1714 <       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1715 <     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1716 <     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1717 <     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1718 <       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1719 <       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1720 <     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1721 <       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1713 >       0,     0,     0,     0,   450,     0,     0,     0,   299,     0,
1714 >       0,     0,     0,     0,     0,   285,   286,   287,   288,   293,
1715 >     289,   290,   291,   292,   422,     0,     0,     0,   419,   420,
1716 >     421,     0,     0,     0,   260,     0,   270,     0,   268,   269,
1717 >     271,   272,    48,     0,     0,     0,    44,     0,     0,     0,
1718 >       0,   110,   111,   112,     0,     0,     0,   189,     0,     0,
1719 >       0,   164,     0,     0,   148,   149,   150,   151,   154,   155,
1720 >     153,   152,   156,     0,     0,     0,     0,     0,   319,   320,
1721 >     321,   322,     0,     0,     0,     0,     0,     0,     0,     0,
1722 >       0,   626,    71,     0,     0,     0,     0,     0,     0,     0,
1723         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724 <       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1725 <       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1726 <     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1727 <       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1728 <       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1724 >       0,    52,     0,     0,   365,     0,   360,   361,   362,   121,
1725 >       0,     0,   117,     0,     0,     0,   328,     0,     0,   343,
1726 >       0,     0,   336,   337,   338,   339,     0,     0,     0,    97,
1727 >       0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1728 >       0,     0,     0,   597,   236,     0,     0,     0,     0,     0,
1729         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 <       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1731 <       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1732 <       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1730 >       0,     0,   218,   396,     0,     0,     0,     0,     0,     0,
1731 >       0,     0,     0,     0,     0,     0,     0,     0,   381,     0,
1732 >       0,     0,   427,     0,   434,     0,     0,     0,   442,     0,
1733         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1736         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 +       0,     0,     0,     0,     0,     0,     0,     0,   449,   294,
1738 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   284,
1739 +       0,     0,     0,   418,   273,     0,     0,     0,     0,     0,
1740 +     267,     0,     0,    43,   113,     0,     0,     0,   109,   157,
1741 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   147,
1742 +     323,     0,     0,     0,     0,   318,     0,     0,     0,     0,
1743 +       0,     0,     0,     0,   625,     0,     0,     0,     0,     0,
1744 +       0,     0,     0,     0,     0,     0,     0,     0,    76,    77,
1745 +       0,    75,    80,    81,     0,    79,     0,     0,    51,   363,
1746 +       0,     0,     0,   359,     0,   116,     0,     0,   327,   340,
1747 +       0,     0,     0,     0,   335,   106,   105,   104,   620,   619,
1748 +     613,   623,    27,    27,    27,    27,    27,    27,    27,    29,
1749 +      28,   624,   614,   615,   618,   617,   616,   621,   622,     0,
1750         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1751 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1665 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1666 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1667 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1669 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1670 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1671 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1672 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1673 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1674 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1675 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1751 >       0,     0,     0,    37,     0,     0,   217,     0,     0,     0,
1752         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1754 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1755 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1756 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1757 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1758 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1759 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1760 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1761 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1762 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1763 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1764 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1765 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1766 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1767 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1768 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1769 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1770 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1771 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1772 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1773 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1774 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1775 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1776 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1777 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1778 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1779 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1780 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1781 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1782 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1783 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1784 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1785 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1786 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1787 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1788 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1789 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1790 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1791 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1792 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1793 <     116,   174,   150,   314,   336,   119,     0,   120
1753 >       0,   380,     0,     0,   426,   439,     0,     0,   441,   511,
1754 >     515,   529,   596,   542,   536,   539,   510,   502,   501,   504,
1755 >     505,   503,   518,   508,   509,   519,   507,   514,   513,   512,
1756 >     537,   500,   594,   595,   533,   579,   573,   590,   574,   575,
1757 >     576,   584,   593,   577,   587,   591,   580,   592,   585,   581,
1758 >     586,   578,   589,   583,   582,   588,     0,   572,   535,   553,
1759 >     548,   565,   549,   550,   551,   559,   568,   552,   562,   566,
1760 >     555,   567,   560,   556,   561,   554,   564,   558,   557,   563,
1761 >       0,   547,   530,   528,   531,   541,   532,   521,   526,   527,
1762 >     524,   525,   522,   523,   540,   543,   506,   534,   517,   516,
1763 >     538,   520,     0,     0,     0,     0,     0,     0,     0,     0,
1764 >     283,     0,     0,   417,     0,     0,     0,   278,   274,   277,
1765 >     259,    49,    50,     0,     0,   108,     0,     0,     0,     0,
1766 >       0,     0,     0,     0,   146,     0,     0,     0,   317,   638,
1767 >     637,   643,   641,   644,   639,   640,   642,    88,    96,    87,
1768 >      94,    95,    86,    90,    89,    83,    82,    84,    93,    85,
1769 >      72,     0,    73,     0,    91,    92,     0,     0,   358,   122,
1770 >       0,     0,     0,   134,     0,   126,   127,   129,   128,   332,
1771 >       0,     0,     0,   334,    30,    31,    32,    33,    34,    35,
1772 >      36,   247,   248,   240,   257,   256,     0,   255,   242,   244,
1773 >     251,   243,   241,   250,   237,   249,   239,   238,    37,    37,
1774 >      37,    39,    38,   245,   246,   401,   403,   404,   414,   411,
1775 >     398,   412,   409,   410,     0,   408,   413,   397,   402,   400,
1776 >     415,   399,   432,   433,   447,   448,   570,     0,   545,     0,
1777 >     297,   298,   307,   304,   309,   305,   306,   312,   308,   310,
1778 >     303,   311,     0,   302,   296,   315,   314,   313,   295,   424,
1779 >     423,   281,   280,   265,   266,   264,     0,   263,     0,     0,
1780 >       0,   114,   115,   163,   161,   208,   196,   205,   204,   194,
1781 >     199,   215,   207,   213,   198,   201,   210,   212,   209,   206,
1782 >     214,   202,   211,   200,   203,     0,   192,   158,   160,   162,
1783 >     173,   168,   185,   169,   170,   171,   179,   188,   172,   182,
1784 >     186,   175,   187,   180,   176,   181,   174,   184,   178,   177,
1785 >     183,     0,   167,   159,   326,   324,   325,    74,    78,   364,
1786 >     369,   375,   378,   371,   377,   372,   376,   374,   370,   373,
1787 >       0,   368,   130,     0,     0,     0,     0,   125,   341,   347,
1788 >     353,   356,   349,   355,   350,   354,   352,   348,   351,     0,
1789 >     346,   342,   253,     0,    40,    41,    42,   406,     0,   571,
1790 >     546,   300,     0,   261,     0,   279,   276,   275,     0,     0,
1791 >       0,   190,     0,   165,     0,   366,     0,     0,     0,     0,
1792 >       0,   124,   344,     0,   254,   407,   301,   262,   195,   193,
1793 >     197,   191,   166,   367,   131,   133,   132,   140,   143,   142,
1794 >     139,   144,   141,   138,     0,   137,   345,   135,     0,   136
1795   };
1796  
1797   /* YYDEFGOTO[NTERM-NUM].  */
1798   static const yytype_int16 yydefgoto[] =
1799   {
1800 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1801 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1802 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1803 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1804 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1805 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1806 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1807 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1808 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1809 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1810 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1811 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1812 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1813 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1814 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1815 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1816 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1817 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1818 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1819 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1820 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1821 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1822 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1823 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1824 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1825 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1826 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1827 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1828 <     248,   249,   250
1800 >      -1,     1,    25,   799,   800,  1051,  1052,    26,   218,   219,
1801 >     220,   221,    27,   262,   263,   264,   265,   760,   761,   764,
1802 >     765,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1803 >     275,   276,   277,   278,   279,   280,    28,    74,    75,    76,
1804 >      77,    78,    29,    61,   490,   491,   492,   493,    30,   284,
1805 >     285,   286,   287,   288,  1014,  1015,  1016,  1017,  1018,  1185,
1806 >    1254,  1255,    31,    62,   503,   504,   505,   506,   507,   508,
1807 >     509,   510,   511,   726,  1161,  1162,   512,   722,  1135,  1136,
1808 >      32,    51,   332,   333,   334,   335,   336,   337,   338,   339,
1809 >     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1810 >     598,  1036,  1037,    33,    59,   476,   707,  1106,  1107,   477,
1811 >     478,   479,  1110,   958,   959,   480,   481,    34,    57,   454,
1812 >     455,   456,   457,   458,   459,   460,   692,  1092,  1093,   461,
1813 >     462,   463,    35,    63,   517,   518,   519,   520,   521,    36,
1814 >     291,   292,   293,    37,    69,   571,   572,   573,   574,   575,
1815 >     781,  1199,  1200,    38,    66,   555,   556,   557,   558,   771,
1816 >    1180,  1181,    39,    52,   364,   365,   366,   367,   368,   369,
1817 >     370,   371,   372,   373,   620,  1064,  1065,   374,   375,   376,
1818 >     377,   378,    40,    58,   467,   468,   469,   470,    41,    53,
1819 >     382,   383,   384,   385,    42,   111,   112,   113,    43,    55,
1820 >     392,   393,   394,   395,    44,   163,   164,   165,   166,   167,
1821 >     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1822 >     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1823 >     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1824 >     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1825 >     424,   920,   921,   208,   422,   896,   897,   209,   210,   211,
1826 >      45,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1827 >     101,   102,   103,   104,   105,    46,   234,   235,   236,   237,
1828 >     238,   239,   240,   241,   242,   243
1829   };
1830  
1831   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1832     STATE-NUM.  */
1833 < #define YYPACT_NINF -744
1833 > #define YYPACT_NINF -984
1834   static const yytype_int16 yypact[] =
1835   {
1836 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1837 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1838 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1839 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1840 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1841 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1842 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1843 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1844 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1845 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1846 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1847 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1848 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1849 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1850 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1851 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1852 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1853 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1854 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1855 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1856 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1857 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1858 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1859 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1860 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1861 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1862 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1863 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1864 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1865 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1866 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1867 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1868 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1869 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1870 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1871 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1872 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1873 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1874 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1875 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1876 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1877 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1878 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1879 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1880 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1881 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1882 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1883 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1884 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1885 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1886 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1887 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1888 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1889 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1890 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1891 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1892 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1893 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1894 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1895 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1896 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1897 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1898 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1899 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1900 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1901 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1902 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1903 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1904 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1905 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1906 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1907 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1908 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1909 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1910 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1911 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1912 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1913 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1914 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1915 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1916 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1917 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1918 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1919 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1920 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1921 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1922 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1923 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1924 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1925 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1926 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1927 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1928 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1929 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1930 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1931 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1932 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1933 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1934 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1935 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1936 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1937 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1938 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1939 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1940 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1941 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1942 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1943 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1944 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1945 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1946 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1947 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1948 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1949 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1950 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1951 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1952 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1953 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1954 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1955 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1956 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1957 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1958 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1836 >    -984,   637,  -984,  -186,  -182,  -165,  -984,  -984,  -984,  -148,
1837 >    -984,  -135,  -984,  -984,  -984,  -127,  -984,  -984,  -984,  -118,
1838 >     -64,  -984,   -56,   -50,  -984,  -984,  -984,  -984,  -984,  -984,
1839 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1840 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,   331,
1841 >     826,   -48,   -45,   -11,    28,    36,   366,    39,    40,    41,
1842 >      60,    46,    58,    62,   721,   334,    65,    35,    24,    72,
1843 >    -195,   -66,   -21,    66,    17,  -984,  -984,  -984,  -984,  -984,
1844 >      92,    96,    97,    99,   108,   110,   111,   118,   119,   124,
1845 >     125,   133,     5,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1846 >    -984,  -984,  -984,  -984,  -984,  -984,   657,   440,    14,  -984,
1847 >     134,    12,  -984,  -984,    29,  -984,   135,   137,   138,   143,
1848 >     145,   149,   150,   153,   155,   157,   158,   162,   163,   174,
1849 >     176,   177,   178,   182,   186,   189,   190,   192,   195,   196,
1850 >     200,   201,  -984,   203,  -984,   204,   206,   210,   211,   214,
1851 >     221,   222,   225,   235,   236,   237,   238,   239,   242,   243,
1852 >     244,   249,   253,   105,  -984,  -984,  -984,  -984,  -984,  -984,
1853 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1854 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1855 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1856 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1857 >    -984,  -984,   268,    19,   212,    16,   261,   262,    38,  -984,
1858 >    -984,  -984,   165,   472,   274,  -984,   264,   266,   270,   272,
1859 >     273,   279,   280,   281,     6,  -984,  -984,  -984,  -984,  -984,
1860 >    -984,  -984,  -984,  -984,    32,   284,   287,   288,   290,   296,
1861 >     297,   298,   299,   304,   305,   306,   307,   316,   317,   319,
1862 >     320,   321,   146,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1863 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1864 >    -984,    70,    87,   322,    10,  -984,  -984,  -984,   180,  -984,
1865 >     324,    95,  -984,  -984,   173,  -984,   232,   260,   277,   215,
1866 >    -984,   387,   444,   349,   449,   450,   450,   450,   451,   453,
1867 >     456,   359,   360,   344,  -984,   347,   346,   353,   354,  -984,
1868 >     358,   362,   364,   365,   367,   369,   371,   373,   376,   380,
1869 >     383,   384,   103,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1870 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1871 >     363,   385,   388,   390,   391,   392,   393,  -984,   402,   403,
1872 >     404,   405,   409,   410,    30,  -984,  -984,  -984,  -984,  -984,
1873 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1874 >     414,   426,     4,  -984,  -984,  -984,   463,   381,  -984,  -984,
1875 >     427,   430,    44,  -984,  -984,  -984,   386,   450,   450,   506,
1876 >     455,   555,   541,   458,   450,   459,   559,   561,   450,   563,
1877 >     474,   477,   480,   450,   581,   584,   450,   586,   587,   593,
1878 >     594,   496,   479,   500,   486,   507,   450,   450,   508,   510,
1879 >     511,  -197,  -192,   514,   515,   602,   450,   519,   521,   450,
1880 >     450,   522,   524,   503,  -984,   512,   505,   516,  -984,   517,
1881 >     525,   526,   527,   530,   231,  -984,  -984,  -984,  -984,  -984,
1882 >    -984,  -984,  -984,  -984,  -984,   533,   534,    20,  -984,  -984,
1883 >    -984,   513,   535,   537,  -984,   538,  -984,    18,  -984,  -984,
1884 >    -984,  -984,  -984,   612,   619,   523,  -984,   545,   549,   550,
1885 >      67,  -984,  -984,  -984,   556,   552,   557,  -984,   558,   560,
1886 >     562,  -984,   564,   156,  -984,  -984,  -984,  -984,  -984,  -984,
1887 >    -984,  -984,  -984,   566,   565,   567,   569,    55,  -984,  -984,
1888 >    -984,  -984,   539,   576,   579,   625,   590,   596,   597,   450,
1889 >     582,  -984,  -984,   665,   598,   670,   699,   700,   686,   687,
1890 >     689,   690,   691,   693,   709,   695,  -144,   -96,   696,   698,
1891 >     607,  -984,   610,   611,  -984,   128,  -984,  -984,  -984,  -984,
1892 >     616,   615,  -984,   620,   718,   618,  -984,   626,   624,  -984,
1893 >     628,    85,  -984,  -984,  -984,  -984,   629,   635,   636,  -984,
1894 >     638,   639,   640,   641,   487,   643,   650,   653,   655,   658,
1895 >     660,   661,   669,  -984,  -984,   753,   773,   450,   662,   786,
1896 >     788,   450,   794,   795,   450,   784,   800,   802,   450,   803,
1897 >     803,   688,  -984,  -984,   790,   -55,   792,   711,   793,   796,
1898 >     694,   797,   799,   809,   801,   804,   805,   701,  -984,   806,
1899 >     810,   702,  -984,   708,  -984,   811,   812,   712,  -984,   713,
1900 >     714,   715,   716,   717,   719,   720,   722,   723,   724,   725,
1901 >     726,   727,   728,   729,   730,   731,   732,   733,   734,   735,
1902 >     736,   737,   738,   739,   740,   520,   741,   667,   742,   743,
1903 >     744,   745,   746,   747,   748,   749,   750,   751,   752,   754,
1904 >     755,   756,   757,   758,   759,   760,   761,   762,  -984,  -984,
1905 >     819,   770,   763,   822,   815,   864,   865,   866,   767,  -984,
1906 >     869,   870,   771,  -984,  -984,   871,   873,   772,   889,   774,
1907 >    -984,   776,   777,  -984,  -984,   879,   880,   780,  -984,  -984,
1908 >     882,   807,   779,   884,   885,   886,   783,   888,   789,  -984,
1909 >    -984,   892,   893,   894,   798,  -984,   808,   813,   814,   816,
1910 >     817,   818,   820,   821,  -984,   823,   824,   825,   827,   828,
1911 >     829,   830,   831,   832,   833,   834,   835,   836,  -984,  -984,
1912 >    -183,  -984,  -984,  -984,  -177,  -984,   837,   838,  -984,  -984,
1913 >     895,   785,   839,  -984,   840,  -984,   154,   841,  -984,  -984,
1914 >     896,   842,   897,   843,  -984,  -984,  -984,  -984,  -984,  -984,
1915 >    -984,  -984,   450,   450,   450,   450,   450,   450,   450,  -984,
1916 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,   844,
1917 >     846,   847,   -42,   848,   849,   850,   851,   852,   853,   854,
1918 >     855,   856,   857,    13,   858,   859,  -984,   860,   861,   862,
1919 >     863,   867,   868,   872,     8,   874,   875,   876,   877,   878,
1920 >     881,  -984,   883,   887,  -984,  -984,   890,   891,  -984,  -984,
1921 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1922 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1923 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1924 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1925 >    -984,  -984,  -984,  -984,  -984,  -984,  -174,  -984,  -984,  -984,
1926 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1927 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1928 >    -130,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1929 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1930 >    -984,  -984,   898,   899,   502,   900,   901,   902,   903,   904,
1931 >    -984,   905,   906,  -984,   907,   908,    15,   919,   909,  -984,
1932 >    -984,  -984,  -984,   910,   911,  -984,   912,   914,   435,   915,
1933 >     916,   917,   710,   918,  -984,   920,   921,   922,  -984,  -984,
1934 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1935 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1936 >    -984,  -144,  -984,   -96,  -984,  -984,   923,   337,  -984,  -984,
1937 >     924,   925,   926,  -984,    90,  -984,  -984,  -984,  -984,  -984,
1938 >     927,   599,   930,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1939 >    -984,  -984,  -984,  -984,  -984,  -984,   -65,  -984,  -984,  -984,
1940 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,   803,   803,
1941 >     803,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1942 >    -984,  -984,  -984,  -984,   -20,  -984,  -984,  -984,  -984,  -984,
1943 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,   520,  -984,   667,
1944 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1945 >    -984,  -984,   -19,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1946 >    -984,  -984,  -984,  -984,  -984,  -984,    53,  -984,   913,   889,
1947 >     931,  -984,  -984,  -984,  -984,  -984,   928,  -984,  -984,   929,
1948 >    -984,  -984,  -984,  -984,   932,  -984,  -984,  -984,  -984,  -984,
1949 >    -984,  -984,  -984,  -984,  -984,    59,  -984,  -984,  -984,  -984,
1950 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1951 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1952 >    -984,    79,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1953 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1954 >      84,  -984,  -984,   943,   -97,   933,   935,  -984,  -984,  -984,
1955 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,   101,
1956 >    -984,  -984,  -984,   -42,  -984,  -984,  -984,  -984,     8,  -984,
1957 >    -984,  -984,   502,  -984,    15,  -984,  -984,  -984,   959,   960,
1958 >     961,  -984,   435,  -984,   710,  -984,   337,   938,   939,   940,
1959 >     378,  -984,  -984,   599,  -984,  -984,  -984,  -984,  -984,  -984,
1960 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1961 >    -984,  -984,  -984,  -984,   120,  -984,  -984,  -984,   378,  -984
1962   };
1963  
1964   /* YYPGOTO[NTERM-NUM].  */
1965   static const yytype_int16 yypgoto[] =
1966   {
1967 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1968 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1969 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1970 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1971 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1972 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1973 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1974 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1975 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1976 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1977 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1978 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1979 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1980 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1981 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1982 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1983 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1984 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1985 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1986 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1987 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1988 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1989 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1990 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1991 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1992 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1993 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1994 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1995 <    -744,  -744,  -744
1967 >    -984,  -984,  -984,  -150,  -303,  -983,  -609,  -984,  -984,   937,
1968 >    -984,  -984,  -984,  -984,   764,  -984,  -984,  -984,    21,  -984,
1969 >      22,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1970 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,   949,  -984,
1971 >    -984,  -984,  -984,  -984,  -984,   540,  -984,  -984,  -984,  -984,
1972 >     765,  -984,  -984,  -984,  -984,    31,  -984,  -984,  -984,  -984,
1973 >    -984,  -234,  -984,  -984,  -984,   529,  -984,  -984,  -984,  -984,
1974 >    -984,  -984,  -984,  -984,  -984,  -196,  -984,  -984,  -984,  -193,
1975 >    -984,  -984,  -984,   703,  -984,  -984,  -984,  -984,  -984,  -984,
1976 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1977 >    -984,  -984,  -176,  -984,  -984,  -984,  -984,  -984,  -181,  -984,
1978 >     617,  -984,  -984,  -984,   -75,  -984,  -984,  -984,  -984,  -984,
1979 >     588,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -120,  -984,
1980 >    -984,  -984,  -984,  -984,  -984,   585,  -984,  -984,  -984,  -984,
1981 >    -984,   934,  -984,  -984,  -984,  -984,   467,  -984,  -984,  -984,
1982 >    -984,  -984,  -140,  -984,  -984,  -984,   548,  -984,  -984,  -984,
1983 >    -984,  -121,  -984,  -984,  -984,   778,  -984,  -984,  -984,  -984,
1984 >    -984,  -984,  -984,  -984,  -984,  -984,  -112,  -984,  -984,  -984,
1985 >    -984,  -984,  -984,  -984,  -984,   642,  -984,  -984,  -984,  -984,
1986 >    -984,   766,  -984,  -984,  -984,  -984,   996,  -984,  -984,  -984,
1987 >    -984,   775,  -984,  -984,  -984,  -984,   945,  -984,  -984,  -984,
1988 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1989 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1990 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1991 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1992 >    -984,  -984,    33,  -984,  -984,  -984,    34,  -984,  -984,  -984,
1993 >    -984,  -984,  1023,  -984,  -984,  -984,  -984,  -984,  -984,  -984,
1994 >    -984,  -984,  -984,  -984,  -984,  -984,  -984,   936,  -984,  -984,
1995 >    -984,  -984,  -984,  -984,  -984,  -984
1996   };
1997  
1998   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1999     positive, shift that token.  If negative, reduce the rule which
2000     number is the opposite.  If YYTABLE_NINF, syntax error.  */
2001 < #define YYTABLE_NINF -108
2001 > #define YYTABLE_NINF -124
2002   static const yytype_int16 yytable[] =
2003   {
2004 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
2005 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
2006 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
2007 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
2008 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
2009 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
2010 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
2011 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
2012 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
2013 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
2014 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
2015 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
2016 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
2017 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
2018 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
2019 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
2020 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
2021 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
2022 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
2023 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
2024 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
2025 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
2026 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
2027 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
2028 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
2029 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
2030 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
2031 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
2032 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
2033 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
2034 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
2035 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
2036 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
2037 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
2038 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
2039 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
2040 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
2041 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
2042 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
2043 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
2044 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
2045 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
2046 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
2047 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
2048 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
2049 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
2050 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
2051 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
2052 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
2053 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
2054 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
2055 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
2056 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
2057 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
2058 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
2059 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
2060 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
2061 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
2062 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
2063 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
2064 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
2065 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
2066 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
2067 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
2068 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
2069 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
2070 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
2071 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
2072 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
2073 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
2074 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
2075 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
2076 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
2077 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
2078 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
2079 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
2080 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
2081 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
2082 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
2083 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
2084 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
2085 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
2086 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
2087 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
2088 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
2089 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
2090 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
2091 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
2092 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
2093 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
2094 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
2095 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
2096 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
2097 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
2098 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
2099 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
2100 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
2101 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
2102 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
2103 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
2104 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
2105 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
2106 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
2107 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
2108 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
2109 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
2110 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
2111 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
2112 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
2113 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
2114 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
2115 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
2116 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
2117 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
2004 >     824,   825,   585,   586,   587,   379,    79,   225,  1034,   674,
2005 >     823,   282,   675,   109,   676,   379,  1062,   677,    70,   471,
2006 >     464,   464,  1048,  1049,  1050,   289,    80,    81,   295,   109,
2007 >     389,   350,    82,   351,   226,   352,   282,    47,    48,   215,
2008 >    1000,    71,   227,    49,  1001,   389,  1002,   353,    72,  1076,
2009 >    1003,   758,   759,  1077,   228,   229,   513,   230,   231,   232,
2010 >      50,   215,   354,  1103,   380,  1204,  1205,  1206,   487,    83,
2011 >      84,   552,   110,   472,   380,    85,    86,    54,   473,   233,
2012 >     474,  1035,    87,    88,    89,   355,   567,   356,   110,   514,
2013 >      56,  1010,   357,  1078,   640,   641,   289,  1079,    60,   762,
2014 >     763,   647,   358,  1228,   315,   651,   115,    64,    90,    91,
2015 >     656,   116,   117,   659,    73,   828,   829,   118,   316,   317,
2016 >     823,   290,   318,   669,   670,   119,   390,   359,   381,   552,
2017 >     515,   120,   216,   681,   121,   122,   684,   685,   381,   475,
2018 >     123,   390,   488,   465,   465,   124,   125,   244,   126,   127,
2019 >     128,   360,   129,   391,   216,  1010,   217,   494,  1202,   130,
2020 >     296,    65,  1203,   131,   132,   319,   487,   553,   391,    67,
2021 >     245,   361,   133,   495,   567,    68,  -123,   106,   217,   516,
2022 >     107,   134,   568,   320,   321,   322,   323,  1011,   496,   135,
2023 >     324,   136,   290,   137,   325,   138,  1104,   139,   140,  1063,
2024 >     326,  -123,   246,  1207,  1211,   297,  1105,  1208,  1212,   247,
2025 >     141,   327,   328,   471,   108,   142,   143,   144,   497,   145,
2026 >     146,   147,   362,   329,   148,   553,   743,   283,   631,   313,
2027 >     530,   248,   445,   489,   561,   249,   387,   466,   466,   482,
2028 >     488,   299,   709,   250,   702,   330,   251,   252,   446,   363,
2029 >     149,  1011,   283,   498,   627,   532,   150,   151,   152,   153,
2030 >     154,   114,   485,   447,   212,   213,   214,   472,   637,   445,
2031 >     568,   222,   473,   499,   474,   513,  1213,  1012,   253,   734,
2032 >    1214,   331,  1221,   223,   554,   446,  1222,   224,   155,   500,
2033 >     281,   717,   298,   448,   811,   254,   255,   294,   815,   569,
2034 >     447,   818,  1223,   570,  1013,   822,  1224,  1225,   514,   783,
2035 >     559,  1226,   156,   157,  1186,   158,   159,   160,   301,   565,
2036 >     256,   161,   302,   303,  1232,   304,   162,   611,  1233,   443,
2037 >     448,   489,    70,   475,   305,   244,   306,   307,   257,   258,
2038 >     259,  1012,   554,  1257,   308,   309,   563,  1258,   449,   515,
2039 >     310,   311,   772,   501,   576,    71,   450,   451,   245,   312,
2040 >     386,   396,    72,   397,   398,   260,   261,   115,  1013,   399,
2041 >     550,   400,   116,   117,   502,   401,   402,   452,   118,   403,
2042 >     728,   404,   577,   405,   406,   449,   119,   569,   407,   408,
2043 >     246,   570,   120,   450,   451,   121,   122,   247,   516,   578,
2044 >     409,   123,   410,   411,   412,  1170,   124,   125,   413,   126,
2045 >     127,   128,   414,   129,   452,   415,   416,  1247,   417,   248,
2046 >     130,   418,   419,   249,   131,   132,   420,   421,    73,   423,
2047 >     425,   250,   426,   133,   251,   252,   427,   428,   579,  1115,
2048 >     429,   350,   134,   351,  1248,   352,  1249,   430,   431,   453,
2049 >     135,   432,   136,  1116,   137,   698,   138,   353,   139,   140,
2050 >    1117,   433,   434,   435,   436,   437,   253,  1171,   438,   439,
2051 >     440,   141,   354,   494,  1118,   441,   142,   143,   144,   442,
2052 >     145,   146,   147,   254,   255,   148,   453,   483,   484,   495,
2053 >     522,  1250,   523,  1172,   580,   355,   524,   356,   525,   526,
2054 >    1173,  1119,   357,  1120,   496,   527,   528,   529,   256,  1174,
2055 >     533,   149,   358,   534,   535,  1082,   536,   150,   151,   152,
2056 >     153,   154,   537,   538,   539,   540,   257,   258,   259,  1121,
2057 >     541,   542,   543,   544,   497,  1083,  1175,   359,  1176,  1177,
2058 >    1251,  1252,   545,   546,  1084,   547,   548,   549,   560,   155,
2059 >     564,   581,  1178,   260,   261,   582,   583,   584,   588,  1179,
2060 >     589,   360,  1122,   590,  1123,   591,   592,   593,   875,   498,
2061 >     594,  1085,   595,   156,   157,  1229,   158,   159,   160,   596,
2062 >     597,   361,   161,  1124,   599,   633,   613,   162,   600,   499,
2063 >     601,   602,   639,   603,   584,   604,  1253,   605,  1125,   606,
2064 >    1086,  1087,   607,  1126,   634,   500,   608,  1127,  1088,   609,
2065 >     610,   614,  1128,   642,   615,  1129,   616,   617,   618,   619,
2066 >    1130,   792,   793,   794,   795,   796,   797,   798,   621,   622,
2067 >     623,   624,   362,  1089,  1131,   625,   626,     2,     3,  1132,
2068 >     629,     4,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1090,
2069 >    1133,     5,   630,   635,     6,     7,   636,  1134,   315,   363,
2070 >       8,   643,   644,   645,   646,   648,   649,  1189,   650,   501,
2071 >     652,     9,   316,   317,    10,    11,   318,   876,   877,   878,
2072 >     653,   879,   880,   654,   881,   882,   655,   883,   657,   884,
2073 >     502,   658,   885,   660,   661,   886,   887,   888,    12,   889,
2074 >     662,   663,   664,    13,   890,   665,   666,  1091,   891,   892,
2075 >     893,    14,   667,   668,   671,   899,   672,   673,   894,   319,
2076 >     678,   679,   225,   895,   680,   682,   688,   683,   686,  1190,
2077 >     687,   690,    15,    16,   711,   689,   704,   320,   321,   322,
2078 >     323,   712,   691,   693,   324,   736,   713,   739,   325,   226,
2079 >      17,   694,   695,   696,   326,  1191,   697,   227,  1140,   700,
2080 >     701,   705,  1192,   706,   708,   327,   328,    18,   714,   228,
2081 >     229,  1193,   230,   231,   232,   715,   716,   329,   720,   719,
2082 >      19,    20,   737,   721,   723,   738,   724,   745,   725,   730,
2083 >     727,   731,   747,   732,   233,   733,   740,    21,  1194,   330,
2084 >    1195,  1196,   741,   742,   746,   744,   748,   749,   750,   751,
2085 >      22,   752,   753,   754,  1197,   755,   756,   757,   766,    23,
2086 >     767,  1198,   774,    24,   900,   901,   902,    79,   903,   904,
2087 >     768,   905,   906,   769,   907,   331,   908,   770,   775,   909,
2088 >     777,   778,   910,   911,   912,   776,   913,    80,    81,   779,
2089 >     780,   914,   785,    82,   782,   915,   916,   917,   786,   787,
2090 >     809,   788,   789,   790,   791,   918,   801,  1141,  1142,  1143,
2091 >     919,  1144,  1145,   802,  1146,  1147,   803,  1148,   804,  1149,
2092 >     810,   805,  1150,   806,   807,  1151,  1152,  1153,   812,  1154,
2093 >      83,    84,   808,   813,  1155,   814,    85,    86,  1156,  1157,
2094 >    1158,   816,   817,    87,    88,    89,   819,   820,  1159,   821,
2095 >     823,   826,   827,  1160,   830,   832,   837,   831,   833,   835,
2096 >     834,   836,   946,   838,   841,   844,   839,   840,   842,    90,
2097 >      91,   845,   843,   846,   847,   848,   849,   850,   851,   852,
2098 >     853,   942,   854,   855,   945,   856,   857,   858,   859,   860,
2099 >     861,   862,   863,   864,   865,   866,   867,   868,   869,   870,
2100 >     871,   872,   873,   874,   898,   922,   923,   924,   925,   926,
2101 >     927,   928,   929,   930,   931,   932,   943,   933,   934,   935,
2102 >     936,   937,   938,   939,   940,   941,   947,   948,   949,   944,
2103 >     950,   951,   952,   954,   953,   955,   957,   960,   956,   961,
2104 >     962,   963,   964,   965,   966,   968,   969,   970,   971,   972,
2105 >     973,  1007,   974,   967,   975,   976,   977,  1006,  1020,  1022,
2106 >    1215,   978,  1167,   300,  1259,  1168,   551,  1234,  1242,  1241,
2107 >     718,   979,   729,  1237,  1216,   612,   980,   981,   784,   982,
2108 >     983,   984,   699,   985,   986,  1187,   987,   988,   989,   562,
2109 >     990,   991,   992,   993,   994,   995,   996,   997,   998,   999,
2110 >    1004,  1005,  1008,  1009,  1019,  1227,  1023,  1031,  1021,  1032,
2111 >    1033,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,  1046,
2112 >    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1238,  1239,  1240,
2113 >    1059,  1060,  1236,  1256,   710,  1061,  1235,  1066,  1067,  1068,
2114 >    1069,  1070,   735,   773,  1071,  1243,  1072,   388,   444,   703,
2115 >    1073,  1209,  1210,  1074,  1075,   314,     0,     0,     0,     0,
2116 >       0,  1080,  1081,  1094,  1095,  1096,  1097,  1098,  1099,  1100,
2117 >    1101,  1102,  1108,  1111,  1112,  1113,  1109,  1114,  1137,  1138,
2118 >    1139,  1163,   628,  1164,  1165,  1166,  1169,  1182,   632,     0,
2119 >    1188,  1183,  1184,  1201,  1217,   486,  1218,  1219,  1231,  1230,
2120 >    1220,  1244,  1245,  1246,     0,     0,     0,   638,     0,     0,
2121 >     531,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2122         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2123         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
2124         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
2125         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2126 <       0,     0,     0,     0,     0,     0,   564
2126 >       0,     0,     0,     0,     0,   566
2127   };
2128  
2129   #define yypact_value_is_default(Yystate) \
2130 <  (!!((Yystate) == (-744)))
2130 >  (!!((Yystate) == (-984)))
2131  
2132   #define yytable_value_is_error(Yytable_value) \
2133    YYID (0)
2134  
2135   static const yytype_int16 yycheck[] =
2136   {
2137 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
2138 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
2139 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
2140 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
2141 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
2142 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
2143 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
2144 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
2145 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
2146 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
2147 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
2148 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
2149 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
2150 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
2151 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
2152 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
2153 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
2154 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
2155 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
2156 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
2157 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
2158 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
2159 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
2160 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
2161 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
2162 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
2163 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
2164 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
2165 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
2166 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
2167 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
2168 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
2169 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
2170 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
2171 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
2172 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
2173 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
2174 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
2175 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
2176 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
2177 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
2178 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
2179 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
2180 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
2181 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
2182 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
2183 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
2184 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
2185 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
2186 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
2187 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
2188 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
2189 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
2190 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
2191 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
2192 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
2193 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
2194 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
2195 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
2196 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
2197 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
2198 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
2199 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
2200 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
2201 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
2202 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
2203 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
2204 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
2205 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
2206 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
2207 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
2208 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
2209 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
2210 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
2211 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
2212 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
2213 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
2214 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
2215 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
2216 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
2217 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
2218 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
2219 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
2220 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
2221 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
2222 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
2223 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
2224 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
2225 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
2226 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
2227 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
2228 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
2229 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
2230 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
2231 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
2232 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2233 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
2234 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
2235 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
2236 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
2237 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
2238 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
2239 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
2240 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
2241 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
2242 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2243 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
2244 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
2245 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
2246 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
2247 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
2248 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
2249 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
2250 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2137 >     609,   610,   305,   306,   307,     1,     1,     1,    50,   206,
2138 >     107,     1,   209,     1,   206,     1,     8,   209,     1,     1,
2139 >       1,     1,     9,    10,    11,     1,    21,    22,   223,     1,
2140 >       1,     1,    27,     3,    28,     5,     1,   223,   224,     1,
2141 >     223,    24,    36,   225,   227,     1,   223,    17,    31,   223,
2142 >     227,   195,   196,   227,    48,    49,     1,    51,    52,    53,
2143 >     225,     1,    32,    48,    60,  1048,  1049,  1050,     1,    64,
2144 >      65,     1,    60,    55,    60,    70,    71,   225,    60,    73,
2145 >      62,   123,    77,    78,    79,    55,     1,    57,    60,    34,
2146 >     225,     1,    62,   223,   397,   398,     1,   227,   225,   195,
2147 >     196,   404,    72,   200,     1,   408,     1,   225,   103,   104,
2148 >     413,     6,     7,   416,    97,   170,   171,    12,    15,    16,
2149 >     107,    97,    19,   426,   427,    20,    97,    97,   124,     1,
2150 >      75,    26,    94,   436,    29,    30,   439,   440,   124,   121,
2151 >      35,    97,    75,   124,   124,    40,    41,     1,    43,    44,
2152 >      45,   121,    47,   124,    94,     1,   118,     1,   223,    54,
2153 >     226,   225,   227,    58,    59,    62,     1,    97,   124,   225,
2154 >      24,   141,    67,    17,     1,   225,   166,   225,   118,   124,
2155 >     225,    76,    97,    80,    81,    82,    83,    97,    32,    84,
2156 >      87,    86,    97,    88,    91,    90,   181,    92,    93,   191,
2157 >      97,   166,    56,   223,   223,   226,   191,   227,   227,    63,
2158 >     105,   108,   109,     1,   225,   110,   111,   112,    62,   114,
2159 >     115,   116,   192,   120,   119,    97,   529,   217,   224,   224,
2160 >     224,    85,     1,   166,   224,    89,   224,   218,   218,   223,
2161 >      75,   224,   224,    97,   224,   142,   100,   101,    17,   219,
2162 >     145,    97,   217,    97,   224,   223,   151,   152,   153,   154,
2163 >     155,   225,   224,    32,   225,   225,   225,    55,   224,     1,
2164 >      97,   225,    60,   117,    62,     1,   223,   187,   132,   224,
2165 >     227,   178,   223,   225,   214,    17,   227,   225,   183,   133,
2166 >     225,   224,   226,    62,   597,   149,   150,   225,   601,   214,
2167 >      32,   604,   223,   218,   214,   608,   227,   223,    34,   224,
2168 >     223,   227,   207,   208,   224,   210,   211,   212,   226,   224,
2169 >     174,   216,   226,   226,   223,   226,   221,   224,   227,   224,
2170 >      62,   166,     1,   121,   226,     1,   226,   226,   192,   193,
2171 >     194,   187,   214,   223,   226,   226,   166,   227,   117,    75,
2172 >     226,   226,   224,   197,   122,    24,   125,   126,    24,   226,
2173 >     226,   226,    31,   226,   226,   219,   220,     1,   214,   226,
2174 >     224,   226,     6,     7,   218,   226,   226,   146,    12,   226,
2175 >     224,   226,   122,   226,   226,   117,    20,   214,   226,   226,
2176 >      56,   218,    26,   125,   126,    29,    30,    63,   124,   122,
2177 >     226,    35,   226,   226,   226,    68,    40,    41,   226,    43,
2178 >      44,    45,   226,    47,   146,   226,   226,    39,   226,    85,
2179 >      54,   226,   226,    89,    58,    59,   226,   226,    97,   226,
2180 >     226,    97,   226,    67,   100,   101,   226,   226,   223,     4,
2181 >     226,     1,    76,     3,    66,     5,    68,   226,   226,   218,
2182 >      84,   226,    86,    18,    88,   224,    90,    17,    92,    93,
2183 >      25,   226,   226,   226,   226,   226,   132,   130,   226,   226,
2184 >     226,   105,    32,     1,    39,   226,   110,   111,   112,   226,
2185 >     114,   115,   116,   149,   150,   119,   218,   226,   226,    17,
2186 >     226,   113,   226,   156,   107,    55,   226,    57,   226,   226,
2187 >     163,    66,    62,    68,    32,   226,   226,   226,   174,   172,
2188 >     226,   145,    72,   226,   226,    13,   226,   151,   152,   153,
2189 >     154,   155,   226,   226,   226,   226,   192,   193,   194,    94,
2190 >     226,   226,   226,   226,    62,    33,   199,    97,   201,   202,
2191 >     162,   163,   226,   226,    42,   226,   226,   226,   226,   183,
2192 >     226,   107,   215,   219,   220,   206,   107,   107,   107,   222,
2193 >     107,   121,   127,   107,   129,   206,   206,   223,    48,    97,
2194 >     223,    69,   226,   207,   208,  1184,   210,   211,   212,   226,
2195 >     226,   141,   216,   148,   226,   122,   223,   221,   226,   117,
2196 >     226,   226,   206,   226,   107,   226,   218,   226,   163,   226,
2197 >      98,    99,   226,   168,   223,   133,   226,   172,   106,   226,
2198 >     226,   226,   177,   107,   226,   180,   226,   226,   226,   226,
2199 >     185,   134,   135,   136,   137,   138,   139,   140,   226,   226,
2200 >     226,   226,   192,   131,   199,   226,   226,     0,     1,   204,
2201 >     226,     4,   792,   793,   794,   795,   796,   797,   798,   147,
2202 >     215,    14,   226,   226,    17,    18,   226,   222,     1,   219,
2203 >      23,   206,   107,   122,   206,   206,   107,    68,   107,   197,
2204 >     107,    34,    15,    16,    37,    38,    19,   157,   158,   159,
2205 >     206,   161,   162,   206,   164,   165,   206,   167,   107,   169,
2206 >     218,   107,   172,   107,   107,   175,   176,   177,    61,   179,
2207 >     107,   107,   206,    66,   184,   226,   206,   205,   188,   189,
2208 >     190,    74,   226,   206,   206,    48,   206,   206,   198,    62,
2209 >     206,   206,     1,   203,   122,   206,   223,   206,   206,   130,
2210 >     206,   226,    95,    96,   122,   223,   223,    80,    81,    82,
2211 >      83,   122,   226,   226,    87,   206,   223,   122,    91,    28,
2212 >     113,   226,   226,   226,    97,   156,   226,    36,    48,   226,
2213 >     226,   226,   163,   226,   226,   108,   109,   130,   223,    48,
2214 >      49,   172,    51,    52,    53,   226,   226,   120,   226,   223,
2215 >     143,   144,   206,   226,   226,   206,   226,   122,   226,   223,
2216 >     226,   226,   122,   226,    73,   226,   206,   160,   199,   142,
2217 >     201,   202,   206,   206,   206,   223,   107,   107,   122,   122,
2218 >     173,   122,   122,   122,   215,   122,   107,   122,   122,   182,
2219 >     122,   222,   206,   186,   157,   158,   159,     1,   161,   162,
2220 >     223,   164,   165,   223,   167,   178,   169,   226,   223,   172,
2221 >     122,   223,   175,   176,   177,   225,   179,    21,    22,   223,
2222 >     226,   184,   223,    27,   226,   188,   189,   190,   223,   223,
2223 >     107,   223,   223,   223,   223,   198,   223,   157,   158,   159,
2224 >     203,   161,   162,   223,   164,   165,   223,   167,   223,   169,
2225 >     107,   223,   172,   223,   223,   175,   176,   177,   226,   179,
2226 >      64,    65,   223,   107,   184,   107,    70,    71,   188,   189,
2227 >     190,   107,   107,    77,    78,    79,   122,   107,   198,   107,
2228 >     107,   223,   122,   203,   122,   122,   107,   206,   122,   122,
2229 >     226,   122,   107,   122,   223,   223,   122,   122,   122,   103,
2230 >     104,   223,   122,   122,   122,   223,   223,   223,   223,   223,
2231 >     223,   122,   223,   223,   122,   223,   223,   223,   223,   223,
2232 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2233 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2234 >     223,   223,   223,   223,   223,   223,   206,   223,   223,   223,
2235 >     223,   223,   223,   223,   223,   223,   122,   122,   122,   226,
2236 >     223,   122,   122,   122,   223,   122,   107,   223,   226,   223,
2237 >     223,   122,   122,   223,   122,   226,   122,   122,   122,   226,
2238 >     122,   226,   223,   206,   122,   122,   122,   122,   122,   122,
2239 >     107,   223,  1001,    74,  1258,  1003,   262,  1203,  1224,  1222,
2240 >     490,   223,   503,  1214,  1109,   332,   223,   223,   571,   223,
2241 >     223,   223,   454,   223,   223,  1014,   223,   223,   223,   284,
2242 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2243 >     223,   223,   223,   223,   223,   122,   223,   223,   226,   223,
2244 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2245 >     223,   223,   223,   223,   223,   223,   223,   128,   128,   128,
2246 >     223,   223,  1212,  1233,   477,   223,  1208,   223,   223,   223,
2247 >     223,   223,   517,   555,   223,  1226,   223,   111,   163,   467,
2248 >     223,  1077,  1079,   223,   223,    92,    -1,    -1,    -1,    -1,
2249 >      -1,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2250 >     223,   223,   213,   223,   223,   223,   227,   223,   223,   223,
2251 >     223,   223,   364,   223,   223,   223,   223,   223,   382,    -1,
2252 >     223,   226,   226,   223,   223,   218,   228,   228,   223,   226,
2253 >     228,   223,   223,   223,    -1,    -1,    -1,   392,    -1,    -1,
2254 >     234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2255        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2256        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
2257        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2258        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2259 <      -1,    -1,    -1,    -1,    -1,    -1,   288
2259 >      -1,    -1,    -1,    -1,    -1,   291
2260   };
2261  
2262   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2263     symbol of state STATE-NUM.  */
2264   static const yytype_uint16 yystos[] =
2265   {
2266 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2267 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
2268 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
2269 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
2270 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
2271 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
2272 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
2273 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2274 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
2275 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
2276 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
2277 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
2278 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2279 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2280 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2281 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
2282 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
2283 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2284 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2285 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2286 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2287 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
2288 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2289 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2290 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
2291 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
2292 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
2293 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2294 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
2295 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2296 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2297 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
2298 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
2299 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2300 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
2301 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
2302 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2303 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
2304 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
2305 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
2306 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2307 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2308 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
2309 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2310 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
2311 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
2312 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
2313 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
2314 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
2315 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
2316 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2317 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
2318 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
2319 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2320 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
2321 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
2322 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
2323 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
2324 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
2325 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2326 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
2327 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
2328 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
2329 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
2330 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
2331 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
2332 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
2333 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
2334 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
2335 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2336 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2337 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2338 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2339 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2340 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2341 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2342 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2343 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2344 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2345 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2346 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2347 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2348 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2349 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2350 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2351 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2352 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2353 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2354 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2355 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2356 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2357 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2358 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2359 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2360 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2361 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2362 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2363 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2364 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2365 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2366 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2367 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2368 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2369 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2370 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2371 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2372 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2373 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2374 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2375 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2376 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2377 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2378 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2379 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2380 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2381 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2382 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2383 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2384 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2385 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2386 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2387 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2388 <     215,   291,   287,   359,   368,   215,   219,   273
2266 >       0,   230,     0,     1,     4,    14,    17,    18,    23,    34,
2267 >      37,    38,    61,    66,    74,    95,    96,   113,   130,   143,
2268 >     144,   160,   173,   182,   186,   231,   236,   241,   265,   271,
2269 >     277,   291,   309,   332,   346,   361,   368,   372,   382,   391,
2270 >     411,   417,   423,   427,   433,   489,   504,   223,   224,   225,
2271 >     225,   310,   392,   418,   225,   428,   225,   347,   412,   333,
2272 >     225,   272,   292,   362,   225,   225,   383,   225,   225,   373,
2273 >       1,    24,    31,    97,   266,   267,   268,   269,   270,     1,
2274 >      21,    22,    27,    64,    65,    70,    71,    77,    78,    79,
2275 >     103,   104,   490,   491,   492,   493,   494,   495,   496,   497,
2276 >     498,   499,   500,   501,   502,   503,   225,   225,   225,     1,
2277 >      60,   424,   425,   426,   225,     1,     6,     7,    12,    20,
2278 >      26,    29,    30,    35,    40,    41,    43,    44,    45,    47,
2279 >      54,    58,    59,    67,    76,    84,    86,    88,    90,    92,
2280 >      93,   105,   110,   111,   112,   114,   115,   116,   119,   145,
2281 >     151,   152,   153,   154,   155,   183,   207,   208,   210,   211,
2282 >     212,   216,   221,   434,   435,   436,   437,   438,   439,   440,
2283 >     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
2284 >     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
2285 >     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2286 >     471,   472,   473,   474,   475,   476,   477,   478,   482,   486,
2287 >     487,   488,   225,   225,   225,     1,    94,   118,   237,   238,
2288 >     239,   240,   225,   225,   225,     1,    28,    36,    48,    49,
2289 >      51,    52,    53,    73,   505,   506,   507,   508,   509,   510,
2290 >     511,   512,   513,   514,     1,    24,    56,    63,    85,    89,
2291 >      97,   100,   101,   132,   149,   150,   174,   192,   193,   194,
2292 >     219,   220,   242,   243,   244,   245,   250,   251,   252,   253,
2293 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2294 >     264,   225,     1,   217,   278,   279,   280,   281,   282,     1,
2295 >      97,   369,   370,   371,   225,   223,   226,   226,   226,   224,
2296 >     267,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2297 >     226,   226,   226,   224,   491,     1,    15,    16,    19,    62,
2298 >      80,    81,    82,    83,    87,    91,    97,   108,   109,   120,
2299 >     142,   178,   311,   312,   313,   314,   315,   316,   317,   318,
2300 >     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2301 >       1,     3,     5,    17,    32,    55,    57,    62,    72,    97,
2302 >     121,   141,   192,   219,   393,   394,   395,   396,   397,   398,
2303 >     399,   400,   401,   402,   406,   407,   408,   409,   410,     1,
2304 >      60,   124,   419,   420,   421,   422,   226,   224,   425,     1,
2305 >      97,   124,   429,   430,   431,   432,   226,   226,   226,   226,
2306 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2307 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2308 >     226,   226,   483,   226,   479,   226,   226,   226,   226,   226,
2309 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2310 >     226,   226,   226,   224,   435,     1,    17,    32,    62,   117,
2311 >     125,   126,   146,   218,   348,   349,   350,   351,   352,   353,
2312 >     354,   358,   359,   360,     1,   124,   218,   413,   414,   415,
2313 >     416,     1,    55,    60,    62,   121,   334,   338,   339,   340,
2314 >     344,   345,   223,   226,   226,   224,   238,     1,    75,   166,
2315 >     273,   274,   275,   276,     1,    17,    32,    62,    97,   117,
2316 >     133,   197,   218,   293,   294,   295,   296,   297,   298,   299,
2317 >     300,   301,   305,     1,    34,    75,   124,   363,   364,   365,
2318 >     366,   367,   226,   226,   226,   226,   226,   226,   226,   226,
2319 >     224,   506,   223,   226,   226,   226,   226,   226,   226,   226,
2320 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2321 >     224,   243,     1,    97,   214,   384,   385,   386,   387,   223,
2322 >     226,   224,   279,   166,   226,   224,   370,     1,    97,   214,
2323 >     218,   374,   375,   376,   377,   378,   122,   122,   122,   223,
2324 >     107,   107,   206,   107,   107,   233,   233,   233,   107,   107,
2325 >     107,   206,   206,   223,   223,   226,   226,   226,   329,   226,
2326 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2327 >     226,   224,   312,   223,   226,   226,   226,   226,   226,   226,
2328 >     403,   226,   226,   226,   226,   226,   226,   224,   394,   226,
2329 >     226,   224,   420,   122,   223,   226,   226,   224,   430,   206,
2330 >     233,   233,   107,   206,   107,   122,   206,   233,   206,   107,
2331 >     107,   233,   107,   206,   206,   206,   233,   107,   107,   233,
2332 >     107,   107,   107,   107,   206,   226,   206,   226,   206,   233,
2333 >     233,   206,   206,   206,   206,   209,   206,   209,   206,   206,
2334 >     122,   233,   206,   206,   233,   233,   206,   206,   223,   223,
2335 >     226,   226,   355,   226,   226,   226,   226,   226,   224,   349,
2336 >     226,   226,   224,   414,   223,   226,   226,   335,   226,   224,
2337 >     339,   122,   122,   223,   223,   226,   226,   224,   274,   223,
2338 >     226,   226,   306,   226,   226,   226,   302,   226,   224,   294,
2339 >     223,   226,   226,   226,   224,   364,   206,   206,   206,   122,
2340 >     206,   206,   206,   233,   223,   122,   206,   122,   107,   107,
2341 >     122,   122,   122,   122,   122,   122,   107,   122,   195,   196,
2342 >     246,   247,   195,   196,   248,   249,   122,   122,   223,   223,
2343 >     226,   388,   224,   385,   206,   223,   225,   122,   223,   223,
2344 >     226,   379,   226,   224,   375,   223,   223,   223,   223,   223,
2345 >     223,   223,   134,   135,   136,   137,   138,   139,   140,   232,
2346 >     233,   223,   223,   223,   223,   223,   223,   223,   223,   107,
2347 >     107,   233,   226,   107,   107,   233,   107,   107,   233,   122,
2348 >     107,   107,   233,   107,   235,   235,   223,   122,   170,   171,
2349 >     122,   206,   122,   122,   226,   122,   122,   107,   122,   122,
2350 >     122,   223,   122,   122,   223,   223,   122,   122,   223,   223,
2351 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2352 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2353 >     223,   223,   223,   223,   223,    48,   157,   158,   159,   161,
2354 >     162,   164,   165,   167,   169,   172,   175,   176,   177,   179,
2355 >     184,   188,   189,   190,   198,   203,   484,   485,   223,    48,
2356 >     157,   158,   159,   161,   162,   164,   165,   167,   169,   172,
2357 >     175,   176,   177,   179,   184,   188,   189,   190,   198,   203,
2358 >     480,   481,   223,   223,   223,   223,   223,   223,   223,   223,
2359 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2360 >     223,   223,   122,   206,   226,   122,   107,   122,   122,   122,
2361 >     223,   122,   122,   223,   122,   122,   226,   107,   342,   343,
2362 >     223,   223,   223,   122,   122,   223,   122,   206,   226,   122,
2363 >     122,   122,   226,   122,   223,   122,   122,   122,   223,   223,
2364 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2365 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2366 >     223,   227,   223,   227,   223,   223,   122,   226,   223,   223,
2367 >       1,    97,   187,   214,   283,   284,   285,   286,   287,   223,
2368 >     122,   226,   122,   223,   232,   232,   232,   232,   232,   232,
2369 >     232,   223,   223,   223,    50,   123,   330,   331,   223,   223,
2370 >     223,   223,   223,   223,   223,   223,   223,   223,     9,    10,
2371 >      11,   234,   235,   223,   223,   223,   223,   223,   223,   223,
2372 >     223,   223,     8,   191,   404,   405,   223,   223,   223,   223,
2373 >     223,   223,   223,   223,   223,   223,   223,   227,   223,   227,
2374 >     223,   223,    13,    33,    42,    69,    98,    99,   106,   131,
2375 >     147,   205,   356,   357,   223,   223,   223,   223,   223,   223,
2376 >     223,   223,   223,    48,   181,   191,   336,   337,   213,   227,
2377 >     341,   223,   223,   223,   223,     4,    18,    25,    39,    66,
2378 >      68,    94,   127,   129,   148,   163,   168,   172,   177,   180,
2379 >     185,   199,   204,   215,   222,   307,   308,   223,   223,   223,
2380 >      48,   157,   158,   159,   161,   162,   164,   165,   167,   169,
2381 >     172,   175,   176,   177,   179,   184,   188,   189,   190,   198,
2382 >     203,   303,   304,   223,   223,   223,   223,   247,   249,   223,
2383 >      68,   130,   156,   163,   172,   199,   201,   202,   215,   222,
2384 >     389,   390,   223,   226,   226,   288,   224,   284,   223,    68,
2385 >     130,   156,   163,   172,   199,   201,   202,   215,   222,   380,
2386 >     381,   223,   223,   227,   234,   234,   234,   223,   227,   485,
2387 >     481,   223,   227,   223,   227,   107,   343,   223,   228,   228,
2388 >     228,   223,   227,   223,   227,   223,   227,   122,   200,   235,
2389 >     226,   223,   223,   227,   331,   405,   357,   337,   128,   128,
2390 >     128,   308,   304,   390,   223,   223,   223,    39,    66,    68,
2391 >     113,   162,   163,   218,   289,   290,   381,   223,   227,   290
2392   };
2393  
2394   #define yyerrok         (yyerrstatus = 0)
# Line 2349 | Line 2435 | do
2435      }                                                           \
2436   while (YYID (0))
2437  
2438 <
2438 > /* Error token number */
2439   #define YYTERROR        1
2440   #define YYERRCODE       256
2441  
2356 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2357   If N is 0, then set CURRENT to the empty location which ends
2358   the previous symbol: RHS[0] (always defined).  */
2359
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2379
2380 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2381
2382
2442  
2443   /* This macro is provided for backward compatibility. */
2385
2444   #ifndef YY_LOCATION_PRINT
2445   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2446   #endif
2447  
2448  
2449   /* YYLEX -- calling `yylex' with the right arguments.  */
2392
2450   #ifdef YYLEX_PARAM
2451   # define YYLEX yylex (YYLEX_PARAM)
2452   #else
# Line 2449 | Line 2506 | yy_symbol_value_print (yyoutput, yytype,
2506   # else
2507    YYUSE (yyoutput);
2508   # endif
2509 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2509 >  YYUSE (yytype);
2510   }
2511  
2512  
# Line 2694 | Line 2747 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2747   {
2748    YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2749    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2750    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2751    /* Internationalized format string. */
2752    const char *yyformat = YY_NULL;
# Line 2757 | Line 2809 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2809                      break;
2810                    }
2811                  yyarg[yycount++] = yytname[yyx];
2812 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2813 <                if (! (yysize <= yysize1
2814 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2815 <                  return 2;
2816 <                yysize = yysize1;
2812 >                {
2813 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2814 >                  if (! (yysize <= yysize1
2815 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2816 >                    return 2;
2817 >                  yysize = yysize1;
2818 >                }
2819                }
2820          }
2821      }
# Line 2781 | Line 2835 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2835   # undef YYCASE_
2836      }
2837  
2838 <  yysize1 = yysize + yystrlen (yyformat);
2839 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2840 <    return 2;
2841 <  yysize = yysize1;
2838 >  {
2839 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2840 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2841 >      return 2;
2842 >    yysize = yysize1;
2843 >  }
2844  
2845    if (*yymsg_alloc < yysize)
2846      {
# Line 2840 | Line 2896 | yydestruct (yymsg, yytype, yyvaluep)
2896      yymsg = "Deleting";
2897    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2898  
2899 <  switch (yytype)
2844 <    {
2845 <
2846 <      default:
2847 <        break;
2848 <    }
2899 >  YYUSE (yytype);
2900   }
2901  
2902  
# Line 2855 | Line 2906 | yydestruct (yymsg, yytype, yyvaluep)
2906   int yychar;
2907  
2908  
2858 #ifndef YYLVAL_INITIALIZE
2859 # define YYLVAL_INITIALIZE()
2860 #endif
2909   #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2910   # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2911   # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2912   #endif
2913 + #ifndef YY_INITIAL_VALUE
2914 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2915 + #endif
2916  
2917   /* The semantic value of the lookahead symbol.  */
2918 < YYSTYPE yylval;
2918 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2919  
2920   /* Number of syntax errors so far.  */
2921   int yynerrs;
# Line 2940 | Line 2991 | yyparse ()
2991       Keep to zero when no symbol should be popped.  */
2992    int yylen = 0;
2993  
2994 <  yyss = yyssa;
2995 <  yyvs = yyvsa;
2994 >  yyssp = yyss = yyssa;
2995 >  yyvsp = yyvs = yyvsa;
2996    yystacksize = YYINITDEPTH;
2997  
2998    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2950 | Line 3001 | yyparse ()
3001    yyerrstatus = 0;
3002    yynerrs = 0;
3003    yychar = YYEMPTY; /* Cause a token to be read.  */
2953
2954  /* Initialize stack pointers.
2955     Waste one element of value and location stack
2956     so that they stay on the same level as the state stack.
2957     The wasted elements are never initialized.  */
2958  yyssp = yyss;
2959  yyvsp = yyvs;
2960
2961  YYLVAL_INITIALIZE ();
3004    goto yysetstate;
3005  
3006   /*------------------------------------------------------------.
# Line 3137 | Line 3179 | yyreduce:
3179    YY_REDUCE_PRINT (yyn);
3180    switch (yyn)
3181      {
3182 <        case 26:
3183 < /* Line 1813 of yacc.c  */
3184 < #line 359 "conf_parser.y"
3182 >        case 27:
3183 > /* Line 1787 of yacc.c  */
3184 > #line 395 "conf_parser.y"
3185      { (yyval.number) = 0; }
3186      break;
3187  
3188 <  case 28:
3189 < /* Line 1813 of yacc.c  */
3190 < #line 361 "conf_parser.y"
3188 >  case 29:
3189 > /* Line 1787 of yacc.c  */
3190 > #line 397 "conf_parser.y"
3191      {
3192                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3193                  }
3194      break;
3195  
3196 <  case 29:
3197 < /* Line 1813 of yacc.c  */
3198 < #line 365 "conf_parser.y"
3196 >  case 30:
3197 > /* Line 1787 of yacc.c  */
3198 > #line 401 "conf_parser.y"
3199      {
3200                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3201                  }
3202      break;
3203  
3204 <  case 30:
3205 < /* Line 1813 of yacc.c  */
3206 < #line 369 "conf_parser.y"
3204 >  case 31:
3205 > /* Line 1787 of yacc.c  */
3206 > #line 405 "conf_parser.y"
3207      {
3208                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3209                  }
3210      break;
3211  
3212 <  case 31:
3213 < /* Line 1813 of yacc.c  */
3214 < #line 373 "conf_parser.y"
3212 >  case 32:
3213 > /* Line 1787 of yacc.c  */
3214 > #line 409 "conf_parser.y"
3215      {
3216                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3217                  }
3218      break;
3219  
3220 <  case 32:
3221 < /* Line 1813 of yacc.c  */
3222 < #line 377 "conf_parser.y"
3220 >  case 33:
3221 > /* Line 1787 of yacc.c  */
3222 > #line 413 "conf_parser.y"
3223      {
3224                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3225                  }
3226      break;
3227  
3228 <  case 33:
3229 < /* Line 1813 of yacc.c  */
3230 < #line 381 "conf_parser.y"
3228 >  case 34:
3229 > /* Line 1787 of yacc.c  */
3230 > #line 417 "conf_parser.y"
3231      {
3232                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3233                  }
3234      break;
3235  
3236 <  case 34:
3237 < /* Line 1813 of yacc.c  */
3238 < #line 386 "conf_parser.y"
3239 <    { (yyval.number) = 0; }
3236 >  case 35:
3237 > /* Line 1787 of yacc.c  */
3238 > #line 421 "conf_parser.y"
3239 >    {
3240 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3241 >                }
3242      break;
3243  
3244    case 36:
3245 < /* Line 1813 of yacc.c  */
3246 < #line 387 "conf_parser.y"
3247 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3245 > /* Line 1787 of yacc.c  */
3246 > #line 425 "conf_parser.y"
3247 >    {
3248 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3249 >                }
3250      break;
3251  
3252    case 37:
3253 < /* Line 1813 of yacc.c  */
3254 < #line 388 "conf_parser.y"
3253 > /* Line 1787 of yacc.c  */
3254 > #line 430 "conf_parser.y"
3255 >    { (yyval.number) = 0; }
3256 >    break;
3257 >
3258 >  case 39:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 431 "conf_parser.y"
3261 >    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3262 >    break;
3263 >
3264 >  case 40:
3265 > /* Line 1787 of yacc.c  */
3266 > #line 432 "conf_parser.y"
3267      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3268      break;
3269  
3270 <  case 38:
3271 < /* Line 1813 of yacc.c  */
3272 < #line 389 "conf_parser.y"
3270 >  case 41:
3271 > /* Line 1787 of yacc.c  */
3272 > #line 433 "conf_parser.y"
3273      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3274      break;
3275  
3276 <  case 39:
3277 < /* Line 1813 of yacc.c  */
3278 < #line 390 "conf_parser.y"
3276 >  case 42:
3277 > /* Line 1787 of yacc.c  */
3278 > #line 434 "conf_parser.y"
3279      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3280      break;
3281  
3282 <  case 46:
3283 < /* Line 1813 of yacc.c  */
3284 < #line 404 "conf_parser.y"
3282 >  case 49:
3283 > /* Line 1787 of yacc.c  */
3284 > #line 448 "conf_parser.y"
3285      {
3286    if (conf_parser_ctx.pass == 2)
3287      add_conf_module(libio_basename(yylval.string));
3288   }
3289      break;
3290  
3291 <  case 47:
3292 < /* Line 1813 of yacc.c  */
3293 < #line 410 "conf_parser.y"
3291 >  case 50:
3292 > /* Line 1787 of yacc.c  */
3293 > #line 454 "conf_parser.y"
3294      {
3295    if (conf_parser_ctx.pass == 2)
3296      mod_add_path(yylval.string);
3297   }
3298      break;
3299  
3300 <  case 71:
3301 < /* Line 1813 of yacc.c  */
3302 < #line 435 "conf_parser.y"
3300 >  case 76:
3301 > /* Line 1787 of yacc.c  */
3302 > #line 480 "conf_parser.y"
3303      {
3304   #ifdef HAVE_LIBCRYPTO
3305    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3250 | Line 3308 | yyreduce:
3308   }
3309      break;
3310  
3311 <  case 72:
3312 < /* Line 1813 of yacc.c  */
3313 < #line 441 "conf_parser.y"
3311 >  case 77:
3312 > /* Line 1787 of yacc.c  */
3313 > #line 486 "conf_parser.y"
3314      {
3315   #ifdef HAVE_LIBCRYPTO
3316    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3261 | Line 3319 | yyreduce:
3319   }
3320      break;
3321  
3322 <  case 75:
3323 < /* Line 1813 of yacc.c  */
3324 < #line 450 "conf_parser.y"
3322 >  case 80:
3323 > /* Line 1787 of yacc.c  */
3324 > #line 495 "conf_parser.y"
3325      {
3326   #ifdef HAVE_LIBCRYPTO
3327    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3272 | Line 3330 | yyreduce:
3330   }
3331      break;
3332  
3333 <  case 76:
3334 < /* Line 1813 of yacc.c  */
3335 < #line 456 "conf_parser.y"
3333 >  case 81:
3334 > /* Line 1787 of yacc.c  */
3335 > #line 501 "conf_parser.y"
3336      {
3337   #ifdef HAVE_LIBCRYPTO
3338    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3283 | Line 3341 | yyreduce:
3341   }
3342      break;
3343  
3344 <  case 77:
3345 < /* Line 1813 of yacc.c  */
3346 < #line 464 "conf_parser.y"
3344 >  case 82:
3345 > /* Line 1787 of yacc.c  */
3346 > #line 509 "conf_parser.y"
3347      {
3348   #ifdef HAVE_LIBCRYPTO
3349    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3350    {
3351      if (!ServerInfo.rsa_private_key_file)
3352      {
3353 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3353 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3354        break;
3355      }
3356  
# Line 3301 | Line 3359 | yyreduce:
3359          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3360                                       SSL_FILETYPE_PEM) <= 0)
3361      {
3362 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3362 >      report_crypto_errors();
3363 >      conf_error_report("Could not open/read certificate file");
3364        break;
3365      }
3366  
# Line 3310 | Line 3369 | yyreduce:
3369          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3370                                      SSL_FILETYPE_PEM) <= 0)
3371      {
3372 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3372 >      report_crypto_errors();
3373 >      conf_error_report("Could not read RSA private key");
3374        break;
3375      }
3376  
3377      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3378          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3379      {
3380 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3380 >      report_crypto_errors();
3381 >      conf_error_report("Could not read RSA private key");
3382        break;
3383      }
3384    }
# Line 3325 | Line 3386 | yyreduce:
3386   }
3387      break;
3388  
3389 <  case 78:
3390 < /* Line 1813 of yacc.c  */
3391 < #line 503 "conf_parser.y"
3389 >  case 83:
3390 > /* Line 1787 of yacc.c  */
3391 > #line 551 "conf_parser.y"
3392      {
3393   #ifdef HAVE_LIBCRYPTO
3394 <  if (conf_parser_ctx.pass == 1)
3334 <  {
3335 <    BIO *file;
3394 >  BIO *file = NULL;
3395  
3396 <    if (ServerInfo.rsa_private_key)
3397 <    {
3339 <      RSA_free(ServerInfo.rsa_private_key);
3340 <      ServerInfo.rsa_private_key = NULL;
3341 <    }
3396 >  if (conf_parser_ctx.pass != 1)
3397 >    break;
3398  
3399 <    if (ServerInfo.rsa_private_key_file)
3400 <    {
3401 <      MyFree(ServerInfo.rsa_private_key_file);
3402 <      ServerInfo.rsa_private_key_file = NULL;
3403 <    }
3399 >  if (ServerInfo.rsa_private_key)
3400 >  {
3401 >    RSA_free(ServerInfo.rsa_private_key);
3402 >    ServerInfo.rsa_private_key = NULL;
3403 >  }
3404  
3405 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3405 >  if (ServerInfo.rsa_private_key_file)
3406 >  {
3407 >    MyFree(ServerInfo.rsa_private_key_file);
3408 >    ServerInfo.rsa_private_key_file = NULL;
3409 >  }
3410  
3411 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3352 <    {
3353 <      yyerror("File open failed, ignoring");
3354 <      break;
3355 <    }
3411 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3412  
3413 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3413 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3414 >  {
3415 >    conf_error_report("File open failed, ignoring");
3416 >    break;
3417 >  }
3418  
3419 <    BIO_set_close(file, BIO_CLOSE);
3360 <    BIO_free(file);
3419 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3420  
3421 <    if (ServerInfo.rsa_private_key == NULL)
3422 <    {
3364 <      yyerror("Couldn't extract key, ignoring");
3365 <      break;
3366 <    }
3421 >  BIO_set_close(file, BIO_CLOSE);
3422 >  BIO_free(file);
3423  
3424 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3425 <    {
3426 <      RSA_free(ServerInfo.rsa_private_key);
3427 <      ServerInfo.rsa_private_key = NULL;
3424 >  if (ServerInfo.rsa_private_key == NULL)
3425 >  {
3426 >    conf_error_report("Couldn't extract key, ignoring");
3427 >    break;
3428 >  }
3429  
3430 <      yyerror("Invalid key, ignoring");
3431 <      break;
3432 <    }
3430 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3431 >  {
3432 >    RSA_free(ServerInfo.rsa_private_key);
3433 >    ServerInfo.rsa_private_key = NULL;
3434  
3435 <    /* require 2048 bit (256 byte) key */
3436 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3437 <    {
3380 <      RSA_free(ServerInfo.rsa_private_key);
3381 <      ServerInfo.rsa_private_key = NULL;
3435 >    conf_error_report("Invalid key, ignoring");
3436 >    break;
3437 >  }
3438  
3439 <      yyerror("Not a 2048 bit key, ignoring");
3440 <    }
3439 >  /* require 2048 bit (256 byte) key */
3440 >  if (RSA_size(ServerInfo.rsa_private_key) != 256)
3441 >  {
3442 >    RSA_free(ServerInfo.rsa_private_key);
3443 >    ServerInfo.rsa_private_key = NULL;
3444 >
3445 >    conf_error_report("Not a 2048 bit key, ignoring");
3446    }
3447   #endif
3448   }
3449      break;
3450  
3451 <  case 79:
3452 < /* Line 1813 of yacc.c  */
3453 < #line 562 "conf_parser.y"
3451 >  case 84:
3452 > /* Line 1787 of yacc.c  */
3453 > #line 610 "conf_parser.y"
3454      {
3455   /* TBD - XXX: error reporting */
3456   #ifdef HAVE_LIBCRYPTO
# Line 3406 | Line 3467 | yyreduce:
3467        if (dh)
3468        {
3469          if (DH_size(dh) < 128)
3470 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3470 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3471          else
3472            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3473  
# Line 3418 | Line 3479 | yyreduce:
3479   }
3480      break;
3481  
3482 <  case 80:
3483 < /* Line 1813 of yacc.c  */
3484 < #line 590 "conf_parser.y"
3482 >  case 85:
3483 > /* Line 1787 of yacc.c  */
3484 > #line 638 "conf_parser.y"
3485      {
3486   #ifdef HAVE_LIBCRYPTO
3487    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3429 | Line 3490 | yyreduce:
3490   }
3491      break;
3492  
3493 <  case 81:
3494 < /* Line 1813 of yacc.c  */
3495 < #line 598 "conf_parser.y"
3493 >  case 86:
3494 > /* Line 1787 of yacc.c  */
3495 > #line 646 "conf_parser.y"
3496      {
3497    /* this isn't rehashable */
3498    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3499    {
3500      if (valid_servname(yylval.string))
3501 <      DupString(ServerInfo.name, yylval.string);
3501 >      ServerInfo.name = xstrdup(yylval.string);
3502      else
3503      {
3504 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3504 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3505        exit(0);
3506      }
3507    }
3508   }
3509      break;
3510  
3511 <  case 82:
3512 < /* Line 1813 of yacc.c  */
3513 < #line 613 "conf_parser.y"
3511 >  case 87:
3512 > /* Line 1787 of yacc.c  */
3513 > #line 661 "conf_parser.y"
3514      {
3515    /* this isn't rehashable */
3516    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3517    {
3518      if (valid_sid(yylval.string))
3519 <      DupString(ServerInfo.sid, yylval.string);
3519 >      ServerInfo.sid = xstrdup(yylval.string);
3520      else
3521      {
3522 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3522 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3523        exit(0);
3524      }
3525    }
3526   }
3527      break;
3528  
3529 <  case 83:
3530 < /* Line 1813 of yacc.c  */
3531 < #line 628 "conf_parser.y"
3529 >  case 88:
3530 > /* Line 1787 of yacc.c  */
3531 > #line 676 "conf_parser.y"
3532      {
3533    if (conf_parser_ctx.pass == 2)
3534    {
3535      MyFree(ServerInfo.description);
3536 <    DupString(ServerInfo.description,yylval.string);
3536 >    ServerInfo.description = xstrdup(yylval.string);
3537    }
3538   }
3539      break;
3540  
3541 <  case 84:
3542 < /* Line 1813 of yacc.c  */
3543 < #line 637 "conf_parser.y"
3541 >  case 89:
3542 > /* Line 1787 of yacc.c  */
3543 > #line 685 "conf_parser.y"
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546    {
# Line 3489 | Line 3550 | yyreduce:
3550        p = '\0';
3551  
3552      MyFree(ServerInfo.network_name);
3553 <    DupString(ServerInfo.network_name, yylval.string);
3553 >    ServerInfo.network_name = xstrdup(yylval.string);
3554    }
3555   }
3556      break;
3557  
3558 <  case 85:
3559 < /* Line 1813 of yacc.c  */
3560 < #line 651 "conf_parser.y"
3558 >  case 90:
3559 > /* Line 1787 of yacc.c  */
3560 > #line 699 "conf_parser.y"
3561      {
3562 <  if (conf_parser_ctx.pass == 2)
3563 <  {
3564 <    MyFree(ServerInfo.network_desc);
3565 <    DupString(ServerInfo.network_desc, yylval.string);
3566 <  }
3562 >  if (conf_parser_ctx.pass != 2)
3563 >    break;
3564 >
3565 >  MyFree(ServerInfo.network_desc);
3566 >  ServerInfo.network_desc = xstrdup(yylval.string);
3567   }
3568      break;
3569  
3570 <  case 86:
3571 < /* Line 1813 of yacc.c  */
3572 < #line 660 "conf_parser.y"
3570 >  case 91:
3571 > /* Line 1787 of yacc.c  */
3572 > #line 708 "conf_parser.y"
3573      {
3574    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3575    {
# Line 3537 | Line 3598 | yyreduce:
3598   }
3599      break;
3600  
3601 <  case 87:
3602 < /* Line 1813 of yacc.c  */
3603 < #line 688 "conf_parser.y"
3601 >  case 92:
3602 > /* Line 1787 of yacc.c  */
3603 > #line 736 "conf_parser.y"
3604      {
3605   #ifdef IPV6
3606    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3570 | Line 3631 | yyreduce:
3631   }
3632      break;
3633  
3634 <  case 88:
3635 < /* Line 1813 of yacc.c  */
3636 < #line 718 "conf_parser.y"
3634 >  case 93:
3635 > /* Line 1787 of yacc.c  */
3636 > #line 766 "conf_parser.y"
3637      {
3638 <  if (conf_parser_ctx.pass == 2)
3638 >  if (conf_parser_ctx.pass != 2)
3639 >    break;
3640 >
3641 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3642    {
3643 <    recalc_fdlimit(NULL);
3643 >    char buf[IRCD_BUFSIZE];
3644  
3645 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3646 <    {
3647 <      char buf[IRCD_BUFSIZE];
3584 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3585 <      yyerror(buf);
3586 <    }
3587 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3588 <    {
3589 <      char buf[IRCD_BUFSIZE];
3590 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3591 <      yyerror(buf);
3592 <    }
3593 <    else
3594 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3645 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3646 >    conf_error_report(buf);
3647 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3648    }
3649 +  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3650 +  {
3651 +    char buf[IRCD_BUFSIZE];
3652 +
3653 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3654 +    conf_error_report(buf);
3655 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3656 +  }
3657 +  else
3658 +    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3659   }
3660      break;
3661  
3662 <  case 89:
3663 < /* Line 1813 of yacc.c  */
3664 < #line 741 "conf_parser.y"
3662 >  case 94:
3663 > /* Line 1787 of yacc.c  */
3664 > #line 791 "conf_parser.y"
3665      {
3666 <  if (conf_parser_ctx.pass == 2)
3604 <    ServerInfo.hub = yylval.number;
3605 < }
3666 >  if (conf_parser_ctx.pass != 2)
3667      break;
3668  
3669 <  case 97:
3609 < /* Line 1813 of yacc.c  */
3610 < #line 756 "conf_parser.y"
3611 <    {
3612 <  if (conf_parser_ctx.pass == 2)
3669 >  if ((yyvsp[(3) - (4)].number) < 9)
3670    {
3671 <    MyFree(AdminInfo.name);
3672 <    DupString(AdminInfo.name, yylval.string);
3671 >    conf_error_report("max_nick_length too low, setting to 9");
3672 >    ServerInfo.max_nick_length = 9;
3673    }
3674 +  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3675 +  {
3676 +    char buf[IRCD_BUFSIZE];
3677 +
3678 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3679 +    conf_error_report(buf);
3680 +    ServerInfo.max_nick_length = NICKLEN;
3681 +  }
3682 +  else
3683 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3684   }
3685      break;
3686  
3687 <  case 98:
3688 < /* Line 1813 of yacc.c  */
3689 < #line 765 "conf_parser.y"
3687 >  case 95:
3688 > /* Line 1787 of yacc.c  */
3689 > #line 813 "conf_parser.y"
3690      {
3691 <  if (conf_parser_ctx.pass == 2)
3691 >  if (conf_parser_ctx.pass != 2)
3692 >    break;
3693 >
3694 >  if ((yyvsp[(3) - (4)].number) < 80)
3695 >  {
3696 >    conf_error_report("max_topic_length too low, setting to 80");
3697 >    ServerInfo.max_topic_length = 80;
3698 >  }
3699 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3700    {
3701 <    MyFree(AdminInfo.email);
3702 <    DupString(AdminInfo.email, yylval.string);
3701 >    char buf[IRCD_BUFSIZE];
3702 >
3703 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3704 >    conf_error_report(buf);
3705 >    ServerInfo.max_topic_length = TOPICLEN;
3706    }
3707 +  else
3708 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3709   }
3710      break;
3711  
3712 <  case 99:
3713 < /* Line 1813 of yacc.c  */
3714 < #line 774 "conf_parser.y"
3712 >  case 96:
3713 > /* Line 1787 of yacc.c  */
3714 > #line 835 "conf_parser.y"
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717 <  {
3638 <    MyFree(AdminInfo.description);
3639 <    DupString(AdminInfo.description, yylval.string);
3640 <  }
3717 >    ServerInfo.hub = yylval.number;
3718   }
3719      break;
3720  
3721 <  case 106:
3722 < /* Line 1813 of yacc.c  */
3723 < #line 792 "conf_parser.y"
3721 >  case 104:
3722 > /* Line 1787 of yacc.c  */
3723 > #line 850 "conf_parser.y"
3724      {
3725 <  if (conf_parser_ctx.pass == 2)
3726 <    ConfigLoggingEntry.use_logging = yylval.number;
3725 >  if (conf_parser_ctx.pass != 2)
3726 >    break;
3727 >
3728 >  MyFree(AdminInfo.name);
3729 >  AdminInfo.name = xstrdup(yylval.string);
3730   }
3731      break;
3732  
3733 <  case 107:
3734 < /* Line 1813 of yacc.c  */
3735 < #line 798 "conf_parser.y"
3733 >  case 105:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 859 "conf_parser.y"
3736      {
3737 <  lfile[0] = '\0';
3738 <  ltype = 0;
3739 <  lsize = 0;
3737 >  if (conf_parser_ctx.pass != 2)
3738 >    break;
3739 >
3740 >  MyFree(AdminInfo.email);
3741 >  AdminInfo.email = xstrdup(yylval.string);
3742   }
3743      break;
3744  
3745 <  case 108:
3746 < /* Line 1813 of yacc.c  */
3747 < #line 803 "conf_parser.y"
3745 >  case 106:
3746 > /* Line 1787 of yacc.c  */
3747 > #line 868 "conf_parser.y"
3748      {
3749 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3750 <    log_add_file(ltype, lsize, lfile);
3749 >  if (conf_parser_ctx.pass != 2)
3750 >    break;
3751 >
3752 >  MyFree(AdminInfo.description);
3753 >  AdminInfo.description = xstrdup(yylval.string);
3754   }
3755      break;
3756  
3757 <  case 115:
3758 < /* Line 1813 of yacc.c  */
3759 < #line 815 "conf_parser.y"
3757 >  case 107:
3758 > /* Line 1787 of yacc.c  */
3759 > #line 880 "conf_parser.y"
3760      {
3761 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3761 >  if (conf_parser_ctx.pass == 2)
3762 >    reset_block_state();
3763   }
3764      break;
3765  
3766 <  case 116:
3767 < /* Line 1813 of yacc.c  */
3768 < #line 820 "conf_parser.y"
3766 >  case 108:
3767 > /* Line 1787 of yacc.c  */
3768 > #line 884 "conf_parser.y"
3769      {
3770 <  lsize = (yyvsp[(3) - (4)].number);
3770 >  dlink_node *ptr = NULL;
3771 >
3772 >  if (conf_parser_ctx.pass != 2)
3773 >    break;
3774 >
3775 >  if (!block_state.file.buf[0])
3776 >    break;
3777 >
3778 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3779 >    motd_add(ptr->data, block_state.file.buf);
3780   }
3781      break;
3782  
3783 <  case 117:
3784 < /* Line 1813 of yacc.c  */
3785 < #line 823 "conf_parser.y"
3783 >  case 114:
3784 > /* Line 1787 of yacc.c  */
3785 > #line 901 "conf_parser.y"
3786      {
3787 <  lsize = 0;
3787 >  if (conf_parser_ctx.pass == 2)
3788 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3789   }
3790      break;
3791  
3792 <  case 118:
3793 < /* Line 1813 of yacc.c  */
3794 < #line 828 "conf_parser.y"
3792 >  case 115:
3793 > /* Line 1787 of yacc.c  */
3794 > #line 907 "conf_parser.y"
3795      {
3796    if (conf_parser_ctx.pass == 2)
3797 <    ltype = 0;
3797 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3798   }
3799      break;
3800  
3801    case 122:
3802 < /* Line 1813 of yacc.c  */
3803 < #line 835 "conf_parser.y"
3802 > /* Line 1787 of yacc.c  */
3803 > #line 922 "conf_parser.y"
3804      {
3805    if (conf_parser_ctx.pass == 2)
3806 <    ltype = LOG_TYPE_USER;
3806 >    ConfigLoggingEntry.use_logging = yylval.number;
3807   }
3808      break;
3809  
3810    case 123:
3811 < /* Line 1813 of yacc.c  */
3812 < #line 839 "conf_parser.y"
3811 > /* Line 1787 of yacc.c  */
3812 > #line 928 "conf_parser.y"
3813      {
3814    if (conf_parser_ctx.pass == 2)
3815 <    ltype = LOG_TYPE_OPER;
3815 >    reset_block_state();
3816   }
3817      break;
3818  
3819    case 124:
3820 < /* Line 1813 of yacc.c  */
3821 < #line 843 "conf_parser.y"
3820 > /* Line 1787 of yacc.c  */
3821 > #line 932 "conf_parser.y"
3822      {
3823 <  if (conf_parser_ctx.pass == 2)
3824 <    ltype = LOG_TYPE_GLINE;
3823 >  if (conf_parser_ctx.pass != 2)
3824 >    break;
3825 >
3826 >  if (block_state.type.value && block_state.file.buf[0])
3827 >    log_set_file(block_state.type.value, block_state.size.value,
3828 >                 block_state.file.buf);
3829 > }
3830 >    break;
3831 >
3832 >  case 131:
3833 > /* Line 1787 of yacc.c  */
3834 > #line 948 "conf_parser.y"
3835 >    {
3836 >  if (conf_parser_ctx.pass != 2)
3837 >    break;
3838 >
3839 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3840 > }
3841 >    break;
3842 >
3843 >  case 132:
3844 > /* Line 1787 of yacc.c  */
3845 > #line 956 "conf_parser.y"
3846 >    {
3847 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3848   }
3849      break;
3850  
3851 <  case 125:
3852 < /* Line 1813 of yacc.c  */
3853 < #line 847 "conf_parser.y"
3851 >  case 133:
3852 > /* Line 1787 of yacc.c  */
3853 > #line 959 "conf_parser.y"
3854 >    {
3855 >  block_state.size.value = 0;
3856 > }
3857 >    break;
3858 >
3859 >  case 134:
3860 > /* Line 1787 of yacc.c  */
3861 > #line 964 "conf_parser.y"
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864 <    ltype = LOG_TYPE_DLINE;
3864 >    block_state.type.value = 0;
3865   }
3866      break;
3867  
3868 <  case 126:
3869 < /* Line 1813 of yacc.c  */
3870 < #line 851 "conf_parser.y"
3868 >  case 138:
3869 > /* Line 1787 of yacc.c  */
3870 > #line 971 "conf_parser.y"
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873 <    ltype = LOG_TYPE_KLINE;
3873 >    block_state.type.value = LOG_TYPE_USER;
3874   }
3875      break;
3876  
3877 <  case 127:
3878 < /* Line 1813 of yacc.c  */
3879 < #line 855 "conf_parser.y"
3877 >  case 139:
3878 > /* Line 1787 of yacc.c  */
3879 > #line 975 "conf_parser.y"
3880      {
3881    if (conf_parser_ctx.pass == 2)
3882 <    ltype = LOG_TYPE_KILL;
3882 >    block_state.type.value = LOG_TYPE_OPER;
3883   }
3884      break;
3885  
3886 <  case 128:
3887 < /* Line 1813 of yacc.c  */
3888 < #line 859 "conf_parser.y"
3886 >  case 140:
3887 > /* Line 1787 of yacc.c  */
3888 > #line 979 "conf_parser.y"
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891 <    ltype = LOG_TYPE_DEBUG;
3891 >    block_state.type.value = LOG_TYPE_GLINE;
3892   }
3893      break;
3894  
3895 <  case 129:
3896 < /* Line 1813 of yacc.c  */
3897 < #line 869 "conf_parser.y"
3895 >  case 141:
3896 > /* Line 1787 of yacc.c  */
3897 > #line 983 "conf_parser.y"
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <  {
3774 <    yy_conf = make_conf_item(OPER_TYPE);
3775 <    yy_aconf = map_to_conf(yy_conf);
3776 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3777 <  }
3778 <  else
3779 <  {
3780 <    MyFree(class_name);
3781 <    class_name = NULL;
3782 <  }
3900 >    block_state.type.value = LOG_TYPE_DLINE;
3901   }
3902      break;
3903  
3904 <  case 130:
3905 < /* Line 1813 of yacc.c  */
3906 < #line 882 "conf_parser.y"
3904 >  case 142:
3905 > /* Line 1787 of yacc.c  */
3906 > #line 987 "conf_parser.y"
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <  {
3910 <    struct CollectItem *yy_tmp;
3911 <    dlink_node *ptr;
3794 <    dlink_node *next_ptr;
3909 >    block_state.type.value = LOG_TYPE_KLINE;
3910 > }
3911 >    break;
3912  
3913 <    conf_add_class_to_conf(yy_conf, class_name);
3913 >  case 143:
3914 > /* Line 1787 of yacc.c  */
3915 > #line 991 "conf_parser.y"
3916 >    {
3917 >  if (conf_parser_ctx.pass == 2)
3918 >    block_state.type.value = LOG_TYPE_KILL;
3919 > }
3920 >    break;
3921  
3922 <    /* Now, make sure there is a copy of the "base" given oper
3923 <     * block in each of the collected copies
3924 <     */
3922 >  case 144:
3923 > /* Line 1787 of yacc.c  */
3924 > #line 995 "conf_parser.y"
3925 >    {
3926 >  if (conf_parser_ctx.pass == 2)
3927 >    block_state.type.value = LOG_TYPE_DEBUG;
3928 > }
3929 >    break;
3930  
3931 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3931 >  case 145:
3932 > /* Line 1787 of yacc.c  */
3933 > #line 1005 "conf_parser.y"
3934      {
3935 <      struct AccessItem *new_aconf;
3936 <      struct ConfItem *new_conf;
3806 <      yy_tmp = ptr->data;
3935 >  if (conf_parser_ctx.pass != 2)
3936 >    break;
3937  
3938 <      new_conf = make_conf_item(OPER_TYPE);
3939 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3938 >  reset_block_state();
3939 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3940 > }
3941 >    break;
3942  
3943 <      new_aconf->flags = yy_aconf->flags;
3943 >  case 146:
3944 > /* Line 1787 of yacc.c  */
3945 > #line 1012 "conf_parser.y"
3946 >    {
3947 >  dlink_node *ptr = NULL;
3948  
3949 <      if (yy_conf->name != NULL)
3950 <        DupString(new_conf->name, yy_conf->name);
3815 <      if (yy_tmp->user != NULL)
3816 <        DupString(new_aconf->user, yy_tmp->user);
3817 <      else
3818 <        DupString(new_aconf->user, "*");
3819 <      if (yy_tmp->host != NULL)
3820 <        DupString(new_aconf->host, yy_tmp->host);
3821 <      else
3822 <        DupString(new_aconf->host, "*");
3949 >  if (conf_parser_ctx.pass != 2)
3950 >    break;
3951  
3952 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3953 <                                     &new_aconf->bits);
3952 >  if (!block_state.name.buf[0])
3953 >    break;
3954 > #ifdef HAVE_LIBCRYPTO
3955 >  if (!block_state.file.buf[0] &&
3956 >      !block_state.rpass.buf[0])
3957 >    break;
3958 > #else
3959 >  if (!block_state.rpass.buf[0])
3960 >    break;
3961 > #endif
3962  
3963 <      conf_add_class_to_conf(new_conf, class_name);
3964 <      if (yy_aconf->passwd != NULL)
3965 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3963 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3964 >  {
3965 >    struct MaskItem *conf = NULL;
3966 >    struct split_nuh_item nuh;
3967  
3968 <      new_aconf->port = yy_aconf->port;
3969 < #ifdef HAVE_LIBCRYPTO
3970 <      if (yy_aconf->rsa_public_key_file != NULL)
3971 <      {
3972 <        BIO *file;
3968 >    nuh.nuhmask  = ptr->data;
3969 >    nuh.nickptr  = NULL;
3970 >    nuh.userptr  = block_state.user.buf;
3971 >    nuh.hostptr  = block_state.host.buf;
3972 >    nuh.nicksize = 0;
3973 >    nuh.usersize = sizeof(block_state.user.buf);
3974 >    nuh.hostsize = sizeof(block_state.host.buf);
3975 >    split_nuh(&nuh);
3976  
3977 <        DupString(new_aconf->rsa_public_key_file,
3978 <                  yy_aconf->rsa_public_key_file);
3977 >    conf        = conf_make(CONF_OPER);
3978 >    conf->name  = xstrdup(block_state.name.buf);
3979 >    conf->user  = xstrdup(block_state.user.buf);
3980 >    conf->host  = xstrdup(block_state.host.buf);
3981 >
3982 >    if (block_state.rpass.buf[0])
3983 >      conf->passwd = xstrdup(block_state.rpass.buf);
3984 >
3985 >    conf->flags = block_state.flags.value;
3986 >    conf->modes = block_state.modes.value;
3987 >    conf->port  = block_state.port.value;
3988 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3989  
3990 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3841 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3842 <                                                           NULL, 0, NULL);
3843 <        BIO_set_close(file, BIO_CLOSE);
3844 <        BIO_free(file);
3845 <      }
3846 < #endif
3990 >    conf_add_class_to_conf(conf, block_state.class.buf);
3991  
3992   #ifdef HAVE_LIBCRYPTO
3993 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3994 <          && yy_tmp->host)
3995 < #else
3996 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3997 < #endif
3993 >    if (block_state.file.buf[0])
3994 >    {
3995 >      BIO *file = NULL;
3996 >      RSA *pkey = NULL;
3997 >
3998 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3999        {
4000 <        conf_add_class_to_conf(new_conf, class_name);
4001 <        if (yy_tmp->name != NULL)
3857 <          DupString(new_conf->name, yy_tmp->name);
4000 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4001 >        break;
4002        }
4003  
4004 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4005 <      free_collect_item(yy_tmp);
3862 <    }
3863 <
3864 <    yy_conf = NULL;
3865 <    yy_aconf = NULL;
3866 <
4004 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4005 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4006  
4007 <    MyFree(class_name);
4008 <    class_name = NULL;
4007 >      conf->rsa_public_key = pkey;
4008 >      BIO_set_close(file, BIO_CLOSE);
4009 >      BIO_free(file);
4010 >    }
4011 > #endif /* HAVE_LIBCRYPTO */
4012    }
4013   }
4014      break;
4015  
4016 <  case 142:
4017 < /* Line 1813 of yacc.c  */
4018 < #line 972 "conf_parser.y"
4016 >  case 158:
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1087 "conf_parser.y"
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <  {
3880 <    MyFree(yy_conf->name);
3881 <    DupString(yy_conf->name, yylval.string);
3882 <  }
4021 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4022   }
4023      break;
4024  
4025 <  case 143:
4026 < /* Line 1813 of yacc.c  */
4027 < #line 981 "conf_parser.y"
4025 >  case 159:
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1093 "conf_parser.y"
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030 <  {
4031 <    struct split_nuh_item nuh;
4032 <
3894 <    nuh.nuhmask  = yylval.string;
3895 <    nuh.nickptr  = NULL;
3896 <    nuh.userptr  = userbuf;
3897 <    nuh.hostptr  = hostbuf;
3898 <
3899 <    nuh.nicksize = 0;
3900 <    nuh.usersize = sizeof(userbuf);
3901 <    nuh.hostsize = sizeof(hostbuf);
3902 <
3903 <    split_nuh(&nuh);
4030 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4031 > }
4032 >    break;
4033  
4034 <    if (yy_aconf->user == NULL)
4034 >  case 160:
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1099 "conf_parser.y"
4037      {
4038 <      DupString(yy_aconf->user, userbuf);
4039 <      DupString(yy_aconf->host, hostbuf);
4038 >  if (conf_parser_ctx.pass == 2)
4039 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4040 > }
4041 >    break;
4042  
4043 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
4044 <                                    &yy_aconf->bits);
4045 <    }
3913 <    else
4043 >  case 161:
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1105 "conf_parser.y"
4046      {
4047 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4048 <
3917 <      DupString(yy_tmp->user, userbuf);
3918 <      DupString(yy_tmp->host, hostbuf);
4047 >  if (conf_parser_ctx.pass != 2)
4048 >    break;
4049  
4050 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4051 <    }
4052 <  }
4050 >  if (yylval.number)
4051 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4052 >  else
4053 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4054   }
4055      break;
4056  
4057 <  case 144:
4058 < /* Line 1813 of yacc.c  */
4059 < #line 1018 "conf_parser.y"
4057 >  case 162:
4058 > /* Line 1787 of yacc.c  */
4059 > #line 1116 "conf_parser.y"
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062 <  {
3932 <    if (yy_aconf->passwd != NULL)
3933 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3934 <
3935 <    MyFree(yy_aconf->passwd);
3936 <    DupString(yy_aconf->passwd, yylval.string);
3937 <  }
4062 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4063   }
4064      break;
4065  
4066 <  case 145:
4067 < /* Line 1813 of yacc.c  */
4068 < #line 1030 "conf_parser.y"
4066 >  case 163:
4067 > /* Line 1787 of yacc.c  */
4068 > #line 1122 "conf_parser.y"
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071 <  {
3947 <    if (yylval.number)
3948 <      SetConfEncrypted(yy_aconf);
3949 <    else
3950 <      ClearConfEncrypted(yy_aconf);
3951 <  }
4071 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4072   }
4073      break;
4074  
4075 <  case 146:
4076 < /* Line 1813 of yacc.c  */
4077 < #line 1041 "conf_parser.y"
4075 >  case 164:
4076 > /* Line 1787 of yacc.c  */
4077 > #line 1128 "conf_parser.y"
4078      {
3959 #ifdef HAVE_LIBCRYPTO
4079    if (conf_parser_ctx.pass == 2)
4080 <  {
4081 <    BIO *file;
4082 <
3964 <    if (yy_aconf->rsa_public_key != NULL)
3965 <    {
3966 <      RSA_free(yy_aconf->rsa_public_key);
3967 <      yy_aconf->rsa_public_key = NULL;
3968 <    }
4080 >    block_state.modes.value = 0;
4081 > }
4082 >    break;
4083  
4084 <    if (yy_aconf->rsa_public_key_file != NULL)
4084 >  case 168:
4085 > /* Line 1787 of yacc.c  */
4086 > #line 1135 "conf_parser.y"
4087      {
4088 <      MyFree(yy_aconf->rsa_public_key_file);
4089 <      yy_aconf->rsa_public_key_file = NULL;
4090 <    }
4091 <
3976 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3977 <    file = BIO_new_file(yylval.string, "r");
4088 >  if (conf_parser_ctx.pass == 2)
4089 >    block_state.modes.value |= UMODE_BOTS;
4090 > }
4091 >    break;
4092  
4093 <    if (file == NULL)
4093 >  case 169:
4094 > /* Line 1787 of yacc.c  */
4095 > #line 1139 "conf_parser.y"
4096      {
4097 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4098 <      break;
4099 <    }
4100 <
3985 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4097 >  if (conf_parser_ctx.pass == 2)
4098 >    block_state.modes.value |= UMODE_CCONN;
4099 > }
4100 >    break;
4101  
4102 <    if (yy_aconf->rsa_public_key == NULL)
4102 >  case 170:
4103 > /* Line 1787 of yacc.c  */
4104 > #line 1143 "conf_parser.y"
4105      {
4106 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4107 <      break;
3991 <    }
3992 <
3993 <    BIO_set_close(file, BIO_CLOSE);
3994 <    BIO_free(file);
3995 <  }
3996 < #endif /* HAVE_LIBCRYPTO */
4106 >  if (conf_parser_ctx.pass == 2)
4107 >    block_state.modes.value |= UMODE_DEAF;
4108   }
4109      break;
4110  
4111 <  case 147:
4112 < /* Line 1813 of yacc.c  */
4113 < #line 1083 "conf_parser.y"
4111 >  case 171:
4112 > /* Line 1787 of yacc.c  */
4113 > #line 1147 "conf_parser.y"
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116 <  {
4006 <    MyFree(class_name);
4007 <    DupString(class_name, yylval.string);
4008 <  }
4116 >    block_state.modes.value |= UMODE_DEBUG;
4117   }
4118      break;
4119  
4120 <  case 148:
4121 < /* Line 1813 of yacc.c  */
4122 < #line 1092 "conf_parser.y"
4120 >  case 172:
4121 > /* Line 1787 of yacc.c  */
4122 > #line 1151 "conf_parser.y"
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <    yy_aconf->modes = 0;
4125 >    block_state.modes.value |= UMODE_FULL;
4126   }
4127      break;
4128  
4129 <  case 152:
4130 < /* Line 1813 of yacc.c  */
4131 < #line 1099 "conf_parser.y"
4129 >  case 173:
4130 > /* Line 1787 of yacc.c  */
4131 > #line 1155 "conf_parser.y"
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <    yy_aconf->modes |= UMODE_BOTS;
4134 >    block_state.modes.value |= UMODE_HIDDEN;
4135   }
4136      break;
4137  
4138 <  case 153:
4139 < /* Line 1813 of yacc.c  */
4140 < #line 1103 "conf_parser.y"
4138 >  case 174:
4139 > /* Line 1787 of yacc.c  */
4140 > #line 1159 "conf_parser.y"
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <    yy_aconf->modes |= UMODE_CCONN;
4143 >    block_state.modes.value |= UMODE_SKILL;
4144   }
4145      break;
4146  
4147 <  case 154:
4148 < /* Line 1813 of yacc.c  */
4149 < #line 1107 "conf_parser.y"
4147 >  case 175:
4148 > /* Line 1787 of yacc.c  */
4149 > #line 1163 "conf_parser.y"
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4152 >    block_state.modes.value |= UMODE_NCHANGE;
4153   }
4154      break;
4155  
4156 <  case 155:
4157 < /* Line 1813 of yacc.c  */
4158 < #line 1111 "conf_parser.y"
4156 >  case 176:
4157 > /* Line 1787 of yacc.c  */
4158 > #line 1167 "conf_parser.y"
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <    yy_aconf->modes |= UMODE_DEAF;
4161 >    block_state.modes.value |= UMODE_REJ;
4162   }
4163      break;
4164  
4165 <  case 156:
4166 < /* Line 1813 of yacc.c  */
4167 < #line 1115 "conf_parser.y"
4165 >  case 177:
4166 > /* Line 1787 of yacc.c  */
4167 > #line 1171 "conf_parser.y"
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <    yy_aconf->modes |= UMODE_DEBUG;
4170 >    block_state.modes.value |= UMODE_UNAUTH;
4171   }
4172      break;
4173  
4174 <  case 157:
4175 < /* Line 1813 of yacc.c  */
4176 < #line 1119 "conf_parser.y"
4174 >  case 178:
4175 > /* Line 1787 of yacc.c  */
4176 > #line 1175 "conf_parser.y"
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <    yy_aconf->modes |= UMODE_FULL;
4179 >    block_state.modes.value |= UMODE_SPY;
4180   }
4181      break;
4182  
4183 <  case 158:
4184 < /* Line 1813 of yacc.c  */
4185 < #line 1123 "conf_parser.y"
4183 >  case 179:
4184 > /* Line 1787 of yacc.c  */
4185 > #line 1179 "conf_parser.y"
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <    yy_aconf->modes |= UMODE_HIDDEN;
4188 >    block_state.modes.value |= UMODE_EXTERNAL;
4189   }
4190      break;
4191  
4192 <  case 159:
4193 < /* Line 1813 of yacc.c  */
4194 < #line 1127 "conf_parser.y"
4192 >  case 180:
4193 > /* Line 1787 of yacc.c  */
4194 > #line 1183 "conf_parser.y"
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <    yy_aconf->modes |= UMODE_SKILL;
4197 >    block_state.modes.value |= UMODE_OPERWALL;
4198   }
4199      break;
4200  
4201 <  case 160:
4202 < /* Line 1813 of yacc.c  */
4203 < #line 1131 "conf_parser.y"
4201 >  case 181:
4202 > /* Line 1787 of yacc.c  */
4203 > #line 1187 "conf_parser.y"
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <    yy_aconf->modes |= UMODE_NCHANGE;
4206 >    block_state.modes.value |= UMODE_SERVNOTICE;
4207   }
4208      break;
4209  
4210 <  case 161:
4211 < /* Line 1813 of yacc.c  */
4212 < #line 1135 "conf_parser.y"
4210 >  case 182:
4211 > /* Line 1787 of yacc.c  */
4212 > #line 1191 "conf_parser.y"
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <    yy_aconf->modes |= UMODE_REJ;
4215 >    block_state.modes.value |= UMODE_INVISIBLE;
4216   }
4217      break;
4218  
4219 <  case 162:
4220 < /* Line 1813 of yacc.c  */
4221 < #line 1139 "conf_parser.y"
4219 >  case 183:
4220 > /* Line 1787 of yacc.c  */
4221 > #line 1195 "conf_parser.y"
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <    yy_aconf->modes |= UMODE_UNAUTH;
4224 >    block_state.modes.value |= UMODE_WALLOP;
4225   }
4226      break;
4227  
4228 <  case 163:
4229 < /* Line 1813 of yacc.c  */
4230 < #line 1143 "conf_parser.y"
4228 >  case 184:
4229 > /* Line 1787 of yacc.c  */
4230 > #line 1199 "conf_parser.y"
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233 <    yy_aconf->modes |= UMODE_SPY;
4233 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4234   }
4235      break;
4236  
4237 <  case 164:
4238 < /* Line 1813 of yacc.c  */
4239 < #line 1147 "conf_parser.y"
4237 >  case 185:
4238 > /* Line 1787 of yacc.c  */
4239 > #line 1203 "conf_parser.y"
4240      {
4241    if (conf_parser_ctx.pass == 2)
4242 <    yy_aconf->modes |= UMODE_EXTERNAL;
4242 >    block_state.modes.value |= UMODE_CALLERID;
4243   }
4244      break;
4245  
4246 <  case 165:
4247 < /* Line 1813 of yacc.c  */
4248 < #line 1151 "conf_parser.y"
4246 >  case 186:
4247 > /* Line 1787 of yacc.c  */
4248 > #line 1207 "conf_parser.y"
4249      {
4250    if (conf_parser_ctx.pass == 2)
4251 <    yy_aconf->modes |= UMODE_OPERWALL;
4251 >    block_state.modes.value |= UMODE_LOCOPS;
4252   }
4253      break;
4254  
4255 <  case 166:
4256 < /* Line 1813 of yacc.c  */
4257 < #line 1155 "conf_parser.y"
4255 >  case 187:
4256 > /* Line 1787 of yacc.c  */
4257 > #line 1211 "conf_parser.y"
4258      {
4259    if (conf_parser_ctx.pass == 2)
4260 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4260 >    block_state.modes.value |= UMODE_REGONLY;
4261   }
4262      break;
4263  
4264 <  case 167:
4265 < /* Line 1813 of yacc.c  */
4266 < #line 1159 "conf_parser.y"
4264 >  case 188:
4265 > /* Line 1787 of yacc.c  */
4266 > #line 1215 "conf_parser.y"
4267      {
4268    if (conf_parser_ctx.pass == 2)
4269 <    yy_aconf->modes |= UMODE_INVISIBLE;
4269 >    block_state.modes.value |= UMODE_FARCONNECT;
4270   }
4271      break;
4272  
4273 <  case 168:
4274 < /* Line 1813 of yacc.c  */
4275 < #line 1163 "conf_parser.y"
4273 >  case 189:
4274 > /* Line 1787 of yacc.c  */
4275 > #line 1221 "conf_parser.y"
4276      {
4277    if (conf_parser_ctx.pass == 2)
4278 <    yy_aconf->modes |= UMODE_WALLOP;
4278 >    block_state.port.value = 0;
4279   }
4280      break;
4281  
4282 <  case 169:
4283 < /* Line 1813 of yacc.c  */
4284 < #line 1167 "conf_parser.y"
4282 >  case 193:
4283 > /* Line 1787 of yacc.c  */
4284 > #line 1228 "conf_parser.y"
4285      {
4286    if (conf_parser_ctx.pass == 2)
4287 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4287 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4288   }
4289      break;
4290  
4291 <  case 170:
4292 < /* Line 1813 of yacc.c  */
4293 < #line 1171 "conf_parser.y"
4291 >  case 194:
4292 > /* Line 1787 of yacc.c  */
4293 > #line 1232 "conf_parser.y"
4294      {
4295    if (conf_parser_ctx.pass == 2)
4296 <    yy_aconf->modes |= UMODE_CALLERID;
4296 >    block_state.port.value |= OPER_FLAG_KILL;
4297   }
4298      break;
4299  
4300 <  case 171:
4301 < /* Line 1813 of yacc.c  */
4302 < #line 1175 "conf_parser.y"
4300 >  case 195:
4301 > /* Line 1787 of yacc.c  */
4302 > #line 1236 "conf_parser.y"
4303      {
4304    if (conf_parser_ctx.pass == 2)
4305 <    yy_aconf->modes |= UMODE_LOCOPS;
4305 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4306   }
4307      break;
4308  
4309 <  case 172:
4310 < /* Line 1813 of yacc.c  */
4311 < #line 1181 "conf_parser.y"
4309 >  case 196:
4310 > /* Line 1787 of yacc.c  */
4311 > #line 1240 "conf_parser.y"
4312      {
4313    if (conf_parser_ctx.pass == 2)
4314 <    yy_aconf->port = 0;
4314 >    block_state.port.value |= OPER_FLAG_CONNECT;
4315   }
4316      break;
4317  
4318 <  case 176:
4319 < /* Line 1813 of yacc.c  */
4320 < #line 1188 "conf_parser.y"
4318 >  case 197:
4319 > /* Line 1787 of yacc.c  */
4320 > #line 1244 "conf_parser.y"
4321      {
4322    if (conf_parser_ctx.pass == 2)
4323 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4323 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4324   }
4325      break;
4326  
4327 <  case 177:
4328 < /* Line 1813 of yacc.c  */
4329 < #line 1192 "conf_parser.y"
4327 >  case 198:
4328 > /* Line 1787 of yacc.c  */
4329 > #line 1248 "conf_parser.y"
4330      {
4331    if (conf_parser_ctx.pass == 2)
4332 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4332 >    block_state.port.value |= OPER_FLAG_SQUIT;
4333   }
4334      break;
4335  
4336 <  case 178:
4337 < /* Line 1813 of yacc.c  */
4338 < #line 1196 "conf_parser.y"
4336 >  case 199:
4337 > /* Line 1787 of yacc.c  */
4338 > #line 1252 "conf_parser.y"
4339      {
4340    if (conf_parser_ctx.pass == 2)
4341 <    yy_aconf->port |= OPER_FLAG_K;
4341 >    block_state.port.value |= OPER_FLAG_K;
4342   }
4343      break;
4344  
4345 <  case 179:
4346 < /* Line 1813 of yacc.c  */
4347 < #line 1200 "conf_parser.y"
4345 >  case 200:
4346 > /* Line 1787 of yacc.c  */
4347 > #line 1256 "conf_parser.y"
4348      {
4349    if (conf_parser_ctx.pass == 2)
4350 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4350 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4351   }
4352      break;
4353  
4354 <  case 180:
4355 < /* Line 1813 of yacc.c  */
4356 < #line 1204 "conf_parser.y"
4354 >  case 201:
4355 > /* Line 1787 of yacc.c  */
4356 > #line 1260 "conf_parser.y"
4357      {
4358    if (conf_parser_ctx.pass == 2)
4359 <    yy_aconf->port |= OPER_FLAG_DLINE;
4359 >    block_state.port.value |= OPER_FLAG_DLINE;
4360   }
4361      break;
4362  
4363 <  case 181:
4364 < /* Line 1813 of yacc.c  */
4365 < #line 1208 "conf_parser.y"
4363 >  case 202:
4364 > /* Line 1787 of yacc.c  */
4365 > #line 1264 "conf_parser.y"
4366      {
4367    if (conf_parser_ctx.pass == 2)
4368 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4368 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4369   }
4370      break;
4371  
4372 <  case 182:
4373 < /* Line 1813 of yacc.c  */
4374 < #line 1212 "conf_parser.y"
4372 >  case 203:
4373 > /* Line 1787 of yacc.c  */
4374 > #line 1268 "conf_parser.y"
4375      {
4376    if (conf_parser_ctx.pass == 2)
4377 <    yy_aconf->port |= OPER_FLAG_X;
4377 >    block_state.port.value |= OPER_FLAG_X;
4378   }
4379      break;
4380  
4381 <  case 183:
4382 < /* Line 1813 of yacc.c  */
4383 < #line 1216 "conf_parser.y"
4381 >  case 204:
4382 > /* Line 1787 of yacc.c  */
4383 > #line 1272 "conf_parser.y"
4384      {
4385    if (conf_parser_ctx.pass == 2)
4386 <    yy_aconf->port |= OPER_FLAG_GLINE;
4386 >    block_state.port.value |= OPER_FLAG_GLINE;
4387   }
4388      break;
4389  
4390 <  case 184:
4391 < /* Line 1813 of yacc.c  */
4392 < #line 1220 "conf_parser.y"
4390 >  case 205:
4391 > /* Line 1787 of yacc.c  */
4392 > #line 1276 "conf_parser.y"
4393      {
4394    if (conf_parser_ctx.pass == 2)
4395 <    yy_aconf->port |= OPER_FLAG_DIE;
4395 >    block_state.port.value |= OPER_FLAG_DIE;
4396   }
4397      break;
4398  
4399 <  case 185:
4400 < /* Line 1813 of yacc.c  */
4401 < #line 1224 "conf_parser.y"
4399 >  case 206:
4400 > /* Line 1787 of yacc.c  */
4401 > #line 1280 "conf_parser.y"
4402      {
4403    if (conf_parser_ctx.pass == 2)
4404 <    yy_aconf->port |= OPER_FLAG_RESTART;
4404 >    block_state.port.value |= OPER_FLAG_RESTART;
4405   }
4406      break;
4407  
4408 <  case 186:
4409 < /* Line 1813 of yacc.c  */
4410 < #line 1228 "conf_parser.y"
4408 >  case 207:
4409 > /* Line 1787 of yacc.c  */
4410 > #line 1284 "conf_parser.y"
4411      {
4412    if (conf_parser_ctx.pass == 2)
4413 <    yy_aconf->port |= OPER_FLAG_REHASH;
4413 >    block_state.port.value |= OPER_FLAG_REHASH;
4414   }
4415      break;
4416  
4417 <  case 187:
4418 < /* Line 1813 of yacc.c  */
4419 < #line 1232 "conf_parser.y"
4417 >  case 208:
4418 > /* Line 1787 of yacc.c  */
4419 > #line 1288 "conf_parser.y"
4420      {
4421    if (conf_parser_ctx.pass == 2)
4422 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4422 >    block_state.port.value |= OPER_FLAG_ADMIN;
4423   }
4424      break;
4425  
4426 <  case 188:
4427 < /* Line 1813 of yacc.c  */
4428 < #line 1236 "conf_parser.y"
4426 >  case 209:
4427 > /* Line 1787 of yacc.c  */
4428 > #line 1292 "conf_parser.y"
4429      {
4430    if (conf_parser_ctx.pass == 2)
4431 <    yy_aconf->port |= OPER_FLAG_N;
4431 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4432   }
4433      break;
4434  
4435 <  case 189:
4436 < /* Line 1813 of yacc.c  */
4437 < #line 1240 "conf_parser.y"
4435 >  case 210:
4436 > /* Line 1787 of yacc.c  */
4437 > #line 1296 "conf_parser.y"
4438      {
4439    if (conf_parser_ctx.pass == 2)
4440 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4440 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4441   }
4442      break;
4443  
4444 <  case 190:
4445 < /* Line 1813 of yacc.c  */
4446 < #line 1244 "conf_parser.y"
4444 >  case 211:
4445 > /* Line 1787 of yacc.c  */
4446 > #line 1300 "conf_parser.y"
4447      {
4448    if (conf_parser_ctx.pass == 2)
4449 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4449 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4450   }
4451      break;
4452  
4453 <  case 191:
4454 < /* Line 1813 of yacc.c  */
4455 < #line 1248 "conf_parser.y"
4453 >  case 212:
4454 > /* Line 1787 of yacc.c  */
4455 > #line 1304 "conf_parser.y"
4456      {
4457    if (conf_parser_ctx.pass == 2)
4458 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4458 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4459   }
4460      break;
4461  
4462 <  case 192:
4463 < /* Line 1813 of yacc.c  */
4464 < #line 1252 "conf_parser.y"
4462 >  case 213:
4463 > /* Line 1787 of yacc.c  */
4464 > #line 1308 "conf_parser.y"
4465      {
4466    if (conf_parser_ctx.pass == 2)
4467 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4467 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4468   }
4469      break;
4470  
4471 <  case 193:
4472 < /* Line 1813 of yacc.c  */
4473 < #line 1256 "conf_parser.y"
4471 >  case 214:
4472 > /* Line 1787 of yacc.c  */
4473 > #line 1312 "conf_parser.y"
4474      {
4475    if (conf_parser_ctx.pass == 2)
4476 <    yy_aconf->port |= OPER_FLAG_SET;
4476 >    block_state.port.value |= OPER_FLAG_SET;
4477   }
4478      break;
4479  
4480 <  case 194:
4481 < /* Line 1813 of yacc.c  */
4482 < #line 1260 "conf_parser.y"
4480 >  case 215:
4481 > /* Line 1787 of yacc.c  */
4482 > #line 1316 "conf_parser.y"
4483      {
4484    if (conf_parser_ctx.pass == 2)
4485 <    yy_aconf->port |= OPER_FLAG_MODULE;
4485 >    block_state.port.value |= OPER_FLAG_MODULE;
4486   }
4487      break;
4488  
4489 <  case 195:
4490 < /* Line 1813 of yacc.c  */
4491 < #line 1270 "conf_parser.y"
4489 >  case 216:
4490 > /* Line 1787 of yacc.c  */
4491 > #line 1326 "conf_parser.y"
4492      {
4493 <  if (conf_parser_ctx.pass == 1)
4494 <  {
4495 <    yy_conf = make_conf_item(CLASS_TYPE);
4496 <    yy_class = map_to_conf(yy_conf);
4497 <  }
4493 >  if (conf_parser_ctx.pass != 1)
4494 >    break;
4495 >
4496 >  reset_block_state();
4497 >
4498 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4499 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4500 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4501 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4502 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4503   }
4504      break;
4505  
4506 <  case 196:
4507 < /* Line 1813 of yacc.c  */
4508 < #line 1277 "conf_parser.y"
4506 >  case 217:
4507 > /* Line 1787 of yacc.c  */
4508 > #line 1338 "conf_parser.y"
4509      {
4510 <  if (conf_parser_ctx.pass == 1)
4398 <  {
4399 <    struct ConfItem *cconf = NULL;
4400 <    struct ClassItem *class = NULL;
4510 >  struct ClassItem *class = NULL;
4511  
4512 <    if (yy_class_name == NULL)
4513 <      delete_conf_item(yy_conf);
4404 <    else
4405 <    {
4406 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4512 >  if (conf_parser_ctx.pass != 1)
4513 >    break;
4514  
4515 <      if (cconf != NULL)                /* The class existed already */
4516 <      {
4410 <        int user_count = 0;
4515 >  if (!block_state.class.buf[0])
4516 >    break;
4517  
4518 <        rebuild_cidr_class(cconf, yy_class);
4518 >  if (!(class = class_find(block_state.class.buf, 0)))
4519 >    class = class_make();
4520  
4521 <        class = map_to_conf(cconf);
4521 >  class->active = 1;
4522 >  MyFree(class->name);
4523 >  class->name = xstrdup(block_state.class.buf);
4524 >  class->ping_freq = block_state.ping_freq.value;
4525 >  class->max_perip = block_state.max_perip.value;
4526 >  class->con_freq = block_state.con_freq.value;
4527 >  class->max_total = block_state.max_total.value;
4528 >  class->max_global = block_state.max_global.value;
4529 >  class->max_local = block_state.max_local.value;
4530 >  class->max_ident = block_state.max_ident.value;
4531 >  class->max_sendq = block_state.max_sendq.value;
4532 >  class->max_recvq = block_state.max_recvq.value;
4533  
4534 <        user_count = class->curr_user_count;
4535 <        memcpy(class, yy_class, sizeof(*class));
4536 <        class->curr_user_count = user_count;
4537 <        class->active = 1;
4534 >  if (block_state.min_idle.value > block_state.max_idle.value)
4535 >  {
4536 >    block_state.min_idle.value = 0;
4537 >    block_state.max_idle.value = 0;
4538 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4539 >  }
4540  
4541 <        delete_conf_item(yy_conf);
4541 >  class->flags = block_state.flags.value;
4542 >  class->min_idle = block_state.min_idle.value;
4543 >  class->max_idle = block_state.max_idle.value;
4544  
4545 <        MyFree(cconf->name);            /* Allows case change of class name */
4546 <        cconf->name = yy_class_name;
4547 <      }
4548 <      else      /* Brand new class */
4549 <      {
4550 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4429 <        yy_conf->name = yy_class_name;
4430 <        yy_class->active = 1;
4431 <      }
4432 <    }
4545 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4546 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4547 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4548 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4549 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4550 >        rebuild_cidr_list(class);
4551  
4552 <    yy_class_name = NULL;
4553 <  }
4552 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4553 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4554 >  class->number_per_cidr = block_state.number_per_cidr.value;
4555   }
4556      break;
4557  
4558 <  case 214:
4559 < /* Line 1813 of yacc.c  */
4560 < #line 1335 "conf_parser.y"
4558 >  case 237:
4559 > /* Line 1787 of yacc.c  */
4560 > #line 1404 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 1)
4563 <  {
4445 <    MyFree(yy_class_name);
4446 <    DupString(yy_class_name, yylval.string);
4447 <  }
4563 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4564   }
4565      break;
4566  
4567 <  case 215:
4568 < /* Line 1813 of yacc.c  */
4569 < #line 1344 "conf_parser.y"
4567 >  case 238:
4568 > /* Line 1787 of yacc.c  */
4569 > #line 1410 "conf_parser.y"
4570      {
4571    if (conf_parser_ctx.pass == 1)
4572 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4572 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4573   }
4574      break;
4575  
4576 <  case 216:
4577 < /* Line 1813 of yacc.c  */
4578 < #line 1350 "conf_parser.y"
4576 >  case 239:
4577 > /* Line 1787 of yacc.c  */
4578 > #line 1416 "conf_parser.y"
4579      {
4580    if (conf_parser_ctx.pass == 1)
4581 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4581 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4582   }
4583      break;
4584  
4585 <  case 217:
4586 < /* Line 1813 of yacc.c  */
4587 < #line 1356 "conf_parser.y"
4585 >  case 240:
4586 > /* Line 1787 of yacc.c  */
4587 > #line 1422 "conf_parser.y"
4588      {
4589    if (conf_parser_ctx.pass == 1)
4590 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4590 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4591   }
4592      break;
4593  
4594 <  case 218:
4595 < /* Line 1813 of yacc.c  */
4596 < #line 1362 "conf_parser.y"
4594 >  case 241:
4595 > /* Line 1787 of yacc.c  */
4596 > #line 1428 "conf_parser.y"
4597      {
4598    if (conf_parser_ctx.pass == 1)
4599 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4599 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4600   }
4601      break;
4602  
4603 <  case 219:
4604 < /* Line 1813 of yacc.c  */
4605 < #line 1368 "conf_parser.y"
4603 >  case 242:
4604 > /* Line 1787 of yacc.c  */
4605 > #line 1434 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 1)
4608 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4608 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4609   }
4610      break;
4611  
4612 <  case 220:
4613 < /* Line 1813 of yacc.c  */
4614 < #line 1374 "conf_parser.y"
4612 >  case 243:
4613 > /* Line 1787 of yacc.c  */
4614 > #line 1440 "conf_parser.y"
4615      {
4616    if (conf_parser_ctx.pass == 1)
4617 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4617 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4618   }
4619      break;
4620  
4621 <  case 221:
4622 < /* Line 1813 of yacc.c  */
4623 < #line 1380 "conf_parser.y"
4621 >  case 244:
4622 > /* Line 1787 of yacc.c  */
4623 > #line 1446 "conf_parser.y"
4624      {
4625    if (conf_parser_ctx.pass == 1)
4626 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4626 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4627   }
4628      break;
4629  
4630 <  case 222:
4631 < /* Line 1813 of yacc.c  */
4632 < #line 1386 "conf_parser.y"
4630 >  case 245:
4631 > /* Line 1787 of yacc.c  */
4632 > #line 1452 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 1)
4635 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4635 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4636   }
4637      break;
4638  
4639 <  case 223:
4640 < /* Line 1813 of yacc.c  */
4641 < #line 1392 "conf_parser.y"
4639 >  case 246:
4640 > /* Line 1787 of yacc.c  */
4641 > #line 1458 "conf_parser.y"
4642      {
4643    if (conf_parser_ctx.pass == 1)
4644 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4644 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4645 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4646   }
4647      break;
4648  
4649 <  case 224:
4650 < /* Line 1813 of yacc.c  */
4651 < #line 1398 "conf_parser.y"
4649 >  case 247:
4650 > /* Line 1787 of yacc.c  */
4651 > #line 1465 "conf_parser.y"
4652      {
4653    if (conf_parser_ctx.pass == 1)
4654 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4538 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4654 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4655   }
4656      break;
4657  
4658 <  case 225:
4659 < /* Line 1813 of yacc.c  */
4660 < #line 1405 "conf_parser.y"
4658 >  case 248:
4659 > /* Line 1787 of yacc.c  */
4660 > #line 1471 "conf_parser.y"
4661      {
4662    if (conf_parser_ctx.pass == 1)
4663 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4663 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4664   }
4665      break;
4666  
4667 <  case 226:
4668 < /* Line 1813 of yacc.c  */
4669 < #line 1411 "conf_parser.y"
4667 >  case 249:
4668 > /* Line 1787 of yacc.c  */
4669 > #line 1477 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 1)
4672 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4672 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4673   }
4674      break;
4675  
4676 <  case 227:
4677 < /* Line 1813 of yacc.c  */
4678 < #line 1417 "conf_parser.y"
4676 >  case 250:
4677 > /* Line 1787 of yacc.c  */
4678 > #line 1483 "conf_parser.y"
4679 >    {
4680 >  if (conf_parser_ctx.pass != 1)
4681 >    break;
4682 >
4683 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4684 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4685 > }
4686 >    break;
4687 >
4688 >  case 251:
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1492 "conf_parser.y"
4691 >    {
4692 >  if (conf_parser_ctx.pass != 1)
4693 >    break;
4694 >
4695 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4696 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4697 > }
4698 >    break;
4699 >
4700 >  case 252:
4701 > /* Line 1787 of yacc.c  */
4702 > #line 1501 "conf_parser.y"
4703      {
4704    if (conf_parser_ctx.pass == 1)
4705 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4705 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4706   }
4707      break;
4708  
4709 <  case 228:
4710 < /* Line 1813 of yacc.c  */
4711 < #line 1426 "conf_parser.y"
4709 >  case 256:
4710 > /* Line 1787 of yacc.c  */
4711 > #line 1508 "conf_parser.y"
4712      {
4713 <  if (conf_parser_ctx.pass == 2)
4714 <  {
4575 <    listener_address = NULL;
4576 <    listener_flags = 0;
4577 <  }
4713 >  if (conf_parser_ctx.pass == 1)
4714 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4715   }
4716      break;
4717  
4718 <  case 229:
4719 < /* Line 1813 of yacc.c  */
4720 < #line 1433 "conf_parser.y"
4718 >  case 257:
4719 > /* Line 1787 of yacc.c  */
4720 > #line 1512 "conf_parser.y"
4721 >    {
4722 >  if (conf_parser_ctx.pass == 1)
4723 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4724 > }
4725 >    break;
4726 >
4727 >  case 258:
4728 > /* Line 1787 of yacc.c  */
4729 > #line 1522 "conf_parser.y"
4730      {
4731    if (conf_parser_ctx.pass == 2)
4732 <  {
4587 <    MyFree(listener_address);
4588 <    listener_address = NULL;
4589 <  }
4732 >    reset_block_state();
4733   }
4734      break;
4735  
4736 <  case 230:
4737 < /* Line 1813 of yacc.c  */
4738 < #line 1442 "conf_parser.y"
4736 >  case 260:
4737 > /* Line 1787 of yacc.c  */
4738 > #line 1528 "conf_parser.y"
4739      {
4740 <  listener_flags = 0;
4740 >  block_state.flags.value = 0;
4741   }
4742      break;
4743  
4744 <  case 234:
4745 < /* Line 1813 of yacc.c  */
4746 < #line 1448 "conf_parser.y"
4744 >  case 264:
4745 > /* Line 1787 of yacc.c  */
4746 > #line 1534 "conf_parser.y"
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <    listener_flags |= LISTENER_SSL;
4749 >    block_state.flags.value |= LISTENER_SSL;
4750   }
4751      break;
4752  
4753 <  case 235:
4754 < /* Line 1813 of yacc.c  */
4755 < #line 1452 "conf_parser.y"
4753 >  case 265:
4754 > /* Line 1787 of yacc.c  */
4755 > #line 1538 "conf_parser.y"
4756      {
4757    if (conf_parser_ctx.pass == 2)
4758 <    listener_flags |= LISTENER_HIDDEN;
4758 >    block_state.flags.value |= LISTENER_HIDDEN;
4759   }
4760      break;
4761  
4762 <  case 236:
4763 < /* Line 1813 of yacc.c  */
4764 < #line 1456 "conf_parser.y"
4762 >  case 266:
4763 > /* Line 1787 of yacc.c  */
4764 > #line 1542 "conf_parser.y"
4765      {
4766    if (conf_parser_ctx.pass == 2)
4767 <    listener_flags |= LISTENER_SERVER;
4767 >   block_state.flags.value |= LISTENER_SERVER;
4768   }
4769      break;
4770  
4771 <  case 244:
4772 < /* Line 1813 of yacc.c  */
4773 < #line 1466 "conf_parser.y"
4774 <    { listener_flags = 0; }
4771 >  case 274:
4772 > /* Line 1787 of yacc.c  */
4773 > #line 1550 "conf_parser.y"
4774 >    { block_state.flags.value = 0; }
4775      break;
4776  
4777 <  case 248:
4778 < /* Line 1813 of yacc.c  */
4779 < #line 1471 "conf_parser.y"
4777 >  case 278:
4778 > /* Line 1787 of yacc.c  */
4779 > #line 1555 "conf_parser.y"
4780      {
4781    if (conf_parser_ctx.pass == 2)
4782    {
4783 <    if ((listener_flags & LISTENER_SSL))
4783 >    if (block_state.flags.value & LISTENER_SSL)
4784   #ifdef HAVE_LIBCRYPTO
4785        if (!ServerInfo.server_ctx)
4786   #endif
4787        {
4788 <        yyerror("SSL not available - port closed");
4788 >        conf_error_report("SSL not available - port closed");
4789          break;
4790        }
4791 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4791 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4792    }
4793   }
4794      break;
4795  
4796 <  case 249:
4797 < /* Line 1813 of yacc.c  */
4798 < #line 1485 "conf_parser.y"
4796 >  case 279:
4797 > /* Line 1787 of yacc.c  */
4798 > #line 1569 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801    {
4802      int i;
4803  
4804 <    if ((listener_flags & LISTENER_SSL))
4804 >    if (block_state.flags.value & LISTENER_SSL)
4805   #ifdef HAVE_LIBCRYPTO
4806        if (!ServerInfo.server_ctx)
4807   #endif
4808        {
4809 <        yyerror("SSL not available - port closed");
4809 >        conf_error_report("SSL not available - port closed");
4810          break;
4811        }
4812  
4813      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4814 <      add_listener(i, listener_address, listener_flags);
4814 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4815    }
4816   }
4817      break;
4818  
4819 <  case 250:
4820 < /* Line 1813 of yacc.c  */
4821 < #line 1505 "conf_parser.y"
4819 >  case 280:
4820 > /* Line 1787 of yacc.c  */
4821 > #line 1589 "conf_parser.y"
4822      {
4823    if (conf_parser_ctx.pass == 2)
4824 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4824 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4825   }
4826      break;
4827  
4828 <  case 251:
4829 < /* Line 1813 of yacc.c  */
4830 < #line 1514 "conf_parser.y"
4828 >  case 281:
4829 > /* Line 1787 of yacc.c  */
4830 > #line 1595 "conf_parser.y"
4831      {
4832    if (conf_parser_ctx.pass == 2)
4833 <  {
4694 <    MyFree(listener_address);
4695 <    DupString(listener_address, yylval.string);
4696 <  }
4833 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4834   }
4835      break;
4836  
4837 <  case 252:
4838 < /* Line 1813 of yacc.c  */
4839 < #line 1526 "conf_parser.y"
4837 >  case 282:
4838 > /* Line 1787 of yacc.c  */
4839 > #line 1604 "conf_parser.y"
4840      {
4841    if (conf_parser_ctx.pass == 2)
4842 <  {
4706 <    yy_conf = make_conf_item(CLIENT_TYPE);
4707 <    yy_aconf = map_to_conf(yy_conf);
4708 <  }
4709 <  else
4710 <  {
4711 <    MyFree(class_name);
4712 <    class_name = NULL;
4713 <  }
4842 >    reset_block_state();
4843   }
4844      break;
4845  
4846 <  case 253:
4847 < /* Line 1813 of yacc.c  */
4848 < #line 1538 "conf_parser.y"
4720 <    {
4721 <  if (conf_parser_ctx.pass == 2)
4722 <  {
4723 <    struct CollectItem *yy_tmp = NULL;
4724 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4725 <
4726 <    if (yy_aconf->user && yy_aconf->host)
4727 <    {
4728 <      conf_add_class_to_conf(yy_conf, class_name);
4729 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4730 <    }
4731 <    else
4732 <      delete_conf_item(yy_conf);
4733 <
4734 <    /* copy over settings from first struct */
4735 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4846 >  case 283:
4847 > /* Line 1787 of yacc.c  */
4848 > #line 1608 "conf_parser.y"
4849      {
4850 <      struct AccessItem *new_aconf;
4738 <      struct ConfItem *new_conf;
4739 <
4740 <      new_conf = make_conf_item(CLIENT_TYPE);
4741 <      new_aconf = map_to_conf(new_conf);
4742 <
4743 <      yy_tmp = ptr->data;
4744 <
4745 <      assert(yy_tmp->user && yy_tmp->host);
4746 <
4747 <      if (yy_aconf->passwd != NULL)
4748 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4749 <      if (yy_conf->name != NULL)
4750 <        DupString(new_conf->name, yy_conf->name);
4751 <      if (yy_aconf->passwd != NULL)
4752 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4753 <
4754 <      new_aconf->flags = yy_aconf->flags;
4755 <      new_aconf->port  = yy_aconf->port;
4756 <
4757 <      DupString(new_aconf->user, yy_tmp->user);
4758 <      collapse(new_aconf->user);
4759 <
4760 <      DupString(new_aconf->host, yy_tmp->host);
4761 <      collapse(new_aconf->host);
4850 >  dlink_node *ptr = NULL;
4851  
4852 <      conf_add_class_to_conf(new_conf, class_name);
4764 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4765 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4766 <      free_collect_item(yy_tmp);
4767 <    }
4768 <
4769 <    MyFree(class_name);
4770 <    class_name = NULL;
4771 <    yy_conf = NULL;
4772 <    yy_aconf = NULL;
4773 <  }
4774 < }
4852 >  if (conf_parser_ctx.pass != 2)
4853      break;
4854  
4855 <  case 265:
4778 < /* Line 1813 of yacc.c  */
4779 < #line 1600 "conf_parser.y"
4780 <    {
4781 <  if (conf_parser_ctx.pass == 2)
4855 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4856    {
4857 <    struct CollectItem *yy_tmp = NULL;
4857 >    struct MaskItem *conf = NULL;
4858      struct split_nuh_item nuh;
4859  
4860 <    nuh.nuhmask  = yylval.string;
4860 >    nuh.nuhmask  = ptr->data;
4861      nuh.nickptr  = NULL;
4862 <    nuh.userptr  = userbuf;
4863 <    nuh.hostptr  = hostbuf;
4790 <
4862 >    nuh.userptr  = block_state.user.buf;
4863 >    nuh.hostptr  = block_state.host.buf;
4864      nuh.nicksize = 0;
4865 <    nuh.usersize = sizeof(userbuf);
4866 <    nuh.hostsize = sizeof(hostbuf);
4794 <
4865 >    nuh.usersize = sizeof(block_state.user.buf);
4866 >    nuh.hostsize = sizeof(block_state.host.buf);
4867      split_nuh(&nuh);
4868  
4869 <    if (yy_aconf->user == NULL)
4870 <    {
4871 <      DupString(yy_aconf->user, userbuf);
4872 <      DupString(yy_aconf->host, hostbuf);
4873 <    }
4874 <    else
4875 <    {
4876 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4869 >    conf        = conf_make(CONF_CLIENT);
4870 >    conf->user  = xstrdup(block_state.user.buf);
4871 >    conf->host  = xstrdup(block_state.host.buf);
4872 >
4873 >    if (block_state.rpass.buf[0])
4874 >      conf->passwd = xstrdup(block_state.rpass.buf);
4875 >    if (block_state.name.buf[0])
4876 >      conf->name = xstrdup(block_state.name.buf);
4877  
4878 <      DupString(yy_tmp->user, userbuf);
4879 <      DupString(yy_tmp->host, hostbuf);
4878 >    conf->flags = block_state.flags.value;
4879 >    conf->port  = block_state.port.value;
4880  
4881 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4882 <    }
4881 >    conf_add_class_to_conf(conf, block_state.class.buf);
4882 >    add_conf_by_address(CONF_CLIENT, conf);
4883    }
4884   }
4885      break;
4886  
4887 <  case 266:
4888 < /* Line 1813 of yacc.c  */
4889 < #line 1635 "conf_parser.y"
4887 >  case 295:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1651 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <  {
4893 <    /* be paranoid */
4894 <    if (yy_aconf->passwd != NULL)
4823 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4892 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4893 > }
4894 >    break;
4895  
4896 <    MyFree(yy_aconf->passwd);
4897 <    DupString(yy_aconf->passwd, yylval.string);
4898 <  }
4896 >  case 296:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1657 "conf_parser.y"
4899 >    {
4900 >  if (conf_parser_ctx.pass == 2)
4901 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4902   }
4903      break;
4904  
4905 <  case 267:
4906 < /* Line 1813 of yacc.c  */
4907 < #line 1648 "conf_parser.y"
4905 >  case 297:
4906 > /* Line 1787 of yacc.c  */
4907 > #line 1663 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <  {
4837 <    MyFree(class_name);
4838 <    DupString(class_name, yylval.string);
4839 <  }
4910 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4911   }
4912      break;
4913  
4914 <  case 268:
4915 < /* Line 1813 of yacc.c  */
4916 < #line 1657 "conf_parser.y"
4914 >  case 298:
4915 > /* Line 1787 of yacc.c  */
4916 > #line 1669 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919    {
4920      if (yylval.number)
4921 <      SetConfEncrypted(yy_aconf);
4921 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4922      else
4923 <      ClearConfEncrypted(yy_aconf);
4923 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4924    }
4925   }
4926      break;
4927  
4928 <  case 269:
4929 < /* Line 1813 of yacc.c  */
4930 < #line 1668 "conf_parser.y"
4928 >  case 299:
4929 > /* Line 1787 of yacc.c  */
4930 > #line 1680 "conf_parser.y"
4931      {
4932 +  if (conf_parser_ctx.pass == 2)
4933 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4934   }
4935      break;
4936  
4937 <  case 273:
4938 < /* Line 1813 of yacc.c  */
4939 < #line 1673 "conf_parser.y"
4937 >  case 303:
4938 > /* Line 1787 of yacc.c  */
4939 > #line 1687 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4942 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4943   }
4944      break;
4945  
4946 <  case 274:
4947 < /* Line 1813 of yacc.c  */
4948 < #line 1677 "conf_parser.y"
4946 >  case 304:
4947 > /* Line 1787 of yacc.c  */
4948 > #line 1691 "conf_parser.y"
4949      {
4950    if (conf_parser_ctx.pass == 2)
4951 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4951 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4952   }
4953      break;
4954  
4955 <  case 275:
4956 < /* Line 1813 of yacc.c  */
4957 < #line 1681 "conf_parser.y"
4955 >  case 305:
4956 > /* Line 1787 of yacc.c  */
4957 > #line 1695 "conf_parser.y"
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4960 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4961   }
4962      break;
4963  
4964 <  case 276:
4965 < /* Line 1813 of yacc.c  */
4966 < #line 1685 "conf_parser.y"
4964 >  case 306:
4965 > /* Line 1787 of yacc.c  */
4966 > #line 1699 "conf_parser.y"
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4969 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4970   }
4971      break;
4972  
4973 <  case 277:
4974 < /* Line 1813 of yacc.c  */
4975 < #line 1689 "conf_parser.y"
4973 >  case 307:
4974 > /* Line 1787 of yacc.c  */
4975 > #line 1703 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4978 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4979   }
4980      break;
4981  
4982 <  case 278:
4983 < /* Line 1813 of yacc.c  */
4984 < #line 1693 "conf_parser.y"
4982 >  case 308:
4983 > /* Line 1787 of yacc.c  */
4984 > #line 1707 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4987 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4988   }
4989      break;
4990  
4991 <  case 279:
4992 < /* Line 1813 of yacc.c  */
4993 < #line 1697 "conf_parser.y"
4991 >  case 309:
4992 > /* Line 1787 of yacc.c  */
4993 > #line 1711 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4996 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4997   }
4998      break;
4999  
5000 <  case 280:
5001 < /* Line 1813 of yacc.c  */
5002 < #line 1701 "conf_parser.y"
5000 >  case 310:
5001 > /* Line 1787 of yacc.c  */
5002 > #line 1715 "conf_parser.y"
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5005 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5006   }
5007      break;
5008  
5009 <  case 281:
5010 < /* Line 1813 of yacc.c  */
5011 < #line 1705 "conf_parser.y"
5009 >  case 311:
5010 > /* Line 1787 of yacc.c  */
5011 > #line 1719 "conf_parser.y"
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5014 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
5015   }
5016      break;
5017  
5018 <  case 282:
5019 < /* Line 1813 of yacc.c  */
5020 < #line 1711 "conf_parser.y"
5018 >  case 312:
5019 > /* Line 1787 of yacc.c  */
5020 > #line 1723 "conf_parser.y"
5021      {
5022    if (conf_parser_ctx.pass == 2)
5023 <  {
4951 <    MyFree(yy_conf->name);
4952 <
4953 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4954 <    {    
4955 <      DupString(yy_conf->name, yylval.string);
4956 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4957 <    }
4958 <    else
4959 <    {
4960 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4961 <      yy_conf->name = NULL;
4962 <    }
4963 <  }
5023 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5024   }
5025      break;
5026  
5027 <  case 283:
5028 < /* Line 1813 of yacc.c  */
5029 < #line 1730 "conf_parser.y"
5027 >  case 313:
5028 > /* Line 1787 of yacc.c  */
5029 > #line 1729 "conf_parser.y"
5030      {
5031 <  if (conf_parser_ctx.pass == 2)
5031 >  if (conf_parser_ctx.pass != 2)
5032 >    break;
5033 >
5034 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5035    {
5036 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5037 <    MyFree(yy_conf->name);
4975 <    DupString(yy_conf->name, yylval.string);
5036 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5037 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5038    }
5039 +  else
5040 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5041   }
5042      break;
5043  
5044 <  case 284:
5045 < /* Line 1813 of yacc.c  */
5046 < #line 1740 "conf_parser.y"
5044 >  case 314:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1743 "conf_parser.y"
5047      {
5048 <  if (conf_parser_ctx.pass == 2)
5049 <  {
5050 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5051 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5052 <  }
5048 >  if (conf_parser_ctx.pass != 2)
5049 >    break;
5050 >
5051 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5052 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5053   }
5054      break;
5055  
5056 <  case 285:
5057 < /* Line 1813 of yacc.c  */
5058 < #line 1753 "conf_parser.y"
5056 >  case 315:
5057 > /* Line 1787 of yacc.c  */
5058 > #line 1752 "conf_parser.y"
5059      {
5060 <  if (conf_parser_ctx.pass == 2)
5061 <  {
5062 <    MyFree(resv_reason);
5063 <    resv_reason = NULL;
5064 <  }
5060 >  if (conf_parser_ctx.pass != 2)
5061 >    break;
5062 >
5063 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5064 >  block_state.port.value = (yyvsp[(3) - (4)].number);
5065   }
5066      break;
5067  
5068 <  case 286:
5069 < /* Line 1813 of yacc.c  */
5070 < #line 1760 "conf_parser.y"
5068 >  case 316:
5069 > /* Line 1787 of yacc.c  */
5070 > #line 1765 "conf_parser.y"
5071      {
5072 <  if (conf_parser_ctx.pass == 2)
5073 <  {
5074 <    MyFree(resv_reason);
5075 <    resv_reason = NULL;
5076 <  }
5072 >  if (conf_parser_ctx.pass != 2)
5073 >    break;
5074 >
5075 >  reset_block_state();
5076 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5077   }
5078      break;
5079  
5080 <  case 293:
5081 < /* Line 1813 of yacc.c  */
5080 >  case 317:
5081 > /* Line 1787 of yacc.c  */
5082   #line 1772 "conf_parser.y"
5083      {
5084 <  if (conf_parser_ctx.pass == 2)
5085 <  {
5086 <    MyFree(resv_reason);
5087 <    DupString(resv_reason, yylval.string);
5024 <  }
5084 >  if (conf_parser_ctx.pass != 2)
5085 >    break;
5086 >
5087 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5088   }
5089      break;
5090  
5091 <  case 294:
5092 < /* Line 1813 of yacc.c  */
5093 < #line 1781 "conf_parser.y"
5091 >  case 324:
5092 > /* Line 1787 of yacc.c  */
5093 > #line 1783 "conf_parser.y"
5094      {
5095    if (conf_parser_ctx.pass == 2)
5096 <  {
5034 <    if (IsChanPrefix(*yylval.string))
5035 <    {
5036 <      char def_reason[] = "No reason";
5037 <
5038 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5039 <    }
5040 <  }
5041 <  /* ignore it for now.. but we really should make a warning if
5042 <   * its an erroneous name --fl_ */
5096 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5097   }
5098      break;
5099  
5100 <  case 295:
5101 < /* Line 1813 of yacc.c  */
5102 < #line 1796 "conf_parser.y"
5100 >  case 325:
5101 > /* Line 1787 of yacc.c  */
5102 > #line 1789 "conf_parser.y"
5103      {
5104    if (conf_parser_ctx.pass == 2)
5105 <  {
5052 <    char def_reason[] = "No reason";
5053 <
5054 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5055 <  }
5105 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5106   }
5107      break;
5108  
5109 <  case 301:
5110 < /* Line 1813 of yacc.c  */
5111 < #line 1814 "conf_parser.y"
5109 >  case 326:
5110 > /* Line 1787 of yacc.c  */
5111 > #line 1795 "conf_parser.y"
5112      {
5113    if (conf_parser_ctx.pass == 2)
5114 <  {
5065 <    if (valid_servname(yylval.string))
5066 <    {
5067 <      yy_conf = make_conf_item(SERVICE_TYPE);
5068 <      DupString(yy_conf->name, yylval.string);
5069 <    }
5070 <  }
5114 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5115   }
5116      break;
5117  
5118 <  case 302:
5119 < /* Line 1813 of yacc.c  */
5120 < #line 1829 "conf_parser.y"
5118 >  case 332:
5119 > /* Line 1787 of yacc.c  */
5120 > #line 1810 "conf_parser.y"
5121      {
5122 <  if (conf_parser_ctx.pass == 2)
5122 >  if (conf_parser_ctx.pass != 2)
5123 >    break;
5124 >
5125 >  if (valid_servname(yylval.string))
5126    {
5127 <    yy_conf = make_conf_item(ULINE_TYPE);
5128 <    yy_match_item = map_to_conf(yy_conf);
5082 <    yy_match_item->action = SHARED_ALL;
5127 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
5128 >    conf->name = xstrdup(yylval.string);
5129    }
5130   }
5131      break;
5132  
5133 <  case 303:
5134 < /* Line 1813 of yacc.c  */
5135 < #line 1837 "conf_parser.y"
5133 >  case 333:
5134 > /* Line 1787 of yacc.c  */
5135 > #line 1825 "conf_parser.y"
5136      {
5137 <  if (conf_parser_ctx.pass == 2)
5138 <  {
5139 <    yy_conf = NULL;
5140 <  }
5137 >  if (conf_parser_ctx.pass != 2)
5138 >    break;
5139 >
5140 >  reset_block_state();
5141 >
5142 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5143 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5144 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5145 >  block_state.flags.value = SHARED_ALL;
5146   }
5147      break;
5148  
5149 <  case 310:
5150 < /* Line 1813 of yacc.c  */
5151 < #line 1848 "conf_parser.y"
5149 >  case 334:
5150 > /* Line 1787 of yacc.c  */
5151 > #line 1836 "conf_parser.y"
5152 >    {
5153 >  struct MaskItem *conf = NULL;
5154 >
5155 >  if (conf_parser_ctx.pass != 2)
5156 >    break;
5157 >
5158 >  conf = conf_make(CONF_ULINE);
5159 >  conf->flags = block_state.flags.value;
5160 >  conf->name = xstrdup(block_state.name.buf);
5161 >  conf->user = xstrdup(block_state.user.buf);
5162 >  conf->host = xstrdup(block_state.host.buf);
5163 > }
5164 >    break;
5165 >
5166 >  case 341:
5167 > /* Line 1787 of yacc.c  */
5168 > #line 1853 "conf_parser.y"
5169      {
5170    if (conf_parser_ctx.pass == 2)
5171 <  {
5104 <    MyFree(yy_conf->name);
5105 <    DupString(yy_conf->name, yylval.string);
5106 <  }
5171 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5172   }
5173      break;
5174  
5175 <  case 311:
5176 < /* Line 1813 of yacc.c  */
5177 < #line 1857 "conf_parser.y"
5175 >  case 342:
5176 > /* Line 1787 of yacc.c  */
5177 > #line 1859 "conf_parser.y"
5178      {
5179    if (conf_parser_ctx.pass == 2)
5180    {
# Line 5117 | Line 5182 | yyreduce:
5182  
5183      nuh.nuhmask  = yylval.string;
5184      nuh.nickptr  = NULL;
5185 <    nuh.userptr  = userbuf;
5186 <    nuh.hostptr  = hostbuf;
5185 >    nuh.userptr  = block_state.user.buf;
5186 >    nuh.hostptr  = block_state.host.buf;
5187  
5188      nuh.nicksize = 0;
5189 <    nuh.usersize = sizeof(userbuf);
5190 <    nuh.hostsize = sizeof(hostbuf);
5189 >    nuh.usersize = sizeof(block_state.user.buf);
5190 >    nuh.hostsize = sizeof(block_state.host.buf);
5191  
5192      split_nuh(&nuh);
5128
5129    DupString(yy_match_item->user, userbuf);
5130    DupString(yy_match_item->host, hostbuf);
5193    }
5194   }
5195      break;
5196  
5197 <  case 312:
5198 < /* Line 1813 of yacc.c  */
5199 < #line 1879 "conf_parser.y"
5197 >  case 343:
5198 > /* Line 1787 of yacc.c  */
5199 > #line 1878 "conf_parser.y"
5200      {
5201    if (conf_parser_ctx.pass == 2)
5202 <    yy_match_item->action = 0;
5202 >    block_state.flags.value = 0;
5203   }
5204      break;
5205  
5206 <  case 316:
5207 < /* Line 1813 of yacc.c  */
5208 < #line 1886 "conf_parser.y"
5206 >  case 347:
5207 > /* Line 1787 of yacc.c  */
5208 > #line 1885 "conf_parser.y"
5209      {
5210    if (conf_parser_ctx.pass == 2)
5211 <    yy_match_item->action |= SHARED_KLINE;
5211 >    block_state.flags.value |= SHARED_KLINE;
5212   }
5213      break;
5214  
5215 <  case 317:
5216 < /* Line 1813 of yacc.c  */
5217 < #line 1890 "conf_parser.y"
5215 >  case 348:
5216 > /* Line 1787 of yacc.c  */
5217 > #line 1889 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <    yy_match_item->action |= SHARED_UNKLINE;
5220 >    block_state.flags.value |= SHARED_UNKLINE;
5221   }
5222      break;
5223  
5224 <  case 318:
5225 < /* Line 1813 of yacc.c  */
5226 < #line 1894 "conf_parser.y"
5224 >  case 349:
5225 > /* Line 1787 of yacc.c  */
5226 > #line 1893 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    yy_match_item->action |= SHARED_DLINE;
5229 >    block_state.flags.value |= SHARED_DLINE;
5230   }
5231      break;
5232  
5233 <  case 319:
5234 < /* Line 1813 of yacc.c  */
5235 < #line 1898 "conf_parser.y"
5233 >  case 350:
5234 > /* Line 1787 of yacc.c  */
5235 > #line 1897 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_match_item->action |= SHARED_UNDLINE;
5238 >    block_state.flags.value |= SHARED_UNDLINE;
5239   }
5240      break;
5241  
5242 <  case 320:
5243 < /* Line 1813 of yacc.c  */
5244 < #line 1902 "conf_parser.y"
5242 >  case 351:
5243 > /* Line 1787 of yacc.c  */
5244 > #line 1901 "conf_parser.y"
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247 <    yy_match_item->action |= SHARED_XLINE;
5247 >    block_state.flags.value |= SHARED_XLINE;
5248   }
5249      break;
5250  
5251 <  case 321:
5252 < /* Line 1813 of yacc.c  */
5253 < #line 1906 "conf_parser.y"
5251 >  case 352:
5252 > /* Line 1787 of yacc.c  */
5253 > #line 1905 "conf_parser.y"
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256 <    yy_match_item->action |= SHARED_UNXLINE;
5256 >    block_state.flags.value |= SHARED_UNXLINE;
5257   }
5258      break;
5259  
5260 <  case 322:
5261 < /* Line 1813 of yacc.c  */
5262 < #line 1910 "conf_parser.y"
5260 >  case 353:
5261 > /* Line 1787 of yacc.c  */
5262 > #line 1909 "conf_parser.y"
5263      {
5264    if (conf_parser_ctx.pass == 2)
5265 <    yy_match_item->action |= SHARED_RESV;
5265 >    block_state.flags.value |= SHARED_RESV;
5266   }
5267      break;
5268  
5269 <  case 323:
5270 < /* Line 1813 of yacc.c  */
5271 < #line 1914 "conf_parser.y"
5269 >  case 354:
5270 > /* Line 1787 of yacc.c  */
5271 > #line 1913 "conf_parser.y"
5272      {
5273    if (conf_parser_ctx.pass == 2)
5274 <    yy_match_item->action |= SHARED_UNRESV;
5274 >    block_state.flags.value |= SHARED_UNRESV;
5275   }
5276      break;
5277  
5278 <  case 324:
5279 < /* Line 1813 of yacc.c  */
5280 < #line 1918 "conf_parser.y"
5278 >  case 355:
5279 > /* Line 1787 of yacc.c  */
5280 > #line 1917 "conf_parser.y"
5281      {
5282    if (conf_parser_ctx.pass == 2)
5283 <    yy_match_item->action |= SHARED_LOCOPS;
5283 >    block_state.flags.value |= SHARED_LOCOPS;
5284   }
5285      break;
5286  
5287 <  case 325:
5288 < /* Line 1813 of yacc.c  */
5289 < #line 1922 "conf_parser.y"
5287 >  case 356:
5288 > /* Line 1787 of yacc.c  */
5289 > #line 1921 "conf_parser.y"
5290      {
5291    if (conf_parser_ctx.pass == 2)
5292 <    yy_match_item->action = SHARED_ALL;
5292 >    block_state.flags.value = SHARED_ALL;
5293   }
5294      break;
5295  
5296 <  case 326:
5297 < /* Line 1813 of yacc.c  */
5298 < #line 1931 "conf_parser.y"
5296 >  case 357:
5297 > /* Line 1787 of yacc.c  */
5298 > #line 1930 "conf_parser.y"
5299      {
5300 <  if (conf_parser_ctx.pass == 2)
5301 <  {
5302 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5303 <    yy_conf->flags = SHARED_ALL;
5304 <  }
5300 >  if (conf_parser_ctx.pass != 2)
5301 >    break;
5302 >
5303 >  reset_block_state();
5304 >
5305 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5306 >  block_state.flags.value = SHARED_ALL;
5307   }
5308      break;
5309  
5310 <  case 327:
5311 < /* Line 1813 of yacc.c  */
5312 < #line 1938 "conf_parser.y"
5310 >  case 358:
5311 > /* Line 1787 of yacc.c  */
5312 > #line 1939 "conf_parser.y"
5313      {
5314 <  if (conf_parser_ctx.pass == 2)
5315 <  {
5316 <    if (yy_conf->name == NULL)
5317 <      DupString(yy_conf->name, "*");
5318 <    yy_conf = NULL;
5319 <  }
5314 >  struct MaskItem *conf = NULL;
5315 >
5316 >  if (conf_parser_ctx.pass != 2)
5317 >    break;
5318 >
5319 >  conf = conf_make(CONF_CLUSTER);
5320 >  conf->flags = block_state.flags.value;
5321 >  conf->name = xstrdup(block_state.name.buf);
5322   }
5323      break;
5324  
5325 <  case 333:
5326 < /* Line 1813 of yacc.c  */
5327 < #line 1951 "conf_parser.y"
5325 >  case 364:
5326 > /* Line 1787 of yacc.c  */
5327 > #line 1954 "conf_parser.y"
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330 <    DupString(yy_conf->name, yylval.string);
5330 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5331   }
5332      break;
5333  
5334 <  case 334:
5335 < /* Line 1813 of yacc.c  */
5336 < #line 1957 "conf_parser.y"
5334 >  case 365:
5335 > /* Line 1787 of yacc.c  */
5336 > #line 1960 "conf_parser.y"
5337      {
5338    if (conf_parser_ctx.pass == 2)
5339 <    yy_conf->flags = 0;
5339 >    block_state.flags.value = 0;
5340   }
5341      break;
5342  
5343 <  case 338:
5344 < /* Line 1813 of yacc.c  */
5345 < #line 1964 "conf_parser.y"
5343 >  case 369:
5344 > /* Line 1787 of yacc.c  */
5345 > #line 1967 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <    yy_conf->flags |= SHARED_KLINE;
5348 >    block_state.flags.value |= SHARED_KLINE;
5349   }
5350      break;
5351  
5352 <  case 339:
5353 < /* Line 1813 of yacc.c  */
5354 < #line 1968 "conf_parser.y"
5352 >  case 370:
5353 > /* Line 1787 of yacc.c  */
5354 > #line 1971 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <    yy_conf->flags |= SHARED_UNKLINE;
5357 >    block_state.flags.value |= SHARED_UNKLINE;
5358   }
5359      break;
5360  
5361 <  case 340:
5362 < /* Line 1813 of yacc.c  */
5363 < #line 1972 "conf_parser.y"
5361 >  case 371:
5362 > /* Line 1787 of yacc.c  */
5363 > #line 1975 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <    yy_conf->flags |= SHARED_DLINE;
5366 >    block_state.flags.value |= SHARED_DLINE;
5367   }
5368      break;
5369  
5370 <  case 341:
5371 < /* Line 1813 of yacc.c  */
5372 < #line 1976 "conf_parser.y"
5370 >  case 372:
5371 > /* Line 1787 of yacc.c  */
5372 > #line 1979 "conf_parser.y"
5373      {
5374    if (conf_parser_ctx.pass == 2)
5375 <    yy_conf->flags |= SHARED_UNDLINE;
5375 >    block_state.flags.value |= SHARED_UNDLINE;
5376   }
5377      break;
5378  
5379 <  case 342:
5380 < /* Line 1813 of yacc.c  */
5381 < #line 1980 "conf_parser.y"
5379 >  case 373:
5380 > /* Line 1787 of yacc.c  */
5381 > #line 1983 "conf_parser.y"
5382      {
5383    if (conf_parser_ctx.pass == 2)
5384 <    yy_conf->flags |= SHARED_XLINE;
5384 >    block_state.flags.value |= SHARED_XLINE;
5385   }
5386      break;
5387  
5388 <  case 343:
5389 < /* Line 1813 of yacc.c  */
5390 < #line 1984 "conf_parser.y"
5388 >  case 374:
5389 > /* Line 1787 of yacc.c  */
5390 > #line 1987 "conf_parser.y"
5391      {
5392    if (conf_parser_ctx.pass == 2)
5393 <    yy_conf->flags |= SHARED_UNXLINE;
5393 >    block_state.flags.value |= SHARED_UNXLINE;
5394   }
5395      break;
5396  
5397 <  case 344:
5398 < /* Line 1813 of yacc.c  */
5399 < #line 1988 "conf_parser.y"
5397 >  case 375:
5398 > /* Line 1787 of yacc.c  */
5399 > #line 1991 "conf_parser.y"
5400      {
5401    if (conf_parser_ctx.pass == 2)
5402 <    yy_conf->flags |= SHARED_RESV;
5402 >    block_state.flags.value |= SHARED_RESV;
5403   }
5404      break;
5405  
5406 <  case 345:
5407 < /* Line 1813 of yacc.c  */
5408 < #line 1992 "conf_parser.y"
5406 >  case 376:
5407 > /* Line 1787 of yacc.c  */
5408 > #line 1995 "conf_parser.y"
5409      {
5410    if (conf_parser_ctx.pass == 2)
5411 <    yy_conf->flags |= SHARED_UNRESV;
5411 >    block_state.flags.value |= SHARED_UNRESV;
5412   }
5413      break;
5414  
5415 <  case 346:
5416 < /* Line 1813 of yacc.c  */
5417 < #line 1996 "conf_parser.y"
5415 >  case 377:
5416 > /* Line 1787 of yacc.c  */
5417 > #line 1999 "conf_parser.y"
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420 <    yy_conf->flags |= SHARED_LOCOPS;
5420 >    block_state.flags.value |= SHARED_LOCOPS;
5421   }
5422      break;
5423  
5424 <  case 347:
5425 < /* Line 1813 of yacc.c  */
5426 < #line 2000 "conf_parser.y"
5424 >  case 378:
5425 > /* Line 1787 of yacc.c  */
5426 > #line 2003 "conf_parser.y"
5427      {
5428    if (conf_parser_ctx.pass == 2)
5429 <    yy_conf->flags = SHARED_ALL;
5429 >    block_state.flags.value = SHARED_ALL;
5430   }
5431      break;
5432  
5433 <  case 348:
5434 < /* Line 1813 of yacc.c  */
5435 < #line 2009 "conf_parser.y"
5433 >  case 379:
5434 > /* Line 1787 of yacc.c  */
5435 > #line 2012 "conf_parser.y"
5436      {
5371  if (conf_parser_ctx.pass == 2)
5372  {
5373    yy_conf = make_conf_item(SERVER_TYPE);
5374    yy_aconf = map_to_conf(yy_conf);
5437  
5438 <    /* defaults */
5439 <    yy_aconf->port = PORTNUM;
5440 <  }
5441 <  else
5442 <  {
5381 <    MyFree(class_name);
5382 <    class_name = NULL;
5383 <  }
5438 >  if (conf_parser_ctx.pass != 2)
5439 >    break;
5440 >
5441 >  reset_block_state();
5442 >  block_state.port.value = PORTNUM;
5443   }
5444      break;
5445  
5446 <  case 349:
5447 < /* Line 1813 of yacc.c  */
5448 < #line 2024 "conf_parser.y"
5390 <    {
5391 <  if (conf_parser_ctx.pass == 2)
5392 <  {
5393 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5394 <    {
5395 <      if (conf_add_server(yy_conf, class_name) == -1)
5396 <        delete_conf_item(yy_conf);
5397 <    }
5398 <    else
5446 >  case 380:
5447 > /* Line 1787 of yacc.c  */
5448 > #line 2020 "conf_parser.y"
5449      {
5450 <      if (yy_conf->name != NULL)
5451 <      {
5402 <        if (yy_aconf->host == NULL)
5403 <          yyerror("Ignoring connect block -- missing host");
5404 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5405 <          yyerror("Ignoring connect block -- missing password");
5406 <      }
5450 >  struct MaskItem *conf = NULL;
5451 >  struct addrinfo hints, *res;
5452  
5453 <      /* XXX
5454 <       * This fixes a try_connections() core (caused by invalid class_ptr
5410 <       * pointers) reported by metalrock. That's an ugly fix, but there
5411 <       * is currently no better way. The entire config subsystem needs an
5412 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5413 <       * a doubly linked list immediately without any sanity checks!  -Michael
5414 <       */
5415 <      delete_conf_item(yy_conf);
5416 <    }
5453 >  if (conf_parser_ctx.pass != 2)
5454 >    break;
5455  
5456 <    MyFree(class_name);
5457 <    class_name = NULL;
5420 <    yy_conf = NULL;
5421 <    yy_aconf = NULL;
5422 <  }
5423 < }
5456 >  if (!block_state.name.buf[0] ||
5457 >      !block_state.host.buf[0])
5458      break;
5459  
5460 <  case 366:
5461 < /* Line 1813 of yacc.c  */
5428 < #line 2068 "conf_parser.y"
5429 <    {
5430 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    MyFree(yy_conf->name);
5433 <    DupString(yy_conf->name, yylval.string);
5434 <  }
5435 < }
5460 >  if (!block_state.rpass.buf[0] ||
5461 >      !block_state.spass.buf[0])
5462      break;
5463  
5464 <  case 367:
5465 < /* Line 1813 of yacc.c  */
5440 < #line 2077 "conf_parser.y"
5441 <    {
5442 <  if (conf_parser_ctx.pass == 2)
5443 <  {
5444 <    MyFree(yy_aconf->host);
5445 <    DupString(yy_aconf->host, yylval.string);
5446 <  }
5447 < }
5464 >  if (has_wildcards(block_state.name.buf) ||
5465 >      has_wildcards(block_state.host.buf))
5466      break;
5467  
5468 <  case 368:
5469 < /* Line 1813 of yacc.c  */
5470 < #line 2086 "conf_parser.y"
5471 <    {
5472 <  if (conf_parser_ctx.pass == 2)
5473 <  {
5474 <    struct addrinfo hints, *res;
5468 >  conf = conf_make(CONF_SERVER);
5469 >  conf->port = block_state.port.value;
5470 >  conf->flags = block_state.flags.value;
5471 >  conf->aftype = block_state.aftype.value;
5472 >  conf->host = xstrdup(block_state.host.buf);
5473 >  conf->name = xstrdup(block_state.name.buf);
5474 >  conf->passwd = xstrdup(block_state.rpass.buf);
5475 >  conf->spasswd = xstrdup(block_state.spass.buf);
5476 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5477  
5478 +  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5479 +  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5480 +
5481 +  if (block_state.bind.buf[0])
5482 +  {
5483      memset(&hints, 0, sizeof(hints));
5484  
5485      hints.ai_family   = AF_UNSPEC;
5486      hints.ai_socktype = SOCK_STREAM;
5487      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5488  
5489 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5490 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5489 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5490 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5491      else
5492      {
5493        assert(res != NULL);
5494  
5495 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5496 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5497 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5495 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5496 >      conf->bind.ss.ss_family = res->ai_family;
5497 >      conf->bind.ss_len = res->ai_addrlen;
5498        freeaddrinfo(res);
5499      }
5500    }
5501 +
5502 +  conf_add_class_to_conf(conf, block_state.class.buf);
5503 +  lookup_confhost(conf);
5504   }
5505      break;
5506  
5507 <  case 369:
5508 < /* Line 1813 of yacc.c  */
5509 < #line 2112 "conf_parser.y"
5507 >  case 397:
5508 > /* Line 1787 of yacc.c  */
5509 > #line 2086 "conf_parser.y"
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512 <  {
5513 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5514 <      yyerror("Server passwords cannot begin with a colon");
5487 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5488 <      yyerror("Server passwords cannot contain spaces");
5489 <    else {
5490 <      if (yy_aconf->spasswd != NULL)
5491 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5512 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5513 > }
5514 >    break;
5515  
5516 <      MyFree(yy_aconf->spasswd);
5517 <      DupString(yy_aconf->spasswd, yylval.string);
5518 <    }
5519 <  }
5516 >  case 398:
5517 > /* Line 1787 of yacc.c  */
5518 > #line 2092 "conf_parser.y"
5519 >    {
5520 >  if (conf_parser_ctx.pass == 2)
5521 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5522   }
5523      break;
5524  
5525 <  case 370:
5526 < /* Line 1813 of yacc.c  */
5527 < #line 2130 "conf_parser.y"
5525 >  case 399:
5526 > /* Line 1787 of yacc.c  */
5527 > #line 2098 "conf_parser.y"
5528      {
5529    if (conf_parser_ctx.pass == 2)
5530 <  {
5531 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5532 <      yyerror("Server passwords cannot begin with a colon");
5508 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5509 <      yyerror("Server passwords cannot contain spaces");
5510 <    else {
5511 <      if (yy_aconf->passwd != NULL)
5512 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5530 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5531 > }
5532 >    break;
5533  
5534 <      MyFree(yy_aconf->passwd);
5535 <      DupString(yy_aconf->passwd, yylval.string);
5536 <    }
5537 <  }
5534 >  case 400:
5535 > /* Line 1787 of yacc.c  */
5536 > #line 2104 "conf_parser.y"
5537 >    {
5538 >  if (conf_parser_ctx.pass != 2)
5539 >    break;
5540 >
5541 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5542 >    conf_error_report("Server passwords cannot begin with a colon");
5543 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5544 >    conf_error_report("Server passwords cannot contain spaces");
5545 >  else
5546 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5547   }
5548      break;
5549  
5550 <  case 371:
5551 < /* Line 1813 of yacc.c  */
5552 < #line 2148 "conf_parser.y"
5550 >  case 401:
5551 > /* Line 1787 of yacc.c  */
5552 > #line 2117 "conf_parser.y"
5553 >    {
5554 >  if (conf_parser_ctx.pass != 2)
5555 >    break;
5556 >
5557 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5558 >    conf_error_report("Server passwords cannot begin with a colon");
5559 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5560 >    conf_error_report("Server passwords cannot contain spaces");
5561 >  else
5562 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5563 > }
5564 >    break;
5565 >
5566 >  case 402:
5567 > /* Line 1787 of yacc.c  */
5568 > #line 2130 "conf_parser.y"
5569      {
5570    if (conf_parser_ctx.pass == 2)
5571 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5571 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5572   }
5573      break;
5574  
5575 <  case 372:
5576 < /* Line 1813 of yacc.c  */
5577 < #line 2154 "conf_parser.y"
5575 >  case 403:
5576 > /* Line 1787 of yacc.c  */
5577 > #line 2136 "conf_parser.y"
5578      {
5579    if (conf_parser_ctx.pass == 2)
5580 <    yy_aconf->aftype = AF_INET;
5580 >    block_state.aftype.value = AF_INET;
5581   }
5582      break;
5583  
5584 <  case 373:
5585 < /* Line 1813 of yacc.c  */
5586 < #line 2158 "conf_parser.y"
5584 >  case 404:
5585 > /* Line 1787 of yacc.c  */
5586 > #line 2140 "conf_parser.y"
5587      {
5588   #ifdef IPV6
5589    if (conf_parser_ctx.pass == 2)
5590 <    yy_aconf->aftype = AF_INET6;
5590 >    block_state.aftype.value = AF_INET6;
5591   #endif
5592   }
5593      break;
5594  
5595 <  case 374:
5596 < /* Line 1813 of yacc.c  */
5597 < #line 2166 "conf_parser.y"
5595 >  case 405:
5596 > /* Line 1787 of yacc.c  */
5597 > #line 2148 "conf_parser.y"
5598      {
5599 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5600   }
5601      break;
5602  
5603 <  case 378:
5604 < /* Line 1813 of yacc.c  */
5605 < #line 2171 "conf_parser.y"
5603 >  case 409:
5604 > /* Line 1787 of yacc.c  */
5605 > #line 2154 "conf_parser.y"
5606      {
5607    if (conf_parser_ctx.pass == 2)
5608 <    SetConfAllowAutoConn(yy_aconf);
5608 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5609   }
5610      break;
5611  
5612 <  case 379:
5613 < /* Line 1813 of yacc.c  */
5614 < #line 2175 "conf_parser.y"
5612 >  case 410:
5613 > /* Line 1787 of yacc.c  */
5614 > #line 2158 "conf_parser.y"
5615      {
5616    if (conf_parser_ctx.pass == 2)
5617 <    SetConfSSL(yy_aconf);
5617 >    block_state.flags.value |= CONF_FLAGS_SSL;
5618   }
5619      break;
5620  
5621 <  case 380:
5622 < /* Line 1813 of yacc.c  */
5623 < #line 2181 "conf_parser.y"
5621 >  case 411:
5622 > /* Line 1787 of yacc.c  */
5623 > #line 2164 "conf_parser.y"
5624      {
5625    if (conf_parser_ctx.pass == 2)
5626    {
5627      if (yylval.number)
5628 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5628 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5629      else
5630 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5630 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5631    }
5632   }
5633      break;
5634  
5635 <  case 381:
5636 < /* Line 1813 of yacc.c  */
5637 < #line 2192 "conf_parser.y"
5635 >  case 412:
5636 > /* Line 1787 of yacc.c  */
5637 > #line 2175 "conf_parser.y"
5638      {
5639    if (conf_parser_ctx.pass == 2)
5640 <  {
5595 <    char *mask;
5596 <
5597 <    DupString(mask, yylval.string);
5598 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5599 <  }
5640 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5641   }
5642      break;
5643  
5644 <  case 382:
5645 < /* Line 1813 of yacc.c  */
5646 < #line 2203 "conf_parser.y"
5644 >  case 413:
5645 > /* Line 1787 of yacc.c  */
5646 > #line 2181 "conf_parser.y"
5647      {
5648    if (conf_parser_ctx.pass == 2)
5649 <  {
5609 <    char *mask;
5610 <
5611 <    DupString(mask, yylval.string);
5612 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5613 <  }
5649 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5650   }
5651      break;
5652  
5653 <  case 383:
5654 < /* Line 1813 of yacc.c  */
5655 < #line 2214 "conf_parser.y"
5653 >  case 414:
5654 > /* Line 1787 of yacc.c  */
5655 > #line 2187 "conf_parser.y"
5656      {
5657    if (conf_parser_ctx.pass == 2)
5658 <  {
5623 <    MyFree(class_name);
5624 <    DupString(class_name, yylval.string);
5625 <  }
5658 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5659   }
5660      break;
5661  
5662 <  case 384:
5663 < /* Line 1813 of yacc.c  */
5664 < #line 2223 "conf_parser.y"
5662 >  case 415:
5663 > /* Line 1787 of yacc.c  */
5664 > #line 2193 "conf_parser.y"
5665      {
5666   #ifdef HAVE_LIBCRYPTO
5667    if (conf_parser_ctx.pass == 2)
5668 <  {
5636 <    MyFree(yy_aconf->cipher_list);
5637 <    DupString(yy_aconf->cipher_list, yylval.string);
5638 <  }
5668 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5669   #else
5670    if (conf_parser_ctx.pass == 2)
5671 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5671 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5672   #endif
5673   }
5674      break;
5675  
5676 <  case 385:
5677 < /* Line 1813 of yacc.c  */
5678 < #line 2241 "conf_parser.y"
5676 >  case 416:
5677 > /* Line 1787 of yacc.c  */
5678 > #line 2208 "conf_parser.y"
5679      {
5680    if (conf_parser_ctx.pass == 2)
5681 <  {
5652 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5653 <    regex_ban = 0;
5654 <  }
5681 >    reset_block_state();
5682   }
5683      break;
5684  
5685 <  case 386:
5686 < /* Line 1813 of yacc.c  */
5687 < #line 2248 "conf_parser.y"
5661 <    {
5662 <  if (conf_parser_ctx.pass == 2)
5663 <  {
5664 <    if (userbuf[0] && hostbuf[0])
5685 >  case 417:
5686 > /* Line 1787 of yacc.c  */
5687 > #line 2212 "conf_parser.y"
5688      {
5689 <      if (regex_ban)
5667 <      {
5668 < #ifdef HAVE_LIBPCRE
5669 <        void *exp_user = NULL;
5670 <        void *exp_host = NULL;
5671 <        const char *errptr = NULL;
5672 <
5673 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5674 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5675 <        {
5676 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5677 <               errptr);
5678 <          break;
5679 <        }
5680 <
5681 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5682 <        yy_aconf->regexuser = exp_user;
5683 <        yy_aconf->regexhost = exp_host;
5689 >  struct MaskItem *conf = NULL;
5690  
5691 <        SetConfMain(yy_aconf);
5686 <
5687 <        DupString(yy_aconf->user, userbuf);
5688 <        DupString(yy_aconf->host, hostbuf);
5689 <
5690 <        if (reasonbuf[0])
5691 <          DupString(yy_aconf->reason, reasonbuf);
5692 <        else
5693 <          DupString(yy_aconf->reason, "No reason");
5694 < #else
5695 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5696 <        break;
5697 < #endif
5698 <      }
5699 <      else
5700 <      {
5701 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5702 <
5703 <        SetConfMain(yy_aconf);
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 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5713 <      }
5714 <    }
5715 <
5716 <    yy_aconf = NULL;
5717 <  }
5718 < }
5691 >  if (conf_parser_ctx.pass != 2)
5692      break;
5693  
5694 <  case 387:
5695 < /* Line 1813 of yacc.c  */
5723 < #line 2308 "conf_parser.y"
5724 <    {
5725 < }
5694 >  if (!block_state.user.buf[0] ||
5695 >      !block_state.host.buf[0])
5696      break;
5697  
5698 <  case 391:
5699 < /* Line 1813 of yacc.c  */
5700 < #line 2313 "conf_parser.y"
5701 <    {
5702 <  if (conf_parser_ctx.pass == 2)
5703 <    regex_ban = 1;
5698 >  conf = conf_make(CONF_KLINE);
5699 >  conf->user = xstrdup(block_state.user.buf);
5700 >  conf->host = xstrdup(block_state.host.buf);
5701 >
5702 >  if (block_state.rpass.buf[0])
5703 >    conf->reason = xstrdup(block_state.rpass.buf);
5704 >  else
5705 >    conf->reason = xstrdup(CONF_NOREASON);
5706 >  add_conf_by_address(CONF_KLINE, conf);
5707   }
5708      break;
5709  
5710 <  case 398:
5711 < /* Line 1813 of yacc.c  */
5712 < #line 2322 "conf_parser.y"
5710 >  case 423:
5711 > /* Line 1787 of yacc.c  */
5712 > #line 2237 "conf_parser.y"
5713      {
5714 +
5715    if (conf_parser_ctx.pass == 2)
5716    {
5717      struct split_nuh_item nuh;
5718  
5719      nuh.nuhmask  = yylval.string;
5720      nuh.nickptr  = NULL;
5721 <    nuh.userptr  = userbuf;
5722 <    nuh.hostptr  = hostbuf;
5721 >    nuh.userptr  = block_state.user.buf;
5722 >    nuh.hostptr  = block_state.host.buf;
5723  
5724      nuh.nicksize = 0;
5725 <    nuh.usersize = sizeof(userbuf);
5726 <    nuh.hostsize = sizeof(hostbuf);
5725 >    nuh.usersize = sizeof(block_state.user.buf);
5726 >    nuh.hostsize = sizeof(block_state.host.buf);
5727  
5728      split_nuh(&nuh);
5729    }
5730   }
5731      break;
5732  
5733 <  case 399:
5734 < /* Line 1813 of yacc.c  */
5735 < #line 2341 "conf_parser.y"
5733 >  case 424:
5734 > /* Line 1787 of yacc.c  */
5735 > #line 2257 "conf_parser.y"
5736      {
5737    if (conf_parser_ctx.pass == 2)
5738 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5738 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5739   }
5740      break;
5741  
5742 <  case 400:
5743 < /* Line 1813 of yacc.c  */
5744 < #line 2350 "conf_parser.y"
5742 >  case 425:
5743 > /* Line 1787 of yacc.c  */
5744 > #line 2266 "conf_parser.y"
5745      {
5746    if (conf_parser_ctx.pass == 2)
5747 <    hostbuf[0] = reasonbuf[0] = '\0';
5747 >    reset_block_state();
5748   }
5749      break;
5750  
5751 <  case 401:
5752 < /* Line 1813 of yacc.c  */
5753 < #line 2354 "conf_parser.y"
5751 >  case 426:
5752 > /* Line 1787 of yacc.c  */
5753 > #line 2270 "conf_parser.y"
5754      {
5755 <  if (conf_parser_ctx.pass == 2)
5755 >  struct MaskItem *conf = NULL;
5756 >
5757 >  if (conf_parser_ctx.pass != 2)
5758 >    break;
5759 >
5760 >  if (!block_state.addr.buf[0])
5761 >    break;
5762 >
5763 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5764    {
5765 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5766 <    {
5785 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5786 <      DupString(yy_aconf->host, hostbuf);
5787 <      SetConfMain(yy_aconf);
5765 >    conf = conf_make(CONF_DLINE);
5766 >    conf->host = xstrdup(block_state.addr.buf);
5767  
5768 <      if (reasonbuf[0])
5769 <        DupString(yy_aconf->reason, reasonbuf);
5770 <      else
5771 <        DupString(yy_aconf->reason, "No reason");
5772 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5794 <      yy_aconf = NULL;
5795 <    }
5768 >    if (block_state.rpass.buf[0])
5769 >      conf->reason = xstrdup(block_state.rpass.buf);
5770 >    else
5771 >      conf->reason = xstrdup(CONF_NOREASON);
5772 >    add_conf_by_address(CONF_DLINE, conf);
5773    }
5774   }
5775      break;
5776  
5777 <  case 407:
5778 < /* Line 1813 of yacc.c  */
5779 < #line 2377 "conf_parser.y"
5777 >  case 432:
5778 > /* Line 1787 of yacc.c  */
5779 > #line 2296 "conf_parser.y"
5780      {
5781    if (conf_parser_ctx.pass == 2)
5782 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5782 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5783   }
5784      break;
5785  
5786 <  case 408:
5787 < /* Line 1813 of yacc.c  */
5788 < #line 2383 "conf_parser.y"
5786 >  case 433:
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2302 "conf_parser.y"
5789      {
5790    if (conf_parser_ctx.pass == 2)
5791 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5792   }
5793      break;
5794  
5795 <  case 414:
5796 < /* Line 1813 of yacc.c  */
5797 < #line 2397 "conf_parser.y"
5795 >  case 439:
5796 > /* Line 1787 of yacc.c  */
5797 > #line 2316 "conf_parser.y"
5798      {
5799    if (conf_parser_ctx.pass == 2)
5800    {
5801      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5802      {
5803 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5804 <      DupString(yy_aconf->host, yylval.string);
5803 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5804 >      conf->host = xstrdup(yylval.string);
5805  
5806 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5830 <      yy_aconf = NULL;
5806 >      add_conf_by_address(CONF_EXEMPT, conf);
5807      }
5808    }
5809   }
5810      break;
5811  
5812 <  case 415:
5813 < /* Line 1813 of yacc.c  */
5814 < #line 2415 "conf_parser.y"
5812 >  case 440:
5813 > /* Line 1787 of yacc.c  */
5814 > #line 2333 "conf_parser.y"
5815      {
5816    if (conf_parser_ctx.pass == 2)
5817 <  {
5842 <    regex_ban = 0;
5843 <    reasonbuf[0] = gecos_name[0] = '\0';
5844 <  }
5817 >    reset_block_state();
5818   }
5819      break;
5820  
5821 <  case 416:
5822 < /* Line 1813 of yacc.c  */
5823 < #line 2422 "conf_parser.y"
5821 >  case 441:
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2337 "conf_parser.y"
5824      {
5825 <  if (conf_parser_ctx.pass == 2)
5853 <  {
5854 <    if (gecos_name[0])
5855 <    {
5856 <      if (regex_ban)
5857 <      {
5858 < #ifdef HAVE_LIBPCRE
5859 <        void *exp_p = NULL;
5860 <        const char *errptr = NULL;
5861 <
5862 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5863 <        {
5864 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5865 <               errptr);
5866 <          break;
5867 <        }
5868 <
5869 <        yy_conf = make_conf_item(RXLINE_TYPE);
5870 <        yy_conf->regexpname = exp_p;
5871 < #else
5872 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5873 <        break;
5874 < #endif
5875 <      }
5876 <      else
5877 <        yy_conf = make_conf_item(XLINE_TYPE);
5825 >  struct MaskItem *conf = NULL;
5826  
5827 <      SetConfMain(yy_conf);
5880 <      yy_match_item = map_to_conf(yy_conf);
5881 <      DupString(yy_conf->name, gecos_name);
5882 <
5883 <      if (reasonbuf[0])
5884 <        DupString(yy_match_item->reason, reasonbuf);
5885 <      else
5886 <        DupString(yy_match_item->reason, "No reason");
5887 <    }
5888 <  }
5889 < }
5827 >  if (conf_parser_ctx.pass != 2)
5828      break;
5829  
5830 <  case 417:
5893 < /* Line 1813 of yacc.c  */
5894 < #line 2463 "conf_parser.y"
5895 <    {
5896 < }
5830 >  if (!block_state.name.buf[0])
5831      break;
5832  
5833 <  case 421:
5834 < /* Line 1813 of yacc.c  */
5835 < #line 2468 "conf_parser.y"
5836 <    {
5837 <  if (conf_parser_ctx.pass == 2)
5838 <    regex_ban = 1;
5833 >  conf = conf_make(CONF_XLINE);
5834 >  conf->name = xstrdup(block_state.name.buf);
5835 >
5836 >  if (block_state.rpass.buf[0])
5837 >    conf->reason = xstrdup(block_state.rpass.buf);
5838 >  else
5839 >    conf->reason = xstrdup(CONF_NOREASON);
5840   }
5841      break;
5842  
5843 <  case 428:
5844 < /* Line 1813 of yacc.c  */
5845 < #line 2477 "conf_parser.y"
5843 >  case 447:
5844 > /* Line 1787 of yacc.c  */
5845 > #line 2359 "conf_parser.y"
5846      {
5847    if (conf_parser_ctx.pass == 2)
5848 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5848 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5849   }
5850      break;
5851  
5852 <  case 429:
5853 < /* Line 1813 of yacc.c  */
5854 < #line 2483 "conf_parser.y"
5852 >  case 448:
5853 > /* Line 1787 of yacc.c  */
5854 > #line 2365 "conf_parser.y"
5855      {
5856    if (conf_parser_ctx.pass == 2)
5857 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5857 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5858   }
5859      break;
5860  
5861 <  case 483:
5862 < /* Line 1813 of yacc.c  */
5863 < #line 2528 "conf_parser.y"
5861 >  case 500:
5862 > /* Line 1787 of yacc.c  */
5863 > #line 2408 "conf_parser.y"
5864      {
5865    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869 <  case 484:
5870 < /* Line 1813 of yacc.c  */
5871 < #line 2533 "conf_parser.y"
5869 >  case 501:
5870 > /* Line 1787 of yacc.c  */
5871 > #line 2413 "conf_parser.y"
5872      {
5873    if (conf_parser_ctx.pass == 2)
5874      ConfigFileEntry.glines = yylval.number;
5875   }
5876      break;
5877  
5878 <  case 485:
5879 < /* Line 1813 of yacc.c  */
5880 < #line 2539 "conf_parser.y"
5878 >  case 502:
5879 > /* Line 1787 of yacc.c  */
5880 > #line 2419 "conf_parser.y"
5881      {
5882    if (conf_parser_ctx.pass == 2)
5883      ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5884   }
5885      break;
5886  
5887 <  case 486:
5888 < /* Line 1813 of yacc.c  */
5889 < #line 2545 "conf_parser.y"
5887 >  case 503:
5888 > /* Line 1787 of yacc.c  */
5889 > #line 2425 "conf_parser.y"
5890      {
5891    if (conf_parser_ctx.pass == 2)
5892      ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5893   }
5894      break;
5895  
5896 <  case 487:
5897 < /* Line 1813 of yacc.c  */
5898 < #line 2551 "conf_parser.y"
5896 >  case 504:
5897 > /* Line 1787 of yacc.c  */
5898 > #line 2431 "conf_parser.y"
5899      {
5900    ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5901   }
5902      break;
5903  
5904 <  case 488:
5905 < /* Line 1813 of yacc.c  */
5906 < #line 2556 "conf_parser.y"
5904 >  case 505:
5905 > /* Line 1787 of yacc.c  */
5906 > #line 2436 "conf_parser.y"
5907      {
5908    ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5909   }
5910      break;
5911  
5912 <  case 489:
5913 < /* Line 1813 of yacc.c  */
5914 < #line 2561 "conf_parser.y"
5912 >  case 506:
5913 > /* Line 1787 of yacc.c  */
5914 > #line 2441 "conf_parser.y"
5915      {
5916    ConfigFileEntry.tkline_expire_notices = yylval.number;
5917   }
5918      break;
5919  
5920 <  case 490:
5921 < /* Line 1813 of yacc.c  */
5922 < #line 2566 "conf_parser.y"
5920 >  case 507:
5921 > /* Line 1787 of yacc.c  */
5922 > #line 2446 "conf_parser.y"
5923      {
5924    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5925   }
5926      break;
5927  
5928 <  case 491:
5929 < /* Line 1813 of yacc.c  */
5930 < #line 2571 "conf_parser.y"
5928 >  case 508:
5929 > /* Line 1787 of yacc.c  */
5930 > #line 2451 "conf_parser.y"
5931      {
5932    ConfigFileEntry.hide_spoof_ips = yylval.number;
5933   }
5934      break;
5935  
5936 <  case 492:
5937 < /* Line 1813 of yacc.c  */
5938 < #line 2576 "conf_parser.y"
5936 >  case 509:
5937 > /* Line 1787 of yacc.c  */
5938 > #line 2456 "conf_parser.y"
5939      {
5940    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5941   }
5942      break;
5943  
5944 <  case 493:
5945 < /* Line 1813 of yacc.c  */
5946 < #line 2581 "conf_parser.y"
6012 <    {
6013 <  ConfigFileEntry.disable_remote = yylval.number;
6014 < }
6015 <    break;
6016 <
6017 <  case 494:
6018 < /* Line 1813 of yacc.c  */
6019 < #line 2586 "conf_parser.y"
5944 >  case 510:
5945 > /* Line 1787 of yacc.c  */
5946 > #line 2461 "conf_parser.y"
5947      {
5948    ConfigFileEntry.failed_oper_notice = yylval.number;
5949   }
5950      break;
5951  
5952 <  case 495:
5953 < /* Line 1813 of yacc.c  */
5954 < #line 2591 "conf_parser.y"
5952 >  case 511:
5953 > /* Line 1787 of yacc.c  */
5954 > #line 2466 "conf_parser.y"
5955      {
5956    ConfigFileEntry.anti_nick_flood = yylval.number;
5957   }
5958      break;
5959  
5960 <  case 496:
5961 < /* Line 1813 of yacc.c  */
5962 < #line 2596 "conf_parser.y"
5960 >  case 512:
5961 > /* Line 1787 of yacc.c  */
5962 > #line 2471 "conf_parser.y"
5963      {
5964    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5965   }
5966      break;
5967  
5968 <  case 497:
5969 < /* Line 1813 of yacc.c  */
5970 < #line 2601 "conf_parser.y"
5968 >  case 513:
5969 > /* Line 1787 of yacc.c  */
5970 > #line 2476 "conf_parser.y"
5971      {
5972    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5973   }
5974      break;
5975  
5976 <  case 498:
5977 < /* Line 1813 of yacc.c  */
5978 < #line 2606 "conf_parser.y"
5976 >  case 514:
5977 > /* Line 1787 of yacc.c  */
5978 > #line 2481 "conf_parser.y"
5979      {
5980    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5981   }
5982      break;
5983  
5984 <  case 499:
5985 < /* Line 1813 of yacc.c  */
5986 < #line 2611 "conf_parser.y"
5984 >  case 515:
5985 > /* Line 1787 of yacc.c  */
5986 > #line 2486 "conf_parser.y"
5987      {
5988    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5989   }
5990      break;
5991  
5992 <  case 500:
5993 < /* Line 1813 of yacc.c  */
5994 < #line 2616 "conf_parser.y"
5992 >  case 516:
5993 > /* Line 1787 of yacc.c  */
5994 > #line 2491 "conf_parser.y"
5995      {
5996    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5997   }
5998      break;
5999  
6000 <  case 501:
6001 < /* Line 1813 of yacc.c  */
6002 < #line 2621 "conf_parser.y"
6000 >  case 517:
6001 > /* Line 1787 of yacc.c  */
6002 > #line 2496 "conf_parser.y"
6003      {
6004    if (conf_parser_ctx.pass == 2)
6005      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6006   }
6007      break;
6008  
6009 <  case 502:
6010 < /* Line 1813 of yacc.c  */
6011 < #line 2627 "conf_parser.y"
6009 >  case 518:
6010 > /* Line 1787 of yacc.c  */
6011 > #line 2502 "conf_parser.y"
6012      {
6013    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6014    {
# Line 6093 | Line 6020 | yyreduce:
6020   }
6021      break;
6022  
6023 <  case 503:
6024 < /* Line 1813 of yacc.c  */
6025 < #line 2638 "conf_parser.y"
6023 >  case 519:
6024 > /* Line 1787 of yacc.c  */
6025 > #line 2513 "conf_parser.y"
6026      {
6027    ConfigFileEntry.invisible_on_connect = yylval.number;
6028   }
6029      break;
6030  
6031 <  case 504:
6032 < /* Line 1813 of yacc.c  */
6033 < #line 2643 "conf_parser.y"
6031 >  case 520:
6032 > /* Line 1787 of yacc.c  */
6033 > #line 2518 "conf_parser.y"
6034      {
6035    ConfigFileEntry.warn_no_nline = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 505:
6040 < /* Line 1813 of yacc.c  */
6041 < #line 2648 "conf_parser.y"
6039 >  case 521:
6040 > /* Line 1787 of yacc.c  */
6041 > #line 2523 "conf_parser.y"
6042      {
6043    ConfigFileEntry.stats_e_disabled = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 506:
6048 < /* Line 1813 of yacc.c  */
6049 < #line 2653 "conf_parser.y"
6047 >  case 522:
6048 > /* Line 1787 of yacc.c  */
6049 > #line 2528 "conf_parser.y"
6050      {
6051    ConfigFileEntry.stats_o_oper_only = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 507:
6056 < /* Line 1813 of yacc.c  */
6057 < #line 2658 "conf_parser.y"
6055 >  case 523:
6056 > /* Line 1787 of yacc.c  */
6057 > #line 2533 "conf_parser.y"
6058      {
6059    ConfigFileEntry.stats_P_oper_only = yylval.number;
6060   }
6061      break;
6062  
6063 <  case 508:
6064 < /* Line 1813 of yacc.c  */
6065 < #line 2663 "conf_parser.y"
6063 >  case 524:
6064 > /* Line 1787 of yacc.c  */
6065 > #line 2538 "conf_parser.y"
6066      {
6067    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6068   }
6069      break;
6070  
6071 <  case 509:
6072 < /* Line 1813 of yacc.c  */
6073 < #line 2666 "conf_parser.y"
6071 >  case 525:
6072 > /* Line 1787 of yacc.c  */
6073 > #line 2541 "conf_parser.y"
6074      {
6075    ConfigFileEntry.stats_k_oper_only = 1;
6076   }
6077      break;
6078  
6079 <  case 510:
6080 < /* Line 1813 of yacc.c  */
6081 < #line 2671 "conf_parser.y"
6079 >  case 526:
6080 > /* Line 1787 of yacc.c  */
6081 > #line 2546 "conf_parser.y"
6082      {
6083    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6084   }
6085      break;
6086  
6087 <  case 511:
6088 < /* Line 1813 of yacc.c  */
6089 < #line 2674 "conf_parser.y"
6087 >  case 527:
6088 > /* Line 1787 of yacc.c  */
6089 > #line 2549 "conf_parser.y"
6090      {
6091    ConfigFileEntry.stats_i_oper_only = 1;
6092   }
6093      break;
6094  
6095 <  case 512:
6096 < /* Line 1813 of yacc.c  */
6097 < #line 2679 "conf_parser.y"
6095 >  case 528:
6096 > /* Line 1787 of yacc.c  */
6097 > #line 2554 "conf_parser.y"
6098      {
6099    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6100   }
6101      break;
6102  
6103 <  case 513:
6104 < /* Line 1813 of yacc.c  */
6105 < #line 2684 "conf_parser.y"
6103 >  case 529:
6104 > /* Line 1787 of yacc.c  */
6105 > #line 2559 "conf_parser.y"
6106      {
6107    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6108   }
6109      break;
6110  
6111 <  case 514:
6112 < /* Line 1813 of yacc.c  */
6113 < #line 2689 "conf_parser.y"
6111 >  case 530:
6112 > /* Line 1787 of yacc.c  */
6113 > #line 2564 "conf_parser.y"
6114      {
6115    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6116   }
6117      break;
6118  
6119 <  case 515:
6120 < /* Line 1813 of yacc.c  */
6121 < #line 2694 "conf_parser.y"
6119 >  case 531:
6120 > /* Line 1787 of yacc.c  */
6121 > #line 2569 "conf_parser.y"
6122      {
6123    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6124   }
6125      break;
6126  
6127 <  case 516:
6128 < /* Line 1813 of yacc.c  */
6129 < #line 2699 "conf_parser.y"
6127 >  case 532:
6128 > /* Line 1787 of yacc.c  */
6129 > #line 2574 "conf_parser.y"
6130      {
6131    ConfigFileEntry.short_motd = yylval.number;
6132   }
6133      break;
6134  
6135 <  case 517:
6136 < /* Line 1813 of yacc.c  */
6137 < #line 2704 "conf_parser.y"
6135 >  case 533:
6136 > /* Line 1787 of yacc.c  */
6137 > #line 2579 "conf_parser.y"
6138      {
6139    ConfigFileEntry.no_oper_flood = yylval.number;
6140   }
6141      break;
6142  
6143 <  case 518:
6144 < /* Line 1813 of yacc.c  */
6145 < #line 2709 "conf_parser.y"
6143 >  case 534:
6144 > /* Line 1787 of yacc.c  */
6145 > #line 2584 "conf_parser.y"
6146      {
6147    ConfigFileEntry.true_no_oper_flood = yylval.number;
6148   }
6149      break;
6150  
6151 <  case 519:
6152 < /* Line 1813 of yacc.c  */
6153 < #line 2714 "conf_parser.y"
6151 >  case 535:
6152 > /* Line 1787 of yacc.c  */
6153 > #line 2589 "conf_parser.y"
6154      {
6155    ConfigFileEntry.oper_pass_resv = yylval.number;
6156   }
6157      break;
6158  
6159 <  case 520:
6160 < /* Line 1813 of yacc.c  */
6161 < #line 2719 "conf_parser.y"
6235 <    {
6236 <  if (conf_parser_ctx.pass == 2)
6237 <  {
6238 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6239 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6240 <
6241 <    set_locale(yylval.string);
6242 <  }
6243 < }
6244 <    break;
6245 <
6246 <  case 521:
6247 < /* Line 1813 of yacc.c  */
6248 < #line 2730 "conf_parser.y"
6159 >  case 536:
6160 > /* Line 1787 of yacc.c  */
6161 > #line 2594 "conf_parser.y"
6162      {
6163    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6164   }
6165      break;
6166  
6167 <  case 522:
6168 < /* Line 1813 of yacc.c  */
6169 < #line 2735 "conf_parser.y"
6167 >  case 537:
6168 > /* Line 1787 of yacc.c  */
6169 > #line 2599 "conf_parser.y"
6170      {
6171    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6172   }
6173      break;
6174  
6175 <  case 523:
6176 < /* Line 1813 of yacc.c  */
6177 < #line 2740 "conf_parser.y"
6175 >  case 538:
6176 > /* Line 1787 of yacc.c  */
6177 > #line 2604 "conf_parser.y"
6178      {
6179    ConfigFileEntry.use_egd = yylval.number;
6180   }
6181      break;
6182  
6183 <  case 524:
6184 < /* Line 1813 of yacc.c  */
6185 < #line 2745 "conf_parser.y"
6183 >  case 539:
6184 > /* Line 1787 of yacc.c  */
6185 > #line 2609 "conf_parser.y"
6186      {
6187    if (conf_parser_ctx.pass == 2)
6188    {
6189      MyFree(ConfigFileEntry.egdpool_path);
6190 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6190 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6191    }
6192   }
6193      break;
6194  
6195 <  case 525:
6196 < /* Line 1813 of yacc.c  */
6197 < #line 2754 "conf_parser.y"
6195 >  case 540:
6196 > /* Line 1787 of yacc.c  */
6197 > #line 2618 "conf_parser.y"
6198      {
6199    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6200    {
6201      MyFree(ConfigFileEntry.service_name);
6202 <    DupString(ConfigFileEntry.service_name, yylval.string);
6202 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6203    }
6204   }
6205      break;
6206  
6207 <  case 526:
6208 < /* Line 1813 of yacc.c  */
6209 < #line 2763 "conf_parser.y"
6207 >  case 541:
6208 > /* Line 1787 of yacc.c  */
6209 > #line 2627 "conf_parser.y"
6210      {
6211    ConfigFileEntry.ping_cookie = yylval.number;
6212   }
6213      break;
6214  
6215 <  case 527:
6216 < /* Line 1813 of yacc.c  */
6217 < #line 2768 "conf_parser.y"
6215 >  case 542:
6216 > /* Line 1787 of yacc.c  */
6217 > #line 2632 "conf_parser.y"
6218      {
6219    ConfigFileEntry.disable_auth = yylval.number;
6220   }
6221      break;
6222  
6223 <  case 528:
6224 < /* Line 1813 of yacc.c  */
6225 < #line 2773 "conf_parser.y"
6223 >  case 543:
6224 > /* Line 1787 of yacc.c  */
6225 > #line 2637 "conf_parser.y"
6226      {
6227    ConfigFileEntry.throttle_time = yylval.number;
6228   }
6229      break;
6230  
6231 <  case 529:
6232 < /* Line 1813 of yacc.c  */
6233 < #line 2778 "conf_parser.y"
6231 >  case 544:
6232 > /* Line 1787 of yacc.c  */
6233 > #line 2642 "conf_parser.y"
6234      {
6235    ConfigFileEntry.oper_umodes = 0;
6236   }
6237      break;
6238  
6239 <  case 533:
6240 < /* Line 1813 of yacc.c  */
6241 < #line 2784 "conf_parser.y"
6239 >  case 548:
6240 > /* Line 1787 of yacc.c  */
6241 > #line 2648 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6244   }
6245      break;
6246  
6247 <  case 534:
6248 < /* Line 1813 of yacc.c  */
6249 < #line 2787 "conf_parser.y"
6247 >  case 549:
6248 > /* Line 1787 of yacc.c  */
6249 > #line 2651 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6252   }
6253      break;
6254  
6255 <  case 535:
6256 < /* Line 1813 of yacc.c  */
6257 < #line 2790 "conf_parser.y"
6345 <    {
6346 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6347 < }
6348 <    break;
6349 <
6350 <  case 536:
6351 < /* Line 1813 of yacc.c  */
6352 < #line 2793 "conf_parser.y"
6255 >  case 550:
6256 > /* Line 1787 of yacc.c  */
6257 > #line 2654 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6260   }
6261      break;
6262  
6263 <  case 537:
6264 < /* Line 1813 of yacc.c  */
6265 < #line 2796 "conf_parser.y"
6263 >  case 551:
6264 > /* Line 1787 of yacc.c  */
6265 > #line 2657 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6268   }
6269      break;
6270  
6271 <  case 538:
6272 < /* Line 1813 of yacc.c  */
6273 < #line 2799 "conf_parser.y"
6271 >  case 552:
6272 > /* Line 1787 of yacc.c  */
6273 > #line 2660 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6276   }
6277      break;
6278  
6279 <  case 539:
6280 < /* Line 1813 of yacc.c  */
6281 < #line 2802 "conf_parser.y"
6279 >  case 553:
6280 > /* Line 1787 of yacc.c  */
6281 > #line 2663 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6284   }
6285      break;
6286  
6287 <  case 540:
6288 < /* Line 1813 of yacc.c  */
6289 < #line 2805 "conf_parser.y"
6287 >  case 554:
6288 > /* Line 1787 of yacc.c  */
6289 > #line 2666 "conf_parser.y"
6290      {
6291    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6292   }
6293      break;
6294  
6295 <  case 541:
6296 < /* Line 1813 of yacc.c  */
6297 < #line 2808 "conf_parser.y"
6295 >  case 555:
6296 > /* Line 1787 of yacc.c  */
6297 > #line 2669 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6300   }
6301      break;
6302  
6303 <  case 542:
6304 < /* Line 1813 of yacc.c  */
6305 < #line 2811 "conf_parser.y"
6303 >  case 556:
6304 > /* Line 1787 of yacc.c  */
6305 > #line 2672 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6308   }
6309      break;
6310  
6311 <  case 543:
6312 < /* Line 1813 of yacc.c  */
6313 < #line 2814 "conf_parser.y"
6311 >  case 557:
6312 > /* Line 1787 of yacc.c  */
6313 > #line 2675 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6316   }
6317      break;
6318  
6319 <  case 544:
6320 < /* Line 1813 of yacc.c  */
6321 < #line 2817 "conf_parser.y"
6319 >  case 558:
6320 > /* Line 1787 of yacc.c  */
6321 > #line 2678 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6324   }
6325      break;
6326  
6327 <  case 545:
6328 < /* Line 1813 of yacc.c  */
6329 < #line 2820 "conf_parser.y"
6327 >  case 559:
6328 > /* Line 1787 of yacc.c  */
6329 > #line 2681 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6332   }
6333      break;
6334  
6335 <  case 546:
6336 < /* Line 1813 of yacc.c  */
6337 < #line 2823 "conf_parser.y"
6335 >  case 560:
6336 > /* Line 1787 of yacc.c  */
6337 > #line 2684 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6340   }
6341      break;
6342  
6343 <  case 547:
6344 < /* Line 1813 of yacc.c  */
6345 < #line 2826 "conf_parser.y"
6343 >  case 561:
6344 > /* Line 1787 of yacc.c  */
6345 > #line 2687 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6348   }
6349      break;
6350  
6351 <  case 548:
6352 < /* Line 1813 of yacc.c  */
6353 < #line 2829 "conf_parser.y"
6351 >  case 562:
6352 > /* Line 1787 of yacc.c  */
6353 > #line 2690 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6356   }
6357      break;
6358  
6359 <  case 549:
6360 < /* Line 1813 of yacc.c  */
6361 < #line 2832 "conf_parser.y"
6359 >  case 563:
6360 > /* Line 1787 of yacc.c  */
6361 > #line 2693 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6364   }
6365      break;
6366  
6367 <  case 550:
6368 < /* Line 1813 of yacc.c  */
6369 < #line 2835 "conf_parser.y"
6367 >  case 564:
6368 > /* Line 1787 of yacc.c  */
6369 > #line 2696 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6372   }
6373      break;
6374  
6375 <  case 551:
6376 < /* Line 1813 of yacc.c  */
6377 < #line 2838 "conf_parser.y"
6375 >  case 565:
6376 > /* Line 1787 of yacc.c  */
6377 > #line 2699 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6380   }
6381      break;
6382  
6383 <  case 552:
6384 < /* Line 1813 of yacc.c  */
6385 < #line 2841 "conf_parser.y"
6383 >  case 566:
6384 > /* Line 1787 of yacc.c  */
6385 > #line 2702 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6388   }
6389      break;
6390  
6391 <  case 553:
6392 < /* Line 1813 of yacc.c  */
6393 < #line 2846 "conf_parser.y"
6391 >  case 567:
6392 > /* Line 1787 of yacc.c  */
6393 > #line 2705 "conf_parser.y"
6394      {
6395 <  ConfigFileEntry.oper_only_umodes = 0;
6395 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6396   }
6397      break;
6398  
6399 <  case 557:
6400 < /* Line 1813 of yacc.c  */
6401 < #line 2852 "conf_parser.y"
6399 >  case 568:
6400 > /* Line 1787 of yacc.c  */
6401 > #line 2708 "conf_parser.y"
6402      {
6403 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6403 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6404   }
6405      break;
6406  
6407 <  case 558:
6408 < /* Line 1813 of yacc.c  */
6409 < #line 2855 "conf_parser.y"
6407 >  case 569:
6408 > /* Line 1787 of yacc.c  */
6409 > #line 2713 "conf_parser.y"
6410      {
6411 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6411 >  ConfigFileEntry.oper_only_umodes = 0;
6412   }
6413      break;
6414  
6415 <  case 559:
6416 < /* Line 1813 of yacc.c  */
6417 < #line 2858 "conf_parser.y"
6415 >  case 573:
6416 > /* Line 1787 of yacc.c  */
6417 > #line 2719 "conf_parser.y"
6418      {
6419 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6419 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6420   }
6421      break;
6422  
6423 <  case 560:
6424 < /* Line 1813 of yacc.c  */
6425 < #line 2861 "conf_parser.y"
6423 >  case 574:
6424 > /* Line 1787 of yacc.c  */
6425 > #line 2722 "conf_parser.y"
6426 >    {
6427 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6428 > }
6429 >    break;
6430 >
6431 >  case 575:
6432 > /* Line 1787 of yacc.c  */
6433 > #line 2725 "conf_parser.y"
6434      {
6435    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6436   }
6437      break;
6438  
6439 <  case 561:
6440 < /* Line 1813 of yacc.c  */
6441 < #line 2864 "conf_parser.y"
6439 >  case 576:
6440 > /* Line 1787 of yacc.c  */
6441 > #line 2728 "conf_parser.y"
6442      {
6443    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6444   }
6445      break;
6446  
6447 <  case 562:
6448 < /* Line 1813 of yacc.c  */
6449 < #line 2867 "conf_parser.y"
6447 >  case 577:
6448 > /* Line 1787 of yacc.c  */
6449 > #line 2731 "conf_parser.y"
6450      {
6451    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6452   }
6453      break;
6454  
6455 <  case 563:
6456 < /* Line 1813 of yacc.c  */
6457 < #line 2870 "conf_parser.y"
6455 >  case 578:
6456 > /* Line 1787 of yacc.c  */
6457 > #line 2734 "conf_parser.y"
6458      {
6459    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6460   }
6461      break;
6462  
6463 <  case 564:
6464 < /* Line 1813 of yacc.c  */
6465 < #line 2873 "conf_parser.y"
6463 >  case 579:
6464 > /* Line 1787 of yacc.c  */
6465 > #line 2737 "conf_parser.y"
6466      {
6467    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6468   }
6469      break;
6470  
6471 <  case 565:
6472 < /* Line 1813 of yacc.c  */
6473 < #line 2876 "conf_parser.y"
6471 >  case 580:
6472 > /* Line 1787 of yacc.c  */
6473 > #line 2740 "conf_parser.y"
6474      {
6475    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6476   }
6477      break;
6478  
6479 <  case 566:
6480 < /* Line 1813 of yacc.c  */
6481 < #line 2879 "conf_parser.y"
6479 >  case 581:
6480 > /* Line 1787 of yacc.c  */
6481 > #line 2743 "conf_parser.y"
6482      {
6483    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6484   }
6485      break;
6486  
6487 <  case 567:
6488 < /* Line 1813 of yacc.c  */
6489 < #line 2882 "conf_parser.y"
6487 >  case 582:
6488 > /* Line 1787 of yacc.c  */
6489 > #line 2746 "conf_parser.y"
6490      {
6491    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6492   }
6493      break;
6494  
6495 <  case 568:
6496 < /* Line 1813 of yacc.c  */
6497 < #line 2885 "conf_parser.y"
6495 >  case 583:
6496 > /* Line 1787 of yacc.c  */
6497 > #line 2749 "conf_parser.y"
6498      {
6499    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6500   }
6501      break;
6502  
6503 <  case 569:
6504 < /* Line 1813 of yacc.c  */
6505 < #line 2888 "conf_parser.y"
6503 >  case 584:
6504 > /* Line 1787 of yacc.c  */
6505 > #line 2752 "conf_parser.y"
6506      {
6507    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6508   }
6509      break;
6510  
6511 <  case 570:
6512 < /* Line 1813 of yacc.c  */
6513 < #line 2891 "conf_parser.y"
6511 >  case 585:
6512 > /* Line 1787 of yacc.c  */
6513 > #line 2755 "conf_parser.y"
6514      {
6515    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6516   }
6517      break;
6518  
6519 <  case 571:
6520 < /* Line 1813 of yacc.c  */
6521 < #line 2894 "conf_parser.y"
6519 >  case 586:
6520 > /* Line 1787 of yacc.c  */
6521 > #line 2758 "conf_parser.y"
6522      {
6523    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6524   }
6525      break;
6526  
6527 <  case 572:
6528 < /* Line 1813 of yacc.c  */
6529 < #line 2897 "conf_parser.y"
6527 >  case 587:
6528 > /* Line 1787 of yacc.c  */
6529 > #line 2761 "conf_parser.y"
6530      {
6531    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6532   }
6533      break;
6534  
6535 <  case 573:
6536 < /* Line 1813 of yacc.c  */
6537 < #line 2900 "conf_parser.y"
6535 >  case 588:
6536 > /* Line 1787 of yacc.c  */
6537 > #line 2764 "conf_parser.y"
6538      {
6539    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6540   }
6541      break;
6542  
6543 <  case 574:
6544 < /* Line 1813 of yacc.c  */
6545 < #line 2903 "conf_parser.y"
6543 >  case 589:
6544 > /* Line 1787 of yacc.c  */
6545 > #line 2767 "conf_parser.y"
6546      {
6547    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6548   }
6549      break;
6550  
6551 <  case 575:
6552 < /* Line 1813 of yacc.c  */
6553 < #line 2906 "conf_parser.y"
6551 >  case 590:
6552 > /* Line 1787 of yacc.c  */
6553 > #line 2770 "conf_parser.y"
6554      {
6555    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6556   }
6557      break;
6558  
6559 <  case 576:
6560 < /* Line 1813 of yacc.c  */
6561 < #line 2909 "conf_parser.y"
6559 >  case 591:
6560 > /* Line 1787 of yacc.c  */
6561 > #line 2773 "conf_parser.y"
6562      {
6563    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6564   }
6565      break;
6566  
6567 <  case 577:
6568 < /* Line 1813 of yacc.c  */
6569 < #line 2914 "conf_parser.y"
6567 >  case 592:
6568 > /* Line 1787 of yacc.c  */
6569 > #line 2776 "conf_parser.y"
6570      {
6571 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6571 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6572   }
6573      break;
6574  
6575 <  case 578:
6576 < /* Line 1813 of yacc.c  */
6577 < #line 2919 "conf_parser.y"
6575 >  case 593:
6576 > /* Line 1787 of yacc.c  */
6577 > #line 2779 "conf_parser.y"
6578      {
6579 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6579 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6580   }
6581      break;
6582  
6583 <  case 579:
6584 < /* Line 1813 of yacc.c  */
6585 < #line 2924 "conf_parser.y"
6583 >  case 594:
6584 > /* Line 1787 of yacc.c  */
6585 > #line 2784 "conf_parser.y"
6586      {
6587 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6587 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6588   }
6589      break;
6590  
6591 <  case 598:
6592 < /* Line 1813 of yacc.c  */
6593 < #line 2947 "conf_parser.y"
6591 >  case 595:
6592 > /* Line 1787 of yacc.c  */
6593 > #line 2789 "conf_parser.y"
6594      {
6595 <  ConfigChannel.disable_fake_channels = yylval.number;
6595 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6596   }
6597      break;
6598  
6599 <  case 599:
6600 < /* Line 1813 of yacc.c  */
6601 < #line 2952 "conf_parser.y"
6599 >  case 596:
6600 > /* Line 1787 of yacc.c  */
6601 > #line 2794 "conf_parser.y"
6602      {
6603 <  ConfigChannel.restrict_channels = yylval.number;
6603 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6604   }
6605      break;
6606  
6607 <  case 600:
6608 < /* Line 1813 of yacc.c  */
6609 < #line 2957 "conf_parser.y"
6607 >  case 613:
6608 > /* Line 1787 of yacc.c  */
6609 > #line 2817 "conf_parser.y"
6610      {
6611 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6611 >  ConfigChannel.disable_fake_channels = yylval.number;
6612   }
6613      break;
6614  
6615 <  case 601:
6616 < /* Line 1813 of yacc.c  */
6617 < #line 2962 "conf_parser.y"
6615 >  case 614:
6616 > /* Line 1787 of yacc.c  */
6617 > #line 2822 "conf_parser.y"
6618      {
6619 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6619 >  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6620   }
6621      break;
6622  
6623 <  case 602:
6624 < /* Line 1813 of yacc.c  */
6625 < #line 2967 "conf_parser.y"
6623 >  case 615:
6624 > /* Line 1787 of yacc.c  */
6625 > #line 2827 "conf_parser.y"
6626      {
6627 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6627 >  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6628   }
6629      break;
6630  
6631 <  case 603:
6632 < /* Line 1813 of yacc.c  */
6633 < #line 2972 "conf_parser.y"
6631 >  case 616:
6632 > /* Line 1787 of yacc.c  */
6633 > #line 2832 "conf_parser.y"
6634      {
6635 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6635 >  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6636   }
6637      break;
6638  
6639 <  case 604:
6640 < /* Line 1813 of yacc.c  */
6641 < #line 2977 "conf_parser.y"
6639 >  case 617:
6640 > /* Line 1787 of yacc.c  */
6641 > #line 2837 "conf_parser.y"
6642      {
6643 <  ConfigChannel.quiet_on_ban = yylval.number;
6643 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6644   }
6645      break;
6646  
6647 <  case 605:
6648 < /* Line 1813 of yacc.c  */
6649 < #line 2982 "conf_parser.y"
6647 >  case 618:
6648 > /* Line 1787 of yacc.c  */
6649 > #line 2842 "conf_parser.y"
6650      {
6651    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6652   }
6653      break;
6654  
6655 <  case 606:
6656 < /* Line 1813 of yacc.c  */
6657 < #line 2987 "conf_parser.y"
6655 >  case 619:
6656 > /* Line 1787 of yacc.c  */
6657 > #line 2847 "conf_parser.y"
6658      {
6659    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6660   }
6661      break;
6662  
6663 <  case 607:
6664 < /* Line 1813 of yacc.c  */
6665 < #line 2992 "conf_parser.y"
6663 >  case 620:
6664 > /* Line 1787 of yacc.c  */
6665 > #line 2852 "conf_parser.y"
6666      {
6667    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6668   }
6669      break;
6670  
6671 <  case 608:
6672 < /* Line 1813 of yacc.c  */
6673 < #line 2997 "conf_parser.y"
6671 >  case 621:
6672 > /* Line 1787 of yacc.c  */
6673 > #line 2857 "conf_parser.y"
6674      {
6675    ConfigChannel.no_create_on_split = yylval.number;
6676   }
6677      break;
6678  
6679 <  case 609:
6680 < /* Line 1813 of yacc.c  */
6681 < #line 3002 "conf_parser.y"
6679 >  case 622:
6680 > /* Line 1787 of yacc.c  */
6681 > #line 2862 "conf_parser.y"
6682      {
6683    ConfigChannel.no_join_on_split = yylval.number;
6684   }
6685      break;
6686  
6687 <  case 610:
6688 < /* Line 1813 of yacc.c  */
6689 < #line 3007 "conf_parser.y"
6687 >  case 623:
6688 > /* Line 1787 of yacc.c  */
6689 > #line 2867 "conf_parser.y"
6690      {
6691    GlobalSetOptions.joinfloodcount = yylval.number;
6692   }
6693      break;
6694  
6695 <  case 611:
6696 < /* Line 1813 of yacc.c  */
6697 < #line 3012 "conf_parser.y"
6695 >  case 624:
6696 > /* Line 1787 of yacc.c  */
6697 > #line 2872 "conf_parser.y"
6698      {
6699    GlobalSetOptions.joinfloodtime = yylval.number;
6700   }
6701      break;
6702  
6703 <  case 622:
6704 < /* Line 1813 of yacc.c  */
6705 < #line 3030 "conf_parser.y"
6703 >  case 637:
6704 > /* Line 1787 of yacc.c  */
6705 > #line 2892 "conf_parser.y"
6706      {
6707    if (conf_parser_ctx.pass == 2)
6708      ConfigServerHide.flatten_links = yylval.number;
6709   }
6710      break;
6711  
6712 <  case 623:
6713 < /* Line 1813 of yacc.c  */
6714 < #line 3036 "conf_parser.y"
6712 >  case 638:
6713 > /* Line 1787 of yacc.c  */
6714 > #line 2898 "conf_parser.y"
6715 >    {
6716 >  if (conf_parser_ctx.pass == 2)
6717 >    ConfigServerHide.disable_remote_commands = yylval.number;
6718 > }
6719 >    break;
6720 >
6721 >  case 639:
6722 > /* Line 1787 of yacc.c  */
6723 > #line 2904 "conf_parser.y"
6724      {
6725    if (conf_parser_ctx.pass == 2)
6726      ConfigServerHide.hide_servers = yylval.number;
6727   }
6728      break;
6729  
6730 <  case 624:
6731 < /* Line 1813 of yacc.c  */
6732 < #line 3042 "conf_parser.y"
6730 >  case 640:
6731 > /* Line 1787 of yacc.c  */
6732 > #line 2910 "conf_parser.y"
6733 >    {
6734 >  if (conf_parser_ctx.pass == 2)
6735 >    ConfigServerHide.hide_services = yylval.number;
6736 > }
6737 >    break;
6738 >
6739 >  case 641:
6740 > /* Line 1787 of yacc.c  */
6741 > #line 2916 "conf_parser.y"
6742      {
6743    if (conf_parser_ctx.pass == 2)
6744    {
6745      MyFree(ConfigServerHide.hidden_name);
6746 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6746 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6747    }
6748   }
6749      break;
6750  
6751 <  case 625:
6752 < /* Line 1813 of yacc.c  */
6753 < #line 3051 "conf_parser.y"
6751 >  case 642:
6752 > /* Line 1787 of yacc.c  */
6753 > #line 2925 "conf_parser.y"
6754      {
6755    if (conf_parser_ctx.pass == 2)
6756    {
# Line 6834 | Line 6765 | yyreduce:
6765   }
6766      break;
6767  
6768 <  case 626:
6769 < /* Line 1813 of yacc.c  */
6770 < #line 3065 "conf_parser.y"
6768 >  case 643:
6769 > /* Line 1787 of yacc.c  */
6770 > #line 2939 "conf_parser.y"
6771      {
6772    if (conf_parser_ctx.pass == 2)
6773      ConfigServerHide.hidden = yylval.number;
6774   }
6775      break;
6776  
6777 <  case 627:
6778 < /* Line 1813 of yacc.c  */
6779 < #line 3071 "conf_parser.y"
6777 >  case 644:
6778 > /* Line 1787 of yacc.c  */
6779 > #line 2945 "conf_parser.y"
6780      {
6781    if (conf_parser_ctx.pass == 2)
6782      ConfigServerHide.hide_server_ips = yylval.number;
# Line 6853 | Line 6784 | yyreduce:
6784      break;
6785  
6786  
6787 < /* Line 1813 of yacc.c  */
6788 < #line 6858 "conf_parser.c"
6787 > /* Line 1787 of yacc.c  */
6788 > #line 6789 "conf_parser.c"
6789        default: break;
6790      }
6791    /* User semantic actions sometimes alter yychar, and that requires

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 2196 by michael, Tue Jun 4 18:30:12 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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