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-7.2/src/ircd_parser.c (file contents), Revision 978 by michael, Sun Aug 9 09:47:58 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1946 by michael, Sun May 5 10:21:40 2013 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
2  
3 < /* A Bison parser, made by GNU Bison 2.4.1.  */
3 <
4 < /* Skeleton implementation for Bison's Yacc-like parsers in C
3 > /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7 <   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 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "2.7.12-4996"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 60 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 189 of yacc.c  */
71 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
70   #include <sys/types.h>
71   #include <string.h>
72  
73 + #include "config.h"
74   #include "stdinc.h"
75   #include "ircd.h"
80 #include "tools.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
86 #include "pcre.h"
82   #include "irc_string.h"
88 #include "irc_getaddrinfo.h"
89 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 101 | Line 94
94   #include <openssl/rsa.h>
95   #include <openssl/bio.h>
96   #include <openssl/pem.h>
97 + #include <openssl/dh.h>
98   #endif
99  
100 < static char *class_name = NULL;
107 < static struct ConfItem *yy_conf = NULL;
108 < static struct AccessItem *yy_aconf = NULL;
109 < static struct MatchItem *yy_match_item = NULL;
110 < static struct ClassItem *yy_class = NULL;
111 < static char *yy_class_name = NULL;
112 <
113 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
115 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
116 < static unsigned int listener_flags = 0;
117 < static unsigned int regex_ban = 0;
118 < static char userbuf[IRCD_BUFSIZE];
119 < static char hostbuf[IRCD_BUFSIZE];
120 < static char reasonbuf[REASONLEN + 1];
121 < static char gecos_name[REALLEN * 4];
122 <
123 < extern dlink_list gdeny_items; /* XXX */
124 <
125 < static char *resv_reason = NULL;
126 < static char *listener_address = NULL;
127 < static int not_atom = 0;
100 > #include "rsa.h"
101  
102 < struct CollectItem
130 < {
131 <  dlink_node node;
132 <  char *name;
133 <  char *user;
134 <  char *host;
135 <  char *passwd;
136 <  int  port;
137 <  int  flags;
138 < #ifdef HAVE_LIBCRYPTO
139 <  char *rsa_public_key_file;
140 <  RSA *rsa_public_key;
141 < #endif
142 < };
102 > int yylex(void);
103  
104 < static void
145 < free_collect_item(struct CollectItem *item)
104 > static struct
105   {
106 <  MyFree(item->name);
107 <  MyFree(item->user);
108 <  MyFree(item->host);
109 <  MyFree(item->passwd);
110 < #ifdef HAVE_LIBCRYPTO
111 <  MyFree(item->rsa_public_key_file);
112 < #endif
113 <  MyFree(item);
114 < }
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    rpass,
122 >    spass,
123 >    class;
124 >
125 >  struct {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip,
135 >    con_freq,
136 >    min_idle,
137 >    max_idle,
138 >    max_total,
139 >    max_global,
140 >    max_local,
141 >    max_ident,
142 >    max_sendq,
143 >    max_recvq,
144 >    cidr_bitlen_ipv4,
145 >    cidr_bitlen_ipv6,
146 >    number_per_cidr;
147 > } block_state;
148  
149   static void
150 < unhook_hub_leaf_confs(void)
150 > reset_block_state(void)
151   {
152 <  dlink_node *ptr;
161 <  dlink_node *next_ptr;
162 <  struct CollectItem *yy_hconf;
163 <  struct CollectItem *yy_lconf;
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153  
154 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155    {
156 <    yy_hconf = ptr->data;
157 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
158 <    free_collect_item(yy_hconf);
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159    }
160  
161 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
161 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162    {
163 <    yy_lconf = ptr->data;
164 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
165 <    free_collect_item(yy_lconf);
163 >    MyFree(ptr->data);
164 >    dlinkDelete(ptr, &block_state.leaf.list);
165 >    free_dlink_node(ptr);
166    }
178 }
167  
168 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169 +  {
170 +    MyFree(ptr->data);
171 +    dlinkDelete(ptr, &block_state.hub.list);
172 +    free_dlink_node(ptr);
173 +  }
174  
175 +  memset(&block_state, 0, sizeof(block_state));
176 + }
177  
182 /* Line 189 of yacc.c  */
183 #line 184 "ircd_parser.c"
178  
179 < /* Enabling traces.  */
180 < #ifndef YYDEBUG
181 < # define YYDEBUG 0
182 < #endif
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181 >
182 > # ifndef YY_NULL
183 > #  if defined __cplusplus && 201103L <= __cplusplus
184 > #   define YY_NULL nullptr
185 > #  else
186 > #   define YY_NULL 0
187 > #  endif
188 > # endif
189  
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
# Line 195 | Line 195 | unhook_hub_leaf_confs(void)
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Enabling traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
202
209  
210   /* Tokens.  */
211   #ifndef YYTOKENTYPE
# Line 208 | Line 214 | unhook_hub_leaf_confs(void)
214        know about them.  */
215     enum yytokentype {
216       ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BURST_TOPICWHO = 268,
227 <     BYTES = 269,
228 <     KBYTES = 270,
229 <     MBYTES = 271,
230 <     GBYTES = 272,
231 <     TBYTES = 273,
232 <     CALLER_ID_WAIT = 274,
233 <     CAN_FLOOD = 275,
234 <     CAN_IDLE = 276,
235 <     CHANNEL = 277,
236 <     CIDR_BITLEN_IPV4 = 278,
237 <     CIDR_BITLEN_IPV6 = 279,
238 <     CIPHER_PREFERENCE = 280,
239 <     CLASS = 281,
240 <     COMPRESSED = 282,
241 <     COMPRESSION_LEVEL = 283,
242 <     CONNECT = 284,
243 <     CONNECTFREQ = 285,
244 <     CRYPTLINK = 286,
245 <     DEFAULT_CIPHER_PREFERENCE = 287,
246 <     DEFAULT_FLOODCOUNT = 288,
247 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
248 <     DEFAULT_SPLIT_USER_COUNT = 290,
249 <     DENY = 291,
250 <     DESCRIPTION = 292,
251 <     DIE = 293,
252 <     DISABLE_AUTH = 294,
253 <     DISABLE_FAKE_CHANNELS = 295,
254 <     DISABLE_HIDDEN = 296,
255 <     DISABLE_LOCAL_CHANNELS = 297,
256 <     DISABLE_REMOTE_COMMANDS = 298,
257 <     DOT_IN_IP6_ADDR = 299,
258 <     DOTS_IN_IDENT = 300,
259 <     DURATION = 301,
260 <     EGDPOOL_PATH = 302,
261 <     EMAIL = 303,
262 <     ENABLE = 304,
263 <     ENCRYPTED = 305,
264 <     EXCEED_LIMIT = 306,
265 <     EXEMPT = 307,
266 <     FAILED_OPER_NOTICE = 308,
267 <     FAKENAME = 309,
268 <     IRCD_FLAGS = 310,
269 <     FLATTEN_LINKS = 311,
270 <     FFAILED_OPERLOG = 312,
271 <     FKILLLOG = 313,
272 <     FKLINELOG = 314,
273 <     FGLINELOG = 315,
274 <     FIOERRLOG = 316,
275 <     FOPERLOG = 317,
276 <     FOPERSPYLOG = 318,
277 <     FUSERLOG = 319,
278 <     GECOS = 320,
279 <     GENERAL = 321,
280 <     GLINE = 322,
281 <     GLINES = 323,
282 <     GLINE_EXEMPT = 324,
283 <     GLINE_LOG = 325,
284 <     GLINE_TIME = 326,
285 <     GLINE_MIN_CIDR = 327,
286 <     GLINE_MIN_CIDR6 = 328,
287 <     GLOBAL_KILL = 329,
288 <     IRCD_AUTH = 330,
289 <     NEED_IDENT = 331,
290 <     HAVENT_READ_CONF = 332,
291 <     HIDDEN = 333,
292 <     HIDDEN_ADMIN = 334,
293 <     HIDDEN_NAME = 335,
294 <     HIDDEN_OPER = 336,
295 <     HIDE_SERVER_IPS = 337,
296 <     HIDE_SERVERS = 338,
297 <     HIDE_SPOOF_IPS = 339,
298 <     HOST = 340,
299 <     HUB = 341,
300 <     HUB_MASK = 342,
301 <     IDLETIME = 343,
302 <     IGNORE_BOGUS_TS = 344,
303 <     INVISIBLE_ON_CONNECT = 345,
304 <     IP = 346,
305 <     KILL = 347,
306 <     KILL_CHASE_TIME_LIMIT = 348,
307 <     KLINE = 349,
308 <     KLINE_EXEMPT = 350,
309 <     KLINE_REASON = 351,
310 <     KLINE_WITH_REASON = 352,
311 <     KNOCK_DELAY = 353,
312 <     KNOCK_DELAY_CHANNEL = 354,
313 <     LEAF_MASK = 355,
314 <     LINKS_DELAY = 356,
315 <     LISTEN = 357,
316 <     T_LOG = 358,
317 <     LOGGING = 359,
318 <     LOG_LEVEL = 360,
319 <     MAX_ACCEPT = 361,
320 <     MAX_BANS = 362,
321 <     MAX_CHANS_PER_USER = 363,
322 <     MAX_GLOBAL = 364,
323 <     MAX_IDENT = 365,
324 <     MAX_LOCAL = 366,
325 <     MAX_NICK_CHANGES = 367,
326 <     MAX_NICK_TIME = 368,
327 <     MAX_NUMBER = 369,
328 <     MAX_TARGETS = 370,
329 <     MAX_WATCH = 371,
330 <     MESSAGE_LOCALE = 372,
331 <     MIN_NONWILDCARD = 373,
332 <     MIN_NONWILDCARD_SIMPLE = 374,
333 <     MODULE = 375,
334 <     MODULES = 376,
335 <     NAME = 377,
336 <     NEED_PASSWORD = 378,
337 <     NETWORK_DESC = 379,
338 <     NETWORK_NAME = 380,
339 <     NICK = 381,
340 <     NICK_CHANGES = 382,
341 <     NO_CREATE_ON_SPLIT = 383,
342 <     NO_JOIN_ON_SPLIT = 384,
343 <     NO_OPER_FLOOD = 385,
344 <     NO_TILDE = 386,
345 <     NOT = 387,
346 <     NUMBER = 388,
347 <     NUMBER_PER_IDENT = 389,
348 <     NUMBER_PER_CIDR = 390,
349 <     NUMBER_PER_IP = 391,
350 <     NUMBER_PER_IP_GLOBAL = 392,
351 <     OPERATOR = 393,
352 <     OPERS_BYPASS_CALLERID = 394,
353 <     OPER_LOG = 395,
354 <     OPER_ONLY_UMODES = 396,
355 <     OPER_PASS_RESV = 397,
356 <     OPER_SPY_T = 398,
357 <     OPER_UMODES = 399,
358 <     JOIN_FLOOD_COUNT = 400,
359 <     JOIN_FLOOD_TIME = 401,
360 <     PACE_WAIT = 402,
361 <     PACE_WAIT_SIMPLE = 403,
362 <     PASSWORD = 404,
363 <     PATH = 405,
364 <     PING_COOKIE = 406,
365 <     PING_TIME = 407,
366 <     PING_WARNING = 408,
367 <     PORT = 409,
368 <     QSTRING = 410,
369 <     QUIET_ON_BAN = 411,
370 <     REASON = 412,
371 <     REDIRPORT = 413,
372 <     REDIRSERV = 414,
373 <     REGEX_T = 415,
374 <     REHASH = 416,
375 <     TREJECT_HOLD_TIME = 417,
376 <     REMOTE = 418,
377 <     REMOTEBAN = 419,
378 <     RESTRICT_CHANNELS = 420,
379 <     RESTRICTED = 421,
380 <     RSA_PRIVATE_KEY_FILE = 422,
381 <     RSA_PUBLIC_KEY_FILE = 423,
382 <     SSL_CERTIFICATE_FILE = 424,
383 <     T_SSL_CONNECTION_METHOD = 425,
384 <     T_SSLV3 = 426,
385 <     T_TLSV1 = 427,
386 <     RESV = 428,
387 <     RESV_EXEMPT = 429,
388 <     SECONDS = 430,
389 <     MINUTES = 431,
390 <     HOURS = 432,
391 <     DAYS = 433,
392 <     WEEKS = 434,
393 <     SENDQ = 435,
394 <     SEND_PASSWORD = 436,
395 <     SERVERHIDE = 437,
396 <     SERVERINFO = 438,
397 <     SERVLINK_PATH = 439,
398 <     IRCD_SID = 440,
399 <     TKLINE_EXPIRE_NOTICES = 441,
400 <     T_SHARED = 442,
401 <     T_CLUSTER = 443,
402 <     TYPE = 444,
403 <     SHORT_MOTD = 445,
404 <     SILENT = 446,
405 <     SPOOF = 447,
406 <     SPOOF_NOTICE = 448,
407 <     STATS_E_DISABLED = 449,
408 <     STATS_I_OPER_ONLY = 450,
409 <     STATS_K_OPER_ONLY = 451,
410 <     STATS_O_OPER_ONLY = 452,
411 <     STATS_P_OPER_ONLY = 453,
412 <     TBOOL = 454,
413 <     TMASKED = 455,
414 <     T_REJECT = 456,
415 <     TS_MAX_DELTA = 457,
416 <     TS_WARN_DELTA = 458,
417 <     TWODOTS = 459,
418 <     T_ALL = 460,
419 <     T_BOTS = 461,
420 <     T_SOFTCALLERID = 462,
421 <     T_CALLERID = 463,
422 <     T_CCONN = 464,
423 <     T_CCONN_FULL = 465,
424 <     T_CLIENT_FLOOD = 466,
425 <     T_DEAF = 467,
426 <     T_DEBUG = 468,
427 <     T_DRONE = 469,
428 <     T_EXTERNAL = 470,
429 <     T_FULL = 471,
430 <     T_INVISIBLE = 472,
431 <     T_IPV4 = 473,
432 <     T_IPV6 = 474,
433 <     T_LOCOPS = 475,
428 <     T_LOGPATH = 476,
429 <     T_L_CRIT = 477,
430 <     T_L_DEBUG = 478,
431 <     T_L_ERROR = 479,
432 <     T_L_INFO = 480,
433 <     T_L_NOTICE = 481,
434 <     T_L_TRACE = 482,
435 <     T_L_WARN = 483,
436 <     T_MAX_CLIENTS = 484,
437 <     T_NCHANGE = 485,
438 <     T_OPERWALL = 486,
439 <     T_REJ = 487,
440 <     T_SERVER = 488,
441 <     T_SERVNOTICE = 489,
442 <     T_SKILL = 490,
443 <     T_SPY = 491,
444 <     T_SSL = 492,
445 <     T_UMODES = 493,
446 <     T_UNAUTH = 494,
447 <     T_UNRESV = 495,
448 <     T_UNXLINE = 496,
449 <     T_WALLOP = 497,
450 <     THROTTLE_TIME = 498,
451 <     TOPICBURST = 499,
452 <     TRUE_NO_OPER_FLOOD = 500,
453 <     TKLINE = 501,
454 <     TXLINE = 502,
455 <     TRESV = 503,
456 <     UNKLINE = 504,
457 <     USER = 505,
458 <     USE_EGD = 506,
459 <     USE_EXCEPT = 507,
460 <     USE_INVEX = 508,
461 <     USE_KNOCK = 509,
462 <     USE_LOGGING = 510,
463 <     USE_WHOIS_ACTUALLY = 511,
464 <     VHOST = 512,
465 <     VHOST6 = 513,
466 <     XLINE = 514,
467 <     WARN = 515,
468 <     WARN_NO_NLINE = 516
217 >     ADMIN = 259,
218 >     AFTYPE = 260,
219 >     ANTI_NICK_FLOOD = 261,
220 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 >     AUTOCONN = 263,
222 >     BYTES = 264,
223 >     KBYTES = 265,
224 >     MBYTES = 266,
225 >     CALLER_ID_WAIT = 267,
226 >     CAN_FLOOD = 268,
227 >     CHANNEL = 269,
228 >     CIDR_BITLEN_IPV4 = 270,
229 >     CIDR_BITLEN_IPV6 = 271,
230 >     CLASS = 272,
231 >     CONNECT = 273,
232 >     CONNECTFREQ = 274,
233 >     DEFAULT_FLOODCOUNT = 275,
234 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 >     DEFAULT_SPLIT_USER_COUNT = 277,
236 >     DENY = 278,
237 >     DESCRIPTION = 279,
238 >     DIE = 280,
239 >     DISABLE_AUTH = 281,
240 >     DISABLE_FAKE_CHANNELS = 282,
241 >     DISABLE_REMOTE_COMMANDS = 283,
242 >     DOTS_IN_IDENT = 284,
243 >     EGDPOOL_PATH = 285,
244 >     EMAIL = 286,
245 >     ENCRYPTED = 287,
246 >     EXCEED_LIMIT = 288,
247 >     EXEMPT = 289,
248 >     FAILED_OPER_NOTICE = 290,
249 >     IRCD_FLAGS = 291,
250 >     FLATTEN_LINKS = 292,
251 >     GECOS = 293,
252 >     GENERAL = 294,
253 >     GLINE = 295,
254 >     GLINE_DURATION = 296,
255 >     GLINE_ENABLE = 297,
256 >     GLINE_EXEMPT = 298,
257 >     GLINE_REQUEST_DURATION = 299,
258 >     GLINE_MIN_CIDR = 300,
259 >     GLINE_MIN_CIDR6 = 301,
260 >     GLOBAL_KILL = 302,
261 >     IRCD_AUTH = 303,
262 >     NEED_IDENT = 304,
263 >     HAVENT_READ_CONF = 305,
264 >     HIDDEN = 306,
265 >     HIDDEN_NAME = 307,
266 >     HIDE_SERVER_IPS = 308,
267 >     HIDE_SERVERS = 309,
268 >     HIDE_SERVICES = 310,
269 >     HIDE_SPOOF_IPS = 311,
270 >     HOST = 312,
271 >     HUB = 313,
272 >     HUB_MASK = 314,
273 >     IGNORE_BOGUS_TS = 315,
274 >     INVISIBLE_ON_CONNECT = 316,
275 >     IP = 317,
276 >     KILL = 318,
277 >     KILL_CHASE_TIME_LIMIT = 319,
278 >     KLINE = 320,
279 >     KLINE_EXEMPT = 321,
280 >     KNOCK_DELAY = 322,
281 >     KNOCK_DELAY_CHANNEL = 323,
282 >     LEAF_MASK = 324,
283 >     LINKS_DELAY = 325,
284 >     LISTEN = 326,
285 >     T_LOG = 327,
286 >     MASK = 328,
287 >     MAX_ACCEPT = 329,
288 >     MAX_BANS = 330,
289 >     MAX_CHANS_PER_OPER = 331,
290 >     MAX_CHANS_PER_USER = 332,
291 >     MAX_GLOBAL = 333,
292 >     MAX_IDENT = 334,
293 >     MAX_LOCAL = 335,
294 >     MAX_NICK_CHANGES = 336,
295 >     MAX_NICK_LENGTH = 337,
296 >     MAX_NICK_TIME = 338,
297 >     MAX_NUMBER = 339,
298 >     MAX_TARGETS = 340,
299 >     MAX_TOPIC_LENGTH = 341,
300 >     MAX_WATCH = 342,
301 >     MIN_NONWILDCARD = 343,
302 >     MIN_NONWILDCARD_SIMPLE = 344,
303 >     MIN_IDLE = 345,
304 >     MAX_IDLE = 346,
305 >     RANDOM_IDLE = 347,
306 >     HIDE_IDLE_FROM_OPERS = 348,
307 >     MODULE = 349,
308 >     MODULES = 350,
309 >     NAME = 351,
310 >     NEED_PASSWORD = 352,
311 >     NETWORK_DESC = 353,
312 >     NETWORK_NAME = 354,
313 >     NICK = 355,
314 >     NO_CREATE_ON_SPLIT = 356,
315 >     NO_JOIN_ON_SPLIT = 357,
316 >     NO_OPER_FLOOD = 358,
317 >     NO_TILDE = 359,
318 >     NUMBER = 360,
319 >     NUMBER_PER_CIDR = 361,
320 >     NUMBER_PER_IP = 362,
321 >     OPERATOR = 363,
322 >     OPERS_BYPASS_CALLERID = 364,
323 >     OPER_ONLY_UMODES = 365,
324 >     OPER_PASS_RESV = 366,
325 >     OPER_SPY_T = 367,
326 >     OPER_UMODES = 368,
327 >     JOIN_FLOOD_COUNT = 369,
328 >     JOIN_FLOOD_TIME = 370,
329 >     PACE_WAIT = 371,
330 >     PACE_WAIT_SIMPLE = 372,
331 >     PASSWORD = 373,
332 >     PATH = 374,
333 >     PING_COOKIE = 375,
334 >     PING_TIME = 376,
335 >     PORT = 377,
336 >     QSTRING = 378,
337 >     REASON = 379,
338 >     REDIRPORT = 380,
339 >     REDIRSERV = 381,
340 >     REHASH = 382,
341 >     REMOTE = 383,
342 >     REMOTEBAN = 384,
343 >     RSA_PRIVATE_KEY_FILE = 385,
344 >     RSA_PUBLIC_KEY_FILE = 386,
345 >     SSL_CERTIFICATE_FILE = 387,
346 >     SSL_DH_PARAM_FILE = 388,
347 >     T_SSL_CLIENT_METHOD = 389,
348 >     T_SSL_SERVER_METHOD = 390,
349 >     T_SSLV3 = 391,
350 >     T_TLSV1 = 392,
351 >     RESV = 393,
352 >     RESV_EXEMPT = 394,
353 >     SECONDS = 395,
354 >     MINUTES = 396,
355 >     HOURS = 397,
356 >     DAYS = 398,
357 >     WEEKS = 399,
358 >     MONTHS = 400,
359 >     YEARS = 401,
360 >     SENDQ = 402,
361 >     SEND_PASSWORD = 403,
362 >     SERVERHIDE = 404,
363 >     SERVERINFO = 405,
364 >     IRCD_SID = 406,
365 >     TKLINE_EXPIRE_NOTICES = 407,
366 >     T_SHARED = 408,
367 >     T_CLUSTER = 409,
368 >     TYPE = 410,
369 >     SHORT_MOTD = 411,
370 >     SPOOF = 412,
371 >     SPOOF_NOTICE = 413,
372 >     STATS_E_DISABLED = 414,
373 >     STATS_I_OPER_ONLY = 415,
374 >     STATS_K_OPER_ONLY = 416,
375 >     STATS_O_OPER_ONLY = 417,
376 >     STATS_P_OPER_ONLY = 418,
377 >     TBOOL = 419,
378 >     TMASKED = 420,
379 >     TS_MAX_DELTA = 421,
380 >     TS_WARN_DELTA = 422,
381 >     TWODOTS = 423,
382 >     T_ALL = 424,
383 >     T_BOTS = 425,
384 >     T_SOFTCALLERID = 426,
385 >     T_CALLERID = 427,
386 >     T_CCONN = 428,
387 >     T_CCONN_FULL = 429,
388 >     T_SSL_CIPHER_LIST = 430,
389 >     T_DEAF = 431,
390 >     T_DEBUG = 432,
391 >     T_DLINE = 433,
392 >     T_EXTERNAL = 434,
393 >     T_FULL = 435,
394 >     T_INVISIBLE = 436,
395 >     T_IPV4 = 437,
396 >     T_IPV6 = 438,
397 >     T_LOCOPS = 439,
398 >     T_MAX_CLIENTS = 440,
399 >     T_NCHANGE = 441,
400 >     T_NONONREG = 442,
401 >     T_OPERWALL = 443,
402 >     T_RECVQ = 444,
403 >     T_REJ = 445,
404 >     T_SERVER = 446,
405 >     T_SERVNOTICE = 447,
406 >     T_SET = 448,
407 >     T_SKILL = 449,
408 >     T_SPY = 450,
409 >     T_SSL = 451,
410 >     T_UMODES = 452,
411 >     T_UNAUTH = 453,
412 >     T_UNDLINE = 454,
413 >     T_UNLIMITED = 455,
414 >     T_UNRESV = 456,
415 >     T_UNXLINE = 457,
416 >     T_GLOBOPS = 458,
417 >     T_WALLOP = 459,
418 >     T_WEBIRC = 460,
419 >     T_RESTART = 461,
420 >     T_SERVICE = 462,
421 >     T_SERVICES_NAME = 463,
422 >     THROTTLE_TIME = 464,
423 >     TRUE_NO_OPER_FLOOD = 465,
424 >     UNKLINE = 466,
425 >     USER = 467,
426 >     USE_EGD = 468,
427 >     USE_LOGGING = 469,
428 >     VHOST = 470,
429 >     VHOST6 = 471,
430 >     XLINE = 472,
431 >     WARN_NO_NLINE = 473,
432 >     T_SIZE = 474,
433 >     T_FILE = 475
434     };
435   #endif
436   /* Tokens.  */
437   #define ACCEPT_PASSWORD 258
438 < #define ACTION 259
439 < #define ADMIN 260
440 < #define AFTYPE 261
441 < #define T_ALLOW 262
442 < #define ANTI_NICK_FLOOD 263
443 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
444 < #define AUTOCONN 265
445 < #define T_BLOCK 266
446 < #define BURST_AWAY 267
447 < #define BURST_TOPICWHO 268
448 < #define BYTES 269
449 < #define KBYTES 270
450 < #define MBYTES 271
451 < #define GBYTES 272
452 < #define TBYTES 273
453 < #define CALLER_ID_WAIT 274
454 < #define CAN_FLOOD 275
455 < #define CAN_IDLE 276
456 < #define CHANNEL 277
457 < #define CIDR_BITLEN_IPV4 278
458 < #define CIDR_BITLEN_IPV6 279
459 < #define CIPHER_PREFERENCE 280
460 < #define CLASS 281
461 < #define COMPRESSED 282
462 < #define COMPRESSION_LEVEL 283
463 < #define CONNECT 284
464 < #define CONNECTFREQ 285
465 < #define CRYPTLINK 286
466 < #define DEFAULT_CIPHER_PREFERENCE 287
467 < #define DEFAULT_FLOODCOUNT 288
468 < #define DEFAULT_SPLIT_SERVER_COUNT 289
469 < #define DEFAULT_SPLIT_USER_COUNT 290
470 < #define DENY 291
471 < #define DESCRIPTION 292
472 < #define DIE 293
473 < #define DISABLE_AUTH 294
474 < #define DISABLE_FAKE_CHANNELS 295
475 < #define DISABLE_HIDDEN 296
476 < #define DISABLE_LOCAL_CHANNELS 297
477 < #define DISABLE_REMOTE_COMMANDS 298
478 < #define DOT_IN_IP6_ADDR 299
479 < #define DOTS_IN_IDENT 300
480 < #define DURATION 301
481 < #define EGDPOOL_PATH 302
482 < #define EMAIL 303
483 < #define ENABLE 304
484 < #define ENCRYPTED 305
485 < #define EXCEED_LIMIT 306
486 < #define EXEMPT 307
487 < #define FAILED_OPER_NOTICE 308
488 < #define FAKENAME 309
489 < #define IRCD_FLAGS 310
490 < #define FLATTEN_LINKS 311
491 < #define FFAILED_OPERLOG 312
492 < #define FKILLLOG 313
493 < #define FKLINELOG 314
494 < #define FGLINELOG 315
495 < #define FIOERRLOG 316
496 < #define FOPERLOG 317
497 < #define FOPERSPYLOG 318
498 < #define FUSERLOG 319
499 < #define GECOS 320
500 < #define GENERAL 321
501 < #define GLINE 322
502 < #define GLINES 323
503 < #define GLINE_EXEMPT 324
504 < #define GLINE_LOG 325
505 < #define GLINE_TIME 326
506 < #define GLINE_MIN_CIDR 327
507 < #define GLINE_MIN_CIDR6 328
508 < #define GLOBAL_KILL 329
509 < #define IRCD_AUTH 330
510 < #define NEED_IDENT 331
511 < #define HAVENT_READ_CONF 332
512 < #define HIDDEN 333
513 < #define HIDDEN_ADMIN 334
514 < #define HIDDEN_NAME 335
515 < #define HIDDEN_OPER 336
516 < #define HIDE_SERVER_IPS 337
517 < #define HIDE_SERVERS 338
518 < #define HIDE_SPOOF_IPS 339
519 < #define HOST 340
520 < #define HUB 341
521 < #define HUB_MASK 342
522 < #define IDLETIME 343
523 < #define IGNORE_BOGUS_TS 344
524 < #define INVISIBLE_ON_CONNECT 345
525 < #define IP 346
526 < #define KILL 347
527 < #define KILL_CHASE_TIME_LIMIT 348
528 < #define KLINE 349
529 < #define KLINE_EXEMPT 350
530 < #define KLINE_REASON 351
531 < #define KLINE_WITH_REASON 352
532 < #define KNOCK_DELAY 353
533 < #define KNOCK_DELAY_CHANNEL 354
534 < #define LEAF_MASK 355
535 < #define LINKS_DELAY 356
536 < #define LISTEN 357
537 < #define T_LOG 358
538 < #define LOGGING 359
539 < #define LOG_LEVEL 360
540 < #define MAX_ACCEPT 361
541 < #define MAX_BANS 362
542 < #define MAX_CHANS_PER_USER 363
543 < #define MAX_GLOBAL 364
544 < #define MAX_IDENT 365
545 < #define MAX_LOCAL 366
546 < #define MAX_NICK_CHANGES 367
547 < #define MAX_NICK_TIME 368
548 < #define MAX_NUMBER 369
549 < #define MAX_TARGETS 370
550 < #define MAX_WATCH 371
551 < #define MESSAGE_LOCALE 372
552 < #define MIN_NONWILDCARD 373
553 < #define MIN_NONWILDCARD_SIMPLE 374
554 < #define MODULE 375
555 < #define MODULES 376
556 < #define NAME 377
557 < #define NEED_PASSWORD 378
558 < #define NETWORK_DESC 379
559 < #define NETWORK_NAME 380
560 < #define NICK 381
561 < #define NICK_CHANGES 382
562 < #define NO_CREATE_ON_SPLIT 383
563 < #define NO_JOIN_ON_SPLIT 384
564 < #define NO_OPER_FLOOD 385
565 < #define NO_TILDE 386
566 < #define NOT 387
567 < #define NUMBER 388
568 < #define NUMBER_PER_IDENT 389
569 < #define NUMBER_PER_CIDR 390
570 < #define NUMBER_PER_IP 391
571 < #define NUMBER_PER_IP_GLOBAL 392
572 < #define OPERATOR 393
573 < #define OPERS_BYPASS_CALLERID 394
574 < #define OPER_LOG 395
575 < #define OPER_ONLY_UMODES 396
576 < #define OPER_PASS_RESV 397
577 < #define OPER_SPY_T 398
578 < #define OPER_UMODES 399
579 < #define JOIN_FLOOD_COUNT 400
580 < #define JOIN_FLOOD_TIME 401
581 < #define PACE_WAIT 402
582 < #define PACE_WAIT_SIMPLE 403
583 < #define PASSWORD 404
584 < #define PATH 405
585 < #define PING_COOKIE 406
586 < #define PING_TIME 407
587 < #define PING_WARNING 408
588 < #define PORT 409
589 < #define QSTRING 410
590 < #define QUIET_ON_BAN 411
591 < #define REASON 412
592 < #define REDIRPORT 413
593 < #define REDIRSERV 414
594 < #define REGEX_T 415
595 < #define REHASH 416
596 < #define TREJECT_HOLD_TIME 417
597 < #define REMOTE 418
598 < #define REMOTEBAN 419
599 < #define RESTRICT_CHANNELS 420
600 < #define RESTRICTED 421
601 < #define RSA_PRIVATE_KEY_FILE 422
602 < #define RSA_PUBLIC_KEY_FILE 423
603 < #define SSL_CERTIFICATE_FILE 424
604 < #define T_SSL_CONNECTION_METHOD 425
605 < #define T_SSLV3 426
606 < #define T_TLSV1 427
607 < #define RESV 428
608 < #define RESV_EXEMPT 429
609 < #define SECONDS 430
610 < #define MINUTES 431
611 < #define HOURS 432
612 < #define DAYS 433
613 < #define WEEKS 434
614 < #define SENDQ 435
615 < #define SEND_PASSWORD 436
616 < #define SERVERHIDE 437
617 < #define SERVERINFO 438
618 < #define SERVLINK_PATH 439
619 < #define IRCD_SID 440
620 < #define TKLINE_EXPIRE_NOTICES 441
621 < #define T_SHARED 442
622 < #define T_CLUSTER 443
623 < #define TYPE 444
624 < #define SHORT_MOTD 445
625 < #define SILENT 446
626 < #define SPOOF 447
627 < #define SPOOF_NOTICE 448
628 < #define STATS_E_DISABLED 449
629 < #define STATS_I_OPER_ONLY 450
630 < #define STATS_K_OPER_ONLY 451
631 < #define STATS_O_OPER_ONLY 452
632 < #define STATS_P_OPER_ONLY 453
633 < #define TBOOL 454
634 < #define TMASKED 455
635 < #define T_REJECT 456
636 < #define TS_MAX_DELTA 457
637 < #define TS_WARN_DELTA 458
638 < #define TWODOTS 459
639 < #define T_ALL 460
640 < #define T_BOTS 461
641 < #define T_SOFTCALLERID 462
642 < #define T_CALLERID 463
643 < #define T_CCONN 464
644 < #define T_CCONN_FULL 465
645 < #define T_CLIENT_FLOOD 466
646 < #define T_DEAF 467
647 < #define T_DEBUG 468
648 < #define T_DRONE 469
649 < #define T_EXTERNAL 470
650 < #define T_FULL 471
651 < #define T_INVISIBLE 472
652 < #define T_IPV4 473
653 < #define T_IPV6 474
654 < #define T_LOCOPS 475
690 < #define T_LOGPATH 476
691 < #define T_L_CRIT 477
692 < #define T_L_DEBUG 478
693 < #define T_L_ERROR 479
694 < #define T_L_INFO 480
695 < #define T_L_NOTICE 481
696 < #define T_L_TRACE 482
697 < #define T_L_WARN 483
698 < #define T_MAX_CLIENTS 484
699 < #define T_NCHANGE 485
700 < #define T_OPERWALL 486
701 < #define T_REJ 487
702 < #define T_SERVER 488
703 < #define T_SERVNOTICE 489
704 < #define T_SKILL 490
705 < #define T_SPY 491
706 < #define T_SSL 492
707 < #define T_UMODES 493
708 < #define T_UNAUTH 494
709 < #define T_UNRESV 495
710 < #define T_UNXLINE 496
711 < #define T_WALLOP 497
712 < #define THROTTLE_TIME 498
713 < #define TOPICBURST 499
714 < #define TRUE_NO_OPER_FLOOD 500
715 < #define TKLINE 501
716 < #define TXLINE 502
717 < #define TRESV 503
718 < #define UNKLINE 504
719 < #define USER 505
720 < #define USE_EGD 506
721 < #define USE_EXCEPT 507
722 < #define USE_INVEX 508
723 < #define USE_KNOCK 509
724 < #define USE_LOGGING 510
725 < #define USE_WHOIS_ACTUALLY 511
726 < #define VHOST 512
727 < #define VHOST6 513
728 < #define XLINE 514
729 < #define WARN 515
730 < #define WARN_NO_NLINE 516
731 <
438 > #define ADMIN 259
439 > #define AFTYPE 260
440 > #define ANTI_NICK_FLOOD 261
441 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
442 > #define AUTOCONN 263
443 > #define BYTES 264
444 > #define KBYTES 265
445 > #define MBYTES 266
446 > #define CALLER_ID_WAIT 267
447 > #define CAN_FLOOD 268
448 > #define CHANNEL 269
449 > #define CIDR_BITLEN_IPV4 270
450 > #define CIDR_BITLEN_IPV6 271
451 > #define CLASS 272
452 > #define CONNECT 273
453 > #define CONNECTFREQ 274
454 > #define DEFAULT_FLOODCOUNT 275
455 > #define DEFAULT_SPLIT_SERVER_COUNT 276
456 > #define DEFAULT_SPLIT_USER_COUNT 277
457 > #define DENY 278
458 > #define DESCRIPTION 279
459 > #define DIE 280
460 > #define DISABLE_AUTH 281
461 > #define DISABLE_FAKE_CHANNELS 282
462 > #define DISABLE_REMOTE_COMMANDS 283
463 > #define DOTS_IN_IDENT 284
464 > #define EGDPOOL_PATH 285
465 > #define EMAIL 286
466 > #define ENCRYPTED 287
467 > #define EXCEED_LIMIT 288
468 > #define EXEMPT 289
469 > #define FAILED_OPER_NOTICE 290
470 > #define IRCD_FLAGS 291
471 > #define FLATTEN_LINKS 292
472 > #define GECOS 293
473 > #define GENERAL 294
474 > #define GLINE 295
475 > #define GLINE_DURATION 296
476 > #define GLINE_ENABLE 297
477 > #define GLINE_EXEMPT 298
478 > #define GLINE_REQUEST_DURATION 299
479 > #define GLINE_MIN_CIDR 300
480 > #define GLINE_MIN_CIDR6 301
481 > #define GLOBAL_KILL 302
482 > #define IRCD_AUTH 303
483 > #define NEED_IDENT 304
484 > #define HAVENT_READ_CONF 305
485 > #define HIDDEN 306
486 > #define HIDDEN_NAME 307
487 > #define HIDE_SERVER_IPS 308
488 > #define HIDE_SERVERS 309
489 > #define HIDE_SERVICES 310
490 > #define HIDE_SPOOF_IPS 311
491 > #define HOST 312
492 > #define HUB 313
493 > #define HUB_MASK 314
494 > #define IGNORE_BOGUS_TS 315
495 > #define INVISIBLE_ON_CONNECT 316
496 > #define IP 317
497 > #define KILL 318
498 > #define KILL_CHASE_TIME_LIMIT 319
499 > #define KLINE 320
500 > #define KLINE_EXEMPT 321
501 > #define KNOCK_DELAY 322
502 > #define KNOCK_DELAY_CHANNEL 323
503 > #define LEAF_MASK 324
504 > #define LINKS_DELAY 325
505 > #define LISTEN 326
506 > #define T_LOG 327
507 > #define MASK 328
508 > #define MAX_ACCEPT 329
509 > #define MAX_BANS 330
510 > #define MAX_CHANS_PER_OPER 331
511 > #define MAX_CHANS_PER_USER 332
512 > #define MAX_GLOBAL 333
513 > #define MAX_IDENT 334
514 > #define MAX_LOCAL 335
515 > #define MAX_NICK_CHANGES 336
516 > #define MAX_NICK_LENGTH 337
517 > #define MAX_NICK_TIME 338
518 > #define MAX_NUMBER 339
519 > #define MAX_TARGETS 340
520 > #define MAX_TOPIC_LENGTH 341
521 > #define MAX_WATCH 342
522 > #define MIN_NONWILDCARD 343
523 > #define MIN_NONWILDCARD_SIMPLE 344
524 > #define MIN_IDLE 345
525 > #define MAX_IDLE 346
526 > #define RANDOM_IDLE 347
527 > #define HIDE_IDLE_FROM_OPERS 348
528 > #define MODULE 349
529 > #define MODULES 350
530 > #define NAME 351
531 > #define NEED_PASSWORD 352
532 > #define NETWORK_DESC 353
533 > #define NETWORK_NAME 354
534 > #define NICK 355
535 > #define NO_CREATE_ON_SPLIT 356
536 > #define NO_JOIN_ON_SPLIT 357
537 > #define NO_OPER_FLOOD 358
538 > #define NO_TILDE 359
539 > #define NUMBER 360
540 > #define NUMBER_PER_CIDR 361
541 > #define NUMBER_PER_IP 362
542 > #define OPERATOR 363
543 > #define OPERS_BYPASS_CALLERID 364
544 > #define OPER_ONLY_UMODES 365
545 > #define OPER_PASS_RESV 366
546 > #define OPER_SPY_T 367
547 > #define OPER_UMODES 368
548 > #define JOIN_FLOOD_COUNT 369
549 > #define JOIN_FLOOD_TIME 370
550 > #define PACE_WAIT 371
551 > #define PACE_WAIT_SIMPLE 372
552 > #define PASSWORD 373
553 > #define PATH 374
554 > #define PING_COOKIE 375
555 > #define PING_TIME 376
556 > #define PORT 377
557 > #define QSTRING 378
558 > #define REASON 379
559 > #define REDIRPORT 380
560 > #define REDIRSERV 381
561 > #define REHASH 382
562 > #define REMOTE 383
563 > #define REMOTEBAN 384
564 > #define RSA_PRIVATE_KEY_FILE 385
565 > #define RSA_PUBLIC_KEY_FILE 386
566 > #define SSL_CERTIFICATE_FILE 387
567 > #define SSL_DH_PARAM_FILE 388
568 > #define T_SSL_CLIENT_METHOD 389
569 > #define T_SSL_SERVER_METHOD 390
570 > #define T_SSLV3 391
571 > #define T_TLSV1 392
572 > #define RESV 393
573 > #define RESV_EXEMPT 394
574 > #define SECONDS 395
575 > #define MINUTES 396
576 > #define HOURS 397
577 > #define DAYS 398
578 > #define WEEKS 399
579 > #define MONTHS 400
580 > #define YEARS 401
581 > #define SENDQ 402
582 > #define SEND_PASSWORD 403
583 > #define SERVERHIDE 404
584 > #define SERVERINFO 405
585 > #define IRCD_SID 406
586 > #define TKLINE_EXPIRE_NOTICES 407
587 > #define T_SHARED 408
588 > #define T_CLUSTER 409
589 > #define TYPE 410
590 > #define SHORT_MOTD 411
591 > #define SPOOF 412
592 > #define SPOOF_NOTICE 413
593 > #define STATS_E_DISABLED 414
594 > #define STATS_I_OPER_ONLY 415
595 > #define STATS_K_OPER_ONLY 416
596 > #define STATS_O_OPER_ONLY 417
597 > #define STATS_P_OPER_ONLY 418
598 > #define TBOOL 419
599 > #define TMASKED 420
600 > #define TS_MAX_DELTA 421
601 > #define TS_WARN_DELTA 422
602 > #define TWODOTS 423
603 > #define T_ALL 424
604 > #define T_BOTS 425
605 > #define T_SOFTCALLERID 426
606 > #define T_CALLERID 427
607 > #define T_CCONN 428
608 > #define T_CCONN_FULL 429
609 > #define T_SSL_CIPHER_LIST 430
610 > #define T_DEAF 431
611 > #define T_DEBUG 432
612 > #define T_DLINE 433
613 > #define T_EXTERNAL 434
614 > #define T_FULL 435
615 > #define T_INVISIBLE 436
616 > #define T_IPV4 437
617 > #define T_IPV6 438
618 > #define T_LOCOPS 439
619 > #define T_MAX_CLIENTS 440
620 > #define T_NCHANGE 441
621 > #define T_NONONREG 442
622 > #define T_OPERWALL 443
623 > #define T_RECVQ 444
624 > #define T_REJ 445
625 > #define T_SERVER 446
626 > #define T_SERVNOTICE 447
627 > #define T_SET 448
628 > #define T_SKILL 449
629 > #define T_SPY 450
630 > #define T_SSL 451
631 > #define T_UMODES 452
632 > #define T_UNAUTH 453
633 > #define T_UNDLINE 454
634 > #define T_UNLIMITED 455
635 > #define T_UNRESV 456
636 > #define T_UNXLINE 457
637 > #define T_GLOBOPS 458
638 > #define T_WALLOP 459
639 > #define T_WEBIRC 460
640 > #define T_RESTART 461
641 > #define T_SERVICE 462
642 > #define T_SERVICES_NAME 463
643 > #define THROTTLE_TIME 464
644 > #define TRUE_NO_OPER_FLOOD 465
645 > #define UNKLINE 466
646 > #define USER 467
647 > #define USE_EGD 468
648 > #define USE_LOGGING 469
649 > #define VHOST 470
650 > #define VHOST6 471
651 > #define XLINE 472
652 > #define WARN_NO_NLINE 473
653 > #define T_SIZE 474
654 > #define T_FILE 475
655  
656  
657  
658   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
659   typedef union YYSTYPE
660   {
661 <
662 < /* Line 214 of yacc.c  */
740 < #line 135 "ircd_parser.y"
661 > /* Line 387 of yacc.c  */
662 > #line 138 "conf_parser.y"
663  
664    int number;
665    char *string;
666  
667  
668 <
669 < /* Line 214 of yacc.c  */
748 < #line 749 "ircd_parser.c"
668 > /* Line 387 of yacc.c  */
669 > #line 670 "conf_parser.c"
670   } YYSTYPE;
671   # define YYSTYPE_IS_TRIVIAL 1
672   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
673   # define YYSTYPE_IS_DECLARED 1
674   #endif
675  
676 + extern YYSTYPE yylval;
677  
678 < /* Copy the second part of user declarations.  */
678 > #ifdef YYPARSE_PARAM
679 > #if defined __STDC__ || defined __cplusplus
680 > int yyparse (void *YYPARSE_PARAM);
681 > #else
682 > int yyparse ();
683 > #endif
684 > #else /* ! YYPARSE_PARAM */
685 > #if defined __STDC__ || defined __cplusplus
686 > int yyparse (void);
687 > #else
688 > int yyparse ();
689 > #endif
690 > #endif /* ! YYPARSE_PARAM */
691  
692 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
693 +
694 + /* Copy the second part of user declarations.  */
695  
696 < /* Line 264 of yacc.c  */
697 < #line 761 "ircd_parser.c"
696 > /* Line 390 of yacc.c  */
697 > #line 698 "conf_parser.c"
698  
699   #ifdef short
700   # undef short
# Line 807 | Line 744 | typedef short int yytype_int16;
744   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
745  
746   #ifndef YY_
747 < # if YYENABLE_NLS
747 > # if defined YYENABLE_NLS && YYENABLE_NLS
748   #  if ENABLE_NLS
749   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
750 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
750 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
751   #  endif
752   # endif
753   # ifndef YY_
754 < #  define YY_(msgid) msgid
754 > #  define YY_(Msgid) Msgid
755 > # endif
756 > #endif
757 >
758 > #ifndef __attribute__
759 > /* This feature is available in gcc versions 2.5 and later.  */
760 > # if (! defined __GNUC__ || __GNUC__ < 2 \
761 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
762 > #  define __attribute__(Spec) /* empty */
763   # endif
764   #endif
765  
766   /* Suppress unused-variable warnings by "using" E.  */
767   #if ! defined lint || defined __GNUC__
768 < # define YYUSE(e) ((void) (e))
768 > # define YYUSE(E) ((void) (E))
769   #else
770 < # define YYUSE(e) /* empty */
770 > # define YYUSE(E) /* empty */
771   #endif
772  
773 +
774   /* Identity function, used to suppress warnings about constant conditions.  */
775   #ifndef lint
776 < # define YYID(n) (n)
776 > # define YYID(N) (N)
777   #else
778   #if (defined __STDC__ || defined __C99__FUNC__ \
779       || defined __cplusplus || defined _MSC_VER)
# Line 860 | Line 806 | YYID (yyi)
806   #    define alloca _alloca
807   #   else
808   #    define YYSTACK_ALLOC alloca
809 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
809 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
810       || defined __cplusplus || defined _MSC_VER)
811   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
812 < #     ifndef _STDLIB_H
813 < #      define _STDLIB_H 1
812 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
813 > #     ifndef EXIT_SUCCESS
814 > #      define EXIT_SUCCESS 0
815   #     endif
816   #    endif
817   #   endif
# Line 887 | Line 834 | YYID (yyi)
834   #  ifndef YYSTACK_ALLOC_MAXIMUM
835   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
836   #  endif
837 < #  if (defined __cplusplus && ! defined _STDLIB_H \
837 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
838         && ! ((defined YYMALLOC || defined malloc) \
839               && (defined YYFREE || defined free)))
840   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
841 < #   ifndef _STDLIB_H
842 < #    define _STDLIB_H 1
841 > #   ifndef EXIT_SUCCESS
842 > #    define EXIT_SUCCESS 0
843   #   endif
844   #  endif
845   #  ifndef YYMALLOC
846   #   define YYMALLOC malloc
847 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
847 > #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
848       || defined __cplusplus || defined _MSC_VER)
849   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
850   #   endif
851   #  endif
852   #  ifndef YYFREE
853   #   define YYFREE free
854 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
854 > #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
855       || defined __cplusplus || defined _MSC_VER)
856   void free (void *); /* INFRINGES ON USER NAME SPACE */
857   #   endif
# Line 933 | Line 880 | union yyalloc
880       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
881        + YYSTACK_GAP_MAXIMUM)
882  
883 < /* Copy COUNT objects from FROM to TO.  The source and destination do
937 <   not overlap.  */
938 < # ifndef YYCOPY
939 < #  if defined __GNUC__ && 1 < __GNUC__
940 < #   define YYCOPY(To, From, Count) \
941 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
942 < #  else
943 < #   define YYCOPY(To, From, Count)              \
944 <      do                                        \
945 <        {                                       \
946 <          YYSIZE_T yyi;                         \
947 <          for (yyi = 0; yyi < (Count); yyi++)   \
948 <            (To)[yyi] = (From)[yyi];            \
949 <        }                                       \
950 <      while (YYID (0))
951 < #  endif
952 < # endif
883 > # define YYCOPY_NEEDED 1
884  
885   /* Relocate STACK from its old location to the new one.  The
886     local variables YYSIZE and YYSTACKSIZE give the old and new number of
# Line 969 | Line 900 | union yyalloc
900  
901   #endif
902  
903 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
904 + /* Copy COUNT objects from SRC to DST.  The source and destination do
905 +   not overlap.  */
906 + # ifndef YYCOPY
907 + #  if defined __GNUC__ && 1 < __GNUC__
908 + #   define YYCOPY(Dst, Src, Count) \
909 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
910 + #  else
911 + #   define YYCOPY(Dst, Src, Count)              \
912 +      do                                        \
913 +        {                                       \
914 +          YYSIZE_T yyi;                         \
915 +          for (yyi = 0; yyi < (Count); yyi++)   \
916 +            (Dst)[yyi] = (Src)[yyi];            \
917 +        }                                       \
918 +      while (YYID (0))
919 + #  endif
920 + # endif
921 + #endif /* !YYCOPY_NEEDED */
922 +
923   /* YYFINAL -- State number of the termination state.  */
924   #define YYFINAL  2
925   /* YYLAST -- Last index in YYTABLE.  */
926 < #define YYLAST   1413
926 > #define YYLAST   1177
927  
928   /* YYNTOKENS -- Number of terminals.  */
929 < #define YYNTOKENS  267
929 > #define YYNTOKENS  226
930   /* YYNNTS -- Number of nonterminals.  */
931 < #define YYNNTS  346
931 > #define YYNNTS  280
932   /* YYNRULES -- Number of rules.  */
933 < #define YYNRULES  743
933 > #define YYNRULES  628
934   /* YYNRULES -- Number of states.  */
935 < #define YYNSTATES  1494
935 > #define YYNSTATES  1230
936  
937   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
938   #define YYUNDEFTOK  2
939 < #define YYMAXUTOK   516
939 > #define YYMAXUTOK   475
940  
941   #define YYTRANSLATE(YYX)                                                \
942    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
943  
944   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
945 < static const yytype_uint16 yytranslate[] =
945 > static const yytype_uint8 yytranslate[] =
946   {
947         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
948         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
949         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
950         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
951 <       2,     2,     2,     2,   266,     2,     2,     2,     2,     2,
952 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
953 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
951 >       2,     2,     2,     2,   225,     2,     2,     2,     2,     2,
952 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   221,
953 >       2,   224,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959 <       2,     2,     2,   264,     2,   263,     2,     2,     2,     2,
959 >       2,     2,     2,   223,     2,   222,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1040 | Line 991 | static const yytype_uint16 yytranslate[]
991       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
992       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
993       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
994 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1044 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1045 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1046 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1047 <     255,   256,   257,   258,   259,   260,   261
994 >     215,   216,   217,   218,   219,   220
995   };
996  
997   #if YYDEBUG
# Line 1055 | Line 1002 | static const yytype_uint16 yyprhs[] =
1002         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1003        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1004        39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1005 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1006 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1007 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1008 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1009 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1010 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1011 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1012 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1013 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1014 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1015 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1016 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
1017 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
1018 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
1019 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
1020 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
1021 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
1022 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
1023 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
1024 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
1025 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
1026 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1027 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1028 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1029 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1030 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1031 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1032 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1033 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1034 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1035 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1036 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1037 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1038 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1039 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1040 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1041 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1042 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1043 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1044 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1045 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1046 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1047 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1048 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1049 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1050 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1051 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1052 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1053 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1054 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1055 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1056 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1057 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1058 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1059 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1060 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1061 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1062 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1063 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1064 <    1920,  1922,  1924,  1926,  1928,  1930,  1932,  1934,  1936,  1938,
1118 <    1940,  1942,  1943,  1949,  1953,  1955,  1957,  1959,  1961,  1963,
1119 <    1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,  1981,  1983,
1120 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1121 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1122 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1123 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1124 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1125 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1126 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1127 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1128 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1129 <    2280,  2285,  2290,  2295
1005 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1006 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1007 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1008 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1009 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1010 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1011 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1012 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1013 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1014 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1015 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1016 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1017 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1018 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1019 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1020 >     526,   532,   536,   538,   540,   542,   544,   546,   548,   550,
1021 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1022 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1023 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1024 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1025 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1026 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1027 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1028 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1029 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1030 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1031 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1032 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1033 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1034 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1035 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1036 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1037 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1038 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1039 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1040 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1041 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1042 >    1185,  1190,  1191,  1198,  1201,  1203,  1205,  1207,  1209,  1214,
1043 >    1219,  1220,  1227,  1230,  1232,  1234,  1236,  1238,  1243,  1248,
1044 >    1254,  1257,  1259,  1261,  1263,  1268,  1269,  1276,  1279,  1281,
1045 >    1283,  1285,  1287,  1292,  1297,  1303,  1306,  1308,  1310,  1312,
1046 >    1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,
1047 >    1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,
1048 >    1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
1049 >    1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,
1050 >    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1421,
1051 >    1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,  1466,  1471,
1052 >    1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,  1516,  1521,
1053 >    1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,  1566,  1571,
1054 >    1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,  1616,  1621,
1055 >    1626,  1631,  1632,  1638,  1642,  1644,  1646,  1648,  1650,  1652,
1056 >    1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
1057 >    1674,  1676,  1678,  1680,  1682,  1684,  1685,  1691,  1695,  1697,
1058 >    1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,  1715,  1717,
1059 >    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1060 >    1739,  1744,  1749,  1754,  1760,  1763,  1765,  1767,  1769,  1771,
1061 >    1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1791,
1062 >    1796,  1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,
1063 >    1846,  1851,  1857,  1860,  1862,  1864,  1866,  1868,  1870,  1872,
1064 >    1874,  1876,  1878,  1883,  1888,  1893,  1898,  1903,  1908
1065   };
1066  
1067   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1068   static const yytype_int16 yyrhs[] =
1069   {
1070 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1071 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1072 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1073 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1074 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1075 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1076 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1077 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1078 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1079 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1080 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1081 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1082 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1083 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1084 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1085 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1086 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1087 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1088 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1089 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1090 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1091 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1092 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1093 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1094 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1095 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1096 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1097 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1098 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1099 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1100 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1101 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1102 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1103 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1104 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1105 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1106 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1107 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1108 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1109 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1110 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1111 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1112 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1113 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1114 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1115 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1116 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1117 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1118 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1119 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1120 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1121 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1122 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1123 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1124 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1125 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1126 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1127 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1128 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1129 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1130 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1131 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1132 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1133 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1134 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1135 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1136 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1137 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1138 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1139 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1140 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1141 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1142 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1143 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1144 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1145 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1146 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1147 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1148 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1149 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1150 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1151 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1152 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1153 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1154 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1155 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1156 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1157 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1158 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1159 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1160 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1161 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1162 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1163 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1164 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1165 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1166 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1167 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1168 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1169 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1170 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1171 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1172 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1173 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1174 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1175 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1176 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1177 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1178 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1179 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1180 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1181 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1182 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1183 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1184 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1185 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1186 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1187 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1188 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1189 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1190 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1191 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1192 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1193 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1194 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1195 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1196 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1197 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1198 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1199 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1200 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1201 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1202 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1203 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1204 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1205 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1206 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1207 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1208 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1209 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1210 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1211 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1212 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1213 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1214 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1215 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1216 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1217 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1218 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1219 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1220 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1221 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1222 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1223 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1224 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1225 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1226 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1227 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1228 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1229 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1230 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1231 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1232 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1233 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1234 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1235 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1236 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1237 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1238 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1239 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1240 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1241 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1242 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1243 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1244 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1245 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1246 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1247 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1248 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1249 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1250 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1251 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1252 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1253 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1254 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1255 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1256 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1257 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1258 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1259 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1260 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1261 <     212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,    -1,
1327 <     232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,    -1,
1328 <     234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,    -1,
1329 <     220,    -1,    -1,   141,   558,   265,   559,   262,    -1,   559,
1330 <     266,   560,    -1,   560,    -1,   206,    -1,   209,    -1,   210,
1331 <      -1,   212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,
1332 <      -1,   232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,
1333 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1334 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1335 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1336 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1337 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1338 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1339 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1340 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1341 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1342 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1343 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1344 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1345 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1346 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1347 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1348 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1349 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1350 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1351 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1352 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1353 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1354 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1355 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1356 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1357 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1358 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1359 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1360 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1361 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1362 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1363 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1364 <      41,   265,   199,   262,    -1,    82,   265,   199,   262,    -1
1070 >     227,     0,    -1,    -1,   227,   228,    -1,   262,    -1,   268,
1071 >      -1,   282,    -1,   481,    -1,   300,    -1,   323,    -1,   337,
1072 >      -1,   238,    -1,   496,    -1,   352,    -1,   359,    -1,   363,
1073 >      -1,   373,    -1,   382,    -1,   402,    -1,   408,    -1,   414,
1074 >      -1,   424,    -1,   418,    -1,   233,    -1,     1,   221,    -1,
1075 >       1,   222,    -1,    -1,   230,    -1,   105,   229,    -1,   105,
1076 >     140,   229,    -1,   105,   141,   229,    -1,   105,   142,   229,
1077 >      -1,   105,   143,   229,    -1,   105,   144,   229,    -1,   105,
1078 >     145,   229,    -1,   105,   146,   229,    -1,    -1,   232,    -1,
1079 >     105,   231,    -1,   105,     9,   231,    -1,   105,    10,   231,
1080 >      -1,   105,    11,   231,    -1,    95,   223,   234,   222,   221,
1081 >      -1,   234,   235,    -1,   235,    -1,   236,    -1,   237,    -1,
1082 >       1,   221,    -1,    94,   224,   123,   221,    -1,   119,   224,
1083 >     123,   221,    -1,   150,   223,   239,   222,   221,    -1,   239,
1084 >     240,    -1,   240,    -1,   251,    -1,   256,    -1,   261,    -1,
1085 >     253,    -1,   254,    -1,   255,    -1,   258,    -1,   259,    -1,
1086 >     260,    -1,   249,    -1,   248,    -1,   257,    -1,   252,    -1,
1087 >     247,    -1,   241,    -1,   242,    -1,   250,    -1,     1,   221,
1088 >      -1,   134,   224,   243,   221,    -1,   135,   224,   245,   221,
1089 >      -1,   243,   225,   244,    -1,   244,    -1,   136,    -1,   137,
1090 >      -1,   245,   225,   246,    -1,   246,    -1,   136,    -1,   137,
1091 >      -1,   132,   224,   123,   221,    -1,   130,   224,   123,   221,
1092 >      -1,   133,   224,   123,   221,    -1,   175,   224,   123,   221,
1093 >      -1,    96,   224,   123,   221,    -1,   151,   224,   123,   221,
1094 >      -1,    24,   224,   123,   221,    -1,    99,   224,   123,   221,
1095 >      -1,    98,   224,   123,   221,    -1,   215,   224,   123,   221,
1096 >      -1,   216,   224,   123,   221,    -1,   185,   224,   105,   221,
1097 >      -1,    82,   224,   105,   221,    -1,    86,   224,   105,   221,
1098 >      -1,    58,   224,   164,   221,    -1,     4,   223,   263,   222,
1099 >     221,    -1,   263,   264,    -1,   264,    -1,   265,    -1,   267,
1100 >      -1,   266,    -1,     1,   221,    -1,    96,   224,   123,   221,
1101 >      -1,    31,   224,   123,   221,    -1,    24,   224,   123,   221,
1102 >      -1,    72,   223,   269,   222,   221,    -1,   269,   270,    -1,
1103 >     270,    -1,   271,    -1,   272,    -1,     1,   221,    -1,   214,
1104 >     224,   164,   221,    -1,    -1,   273,   220,   223,   274,   222,
1105 >     221,    -1,   274,   275,    -1,   275,    -1,   276,    -1,   278,
1106 >      -1,   277,    -1,     1,   221,    -1,    96,   224,   123,   221,
1107 >      -1,   219,   224,   232,   221,    -1,   219,   224,   200,   221,
1108 >      -1,    -1,   155,   279,   224,   280,   221,    -1,   280,   225,
1109 >     281,    -1,   281,    -1,   212,    -1,   108,    -1,    40,    -1,
1110 >     178,    -1,    65,    -1,    63,    -1,   177,    -1,    -1,   108,
1111 >     283,   223,   284,   222,   221,    -1,   284,   285,    -1,   285,
1112 >      -1,   286,    -1,   287,    -1,   288,    -1,   292,    -1,   291,
1113 >      -1,   289,    -1,   290,    -1,   296,    -1,     1,   221,    -1,
1114 >      96,   224,   123,   221,    -1,   212,   224,   123,   221,    -1,
1115 >     118,   224,   123,   221,    -1,    32,   224,   164,   221,    -1,
1116 >     131,   224,   123,   221,    -1,    17,   224,   123,   221,    -1,
1117 >      -1,   197,   293,   224,   294,   221,    -1,   294,   225,   295,
1118 >      -1,   295,    -1,   170,    -1,   173,    -1,   174,    -1,   176,
1119 >      -1,   177,    -1,   180,    -1,    51,    -1,   194,    -1,   186,
1120 >      -1,   190,    -1,   198,    -1,   195,    -1,   179,    -1,   188,
1121 >      -1,   192,    -1,   181,    -1,   204,    -1,   171,    -1,   172,
1122 >      -1,   184,    -1,   187,    -1,    -1,    36,   297,   224,   298,
1123 >     221,    -1,   298,   225,   299,    -1,   299,    -1,    47,    -1,
1124 >     128,    -1,    65,    -1,   211,    -1,   178,    -1,   199,    -1,
1125 >     217,    -1,    40,    -1,    25,    -1,   206,    -1,   127,    -1,
1126 >       4,    -1,   188,    -1,   203,    -1,   112,    -1,   129,    -1,
1127 >     193,    -1,    94,    -1,    -1,    17,   301,   223,   302,   222,
1128 >     221,    -1,   302,   303,    -1,   303,    -1,   304,    -1,   314,
1129 >      -1,   315,    -1,   305,    -1,   316,    -1,   306,    -1,   307,
1130 >      -1,   308,    -1,   309,    -1,   310,    -1,   311,    -1,   312,
1131 >      -1,   313,    -1,   317,    -1,   318,    -1,   319,    -1,     1,
1132 >     221,    -1,    96,   224,   123,   221,    -1,   121,   224,   230,
1133 >     221,    -1,   107,   224,   105,   221,    -1,    19,   224,   230,
1134 >     221,    -1,    84,   224,   105,   221,    -1,    78,   224,   105,
1135 >     221,    -1,    80,   224,   105,   221,    -1,    79,   224,   105,
1136 >     221,    -1,   147,   224,   232,   221,    -1,   189,   224,   232,
1137 >     221,    -1,    15,   224,   105,   221,    -1,    16,   224,   105,
1138 >     221,    -1,   106,   224,   105,   221,    -1,    90,   224,   230,
1139 >     221,    -1,    91,   224,   230,   221,    -1,    -1,    36,   320,
1140 >     224,   321,   221,    -1,   321,   225,   322,    -1,   322,    -1,
1141 >      92,    -1,    93,    -1,    -1,    71,   324,   223,   329,   222,
1142 >     221,    -1,    -1,    36,   326,   224,   327,   221,    -1,   327,
1143 >     225,   328,    -1,   328,    -1,   196,    -1,    51,    -1,   191,
1144 >      -1,   329,   330,    -1,   330,    -1,   331,    -1,   325,    -1,
1145 >     335,    -1,   336,    -1,     1,   221,    -1,    -1,   122,   224,
1146 >     333,   332,   221,    -1,   333,   225,   334,    -1,   334,    -1,
1147 >     105,    -1,   105,   168,   105,    -1,    62,   224,   123,   221,
1148 >      -1,    57,   224,   123,   221,    -1,    -1,    48,   338,   223,
1149 >     339,   222,   221,    -1,   339,   340,    -1,   340,    -1,   341,
1150 >      -1,   342,    -1,   343,    -1,   345,    -1,   349,    -1,   350,
1151 >      -1,   351,    -1,   344,    -1,     1,   221,    -1,   212,   224,
1152 >     123,   221,    -1,   118,   224,   123,   221,    -1,    17,   224,
1153 >     123,   221,    -1,    32,   224,   164,   221,    -1,    -1,    36,
1154 >     346,   224,   347,   221,    -1,   347,   225,   348,    -1,   348,
1155 >      -1,   158,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1156 >      -1,   104,    -1,    43,    -1,   139,    -1,   205,    -1,    97,
1157 >      -1,   157,   224,   123,   221,    -1,   126,   224,   123,   221,
1158 >      -1,   125,   224,   105,   221,    -1,    -1,   138,   353,   223,
1159 >     354,   222,   221,    -1,   354,   355,    -1,   355,    -1,   356,
1160 >      -1,   357,    -1,   358,    -1,     1,   221,    -1,    73,   224,
1161 >     123,   221,    -1,   124,   224,   123,   221,    -1,    34,   224,
1162 >     123,   221,    -1,   207,   223,   360,   222,   221,    -1,   360,
1163 >     361,    -1,   361,    -1,   362,    -1,     1,    -1,    96,   224,
1164 >     123,   221,    -1,    -1,   153,   364,   223,   365,   222,   221,
1165 >      -1,   365,   366,    -1,   366,    -1,   367,    -1,   368,    -1,
1166 >     369,    -1,     1,   221,    -1,    96,   224,   123,   221,    -1,
1167 >     212,   224,   123,   221,    -1,    -1,   155,   370,   224,   371,
1168 >     221,    -1,   371,   225,   372,    -1,   372,    -1,    65,    -1,
1169 >     211,    -1,   178,    -1,   199,    -1,   217,    -1,   202,    -1,
1170 >     138,    -1,   201,    -1,   184,    -1,   169,    -1,    -1,   154,
1171 >     374,   223,   375,   222,   221,    -1,   375,   376,    -1,   376,
1172 >      -1,   377,    -1,   378,    -1,     1,   221,    -1,    96,   224,
1173 >     123,   221,    -1,    -1,   155,   379,   224,   380,   221,    -1,
1174 >     380,   225,   381,    -1,   381,    -1,    65,    -1,   211,    -1,
1175 >     178,    -1,   199,    -1,   217,    -1,   202,    -1,   138,    -1,
1176 >     201,    -1,   184,    -1,   169,    -1,    -1,    18,   383,   223,
1177 >     384,   222,   221,    -1,   384,   385,    -1,   385,    -1,   386,
1178 >      -1,   387,    -1,   388,    -1,   389,    -1,   390,    -1,   392,
1179 >      -1,   391,    -1,   401,    -1,   393,    -1,   398,    -1,   399,
1180 >      -1,   400,    -1,   397,    -1,     1,   221,    -1,    96,   224,
1181 >     123,   221,    -1,    57,   224,   123,   221,    -1,   215,   224,
1182 >     123,   221,    -1,   148,   224,   123,   221,    -1,     3,   224,
1183 >     123,   221,    -1,   122,   224,   105,   221,    -1,     5,   224,
1184 >     182,   221,    -1,     5,   224,   183,   221,    -1,    -1,    36,
1185 >     394,   224,   395,   221,    -1,   395,   225,   396,    -1,   396,
1186 >      -1,     8,    -1,   196,    -1,    32,   224,   164,   221,    -1,
1187 >      59,   224,   123,   221,    -1,    69,   224,   123,   221,    -1,
1188 >      17,   224,   123,   221,    -1,   175,   224,   123,   221,    -1,
1189 >      -1,    63,   403,   223,   404,   222,   221,    -1,   404,   405,
1190 >      -1,   405,    -1,   406,    -1,   407,    -1,     1,    -1,   212,
1191 >     224,   123,   221,    -1,   124,   224,   123,   221,    -1,    -1,
1192 >      23,   409,   223,   410,   222,   221,    -1,   410,   411,    -1,
1193 >     411,    -1,   412,    -1,   413,    -1,     1,    -1,    62,   224,
1194 >     123,   221,    -1,   124,   224,   123,   221,    -1,    34,   223,
1195 >     415,   222,   221,    -1,   415,   416,    -1,   416,    -1,   417,
1196 >      -1,     1,    -1,    62,   224,   123,   221,    -1,    -1,    38,
1197 >     419,   223,   420,   222,   221,    -1,   420,   421,    -1,   421,
1198 >      -1,   422,    -1,   423,    -1,     1,    -1,    96,   224,   123,
1199 >     221,    -1,   124,   224,   123,   221,    -1,    39,   223,   425,
1200 >     222,   221,    -1,   425,   426,    -1,   426,    -1,   435,    -1,
1201 >     436,    -1,   438,    -1,   439,    -1,   440,    -1,   441,    -1,
1202 >     442,    -1,   443,    -1,   444,    -1,   445,    -1,   434,    -1,
1203 >     447,    -1,   448,    -1,   462,    -1,   450,    -1,   452,    -1,
1204 >     454,    -1,   453,    -1,   457,    -1,   451,    -1,   458,    -1,
1205 >     459,    -1,   460,    -1,   461,    -1,   474,    -1,   463,    -1,
1206 >     464,    -1,   465,    -1,   470,    -1,   455,    -1,   456,    -1,
1207 >     480,    -1,   478,    -1,   479,    -1,   437,    -1,   469,    -1,
1208 >     446,    -1,   467,    -1,   468,    -1,   433,    -1,   428,    -1,
1209 >     429,    -1,   430,    -1,   431,    -1,   432,    -1,   449,    -1,
1210 >     427,    -1,   466,    -1,     1,    -1,    87,   224,   105,   221,
1211 >      -1,    42,   224,   164,   221,    -1,    41,   224,   230,   221,
1212 >      -1,    44,   224,   230,   221,    -1,    45,   224,   105,   221,
1213 >      -1,    46,   224,   105,   221,    -1,   152,   224,   164,   221,
1214 >      -1,    64,   224,   230,   221,    -1,    56,   224,   164,   221,
1215 >      -1,    60,   224,   164,   221,    -1,    28,   224,   164,   221,
1216 >      -1,    35,   224,   164,   221,    -1,     6,   224,   164,   221,
1217 >      -1,    83,   224,   230,   221,    -1,    81,   224,   105,   221,
1218 >      -1,    74,   224,   105,   221,    -1,     7,   224,   230,   221,
1219 >      -1,   167,   224,   230,   221,    -1,   166,   224,   230,   221,
1220 >      -1,    50,   224,   105,   221,    -1,    61,   224,   164,   221,
1221 >      -1,   218,   224,   164,   221,    -1,   159,   224,   164,   221,
1222 >      -1,   162,   224,   164,   221,    -1,   163,   224,   164,   221,
1223 >      -1,   161,   224,   164,   221,    -1,   161,   224,   165,   221,
1224 >      -1,   160,   224,   164,   221,    -1,   160,   224,   165,   221,
1225 >      -1,   116,   224,   230,   221,    -1,    12,   224,   230,   221,
1226 >      -1,   109,   224,   164,   221,    -1,   117,   224,   230,   221,
1227 >      -1,   156,   224,   164,   221,    -1,   103,   224,   164,   221,
1228 >      -1,   210,   224,   164,   221,    -1,   111,   224,   164,   221,
1229 >      -1,    29,   224,   105,   221,    -1,    85,   224,   105,   221,
1230 >      -1,   213,   224,   164,   221,    -1,    30,   224,   123,   221,
1231 >      -1,   208,   224,   123,   221,    -1,   120,   224,   164,   221,
1232 >      -1,    26,   224,   164,   221,    -1,   209,   224,   230,   221,
1233 >      -1,    -1,   113,   471,   224,   472,   221,    -1,   472,   225,
1234 >     473,    -1,   473,    -1,   170,    -1,   173,    -1,   174,    -1,
1235 >     176,    -1,   177,    -1,   180,    -1,    51,    -1,   194,    -1,
1236 >     186,    -1,   190,    -1,   198,    -1,   195,    -1,   179,    -1,
1237 >     188,    -1,   192,    -1,   181,    -1,   204,    -1,   171,    -1,
1238 >     172,    -1,   184,    -1,    -1,   110,   475,   224,   476,   221,
1239 >      -1,   476,   225,   477,    -1,   477,    -1,   170,    -1,   173,
1240 >      -1,   174,    -1,   176,    -1,   177,    -1,   180,    -1,   194,
1241 >      -1,    51,    -1,   186,    -1,   190,    -1,   198,    -1,   195,
1242 >      -1,   179,    -1,   188,    -1,   192,    -1,   181,    -1,   204,
1243 >      -1,   171,    -1,   172,    -1,   184,    -1,   187,    -1,    88,
1244 >     224,   105,   221,    -1,    89,   224,   105,   221,    -1,    20,
1245 >     224,   105,   221,    -1,    14,   223,   482,   222,   221,    -1,
1246 >     482,   483,    -1,   483,    -1,   489,    -1,   485,    -1,   486,
1247 >      -1,   487,    -1,   488,    -1,   490,    -1,   491,    -1,   492,
1248 >      -1,   493,    -1,   494,    -1,   495,    -1,   484,    -1,     1,
1249 >      -1,    27,   224,   164,   221,    -1,    67,   224,   230,   221,
1250 >      -1,    68,   224,   230,   221,    -1,    77,   224,   105,   221,
1251 >      -1,    76,   224,   105,   221,    -1,    75,   224,   105,   221,
1252 >      -1,    22,   224,   105,   221,    -1,    21,   224,   105,   221,
1253 >      -1,   101,   224,   164,   221,    -1,   102,   224,   164,   221,
1254 >      -1,   114,   224,   105,   221,    -1,   115,   224,   230,   221,
1255 >      -1,   149,   223,   497,   222,   221,    -1,   497,   498,    -1,
1256 >     498,    -1,   499,    -1,   500,    -1,   501,    -1,   503,    -1,
1257 >     504,    -1,   502,    -1,   505,    -1,     1,    -1,    37,   224,
1258 >     164,   221,    -1,    54,   224,   164,   221,    -1,    55,   224,
1259 >     164,   221,    -1,    52,   224,   123,   221,    -1,    70,   224,
1260 >     230,   221,    -1,    51,   224,   164,   221,    -1,    53,   224,
1261 >     164,   221,    -1
1262   };
1263  
1264   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1265   static const yytype_uint16 yyrline[] =
1266   {
1267 <       0,   400,   400,   401,   404,   405,   406,   407,   408,   409,
1268 <     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1269 <     420,   421,   422,   423,   424,   425,   429,   429,   430,   434,
1270 <     438,   442,   446,   450,   456,   456,   457,   458,   459,   460,
1271 <     467,   470,   470,   471,   471,   471,   473,   481,   490,   492,
1272 <     492,   493,   493,   494,   494,   495,   495,   496,   497,   497,
1273 <     498,   498,   499,   500,   504,   503,   518,   518,   519,   523,
1274 <     529,   563,   623,   637,   652,   661,   675,   684,   712,   742,
1275 <     765,   787,   789,   789,   790,   790,   791,   791,   793,   802,
1276 <     811,   824,   826,   827,   829,   829,   830,   831,   831,   832,
1277 <     832,   833,   833,   834,   834,   835,   836,   838,   842,   846,
1278 <     853,   860,   867,   874,   881,   888,   895,   902,   906,   910,
1279 <     914,   918,   922,   926,   932,   942,   941,  1035,  1035,  1036,
1280 <    1036,  1037,  1037,  1037,  1037,  1038,  1038,  1039,  1039,  1039,
1281 <    1040,  1040,  1040,  1041,  1041,  1041,  1042,  1042,  1042,  1042,
1282 <    1043,  1043,  1044,  1044,  1046,  1058,  1070,  1104,  1116,  1127,
1283 <    1169,  1179,  1178,  1184,  1184,  1185,  1189,  1193,  1197,  1201,
1284 <    1205,  1209,  1213,  1217,  1221,  1225,  1229,  1233,  1237,  1241,
1285 <    1245,  1249,  1253,  1257,  1263,  1274,  1285,  1296,  1307,  1318,
1286 <    1329,  1340,  1351,  1362,  1373,  1384,  1395,  1406,  1418,  1417,
1287 <    1421,  1421,  1422,  1422,  1423,  1423,  1425,  1432,  1439,  1446,
1288 <    1453,  1460,  1467,  1474,  1481,  1488,  1495,  1502,  1509,  1516,
1289 <    1523,  1530,  1544,  1543,  1593,  1593,  1595,  1595,  1596,  1597,
1290 <    1597,  1598,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
1291 <    1607,  1608,  1610,  1619,  1628,  1634,  1640,  1646,  1652,  1658,
1292 <    1664,  1670,  1676,  1682,  1688,  1694,  1704,  1703,  1720,  1719,
1293 <    1724,  1724,  1725,  1729,  1733,  1741,  1741,  1742,  1742,  1742,
1294 <    1742,  1742,  1744,  1744,  1746,  1746,  1748,  1762,  1782,  1791,
1295 <    1804,  1803,  1872,  1872,  1873,  1873,  1873,  1873,  1874,  1874,
1296 <    1875,  1875,  1875,  1876,  1876,  1877,  1877,  1877,  1878,  1878,
1297 <    1878,  1880,  1917,  1930,  1941,  1950,  1962,  1961,  1965,  1965,
1298 <    1966,  1966,  1967,  1967,  1969,  1977,  1984,  1991,  1998,  2005,
1299 <    2012,  2019,  2026,  2033,  2042,  2053,  2064,  2075,  2086,  2097,
1300 <    2109,  2128,  2138,  2147,  2163,  2162,  2178,  2178,  2179,  2179,
1301 <    2179,  2179,  2181,  2190,  2205,  2219,  2218,  2234,  2234,  2235,
1302 <    2235,  2235,  2235,  2237,  2246,  2269,  2268,  2274,  2274,  2275,
1303 <    2279,  2283,  2287,  2291,  2295,  2299,  2303,  2307,  2311,  2315,
1304 <    2325,  2324,  2341,  2341,  2342,  2342,  2342,  2344,  2351,  2350,
1305 <    2356,  2356,  2357,  2361,  2365,  2369,  2373,  2377,  2381,  2385,
1306 <    2389,  2393,  2397,  2407,  2406,  2552,  2552,  2553,  2553,  2554,
1307 <    2554,  2554,  2555,  2555,  2556,  2556,  2557,  2557,  2557,  2558,
1308 <    2558,  2558,  2559,  2559,  2559,  2560,  2560,  2561,  2561,  2563,
1309 <    2575,  2587,  2596,  2622,  2640,  2658,  2664,  2668,  2676,  2686,
1310 <    2685,  2689,  2689,  2690,  2690,  2691,  2691,  2693,  2704,  2711,
1311 <    2718,  2725,  2735,  2776,  2787,  2798,  2813,  2824,  2835,  2848,
1312 <    2861,  2870,  2906,  2905,  2970,  2969,  2973,  2973,  2974,  2980,
1313 <    2980,  2981,  2981,  2981,  2981,  2983,  3002,  3012,  3011,  3033,
1314 <    3033,  3034,  3034,  3034,  3036,  3045,  3057,  3059,  3059,  3060,
1315 <    3060,  3062,  3084,  3083,  3126,  3125,  3129,  3129,  3130,  3136,
1316 <    3136,  3137,  3137,  3137,  3137,  3139,  3145,  3154,  3157,  3157,
1317 <    3158,  3158,  3159,  3159,  3160,  3160,  3161,  3161,  3162,  3162,
1318 <    3163,  3163,  3164,  3164,  3165,  3165,  3166,  3166,  3167,  3167,
1319 <    3168,  3168,  3169,  3169,  3170,  3170,  3171,  3171,  3172,  3172,
1320 <    3173,  3173,  3174,  3174,  3175,  3175,  3176,  3176,  3177,  3177,
1321 <    3178,  3179,  3179,  3180,  3180,  3181,  3181,  3182,  3182,  3183,
1322 <    3183,  3184,  3184,  3185,  3185,  3186,  3187,  3190,  3195,  3200,
1323 <    3205,  3210,  3215,  3220,  3225,  3230,  3235,  3240,  3245,  3250,
1324 <    3255,  3260,  3265,  3270,  3275,  3280,  3286,  3297,  3302,  3311,
1325 <    3316,  3321,  3326,  3331,  3336,  3339,  3344,  3347,  3352,  3357,
1326 <    3362,  3367,  3372,  3377,  3382,  3387,  3392,  3403,  3408,  3413,
1327 <    3418,  3427,  3459,  3477,  3482,  3491,  3496,  3501,  3507,  3506,
1328 <    3511,  3511,  3512,  3515,  3518,  3521,  3524,  3527,  3530,  3533,
1329 <    3536,  3539,  3542,  3545,  3548,  3551,  3554,  3557,  3560,  3563,
1433 <    3566,  3572,  3571,  3576,  3576,  3577,  3580,  3583,  3586,  3589,
1434 <    3592,  3595,  3598,  3601,  3604,  3607,  3610,  3613,  3616,  3619,
1435 <    3622,  3625,  3628,  3631,  3636,  3641,  3646,  3651,  3656,  3665,
1436 <    3664,  3688,  3688,  3689,  3690,  3691,  3692,  3693,  3694,  3695,
1437 <    3697,  3703,  3710,  3709,  3714,  3714,  3715,  3719,  3725,  3759,
1438 <    3769,  3768,  3818,  3818,  3819,  3823,  3832,  3835,  3835,  3836,
1439 <    3836,  3837,  3837,  3838,  3838,  3839,  3839,  3840,  3840,  3841,
1440 <    3842,  3842,  3843,  3843,  3844,  3844,  3845,  3845,  3847,  3852,
1441 <    3857,  3862,  3867,  3872,  3877,  3882,  3887,  3892,  3897,  3902,
1442 <    3907,  3912,  3917,  3922,  3927,  3932,  3940,  3943,  3943,  3944,
1443 <    3944,  3945,  3946,  3947,  3947,  3948,  3949,  3951,  3957,  3963,
1444 <    3972,  3986,  3992,  3998
1267 >       0,   362,   362,   363,   366,   367,   368,   369,   370,   371,
1268 >     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
1269 >     382,   383,   384,   385,   386,   387,   391,   391,   392,   396,
1270 >     400,   404,   408,   412,   416,   420,   426,   426,   427,   428,
1271 >     429,   430,   437,   440,   440,   441,   441,   441,   443,   449,
1272 >     456,   458,   458,   459,   459,   460,   460,   461,   461,   462,
1273 >     462,   463,   463,   464,   464,   465,   465,   466,   466,   467,
1274 >     468,   471,   472,   474,   474,   475,   481,   489,   489,   490,
1275 >     496,   504,   546,   605,   633,   641,   656,   671,   680,   694,
1276 >     703,   731,   761,   786,   808,   830,   839,   841,   841,   842,
1277 >     842,   843,   843,   845,   854,   863,   875,   876,   876,   878,
1278 >     878,   879,   881,   888,   888,   901,   902,   904,   904,   905,
1279 >     905,   907,   915,   918,   924,   923,   929,   929,   930,   934,
1280 >     938,   942,   946,   950,   954,   965,   964,  1041,  1041,  1042,
1281 >    1042,  1042,  1043,  1043,  1043,  1044,  1044,  1044,  1046,  1052,
1282 >    1058,  1064,  1075,  1081,  1088,  1087,  1093,  1093,  1094,  1098,
1283 >    1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,  1134,  1138,
1284 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1181,
1285 >    1180,  1186,  1186,  1187,  1191,  1195,  1199,  1203,  1207,  1211,
1286 >    1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1287 >    1255,  1266,  1265,  1326,  1326,  1327,  1328,  1328,  1329,  1330,
1288 >    1331,  1332,  1333,  1334,  1335,  1336,  1337,  1337,  1338,  1339,
1289 >    1340,  1341,  1343,  1349,  1355,  1361,  1367,  1373,  1379,  1385,
1290 >    1391,  1397,  1404,  1410,  1416,  1422,  1431,  1441,  1440,  1446,
1291 >    1446,  1447,  1451,  1462,  1461,  1468,  1467,  1472,  1472,  1473,
1292 >    1477,  1481,  1487,  1487,  1488,  1488,  1488,  1488,  1488,  1490,
1293 >    1490,  1492,  1492,  1494,  1508,  1528,  1534,  1544,  1543,  1585,
1294 >    1585,  1586,  1586,  1586,  1586,  1587,  1587,  1587,  1588,  1588,
1295 >    1590,  1596,  1602,  1608,  1620,  1619,  1625,  1625,  1626,  1630,
1296 >    1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1668,  1682,
1297 >    1691,  1705,  1704,  1719,  1719,  1720,  1720,  1720,  1720,  1722,
1298 >    1728,  1734,  1744,  1746,  1746,  1747,  1747,  1749,  1765,  1764,
1299 >    1789,  1789,  1790,  1790,  1790,  1790,  1792,  1798,  1818,  1817,
1300 >    1823,  1823,  1824,  1828,  1832,  1836,  1840,  1844,  1848,  1852,
1301 >    1856,  1860,  1870,  1869,  1890,  1890,  1891,  1891,  1891,  1893,
1302 >    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1303 >    1930,  1934,  1938,  1942,  1952,  1951,  2017,  2017,  2018,  2018,
1304 >    2018,  2019,  2019,  2020,  2020,  2020,  2021,  2021,  2021,  2022,
1305 >    2022,  2023,  2025,  2031,  2037,  2043,  2056,  2069,  2075,  2079,
1306 >    2088,  2087,  2092,  2092,  2093,  2097,  2103,  2114,  2120,  2126,
1307 >    2132,  2148,  2147,  2173,  2173,  2174,  2174,  2174,  2176,  2196,
1308 >    2206,  2205,  2232,  2232,  2233,  2233,  2233,  2235,  2241,  2250,
1309 >    2252,  2252,  2253,  2253,  2255,  2273,  2272,  2295,  2295,  2296,
1310 >    2296,  2296,  2298,  2304,  2313,  2316,  2316,  2317,  2317,  2318,
1311 >    2318,  2319,  2319,  2320,  2320,  2321,  2321,  2322,  2323,  2324,
1312 >    2324,  2325,  2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,
1313 >    2329,  2330,  2330,  2331,  2331,  2332,  2332,  2333,  2333,  2334,
1314 >    2334,  2335,  2336,  2336,  2337,  2338,  2339,  2339,  2340,  2340,
1315 >    2341,  2342,  2343,  2344,  2344,  2345,  2348,  2353,  2359,  2365,
1316 >    2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,  2411,  2416,
1317 >    2421,  2426,  2431,  2436,  2441,  2447,  2458,  2463,  2468,  2473,
1318 >    2478,  2483,  2486,  2491,  2494,  2499,  2504,  2509,  2514,  2519,
1319 >    2524,  2529,  2534,  2539,  2544,  2549,  2554,  2563,  2572,  2577,
1320 >    2582,  2588,  2587,  2592,  2592,  2593,  2596,  2599,  2602,  2605,
1321 >    2608,  2611,  2614,  2617,  2620,  2623,  2626,  2629,  2632,  2635,
1322 >    2638,  2641,  2644,  2647,  2650,  2656,  2655,  2660,  2660,  2661,
1323 >    2664,  2667,  2670,  2673,  2676,  2679,  2682,  2685,  2688,  2691,
1324 >    2694,  2697,  2700,  2703,  2706,  2709,  2712,  2715,  2718,  2721,
1325 >    2726,  2731,  2736,  2745,  2748,  2748,  2749,  2750,  2750,  2751,
1326 >    2751,  2752,  2753,  2754,  2755,  2756,  2756,  2757,  2757,  2759,
1327 >    2764,  2769,  2774,  2779,  2784,  2789,  2794,  2799,  2804,  2809,
1328 >    2814,  2822,  2825,  2825,  2826,  2826,  2827,  2828,  2829,  2829,
1329 >    2830,  2831,  2833,  2839,  2845,  2851,  2860,  2874,  2880
1330   };
1331   #endif
1332  
1333 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1333 > #if YYDEBUG || YYERROR_VERBOSE || 0
1334   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1335     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1336   static const char *const yytname[] =
1337   {
1338 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1339 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1340 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1341 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1342 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1343 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1344 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1345 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1346 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1347 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1348 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1464 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1465 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1466 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1467 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1468 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1338 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1339 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1340 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1341 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1342 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1343 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1344 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1345 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1346 >  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1347 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1348 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1349    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1350 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1351 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1352 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1353 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1354 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1355 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1356 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1357 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1358 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1359 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1360 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1350 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1351 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1352 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1353 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1354 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1355 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1356 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1357 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1358 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1359 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1360 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1361    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1362 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1363 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1364 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1365 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1366 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1367 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1368 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1369 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1370 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1371 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1372 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1373 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1374 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1375 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1376 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1377 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1498 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1499 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1362 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1363 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1364 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1365 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1366 >  "PING_TIME", "PORT", "QSTRING", "REASON", "REDIRPORT", "REDIRSERV",
1367 >  "REHASH", "REMOTE", "REMOTEBAN", "RSA_PRIVATE_KEY_FILE",
1368 >  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1369 >  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1370 >  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1371 >  "MONTHS", "YEARS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO",
1372 >  "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE",
1373 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1374 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1375 >  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1376 >  "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1377 >  "T_CCONN_FULL", "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE",
1378    "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1379 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1380 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1381 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1382 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1383 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1384 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1385 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1508 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1379 >  "T_MAX_CLIENTS", "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ",
1380 >  "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY",
1381 >  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1382 >  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART",
1383 >  "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD",
1384 >  "UNKLINE", "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1385 >  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1386    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1387    "sizespec", "modules_entry", "modules_items", "modules_item",
1388    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1389 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1390 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1391 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1389 >  "serverinfo_item", "serverinfo_ssl_client_method",
1390 >  "serverinfo_ssl_server_method", "client_method_types",
1391 >  "client_method_type_item", "server_method_types",
1392 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1393 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1394 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1395    "serverinfo_description", "serverinfo_network_name",
1396    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1397 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1398 <  "admin_item", "admin_name", "admin_email", "admin_description",
1399 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1400 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1401 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1402 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1403 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1404 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1405 <  "oper_user", "oper_password", "oper_encrypted",
1406 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1407 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1408 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1409 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1530 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1531 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1532 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1533 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1534 <  "class_name_t", "class_ping_time", "class_ping_warning",
1397 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1398 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1399 >  "admin_items", "admin_item", "admin_name", "admin_email",
1400 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1401 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1402 >  "logging_file_item", "logging_file_name", "logging_file_size",
1403 >  "logging_file_type", "$@2", "logging_file_type_items",
1404 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1405 >  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1406 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1407 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1408 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1409 >  "class_items", "class_item", "class_name", "class_ping_time",
1410    "class_number_per_ip", "class_connectfreq", "class_max_number",
1411    "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1412 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1413 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1414 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1415 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1416 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1417 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1418 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1419 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1420 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1421 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1422 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1423 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1424 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1425 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1426 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1427 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1428 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1554 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1412 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1413 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1414 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1415 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1416 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1417 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1418 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1419 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1420 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1421 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1422 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1423 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1424 >  "shared_items", "shared_item", "shared_name", "shared_user",
1425 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1426 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1427 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1428 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1429    "connect_host", "connect_vhost", "connect_send_password",
1430    "connect_accept_password", "connect_port", "connect_aftype",
1431 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1432 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1433 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1434 <  "connect_compressed", "connect_auto", "connect_topicburst",
1435 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1436 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1437 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1438 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1439 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1440 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1441 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1442 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1443 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1444 <  "general_gline_min_cidr6", "general_burst_away",
1445 <  "general_use_whois_actually", "general_reject_hold_time",
1446 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1447 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1448 <  "general_disable_remote_commands", "general_failed_oper_notice",
1449 <  "general_anti_nick_flood", "general_max_nick_time",
1450 <  "general_max_nick_changes", "general_max_accept",
1451 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1452 <  "general_ts_max_delta", "general_havent_read_conf",
1453 <  "general_kline_with_reason", "general_kline_reason",
1454 <  "general_invisible_on_connect", "general_warn_no_nline",
1455 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1456 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1457 <  "general_stats_i_oper_only", "general_pace_wait",
1584 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1585 <  "general_pace_wait_simple", "general_short_motd",
1586 <  "general_no_oper_flood", "general_true_no_oper_flood",
1587 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1588 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1589 <  "general_default_cipher_preference", "general_compression_level",
1590 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1431 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1432 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1433 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1434 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1435 >  "$@21", "deny_items", "deny_item", "deny_ip", "deny_reason",
1436 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1437 >  "gecos_entry", "$@22", "gecos_items", "gecos_item", "gecos_name",
1438 >  "gecos_reason", "general_entry", "general_items", "general_item",
1439 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1440 >  "general_gline_request_duration", "general_gline_min_cidr",
1441 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1442 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1443 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1444 >  "general_failed_oper_notice", "general_anti_nick_flood",
1445 >  "general_max_nick_time", "general_max_nick_changes",
1446 >  "general_max_accept", "general_anti_spam_exit_message_time",
1447 >  "general_ts_warn_delta", "general_ts_max_delta",
1448 >  "general_havent_read_conf", "general_invisible_on_connect",
1449 >  "general_warn_no_nline", "general_stats_e_disabled",
1450 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1451 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1452 >  "general_pace_wait", "general_caller_id_wait",
1453 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1454 >  "general_short_motd", "general_no_oper_flood",
1455 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1456 >  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1457 >  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1458    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1459 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1460 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1459 >  "$@23", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1460 >  "$@24", "umode_items", "umode_item", "general_min_nonwildcard",
1461    "general_min_nonwildcard_simple", "general_default_floodcount",
1462 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1463 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1464 <  "gline_logging", "$@32", "gline_logging_types",
1465 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1599 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1600 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1601 <  "channel_restrict_channels", "channel_disable_local_channels",
1602 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1603 <  "channel_knock_delay", "channel_knock_delay_channel",
1604 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1462 >  "channel_entry", "channel_items", "channel_item",
1463 >  "channel_disable_fake_channels", "channel_knock_delay",
1464 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1465 >  "channel_max_chans_per_oper", "channel_max_bans",
1466    "channel_default_split_user_count", "channel_default_split_server_count",
1467    "channel_no_create_on_split", "channel_no_join_on_split",
1468 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1469 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1470 <  "serverhide_flatten_links", "serverhide_hide_servers",
1468 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1469 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1470 >  "serverhide_hide_servers", "serverhide_hide_services",
1471    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1472 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1472 >  "serverhide_hide_server_ips", YY_NULL
1473   };
1474   #endif
1475  
# Line 1639 | Line 1500 | static const yytype_uint16 yytoknum[] =
1500       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1501       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1502       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1503 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1643 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1644 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1645 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1646 <     515,   516,    59,   125,   123,    61,    44
1503 >     475,    59,   125,   123,    61,    44
1504   };
1505   # endif
1506  
1507   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1508   static const yytype_uint16 yyr1[] =
1509   {
1510 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1511 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1512 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1513 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1514 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1515 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1516 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1517 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1518 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1519 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1520 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1521 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1522 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1523 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1524 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1525 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1526 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1527 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1528 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1529 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1530 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1531 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1532 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1533 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1534 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1535 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1536 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1537 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1538 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1539 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1540 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1541 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1542 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1543 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1544 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1545 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1546 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1547 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1548 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1549 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1550 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1551 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1552 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1553 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1554 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1555 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1556 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1557 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1558 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1559 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1560 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1561 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1562 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1563 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1564 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1565 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1566 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1567 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1568 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1569 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1570 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1571 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1572 <     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
1716 <     556,   558,   557,   559,   559,   560,   560,   560,   560,   560,
1717 <     560,   560,   560,   560,   560,   560,   560,   560,   560,   560,
1718 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1719 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1720 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1721 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1722 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1723 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1724 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1725 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1726 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1727 <     609,   610,   611,   612
1510 >       0,   226,   227,   227,   228,   228,   228,   228,   228,   228,
1511 >     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
1512 >     228,   228,   228,   228,   228,   228,   229,   229,   230,   230,
1513 >     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
1514 >     232,   232,   233,   234,   234,   235,   235,   235,   236,   237,
1515 >     238,   239,   239,   240,   240,   240,   240,   240,   240,   240,
1516 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1517 >     240,   241,   242,   243,   243,   244,   244,   245,   245,   246,
1518 >     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1519 >     256,   257,   258,   259,   260,   261,   262,   263,   263,   264,
1520 >     264,   264,   264,   265,   266,   267,   268,   269,   269,   270,
1521 >     270,   270,   271,   273,   272,   274,   274,   275,   275,   275,
1522 >     275,   276,   277,   277,   279,   278,   280,   280,   281,   281,
1523 >     281,   281,   281,   281,   281,   283,   282,   284,   284,   285,
1524 >     285,   285,   285,   285,   285,   285,   285,   285,   286,   287,
1525 >     288,   289,   290,   291,   293,   292,   294,   294,   295,   295,
1526 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1527 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   297,
1528 >     296,   298,   298,   299,   299,   299,   299,   299,   299,   299,
1529 >     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
1530 >     299,   301,   300,   302,   302,   303,   303,   303,   303,   303,
1531 >     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1532 >     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1533 >     312,   313,   314,   315,   316,   317,   318,   320,   319,   321,
1534 >     321,   322,   322,   324,   323,   326,   325,   327,   327,   328,
1535 >     328,   328,   329,   329,   330,   330,   330,   330,   330,   332,
1536 >     331,   333,   333,   334,   334,   335,   336,   338,   337,   339,
1537 >     339,   340,   340,   340,   340,   340,   340,   340,   340,   340,
1538 >     341,   342,   343,   344,   346,   345,   347,   347,   348,   348,
1539 >     348,   348,   348,   348,   348,   348,   348,   348,   349,   350,
1540 >     351,   353,   352,   354,   354,   355,   355,   355,   355,   356,
1541 >     357,   358,   359,   360,   360,   361,   361,   362,   364,   363,
1542 >     365,   365,   366,   366,   366,   366,   367,   368,   370,   369,
1543 >     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1544 >     372,   372,   374,   373,   375,   375,   376,   376,   376,   377,
1545 >     379,   378,   380,   380,   381,   381,   381,   381,   381,   381,
1546 >     381,   381,   381,   381,   383,   382,   384,   384,   385,   385,
1547 >     385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
1548 >     385,   385,   386,   387,   388,   389,   390,   391,   392,   392,
1549 >     394,   393,   395,   395,   396,   396,   397,   398,   399,   400,
1550 >     401,   403,   402,   404,   404,   405,   405,   405,   406,   407,
1551 >     409,   408,   410,   410,   411,   411,   411,   412,   413,   414,
1552 >     415,   415,   416,   416,   417,   419,   418,   420,   420,   421,
1553 >     421,   421,   422,   423,   424,   425,   425,   426,   426,   426,
1554 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1555 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1556 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1557 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1558 >     426,   426,   426,   426,   426,   426,   427,   428,   429,   430,
1559 >     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
1560 >     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
1561 >     451,   452,   452,   453,   453,   454,   455,   456,   457,   458,
1562 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1563 >     469,   471,   470,   472,   472,   473,   473,   473,   473,   473,
1564 >     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1565 >     473,   473,   473,   473,   473,   475,   474,   476,   476,   477,
1566 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1567 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1568 >     478,   479,   480,   481,   482,   482,   483,   483,   483,   483,
1569 >     483,   483,   483,   483,   483,   483,   483,   483,   483,   484,
1570 >     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1571 >     495,   496,   497,   497,   498,   498,   498,   498,   498,   498,
1572 >     498,   498,   499,   500,   501,   502,   503,   504,   505
1573   };
1574  
1575   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1733 | Line 1578 | static const yytype_uint8 yyr2[] =
1578         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1579         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1580         1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1581 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1582 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1583 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1739 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1740 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1741 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1742 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1743 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1744 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1745 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1746 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1747 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1748 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1749 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1581 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1582 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1583 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1584         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1585 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1586 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1587 <       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1588 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1589 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1585 >       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1586 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1587 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1588 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1589 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1590 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1591 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1592 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1593 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1594         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1596 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1759 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1760 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1761 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1595 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1596 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1598 <       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1764 <       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1765 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1766 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1767 <       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1768 <       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1598 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1599         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1600 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1600 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1601 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1602 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1603 >       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1604 >       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1605 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1606 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1607 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1608 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1609 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1610 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1611         3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1612 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1612 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1613 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1614 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1615         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1616 <       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1617 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1618 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1619 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1620 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1621 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1780 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1781 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1782 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1616 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1617 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1618 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1619 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1620 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1621 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
1622         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1623         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1624         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1625         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1626 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1788 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1626 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1627         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1628         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1629         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1630         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1631 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1794 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1631 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1632         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1633 <       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1633 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     1,
1634         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1798       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1799       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1800       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1801       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1635         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1636 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1636 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1637 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1638         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1639 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1640 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1807 <       4,     4,     4,     4
1639 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1640 >       1,     1,     4,     4,     4,     4,     4,     4,     4
1641   };
1642  
1643 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1644 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1643 > /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1644 >   Performed when YYTABLE doesn't specify something else to do.  Zero
1645     means the default is an error.  */
1646   static const yytype_uint16 yydefact[] =
1647   {
1648 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1649 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1650 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1648 >       2,     0,     1,     0,     0,     0,   201,   364,   410,     0,
1649 >     425,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1650 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1651         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1652 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1820 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1821 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1822 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1823 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1825 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1826 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1827 <     396,     0,   480,     0,     0,   478,   479,     0,   556,     0,
1652 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1653         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1655 +       0,     0,    98,    99,   101,   100,   598,     0,     0,     0,
1656         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1657 >     585,   597,   587,   588,   589,   590,   586,   591,   592,   593,
1658 >     594,   595,   596,     0,     0,     0,   423,     0,     0,   421,
1659 >     422,     0,   485,     0,     0,     0,     0,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1833       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1834     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1835     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1836     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1837     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1838     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1839     535,   542,   545,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662 <       0,    93,    94,    95,    98,   105,    99,   103,   100,   101,
1842 <     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1843 <      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1844 <       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1845 <     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1846 <      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1847 <      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1848 <       0,    87,     0,     0,     0,     0,    82,     0,     0,     0,
1662 >       0,   555,     0,   531,     0,     0,     0,     0,     0,     0,
1663         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664 <       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1665 <       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1666 <       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1664 >       0,     0,   436,   483,   477,   478,   479,   480,   481,   476,
1665 >     447,   437,   438,   471,   439,   440,   441,   442,   443,   444,
1666 >     445,   446,   473,   448,   449,   482,   451,   456,   452,   454,
1667 >     453,   466,   467,   455,   457,   458,   459,   460,   450,   462,
1668 >     463,   464,   484,   474,   475,   472,   465,   461,   469,   470,
1669 >     468,     0,     0,     0,     0,     0,     0,   108,   109,   110,
1670 >       0,     0,     0,     0,     0,    44,    45,    46,     0,     0,
1671 >     621,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1672 >     614,   615,   616,   619,   617,   618,   620,     0,     0,     0,
1673         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674 +       0,     0,     0,     0,     0,     0,    52,    67,    68,    66,
1675 +      63,    62,    69,    53,    65,    56,    57,    58,    54,    64,
1676 +      59,    60,    61,    55,     0,     0,   316,     0,     0,   314,
1677 +     315,   102,     0,     0,     0,     0,    97,     0,     0,     0,
1678         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 +     584,     0,     0,     0,     0,   237,     0,     0,     0,     0,
1680 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1681 +     205,   208,   210,   211,   212,   213,   214,   215,   216,   217,
1682 +     206,   207,   209,   218,   219,   220,     0,     0,     0,     0,
1683 +       0,   390,     0,     0,     0,     0,     0,     0,     0,     0,
1684 +       0,   367,   368,   369,   370,   371,   372,   374,   373,   376,
1685 +     380,   377,   378,   379,   375,   416,     0,     0,     0,   413,
1686 +     414,   415,     0,     0,   420,   431,     0,     0,     0,   428,
1687 +     429,   430,     0,     0,     0,     0,     0,     0,     0,     0,
1688         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1858       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1859     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1860     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1861       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1862     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1863     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1864     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1865     268,     0,   266,   267,   269,   270,   106,     0,     0,     0,
1691         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692 <      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1693 <       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1694 <       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1695 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1696 <       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1697 <       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1698 <       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1699 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1692 >       0,   435,     0,     0,     0,   284,     0,     0,     0,     0,
1693 >       0,     0,   270,   271,   272,   273,   278,   274,   275,   276,
1694 >     277,   407,     0,     0,     0,   404,   405,   406,     0,   245,
1695 >       0,     0,     0,   255,     0,   253,   254,   256,   257,   111,
1696 >       0,     0,   107,     0,    47,     0,     0,     0,    43,     0,
1697 >       0,     0,   179,     0,     0,     0,   154,     0,     0,   138,
1698 >     139,   140,   141,   144,   145,   143,   142,   146,     0,     0,
1699 >       0,     0,     0,   304,   305,   306,   307,     0,     0,     0,
1700 >       0,     0,     0,     0,     0,   612,    70,     0,     0,     0,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1703 <     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1704 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1702 >       0,     0,     0,     0,     0,    51,     0,     0,   328,     0,
1703 >       0,   321,   322,   323,   324,     0,     0,   350,     0,   345,
1704 >     346,   347,     0,     0,   313,     0,     0,     0,    96,     0,
1705 >       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1706 >       0,     0,   583,   221,     0,     0,     0,     0,     0,     0,
1707         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708 <     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1709 <     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1710 <       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1883 <     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708 >       0,   203,   381,     0,     0,     0,     0,     0,     0,     0,
1709 >       0,     0,     0,     0,     0,     0,     0,   366,     0,     0,
1710 >       0,   412,     0,   419,     0,     0,     0,   427,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1714         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1716 <     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1717 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1718 <       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1719 <       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1720 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1721 <       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1722 <       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1723 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724 <       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1725 <     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1726 <     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1727 <       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1728 <       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1729 <       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1730 <       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1731 <     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1732 <      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1733 <     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1734 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 <     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1736 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1738 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1739 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1740 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1741 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1742 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1743 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1744 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1745 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1746 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1747 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1748 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1749 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1750 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1751 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1752 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1753 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1754 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1755 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1756 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1757 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1758 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1759 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1760 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1761 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1762 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1763 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1764 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1765 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1766 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1767 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1768 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1769 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1770 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1944 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1945 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1946 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1947 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1948 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1949 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1950 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1951 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1952 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1953 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1954 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1955 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1956 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1957 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1958 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1959 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1960 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1961 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1962 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1963 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1964 <     431,   203,   200,   163
1715 >       0,     0,     0,     0,     0,     0,     0,     0,   434,   279,
1716 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1717 >       0,     0,     0,   403,   258,     0,     0,     0,     0,     0,
1718 >     252,     0,   106,     0,     0,     0,    42,   147,     0,     0,
1719 >       0,     0,     0,     0,     0,     0,     0,   137,   308,     0,
1720 >       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
1721 >       0,   611,     0,     0,     0,     0,     0,     0,     0,     0,
1722 >       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1723 >       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1724 >       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1725 >     104,   103,   606,   605,   599,    26,    26,    26,    26,    26,
1726 >      26,    26,    28,    27,   600,   601,   604,   603,   602,   607,
1727 >     608,   609,   610,     0,     0,     0,     0,     0,     0,     0,
1728 >       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
1729 >     202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 >       0,     0,     0,     0,     0,   365,     0,     0,   411,   424,
1731 >       0,     0,   426,   498,   502,   516,   582,   529,   496,   523,
1732 >     526,   497,   488,   487,   489,   490,   491,   505,   494,   495,
1733 >     506,   493,   501,   500,   499,   524,   486,   580,   581,   520,
1734 >     517,   566,   559,   576,   577,   560,   561,   562,   563,   571,
1735 >     564,   574,   578,   567,   579,   572,   568,   573,   565,   570,
1736 >     569,   575,     0,   558,   522,   541,   535,   552,   553,   536,
1737 >     537,   538,   539,   547,   540,   550,   554,   543,   548,   544,
1738 >     549,   542,   546,   545,   551,     0,   534,   515,   518,   528,
1739 >     492,   519,   508,   513,   514,   511,   512,   509,   510,   504,
1740 >     503,   527,   530,   521,   525,   507,     0,     0,     0,     0,
1741 >       0,     0,     0,     0,   268,     0,     0,   402,     0,     0,
1742 >       0,   263,   259,   262,   244,   112,     0,     0,   124,     0,
1743 >       0,   116,   117,   119,   118,    48,    49,     0,     0,     0,
1744 >       0,     0,     0,     0,     0,   136,     0,     0,     0,   302,
1745 >     622,   627,   625,   628,   623,   624,   626,    87,    95,    93,
1746 >      94,    85,    89,    88,    82,    81,    83,    71,     0,    72,
1747 >       0,    86,    84,    92,    90,    91,     0,     0,     0,   319,
1748 >       0,     0,   343,   317,    29,    30,    31,    32,    33,    34,
1749 >      35,   232,   233,   225,   241,   242,     0,   240,   227,   229,
1750 >     228,   226,   235,   236,   222,   234,   224,   223,    36,    36,
1751 >      36,    38,    37,   230,   231,   386,   388,   389,   399,   396,
1752 >     394,   395,     0,   393,   383,   397,   398,   382,   387,   385,
1753 >     400,   384,   417,   418,   432,   433,   556,     0,   532,     0,
1754 >     282,   283,   292,   289,   294,   291,   290,   297,   293,   295,
1755 >     288,   296,     0,   287,   281,   300,   299,   298,   280,   409,
1756 >     408,   250,   251,   249,     0,   248,   266,   265,     0,     0,
1757 >       0,   120,     0,     0,     0,     0,   115,   153,   151,   194,
1758 >     191,   190,   183,   185,   200,   197,   193,   184,   198,   187,
1759 >     195,   199,   188,   196,   192,   186,   189,     0,   182,   148,
1760 >     150,   152,   164,   158,   175,   176,   159,   160,   161,   162,
1761 >     170,   163,   173,   177,   166,   178,   171,   167,   172,   165,
1762 >     169,   168,   174,     0,   157,   149,   311,   309,   310,    73,
1763 >      77,   326,   332,   338,   341,   334,   340,   335,   339,   337,
1764 >     333,   336,     0,   331,   327,   349,   354,   360,   363,   356,
1765 >     362,   357,   361,   359,   355,   358,     0,   353,   238,     0,
1766 >      39,    40,    41,   391,     0,   557,   533,   285,     0,   246,
1767 >       0,   264,   261,   260,     0,     0,     0,     0,   114,   180,
1768 >       0,   155,     0,   329,     0,   351,     0,   239,   392,   286,
1769 >     247,   121,   130,   133,   132,   129,   134,   131,   128,     0,
1770 >     127,   123,   122,   181,   156,   330,   352,   125,     0,   126
1771   };
1772  
1773   /* YYDEFGOTO[NTERM-NUM].  */
1774   static const yytype_int16 yydefgoto[] =
1775   {
1776 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1777 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1778 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1779 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1780 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1781 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1782 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1783 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1784 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1785 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1786 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1787 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1788 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1789 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1790 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1791 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1792 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1793 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1794 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1795 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1796 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1797 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1798 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1799 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1800 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1801 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1802 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1803 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1998 <     230,   231,   232,   233,   234,   235,   236,   413,  1035,  1036,
1999 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
2000 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
2001 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
2002 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2003 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2004 <     296,   297,   298,   299,   300,   301
1776 >      -1,     1,    24,   782,   783,  1031,  1032,    25,   224,   225,
1777 >     226,   227,    26,   265,   266,   267,   268,   744,   745,   748,
1778 >     749,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1779 >     278,   279,   280,   281,   282,   283,    27,    71,    72,    73,
1780 >      74,    75,    28,   216,   217,   218,   219,   220,   950,   951,
1781 >     952,   953,   954,  1093,  1219,  1220,    29,    60,   498,   499,
1782 >     500,   501,   502,   503,   504,   505,   506,   714,  1143,  1144,
1783 >     507,   710,  1117,  1118,    30,    49,   328,   329,   330,   331,
1784 >     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1785 >     342,   343,   344,   345,   587,  1016,  1017,    31,    57,   473,
1786 >     695,  1084,  1085,   474,   475,   476,  1090,   942,   943,   477,
1787 >     478,    32,    55,   451,   452,   453,   454,   455,   456,   457,
1788 >     682,  1072,  1073,   458,   459,   460,    33,    61,   512,   513,
1789 >     514,   515,   516,    34,   288,   289,   290,    35,    64,   550,
1790 >     551,   552,   553,   554,   758,  1162,  1163,    36,    65,   558,
1791 >     559,   560,   561,   764,  1176,  1177,    37,    50,   360,   361,
1792 >     362,   363,   364,   365,   366,   367,   368,   369,   607,  1042,
1793 >    1043,   370,   371,   372,   373,   374,    38,    56,   464,   465,
1794 >     466,   467,    39,    51,   378,   379,   380,   381,    40,   108,
1795 >     109,   110,    41,    53,   388,   389,   390,   391,    42,   161,
1796 >     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1797 >     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1798 >     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1799 >     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1800 >     202,   203,   204,   205,   206,   422,   905,   906,   207,   420,
1801 >     882,   883,   208,   209,   210,    43,    89,    90,    91,    92,
1802 >      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1803 >      44,   238,   239,   240,   241,   242,   243,   244,   245,   246
1804   };
1805  
1806   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1807     STATE-NUM.  */
1808 < #define YYPACT_NINF -952
1808 > #define YYPACT_NINF -910
1809   static const yytype_int16 yypact[] =
1810   {
1811 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1812 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1813 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1814 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1815 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1816 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1817 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1818 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1819 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1820 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1821 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1822 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1823 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1824 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1825 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1826 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1827 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1828 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1829 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1830 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1831 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1832 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1833 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1834 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1835 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1836 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1837 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1838 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1839 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1840 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
1841 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
1842 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
1843 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
1844 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
1845 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
1846 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
1847 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
1848 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
1849 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
1850 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
1851 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
1852 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
1853 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
1854 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
1855 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
1856 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
1857 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
1858 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1859 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
1860 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
1861 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
1862 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
1863 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
1864 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
1865 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
1866 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
1867 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
1868 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
1869 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
1870 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
1871 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
1872 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
1873 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
1874 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
1875 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
1876 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1877 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1878 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
1879 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
1880 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
1881 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
1882 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
1883 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
1884 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
1885 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
1886 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
1887 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
1888 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
1889 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
1890 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
1891 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
1892 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
1893 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
1894 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1895 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1896 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
1897 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
1898 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
1899 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
1900 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
1901 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1902 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
1903 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
1904 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
1905 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
1906 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
1907 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1908 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1909 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1910 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1911 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1912 <    -952,  -952,  -952,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
1913 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1914 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
1915 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1916 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
1917 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
1918 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
1919 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
1920 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
1921 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1922 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1923 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
1924 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
1925 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
1926 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1927 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
1928 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
1929 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
1930 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
1931 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
1932 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
1933 <    -952,  -952,  -148,  -952,  -952,   815,  -952,   871,  -952,  -952,
2135 <    -952,  -952,  -952,  -145,  -952,  -952,  -952,  -952,  -952,  -129,
2136 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -117,  -952,
2137 <     447,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2138 <    -952,  -952,  -952,  -952,   -35,  -952,  -952,  -952,  -952,  -952,
2139 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2140 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2141 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2142 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2143 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2144 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2145 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2147 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2148 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2149 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2150 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2151 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2152 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2153 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2154 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2157 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2159 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2160 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2161 <    -952,  -952,  -952,  -952
1811 >    -910,   603,  -910,  -199,  -218,  -216,  -910,  -910,  -910,  -192,
1812 >    -910,  -189,  -910,  -910,  -910,  -151,  -149,  -910,  -910,  -137,
1813 >    -130,  -910,  -910,  -125,  -910,  -910,  -910,  -910,  -910,  -910,
1814 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1815 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   366,   848,  -113,
1816 >     -68,   -54,    11,   -41,   331,   -33,   -22,    -9,    61,    57,
1817 >      -7,    -1,   679,   370,     1,    21,     8,   -99,    -5,    22,
1818 >      47,    18,  -910,  -910,  -910,  -910,  -910,    63,    79,    80,
1819 >      83,    90,    91,    92,    93,    94,    95,    97,    98,   191,
1820 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1821 >    -910,  -910,  -910,   629,   506,    29,  -910,    99,    35,  -910,
1822 >    -910,   107,  -910,   104,   105,   109,   112,   118,   128,   129,
1823 >     131,   134,   138,   139,   144,   146,   150,   154,   155,   156,
1824 >     158,   159,   161,   162,   164,   169,   172,   174,   176,   177,
1825 >     178,  -910,   180,  -910,   182,   183,   184,   185,   187,   193,
1826 >     197,   198,   201,   202,   203,   207,   208,   209,   213,   215,
1827 >     219,   117,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1828 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1829 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1830 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1831 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1832 >    -910,   444,    51,   288,    64,   222,    27,  -910,  -910,  -910,
1833 >     120,   194,   225,   231,    60,  -910,  -910,  -910,   498,   330,
1834 >    -910,   233,   235,   239,   240,   241,   243,   247,    14,  -910,
1835 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   217,   248,   249,
1836 >     250,   251,   253,   254,   255,   257,   258,   260,   261,   262,
1837 >     264,   271,   277,   282,   284,   214,  -910,  -910,  -910,  -910,
1838 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1839 >    -910,  -910,  -910,  -910,    17,    13,  -910,   289,    43,  -910,
1840 >    -910,  -910,   218,   347,   389,   293,  -910,   147,   411,   353,
1841 >     413,   413,   414,   415,   417,   360,   363,   423,   413,   308,
1842 >    -910,   312,   311,   313,   319,  -910,   322,   323,   324,   328,
1843 >     329,   332,   334,   335,   336,   340,   344,   349,    10,  -910,
1844 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1845 >    -910,  -910,  -910,  -910,  -910,  -910,   315,   350,   352,   354,
1846 >     356,  -910,   357,   358,   359,   364,   367,   368,   369,   371,
1847 >      75,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1848 >    -910,  -910,  -910,  -910,  -910,  -910,   372,   374,    40,  -910,
1849 >    -910,  -910,   431,   379,  -910,  -910,   382,   384,    69,  -910,
1850 >    -910,  -910,   407,   413,   413,   472,   445,   446,   513,   488,
1851 >     455,   413,   459,   413,   519,   520,   522,   467,   468,   469,
1852 >     413,   529,   530,   413,   531,   533,   534,   535,   479,   482,
1853 >     426,   483,   428,   413,   413,   489,   491,   494,   495,  -117,
1854 >    -101,   496,   497,   413,   413,   539,   413,   500,   503,   504,
1855 >     448,  -910,   449,   447,   453,  -910,   458,   461,   463,   465,
1856 >     466,    23,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1857 >    -910,  -910,   470,   473,    86,  -910,  -910,  -910,   451,  -910,
1858 >     475,   476,   477,  -910,    20,  -910,  -910,  -910,  -910,  -910,
1859 >     515,   462,  -910,   480,  -910,   569,   570,   484,  -910,   493,
1860 >     502,   505,  -910,   514,   516,   521,  -910,   524,   238,  -910,
1861 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   501,   527,
1862 >     542,   543,    26,  -910,  -910,  -910,  -910,   540,   548,   583,
1863 >     553,   554,   563,   413,   507,  -910,  -910,   614,   575,   637,
1864 >     638,   621,   623,   631,   632,   650,   657,    48,    59,   658,
1865 >     660,   653,   666,   668,   566,  -910,   573,   571,  -910,   574,
1866 >      31,  -910,  -910,  -910,  -910,   576,   577,  -910,    34,  -910,
1867 >    -910,  -910,   676,   579,  -910,   582,   592,   596,  -910,   605,
1868 >     607,   610,   619,   611,   625,   626,   634,   636,   640,   642,
1869 >     643,   644,  -910,  -910,   699,   719,   413,   618,   748,   762,
1870 >     766,   767,   413,   413,   750,   769,   771,   413,   772,   772,
1871 >     659,  -910,  -910,   755,   119,   756,   718,   670,   773,   774,
1872 >     775,   777,   787,   778,   779,   780,   674,  -910,   781,   782,
1873 >     685,  -910,   686,  -910,   785,   786,   689,  -910,   690,   691,
1874 >     692,   693,   696,   697,   698,   700,   701,   705,   706,   707,
1875 >     708,   709,   710,   711,   712,   713,   714,   715,   716,   717,
1876 >     720,   721,   722,   723,   724,   725,   598,   726,   664,   727,
1877 >     730,   731,   732,   733,   734,   735,   736,   737,   738,   739,
1878 >     740,   743,   744,   745,   746,   747,   749,   751,  -910,  -910,
1879 >     797,   776,   752,   816,   864,   850,   851,   852,   757,  -910,
1880 >     854,   856,   759,  -910,  -910,   758,   858,   860,   866,   763,
1881 >    -910,   764,  -910,   165,   765,   768,  -910,  -910,   865,   823,
1882 >     770,   867,   868,   869,   783,   870,   784,  -910,  -910,   872,
1883 >     873,   874,   788,  -910,   789,   790,   791,   792,   793,   794,
1884 >     795,  -910,   796,   798,   799,   800,   801,   802,   803,   804,
1885 >     805,   806,  -910,  -910,  -217,  -910,  -910,  -910,  -208,  -910,
1886 >     807,   808,   809,   810,   811,  -910,  -910,   875,   812,   876,
1887 >     813,  -910,  -910,   877,   814,   818,  -910,   819,  -910,  -910,
1888 >    -910,  -910,  -910,  -910,  -910,   413,   413,   413,   413,   413,
1889 >     413,   413,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1890 >    -910,  -910,  -910,   820,   821,   822,   116,   824,   825,   826,
1891 >     827,   828,   829,   830,   831,   832,   833,    28,   834,   835,
1892 >    -910,   836,   837,   838,   839,   840,    -2,   841,   842,   843,
1893 >     844,   845,   846,   847,   849,  -910,   853,   855,  -910,  -910,
1894 >     857,   859,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1895 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1896 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1897 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1898 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1899 >    -910,  -910,  -205,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1900 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1901 >    -910,  -910,  -910,  -910,  -910,  -171,  -910,  -910,  -910,  -910,
1902 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1903 >    -910,  -910,  -910,  -910,  -910,  -910,   861,   862,   518,   863,
1904 >     871,   878,   879,   880,  -910,   881,   882,  -910,    -8,   883,
1905 >     884,   901,   885,  -910,  -910,  -910,   886,   887,  -910,   888,
1906 >      32,  -910,  -910,  -910,  -910,  -910,  -910,   892,   893,   485,
1907 >     894,   895,   896,   635,   897,  -910,   898,   899,   900,  -910,
1908 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1909 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,    48,  -910,
1910 >      59,  -910,  -910,  -910,  -910,  -910,   902,   388,   903,  -910,
1911 >     904,   682,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1912 >    -910,  -910,  -910,  -910,  -910,  -910,  -168,  -910,  -910,  -910,
1913 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   772,   772,
1914 >     772,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1915 >    -910,  -910,  -150,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1916 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   598,  -910,   664,
1917 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1918 >    -910,  -910,  -142,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1919 >    -910,  -910,  -910,  -910,  -140,  -910,  -910,  -910,   913,   866,
1920 >     905,  -910,   910,   906,   -60,   907,  -910,  -910,  -910,  -910,
1921 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1922 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   -65,  -910,  -910,
1923 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1924 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1925 >    -910,  -910,  -910,   -51,  -910,  -910,  -910,  -910,  -910,  -910,
1926 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1927 >    -910,  -910,   -14,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1928 >    -910,  -910,  -910,  -910,  -910,  -910,    -4,  -910,  -910,   116,
1929 >    -910,  -910,  -910,  -910,    -2,  -910,  -910,  -910,   518,  -910,
1930 >      -8,  -910,  -910,  -910,   908,   246,   911,   912,  -910,  -910,
1931 >     485,  -910,   635,  -910,   388,  -910,   682,  -910,  -910,  -910,
1932 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,    39,
1933 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   246,  -910
1934   };
1935  
1936   /* YYPGOTO[NTERM-NUM].  */
1937   static const yytype_int16 yypgoto[] =
1938   {
1939 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1940 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1941 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1942 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1943 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1944 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1945 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1946 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1947 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1948 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1949 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1950 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1951 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1952 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1953 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1954 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1955 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1956 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1957 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1958 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1959 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1960 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1961 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1962 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1963 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1964 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1965 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1966 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2195 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
2196 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2197 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2198 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2199 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2200 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2201 <    -952,  -952,  -952,  -952,  -952,  -952
1939 >    -910,  -910,  -910,   110,  -298,  -909,  -598,  -910,  -910,   914,
1940 >    -910,  -910,  -910,  -910,   741,  -910,  -910,  -910,    15,  -910,
1941 >      12,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1942 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   930,  -910,
1943 >    -910,  -910,  -910,  -910,   890,  -910,  -910,  -910,  -910,    54,
1944 >    -910,  -910,  -910,  -910,  -910,  -220,  -910,  -910,  -910,   537,
1945 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -165,
1946 >    -910,  -910,  -910,  -156,  -910,  -910,  -910,   753,  -910,  -910,
1947 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1948 >    -910,  -910,  -910,  -910,  -910,  -910,  -108,  -910,  -910,  -910,
1949 >    -910,  -910,  -118,  -910,   599,  -910,  -910,  -910,   -12,  -910,
1950 >    -910,  -910,  -910,  -910,   624,  -910,  -910,  -910,  -910,  -910,
1951 >    -910,  -910,  -109,  -910,  -910,  -910,  -910,  -910,  -910,   578,
1952 >    -910,  -910,  -910,  -910,  -910,   889,  -910,  -910,  -910,  -910,
1953 >     536,  -910,  -910,  -910,  -910,  -910,  -119,  -910,  -910,  -910,
1954 >     538,  -910,  -910,  -910,  -910,  -115,  -910,  -910,  -910,   728,
1955 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1956 >     -97,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   630,
1957 >    -910,  -910,  -910,  -910,  -910,   761,  -910,  -910,  -910,  -910,
1958 >     981,  -910,  -910,  -910,  -910,   754,  -910,  -910,  -910,  -910,
1959 >     932,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1960 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1961 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1962 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1963 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,    36,  -910,  -910,
1964 >    -910,    41,  -910,  -910,  -910,  -910,  -910,  1008,  -910,  -910,
1965 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1966 >    -910,  -910,   909,  -910,  -910,  -910,  -910,  -910,  -910,  -910
1967   };
1968  
1969   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1970     positive, shift that token.  If negative, reduce the rule which
1971 <   number is the opposite.  If zero, do what YYDEFACT says.
1972 <   If YYTABLE_NINF, syntax error.  */
1973 < #define YYTABLE_NINF -1
2209 < static const yytype_uint16 yytable[] =
1971 >   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1972 > #define YYTABLE_NINF -114
1973 > static const yytype_int16 yytable[] =
1974   {
1975 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
1976 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
1977 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
1978 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
1979 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
1980 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
1981 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
1982 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
1983 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
1984 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
1985 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
1986 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
1987 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
1988 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
1989 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
1990 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
1991 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
1992 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
1993 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
1994 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
1995 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
1996 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
1997 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
1998 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
1999 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
2000 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
2001 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
2002 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
2003 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
2004 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
2005 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
2006 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
2007 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
2008 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
2009 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
2010 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
2011 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
2012 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
2013 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
2014 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
2015 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
2016 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
2017 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
2018 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
2019 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
2020 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
2021 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
2022 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
2023 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
2024 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
2025 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
2026 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
2027 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
2028 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
2029 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
2030 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
2031 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
2032 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
2033 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
2034 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
2035 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
2036 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
2037 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
2038 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
2039 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
2040 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
2041 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
2042 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
2043 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
2044 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
2045 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
2046 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
2047 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
2048 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
2049 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
2050 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
2051 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
2052 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
2053 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
2054 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
2055 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
2056 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
2057 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
2058 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
2059 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
2060 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
2061 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
2062 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
2063 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
2064 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
2065 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
2066 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
2067 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
2068 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
2069 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
2070 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
2071 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
2072 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
2073 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
2074 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
2075 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
2076 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
2077 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
2078 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
2079 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
2080 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
2081 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
2082 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
2083 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
2084 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
2085 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
2086 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
2087 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
2088 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
2089 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
2326 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
2327 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
2328 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
2329 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
2330 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
2331 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
2332 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
2333 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
2334 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
2335 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
2336 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2337 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2338 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2339 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2340 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2341 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2342 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2343 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2344 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2345 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2346 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2347 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2348 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2349 <    1442,  1443,   520,   673,     0,     0,     0,     0,   748,     0,
1975 >     808,   809,   573,   574,   987,    47,  1040,    48,   988,   286,
1976 >     581,   311,   106,   989,   555,   230,  1056,   990,   546,    67,
1977 >    1057,   468,    45,    46,   442,   312,   313,   508,   214,   314,
1978 >     375,    52,   546,   946,    54,   555,   106,  1028,  1029,  1030,
1979 >     443,   375,    68,  1081,   286,   807,   315,   665,   666,    69,
1980 >    1058,   231,   461,  1178,  1059,   444,   469,  1179,   221,   445,
1981 >     509,   221,   214,   667,   668,   232,   233,   234,   235,   236,
1982 >     385,  1183,    58,   107,    59,  1184,   346,   470,   347,  1187,
1983 >     348,  1189,   471,  1188,   237,  1190,    62,   461,   316,   317,
1984 >     318,   376,   349,    63,   319,   629,   630,   107,    66,   510,
1985 >     320,   321,   376,   637,   287,   639,   322,   350,   385,   556,
1986 >     103,   351,   646,   547,    70,   649,   323,   324,   112,  1180,
1987 >    1181,  1182,   291,   113,   114,   659,   660,   547,   947,   115,
1988 >     556,   325,   352,   807,   353,   671,   672,   116,   674,   287,
1989 >    1196,   446,   472,   117,   354,   118,   119,   120,   447,   448,
1990 >     511,   222,   121,   377,   222,   104,  1199,   326,   122,   123,
1991 >    1200,   124,   125,   126,   377,   386,   946,   127,   557,   105,
1992 >    1201,   355,   548,   128,  1202,   462,   223,   129,   130,   223,
1993 >     449,   131,   111,  1082,   742,   743,   548,   948,  1083,   557,
1994 >     211,   132,    76,   387,  1041,   746,   747,   356,   133,   327,
1995 >     134,   212,   135,   386,   136,   137,   138,  1203,  1014,  1015,
1996 >     462,  1204,    77,    78,   213,   247,   228,  1205,    79,   292,
1997 >     139,  1206,   229,   357,   284,   730,   140,   141,   142,   549,
1998 >     143,   387,   600,   144,   145,   450,   524,   146,   248,   489,
1999 >     295,   215,   699,   549,   285,   688,   293,  -113,   722,   481,
2000 >     358,   949,   569,   760,  1095,   490,   765,   383,    80,    81,
2001 >    1227,   947,   620,   463,  1228,   563,    82,    83,    84,   147,
2002 >     491,   294,   249,   148,   492,   215,   149,   150,   151,   152,
2003 >     153,  -113,   487,   154,   155,   479,  1212,   297,   795,   468,
2004 >     359,   626,    85,    86,   801,   802,   250,   616,   463,   806,
2005 >     251,   812,   813,   298,   299,    87,    88,   300,   692,  1213,
2006 >     252,  1214,   253,   254,   301,   302,   303,   304,   305,   306,
2007 >     948,   307,   308,   382,   469,   156,   157,   158,   392,   393,
2008 >     159,   508,   112,   394,   493,   160,   395,   113,   114,   440,
2009 >     483,   565,   396,   115,   255,   470,   256,   257,   258,   259,
2010 >     471,   116,   397,   398,  1215,   399,   494,   117,   400,   118,
2011 >     119,   120,   401,   402,   509,   260,   121,    67,   403,   495,
2012 >     404,   247,   122,   123,   405,   124,   125,   126,   406,   407,
2013 >     408,   127,   409,   410,   949,   411,   412,   128,   413,   261,
2014 >      68,   129,   130,   414,   248,   131,   415,    69,   416,   262,
2015 >     417,   418,   419,   510,   421,   132,   423,   424,   425,   426,
2016 >     472,   427,   133,   309,   134,   484,   135,   428,   136,   137,
2017 >     138,   429,   430,  1216,  1217,   431,   432,   433,   249,   263,
2018 >     264,   434,   435,   436,   139,   496,   544,   437,   526,   438,
2019 >     140,   141,   142,   439,   143,   442,   480,   144,   145,   485,
2020 >     497,   146,   250,  1152,   511,   486,   251,   517,  1218,   518,
2021 >     716,   443,    70,   519,   520,   521,   252,   522,   253,   254,
2022 >     566,   523,   527,   528,   529,   530,   444,   531,   532,   533,
2023 >     445,   534,   535,   147,   536,   537,   538,   148,   539,  1099,
2024 >     149,   150,   151,   152,   153,   540,  1197,   154,   155,   489,
2025 >     255,   541,   256,   257,   258,   259,   542,   346,   543,   347,
2026 >    1100,   348,   567,   562,   568,   490,   570,   571,   572,   575,
2027 >     576,   260,   577,   349,   578,  1101,  1153,   579,   580,   582,
2028 >     491,  1062,  1102,   583,   492,   584,   602,   585,   350,   156,
2029 >     157,   158,   351,   586,   159,   261,   588,   589,   590,   160,
2030 >    1103,  1063,   591,   592,   622,   262,   593,  1154,   594,   595,
2031 >     596,  1064,   446,   352,   597,   353,  1155,  1065,   598,   447,
2032 >     448,   628,  1156,   599,   603,   354,   604,   631,   605,  1104,
2033 >     606,   608,   609,   610,  1066,   263,   264,  1157,   611,  1158,
2034 >    1159,   612,   613,   614,   493,   615,   618,  1105,   619,  1160,
2035 >     623,   449,   355,     2,     3,  1161,   624,     4,   625,   632,
2036 >     633,   635,  1106,  1107,  1108,  1067,   494,     5,   634,   636,
2037 >       6,     7,  1068,   638,   640,   641,     8,   642,   356,   495,
2038 >     311,   643,   644,   645,   647,   648,   650,     9,   651,   652,
2039 >     653,    10,    11,   654,   312,   313,   655,   657,   314,   861,
2040 >     656,    12,   658,   661,   357,   662,   450,  1069,   663,   664,
2041 >     669,   670,   673,  1109,   675,   315,    13,   676,   677,   678,
2042 >     679,   680,   694,  1110,    14,    15,  1070,   681,  1111,   701,
2043 >     230,   358,   683,   702,  1112,   684,  1122,   685,  1113,   686,
2044 >     687,  1114,   704,   705,   690,   496,  1115,   691,    16,   696,
2045 >     697,   698,  1116,   703,   724,   706,   726,   316,   317,   318,
2046 >     497,    17,   725,   319,   707,   885,   231,   727,   728,   320,
2047 >     321,   359,   718,  1071,   572,   322,   708,   729,   731,   709,
2048 >     232,   233,   234,   235,   236,   323,   324,   732,   711,   733,
2049 >     712,    18,   734,   735,   736,   713,   737,  1166,   715,   237,
2050 >     325,   719,    19,    20,   738,   739,    21,    22,   752,   775,
2051 >     776,   777,   778,   779,   780,   781,   720,   721,   862,   863,
2052 >     864,   865,   866,   740,   867,   868,   326,   869,   870,   871,
2053 >     741,   750,   872,   751,   873,   874,   875,   755,   876,   753,
2054 >     877,   754,   878,   879,   756,   757,   880,   762,   759,   767,
2055 >     768,   763,   881,   769,   793,  1123,  1124,  1125,  1126,  1127,
2056 >      23,  1128,  1129,   770,  1130,  1131,  1132,   771,   327,  1133,
2057 >    1167,  1134,  1135,  1136,   794,  1137,   772,  1138,   773,  1139,
2058 >    1140,   774,   784,  1141,   886,   887,   888,   889,   890,  1142,
2059 >     891,   892,   796,   893,   894,   895,   785,   786,   896,    76,
2060 >     897,  1168,   898,   797,   899,   787,   900,   788,   901,   902,
2061 >    1169,   789,   903,   790,   791,   792,  1170,   798,   904,    77,
2062 >      78,   799,   800,   803,   804,    79,   805,   807,   811,   814,
2063 >     810,  1171,   815,  1172,  1173,  1004,  1005,  1006,  1007,  1008,
2064 >    1009,  1010,   821,  1174,   816,   825,   817,   818,   819,  1175,
2065 >     820,   822,   823,   824,   826,   827,   828,   829,   830,   831,
2066 >     832,   833,   834,   835,   836,    80,    81,   837,   838,   839,
2067 >     926,   840,   841,    82,    83,    84,   842,   843,   844,   845,
2068 >     846,   847,   848,   849,   850,   851,   852,   853,   854,   929,
2069 >     927,   855,   856,   857,   858,   859,   860,   884,   907,    85,
2070 >      86,   908,   909,   910,   911,   912,   913,   914,   915,   916,
2071 >     917,   918,    87,    88,   919,   920,   921,   922,   923,   930,
2072 >     924,   941,   925,   931,   932,   933,   928,   935,   934,   936,
2073 >     937,   939,   938,   940,   944,   945,   955,   958,   957,   956,
2074 >     960,   961,   962,   964,   959,   966,   967,   968,   996,   998,
2075 >    1000,   296,  1150,  1149,  1096,   965,   545,   963,  1229,   969,
2076 >     970,   971,   972,   973,   974,   975,   976,   977,  1191,   978,
2077 >     979,   980,   981,   982,   983,   984,   985,   986,   991,   992,
2078 >     993,   994,   995,  1194,   999,   717,   997,  1224,  1001,  1002,
2079 >    1003,  1011,  1012,  1013,  1223,  1018,  1019,  1020,  1021,  1022,
2080 >    1023,  1024,  1025,  1026,  1027,  1033,  1034,  1035,  1036,  1037,
2081 >    1038,  1039,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1088,
2082 >    1051,  1207,  1210,   700,  1052,   689,  1053,  1192,  1054,  1209,
2083 >    1055,   601,  1060,  1061,  1074,  1225,   761,  1208,   617,   384,
2084 >     723,  1226,  1075,   441,   693,  1186,   766,   310,  1185,  1076,
2085 >    1077,  1078,  1079,  1080,  1086,  1087,   482,  1091,     0,     0,
2086 >    1089,  1092,  1094,  1097,  1098,  1119,  1120,  1121,  1145,  1146,
2087 >    1147,  1148,     0,  1151,  1164,  1165,  1193,     0,  1198,  1211,
2088 >    1195,     0,  1221,  1222,     0,     0,     0,     0,   488,   621,
2089 >       0,     0,   627,     0,     0,     0,     0,   525,     0,     0,
2090         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2091         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2092 <       0,     0,     0,   544
2092 >       0,     0,     0,     0,     0,     0,     0,   564
2093   };
2094  
2095 + #define yypact_value_is_default(Yystate) \
2096 +  (!!((Yystate) == (-910)))
2097 +
2098 + #define yytable_value_is_error(Yytable_value) \
2099 +  YYID (0)
2100 +
2101   static const yytype_int16 yycheck[] =
2102   {
2103 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
2104 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
2105 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
2106 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
2107 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
2108 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
2109 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
2110 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
2111 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
2112 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
2113 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
2114 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
2115 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
2116 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
2117 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
2118 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
2119 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
2120 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
2121 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
2122 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
2123 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
2124 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
2125 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
2126 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
2127 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
2128 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
2129 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
2130 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
2131 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
2132 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
2133 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
2134 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
2135 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
2136 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
2137 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
2138 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
2139 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
2140 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
2141 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
2142 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
2143 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
2144 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
2145 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
2146 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
2147 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
2148 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
2149 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
2150 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
2151 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
2152 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
2153 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
2154 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
2155 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
2156 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
2157 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
2158 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
2159 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
2160 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
2161 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
2162 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
2163 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
2164 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
2165 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
2166 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
2167 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
2168 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
2169 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
2170 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
2171 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
2172 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
2173 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
2174 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
2175 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
2176 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
2177 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
2178 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
2179 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
2180 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
2181 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
2182 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
2183 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
2184 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
2185 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
2186 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
2187 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
2188 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
2189 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
2190 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
2191 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
2192 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
2193 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
2194 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
2195 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
2196 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
2197 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
2198 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
2199 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
2200 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
2201 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2202 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
2203 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
2204 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
2205 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
2206 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
2207 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
2208 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
2209 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
2210 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
2211 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
2212 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
2213 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
2214 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
2215 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
2216 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
2217 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
2472 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
2473 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2474 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
2475 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
2476 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
2477 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
2478 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
2479 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
2480 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
2481 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2482 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
2483 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
2484 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
2485 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
2486 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2487 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
2488 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
2489 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2490 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2491 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2492 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2493 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2494 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2495 <     262,   262,   260,   362,    -1,    -1,    -1,    -1,   443,    -1,
2103 >     598,   599,   300,   301,   221,   223,     8,   223,   225,     1,
2104 >     308,     1,     1,   221,     1,     1,   221,   225,     1,     1,
2105 >     225,     1,   221,   222,     1,    15,    16,     1,     1,    19,
2106 >       1,   223,     1,     1,   223,     1,     1,     9,    10,    11,
2107 >      17,     1,    24,    51,     1,   105,    36,   164,   165,    31,
2108 >     221,    37,     1,   221,   225,    32,    36,   225,     1,    36,
2109 >      34,     1,     1,   164,   165,    51,    52,    53,    54,    55,
2110 >       1,   221,   223,    62,   223,   225,     1,    57,     3,   221,
2111 >       5,   221,    62,   225,    70,   225,   223,     1,    78,    79,
2112 >      80,    62,    17,   223,    84,   393,   394,    62,   223,    73,
2113 >      90,    91,    62,   401,    96,   403,    96,    32,     1,    96,
2114 >     223,    36,   410,    96,    96,   413,   106,   107,     1,  1028,
2115 >    1029,  1030,   221,     6,     7,   423,   424,    96,    96,    12,
2116 >      96,   121,    57,   105,    59,   433,   434,    20,   436,    96,
2117 >     200,   118,   122,    26,    69,    28,    29,    30,   125,   126,
2118 >     124,    94,    35,   124,    94,   223,   221,   147,    41,    42,
2119 >     225,    44,    45,    46,   124,    96,     1,    50,   155,   223,
2120 >     221,    96,   155,    56,   225,   124,   119,    60,    61,   119,
2121 >     157,    64,   223,   191,   136,   137,   155,   155,   196,   155,
2122 >     223,    74,     1,   124,   196,   136,   137,   122,    81,   189,
2123 >      83,   223,    85,    96,    87,    88,    89,   221,    92,    93,
2124 >     124,   225,    21,    22,   223,     1,   223,   221,    27,   224,
2125 >     103,   225,   223,   148,   223,   523,   109,   110,   111,   212,
2126 >     113,   124,   222,   116,   117,   212,   222,   120,    24,     1,
2127 >     222,   214,   222,   212,   223,   222,   224,   220,   222,   222,
2128 >     175,   219,   105,   222,   222,    17,   222,   222,    67,    68,
2129 >     221,    96,   222,   212,   225,   222,    75,    76,    77,   152,
2130 >      32,   224,    58,   156,    36,   214,   159,   160,   161,   162,
2131 >     163,   220,   222,   166,   167,   221,    40,   224,   586,     1,
2132 >     215,   222,   101,   102,   592,   593,    82,   222,   212,   597,
2133 >      86,   182,   183,   224,   224,   114,   115,   224,   222,    63,
2134 >      96,    65,    98,    99,   224,   224,   224,   224,   224,   224,
2135 >     155,   224,   224,   224,    36,   208,   209,   210,   224,   224,
2136 >     213,     1,     1,   224,    96,   218,   224,     6,     7,   222,
2137 >     220,   123,   224,    12,   130,    57,   132,   133,   134,   135,
2138 >      62,    20,   224,   224,   108,   224,   118,    26,   224,    28,
2139 >      29,    30,   224,   224,    34,   151,    35,     1,   224,   131,
2140 >     224,     1,    41,    42,   224,    44,    45,    46,   224,   224,
2141 >     224,    50,   224,   224,   219,   224,   224,    56,   224,   175,
2142 >      24,    60,    61,   224,    24,    64,   224,    31,   224,   185,
2143 >     224,   224,   224,    73,   224,    74,   224,   224,   224,   224,
2144 >     122,   224,    81,   222,    83,   221,    85,   224,    87,    88,
2145 >      89,   224,   224,   177,   178,   224,   224,   224,    58,   215,
2146 >     216,   224,   224,   224,   103,   197,   222,   224,   221,   224,
2147 >     109,   110,   111,   224,   113,     1,   224,   116,   117,   224,
2148 >     212,   120,    82,    65,   124,   224,    86,   224,   212,   224,
2149 >     222,    17,    96,   224,   224,   224,    96,   224,    98,    99,
2150 >     123,   224,   224,   224,   224,   224,    32,   224,   224,   224,
2151 >      36,   224,   224,   152,   224,   224,   224,   156,   224,     4,
2152 >     159,   160,   161,   162,   163,   224,  1094,   166,   167,     1,
2153 >     130,   224,   132,   133,   134,   135,   224,     1,   224,     3,
2154 >      25,     5,   123,   224,   221,    17,   105,   164,   105,   105,
2155 >     105,   151,   105,    17,   164,    40,   138,   164,   105,   221,
2156 >      32,    13,    47,   221,    36,   224,   221,   224,    32,   208,
2157 >     209,   210,    36,   224,   213,   175,   224,   224,   224,   218,
2158 >      65,    33,   224,   224,   123,   185,   224,   169,   224,   224,
2159 >     224,    43,   118,    57,   224,    59,   178,    49,   224,   125,
2160 >     126,   164,   184,   224,   224,    69,   224,   105,   224,    94,
2161 >     224,   224,   224,   224,    66,   215,   216,   199,   224,   201,
2162 >     202,   224,   224,   224,    96,   224,   224,   112,   224,   211,
2163 >     221,   157,    96,     0,     1,   217,   224,     4,   224,   164,
2164 >     164,   123,   127,   128,   129,    97,   118,    14,   105,   164,
2165 >      17,    18,   104,   164,   105,   105,    23,   105,   122,   131,
2166 >       1,   164,   164,   164,   105,   105,   105,    34,   105,   105,
2167 >     105,    38,    39,   164,    15,    16,   164,   164,    19,    51,
2168 >     224,    48,   224,   164,   148,   164,   212,   139,   164,   164,
2169 >     164,   164,   123,   178,   164,    36,    63,   164,   164,   221,
2170 >     221,   224,   221,   188,    71,    72,   158,   224,   193,   164,
2171 >       1,   175,   224,   221,   199,   224,    51,   224,   203,   224,
2172 >     224,   206,   123,   123,   224,   197,   211,   224,    95,   224,
2173 >     224,   224,   217,   223,   164,   221,   123,    78,    79,    80,
2174 >     212,   108,   164,    84,   221,    51,    37,   164,   164,    90,
2175 >      91,   215,   221,   205,   105,    96,   224,   164,   221,   224,
2176 >      51,    52,    53,    54,    55,   106,   107,   123,   224,   164,
2177 >     224,   138,   105,   105,   123,   224,   123,    65,   224,    70,
2178 >     121,   224,   149,   150,   123,   123,   153,   154,   105,   140,
2179 >     141,   142,   143,   144,   145,   146,   224,   224,   170,   171,
2180 >     172,   173,   174,   123,   176,   177,   147,   179,   180,   181,
2181 >     123,   123,   184,   123,   186,   187,   188,   221,   190,   123,
2182 >     192,   123,   194,   195,   221,   224,   198,   221,   224,   123,
2183 >     221,   224,   204,   221,   105,   170,   171,   172,   173,   174,
2184 >     207,   176,   177,   221,   179,   180,   181,   221,   189,   184,
2185 >     138,   186,   187,   188,   105,   190,   221,   192,   221,   194,
2186 >     195,   221,   221,   198,   170,   171,   172,   173,   174,   204,
2187 >     176,   177,   224,   179,   180,   181,   221,   221,   184,     1,
2188 >     186,   169,   188,   105,   190,   221,   192,   221,   194,   195,
2189 >     178,   221,   198,   221,   221,   221,   184,   105,   204,    21,
2190 >      22,   105,   105,   123,   105,    27,   105,   105,   123,   123,
2191 >     221,   199,   164,   201,   202,   775,   776,   777,   778,   779,
2192 >     780,   781,   105,   211,   224,   221,   123,   123,   123,   217,
2193 >     123,   123,   123,   123,   123,   123,   221,   221,   123,   123,
2194 >     221,   221,   221,   221,   221,    67,    68,   221,   221,   221,
2195 >     123,   221,   221,    75,    76,    77,   221,   221,   221,   221,
2196 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   123,
2197 >     164,   221,   221,   221,   221,   221,   221,   221,   221,   101,
2198 >     102,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2199 >     221,   221,   114,   115,   221,   221,   221,   221,   221,   105,
2200 >     221,   105,   221,   123,   123,   123,   224,   123,   221,   123,
2201 >     221,   123,   224,   123,   221,   221,   221,   164,   123,   221,
2202 >     123,   123,   123,   123,   224,   123,   123,   123,   123,   123,
2203 >     123,    71,   990,   988,   950,   221,   265,   224,  1228,   221,
2204 >     221,   221,   221,   221,   221,   221,   221,   221,   105,   221,
2205 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2206 >     221,   221,   221,   123,   221,   498,   224,  1202,   224,   221,
2207 >     221,   221,   221,   221,  1200,   221,   221,   221,   221,   221,
2208 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2209 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   168,
2210 >     221,  1179,  1190,   474,   221,   451,   221,  1089,   221,  1188,
2211 >     221,   328,   221,   221,   221,  1204,   550,  1184,   360,   108,
2212 >     512,  1206,   221,   161,   464,  1059,   558,    89,  1057,   221,
2213 >     221,   221,   221,   221,   221,   221,   216,   221,    -1,    -1,
2214 >     225,   224,   224,   221,   221,   221,   221,   221,   221,   221,
2215 >     221,   221,    -1,   221,   221,   221,   221,    -1,   221,   221,
2216 >     224,    -1,   221,   221,    -1,    -1,    -1,    -1,   224,   378,
2217 >      -1,    -1,   388,    -1,    -1,    -1,    -1,   238,    -1,    -1,
2218        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2219        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2220 <      -1,    -1,    -1,   293
2220 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   288
2221   };
2222  
2223   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2224     symbol of state STATE-NUM.  */
2225   static const yytype_uint16 yystos[] =
2226   {
2227 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
2228 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
2229 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
2230 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
2231 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
2232 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
2233 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
2234 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
2235 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
2236 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
2237 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
2238 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
2239 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
2240 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
2241 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
2242 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
2243 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
2244 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
2245 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
2246 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
2247 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2248 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
2249 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2250 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
2251 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
2252 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
2227 >       0,   227,     0,     1,     4,    14,    17,    18,    23,    34,
2228 >      38,    39,    48,    63,    71,    72,    95,   108,   138,   149,
2229 >     150,   153,   154,   207,   228,   233,   238,   262,   268,   282,
2230 >     300,   323,   337,   352,   359,   363,   373,   382,   402,   408,
2231 >     414,   418,   424,   481,   496,   221,   222,   223,   223,   301,
2232 >     383,   409,   223,   419,   223,   338,   403,   324,   223,   223,
2233 >     283,   353,   223,   223,   364,   374,   223,     1,    24,    31,
2234 >      96,   263,   264,   265,   266,   267,     1,    21,    22,    27,
2235 >      67,    68,    75,    76,    77,   101,   102,   114,   115,   482,
2236 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
2237 >     493,   494,   495,   223,   223,   223,     1,    62,   415,   416,
2238 >     417,   223,     1,     6,     7,    12,    20,    26,    28,    29,
2239 >      30,    35,    41,    42,    44,    45,    46,    50,    56,    60,
2240 >      61,    64,    74,    81,    83,    85,    87,    88,    89,   103,
2241 >     109,   110,   111,   113,   116,   117,   120,   152,   156,   159,
2242 >     160,   161,   162,   163,   166,   167,   208,   209,   210,   213,
2243 >     218,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2244 >     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2245 >     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2246 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2247 >     464,   465,   466,   467,   468,   469,   470,   474,   478,   479,
2248 >     480,   223,   223,   223,     1,   214,   269,   270,   271,   272,
2249 >     273,     1,    94,   119,   234,   235,   236,   237,   223,   223,
2250 >       1,    37,    51,    52,    53,    54,    55,    70,   497,   498,
2251 >     499,   500,   501,   502,   503,   504,   505,     1,    24,    58,
2252 >      82,    86,    96,    98,    99,   130,   132,   133,   134,   135,
2253 >     151,   175,   185,   215,   216,   239,   240,   241,   242,   247,
2254 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2255 >     258,   259,   260,   261,   223,   223,     1,    96,   360,   361,
2256 >     362,   221,   224,   224,   224,   222,   264,   224,   224,   224,
2257 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   222,
2258 >     483,     1,    15,    16,    19,    36,    78,    79,    80,    84,
2259 >      90,    91,    96,   106,   107,   121,   147,   189,   302,   303,
2260       304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2261 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
2262 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
2263 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
2264 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
2265 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
2266 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
2267 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
2268 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2269 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
2270 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
2271 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
2272 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2273 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2274 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2275 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
2276 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2277 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
2278 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
2279 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
2280 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
2281 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
2282 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
2283 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
2284 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
2285 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2286 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
2287 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
2288 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
2289 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
2290 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
2291 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
2292 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
2293 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
2294 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
2295 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
2296 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
2297 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
2298 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
2299 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
2300 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2301 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
2302 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
2303 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
2304 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
2305 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
2306 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
2307 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
2308 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
2309 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
2310 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
2311 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
2312 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
2313 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
2314 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
2315 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
2316 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
2317 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
2318 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
2319 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2320 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2321 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2322 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2323 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2324 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2325 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2326 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2327 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2328 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2329 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2330 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2331 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2332 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2333 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2334 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2335 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2336 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2337 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2338 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2339 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2340 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2341 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2342 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2343 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2344 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2345 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2346 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2347 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2348 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2349 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2621 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2622 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2623 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2624 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2625 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2626 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2627 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2628 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2629 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2630 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2631 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2632 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2633 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2634 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2635 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2636 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2637 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2638 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2639 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2640 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2641 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2642 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2643 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2644 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2645 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2646 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2647 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2648 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2649 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2650 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2651 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2652 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2653 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2654 <     457,   354,   351,   333
2261 >     314,   315,   316,   317,   318,   319,     1,     3,     5,    17,
2262 >      32,    36,    57,    59,    69,    96,   122,   148,   175,   215,
2263 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2264 >     397,   398,   399,   400,   401,     1,    62,   124,   410,   411,
2265 >     412,   413,   224,   222,   416,     1,    96,   124,   420,   421,
2266 >     422,   423,   224,   224,   224,   224,   224,   224,   224,   224,
2267 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2268 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2269 >     475,   224,   471,   224,   224,   224,   224,   224,   224,   224,
2270 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2271 >     222,   426,     1,    17,    32,    36,   118,   125,   126,   157,
2272 >     212,   339,   340,   341,   342,   343,   344,   345,   349,   350,
2273 >     351,     1,   124,   212,   404,   405,   406,   407,     1,    36,
2274 >      57,    62,   122,   325,   329,   330,   331,   335,   336,   221,
2275 >     224,   222,   270,   220,   221,   224,   224,   222,   235,     1,
2276 >      17,    32,    36,    96,   118,   131,   197,   212,   284,   285,
2277 >     286,   287,   288,   289,   290,   291,   292,   296,     1,    34,
2278 >      73,   124,   354,   355,   356,   357,   358,   224,   224,   224,
2279 >     224,   224,   224,   224,   222,   498,   221,   224,   224,   224,
2280 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2281 >     224,   224,   224,   224,   222,   240,     1,    96,   155,   212,
2282 >     365,   366,   367,   368,   369,     1,    96,   155,   375,   376,
2283 >     377,   378,   224,   222,   361,   123,   123,   123,   221,   105,
2284 >     105,   164,   105,   230,   230,   105,   105,   105,   164,   164,
2285 >     105,   230,   221,   221,   224,   224,   224,   320,   224,   224,
2286 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2287 >     222,   303,   221,   224,   224,   224,   224,   394,   224,   224,
2288 >     224,   224,   224,   224,   224,   224,   222,   385,   224,   224,
2289 >     222,   411,   123,   221,   224,   224,   222,   421,   164,   230,
2290 >     230,   105,   164,   164,   105,   123,   164,   230,   164,   230,
2291 >     105,   105,   105,   164,   164,   164,   230,   105,   105,   230,
2292 >     105,   105,   105,   105,   164,   164,   224,   164,   224,   230,
2293 >     230,   164,   164,   164,   164,   164,   165,   164,   165,   164,
2294 >     164,   230,   230,   123,   230,   164,   164,   164,   221,   221,
2295 >     224,   224,   346,   224,   224,   224,   224,   224,   222,   340,
2296 >     224,   224,   222,   405,   221,   326,   224,   224,   224,   222,
2297 >     330,   164,   221,   223,   123,   123,   221,   221,   224,   224,
2298 >     297,   224,   224,   224,   293,   224,   222,   285,   221,   224,
2299 >     224,   224,   222,   355,   164,   164,   123,   164,   164,   164,
2300 >     230,   221,   123,   164,   105,   105,   123,   123,   123,   123,
2301 >     123,   123,   136,   137,   243,   244,   136,   137,   245,   246,
2302 >     123,   123,   105,   123,   123,   221,   221,   224,   370,   224,
2303 >     222,   366,   221,   224,   379,   222,   376,   123,   221,   221,
2304 >     221,   221,   221,   221,   221,   140,   141,   142,   143,   144,
2305 >     145,   146,   229,   230,   221,   221,   221,   221,   221,   221,
2306 >     221,   221,   221,   105,   105,   230,   224,   105,   105,   105,
2307 >     105,   230,   230,   123,   105,   105,   230,   105,   232,   232,
2308 >     221,   123,   182,   183,   123,   164,   224,   123,   123,   123,
2309 >     123,   105,   123,   123,   123,   221,   123,   123,   221,   221,
2310 >     123,   123,   221,   221,   221,   221,   221,   221,   221,   221,
2311 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2312 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2313 >     221,    51,   170,   171,   172,   173,   174,   176,   177,   179,
2314 >     180,   181,   184,   186,   187,   188,   190,   192,   194,   195,
2315 >     198,   204,   476,   477,   221,    51,   170,   171,   172,   173,
2316 >     174,   176,   177,   179,   180,   181,   184,   186,   188,   190,
2317 >     192,   194,   195,   198,   204,   472,   473,   221,   221,   221,
2318 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2319 >     221,   221,   221,   221,   221,   221,   123,   164,   224,   123,
2320 >     105,   123,   123,   123,   221,   123,   123,   221,   224,   123,
2321 >     123,   105,   333,   334,   221,   221,     1,    96,   155,   219,
2322 >     274,   275,   276,   277,   278,   221,   221,   123,   164,   224,
2323 >     123,   123,   123,   224,   123,   221,   123,   123,   123,   221,
2324 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2325 >     221,   221,   221,   221,   221,   221,   221,   221,   225,   221,
2326 >     225,   221,   221,   221,   221,   221,   123,   224,   123,   221,
2327 >     123,   224,   221,   221,   229,   229,   229,   229,   229,   229,
2328 >     229,   221,   221,   221,    92,    93,   321,   322,   221,   221,
2329 >     221,   221,   221,   221,   221,   221,   221,   221,     9,    10,
2330 >      11,   231,   232,   221,   221,   221,   221,   221,   221,   221,
2331 >       8,   196,   395,   396,   221,   221,   221,   221,   221,   221,
2332 >     221,   221,   221,   221,   221,   221,   221,   225,   221,   225,
2333 >     221,   221,    13,    33,    43,    49,    66,    97,   104,   139,
2334 >     158,   205,   347,   348,   221,   221,   221,   221,   221,   221,
2335 >     221,    51,   191,   196,   327,   328,   221,   221,   168,   225,
2336 >     332,   221,   224,   279,   224,   222,   275,   221,   221,     4,
2337 >      25,    40,    47,    65,    94,   112,   127,   128,   129,   178,
2338 >     188,   193,   199,   203,   206,   211,   217,   298,   299,   221,
2339 >     221,   221,    51,   170,   171,   172,   173,   174,   176,   177,
2340 >     179,   180,   181,   184,   186,   187,   188,   190,   192,   194,
2341 >     195,   198,   204,   294,   295,   221,   221,   221,   221,   244,
2342 >     246,   221,    65,   138,   169,   178,   184,   199,   201,   202,
2343 >     211,   217,   371,   372,   221,   221,    65,   138,   169,   178,
2344 >     184,   199,   201,   202,   211,   217,   380,   381,   221,   225,
2345 >     231,   231,   231,   221,   225,   477,   473,   221,   225,   221,
2346 >     225,   105,   334,   221,   123,   224,   200,   232,   221,   221,
2347 >     225,   221,   225,   221,   225,   221,   225,   322,   396,   348,
2348 >     328,   221,    40,    63,    65,   108,   177,   178,   212,   280,
2349 >     281,   221,   221,   299,   295,   372,   381,   221,   225,   281
2350   };
2351  
2352   #define yyerrok         (yyerrstatus = 0)
# Line 2666 | Line 2361 | static const yytype_uint16 yystos[] =
2361  
2362   /* Like YYERROR except do call yyerror.  This remains here temporarily
2363     to ease the transition to the new meaning of YYERROR, for GCC.
2364 <   Once GCC version 2 has supplanted version 1, this can go.  */
2364 >   Once GCC version 2 has supplanted version 1, this can go.  However,
2365 >   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2366 >   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2367 >   discussed.  */
2368  
2369   #define YYFAIL          goto yyerrlab
2370 + #if defined YYFAIL
2371 +  /* This is here to suppress warnings from the GCC cpp's
2372 +     -Wunused-macros.  Normally we don't worry about that warning, but
2373 +     some users do, and we want to make it easy for users to remove
2374 +     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2375 + #endif
2376  
2377   #define YYRECOVERING()  (!!yyerrstatus)
2378  
2379 < #define YYBACKUP(Token, Value)                                  \
2380 < do                                                              \
2381 <  if (yychar == YYEMPTY && yylen == 1)                          \
2382 <    {                                                           \
2383 <      yychar = (Token);                                         \
2384 <      yylval = (Value);                                         \
2385 <      yytoken = YYTRANSLATE (yychar);                           \
2386 <      YYPOPSTACK (1);                                           \
2387 <      goto yybackup;                                            \
2388 <    }                                                           \
2389 <  else                                                          \
2390 <    {                                                           \
2379 > #define YYBACKUP(Token, Value)                                  \
2380 > do                                                              \
2381 >  if (yychar == YYEMPTY)                                        \
2382 >    {                                                           \
2383 >      yychar = (Token);                                         \
2384 >      yylval = (Value);                                         \
2385 >      YYPOPSTACK (yylen);                                       \
2386 >      yystate = *yyssp;                                         \
2387 >      goto yybackup;                                            \
2388 >    }                                                           \
2389 >  else                                                          \
2390 >    {                                                           \
2391        yyerror (YY_("syntax error: cannot back up")); \
2392        YYERROR;                                                  \
2393      }                                                           \
2394   while (YYID (0))
2395  
2396 <
2396 > /* Error token number */
2397   #define YYTERROR        1
2398   #define YYERRCODE       256
2399  
2400  
2401 < /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2698 <   If N is 0, then set CURRENT to the empty location which ends
2699 <   the previous symbol: RHS[0] (always defined).  */
2700 <
2701 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2702 < #ifndef YYLLOC_DEFAULT
2703 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2704 <    do                                                                  \
2705 <      if (YYID (N))                                                    \
2706 <        {                                                               \
2707 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2708 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2709 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2710 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2711 <        }                                                               \
2712 <      else                                                              \
2713 <        {                                                               \
2714 <          (Current).first_line   = (Current).last_line   =              \
2715 <            YYRHSLOC (Rhs, 0).last_line;                                \
2716 <          (Current).first_column = (Current).last_column =              \
2717 <            YYRHSLOC (Rhs, 0).last_column;                              \
2718 <        }                                                               \
2719 <    while (YYID (0))
2720 < #endif
2721 <
2722 <
2723 < /* YY_LOCATION_PRINT -- Print the location on the stream.
2724 <   This macro was not mandated originally: define only if we know
2725 <   we won't break user code: when these are the locations we know.  */
2726 <
2401 > /* This macro is provided for backward compatibility. */
2402   #ifndef YY_LOCATION_PRINT
2403 < # if YYLTYPE_IS_TRIVIAL
2729 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2730 <     fprintf (File, "%d.%d-%d.%d",                      \
2731 <              (Loc).first_line, (Loc).first_column,     \
2732 <              (Loc).last_line,  (Loc).last_column)
2733 < # else
2734 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2735 < # endif
2403 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2404   #endif
2405  
2406  
2407   /* YYLEX -- calling `yylex' with the right arguments.  */
2740
2408   #ifdef YYLEX_PARAM
2409   # define YYLEX yylex (YYLEX_PARAM)
2410   #else
# Line 2787 | Line 2454 | yy_symbol_value_print (yyoutput, yytype,
2454      YYSTYPE const * const yyvaluep;
2455   #endif
2456   {
2457 +  FILE *yyo = yyoutput;
2458 +  YYUSE (yyo);
2459    if (!yyvaluep)
2460      return;
2461   # ifdef YYPRINT
# Line 2795 | Line 2464 | yy_symbol_value_print (yyoutput, yytype,
2464   # else
2465    YYUSE (yyoutput);
2466   # endif
2467 <  switch (yytype)
2799 <    {
2800 <      default:
2801 <        break;
2802 <    }
2467 >  YYUSE (yytype);
2468   }
2469  
2470  
# Line 2924 | Line 2589 | int yydebug;
2589   # define YYMAXDEPTH 10000
2590   #endif
2591  
2927
2592  
2593   #if YYERROR_VERBOSE
2594  
# Line 3027 | Line 2691 | yytnamerr (char *yyres, const char *yyst
2691   }
2692   # endif
2693  
2694 < /* Copy into YYRESULT an error message about the unexpected token
2695 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2696 <   including the terminating null byte.  If YYRESULT is null, do not
2697 <   copy anything; just return the number of bytes that would be
2698 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2699 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2700 <   size calculation.  */
2701 < static YYSIZE_T
2702 < yysyntax_error (char *yyresult, int yystate, int yychar)
2694 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2695 >   about the unexpected token YYTOKEN for the state stack whose top is
2696 >   YYSSP.
2697 >
2698 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2699 >   not large enough to hold the message.  In that case, also set
2700 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2701 >   required number of bytes is too large to store.  */
2702 > static int
2703 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2704 >                yytype_int16 *yyssp, int yytoken)
2705   {
2706 <  int yyn = yypact[yystate];
2706 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2707 >  YYSIZE_T yysize = yysize0;
2708 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2709 >  /* Internationalized format string. */
2710 >  const char *yyformat = YY_NULL;
2711 >  /* Arguments of yyformat. */
2712 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2713 >  /* Number of reported tokens (one for the "unexpected", one per
2714 >     "expected"). */
2715 >  int yycount = 0;
2716 >
2717 >  /* There are many possibilities here to consider:
2718 >     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2719 >       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2720 >       for details.  YYERROR is fine as it does not invoke this
2721 >       function.
2722 >     - If this state is a consistent state with a default action, then
2723 >       the only way this function was invoked is if the default action
2724 >       is an error action.  In that case, don't check for expected
2725 >       tokens because there are none.
2726 >     - The only way there can be no lookahead present (in yychar) is if
2727 >       this state is a consistent state with a default action.  Thus,
2728 >       detecting the absence of a lookahead is sufficient to determine
2729 >       that there is no unexpected or expected token to report.  In that
2730 >       case, just report a simple "syntax error".
2731 >     - Don't assume there isn't a lookahead just because this state is a
2732 >       consistent state with a default action.  There might have been a
2733 >       previous inconsistent state, consistent state with a non-default
2734 >       action, or user semantic action that manipulated yychar.
2735 >     - Of course, the expected token list depends on states to have
2736 >       correct lookahead information, and it depends on the parser not
2737 >       to perform extra reductions after fetching a lookahead from the
2738 >       scanner and before detecting a syntax error.  Thus, state merging
2739 >       (from LALR or IELR) and default reductions corrupt the expected
2740 >       token list.  However, the list is correct for canonical LR with
2741 >       one exception: it will still contain any token that will not be
2742 >       accepted due to an error action in a later state.
2743 >  */
2744 >  if (yytoken != YYEMPTY)
2745 >    {
2746 >      int yyn = yypact[*yyssp];
2747 >      yyarg[yycount++] = yytname[yytoken];
2748 >      if (!yypact_value_is_default (yyn))
2749 >        {
2750 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2751 >             YYCHECK.  In other words, skip the first -YYN actions for
2752 >             this state because they are default actions.  */
2753 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2754 >          /* Stay within bounds of both yycheck and yytname.  */
2755 >          int yychecklim = YYLAST - yyn + 1;
2756 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2757 >          int yyx;
2758 >
2759 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2760 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2761 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2762 >              {
2763 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2764 >                  {
2765 >                    yycount = 1;
2766 >                    yysize = yysize0;
2767 >                    break;
2768 >                  }
2769 >                yyarg[yycount++] = yytname[yyx];
2770 >                {
2771 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2772 >                  if (! (yysize <= yysize1
2773 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2774 >                    return 2;
2775 >                  yysize = yysize1;
2776 >                }
2777 >              }
2778 >        }
2779 >    }
2780  
2781 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3043 <    return 0;
3044 <  else
2781 >  switch (yycount)
2782      {
2783 <      int yytype = YYTRANSLATE (yychar);
2784 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2785 <      YYSIZE_T yysize = yysize0;
2786 <      YYSIZE_T yysize1;
2787 <      int yysize_overflow = 0;
2788 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2789 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2790 <      int yyx;
2791 <
2792 < # if 0
2793 <      /* This is so xgettext sees the translatable formats that are
2794 <         constructed on the fly.  */
3058 <      YY_("syntax error, unexpected %s");
3059 <      YY_("syntax error, unexpected %s, expecting %s");
3060 <      YY_("syntax error, unexpected %s, expecting %s or %s");
3061 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3062 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3063 < # endif
3064 <      char *yyfmt;
3065 <      char const *yyf;
3066 <      static char const yyunexpected[] = "syntax error, unexpected %s";
3067 <      static char const yyexpecting[] = ", expecting %s";
3068 <      static char const yyor[] = " or %s";
3069 <      char yyformat[sizeof yyunexpected
3070 <                    + sizeof yyexpecting - 1
3071 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3072 <                       * (sizeof yyor - 1))];
3073 <      char const *yyprefix = yyexpecting;
3074 <
3075 <      /* Start YYX at -YYN if negative to avoid negative indexes in
3076 <         YYCHECK.  */
3077 <      int yyxbegin = yyn < 0 ? -yyn : 0;
3078 <
3079 <      /* Stay within bounds of both yycheck and yytname.  */
3080 <      int yychecklim = YYLAST - yyn + 1;
3081 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3082 <      int yycount = 1;
3083 <
3084 <      yyarg[0] = yytname[yytype];
3085 <      yyfmt = yystpcpy (yyformat, yyunexpected);
3086 <
3087 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3088 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3089 <          {
3090 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3091 <              {
3092 <                yycount = 1;
3093 <                yysize = yysize0;
3094 <                yyformat[sizeof yyunexpected - 1] = '\0';
3095 <                break;
3096 <              }
3097 <            yyarg[yycount++] = yytname[yyx];
3098 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3099 <            yysize_overflow |= (yysize1 < yysize);
3100 <            yysize = yysize1;
3101 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3102 <            yyprefix = yyor;
3103 <          }
3104 <
3105 <      yyf = YY_(yyformat);
3106 <      yysize1 = yysize + yystrlen (yyf);
3107 <      yysize_overflow |= (yysize1 < yysize);
3108 <      yysize = yysize1;
2783 > # define YYCASE_(N, S)                      \
2784 >      case N:                               \
2785 >        yyformat = S;                       \
2786 >      break
2787 >      YYCASE_(0, YY_("syntax error"));
2788 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2789 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2790 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2791 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2792 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2793 > # undef YYCASE_
2794 >    }
2795  
2796 <      if (yysize_overflow)
2797 <        return YYSIZE_MAXIMUM;
2796 >  {
2797 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2798 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2799 >      return 2;
2800 >    yysize = yysize1;
2801 >  }
2802  
2803 <      if (yyresult)
2804 <        {
2805 <          /* Avoid sprintf, as that infringes on the user's name space.
2806 <             Don't have undefined behavior even if the translation
2807 <             produced a string with the wrong number of "%s"s.  */
2808 <          char *yyp = yyresult;
2809 <          int yyi = 0;
3120 <          while ((*yyp = *yyf) != '\0')
3121 <            {
3122 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3123 <                {
3124 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3125 <                  yyf += 2;
3126 <                }
3127 <              else
3128 <                {
3129 <                  yyp++;
3130 <                  yyf++;
3131 <                }
3132 <            }
3133 <        }
3134 <      return yysize;
2803 >  if (*yymsg_alloc < yysize)
2804 >    {
2805 >      *yymsg_alloc = 2 * yysize;
2806 >      if (! (yysize <= *yymsg_alloc
2807 >             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2808 >        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2809 >      return 1;
2810      }
2811 +
2812 +  /* Avoid sprintf, as that infringes on the user's name space.
2813 +     Don't have undefined behavior even if the translation
2814 +     produced a string with the wrong number of "%s"s.  */
2815 +  {
2816 +    char *yyp = *yymsg;
2817 +    int yyi = 0;
2818 +    while ((*yyp = *yyformat) != '\0')
2819 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2820 +        {
2821 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2822 +          yyformat += 2;
2823 +        }
2824 +      else
2825 +        {
2826 +          yyp++;
2827 +          yyformat++;
2828 +        }
2829 +  }
2830 +  return 0;
2831   }
2832   #endif /* YYERROR_VERBOSE */
3138
2833  
2834   /*-----------------------------------------------.
2835   | Release the memory associated to this symbol.  |
# Line 3160 | Line 2854 | yydestruct (yymsg, yytype, yyvaluep)
2854      yymsg = "Deleting";
2855    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2856  
2857 <  switch (yytype)
3164 <    {
3165 <
3166 <      default:
3167 <        break;
3168 <    }
2857 >  YYUSE (yytype);
2858   }
2859  
2860 < /* Prevent warnings from -Wmissing-prototypes.  */
3172 < #ifdef YYPARSE_PARAM
3173 < #if defined __STDC__ || defined __cplusplus
3174 < int yyparse (void *YYPARSE_PARAM);
3175 < #else
3176 < int yyparse ();
3177 < #endif
3178 < #else /* ! YYPARSE_PARAM */
3179 < #if defined __STDC__ || defined __cplusplus
3180 < int yyparse (void);
3181 < #else
3182 < int yyparse ();
3183 < #endif
3184 < #endif /* ! YYPARSE_PARAM */
2860 >
2861  
2862  
2863   /* The lookahead symbol.  */
2864   int yychar;
2865  
2866 +
2867 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2868 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2869 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2870 + #endif
2871 + #ifndef YY_INITIAL_VALUE
2872 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2873 + #endif
2874 +
2875   /* The semantic value of the lookahead symbol.  */
2876 < YYSTYPE yylval;
2876 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2877  
2878   /* Number of syntax errors so far.  */
2879   int yynerrs;
2880  
2881  
2882 <
2883 < /*-------------------------.
2884 < | yyparse or yypush_parse.  |
3200 < `-------------------------*/
2882 > /*----------.
2883 > | yyparse.  |
2884 > `----------*/
2885  
2886   #ifdef YYPARSE_PARAM
2887   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3221 | Line 2905 | yyparse ()
2905   #endif
2906   #endif
2907   {
3224
3225
2908      int yystate;
2909      /* Number of tokens to shift before error messages enabled.  */
2910      int yyerrstatus;
# Line 3231 | Line 2913 | yyparse ()
2913         `yyss': related to states.
2914         `yyvs': related to semantic values.
2915  
2916 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2916 >       Refer to the stacks through separate pointers, to allow yyoverflow
2917         to reallocate them elsewhere.  */
2918  
2919      /* The state stack.  */
# Line 3249 | Line 2931 | yyparse ()
2931    int yyn;
2932    int yyresult;
2933    /* Lookahead token as an internal (translated) token number.  */
2934 <  int yytoken;
2934 >  int yytoken = 0;
2935    /* The variables used to return semantic value and location from the
2936       action routines.  */
2937    YYSTYPE yyval;
# Line 3267 | Line 2949 | yyparse ()
2949       Keep to zero when no symbol should be popped.  */
2950    int yylen = 0;
2951  
2952 <  yytoken = 0;
2953 <  yyss = yyssa;
3272 <  yyvs = yyvsa;
2952 >  yyssp = yyss = yyssa;
2953 >  yyvsp = yyvs = yyvsa;
2954    yystacksize = YYINITDEPTH;
2955  
2956    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3278 | Line 2959 | yyparse ()
2959    yyerrstatus = 0;
2960    yynerrs = 0;
2961    yychar = YYEMPTY; /* Cause a token to be read.  */
3281
3282  /* Initialize stack pointers.
3283     Waste one element of value and location stack
3284     so that they stay on the same level as the state stack.
3285     The wasted elements are never initialized.  */
3286  yyssp = yyss;
3287  yyvsp = yyvs;
3288
2962    goto yysetstate;
2963  
2964   /*------------------------------------------------------------.
# Line 3377 | Line 3050 | yybackup:
3050  
3051    /* First try to decide what to do without reference to lookahead token.  */
3052    yyn = yypact[yystate];
3053 <  if (yyn == YYPACT_NINF)
3053 >  if (yypact_value_is_default (yyn))
3054      goto yydefault;
3055  
3056    /* Not known => get a lookahead token if don't already have one.  */
# Line 3408 | Line 3081 | yybackup:
3081    yyn = yytable[yyn];
3082    if (yyn <= 0)
3083      {
3084 <      if (yyn == 0 || yyn == YYTABLE_NINF)
3085 <        goto yyerrlab;
3084 >      if (yytable_value_is_error (yyn))
3085 >        goto yyerrlab;
3086        yyn = -yyn;
3087        goto yyreduce;
3088      }
# Line 3426 | Line 3099 | yybackup:
3099    yychar = YYEMPTY;
3100  
3101    yystate = yyn;
3102 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3103    *++yyvsp = yylval;
3104 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3105  
3106    goto yynewstate;
3107  
# Line 3463 | Line 3138 | yyreduce:
3138    switch (yyn)
3139      {
3140          case 26:
3141 <
3142 < /* Line 1455 of yacc.c  */
3468 < #line 429 "ircd_parser.y"
3141 > /* Line 1787 of yacc.c  */
3142 > #line 391 "conf_parser.y"
3143      { (yyval.number) = 0; }
3144      break;
3145  
3146    case 28:
3147 <
3148 < /* Line 1455 of yacc.c  */
3475 < #line 431 "ircd_parser.y"
3147 > /* Line 1787 of yacc.c  */
3148 > #line 393 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3151                  }
3152      break;
3153  
3154    case 29:
3155 <
3156 < /* Line 1455 of yacc.c  */
3484 < #line 435 "ircd_parser.y"
3155 > /* Line 1787 of yacc.c  */
3156 > #line 397 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162    case 30:
3163 <
3164 < /* Line 1455 of yacc.c  */
3493 < #line 439 "ircd_parser.y"
3163 > /* Line 1787 of yacc.c  */
3164 > #line 401 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170    case 31:
3171 <
3172 < /* Line 1455 of yacc.c  */
3502 < #line 443 "ircd_parser.y"
3171 > /* Line 1787 of yacc.c  */
3172 > #line 405 "conf_parser.y"
3173      {
3174                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3175                  }
3176      break;
3177  
3178    case 32:
3179 <
3180 < /* Line 1455 of yacc.c  */
3511 < #line 447 "ircd_parser.y"
3179 > /* Line 1787 of yacc.c  */
3180 > #line 409 "conf_parser.y"
3181      {
3182                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3183                  }
3184      break;
3185  
3186    case 33:
3187 <
3188 < /* Line 1455 of yacc.c  */
3520 < #line 451 "ircd_parser.y"
3187 > /* Line 1787 of yacc.c  */
3188 > #line 413 "conf_parser.y"
3189      {
3190                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3191                  }
3192      break;
3193  
3194    case 34:
3195 + /* Line 1787 of yacc.c  */
3196 + #line 417 "conf_parser.y"
3197 +    {
3198 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3199 +                }
3200 +    break;
3201  
3202 < /* Line 1455 of yacc.c  */
3203 < #line 456 "ircd_parser.y"
3204 <    { (yyval.number) = 0; }
3202 >  case 35:
3203 > /* Line 1787 of yacc.c  */
3204 > #line 421 "conf_parser.y"
3205 >    {
3206 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3207 >                }
3208      break;
3209  
3210    case 36:
3211 + /* Line 1787 of yacc.c  */
3212 + #line 426 "conf_parser.y"
3213 +    { (yyval.number) = 0; }
3214 +    break;
3215  
3216 < /* Line 1455 of yacc.c  */
3217 < #line 457 "ircd_parser.y"
3216 >  case 38:
3217 > /* Line 1787 of yacc.c  */
3218 > #line 427 "conf_parser.y"
3219      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3220      break;
3221  
3222 <  case 37:
3223 <
3224 < /* Line 1455 of yacc.c  */
3543 < #line 458 "ircd_parser.y"
3222 >  case 39:
3223 > /* Line 1787 of yacc.c  */
3224 > #line 428 "conf_parser.y"
3225      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3226      break;
3227  
3228 <  case 38:
3229 <
3230 < /* Line 1455 of yacc.c  */
3550 < #line 459 "ircd_parser.y"
3228 >  case 40:
3229 > /* Line 1787 of yacc.c  */
3230 > #line 429 "conf_parser.y"
3231      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3232      break;
3233  
3234 <  case 39:
3235 <
3236 < /* Line 1455 of yacc.c  */
3557 < #line 460 "ircd_parser.y"
3234 >  case 41:
3235 > /* Line 1787 of yacc.c  */
3236 > #line 430 "conf_parser.y"
3237      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3238      break;
3239  
3240 <  case 46:
3241 <
3242 < /* Line 1455 of yacc.c  */
3564 < #line 474 "ircd_parser.y"
3240 >  case 48:
3241 > /* Line 1787 of yacc.c  */
3242 > #line 444 "conf_parser.y"
3243      {
3566 #ifndef STATIC_MODULES /* NOOP in the static case */
3244    if (conf_parser_ctx.pass == 2)
3245      add_conf_module(libio_basename(yylval.string));
3569 #endif
3246   }
3247      break;
3248  
3249 <  case 47:
3250 <
3251 < /* Line 1455 of yacc.c  */
3576 < #line 482 "ircd_parser.y"
3249 >  case 49:
3250 > /* Line 1787 of yacc.c  */
3251 > #line 450 "conf_parser.y"
3252      {
3578 #ifndef STATIC_MODULES
3253    if (conf_parser_ctx.pass == 2)
3254      mod_add_path(yylval.string);
3581 #endif
3255   }
3256      break;
3257  
3258 <  case 64:
3259 <
3260 < /* Line 1455 of yacc.c  */
3588 < #line 504 "ircd_parser.y"
3258 >  case 75:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 476 "conf_parser.y"
3261      {
3262 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3263 <    ServerInfo.tls_version = 0;
3262 > #ifdef HAVE_LIBCRYPTO
3263 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3264 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3265 > #endif
3266   }
3267      break;
3268  
3269 <  case 65:
3270 <
3271 < /* Line 1455 of yacc.c  */
3598 < #line 508 "ircd_parser.y"
3269 >  case 76:
3270 > /* Line 1787 of yacc.c  */
3271 > #line 482 "conf_parser.y"
3272      {
3273 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3274 <  {
3275 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3276 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3604 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3605 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3606 <  }
3273 > #ifdef HAVE_LIBCRYPTO
3274 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3275 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3276 > #endif
3277   }
3278      break;
3279  
3280 <  case 68:
3281 <
3282 < /* Line 1455 of yacc.c  */
3613 < #line 520 "ircd_parser.y"
3280 >  case 79:
3281 > /* Line 1787 of yacc.c  */
3282 > #line 491 "conf_parser.y"
3283      {
3284 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3285 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3284 > #ifdef HAVE_LIBCRYPTO
3285 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3286 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3287 > #endif
3288   }
3289      break;
3290  
3291 <  case 69:
3292 <
3293 < /* Line 1455 of yacc.c  */
3623 < #line 524 "ircd_parser.y"
3291 >  case 80:
3292 > /* Line 1787 of yacc.c  */
3293 > #line 497 "conf_parser.y"
3294      {
3295 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3296 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3295 > #ifdef HAVE_LIBCRYPTO
3296 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3297 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3298 > #endif
3299   }
3300      break;
3301  
3302 <  case 70:
3303 <
3304 < /* Line 1455 of yacc.c  */
3633 < #line 530 "ircd_parser.y"
3302 >  case 81:
3303 > /* Line 1787 of yacc.c  */
3304 > #line 505 "conf_parser.y"
3305      {
3306   #ifdef HAVE_LIBCRYPTO
3307    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3308    {
3309      if (!ServerInfo.rsa_private_key_file)
3310      {
3311 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3311 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3312        break;
3313      }
3314  
3315      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3316 +                                     SSL_FILETYPE_PEM) <= 0 ||
3317 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3318                                       SSL_FILETYPE_PEM) <= 0)
3319      {
3320 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3320 >      report_crypto_errors();
3321 >      conf_error_report("Could not open/read certificate file");
3322        break;
3323      }
3324  
3325      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3326 +                                    SSL_FILETYPE_PEM) <= 0 ||
3327 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3328                                      SSL_FILETYPE_PEM) <= 0)
3329      {
3330 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3330 >      report_crypto_errors();
3331 >      conf_error_report("Could not read RSA private key");
3332        break;
3333      }
3334  
3335 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3335 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3336 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3337      {
3338 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3338 >      report_crypto_errors();
3339 >      conf_error_report("Could not read RSA private key");
3340        break;
3341      }
3342    }
# Line 3665 | Line 3344 | yyreduce:
3344   }
3345      break;
3346  
3347 <  case 71:
3348 <
3349 < /* Line 1455 of yacc.c  */
3671 < #line 564 "ircd_parser.y"
3347 >  case 82:
3348 > /* Line 1787 of yacc.c  */
3349 > #line 547 "conf_parser.y"
3350      {
3351   #ifdef HAVE_LIBCRYPTO
3352    if (conf_parser_ctx.pass == 1)
# Line 3687 | Line 3365 | yyreduce:
3365        ServerInfo.rsa_private_key_file = NULL;
3366      }
3367  
3368 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3368 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3369  
3370      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3371      {
3372 <      yyerror("File open failed, ignoring");
3372 >      conf_error_report("File open failed, ignoring");
3373        break;
3374      }
3375  
3376 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3699 <      0, NULL);
3376 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3377  
3378      BIO_set_close(file, BIO_CLOSE);
3379      BIO_free(file);
3380  
3381      if (ServerInfo.rsa_private_key == NULL)
3382      {
3383 <      yyerror("Couldn't extract key, ignoring");
3383 >      conf_error_report("Couldn't extract key, ignoring");
3384        break;
3385      }
3386  
# Line 3712 | Line 3389 | yyreduce:
3389        RSA_free(ServerInfo.rsa_private_key);
3390        ServerInfo.rsa_private_key = NULL;
3391  
3392 <      yyerror("Invalid key, ignoring");
3392 >      conf_error_report("Invalid key, ignoring");
3393        break;
3394      }
3395  
# Line 3722 | Line 3399 | yyreduce:
3399        RSA_free(ServerInfo.rsa_private_key);
3400        ServerInfo.rsa_private_key = NULL;
3401  
3402 <      yyerror("Not a 2048 bit key, ignoring");
3402 >      conf_error_report("Not a 2048 bit key, ignoring");
3403      }
3404    }
3405   #endif
3406   }
3407      break;
3408  
3409 <  case 72:
3409 >  case 83:
3410 > /* Line 1787 of yacc.c  */
3411 > #line 606 "conf_parser.y"
3412 >    {
3413 > /* TBD - XXX: error reporting */
3414 > #ifdef HAVE_LIBCRYPTO
3415 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3416 >  {
3417 >    BIO *file = BIO_new_file(yylval.string, "r");
3418  
3419 < /* Line 1455 of yacc.c  */
3420 < #line 624 "ircd_parser.y"
3419 >    if (file)
3420 >    {
3421 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3422 >
3423 >      BIO_free(file);
3424 >
3425 >      if (dh)
3426 >      {
3427 >        if (DH_size(dh) < 128)
3428 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3429 >        else
3430 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3431 >
3432 >        DH_free(dh);
3433 >      }
3434 >    }
3435 >  }
3436 > #endif
3437 > }
3438 >    break;
3439 >
3440 >  case 84:
3441 > /* Line 1787 of yacc.c  */
3442 > #line 634 "conf_parser.y"
3443 >    {
3444 > #ifdef HAVE_LIBCRYPTO
3445 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3446 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3447 > #endif
3448 > }
3449 >    break;
3450 >
3451 >  case 85:
3452 > /* Line 1787 of yacc.c  */
3453 > #line 642 "conf_parser.y"
3454      {
3455    /* this isn't rehashable */
3456 <  if (conf_parser_ctx.pass == 2)
3456 >  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3457    {
3458 <    if (ServerInfo.name == NULL)
3458 >    if (valid_servname(yylval.string))
3459 >      ServerInfo.name = xstrdup(yylval.string);
3460 >    else
3461      {
3462 <      /* the ircd will exit() in main() if we dont set one */
3463 <      if (strlen(yylval.string) <= HOSTLEN)
3744 <        DupString(ServerInfo.name, yylval.string);
3462 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3463 >      exit(0);
3464      }
3465    }
3466   }
3467      break;
3468  
3469 <  case 73:
3470 <
3471 < /* Line 1455 of yacc.c  */
3753 < #line 638 "ircd_parser.y"
3469 >  case 86:
3470 > /* Line 1787 of yacc.c  */
3471 > #line 657 "conf_parser.y"
3472      {
3473    /* this isn't rehashable */
3474    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3475    {
3476      if (valid_sid(yylval.string))
3477 <      DupString(ServerInfo.sid, yylval.string);
3477 >      ServerInfo.sid = xstrdup(yylval.string);
3478      else
3479      {
3480 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3480 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3481        exit(0);
3482      }
3483    }
3484   }
3485      break;
3486  
3487 <  case 74:
3488 <
3489 < /* Line 1455 of yacc.c  */
3772 < #line 653 "ircd_parser.y"
3487 >  case 87:
3488 > /* Line 1787 of yacc.c  */
3489 > #line 672 "conf_parser.y"
3490      {
3491    if (conf_parser_ctx.pass == 2)
3492    {
3493      MyFree(ServerInfo.description);
3494 <    DupString(ServerInfo.description,yylval.string);
3494 >    ServerInfo.description = xstrdup(yylval.string);
3495    }
3496   }
3497      break;
3498  
3499 <  case 75:
3500 <
3501 < /* Line 1455 of yacc.c  */
3785 < #line 662 "ircd_parser.y"
3499 >  case 88:
3500 > /* Line 1787 of yacc.c  */
3501 > #line 681 "conf_parser.y"
3502      {
3503    if (conf_parser_ctx.pass == 2)
3504    {
# Line 3792 | Line 3508 | yyreduce:
3508        p = '\0';
3509  
3510      MyFree(ServerInfo.network_name);
3511 <    DupString(ServerInfo.network_name, yylval.string);
3511 >    ServerInfo.network_name = xstrdup(yylval.string);
3512    }
3513   }
3514      break;
3515  
3516 <  case 76:
3517 <
3518 < /* Line 1455 of yacc.c  */
3803 < #line 676 "ircd_parser.y"
3516 >  case 89:
3517 > /* Line 1787 of yacc.c  */
3518 > #line 695 "conf_parser.y"
3519      {
3520    if (conf_parser_ctx.pass == 2)
3521    {
3522      MyFree(ServerInfo.network_desc);
3523 <    DupString(ServerInfo.network_desc, yylval.string);
3523 >    ServerInfo.network_desc = xstrdup(yylval.string);
3524    }
3525   }
3526      break;
3527  
3528 <  case 77:
3529 <
3530 < /* Line 1455 of yacc.c  */
3816 < #line 685 "ircd_parser.y"
3528 >  case 90:
3529 > /* Line 1787 of yacc.c  */
3530 > #line 704 "conf_parser.y"
3531      {
3532    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3533    {
# Line 3825 | Line 3539 | yyreduce:
3539      hints.ai_socktype = SOCK_STREAM;
3540      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3541  
3542 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3543 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3542 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3543 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3544      else
3545      {
3546        assert(res != NULL);
# Line 3834 | Line 3548 | yyreduce:
3548        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3549        ServerInfo.ip.ss.ss_family = res->ai_family;
3550        ServerInfo.ip.ss_len = res->ai_addrlen;
3551 <      irc_freeaddrinfo(res);
3551 >      freeaddrinfo(res);
3552  
3553        ServerInfo.specific_ipv4_vhost = 1;
3554      }
# Line 3842 | Line 3556 | yyreduce:
3556   }
3557      break;
3558  
3559 <  case 78:
3560 <
3561 < /* Line 1455 of yacc.c  */
3848 < #line 713 "ircd_parser.y"
3559 >  case 91:
3560 > /* Line 1787 of yacc.c  */
3561 > #line 732 "conf_parser.y"
3562      {
3563   #ifdef IPV6
3564    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3858 | Line 3571 | yyreduce:
3571      hints.ai_socktype = SOCK_STREAM;
3572      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3573  
3574 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3575 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3574 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3575 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3576      else
3577      {
3578        assert(res != NULL);
# Line 3867 | Line 3580 | yyreduce:
3580        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3581        ServerInfo.ip6.ss.ss_family = res->ai_family;
3582        ServerInfo.ip6.ss_len = res->ai_addrlen;
3583 <      irc_freeaddrinfo(res);
3583 >      freeaddrinfo(res);
3584  
3585        ServerInfo.specific_ipv6_vhost = 1;
3586      }
# Line 3876 | Line 3589 | yyreduce:
3589   }
3590      break;
3591  
3592 <  case 79:
3593 <
3594 < /* Line 1455 of yacc.c  */
3882 < #line 743 "ircd_parser.y"
3592 >  case 92:
3593 > /* Line 1787 of yacc.c  */
3594 > #line 762 "conf_parser.y"
3595      {
3596 <  if (conf_parser_ctx.pass == 2)
3596 >  if (conf_parser_ctx.pass != 2)
3597 >    break;
3598 >
3599 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3600    {
3601 <    recalc_fdlimit(NULL);
3601 >    char buf[IRCD_BUFSIZE];
3602  
3603 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3604 <    {
3605 <      char buf[IRCD_BUFSIZE];
3891 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3892 <      yyerror(buf);
3893 <    }
3894 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3895 <    {
3896 <      char buf[IRCD_BUFSIZE];
3897 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3898 <      yyerror(buf);
3899 <    }
3900 <    else
3901 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3603 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3604 >    conf_error_report(buf);
3605 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3606    }
3607 +  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3608 +  {
3609 +    char buf[IRCD_BUFSIZE];
3610 +
3611 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3612 +    conf_error_report(buf);
3613 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3614 +  }
3615 +  else
3616 +    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3617   }
3618      break;
3619  
3620 <  case 80:
3621 <
3622 < /* Line 1455 of yacc.c  */
3909 < #line 766 "ircd_parser.y"
3620 >  case 93:
3621 > /* Line 1787 of yacc.c  */
3622 > #line 787 "conf_parser.y"
3623      {
3624 <  if (conf_parser_ctx.pass == 2)
3624 >  if (conf_parser_ctx.pass != 2)
3625 >    break;
3626 >
3627 >  if ((yyvsp[(3) - (4)].number) < 9)
3628    {
3629 <    if (yylval.number)
3630 <    {
3631 <      ServerInfo.hub = 1;
3632 <      delete_capability("HUB");
3633 <      add_capability("HUB", CAP_HUB, 1);
3634 <    }
3635 <    else if (ServerInfo.hub)
3629 >    conf_error_report("max_nick_length too low, setting to 9");
3630 >    ServerInfo.max_nick_length = 9;
3631 >  }
3632 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3633 >  {
3634 >    char buf[IRCD_BUFSIZE];
3635 >
3636 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3637 >    conf_error_report(buf);
3638 >    ServerInfo.max_nick_length = NICKLEN;
3639 >  }
3640 >  else
3641 >    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3642 > }
3643 >    break;
3644 >
3645 >  case 94:
3646 > /* Line 1787 of yacc.c  */
3647 > #line 809 "conf_parser.y"
3648      {
3649 +  if (conf_parser_ctx.pass != 2)
3650 +    break;
3651  
3652 <      ServerInfo.hub = 0;
3653 <      delete_capability("HUB");
3654 <    }
3652 >  if ((yyvsp[(3) - (4)].number) < 80)
3653 >  {
3654 >    conf_error_report("max_topic_length too low, setting to 80");
3655 >    ServerInfo.max_topic_length = 80;
3656 >  }
3657 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3658 >  {
3659 >    char buf[IRCD_BUFSIZE];
3660 >
3661 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3662 >    conf_error_report(buf);
3663 >    ServerInfo.max_topic_length = TOPICLEN;
3664    }
3665 +  else
3666 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670 <  case 88:
3670 >  case 95:
3671 > /* Line 1787 of yacc.c  */
3672 > #line 831 "conf_parser.y"
3673 >    {
3674 >  if (conf_parser_ctx.pass == 2)
3675 >    ServerInfo.hub = yylval.number;
3676 > }
3677 >    break;
3678  
3679 < /* Line 1455 of yacc.c  */
3680 < #line 794 "ircd_parser.y"
3679 >  case 103:
3680 > /* Line 1787 of yacc.c  */
3681 > #line 846 "conf_parser.y"
3682      {
3683    if (conf_parser_ctx.pass == 2)
3684    {
3685      MyFree(AdminInfo.name);
3686 <    DupString(AdminInfo.name, yylval.string);
3686 >    AdminInfo.name = xstrdup(yylval.string);
3687    }
3688   }
3689      break;
3690  
3691 <  case 89:
3692 <
3693 < /* Line 1455 of yacc.c  */
3945 < #line 803 "ircd_parser.y"
3691 >  case 104:
3692 > /* Line 1787 of yacc.c  */
3693 > #line 855 "conf_parser.y"
3694      {
3695    if (conf_parser_ctx.pass == 2)
3696    {
3697      MyFree(AdminInfo.email);
3698 <    DupString(AdminInfo.email, yylval.string);
3698 >    AdminInfo.email = xstrdup(yylval.string);
3699    }
3700   }
3701      break;
3702  
3703 <  case 90:
3704 <
3705 < /* Line 1455 of yacc.c  */
3958 < #line 812 "ircd_parser.y"
3703 >  case 105:
3704 > /* Line 1787 of yacc.c  */
3705 > #line 864 "conf_parser.y"
3706      {
3707    if (conf_parser_ctx.pass == 2)
3708    {
3709      MyFree(AdminInfo.description);
3710 <    DupString(AdminInfo.description, yylval.string);
3710 >    AdminInfo.description = xstrdup(yylval.string);
3711    }
3712   }
3713      break;
3714  
3715 <  case 107:
3716 <
3717 < /* Line 1455 of yacc.c  */
3971 < #line 839 "ircd_parser.y"
3972 <    {
3973 <                        }
3974 <    break;
3975 <
3976 <  case 108:
3977 <
3978 < /* Line 1455 of yacc.c  */
3979 < #line 843 "ircd_parser.y"
3980 <    {
3981 <                        }
3982 <    break;
3983 <
3984 <  case 109:
3985 <
3986 < /* Line 1455 of yacc.c  */
3987 < #line 847 "ircd_parser.y"
3715 >  case 112:
3716 > /* Line 1787 of yacc.c  */
3717 > #line 882 "conf_parser.y"
3718      {
3719    if (conf_parser_ctx.pass == 2)
3720 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3991 <            sizeof(ConfigLoggingEntry.userlog));
3720 >    ConfigLoggingEntry.use_logging = yylval.number;
3721   }
3722      break;
3723  
3724 <  case 110:
3725 <
3726 < /* Line 1455 of yacc.c  */
3998 < #line 854 "ircd_parser.y"
3724 >  case 113:
3725 > /* Line 1787 of yacc.c  */
3726 > #line 888 "conf_parser.y"
3727      {
3728    if (conf_parser_ctx.pass == 2)
3729 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
4002 <            sizeof(ConfigLoggingEntry.failed_operlog));
3729 >    reset_block_state();
3730   }
3731      break;
3732  
3733 <  case 111:
3734 <
3735 < /* Line 1455 of yacc.c  */
4009 < #line 861 "ircd_parser.y"
3733 >  case 114:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 892 "conf_parser.y"
3736      {
3737 <  if (conf_parser_ctx.pass == 2)
4012 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4013 <            sizeof(ConfigLoggingEntry.operlog));
4014 < }
3737 >  if (conf_parser_ctx.pass != 2)
3738      break;
3739  
3740 <  case 112:
3741 <
3742 < /* Line 1455 of yacc.c  */
4020 < #line 868 "ircd_parser.y"
4021 <    {
4022 <  if (conf_parser_ctx.pass == 2)
4023 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
4024 <            sizeof(ConfigLoggingEntry.operspylog));
3740 >  if (block_state.type.value && block_state.file.buf[0])
3741 >    log_set_file(block_state.type.value, block_state.size.value,
3742 >                 block_state.file.buf);
3743   }
3744      break;
3745  
3746 <  case 113:
3747 <
3748 < /* Line 1455 of yacc.c  */
4031 < #line 875 "ircd_parser.y"
3746 >  case 121:
3747 > /* Line 1787 of yacc.c  */
3748 > #line 908 "conf_parser.y"
3749      {
3750 <  if (conf_parser_ctx.pass == 2)
4034 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4035 <            sizeof(ConfigLoggingEntry.glinelog));
4036 < }
3750 >  if (conf_parser_ctx.pass != 2)
3751      break;
3752  
3753 <  case 114:
4040 <
4041 < /* Line 1455 of yacc.c  */
4042 < #line 882 "ircd_parser.y"
4043 <    {
4044 <  if (conf_parser_ctx.pass == 2)
4045 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4046 <            sizeof(ConfigLoggingEntry.klinelog));
3753 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3754   }
3755      break;
3756  
3757 <  case 115:
3758 <
3759 < /* Line 1455 of yacc.c  */
4053 < #line 889 "ircd_parser.y"
3757 >  case 122:
3758 > /* Line 1787 of yacc.c  */
3759 > #line 916 "conf_parser.y"
3760      {
3761 <  if (conf_parser_ctx.pass == 2)
4056 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4057 <            sizeof(ConfigLoggingEntry.ioerrlog));
3761 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3762   }
3763      break;
3764  
3765 <  case 116:
3766 <
3767 < /* Line 1455 of yacc.c  */
4064 < #line 896 "ircd_parser.y"
3765 >  case 123:
3766 > /* Line 1787 of yacc.c  */
3767 > #line 919 "conf_parser.y"
3768      {
3769 <  if (conf_parser_ctx.pass == 2)
4067 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
4068 <            sizeof(ConfigLoggingEntry.killlog));
3769 >  block_state.size.value = 0;
3770   }
3771      break;
3772  
3773 <  case 117:
3774 <
3775 < /* Line 1455 of yacc.c  */
3776 < #line 903 "ircd_parser.y"
4076 <    {
3773 >  case 124:
3774 > /* Line 1787 of yacc.c  */
3775 > #line 924 "conf_parser.y"
3776 >    {
3777    if (conf_parser_ctx.pass == 2)
3778 <    set_log_level(L_CRIT);
3778 >    block_state.type.value = 0;
3779   }
3780      break;
3781  
3782 <  case 118:
3783 <
3784 < /* Line 1455 of yacc.c  */
4085 < #line 907 "ircd_parser.y"
3782 >  case 128:
3783 > /* Line 1787 of yacc.c  */
3784 > #line 931 "conf_parser.y"
3785      {
3786    if (conf_parser_ctx.pass == 2)
3787 <    set_log_level(L_ERROR);
3787 >    block_state.type.value = LOG_TYPE_USER;
3788   }
3789      break;
3790  
3791 <  case 119:
3792 <
3793 < /* Line 1455 of yacc.c  */
4095 < #line 911 "ircd_parser.y"
3791 >  case 129:
3792 > /* Line 1787 of yacc.c  */
3793 > #line 935 "conf_parser.y"
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796 <    set_log_level(L_WARN);
3796 >    block_state.type.value = LOG_TYPE_OPER;
3797   }
3798      break;
3799  
3800 <  case 120:
3801 <
3802 < /* Line 1455 of yacc.c  */
4105 < #line 915 "ircd_parser.y"
3800 >  case 130:
3801 > /* Line 1787 of yacc.c  */
3802 > #line 939 "conf_parser.y"
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805 <    set_log_level(L_NOTICE);
3805 >    block_state.type.value = LOG_TYPE_GLINE;
3806   }
3807      break;
3808  
3809 <  case 121:
3810 <
3811 < /* Line 1455 of yacc.c  */
4115 < #line 919 "ircd_parser.y"
3809 >  case 131:
3810 > /* Line 1787 of yacc.c  */
3811 > #line 943 "conf_parser.y"
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <    set_log_level(L_TRACE);
3814 >    block_state.type.value = LOG_TYPE_DLINE;
3815   }
3816      break;
3817  
3818 <  case 122:
3819 <
3820 < /* Line 1455 of yacc.c  */
4125 < #line 923 "ircd_parser.y"
3818 >  case 132:
3819 > /* Line 1787 of yacc.c  */
3820 > #line 947 "conf_parser.y"
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <    set_log_level(L_INFO);
3823 >    block_state.type.value = LOG_TYPE_KLINE;
3824   }
3825      break;
3826  
3827 <  case 123:
3828 <
3829 < /* Line 1455 of yacc.c  */
4135 < #line 927 "ircd_parser.y"
3827 >  case 133:
3828 > /* Line 1787 of yacc.c  */
3829 > #line 951 "conf_parser.y"
3830      {
3831    if (conf_parser_ctx.pass == 2)
3832 <    set_log_level(L_DEBUG);
3832 >    block_state.type.value = LOG_TYPE_KILL;
3833   }
3834      break;
3835  
3836 <  case 124:
3837 <
3838 < /* Line 1455 of yacc.c  */
4145 < #line 933 "ircd_parser.y"
3836 >  case 134:
3837 > /* Line 1787 of yacc.c  */
3838 > #line 955 "conf_parser.y"
3839      {
3840    if (conf_parser_ctx.pass == 2)
3841 <    ConfigLoggingEntry.use_logging = yylval.number;
3841 >    block_state.type.value = LOG_TYPE_DEBUG;
3842   }
3843      break;
3844  
3845 <  case 125:
3846 <
3847 < /* Line 1455 of yacc.c  */
4155 < #line 942 "ircd_parser.y"
3845 >  case 135:
3846 > /* Line 1787 of yacc.c  */
3847 > #line 965 "conf_parser.y"
3848      {
3849 <  if (conf_parser_ctx.pass == 2)
4158 <  {
4159 <    yy_conf = make_conf_item(OPER_TYPE);
4160 <    yy_aconf = map_to_conf(yy_conf);
4161 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4162 <  }
4163 <  else
4164 <  {
4165 <    MyFree(class_name);
4166 <    class_name = NULL;
4167 <  }
4168 < }
3849 >  if (conf_parser_ctx.pass != 2)
3850      break;
3851  
3852 <  case 126:
3852 >  reset_block_state();
3853 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3854 > }
3855 >    break;
3856  
3857 < /* Line 1455 of yacc.c  */
3858 < #line 955 "ircd_parser.y"
3857 >  case 136:
3858 > /* Line 1787 of yacc.c  */
3859 > #line 972 "conf_parser.y"
3860      {
3861 <  if (conf_parser_ctx.pass == 2)
4177 <  {
4178 <    struct CollectItem *yy_tmp;
4179 <    dlink_node *ptr;
4180 <    dlink_node *next_ptr;
3861 >  dlink_node *ptr = NULL;
3862  
3863 <    conf_add_class_to_conf(yy_conf, class_name);
3863 >  if (conf_parser_ctx.pass != 2)
3864 >    break;
3865  
3866 <    /* Now, make sure there is a copy of the "base" given oper
3867 <     * block in each of the collected copies
3868 <     */
3866 >  if (!block_state.name.buf[0])
3867 >    break;
3868 > #ifdef HAVE_LIBCRYPTO
3869 >  if (!(block_state.file.buf[0] ||
3870 >        block_state.rpass.buf[0]))
3871 >    break;
3872 > #else
3873 >  if (!block_state.rpass.buf[0])
3874 >    break;
3875 > #endif
3876  
3877 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3878 <    {
3879 <      struct AccessItem *new_aconf;
3880 <      struct ConfItem *new_conf;
4192 <      yy_tmp = ptr->data;
3877 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3878 >  {
3879 >    struct MaskItem *conf = NULL;
3880 >    struct split_nuh_item nuh;
3881  
3882 <      new_conf = make_conf_item(OPER_TYPE);
3883 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3882 >    nuh.nuhmask  = ptr->data;
3883 >    nuh.nickptr  = NULL;
3884 >    nuh.userptr  = block_state.user.buf;
3885 >    nuh.hostptr  = block_state.host.buf;
3886 >    nuh.nicksize = 0;
3887 >    nuh.usersize = sizeof(block_state.user.buf);
3888 >    nuh.hostsize = sizeof(block_state.host.buf);
3889 >    split_nuh(&nuh);
3890  
3891 <      new_aconf->flags = yy_aconf->flags;
3891 >    conf        = conf_make(CONF_OPER);
3892 >    conf->name  = xstrdup(block_state.name.buf);
3893 >    conf->user  = xstrdup(block_state.user.buf);
3894 >    conf->host  = xstrdup(block_state.host.buf);
3895 >
3896 >    if (block_state.rpass.buf[0])
3897 >      conf->passwd = xstrdup(block_state.rpass.buf);
3898 >
3899 >    conf->flags = block_state.flags.value;
3900 >    conf->modes = block_state.modes.value;
3901 >    conf->port  = block_state.port.value;
3902 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3903  
3904 <      if (yy_conf->name != NULL)
4200 <        DupString(new_conf->name, yy_conf->name);
4201 <      if (yy_tmp->user != NULL)
4202 <        DupString(new_aconf->user, yy_tmp->user);
4203 <      else
4204 <        DupString(new_aconf->user, "*");
4205 <      if (yy_tmp->host != NULL)
4206 <        DupString(new_aconf->host, yy_tmp->host);
4207 <      else
4208 <        DupString(new_aconf->host, "*");
4209 <      conf_add_class_to_conf(new_conf, class_name);
4210 <      if (yy_aconf->passwd != NULL)
4211 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3904 >    conf_add_class_to_conf(conf, block_state.class.buf);
3905  
4213      new_aconf->port = yy_aconf->port;
3906   #ifdef HAVE_LIBCRYPTO
3907 <      if (yy_aconf->rsa_public_key_file != NULL)
3908 <      {
3909 <        BIO *file;
3910 <
4219 <        DupString(new_aconf->rsa_public_key_file,
4220 <                  yy_aconf->rsa_public_key_file);
4221 <
4222 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4223 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4224 <                                                           NULL, 0, NULL);
4225 <        BIO_set_close(file, BIO_CLOSE);
4226 <        BIO_free(file);
4227 <      }
4228 < #endif
3907 >    if (block_state.file.buf[0])
3908 >    {
3909 >      BIO *file = NULL;
3910 >      RSA *pkey = NULL;
3911  
3912 < #ifdef HAVE_LIBCRYPTO
4231 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4232 <          && yy_tmp->host)
4233 < #else
4234 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4235 < #endif
3912 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3913        {
3914 <        conf_add_class_to_conf(new_conf, class_name);
3915 <        if (yy_tmp->name != NULL)
4239 <          DupString(new_conf->name, yy_tmp->name);
3914 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3915 >        break;
3916        }
3917  
3918 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3919 <      free_collect_item(yy_tmp);
4244 <    }
4245 <
4246 <    yy_conf = NULL;
4247 <    yy_aconf = NULL;
4248 <
3918 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3919 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3920  
3921 <    MyFree(class_name);
3922 <    class_name = NULL;
3921 >      conf->rsa_public_key = pkey;
3922 >      BIO_set_close(file, BIO_CLOSE);
3923 >      BIO_free(file);
3924 >    }
3925 > #endif /* HAVE_LIBCRYPTO */
3926    }
3927   }
3928      break;
3929  
3930 <  case 154:
3931 <
3932 < /* Line 1455 of yacc.c  */
4259 < #line 1047 "ircd_parser.y"
3930 >  case 148:
3931 > /* Line 1787 of yacc.c  */
3932 > #line 1047 "conf_parser.y"
3933      {
3934    if (conf_parser_ctx.pass == 2)
3935 <  {
4263 <    if (strlen(yylval.string) > OPERNICKLEN)
4264 <      yylval.string[OPERNICKLEN] = '\0';
4265 <
4266 <    MyFree(yy_conf->name);
4267 <    DupString(yy_conf->name, yylval.string);
4268 <  }
3935 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3936   }
3937      break;
3938  
3939 <  case 155:
3940 <
3941 < /* Line 1455 of yacc.c  */
4275 < #line 1059 "ircd_parser.y"
3939 >  case 149:
3940 > /* Line 1787 of yacc.c  */
3941 > #line 1053 "conf_parser.y"
3942      {
3943    if (conf_parser_ctx.pass == 2)
3944 <  {
4279 <    if (strlen(yylval.string) > OPERNICKLEN)
4280 <      yylval.string[OPERNICKLEN] = '\0';
4281 <
4282 <    MyFree(yy_conf->name);
4283 <    DupString(yy_conf->name, yylval.string);
4284 <  }
3944 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3945   }
3946      break;
3947  
3948 <  case 156:
3949 <
3950 < /* Line 1455 of yacc.c  */
4291 < #line 1071 "ircd_parser.y"
3948 >  case 150:
3949 > /* Line 1787 of yacc.c  */
3950 > #line 1059 "conf_parser.y"
3951      {
3952    if (conf_parser_ctx.pass == 2)
3953 <  {
3954 <    struct split_nuh_item nuh;
3955 <
4297 <    nuh.nuhmask  = yylval.string;
4298 <    nuh.nickptr  = NULL;
4299 <    nuh.userptr  = userbuf;
4300 <    nuh.hostptr  = hostbuf;
4301 <
4302 <    nuh.nicksize = 0;
4303 <    nuh.usersize = sizeof(userbuf);
4304 <    nuh.hostsize = sizeof(hostbuf);
4305 <
4306 <    split_nuh(&nuh);
3953 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3954 > }
3955 >    break;
3956  
3957 <    if (yy_aconf->user == NULL)
3957 >  case 151:
3958 > /* Line 1787 of yacc.c  */
3959 > #line 1065 "conf_parser.y"
3960      {
3961 <      DupString(yy_aconf->user, userbuf);
3962 <      DupString(yy_aconf->host, hostbuf);
3963 <    }
3961 >  if (conf_parser_ctx.pass == 2)
3962 >  {
3963 >    if (yylval.number)
3964 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3965      else
3966 <    {
4315 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4316 <
4317 <      DupString(yy_tmp->user, userbuf);
4318 <      DupString(yy_tmp->host, hostbuf);
4319 <
4320 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4321 <    }
3966 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3967    }
3968   }
3969      break;
3970  
3971 <  case 157:
3971 >  case 152:
3972 > /* Line 1787 of yacc.c  */
3973 > #line 1076 "conf_parser.y"
3974 >    {
3975 >  if (conf_parser_ctx.pass == 2)
3976 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3977 > }
3978 >    break;
3979  
3980 < /* Line 1455 of yacc.c  */
3981 < #line 1105 "ircd_parser.y"
3980 >  case 153:
3981 > /* Line 1787 of yacc.c  */
3982 > #line 1082 "conf_parser.y"
3983      {
3984    if (conf_parser_ctx.pass == 2)
3985 <  {
3986 <    if (yy_aconf->passwd != NULL)
3987 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3985 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3986 > }
3987 >    break;
3988  
3989 <    MyFree(yy_aconf->passwd);
3990 <    DupString(yy_aconf->passwd, yylval.string);
3991 <  }
3989 >  case 154:
3990 > /* Line 1787 of yacc.c  */
3991 > #line 1088 "conf_parser.y"
3992 >    {
3993 >  if (conf_parser_ctx.pass == 2)
3994 >    block_state.modes.value = 0;
3995   }
3996      break;
3997  
3998    case 158:
3999 <
4000 < /* Line 1455 of yacc.c  */
4345 < #line 1117 "ircd_parser.y"
3999 > /* Line 1787 of yacc.c  */
4000 > #line 1095 "conf_parser.y"
4001      {
4002    if (conf_parser_ctx.pass == 2)
4003 <  {
4349 <    if (yylval.number)
4350 <      SetConfEncrypted(yy_aconf);
4351 <    else
4352 <      ClearConfEncrypted(yy_aconf);
4353 <  }
4003 >    block_state.modes.value |= UMODE_BOTS;
4004   }
4005      break;
4006  
4007    case 159:
4008 <
4009 < /* Line 1455 of yacc.c  */
4360 < #line 1128 "ircd_parser.y"
4008 > /* Line 1787 of yacc.c  */
4009 > #line 1099 "conf_parser.y"
4010      {
4362 #ifdef HAVE_LIBCRYPTO
4011    if (conf_parser_ctx.pass == 2)
4012 <  {
4013 <    BIO *file;
4014 <
4367 <    if (yy_aconf->rsa_public_key != NULL)
4368 <    {
4369 <      RSA_free(yy_aconf->rsa_public_key);
4370 <      yy_aconf->rsa_public_key = NULL;
4371 <    }
4012 >    block_state.modes.value |= UMODE_CCONN;
4013 > }
4014 >    break;
4015  
4016 <    if (yy_aconf->rsa_public_key_file != NULL)
4016 >  case 160:
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1103 "conf_parser.y"
4019      {
4020 <      MyFree(yy_aconf->rsa_public_key_file);
4021 <      yy_aconf->rsa_public_key_file = NULL;
4022 <    }
4023 <
4379 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4380 <    file = BIO_new_file(yylval.string, "r");
4020 >  if (conf_parser_ctx.pass == 2)
4021 >    block_state.modes.value |= UMODE_CCONN_FULL;
4022 > }
4023 >    break;
4024  
4025 <    if (file == NULL)
4025 >  case 161:
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1107 "conf_parser.y"
4028      {
4029 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4030 <      break;
4031 <    }
4032 <
4388 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4029 >  if (conf_parser_ctx.pass == 2)
4030 >    block_state.modes.value |= UMODE_DEAF;
4031 > }
4032 >    break;
4033  
4034 <    if (yy_aconf->rsa_public_key == NULL)
4034 >  case 162:
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1111 "conf_parser.y"
4037      {
4038 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4039 <      break;
4394 <    }
4395 <
4396 <    BIO_set_close(file, BIO_CLOSE);
4397 <    BIO_free(file);
4398 <  }
4399 < #endif /* HAVE_LIBCRYPTO */
4038 >  if (conf_parser_ctx.pass == 2)
4039 >    block_state.modes.value |= UMODE_DEBUG;
4040   }
4041      break;
4042  
4043 <  case 160:
4044 <
4045 < /* Line 1455 of yacc.c  */
4406 < #line 1170 "ircd_parser.y"
4043 >  case 163:
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1115 "conf_parser.y"
4046      {
4047    if (conf_parser_ctx.pass == 2)
4048 <  {
4410 <    MyFree(class_name);
4411 <    DupString(class_name, yylval.string);
4412 <  }
4048 >    block_state.modes.value |= UMODE_FULL;
4049   }
4050      break;
4051  
4052 <  case 161:
4053 <
4054 < /* Line 1455 of yacc.c  */
4419 < #line 1179 "ircd_parser.y"
4052 >  case 164:
4053 > /* Line 1787 of yacc.c  */
4054 > #line 1119 "conf_parser.y"
4055      {
4056    if (conf_parser_ctx.pass == 2)
4057 <    yy_aconf->modes = 0;
4057 >    block_state.modes.value |= UMODE_HIDDEN;
4058   }
4059      break;
4060  
4061    case 165:
4062 <
4063 < /* Line 1455 of yacc.c  */
4429 < #line 1186 "ircd_parser.y"
4062 > /* Line 1787 of yacc.c  */
4063 > #line 1123 "conf_parser.y"
4064      {
4065    if (conf_parser_ctx.pass == 2)
4066 <    yy_aconf->modes |= UMODE_BOTS;
4066 >    block_state.modes.value |= UMODE_SKILL;
4067   }
4068      break;
4069  
4070    case 166:
4071 <
4072 < /* Line 1455 of yacc.c  */
4439 < #line 1190 "ircd_parser.y"
4071 > /* Line 1787 of yacc.c  */
4072 > #line 1127 "conf_parser.y"
4073      {
4074    if (conf_parser_ctx.pass == 2)
4075 <    yy_aconf->modes |= UMODE_CCONN;
4075 >    block_state.modes.value |= UMODE_NCHANGE;
4076   }
4077      break;
4078  
4079    case 167:
4080 <
4081 < /* Line 1455 of yacc.c  */
4449 < #line 1194 "ircd_parser.y"
4080 > /* Line 1787 of yacc.c  */
4081 > #line 1131 "conf_parser.y"
4082      {
4083    if (conf_parser_ctx.pass == 2)
4084 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4084 >    block_state.modes.value |= UMODE_REJ;
4085   }
4086      break;
4087  
4088    case 168:
4089 <
4090 < /* Line 1455 of yacc.c  */
4459 < #line 1198 "ircd_parser.y"
4089 > /* Line 1787 of yacc.c  */
4090 > #line 1135 "conf_parser.y"
4091      {
4092    if (conf_parser_ctx.pass == 2)
4093 <    yy_aconf->modes |= UMODE_DEAF;
4093 >    block_state.modes.value |= UMODE_UNAUTH;
4094   }
4095      break;
4096  
4097    case 169:
4098 <
4099 < /* Line 1455 of yacc.c  */
4469 < #line 1202 "ircd_parser.y"
4098 > /* Line 1787 of yacc.c  */
4099 > #line 1139 "conf_parser.y"
4100      {
4101    if (conf_parser_ctx.pass == 2)
4102 <    yy_aconf->modes |= UMODE_DEBUG;
4102 >    block_state.modes.value |= UMODE_SPY;
4103   }
4104      break;
4105  
4106    case 170:
4107 <
4108 < /* Line 1455 of yacc.c  */
4479 < #line 1206 "ircd_parser.y"
4107 > /* Line 1787 of yacc.c  */
4108 > #line 1143 "conf_parser.y"
4109      {
4110    if (conf_parser_ctx.pass == 2)
4111 <    yy_aconf->modes |= UMODE_FULL;
4111 >    block_state.modes.value |= UMODE_EXTERNAL;
4112   }
4113      break;
4114  
4115    case 171:
4116 <
4117 < /* Line 1455 of yacc.c  */
4489 < #line 1210 "ircd_parser.y"
4116 > /* Line 1787 of yacc.c  */
4117 > #line 1147 "conf_parser.y"
4118      {
4119    if (conf_parser_ctx.pass == 2)
4120 <    yy_aconf->modes |= UMODE_SKILL;
4120 >    block_state.modes.value |= UMODE_OPERWALL;
4121   }
4122      break;
4123  
4124    case 172:
4125 <
4126 < /* Line 1455 of yacc.c  */
4499 < #line 1214 "ircd_parser.y"
4125 > /* Line 1787 of yacc.c  */
4126 > #line 1151 "conf_parser.y"
4127      {
4128    if (conf_parser_ctx.pass == 2)
4129 <    yy_aconf->modes |= UMODE_NCHANGE;
4129 >    block_state.modes.value |= UMODE_SERVNOTICE;
4130   }
4131      break;
4132  
4133    case 173:
4134 <
4135 < /* Line 1455 of yacc.c  */
4509 < #line 1218 "ircd_parser.y"
4134 > /* Line 1787 of yacc.c  */
4135 > #line 1155 "conf_parser.y"
4136      {
4137    if (conf_parser_ctx.pass == 2)
4138 <    yy_aconf->modes |= UMODE_REJ;
4138 >    block_state.modes.value |= UMODE_INVISIBLE;
4139   }
4140      break;
4141  
4142    case 174:
4143 <
4144 < /* Line 1455 of yacc.c  */
4519 < #line 1222 "ircd_parser.y"
4143 > /* Line 1787 of yacc.c  */
4144 > #line 1159 "conf_parser.y"
4145      {
4146    if (conf_parser_ctx.pass == 2)
4147 <    yy_aconf->modes |= UMODE_UNAUTH;
4147 >    block_state.modes.value |= UMODE_WALLOP;
4148   }
4149      break;
4150  
4151    case 175:
4152 <
4153 < /* Line 1455 of yacc.c  */
4529 < #line 1226 "ircd_parser.y"
4152 > /* Line 1787 of yacc.c  */
4153 > #line 1163 "conf_parser.y"
4154      {
4155    if (conf_parser_ctx.pass == 2)
4156 <    yy_aconf->modes |= UMODE_SPY;
4156 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4157   }
4158      break;
4159  
4160    case 176:
4161 <
4162 < /* Line 1455 of yacc.c  */
4539 < #line 1230 "ircd_parser.y"
4161 > /* Line 1787 of yacc.c  */
4162 > #line 1167 "conf_parser.y"
4163      {
4164    if (conf_parser_ctx.pass == 2)
4165 <    yy_aconf->modes |= UMODE_EXTERNAL;
4165 >    block_state.modes.value |= UMODE_CALLERID;
4166   }
4167      break;
4168  
4169    case 177:
4170 <
4171 < /* Line 1455 of yacc.c  */
4549 < #line 1234 "ircd_parser.y"
4170 > /* Line 1787 of yacc.c  */
4171 > #line 1171 "conf_parser.y"
4172      {
4173    if (conf_parser_ctx.pass == 2)
4174 <    yy_aconf->modes |= UMODE_OPERWALL;
4174 >    block_state.modes.value |= UMODE_LOCOPS;
4175   }
4176      break;
4177  
4178    case 178:
4179 <
4180 < /* Line 1455 of yacc.c  */
4559 < #line 1238 "ircd_parser.y"
4179 > /* Line 1787 of yacc.c  */
4180 > #line 1175 "conf_parser.y"
4181      {
4182    if (conf_parser_ctx.pass == 2)
4183 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4183 >    block_state.modes.value |= UMODE_REGONLY;
4184   }
4185      break;
4186  
4187    case 179:
4188 <
4189 < /* Line 1455 of yacc.c  */
4569 < #line 1242 "ircd_parser.y"
4570 <    {
4571 <  if (conf_parser_ctx.pass == 2)
4572 <    yy_aconf->modes |= UMODE_INVISIBLE;
4573 < }
4574 <    break;
4575 <
4576 <  case 180:
4577 <
4578 < /* Line 1455 of yacc.c  */
4579 < #line 1246 "ircd_parser.y"
4580 <    {
4581 <  if (conf_parser_ctx.pass == 2)
4582 <    yy_aconf->modes |= UMODE_WALLOP;
4583 < }
4584 <    break;
4585 <
4586 <  case 181:
4587 <
4588 < /* Line 1455 of yacc.c  */
4589 < #line 1250 "ircd_parser.y"
4590 <    {
4591 <  if (conf_parser_ctx.pass == 2)
4592 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4593 < }
4594 <    break;
4595 <
4596 <  case 182:
4597 <
4598 < /* Line 1455 of yacc.c  */
4599 < #line 1254 "ircd_parser.y"
4188 > /* Line 1787 of yacc.c  */
4189 > #line 1181 "conf_parser.y"
4190      {
4191    if (conf_parser_ctx.pass == 2)
4192 <    yy_aconf->modes |= UMODE_CALLERID;
4192 >    block_state.port.value = 0;
4193   }
4194      break;
4195  
4196    case 183:
4197 <
4198 < /* Line 1455 of yacc.c  */
4609 < #line 1258 "ircd_parser.y"
4197 > /* Line 1787 of yacc.c  */
4198 > #line 1188 "conf_parser.y"
4199      {
4200    if (conf_parser_ctx.pass == 2)
4201 <    yy_aconf->modes |= UMODE_LOCOPS;
4201 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4202   }
4203      break;
4204  
4205    case 184:
4206 <
4207 < /* Line 1455 of yacc.c  */
4619 < #line 1264 "ircd_parser.y"
4206 > /* Line 1787 of yacc.c  */
4207 > #line 1192 "conf_parser.y"
4208      {
4209    if (conf_parser_ctx.pass == 2)
4210 <  {
4623 <    if (yylval.number)
4624 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4625 <    else
4626 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4627 <  }
4210 >    block_state.port.value |= OPER_FLAG_REMOTE;
4211   }
4212      break;
4213  
4214    case 185:
4215 <
4216 < /* Line 1455 of yacc.c  */
4634 < #line 1275 "ircd_parser.y"
4215 > /* Line 1787 of yacc.c  */
4216 > #line 1196 "conf_parser.y"
4217      {
4218    if (conf_parser_ctx.pass == 2)
4219 <  {
4638 <    if (yylval.number)
4639 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4640 <    else
4641 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4642 <  }
4219 >    block_state.port.value |= OPER_FLAG_K;
4220   }
4221      break;
4222  
4223    case 186:
4224 <
4225 < /* Line 1455 of yacc.c  */
4649 < #line 1286 "ircd_parser.y"
4224 > /* Line 1787 of yacc.c  */
4225 > #line 1200 "conf_parser.y"
4226      {
4227    if (conf_parser_ctx.pass == 2)
4228 <  {
4653 <    if (yylval.number)
4654 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4655 <    else
4656 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4657 <  }
4228 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4229   }
4230      break;
4231  
4232    case 187:
4233 <
4234 < /* Line 1455 of yacc.c  */
4664 < #line 1297 "ircd_parser.y"
4233 > /* Line 1787 of yacc.c  */
4234 > #line 1204 "conf_parser.y"
4235      {
4236    if (conf_parser_ctx.pass == 2)
4237 <  {
4668 <    if (yylval.number)
4669 <      yy_aconf->port |= OPER_FLAG_K;
4670 <    else
4671 <      yy_aconf->port &= ~OPER_FLAG_K;
4672 <  }
4237 >    block_state.port.value |= OPER_FLAG_DLINE;
4238   }
4239      break;
4240  
4241    case 188:
4242 <
4243 < /* Line 1455 of yacc.c  */
4679 < #line 1308 "ircd_parser.y"
4242 > /* Line 1787 of yacc.c  */
4243 > #line 1208 "conf_parser.y"
4244      {
4245    if (conf_parser_ctx.pass == 2)
4246 <  {
4683 <    if (yylval.number)
4684 <      yy_aconf->port |= OPER_FLAG_X;
4685 <    else
4686 <      yy_aconf->port &= ~OPER_FLAG_X;
4687 <  }
4246 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4247   }
4248      break;
4249  
4250    case 189:
4251 <
4252 < /* Line 1455 of yacc.c  */
4694 < #line 1319 "ircd_parser.y"
4251 > /* Line 1787 of yacc.c  */
4252 > #line 1212 "conf_parser.y"
4253      {
4254    if (conf_parser_ctx.pass == 2)
4255 <  {
4698 <    if (yylval.number)
4699 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4700 <    else
4701 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4702 <  }
4255 >    block_state.port.value |= OPER_FLAG_X;
4256   }
4257      break;
4258  
4259    case 190:
4260 <
4261 < /* Line 1455 of yacc.c  */
4709 < #line 1330 "ircd_parser.y"
4260 > /* Line 1787 of yacc.c  */
4261 > #line 1216 "conf_parser.y"
4262      {
4263    if (conf_parser_ctx.pass == 2)
4264 <  {
4713 <    if (yylval.number)
4714 <      yy_aconf->port |= OPER_FLAG_GLINE;
4715 <    else
4716 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4717 <  }
4264 >    block_state.port.value |= OPER_FLAG_GLINE;
4265   }
4266      break;
4267  
4268    case 191:
4269 <
4270 < /* Line 1455 of yacc.c  */
4724 < #line 1341 "ircd_parser.y"
4269 > /* Line 1787 of yacc.c  */
4270 > #line 1220 "conf_parser.y"
4271      {
4272    if (conf_parser_ctx.pass == 2)
4273 <  {
4728 <    if (yylval.number)
4729 <      yy_aconf->port |= OPER_FLAG_N;
4730 <    else
4731 <      yy_aconf->port &= ~OPER_FLAG_N;
4732 <  }
4273 >    block_state.port.value |= OPER_FLAG_DIE;
4274   }
4275      break;
4276  
4277    case 192:
4278 <
4279 < /* Line 1455 of yacc.c  */
4739 < #line 1352 "ircd_parser.y"
4278 > /* Line 1787 of yacc.c  */
4279 > #line 1224 "conf_parser.y"
4280      {
4281    if (conf_parser_ctx.pass == 2)
4282 <  {
4743 <    if (yylval.number)
4744 <      yy_aconf->port |= OPER_FLAG_DIE;
4745 <    else
4746 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4747 <  }
4282 >    block_state.port.value |= OPER_FLAG_RESTART;
4283   }
4284      break;
4285  
4286    case 193:
4287 <
4288 < /* Line 1455 of yacc.c  */
4754 < #line 1363 "ircd_parser.y"
4287 > /* Line 1787 of yacc.c  */
4288 > #line 1228 "conf_parser.y"
4289      {
4290    if (conf_parser_ctx.pass == 2)
4291 <  {
4758 <    if (yylval.number)
4759 <      yy_aconf->port |= OPER_FLAG_REHASH;
4760 <    else
4761 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4762 <  }
4291 >    block_state.port.value |= OPER_FLAG_REHASH;
4292   }
4293      break;
4294  
4295    case 194:
4296 <
4297 < /* Line 1455 of yacc.c  */
4769 < #line 1374 "ircd_parser.y"
4296 > /* Line 1787 of yacc.c  */
4297 > #line 1232 "conf_parser.y"
4298      {
4299    if (conf_parser_ctx.pass == 2)
4300 <  {
4773 <    if (yylval.number)
4774 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4775 <    else
4776 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4777 <  }
4300 >    block_state.port.value |= OPER_FLAG_ADMIN;
4301   }
4302      break;
4303  
4304    case 195:
4305 <
4306 < /* Line 1455 of yacc.c  */
4784 < #line 1385 "ircd_parser.y"
4305 > /* Line 1787 of yacc.c  */
4306 > #line 1236 "conf_parser.y"
4307      {
4308    if (conf_parser_ctx.pass == 2)
4309 <  {
4788 <    if (yylval.number)
4789 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4790 <    else
4791 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4792 <  }
4309 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4310   }
4311      break;
4312  
4313    case 196:
4314 <
4315 < /* Line 1455 of yacc.c  */
4799 < #line 1396 "ircd_parser.y"
4314 > /* Line 1787 of yacc.c  */
4315 > #line 1240 "conf_parser.y"
4316      {
4317    if (conf_parser_ctx.pass == 2)
4318 <  {
4803 <    if (yylval.number)
4804 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4805 <    else
4806 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4807 <  }
4318 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4319   }
4320      break;
4321  
4322    case 197:
4323 <
4324 < /* Line 1455 of yacc.c  */
4814 < #line 1407 "ircd_parser.y"
4323 > /* Line 1787 of yacc.c  */
4324 > #line 1244 "conf_parser.y"
4325      {
4326    if (conf_parser_ctx.pass == 2)
4327 <  {
4818 <    if (yylval.number)
4819 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4820 <    else
4821 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4822 <  }
4327 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4328   }
4329      break;
4330  
4331    case 198:
4332 <
4333 < /* Line 1455 of yacc.c  */
4829 < #line 1418 "ircd_parser.y"
4830 <    {
4831 < }
4832 <    break;
4833 <
4834 <  case 202:
4835 <
4836 < /* Line 1455 of yacc.c  */
4837 < #line 1422 "ircd_parser.y"
4838 <    { not_atom = 1; }
4839 <    break;
4840 <
4841 <  case 204:
4842 <
4843 < /* Line 1455 of yacc.c  */
4844 < #line 1423 "ircd_parser.y"
4845 <    { not_atom = 0; }
4846 <    break;
4847 <
4848 <  case 206:
4849 <
4850 < /* Line 1455 of yacc.c  */
4851 < #line 1426 "ircd_parser.y"
4852 <    {
4853 <  if (conf_parser_ctx.pass == 2)
4854 <  {
4855 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4856 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4857 <  }
4858 < }
4859 <    break;
4860 <
4861 <  case 207:
4862 <
4863 < /* Line 1455 of yacc.c  */
4864 < #line 1433 "ircd_parser.y"
4332 > /* Line 1787 of yacc.c  */
4333 > #line 1248 "conf_parser.y"
4334      {
4335    if (conf_parser_ctx.pass == 2)
4336 <  {
4868 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4869 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4870 <  }
4336 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4337   }
4338      break;
4339  
4340 <  case 208:
4341 <
4342 < /* Line 1455 of yacc.c  */
4877 < #line 1440 "ircd_parser.y"
4340 >  case 199:
4341 > /* Line 1787 of yacc.c  */
4342 > #line 1252 "conf_parser.y"
4343      {
4344    if (conf_parser_ctx.pass == 2)
4345 <  {
4881 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4882 <    else yy_aconf->port |= OPER_FLAG_K;
4883 <  }
4345 >    block_state.port.value |= OPER_FLAG_SET;
4346   }
4347      break;
4348  
4349 <  case 209:
4350 <
4351 < /* Line 1455 of yacc.c  */
4890 < #line 1447 "ircd_parser.y"
4349 >  case 200:
4350 > /* Line 1787 of yacc.c  */
4351 > #line 1256 "conf_parser.y"
4352      {
4353    if (conf_parser_ctx.pass == 2)
4354 <  {
4894 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4895 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4896 <  }
4354 >    block_state.port.value |= OPER_FLAG_MODULE;
4355   }
4356      break;
4357  
4358 <  case 210:
4359 <
4360 < /* Line 1455 of yacc.c  */
4903 < #line 1454 "ircd_parser.y"
4358 >  case 201:
4359 > /* Line 1787 of yacc.c  */
4360 > #line 1266 "conf_parser.y"
4361      {
4362 <  if (conf_parser_ctx.pass == 2)
4906 <  {
4907 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4908 <    else yy_aconf->port |= OPER_FLAG_X;
4909 <  }
4910 < }
4362 >  if (conf_parser_ctx.pass != 1)
4363      break;
4364  
4365 <  case 211:
4365 >  reset_block_state();
4366  
4367 < /* Line 1455 of yacc.c  */
4368 < #line 1461 "ircd_parser.y"
4369 <    {
4370 <  if (conf_parser_ctx.pass == 2)
4371 <  {
4920 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4921 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4922 <  }
4367 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4368 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4369 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4370 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4371 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4372   }
4373      break;
4374  
4375 <  case 212:
4376 <
4377 < /* Line 1455 of yacc.c  */
4929 < #line 1468 "ircd_parser.y"
4375 >  case 202:
4376 > /* Line 1787 of yacc.c  */
4377 > #line 1278 "conf_parser.y"
4378      {
4379 <  if (conf_parser_ctx.pass == 2)
4932 <  {
4933 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4934 <    else yy_aconf->port |= OPER_FLAG_DIE;
4935 <  }
4936 < }
4937 <    break;
4938 <
4939 <  case 213:
4379 >  struct ClassItem *class = NULL;
4380  
4381 < /* Line 1455 of yacc.c  */
4942 < #line 1475 "ircd_parser.y"
4943 <    {
4944 <  if (conf_parser_ctx.pass == 2)
4945 <  {
4946 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4947 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4948 <  }
4949 < }
4381 >  if (conf_parser_ctx.pass != 1)
4382      break;
4383  
4384 <  case 214:
4953 <
4954 < /* Line 1455 of yacc.c  */
4955 < #line 1482 "ircd_parser.y"
4956 <    {
4957 <  if (conf_parser_ctx.pass == 2)
4958 <  {
4959 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4960 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4961 <  }
4962 < }
4384 >  if (!block_state.class.buf[0])
4385      break;
4386  
4387 <  case 215:
4388 <
4967 < /* Line 1455 of yacc.c  */
4968 < #line 1489 "ircd_parser.y"
4969 <    {
4970 <  if (conf_parser_ctx.pass == 2)
4971 <  {
4972 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4973 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4974 <  }
4975 < }
4976 <    break;
4387 >  if (!(class = class_find(block_state.class.buf, 0)))
4388 >    class = class_make();
4389  
4390 <  case 216:
4390 >  class->active = 1;
4391 >  MyFree(class->name);
4392 >  class->name = xstrdup(block_state.class.buf);
4393 >  class->ping_freq = block_state.ping_freq.value;
4394 >  class->max_perip = block_state.max_perip.value;
4395 >  class->con_freq = block_state.con_freq.value;
4396 >  class->max_total = block_state.max_total.value;
4397 >  class->max_global = block_state.max_global.value;
4398 >  class->max_local = block_state.max_local.value;
4399 >  class->max_ident = block_state.max_ident.value;
4400 >  class->max_sendq = block_state.max_sendq.value;
4401 >  class->max_recvq = block_state.max_recvq.value;
4402  
4403 < /* Line 1455 of yacc.c  */
4981 < #line 1496 "ircd_parser.y"
4982 <    {
4983 <  if (conf_parser_ctx.pass == 2)
4403 >  if (block_state.min_idle.value > block_state.max_idle.value)
4404    {
4405 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4406 <    else yy_aconf->port |= OPER_FLAG_N;
4405 >    block_state.min_idle.value = 0;
4406 >    block_state.max_idle.value = 0;
4407 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4408    }
4988 }
4989    break;
4990
4991  case 217:
4409  
4410 < /* Line 1455 of yacc.c  */
4411 < #line 1503 "ircd_parser.y"
4412 <    {
4996 <  if (conf_parser_ctx.pass == 2)
4997 <  {
4998 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4999 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5000 <  }
5001 < }
5002 <    break;
4410 >  class->flags = block_state.flags.value;
4411 >  class->min_idle = block_state.min_idle.value;
4412 >  class->max_idle = block_state.max_idle.value;
4413  
4414 <  case 218:
4414 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4415 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4416 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4417 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4418 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4419 >        rebuild_cidr_list(class);
4420  
4421 < /* Line 1455 of yacc.c  */
4422 < #line 1510 "ircd_parser.y"
4423 <    {
5009 <  if (conf_parser_ctx.pass == 2)
5010 <  {
5011 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5012 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5013 <  }
4421 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4422 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4423 >  class->number_per_cidr = block_state.number_per_cidr.value;
4424   }
4425      break;
4426  
4427 <  case 219:
4428 <
4429 < /* Line 1455 of yacc.c  */
5020 < #line 1517 "ircd_parser.y"
4427 >  case 222:
4428 > /* Line 1787 of yacc.c  */
4429 > #line 1344 "conf_parser.y"
4430      {
4431 <  if (conf_parser_ctx.pass == 2)
4432 <  {
5024 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5025 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5026 <  }
4431 >  if (conf_parser_ctx.pass == 1)
4432 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4433   }
4434      break;
4435  
4436 <  case 220:
4437 <
4438 < /* Line 1455 of yacc.c  */
5033 < #line 1524 "ircd_parser.y"
4436 >  case 223:
4437 > /* Line 1787 of yacc.c  */
4438 > #line 1350 "conf_parser.y"
4439      {
4440 <  if (conf_parser_ctx.pass == 2)
4441 <  {
5037 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5038 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5039 <  }
4440 >  if (conf_parser_ctx.pass == 1)
4441 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4442   }
4443      break;
4444  
4445 <  case 221:
4446 <
4447 < /* Line 1455 of yacc.c  */
5046 < #line 1531 "ircd_parser.y"
4445 >  case 224:
4446 > /* Line 1787 of yacc.c  */
4447 > #line 1356 "conf_parser.y"
4448      {
4449 <  if (conf_parser_ctx.pass == 2)
4450 <  {
5050 <    if (not_atom) ClearConfEncrypted(yy_aconf);
5051 <    else SetConfEncrypted(yy_aconf);
5052 <  }
4449 >  if (conf_parser_ctx.pass == 1)
4450 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4451   }
4452      break;
4453  
4454 <  case 222:
4455 <
4456 < /* Line 1455 of yacc.c  */
5059 < #line 1544 "ircd_parser.y"
4454 >  case 225:
4455 > /* Line 1787 of yacc.c  */
4456 > #line 1362 "conf_parser.y"
4457      {
4458    if (conf_parser_ctx.pass == 1)
4459 <  {
5063 <    yy_conf = make_conf_item(CLASS_TYPE);
5064 <    yy_class = map_to_conf(yy_conf);
5065 <  }
4459 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4460   }
4461      break;
4462  
4463 <  case 223:
4464 <
4465 < /* Line 1455 of yacc.c  */
5072 < #line 1551 "ircd_parser.y"
4463 >  case 226:
4464 > /* Line 1787 of yacc.c  */
4465 > #line 1368 "conf_parser.y"
4466      {
4467    if (conf_parser_ctx.pass == 1)
4468 <  {
5076 <    struct ConfItem *cconf = NULL;
5077 <    struct ClassItem *class = NULL;
5078 <
5079 <    if (yy_class_name == NULL)
5080 <      delete_conf_item(yy_conf);
5081 <    else
5082 <    {
5083 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
5084 <
5085 <      if (cconf != NULL)                /* The class existed already */
5086 <      {
5087 <        int user_count = 0;
5088 <
5089 <        rebuild_cidr_class(cconf, yy_class);
5090 <
5091 <        class = map_to_conf(cconf);
5092 <
5093 <        user_count = class->curr_user_count;
5094 <        memcpy(class, yy_class, sizeof(*class));
5095 <        class->curr_user_count = user_count;
5096 <        class->active = 1;
5097 <
5098 <        delete_conf_item(yy_conf);
5099 <
5100 <        MyFree(cconf->name);            /* Allows case change of class name */
5101 <        cconf->name = yy_class_name;
5102 <      }
5103 <      else      /* Brand new class */
5104 <      {
5105 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5106 <        yy_conf->name = yy_class_name;
5107 <        yy_class->active = 1;
5108 <      }
5109 <    }
5110 <
5111 <    yy_class_name = NULL;
5112 <  }
4468 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4469   }
4470      break;
4471  
4472 <  case 242:
4473 <
4474 < /* Line 1455 of yacc.c  */
5119 < #line 1611 "ircd_parser.y"
4472 >  case 227:
4473 > /* Line 1787 of yacc.c  */
4474 > #line 1374 "conf_parser.y"
4475      {
4476    if (conf_parser_ctx.pass == 1)
4477 <  {
5123 <    MyFree(yy_class_name);
5124 <    DupString(yy_class_name, yylval.string);
5125 <  }
4477 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4478   }
4479      break;
4480  
4481 <  case 243:
4482 <
4483 < /* Line 1455 of yacc.c  */
5132 < #line 1620 "ircd_parser.y"
4481 >  case 228:
4482 > /* Line 1787 of yacc.c  */
4483 > #line 1380 "conf_parser.y"
4484      {
4485    if (conf_parser_ctx.pass == 1)
4486 <  {
5136 <    MyFree(yy_class_name);
5137 <    DupString(yy_class_name, yylval.string);
5138 <  }
4486 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4487   }
4488      break;
4489  
4490 <  case 244:
4491 <
4492 < /* Line 1455 of yacc.c  */
5145 < #line 1629 "ircd_parser.y"
4490 >  case 229:
4491 > /* Line 1787 of yacc.c  */
4492 > #line 1386 "conf_parser.y"
4493      {
4494    if (conf_parser_ctx.pass == 1)
4495 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4495 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4496   }
4497      break;
4498  
4499 <  case 245:
4500 <
4501 < /* Line 1455 of yacc.c  */
5155 < #line 1635 "ircd_parser.y"
4499 >  case 230:
4500 > /* Line 1787 of yacc.c  */
4501 > #line 1392 "conf_parser.y"
4502      {
4503    if (conf_parser_ctx.pass == 1)
4504 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4504 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4505   }
4506      break;
4507  
4508 <  case 246:
4509 <
4510 < /* Line 1455 of yacc.c  */
5165 < #line 1641 "ircd_parser.y"
4508 >  case 231:
4509 > /* Line 1787 of yacc.c  */
4510 > #line 1398 "conf_parser.y"
4511      {
4512    if (conf_parser_ctx.pass == 1)
4513 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4513 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4514 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4515   }
4516      break;
4517  
4518 <  case 247:
4519 <
4520 < /* Line 1455 of yacc.c  */
5175 < #line 1647 "ircd_parser.y"
4518 >  case 232:
4519 > /* Line 1787 of yacc.c  */
4520 > #line 1405 "conf_parser.y"
4521      {
4522    if (conf_parser_ctx.pass == 1)
4523 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4523 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4524   }
4525      break;
4526  
4527 <  case 248:
4528 <
4529 < /* Line 1455 of yacc.c  */
5185 < #line 1653 "ircd_parser.y"
4527 >  case 233:
4528 > /* Line 1787 of yacc.c  */
4529 > #line 1411 "conf_parser.y"
4530      {
4531    if (conf_parser_ctx.pass == 1)
4532 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4532 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4533   }
4534      break;
4535  
4536 <  case 249:
4537 <
4538 < /* Line 1455 of yacc.c  */
5195 < #line 1659 "ircd_parser.y"
4536 >  case 234:
4537 > /* Line 1787 of yacc.c  */
4538 > #line 1417 "conf_parser.y"
4539      {
4540    if (conf_parser_ctx.pass == 1)
4541 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4541 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4542   }
4543      break;
4544  
4545 <  case 250:
4546 <
4547 < /* Line 1455 of yacc.c  */
5205 < #line 1665 "ircd_parser.y"
4545 >  case 235:
4546 > /* Line 1787 of yacc.c  */
4547 > #line 1423 "conf_parser.y"
4548      {
4549 <  if (conf_parser_ctx.pass == 1)
5208 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
5209 < }
4549 >  if (conf_parser_ctx.pass != 1)
4550      break;
4551  
4552 <  case 251:
4553 <
5214 < /* Line 1455 of yacc.c  */
5215 < #line 1671 "ircd_parser.y"
5216 <    {
5217 <  if (conf_parser_ctx.pass == 1)
5218 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4552 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4553 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4554   }
4555      break;
4556  
4557 <  case 252:
4558 <
4559 < /* Line 1455 of yacc.c  */
5225 < #line 1677 "ircd_parser.y"
4557 >  case 236:
4558 > /* Line 1787 of yacc.c  */
4559 > #line 1432 "conf_parser.y"
4560      {
4561 <  if (conf_parser_ctx.pass == 1)
5228 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
5229 < }
4561 >  if (conf_parser_ctx.pass != 1)
4562      break;
4563  
4564 <  case 253:
4565 <
5234 < /* Line 1455 of yacc.c  */
5235 < #line 1683 "ircd_parser.y"
5236 <    {
5237 <  if (conf_parser_ctx.pass == 1)
5238 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4564 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4565 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4566   }
4567      break;
4568  
4569 <  case 254:
4570 <
4571 < /* Line 1455 of yacc.c  */
5245 < #line 1689 "ircd_parser.y"
4569 >  case 237:
4570 > /* Line 1787 of yacc.c  */
4571 > #line 1441 "conf_parser.y"
4572      {
4573    if (conf_parser_ctx.pass == 1)
4574 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4574 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4575   }
4576      break;
4577  
4578 <  case 255:
4579 <
4580 < /* Line 1455 of yacc.c  */
5255 < #line 1695 "ircd_parser.y"
4578 >  case 241:
4579 > /* Line 1787 of yacc.c  */
4580 > #line 1448 "conf_parser.y"
4581      {
4582    if (conf_parser_ctx.pass == 1)
4583 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4583 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4584   }
4585      break;
4586  
4587 <  case 256:
4588 <
4589 < /* Line 1455 of yacc.c  */
5265 < #line 1704 "ircd_parser.y"
4587 >  case 242:
4588 > /* Line 1787 of yacc.c  */
4589 > #line 1452 "conf_parser.y"
4590      {
4591 <  if (conf_parser_ctx.pass == 2)
4592 <  {
5269 <    listener_address = NULL;
5270 <    listener_flags = 0;
5271 <  }
4591 >  if (conf_parser_ctx.pass == 1)
4592 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4593   }
4594      break;
4595  
4596 <  case 257:
4597 <
4598 < /* Line 1455 of yacc.c  */
5278 < #line 1711 "ircd_parser.y"
4596 >  case 243:
4597 > /* Line 1787 of yacc.c  */
4598 > #line 1462 "conf_parser.y"
4599      {
4600    if (conf_parser_ctx.pass == 2)
4601 <  {
5282 <    MyFree(listener_address);
5283 <    listener_address = NULL;
5284 <  }
4601 >    reset_block_state();
4602   }
4603      break;
4604  
4605 <  case 258:
4606 <
4607 < /* Line 1455 of yacc.c  */
5291 < #line 1720 "ircd_parser.y"
4605 >  case 245:
4606 > /* Line 1787 of yacc.c  */
4607 > #line 1468 "conf_parser.y"
4608      {
4609 <  listener_flags = 0;
4609 >  block_state.flags.value = 0;
4610   }
4611      break;
4612  
4613 <  case 262:
4614 <
4615 < /* Line 1455 of yacc.c  */
5300 < #line 1726 "ircd_parser.y"
4613 >  case 249:
4614 > /* Line 1787 of yacc.c  */
4615 > #line 1474 "conf_parser.y"
4616      {
4617    if (conf_parser_ctx.pass == 2)
4618 <    listener_flags |= LISTENER_SSL;
4618 >    block_state.flags.value |= LISTENER_SSL;
4619   }
4620      break;
4621  
4622 <  case 263:
4623 <
4624 < /* Line 1455 of yacc.c  */
5310 < #line 1730 "ircd_parser.y"
4622 >  case 250:
4623 > /* Line 1787 of yacc.c  */
4624 > #line 1478 "conf_parser.y"
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627 <    listener_flags |= LISTENER_HIDDEN;
4627 >    block_state.flags.value |= LISTENER_HIDDEN;
4628   }
4629      break;
4630  
4631 <  case 264:
4632 <
4633 < /* Line 1455 of yacc.c  */
5320 < #line 1734 "ircd_parser.y"
4631 >  case 251:
4632 > /* Line 1787 of yacc.c  */
4633 > #line 1482 "conf_parser.y"
4634      {
4635    if (conf_parser_ctx.pass == 2)
4636 <    listener_flags |= LISTENER_SERVER;
4636 >   block_state.flags.value |= LISTENER_SERVER;
4637   }
4638      break;
4639  
4640 <  case 272:
4641 <
4642 < /* Line 1455 of yacc.c  */
4643 < #line 1744 "ircd_parser.y"
5331 <    { listener_flags = 0; }
4640 >  case 259:
4641 > /* Line 1787 of yacc.c  */
4642 > #line 1490 "conf_parser.y"
4643 >    { block_state.flags.value = 0; }
4644      break;
4645  
4646 <  case 276:
4647 <
4648 < /* Line 1455 of yacc.c  */
5337 < #line 1749 "ircd_parser.y"
4646 >  case 263:
4647 > /* Line 1787 of yacc.c  */
4648 > #line 1495 "conf_parser.y"
4649      {
4650    if (conf_parser_ctx.pass == 2)
4651    {
4652 <    if ((listener_flags & LISTENER_SSL))
4652 >    if (block_state.flags.value & LISTENER_SSL)
4653   #ifdef HAVE_LIBCRYPTO
4654        if (!ServerInfo.server_ctx)
4655   #endif
4656        {
4657 <        yyerror("SSL not available - port closed");
4657 >        conf_error_report("SSL not available - port closed");
4658          break;
4659        }
4660 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4660 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4661    }
4662   }
4663      break;
4664  
4665 <  case 277:
4666 <
4667 < /* Line 1455 of yacc.c  */
5357 < #line 1763 "ircd_parser.y"
4665 >  case 264:
4666 > /* Line 1787 of yacc.c  */
4667 > #line 1509 "conf_parser.y"
4668      {
4669    if (conf_parser_ctx.pass == 2)
4670    {
4671      int i;
4672  
4673 <    if ((listener_flags & LISTENER_SSL))
4673 >    if (block_state.flags.value & LISTENER_SSL)
4674   #ifdef HAVE_LIBCRYPTO
4675        if (!ServerInfo.server_ctx)
4676   #endif
4677        {
4678 <        yyerror("SSL not available - port closed");
4678 >        conf_error_report("SSL not available - port closed");
4679          break;
4680        }
4681  
4682      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4683 <      add_listener(i, listener_address, listener_flags);
4683 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4684    }
4685   }
4686      break;
4687  
4688 <  case 278:
4689 <
4690 < /* Line 1455 of yacc.c  */
5381 < #line 1783 "ircd_parser.y"
4688 >  case 265:
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1529 "conf_parser.y"
4691      {
4692    if (conf_parser_ctx.pass == 2)
4693 <  {
5385 <    MyFree(listener_address);
5386 <    DupString(listener_address, yylval.string);
5387 <  }
4693 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4694   }
4695      break;
4696  
4697 <  case 279:
4698 <
4699 < /* Line 1455 of yacc.c  */
5394 < #line 1792 "ircd_parser.y"
4697 >  case 266:
4698 > /* Line 1787 of yacc.c  */
4699 > #line 1535 "conf_parser.y"
4700      {
4701    if (conf_parser_ctx.pass == 2)
4702 <  {
5398 <    MyFree(listener_address);
5399 <    DupString(listener_address, yylval.string);
5400 <  }
4702 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4703   }
4704      break;
4705  
4706 <  case 280:
4707 <
4708 < /* Line 1455 of yacc.c  */
5407 < #line 1804 "ircd_parser.y"
4706 >  case 267:
4707 > /* Line 1787 of yacc.c  */
4708 > #line 1544 "conf_parser.y"
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711 <  {
5411 <    yy_conf = make_conf_item(CLIENT_TYPE);
5412 <    yy_aconf = map_to_conf(yy_conf);
5413 <  }
5414 <  else
5415 <  {
5416 <    MyFree(class_name);
5417 <    class_name = NULL;
5418 <  }
4711 >    reset_block_state();
4712   }
4713      break;
4714  
4715 <  case 281:
4716 <
4717 < /* Line 1455 of yacc.c  */
5425 < #line 1816 "ircd_parser.y"
5426 <    {
5427 <  if (conf_parser_ctx.pass == 2)
5428 <  {
5429 <    struct CollectItem *yy_tmp = NULL;
5430 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5431 <
5432 <    if (yy_aconf->user && yy_aconf->host)
5433 <    {
5434 <      conf_add_class_to_conf(yy_conf, class_name);
5435 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5436 <    }
5437 <    else
5438 <      delete_conf_item(yy_conf);
5439 <
5440 <    /* copy over settings from first struct */
5441 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4715 >  case 268:
4716 > /* Line 1787 of yacc.c  */
4717 > #line 1548 "conf_parser.y"
4718      {
4719 <      struct AccessItem *new_aconf;
5444 <      struct ConfItem *new_conf;
5445 <
5446 <      new_conf = make_conf_item(CLIENT_TYPE);
5447 <      new_aconf = map_to_conf(new_conf);
5448 <
5449 <      yy_tmp = ptr->data;
5450 <
5451 <      assert(yy_tmp->user && yy_tmp->host);
5452 <
5453 <      if (yy_aconf->passwd != NULL)
5454 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5455 <      if (yy_conf->name != NULL)
5456 <        DupString(new_conf->name, yy_conf->name);
5457 <      if (yy_aconf->passwd != NULL)
5458 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5459 <
5460 <      new_aconf->flags = yy_aconf->flags;
5461 <      new_aconf->port  = yy_aconf->port;
4719 >  dlink_node *ptr = NULL;
4720  
4721 <      DupString(new_aconf->user, yy_tmp->user);
5464 <      collapse(new_aconf->user);
5465 <
5466 <      DupString(new_aconf->host, yy_tmp->host);
5467 <      collapse(new_aconf->host);
5468 <
5469 <      conf_add_class_to_conf(new_conf, class_name);
5470 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5471 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5472 <      free_collect_item(yy_tmp);
5473 <    }
5474 <
5475 <    MyFree(class_name);
5476 <    class_name = NULL;
5477 <    yy_conf = NULL;
5478 <    yy_aconf = NULL;
5479 <  }
5480 < }
4721 >  if (conf_parser_ctx.pass != 2)
4722      break;
4723  
4724 <  case 301:
5484 <
5485 < /* Line 1455 of yacc.c  */
5486 < #line 1881 "ircd_parser.y"
5487 <    {
5488 <  if (conf_parser_ctx.pass == 2)
4724 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4725    {
4726 <    struct CollectItem *yy_tmp = NULL;
4726 >    struct MaskItem *conf = NULL;
4727      struct split_nuh_item nuh;
4728  
4729 <    nuh.nuhmask  = yylval.string;
4729 >    nuh.nuhmask  = ptr->data;
4730      nuh.nickptr  = NULL;
4731 <    nuh.userptr  = userbuf;
4732 <    nuh.hostptr  = hostbuf;
5497 <
4731 >    nuh.userptr  = block_state.user.buf;
4732 >    nuh.hostptr  = block_state.host.buf;
4733      nuh.nicksize = 0;
4734 <    nuh.usersize = sizeof(userbuf);
4735 <    nuh.hostsize = sizeof(hostbuf);
5501 <
4734 >    nuh.usersize = sizeof(block_state.user.buf);
4735 >    nuh.hostsize = sizeof(block_state.host.buf);
4736      split_nuh(&nuh);
4737  
4738 <    if (yy_aconf->user == NULL)
4739 <    {
4740 <      DupString(yy_aconf->user, userbuf);
4741 <      DupString(yy_aconf->host, hostbuf);
4742 <    }
4743 <    else
4744 <    {
4745 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4738 >    conf        = conf_make(CONF_CLIENT);
4739 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4740 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4741 >
4742 >    if (block_state.rpass.buf[0])
4743 >      conf->passwd = xstrdup(block_state.rpass.buf);
4744 >    if (block_state.name.buf[0])
4745 >      conf->name = xstrdup(block_state.name.buf);
4746  
4747 <      DupString(yy_tmp->user, userbuf);
4748 <      DupString(yy_tmp->host, hostbuf);
4747 >    conf->flags = block_state.flags.value;
4748 >    conf->port  = block_state.port.value;
4749  
4750 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4751 <    }
4750 >    conf_add_class_to_conf(conf, block_state.class.buf);
4751 >    add_conf_by_address(CONF_CLIENT, conf);
4752    }
4753   }
4754      break;
4755  
4756 <  case 302:
4757 <
4758 < /* Line 1455 of yacc.c  */
5525 < #line 1918 "ircd_parser.y"
4756 >  case 280:
4757 > /* Line 1787 of yacc.c  */
4758 > #line 1591 "conf_parser.y"
4759      {
4760    if (conf_parser_ctx.pass == 2)
4761 <  {
5529 <    /* be paranoid */
5530 <    if (yy_aconf->passwd != NULL)
5531 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5532 <
5533 <    MyFree(yy_aconf->passwd);
5534 <    DupString(yy_aconf->passwd, yylval.string);
5535 <  }
4761 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4762   }
4763      break;
4764  
4765 <  case 303:
4766 <
4767 < /* Line 1455 of yacc.c  */
5542 < #line 1931 "ircd_parser.y"
4765 >  case 281:
4766 > /* Line 1787 of yacc.c  */
4767 > #line 1597 "conf_parser.y"
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <  {
5546 <    if (yylval.number)
5547 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5548 <    else
5549 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5550 <  }
4770 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4771   }
4772      break;
4773  
4774 <  case 304:
4775 <
4776 < /* Line 1455 of yacc.c  */
5557 < #line 1942 "ircd_parser.y"
4774 >  case 282:
4775 > /* Line 1787 of yacc.c  */
4776 > #line 1603 "conf_parser.y"
4777      {
4778    if (conf_parser_ctx.pass == 2)
4779 <  {
5561 <    MyFree(class_name);
5562 <    DupString(class_name, yylval.string);
5563 <  }
4779 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4780   }
4781      break;
4782  
4783 <  case 305:
4784 <
4785 < /* Line 1455 of yacc.c  */
5570 < #line 1951 "ircd_parser.y"
4783 >  case 283:
4784 > /* Line 1787 of yacc.c  */
4785 > #line 1609 "conf_parser.y"
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788    {
4789      if (yylval.number)
4790 <      SetConfEncrypted(yy_aconf);
4790 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4791      else
4792 <      ClearConfEncrypted(yy_aconf);
4792 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4793    }
4794   }
4795      break;
4796  
4797 <  case 306:
4798 <
4799 < /* Line 1455 of yacc.c  */
5585 < #line 1962 "ircd_parser.y"
4797 >  case 284:
4798 > /* Line 1787 of yacc.c  */
4799 > #line 1620 "conf_parser.y"
4800      {
4801 +  if (conf_parser_ctx.pass == 2)
4802 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4803   }
4804      break;
4805  
4806 <  case 310:
4807 <
4808 < /* Line 1455 of yacc.c  */
5593 < #line 1966 "ircd_parser.y"
5594 <    { not_atom = 1; }
5595 <    break;
5596 <
5597 <  case 312:
5598 <
5599 < /* Line 1455 of yacc.c  */
5600 < #line 1967 "ircd_parser.y"
5601 <    { not_atom = 0; }
5602 <    break;
5603 <
5604 <  case 314:
5605 <
5606 < /* Line 1455 of yacc.c  */
5607 < #line 1970 "ircd_parser.y"
4806 >  case 288:
4807 > /* Line 1787 of yacc.c  */
4808 > #line 1627 "conf_parser.y"
4809      {
4810    if (conf_parser_ctx.pass == 2)
4811 <  {
5611 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5612 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5613 <  }
5614 <
4811 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4812   }
4813      break;
4814  
4815 <  case 315:
4816 <
4817 < /* Line 1455 of yacc.c  */
5621 < #line 1978 "ircd_parser.y"
4815 >  case 289:
4816 > /* Line 1787 of yacc.c  */
4817 > #line 1631 "conf_parser.y"
4818      {
4819    if (conf_parser_ctx.pass == 2)
4820 <  {
5625 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5626 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5627 <  }
4820 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4821   }
4822      break;
4823  
4824 <  case 316:
4825 <
4826 < /* Line 1455 of yacc.c  */
5634 < #line 1985 "ircd_parser.y"
4824 >  case 290:
4825 > /* Line 1787 of yacc.c  */
4826 > #line 1635 "conf_parser.y"
4827      {
4828    if (conf_parser_ctx.pass == 2)
4829 <  {
5638 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5639 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5640 <  }
4829 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4830   }
4831      break;
4832  
4833 <  case 317:
4834 <
4835 < /* Line 1455 of yacc.c  */
5647 < #line 1992 "ircd_parser.y"
4833 >  case 291:
4834 > /* Line 1787 of yacc.c  */
4835 > #line 1639 "conf_parser.y"
4836      {
4837    if (conf_parser_ctx.pass == 2)
4838 <  {
5651 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5652 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5653 <  }
4838 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4839   }
4840      break;
4841  
4842 <  case 318:
4843 <
4844 < /* Line 1455 of yacc.c  */
5660 < #line 1999 "ircd_parser.y"
4842 >  case 292:
4843 > /* Line 1787 of yacc.c  */
4844 > #line 1643 "conf_parser.y"
4845      {
4846    if (conf_parser_ctx.pass == 2)
4847 <  {
5664 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5665 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5666 <  }
4847 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4848   }
4849      break;
4850  
4851 <  case 319:
4852 <
4853 < /* Line 1455 of yacc.c  */
5673 < #line 2006 "ircd_parser.y"
4851 >  case 293:
4852 > /* Line 1787 of yacc.c  */
4853 > #line 1647 "conf_parser.y"
4854      {
4855    if (conf_parser_ctx.pass == 2)
4856 <  {
5677 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5678 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5679 <  }
4856 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4857   }
4858      break;
4859  
4860 <  case 320:
4861 <
4862 < /* Line 1455 of yacc.c  */
5686 < #line 2013 "ircd_parser.y"
4860 >  case 294:
4861 > /* Line 1787 of yacc.c  */
4862 > #line 1651 "conf_parser.y"
4863      {
4864    if (conf_parser_ctx.pass == 2)
4865 <  {
5690 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5691 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5692 <  }
4865 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4866   }
4867      break;
4868  
4869 <  case 321:
4870 <
4871 < /* Line 1455 of yacc.c  */
5699 < #line 2020 "ircd_parser.y"
4869 >  case 295:
4870 > /* Line 1787 of yacc.c  */
4871 > #line 1655 "conf_parser.y"
4872      {
4873    if (conf_parser_ctx.pass == 2)
4874 <  {
5703 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5704 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5705 <  }
4874 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4875   }
4876      break;
4877  
4878 <  case 322:
4879 <
4880 < /* Line 1455 of yacc.c  */
5712 < #line 2027 "ircd_parser.y"
4878 >  case 296:
4879 > /* Line 1787 of yacc.c  */
4880 > #line 1659 "conf_parser.y"
4881      {
4882    if (conf_parser_ctx.pass == 2)
4883 <  {
5716 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5717 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5718 <  }
4883 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4884   }
4885      break;
4886  
4887 <  case 323:
4888 <
4889 < /* Line 1455 of yacc.c  */
5725 < #line 2034 "ircd_parser.y"
4887 >  case 297:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1663 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <  {
5729 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5730 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5731 <  }
4892 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4893   }
4894      break;
4895  
4896 <  case 324:
4897 <
4898 < /* Line 1455 of yacc.c  */
5738 < #line 2043 "ircd_parser.y"
4896 >  case 298:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1669 "conf_parser.y"
4899      {
4900 <  if (conf_parser_ctx.pass == 2)
5741 <  {
5742 <    if (yylval.number)
5743 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5744 <    else
5745 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5746 <  }
5747 < }
4900 >  if (conf_parser_ctx.pass != 2)
4901      break;
4902  
4903 <  case 325:
5751 <
5752 < /* Line 1455 of yacc.c  */
5753 < #line 2054 "ircd_parser.y"
5754 <    {
5755 <  if (conf_parser_ctx.pass == 2)
4903 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4904    {
4905 <    if (yylval.number)
4906 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5759 <    else
5760 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
4905 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4906 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4907    }
4908 +  else
4909 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4910   }
4911      break;
4912  
4913 <  case 326:
4914 <
4915 < /* Line 1455 of yacc.c  */
5768 < #line 2065 "ircd_parser.y"
4913 >  case 299:
4914 > /* Line 1787 of yacc.c  */
4915 > #line 1683 "conf_parser.y"
4916      {
4917 <  if (conf_parser_ctx.pass == 2)
5771 <  {
5772 <    if (yylval.number)
5773 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5774 <    else
5775 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5776 <  }
5777 < }
4917 >  if (conf_parser_ctx.pass != 2)
4918      break;
4919  
4920 <  case 327:
4921 <
5782 < /* Line 1455 of yacc.c  */
5783 < #line 2076 "ircd_parser.y"
5784 <    {
5785 <  if (conf_parser_ctx.pass == 2)
5786 <  {
5787 <    if (yylval.number)
5788 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5789 <    else
5790 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5791 <  }
4920 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4921 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4922   }
4923      break;
4924  
4925 <  case 328:
4926 <
4927 < /* Line 1455 of yacc.c  */
5798 < #line 2087 "ircd_parser.y"
4925 >  case 300:
4926 > /* Line 1787 of yacc.c  */
4927 > #line 1692 "conf_parser.y"
4928      {
4929 <  if (conf_parser_ctx.pass == 2)
5801 <  {
5802 <    if (yylval.number)
5803 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5804 <    else
5805 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5806 <  }
5807 < }
4929 >  if (conf_parser_ctx.pass != 2)
4930      break;
4931  
4932 <  case 329:
4933 <
5812 < /* Line 1455 of yacc.c  */
5813 < #line 2098 "ircd_parser.y"
5814 <    {
5815 <  if (conf_parser_ctx.pass == 2)
5816 <  {
5817 <    if (yylval.number)
5818 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5819 <    else
5820 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5821 <  }
4932 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4933 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4934   }
4935      break;
4936  
4937 <  case 330:
4938 <
4939 < /* Line 1455 of yacc.c  */
5828 < #line 2110 "ircd_parser.y"
5829 <    {
5830 <  if (conf_parser_ctx.pass == 2)
5831 <  {
5832 <    MyFree(yy_conf->name);
5833 <
5834 <    if (strlen(yylval.string) < HOSTLEN)
5835 <    {    
5836 <      DupString(yy_conf->name, yylval.string);
5837 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5838 <    }
5839 <    else
4937 >  case 301:
4938 > /* Line 1787 of yacc.c  */
4939 > #line 1705 "conf_parser.y"
4940      {
4941 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5842 <      yy_conf->name = NULL;
5843 <    }
5844 <  }
5845 < }
4941 >  if (conf_parser_ctx.pass != 2)
4942      break;
4943  
4944 <  case 331:
4945 <
5850 < /* Line 1455 of yacc.c  */
5851 < #line 2129 "ircd_parser.y"
5852 <    {
5853 <  if (conf_parser_ctx.pass == 2)
5854 <  {
5855 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5856 <    MyFree(yy_conf->name);
5857 <    DupString(yy_conf->name, yylval.string);
5858 <  }
4944 >  reset_block_state();
4945 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4946   }
4947      break;
4948  
4949 <  case 332:
4950 <
4951 < /* Line 1455 of yacc.c  */
5865 < #line 2139 "ircd_parser.y"
4949 >  case 302:
4950 > /* Line 1787 of yacc.c  */
4951 > #line 1712 "conf_parser.y"
4952      {
4953 <  if (conf_parser_ctx.pass == 2)
5868 <  {
5869 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5870 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5871 <  }
5872 < }
4953 >  if (conf_parser_ctx.pass != 2)
4954      break;
4955  
4956 <  case 333:
5876 <
5877 < /* Line 1455 of yacc.c  */
5878 < #line 2148 "ircd_parser.y"
5879 <    {
5880 <  if (conf_parser_ctx.pass == 2)
5881 <  {
5882 <    if (yylval.number)
5883 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5884 <    else
5885 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5886 <  }
4956 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4957   }
4958      break;
4959  
4960 <  case 334:
4961 <
4962 < /* Line 1455 of yacc.c  */
5893 < #line 2163 "ircd_parser.y"
4960 >  case 309:
4961 > /* Line 1787 of yacc.c  */
4962 > #line 1723 "conf_parser.y"
4963      {
4964    if (conf_parser_ctx.pass == 2)
4965 <  {
5897 <    MyFree(resv_reason);
5898 <    resv_reason = NULL;
5899 <  }
4965 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4966   }
4967      break;
4968  
4969 <  case 335:
4970 <
4971 < /* Line 1455 of yacc.c  */
5906 < #line 2170 "ircd_parser.y"
4969 >  case 310:
4970 > /* Line 1787 of yacc.c  */
4971 > #line 1729 "conf_parser.y"
4972      {
4973    if (conf_parser_ctx.pass == 2)
4974 <  {
5910 <    MyFree(resv_reason);
5911 <    resv_reason = NULL;
5912 <  }
4974 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4975   }
4976      break;
4977  
4978 <  case 342:
4979 <
4980 < /* Line 1455 of yacc.c  */
5919 < #line 2182 "ircd_parser.y"
4978 >  case 311:
4979 > /* Line 1787 of yacc.c  */
4980 > #line 1735 "conf_parser.y"
4981      {
4982    if (conf_parser_ctx.pass == 2)
4983 <  {
5923 <    MyFree(resv_reason);
5924 <    DupString(resv_reason, yylval.string);
5925 <  }
4983 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4984   }
4985      break;
4986  
4987 <  case 343:
4988 <
4989 < /* Line 1455 of yacc.c  */
5932 < #line 2191 "ircd_parser.y"
4987 >  case 317:
4988 > /* Line 1787 of yacc.c  */
4989 > #line 1750 "conf_parser.y"
4990      {
4991    if (conf_parser_ctx.pass == 2)
4992    {
4993 <    if (IsChanPrefix(*yylval.string))
4993 >    if (valid_servname(yylval.string))
4994      {
4995 <      char def_reason[] = "No reason";
4996 <
5940 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4995 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4996 >      conf->name = xstrdup(yylval.string);
4997      }
4998    }
5943  /* ignore it for now.. but we really should make a warning if
5944   * its an erroneous name --fl_ */
4999   }
5000      break;
5001  
5002 <  case 344:
5003 <
5004 < /* Line 1455 of yacc.c  */
5951 < #line 2206 "ircd_parser.y"
5002 >  case 318:
5003 > /* Line 1787 of yacc.c  */
5004 > #line 1765 "conf_parser.y"
5005      {
5006 <  if (conf_parser_ctx.pass == 2)
5954 <  {
5955 <    char def_reason[] = "No reason";
5956 <
5957 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5958 <  }
5959 < }
5006 >  if (conf_parser_ctx.pass != 2)
5007      break;
5008  
5009 <  case 345:
5009 >  reset_block_state();
5010  
5011 < /* Line 1455 of yacc.c  */
5012 < #line 2219 "ircd_parser.y"
5013 <    {
5014 <  if (conf_parser_ctx.pass == 2)
5968 <  {
5969 <    yy_conf = make_conf_item(ULINE_TYPE);
5970 <    yy_match_item = map_to_conf(yy_conf);
5971 <    yy_match_item->action = SHARED_ALL;
5972 <  }
5011 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5012 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5013 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015   }
5016      break;
5017  
5018 <  case 346:
5019 <
5020 < /* Line 1455 of yacc.c  */
5979 < #line 2227 "ircd_parser.y"
5018 >  case 319:
5019 > /* Line 1787 of yacc.c  */
5020 > #line 1776 "conf_parser.y"
5021      {
5022 <  if (conf_parser_ctx.pass == 2)
5023 <  {
5024 <    yy_conf = NULL;
5984 <  }
5985 < }
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025      break;
5026  
5027 <  case 353:
5027 >  conf = conf_make(CONF_ULINE);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030 >  conf->user = xstrdup(block_state.user.buf);
5031 >  conf->host = xstrdup(block_state.host.buf);
5032 > }
5033 >    break;
5034  
5035 < /* Line 1455 of yacc.c  */
5036 < #line 2238 "ircd_parser.y"
5035 >  case 326:
5036 > /* Line 1787 of yacc.c  */
5037 > #line 1793 "conf_parser.y"
5038      {
5039    if (conf_parser_ctx.pass == 2)
5040 <  {
5995 <    MyFree(yy_conf->name);
5996 <    DupString(yy_conf->name, yylval.string);
5997 <  }
5040 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5041   }
5042      break;
5043  
5044 <  case 354:
5045 <
5046 < /* Line 1455 of yacc.c  */
6004 < #line 2247 "ircd_parser.y"
5044 >  case 327:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1799 "conf_parser.y"
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049    {
# Line 6009 | Line 5051 | yyreduce:
5051  
5052      nuh.nuhmask  = yylval.string;
5053      nuh.nickptr  = NULL;
5054 <    nuh.userptr  = userbuf;
5055 <    nuh.hostptr  = hostbuf;
5054 >    nuh.userptr  = block_state.user.buf;
5055 >    nuh.hostptr  = block_state.host.buf;
5056  
5057      nuh.nicksize = 0;
5058 <    nuh.usersize = sizeof(userbuf);
5059 <    nuh.hostsize = sizeof(hostbuf);
5058 >    nuh.usersize = sizeof(block_state.user.buf);
5059 >    nuh.hostsize = sizeof(block_state.host.buf);
5060  
5061      split_nuh(&nuh);
6020
6021    DupString(yy_match_item->user, userbuf);
6022    DupString(yy_match_item->host, hostbuf);
5062    }
5063   }
5064      break;
5065  
5066 <  case 355:
5067 <
5068 < /* Line 1455 of yacc.c  */
6030 < #line 2269 "ircd_parser.y"
5066 >  case 328:
5067 > /* Line 1787 of yacc.c  */
5068 > #line 1818 "conf_parser.y"
5069      {
5070    if (conf_parser_ctx.pass == 2)
5071 <    yy_match_item->action = 0;
5071 >    block_state.flags.value = 0;
5072   }
5073      break;
5074  
5075 <  case 359:
5076 <
5077 < /* Line 1455 of yacc.c  */
6040 < #line 2276 "ircd_parser.y"
5075 >  case 332:
5076 > /* Line 1787 of yacc.c  */
5077 > #line 1825 "conf_parser.y"
5078      {
5079    if (conf_parser_ctx.pass == 2)
5080 <    yy_match_item->action |= SHARED_KLINE;
5080 >    block_state.flags.value |= SHARED_KLINE;
5081   }
5082      break;
5083  
5084 <  case 360:
5085 <
5086 < /* Line 1455 of yacc.c  */
6050 < #line 2280 "ircd_parser.y"
5084 >  case 333:
5085 > /* Line 1787 of yacc.c  */
5086 > #line 1829 "conf_parser.y"
5087      {
5088    if (conf_parser_ctx.pass == 2)
5089 <    yy_match_item->action |= SHARED_TKLINE;
5089 >    block_state.flags.value |= SHARED_UNKLINE;
5090   }
5091      break;
5092  
5093 <  case 361:
5094 <
5095 < /* Line 1455 of yacc.c  */
6060 < #line 2284 "ircd_parser.y"
5093 >  case 334:
5094 > /* Line 1787 of yacc.c  */
5095 > #line 1833 "conf_parser.y"
5096      {
5097    if (conf_parser_ctx.pass == 2)
5098 <    yy_match_item->action |= SHARED_UNKLINE;
5098 >    block_state.flags.value |= SHARED_DLINE;
5099   }
5100      break;
5101  
5102 <  case 362:
5103 <
5104 < /* Line 1455 of yacc.c  */
6070 < #line 2288 "ircd_parser.y"
5102 >  case 335:
5103 > /* Line 1787 of yacc.c  */
5104 > #line 1837 "conf_parser.y"
5105      {
5106    if (conf_parser_ctx.pass == 2)
5107 <    yy_match_item->action |= SHARED_XLINE;
5107 >    block_state.flags.value |= SHARED_UNDLINE;
5108   }
5109      break;
5110  
5111 <  case 363:
5112 <
5113 < /* Line 1455 of yacc.c  */
6080 < #line 2292 "ircd_parser.y"
5111 >  case 336:
5112 > /* Line 1787 of yacc.c  */
5113 > #line 1841 "conf_parser.y"
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <    yy_match_item->action |= SHARED_TXLINE;
5116 >    block_state.flags.value |= SHARED_XLINE;
5117   }
5118      break;
5119  
5120 <  case 364:
5121 <
5122 < /* Line 1455 of yacc.c  */
6090 < #line 2296 "ircd_parser.y"
5120 >  case 337:
5121 > /* Line 1787 of yacc.c  */
5122 > #line 1845 "conf_parser.y"
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <    yy_match_item->action |= SHARED_UNXLINE;
5125 >    block_state.flags.value |= SHARED_UNXLINE;
5126   }
5127      break;
5128  
5129 <  case 365:
5130 <
5131 < /* Line 1455 of yacc.c  */
6100 < #line 2300 "ircd_parser.y"
5129 >  case 338:
5130 > /* Line 1787 of yacc.c  */
5131 > #line 1849 "conf_parser.y"
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <    yy_match_item->action |= SHARED_RESV;
5134 >    block_state.flags.value |= SHARED_RESV;
5135   }
5136      break;
5137  
5138 <  case 366:
5139 <
5140 < /* Line 1455 of yacc.c  */
6110 < #line 2304 "ircd_parser.y"
5138 >  case 339:
5139 > /* Line 1787 of yacc.c  */
5140 > #line 1853 "conf_parser.y"
5141      {
5142    if (conf_parser_ctx.pass == 2)
5143 <    yy_match_item->action |= SHARED_TRESV;
5143 >    block_state.flags.value |= SHARED_UNRESV;
5144   }
5145      break;
5146  
5147 <  case 367:
5148 <
5149 < /* Line 1455 of yacc.c  */
6120 < #line 2308 "ircd_parser.y"
5147 >  case 340:
5148 > /* Line 1787 of yacc.c  */
5149 > #line 1857 "conf_parser.y"
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    yy_match_item->action |= SHARED_UNRESV;
5152 >    block_state.flags.value |= SHARED_LOCOPS;
5153   }
5154      break;
5155  
5156 <  case 368:
5157 <
5158 < /* Line 1455 of yacc.c  */
6130 < #line 2312 "ircd_parser.y"
5156 >  case 341:
5157 > /* Line 1787 of yacc.c  */
5158 > #line 1861 "conf_parser.y"
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    yy_match_item->action |= SHARED_LOCOPS;
5161 >    block_state.flags.value = SHARED_ALL;
5162   }
5163      break;
5164  
5165 <  case 369:
5166 <
5167 < /* Line 1455 of yacc.c  */
6140 < #line 2316 "ircd_parser.y"
5165 >  case 342:
5166 > /* Line 1787 of yacc.c  */
5167 > #line 1870 "conf_parser.y"
5168      {
5169 <  if (conf_parser_ctx.pass == 2)
6143 <    yy_match_item->action = SHARED_ALL;
6144 < }
5169 >  if (conf_parser_ctx.pass != 2)
5170      break;
5171  
5172 <  case 370:
5172 >  reset_block_state();
5173  
5174 < /* Line 1455 of yacc.c  */
5175 < #line 2325 "ircd_parser.y"
6151 <    {
6152 <  if (conf_parser_ctx.pass == 2)
6153 <  {
6154 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6155 <    yy_conf->flags = SHARED_ALL;
6156 <  }
5174 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5175 >  block_state.flags.value = SHARED_ALL;
5176   }
5177      break;
5178  
5179 <  case 371:
5180 <
5181 < /* Line 1455 of yacc.c  */
6163 < #line 2332 "ircd_parser.y"
5179 >  case 343:
5180 > /* Line 1787 of yacc.c  */
5181 > #line 1879 "conf_parser.y"
5182      {
5183 <  if (conf_parser_ctx.pass == 2)
6166 <  {
6167 <    if (yy_conf->name == NULL)
6168 <      DupString(yy_conf->name, "*");
6169 <    yy_conf = NULL;
6170 <  }
6171 < }
6172 <    break;
5183 >  struct MaskItem *conf = NULL;
5184  
5185 <  case 377:
6175 <
6176 < /* Line 1455 of yacc.c  */
6177 < #line 2345 "ircd_parser.y"
6178 <    {
6179 <  if (conf_parser_ctx.pass == 2)
6180 <    DupString(yy_conf->name, yylval.string);
6181 < }
5185 >  if (conf_parser_ctx.pass != 2)
5186      break;
5187  
5188 <  case 378:
5189 <
5190 < /* Line 1455 of yacc.c  */
6187 < #line 2351 "ircd_parser.y"
6188 <    {
6189 <  if (conf_parser_ctx.pass == 2)
6190 <    yy_conf->flags = 0;
5188 >  conf = conf_make(CONF_CLUSTER);
5189 >  conf->flags = block_state.flags.value;
5190 >  conf->name = xstrdup(block_state.name.buf);
5191   }
5192      break;
5193  
5194 <  case 382:
5195 <
5196 < /* Line 1455 of yacc.c  */
6197 < #line 2358 "ircd_parser.y"
5194 >  case 349:
5195 > /* Line 1787 of yacc.c  */
5196 > #line 1894 "conf_parser.y"
5197      {
5198    if (conf_parser_ctx.pass == 2)
5199 <    yy_conf->flags |= SHARED_KLINE;
5199 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5200   }
5201      break;
5202  
5203 <  case 383:
5204 <
5205 < /* Line 1455 of yacc.c  */
6207 < #line 2362 "ircd_parser.y"
5203 >  case 350:
5204 > /* Line 1787 of yacc.c  */
5205 > #line 1900 "conf_parser.y"
5206      {
5207    if (conf_parser_ctx.pass == 2)
5208 <    yy_conf->flags |= SHARED_TKLINE;
5208 >    block_state.flags.value = 0;
5209   }
5210      break;
5211  
5212 <  case 384:
5213 <
5214 < /* Line 1455 of yacc.c  */
6217 < #line 2366 "ircd_parser.y"
5212 >  case 354:
5213 > /* Line 1787 of yacc.c  */
5214 > #line 1907 "conf_parser.y"
5215      {
5216    if (conf_parser_ctx.pass == 2)
5217 <    yy_conf->flags |= SHARED_UNKLINE;
5217 >    block_state.flags.value |= SHARED_KLINE;
5218   }
5219      break;
5220  
5221 <  case 385:
5222 <
5223 < /* Line 1455 of yacc.c  */
6227 < #line 2370 "ircd_parser.y"
5221 >  case 355:
5222 > /* Line 1787 of yacc.c  */
5223 > #line 1911 "conf_parser.y"
5224      {
5225    if (conf_parser_ctx.pass == 2)
5226 <    yy_conf->flags |= SHARED_XLINE;
5226 >    block_state.flags.value |= SHARED_UNKLINE;
5227   }
5228      break;
5229  
5230 <  case 386:
5231 <
5232 < /* Line 1455 of yacc.c  */
6237 < #line 2374 "ircd_parser.y"
5230 >  case 356:
5231 > /* Line 1787 of yacc.c  */
5232 > #line 1915 "conf_parser.y"
5233      {
5234    if (conf_parser_ctx.pass == 2)
5235 <    yy_conf->flags |= SHARED_TXLINE;
5235 >    block_state.flags.value |= SHARED_DLINE;
5236   }
5237      break;
5238  
5239 <  case 387:
5240 <
5241 < /* Line 1455 of yacc.c  */
6247 < #line 2378 "ircd_parser.y"
5239 >  case 357:
5240 > /* Line 1787 of yacc.c  */
5241 > #line 1919 "conf_parser.y"
5242      {
5243    if (conf_parser_ctx.pass == 2)
5244 <    yy_conf->flags |= SHARED_UNXLINE;
5244 >    block_state.flags.value |= SHARED_UNDLINE;
5245   }
5246      break;
5247  
5248 <  case 388:
5249 <
5250 < /* Line 1455 of yacc.c  */
6257 < #line 2382 "ircd_parser.y"
5248 >  case 358:
5249 > /* Line 1787 of yacc.c  */
5250 > #line 1923 "conf_parser.y"
5251      {
5252    if (conf_parser_ctx.pass == 2)
5253 <    yy_conf->flags |= SHARED_RESV;
5253 >    block_state.flags.value |= SHARED_XLINE;
5254   }
5255      break;
5256  
5257 <  case 389:
5258 <
5259 < /* Line 1455 of yacc.c  */
6267 < #line 2386 "ircd_parser.y"
5257 >  case 359:
5258 > /* Line 1787 of yacc.c  */
5259 > #line 1927 "conf_parser.y"
5260      {
5261    if (conf_parser_ctx.pass == 2)
5262 <    yy_conf->flags |= SHARED_TRESV;
5262 >    block_state.flags.value |= SHARED_UNXLINE;
5263   }
5264      break;
5265  
5266 <  case 390:
5267 <
5268 < /* Line 1455 of yacc.c  */
6277 < #line 2390 "ircd_parser.y"
5266 >  case 360:
5267 > /* Line 1787 of yacc.c  */
5268 > #line 1931 "conf_parser.y"
5269      {
5270    if (conf_parser_ctx.pass == 2)
5271 <    yy_conf->flags |= SHARED_UNRESV;
5271 >    block_state.flags.value |= SHARED_RESV;
5272   }
5273      break;
5274  
5275 <  case 391:
5276 <
5277 < /* Line 1455 of yacc.c  */
6287 < #line 2394 "ircd_parser.y"
5275 >  case 361:
5276 > /* Line 1787 of yacc.c  */
5277 > #line 1935 "conf_parser.y"
5278      {
5279    if (conf_parser_ctx.pass == 2)
5280 <    yy_conf->flags |= SHARED_LOCOPS;
5280 >    block_state.flags.value |= SHARED_UNRESV;
5281   }
5282      break;
5283  
5284 <  case 392:
5285 <
5286 < /* Line 1455 of yacc.c  */
6297 < #line 2398 "ircd_parser.y"
5284 >  case 362:
5285 > /* Line 1787 of yacc.c  */
5286 > #line 1939 "conf_parser.y"
5287      {
5288    if (conf_parser_ctx.pass == 2)
5289 <    yy_conf->flags = SHARED_ALL;
5289 >    block_state.flags.value |= SHARED_LOCOPS;
5290   }
5291      break;
5292  
5293 <  case 393:
5294 <
5295 < /* Line 1455 of yacc.c  */
6307 < #line 2407 "ircd_parser.y"
5293 >  case 363:
5294 > /* Line 1787 of yacc.c  */
5295 > #line 1943 "conf_parser.y"
5296      {
5297    if (conf_parser_ctx.pass == 2)
5298 <  {
6311 <    yy_conf = make_conf_item(SERVER_TYPE);
6312 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6313 <    yy_aconf->passwd = NULL;
6314 <    /* defaults */
6315 <    yy_aconf->port = PORTNUM;
6316 <
6317 <    if (ConfigFileEntry.burst_away)
6318 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6319 <  }
6320 <  else
6321 <  {
6322 <    MyFree(class_name);
6323 <    class_name = NULL;
6324 <  }
5298 >    block_state.flags.value = SHARED_ALL;
5299   }
5300      break;
5301  
5302 <  case 394:
5303 <
5304 < /* Line 1455 of yacc.c  */
6331 < #line 2425 "ircd_parser.y"
5302 >  case 364:
5303 > /* Line 1787 of yacc.c  */
5304 > #line 1952 "conf_parser.y"
5305      {
6333  if (conf_parser_ctx.pass == 2)
6334  {
6335    struct CollectItem *yy_hconf=NULL;
6336    struct CollectItem *yy_lconf=NULL;
6337    dlink_node *ptr;
6338    dlink_node *next_ptr;
6339 #ifdef HAVE_LIBCRYPTO
6340    if (yy_aconf->host &&
6341        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6342         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6343 #else /* !HAVE_LIBCRYPTO */
6344      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6345          yy_aconf->passwd && yy_aconf->spasswd)
6346 #endif /* !HAVE_LIBCRYPTO */
6347        {
6348          if (conf_add_server(yy_conf, class_name) == -1)
6349          {
6350            delete_conf_item(yy_conf);
6351            yy_conf = NULL;
6352            yy_aconf = NULL;
6353          }
6354        }
6355        else
6356        {
6357          /* Even if yy_conf ->name is NULL
6358           * should still unhook any hub/leaf confs still pending
6359           */
6360          unhook_hub_leaf_confs();
6361
6362          if (yy_conf->name != NULL)
6363          {
6364 #ifndef HAVE_LIBCRYPTO
6365            if (IsConfCryptLink(yy_aconf))
6366              yyerror("Ignoring connect block -- no OpenSSL support");
6367 #else
6368            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6369              yyerror("Ignoring connect block -- missing key");
6370 #endif
6371            if (yy_aconf->host == NULL)
6372              yyerror("Ignoring connect block -- missing host");
6373            else if (!IsConfCryptLink(yy_aconf) &&
6374                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6375              yyerror("Ignoring connect block -- missing password");
6376          }
6377
6378
6379          /* XXX
6380           * This fixes a try_connections() core (caused by invalid class_ptr
6381           * pointers) reported by metalrock. That's an ugly fix, but there
6382           * is currently no better way. The entire config subsystem needs an
6383           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6384           * a doubly linked list immediately without any sanity checks!  -Michael
6385           */
6386          delete_conf_item(yy_conf);
6387
6388          yy_aconf = NULL;
6389          yy_conf = NULL;
6390        }
6391
6392      /*
6393       * yy_conf is still pointing at the server that is having
6394       * a connect block built for it. This means, y_aconf->name
6395       * points to the actual irc name this server will be known as.
6396       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6397       * given in the link list at yy_hconf. Fill in the HUB confs
6398       * from this link list now.
6399       */        
6400      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6401      {
6402        struct ConfItem *new_hub_conf;
6403        struct MatchItem *match_item;
5306  
5307 <        yy_hconf = ptr->data;
5308 <
6407 <        /* yy_conf == NULL is a fatal error for this connect block! */
6408 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6409 <        {
6410 <          new_hub_conf = make_conf_item(HUB_TYPE);
6411 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6412 <          DupString(new_hub_conf->name, yy_conf->name);
6413 <          if (yy_hconf->user != NULL)
6414 <            DupString(match_item->user, yy_hconf->user);
6415 <          else
6416 <            DupString(match_item->user, "*");
6417 <          if (yy_hconf->host != NULL)
6418 <            DupString(match_item->host, yy_hconf->host);
6419 <          else
6420 <            DupString(match_item->host, "*");
6421 <        }
6422 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6423 <        free_collect_item(yy_hconf);
6424 <      }
6425 <
6426 <      /* Ditto for the LEAF confs */
6427 <
6428 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6429 <      {
6430 <        struct ConfItem *new_leaf_conf;
6431 <        struct MatchItem *match_item;
6432 <
6433 <        yy_lconf = ptr->data;
5307 >  if (conf_parser_ctx.pass != 2)
5308 >    break;
5309  
5310 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5311 <        {
6437 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6438 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6439 <          DupString(new_leaf_conf->name, yy_conf->name);
6440 <          if (yy_lconf->user != NULL)
6441 <            DupString(match_item->user, yy_lconf->user);
6442 <          else
6443 <            DupString(match_item->user, "*");
6444 <          if (yy_lconf->host != NULL)
6445 <            DupString(match_item->host, yy_lconf->host);
6446 <          else
6447 <            DupString(match_item->host, "*");
6448 <        }
6449 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6450 <        free_collect_item(yy_lconf);
6451 <      }
6452 <      MyFree(class_name);
6453 <      class_name = NULL;
6454 <      yy_conf = NULL;
6455 <      yy_aconf = NULL;
6456 <  }
5310 >  reset_block_state();
5311 >  block_state.port.value = PORTNUM;
5312   }
5313      break;
5314  
5315 <  case 419:
5316 <
5317 < /* Line 1455 of yacc.c  */
6463 < #line 2564 "ircd_parser.y"
5315 >  case 365:
5316 > /* Line 1787 of yacc.c  */
5317 > #line 1960 "conf_parser.y"
5318      {
5319 <  if (conf_parser_ctx.pass == 2)
5320 <  {
6467 <    if (yy_conf->name != NULL)
6468 <      yyerror("Multiple connect name entry");
5319 >  struct MaskItem *conf = NULL;
5320 >  struct addrinfo hints, *res;
5321  
5322 <    MyFree(yy_conf->name);
6471 <    DupString(yy_conf->name, yylval.string);
6472 <  }
6473 < }
5322 >  if (conf_parser_ctx.pass != 2)
5323      break;
5324  
5325 <  case 420:
5326 <
6478 < /* Line 1455 of yacc.c  */
6479 < #line 2576 "ircd_parser.y"
6480 <    {
6481 <  if (conf_parser_ctx.pass == 2)
6482 <  {
6483 <    if (yy_conf->name != NULL)
6484 <      yyerror("Multiple connect name entry");
6485 <
6486 <    MyFree(yy_conf->name);
6487 <    DupString(yy_conf->name, yylval.string);
6488 <  }
6489 < }
5325 >  if (!block_state.name.buf[0] ||
5326 >      !block_state.host.buf[0])
5327      break;
5328  
5329 <  case 421:
5329 >  if (!(block_state.rpass.buf[0] ||
5330 >        block_state.spass.buf[0]))
5331 >    break;
5332  
5333 < /* Line 1455 of yacc.c  */
5334 < #line 2588 "ircd_parser.y"
6496 <    {
6497 <  if (conf_parser_ctx.pass == 2)
6498 <  {
6499 <    MyFree(yy_aconf->host);
6500 <    DupString(yy_aconf->host, yylval.string);
6501 <  }
6502 < }
5333 >  if (has_wildcards(block_state.name.buf) ||
5334 >      has_wildcards(block_state.host.buf))
5335      break;
5336  
5337 <  case 422:
5337 >  conf = conf_make(CONF_SERVER);
5338 >  conf->port = block_state.port.value;
5339 >  conf->flags = block_state.flags.value;
5340 >  conf->aftype = block_state.aftype.value;
5341 >  conf->host = xstrdup(block_state.host.buf);
5342 >  conf->name = xstrdup(block_state.name.buf);
5343 >  conf->passwd = xstrdup(block_state.rpass.buf);
5344 >  conf->spasswd = xstrdup(block_state.spass.buf);
5345 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5346  
5347 < /* Line 1455 of yacc.c  */
5348 < #line 2597 "ircd_parser.y"
6509 <    {
6510 <  if (conf_parser_ctx.pass == 2)
6511 <  {
6512 <    struct addrinfo hints, *res;
5347 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5348 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5349  
5350 +  if (block_state.bind.buf[0])
5351 +  {
5352      memset(&hints, 0, sizeof(hints));
5353  
5354      hints.ai_family   = AF_UNSPEC;
5355      hints.ai_socktype = SOCK_STREAM;
5356      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5357  
5358 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5359 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5358 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5359 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5360      else
5361      {
5362        assert(res != NULL);
5363  
5364 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5365 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5366 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5367 <      irc_freeaddrinfo(res);
6530 <    }
6531 <  }
6532 < }
6533 <    break;
6534 <
6535 <  case 423:
6536 <
6537 < /* Line 1455 of yacc.c  */
6538 < #line 2623 "ircd_parser.y"
6539 <    {
6540 <  if (conf_parser_ctx.pass == 2)
6541 <  {
6542 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6543 <      yyerror("Server passwords cannot begin with a colon");
6544 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6545 <      yyerror("Server passwords cannot contain spaces");
6546 <    else {
6547 <      if (yy_aconf->spasswd != NULL)
6548 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6549 <
6550 <      MyFree(yy_aconf->spasswd);
6551 <      DupString(yy_aconf->spasswd, yylval.string);
6552 <    }
6553 <  }
6554 < }
6555 <    break;
6556 <
6557 <  case 424:
6558 <
6559 < /* Line 1455 of yacc.c  */
6560 < #line 2641 "ircd_parser.y"
6561 <    {
6562 <  if (conf_parser_ctx.pass == 2)
6563 <  {
6564 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6565 <      yyerror("Server passwords cannot begin with a colon");
6566 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6567 <      yyerror("Server passwords cannot contain spaces");
6568 <    else {
6569 <      if (yy_aconf->passwd != NULL)
6570 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6571 <
6572 <      MyFree(yy_aconf->passwd);
6573 <      DupString(yy_aconf->passwd, yylval.string);
5364 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5365 >      conf->bind.ss.ss_family = res->ai_family;
5366 >      conf->bind.ss_len = res->ai_addrlen;
5367 >      freeaddrinfo(res);
5368      }
5369    }
6576 }
6577    break;
5370  
5371 <  case 425:
5372 <
6581 < /* Line 1455 of yacc.c  */
6582 < #line 2659 "ircd_parser.y"
6583 <    {
6584 <  if (conf_parser_ctx.pass == 2)
6585 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5371 >  conf_add_class_to_conf(conf, block_state.class.buf);
5372 >  lookup_confhost(conf);
5373   }
5374      break;
5375  
5376 <  case 426:
5377 <
5378 < /* Line 1455 of yacc.c  */
6592 < #line 2665 "ircd_parser.y"
5376 >  case 382:
5377 > /* Line 1787 of yacc.c  */
5378 > #line 2026 "conf_parser.y"
5379      {
5380    if (conf_parser_ctx.pass == 2)
5381 <    yy_aconf->aftype = AF_INET;
5381 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5382   }
5383      break;
5384  
5385 <  case 427:
5386 <
5387 < /* Line 1455 of yacc.c  */
6602 < #line 2669 "ircd_parser.y"
5385 >  case 383:
5386 > /* Line 1787 of yacc.c  */
5387 > #line 2032 "conf_parser.y"
5388      {
6604 #ifdef IPV6
5389    if (conf_parser_ctx.pass == 2)
5390 <    yy_aconf->aftype = AF_INET6;
6607 < #endif
5390 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5391   }
5392      break;
5393  
5394 <  case 428:
5395 <
5396 < /* Line 1455 of yacc.c  */
6614 < #line 2677 "ircd_parser.y"
5394 >  case 384:
5395 > /* Line 1787 of yacc.c  */
5396 > #line 2038 "conf_parser.y"
5397      {
5398    if (conf_parser_ctx.pass == 2)
5399 <  {
6618 <    MyFree(yy_aconf->fakename);
6619 <    DupString(yy_aconf->fakename, yylval.string);
6620 <  }
5399 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5400   }
5401      break;
5402  
5403 <  case 429:
5404 <
5405 < /* Line 1455 of yacc.c  */
6627 < #line 2686 "ircd_parser.y"
5403 >  case 385:
5404 > /* Line 1787 of yacc.c  */
5405 > #line 2044 "conf_parser.y"
5406      {
5407 < }
6630 <    break;
6631 <
6632 <  case 433:
6633 <
6634 < /* Line 1455 of yacc.c  */
6635 < #line 2690 "ircd_parser.y"
6636 <    { not_atom = 1; }
6637 <    break;
6638 <
6639 <  case 435:
6640 <
6641 < /* Line 1455 of yacc.c  */
6642 < #line 2691 "ircd_parser.y"
6643 <    { not_atom = 0; }
5407 >  if (conf_parser_ctx.pass != 2)
5408      break;
5409  
5410 <  case 437:
5411 <
5412 < /* Line 1455 of yacc.c  */
5413 < #line 2694 "ircd_parser.y"
5414 <    {
5415 <  if (conf_parser_ctx.pass == 2)
6652 < #ifndef HAVE_LIBZ
6653 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6654 < #else
6655 < {
6656 <   if (not_atom)ClearConfCompressed(yy_aconf);
6657 <   else SetConfCompressed(yy_aconf);
6658 < }
6659 < #endif
5410 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5411 >    conf_error_report("Server passwords cannot begin with a colon");
5412 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5413 >    conf_error_report("Server passwords cannot contain spaces");
5414 >  else
5415 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5416   }
5417      break;
5418  
5419 <  case 438:
5420 <
5421 < /* Line 1455 of yacc.c  */
6666 < #line 2705 "ircd_parser.y"
5419 >  case 386:
5420 > /* Line 1787 of yacc.c  */
5421 > #line 2057 "conf_parser.y"
5422      {
5423 <  if (conf_parser_ctx.pass == 2)
6669 <  {
6670 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6671 <    else SetConfCryptLink(yy_aconf);
6672 <  }
6673 < }
5423 >  if (conf_parser_ctx.pass != 2)
5424      break;
5425  
5426 <  case 439:
5427 <
5428 < /* Line 1455 of yacc.c  */
5429 < #line 2712 "ircd_parser.y"
5430 <    {
5431 <  if (conf_parser_ctx.pass == 2)
6682 <  {
6683 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6684 <    else SetConfAllowAutoConn(yy_aconf);
6685 <  }
5426 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5427 >    conf_error_report("Server passwords cannot begin with a colon");
5428 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5429 >    conf_error_report("Server passwords cannot contain spaces");
5430 >  else
5431 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5432   }
5433      break;
5434  
5435 <  case 440:
5436 <
5437 < /* Line 1455 of yacc.c  */
6692 < #line 2719 "ircd_parser.y"
5435 >  case 387:
5436 > /* Line 1787 of yacc.c  */
5437 > #line 2070 "conf_parser.y"
5438      {
5439    if (conf_parser_ctx.pass == 2)
5440 <  {
6696 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6697 <    else SetConfAwayBurst(yy_aconf);
6698 <  }
5440 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5441   }
5442      break;
5443  
5444 <  case 441:
5445 <
5446 < /* Line 1455 of yacc.c  */
6705 < #line 2726 "ircd_parser.y"
5444 >  case 388:
5445 > /* Line 1787 of yacc.c  */
5446 > #line 2076 "conf_parser.y"
5447      {
5448    if (conf_parser_ctx.pass == 2)
5449 <  {
6709 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6710 <    else SetConfTopicBurst(yy_aconf);
6711 <  }
5449 >    block_state.aftype.value = AF_INET;
5450   }
5451      break;
5452  
5453 <  case 442:
5454 <
5455 < /* Line 1455 of yacc.c  */
6718 < #line 2736 "ircd_parser.y"
5453 >  case 389:
5454 > /* Line 1787 of yacc.c  */
5455 > #line 2080 "conf_parser.y"
5456      {
5457 < #ifdef HAVE_LIBCRYPTO
5457 > #ifdef IPV6
5458    if (conf_parser_ctx.pass == 2)
5459 <  {
5460 <    BIO *file;
6724 <
6725 <    if (yy_aconf->rsa_public_key != NULL)
6726 <    {
6727 <      RSA_free(yy_aconf->rsa_public_key);
6728 <      yy_aconf->rsa_public_key = NULL;
6729 <    }
6730 <
6731 <    if (yy_aconf->rsa_public_key_file != NULL)
6732 <    {
6733 <      MyFree(yy_aconf->rsa_public_key_file);
6734 <      yy_aconf->rsa_public_key_file = NULL;
6735 <    }
6736 <
6737 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6738 <
6739 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6740 <    {
6741 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6742 <      break;
6743 <    }
6744 <
6745 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6746 <
6747 <    if (yy_aconf->rsa_public_key == NULL)
6748 <    {
6749 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6750 <      break;
6751 <    }
6752 <      
6753 <    BIO_set_close(file, BIO_CLOSE);
6754 <    BIO_free(file);
6755 <  }
6756 < #endif /* HAVE_LIBCRYPTO */
5459 >    block_state.aftype.value = AF_INET6;
5460 > #endif
5461   }
5462      break;
5463  
5464 <  case 443:
5465 <
5466 < /* Line 1455 of yacc.c  */
6763 < #line 2777 "ircd_parser.y"
5464 >  case 390:
5465 > /* Line 1787 of yacc.c  */
5466 > #line 2088 "conf_parser.y"
5467      {
5468 <  if (conf_parser_ctx.pass == 2)
6766 <  {
6767 <    if (yylval.number)
6768 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6769 <    else
6770 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6771 <  }
5468 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5469   }
5470      break;
5471  
5472 <  case 444:
5473 <
5474 < /* Line 1455 of yacc.c  */
6778 < #line 2788 "ircd_parser.y"
5472 >  case 394:
5473 > /* Line 1787 of yacc.c  */
5474 > #line 2094 "conf_parser.y"
5475      {
5476    if (conf_parser_ctx.pass == 2)
5477 <  {
6782 <    if (yylval.number)
6783 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6784 <    else
6785 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6786 <  }
5477 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5478   }
5479      break;
5480  
5481 <  case 445:
5482 <
5483 < /* Line 1455 of yacc.c  */
6793 < #line 2799 "ircd_parser.y"
5481 >  case 395:
5482 > /* Line 1787 of yacc.c  */
5483 > #line 2098 "conf_parser.y"
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486 <  {
6797 <    if (yylval.number)
6798 < #ifndef HAVE_LIBZ
6799 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6800 < #else
6801 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6802 < #endif
6803 <    else
6804 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6805 <  }
5486 >    block_state.flags.value |= CONF_FLAGS_SSL;
5487   }
5488      break;
5489  
5490 <  case 446:
5491 <
5492 < /* Line 1455 of yacc.c  */
6812 < #line 2814 "ircd_parser.y"
5490 >  case 396:
5491 > /* Line 1787 of yacc.c  */
5492 > #line 2104 "conf_parser.y"
5493      {
5494    if (conf_parser_ctx.pass == 2)
5495    {
5496      if (yylval.number)
5497 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
5497 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5498      else
5499 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
5499 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5500    }
5501   }
5502      break;
5503  
5504 <  case 447:
5505 <
5506 < /* Line 1455 of yacc.c  */
6827 < #line 2825 "ircd_parser.y"
5504 >  case 397:
5505 > /* Line 1787 of yacc.c  */
5506 > #line 2115 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <  {
6831 <    if (yylval.number)
6832 <      SetConfTopicBurst(yy_aconf);
6833 <    else
6834 <      ClearConfTopicBurst(yy_aconf);
6835 <  }
5509 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5510   }
5511      break;
5512  
5513 <  case 448:
5514 <
5515 < /* Line 1455 of yacc.c  */
6842 < #line 2836 "ircd_parser.y"
5513 >  case 398:
5514 > /* Line 1787 of yacc.c  */
5515 > #line 2121 "conf_parser.y"
5516      {
5517    if (conf_parser_ctx.pass == 2)
5518 <  {
6846 <    struct CollectItem *yy_tmp;
6847 <
6848 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6849 <    DupString(yy_tmp->host, yylval.string);
6850 <    DupString(yy_tmp->user, "*");
6851 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6852 <  }
5518 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5519   }
5520      break;
5521  
5522 <  case 449:
5523 <
5524 < /* Line 1455 of yacc.c  */
6859 < #line 2849 "ircd_parser.y"
6860 <    {
6861 <  if (conf_parser_ctx.pass == 2)
6862 <  {
6863 <    struct CollectItem *yy_tmp;
6864 <
6865 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6866 <    DupString(yy_tmp->host, yylval.string);
6867 <    DupString(yy_tmp->user, "*");
6868 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6869 <  }
6870 < }
6871 <    break;
6872 <
6873 <  case 450:
6874 <
6875 < /* Line 1455 of yacc.c  */
6876 < #line 2862 "ircd_parser.y"
5522 >  case 399:
5523 > /* Line 1787 of yacc.c  */
5524 > #line 2127 "conf_parser.y"
5525      {
5526    if (conf_parser_ctx.pass == 2)
5527 <  {
6880 <    MyFree(class_name);
6881 <    DupString(class_name, yylval.string);
6882 <  }
5527 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5528   }
5529      break;
5530  
5531 <  case 451:
5532 <
5533 < /* Line 1455 of yacc.c  */
6889 < #line 2871 "ircd_parser.y"
5531 >  case 400:
5532 > /* Line 1787 of yacc.c  */
5533 > #line 2133 "conf_parser.y"
5534      {
5535   #ifdef HAVE_LIBCRYPTO
5536    if (conf_parser_ctx.pass == 2)
5537 <  {
6894 <    struct EncCapability *ecap;
6895 <    const char *cipher_name;
6896 <    int found = 0;
6897 <
6898 <    yy_aconf->cipher_preference = NULL;
6899 <    cipher_name = yylval.string;
6900 <
6901 <    for (ecap = CipherTable; ecap->name; ecap++)
6902 <    {
6903 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6904 <          (ecap->cap & CAP_ENC_MASK))
6905 <      {
6906 <        yy_aconf->cipher_preference = ecap;
6907 <        found = 1;
6908 <        break;
6909 <      }
6910 <    }
6911 <
6912 <    if (!found)
6913 <      yyerror("Invalid cipher");
6914 <  }
5537 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5538   #else
5539    if (conf_parser_ctx.pass == 2)
5540 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5540 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5541   #endif
5542   }
5543      break;
5544  
5545 <  case 452:
5546 <
5547 < /* Line 1455 of yacc.c  */
6925 < #line 2906 "ircd_parser.y"
5545 >  case 401:
5546 > /* Line 1787 of yacc.c  */
5547 > #line 2148 "conf_parser.y"
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550 <  {
6929 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6930 <    regex_ban = 0;
6931 <  }
5550 >    reset_block_state();
5551   }
5552      break;
5553  
5554 <  case 453:
5555 <
5556 < /* Line 1455 of yacc.c  */
6938 < #line 2913 "ircd_parser.y"
6939 <    {
6940 <  if (conf_parser_ctx.pass == 2)
6941 <  {
6942 <    if (userbuf[0] && hostbuf[0])
5554 >  case 402:
5555 > /* Line 1787 of yacc.c  */
5556 > #line 2152 "conf_parser.y"
5557      {
5558 <      if (regex_ban)
6945 <      {
6946 <        pcre *exp_user = NULL;
6947 <        pcre *exp_host = NULL;
6948 <        const char *errptr = NULL;
6949 <
6950 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6951 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6952 <        {
6953 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6954 <               errptr);
6955 <          break;
6956 <        }
6957 <
6958 <        yy_conf = make_conf_item(RKLINE_TYPE);
6959 <        yy_aconf = map_to_conf(yy_conf);
6960 <
6961 <        yy_aconf->regexuser = exp_user;
6962 <        yy_aconf->regexhost = exp_host;
6963 <
6964 <        DupString(yy_aconf->user, userbuf);
6965 <        DupString(yy_aconf->host, hostbuf);
6966 <
6967 <        if (reasonbuf[0])
6968 <          DupString(yy_aconf->reason, reasonbuf);
6969 <        else
6970 <          DupString(yy_aconf->reason, "No reason");
6971 <      }
6972 <      else
6973 <      {
6974 <        yy_conf = make_conf_item(KLINE_TYPE);
6975 <        yy_aconf = map_to_conf(yy_conf);
5558 >  struct MaskItem *conf = NULL;
5559  
5560 <        DupString(yy_aconf->user, userbuf);
6978 <        DupString(yy_aconf->host, hostbuf);
6979 <
6980 <        if (reasonbuf[0])
6981 <          DupString(yy_aconf->reason, reasonbuf);
6982 <        else
6983 <          DupString(yy_aconf->reason, "No reason");
6984 <        add_conf_by_address(CONF_KILL, yy_aconf);
6985 <      }
6986 <    }
6987 <    else
6988 <      delete_conf_item(yy_conf);
6989 <
6990 <    yy_conf = NULL;
6991 <    yy_aconf = NULL;
6992 <  }
6993 < }
5560 >  if (conf_parser_ctx.pass != 2)
5561      break;
5562  
5563 <  case 454:
5564 <
6998 < /* Line 1455 of yacc.c  */
6999 < #line 2970 "ircd_parser.y"
7000 <    {
7001 < }
5563 >  if (!block_state.user.buf[0] ||
5564 >      !block_state.host.buf[0])
5565      break;
5566  
5567 <  case 458:
5567 >  conf = conf_make(CONF_KLINE);
5568 >  conf->user = xstrdup(block_state.user.buf);
5569 >  conf->host = xstrdup(block_state.host.buf);
5570  
5571 < /* Line 1455 of yacc.c  */
5572 < #line 2975 "ircd_parser.y"
5573 <    {
5574 <  if (conf_parser_ctx.pass == 2)
5575 <    regex_ban = 1;
5571 >  if (block_state.rpass.buf[0])
5572 >    conf->reason = xstrdup(block_state.rpass.buf);
5573 >  else
5574 >    conf->reason = xstrdup(CONF_NOREASON);
5575 >  add_conf_by_address(CONF_KLINE, conf);
5576   }
5577      break;
5578  
5579 <  case 465:
5580 <
5581 < /* Line 1455 of yacc.c  */
7017 < #line 2984 "ircd_parser.y"
5579 >  case 408:
5580 > /* Line 1787 of yacc.c  */
5581 > #line 2177 "conf_parser.y"
5582      {
5583 +
5584    if (conf_parser_ctx.pass == 2)
5585    {
5586      struct split_nuh_item nuh;
5587  
5588      nuh.nuhmask  = yylval.string;
5589      nuh.nickptr  = NULL;
5590 <    nuh.userptr  = userbuf;
5591 <    nuh.hostptr  = hostbuf;
5590 >    nuh.userptr  = block_state.user.buf;
5591 >    nuh.hostptr  = block_state.host.buf;
5592  
5593      nuh.nicksize = 0;
5594 <    nuh.usersize = sizeof(userbuf);
5595 <    nuh.hostsize = sizeof(hostbuf);
5594 >    nuh.usersize = sizeof(block_state.user.buf);
5595 >    nuh.hostsize = sizeof(block_state.host.buf);
5596  
5597      split_nuh(&nuh);
5598    }
5599   }
5600      break;
5601  
5602 <  case 466:
5603 <
5604 < /* Line 1455 of yacc.c  */
7040 < #line 3003 "ircd_parser.y"
5602 >  case 409:
5603 > /* Line 1787 of yacc.c  */
5604 > #line 2197 "conf_parser.y"
5605      {
5606    if (conf_parser_ctx.pass == 2)
5607 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5607 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5608   }
5609      break;
5610  
5611 <  case 467:
5612 <
5613 < /* Line 1455 of yacc.c  */
7050 < #line 3012 "ircd_parser.y"
5611 >  case 410:
5612 > /* Line 1787 of yacc.c  */
5613 > #line 2206 "conf_parser.y"
5614      {
5615    if (conf_parser_ctx.pass == 2)
5616 <  {
7054 <    yy_conf = make_conf_item(DLINE_TYPE);
7055 <    yy_aconf = map_to_conf(yy_conf);
7056 <    /* default reason */
7057 <    DupString(yy_aconf->reason, "No reason");
7058 <  }
5616 >    reset_block_state();
5617   }
5618      break;
5619  
5620 <  case 468:
5621 <
5622 < /* Line 1455 of yacc.c  */
7065 < #line 3021 "ircd_parser.y"
5620 >  case 411:
5621 > /* Line 1787 of yacc.c  */
5622 > #line 2210 "conf_parser.y"
5623      {
5624 <  if (conf_parser_ctx.pass == 2)
5624 >  struct MaskItem *conf = NULL;
5625 >
5626 >  if (conf_parser_ctx.pass != 2)
5627 >    break;
5628 >
5629 >  if (!block_state.addr.buf[0])
5630 >    break;
5631 >
5632 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5633    {
5634 <    if (yy_aconf->host && parse_netmask(yy_aconf->host, NULL, NULL) != HM_HOST)
5635 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5634 >    conf = conf_make(CONF_DLINE);
5635 >    conf->host = xstrdup(block_state.addr.buf);
5636 >
5637 >    if (block_state.rpass.buf[0])
5638 >      conf->reason = xstrdup(block_state.rpass.buf);
5639      else
5640 <      delete_conf_item(yy_conf);
5641 <    yy_conf = NULL;
7074 <    yy_aconf = NULL;
5640 >      conf->reason = xstrdup(CONF_NOREASON);
5641 >    add_conf_by_address(CONF_DLINE, conf);
5642    }
5643   }
5644      break;
5645  
5646 <  case 474:
5647 <
5648 < /* Line 1455 of yacc.c  */
7082 < #line 3037 "ircd_parser.y"
5646 >  case 417:
5647 > /* Line 1787 of yacc.c  */
5648 > #line 2236 "conf_parser.y"
5649      {
5650    if (conf_parser_ctx.pass == 2)
5651 <  {
7086 <    MyFree(yy_aconf->host);
7087 <    DupString(yy_aconf->host, yylval.string);
7088 <  }
5651 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5652   }
5653      break;
5654  
5655 <  case 475:
5656 <
5657 < /* Line 1455 of yacc.c  */
7095 < #line 3046 "ircd_parser.y"
5655 >  case 418:
5656 > /* Line 1787 of yacc.c  */
5657 > #line 2242 "conf_parser.y"
5658      {
5659    if (conf_parser_ctx.pass == 2)
5660 <  {
7099 <    MyFree(yy_aconf->reason);
7100 <    DupString(yy_aconf->reason, yylval.string);
7101 <  }
5660 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5661   }
5662      break;
5663  
5664 <  case 481:
5665 <
5666 < /* Line 1455 of yacc.c  */
7108 < #line 3063 "ircd_parser.y"
5664 >  case 424:
5665 > /* Line 1787 of yacc.c  */
5666 > #line 2256 "conf_parser.y"
5667      {
5668    if (conf_parser_ctx.pass == 2)
5669    {
5670      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5671      {
5672 <      yy_conf = make_conf_item(EXEMPTDLINE_TYPE);
5673 <      yy_aconf = map_to_conf(yy_conf);
7116 <      DupString(yy_aconf->host, yylval.string);
7117 <
7118 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5672 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5673 >      conf->host = xstrdup(yylval.string);
5674  
5675 <      yy_conf = NULL;
7121 <      yy_aconf = NULL;
5675 >      add_conf_by_address(CONF_EXEMPT, conf);
5676      }
5677    }
5678   }
5679      break;
5680  
5681 <  case 482:
5682 <
5683 < /* Line 1455 of yacc.c  */
7130 < #line 3084 "ircd_parser.y"
5681 >  case 425:
5682 > /* Line 1787 of yacc.c  */
5683 > #line 2273 "conf_parser.y"
5684      {
5685    if (conf_parser_ctx.pass == 2)
5686 <  {
7134 <    regex_ban = 0;
7135 <    reasonbuf[0] = gecos_name[0] = '\0';
7136 <  }
5686 >    reset_block_state();
5687   }
5688      break;
5689  
5690 <  case 483:
5691 <
5692 < /* Line 1455 of yacc.c  */
7143 < #line 3091 "ircd_parser.y"
7144 <    {
7145 <  if (conf_parser_ctx.pass == 2)
7146 <  {
7147 <    if (gecos_name[0])
5690 >  case 426:
5691 > /* Line 1787 of yacc.c  */
5692 > #line 2277 "conf_parser.y"
5693      {
5694 <      if (regex_ban)
7150 <      {
7151 <        pcre *exp_p = NULL;
7152 <        const char *errptr = NULL;
7153 <
7154 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7155 <        {
7156 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7157 <               errptr);
7158 <          break;
7159 <        }
7160 <
7161 <        yy_conf = make_conf_item(RXLINE_TYPE);
7162 <        yy_conf->regexpname = exp_p;
7163 <      }
7164 <      else
7165 <        yy_conf = make_conf_item(XLINE_TYPE);
5694 >  struct MaskItem *conf = NULL;
5695  
5696 <      yy_match_item = map_to_conf(yy_conf);
7168 <      DupString(yy_conf->name, gecos_name);
7169 <
7170 <      if (reasonbuf[0])
7171 <        DupString(yy_match_item->reason, reasonbuf);
7172 <      else
7173 <        DupString(yy_match_item->reason, "No reason");
7174 <    }
7175 <  }
7176 < }
5696 >  if (conf_parser_ctx.pass != 2)
5697      break;
5698  
5699 <  case 484:
7180 <
7181 < /* Line 1455 of yacc.c  */
7182 < #line 3126 "ircd_parser.y"
7183 <    {
7184 < }
5699 >  if (!block_state.name.buf[0])
5700      break;
5701  
5702 <  case 488:
5702 >  conf = conf_make(CONF_XLINE);
5703 >  conf->name = xstrdup(block_state.name.buf);
5704  
5705 < /* Line 1455 of yacc.c  */
5706 < #line 3131 "ircd_parser.y"
5707 <    {
5708 <  if (conf_parser_ctx.pass == 2)
7193 <    regex_ban = 1;
5705 >  if (block_state.rpass.buf[0])
5706 >    conf->reason = xstrdup(block_state.rpass.buf);
5707 >  else
5708 >    conf->reason = xstrdup(CONF_NOREASON);
5709   }
5710      break;
5711  
5712 <  case 495:
5713 <
5714 < /* Line 1455 of yacc.c  */
7200 < #line 3140 "ircd_parser.y"
5712 >  case 432:
5713 > /* Line 1787 of yacc.c  */
5714 > #line 2299 "conf_parser.y"
5715      {
5716    if (conf_parser_ctx.pass == 2)
5717 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5717 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5718   }
5719      break;
5720  
5721 <  case 496:
5722 <
5723 < /* Line 1455 of yacc.c  */
7210 < #line 3146 "ircd_parser.y"
5721 >  case 433:
5722 > /* Line 1787 of yacc.c  */
5723 > #line 2305 "conf_parser.y"
5724      {
5725    if (conf_parser_ctx.pass == 2)
5726 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5726 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5727   }
5728      break;
5729  
5730 <  case 557:
5731 <
5732 < /* Line 1455 of yacc.c  */
7220 < #line 3191 "ircd_parser.y"
5730 >  case 486:
5731 > /* Line 1787 of yacc.c  */
5732 > #line 2349 "conf_parser.y"
5733      {
5734    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5735   }
5736      break;
5737  
5738 <  case 558:
5739 <
5740 < /* Line 1455 of yacc.c  */
7229 < #line 3196 "ircd_parser.y"
5738 >  case 487:
5739 > /* Line 1787 of yacc.c  */
5740 > #line 2354 "conf_parser.y"
5741      {
5742 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5742 >  if (conf_parser_ctx.pass == 2)
5743 >    ConfigFileEntry.glines = yylval.number;
5744   }
5745      break;
5746  
5747 <  case 559:
5748 <
5749 < /* Line 1455 of yacc.c  */
7238 < #line 3201 "ircd_parser.y"
5747 >  case 488:
5748 > /* Line 1787 of yacc.c  */
5749 > #line 2360 "conf_parser.y"
5750      {
5751 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5751 >  if (conf_parser_ctx.pass == 2)
5752 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5753   }
5754      break;
5755  
5756 <  case 560:
5757 <
5758 < /* Line 1455 of yacc.c  */
7247 < #line 3206 "ircd_parser.y"
5756 >  case 489:
5757 > /* Line 1787 of yacc.c  */
5758 > #line 2366 "conf_parser.y"
5759      {
5760 <  ConfigFileEntry.burst_away = yylval.number;
5760 >  if (conf_parser_ctx.pass == 2)
5761 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5762   }
5763      break;
5764  
5765 <  case 561:
5766 <
5767 < /* Line 1455 of yacc.c  */
7256 < #line 3211 "ircd_parser.y"
5765 >  case 490:
5766 > /* Line 1787 of yacc.c  */
5767 > #line 2372 "conf_parser.y"
5768      {
5769 <  ConfigFileEntry.use_whois_actually = yylval.number;
5769 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5770   }
5771      break;
5772  
5773 <  case 562:
5774 <
5775 < /* Line 1455 of yacc.c  */
7265 < #line 3216 "ircd_parser.y"
5773 >  case 491:
5774 > /* Line 1787 of yacc.c  */
5775 > #line 2377 "conf_parser.y"
5776      {
5777 <  GlobalSetOptions.rejecttime = yylval.number;
5777 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5778   }
5779      break;
5780  
5781 <  case 563:
5782 <
5783 < /* Line 1455 of yacc.c  */
7274 < #line 3221 "ircd_parser.y"
5781 >  case 492:
5782 > /* Line 1787 of yacc.c  */
5783 > #line 2382 "conf_parser.y"
5784      {
5785    ConfigFileEntry.tkline_expire_notices = yylval.number;
5786   }
5787      break;
5788  
5789 <  case 564:
5790 <
5791 < /* Line 1455 of yacc.c  */
7283 < #line 3226 "ircd_parser.y"
5789 >  case 493:
5790 > /* Line 1787 of yacc.c  */
5791 > #line 2387 "conf_parser.y"
5792      {
5793    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5794   }
5795      break;
5796  
5797 <  case 565:
5798 <
5799 < /* Line 1455 of yacc.c  */
7292 < #line 3231 "ircd_parser.y"
5797 >  case 494:
5798 > /* Line 1787 of yacc.c  */
5799 > #line 2392 "conf_parser.y"
5800      {
5801    ConfigFileEntry.hide_spoof_ips = yylval.number;
5802   }
5803      break;
5804  
5805 <  case 566:
5806 <
5807 < /* Line 1455 of yacc.c  */
7301 < #line 3236 "ircd_parser.y"
5805 >  case 495:
5806 > /* Line 1787 of yacc.c  */
5807 > #line 2397 "conf_parser.y"
5808      {
5809    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5810   }
5811      break;
5812  
5813 <  case 567:
5814 <
5815 < /* Line 1455 of yacc.c  */
7310 < #line 3241 "ircd_parser.y"
5813 >  case 496:
5814 > /* Line 1787 of yacc.c  */
5815 > #line 2402 "conf_parser.y"
5816      {
5817    ConfigFileEntry.disable_remote = yylval.number;
5818   }
5819      break;
5820  
5821 <  case 568:
5822 <
5823 < /* Line 1455 of yacc.c  */
7319 < #line 3246 "ircd_parser.y"
5821 >  case 497:
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2407 "conf_parser.y"
5824      {
5825    ConfigFileEntry.failed_oper_notice = yylval.number;
5826   }
5827      break;
5828  
5829 <  case 569:
5830 <
5831 < /* Line 1455 of yacc.c  */
7328 < #line 3251 "ircd_parser.y"
5829 >  case 498:
5830 > /* Line 1787 of yacc.c  */
5831 > #line 2412 "conf_parser.y"
5832      {
5833    ConfigFileEntry.anti_nick_flood = yylval.number;
5834   }
5835      break;
5836  
5837 <  case 570:
5838 <
5839 < /* Line 1455 of yacc.c  */
7337 < #line 3256 "ircd_parser.y"
5837 >  case 499:
5838 > /* Line 1787 of yacc.c  */
5839 > #line 2417 "conf_parser.y"
5840      {
5841    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5842   }
5843      break;
5844  
5845 <  case 571:
5846 <
5847 < /* Line 1455 of yacc.c  */
7346 < #line 3261 "ircd_parser.y"
5845 >  case 500:
5846 > /* Line 1787 of yacc.c  */
5847 > #line 2422 "conf_parser.y"
5848      {
5849    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5850   }
5851      break;
5852  
5853 <  case 572:
5854 <
5855 < /* Line 1455 of yacc.c  */
7355 < #line 3266 "ircd_parser.y"
5853 >  case 501:
5854 > /* Line 1787 of yacc.c  */
5855 > #line 2427 "conf_parser.y"
5856      {
5857    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5858   }
5859      break;
5860  
5861 <  case 573:
5862 <
5863 < /* Line 1455 of yacc.c  */
7364 < #line 3271 "ircd_parser.y"
5861 >  case 502:
5862 > /* Line 1787 of yacc.c  */
5863 > #line 2432 "conf_parser.y"
5864      {
5865    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869 <  case 574:
5870 <
5871 < /* Line 1455 of yacc.c  */
7373 < #line 3276 "ircd_parser.y"
5869 >  case 503:
5870 > /* Line 1787 of yacc.c  */
5871 > #line 2437 "conf_parser.y"
5872      {
5873    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5874   }
5875      break;
5876  
5877 <  case 575:
5878 <
5879 < /* Line 1455 of yacc.c  */
7382 < #line 3281 "ircd_parser.y"
5877 >  case 504:
5878 > /* Line 1787 of yacc.c  */
5879 > #line 2442 "conf_parser.y"
5880      {
5881    if (conf_parser_ctx.pass == 2)
5882      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5883   }
5884      break;
5885  
5886 <  case 576:
5887 <
5888 < /* Line 1455 of yacc.c  */
7392 < #line 3287 "ircd_parser.y"
5886 >  case 505:
5887 > /* Line 1787 of yacc.c  */
5888 > #line 2448 "conf_parser.y"
5889      {
5890    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5891    {
5892 <    ilog(L_CRIT, "You haven't read your config file properly.");
5893 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
5894 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
5892 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5893 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5894 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5895      exit(0);
5896    }
5897   }
5898      break;
5899  
5900 <  case 577:
5901 <
5902 < /* Line 1455 of yacc.c  */
7407 < #line 3298 "ircd_parser.y"
7408 <    {
7409 <  ConfigFileEntry.kline_with_reason = yylval.number;
7410 < }
7411 <    break;
7412 <
7413 <  case 578:
7414 <
7415 < /* Line 1455 of yacc.c  */
7416 < #line 3303 "ircd_parser.y"
7417 <    {
7418 <  if (conf_parser_ctx.pass == 2)
7419 <  {
7420 <    MyFree(ConfigFileEntry.kline_reason);
7421 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7422 <  }
7423 < }
7424 <    break;
7425 <
7426 <  case 579:
7427 <
7428 < /* Line 1455 of yacc.c  */
7429 < #line 3312 "ircd_parser.y"
5900 >  case 506:
5901 > /* Line 1787 of yacc.c  */
5902 > #line 2459 "conf_parser.y"
5903      {
5904    ConfigFileEntry.invisible_on_connect = yylval.number;
5905   }
5906      break;
5907  
5908 <  case 580:
5909 <
5910 < /* Line 1455 of yacc.c  */
7438 < #line 3317 "ircd_parser.y"
5908 >  case 507:
5909 > /* Line 1787 of yacc.c  */
5910 > #line 2464 "conf_parser.y"
5911      {
5912    ConfigFileEntry.warn_no_nline = yylval.number;
5913   }
5914      break;
5915  
5916 <  case 581:
5917 <
5918 < /* Line 1455 of yacc.c  */
7447 < #line 3322 "ircd_parser.y"
5916 >  case 508:
5917 > /* Line 1787 of yacc.c  */
5918 > #line 2469 "conf_parser.y"
5919      {
5920    ConfigFileEntry.stats_e_disabled = yylval.number;
5921   }
5922      break;
5923  
5924 <  case 582:
5925 <
5926 < /* Line 1455 of yacc.c  */
7456 < #line 3327 "ircd_parser.y"
5924 >  case 509:
5925 > /* Line 1787 of yacc.c  */
5926 > #line 2474 "conf_parser.y"
5927      {
5928    ConfigFileEntry.stats_o_oper_only = yylval.number;
5929   }
5930      break;
5931  
5932 <  case 583:
5933 <
5934 < /* Line 1455 of yacc.c  */
7465 < #line 3332 "ircd_parser.y"
5932 >  case 510:
5933 > /* Line 1787 of yacc.c  */
5934 > #line 2479 "conf_parser.y"
5935      {
5936    ConfigFileEntry.stats_P_oper_only = yylval.number;
5937   }
5938      break;
5939  
5940 <  case 584:
5941 <
5942 < /* Line 1455 of yacc.c  */
7474 < #line 3337 "ircd_parser.y"
5940 >  case 511:
5941 > /* Line 1787 of yacc.c  */
5942 > #line 2484 "conf_parser.y"
5943      {
5944    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5945   }
5946      break;
5947  
5948 <  case 585:
5949 <
5950 < /* Line 1455 of yacc.c  */
7483 < #line 3340 "ircd_parser.y"
5948 >  case 512:
5949 > /* Line 1787 of yacc.c  */
5950 > #line 2487 "conf_parser.y"
5951      {
5952    ConfigFileEntry.stats_k_oper_only = 1;
5953   }
5954      break;
5955  
5956 <  case 586:
5957 <
5958 < /* Line 1455 of yacc.c  */
7492 < #line 3345 "ircd_parser.y"
5956 >  case 513:
5957 > /* Line 1787 of yacc.c  */
5958 > #line 2492 "conf_parser.y"
5959      {
5960    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5961   }
5962      break;
5963  
5964 <  case 587:
5965 <
5966 < /* Line 1455 of yacc.c  */
7501 < #line 3348 "ircd_parser.y"
5964 >  case 514:
5965 > /* Line 1787 of yacc.c  */
5966 > #line 2495 "conf_parser.y"
5967      {
5968    ConfigFileEntry.stats_i_oper_only = 1;
5969   }
5970      break;
5971  
5972 <  case 588:
5973 <
5974 < /* Line 1455 of yacc.c  */
7510 < #line 3353 "ircd_parser.y"
5972 >  case 515:
5973 > /* Line 1787 of yacc.c  */
5974 > #line 2500 "conf_parser.y"
5975      {
5976    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5977   }
5978      break;
5979  
5980 <  case 589:
5981 <
5982 < /* Line 1455 of yacc.c  */
7519 < #line 3358 "ircd_parser.y"
5980 >  case 516:
5981 > /* Line 1787 of yacc.c  */
5982 > #line 2505 "conf_parser.y"
5983      {
5984    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5985   }
5986      break;
5987  
5988 <  case 590:
5989 <
5990 < /* Line 1455 of yacc.c  */
7528 < #line 3363 "ircd_parser.y"
5988 >  case 517:
5989 > /* Line 1787 of yacc.c  */
5990 > #line 2510 "conf_parser.y"
5991      {
5992    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5993   }
5994      break;
5995  
5996 <  case 591:
5997 <
5998 < /* Line 1455 of yacc.c  */
7537 < #line 3368 "ircd_parser.y"
5996 >  case 518:
5997 > /* Line 1787 of yacc.c  */
5998 > #line 2515 "conf_parser.y"
5999      {
6000    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6001   }
6002      break;
6003  
6004 <  case 592:
6005 <
6006 < /* Line 1455 of yacc.c  */
7546 < #line 3373 "ircd_parser.y"
6004 >  case 519:
6005 > /* Line 1787 of yacc.c  */
6006 > #line 2520 "conf_parser.y"
6007      {
6008    ConfigFileEntry.short_motd = yylval.number;
6009   }
6010      break;
6011  
6012 <  case 593:
6013 <
6014 < /* Line 1455 of yacc.c  */
7555 < #line 3378 "ircd_parser.y"
6012 >  case 520:
6013 > /* Line 1787 of yacc.c  */
6014 > #line 2525 "conf_parser.y"
6015      {
6016    ConfigFileEntry.no_oper_flood = yylval.number;
6017   }
6018      break;
6019  
6020 <  case 594:
6021 <
6022 < /* Line 1455 of yacc.c  */
7564 < #line 3383 "ircd_parser.y"
6020 >  case 521:
6021 > /* Line 1787 of yacc.c  */
6022 > #line 2530 "conf_parser.y"
6023      {
6024    ConfigFileEntry.true_no_oper_flood = yylval.number;
6025   }
6026      break;
6027  
6028 <  case 595:
6029 <
6030 < /* Line 1455 of yacc.c  */
7573 < #line 3388 "ircd_parser.y"
6028 >  case 522:
6029 > /* Line 1787 of yacc.c  */
6030 > #line 2535 "conf_parser.y"
6031      {
6032    ConfigFileEntry.oper_pass_resv = yylval.number;
6033   }
6034      break;
6035  
6036 <  case 596:
6037 <
6038 < /* Line 1455 of yacc.c  */
7582 < #line 3393 "ircd_parser.y"
7583 <    {
7584 <  if (conf_parser_ctx.pass == 2)
7585 <  {
7586 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7587 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7588 <
7589 <    set_locale(yylval.string);
7590 <  }
7591 < }
7592 <    break;
7593 <
7594 <  case 597:
7595 <
7596 < /* Line 1455 of yacc.c  */
7597 < #line 3404 "ircd_parser.y"
7598 <    {
7599 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7600 < }
7601 <    break;
7602 <
7603 <  case 598:
7604 <
7605 < /* Line 1455 of yacc.c  */
7606 < #line 3409 "ircd_parser.y"
6036 >  case 523:
6037 > /* Line 1787 of yacc.c  */
6038 > #line 2540 "conf_parser.y"
6039      {
6040    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6041   }
6042      break;
6043  
6044 <  case 599:
6045 <
6046 < /* Line 1455 of yacc.c  */
7615 < #line 3414 "ircd_parser.y"
6044 >  case 524:
6045 > /* Line 1787 of yacc.c  */
6046 > #line 2545 "conf_parser.y"
6047      {
6048    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6049   }
6050      break;
6051  
6052 <  case 600:
6053 <
6054 < /* Line 1455 of yacc.c  */
7624 < #line 3419 "ircd_parser.y"
6052 >  case 525:
6053 > /* Line 1787 of yacc.c  */
6054 > #line 2550 "conf_parser.y"
6055      {
6056 <  if (conf_parser_ctx.pass == 2)
7627 <  {
7628 <    MyFree(ConfigFileEntry.servlink_path);
7629 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7630 <  }
7631 < }
7632 <    break;
7633 <
7634 <  case 601:
7635 <
7636 < /* Line 1455 of yacc.c  */
7637 < #line 3428 "ircd_parser.y"
7638 <    {
7639 < #ifdef HAVE_LIBCRYPTO
7640 <  if (conf_parser_ctx.pass == 2)
7641 <  {
7642 <    struct EncCapability *ecap;
7643 <    const char *cipher_name;
7644 <    int found = 0;
7645 <
7646 <    ConfigFileEntry.default_cipher_preference = NULL;
7647 <    cipher_name = yylval.string;
7648 <
7649 <    for (ecap = CipherTable; ecap->name; ecap++)
7650 <    {
7651 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7652 <          (ecap->cap & CAP_ENC_MASK))
7653 <      {
7654 <        ConfigFileEntry.default_cipher_preference = ecap;
7655 <        found = 1;
7656 <        break;
7657 <      }
7658 <    }
7659 <
7660 <    if (!found)
7661 <      yyerror("Invalid cipher");
7662 <  }
7663 < #else
7664 <  if (conf_parser_ctx.pass == 2)
7665 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7666 < #endif
6056 >  ConfigFileEntry.use_egd = yylval.number;
6057   }
6058      break;
6059  
6060 <  case 602:
6061 <
6062 < /* Line 1455 of yacc.c  */
7673 < #line 3460 "ircd_parser.y"
6060 >  case 526:
6061 > /* Line 1787 of yacc.c  */
6062 > #line 2555 "conf_parser.y"
6063      {
6064    if (conf_parser_ctx.pass == 2)
6065    {
6066 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6067 < #ifndef HAVE_LIBZ
7679 <    yyerror("Ignoring compression_level -- no zlib support");
7680 < #else
7681 <    if ((ConfigFileEntry.compression_level < 1) ||
7682 <        (ConfigFileEntry.compression_level > 9))
7683 <    {
7684 <      yyerror("Ignoring invalid compression_level, using default");
7685 <      ConfigFileEntry.compression_level = 0;
7686 <    }
7687 < #endif
6066 >    MyFree(ConfigFileEntry.egdpool_path);
6067 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6068    }
6069   }
6070      break;
6071  
6072 <  case 603:
6073 <
6074 < /* Line 1455 of yacc.c  */
7695 < #line 3478 "ircd_parser.y"
7696 <    {
7697 <  ConfigFileEntry.use_egd = yylval.number;
7698 < }
7699 <    break;
7700 <
7701 <  case 604:
7702 <
7703 < /* Line 1455 of yacc.c  */
7704 < #line 3483 "ircd_parser.y"
6072 >  case 527:
6073 > /* Line 1787 of yacc.c  */
6074 > #line 2564 "conf_parser.y"
6075      {
6076 <  if (conf_parser_ctx.pass == 2)
6076 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6077    {
6078 <    MyFree(ConfigFileEntry.egdpool_path);
6079 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6078 >    MyFree(ConfigFileEntry.service_name);
6079 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6080    }
6081   }
6082      break;
6083  
6084 <  case 605:
6085 <
6086 < /* Line 1455 of yacc.c  */
7717 < #line 3492 "ircd_parser.y"
6084 >  case 528:
6085 > /* Line 1787 of yacc.c  */
6086 > #line 2573 "conf_parser.y"
6087      {
6088    ConfigFileEntry.ping_cookie = yylval.number;
6089   }
6090      break;
6091  
6092 <  case 606:
6093 <
6094 < /* Line 1455 of yacc.c  */
7726 < #line 3497 "ircd_parser.y"
6092 >  case 529:
6093 > /* Line 1787 of yacc.c  */
6094 > #line 2578 "conf_parser.y"
6095      {
6096    ConfigFileEntry.disable_auth = yylval.number;
6097   }
6098      break;
6099  
6100 <  case 607:
6101 <
6102 < /* Line 1455 of yacc.c  */
7735 < #line 3502 "ircd_parser.y"
6100 >  case 530:
6101 > /* Line 1787 of yacc.c  */
6102 > #line 2583 "conf_parser.y"
6103      {
6104    ConfigFileEntry.throttle_time = yylval.number;
6105   }
6106      break;
6107  
6108 <  case 608:
6109 <
6110 < /* Line 1455 of yacc.c  */
7744 < #line 3507 "ircd_parser.y"
6108 >  case 531:
6109 > /* Line 1787 of yacc.c  */
6110 > #line 2588 "conf_parser.y"
6111      {
6112    ConfigFileEntry.oper_umodes = 0;
6113   }
6114      break;
6115  
6116 <  case 612:
6117 <
6118 < /* Line 1455 of yacc.c  */
7753 < #line 3513 "ircd_parser.y"
6116 >  case 535:
6117 > /* Line 1787 of yacc.c  */
6118 > #line 2594 "conf_parser.y"
6119      {
6120    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6121   }
6122      break;
6123  
6124 <  case 613:
6125 <
6126 < /* Line 1455 of yacc.c  */
7762 < #line 3516 "ircd_parser.y"
6124 >  case 536:
6125 > /* Line 1787 of yacc.c  */
6126 > #line 2597 "conf_parser.y"
6127      {
6128    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6129   }
6130      break;
6131  
6132 <  case 614:
6133 <
6134 < /* Line 1455 of yacc.c  */
7771 < #line 3519 "ircd_parser.y"
6132 >  case 537:
6133 > /* Line 1787 of yacc.c  */
6134 > #line 2600 "conf_parser.y"
6135      {
6136    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6137   }
6138      break;
6139  
6140 <  case 615:
6141 <
6142 < /* Line 1455 of yacc.c  */
7780 < #line 3522 "ircd_parser.y"
6140 >  case 538:
6141 > /* Line 1787 of yacc.c  */
6142 > #line 2603 "conf_parser.y"
6143      {
6144    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6145   }
6146      break;
6147  
6148 <  case 616:
6149 <
6150 < /* Line 1455 of yacc.c  */
7789 < #line 3525 "ircd_parser.y"
6148 >  case 539:
6149 > /* Line 1787 of yacc.c  */
6150 > #line 2606 "conf_parser.y"
6151      {
6152    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6153   }
6154      break;
6155  
6156 <  case 617:
6157 <
6158 < /* Line 1455 of yacc.c  */
7798 < #line 3528 "ircd_parser.y"
6156 >  case 540:
6157 > /* Line 1787 of yacc.c  */
6158 > #line 2609 "conf_parser.y"
6159      {
6160    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6161   }
6162      break;
6163  
6164 <  case 618:
6164 >  case 541:
6165 > /* Line 1787 of yacc.c  */
6166 > #line 2612 "conf_parser.y"
6167 >    {
6168 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6169 > }
6170 >    break;
6171  
6172 < /* Line 1455 of yacc.c  */
6173 < #line 3531 "ircd_parser.y"
6172 >  case 542:
6173 > /* Line 1787 of yacc.c  */
6174 > #line 2615 "conf_parser.y"
6175      {
6176    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6177   }
6178      break;
6179  
6180 <  case 619:
6181 <
6182 < /* Line 1455 of yacc.c  */
7816 < #line 3534 "ircd_parser.y"
6180 >  case 543:
6181 > /* Line 1787 of yacc.c  */
6182 > #line 2618 "conf_parser.y"
6183      {
6184    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6185   }
6186      break;
6187  
6188 <  case 620:
6189 <
6190 < /* Line 1455 of yacc.c  */
7825 < #line 3537 "ircd_parser.y"
6188 >  case 544:
6189 > /* Line 1787 of yacc.c  */
6190 > #line 2621 "conf_parser.y"
6191      {
6192    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6193   }
6194      break;
6195  
6196 <  case 621:
6197 <
6198 < /* Line 1455 of yacc.c  */
7834 < #line 3540 "ircd_parser.y"
6196 >  case 545:
6197 > /* Line 1787 of yacc.c  */
6198 > #line 2624 "conf_parser.y"
6199      {
6200    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6201   }
6202      break;
6203  
6204 <  case 622:
6205 <
6206 < /* Line 1455 of yacc.c  */
7843 < #line 3543 "ircd_parser.y"
6204 >  case 546:
6205 > /* Line 1787 of yacc.c  */
6206 > #line 2627 "conf_parser.y"
6207      {
6208    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6209   }
6210      break;
6211  
6212 <  case 623:
6213 <
6214 < /* Line 1455 of yacc.c  */
7852 < #line 3546 "ircd_parser.y"
6212 >  case 547:
6213 > /* Line 1787 of yacc.c  */
6214 > #line 2630 "conf_parser.y"
6215      {
6216    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6217   }
6218      break;
6219  
6220 <  case 624:
6221 <
6222 < /* Line 1455 of yacc.c  */
7861 < #line 3549 "ircd_parser.y"
6220 >  case 548:
6221 > /* Line 1787 of yacc.c  */
6222 > #line 2633 "conf_parser.y"
6223      {
6224    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6225   }
6226      break;
6227  
6228 <  case 625:
6229 <
6230 < /* Line 1455 of yacc.c  */
7870 < #line 3552 "ircd_parser.y"
6228 >  case 549:
6229 > /* Line 1787 of yacc.c  */
6230 > #line 2636 "conf_parser.y"
6231      {
6232    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6233   }
6234      break;
6235  
6236 <  case 626:
6237 <
6238 < /* Line 1455 of yacc.c  */
7879 < #line 3555 "ircd_parser.y"
6236 >  case 550:
6237 > /* Line 1787 of yacc.c  */
6238 > #line 2639 "conf_parser.y"
6239      {
6240    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6241   }
6242      break;
6243  
6244 <  case 627:
6245 <
6246 < /* Line 1455 of yacc.c  */
7888 < #line 3558 "ircd_parser.y"
6244 >  case 551:
6245 > /* Line 1787 of yacc.c  */
6246 > #line 2642 "conf_parser.y"
6247      {
6248    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6249   }
6250      break;
6251  
6252 <  case 628:
6253 <
6254 < /* Line 1455 of yacc.c  */
7897 < #line 3561 "ircd_parser.y"
6252 >  case 552:
6253 > /* Line 1787 of yacc.c  */
6254 > #line 2645 "conf_parser.y"
6255      {
6256    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6257   }
6258      break;
6259  
6260 <  case 629:
6261 <
6262 < /* Line 1455 of yacc.c  */
7906 < #line 3564 "ircd_parser.y"
6260 >  case 553:
6261 > /* Line 1787 of yacc.c  */
6262 > #line 2648 "conf_parser.y"
6263      {
6264    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6265   }
6266      break;
6267  
6268 <  case 630:
6269 <
6270 < /* Line 1455 of yacc.c  */
7915 < #line 3567 "ircd_parser.y"
6268 >  case 554:
6269 > /* Line 1787 of yacc.c  */
6270 > #line 2651 "conf_parser.y"
6271      {
6272    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6273   }
6274      break;
6275  
6276 <  case 631:
6277 <
6278 < /* Line 1455 of yacc.c  */
7924 < #line 3572 "ircd_parser.y"
6276 >  case 555:
6277 > /* Line 1787 of yacc.c  */
6278 > #line 2656 "conf_parser.y"
6279      {
6280    ConfigFileEntry.oper_only_umodes = 0;
6281   }
6282      break;
6283  
6284 <  case 635:
6285 <
6286 < /* Line 1455 of yacc.c  */
7933 < #line 3578 "ircd_parser.y"
6284 >  case 559:
6285 > /* Line 1787 of yacc.c  */
6286 > #line 2662 "conf_parser.y"
6287      {
6288    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6289   }
6290      break;
6291  
6292 <  case 636:
6293 <
6294 < /* Line 1455 of yacc.c  */
7942 < #line 3581 "ircd_parser.y"
6292 >  case 560:
6293 > /* Line 1787 of yacc.c  */
6294 > #line 2665 "conf_parser.y"
6295      {
6296    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6297   }
6298      break;
6299  
6300 <  case 637:
6301 <
6302 < /* Line 1455 of yacc.c  */
7951 < #line 3584 "ircd_parser.y"
6300 >  case 561:
6301 > /* Line 1787 of yacc.c  */
6302 > #line 2668 "conf_parser.y"
6303      {
6304    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6305   }
6306      break;
6307  
6308 <  case 638:
6309 <
6310 < /* Line 1455 of yacc.c  */
7960 < #line 3587 "ircd_parser.y"
6308 >  case 562:
6309 > /* Line 1787 of yacc.c  */
6310 > #line 2671 "conf_parser.y"
6311      {
6312    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6313   }
6314      break;
6315  
6316 <  case 639:
6317 <
6318 < /* Line 1455 of yacc.c  */
7969 < #line 3590 "ircd_parser.y"
6316 >  case 563:
6317 > /* Line 1787 of yacc.c  */
6318 > #line 2674 "conf_parser.y"
6319      {
6320    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6321   }
6322      break;
6323  
6324 <  case 640:
6325 <
6326 < /* Line 1455 of yacc.c  */
7978 < #line 3593 "ircd_parser.y"
6324 >  case 564:
6325 > /* Line 1787 of yacc.c  */
6326 > #line 2677 "conf_parser.y"
6327      {
6328    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6329   }
6330      break;
6331  
6332 <  case 641:
6333 <
6334 < /* Line 1455 of yacc.c  */
7987 < #line 3596 "ircd_parser.y"
6332 >  case 565:
6333 > /* Line 1787 of yacc.c  */
6334 > #line 2680 "conf_parser.y"
6335      {
6336    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6337   }
6338      break;
6339  
6340 <  case 642:
6340 >  case 566:
6341 > /* Line 1787 of yacc.c  */
6342 > #line 2683 "conf_parser.y"
6343 >    {
6344 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6345 > }
6346 >    break;
6347  
6348 < /* Line 1455 of yacc.c  */
6349 < #line 3599 "ircd_parser.y"
6348 >  case 567:
6349 > /* Line 1787 of yacc.c  */
6350 > #line 2686 "conf_parser.y"
6351      {
6352    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6353   }
6354      break;
6355  
6356 <  case 643:
6357 <
6358 < /* Line 1455 of yacc.c  */
8005 < #line 3602 "ircd_parser.y"
6356 >  case 568:
6357 > /* Line 1787 of yacc.c  */
6358 > #line 2689 "conf_parser.y"
6359      {
6360    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6361   }
6362      break;
6363  
6364 <  case 644:
6365 <
6366 < /* Line 1455 of yacc.c  */
8014 < #line 3605 "ircd_parser.y"
6364 >  case 569:
6365 > /* Line 1787 of yacc.c  */
6366 > #line 2692 "conf_parser.y"
6367      {
6368    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6369   }
6370      break;
6371  
6372 <  case 645:
6373 <
6374 < /* Line 1455 of yacc.c  */
8023 < #line 3608 "ircd_parser.y"
6372 >  case 570:
6373 > /* Line 1787 of yacc.c  */
6374 > #line 2695 "conf_parser.y"
6375      {
6376    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6377   }
6378      break;
6379  
6380 <  case 646:
6381 <
6382 < /* Line 1455 of yacc.c  */
8032 < #line 3611 "ircd_parser.y"
6380 >  case 571:
6381 > /* Line 1787 of yacc.c  */
6382 > #line 2698 "conf_parser.y"
6383      {
6384    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6385   }
6386      break;
6387  
6388 <  case 647:
6389 <
6390 < /* Line 1455 of yacc.c  */
8041 < #line 3614 "ircd_parser.y"
6388 >  case 572:
6389 > /* Line 1787 of yacc.c  */
6390 > #line 2701 "conf_parser.y"
6391      {
6392    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6393   }
6394      break;
6395  
6396 <  case 648:
6397 <
6398 < /* Line 1455 of yacc.c  */
8050 < #line 3617 "ircd_parser.y"
6396 >  case 573:
6397 > /* Line 1787 of yacc.c  */
6398 > #line 2704 "conf_parser.y"
6399      {
6400    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6401   }
6402      break;
6403  
6404 <  case 649:
6405 <
6406 < /* Line 1455 of yacc.c  */
8059 < #line 3620 "ircd_parser.y"
6404 >  case 574:
6405 > /* Line 1787 of yacc.c  */
6406 > #line 2707 "conf_parser.y"
6407      {
6408    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6409   }
6410      break;
6411  
6412 <  case 650:
6413 <
6414 < /* Line 1455 of yacc.c  */
8068 < #line 3623 "ircd_parser.y"
6412 >  case 575:
6413 > /* Line 1787 of yacc.c  */
6414 > #line 2710 "conf_parser.y"
6415      {
6416    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6417   }
6418      break;
6419  
6420 <  case 651:
6421 <
6422 < /* Line 1455 of yacc.c  */
8077 < #line 3626 "ircd_parser.y"
6420 >  case 576:
6421 > /* Line 1787 of yacc.c  */
6422 > #line 2713 "conf_parser.y"
6423      {
6424    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6425   }
6426      break;
6427  
6428 <  case 652:
6429 <
6430 < /* Line 1455 of yacc.c  */
8086 < #line 3629 "ircd_parser.y"
6428 >  case 577:
6429 > /* Line 1787 of yacc.c  */
6430 > #line 2716 "conf_parser.y"
6431      {
6432    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6433   }
6434      break;
6435  
6436 <  case 653:
6437 <
6438 < /* Line 1455 of yacc.c  */
8095 < #line 3632 "ircd_parser.y"
6436 >  case 578:
6437 > /* Line 1787 of yacc.c  */
6438 > #line 2719 "conf_parser.y"
6439      {
6440    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6441   }
6442      break;
6443  
6444 <  case 654:
6445 <
6446 < /* Line 1455 of yacc.c  */
8104 < #line 3637 "ircd_parser.y"
8105 <    {
8106 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
8107 < }
8108 <    break;
8109 <
8110 <  case 655:
8111 <
8112 < /* Line 1455 of yacc.c  */
8113 < #line 3642 "ircd_parser.y"
8114 <    {
8115 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
8116 < }
8117 <    break;
8118 <
8119 <  case 656:
8120 <
8121 < /* Line 1455 of yacc.c  */
8122 < #line 3647 "ircd_parser.y"
8123 <    {
8124 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
8125 < }
8126 <    break;
8127 <
8128 <  case 657:
8129 <
8130 < /* Line 1455 of yacc.c  */
8131 < #line 3652 "ircd_parser.y"
8132 <    {
8133 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8134 < }
8135 <    break;
8136 <
8137 <  case 658:
8138 <
8139 < /* Line 1455 of yacc.c  */
8140 < #line 3657 "ircd_parser.y"
8141 <    {
8142 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8143 < }
8144 <    break;
8145 <
8146 <  case 659:
8147 <
8148 < /* Line 1455 of yacc.c  */
8149 < #line 3665 "ircd_parser.y"
8150 <    {
8151 <  if (conf_parser_ctx.pass == 2)
8152 <  {
8153 <    yy_conf = make_conf_item(GDENY_TYPE);
8154 <    yy_aconf = map_to_conf(yy_conf);
8155 <  }
8156 < }
8157 <    break;
8158 <
8159 <  case 660:
8160 <
8161 < /* Line 1455 of yacc.c  */
8162 < #line 3672 "ircd_parser.y"
8163 <    {
8164 <  if (conf_parser_ctx.pass == 2)
8165 <  {
8166 <    /*
8167 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8168 <     * end we will have one extra, so we should free it.
8169 <     */
8170 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8171 <    {
8172 <      delete_conf_item(yy_conf);
8173 <      yy_conf = NULL;
8174 <      yy_aconf = NULL;
8175 <    }
8176 <  }
8177 < }
8178 <    break;
8179 <
8180 <  case 670:
8181 <
8182 < /* Line 1455 of yacc.c  */
8183 < #line 3698 "ircd_parser.y"
8184 <    {
8185 <  if (conf_parser_ctx.pass == 2)
8186 <    ConfigFileEntry.glines = yylval.number;
8187 < }
8188 <    break;
8189 <
8190 <  case 671:
8191 <
8192 < /* Line 1455 of yacc.c  */
8193 < #line 3704 "ircd_parser.y"
8194 <    {
8195 <  if (conf_parser_ctx.pass == 2)
8196 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8197 < }
8198 <    break;
8199 <
8200 <  case 672:
8201 <
8202 < /* Line 1455 of yacc.c  */
8203 < #line 3710 "ircd_parser.y"
8204 <    {
8205 <  if (conf_parser_ctx.pass == 2)
8206 <    ConfigFileEntry.gline_logging = 0;
8207 < }
8208 <    break;
8209 <
8210 <  case 676:
8211 <
8212 < /* Line 1455 of yacc.c  */
8213 < #line 3716 "ircd_parser.y"
8214 <    {
8215 <  if (conf_parser_ctx.pass == 2)
8216 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8217 < }
8218 <    break;
8219 <
8220 <  case 677:
8221 <
8222 < /* Line 1455 of yacc.c  */
8223 < #line 3720 "ircd_parser.y"
8224 <    {
8225 <  if (conf_parser_ctx.pass == 2)
8226 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8227 < }
8228 <    break;
8229 <
8230 <  case 678:
8231 <
8232 < /* Line 1455 of yacc.c  */
8233 < #line 3726 "ircd_parser.y"
8234 <    {
8235 <  if (conf_parser_ctx.pass == 2)
8236 <  {
8237 <    struct split_nuh_item nuh;
8238 <
8239 <    nuh.nuhmask  = yylval.string;
8240 <    nuh.nickptr  = NULL;
8241 <    nuh.userptr  = userbuf;
8242 <    nuh.hostptr  = hostbuf;
8243 <
8244 <    nuh.nicksize = 0;
8245 <    nuh.usersize = sizeof(userbuf);
8246 <    nuh.hostsize = sizeof(hostbuf);
8247 <
8248 <    split_nuh(&nuh);
8249 <
8250 <    if (yy_aconf->user == NULL)
8251 <    {
8252 <      DupString(yy_aconf->user, userbuf);
8253 <      DupString(yy_aconf->host, hostbuf);
8254 <    }
8255 <    else
8256 <    {
8257 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8258 <
8259 <      DupString(yy_tmp->user, userbuf);
8260 <      DupString(yy_tmp->host, hostbuf);
8261 <
8262 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8263 <    }
8264 <  }
8265 < }
8266 <    break;
8267 <
8268 <  case 679:
8269 <
8270 < /* Line 1455 of yacc.c  */
8271 < #line 3760 "ircd_parser.y"
8272 <    {
8273 <  if (conf_parser_ctx.pass == 2)  
8274 <  {
8275 <    MyFree(yy_conf->name);
8276 <    DupString(yy_conf->name, yylval.string);
8277 <  }
8278 < }
8279 <    break;
8280 <
8281 <  case 680:
8282 <
8283 < /* Line 1455 of yacc.c  */
8284 < #line 3769 "ircd_parser.y"
6444 >  case 579:
6445 > /* Line 1787 of yacc.c  */
6446 > #line 2722 "conf_parser.y"
6447      {
6448 <  if (conf_parser_ctx.pass == 2)
8287 <    yy_aconf->flags = 0;
6448 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6449   }
6450      break;
6451  
6452 <  case 681:
6453 <
6454 < /* Line 1455 of yacc.c  */
8294 < #line 3773 "ircd_parser.y"
8295 <    {
8296 <  if (conf_parser_ctx.pass == 2)
8297 <  {
8298 <    struct CollectItem *yy_tmp = NULL;
8299 <    dlink_node *ptr, *next_ptr;
8300 <
8301 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6452 >  case 580:
6453 > /* Line 1787 of yacc.c  */
6454 > #line 2727 "conf_parser.y"
6455      {
6456 <      struct AccessItem *new_aconf;
8304 <      struct ConfItem *new_conf;
8305 <
8306 <      yy_tmp = ptr->data;
8307 <      new_conf = make_conf_item(GDENY_TYPE);
8308 <      new_aconf = map_to_conf(new_conf);
8309 <
8310 <      new_aconf->flags = yy_aconf->flags;
8311 <
8312 <      if (yy_conf->name != NULL)
8313 <        DupString(new_conf->name, yy_conf->name);
8314 <      else
8315 <        DupString(new_conf->name, "*");
8316 <      if (yy_aconf->user != NULL)
8317 <         DupString(new_aconf->user, yy_tmp->user);
8318 <      else  
8319 <        DupString(new_aconf->user, "*");
8320 <      if (yy_aconf->host != NULL)
8321 <        DupString(new_aconf->host, yy_tmp->host);
8322 <      else
8323 <        DupString(new_aconf->host, "*");
8324 <
8325 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8326 <    }
8327 <
8328 <    /*
8329 <     * In case someone has fed us with more than one action= after user/name
8330 <     * which would leak memory  -Michael
8331 <     */
8332 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8333 <      delete_conf_item(yy_conf);
8334 <
8335 <    yy_conf = make_conf_item(GDENY_TYPE);
8336 <    yy_aconf = map_to_conf(yy_conf);
8337 <  }
6456 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6457   }
6458      break;
6459  
6460 <  case 684:
6461 <
6462 < /* Line 1455 of yacc.c  */
8344 < #line 3820 "ircd_parser.y"
6460 >  case 581:
6461 > /* Line 1787 of yacc.c  */
6462 > #line 2732 "conf_parser.y"
6463      {
6464 <  if (conf_parser_ctx.pass == 2)
8347 <    yy_aconf->flags |= GDENY_REJECT;
6464 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6465   }
6466      break;
6467  
6468 <  case 685:
6469 <
6470 < /* Line 1455 of yacc.c  */
8354 < #line 3824 "ircd_parser.y"
6468 >  case 582:
6469 > /* Line 1787 of yacc.c  */
6470 > #line 2737 "conf_parser.y"
6471      {
6472 <  if (conf_parser_ctx.pass == 2)
8357 <    yy_aconf->flags |= GDENY_BLOCK;
6472 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6473   }
6474      break;
6475  
6476 <  case 708:
6477 <
6478 < /* Line 1455 of yacc.c  */
8364 < #line 3848 "ircd_parser.y"
6476 >  case 599:
6477 > /* Line 1787 of yacc.c  */
6478 > #line 2760 "conf_parser.y"
6479      {
6480    ConfigChannel.disable_fake_channels = yylval.number;
6481   }
6482      break;
6483  
6484 <  case 709:
6485 <
6486 < /* Line 1455 of yacc.c  */
8373 < #line 3853 "ircd_parser.y"
8374 <    {
8375 <  ConfigChannel.restrict_channels = yylval.number;
8376 < }
8377 <    break;
8378 <
8379 <  case 710:
8380 <
8381 < /* Line 1455 of yacc.c  */
8382 < #line 3858 "ircd_parser.y"
8383 <    {
8384 <  ConfigChannel.disable_local_channels = yylval.number;
8385 < }
8386 <    break;
8387 <
8388 <  case 711:
8389 <
8390 < /* Line 1455 of yacc.c  */
8391 < #line 3863 "ircd_parser.y"
8392 <    {
8393 <  ConfigChannel.use_except = yylval.number;
8394 < }
8395 <    break;
8396 <
8397 <  case 712:
8398 <
8399 < /* Line 1455 of yacc.c  */
8400 < #line 3868 "ircd_parser.y"
8401 <    {
8402 <  ConfigChannel.use_invex = yylval.number;
8403 < }
8404 <    break;
8405 <
8406 <  case 713:
8407 <
8408 < /* Line 1455 of yacc.c  */
8409 < #line 3873 "ircd_parser.y"
8410 <    {
8411 <  ConfigChannel.use_knock = yylval.number;
8412 < }
8413 <    break;
8414 <
8415 <  case 714:
8416 <
8417 < /* Line 1455 of yacc.c  */
8418 < #line 3878 "ircd_parser.y"
6484 >  case 600:
6485 > /* Line 1787 of yacc.c  */
6486 > #line 2765 "conf_parser.y"
6487      {
6488    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6489   }
6490      break;
6491  
6492 <  case 715:
6493 <
6494 < /* Line 1455 of yacc.c  */
8427 < #line 3883 "ircd_parser.y"
6492 >  case 601:
6493 > /* Line 1787 of yacc.c  */
6494 > #line 2770 "conf_parser.y"
6495      {
6496    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6497   }
6498      break;
6499  
6500 <  case 716:
6501 <
6502 < /* Line 1455 of yacc.c  */
8436 < #line 3888 "ircd_parser.y"
6500 >  case 602:
6501 > /* Line 1787 of yacc.c  */
6502 > #line 2775 "conf_parser.y"
6503      {
6504    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6505   }
6506      break;
6507  
6508 <  case 717:
6509 <
6510 < /* Line 1455 of yacc.c  */
8445 < #line 3893 "ircd_parser.y"
6508 >  case 603:
6509 > /* Line 1787 of yacc.c  */
6510 > #line 2780 "conf_parser.y"
6511      {
6512 <  ConfigChannel.quiet_on_ban = yylval.number;
6512 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6513   }
6514      break;
6515  
6516 <  case 718:
6517 <
6518 < /* Line 1455 of yacc.c  */
8454 < #line 3898 "ircd_parser.y"
6516 >  case 604:
6517 > /* Line 1787 of yacc.c  */
6518 > #line 2785 "conf_parser.y"
6519      {
6520    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6521   }
6522      break;
6523  
6524 <  case 719:
6525 <
6526 < /* Line 1455 of yacc.c  */
8463 < #line 3903 "ircd_parser.y"
6524 >  case 605:
6525 > /* Line 1787 of yacc.c  */
6526 > #line 2790 "conf_parser.y"
6527      {
6528    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6529   }
6530      break;
6531  
6532 <  case 720:
6533 <
6534 < /* Line 1455 of yacc.c  */
8472 < #line 3908 "ircd_parser.y"
6532 >  case 606:
6533 > /* Line 1787 of yacc.c  */
6534 > #line 2795 "conf_parser.y"
6535      {
6536    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6537   }
6538      break;
6539  
6540 <  case 721:
6541 <
6542 < /* Line 1455 of yacc.c  */
8481 < #line 3913 "ircd_parser.y"
6540 >  case 607:
6541 > /* Line 1787 of yacc.c  */
6542 > #line 2800 "conf_parser.y"
6543      {
6544    ConfigChannel.no_create_on_split = yylval.number;
6545   }
6546      break;
6547  
6548 <  case 722:
6549 <
6550 < /* Line 1455 of yacc.c  */
8490 < #line 3918 "ircd_parser.y"
6548 >  case 608:
6549 > /* Line 1787 of yacc.c  */
6550 > #line 2805 "conf_parser.y"
6551      {
6552    ConfigChannel.no_join_on_split = yylval.number;
6553   }
6554      break;
6555  
6556 <  case 723:
6557 <
6558 < /* Line 1455 of yacc.c  */
8499 < #line 3923 "ircd_parser.y"
8500 <    {
8501 <  ConfigChannel.burst_topicwho = yylval.number;
8502 < }
8503 <    break;
8504 <
8505 <  case 724:
8506 <
8507 < /* Line 1455 of yacc.c  */
8508 < #line 3928 "ircd_parser.y"
6556 >  case 609:
6557 > /* Line 1787 of yacc.c  */
6558 > #line 2810 "conf_parser.y"
6559      {
6560    GlobalSetOptions.joinfloodcount = yylval.number;
6561   }
6562      break;
6563  
6564 <  case 725:
6565 <
6566 < /* Line 1455 of yacc.c  */
8517 < #line 3933 "ircd_parser.y"
6564 >  case 610:
6565 > /* Line 1787 of yacc.c  */
6566 > #line 2815 "conf_parser.y"
6567      {
6568    GlobalSetOptions.joinfloodtime = yylval.number;
6569   }
6570      break;
6571  
6572 <  case 737:
6573 <
6574 < /* Line 1455 of yacc.c  */
8526 < #line 3952 "ircd_parser.y"
6572 >  case 622:
6573 > /* Line 1787 of yacc.c  */
6574 > #line 2834 "conf_parser.y"
6575      {
6576    if (conf_parser_ctx.pass == 2)
6577      ConfigServerHide.flatten_links = yylval.number;
6578   }
6579      break;
6580  
6581 <  case 738:
6582 <
6583 < /* Line 1455 of yacc.c  */
8536 < #line 3958 "ircd_parser.y"
6581 >  case 623:
6582 > /* Line 1787 of yacc.c  */
6583 > #line 2840 "conf_parser.y"
6584      {
6585    if (conf_parser_ctx.pass == 2)
6586      ConfigServerHide.hide_servers = yylval.number;
6587   }
6588      break;
6589  
6590 <  case 739:
6590 >  case 624:
6591 > /* Line 1787 of yacc.c  */
6592 > #line 2846 "conf_parser.y"
6593 >    {
6594 >  if (conf_parser_ctx.pass == 2)
6595 >    ConfigServerHide.hide_services = yylval.number;
6596 > }
6597 >    break;
6598  
6599 < /* Line 1455 of yacc.c  */
6600 < #line 3964 "ircd_parser.y"
6599 >  case 625:
6600 > /* Line 1787 of yacc.c  */
6601 > #line 2852 "conf_parser.y"
6602      {
6603    if (conf_parser_ctx.pass == 2)
6604    {
6605      MyFree(ConfigServerHide.hidden_name);
6606 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6606 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6607    }
6608   }
6609      break;
6610  
6611 <  case 740:
6612 <
6613 < /* Line 1455 of yacc.c  */
8559 < #line 3973 "ircd_parser.y"
6611 >  case 626:
6612 > /* Line 1787 of yacc.c  */
6613 > #line 2861 "conf_parser.y"
6614      {
6615    if (conf_parser_ctx.pass == 2)
6616    {
# Line 8571 | Line 6625 | yyreduce:
6625   }
6626      break;
6627  
6628 <  case 741:
6629 <
6630 < /* Line 1455 of yacc.c  */
8577 < #line 3987 "ircd_parser.y"
6628 >  case 627:
6629 > /* Line 1787 of yacc.c  */
6630 > #line 2875 "conf_parser.y"
6631      {
6632    if (conf_parser_ctx.pass == 2)
6633      ConfigServerHide.hidden = yylval.number;
6634   }
6635      break;
6636  
6637 <  case 742:
6638 <
6639 < /* Line 1455 of yacc.c  */
8587 < #line 3993 "ircd_parser.y"
8588 <    {
8589 <  if (conf_parser_ctx.pass == 2)
8590 <    ConfigServerHide.disable_hidden = yylval.number;
8591 < }
8592 <    break;
8593 <
8594 <  case 743:
8595 <
8596 < /* Line 1455 of yacc.c  */
8597 < #line 3999 "ircd_parser.y"
6637 >  case 628:
6638 > /* Line 1787 of yacc.c  */
6639 > #line 2881 "conf_parser.y"
6640      {
6641    if (conf_parser_ctx.pass == 2)
6642      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8602 | Line 6644 | yyreduce:
6644      break;
6645  
6646  
6647 <
6648 < /* Line 1455 of yacc.c  */
8607 < #line 8608 "ircd_parser.c"
6647 > /* Line 1787 of yacc.c  */
6648 > #line 6649 "conf_parser.c"
6649        default: break;
6650      }
6651 +  /* User semantic actions sometimes alter yychar, and that requires
6652 +     that yytoken be updated with the new translation.  We take the
6653 +     approach of translating immediately before every use of yytoken.
6654 +     One alternative is translating here after every semantic action,
6655 +     but that translation would be missed if the semantic action invokes
6656 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6657 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6658 +     incorrect destructor might then be invoked immediately.  In the
6659 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6660 +     to an incorrect destructor call or verbose syntax error message
6661 +     before the lookahead is translated.  */
6662    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6663  
6664    YYPOPSTACK (yylen);
# Line 8634 | Line 6686 | yyreduce:
6686   | yyerrlab -- here on detecting error |
6687   `------------------------------------*/
6688   yyerrlab:
6689 +  /* Make sure we have latest lookahead translation.  See comments at
6690 +     user semantic actions for why this is necessary.  */
6691 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6692 +
6693    /* If not already recovering from an error, report this error.  */
6694    if (!yyerrstatus)
6695      {
# Line 8641 | Line 6697 | yyerrlab:
6697   #if ! YYERROR_VERBOSE
6698        yyerror (YY_("syntax error"));
6699   #else
6700 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6701 +                                        yyssp, yytoken)
6702        {
6703 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6704 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6705 <          {
6706 <            YYSIZE_T yyalloc = 2 * yysize;
6707 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6708 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6709 <            if (yymsg != yymsgbuf)
6710 <              YYSTACK_FREE (yymsg);
6711 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6712 <            if (yymsg)
6713 <              yymsg_alloc = yyalloc;
6714 <            else
6715 <              {
6716 <                yymsg = yymsgbuf;
6717 <                yymsg_alloc = sizeof yymsgbuf;
6718 <              }
6719 <          }
6720 <
6721 <        if (0 < yysize && yysize <= yymsg_alloc)
6722 <          {
6723 <            (void) yysyntax_error (yymsg, yystate, yychar);
6724 <            yyerror (yymsg);
6725 <          }
6726 <        else
6727 <          {
8670 <            yyerror (YY_("syntax error"));
8671 <            if (yysize != 0)
8672 <              goto yyexhaustedlab;
8673 <          }
6703 >        char const *yymsgp = YY_("syntax error");
6704 >        int yysyntax_error_status;
6705 >        yysyntax_error_status = YYSYNTAX_ERROR;
6706 >        if (yysyntax_error_status == 0)
6707 >          yymsgp = yymsg;
6708 >        else if (yysyntax_error_status == 1)
6709 >          {
6710 >            if (yymsg != yymsgbuf)
6711 >              YYSTACK_FREE (yymsg);
6712 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6713 >            if (!yymsg)
6714 >              {
6715 >                yymsg = yymsgbuf;
6716 >                yymsg_alloc = sizeof yymsgbuf;
6717 >                yysyntax_error_status = 2;
6718 >              }
6719 >            else
6720 >              {
6721 >                yysyntax_error_status = YYSYNTAX_ERROR;
6722 >                yymsgp = yymsg;
6723 >              }
6724 >          }
6725 >        yyerror (yymsgp);
6726 >        if (yysyntax_error_status == 2)
6727 >          goto yyexhaustedlab;
6728        }
6729 + # undef YYSYNTAX_ERROR
6730   #endif
6731      }
6732  
# Line 8730 | Line 6785 | yyerrlab1:
6785    for (;;)
6786      {
6787        yyn = yypact[yystate];
6788 <      if (yyn != YYPACT_NINF)
6788 >      if (!yypact_value_is_default (yyn))
6789          {
6790            yyn += YYTERROR;
6791            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8753 | Line 6808 | yyerrlab1:
6808        YY_STACK_PRINT (yyss, yyssp);
6809      }
6810  
6811 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6812    *++yyvsp = yylval;
6813 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6814  
6815  
6816    /* Shift the error token.  */
# Line 8777 | Line 6834 | yyabortlab:
6834    yyresult = 1;
6835    goto yyreturn;
6836  
6837 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6837 > #if !defined yyoverflow || YYERROR_VERBOSE
6838   /*-------------------------------------------------.
6839   | yyexhaustedlab -- memory exhaustion comes here.  |
6840   `-------------------------------------------------*/
# Line 8789 | Line 6846 | yyexhaustedlab:
6846  
6847   yyreturn:
6848    if (yychar != YYEMPTY)
6849 <     yydestruct ("Cleanup: discarding lookahead",
6850 <                 yytoken, &yylval);
6849 >    {
6850 >      /* Make sure we have latest lookahead translation.  See comments at
6851 >         user semantic actions for why this is necessary.  */
6852 >      yytoken = YYTRANSLATE (yychar);
6853 >      yydestruct ("Cleanup: discarding lookahead",
6854 >                  yytoken, &yylval);
6855 >    }
6856    /* Do not reclaim the symbols of the rule which action triggered
6857       this YYABORT or YYACCEPT.  */
6858    YYPOPSTACK (yylen);
# Line 8814 | Line 6876 | yyreturn:
6876   }
6877  
6878  
8817

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (property svn:keywords), Revision 978 by michael, Sun Aug 9 09:47:58 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1946 by michael, Sun May 5 10:21:40 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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