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

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (file contents), Revision 967 by michael, Sun Aug 2 18:05:28 2009 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 8659 by michael, Sun Nov 18 12:53:34 2018 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3 < /* A Bison parser, made by GNU Bison 2.4.1.  */
3 > /* Bison implementation for Yacc-like parsers in C
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6  
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5  
6      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7   Free Software Foundation, Inc.
8  
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 28 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "3.0.4"
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 + #line 28 "conf_parser.y" /* yacc.c:339  */
66  
70 /* Line 189 of yacc.c  */
71 #line 25 "ircd_parser.y"
72
73
74 #define YY_NO_UNPUT
75 #include <sys/types.h>
76 #include <string.h>
67  
68 + #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
80 #include "tools.h"
71   #include "list.h"
72 < #include "s_conf.h"
72 > #include "parse.h"
73 > #include "conf.h"
74 > #include "conf_class.h"
75 > #include "conf_cluster.h"
76 > #include "conf_gecos.h"
77 > #include "conf_pseudo.h"
78 > #include "conf_resv.h"
79 > #include "conf_service.h"
80 > #include "conf_shared.h"
81   #include "event.h"
82 < #include "s_log.h"
83 < #include "client.h"     /* for UMODE_ALL only */
86 < #include "pcre.h"
82 > #include "id.h"
83 > #include "log.h"
84   #include "irc_string.h"
88 #include "irc_getaddrinfo.h"
89 #include "sprintf_irc.h"
85   #include "memory.h"
86   #include "modules.h"
87 < #include "s_serv.h"
87 > #include "server.h"
88   #include "hostmask.h"
94 #include "send.h"
89   #include "listener.h"
90 < #include "resv.h"
91 < #include "numeric.h"
98 < #include "s_user.h"
99 <
100 < #ifdef HAVE_LIBCRYPTO
101 < #include <openssl/rsa.h>
102 < #include <openssl/bio.h>
103 < #include <openssl/pem.h>
104 < #endif
90 > #include "user.h"
91 > #include "motd.h"
92  
93 < 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;
93 > int yylex(void);
94  
95 < struct CollectItem
95 > static struct
96   {
97 <  dlink_node node;
98 <  char *name;
99 <  char *user;
100 <  char *host;
101 <  char *passwd;
102 <  int  port;
103 <  int  flags;
104 < #ifdef HAVE_LIBCRYPTO
105 <  char *rsa_public_key_file;
106 <  RSA *rsa_public_key;
107 < #endif
108 < };
97 >  struct
98 >  {
99 >    dlink_list list;
100 >  } mask,
101 >    leaf,
102 >    hub;
103 >
104 >  struct
105 >  {
106 >    char buf[IRCD_BUFSIZE];
107 >  } name,
108 >    nick,
109 >    user,
110 >    host,
111 >    addr,
112 >    bind,
113 >    file,
114 >    ciph,
115 >    cert,
116 >    rpass,
117 >    spass,
118 >    whois,
119 >    class,
120 >    target,
121 >    prepend,
122 >    command;
123 >
124 >  struct
125 >  {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip_local,
135 >    max_perip_global,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_sendq,
141 >    max_recvq,
142 >    max_channels,
143 >    cidr_bitlen_ipv4,
144 >    cidr_bitlen_ipv6,
145 >    number_per_cidr;
146 > } block_state;
147  
148   static void
149 < free_collect_item(struct CollectItem *item)
149 > reset_block_state(void)
150   {
151 <  MyFree(item->name);
148 <  MyFree(item->user);
149 <  MyFree(item->host);
150 <  MyFree(item->passwd);
151 < #ifdef HAVE_LIBCRYPTO
152 <  MyFree(item->rsa_public_key_file);
153 < #endif
154 <  MyFree(item);
155 < }
151 >  dlink_node *node = NULL, *node_next = NULL;
152  
153 < static void
154 < unhook_hub_leaf_confs(void)
155 < {
156 <  dlink_node *ptr;
157 <  dlink_node *next_ptr;
158 <  struct CollectItem *yy_hconf;
163 <  struct CollectItem *yy_lconf;
153 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154 >  {
155 >    xfree(node->data);
156 >    dlinkDelete(node, &block_state.mask.list);
157 >    free_dlink_node(node);
158 >  }
159  
160 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
160 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161    {
162 <    yy_hconf = ptr->data;
163 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
164 <    free_collect_item(yy_hconf);
162 >    xfree(node->data);
163 >    dlinkDelete(node, &block_state.leaf.list);
164 >    free_dlink_node(node);
165    }
166  
167 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
167 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168    {
169 <    yy_lconf = ptr->data;
170 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
171 <    free_collect_item(yy_lconf);
169 >    xfree(node->data);
170 >    dlinkDelete(node, &block_state.hub.list);
171 >    free_dlink_node(node);
172    }
178 }
173  
174 +  memset(&block_state, 0, sizeof(block_state));
175 + }
176  
177  
178 < /* Line 189 of yacc.c  */
183 < #line 184 "ircd_parser.c"
178 > #line 179 "conf_parser.c" /* yacc.c:339  */
179  
180 < /* Enabling traces.  */
181 < #ifndef YYDEBUG
182 < # define YYDEBUG 0
183 < #endif
180 > # ifndef YY_NULLPTR
181 > #  if defined __cplusplus && 201103L <= __cplusplus
182 > #   define YY_NULLPTR nullptr
183 > #  else
184 > #   define YY_NULLPTR 0
185 > #  endif
186 > # endif
187  
188   /* Enabling verbose error messages.  */
189   #ifdef YYERROR_VERBOSE
# Line 195 | Line 193 | unhook_hub_leaf_confs(void)
193   # define YYERROR_VERBOSE 0
194   #endif
195  
196 < /* Enabling the token table.  */
197 < #ifndef YYTOKEN_TABLE
198 < # define YYTOKEN_TABLE 0
196 > /* In a future release of Bison, this section will be replaced
197 >   by #include "y.tab.h".  */
198 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
199 > # define YY_YY_CONF_PARSER_H_INCLUDED
200 > /* Debug traces.  */
201 > #ifndef YYDEBUG
202 > # define YYDEBUG 0
203 > #endif
204 > #if YYDEBUG
205 > extern int yydebug;
206   #endif
207  
208 <
204 < /* Tokens.  */
208 > /* Token type.  */
209   #ifndef YYTOKENTYPE
210   # define YYTOKENTYPE
211 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
212 <      know about them.  */
213 <   enum yytokentype {
214 <     ACCEPT_PASSWORD = 258,
215 <     ACTION = 259,
216 <     ADMIN = 260,
217 <     AFTYPE = 261,
218 <     T_ALLOW = 262,
219 <     ANTI_NICK_FLOOD = 263,
220 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
221 <     AUTOCONN = 265,
222 <     T_BLOCK = 266,
223 <     BURST_AWAY = 267,
224 <     BURST_TOPICWHO = 268,
225 <     BYTES = 269,
226 <     KBYTES = 270,
227 <     MBYTES = 271,
228 <     GBYTES = 272,
229 <     TBYTES = 273,
230 <     CALLER_ID_WAIT = 274,
231 <     CAN_FLOOD = 275,
232 <     CAN_IDLE = 276,
233 <     CHANNEL = 277,
234 <     CIDR_BITLEN_IPV4 = 278,
235 <     CIDR_BITLEN_IPV6 = 279,
236 <     CIPHER_PREFERENCE = 280,
237 <     CLASS = 281,
238 <     COMPRESSED = 282,
239 <     COMPRESSION_LEVEL = 283,
240 <     CONNECT = 284,
241 <     CONNECTFREQ = 285,
242 <     CRYPTLINK = 286,
243 <     DEFAULT_CIPHER_PREFERENCE = 287,
244 <     DEFAULT_FLOODCOUNT = 288,
245 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
246 <     DEFAULT_SPLIT_USER_COUNT = 290,
247 <     DENY = 291,
248 <     DESCRIPTION = 292,
249 <     DIE = 293,
250 <     DISABLE_AUTH = 294,
251 <     DISABLE_FAKE_CHANNELS = 295,
252 <     DISABLE_HIDDEN = 296,
253 <     DISABLE_LOCAL_CHANNELS = 297,
254 <     DISABLE_REMOTE_COMMANDS = 298,
255 <     DOT_IN_IP6_ADDR = 299,
256 <     DOTS_IN_IDENT = 300,
257 <     DURATION = 301,
258 <     EGDPOOL_PATH = 302,
259 <     EMAIL = 303,
260 <     ENABLE = 304,
261 <     ENCRYPTED = 305,
262 <     EXCEED_LIMIT = 306,
263 <     EXEMPT = 307,
264 <     FAILED_OPER_NOTICE = 308,
265 <     FAKENAME = 309,
266 <     IRCD_FLAGS = 310,
267 <     FLATTEN_LINKS = 311,
268 <     FFAILED_OPERLOG = 312,
269 <     FKILLLOG = 313,
270 <     FKLINELOG = 314,
271 <     FGLINELOG = 315,
272 <     FIOERRLOG = 316,
273 <     FOPERLOG = 317,
274 <     FOPERSPYLOG = 318,
275 <     FUSERLOG = 319,
276 <     GECOS = 320,
277 <     GENERAL = 321,
278 <     GLINE = 322,
279 <     GLINES = 323,
280 <     GLINE_EXEMPT = 324,
281 <     GLINE_LOG = 325,
282 <     GLINE_TIME = 326,
283 <     GLINE_MIN_CIDR = 327,
284 <     GLINE_MIN_CIDR6 = 328,
285 <     GLOBAL_KILL = 329,
286 <     IRCD_AUTH = 330,
287 <     NEED_IDENT = 331,
288 <     HAVENT_READ_CONF = 332,
289 <     HIDDEN = 333,
290 <     HIDDEN_ADMIN = 334,
291 <     HIDDEN_NAME = 335,
292 <     HIDDEN_OPER = 336,
293 <     HIDE_SERVER_IPS = 337,
294 <     HIDE_SERVERS = 338,
295 <     HIDE_SPOOF_IPS = 339,
296 <     HOST = 340,
297 <     HUB = 341,
298 <     HUB_MASK = 342,
299 <     IDLETIME = 343,
300 <     IGNORE_BOGUS_TS = 344,
301 <     INVISIBLE_ON_CONNECT = 345,
302 <     IP = 346,
303 <     KILL = 347,
304 <     KILL_CHASE_TIME_LIMIT = 348,
305 <     KLINE = 349,
306 <     KLINE_EXEMPT = 350,
307 <     KLINE_REASON = 351,
308 <     KLINE_WITH_REASON = 352,
309 <     KNOCK_DELAY = 353,
310 <     KNOCK_DELAY_CHANNEL = 354,
311 <     LEAF_MASK = 355,
312 <     LINKS_DELAY = 356,
313 <     LISTEN = 357,
314 <     T_LOG = 358,
315 <     LOGGING = 359,
316 <     LOG_LEVEL = 360,
317 <     MAX_ACCEPT = 361,
318 <     MAX_BANS = 362,
319 <     MAX_CHANS_PER_USER = 363,
320 <     MAX_GLOBAL = 364,
321 <     MAX_IDENT = 365,
322 <     MAX_LOCAL = 366,
323 <     MAX_NICK_CHANGES = 367,
324 <     MAX_NICK_TIME = 368,
325 <     MAX_NUMBER = 369,
326 <     MAX_TARGETS = 370,
327 <     MAX_WATCH = 371,
328 <     MESSAGE_LOCALE = 372,
329 <     MIN_NONWILDCARD = 373,
330 <     MIN_NONWILDCARD_SIMPLE = 374,
331 <     MODULE = 375,
332 <     MODULES = 376,
333 <     NAME = 377,
334 <     NEED_PASSWORD = 378,
335 <     NETWORK_DESC = 379,
336 <     NETWORK_NAME = 380,
337 <     NICK = 381,
338 <     NICK_CHANGES = 382,
339 <     NO_CREATE_ON_SPLIT = 383,
340 <     NO_JOIN_ON_SPLIT = 384,
341 <     NO_OPER_FLOOD = 385,
342 <     NO_TILDE = 386,
343 <     NOT = 387,
344 <     NUMBER = 388,
345 <     NUMBER_PER_IDENT = 389,
346 <     NUMBER_PER_CIDR = 390,
347 <     NUMBER_PER_IP = 391,
348 <     NUMBER_PER_IP_GLOBAL = 392,
349 <     OPERATOR = 393,
350 <     OPERS_BYPASS_CALLERID = 394,
351 <     OPER_LOG = 395,
352 <     OPER_ONLY_UMODES = 396,
353 <     OPER_PASS_RESV = 397,
354 <     OPER_SPY_T = 398,
355 <     OPER_UMODES = 399,
356 <     JOIN_FLOOD_COUNT = 400,
357 <     JOIN_FLOOD_TIME = 401,
358 <     PACE_WAIT = 402,
359 <     PACE_WAIT_SIMPLE = 403,
360 <     PASSWORD = 404,
361 <     PATH = 405,
362 <     PING_COOKIE = 406,
363 <     PING_TIME = 407,
364 <     PING_WARNING = 408,
365 <     PORT = 409,
366 <     QSTRING = 410,
367 <     QUIET_ON_BAN = 411,
368 <     REASON = 412,
369 <     REDIRPORT = 413,
370 <     REDIRSERV = 414,
371 <     REGEX_T = 415,
372 <     REHASH = 416,
373 <     TREJECT_HOLD_TIME = 417,
374 <     REMOTE = 418,
375 <     REMOTEBAN = 419,
376 <     RESTRICT_CHANNELS = 420,
377 <     RESTRICTED = 421,
378 <     RSA_PRIVATE_KEY_FILE = 422,
379 <     RSA_PUBLIC_KEY_FILE = 423,
380 <     SSL_CERTIFICATE_FILE = 424,
381 <     T_SSL_CONNECTION_METHOD = 425,
382 <     T_SSLV3 = 426,
383 <     T_TLSV1 = 427,
384 <     RESV = 428,
385 <     RESV_EXEMPT = 429,
386 <     SECONDS = 430,
387 <     MINUTES = 431,
388 <     HOURS = 432,
389 <     DAYS = 433,
390 <     WEEKS = 434,
391 <     SENDQ = 435,
392 <     SEND_PASSWORD = 436,
393 <     SERVERHIDE = 437,
394 <     SERVERINFO = 438,
395 <     SERVLINK_PATH = 439,
396 <     IRCD_SID = 440,
397 <     TKLINE_EXPIRE_NOTICES = 441,
398 <     T_SHARED = 442,
399 <     T_CLUSTER = 443,
400 <     TYPE = 444,
401 <     SHORT_MOTD = 445,
402 <     SILENT = 446,
403 <     SPOOF = 447,
404 <     SPOOF_NOTICE = 448,
405 <     STATS_E_DISABLED = 449,
406 <     STATS_I_OPER_ONLY = 450,
407 <     STATS_K_OPER_ONLY = 451,
408 <     STATS_O_OPER_ONLY = 452,
409 <     STATS_P_OPER_ONLY = 453,
410 <     TBOOL = 454,
411 <     TMASKED = 455,
412 <     T_REJECT = 456,
413 <     TS_MAX_DELTA = 457,
414 <     TS_WARN_DELTA = 458,
415 <     TWODOTS = 459,
416 <     T_ALL = 460,
417 <     T_BOTS = 461,
418 <     T_SOFTCALLERID = 462,
419 <     T_CALLERID = 463,
420 <     T_CCONN = 464,
421 <     T_CCONN_FULL = 465,
422 <     T_CLIENT_FLOOD = 466,
423 <     T_DEAF = 467,
424 <     T_DEBUG = 468,
425 <     T_DRONE = 469,
426 <     T_EXTERNAL = 470,
427 <     T_FULL = 471,
428 <     T_INVISIBLE = 472,
429 <     T_IPV4 = 473,
430 <     T_IPV6 = 474,
431 <     T_LOCOPS = 475,
432 <     T_LOGPATH = 476,
433 <     T_L_CRIT = 477,
434 <     T_L_DEBUG = 478,
435 <     T_L_ERROR = 479,
436 <     T_L_INFO = 480,
437 <     T_L_NOTICE = 481,
438 <     T_L_TRACE = 482,
439 <     T_L_WARN = 483,
440 <     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
469 <   };
211 >  enum yytokentype
212 >  {
213 >    ACCEPT_PASSWORD = 258,
214 >    ADMIN = 259,
215 >    AFTYPE = 260,
216 >    ANTI_NICK_FLOOD = 261,
217 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >    AUTOCONN = 263,
219 >    AWAY_COUNT = 264,
220 >    AWAY_TIME = 265,
221 >    BYTES = 266,
222 >    KBYTES = 267,
223 >    MBYTES = 268,
224 >    CALLER_ID_WAIT = 269,
225 >    CAN_FLOOD = 270,
226 >    CHANNEL = 271,
227 >    CIDR_BITLEN_IPV4 = 272,
228 >    CIDR_BITLEN_IPV6 = 273,
229 >    CLASS = 274,
230 >    CLOSE = 275,
231 >    CONNECT = 276,
232 >    CONNECTFREQ = 277,
233 >    CYCLE_ON_HOST_CHANGE = 278,
234 >    DEFAULT_FLOODCOUNT = 279,
235 >    DEFAULT_FLOODTIME = 280,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
237 >    DEFAULT_JOIN_FLOOD_TIME = 282,
238 >    DEFAULT_MAX_CLIENTS = 283,
239 >    DENY = 284,
240 >    DESCRIPTION = 285,
241 >    DIE = 286,
242 >    DISABLE_AUTH = 287,
243 >    DISABLE_FAKE_CHANNELS = 288,
244 >    DISABLE_REMOTE_COMMANDS = 289,
245 >    DLINE_MIN_CIDR = 290,
246 >    DLINE_MIN_CIDR6 = 291,
247 >    DOTS_IN_IDENT = 292,
248 >    EMAIL = 293,
249 >    ENCRYPTED = 294,
250 >    EXCEED_LIMIT = 295,
251 >    EXEMPT = 296,
252 >    FAILED_OPER_NOTICE = 297,
253 >    FLATTEN_LINKS = 298,
254 >    FLATTEN_LINKS_DELAY = 299,
255 >    FLATTEN_LINKS_FILE = 300,
256 >    GECOS = 301,
257 >    GENERAL = 302,
258 >    HIDDEN = 303,
259 >    HIDDEN_NAME = 304,
260 >    HIDE_CHANS = 305,
261 >    HIDE_IDLE = 306,
262 >    HIDE_IDLE_FROM_OPERS = 307,
263 >    HIDE_SERVER_IPS = 308,
264 >    HIDE_SERVERS = 309,
265 >    HIDE_SERVICES = 310,
266 >    HOST = 311,
267 >    HUB = 312,
268 >    HUB_MASK = 313,
269 >    IGNORE_BOGUS_TS = 314,
270 >    INVISIBLE_ON_CONNECT = 315,
271 >    INVITE_CLIENT_COUNT = 316,
272 >    INVITE_CLIENT_TIME = 317,
273 >    INVITE_DELAY_CHANNEL = 318,
274 >    INVITE_EXPIRE_TIME = 319,
275 >    IP = 320,
276 >    IRCD_AUTH = 321,
277 >    IRCD_FLAGS = 322,
278 >    IRCD_SID = 323,
279 >    JOIN = 324,
280 >    KILL = 325,
281 >    KILL_CHASE_TIME_LIMIT = 326,
282 >    KLINE = 327,
283 >    KLINE_EXEMPT = 328,
284 >    KLINE_MIN_CIDR = 329,
285 >    KLINE_MIN_CIDR6 = 330,
286 >    KNOCK_CLIENT_COUNT = 331,
287 >    KNOCK_CLIENT_TIME = 332,
288 >    KNOCK_DELAY_CHANNEL = 333,
289 >    LEAF_MASK = 334,
290 >    LISTEN = 335,
291 >    MASK = 336,
292 >    MAX_ACCEPT = 337,
293 >    MAX_BANS = 338,
294 >    MAX_BANS_LARGE = 339,
295 >    MAX_CHANNELS = 340,
296 >    MAX_IDLE = 341,
297 >    MAX_INVITES = 342,
298 >    MAX_NICK_CHANGES = 343,
299 >    MAX_NICK_LENGTH = 344,
300 >    MAX_NICK_TIME = 345,
301 >    MAX_NUMBER = 346,
302 >    MAX_TARGETS = 347,
303 >    MAX_TOPIC_LENGTH = 348,
304 >    MAX_WATCH = 349,
305 >    MIN_IDLE = 350,
306 >    MIN_NONWILDCARD = 351,
307 >    MIN_NONWILDCARD_SIMPLE = 352,
308 >    MODULE = 353,
309 >    MODULES = 354,
310 >    MOTD = 355,
311 >    NAME = 356,
312 >    NEED_IDENT = 357,
313 >    NEED_PASSWORD = 358,
314 >    NETWORK_DESC = 359,
315 >    NETWORK_NAME = 360,
316 >    NICK = 361,
317 >    NO_OPER_FLOOD = 362,
318 >    NO_TILDE = 363,
319 >    NUMBER = 364,
320 >    NUMBER_PER_CIDR = 365,
321 >    NUMBER_PER_IP_GLOBAL = 366,
322 >    NUMBER_PER_IP_LOCAL = 367,
323 >    OPER_ONLY_UMODES = 368,
324 >    OPER_UMODES = 369,
325 >    OPERATOR = 370,
326 >    OPERS_BYPASS_CALLERID = 371,
327 >    PACE_WAIT = 372,
328 >    PACE_WAIT_SIMPLE = 373,
329 >    PASSWORD = 374,
330 >    PATH = 375,
331 >    PING_COOKIE = 376,
332 >    PING_TIME = 377,
333 >    PORT = 378,
334 >    QSTRING = 379,
335 >    RANDOM_IDLE = 380,
336 >    REASON = 381,
337 >    REDIRPORT = 382,
338 >    REDIRSERV = 383,
339 >    REHASH = 384,
340 >    REMOTE = 385,
341 >    REMOTEBAN = 386,
342 >    RESV = 387,
343 >    RESV_EXEMPT = 388,
344 >    RSA_PRIVATE_KEY_FILE = 389,
345 >    SECONDS = 390,
346 >    MINUTES = 391,
347 >    HOURS = 392,
348 >    DAYS = 393,
349 >    WEEKS = 394,
350 >    MONTHS = 395,
351 >    YEARS = 396,
352 >    SEND_PASSWORD = 397,
353 >    SENDQ = 398,
354 >    SERVERHIDE = 399,
355 >    SERVERINFO = 400,
356 >    SHORT_MOTD = 401,
357 >    SPOOF = 402,
358 >    SPOOF_NOTICE = 403,
359 >    SQUIT = 404,
360 >    SSL_CERTIFICATE_FILE = 405,
361 >    SSL_CERTIFICATE_FINGERPRINT = 406,
362 >    SSL_CONNECTION_REQUIRED = 407,
363 >    SSL_DH_ELLIPTIC_CURVE = 408,
364 >    SSL_DH_PARAM_FILE = 409,
365 >    SSL_MESSAGE_DIGEST_ALGORITHM = 410,
366 >    STATS_E_DISABLED = 411,
367 >    STATS_I_OPER_ONLY = 412,
368 >    STATS_K_OPER_ONLY = 413,
369 >    STATS_M_OPER_ONLY = 414,
370 >    STATS_O_OPER_ONLY = 415,
371 >    STATS_P_OPER_ONLY = 416,
372 >    STATS_U_OPER_ONLY = 417,
373 >    T_ALL = 418,
374 >    T_BOTS = 419,
375 >    T_CALLERID = 420,
376 >    T_CCONN = 421,
377 >    T_COMMAND = 422,
378 >    T_CLUSTER = 423,
379 >    T_DEAF = 424,
380 >    T_DEBUG = 425,
381 >    T_DLINE = 426,
382 >    T_EXTERNAL = 427,
383 >    T_FARCONNECT = 428,
384 >    T_FILE = 429,
385 >    T_FULL = 430,
386 >    T_GLOBOPS = 431,
387 >    T_INVISIBLE = 432,
388 >    T_IPV4 = 433,
389 >    T_IPV6 = 434,
390 >    T_LOCOPS = 435,
391 >    T_LOG = 436,
392 >    T_NCHANGE = 437,
393 >    T_NONONREG = 438,
394 >    T_OPME = 439,
395 >    T_PREPEND = 440,
396 >    T_PSEUDO = 441,
397 >    T_RECVQ = 442,
398 >    T_REJ = 443,
399 >    T_RESTART = 444,
400 >    T_SERVER = 445,
401 >    T_SERVICE = 446,
402 >    T_SERVNOTICE = 447,
403 >    T_SET = 448,
404 >    T_SHARED = 449,
405 >    T_SIZE = 450,
406 >    T_SKILL = 451,
407 >    T_SOFTCALLERID = 452,
408 >    T_SPY = 453,
409 >    T_SSL = 454,
410 >    T_SSL_CIPHER_LIST = 455,
411 >    T_TARGET = 456,
412 >    T_UMODES = 457,
413 >    T_UNAUTH = 458,
414 >    T_UNDLINE = 459,
415 >    T_UNLIMITED = 460,
416 >    T_UNRESV = 461,
417 >    T_UNXLINE = 462,
418 >    T_WALLOP = 463,
419 >    T_WALLOPS = 464,
420 >    T_WEBIRC = 465,
421 >    TBOOL = 466,
422 >    THROTTLE_COUNT = 467,
423 >    THROTTLE_TIME = 468,
424 >    TKLINE_EXPIRE_NOTICES = 469,
425 >    TMASKED = 470,
426 >    TS_MAX_DELTA = 471,
427 >    TS_WARN_DELTA = 472,
428 >    TWODOTS = 473,
429 >    TYPE = 474,
430 >    UNKLINE = 475,
431 >    USE_LOGGING = 476,
432 >    USER = 477,
433 >    VHOST = 478,
434 >    VHOST6 = 479,
435 >    WARN_NO_CONNECT_BLOCK = 480,
436 >    WHOIS = 481,
437 >    WHOWAS_HISTORY_LENGTH = 482,
438 >    XLINE = 483,
439 >    XLINE_EXEMPT = 484
440 >  };
441   #endif
442   /* Tokens.  */
443   #define ACCEPT_PASSWORD 258
444 < #define ACTION 259
445 < #define ADMIN 260
446 < #define AFTYPE 261
447 < #define T_ALLOW 262
448 < #define ANTI_NICK_FLOOD 263
449 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
450 < #define AUTOCONN 265
451 < #define T_BLOCK 266
452 < #define BURST_AWAY 267
453 < #define BURST_TOPICWHO 268
454 < #define BYTES 269
455 < #define KBYTES 270
456 < #define MBYTES 271
457 < #define GBYTES 272
458 < #define TBYTES 273
459 < #define CALLER_ID_WAIT 274
460 < #define CAN_FLOOD 275
461 < #define CAN_IDLE 276
462 < #define CHANNEL 277
463 < #define CIDR_BITLEN_IPV4 278
464 < #define CIDR_BITLEN_IPV6 279
465 < #define CIPHER_PREFERENCE 280
466 < #define CLASS 281
467 < #define COMPRESSED 282
468 < #define COMPRESSION_LEVEL 283
469 < #define CONNECT 284
470 < #define CONNECTFREQ 285
471 < #define CRYPTLINK 286
472 < #define DEFAULT_CIPHER_PREFERENCE 287
473 < #define DEFAULT_FLOODCOUNT 288
474 < #define DEFAULT_SPLIT_SERVER_COUNT 289
475 < #define DEFAULT_SPLIT_USER_COUNT 290
476 < #define DENY 291
477 < #define DESCRIPTION 292
478 < #define DIE 293
479 < #define DISABLE_AUTH 294
480 < #define DISABLE_FAKE_CHANNELS 295
481 < #define DISABLE_HIDDEN 296
482 < #define DISABLE_LOCAL_CHANNELS 297
483 < #define DISABLE_REMOTE_COMMANDS 298
484 < #define DOT_IN_IP6_ADDR 299
485 < #define DOTS_IN_IDENT 300
486 < #define DURATION 301
487 < #define EGDPOOL_PATH 302
488 < #define EMAIL 303
489 < #define ENABLE 304
490 < #define ENCRYPTED 305
491 < #define EXCEED_LIMIT 306
492 < #define EXEMPT 307
493 < #define FAILED_OPER_NOTICE 308
494 < #define FAKENAME 309
495 < #define IRCD_FLAGS 310
496 < #define FLATTEN_LINKS 311
497 < #define FFAILED_OPERLOG 312
498 < #define FKILLLOG 313
499 < #define FKLINELOG 314
500 < #define FGLINELOG 315
501 < #define FIOERRLOG 316
502 < #define FOPERLOG 317
503 < #define FOPERSPYLOG 318
504 < #define FUSERLOG 319
505 < #define GECOS 320
506 < #define GENERAL 321
507 < #define GLINE 322
508 < #define GLINES 323
509 < #define GLINE_EXEMPT 324
510 < #define GLINE_LOG 325
511 < #define GLINE_TIME 326
512 < #define GLINE_MIN_CIDR 327
513 < #define GLINE_MIN_CIDR6 328
514 < #define GLOBAL_KILL 329
515 < #define IRCD_AUTH 330
516 < #define NEED_IDENT 331
517 < #define HAVENT_READ_CONF 332
518 < #define HIDDEN 333
519 < #define HIDDEN_ADMIN 334
520 < #define HIDDEN_NAME 335
521 < #define HIDDEN_OPER 336
522 < #define HIDE_SERVER_IPS 337
523 < #define HIDE_SERVERS 338
524 < #define HIDE_SPOOF_IPS 339
525 < #define HOST 340
526 < #define HUB 341
527 < #define HUB_MASK 342
528 < #define IDLETIME 343
529 < #define IGNORE_BOGUS_TS 344
530 < #define INVISIBLE_ON_CONNECT 345
531 < #define IP 346
532 < #define KILL 347
533 < #define KILL_CHASE_TIME_LIMIT 348
534 < #define KLINE 349
535 < #define KLINE_EXEMPT 350
536 < #define KLINE_REASON 351
537 < #define KLINE_WITH_REASON 352
538 < #define KNOCK_DELAY 353
539 < #define KNOCK_DELAY_CHANNEL 354
540 < #define LEAF_MASK 355
541 < #define LINKS_DELAY 356
542 < #define LISTEN 357
543 < #define T_LOG 358
544 < #define LOGGING 359
545 < #define LOG_LEVEL 360
546 < #define MAX_ACCEPT 361
547 < #define MAX_BANS 362
548 < #define MAX_CHANS_PER_USER 363
549 < #define MAX_GLOBAL 364
550 < #define MAX_IDENT 365
551 < #define MAX_LOCAL 366
552 < #define MAX_NICK_CHANGES 367
553 < #define MAX_NICK_TIME 368
554 < #define MAX_NUMBER 369
555 < #define MAX_TARGETS 370
556 < #define MAX_WATCH 371
557 < #define MESSAGE_LOCALE 372
558 < #define MIN_NONWILDCARD 373
559 < #define MIN_NONWILDCARD_SIMPLE 374
560 < #define MODULE 375
561 < #define MODULES 376
562 < #define NAME 377
563 < #define NEED_PASSWORD 378
564 < #define NETWORK_DESC 379
565 < #define NETWORK_NAME 380
566 < #define NICK 381
567 < #define NICK_CHANGES 382
568 < #define NO_CREATE_ON_SPLIT 383
569 < #define NO_JOIN_ON_SPLIT 384
570 < #define NO_OPER_FLOOD 385
571 < #define NO_TILDE 386
572 < #define NOT 387
573 < #define NUMBER 388
574 < #define NUMBER_PER_IDENT 389
575 < #define NUMBER_PER_CIDR 390
576 < #define NUMBER_PER_IP 391
577 < #define NUMBER_PER_IP_GLOBAL 392
578 < #define OPERATOR 393
579 < #define OPERS_BYPASS_CALLERID 394
580 < #define OPER_LOG 395
581 < #define OPER_ONLY_UMODES 396
582 < #define OPER_PASS_RESV 397
583 < #define OPER_SPY_T 398
584 < #define OPER_UMODES 399
585 < #define JOIN_FLOOD_COUNT 400
586 < #define JOIN_FLOOD_TIME 401
587 < #define PACE_WAIT 402
588 < #define PACE_WAIT_SIMPLE 403
589 < #define PASSWORD 404
590 < #define PATH 405
591 < #define PING_COOKIE 406
592 < #define PING_TIME 407
593 < #define PING_WARNING 408
594 < #define PORT 409
595 < #define QSTRING 410
596 < #define QUIET_ON_BAN 411
597 < #define REASON 412
598 < #define REDIRPORT 413
599 < #define REDIRSERV 414
600 < #define REGEX_T 415
601 < #define REHASH 416
602 < #define TREJECT_HOLD_TIME 417
603 < #define REMOTE 418
604 < #define REMOTEBAN 419
605 < #define RESTRICT_CHANNELS 420
606 < #define RESTRICTED 421
607 < #define RSA_PRIVATE_KEY_FILE 422
608 < #define RSA_PUBLIC_KEY_FILE 423
609 < #define SSL_CERTIFICATE_FILE 424
610 < #define T_SSL_CONNECTION_METHOD 425
611 < #define T_SSLV3 426
612 < #define T_TLSV1 427
613 < #define RESV 428
614 < #define RESV_EXEMPT 429
615 < #define SECONDS 430
616 < #define MINUTES 431
617 < #define HOURS 432
618 < #define DAYS 433
619 < #define WEEKS 434
620 < #define SENDQ 435
621 < #define SEND_PASSWORD 436
622 < #define SERVERHIDE 437
623 < #define SERVERINFO 438
624 < #define SERVLINK_PATH 439
625 < #define IRCD_SID 440
626 < #define TKLINE_EXPIRE_NOTICES 441
627 < #define T_SHARED 442
628 < #define T_CLUSTER 443
629 < #define TYPE 444
630 < #define SHORT_MOTD 445
631 < #define SILENT 446
632 < #define SPOOF 447
633 < #define SPOOF_NOTICE 448
634 < #define STATS_E_DISABLED 449
635 < #define STATS_I_OPER_ONLY 450
636 < #define STATS_K_OPER_ONLY 451
637 < #define STATS_O_OPER_ONLY 452
638 < #define STATS_P_OPER_ONLY 453
639 < #define TBOOL 454
640 < #define TMASKED 455
641 < #define T_REJECT 456
642 < #define TS_MAX_DELTA 457
643 < #define TS_WARN_DELTA 458
644 < #define TWODOTS 459
645 < #define T_ALL 460
646 < #define T_BOTS 461
647 < #define T_SOFTCALLERID 462
648 < #define T_CALLERID 463
649 < #define T_CCONN 464
650 < #define T_CCONN_FULL 465
651 < #define T_CLIENT_FLOOD 466
652 < #define T_DEAF 467
653 < #define T_DEBUG 468
654 < #define T_DRONE 469
655 < #define T_EXTERNAL 470
656 < #define T_FULL 471
657 < #define T_INVISIBLE 472
658 < #define T_IPV4 473
659 < #define T_IPV6 474
660 < #define T_LOCOPS 475
661 < #define T_LOGPATH 476
662 < #define T_L_CRIT 477
663 < #define T_L_DEBUG 478
664 < #define T_L_ERROR 479
665 < #define T_L_INFO 480
666 < #define T_L_NOTICE 481
667 < #define T_L_TRACE 482
668 < #define T_L_WARN 483
669 < #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 <
732 <
733 <
444 > #define ADMIN 259
445 > #define AFTYPE 260
446 > #define ANTI_NICK_FLOOD 261
447 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
448 > #define AUTOCONN 263
449 > #define AWAY_COUNT 264
450 > #define AWAY_TIME 265
451 > #define BYTES 266
452 > #define KBYTES 267
453 > #define MBYTES 268
454 > #define CALLER_ID_WAIT 269
455 > #define CAN_FLOOD 270
456 > #define CHANNEL 271
457 > #define CIDR_BITLEN_IPV4 272
458 > #define CIDR_BITLEN_IPV6 273
459 > #define CLASS 274
460 > #define CLOSE 275
461 > #define CONNECT 276
462 > #define CONNECTFREQ 277
463 > #define CYCLE_ON_HOST_CHANGE 278
464 > #define DEFAULT_FLOODCOUNT 279
465 > #define DEFAULT_FLOODTIME 280
466 > #define DEFAULT_JOIN_FLOOD_COUNT 281
467 > #define DEFAULT_JOIN_FLOOD_TIME 282
468 > #define DEFAULT_MAX_CLIENTS 283
469 > #define DENY 284
470 > #define DESCRIPTION 285
471 > #define DIE 286
472 > #define DISABLE_AUTH 287
473 > #define DISABLE_FAKE_CHANNELS 288
474 > #define DISABLE_REMOTE_COMMANDS 289
475 > #define DLINE_MIN_CIDR 290
476 > #define DLINE_MIN_CIDR6 291
477 > #define DOTS_IN_IDENT 292
478 > #define EMAIL 293
479 > #define ENCRYPTED 294
480 > #define EXCEED_LIMIT 295
481 > #define EXEMPT 296
482 > #define FAILED_OPER_NOTICE 297
483 > #define FLATTEN_LINKS 298
484 > #define FLATTEN_LINKS_DELAY 299
485 > #define FLATTEN_LINKS_FILE 300
486 > #define GECOS 301
487 > #define GENERAL 302
488 > #define HIDDEN 303
489 > #define HIDDEN_NAME 304
490 > #define HIDE_CHANS 305
491 > #define HIDE_IDLE 306
492 > #define HIDE_IDLE_FROM_OPERS 307
493 > #define HIDE_SERVER_IPS 308
494 > #define HIDE_SERVERS 309
495 > #define HIDE_SERVICES 310
496 > #define HOST 311
497 > #define HUB 312
498 > #define HUB_MASK 313
499 > #define IGNORE_BOGUS_TS 314
500 > #define INVISIBLE_ON_CONNECT 315
501 > #define INVITE_CLIENT_COUNT 316
502 > #define INVITE_CLIENT_TIME 317
503 > #define INVITE_DELAY_CHANNEL 318
504 > #define INVITE_EXPIRE_TIME 319
505 > #define IP 320
506 > #define IRCD_AUTH 321
507 > #define IRCD_FLAGS 322
508 > #define IRCD_SID 323
509 > #define JOIN 324
510 > #define KILL 325
511 > #define KILL_CHASE_TIME_LIMIT 326
512 > #define KLINE 327
513 > #define KLINE_EXEMPT 328
514 > #define KLINE_MIN_CIDR 329
515 > #define KLINE_MIN_CIDR6 330
516 > #define KNOCK_CLIENT_COUNT 331
517 > #define KNOCK_CLIENT_TIME 332
518 > #define KNOCK_DELAY_CHANNEL 333
519 > #define LEAF_MASK 334
520 > #define LISTEN 335
521 > #define MASK 336
522 > #define MAX_ACCEPT 337
523 > #define MAX_BANS 338
524 > #define MAX_BANS_LARGE 339
525 > #define MAX_CHANNELS 340
526 > #define MAX_IDLE 341
527 > #define MAX_INVITES 342
528 > #define MAX_NICK_CHANGES 343
529 > #define MAX_NICK_LENGTH 344
530 > #define MAX_NICK_TIME 345
531 > #define MAX_NUMBER 346
532 > #define MAX_TARGETS 347
533 > #define MAX_TOPIC_LENGTH 348
534 > #define MAX_WATCH 349
535 > #define MIN_IDLE 350
536 > #define MIN_NONWILDCARD 351
537 > #define MIN_NONWILDCARD_SIMPLE 352
538 > #define MODULE 353
539 > #define MODULES 354
540 > #define MOTD 355
541 > #define NAME 356
542 > #define NEED_IDENT 357
543 > #define NEED_PASSWORD 358
544 > #define NETWORK_DESC 359
545 > #define NETWORK_NAME 360
546 > #define NICK 361
547 > #define NO_OPER_FLOOD 362
548 > #define NO_TILDE 363
549 > #define NUMBER 364
550 > #define NUMBER_PER_CIDR 365
551 > #define NUMBER_PER_IP_GLOBAL 366
552 > #define NUMBER_PER_IP_LOCAL 367
553 > #define OPER_ONLY_UMODES 368
554 > #define OPER_UMODES 369
555 > #define OPERATOR 370
556 > #define OPERS_BYPASS_CALLERID 371
557 > #define PACE_WAIT 372
558 > #define PACE_WAIT_SIMPLE 373
559 > #define PASSWORD 374
560 > #define PATH 375
561 > #define PING_COOKIE 376
562 > #define PING_TIME 377
563 > #define PORT 378
564 > #define QSTRING 379
565 > #define RANDOM_IDLE 380
566 > #define REASON 381
567 > #define REDIRPORT 382
568 > #define REDIRSERV 383
569 > #define REHASH 384
570 > #define REMOTE 385
571 > #define REMOTEBAN 386
572 > #define RESV 387
573 > #define RESV_EXEMPT 388
574 > #define RSA_PRIVATE_KEY_FILE 389
575 > #define SECONDS 390
576 > #define MINUTES 391
577 > #define HOURS 392
578 > #define DAYS 393
579 > #define WEEKS 394
580 > #define MONTHS 395
581 > #define YEARS 396
582 > #define SEND_PASSWORD 397
583 > #define SENDQ 398
584 > #define SERVERHIDE 399
585 > #define SERVERINFO 400
586 > #define SHORT_MOTD 401
587 > #define SPOOF 402
588 > #define SPOOF_NOTICE 403
589 > #define SQUIT 404
590 > #define SSL_CERTIFICATE_FILE 405
591 > #define SSL_CERTIFICATE_FINGERPRINT 406
592 > #define SSL_CONNECTION_REQUIRED 407
593 > #define SSL_DH_ELLIPTIC_CURVE 408
594 > #define SSL_DH_PARAM_FILE 409
595 > #define SSL_MESSAGE_DIGEST_ALGORITHM 410
596 > #define STATS_E_DISABLED 411
597 > #define STATS_I_OPER_ONLY 412
598 > #define STATS_K_OPER_ONLY 413
599 > #define STATS_M_OPER_ONLY 414
600 > #define STATS_O_OPER_ONLY 415
601 > #define STATS_P_OPER_ONLY 416
602 > #define STATS_U_OPER_ONLY 417
603 > #define T_ALL 418
604 > #define T_BOTS 419
605 > #define T_CALLERID 420
606 > #define T_CCONN 421
607 > #define T_COMMAND 422
608 > #define T_CLUSTER 423
609 > #define T_DEAF 424
610 > #define T_DEBUG 425
611 > #define T_DLINE 426
612 > #define T_EXTERNAL 427
613 > #define T_FARCONNECT 428
614 > #define T_FILE 429
615 > #define T_FULL 430
616 > #define T_GLOBOPS 431
617 > #define T_INVISIBLE 432
618 > #define T_IPV4 433
619 > #define T_IPV6 434
620 > #define T_LOCOPS 435
621 > #define T_LOG 436
622 > #define T_NCHANGE 437
623 > #define T_NONONREG 438
624 > #define T_OPME 439
625 > #define T_PREPEND 440
626 > #define T_PSEUDO 441
627 > #define T_RECVQ 442
628 > #define T_REJ 443
629 > #define T_RESTART 444
630 > #define T_SERVER 445
631 > #define T_SERVICE 446
632 > #define T_SERVNOTICE 447
633 > #define T_SET 448
634 > #define T_SHARED 449
635 > #define T_SIZE 450
636 > #define T_SKILL 451
637 > #define T_SOFTCALLERID 452
638 > #define T_SPY 453
639 > #define T_SSL 454
640 > #define T_SSL_CIPHER_LIST 455
641 > #define T_TARGET 456
642 > #define T_UMODES 457
643 > #define T_UNAUTH 458
644 > #define T_UNDLINE 459
645 > #define T_UNLIMITED 460
646 > #define T_UNRESV 461
647 > #define T_UNXLINE 462
648 > #define T_WALLOP 463
649 > #define T_WALLOPS 464
650 > #define T_WEBIRC 465
651 > #define TBOOL 466
652 > #define THROTTLE_COUNT 467
653 > #define THROTTLE_TIME 468
654 > #define TKLINE_EXPIRE_NOTICES 469
655 > #define TMASKED 470
656 > #define TS_MAX_DELTA 471
657 > #define TS_WARN_DELTA 472
658 > #define TWODOTS 473
659 > #define TYPE 474
660 > #define UNKLINE 475
661 > #define USE_LOGGING 476
662 > #define USER 477
663 > #define VHOST 478
664 > #define VHOST6 479
665 > #define WARN_NO_CONNECT_BLOCK 480
666 > #define WHOIS 481
667 > #define WHOWAS_HISTORY_LENGTH 482
668 > #define XLINE 483
669 > #define XLINE_EXEMPT 484
670  
671 + /* Value type.  */
672   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
736 typedef union YYSTYPE
737 {
673  
674 < /* Line 214 of yacc.c  */
675 < #line 135 "ircd_parser.y"
674 > union YYSTYPE
675 > {
676 > #line 141 "conf_parser.y" /* yacc.c:355  */
677  
678    int number;
679    char *string;
680  
681 + #line 682 "conf_parser.c" /* yacc.c:355  */
682 + };
683  
684 <
747 < /* Line 214 of yacc.c  */
748 < #line 749 "ircd_parser.c"
749 < } YYSTYPE;
684 > typedef union YYSTYPE YYSTYPE;
685   # define YYSTYPE_IS_TRIVIAL 1
751 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
686   # define YYSTYPE_IS_DECLARED 1
687   #endif
688  
689  
690 < /* Copy the second part of user declarations.  */
690 > extern YYSTYPE yylval;
691  
692 + int yyparse (void);
693 +
694 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
695 +
696 + /* Copy the second part of user declarations.  */
697  
698 < /* Line 264 of yacc.c  */
760 < #line 761 "ircd_parser.c"
698 > #line 699 "conf_parser.c" /* yacc.c:358  */
699  
700   #ifdef short
701   # undef short
# Line 771 | Line 709 | typedef unsigned char yytype_uint8;
709  
710   #ifdef YYTYPE_INT8
711   typedef YYTYPE_INT8 yytype_int8;
774 #elif (defined __STDC__ || defined __C99__FUNC__ \
775     || defined __cplusplus || defined _MSC_VER)
776 typedef signed char yytype_int8;
712   #else
713 < typedef short int yytype_int8;
713 > typedef signed char yytype_int8;
714   #endif
715  
716   #ifdef YYTYPE_UINT16
# Line 795 | Line 730 | typedef short int yytype_int16;
730   #  define YYSIZE_T __SIZE_TYPE__
731   # elif defined size_t
732   #  define YYSIZE_T size_t
733 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
733 > # elif ! defined YYSIZE_T
734   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
735   #  define YYSIZE_T size_t
736   # else
# Line 807 | Line 741 | typedef short int yytype_int16;
741   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
742  
743   #ifndef YY_
744 < # if YYENABLE_NLS
744 > # if defined YYENABLE_NLS && YYENABLE_NLS
745   #  if ENABLE_NLS
746   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
747 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
747 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
748   #  endif
749   # endif
750   # ifndef YY_
751 < #  define YY_(msgid) msgid
751 > #  define YY_(Msgid) Msgid
752 > # endif
753 > #endif
754 >
755 > #ifndef YY_ATTRIBUTE
756 > # if (defined __GNUC__                                               \
757 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
758 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
759 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
760 > # else
761 > #  define YY_ATTRIBUTE(Spec) /* empty */
762 > # endif
763 > #endif
764 >
765 > #ifndef YY_ATTRIBUTE_PURE
766 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
767 > #endif
768 >
769 > #ifndef YY_ATTRIBUTE_UNUSED
770 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
771 > #endif
772 >
773 > #if !defined _Noreturn \
774 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
775 > # if defined _MSC_VER && 1200 <= _MSC_VER
776 > #  define _Noreturn __declspec (noreturn)
777 > # else
778 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
779   # endif
780   #endif
781  
782   /* Suppress unused-variable warnings by "using" E.  */
783   #if ! defined lint || defined __GNUC__
784 < # define YYUSE(e) ((void) (e))
784 > # define YYUSE(E) ((void) (E))
785   #else
786 < # define YYUSE(e) /* empty */
786 > # define YYUSE(E) /* empty */
787   #endif
788  
789 < /* Identity function, used to suppress warnings about constant conditions.  */
790 < #ifndef lint
791 < # define YYID(n) (n)
789 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
790 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
791 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
792 >    _Pragma ("GCC diagnostic push") \
793 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
794 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
795 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
796 >    _Pragma ("GCC diagnostic pop")
797   #else
798 < #if (defined __STDC__ || defined __C99__FUNC__ \
833 <     || defined __cplusplus || defined _MSC_VER)
834 < static int
835 < YYID (int yyi)
836 < #else
837 < static int
838 < YYID (yyi)
839 <    int yyi;
798 > # define YY_INITIAL_VALUE(Value) Value
799   #endif
800 < {
801 <  return yyi;
802 < }
800 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
801 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
802 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
803 > #endif
804 > #ifndef YY_INITIAL_VALUE
805 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
806   #endif
807  
808 +
809   #if ! defined yyoverflow || YYERROR_VERBOSE
810  
811   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 860 | Line 823 | YYID (yyi)
823   #    define alloca _alloca
824   #   else
825   #    define YYSTACK_ALLOC alloca
826 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
864 <     || defined __cplusplus || defined _MSC_VER)
826 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
827   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
828 < #     ifndef _STDLIB_H
829 < #      define _STDLIB_H 1
828 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
829 > #     ifndef EXIT_SUCCESS
830 > #      define EXIT_SUCCESS 0
831   #     endif
832   #    endif
833   #   endif
# Line 872 | Line 835 | YYID (yyi)
835   # endif
836  
837   # ifdef YYSTACK_ALLOC
838 <   /* Pacify GCC's `empty if-body' warning.  */
839 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
838 >   /* Pacify GCC's 'empty if-body' warning.  */
839 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
840   #  ifndef YYSTACK_ALLOC_MAXIMUM
841      /* The OS might guarantee only one guard page at the bottom of the stack,
842         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 887 | Line 850 | YYID (yyi)
850   #  ifndef YYSTACK_ALLOC_MAXIMUM
851   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
852   #  endif
853 < #  if (defined __cplusplus && ! defined _STDLIB_H \
853 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
854         && ! ((defined YYMALLOC || defined malloc) \
855 <             && (defined YYFREE || defined free)))
855 >             && (defined YYFREE || defined free)))
856   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
857 < #   ifndef _STDLIB_H
858 < #    define _STDLIB_H 1
857 > #   ifndef EXIT_SUCCESS
858 > #    define EXIT_SUCCESS 0
859   #   endif
860   #  endif
861   #  ifndef YYMALLOC
862   #   define YYMALLOC malloc
863 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
901 <     || defined __cplusplus || defined _MSC_VER)
863 > #   if ! defined malloc && ! defined EXIT_SUCCESS
864   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
865   #   endif
866   #  endif
867   #  ifndef YYFREE
868   #   define YYFREE free
869 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
908 <     || defined __cplusplus || defined _MSC_VER)
869 > #   if ! defined free && ! defined EXIT_SUCCESS
870   void free (void *); /* INFRINGES ON USER NAME SPACE */
871   #   endif
872   #  endif
# Line 915 | Line 876 | void free (void *); /* INFRINGES ON USER
876  
877   #if (! defined yyoverflow \
878       && (! defined __cplusplus \
879 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
879 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
880  
881   /* A type that is properly aligned for any stack member.  */
882   union yyalloc
# Line 933 | Line 894 | union yyalloc
894       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
895        + YYSTACK_GAP_MAXIMUM)
896  
897 < /* 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
897 > # define YYCOPY_NEEDED 1
898  
899   /* Relocate STACK from its old location to the new one.  The
900     local variables YYSIZE and YYSTACKSIZE give the old and new number of
901     elements in the stack, and YYPTR gives the new location of the
902     stack.  Advance YYPTR to a properly aligned location for the next
903     stack.  */
904 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
905 <    do                                                                  \
906 <      {                                                                 \
907 <        YYSIZE_T yynewbytes;                                            \
908 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
909 <        Stack = &yyptr->Stack_alloc;                                    \
910 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
911 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
912 <      }                                                                 \
913 <    while (YYID (0))
904 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
905 >    do                                                                  \
906 >      {                                                                 \
907 >        YYSIZE_T yynewbytes;                                            \
908 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
909 >        Stack = &yyptr->Stack_alloc;                                    \
910 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
911 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
912 >      }                                                                 \
913 >    while (0)
914  
915   #endif
916  
917 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
918 + /* Copy COUNT objects from SRC to DST.  The source and destination do
919 +   not overlap.  */
920 + # ifndef YYCOPY
921 + #  if defined __GNUC__ && 1 < __GNUC__
922 + #   define YYCOPY(Dst, Src, Count) \
923 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
924 + #  else
925 + #   define YYCOPY(Dst, Src, Count)              \
926 +      do                                        \
927 +        {                                       \
928 +          YYSIZE_T yyi;                         \
929 +          for (yyi = 0; yyi < (Count); yyi++)   \
930 +            (Dst)[yyi] = (Src)[yyi];            \
931 +        }                                       \
932 +      while (0)
933 + #  endif
934 + # endif
935 + #endif /* !YYCOPY_NEEDED */
936 +
937   /* YYFINAL -- State number of the termination state.  */
938   #define YYFINAL  2
939   /* YYLAST -- Last index in YYTABLE.  */
940 < #define YYLAST   1413
940 > #define YYLAST   1348
941  
942   /* YYNTOKENS -- Number of terminals.  */
943 < #define YYNTOKENS  267
943 > #define YYNTOKENS  236
944   /* YYNNTS -- Number of nonterminals.  */
945 < #define YYNNTS  346
945 > #define YYNNTS  295
946   /* YYNRULES -- Number of rules.  */
947 < #define YYNRULES  743
948 < /* YYNRULES -- Number of states.  */
949 < #define YYNSTATES  1494
947 > #define YYNRULES  668
948 > /* YYNSTATES -- Number of states.  */
949 > #define YYNSTATES  1319
950  
951 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
951 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
952 >   by yylex, with out-of-bounds checking.  */
953   #define YYUNDEFTOK  2
954 < #define YYMAXUTOK   516
954 > #define YYMAXUTOK   484
955  
956 < #define YYTRANSLATE(YYX)                                                \
956 > #define YYTRANSLATE(YYX)                                                \
957    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
958  
959 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
960 < static const yytype_uint16 yytranslate[] =
959 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
960 >   as returned by yylex, without out-of-bounds checking.  */
961 > static const yytype_uint8 yytranslate[] =
962   {
963         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967 <       2,     2,     2,     2,   266,     2,     2,     2,     2,     2,
968 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
969 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
967 >       2,     2,     2,     2,   234,     2,     2,     2,     2,     2,
968 >       2,     2,     2,     2,     2,     2,     2,     2,   235,   230,
969 >       2,   233,     2,     2,     2,     2,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975 <       2,     2,     2,   264,     2,   263,     2,     2,     2,     2,
975 >       2,     2,     2,   232,     2,   231,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1041 | Line 1008 | static const yytype_uint16 yytranslate[]
1008       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1009       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1010       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1011 <     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
1011 >     225,   226,   227,   228,   229
1012   };
1013  
1014   #if YYDEBUG
1015 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1052 <   YYRHS.  */
1053 < static const yytype_uint16 yyprhs[] =
1054 < {
1055 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1056 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1057 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1058 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1059 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1060 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1061 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1062 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1063 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1064 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1065 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1066 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1067 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1068 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1069 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
1070 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
1071 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
1072 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
1073 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
1074 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
1075 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
1076 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
1077 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
1078 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
1079 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1080 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1081 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1082 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1083 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1084 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1085 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1086 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1087 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1088 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1089 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1090 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1091 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1092 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1093 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1094 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1095 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1096 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1097 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1098 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1099 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1100 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1101 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1102 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1103 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1104 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1105 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1106 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1107 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1108 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1109 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1110 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1111 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1112 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1113 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1114 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1115 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1116 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1117 <    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
1130 < };
1131 <
1132 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1133 < static const yytype_int16 yyrhs[] =
1134 < {
1135 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1136 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1137 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1138 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1139 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1140 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1141 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1142 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1143 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1144 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1145 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1146 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1147 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1148 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1149 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1150 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1151 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1152 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1153 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1154 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1155 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1156 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1157 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1158 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1159 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1160 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1161 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1162 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1163 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1164 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1165 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1166 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1167 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1168 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1169 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1170 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1171 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1172 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1173 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1174 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1175 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1176 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1177 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1178 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1179 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1180 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1181 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1182 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1183 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1184 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1185 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1186 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1187 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1188 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1189 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1190 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1191 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1192 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1193 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1194 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1195 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1196 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1197 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1198 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1199 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1200 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1201 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1202 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1203 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1204 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1205 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1206 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1207 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1208 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1209 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1210 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1211 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1212 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1213 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1214 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1215 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1216 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1217 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1218 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1219 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1220 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1221 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1222 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1223 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1224 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1225 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1226 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1227 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1228 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1229 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1230 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1231 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1232 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1233 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1234 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1235 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1236 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1237 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1238 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1239 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1240 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1241 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1242 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1243 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1244 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1245 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1246 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1247 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1248 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1249 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1250 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1251 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1252 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1253 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1254 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1255 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1256 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1257 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1258 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1259 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1260 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1261 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1262 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1263 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1264 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1265 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1266 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1267 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1268 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1269 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1270 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1271 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1272 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1273 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1274 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1275 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1276 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1277 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1278 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1279 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1280 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1281 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1282 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1283 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1284 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1285 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1286 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1287 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1288 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1289 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1290 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1291 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1292 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1293 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1294 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1295 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1296 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1297 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1298 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1299 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1300 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1301 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1302 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1303 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1304 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1305 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1306 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1307 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1308 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1309 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1310 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1311 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1312 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1313 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1314 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1315 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1316 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1317 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1318 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1319 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1320 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1321 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1322 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1323 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1324 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1325 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1326 <     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
1365 < };
1366 <
1367 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1015 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1016   static const yytype_uint16 yyrline[] =
1017   {
1018 <       0,   400,   400,   401,   404,   405,   406,   407,   408,   409,
1019 <     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1020 <     420,   421,   422,   423,   424,   425,   429,   429,   430,   434,
1021 <     438,   442,   446,   450,   456,   456,   457,   458,   459,   460,
1022 <     467,   470,   470,   471,   471,   471,   473,   490,   499,   501,
1023 <     501,   502,   502,   503,   503,   504,   504,   505,   506,   506,
1024 <     507,   507,   508,   509,   513,   512,   527,   527,   528,   532,
1025 <     538,   572,   632,   646,   661,   670,   684,   693,   721,   751,
1026 <     774,   796,   798,   798,   799,   799,   800,   800,   802,   811,
1027 <     820,   833,   835,   836,   838,   838,   839,   840,   840,   841,
1028 <     841,   842,   842,   843,   843,   844,   845,   847,   851,   855,
1029 <     862,   869,   876,   883,   890,   897,   904,   911,   915,   919,
1030 <     923,   927,   931,   935,   941,   951,   950,  1044,  1044,  1045,
1031 <    1045,  1046,  1046,  1046,  1046,  1047,  1047,  1048,  1048,  1048,
1032 <    1049,  1049,  1049,  1050,  1050,  1050,  1051,  1051,  1051,  1051,
1033 <    1052,  1052,  1053,  1053,  1055,  1067,  1079,  1113,  1125,  1136,
1034 <    1178,  1188,  1187,  1193,  1193,  1194,  1198,  1202,  1206,  1210,
1035 <    1214,  1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,  1250,
1036 <    1254,  1258,  1262,  1266,  1272,  1283,  1294,  1305,  1316,  1327,
1037 <    1338,  1349,  1360,  1371,  1382,  1393,  1404,  1415,  1427,  1426,
1038 <    1430,  1430,  1431,  1431,  1432,  1432,  1434,  1441,  1448,  1455,
1039 <    1462,  1469,  1476,  1483,  1490,  1497,  1504,  1511,  1518,  1525,
1040 <    1532,  1539,  1553,  1552,  1602,  1602,  1604,  1604,  1605,  1606,
1041 <    1606,  1607,  1608,  1609,  1610,  1611,  1612,  1613,  1614,  1615,
1042 <    1616,  1617,  1619,  1628,  1637,  1643,  1649,  1655,  1661,  1667,
1043 <    1673,  1679,  1685,  1691,  1697,  1703,  1713,  1712,  1729,  1728,
1044 <    1733,  1733,  1734,  1738,  1742,  1750,  1750,  1751,  1751,  1751,
1045 <    1751,  1751,  1753,  1753,  1755,  1755,  1757,  1771,  1791,  1800,
1046 <    1813,  1812,  1881,  1881,  1882,  1882,  1882,  1882,  1883,  1883,
1047 <    1884,  1884,  1884,  1885,  1885,  1886,  1886,  1886,  1887,  1887,
1048 <    1887,  1889,  1926,  1939,  1950,  1959,  1971,  1970,  1974,  1974,
1049 <    1975,  1975,  1976,  1976,  1978,  1986,  1993,  2000,  2007,  2014,
1050 <    2021,  2028,  2035,  2042,  2051,  2062,  2073,  2084,  2095,  2106,
1051 <    2118,  2137,  2147,  2156,  2172,  2171,  2187,  2187,  2188,  2188,
1052 <    2188,  2188,  2190,  2199,  2214,  2228,  2227,  2243,  2243,  2244,
1053 <    2244,  2244,  2244,  2246,  2255,  2278,  2277,  2283,  2283,  2284,
1054 <    2288,  2292,  2296,  2300,  2304,  2308,  2312,  2316,  2320,  2324,
1055 <    2334,  2333,  2350,  2350,  2351,  2351,  2351,  2353,  2360,  2359,
1056 <    2365,  2365,  2366,  2370,  2374,  2378,  2382,  2386,  2390,  2394,
1057 <    2398,  2402,  2406,  2416,  2415,  2561,  2561,  2562,  2562,  2563,
1058 <    2563,  2563,  2564,  2564,  2565,  2565,  2566,  2566,  2566,  2567,
1059 <    2567,  2567,  2568,  2568,  2568,  2569,  2569,  2570,  2570,  2572,
1060 <    2584,  2596,  2605,  2631,  2649,  2667,  2673,  2677,  2685,  2695,
1061 <    2694,  2698,  2698,  2699,  2699,  2700,  2700,  2702,  2713,  2720,
1062 <    2727,  2734,  2744,  2785,  2796,  2807,  2822,  2833,  2844,  2857,
1063 <    2870,  2879,  2915,  2914,  2979,  2978,  2982,  2982,  2983,  2989,
1064 <    2989,  2990,  2990,  2990,  2990,  2992,  3011,  3021,  3020,  3042,
1065 <    3042,  3043,  3043,  3043,  3045,  3054,  3066,  3068,  3068,  3069,
1066 <    3069,  3071,  3093,  3092,  3135,  3134,  3138,  3138,  3139,  3145,
1067 <    3145,  3146,  3146,  3146,  3146,  3148,  3154,  3163,  3166,  3166,
1068 <    3167,  3167,  3168,  3168,  3169,  3169,  3170,  3170,  3171,  3171,
1069 <    3172,  3172,  3173,  3173,  3174,  3174,  3175,  3175,  3176,  3176,
1070 <    3177,  3177,  3178,  3178,  3179,  3179,  3180,  3180,  3181,  3181,
1071 <    3182,  3182,  3183,  3183,  3184,  3184,  3185,  3185,  3186,  3186,
1072 <    3187,  3188,  3188,  3189,  3189,  3190,  3190,  3191,  3191,  3192,
1073 <    3192,  3193,  3193,  3194,  3194,  3195,  3196,  3199,  3204,  3209,
1074 <    3214,  3219,  3224,  3229,  3234,  3239,  3244,  3249,  3254,  3259,
1075 <    3264,  3269,  3274,  3279,  3284,  3289,  3295,  3306,  3311,  3320,
1076 <    3325,  3330,  3335,  3340,  3345,  3348,  3353,  3356,  3361,  3366,
1077 <    3371,  3376,  3381,  3386,  3391,  3396,  3401,  3412,  3417,  3422,
1078 <    3427,  3436,  3468,  3486,  3491,  3500,  3505,  3510,  3516,  3515,
1079 <    3520,  3520,  3521,  3524,  3527,  3530,  3533,  3536,  3539,  3542,
1080 <    3545,  3548,  3551,  3554,  3557,  3560,  3563,  3566,  3569,  3572,
1081 <    3575,  3581,  3580,  3585,  3585,  3586,  3589,  3592,  3595,  3598,
1082 <    3601,  3604,  3607,  3610,  3613,  3616,  3619,  3622,  3625,  3628,
1083 <    3631,  3634,  3637,  3640,  3645,  3650,  3655,  3660,  3665,  3674,
1084 <    3673,  3697,  3697,  3698,  3699,  3700,  3701,  3702,  3703,  3704,
1437 <    3706,  3712,  3719,  3718,  3723,  3723,  3724,  3728,  3734,  3768,
1438 <    3778,  3777,  3827,  3827,  3828,  3832,  3841,  3844,  3844,  3845,
1439 <    3845,  3846,  3846,  3847,  3847,  3848,  3848,  3849,  3849,  3850,
1440 <    3851,  3851,  3852,  3852,  3853,  3853,  3854,  3854,  3856,  3861,
1441 <    3866,  3871,  3876,  3881,  3886,  3891,  3896,  3901,  3906,  3911,
1442 <    3916,  3921,  3926,  3931,  3936,  3941,  3949,  3952,  3952,  3953,
1443 <    3953,  3954,  3955,  3956,  3956,  3957,  3958,  3960,  3966,  3972,
1444 <    3981,  3995,  4001,  4007
1018 >       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1019 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1020 >     394,   395,   396,   397,   398,   399,   400,   401,   405,   405,
1021 >     406,   407,   408,   409,   410,   411,   412,   413,   416,   416,
1022 >     417,   418,   419,   420,   427,   429,   429,   430,   430,   430,
1023 >     432,   438,   448,   450,   450,   451,   452,   453,   454,   455,
1024 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1025 >     466,   467,   468,   471,   480,   489,   498,   507,   516,   525,
1026 >     540,   555,   565,   579,   588,   616,   644,   669,   691,   713,
1027 >     723,   725,   725,   726,   727,   728,   729,   731,   740,   749,
1028 >     763,   762,   780,   780,   781,   781,   781,   783,   789,   800,
1029 >     799,   818,   818,   819,   819,   819,   819,   819,   821,   827,
1030 >     833,   839,   861,   862,   862,   864,   864,   865,   867,   874,
1031 >     874,   887,   888,   890,   890,   891,   891,   893,   901,   904,
1032 >     910,   909,   915,   915,   916,   920,   924,   928,   932,   936,
1033 >     940,   944,   955,   954,  1015,  1015,  1016,  1017,  1018,  1019,
1034 >    1020,  1021,  1022,  1023,  1024,  1025,  1026,  1028,  1034,  1040,
1035 >    1046,  1052,  1063,  1069,  1080,  1087,  1086,  1092,  1092,  1093,
1036 >    1097,  1101,  1105,  1109,  1113,  1117,  1121,  1125,  1129,  1133,
1037 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1038 >    1177,  1184,  1183,  1189,  1189,  1190,  1194,  1198,  1202,  1206,
1039 >    1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,
1040 >    1250,  1254,  1258,  1262,  1266,  1270,  1274,  1278,  1282,  1286,
1041 >    1290,  1294,  1298,  1302,  1313,  1312,  1370,  1370,  1371,  1372,
1042 >    1373,  1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,
1043 >    1383,  1384,  1385,  1386,  1388,  1394,  1400,  1406,  1412,  1418,
1044 >    1424,  1430,  1436,  1443,  1449,  1455,  1461,  1470,  1480,  1479,
1045 >    1485,  1485,  1486,  1490,  1501,  1500,  1507,  1506,  1511,  1511,
1046 >    1512,  1516,  1520,  1526,  1526,  1527,  1527,  1527,  1527,  1527,
1047 >    1529,  1529,  1531,  1531,  1533,  1546,  1563,  1569,  1580,  1579,
1048 >    1625,  1625,  1626,  1627,  1628,  1629,  1630,  1631,  1632,  1633,
1049 >    1634,  1636,  1642,  1648,  1654,  1666,  1665,  1671,  1671,  1672,
1050 >    1676,  1680,  1684,  1688,  1692,  1696,  1700,  1704,  1708,  1714,
1051 >    1728,  1737,  1751,  1750,  1765,  1765,  1766,  1766,  1766,  1766,
1052 >    1768,  1774,  1780,  1790,  1792,  1792,  1793,  1793,  1795,  1812,
1053 >    1811,  1834,  1834,  1835,  1835,  1835,  1835,  1837,  1843,  1863,
1054 >    1862,  1868,  1868,  1869,  1873,  1877,  1881,  1885,  1889,  1893,
1055 >    1897,  1901,  1905,  1916,  1915,  1934,  1934,  1935,  1935,  1935,
1056 >    1937,  1944,  1943,  1949,  1949,  1950,  1954,  1958,  1962,  1966,
1057 >    1970,  1974,  1978,  1982,  1986,  1997,  1996,  2068,  2068,  2069,
1058 >    2070,  2071,  2072,  2073,  2074,  2075,  2076,  2077,  2078,  2079,
1059 >    2080,  2081,  2082,  2083,  2085,  2091,  2097,  2103,  2116,  2129,
1060 >    2135,  2141,  2145,  2152,  2151,  2156,  2156,  2157,  2161,  2167,
1061 >    2178,  2184,  2190,  2196,  2212,  2211,  2237,  2237,  2238,  2238,
1062 >    2238,  2240,  2260,  2271,  2270,  2297,  2297,  2298,  2298,  2298,
1063 >    2300,  2306,  2316,  2318,  2318,  2319,  2319,  2321,  2339,  2338,
1064 >    2359,  2359,  2360,  2360,  2360,  2362,  2368,  2378,  2380,  2380,
1065 >    2381,  2382,  2383,  2384,  2385,  2386,  2387,  2388,  2389,  2390,
1066 >    2391,  2392,  2393,  2394,  2395,  2396,  2397,  2398,  2399,  2400,
1067 >    2401,  2402,  2403,  2404,  2405,  2406,  2407,  2408,  2409,  2410,
1068 >    2411,  2412,  2413,  2414,  2415,  2416,  2417,  2418,  2419,  2420,
1069 >    2421,  2422,  2423,  2424,  2425,  2426,  2427,  2428,  2431,  2436,
1070 >    2441,  2446,  2451,  2457,  2462,  2467,  2472,  2477,  2482,  2487,
1071 >    2492,  2497,  2502,  2507,  2512,  2517,  2522,  2527,  2533,  2538,
1072 >    2543,  2548,  2553,  2558,  2563,  2568,  2571,  2576,  2579,  2584,
1073 >    2589,  2594,  2599,  2604,  2609,  2614,  2619,  2624,  2629,  2634,
1074 >    2639,  2645,  2644,  2649,  2649,  2650,  2653,  2656,  2659,  2662,
1075 >    2665,  2668,  2671,  2674,  2677,  2680,  2683,  2686,  2689,  2692,
1076 >    2695,  2698,  2701,  2704,  2707,  2710,  2713,  2719,  2718,  2723,
1077 >    2723,  2724,  2727,  2730,  2733,  2736,  2739,  2742,  2745,  2748,
1078 >    2751,  2754,  2757,  2760,  2763,  2766,  2769,  2772,  2775,  2778,
1079 >    2781,  2786,  2791,  2796,  2801,  2810,  2812,  2812,  2813,  2814,
1080 >    2815,  2816,  2817,  2818,  2819,  2820,  2821,  2822,  2823,  2824,
1081 >    2825,  2826,  2827,  2829,  2834,  2839,  2844,  2849,  2854,  2859,
1082 >    2864,  2869,  2874,  2879,  2884,  2889,  2894,  2903,  2905,  2905,
1083 >    2906,  2907,  2908,  2909,  2910,  2911,  2912,  2913,  2914,  2915,
1084 >    2917,  2923,  2939,  2948,  2954,  2960,  2966,  2975,  2981
1085   };
1086   #endif
1087  
1088 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1088 > #if YYDEBUG || YYERROR_VERBOSE || 0
1089   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1090     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1091   static const char *const yytname[] =
1092   {
1093 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1094 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1095 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1096 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1097 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1098 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1099 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1100 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1101 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1102 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1103 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1104 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1105 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1106 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1107 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1108 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1109 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1110 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1111 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1112 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1113 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1114 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1115 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1116 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1117 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1118 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1119 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1120 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1121 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1122 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1123 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1124 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1125 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1126 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1127 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1128 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1129 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1130 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1131 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1132 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1133 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1134 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1135 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1136 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1137 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1138 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1139 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1140 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1141 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1142 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1143 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1144 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1145 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1146 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1147 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1148 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1149 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1150 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1151 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1512 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1513 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1514 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1093 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1094 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1095 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1096 >  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1097 >  "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1098 >  "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1099 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1100 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1101 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1102 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1103 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1104 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1105 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1106 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1107 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1108 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "INVITE_EXPIRE_TIME", "IP",
1109 >  "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL",
1110 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR",
1111 >  "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME",
1112 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LISTEN", "MASK", "MAX_ACCEPT",
1113 >  "MAX_BANS", "MAX_BANS_LARGE", "MAX_CHANNELS", "MAX_IDLE", "MAX_INVITES",
1114 >  "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
1115 >  "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE",
1116 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD",
1117 >  "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1118 >  "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR",
1119 >  "NUMBER_PER_IP_GLOBAL", "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES",
1120 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1121 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1122 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1123 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1124 >  "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1125 >  "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1126 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1127 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1128 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1129 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1130 >  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1131 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1132 >  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1133 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1134 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1135 >  "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1136 >  "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1137 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1138 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1139 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1140 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1141 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1142 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1143 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1144 >  "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1145 >  "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1146 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1147 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1148 >  "serverinfo_item", "serverinfo_ssl_certificate_file",
1149 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1150 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1151 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1152    "serverinfo_description", "serverinfo_network_name",
1153    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1154 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1155 <  "admin_item", "admin_name", "admin_email", "admin_description",
1156 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1157 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1158 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1159 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1160 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1161 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1162 <  "oper_user", "oper_password", "oper_encrypted",
1163 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1164 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1165 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1166 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1167 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1168 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1169 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1170 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1171 <  "class_name_t", "class_ping_time", "class_ping_warning",
1172 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1173 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1174 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1175 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1154 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1155 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1156 >  "admin_items", "admin_item", "admin_name", "admin_email",
1157 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1158 >  "motd_mask", "motd_file", "pseudo_entry", "$@2", "pseudo_items",
1159 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1160 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1161 >  "logging_use_logging", "logging_file_entry", "$@3", "logging_file_items",
1162 >  "logging_file_item", "logging_file_name", "logging_file_size",
1163 >  "logging_file_type", "$@4", "logging_file_type_items",
1164 >  "logging_file_type_item", "oper_entry", "$@5", "oper_items", "oper_item",
1165 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1166 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1167 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@6",
1168 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@7",
1169 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@8",
1170 >  "class_items", "class_item", "class_name", "class_ping_time",
1171 >  "class_number_per_ip_local", "class_number_per_ip_global",
1172 >  "class_connectfreq", "class_max_channels", "class_max_number",
1173 >  "class_sendq", "class_recvq", "class_cidr_bitlen_ipv4",
1174 >  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "class_min_idle",
1175 >  "class_max_idle", "class_flags", "$@9", "class_flags_items",
1176 >  "class_flags_item", "listen_entry", "$@10", "listen_flags", "$@11",
1177    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1178 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1179 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1180 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1181 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1182 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1183 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1184 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1185 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1186 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1187 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1188 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1189 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1552 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1553 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1554 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1178 >  "listen_port", "$@12", "port_items", "port_item", "listen_address",
1179 >  "listen_host", "auth_entry", "$@13", "auth_items", "auth_item",
1180 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1181 >  "$@14", "auth_flags_items", "auth_flags_item", "auth_spoof",
1182 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@15", "resv_items",
1183 >  "resv_item", "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1184 >  "service_items", "service_item", "service_name", "shared_entry", "$@16",
1185 >  "shared_items", "shared_item", "shared_name", "shared_user",
1186 >  "shared_type", "$@17", "shared_types", "shared_type_item",
1187 >  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1188 >  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1189 >  "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1190    "connect_host", "connect_vhost", "connect_send_password",
1191 <  "connect_accept_password", "connect_port", "connect_aftype",
1192 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1193 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1559 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1560 <  "connect_compressed", "connect_auto", "connect_topicburst",
1191 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1192 >  "connect_port", "connect_aftype", "connect_flags", "$@21",
1193 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1194    "connect_hub_mask", "connect_leaf_mask", "connect_class",
1195 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1196 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1197 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1198 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1199 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1200 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1201 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1202 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1203 <  "general_gline_min_cidr6", "general_burst_away",
1204 <  "general_use_whois_actually", "general_reject_hold_time",
1195 >  "connect_ssl_cipher_list", "kill_entry", "$@22", "kill_items",
1196 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@23",
1197 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1198 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@24",
1199 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1200 >  "general_entry", "general_items", "general_item", "general_away_count",
1201 >  "general_away_time", "general_max_watch",
1202 >  "general_whowas_history_length", "general_cycle_on_host_change",
1203 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1204 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1205    "general_tkline_expire_notices", "general_kill_chase_time_limit",
1206 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1574 <  "general_disable_remote_commands", "general_failed_oper_notice",
1206 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1207    "general_anti_nick_flood", "general_max_nick_time",
1208    "general_max_nick_changes", "general_max_accept",
1209    "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1210 <  "general_ts_max_delta", "general_havent_read_conf",
1211 <  "general_kline_with_reason", "general_kline_reason",
1212 <  "general_invisible_on_connect", "general_warn_no_nline",
1213 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1214 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1215 <  "general_stats_i_oper_only", "general_pace_wait",
1216 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1217 <  "general_pace_wait_simple", "general_short_motd",
1218 <  "general_no_oper_flood", "general_true_no_oper_flood",
1219 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1220 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1221 <  "general_default_cipher_preference", "general_compression_level",
1590 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1591 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1592 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1593 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1210 >  "general_ts_max_delta", "general_invisible_on_connect",
1211 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1212 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1213 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1214 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1215 >  "general_pace_wait", "general_caller_id_wait",
1216 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1217 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1218 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1219 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1220 >  "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1221 >  "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1222    "general_min_nonwildcard_simple", "general_default_floodcount",
1223 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1224 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1225 <  "gline_logging", "$@32", "gline_logging_types",
1226 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1227 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1228 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1229 <  "channel_restrict_channels", "channel_disable_local_channels",
1230 <  "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",
1605 <  "channel_default_split_user_count", "channel_default_split_server_count",
1606 <  "channel_no_create_on_split", "channel_no_join_on_split",
1607 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1223 >  "general_default_floodtime", "channel_entry", "channel_items",
1224 >  "channel_item", "channel_disable_fake_channels",
1225 >  "channel_invite_client_count", "channel_invite_client_time",
1226 >  "channel_invite_delay_channel", "channel_invite_expire_time",
1227 >  "channel_knock_client_count", "channel_knock_client_time",
1228 >  "channel_knock_delay_channel", "channel_max_channels",
1229 >  "channel_max_invites", "channel_max_bans", "channel_max_bans_large",
1230 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1231    "serverhide_entry", "serverhide_items", "serverhide_item",
1232 <  "serverhide_flatten_links", "serverhide_hide_servers",
1233 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1234 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1232 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1233 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1234 >  "serverhide_hide_servers", "serverhide_hide_services",
1235 >  "serverhide_hidden_name", "serverhide_hidden",
1236 >  "serverhide_hide_server_ips", YY_NULLPTR
1237   };
1238   #endif
1239  
1240   # ifdef YYPRINT
1241 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1242 <   token YYLEX-NUM.  */
1241 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1242 >   (internal) symbol number NUM (which must be that of a token).  */
1243   static const yytype_uint16 yytoknum[] =
1244   {
1245         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1640 | Line 1265 | static const yytype_uint16 yytoknum[] =
1265       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1266       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1267       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1268 <     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
1268 >      59,   125,   123,    61,    44,    58
1269   };
1270   # endif
1271  
1272 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1651 < static const yytype_uint16 yyr1[] =
1652 < {
1653 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1654 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1655 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1656 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1657 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1658 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1659 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1660 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1661 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1662 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1663 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1664 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1665 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1666 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1667 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1668 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1669 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1670 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1671 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1672 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1673 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1674 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1675 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1676 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1677 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1678 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1679 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1680 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1681 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1682 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1683 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1684 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1685 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1686 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1687 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1688 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1689 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1690 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1691 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1692 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1693 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1694 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1695 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1696 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1697 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1698 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1699 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1700 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1701 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1702 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1703 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1704 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1705 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1706 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1707 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1708 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1709 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1710 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1711 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1712 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1713 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1714 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1715 <     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
1728 < };
1272 > #define YYPACT_NINF -1054
1273  
1274 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1275 < static const yytype_uint8 yyr2[] =
1274 > #define yypact_value_is_default(Yystate) \
1275 >  (!!((Yystate) == (-1054)))
1276 >
1277 > #define YYTABLE_NINF -130
1278 >
1279 > #define yytable_value_is_error(Yytable_value) \
1280 >  0
1281 >
1282 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1283 >     STATE-NUM.  */
1284 > static const yytype_int16 yypact[] =
1285   {
1286 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1287 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1288 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1289 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1290 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1291 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1292 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1293 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1294 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1295 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1297 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1298 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1299 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1302 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1304 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1305 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1306 <       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1307 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1308 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1310 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1311 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1312 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1313 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1314 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1316 <       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1317 <       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1318 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1319 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1320 <       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1321 <       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1322 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1324 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1326 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1328 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1329 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1330 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1331 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1332 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1333 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1334 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1335 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1337 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1338 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1342 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1343 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1344 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1347 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1348 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1349 <       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1351 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1352 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1354 <       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1356 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1357 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1358 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1359 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1360 <       4,     4,     4,     4
1286 >   -1054,   723, -1054,  -205,  -214,  -204, -1054, -1054, -1054,  -188,
1287 >   -1054,  -183, -1054, -1054, -1054,  -180, -1054, -1054, -1054,  -175,
1288 >    -165, -1054,  -159, -1054,  -144, -1054, -1054, -1054, -1054, -1054,
1289 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1290 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1291 >   -1054,   294,   939,  -143,  -116,  -108,    21,  -107,   414,   -97,
1292 >     -96,   -72,    33,   -58,   -57,   -39,   985,   583,   -28,    15,
1293 >     -26,    11,   -23,  -156,  -150,    -8,     4,     3, -1054, -1054,
1294 >   -1054, -1054, -1054,    23,    50,    52,    60,    68,    69,    71,
1295 >      76,    85,    96,   104,   105,   106,   110,   272, -1054, -1054,
1296 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1297 >   -1054, -1054, -1054,   729,   578,    38, -1054,   112,    19, -1054,
1298 >   -1054,    81, -1054,   113,   114,   118,   121,   125,   128,   130,
1299 >     133,   135,   136,   138,   139,   142,   146,   147,   152,   156,
1300 >     157,   170,   173,   174,   175,   176,   178,   179,   180, -1054,
1301 >   -1054,   181,   183,   185,   186,   189,   203,   207,   209,   210,
1302 >     211,   212,   214,   219,   221,   222,   224,   225,   227,   229,
1303 >      55, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1304 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1305 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1306 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1307 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   440,
1308 >      41,    67,    -7,   231,   235,     2, -1054, -1054, -1054,    26,
1309 >     386,    30, -1054,   236,   237,   238,   239,   242,   244,   245,
1310 >     247,   248,   143, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1311 >   -1054, -1054, -1054,    14,   249,   250,   251,   253,   257,   258,
1312 >     259,   260,   262,   265,   266,   267,   268,   276,   282,   283,
1313 >     285,   153, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1314 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1315 >      16,    58,   286,    34, -1054, -1054, -1054,   100,   193, -1054,
1316 >     287,    47, -1054, -1054,    62, -1054,   269,   339,   370,   292,
1317 >   -1054,   168,   403,   315,   420,   403,   403,   403,   424,   403,
1318 >     403,   425,   427,   430,   431,   311, -1054,   312,   310,   313,
1319 >     314, -1054,   316,   317,   318,   319,   320,   321,   322,   324,
1320 >     328,   331,   333,   230, -1054, -1054, -1054, -1054, -1054, -1054,
1321 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1322 >     347,   336,   345,   349,   352,   353,   356, -1054,   357,   359,
1323 >     360,   362,   363,   365,   367,   325, -1054, -1054, -1054, -1054,
1324 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1325 >   -1054, -1054,   368,   369,    29, -1054, -1054, -1054,   421,   350,
1326 >   -1054, -1054,   371,   372,    39, -1054, -1054, -1054,   392,   403,
1327 >     435,   403,   403,   395,   449,   403,   396,   500,   501,   505,
1328 >     404,   405,   407,   403,   510,   511,   512,   520,   403,   523,
1329 >     524,   526,   528,   432,   411,   413,   436,   403,   403,   438,
1330 >     443,   444,  -168,  -160,   445,   447,   448,   450,   529,   403,
1331 >     452,   403,   403,   454,   551,   437, -1054,   441,   433,   442,
1332 >   -1054,   456,   457,   458,   459,   460,    31, -1054, -1054, -1054,
1333 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,   461,   462,    44,
1334 >   -1054, -1054, -1054,   453,   463,   465, -1054,   470, -1054,    10,
1335 >   -1054, -1054, -1054, -1054, -1054,   544,   546,   455, -1054,   474,
1336 >     472,   473,    28, -1054, -1054, -1054,   477,   475,   476, -1054,
1337 >     479,   481,   482,   485, -1054,   486,   489,   160, -1054, -1054,
1338 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   495,
1339 >     498,   499,   502,    12, -1054, -1054, -1054, -1054,   467,   469,
1340 >     403,   550,   515,   604,   532,   534,   537,   504, -1054, -1054,
1341 >     631,   625,   539,   629,   645,   646,   633,   635,   638,   639,
1342 >     641,   649,   652,   656,   657,   662,   663,   558, -1054,   561,
1343 >     559, -1054,    20, -1054, -1054, -1054, -1054,   584,   567, -1054,
1344 >      13,   572,   575,   576,   579,   580,    18, -1054, -1054, -1054,
1345 >   -1054, -1054,   687,   586, -1054,   587,   588, -1054,   592,     7,
1346 >   -1054, -1054, -1054, -1054,   589,   596,   597, -1054,   598,   261,
1347 >     599,   601,   603,   605,   606,   612,   614,   615,   616,   617,
1348 >     618,   619,   622, -1054, -1054,   725,   744,   403,   621,   747,
1349 >     403,   748,   403,   708,   749,   750,   751,   403,   752,   752,
1350 >     632, -1054, -1054,   739,  -119,   740,   654,   742,   745,   637,
1351 >     753,   754,   762,   757,   760,   764,   765,   643, -1054,   770,
1352 >     772,   665, -1054,   667, -1054,   775,   776,   671, -1054,   675,
1353 >     681,   682,   685,   689,   693,   694,   697,   700,   702,   705,
1354 >     707,   713,   715,   716,   717,   720,   726,   727,   730,   731,
1355 >     732,   733,   737,   738,   741,   756,   602,   743,   746,   758,
1356 >     759,   763,   766,   767,   774,   777,   779,   780,   781,   782,
1357 >     783,   784,   788,   790,   791,   795,   797,   801, -1054, -1054,
1358 >     831,   768,   653,   845,   861,   850,   856,   857,   802, -1054,
1359 >     859,   863,   805, -1054, -1054,   866,   868,   761,   886,   806,
1360 >   -1054,   807,   811, -1054, -1054,   881,   884,   812, -1054, -1054,
1361 >     919,   833,   813,   921,   923,   924,   838,   817,   927,   928,
1362 >     823, -1054, -1054,   930,   931,   932,   827, -1054,   828,   829,
1363 >     830,   832,   834,   835,   836,   837,   839, -1054,   840,   841,
1364 >     842,   843,   844,   846,   847,   848,   849,   851,   852,   853,
1365 >     854,   855,   858,   860,   862, -1054, -1054,   937,   864,   865,
1366 >   -1054,   869, -1054,    94, -1054,   944,   951,   956,   962,   870,
1367 >   -1054,   871, -1054, -1054,   963,   872,   965,   873, -1054, -1054,
1368 >   -1054, -1054, -1054,   403,   403,   403,   403,   403,   403,   403,
1369 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1370 >   -1054, -1054, -1054, -1054, -1054,   874,   876,   877,   -29,   878,
1371 >     879,   880,   882,   883,   885,   887,   888,   889,   279,   890,
1372 >     891, -1054,   892,   893,   894,   895,   896,   897,   898,     6,
1373 >     899,   900,   901,   902,   903,   904,   905, -1054,   906,   907,
1374 >   -1054, -1054,   908,   909, -1054, -1054, -1054, -1054, -1054, -1054,
1375 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1376 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1377 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1378 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1379 >   -1054,  -176, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1380 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1381 >   -1054, -1054, -1054, -1054, -1054,  -158, -1054, -1054, -1054, -1054,
1382 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1383 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   910,   911,
1384 >     608,   912,   913,   914,   915,   916, -1054,   917,   918, -1054,
1385 >     920,   922,   -33,   875,   925, -1054, -1054, -1054, -1054,   926,
1386 >     933, -1054,   934,   935,   493,   936,   938,   940,   941,   710,
1387 >     942,   943, -1054,   945,   946,   947, -1054, -1054, -1054, -1054,
1388 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1389 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1390 >   -1054, -1054, -1054,   948,   771, -1054, -1054,   949,   929,   950,
1391 >   -1054,    45, -1054, -1054, -1054, -1054,   952,   954,   955,   957,
1392 >   -1054, -1054,   958,   778,   959, -1054, -1054, -1054, -1054, -1054,
1393 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,  -149, -1054,
1394 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   752,
1395 >     752,   752, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1396 >   -1054, -1054, -1054, -1054, -1054,  -124, -1054, -1054, -1054, -1054,
1397 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   756,
1398 >   -1054,   602, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1399 >   -1054, -1054, -1054, -1054,   -50, -1054, -1054, -1054, -1054, -1054,
1400 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,   -12, -1054,
1401 >     982,   886,   960, -1054, -1054, -1054, -1054, -1054, -1054,   867,
1402 >   -1054,   961,   964, -1054, -1054,   966,   967, -1054, -1054,   968,
1403 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1404 >   -1054, -1054,   -10, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1405 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1406 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1407 >      -2, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1408 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,    66, -1054,
1409 >   -1054,   970,   -85,   953,   974, -1054, -1054, -1054, -1054, -1054,
1410 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1411 >   -1054,    80, -1054, -1054, -1054,   -29, -1054, -1054, -1054, -1054,
1412 >       6, -1054, -1054, -1054,   608, -1054,   -33, -1054, -1054, -1054,
1413 >     981,   984,  1019,  1021,  1024,  1025, -1054,   493, -1054,   710,
1414 >   -1054,   771,   975,   976,   977,   295, -1054, -1054,   778, -1054,
1415 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1416 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1417 >   -1054, -1054, -1054,    89, -1054, -1054, -1054,   295, -1054
1418   };
1419  
1420 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1421 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1422 <   means the default is an error.  */
1420 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1421 >     Performed when YYTABLE does not specify something else to do.  Zero
1422 >     means the default is an error.  */
1423   static const yytype_uint16 yydefact[] =
1424   {
1425 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1426 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1427 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1428 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1429 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1430 <     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,
1828 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1831 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1832 <       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,
1840 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1841 <       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,
1425 >       2,     0,     1,     0,     0,     0,   234,   395,   443,     0,
1426 >     458,     0,   298,   434,   274,     0,   100,   152,   332,     0,
1427 >       0,   373,     0,   109,     0,   349,     3,    23,    11,     4,
1428 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1429 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1430 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1431         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1432 <       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1433 <       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1434 <       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1432 >       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1433 >      95,    94,   632,     0,     0,     0,     0,     0,     0,     0,
1434 >       0,     0,     0,     0,     0,     0,     0,     0,   617,   631,
1435 >     620,   621,   622,   623,   624,   625,   626,   627,   628,   618,
1436 >     619,   629,   630,     0,     0,     0,   456,     0,     0,   454,
1437 >     455,     0,   517,     0,     0,     0,     0,     0,     0,     0,
1438         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   587,
1440 +     561,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1441         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442 +       0,   469,   470,   471,   515,   478,   516,   510,   511,   512,
1443 +     513,   509,   482,   472,   473,   474,   475,   476,   477,   479,
1444 +     480,   481,   483,   484,   514,   488,   489,   490,   491,   487,
1445 +     486,   492,   499,   500,   493,   494,   495,   485,   497,   507,
1446 +     508,   505,   506,   498,   496,   503,   504,   501,   502,     0,
1447 +       0,     0,     0,     0,     0,     0,    46,    47,    48,     0,
1448 +       0,     0,   659,     0,     0,     0,     0,     0,     0,     0,
1449 +       0,     0,     0,   649,   650,   651,   652,   653,   654,   655,
1450 +     657,   656,   658,     0,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 +       0,     0,    54,    69,    66,    64,    70,    71,    65,    55,
1453 +      68,    58,    59,    60,    56,    67,    61,    62,    63,    57,
1454 +       0,     0,     0,     0,   124,   125,   126,     0,     0,   347,
1455 +       0,     0,   345,   346,     0,    96,     0,     0,     0,     0,
1456 +      91,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1457 +       0,     0,     0,     0,     0,     0,   616,     0,     0,     0,
1458 +       0,   268,     0,     0,     0,     0,     0,     0,     0,     0,
1459 +       0,     0,     0,     0,   237,   238,   241,   243,   244,   245,
1460 +     246,   247,   248,   249,   239,   240,   242,   250,   251,   252,
1461 +       0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
1462 +       0,     0,     0,     0,     0,     0,   398,   399,   400,   401,
1463 +     402,   403,   404,   406,   405,   408,   412,   409,   410,   411,
1464 +     407,   449,     0,     0,     0,   446,   447,   448,     0,     0,
1465 +     453,   464,     0,     0,     0,   461,   462,   463,     0,     0,
1466         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1467         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,
1468         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1867      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1868       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1869       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1870       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1871       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1872       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1873       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1874       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1469         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1470 <       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1471 <     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1472 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1470 >       0,     0,     0,     0,     0,     0,   468,     0,     0,     0,
1471 >     315,     0,     0,     0,     0,     0,     0,   301,   302,   303,
1472 >     304,   309,   305,   306,   307,   308,   440,     0,     0,     0,
1473 >     437,   438,   439,     0,     0,     0,   276,     0,   286,     0,
1474 >     284,   285,   287,   288,    49,     0,     0,     0,    45,     0,
1475 >       0,     0,     0,   103,   104,   105,     0,     0,     0,   201,
1476 >       0,     0,     0,     0,   175,     0,     0,     0,   155,   156,
1477 >     157,   158,   159,   162,   163,   164,   161,   160,   165,     0,
1478 >       0,     0,     0,     0,   335,   336,   337,   338,     0,     0,
1479 >       0,     0,     0,     0,     0,     0,     0,     0,   648,    72,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 <     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1482 <     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1483 <       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1484 <     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 >       0,     0,     0,     0,     0,     0,     0,     0,    53,     0,
1482 >       0,   381,     0,   376,   377,   378,   127,     0,     0,   123,
1483 >       0,     0,     0,     0,     0,     0,     0,   112,   113,   115,
1484 >     114,   116,     0,     0,   344,     0,     0,   359,     0,     0,
1485 >     352,   353,   354,   355,     0,     0,     0,    90,     0,    28,
1486         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1487 +       0,     0,     0,   615,   253,     0,     0,     0,     0,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489 +       0,   236,   413,     0,     0,     0,     0,     0,     0,     0,
1490 +       0,     0,     0,     0,     0,     0,     0,     0,   397,     0,
1491 +       0,     0,   445,     0,   452,     0,     0,     0,   460,     0,
1492         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1493         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1888       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1889     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1891       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1892       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 <       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1497 <       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1496 >       0,     0,     0,     0,     0,     0,     0,     0,   467,   310,
1497 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   300,
1498 >       0,     0,     0,   436,   289,     0,     0,     0,     0,     0,
1499 >     283,     0,     0,    44,   106,     0,     0,     0,   102,   166,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501 <       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1502 <     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1899 <     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1900 <       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1901 <       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1902 <       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1903 <       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1904 <     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1905 <      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1906 <     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1501 >       0,   154,   339,     0,     0,     0,     0,   334,     0,     0,
1502 >       0,     0,     0,     0,     0,     0,     0,   647,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1505 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1507 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1508 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1509 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1510 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1511 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1512 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1513 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1514 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1515 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1516 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1517 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1518 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1519 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1520 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1521 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1522 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1523 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1525 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1526 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1527 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1528 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1529 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1530 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1531 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1532 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1533 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1534 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1535 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1536 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1537 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1538 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1539 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1540 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1541 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1542 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1543 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1544 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1545 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1546 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1547 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1548 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1549 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1550 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1551 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1552 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1553 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1554 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1555 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1556 <     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
1965 < };
1966 <
1967 < /* YYDEFGOTO[NTERM-NUM].  */
1968 < static const yytype_int16 yydefgoto[] =
1969 < {
1970 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1971 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1972 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1973 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1974 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1975 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1976 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1977 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1978 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1979 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1980 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1981 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1982 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1983 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1984 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1985 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1986 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1987 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1988 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1989 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1990 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1991 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1992 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1993 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1994 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1995 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1996 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1997 <     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
1504 >       0,     0,     0,     0,     0,    52,   379,     0,     0,     0,
1505 >     375,     0,   122,     0,   117,     0,     0,     0,     0,     0,
1506 >     111,     0,   343,   356,     0,     0,     0,     0,   351,    99,
1507 >      98,    97,   645,    28,    28,    28,    28,    28,    28,    28,
1508 >      30,    29,   646,   633,   634,   635,   636,   637,   638,   639,
1509 >     640,   643,   644,   641,   642,     0,     0,     0,     0,     0,
1510 >       0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
1511 >       0,   235,     0,     0,     0,     0,     0,     0,     0,     0,
1512 >       0,     0,     0,     0,     0,     0,     0,   396,     0,     0,
1513 >     444,   457,     0,     0,   459,   531,   535,   518,   519,   550,
1514 >     522,   613,   614,   558,   523,   524,   555,   530,   529,   538,
1515 >     528,   525,   526,   534,   533,   532,   556,   520,   611,   612,
1516 >     554,   597,   591,   607,   592,   593,   594,   602,   610,   595,
1517 >     604,   608,   598,   609,   599,   603,   596,   606,   601,   600,
1518 >     605,     0,   590,   570,   571,   572,   565,   583,   566,   567,
1519 >     568,   578,   586,   569,   580,   584,   574,   585,   575,   579,
1520 >     573,   582,   577,   576,   581,     0,   564,   551,   549,   552,
1521 >     557,   553,   540,   547,   548,   545,   546,   541,   542,   543,
1522 >     544,   559,   560,   527,   537,   536,   539,   521,     0,     0,
1523 >       0,     0,     0,     0,     0,     0,   299,     0,     0,   435,
1524 >       0,     0,     0,   294,   290,   293,   275,    50,    51,     0,
1525 >       0,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1526 >       0,     0,   153,     0,     0,     0,   333,   663,   660,   661,
1527 >     662,   667,   666,   668,   664,   665,    86,    81,    89,    80,
1528 >      87,    88,    79,    83,    82,    74,    73,    78,    75,    77,
1529 >      76,    84,    85,     0,     0,   374,   128,     0,     0,     0,
1530 >     140,     0,   132,   133,   135,   134,     0,     0,     0,     0,
1531 >     110,   348,     0,     0,     0,   350,    31,    32,    33,    34,
1532 >      35,    36,    37,   263,   264,   258,   273,   272,     0,   271,
1533 >     259,   267,   260,   266,   254,   265,   257,   256,   255,    38,
1534 >      38,    38,    40,    39,   261,   262,   418,   421,   422,   432,
1535 >     429,   415,   430,   427,   428,     0,   426,   431,   414,   420,
1536 >     417,   419,   433,   416,   450,   451,   465,   466,   588,     0,
1537 >     562,     0,   313,   314,   324,   320,   321,   323,   328,   325,
1538 >     326,   319,   327,   322,     0,   318,   312,   331,   330,   329,
1539 >     311,   442,   441,   297,   296,   281,   282,   280,     0,   279,
1540 >       0,     0,     0,   107,   108,   174,   171,   221,   233,   208,
1541 >     217,     0,   206,   211,   227,     0,   220,   225,   231,   210,
1542 >     213,   222,   224,   228,   218,   226,   214,   232,   216,   223,
1543 >     212,   215,     0,   204,   167,   169,   172,   173,   184,   185,
1544 >     186,   179,   197,   180,   181,   182,   192,   200,   183,   194,
1545 >     198,   188,   199,   189,   193,   187,   196,   191,   190,   195,
1546 >       0,   178,   168,   170,   342,   340,   341,   380,   385,   391,
1547 >     394,   387,   393,   388,   392,   390,   386,   389,     0,   384,
1548 >     136,     0,     0,     0,     0,   131,   119,   118,   120,   121,
1549 >     357,   363,   369,   372,   365,   371,   366,   370,   368,   364,
1550 >     367,     0,   362,   358,   269,     0,    41,    42,    43,   424,
1551 >       0,   589,   563,   316,     0,   277,     0,   295,   292,   291,
1552 >       0,     0,     0,     0,     0,     0,   202,     0,   176,     0,
1553 >     382,     0,     0,     0,     0,     0,   130,   360,     0,   270,
1554 >     425,   317,   278,   207,   230,   205,   229,   219,   209,   203,
1555 >     177,   383,   137,   139,   138,   150,   149,   145,   147,   151,
1556 >     148,   144,   146,     0,   143,   361,   141,     0,   142
1557   };
1558  
1559 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1560 <   STATE-NUM.  */
2009 < #define YYPACT_NINF -952
2010 < static const yytype_int16 yypact[] =
1559 >  /* YYPGOTO[NTERM-NUM].  */
1560 > static const yytype_int16 yypgoto[] =
1561   {
1562 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1563 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1564 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1565 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1566 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1567 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1568 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1569 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1570 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1571 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1572 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1573 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1574 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1575 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1576 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1577 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1578 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1579 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1580 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1581 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1582 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1583 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1584 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1585 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1586 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1587 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1588 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1589 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1590 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1591 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
2042 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
2043 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
2044 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
2045 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
2046 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
2047 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
2048 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
2049 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
2050 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
2051 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
2052 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
2053 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
2054 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
2055 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
2056 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
2057 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
2058 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
2059 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2060 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
2061 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
2062 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
2063 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
2064 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
2065 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
2066 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
2067 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
2068 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
2069 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
2070 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
2071 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
2072 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
2073 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
2074 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
2075 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
2076 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
2077 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2078 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2079 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
2080 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
2081 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
2082 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
2083 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
2084 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
2085 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
2086 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
2087 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
2088 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
2089 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
2090 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
2091 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
2092 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
2093 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
2094 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
2095 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2096 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2097 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
2098 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
2099 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
2100 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
2101 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
2102 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2103 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
2104 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
2105 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
2106 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
2107 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
2108 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2109 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2110 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2111 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2112 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2113 <    -952,  -952,  -952,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
2114 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2115 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
2116 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2117 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
2118 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
2119 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
2120 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
2121 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
2122 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2123 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2124 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
2125 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
2126 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
2127 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2128 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
2129 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
2130 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
2131 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
2132 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
2133 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
2134 <    -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
1562 >   -1054, -1054, -1054,  -394,  -310, -1053,  -638, -1054, -1054,   969,
1563 >   -1054, -1054, -1054, -1054,   792, -1054, -1054, -1054, -1054, -1054,
1564 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1565 >   -1054, -1054, -1054, -1054,  1037, -1054, -1054, -1054, -1054, -1054,
1566 >   -1054,   594, -1054, -1054, -1054, -1054, -1054,   565, -1054, -1054,
1567 >   -1054, -1054, -1054, -1054,   971, -1054, -1054, -1054, -1054,   107,
1568 >   -1054, -1054, -1054, -1054, -1054,  -219, -1054, -1054, -1054,   640,
1569 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1570 >   -1054,  -118, -1054, -1054, -1054,  -117, -1054, -1054, -1054,   824,
1571 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1572 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,   -86, -1054, -1054,
1573 >   -1054, -1054, -1054,   -92, -1054,   691, -1054, -1054, -1054,    40,
1574 >   -1054, -1054, -1054, -1054, -1054,   734, -1054, -1054, -1054, -1054,
1575 >   -1054, -1054, -1054,   -83, -1054, -1054, -1054, -1054, -1054, -1054,
1576 >     659, -1054, -1054, -1054, -1054, -1054,   972, -1054, -1054, -1054,
1577 >   -1054,   609, -1054, -1054, -1054, -1054, -1054,   -95, -1054, -1054,
1578 >   -1054,   623, -1054, -1054, -1054, -1054,   -84, -1054, -1054, -1054,
1579 >     973, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1580 >   -1054, -1054,   -62, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1581 >   -1054,   735, -1054, -1054, -1054, -1054, -1054,   815, -1054, -1054,
1582 >   -1054, -1054,  1092, -1054, -1054, -1054, -1054,   808, -1054, -1054,
1583 >   -1054, -1054,  1041, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1584 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1585 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1586 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1587 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054,    92, -1054, -1054,
1588 >   -1054,    97, -1054, -1054, -1054, -1054, -1054, -1054,  1118, -1054,
1589 >   -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054, -1054,
1590 >   -1054, -1054, -1054, -1054, -1054,   978, -1054, -1054, -1054, -1054,
1591 >   -1054, -1054, -1054, -1054, -1054
1592   };
1593  
1594 < /* YYPGOTO[NTERM-NUM].  */
1595 < static const yytype_int16 yypgoto[] =
1594 >  /* YYDEFGOTO[NTERM-NUM].  */
1595 > static const yytype_int16 yydefgoto[] =
1596   {
1597 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1598 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1599 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1600 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1601 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1602 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1603 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1604 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1605 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1606 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1607 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1608 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1609 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1610 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1611 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1612 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1613 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1614 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1615 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1616 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1617 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1618 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1619 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1620 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1621 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1622 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1623 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1624 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1625 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
1626 <    -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
1597 >      -1,     1,    26,   830,   831,  1092,  1093,    27,   225,   226,
1598 >     227,   228,    28,   271,   272,   273,   274,   275,   276,   277,
1599 >     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1600 >     288,   289,    29,    77,    78,    79,    80,    81,    30,    63,
1601 >     502,   503,   504,   505,    31,    70,   586,   587,   588,   589,
1602 >     590,   591,    32,   293,   294,   295,   296,   297,  1051,  1052,
1603 >    1053,  1054,  1055,  1233,  1313,  1314,    33,    64,   517,   518,
1604 >     519,   520,   521,   522,   523,   524,   525,   526,   527,   757,
1605 >    1210,  1211,   528,   752,  1182,  1183,    34,    53,   343,   344,
1606 >     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1607 >     355,   356,   357,   358,   359,   628,  1078,  1079,    35,    61,
1608 >     488,   737,  1148,  1149,   489,   490,   491,  1152,   994,   995,
1609 >     492,   493,    36,    59,   466,   467,   468,   469,   470,   471,
1610 >     472,   722,  1134,  1135,   473,   474,   475,    37,    65,   533,
1611 >     534,   535,   536,   537,    38,   301,   302,   303,    39,    72,
1612 >     599,   600,   601,   602,   603,   815,  1251,  1252,    40,    68,
1613 >     572,   573,   574,   575,   798,  1228,  1229,    41,    54,   375,
1614 >     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1615 >     649,  1105,  1106,   386,   387,   388,   389,   390,    42,    60,
1616 >     479,   480,   481,   482,    43,    55,   394,   395,   396,   397,
1617 >      44,   118,   119,   120,    45,    57,   404,   405,   406,   407,
1618 >      46,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1619 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1620 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1621 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1622 >     209,   210,   211,   212,   213,   435,   955,   956,   214,   434,
1623 >     931,   932,   215,   216,   217,   218,    47,    97,    98,    99,
1624 >     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1625 >     110,   111,   112,    48,   242,   243,   244,   245,   246,   247,
1626 >     248,   249,   250,   251,   252
1627   };
1628  
1629 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1630 <   positive, shift that token.  If negative, reduce the rule which
1631 <   number is the opposite.  If zero, do what YYDEFACT says.
1632 <   If YYTABLE_NINF, syntax error.  */
2208 < #define YYTABLE_NINF -1
2209 < static const yytype_uint16 yytable[] =
1629 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1630 >     positive, shift that token.  If negative, reduce the rule whose
1631 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1632 > static const yytype_int16 yytable[] =
1633   {
1634 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
1635 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
1636 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
1637 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
1638 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
1639 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
1640 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
1641 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
1642 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
1643 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
1644 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
1645 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
1646 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
1647 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
1648 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
1649 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
1650 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
1651 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
1652 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
1653 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
1654 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
1655 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
1656 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
1657 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
1658 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
1659 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
1660 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
1661 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
1662 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
1663 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
1664 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
1665 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
1666 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
1667 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
1668 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
1669 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
1670 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
1671 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
1672 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
1673 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
1674 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
1675 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
1676 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
1677 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
1678 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
1679 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
1680 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
1681 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
1682 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
1683 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
1684 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
1685 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
1686 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
1687 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
1688 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
1689 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
1690 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
1691 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
1692 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
1693 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
1694 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
1695 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
1696 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
1697 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
1698 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
1699 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
1700 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
1701 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
1702 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
1703 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
1704 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
1705 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
1706 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
1707 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
1708 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
1709 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
1710 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
1711 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
1712 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
1713 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
1714 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
1715 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
1716 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
1717 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
1718 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
1719 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
1720 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
1721 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
1722 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
1723 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
1724 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
1725 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
1726 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
1727 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
1728 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
1729 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
1730 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
1731 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
1732 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
1733 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
1734 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
1735 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
1736 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
1737 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
1738 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
1739 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
1740 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
1741 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
1742 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
1743 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
1744 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
1745 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
1746 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
1747 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
1748 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
1749 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
1750 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
1751 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
1752 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
1753 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
1754 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
1755 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
1756 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
1757 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
1758 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
1759 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
1760 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
1761 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
1762 <    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,
1634 >     859,   860,   610,   222,    73,   613,   614,   615,   595,   617,
1635 >     618,   483,   299,   529,  1103,  1145,   291,   569,    51,   581,
1636 >     116,   569,   116,  1076,   858,    49,    50,   499,    52,   499,
1637 >     391,   529,   457,    74,   222,   291,  1256,  1257,  1258,   391,
1638 >     401,    75,   476,   703,    56,   476,  1047,   704,   299,    58,
1639 >     458,   705,    62,   530,  1118,   706,   122,    66,  1119,   863,
1640 >     864,   123,   124,   595,   125,   126,   484,    67,   483,   127,
1641 >     459,   530,  1120,    69,   305,   485,  1121,   486,   128,   129,
1642 >     130,  1254,   401,   306,   117,  1255,   117,   131,    71,   113,
1643 >     132,   133,   134,   531,   392,  1047,  1077,   135,   460,   670,
1644 >     223,   672,   673,   392,    76,   676,  1259,   500,   596,   500,
1645 >    1260,   531,   300,   684,   136,   137,   114,   570,   689,   582,
1646 >    1283,   570,   224,   484,   115,   121,   138,   698,   699,   139,
1647 >     140,   223,   485,   487,   486,   219,   220,   141,   532,   712,
1648 >     402,   714,   715,   142,   232,   143,  1048,   144,   300,   145,
1649 >     461,   146,   147,   224,   253,   393,   532,  1146,   462,   463,
1650 >     221,   506,   148,   596,   393,   403,  1147,   477,   149,   150,
1651 >     477,   151,   152,   153,   229,   230,   154,   233,   464,   507,
1652 >    1263,   254,   402,   255,  1264,   583,   234,   235,   236,  -129,
1653 >     487,   237,   238,   231,   581,  1048,   239,   240,   241,   508,
1654 >     501,   155,   501,   584,   290,  1104,   298,   403,  -129,   304,
1655 >     256,   156,   157,   158,   159,   160,   161,   162,  1265,   585,
1656 >    1276,   257,  1266,   494,  1277,   307,   597,   509,  1278,   598,
1657 >     770,   327,  1279,   497,   309,   571,   292,   308,   817,   571,
1658 >    1049,   739,   258,   766,   549,   803,   259,   328,   329,   809,
1659 >     399,   799,   330,   465,   260,   292,   311,   261,   262,   747,
1660 >     661,   510,   728,   478,  1050,   578,   478,   163,   164,   165,
1661 >     667,   166,   167,    82,   580,   732,  1234,   608,   593,   511,
1662 >     168,   597,   169,   312,   598,   313,   455,   263,   576,  1049,
1663 >    1089,  1090,  1091,   314,   582,    73,  1280,   331,    83,    84,
1664 >    1281,   315,   316,   264,   317,    85,   265,   266,   267,   318,
1665 >    1287,   512,   513,  1050,  1288,   332,   333,   847,   319,  1316,
1666 >     850,   334,   852,  1317,    74,   335,   360,   857,   361,   320,
1667 >     362,   336,    75,    86,    87,    88,    89,   321,   322,   323,
1668 >     337,   338,   339,   324,   363,   398,   408,   409,    90,    91,
1669 >      92,   410,   340,   268,   411,    93,    94,    95,   412,    96,
1670 >     583,   413,   514,   414,   364,  1305,   415,  1306,   416,   417,
1671 >     609,   418,   419,   341,   547,   420,   269,   270,   584,   421,
1672 >     422,   365,   515,   366,   567,   423,   516,   506,   858,   424,
1673 >     425,   760,   367,   604,   585,    76,   823,   824,   825,   826,
1674 >     827,   828,   829,   426,   368,   507,   427,   428,   429,   430,
1675 >    1307,   431,   432,   433,   436,   122,   437,   342,   438,   439,
1676 >     123,   124,   440,   125,   126,   508,   369,  1308,   127,  1066,
1677 >    1067,  1068,  1069,  1070,  1071,  1072,   441,   128,   129,   130,
1678 >     442,   457,   443,   444,   445,   446,   131,   447,   370,   132,
1679 >     133,   134,   448,   509,   449,   450,   135,   451,   452,   458,
1680 >     453,   640,   454,   605,   495,  1309,  1310,   371,   496,   538,
1681 >     539,   540,   541,   136,   137,   542,   372,   543,   544,   459,
1682 >     545,   546,   550,   551,   552,   138,   553,   510,   139,   140,
1683 >     554,   555,   556,   557,   606,   558,   141,  1157,   559,   560,
1684 >     561,   562,   142,   325,   143,   511,   144,   460,   145,   563,
1685 >     146,   147,   609,  1158,  1159,   564,   565,  1311,   566,   577,
1686 >     592,   148,   607,  1312,  1160,   373,   611,   149,   150,   612,
1687 >     151,   152,   153,   616,   619,   154,   620,   512,   513,   621,
1688 >     622,   623,   624,   625,   671,   663,   626,   627,   374,   629,
1689 >     630,   631,   632,   633,   634,   635,   657,   636,   675,   461,
1690 >     155,   637,  1161,  1162,   638,  1163,   639,   462,   463,   643,
1691 >     156,   157,   158,   159,   160,   161,   162,   642,   644,   360,
1692 >     664,   361,   645,   362,   253,   646,   647,   464,   514,   648,
1693 >     650,  1164,   651,   652,  1284,   653,   654,   363,   655,  1165,
1694 >     656,   659,   660,   669,   665,   666,   674,   677,   515,   678,
1695 >     679,   254,   516,   255,   680,   681,   682,   364,   683,   685,
1696 >     686,   687,  1166,  1124,  1167,  1168,   163,   164,   165,   688,
1697 >     166,   167,   690,   691,   365,   692,   366,   693,   711,   168,
1698 >     256,   169,  1169,   694,   695,   367,   696,   697,  1125,   700,
1699 >     933,   257,   934,   935,   701,   702,   707,   368,   708,   709,
1700 >     717,   710,   465,   713,  1170,   716,   720,   718,   741,  1171,
1701 >     742,   719,   258,  1172,   771,   721,   259,  1173,   768,   369,
1702 >     769,  1126,  1174,   734,   260,   743,  1175,   261,   262,   723,
1703 >     724,   725,   726,   727,   730,   731,   735,  1176,   736,  1177,
1704 >    1178,   370,  1179,   738,   744,   745,   746,   749,   750,   751,
1705 >    1127,  1128,   753,  1180,   754,   755,  1129,   263,   756,   758,
1706 >     371,  1181,   759,     2,     3,   762,   772,     4,   773,   372,
1707 >     327,   763,   764,   264,   777,   765,   265,   266,   267,     5,
1708 >     778,  1130,     6,   774,     7,   775,   328,   329,   776,   779,
1709 >     780,   330,     8,   781,   782,   783,  1131,   784,  1188,   785,
1710 >    1189,  1190,   786,   787,     9,   788,   936,   937,   938,    10,
1711 >      11,   939,   940,   789,   941,   942,   790,   943,   373,   944,
1712 >     791,   792,   945,   268,   946,   947,   793,   794,   795,    12,
1713 >     948,   796,   797,    13,   949,   801,   331,   802,   950,   951,
1714 >     952,   374,   804,    14,   911,   953,   269,   270,   805,   806,
1715 >     954,   811,   807,   808,   332,   333,   812,   813,  1132,   819,
1716 >     334,   814,    15,    16,   335,   816,   820,   821,   822,   832,
1717 >     336,   833,   853,   834,   845,   835,   836,  1133,    17,   337,
1718 >     338,   339,   837,  1218,   838,   839,   840,   841,   842,   843,
1719 >    1241,   340,   844,   846,   848,    18,   849,   851,   854,   855,
1720 >     856,   858,   861,   862,   865,   866,   867,    19,    20,   868,
1721 >     869,   872,   341,   877,  1191,  1192,  1193,   870,   871,  1194,
1722 >    1195,   873,  1196,  1197,   874,  1198,   980,  1199,   875,   876,
1723 >    1200,    21,  1201,  1202,   878,   880,   879,   881,  1203,   882,
1724 >     883,   884,  1204,  1219,    22,   885,  1205,  1206,  1207,    23,
1725 >    1242,   886,   887,  1208,    24,   888,   342,    25,  1209,   889,
1726 >     912,   913,   914,   890,   891,   915,   916,   892,   917,   918,
1727 >     893,   919,   894,   920,  1220,   895,   921,   896,   922,   923,
1728 >      82,  1243,  1221,   897,   924,   898,   899,   900,   925,  1244,
1729 >     901,  1222,   926,   927,   928,   978,   902,   903,  1245,   929,
1730 >     904,   905,   906,   907,   930,    83,    84,   908,   909,   981,
1731 >     982,   910,    85,   957,   983,  1223,   958,  1224,  1225,   979,
1732 >     984,   985,  1246,   987,  1247,  1248,   232,   988,   959,   960,
1733 >     990,  1226,   991,   961,   992,   993,   962,   963,  1249,  1227,
1734 >      86,    87,    88,    89,   964,   999,  1250,   965,  1000,   966,
1735 >     967,   968,   969,   970,   971,    90,    91,    92,   972,   233,
1736 >     973,   974,    93,    94,    95,   975,    96,   976,   234,   235,
1737 >     236,   977,   986,   237,   238,   989,   996,   997,   239,   240,
1738 >     241,   998,  1001,  1002,  1003,  1005,  1004,  1006,  1007,  1008,
1739 >    1009,  1010,  1011,  1012,  1013,  1014,  1015,  1016,  1017,  1018,
1740 >    1019,  1043,  1020,   568,  1021,  1022,  1023,  1024,  1056,  1025,
1741 >    1026,  1027,  1028,  1029,  1030,  1057,  1031,  1032,  1033,  1034,
1742 >    1058,  1035,  1036,  1037,  1038,  1039,  1059,  1062,  1040,  1064,
1743 >    1041,  1267,  1042,  1150,  1282,  1045,   748,  1044,  1318,  1046,
1744 >    1060,  1061,  1270,  1065,  1073,  1063,  1074,  1075,  1080,  1081,
1745 >    1082,  1293,  1083,  1084,   310,  1085,  1294,  1086,  1087,  1088,
1746 >    1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,  1107,
1747 >    1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,
1748 >    1122,  1123,  1136,  1137,  1138,  1139,  1140,  1141,  1142,  1295,
1749 >    1143,   810,  1144,  1296,  1297,  1298,  1153,   761,  1235,  1151,
1750 >    1299,  1300,  1231,  1154,  1155,  1156,  1184,   641,  1185,  1289,
1751 >    1186,  1187,  1212,  1213,  1292,  1214,  1215,  1216,  1217,  1230,
1752 >     740,  1291,  1236,  1232,  1237,  1238,  1285,  1239,  1240,  1253,
1753 >    1269,  1268,   767,  1315,   498,   800,  1271,  1301,  1290,  1272,
1754 >     729,  1273,  1274,  1275,  1286,  1302,  1303,  1304,   818,   662,
1755 >     400,   456,   668,  1262,   733,   326,  1261,     0,     0,     0,
1756 >     548,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1757 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1758 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760 >       0,     0,     0,     0,   579,     0,     0,     0,     0,     0,
1761 >       0,     0,     0,   594,     0,     0,     0,     0,     0,     0,
1762 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1765 <       0,     0,     0,   544
1765 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1768 >       0,     0,     0,     0,     0,     0,     0,     0,   658
1769   };
1770  
1771   static const yytype_int16 yycheck[] =
1772   {
1773 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
1774 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
1775 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
1776 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
1777 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
1778 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
1779 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
1780 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
1781 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
1782 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
1783 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
1784 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
1785 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
1786 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
1787 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
1788 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
1789 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
1790 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
1791 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
1792 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
1793 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
1794 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
1795 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
1796 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
1797 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
1798 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
1799 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
1800 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
1801 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
1802 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
1803 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
1804 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
1805 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
1806 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
1807 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
1808 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
1809 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
1810 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
1811 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
1812 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
1813 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
1814 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
1815 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
1816 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
1817 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
1818 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
1819 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
1820 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
1821 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
1822 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
1823 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
1824 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
1825 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
1826 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
1827 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
1828 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
1829 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
1830 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
1831 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
1832 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
1833 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
1834 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
1835 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
1836 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
1837 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
1838 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
1839 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
1840 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
1841 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
1842 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
1843 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
1844 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
1845 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
1846 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
1847 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
1848 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
1849 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
1850 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
1851 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
1852 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
1853 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
1854 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
1855 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
1856 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
1857 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
1858 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
1859 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
1860 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
1861 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
1862 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
1863 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
1864 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
1865 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
1866 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
1867 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
1868 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
1869 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
1870 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
1871 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
1872 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
1873 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
1874 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
1875 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
1876 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
1877 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
1878 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
1879 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
1880 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
1881 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
1882 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
1883 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
1884 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
1885 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
1886 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
1887 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
1888 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
1889 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1890 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
1891 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
1892 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
1893 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
1894 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
1895 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
1896 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
1897 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
1898 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
1899 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
1900 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
1901 <     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,
1773 >     638,   639,   312,     1,     1,   315,   316,   317,     1,   319,
1774 >     320,     1,     1,     1,     8,    48,     1,     1,   232,     1,
1775 >       1,     1,     1,    52,   109,   230,   231,     1,   232,     1,
1776 >       1,     1,     1,    30,     1,     1,  1089,  1090,  1091,     1,
1777 >       1,    38,     1,   211,   232,     1,     1,   215,     1,   232,
1778 >      19,   211,   232,    41,   230,   215,     1,   232,   234,   178,
1779 >     179,     6,     7,     1,     9,    10,    56,   232,     1,    14,
1780 >      39,    41,   230,   232,   230,    65,   234,    67,    23,    24,
1781 >      25,   230,     1,   233,    65,   234,    65,    32,   232,   232,
1782 >      35,    36,    37,    81,    65,     1,   125,    42,    67,   409,
1783 >      98,   411,   412,    65,   101,   415,   230,    81,   101,    81,
1784 >     234,    81,   101,   423,    59,    60,   232,   101,   428,   101,
1785 >     205,   101,   120,    56,   232,   232,    71,   437,   438,    74,
1786 >      75,    98,    65,   123,    67,   232,   232,    82,   126,   449,
1787 >     101,   451,   452,    88,     1,    90,   101,    92,   101,    94,
1788 >     119,    96,    97,   120,     1,   126,   126,   190,   127,   128,
1789 >     232,     1,   107,   101,   126,   126,   199,   126,   113,   114,
1790 >     126,   116,   117,   118,   232,   232,   121,    34,   147,    19,
1791 >     230,    28,   101,    30,   234,   167,    43,    44,    45,   174,
1792 >     123,    48,    49,   232,     1,   101,    53,    54,    55,    39,
1793 >     174,   146,   174,   185,   232,   199,   232,   126,   174,   232,
1794 >      57,   156,   157,   158,   159,   160,   161,   162,   230,   201,
1795 >     230,    68,   234,   230,   234,   233,   219,    67,   230,   222,
1796 >     540,     1,   234,   231,   231,   219,   221,   233,   231,   219,
1797 >     195,   231,    89,   231,   230,   232,    93,    17,    18,   231,
1798 >     231,   231,    22,   222,   101,   221,   233,   104,   105,   231,
1799 >     231,   101,   231,   222,   219,   231,   222,   212,   213,   214,
1800 >     231,   216,   217,     1,   174,   231,   231,   109,   231,   119,
1801 >     225,   219,   227,   233,   222,   233,   231,   134,   230,   195,
1802 >      11,    12,    13,   233,   101,     1,   230,    67,    26,    27,
1803 >     234,   233,   233,   150,   233,    33,   153,   154,   155,   233,
1804 >     230,   151,   152,   219,   234,    85,    86,   627,   233,   230,
1805 >     630,    91,   632,   234,    30,    95,     1,   637,     3,   233,
1806 >       5,   101,    38,    61,    62,    63,    64,   233,   233,   233,
1807 >     110,   111,   112,   233,    19,   233,   233,   233,    76,    77,
1808 >      78,   233,   122,   200,   233,    83,    84,    85,   233,    87,
1809 >     167,   233,   202,   233,    39,    70,   233,    72,   233,   233,
1810 >     109,   233,   233,   143,   231,   233,   223,   224,   185,   233,
1811 >     233,    56,   222,    58,   231,   233,   226,     1,   109,   233,
1812 >     233,   231,    67,   124,   201,   101,   135,   136,   137,   138,
1813 >     139,   140,   141,   233,    79,    19,   233,   233,   233,   233,
1814 >     115,   233,   233,   233,   233,     1,   233,   187,   233,   233,
1815 >       6,     7,   233,     9,    10,    39,   101,   132,    14,   823,
1816 >     824,   825,   826,   827,   828,   829,   233,    23,    24,    25,
1817 >     233,     1,   233,   233,   233,   233,    32,   233,   123,    35,
1818 >      36,    37,   233,    67,   233,   233,    42,   233,   233,    19,
1819 >     233,   231,   233,   124,   233,   170,   171,   142,   233,   233,
1820 >     233,   233,   233,    59,    60,   233,   151,   233,   233,    39,
1821 >     233,   233,   233,   233,   233,    71,   233,   101,    74,    75,
1822 >     233,   233,   233,   233,   124,   233,    82,     4,   233,   233,
1823 >     233,   233,    88,   231,    90,   119,    92,    67,    94,   233,
1824 >      96,    97,   109,    20,    21,   233,   233,   222,   233,   233,
1825 >     233,   107,   230,   228,    31,   200,   211,   113,   114,   109,
1826 >     116,   117,   118,   109,   109,   121,   109,   151,   152,   109,
1827 >     109,   230,   230,   233,   109,   124,   233,   233,   223,   233,
1828 >     233,   233,   233,   233,   233,   233,   231,   233,   109,   119,
1829 >     146,   233,    69,    70,   233,    72,   233,   127,   128,   233,
1830 >     156,   157,   158,   159,   160,   161,   162,   230,   233,     1,
1831 >     230,     3,   233,     5,     1,   233,   233,   147,   202,   233,
1832 >     233,    98,   233,   233,  1232,   233,   233,    19,   233,   106,
1833 >     233,   233,   233,   211,   233,   233,   211,   211,   222,   109,
1834 >     109,    28,   226,    30,   109,   211,   211,    39,   211,   109,
1835 >     109,   109,   129,    15,   131,   132,   212,   213,   214,   109,
1836 >     216,   217,   109,   109,    56,   109,    58,   109,   109,   225,
1837 >      57,   227,   149,   211,   233,    67,   233,   211,    40,   211,
1838 >      48,    68,    50,    51,   211,   211,   211,    79,   211,   211,
1839 >     109,   211,   222,   211,   171,   211,   233,   230,   124,   176,
1840 >     124,   230,    89,   180,   124,   233,    93,   184,   211,   101,
1841 >     211,    73,   189,   230,   101,   230,   193,   104,   105,   233,
1842 >     233,   233,   233,   233,   233,   233,   233,   204,   233,   206,
1843 >     207,   123,   209,   233,   230,   233,   233,   230,   233,   233,
1844 >     102,   103,   233,   220,   233,   233,   108,   134,   233,   233,
1845 >     142,   228,   233,     0,     1,   230,   211,     4,   124,   151,
1846 >       1,   233,   233,   150,   230,   233,   153,   154,   155,    16,
1847 >     109,   133,    19,   211,    21,   211,    17,    18,   211,   124,
1848 >     211,    22,    29,   124,   109,   109,   148,   124,    48,   124,
1849 >      50,    51,   124,   124,    41,   124,   164,   165,   166,    46,
1850 >      47,   169,   170,   124,   172,   173,   124,   175,   200,   177,
1851 >     124,   124,   180,   200,   182,   183,   124,   124,   230,    66,
1852 >     188,   230,   233,    70,   192,   211,    67,   230,   196,   197,
1853 >     198,   223,   230,    80,    48,   203,   223,   224,   233,   233,
1854 >     208,   124,   233,   233,    85,    86,   230,   230,   210,   230,
1855 >      91,   233,    99,   100,    95,   233,   230,   230,   230,   230,
1856 >     101,   230,   124,   230,   109,   230,   230,   229,   115,   110,
1857 >     111,   112,   230,    72,   230,   230,   230,   230,   230,   230,
1858 >      72,   122,   230,   109,   233,   132,   109,   109,   109,   109,
1859 >     109,   109,   230,   124,   124,   211,   124,   144,   145,   124,
1860 >     233,   109,   143,   230,   164,   165,   166,   124,   124,   169,
1861 >     170,   124,   172,   173,   124,   175,   233,   177,   124,   124,
1862 >     180,   168,   182,   183,   124,   230,   124,   230,   188,   124,
1863 >     124,   230,   192,   132,   181,   230,   196,   197,   198,   186,
1864 >     132,   230,   230,   203,   191,   230,   187,   194,   208,   230,
1865 >     164,   165,   166,   230,   230,   169,   170,   230,   172,   173,
1866 >     230,   175,   230,   177,   163,   230,   180,   230,   182,   183,
1867 >       1,   163,   171,   230,   188,   230,   230,   230,   192,   171,
1868 >     230,   180,   196,   197,   198,   124,   230,   230,   180,   203,
1869 >     230,   230,   230,   230,   208,    26,    27,   230,   230,   124,
1870 >     109,   230,    33,   230,   124,   204,   230,   206,   207,   211,
1871 >     124,   124,   204,   124,   206,   207,     1,   124,   230,   230,
1872 >     124,   220,   124,   230,   233,   109,   230,   230,   220,   228,
1873 >      61,    62,    63,    64,   230,   124,   228,   230,   124,   230,
1874 >     230,   230,   230,   230,   230,    76,    77,    78,   230,    34,
1875 >     230,   230,    83,    84,    85,   230,    87,   230,    43,    44,
1876 >      45,   230,   230,    48,    49,   230,   230,   230,    53,    54,
1877 >      55,   230,   230,   124,   211,   124,   233,   124,   124,   211,
1878 >     233,   124,   124,   230,   124,   124,   124,   230,   230,   230,
1879 >     230,   124,   230,   271,   230,   230,   230,   230,   124,   230,
1880 >     230,   230,   230,   230,   230,   124,   230,   230,   230,   230,
1881 >     124,   230,   230,   230,   230,   230,   124,   124,   230,   124,
1882 >     230,   109,   230,   218,   124,   230,   502,   233,  1317,   230,
1883 >     230,   230,   235,   230,   230,   233,   230,   230,   230,   230,
1884 >     230,   130,   230,   230,    77,   230,   132,   230,   230,   230,
1885 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1886 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1887 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   130,
1888 >     230,   586,   230,   132,   130,   130,   230,   517,  1051,   234,
1889 >    1277,  1279,   233,   230,   230,   230,   230,   343,   230,  1255,
1890 >     230,   230,   230,   230,  1266,   230,   230,   230,   230,   230,
1891 >     489,  1264,   230,   233,   230,   230,   233,   230,   230,   230,
1892 >     230,  1151,   533,  1288,   225,   572,   235,  1281,  1260,   235,
1893 >     466,   235,   235,   235,   230,   230,   230,   230,   599,   394,
1894 >     118,   170,   404,  1121,   479,    97,  1119,    -1,    -1,    -1,
1895 >     242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1897 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1899 >      -1,    -1,    -1,    -1,   293,    -1,    -1,    -1,    -1,    -1,
1900 >      -1,    -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,    -1,
1901 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1902        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1903        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1904 <      -1,    -1,    -1,   293
1904 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1905 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1906 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1907 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375
1908   };
1909  
1910 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1911 <   symbol of state STATE-NUM.  */
1910 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1911 >     symbol of state STATE-NUM.  */
1912   static const yytype_uint16 yystos[] =
1913   {
1914 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
1915 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
1916 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
1917 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
1918 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
1919 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
1920 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
1921 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
1922 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
1923 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
1924 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
1925 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
1926 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
1927 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
1928 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
1929 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
1930 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
1931 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
1932 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
1933 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1934 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1935 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
1936 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
1937 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
1938 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
1939 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
1940 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1941 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
1942 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
1943 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
1944 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
1945 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
1946 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
1947 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
1948 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1949 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
1950 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
1951 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
1952 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1953 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1954 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1955 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
1956 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1957 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
1958 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
1959 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
1960 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
1961 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
1962 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
1963 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
1964 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
1965 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
1966 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
1967 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
1968 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
1969 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
1970 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
1971 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
1972 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
1973 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
1974 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
1975 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
1976 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
1977 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
1978 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
1979 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
1980 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1981 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
1982 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
1983 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
1984 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
1985 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
1986 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
1987 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
1988 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
1989 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
1990 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
1991 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
1992 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
1993 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
1994 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
1995 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
1996 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
1997 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
1998 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
1999 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2000 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2001 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2002 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2003 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2004 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2005 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2006 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2007 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2008 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2009 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2010 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2011 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2012 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2013 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2014 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2015 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2016 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2017 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2018 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2019 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2020 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2021 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2022 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2023 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2024 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2025 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2026 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2027 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2028 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2029 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2030 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2031 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2032 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2033 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2034 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2035 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2036 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2037 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2038 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2039 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2040 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2041 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2042 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2043 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2044 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2045 <     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
1914 >       0,   237,     0,     1,     4,    16,    19,    21,    29,    41,
1915 >      46,    47,    66,    70,    80,    99,   100,   115,   132,   144,
1916 >     145,   168,   181,   186,   191,   194,   238,   243,   248,   268,
1917 >     274,   280,   288,   302,   322,   344,   358,   373,   380,   384,
1918 >     394,   403,   424,   430,   436,   440,   446,   502,   519,   230,
1919 >     231,   232,   232,   323,   404,   431,   232,   441,   232,   359,
1920 >     425,   345,   232,   275,   303,   374,   232,   232,   395,   232,
1921 >     281,   232,   385,     1,    30,    38,   101,   269,   270,   271,
1922 >     272,   273,     1,    26,    27,    33,    61,    62,    63,    64,
1923 >      76,    77,    78,    83,    84,    85,    87,   503,   504,   505,
1924 >     506,   507,   508,   509,   510,   511,   512,   513,   514,   515,
1925 >     516,   517,   518,   232,   232,   232,     1,    65,   437,   438,
1926 >     439,   232,     1,     6,     7,     9,    10,    14,    23,    24,
1927 >      25,    32,    35,    36,    37,    42,    59,    60,    71,    74,
1928 >      75,    82,    88,    90,    92,    94,    96,    97,   107,   113,
1929 >     114,   116,   117,   118,   121,   146,   156,   157,   158,   159,
1930 >     160,   161,   162,   212,   213,   214,   216,   217,   225,   227,
1931 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1932 >     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
1933 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1934 >     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1935 >     487,   488,   489,   490,   494,   498,   499,   500,   501,   232,
1936 >     232,   232,     1,    98,   120,   244,   245,   246,   247,   232,
1937 >     232,   232,     1,    34,    43,    44,    45,    48,    49,    53,
1938 >      54,    55,   520,   521,   522,   523,   524,   525,   526,   527,
1939 >     528,   529,   530,     1,    28,    30,    57,    68,    89,    93,
1940 >     101,   104,   105,   134,   150,   153,   154,   155,   200,   223,
1941 >     224,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1942 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1943 >     232,     1,   221,   289,   290,   291,   292,   293,   232,     1,
1944 >     101,   381,   382,   383,   232,   230,   233,   233,   233,   231,
1945 >     270,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1946 >     233,   233,   233,   233,   233,   231,   504,     1,    17,    18,
1947 >      22,    67,    85,    86,    91,    95,   101,   110,   111,   112,
1948 >     122,   143,   187,   324,   325,   326,   327,   328,   329,   330,
1949 >     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
1950 >       1,     3,     5,    19,    39,    56,    58,    67,    79,   101,
1951 >     123,   142,   151,   200,   223,   405,   406,   407,   408,   409,
1952 >     410,   411,   412,   413,   414,   415,   419,   420,   421,   422,
1953 >     423,     1,    65,   126,   432,   433,   434,   435,   233,   231,
1954 >     438,     1,   101,   126,   442,   443,   444,   445,   233,   233,
1955 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1956 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1957 >     233,   233,   233,   233,   495,   491,   233,   233,   233,   233,
1958 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1959 >     233,   233,   233,   233,   233,   231,   448,     1,    19,    39,
1960 >      67,   119,   127,   128,   147,   222,   360,   361,   362,   363,
1961 >     364,   365,   366,   370,   371,   372,     1,   126,   222,   426,
1962 >     427,   428,   429,     1,    56,    65,    67,   123,   346,   350,
1963 >     351,   352,   356,   357,   230,   233,   233,   231,   245,     1,
1964 >      81,   174,   276,   277,   278,   279,     1,    19,    39,    67,
1965 >     101,   119,   151,   152,   202,   222,   226,   304,   305,   306,
1966 >     307,   308,   309,   310,   311,   312,   313,   314,   318,     1,
1967 >      41,    81,   126,   375,   376,   377,   378,   379,   233,   233,
1968 >     233,   233,   233,   233,   233,   233,   233,   231,   521,   230,
1969 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1970 >     233,   233,   233,   233,   233,   233,   233,   231,   250,     1,
1971 >     101,   219,   396,   397,   398,   399,   230,   233,   231,   290,
1972 >     174,     1,   101,   167,   185,   201,   282,   283,   284,   285,
1973 >     286,   287,   233,   231,   382,     1,   101,   219,   222,   386,
1974 >     387,   388,   389,   390,   124,   124,   124,   230,   109,   109,
1975 >     240,   211,   109,   240,   240,   240,   109,   240,   240,   109,
1976 >     109,   109,   109,   230,   230,   233,   233,   233,   341,   233,
1977 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1978 >     231,   325,   230,   233,   233,   233,   233,   233,   233,   416,
1979 >     233,   233,   233,   233,   233,   233,   233,   231,   406,   233,
1980 >     233,   231,   433,   124,   230,   233,   233,   231,   443,   211,
1981 >     240,   109,   240,   240,   211,   109,   240,   211,   109,   109,
1982 >     109,   211,   211,   211,   240,   109,   109,   109,   109,   240,
1983 >     109,   109,   109,   109,   211,   233,   233,   211,   240,   240,
1984 >     211,   211,   211,   211,   215,   211,   215,   211,   211,   211,
1985 >     211,   109,   240,   211,   240,   240,   211,   109,   230,   230,
1986 >     233,   233,   367,   233,   233,   233,   233,   233,   231,   361,
1987 >     233,   233,   231,   427,   230,   233,   233,   347,   233,   231,
1988 >     351,   124,   124,   230,   230,   233,   233,   231,   277,   230,
1989 >     233,   233,   319,   233,   233,   233,   233,   315,   233,   233,
1990 >     231,   305,   230,   233,   233,   233,   231,   376,   211,   211,
1991 >     240,   124,   211,   124,   211,   211,   211,   230,   109,   124,
1992 >     211,   124,   109,   109,   124,   124,   124,   124,   124,   124,
1993 >     124,   124,   124,   124,   124,   230,   230,   233,   400,   231,
1994 >     397,   211,   230,   232,   230,   233,   233,   233,   233,   231,
1995 >     283,   124,   230,   230,   233,   391,   233,   231,   387,   230,
1996 >     230,   230,   230,   135,   136,   137,   138,   139,   140,   141,
1997 >     239,   240,   230,   230,   230,   230,   230,   230,   230,   230,
1998 >     230,   230,   230,   230,   230,   109,   109,   240,   233,   109,
1999 >     240,   109,   240,   124,   109,   109,   109,   240,   109,   242,
2000 >     242,   230,   124,   178,   179,   124,   211,   124,   124,   233,
2001 >     124,   124,   109,   124,   124,   124,   124,   230,   124,   124,
2002 >     230,   230,   124,   124,   230,   230,   230,   230,   230,   230,
2003 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2004 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2005 >     230,    48,   164,   165,   166,   169,   170,   172,   173,   175,
2006 >     177,   180,   182,   183,   188,   192,   196,   197,   198,   203,
2007 >     208,   496,   497,    48,    50,    51,   164,   165,   166,   169,
2008 >     170,   172,   173,   175,   177,   180,   182,   183,   188,   192,
2009 >     196,   197,   198,   203,   208,   492,   493,   230,   230,   230,
2010 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2011 >     230,   230,   230,   230,   230,   230,   230,   230,   124,   211,
2012 >     233,   124,   109,   124,   124,   124,   230,   124,   124,   230,
2013 >     124,   124,   233,   109,   354,   355,   230,   230,   230,   124,
2014 >     124,   230,   124,   211,   233,   124,   124,   124,   211,   233,
2015 >     124,   124,   230,   124,   124,   124,   230,   230,   230,   230,
2016 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2017 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
2018 >     230,   230,   230,   124,   233,   230,   230,     1,   101,   195,
2019 >     219,   294,   295,   296,   297,   298,   124,   124,   124,   124,
2020 >     230,   230,   124,   233,   124,   230,   239,   239,   239,   239,
2021 >     239,   239,   239,   230,   230,   230,    52,   125,   342,   343,
2022 >     230,   230,   230,   230,   230,   230,   230,   230,   230,    11,
2023 >      12,    13,   241,   242,   230,   230,   230,   230,   230,   230,
2024 >     230,   230,   230,     8,   199,   417,   418,   230,   230,   230,
2025 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   234,
2026 >     230,   234,   230,   230,    15,    40,    73,   102,   103,   108,
2027 >     133,   148,   210,   229,   368,   369,   230,   230,   230,   230,
2028 >     230,   230,   230,   230,   230,    48,   190,   199,   348,   349,
2029 >     218,   234,   353,   230,   230,   230,   230,     4,    20,    21,
2030 >      31,    69,    70,    72,    98,   106,   129,   131,   132,   149,
2031 >     171,   176,   180,   184,   189,   193,   204,   206,   207,   209,
2032 >     220,   228,   320,   321,   230,   230,   230,   230,    48,    50,
2033 >      51,   164,   165,   166,   169,   170,   172,   173,   175,   177,
2034 >     180,   182,   183,   188,   192,   196,   197,   198,   203,   208,
2035 >     316,   317,   230,   230,   230,   230,   230,   230,    72,   132,
2036 >     163,   171,   180,   204,   206,   207,   220,   228,   401,   402,
2037 >     230,   233,   233,   299,   231,   295,   230,   230,   230,   230,
2038 >     230,    72,   132,   163,   171,   180,   204,   206,   207,   220,
2039 >     228,   392,   393,   230,   230,   234,   241,   241,   241,   230,
2040 >     234,   497,   493,   230,   234,   230,   234,   109,   355,   230,
2041 >     235,   235,   235,   235,   235,   235,   230,   234,   230,   234,
2042 >     230,   234,   124,   205,   242,   233,   230,   230,   234,   343,
2043 >     418,   369,   349,   130,   132,   130,   132,   130,   130,   321,
2044 >     317,   402,   230,   230,   230,    70,    72,   115,   132,   170,
2045 >     171,   222,   228,   300,   301,   393,   230,   234,   301
2046   };
2047  
2048 < #define yyerrok         (yyerrstatus = 0)
2049 < #define yyclearin       (yychar = YYEMPTY)
2050 < #define YYEMPTY         (-2)
2051 < #define YYEOF           0
2048 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2049 > static const yytype_uint16 yyr1[] =
2050 > {
2051 >       0,   236,   237,   237,   238,   238,   238,   238,   238,   238,
2052 >     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
2053 >     238,   238,   238,   238,   238,   238,   238,   238,   239,   239,
2054 >     240,   240,   240,   240,   240,   240,   240,   240,   241,   241,
2055 >     242,   242,   242,   242,   243,   244,   244,   245,   245,   245,
2056 >     246,   247,   248,   249,   249,   250,   250,   250,   250,   250,
2057 >     250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
2058 >     250,   250,   250,   251,   252,   253,   254,   255,   256,   257,
2059 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
2060 >     268,   269,   269,   270,   270,   270,   270,   271,   272,   273,
2061 >     275,   274,   276,   276,   277,   277,   277,   278,   279,   281,
2062 >     280,   282,   282,   283,   283,   283,   283,   283,   284,   285,
2063 >     286,   287,   288,   289,   289,   290,   290,   290,   291,   293,
2064 >     292,   294,   294,   295,   295,   295,   295,   296,   297,   297,
2065 >     299,   298,   300,   300,   301,   301,   301,   301,   301,   301,
2066 >     301,   301,   303,   302,   304,   304,   305,   305,   305,   305,
2067 >     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
2068 >     309,   310,   311,   312,   313,   315,   314,   316,   316,   317,
2069 >     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2070 >     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
2071 >     317,   319,   318,   320,   320,   321,   321,   321,   321,   321,
2072 >     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2073 >     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
2074 >     321,   321,   321,   321,   323,   322,   324,   324,   325,   325,
2075 >     325,   325,   325,   325,   325,   325,   325,   325,   325,   325,
2076 >     325,   325,   325,   325,   326,   327,   328,   329,   330,   331,
2077 >     332,   333,   334,   335,   336,   337,   338,   339,   341,   340,
2078 >     342,   342,   343,   343,   345,   344,   347,   346,   348,   348,
2079 >     349,   349,   349,   350,   350,   351,   351,   351,   351,   351,
2080 >     353,   352,   354,   354,   355,   355,   356,   357,   359,   358,
2081 >     360,   360,   361,   361,   361,   361,   361,   361,   361,   361,
2082 >     361,   362,   363,   364,   365,   367,   366,   368,   368,   369,
2083 >     369,   369,   369,   369,   369,   369,   369,   369,   369,   370,
2084 >     371,   372,   374,   373,   375,   375,   376,   376,   376,   376,
2085 >     377,   378,   379,   380,   381,   381,   382,   382,   383,   385,
2086 >     384,   386,   386,   387,   387,   387,   387,   388,   389,   391,
2087 >     390,   392,   392,   393,   393,   393,   393,   393,   393,   393,
2088 >     393,   393,   393,   395,   394,   396,   396,   397,   397,   397,
2089 >     398,   400,   399,   401,   401,   402,   402,   402,   402,   402,
2090 >     402,   402,   402,   402,   402,   404,   403,   405,   405,   406,
2091 >     406,   406,   406,   406,   406,   406,   406,   406,   406,   406,
2092 >     406,   406,   406,   406,   407,   408,   409,   410,   411,   412,
2093 >     413,   414,   414,   416,   415,   417,   417,   418,   418,   419,
2094 >     420,   421,   422,   423,   425,   424,   426,   426,   427,   427,
2095 >     427,   428,   429,   431,   430,   432,   432,   433,   433,   433,
2096 >     434,   435,   436,   437,   437,   438,   438,   439,   441,   440,
2097 >     442,   442,   443,   443,   443,   444,   445,   446,   447,   447,
2098 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2099 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2100 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2101 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2102 >     448,   448,   448,   448,   448,   448,   448,   448,   449,   450,
2103 >     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
2104 >     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2105 >     471,   472,   473,   474,   475,   476,   476,   477,   477,   478,
2106 >     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2107 >     489,   491,   490,   492,   492,   493,   493,   493,   493,   493,
2108 >     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
2109 >     493,   493,   493,   493,   493,   493,   493,   495,   494,   496,
2110 >     496,   497,   497,   497,   497,   497,   497,   497,   497,   497,
2111 >     497,   497,   497,   497,   497,   497,   497,   497,   497,   497,
2112 >     497,   498,   499,   500,   501,   502,   503,   503,   504,   504,
2113 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2114 >     504,   504,   504,   505,   506,   507,   508,   509,   510,   511,
2115 >     512,   513,   514,   515,   516,   517,   518,   519,   520,   520,
2116 >     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
2117 >     522,   523,   524,   525,   526,   527,   528,   529,   530
2118 > };
2119  
2120 < #define YYACCEPT        goto yyacceptlab
2121 < #define YYABORT         goto yyabortlab
2122 < #define YYERROR         goto yyerrorlab
2120 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2121 > static const yytype_uint8 yyr2[] =
2122 > {
2123 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2124 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2125 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2126 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2127 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2128 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2129 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2130 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2131 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2132 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2133 >       0,     6,     2,     1,     1,     1,     2,     4,     4,     0,
2134 >       6,     2,     1,     1,     1,     1,     1,     2,     4,     4,
2135 >       4,     4,     5,     2,     1,     1,     1,     2,     4,     0,
2136 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2137 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2138 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2140 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2141 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2142 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2143 >       1,     0,     5,     3,     1,     3,     1,     3,     1,     3,
2144 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
2145 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
2146 >       3,     1,     1,     1,     0,     6,     2,     1,     1,     1,
2147 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2149 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2150 >       3,     1,     1,     1,     0,     6,     0,     5,     3,     1,
2151 >       1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
2152 >       0,     5,     3,     1,     1,     3,     4,     4,     0,     6,
2153 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2154 >       2,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2155 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
2156 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2157 >       4,     4,     4,     5,     2,     1,     1,     1,     4,     0,
2158 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     0,
2159 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2160 >       1,     1,     1,     0,     6,     2,     1,     1,     1,     2,
2161 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2162 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2165 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
2166 >       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
2167 >       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2168 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
2169 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2170 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2171 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2175 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2176 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2177 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2178 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2179 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2180 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2181 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
2182 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2183 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2184 >       1,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2185 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2186 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2187 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2188 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2189 >       4,     4,     4,     4,     4,     4,     4,     4,     4
2190 > };
2191  
2192  
2193 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2194 <   to ease the transition to the new meaning of YYERROR, for GCC.
2195 <   Once GCC version 2 has supplanted version 1, this can go.  */
2193 > #define yyerrok         (yyerrstatus = 0)
2194 > #define yyclearin       (yychar = YYEMPTY)
2195 > #define YYEMPTY         (-2)
2196 > #define YYEOF           0
2197 >
2198 > #define YYACCEPT        goto yyacceptlab
2199 > #define YYABORT         goto yyabortlab
2200 > #define YYERROR         goto yyerrorlab
2201  
2671 #define YYFAIL          goto yyerrlab
2202  
2203   #define YYRECOVERING()  (!!yyerrstatus)
2204  
2205 < #define YYBACKUP(Token, Value)                                  \
2206 < do                                                              \
2207 <  if (yychar == YYEMPTY && yylen == 1)                          \
2208 <    {                                                           \
2209 <      yychar = (Token);                                         \
2210 <      yylval = (Value);                                         \
2211 <      yytoken = YYTRANSLATE (yychar);                           \
2212 <      YYPOPSTACK (1);                                           \
2213 <      goto yybackup;                                            \
2214 <    }                                                           \
2215 <  else                                                          \
2216 <    {                                                           \
2205 > #define YYBACKUP(Token, Value)                                  \
2206 > do                                                              \
2207 >  if (yychar == YYEMPTY)                                        \
2208 >    {                                                           \
2209 >      yychar = (Token);                                         \
2210 >      yylval = (Value);                                         \
2211 >      YYPOPSTACK (yylen);                                       \
2212 >      yystate = *yyssp;                                         \
2213 >      goto yybackup;                                            \
2214 >    }                                                           \
2215 >  else                                                          \
2216 >    {                                                           \
2217        yyerror (YY_("syntax error: cannot back up")); \
2218 <      YYERROR;                                                  \
2219 <    }                                                           \
2220 < while (YYID (0))
2221 <
2222 <
2223 < #define YYTERROR        1
2224 < #define YYERRCODE       256
2695 <
2696 <
2697 < /* 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.  */
2218 >      YYERROR;                                                  \
2219 >    }                                                           \
2220 > while (0)
2221 >
2222 > /* Error token number */
2223 > #define YYTERROR        1
2224 > #define YYERRCODE       256
2225  
2727 #ifndef YY_LOCATION_PRINT
2728 # 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
2736 #endif
2226  
2227  
2739 /* YYLEX -- calling `yylex' with the right arguments.  */
2740
2741 #ifdef YYLEX_PARAM
2742 # define YYLEX yylex (YYLEX_PARAM)
2743 #else
2744 # define YYLEX yylex ()
2745 #endif
2746
2228   /* Enable debugging if requested.  */
2229   #if YYDEBUG
2230  
# Line 2752 | Line 2233 | while (YYID (0))
2233   #  define YYFPRINTF fprintf
2234   # endif
2235  
2236 < # define YYDPRINTF(Args)                        \
2237 < do {                                            \
2238 <  if (yydebug)                                  \
2239 <    YYFPRINTF Args;                             \
2240 < } while (YYID (0))
2760 <
2761 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2762 < do {                                                                      \
2763 <  if (yydebug)                                                            \
2764 <    {                                                                     \
2765 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2766 <      yy_symbol_print (stderr,                                            \
2767 <                  Type, Value); \
2768 <      YYFPRINTF (stderr, "\n");                                           \
2769 <    }                                                                     \
2770 < } while (YYID (0))
2236 > # define YYDPRINTF(Args)                        \
2237 > do {                                            \
2238 >  if (yydebug)                                  \
2239 >    YYFPRINTF Args;                             \
2240 > } while (0)
2241  
2242 + /* This macro is provided for backward compatibility. */
2243 + #ifndef YY_LOCATION_PRINT
2244 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2245 + #endif
2246  
2773 /*--------------------------------.
2774 | Print this symbol on YYOUTPUT.  |
2775 `--------------------------------*/
2247  
2248 < /*ARGSUSED*/
2249 < #if (defined __STDC__ || defined __C99__FUNC__ \
2250 <     || defined __cplusplus || defined _MSC_VER)
2248 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2249 > do {                                                                      \
2250 >  if (yydebug)                                                            \
2251 >    {                                                                     \
2252 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2253 >      yy_symbol_print (stderr,                                            \
2254 >                  Type, Value); \
2255 >      YYFPRINTF (stderr, "\n");                                           \
2256 >    }                                                                     \
2257 > } while (0)
2258 >
2259 >
2260 > /*----------------------------------------.
2261 > | Print this symbol's value on YYOUTPUT.  |
2262 > `----------------------------------------*/
2263 >
2264   static void
2265   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2782 #else
2783 static void
2784 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2785    FILE *yyoutput;
2786    int yytype;
2787    YYSTYPE const * const yyvaluep;
2788 #endif
2266   {
2267 +  FILE *yyo = yyoutput;
2268 +  YYUSE (yyo);
2269    if (!yyvaluep)
2270      return;
2271   # ifdef YYPRINT
2272    if (yytype < YYNTOKENS)
2273      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2795 # else
2796  YYUSE (yyoutput);
2274   # endif
2275 <  switch (yytype)
2799 <    {
2800 <      default:
2801 <        break;
2802 <    }
2275 >  YYUSE (yytype);
2276   }
2277  
2278  
# Line 2807 | Line 2280 | yy_symbol_value_print (yyoutput, yytype,
2280   | Print this symbol on YYOUTPUT.  |
2281   `--------------------------------*/
2282  
2810 #if (defined __STDC__ || defined __C99__FUNC__ \
2811     || defined __cplusplus || defined _MSC_VER)
2283   static void
2284   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2814 #else
2815 static void
2816 yy_symbol_print (yyoutput, yytype, yyvaluep)
2817    FILE *yyoutput;
2818    int yytype;
2819    YYSTYPE const * const yyvaluep;
2820 #endif
2285   {
2286 <  if (yytype < YYNTOKENS)
2287 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2824 <  else
2825 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2286 >  YYFPRINTF (yyoutput, "%s %s (",
2287 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2288  
2289    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2290    YYFPRINTF (yyoutput, ")");
# Line 2833 | Line 2295 | yy_symbol_print (yyoutput, yytype, yyval
2295   | TOP (included).                                                   |
2296   `------------------------------------------------------------------*/
2297  
2836 #if (defined __STDC__ || defined __C99__FUNC__ \
2837     || defined __cplusplus || defined _MSC_VER)
2298   static void
2299   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2840 #else
2841 static void
2842 yy_stack_print (yybottom, yytop)
2843    yytype_int16 *yybottom;
2844    yytype_int16 *yytop;
2845 #endif
2300   {
2301    YYFPRINTF (stderr, "Stack now");
2302    for (; yybottom <= yytop; yybottom++)
# Line 2853 | Line 2307 | yy_stack_print (yybottom, yytop)
2307    YYFPRINTF (stderr, "\n");
2308   }
2309  
2310 < # define YY_STACK_PRINT(Bottom, Top)                            \
2311 < do {                                                            \
2312 <  if (yydebug)                                                  \
2313 <    yy_stack_print ((Bottom), (Top));                           \
2314 < } while (YYID (0))
2310 > # define YY_STACK_PRINT(Bottom, Top)                            \
2311 > do {                                                            \
2312 >  if (yydebug)                                                  \
2313 >    yy_stack_print ((Bottom), (Top));                           \
2314 > } while (0)
2315  
2316  
2317   /*------------------------------------------------.
2318   | Report that the YYRULE is going to be reduced.  |
2319   `------------------------------------------------*/
2320  
2867 #if (defined __STDC__ || defined __C99__FUNC__ \
2868     || defined __cplusplus || defined _MSC_VER)
2321   static void
2322 < yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2871 < #else
2872 < static void
2873 < yy_reduce_print (yyvsp, yyrule)
2874 <    YYSTYPE *yyvsp;
2875 <    int yyrule;
2876 < #endif
2322 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2323   {
2324 +  unsigned long int yylno = yyrline[yyrule];
2325    int yynrhs = yyr2[yyrule];
2326    int yyi;
2880  unsigned long int yylno = yyrline[yyrule];
2327    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2328 <             yyrule - 1, yylno);
2328 >             yyrule - 1, yylno);
2329    /* The symbols being reduced.  */
2330    for (yyi = 0; yyi < yynrhs; yyi++)
2331      {
2332        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2333 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2334 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2335 <                                       );
2333 >      yy_symbol_print (stderr,
2334 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2335 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2336 >                                              );
2337        YYFPRINTF (stderr, "\n");
2338      }
2339   }
2340  
2341 < # define YY_REDUCE_PRINT(Rule)          \
2342 < do {                                    \
2343 <  if (yydebug)                          \
2344 <    yy_reduce_print (yyvsp, Rule); \
2345 < } while (YYID (0))
2341 > # define YY_REDUCE_PRINT(Rule)          \
2342 > do {                                    \
2343 >  if (yydebug)                          \
2344 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2345 > } while (0)
2346  
2347   /* Nonzero means print parse trace.  It is left uninitialized so that
2348     multiple parsers can coexist.  */
# Line 2909 | Line 2356 | int yydebug;
2356  
2357  
2358   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2359 < #ifndef YYINITDEPTH
2359 > #ifndef YYINITDEPTH
2360   # define YYINITDEPTH 200
2361   #endif
2362  
# Line 2924 | Line 2371 | int yydebug;
2371   # define YYMAXDEPTH 10000
2372   #endif
2373  
2927
2374  
2375   #if YYERROR_VERBOSE
2376  
# Line 2933 | Line 2379 | int yydebug;
2379   #   define yystrlen strlen
2380   #  else
2381   /* Return the length of YYSTR.  */
2936 #if (defined __STDC__ || defined __C99__FUNC__ \
2937     || defined __cplusplus || defined _MSC_VER)
2382   static YYSIZE_T
2383   yystrlen (const char *yystr)
2940 #else
2941 static YYSIZE_T
2942 yystrlen (yystr)
2943    const char *yystr;
2944 #endif
2384   {
2385    YYSIZE_T yylen;
2386    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2957 | Line 2396 | yystrlen (yystr)
2396   #  else
2397   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2398     YYDEST.  */
2960 #if (defined __STDC__ || defined __C99__FUNC__ \
2961     || defined __cplusplus || defined _MSC_VER)
2399   static char *
2400   yystpcpy (char *yydest, const char *yysrc)
2964 #else
2965 static char *
2966 yystpcpy (yydest, yysrc)
2967    char *yydest;
2968    const char *yysrc;
2969 #endif
2401   {
2402    char *yyd = yydest;
2403    const char *yys = yysrc;
# Line 2996 | Line 2427 | yytnamerr (char *yyres, const char *yyst
2427        char const *yyp = yystr;
2428  
2429        for (;;)
2430 <        switch (*++yyp)
2431 <          {
2432 <          case '\'':
2433 <          case ',':
2434 <            goto do_not_strip_quotes;
2435 <
2436 <          case '\\':
2437 <            if (*++yyp != '\\')
2438 <              goto do_not_strip_quotes;
2439 <            /* Fall through.  */
2440 <          default:
2441 <            if (yyres)
2442 <              yyres[yyn] = *yyp;
2443 <            yyn++;
2444 <            break;
2445 <
2446 <          case '"':
2447 <            if (yyres)
2448 <              yyres[yyn] = '\0';
2449 <            return yyn;
2450 <          }
2430 >        switch (*++yyp)
2431 >          {
2432 >          case '\'':
2433 >          case ',':
2434 >            goto do_not_strip_quotes;
2435 >
2436 >          case '\\':
2437 >            if (*++yyp != '\\')
2438 >              goto do_not_strip_quotes;
2439 >            /* Fall through.  */
2440 >          default:
2441 >            if (yyres)
2442 >              yyres[yyn] = *yyp;
2443 >            yyn++;
2444 >            break;
2445 >
2446 >          case '"':
2447 >            if (yyres)
2448 >              yyres[yyn] = '\0';
2449 >            return yyn;
2450 >          }
2451      do_not_strip_quotes: ;
2452      }
2453  
# Line 3027 | Line 2458 | yytnamerr (char *yyres, const char *yyst
2458   }
2459   # endif
2460  
2461 < /* Copy into YYRESULT an error message about the unexpected token
2462 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2463 <   including the terminating null byte.  If YYRESULT is null, do not
2464 <   copy anything; just return the number of bytes that would be
2465 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2466 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2467 <   size calculation.  */
2468 < static YYSIZE_T
2469 < yysyntax_error (char *yyresult, int yystate, int yychar)
2461 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2462 >   about the unexpected token YYTOKEN for the state stack whose top is
2463 >   YYSSP.
2464 >
2465 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2466 >   not large enough to hold the message.  In that case, also set
2467 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2468 >   required number of bytes is too large to store.  */
2469 > static int
2470 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2471 >                yytype_int16 *yyssp, int yytoken)
2472   {
2473 <  int yyn = yypact[yystate];
2473 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2474 >  YYSIZE_T yysize = yysize0;
2475 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2476 >  /* Internationalized format string. */
2477 >  const char *yyformat = YY_NULLPTR;
2478 >  /* Arguments of yyformat. */
2479 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2480 >  /* Number of reported tokens (one for the "unexpected", one per
2481 >     "expected"). */
2482 >  int yycount = 0;
2483 >
2484 >  /* There are many possibilities here to consider:
2485 >     - If this state is a consistent state with a default action, then
2486 >       the only way this function was invoked is if the default action
2487 >       is an error action.  In that case, don't check for expected
2488 >       tokens because there are none.
2489 >     - The only way there can be no lookahead present (in yychar) is if
2490 >       this state is a consistent state with a default action.  Thus,
2491 >       detecting the absence of a lookahead is sufficient to determine
2492 >       that there is no unexpected or expected token to report.  In that
2493 >       case, just report a simple "syntax error".
2494 >     - Don't assume there isn't a lookahead just because this state is a
2495 >       consistent state with a default action.  There might have been a
2496 >       previous inconsistent state, consistent state with a non-default
2497 >       action, or user semantic action that manipulated yychar.
2498 >     - Of course, the expected token list depends on states to have
2499 >       correct lookahead information, and it depends on the parser not
2500 >       to perform extra reductions after fetching a lookahead from the
2501 >       scanner and before detecting a syntax error.  Thus, state merging
2502 >       (from LALR or IELR) and default reductions corrupt the expected
2503 >       token list.  However, the list is correct for canonical LR with
2504 >       one exception: it will still contain any token that will not be
2505 >       accepted due to an error action in a later state.
2506 >  */
2507 >  if (yytoken != YYEMPTY)
2508 >    {
2509 >      int yyn = yypact[*yyssp];
2510 >      yyarg[yycount++] = yytname[yytoken];
2511 >      if (!yypact_value_is_default (yyn))
2512 >        {
2513 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2514 >             YYCHECK.  In other words, skip the first -YYN actions for
2515 >             this state because they are default actions.  */
2516 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2517 >          /* Stay within bounds of both yycheck and yytname.  */
2518 >          int yychecklim = YYLAST - yyn + 1;
2519 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2520 >          int yyx;
2521 >
2522 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2523 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2524 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2525 >              {
2526 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2527 >                  {
2528 >                    yycount = 1;
2529 >                    yysize = yysize0;
2530 >                    break;
2531 >                  }
2532 >                yyarg[yycount++] = yytname[yyx];
2533 >                {
2534 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2535 >                  if (! (yysize <= yysize1
2536 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2537 >                    return 2;
2538 >                  yysize = yysize1;
2539 >                }
2540 >              }
2541 >        }
2542 >    }
2543  
2544 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3043 <    return 0;
3044 <  else
2544 >  switch (yycount)
2545      {
2546 <      int yytype = YYTRANSLATE (yychar);
2547 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2548 <      YYSIZE_T yysize = yysize0;
2549 <      YYSIZE_T yysize1;
2550 <      int yysize_overflow = 0;
2551 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2552 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2553 <      int yyx;
2554 <
2555 < # if 0
2556 <      /* This is so xgettext sees the translatable formats that are
3057 <         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;
3109 <
3110 <      if (yysize_overflow)
3111 <        return YYSIZE_MAXIMUM;
3112 <
3113 <      if (yyresult)
3114 <        {
3115 <          /* Avoid sprintf, as that infringes on the user's name space.
3116 <             Don't have undefined behavior even if the translation
3117 <             produced a string with the wrong number of "%s"s.  */
3118 <          char *yyp = yyresult;
3119 <          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;
2546 > # define YYCASE_(N, S)                      \
2547 >      case N:                               \
2548 >        yyformat = S;                       \
2549 >      break
2550 >      YYCASE_(0, YY_("syntax error"));
2551 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2552 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2553 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2554 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2555 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2556 > # undef YYCASE_
2557      }
2558 +
2559 +  {
2560 +    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2561 +    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2562 +      return 2;
2563 +    yysize = yysize1;
2564 +  }
2565 +
2566 +  if (*yymsg_alloc < yysize)
2567 +    {
2568 +      *yymsg_alloc = 2 * yysize;
2569 +      if (! (yysize <= *yymsg_alloc
2570 +             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2571 +        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2572 +      return 1;
2573 +    }
2574 +
2575 +  /* Avoid sprintf, as that infringes on the user's name space.
2576 +     Don't have undefined behavior even if the translation
2577 +     produced a string with the wrong number of "%s"s.  */
2578 +  {
2579 +    char *yyp = *yymsg;
2580 +    int yyi = 0;
2581 +    while ((*yyp = *yyformat) != '\0')
2582 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2583 +        {
2584 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2585 +          yyformat += 2;
2586 +        }
2587 +      else
2588 +        {
2589 +          yyp++;
2590 +          yyformat++;
2591 +        }
2592 +  }
2593 +  return 0;
2594   }
2595   #endif /* YYERROR_VERBOSE */
3138
2596  
2597   /*-----------------------------------------------.
2598   | Release the memory associated to this symbol.  |
2599   `-----------------------------------------------*/
2600  
3144 /*ARGSUSED*/
3145 #if (defined __STDC__ || defined __C99__FUNC__ \
3146     || defined __cplusplus || defined _MSC_VER)
2601   static void
2602   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3149 #else
3150 static void
3151 yydestruct (yymsg, yytype, yyvaluep)
3152    const char *yymsg;
3153    int yytype;
3154    YYSTYPE *yyvaluep;
3155 #endif
2603   {
2604    YYUSE (yyvaluep);
3158
2605    if (!yymsg)
2606      yymsg = "Deleting";
2607    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2608  
2609 <  switch (yytype)
2610 <    {
2611 <
3166 <      default:
3167 <        break;
3168 <    }
2609 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2610 >  YYUSE (yytype);
2611 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2612   }
2613  
2614 < /* 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 */
2614 >
2615  
2616  
2617   /* The lookahead symbol.  */
# Line 3189 | Line 2619 | int yychar;
2619  
2620   /* The semantic value of the lookahead symbol.  */
2621   YYSTYPE yylval;
3192
2622   /* Number of syntax errors so far.  */
2623   int yynerrs;
2624  
2625  
2626 + /*----------.
2627 + | yyparse.  |
2628 + `----------*/
2629  
3198 /*-------------------------.
3199 | yyparse or yypush_parse.  |
3200 `-------------------------*/
3201
3202 #ifdef YYPARSE_PARAM
3203 #if (defined __STDC__ || defined __C99__FUNC__ \
3204     || defined __cplusplus || defined _MSC_VER)
3205 int
3206 yyparse (void *YYPARSE_PARAM)
3207 #else
3208 int
3209 yyparse (YYPARSE_PARAM)
3210    void *YYPARSE_PARAM;
3211 #endif
3212 #else /* ! YYPARSE_PARAM */
3213 #if (defined __STDC__ || defined __C99__FUNC__ \
3214     || defined __cplusplus || defined _MSC_VER)
2630   int
2631   yyparse (void)
3217 #else
3218 int
3219 yyparse ()
3220
3221 #endif
3222 #endif
2632   {
3224
3225
2633      int yystate;
2634      /* Number of tokens to shift before error messages enabled.  */
2635      int yyerrstatus;
2636  
2637      /* The stacks and their tools:
2638 <       `yyss': related to states.
2639 <       `yyvs': related to semantic values.
2638 >       'yyss': related to states.
2639 >       'yyvs': related to semantic values.
2640  
2641 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2641 >       Refer to the stacks through separate pointers, to allow yyoverflow
2642         to reallocate them elsewhere.  */
2643  
2644      /* The state stack.  */
# Line 3249 | Line 2656 | yyparse ()
2656    int yyn;
2657    int yyresult;
2658    /* Lookahead token as an internal (translated) token number.  */
2659 <  int yytoken;
2659 >  int yytoken = 0;
2660    /* The variables used to return semantic value and location from the
2661       action routines.  */
2662    YYSTYPE yyval;
# Line 3267 | Line 2674 | yyparse ()
2674       Keep to zero when no symbol should be popped.  */
2675    int yylen = 0;
2676  
2677 <  yytoken = 0;
2678 <  yyss = yyssa;
3272 <  yyvs = yyvsa;
2677 >  yyssp = yyss = yyssa;
2678 >  yyvsp = yyvs = yyvsa;
2679    yystacksize = YYINITDEPTH;
2680  
2681    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3278 | Line 2684 | yyparse ()
2684    yyerrstatus = 0;
2685    yynerrs = 0;
2686    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
2687    goto yysetstate;
2688  
2689   /*------------------------------------------------------------.
# Line 3306 | Line 2704 | yyparse ()
2704  
2705   #ifdef yyoverflow
2706        {
2707 <        /* Give user a chance to reallocate the stack.  Use copies of
2708 <           these so that the &'s don't force the real ones into
2709 <           memory.  */
2710 <        YYSTYPE *yyvs1 = yyvs;
2711 <        yytype_int16 *yyss1 = yyss;
2712 <
2713 <        /* Each stack pointer address is followed by the size of the
2714 <           data in use in that stack, in bytes.  This used to be a
2715 <           conditional around just the two extra args, but that might
2716 <           be undefined if yyoverflow is a macro.  */
2717 <        yyoverflow (YY_("memory exhausted"),
2718 <                    &yyss1, yysize * sizeof (*yyssp),
2719 <                    &yyvs1, yysize * sizeof (*yyvsp),
2720 <                    &yystacksize);
2707 >        /* Give user a chance to reallocate the stack.  Use copies of
2708 >           these so that the &'s don't force the real ones into
2709 >           memory.  */
2710 >        YYSTYPE *yyvs1 = yyvs;
2711 >        yytype_int16 *yyss1 = yyss;
2712 >
2713 >        /* Each stack pointer address is followed by the size of the
2714 >           data in use in that stack, in bytes.  This used to be a
2715 >           conditional around just the two extra args, but that might
2716 >           be undefined if yyoverflow is a macro.  */
2717 >        yyoverflow (YY_("memory exhausted"),
2718 >                    &yyss1, yysize * sizeof (*yyssp),
2719 >                    &yyvs1, yysize * sizeof (*yyvsp),
2720 >                    &yystacksize);
2721  
2722 <        yyss = yyss1;
2723 <        yyvs = yyvs1;
2722 >        yyss = yyss1;
2723 >        yyvs = yyvs1;
2724        }
2725   #else /* no yyoverflow */
2726   # ifndef YYSTACK_RELOCATE
# Line 3330 | Line 2728 | yyparse ()
2728   # else
2729        /* Extend the stack our own way.  */
2730        if (YYMAXDEPTH <= yystacksize)
2731 <        goto yyexhaustedlab;
2731 >        goto yyexhaustedlab;
2732        yystacksize *= 2;
2733        if (YYMAXDEPTH < yystacksize)
2734 <        yystacksize = YYMAXDEPTH;
2734 >        yystacksize = YYMAXDEPTH;
2735  
2736        {
2737 <        yytype_int16 *yyss1 = yyss;
2738 <        union yyalloc *yyptr =
2739 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2740 <        if (! yyptr)
2741 <          goto yyexhaustedlab;
2742 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2743 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2737 >        yytype_int16 *yyss1 = yyss;
2738 >        union yyalloc *yyptr =
2739 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2740 >        if (! yyptr)
2741 >          goto yyexhaustedlab;
2742 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2743 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2744   #  undef YYSTACK_RELOCATE
2745 <        if (yyss1 != yyssa)
2746 <          YYSTACK_FREE (yyss1);
2745 >        if (yyss1 != yyssa)
2746 >          YYSTACK_FREE (yyss1);
2747        }
2748   # endif
2749   #endif /* no yyoverflow */
# Line 3354 | Line 2752 | yyparse ()
2752        yyvsp = yyvs + yysize - 1;
2753  
2754        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2755 <                  (unsigned long int) yystacksize));
2755 >                  (unsigned long int) yystacksize));
2756  
2757        if (yyss + yystacksize - 1 <= yyssp)
2758 <        YYABORT;
2758 >        YYABORT;
2759      }
2760  
2761    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3377 | Line 2775 | yybackup:
2775  
2776    /* First try to decide what to do without reference to lookahead token.  */
2777    yyn = yypact[yystate];
2778 <  if (yyn == YYPACT_NINF)
2778 >  if (yypact_value_is_default (yyn))
2779      goto yydefault;
2780  
2781    /* Not known => get a lookahead token if don't already have one.  */
# Line 3386 | Line 2784 | yybackup:
2784    if (yychar == YYEMPTY)
2785      {
2786        YYDPRINTF ((stderr, "Reading a token: "));
2787 <      yychar = YYLEX;
2787 >      yychar = yylex ();
2788      }
2789  
2790    if (yychar <= YYEOF)
# Line 3408 | Line 2806 | yybackup:
2806    yyn = yytable[yyn];
2807    if (yyn <= 0)
2808      {
2809 <      if (yyn == 0 || yyn == YYTABLE_NINF)
2810 <        goto yyerrlab;
2809 >      if (yytable_value_is_error (yyn))
2810 >        goto yyerrlab;
2811        yyn = -yyn;
2812        goto yyreduce;
2813      }
# Line 3426 | Line 2824 | yybackup:
2824    yychar = YYEMPTY;
2825  
2826    yystate = yyn;
2827 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2828    *++yyvsp = yylval;
2829 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2830  
2831    goto yynewstate;
2832  
# Line 3449 | Line 2849 | yyreduce:
2849    yylen = yyr2[yyn];
2850  
2851    /* If YYLEN is nonzero, implement the default value of the action:
2852 <     `$$ = $1'.
2852 >     '$$ = $1'.
2853  
2854       Otherwise, the following line sets YYVAL to garbage.
2855       This behavior is undocumented and Bison
# Line 3462 | Line 2862 | yyreduce:
2862    YY_REDUCE_PRINT (yyn);
2863    switch (yyn)
2864      {
2865 <        case 26:
2866 <
3467 < /* Line 1455 of yacc.c  */
3468 < #line 429 "ircd_parser.y"
2865 >        case 28:
2866 > #line 405 "conf_parser.y" /* yacc.c:1646  */
2867      { (yyval.number) = 0; }
2868 <    break;
3471 <
3472 <  case 28:
3473 <
3474 < /* Line 1455 of yacc.c  */
3475 < #line 431 "ircd_parser.y"
3476 <    {
3477 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3478 <                }
3479 <    break;
3480 <
3481 <  case 29:
3482 <
3483 < /* Line 1455 of yacc.c  */
3484 < #line 435 "ircd_parser.y"
3485 <    {
3486 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3487 <                }
2868 > #line 2869 "conf_parser.c" /* yacc.c:1646  */
2869      break;
2870  
2871    case 30:
2872 <
2873 < /* Line 1455 of yacc.c  */
2874 < #line 439 "ircd_parser.y"
3494 <    {
3495 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3496 <                }
2872 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2873 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2874 > #line 2875 "conf_parser.c" /* yacc.c:1646  */
2875      break;
2876  
2877    case 31:
2878 <
2879 < /* Line 1455 of yacc.c  */
2880 < #line 443 "ircd_parser.y"
3503 <    {
3504 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3505 <                }
2878 > #line 407 "conf_parser.y" /* yacc.c:1646  */
2879 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2880 > #line 2881 "conf_parser.c" /* yacc.c:1646  */
2881      break;
2882  
2883    case 32:
2884 <
2885 < /* Line 1455 of yacc.c  */
2886 < #line 447 "ircd_parser.y"
3512 <    {
3513 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3514 <                }
2884 > #line 408 "conf_parser.y" /* yacc.c:1646  */
2885 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2886 > #line 2887 "conf_parser.c" /* yacc.c:1646  */
2887      break;
2888  
2889    case 33:
2890 <
2891 < /* Line 1455 of yacc.c  */
2892 < #line 451 "ircd_parser.y"
3521 <    {
3522 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3523 <                }
2890 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2891 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2892 > #line 2893 "conf_parser.c" /* yacc.c:1646  */
2893      break;
2894  
2895    case 34:
2896 + #line 410 "conf_parser.y" /* yacc.c:1646  */
2897 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2898 + #line 2899 "conf_parser.c" /* yacc.c:1646  */
2899 +    break;
2900  
2901 < /* Line 1455 of yacc.c  */
2902 < #line 456 "ircd_parser.y"
2903 <    { (yyval.number) = 0; }
2901 >  case 35:
2902 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2903 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2904 > #line 2905 "conf_parser.c" /* yacc.c:1646  */
2905      break;
2906  
2907    case 36:
2908 <
2909 < /* Line 1455 of yacc.c  */
2910 < #line 457 "ircd_parser.y"
3537 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2908 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2909 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2910 > #line 2911 "conf_parser.c" /* yacc.c:1646  */
2911      break;
2912  
2913    case 37:
2914 <
2915 < /* Line 1455 of yacc.c  */
2916 < #line 458 "ircd_parser.y"
3544 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2914 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2915 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2916 > #line 2917 "conf_parser.c" /* yacc.c:1646  */
2917      break;
2918  
2919    case 38:
2920 + #line 416 "conf_parser.y" /* yacc.c:1646  */
2921 +    { (yyval.number) = 0; }
2922 + #line 2923 "conf_parser.c" /* yacc.c:1646  */
2923 +    break;
2924  
2925 < /* Line 1455 of yacc.c  */
2926 < #line 459 "ircd_parser.y"
2927 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2925 >  case 40:
2926 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2927 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2928 > #line 2929 "conf_parser.c" /* yacc.c:1646  */
2929      break;
2930  
2931 <  case 39:
2931 >  case 41:
2932 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2933 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2934 > #line 2935 "conf_parser.c" /* yacc.c:1646  */
2935 >    break;
2936  
2937 < /* Line 1455 of yacc.c  */
2938 < #line 460 "ircd_parser.y"
2939 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2937 >  case 42:
2938 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2939 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2940 > #line 2941 "conf_parser.c" /* yacc.c:1646  */
2941      break;
2942  
2943 <  case 46:
2943 >  case 43:
2944 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2945 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2946 > #line 2947 "conf_parser.c" /* yacc.c:1646  */
2947 >    break;
2948  
2949 < /* Line 1455 of yacc.c  */
2950 < #line 474 "ircd_parser.y"
2949 >  case 50:
2950 > #line 433 "conf_parser.y" /* yacc.c:1646  */
2951      {
3566 #ifndef STATIC_MODULES /* NOOP in the static case */
2952    if (conf_parser_ctx.pass == 2)
2953 <  {
3569 <    char *m_bn;
3570 <
3571 <    m_bn = basename(yylval.string);
3572 <
3573 <    /* I suppose we should just ignore it if it is already loaded(since
3574 <     * otherwise we would flood the opers on rehash) -A1kmm.
3575 <     */
3576 <    add_conf_module(yylval.string);
3577 <  }
3578 < #endif
2953 >    add_conf_module(libio_basename(yylval.string));
2954   }
2955 + #line 2956 "conf_parser.c" /* yacc.c:1646  */
2956      break;
2957  
2958 <  case 47:
2959 <
3584 < /* Line 1455 of yacc.c  */
3585 < #line 491 "ircd_parser.y"
2958 >  case 51:
2959 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2960      {
3587 #ifndef STATIC_MODULES
2961    if (conf_parser_ctx.pass == 2)
2962      mod_add_path(yylval.string);
3590 #endif
2963   }
2964 + #line 2965 "conf_parser.c" /* yacc.c:1646  */
2965      break;
2966  
2967 <  case 64:
2968 <
3596 < /* Line 1455 of yacc.c  */
3597 < #line 513 "ircd_parser.y"
2967 >  case 73:
2968 > #line 472 "conf_parser.y" /* yacc.c:1646  */
2969      {
2970 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2971 <    ServerInfo.tls_version = 0;
2970 >  if (conf_parser_ctx.pass == 2)
2971 >  {
2972 >    xfree(ConfigServerInfo.ssl_certificate_file);
2973 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2974 >  }
2975   }
2976 + #line 2977 "conf_parser.c" /* yacc.c:1646  */
2977      break;
2978  
2979 <  case 65:
2980 <
3606 < /* Line 1455 of yacc.c  */
3607 < #line 517 "ircd_parser.y"
2979 >  case 74:
2980 > #line 481 "conf_parser.y" /* yacc.c:1646  */
2981      {
2982 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2982 >  if (conf_parser_ctx.pass == 2)
2983    {
2984 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
2985 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3613 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3614 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2984 >    xfree(ConfigServerInfo.rsa_private_key_file);
2985 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2986    }
2987   }
2988 + #line 2989 "conf_parser.c" /* yacc.c:1646  */
2989      break;
2990  
2991 <  case 68:
2992 <
3621 < /* Line 1455 of yacc.c  */
3622 < #line 529 "ircd_parser.y"
2991 >  case 75:
2992 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2993      {
2994 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2995 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
2994 >  if (conf_parser_ctx.pass == 2)
2995 >  {
2996 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2997 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2998 >  }
2999   }
3000 + #line 3001 "conf_parser.c" /* yacc.c:1646  */
3001      break;
3002  
3003 <  case 69:
3004 <
3631 < /* Line 1455 of yacc.c  */
3632 < #line 533 "ircd_parser.y"
3003 >  case 76:
3004 > #line 499 "conf_parser.y" /* yacc.c:1646  */
3005      {
3006 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3007 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3006 >  if (conf_parser_ctx.pass == 2)
3007 >  {
3008 >    xfree(ConfigServerInfo.ssl_cipher_list);
3009 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3010 >  }
3011   }
3012 + #line 3013 "conf_parser.c" /* yacc.c:1646  */
3013      break;
3014  
3015 <  case 70:
3016 <
3641 < /* Line 1455 of yacc.c  */
3642 < #line 539 "ircd_parser.y"
3015 >  case 77:
3016 > #line 508 "conf_parser.y" /* yacc.c:1646  */
3017      {
3018 < #ifdef HAVE_LIBCRYPTO
3645 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3018 >  if (conf_parser_ctx.pass == 2)
3019    {
3020 <    if (!ServerInfo.rsa_private_key_file)
3021 <    {
3649 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3650 <      break;
3651 <    }
3652 <
3653 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3654 <                                     SSL_FILETYPE_PEM) <= 0)
3655 <    {
3656 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3657 <      break;
3658 <    }
3659 <
3660 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3661 <                                    SSL_FILETYPE_PEM) <= 0)
3662 <    {
3663 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3664 <      break;
3665 <    }
3666 <
3667 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3668 <    {
3669 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3670 <      break;
3671 <    }
3020 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3021 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3022    }
3673 #endif
3023   }
3024 + #line 3025 "conf_parser.c" /* yacc.c:1646  */
3025      break;
3026  
3027 <  case 71:
3028 <
3679 < /* Line 1455 of yacc.c  */
3680 < #line 573 "ircd_parser.y"
3027 >  case 78:
3028 > #line 517 "conf_parser.y" /* yacc.c:1646  */
3029      {
3030 < #ifdef HAVE_LIBCRYPTO
3683 <  if (conf_parser_ctx.pass == 1)
3030 >  if (conf_parser_ctx.pass == 2)
3031    {
3032 <    BIO *file;
3033 <
3687 <    if (ServerInfo.rsa_private_key)
3688 <    {
3689 <      RSA_free(ServerInfo.rsa_private_key);
3690 <      ServerInfo.rsa_private_key = NULL;
3691 <    }
3692 <
3693 <    if (ServerInfo.rsa_private_key_file)
3694 <    {
3695 <      MyFree(ServerInfo.rsa_private_key_file);
3696 <      ServerInfo.rsa_private_key_file = NULL;
3697 <    }
3698 <
3699 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3700 <
3701 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3702 <    {
3703 <      yyerror("File open failed, ignoring");
3704 <      break;
3705 <    }
3706 <
3707 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3708 <      0, NULL);
3709 <
3710 <    BIO_set_close(file, BIO_CLOSE);
3711 <    BIO_free(file);
3712 <
3713 <    if (ServerInfo.rsa_private_key == NULL)
3714 <    {
3715 <      yyerror("Couldn't extract key, ignoring");
3716 <      break;
3717 <    }
3718 <
3719 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3720 <    {
3721 <      RSA_free(ServerInfo.rsa_private_key);
3722 <      ServerInfo.rsa_private_key = NULL;
3723 <
3724 <      yyerror("Invalid key, ignoring");
3725 <      break;
3726 <    }
3727 <
3728 <    /* require 2048 bit (256 byte) key */
3729 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3730 <    {
3731 <      RSA_free(ServerInfo.rsa_private_key);
3732 <      ServerInfo.rsa_private_key = NULL;
3733 <
3734 <      yyerror("Not a 2048 bit key, ignoring");
3735 <    }
3032 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3033 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3034    }
3737 #endif
3035   }
3036 + #line 3037 "conf_parser.c" /* yacc.c:1646  */
3037      break;
3038  
3039 <  case 72:
3040 <
3743 < /* Line 1455 of yacc.c  */
3744 < #line 633 "ircd_parser.y"
3039 >  case 79:
3040 > #line 526 "conf_parser.y" /* yacc.c:1646  */
3041      {
3042 <  /* this isn't rehashable */
3043 <  if (conf_parser_ctx.pass == 2)
3042 >  /* This isn't rehashable */
3043 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3044    {
3045 <    if (ServerInfo.name == NULL)
3045 >    if (server_valid_name(yylval.string) == true)
3046 >      ConfigServerInfo.name = xstrdup(yylval.string);
3047 >    else
3048      {
3049 <      /* the ircd will exit() in main() if we dont set one */
3050 <      if (strlen(yylval.string) <= HOSTLEN)
3753 <        DupString(ServerInfo.name, yylval.string);
3049 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3050 >      exit(EXIT_FAILURE);
3051      }
3052    }
3053   }
3054 + #line 3055 "conf_parser.c" /* yacc.c:1646  */
3055      break;
3056  
3057 <  case 73:
3058 <
3761 < /* Line 1455 of yacc.c  */
3762 < #line 647 "ircd_parser.y"
3057 >  case 80:
3058 > #line 541 "conf_parser.y" /* yacc.c:1646  */
3059      {
3060 <  /* this isn't rehashable */
3061 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3060 >  /* This isn't rehashable */
3061 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3062    {
3063      if (valid_sid(yylval.string))
3064 <      DupString(ServerInfo.sid, yylval.string);
3064 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3065      else
3066      {
3067 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3068 <      exit(0);
3067 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3068 >      exit(EXIT_FAILURE);
3069      }
3070    }
3071   }
3072 + #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 74:
3076 <
3780 < /* Line 1455 of yacc.c  */
3781 < #line 662 "ircd_parser.y"
3075 >  case 81:
3076 > #line 556 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078    if (conf_parser_ctx.pass == 2)
3079    {
3080 <    MyFree(ServerInfo.description);
3081 <    DupString(ServerInfo.description,yylval.string);
3080 >    xfree(ConfigServerInfo.description);
3081 >    ConfigServerInfo.description = xstrdup(yylval.string);
3082 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3083    }
3084   }
3085 + #line 3086 "conf_parser.c" /* yacc.c:1646  */
3086      break;
3087  
3088 <  case 75:
3089 <
3793 < /* Line 1455 of yacc.c  */
3794 < #line 671 "ircd_parser.y"
3088 >  case 82:
3089 > #line 566 "conf_parser.y" /* yacc.c:1646  */
3090      {
3091    if (conf_parser_ctx.pass == 2)
3092    {
3093      char *p;
3094  
3095 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3096 <      p = '\0';
3095 >    if ((p = strchr(yylval.string, ' ')))
3096 >      *p = '\0';
3097  
3098 <    MyFree(ServerInfo.network_name);
3099 <    DupString(ServerInfo.network_name, yylval.string);
3098 >    xfree(ConfigServerInfo.network_name);
3099 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3100    }
3101   }
3102 + #line 3103 "conf_parser.c" /* yacc.c:1646  */
3103      break;
3104  
3105 <  case 76:
3106 <
3811 < /* Line 1455 of yacc.c  */
3812 < #line 685 "ircd_parser.y"
3105 >  case 83:
3106 > #line 580 "conf_parser.y" /* yacc.c:1646  */
3107      {
3108 <  if (conf_parser_ctx.pass == 2)
3815 <  {
3816 <    MyFree(ServerInfo.network_desc);
3817 <    DupString(ServerInfo.network_desc, yylval.string);
3818 <  }
3819 < }
3108 >  if (conf_parser_ctx.pass != 2)
3109      break;
3110  
3111 <  case 77:
3111 >  xfree(ConfigServerInfo.network_desc);
3112 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3113 > }
3114 > #line 3115 "conf_parser.c" /* yacc.c:1646  */
3115 >    break;
3116  
3117 < /* Line 1455 of yacc.c  */
3118 < #line 694 "ircd_parser.y"
3117 >  case 84:
3118 > #line 589 "conf_parser.y" /* yacc.c:1646  */
3119      {
3120    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3121    {
# Line 3834 | Line 3127 | yyreduce:
3127      hints.ai_socktype = SOCK_STREAM;
3128      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3129  
3130 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3131 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3130 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3131 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3132      else
3133      {
3134 <      assert(res != NULL);
3134 >      assert(res);
3135  
3136 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3137 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3138 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3139 <      irc_freeaddrinfo(res);
3136 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3137 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3138 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3139 >      freeaddrinfo(res);
3140  
3141 <      ServerInfo.specific_ipv4_vhost = 1;
3141 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3142      }
3143    }
3144   }
3145 + #line 3146 "conf_parser.c" /* yacc.c:1646  */
3146      break;
3147  
3148 <  case 78:
3149 <
3856 < /* Line 1455 of yacc.c  */
3857 < #line 722 "ircd_parser.y"
3148 >  case 85:
3149 > #line 617 "conf_parser.y" /* yacc.c:1646  */
3150      {
3859 #ifdef IPV6
3151    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3152    {
3153      struct addrinfo hints, *res;
# Line 3867 | Line 3158 | yyreduce:
3158      hints.ai_socktype = SOCK_STREAM;
3159      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3160  
3161 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3162 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3161 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3162 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3163      else
3164      {
3165 <      assert(res != NULL);
3165 >      assert(res);
3166  
3167 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3168 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3169 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3170 <      irc_freeaddrinfo(res);
3167 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3168 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3169 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3170 >      freeaddrinfo(res);
3171  
3172 <      ServerInfo.specific_ipv6_vhost = 1;
3172 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3173      }
3174    }
3884 #endif
3175   }
3176 + #line 3177 "conf_parser.c" /* yacc.c:1646  */
3177      break;
3178  
3179 <  case 79:
3180 <
3890 < /* Line 1455 of yacc.c  */
3891 < #line 752 "ircd_parser.y"
3179 >  case 86:
3180 > #line 645 "conf_parser.y" /* yacc.c:1646  */
3181      {
3182 <  if (conf_parser_ctx.pass == 2)
3182 >  if (conf_parser_ctx.pass != 2)
3183 >    break;
3184 >
3185 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3186    {
3187 <    recalc_fdlimit(NULL);
3187 >    char buf[IRCD_BUFSIZE] = "";
3188  
3189 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3190 <    {
3191 <      char buf[IRCD_BUFSIZE];
3900 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3901 <      yyerror(buf);
3902 <    }
3903 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3904 <    {
3905 <      char buf[IRCD_BUFSIZE];
3906 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3907 <      yyerror(buf);
3908 <    }
3909 <    else
3910 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3189 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3190 >    conf_error_report(buf);
3191 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3192    }
3193 +  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3194 +  {
3195 +    char buf[IRCD_BUFSIZE] = "";
3196 +
3197 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3198 +    conf_error_report(buf);
3199 +    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3200 +  }
3201 +  else
3202 +    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3203   }
3204 + #line 3205 "conf_parser.c" /* yacc.c:1646  */
3205      break;
3206  
3207 <  case 80:
3208 <
3917 < /* Line 1455 of yacc.c  */
3918 < #line 775 "ircd_parser.y"
3207 >  case 87:
3208 > #line 670 "conf_parser.y" /* yacc.c:1646  */
3209      {
3210 <  if (conf_parser_ctx.pass == 2)
3210 >  if (conf_parser_ctx.pass != 2)
3211 >    break;
3212 >
3213 >  if ((yyvsp[-1].number) < 9)
3214    {
3215 <    if (yylval.number)
3216 <    {
3217 <      ServerInfo.hub = 1;
3218 <      delete_capability("HUB");
3219 <      add_capability("HUB", CAP_HUB, 1);
3220 <    }
3928 <    else if (ServerInfo.hub)
3929 <    {
3215 >    conf_error_report("max_nick_length too low, setting to 9");
3216 >    ConfigServerInfo.max_nick_length = 9;
3217 >  }
3218 >  else if ((yyvsp[-1].number) > NICKLEN)
3219 >  {
3220 >    char buf[IRCD_BUFSIZE] = "";
3221  
3222 <      ServerInfo.hub = 0;
3223 <      delete_capability("HUB");
3224 <    }
3222 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3223 >    conf_error_report(buf);
3224 >    ConfigServerInfo.max_nick_length = NICKLEN;
3225    }
3226 +  else
3227 +    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3228   }
3229 + #line 3230 "conf_parser.c" /* yacc.c:1646  */
3230      break;
3231  
3232    case 88:
3233 <
3940 < /* Line 1455 of yacc.c  */
3941 < #line 803 "ircd_parser.y"
3233 > #line 692 "conf_parser.y" /* yacc.c:1646  */
3234      {
3235 <  if (conf_parser_ctx.pass == 2)
3235 >  if (conf_parser_ctx.pass != 2)
3236 >    break;
3237 >
3238 >  if ((yyvsp[-1].number) < 80)
3239    {
3240 <    MyFree(AdminInfo.name);
3241 <    DupString(AdminInfo.name, yylval.string);
3240 >    conf_error_report("max_topic_length too low, setting to 80");
3241 >    ConfigServerInfo.max_topic_length = 80;
3242 >  }
3243 >  else if ((yyvsp[-1].number) > TOPICLEN)
3244 >  {
3245 >    char buf[IRCD_BUFSIZE] = "";
3246 >
3247 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3248 >    conf_error_report(buf);
3249 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3250    }
3251 +  else
3252 +    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3253   }
3254 + #line 3255 "conf_parser.c" /* yacc.c:1646  */
3255      break;
3256  
3257    case 89:
3258 <
3953 < /* Line 1455 of yacc.c  */
3954 < #line 812 "ircd_parser.y"
3258 > #line 714 "conf_parser.y" /* yacc.c:1646  */
3259      {
3260    if (conf_parser_ctx.pass == 2)
3261 <  {
3958 <    MyFree(AdminInfo.email);
3959 <    DupString(AdminInfo.email, yylval.string);
3960 <  }
3261 >    ConfigServerInfo.hub = yylval.number;
3262   }
3263 + #line 3264 "conf_parser.c" /* yacc.c:1646  */
3264      break;
3265  
3266 <  case 90:
3267 <
3966 < /* Line 1455 of yacc.c  */
3967 < #line 821 "ircd_parser.y"
3266 >  case 97:
3267 > #line 732 "conf_parser.y" /* yacc.c:1646  */
3268      {
3269 <  if (conf_parser_ctx.pass == 2)
3970 <  {
3971 <    MyFree(AdminInfo.description);
3972 <    DupString(AdminInfo.description, yylval.string);
3973 <  }
3974 < }
3269 >  if (conf_parser_ctx.pass != 2)
3270      break;
3271  
3272 <  case 107:
3272 >  xfree(ConfigAdminInfo.name);
3273 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3274 > }
3275 > #line 3276 "conf_parser.c" /* yacc.c:1646  */
3276 >    break;
3277  
3278 < /* Line 1455 of yacc.c  */
3279 < #line 848 "ircd_parser.y"
3278 >  case 98:
3279 > #line 741 "conf_parser.y" /* yacc.c:1646  */
3280      {
3281 <                        }
3281 >  if (conf_parser_ctx.pass != 2)
3282      break;
3283  
3284 <  case 108:
3284 >  xfree(ConfigAdminInfo.email);
3285 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3286 > }
3287 > #line 3288 "conf_parser.c" /* yacc.c:1646  */
3288 >    break;
3289  
3290 < /* Line 1455 of yacc.c  */
3291 < #line 852 "ircd_parser.y"
3290 >  case 99:
3291 > #line 750 "conf_parser.y" /* yacc.c:1646  */
3292      {
3293 <                        }
3293 >  if (conf_parser_ctx.pass != 2)
3294      break;
3295  
3296 <  case 109:
3297 <
3995 < /* Line 1455 of yacc.c  */
3996 < #line 856 "ircd_parser.y"
3997 <    {
3998 <  if (conf_parser_ctx.pass == 2)
3999 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
4000 <            sizeof(ConfigLoggingEntry.userlog));
3296 >  xfree(ConfigAdminInfo.description);
3297 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3298   }
3299 + #line 3300 "conf_parser.c" /* yacc.c:1646  */
3300      break;
3301  
3302 <  case 110:
3303 <
4006 < /* Line 1455 of yacc.c  */
4007 < #line 863 "ircd_parser.y"
3302 >  case 100:
3303 > #line 763 "conf_parser.y" /* yacc.c:1646  */
3304      {
3305    if (conf_parser_ctx.pass == 2)
3306 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
4011 <            sizeof(ConfigLoggingEntry.failed_operlog));
3306 >    reset_block_state();
3307   }
3308 + #line 3309 "conf_parser.c" /* yacc.c:1646  */
3309      break;
3310  
3311 <  case 111:
3312 <
4017 < /* Line 1455 of yacc.c  */
4018 < #line 870 "ircd_parser.y"
3311 >  case 101:
3312 > #line 767 "conf_parser.y" /* yacc.c:1646  */
3313      {
3314 <  if (conf_parser_ctx.pass == 2)
3315 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3316 <            sizeof(ConfigLoggingEntry.operlog));
4023 < }
3314 >  dlink_node *node = NULL;
3315 >
3316 >  if (conf_parser_ctx.pass != 2)
3317      break;
3318  
3319 <  case 112:
3319 >  if (!block_state.file.buf[0])
3320 >    break;
3321  
3322 < /* Line 1455 of yacc.c  */
3323 < #line 877 "ircd_parser.y"
4030 <    {
4031 <  if (conf_parser_ctx.pass == 2)
4032 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
4033 <            sizeof(ConfigLoggingEntry.operspylog));
3322 >  DLINK_FOREACH(node, block_state.mask.list.head)
3323 >    motd_add(node->data, block_state.file.buf);
3324   }
3325 + #line 3326 "conf_parser.c" /* yacc.c:1646  */
3326      break;
3327  
3328 <  case 113:
3329 <
4039 < /* Line 1455 of yacc.c  */
4040 < #line 884 "ircd_parser.y"
3328 >  case 107:
3329 > #line 784 "conf_parser.y" /* yacc.c:1646  */
3330      {
3331    if (conf_parser_ctx.pass == 2)
3332 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4044 <            sizeof(ConfigLoggingEntry.glinelog));
3332 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3333   }
3334 + #line 3335 "conf_parser.c" /* yacc.c:1646  */
3335      break;
3336  
3337 <  case 114:
3338 <
4050 < /* Line 1455 of yacc.c  */
4051 < #line 891 "ircd_parser.y"
3337 >  case 108:
3338 > #line 790 "conf_parser.y" /* yacc.c:1646  */
3339      {
3340    if (conf_parser_ctx.pass == 2)
3341 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4055 <            sizeof(ConfigLoggingEntry.klinelog));
3341 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3342   }
3343 + #line 3344 "conf_parser.c" /* yacc.c:1646  */
3344      break;
3345  
3346 <  case 115:
3347 <
4061 < /* Line 1455 of yacc.c  */
4062 < #line 898 "ircd_parser.y"
3346 >  case 109:
3347 > #line 800 "conf_parser.y" /* yacc.c:1646  */
3348      {
3349    if (conf_parser_ctx.pass == 2)
3350 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4066 <            sizeof(ConfigLoggingEntry.ioerrlog));
3350 >    reset_block_state();
3351   }
3352 + #line 3353 "conf_parser.c" /* yacc.c:1646  */
3353      break;
3354  
3355 <  case 116:
3356 <
4072 < /* Line 1455 of yacc.c  */
4073 < #line 905 "ircd_parser.y"
3355 >  case 110:
3356 > #line 804 "conf_parser.y" /* yacc.c:1646  */
3357      {
3358 <  if (conf_parser_ctx.pass == 2)
4076 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
4077 <            sizeof(ConfigLoggingEntry.killlog));
4078 < }
3358 >  if (conf_parser_ctx.pass != 2)
3359      break;
3360  
3361 <  case 117:
3361 >  if (!block_state.command.buf[0] ||
3362 >      !block_state.name.buf[0] ||
3363 >      !block_state.nick.buf[0] ||
3364 >      !block_state.host.buf[0])
3365 >    break;
3366  
3367 < /* Line 1455 of yacc.c  */
3368 < #line 912 "ircd_parser.y"
4085 <    {
4086 <  if (conf_parser_ctx.pass == 2)
4087 <    set_log_level(L_CRIT);
3367 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3368 >                  block_state.prepend.buf, block_state.command.buf);
3369   }
3370 + #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371      break;
3372  
3373    case 118:
3374 <
4093 < /* Line 1455 of yacc.c  */
4094 < #line 916 "ircd_parser.y"
3374 > #line 822 "conf_parser.y" /* yacc.c:1646  */
3375      {
3376    if (conf_parser_ctx.pass == 2)
3377 <    set_log_level(L_ERROR);
3377 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3378   }
3379 + #line 3380 "conf_parser.c" /* yacc.c:1646  */
3380      break;
3381  
3382    case 119:
3383 <
4103 < /* Line 1455 of yacc.c  */
4104 < #line 920 "ircd_parser.y"
3383 > #line 828 "conf_parser.y" /* yacc.c:1646  */
3384      {
3385    if (conf_parser_ctx.pass == 2)
3386 <    set_log_level(L_WARN);
3386 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3387   }
3388 + #line 3389 "conf_parser.c" /* yacc.c:1646  */
3389      break;
3390  
3391    case 120:
3392 <
4113 < /* Line 1455 of yacc.c  */
4114 < #line 924 "ircd_parser.y"
3392 > #line 834 "conf_parser.y" /* yacc.c:1646  */
3393      {
3394    if (conf_parser_ctx.pass == 2)
3395 <    set_log_level(L_NOTICE);
3395 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3396   }
3397 + #line 3398 "conf_parser.c" /* yacc.c:1646  */
3398      break;
3399  
3400    case 121:
3401 <
4123 < /* Line 1455 of yacc.c  */
4124 < #line 928 "ircd_parser.y"
3401 > #line 840 "conf_parser.y" /* yacc.c:1646  */
3402      {
3403    if (conf_parser_ctx.pass == 2)
3404 <    set_log_level(L_TRACE);
3405 < }
4129 <    break;
3404 >  {
3405 >    struct split_nuh_item nuh;
3406  
3407 <  case 122:
3407 >    nuh.nuhmask  = yylval.string;
3408 >    nuh.nickptr  = NULL;
3409 >    nuh.userptr  = block_state.nick.buf;
3410 >    nuh.hostptr  = block_state.host.buf;
3411 >    nuh.nicksize = 0;
3412 >    nuh.usersize = sizeof(block_state.nick.buf);
3413 >    nuh.hostsize = sizeof(block_state.host.buf);
3414  
3415 < /* Line 1455 of yacc.c  */
3416 < #line 932 "ircd_parser.y"
4135 <    {
4136 <  if (conf_parser_ctx.pass == 2)
4137 <    set_log_level(L_INFO);
3415 >    split_nuh(&nuh);
3416 >  }
3417   }
3418 + #line 3419 "conf_parser.c" /* yacc.c:1646  */
3419      break;
3420  
3421 <  case 123:
3422 <
4143 < /* Line 1455 of yacc.c  */
4144 < #line 936 "ircd_parser.y"
3421 >  case 128:
3422 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3423      {
3424    if (conf_parser_ctx.pass == 2)
3425 <    set_log_level(L_DEBUG);
3425 >    ConfigLog.use_logging = yylval.number;
3426   }
3427 + #line 3428 "conf_parser.c" /* yacc.c:1646  */
3428      break;
3429  
3430 <  case 124:
3431 <
4153 < /* Line 1455 of yacc.c  */
4154 < #line 942 "ircd_parser.y"
3430 >  case 129:
3431 > #line 874 "conf_parser.y" /* yacc.c:1646  */
3432      {
3433    if (conf_parser_ctx.pass == 2)
3434 <    ConfigLoggingEntry.use_logging = yylval.number;
3434 >    reset_block_state();
3435   }
3436 + #line 3437 "conf_parser.c" /* yacc.c:1646  */
3437      break;
3438  
3439 <  case 125:
3440 <
4163 < /* Line 1455 of yacc.c  */
4164 < #line 951 "ircd_parser.y"
3439 >  case 130:
3440 > #line 878 "conf_parser.y" /* yacc.c:1646  */
3441      {
3442 <  if (conf_parser_ctx.pass == 2)
4167 <  {
4168 <    yy_conf = make_conf_item(OPER_TYPE);
4169 <    yy_aconf = map_to_conf(yy_conf);
4170 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4171 <  }
4172 <  else
4173 <  {
4174 <    MyFree(class_name);
4175 <    class_name = NULL;
4176 <  }
4177 < }
3442 >  if (conf_parser_ctx.pass != 2)
3443      break;
3444  
3445 <  case 126:
3445 >  if (block_state.type.value && block_state.file.buf[0])
3446 >    log_set_file(block_state.type.value, block_state.size.value,
3447 >                 block_state.file.buf);
3448 > }
3449 > #line 3450 "conf_parser.c" /* yacc.c:1646  */
3450 >    break;
3451  
3452 < /* Line 1455 of yacc.c  */
3453 < #line 964 "ircd_parser.y"
3452 >  case 137:
3453 > #line 894 "conf_parser.y" /* yacc.c:1646  */
3454      {
3455 <  if (conf_parser_ctx.pass == 2)
3456 <  {
4187 <    struct CollectItem *yy_tmp;
4188 <    dlink_node *ptr;
4189 <    dlink_node *next_ptr;
4190 <
4191 <    conf_add_class_to_conf(yy_conf, class_name);
3455 >  if (conf_parser_ctx.pass != 2)
3456 >    break;
3457  
3458 <    /* Now, make sure there is a copy of the "base" given oper
3459 <     * block in each of the collected copies
3460 <     */
3458 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3459 > }
3460 > #line 3461 "conf_parser.c" /* yacc.c:1646  */
3461 >    break;
3462  
3463 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3463 >  case 138:
3464 > #line 902 "conf_parser.y" /* yacc.c:1646  */
3465      {
3466 <      struct AccessItem *new_aconf;
4200 <      struct ConfItem *new_conf;
4201 <      yy_tmp = ptr->data;
4202 <
4203 <      new_conf = make_conf_item(OPER_TYPE);
4204 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4205 <
4206 <      new_aconf->flags = yy_aconf->flags;
4207 <
4208 <      if (yy_conf->name != NULL)
4209 <        DupString(new_conf->name, yy_conf->name);
4210 <      if (yy_tmp->user != NULL)
4211 <        DupString(new_aconf->user, yy_tmp->user);
4212 <      else
4213 <        DupString(new_aconf->user, "*");
4214 <      if (yy_tmp->host != NULL)
4215 <        DupString(new_aconf->host, yy_tmp->host);
4216 <      else
4217 <        DupString(new_aconf->host, "*");
4218 <      conf_add_class_to_conf(new_conf, class_name);
4219 <      if (yy_aconf->passwd != NULL)
4220 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4221 <
4222 <      new_aconf->port = yy_aconf->port;
4223 < #ifdef HAVE_LIBCRYPTO
4224 <      if (yy_aconf->rsa_public_key_file != NULL)
4225 <      {
4226 <        BIO *file;
4227 <
4228 <        DupString(new_aconf->rsa_public_key_file,
4229 <                  yy_aconf->rsa_public_key_file);
4230 <
4231 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4232 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4233 <                                                           NULL, 0, NULL);
4234 <        BIO_set_close(file, BIO_CLOSE);
4235 <        BIO_free(file);
4236 <      }
4237 < #endif
4238 <
4239 < #ifdef HAVE_LIBCRYPTO
4240 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4241 <          && yy_tmp->host)
4242 < #else
4243 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4244 < #endif
4245 <      {
4246 <        conf_add_class_to_conf(new_conf, class_name);
4247 <        if (yy_tmp->name != NULL)
4248 <          DupString(new_conf->name, yy_tmp->name);
4249 <      }
4250 <
4251 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4252 <      free_collect_item(yy_tmp);
4253 <    }
4254 <
4255 <    yy_conf = NULL;
4256 <    yy_aconf = NULL;
4257 <
4258 <
4259 <    MyFree(class_name);
4260 <    class_name = NULL;
4261 <  }
3466 >  block_state.size.value = (yyvsp[-1].number);
3467   }
3468 + #line 3469 "conf_parser.c" /* yacc.c:1646  */
3469      break;
3470  
3471 <  case 154:
3471 >  case 139:
3472 > #line 905 "conf_parser.y" /* yacc.c:1646  */
3473 >    {
3474 >  block_state.size.value = 0;
3475 > }
3476 > #line 3477 "conf_parser.c" /* yacc.c:1646  */
3477 >    break;
3478  
3479 < /* Line 1455 of yacc.c  */
3480 < #line 1056 "ircd_parser.y"
3479 >  case 140:
3480 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3481      {
3482    if (conf_parser_ctx.pass == 2)
3483 <  {
4272 <    if (strlen(yylval.string) > OPERNICKLEN)
4273 <      yylval.string[OPERNICKLEN] = '\0';
4274 <
4275 <    MyFree(yy_conf->name);
4276 <    DupString(yy_conf->name, yylval.string);
4277 <  }
3483 >    block_state.type.value = 0;
3484   }
3485 + #line 3486 "conf_parser.c" /* yacc.c:1646  */
3486      break;
3487  
3488 <  case 155:
3489 <
4283 < /* Line 1455 of yacc.c  */
4284 < #line 1068 "ircd_parser.y"
3488 >  case 144:
3489 > #line 917 "conf_parser.y" /* yacc.c:1646  */
3490      {
3491    if (conf_parser_ctx.pass == 2)
3492 <  {
4288 <    if (strlen(yylval.string) > OPERNICKLEN)
4289 <      yylval.string[OPERNICKLEN] = '\0';
4290 <
4291 <    MyFree(yy_conf->name);
4292 <    DupString(yy_conf->name, yylval.string);
4293 <  }
3492 >    block_state.type.value = LOG_TYPE_USER;
3493   }
3494 + #line 3495 "conf_parser.c" /* yacc.c:1646  */
3495      break;
3496  
3497 <  case 156:
3498 <
4299 < /* Line 1455 of yacc.c  */
4300 < #line 1080 "ircd_parser.y"
3497 >  case 145:
3498 > #line 921 "conf_parser.y" /* yacc.c:1646  */
3499      {
3500    if (conf_parser_ctx.pass == 2)
3501 <  {
3502 <    struct split_nuh_item nuh;
3503 <
3504 <    nuh.nuhmask  = yylval.string;
4307 <    nuh.nickptr  = NULL;
4308 <    nuh.userptr  = userbuf;
4309 <    nuh.hostptr  = hostbuf;
4310 <
4311 <    nuh.nicksize = 0;
4312 <    nuh.usersize = sizeof(userbuf);
4313 <    nuh.hostsize = sizeof(hostbuf);
4314 <
4315 <    split_nuh(&nuh);
3501 >    block_state.type.value = LOG_TYPE_OPER;
3502 > }
3503 > #line 3504 "conf_parser.c" /* yacc.c:1646  */
3504 >    break;
3505  
3506 <    if (yy_aconf->user == NULL)
3507 <    {
4319 <      DupString(yy_aconf->user, userbuf);
4320 <      DupString(yy_aconf->host, hostbuf);
4321 <    }
4322 <    else
3506 >  case 146:
3507 > #line 925 "conf_parser.y" /* yacc.c:1646  */
3508      {
3509 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3510 <
4326 <      DupString(yy_tmp->user, userbuf);
4327 <      DupString(yy_tmp->host, hostbuf);
4328 <
4329 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4330 <    }
4331 <  }
3509 >  if (conf_parser_ctx.pass == 2)
3510 >    block_state.type.value = LOG_TYPE_XLINE;
3511   }
3512 + #line 3513 "conf_parser.c" /* yacc.c:1646  */
3513      break;
3514  
3515 <  case 157:
3516 <
4337 < /* Line 1455 of yacc.c  */
4338 < #line 1114 "ircd_parser.y"
3515 >  case 147:
3516 > #line 929 "conf_parser.y" /* yacc.c:1646  */
3517      {
3518    if (conf_parser_ctx.pass == 2)
3519 <  {
4342 <    if (yy_aconf->passwd != NULL)
4343 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4344 <
4345 <    MyFree(yy_aconf->passwd);
4346 <    DupString(yy_aconf->passwd, yylval.string);
4347 <  }
3519 >    block_state.type.value = LOG_TYPE_RESV;
3520   }
3521 + #line 3522 "conf_parser.c" /* yacc.c:1646  */
3522      break;
3523  
3524 <  case 158:
3525 <
4353 < /* Line 1455 of yacc.c  */
4354 < #line 1126 "ircd_parser.y"
3524 >  case 148:
3525 > #line 933 "conf_parser.y" /* yacc.c:1646  */
3526      {
3527    if (conf_parser_ctx.pass == 2)
3528 <  {
4358 <    if (yylval.number)
4359 <      SetConfEncrypted(yy_aconf);
4360 <    else
4361 <      ClearConfEncrypted(yy_aconf);
4362 <  }
3528 >    block_state.type.value = LOG_TYPE_DLINE;
3529   }
3530 + #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531      break;
3532  
3533 <  case 159:
3534 <
4368 < /* Line 1455 of yacc.c  */
4369 < #line 1137 "ircd_parser.y"
3533 >  case 149:
3534 > #line 937 "conf_parser.y" /* yacc.c:1646  */
3535      {
4371 #ifdef HAVE_LIBCRYPTO
3536    if (conf_parser_ctx.pass == 2)
3537 <  {
3538 <    BIO *file;
3537 >    block_state.type.value = LOG_TYPE_KLINE;
3538 > }
3539 > #line 3540 "conf_parser.c" /* yacc.c:1646  */
3540 >    break;
3541  
3542 <    if (yy_aconf->rsa_public_key != NULL)
3542 >  case 150:
3543 > #line 941 "conf_parser.y" /* yacc.c:1646  */
3544      {
3545 <      RSA_free(yy_aconf->rsa_public_key);
3546 <      yy_aconf->rsa_public_key = NULL;
3547 <    }
3545 >  if (conf_parser_ctx.pass == 2)
3546 >    block_state.type.value = LOG_TYPE_KILL;
3547 > }
3548 > #line 3549 "conf_parser.c" /* yacc.c:1646  */
3549 >    break;
3550  
3551 <    if (yy_aconf->rsa_public_key_file != NULL)
3551 >  case 151:
3552 > #line 945 "conf_parser.y" /* yacc.c:1646  */
3553      {
3554 <      MyFree(yy_aconf->rsa_public_key_file);
3555 <      yy_aconf->rsa_public_key_file = NULL;
3556 <    }
3557 <
3558 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4389 <    file = BIO_new_file(yylval.string, "r");
3554 >  if (conf_parser_ctx.pass == 2)
3555 >    block_state.type.value = LOG_TYPE_DEBUG;
3556 > }
3557 > #line 3558 "conf_parser.c" /* yacc.c:1646  */
3558 >    break;
3559  
3560 <    if (file == NULL)
3560 >  case 152:
3561 > #line 955 "conf_parser.y" /* yacc.c:1646  */
3562      {
3563 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3564 <      break;
4395 <    }
3563 >  if (conf_parser_ctx.pass != 2)
3564 >    break;
3565  
3566 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3566 >  reset_block_state();
3567 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3568 > }
3569 > #line 3570 "conf_parser.c" /* yacc.c:1646  */
3570 >    break;
3571  
3572 <    if (yy_aconf->rsa_public_key == NULL)
3572 >  case 153:
3573 > #line 962 "conf_parser.y" /* yacc.c:1646  */
3574      {
3575 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4402 <      break;
4403 <    }
3575 >  dlink_node *node = NULL;
3576  
3577 <    BIO_set_close(file, BIO_CLOSE);
4406 <    BIO_free(file);
4407 <  }
4408 < #endif /* HAVE_LIBCRYPTO */
4409 < }
3577 >  if (conf_parser_ctx.pass != 2)
3578      break;
3579  
3580 <  case 160:
3580 >  if (!block_state.name.buf[0])
3581 >    break;
3582  
3583 < /* Line 1455 of yacc.c  */
4415 < #line 1179 "ircd_parser.y"
4416 <    {
4417 <  if (conf_parser_ctx.pass == 2)
4418 <  {
4419 <    MyFree(class_name);
4420 <    DupString(class_name, yylval.string);
4421 <  }
4422 < }
3583 >  if (!block_state.rpass.buf[0])
3584      break;
3585  
3586 <  case 161:
3586 >  DLINK_FOREACH(node, block_state.mask.list.head)
3587 >  {
3588 >    struct MaskItem *conf = NULL;
3589 >    struct split_nuh_item nuh;
3590 >    char *s = node->data;
3591  
3592 < /* Line 1455 of yacc.c  */
3593 < #line 1188 "ircd_parser.y"
4429 <    {
4430 <  if (conf_parser_ctx.pass == 2)
4431 <    yy_aconf->modes = 0;
4432 < }
4433 <    break;
3592 >    if (EmptyString(s))
3593 >      continue;
3594  
3595 <  case 165:
3595 >    nuh.nuhmask  = s;
3596 >    nuh.nickptr  = NULL;
3597 >    nuh.userptr  = block_state.user.buf;
3598 >    nuh.hostptr  = block_state.host.buf;
3599 >    nuh.nicksize = 0;
3600 >    nuh.usersize = sizeof(block_state.user.buf);
3601 >    nuh.hostsize = sizeof(block_state.host.buf);
3602 >    split_nuh(&nuh);
3603  
3604 < /* Line 1455 of yacc.c  */
3605 < #line 1195 "ircd_parser.y"
3606 <    {
3607 <  if (conf_parser_ctx.pass == 2)
4441 <    yy_aconf->modes |= UMODE_BOTS;
4442 < }
4443 <    break;
3604 >    conf         = conf_make(CONF_OPER);
3605 >    conf->name   = xstrdup(block_state.name.buf);
3606 >    conf->user   = xstrdup(block_state.user.buf);
3607 >    conf->host   = xstrdup(block_state.host.buf);
3608  
3609 <  case 166:
3609 >    if (block_state.cert.buf[0])
3610 >      conf->certfp = xstrdup(block_state.cert.buf);
3611  
3612 < /* Line 1455 of yacc.c  */
3613 < #line 1199 "ircd_parser.y"
3614 <    {
3615 <  if (conf_parser_ctx.pass == 2)
3616 <    yy_aconf->modes |= UMODE_CCONN;
3612 >    if (block_state.rpass.buf[0])
3613 >      conf->passwd = xstrdup(block_state.rpass.buf);
3614 >
3615 >    if (block_state.whois.buf[0])
3616 >      conf->whois = xstrdup(block_state.whois.buf);
3617 >
3618 >    conf->flags = block_state.flags.value;
3619 >    conf->modes = block_state.modes.value;
3620 >    conf->port  = block_state.port.value;
3621 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3622 >
3623 >    conf_add_class_to_conf(conf, block_state.class.buf);
3624 >  }
3625   }
3626 + #line 3627 "conf_parser.c" /* yacc.c:1646  */
3627      break;
3628  
3629    case 167:
3630 <
4457 < /* Line 1455 of yacc.c  */
4458 < #line 1203 "ircd_parser.y"
3630 > #line 1029 "conf_parser.y" /* yacc.c:1646  */
3631      {
3632    if (conf_parser_ctx.pass == 2)
3633 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3633 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3634   }
3635 + #line 3636 "conf_parser.c" /* yacc.c:1646  */
3636      break;
3637  
3638    case 168:
3639 <
4467 < /* Line 1455 of yacc.c  */
4468 < #line 1207 "ircd_parser.y"
3639 > #line 1035 "conf_parser.y" /* yacc.c:1646  */
3640      {
3641    if (conf_parser_ctx.pass == 2)
3642 <    yy_aconf->modes |= UMODE_DEAF;
3642 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3643   }
3644 + #line 3645 "conf_parser.c" /* yacc.c:1646  */
3645      break;
3646  
3647    case 169:
3648 <
4477 < /* Line 1455 of yacc.c  */
4478 < #line 1211 "ircd_parser.y"
3648 > #line 1041 "conf_parser.y" /* yacc.c:1646  */
3649      {
3650    if (conf_parser_ctx.pass == 2)
3651 <    yy_aconf->modes |= UMODE_DEBUG;
3651 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3652   }
3653 + #line 3654 "conf_parser.c" /* yacc.c:1646  */
3654      break;
3655  
3656    case 170:
3657 <
4487 < /* Line 1455 of yacc.c  */
4488 < #line 1215 "ircd_parser.y"
3657 > #line 1047 "conf_parser.y" /* yacc.c:1646  */
3658      {
3659    if (conf_parser_ctx.pass == 2)
3660 <    yy_aconf->modes |= UMODE_FULL;
3660 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3661   }
3662 + #line 3663 "conf_parser.c" /* yacc.c:1646  */
3663      break;
3664  
3665    case 171:
3666 <
4497 < /* Line 1455 of yacc.c  */
4498 < #line 1219 "ircd_parser.y"
3666 > #line 1053 "conf_parser.y" /* yacc.c:1646  */
3667      {
3668 <  if (conf_parser_ctx.pass == 2)
4501 <    yy_aconf->modes |= UMODE_SKILL;
4502 < }
3668 >  if (conf_parser_ctx.pass != 2)
3669      break;
3670  
3671 <  case 172:
3672 <
3673 < /* Line 1455 of yacc.c  */
3674 < #line 1223 "ircd_parser.y"
4509 <    {
4510 <  if (conf_parser_ctx.pass == 2)
4511 <    yy_aconf->modes |= UMODE_NCHANGE;
4512 < }
4513 <    break;
4514 <
4515 <  case 173:
4516 <
4517 < /* Line 1455 of yacc.c  */
4518 < #line 1227 "ircd_parser.y"
4519 <    {
4520 <  if (conf_parser_ctx.pass == 2)
4521 <    yy_aconf->modes |= UMODE_REJ;
3671 >  if (yylval.number)
3672 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3673 >  else
3674 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3675   }
3676 + #line 3677 "conf_parser.c" /* yacc.c:1646  */
3677      break;
3678  
3679 <  case 174:
3680 <
4527 < /* Line 1455 of yacc.c  */
4528 < #line 1231 "ircd_parser.y"
3679 >  case 172:
3680 > #line 1064 "conf_parser.y" /* yacc.c:1646  */
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683 <    yy_aconf->modes |= UMODE_UNAUTH;
3683 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3684   }
3685 + #line 3686 "conf_parser.c" /* yacc.c:1646  */
3686      break;
3687  
3688 <  case 175:
3689 <
4537 < /* Line 1455 of yacc.c  */
4538 < #line 1235 "ircd_parser.y"
3688 >  case 173:
3689 > #line 1070 "conf_parser.y" /* yacc.c:1646  */
3690      {
3691 <  if (conf_parser_ctx.pass == 2)
4541 <    yy_aconf->modes |= UMODE_SPY;
4542 < }
3691 >  if (conf_parser_ctx.pass != 2)
3692      break;
3693  
3694 <  case 176:
3695 <
3696 < /* Line 1455 of yacc.c  */
3697 < #line 1239 "ircd_parser.y"
4549 <    {
4550 <  if (conf_parser_ctx.pass == 2)
4551 <    yy_aconf->modes |= UMODE_EXTERNAL;
3694 >  if (yylval.number)
3695 >    block_state.flags.value |= CONF_FLAGS_SSL;
3696 >  else
3697 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3698   }
3699 + #line 3700 "conf_parser.c" /* yacc.c:1646  */
3700      break;
3701  
3702 <  case 177:
3703 <
4557 < /* Line 1455 of yacc.c  */
4558 < #line 1243 "ircd_parser.y"
3702 >  case 174:
3703 > #line 1081 "conf_parser.y" /* yacc.c:1646  */
3704      {
3705    if (conf_parser_ctx.pass == 2)
3706 <    yy_aconf->modes |= UMODE_OPERWALL;
3706 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3707   }
3708 + #line 3709 "conf_parser.c" /* yacc.c:1646  */
3709      break;
3710  
3711 <  case 178:
3712 <
4567 < /* Line 1455 of yacc.c  */
4568 < #line 1247 "ircd_parser.y"
3711 >  case 175:
3712 > #line 1087 "conf_parser.y" /* yacc.c:1646  */
3713      {
3714    if (conf_parser_ctx.pass == 2)
3715 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3715 >    block_state.modes.value = 0;
3716   }
3717 + #line 3718 "conf_parser.c" /* yacc.c:1646  */
3718      break;
3719  
3720    case 179:
3721 <
4577 < /* Line 1455 of yacc.c  */
4578 < #line 1251 "ircd_parser.y"
3721 > #line 1094 "conf_parser.y" /* yacc.c:1646  */
3722      {
3723    if (conf_parser_ctx.pass == 2)
3724 <    yy_aconf->modes |= UMODE_INVISIBLE;
3724 >    block_state.modes.value |= UMODE_BOTS;
3725   }
3726 + #line 3727 "conf_parser.c" /* yacc.c:1646  */
3727      break;
3728  
3729    case 180:
3730 <
4587 < /* Line 1455 of yacc.c  */
4588 < #line 1255 "ircd_parser.y"
3730 > #line 1098 "conf_parser.y" /* yacc.c:1646  */
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733 <    yy_aconf->modes |= UMODE_WALLOP;
3733 >    block_state.modes.value |= UMODE_CCONN;
3734   }
3735 + #line 3736 "conf_parser.c" /* yacc.c:1646  */
3736      break;
3737  
3738    case 181:
3739 <
4597 < /* Line 1455 of yacc.c  */
4598 < #line 1259 "ircd_parser.y"
3739 > #line 1102 "conf_parser.y" /* yacc.c:1646  */
3740      {
3741    if (conf_parser_ctx.pass == 2)
3742 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3742 >    block_state.modes.value |= UMODE_DEAF;
3743   }
3744 + #line 3745 "conf_parser.c" /* yacc.c:1646  */
3745      break;
3746  
3747    case 182:
3748 <
4607 < /* Line 1455 of yacc.c  */
4608 < #line 1263 "ircd_parser.y"
3748 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3749      {
3750    if (conf_parser_ctx.pass == 2)
3751 <    yy_aconf->modes |= UMODE_CALLERID;
3751 >    block_state.modes.value |= UMODE_DEBUG;
3752   }
3753 + #line 3754 "conf_parser.c" /* yacc.c:1646  */
3754      break;
3755  
3756    case 183:
3757 <
4617 < /* Line 1455 of yacc.c  */
4618 < #line 1267 "ircd_parser.y"
3757 > #line 1110 "conf_parser.y" /* yacc.c:1646  */
3758      {
3759    if (conf_parser_ctx.pass == 2)
3760 <    yy_aconf->modes |= UMODE_LOCOPS;
3760 >    block_state.modes.value |= UMODE_FULL;
3761   }
3762 + #line 3763 "conf_parser.c" /* yacc.c:1646  */
3763      break;
3764  
3765    case 184:
3766 <
4627 < /* Line 1455 of yacc.c  */
4628 < #line 1273 "ircd_parser.y"
3766 > #line 1114 "conf_parser.y" /* yacc.c:1646  */
3767      {
3768    if (conf_parser_ctx.pass == 2)
3769 <  {
4632 <    if (yylval.number)
4633 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4634 <    else
4635 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4636 <  }
3769 >    block_state.modes.value |= UMODE_HIDDEN;
3770   }
3771 + #line 3772 "conf_parser.c" /* yacc.c:1646  */
3772      break;
3773  
3774    case 185:
3775 <
4642 < /* Line 1455 of yacc.c  */
4643 < #line 1284 "ircd_parser.y"
3775 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3776      {
3777    if (conf_parser_ctx.pass == 2)
3778 <  {
4647 <    if (yylval.number)
4648 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4649 <    else
4650 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4651 <  }
3778 >    block_state.modes.value |= UMODE_HIDECHANS;
3779   }
3780 + #line 3781 "conf_parser.c" /* yacc.c:1646  */
3781      break;
3782  
3783    case 186:
3784 <
4657 < /* Line 1455 of yacc.c  */
4658 < #line 1295 "ircd_parser.y"
3784 > #line 1122 "conf_parser.y" /* yacc.c:1646  */
3785      {
3786    if (conf_parser_ctx.pass == 2)
3787 <  {
4662 <    if (yylval.number)
4663 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4664 <    else
4665 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4666 <  }
3787 >    block_state.modes.value |= UMODE_HIDEIDLE;
3788   }
3789 + #line 3790 "conf_parser.c" /* yacc.c:1646  */
3790      break;
3791  
3792    case 187:
3793 <
4672 < /* Line 1455 of yacc.c  */
4673 < #line 1306 "ircd_parser.y"
3793 > #line 1126 "conf_parser.y" /* yacc.c:1646  */
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796 <  {
4677 <    if (yylval.number)
4678 <      yy_aconf->port |= OPER_FLAG_K;
4679 <    else
4680 <      yy_aconf->port &= ~OPER_FLAG_K;
4681 <  }
3796 >    block_state.modes.value |= UMODE_SKILL;
3797   }
3798 + #line 3799 "conf_parser.c" /* yacc.c:1646  */
3799      break;
3800  
3801    case 188:
3802 <
4687 < /* Line 1455 of yacc.c  */
4688 < #line 1317 "ircd_parser.y"
3802 > #line 1130 "conf_parser.y" /* yacc.c:1646  */
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805 <  {
4692 <    if (yylval.number)
4693 <      yy_aconf->port |= OPER_FLAG_X;
4694 <    else
4695 <      yy_aconf->port &= ~OPER_FLAG_X;
4696 <  }
3805 >    block_state.modes.value |= UMODE_NCHANGE;
3806   }
3807 + #line 3808 "conf_parser.c" /* yacc.c:1646  */
3808      break;
3809  
3810    case 189:
3811 <
4702 < /* Line 1455 of yacc.c  */
4703 < #line 1328 "ircd_parser.y"
3811 > #line 1134 "conf_parser.y" /* yacc.c:1646  */
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <  {
4707 <    if (yylval.number)
4708 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4709 <    else
4710 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4711 <  }
3814 >    block_state.modes.value |= UMODE_REJ;
3815   }
3816 + #line 3817 "conf_parser.c" /* yacc.c:1646  */
3817      break;
3818  
3819    case 190:
3820 <
4717 < /* Line 1455 of yacc.c  */
4718 < #line 1339 "ircd_parser.y"
3820 > #line 1138 "conf_parser.y" /* yacc.c:1646  */
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <  {
4722 <    if (yylval.number)
4723 <      yy_aconf->port |= OPER_FLAG_GLINE;
4724 <    else
4725 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4726 <  }
3823 >    block_state.modes.value |= UMODE_UNAUTH;
3824   }
3825 + #line 3826 "conf_parser.c" /* yacc.c:1646  */
3826      break;
3827  
3828    case 191:
3829 <
4732 < /* Line 1455 of yacc.c  */
4733 < #line 1350 "ircd_parser.y"
3829 > #line 1142 "conf_parser.y" /* yacc.c:1646  */
3830      {
3831    if (conf_parser_ctx.pass == 2)
3832 <  {
4737 <    if (yylval.number)
4738 <      yy_aconf->port |= OPER_FLAG_N;
4739 <    else
4740 <      yy_aconf->port &= ~OPER_FLAG_N;
4741 <  }
3832 >    block_state.modes.value |= UMODE_SPY;
3833   }
3834 + #line 3835 "conf_parser.c" /* yacc.c:1646  */
3835      break;
3836  
3837    case 192:
3838 <
4747 < /* Line 1455 of yacc.c  */
4748 < #line 1361 "ircd_parser.y"
3838 > #line 1146 "conf_parser.y" /* yacc.c:1646  */
3839      {
3840    if (conf_parser_ctx.pass == 2)
3841 <  {
4752 <    if (yylval.number)
4753 <      yy_aconf->port |= OPER_FLAG_DIE;
4754 <    else
4755 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4756 <  }
3841 >    block_state.modes.value |= UMODE_EXTERNAL;
3842   }
3843 + #line 3844 "conf_parser.c" /* yacc.c:1646  */
3844      break;
3845  
3846    case 193:
3847 <
4762 < /* Line 1455 of yacc.c  */
4763 < #line 1372 "ircd_parser.y"
3847 > #line 1150 "conf_parser.y" /* yacc.c:1646  */
3848      {
3849    if (conf_parser_ctx.pass == 2)
3850 <  {
4767 <    if (yylval.number)
4768 <      yy_aconf->port |= OPER_FLAG_REHASH;
4769 <    else
4770 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4771 <  }
3850 >    block_state.modes.value |= UMODE_SERVNOTICE;
3851   }
3852 + #line 3853 "conf_parser.c" /* yacc.c:1646  */
3853      break;
3854  
3855    case 194:
3856 <
4777 < /* Line 1455 of yacc.c  */
4778 < #line 1383 "ircd_parser.y"
3856 > #line 1154 "conf_parser.y" /* yacc.c:1646  */
3857      {
3858    if (conf_parser_ctx.pass == 2)
3859 <  {
4782 <    if (yylval.number)
4783 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4784 <    else
4785 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4786 <  }
3859 >    block_state.modes.value |= UMODE_INVISIBLE;
3860   }
3861 + #line 3862 "conf_parser.c" /* yacc.c:1646  */
3862      break;
3863  
3864    case 195:
3865 <
4792 < /* Line 1455 of yacc.c  */
4793 < #line 1394 "ircd_parser.y"
3865 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3866      {
3867    if (conf_parser_ctx.pass == 2)
3868 <  {
4797 <    if (yylval.number)
4798 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4799 <    else
4800 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4801 <  }
3868 >    block_state.modes.value |= UMODE_WALLOP;
3869   }
3870 + #line 3871 "conf_parser.c" /* yacc.c:1646  */
3871      break;
3872  
3873    case 196:
3874 <
4807 < /* Line 1455 of yacc.c  */
4808 < #line 1405 "ircd_parser.y"
3874 > #line 1162 "conf_parser.y" /* yacc.c:1646  */
3875      {
3876    if (conf_parser_ctx.pass == 2)
3877 <  {
4812 <    if (yylval.number)
4813 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4814 <    else
4815 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4816 <  }
3877 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3878   }
3879 + #line 3880 "conf_parser.c" /* yacc.c:1646  */
3880      break;
3881  
3882    case 197:
3883 <
4822 < /* Line 1455 of yacc.c  */
4823 < #line 1416 "ircd_parser.y"
3883 > #line 1166 "conf_parser.y" /* yacc.c:1646  */
3884      {
3885    if (conf_parser_ctx.pass == 2)
3886 <  {
4827 <    if (yylval.number)
4828 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4829 <    else
4830 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4831 <  }
3886 >    block_state.modes.value |= UMODE_CALLERID;
3887   }
3888 + #line 3889 "conf_parser.c" /* yacc.c:1646  */
3889      break;
3890  
3891    case 198:
3892 <
4837 < /* Line 1455 of yacc.c  */
4838 < #line 1427 "ircd_parser.y"
3892 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3893      {
3894 +  if (conf_parser_ctx.pass == 2)
3895 +    block_state.modes.value |= UMODE_LOCOPS;
3896   }
3897 + #line 3898 "conf_parser.c" /* yacc.c:1646  */
3898      break;
3899  
3900 <  case 202:
3900 >  case 199:
3901 > #line 1174 "conf_parser.y" /* yacc.c:1646  */
3902 >    {
3903 >  if (conf_parser_ctx.pass == 2)
3904 >    block_state.modes.value |= UMODE_REGONLY;
3905 > }
3906 > #line 3907 "conf_parser.c" /* yacc.c:1646  */
3907 >    break;
3908  
3909 < /* Line 1455 of yacc.c  */
3910 < #line 1431 "ircd_parser.y"
3911 <    { not_atom = 1; }
3909 >  case 200:
3910 > #line 1178 "conf_parser.y" /* yacc.c:1646  */
3911 >    {
3912 >  if (conf_parser_ctx.pass == 2)
3913 >    block_state.modes.value |= UMODE_FARCONNECT;
3914 > }
3915 > #line 3916 "conf_parser.c" /* yacc.c:1646  */
3916      break;
3917  
3918 <  case 204:
3918 >  case 201:
3919 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3920 >    {
3921 >  if (conf_parser_ctx.pass == 2)
3922 >    block_state.port.value = 0;
3923 > }
3924 > #line 3925 "conf_parser.c" /* yacc.c:1646  */
3925 >    break;
3926  
3927 < /* Line 1455 of yacc.c  */
3928 < #line 1432 "ircd_parser.y"
3929 <    { not_atom = 0; }
3927 >  case 205:
3928 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3929 >    {
3930 >  if (conf_parser_ctx.pass == 2)
3931 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3932 > }
3933 > #line 3934 "conf_parser.c" /* yacc.c:1646  */
3934      break;
3935  
3936    case 206:
3937 <
4859 < /* Line 1455 of yacc.c  */
4860 < #line 1435 "ircd_parser.y"
3937 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3938      {
3939    if (conf_parser_ctx.pass == 2)
3940 <  {
4864 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4865 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4866 <  }
3940 >    block_state.port.value |= OPER_FLAG_KILL;
3941   }
3942 + #line 3943 "conf_parser.c" /* yacc.c:1646  */
3943      break;
3944  
3945    case 207:
3946 <
4872 < /* Line 1455 of yacc.c  */
4873 < #line 1442 "ircd_parser.y"
3946 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3947      {
3948    if (conf_parser_ctx.pass == 2)
3949 <  {
4877 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4878 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4879 <  }
3949 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3950   }
3951 + #line 3952 "conf_parser.c" /* yacc.c:1646  */
3952      break;
3953  
3954    case 208:
3955 <
4885 < /* Line 1455 of yacc.c  */
4886 < #line 1449 "ircd_parser.y"
3955 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3956      {
3957    if (conf_parser_ctx.pass == 2)
3958 <  {
4890 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4891 <    else yy_aconf->port |= OPER_FLAG_K;
4892 <  }
3958 >    block_state.port.value |= OPER_FLAG_CONNECT;
3959   }
3960 + #line 3961 "conf_parser.c" /* yacc.c:1646  */
3961      break;
3962  
3963    case 209:
3964 <
4898 < /* Line 1455 of yacc.c  */
4899 < #line 1456 "ircd_parser.y"
3964 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3965      {
3966    if (conf_parser_ctx.pass == 2)
3967 <  {
4903 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4904 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4905 <  }
3967 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3968   }
3969 + #line 3970 "conf_parser.c" /* yacc.c:1646  */
3970      break;
3971  
3972    case 210:
3973 <
4911 < /* Line 1455 of yacc.c  */
4912 < #line 1463 "ircd_parser.y"
3973 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3974      {
3975    if (conf_parser_ctx.pass == 2)
3976 <  {
4916 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4917 <    else yy_aconf->port |= OPER_FLAG_X;
4918 <  }
3976 >    block_state.port.value |= OPER_FLAG_SQUIT;
3977   }
3978 + #line 3979 "conf_parser.c" /* yacc.c:1646  */
3979      break;
3980  
3981    case 211:
3982 <
4924 < /* Line 1455 of yacc.c  */
4925 < #line 1470 "ircd_parser.y"
3982 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3983      {
3984    if (conf_parser_ctx.pass == 2)
3985 <  {
4929 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4930 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4931 <  }
3985 >    block_state.port.value |= OPER_FLAG_KLINE;
3986   }
3987 + #line 3988 "conf_parser.c" /* yacc.c:1646  */
3988      break;
3989  
3990    case 212:
3991 <
4937 < /* Line 1455 of yacc.c  */
4938 < #line 1477 "ircd_parser.y"
3991 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3992      {
3993    if (conf_parser_ctx.pass == 2)
3994 <  {
4942 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4943 <    else yy_aconf->port |= OPER_FLAG_DIE;
4944 <  }
3994 >    block_state.port.value |= OPER_FLAG_UNKLINE;
3995   }
3996 + #line 3997 "conf_parser.c" /* yacc.c:1646  */
3997      break;
3998  
3999    case 213:
4000 <
4950 < /* Line 1455 of yacc.c  */
4951 < #line 1484 "ircd_parser.y"
4000 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
4001      {
4002    if (conf_parser_ctx.pass == 2)
4003 <  {
4955 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4956 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4957 <  }
4003 >    block_state.port.value |= OPER_FLAG_DLINE;
4004   }
4005 + #line 4006 "conf_parser.c" /* yacc.c:1646  */
4006      break;
4007  
4008    case 214:
4009 <
4963 < /* Line 1455 of yacc.c  */
4964 < #line 1491 "ircd_parser.y"
4009 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
4010      {
4011    if (conf_parser_ctx.pass == 2)
4012 <  {
4968 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4969 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4970 <  }
4012 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4013   }
4014 + #line 4015 "conf_parser.c" /* yacc.c:1646  */
4015      break;
4016  
4017    case 215:
4018 <
4976 < /* Line 1455 of yacc.c  */
4977 < #line 1498 "ircd_parser.y"
4018 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <  {
4981 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4982 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4983 <  }
4021 >    block_state.port.value |= OPER_FLAG_XLINE;
4022   }
4023 + #line 4024 "conf_parser.c" /* yacc.c:1646  */
4024      break;
4025  
4026    case 216:
4027 <
4989 < /* Line 1455 of yacc.c  */
4990 < #line 1505 "ircd_parser.y"
4027 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030 <  {
4994 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4995 <    else yy_aconf->port |= OPER_FLAG_N;
4996 <  }
4030 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4031   }
4032 + #line 4033 "conf_parser.c" /* yacc.c:1646  */
4033      break;
4034  
4035    case 217:
4036 <
5002 < /* Line 1455 of yacc.c  */
5003 < #line 1512 "ircd_parser.y"
4036 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
4037      {
4038    if (conf_parser_ctx.pass == 2)
4039 <  {
5007 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
5008 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5009 <  }
4039 >    block_state.port.value |= OPER_FLAG_DIE;
4040   }
4041 + #line 4042 "conf_parser.c" /* yacc.c:1646  */
4042      break;
4043  
4044    case 218:
4045 <
5015 < /* Line 1455 of yacc.c  */
5016 < #line 1519 "ircd_parser.y"
4045 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
4046      {
4047    if (conf_parser_ctx.pass == 2)
4048 <  {
5020 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5021 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5022 <  }
4048 >    block_state.port.value |= OPER_FLAG_RESTART;
4049   }
4050 + #line 4051 "conf_parser.c" /* yacc.c:1646  */
4051      break;
4052  
4053    case 219:
4054 <
5028 < /* Line 1455 of yacc.c  */
5029 < #line 1526 "ircd_parser.y"
4054 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
4055      {
4056    if (conf_parser_ctx.pass == 2)
4057 <  {
5033 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5034 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5035 <  }
4057 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4058   }
4059 + #line 4060 "conf_parser.c" /* yacc.c:1646  */
4060      break;
4061  
4062    case 220:
4063 <
5041 < /* Line 1455 of yacc.c  */
5042 < #line 1533 "ircd_parser.y"
4063 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
4064      {
4065    if (conf_parser_ctx.pass == 2)
4066 <  {
5046 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5047 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5048 <  }
4066 >    block_state.port.value |= OPER_FLAG_REHASH;
4067   }
4068 + #line 4069 "conf_parser.c" /* yacc.c:1646  */
4069      break;
4070  
4071    case 221:
4072 <
5054 < /* Line 1455 of yacc.c  */
5055 < #line 1540 "ircd_parser.y"
4072 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
4073      {
4074    if (conf_parser_ctx.pass == 2)
4075 <  {
5059 <    if (not_atom) ClearConfEncrypted(yy_aconf);
5060 <    else SetConfEncrypted(yy_aconf);
5061 <  }
4075 >    block_state.port.value |= OPER_FLAG_ADMIN;
4076   }
4077 + #line 4078 "conf_parser.c" /* yacc.c:1646  */
4078      break;
4079  
4080    case 222:
4081 <
5067 < /* Line 1455 of yacc.c  */
5068 < #line 1553 "ircd_parser.y"
4081 > #line 1259 "conf_parser.y" /* yacc.c:1646  */
4082      {
4083 <  if (conf_parser_ctx.pass == 1)
4084 <  {
5072 <    yy_conf = make_conf_item(CLASS_TYPE);
5073 <    yy_class = map_to_conf(yy_conf);
5074 <  }
4083 >  if (conf_parser_ctx.pass == 2)
4084 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4085   }
4086 + #line 4087 "conf_parser.c" /* yacc.c:1646  */
4087      break;
4088  
4089    case 223:
4090 <
5080 < /* Line 1455 of yacc.c  */
5081 < #line 1560 "ircd_parser.y"
4090 > #line 1263 "conf_parser.y" /* yacc.c:1646  */
4091      {
4092 <  if (conf_parser_ctx.pass == 1)
4093 <  {
4094 <    struct ConfItem *cconf = NULL;
4095 <    struct ClassItem *class = NULL;
4092 >  if (conf_parser_ctx.pass == 2)
4093 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4094 > }
4095 > #line 4096 "conf_parser.c" /* yacc.c:1646  */
4096 >    break;
4097  
4098 <    if (yy_class_name == NULL)
4099 <      delete_conf_item(yy_conf);
5090 <    else
4098 >  case 224:
4099 > #line 1267 "conf_parser.y" /* yacc.c:1646  */
4100      {
4101 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4101 >  if (conf_parser_ctx.pass == 2)
4102 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4103 > }
4104 > #line 4105 "conf_parser.c" /* yacc.c:1646  */
4105 >    break;
4106  
4107 <      if (cconf != NULL)                /* The class existed already */
4108 <      {
4109 <        int user_count = 0;
4107 >  case 225:
4108 > #line 1271 "conf_parser.y" /* yacc.c:1646  */
4109 >    {
4110 >  if (conf_parser_ctx.pass == 2)
4111 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4112 > }
4113 > #line 4114 "conf_parser.c" /* yacc.c:1646  */
4114 >    break;
4115  
4116 <        rebuild_cidr_class(cconf, yy_class);
4116 >  case 226:
4117 > #line 1275 "conf_parser.y" /* yacc.c:1646  */
4118 >    {
4119 >  if (conf_parser_ctx.pass == 2)
4120 >    block_state.port.value |= OPER_FLAG_SET;
4121 > }
4122 > #line 4123 "conf_parser.c" /* yacc.c:1646  */
4123 >    break;
4124  
4125 <        class = map_to_conf(cconf);
4125 >  case 227:
4126 > #line 1279 "conf_parser.y" /* yacc.c:1646  */
4127 >    {
4128 >  if (conf_parser_ctx.pass == 2)
4129 >    block_state.port.value |= OPER_FLAG_MODULE;
4130 > }
4131 > #line 4132 "conf_parser.c" /* yacc.c:1646  */
4132 >    break;
4133  
4134 <        user_count = class->curr_user_count;
4135 <        memcpy(class, yy_class, sizeof(*class));
4136 <        class->curr_user_count = user_count;
4137 <        class->active = 1;
4134 >  case 228:
4135 > #line 1283 "conf_parser.y" /* yacc.c:1646  */
4136 >    {
4137 >  if (conf_parser_ctx.pass == 2)
4138 >    block_state.port.value |= OPER_FLAG_OPME;
4139 > }
4140 > #line 4141 "conf_parser.c" /* yacc.c:1646  */
4141 >    break;
4142  
4143 <        delete_conf_item(yy_conf);
4143 >  case 229:
4144 > #line 1287 "conf_parser.y" /* yacc.c:1646  */
4145 >    {
4146 >  if (conf_parser_ctx.pass == 2)
4147 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4148 > }
4149 > #line 4150 "conf_parser.c" /* yacc.c:1646  */
4150 >    break;
4151  
4152 <        MyFree(cconf->name);            /* Allows case change of class name */
4153 <        cconf->name = yy_class_name;
4154 <      }
4155 <      else      /* Brand new class */
4156 <      {
4157 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4158 <        yy_conf->name = yy_class_name;
4159 <        yy_class->active = 1;
5117 <      }
5118 <    }
4152 >  case 230:
4153 > #line 1291 "conf_parser.y" /* yacc.c:1646  */
4154 >    {
4155 >  if (conf_parser_ctx.pass == 2)
4156 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4157 > }
4158 > #line 4159 "conf_parser.c" /* yacc.c:1646  */
4159 >    break;
4160  
4161 <    yy_class_name = NULL;
4162 <  }
4161 >  case 231:
4162 > #line 1295 "conf_parser.y" /* yacc.c:1646  */
4163 >    {
4164 >  if (conf_parser_ctx.pass == 2)
4165 >    block_state.port.value |= OPER_FLAG_RESV;
4166   }
4167 + #line 4168 "conf_parser.c" /* yacc.c:1646  */
4168      break;
4169  
4170 <  case 242:
4170 >  case 232:
4171 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4172 >    {
4173 >  if (conf_parser_ctx.pass == 2)
4174 >    block_state.port.value |= OPER_FLAG_UNRESV;
4175 > }
4176 > #line 4177 "conf_parser.c" /* yacc.c:1646  */
4177 >    break;
4178  
4179 < /* Line 1455 of yacc.c  */
4180 < #line 1620 "ircd_parser.y"
4179 >  case 233:
4180 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4181      {
4182 <  if (conf_parser_ctx.pass == 1)
4183 <  {
5132 <    MyFree(yy_class_name);
5133 <    DupString(yy_class_name, yylval.string);
5134 <  }
4182 >  if (conf_parser_ctx.pass == 2)
4183 >    block_state.port.value |= OPER_FLAG_CLOSE;
4184   }
4185 + #line 4186 "conf_parser.c" /* yacc.c:1646  */
4186      break;
4187  
4188 <  case 243:
4188 >  case 234:
4189 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4190 >    {
4191 >  if (conf_parser_ctx.pass != 1)
4192 >    break;
4193  
4194 < /* Line 1455 of yacc.c  */
4195 < #line 1629 "ircd_parser.y"
4194 >  reset_block_state();
4195 >
4196 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4197 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4198 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4199 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4200 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4201 > }
4202 > #line 4203 "conf_parser.c" /* yacc.c:1646  */
4203 >    break;
4204 >
4205 >  case 235:
4206 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4207      {
4208 <  if (conf_parser_ctx.pass == 1)
4208 >  struct ClassItem *class = NULL;
4209 >
4210 >  if (conf_parser_ctx.pass != 1)
4211 >    break;
4212 >
4213 >  if (!block_state.class.buf[0])
4214 >    break;
4215 >
4216 >  if (!(class = class_find(block_state.class.buf, false)))
4217 >    class = class_make();
4218 >
4219 >  class->active = 1;
4220 >  xfree(class->name);
4221 >  class->name = xstrdup(block_state.class.buf);
4222 >  class->ping_freq = block_state.ping_freq.value;
4223 >  class->max_perip_local = block_state.max_perip_local.value;
4224 >  class->max_perip_global = block_state.max_perip_global.value;
4225 >  class->con_freq = block_state.con_freq.value;
4226 >  class->max_total = block_state.max_total.value;
4227 >  class->max_sendq = block_state.max_sendq.value;
4228 >  class->max_recvq = block_state.max_recvq.value;
4229 >  class->max_channels = block_state.max_channels.value;
4230 >
4231 >  if (block_state.min_idle.value > block_state.max_idle.value)
4232    {
4233 <    MyFree(yy_class_name);
4234 <    DupString(yy_class_name, yylval.string);
4233 >    block_state.min_idle.value = 0;
4234 >    block_state.max_idle.value = 0;
4235 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4236    }
4237 +
4238 +  class->flags = block_state.flags.value;
4239 +  class->min_idle = block_state.min_idle.value;
4240 +  class->max_idle = block_state.max_idle.value;
4241 +
4242 +  int diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4243 +              class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4244 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4245 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4246 +  class->number_per_cidr = block_state.number_per_cidr.value;
4247 +
4248 +  if (diff)
4249 +    class_ip_limit_rebuild(class);
4250   }
4251 + #line 4252 "conf_parser.c" /* yacc.c:1646  */
4252      break;
4253  
4254 <  case 244:
4255 <
5153 < /* Line 1455 of yacc.c  */
5154 < #line 1638 "ircd_parser.y"
4254 >  case 254:
4255 > #line 1389 "conf_parser.y" /* yacc.c:1646  */
4256      {
4257    if (conf_parser_ctx.pass == 1)
4258 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4258 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4259   }
4260 + #line 4261 "conf_parser.c" /* yacc.c:1646  */
4261      break;
4262  
4263 <  case 245:
4264 <
5163 < /* Line 1455 of yacc.c  */
5164 < #line 1644 "ircd_parser.y"
4263 >  case 255:
4264 > #line 1395 "conf_parser.y" /* yacc.c:1646  */
4265      {
4266    if (conf_parser_ctx.pass == 1)
4267 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4267 >    block_state.ping_freq.value = (yyvsp[-1].number);
4268   }
4269 + #line 4270 "conf_parser.c" /* yacc.c:1646  */
4270      break;
4271  
4272 <  case 246:
4273 <
5173 < /* Line 1455 of yacc.c  */
5174 < #line 1650 "ircd_parser.y"
4272 >  case 256:
4273 > #line 1401 "conf_parser.y" /* yacc.c:1646  */
4274      {
4275    if (conf_parser_ctx.pass == 1)
4276 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4276 >    block_state.max_perip_local.value = (yyvsp[-1].number);
4277   }
4278 + #line 4279 "conf_parser.c" /* yacc.c:1646  */
4279      break;
4280  
4281 <  case 247:
4282 <
5183 < /* Line 1455 of yacc.c  */
5184 < #line 1656 "ircd_parser.y"
4281 >  case 257:
4282 > #line 1407 "conf_parser.y" /* yacc.c:1646  */
4283      {
4284    if (conf_parser_ctx.pass == 1)
4285 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4285 >    block_state.max_perip_global.value = (yyvsp[-1].number);
4286   }
4287 + #line 4288 "conf_parser.c" /* yacc.c:1646  */
4288      break;
4289  
4290 <  case 248:
4291 <
5193 < /* Line 1455 of yacc.c  */
5194 < #line 1662 "ircd_parser.y"
4290 >  case 258:
4291 > #line 1413 "conf_parser.y" /* yacc.c:1646  */
4292      {
4293    if (conf_parser_ctx.pass == 1)
4294 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4294 >    block_state.con_freq.value = (yyvsp[-1].number);
4295   }
4296 + #line 4297 "conf_parser.c" /* yacc.c:1646  */
4297      break;
4298  
4299 <  case 249:
4300 <
5203 < /* Line 1455 of yacc.c  */
5204 < #line 1668 "ircd_parser.y"
4299 >  case 259:
4300 > #line 1419 "conf_parser.y" /* yacc.c:1646  */
4301      {
4302    if (conf_parser_ctx.pass == 1)
4303 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4303 >    block_state.max_channels.value = (yyvsp[-1].number);
4304   }
4305 + #line 4306 "conf_parser.c" /* yacc.c:1646  */
4306      break;
4307  
4308 <  case 250:
4309 <
5213 < /* Line 1455 of yacc.c  */
5214 < #line 1674 "ircd_parser.y"
4308 >  case 260:
4309 > #line 1425 "conf_parser.y" /* yacc.c:1646  */
4310      {
4311    if (conf_parser_ctx.pass == 1)
4312 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4312 >    block_state.max_total.value = (yyvsp[-1].number);
4313   }
4314 + #line 4315 "conf_parser.c" /* yacc.c:1646  */
4315      break;
4316  
4317 <  case 251:
4318 <
5223 < /* Line 1455 of yacc.c  */
5224 < #line 1680 "ircd_parser.y"
4317 >  case 261:
4318 > #line 1431 "conf_parser.y" /* yacc.c:1646  */
4319      {
4320    if (conf_parser_ctx.pass == 1)
4321 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4321 >    block_state.max_sendq.value = (yyvsp[-1].number);
4322   }
4323 + #line 4324 "conf_parser.c" /* yacc.c:1646  */
4324      break;
4325  
4326 <  case 252:
4327 <
5233 < /* Line 1455 of yacc.c  */
5234 < #line 1686 "ircd_parser.y"
4326 >  case 262:
4327 > #line 1437 "conf_parser.y" /* yacc.c:1646  */
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4330 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4331 >      block_state.max_recvq.value = (yyvsp[-1].number);
4332   }
4333 + #line 4334 "conf_parser.c" /* yacc.c:1646  */
4334      break;
4335  
4336 <  case 253:
4337 <
5243 < /* Line 1455 of yacc.c  */
5244 < #line 1692 "ircd_parser.y"
4336 >  case 263:
4337 > #line 1444 "conf_parser.y" /* yacc.c:1646  */
4338      {
4339    if (conf_parser_ctx.pass == 1)
4340 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4340 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4341   }
4342 + #line 4343 "conf_parser.c" /* yacc.c:1646  */
4343      break;
4344  
4345 <  case 254:
4346 <
5253 < /* Line 1455 of yacc.c  */
5254 < #line 1698 "ircd_parser.y"
4345 >  case 264:
4346 > #line 1450 "conf_parser.y" /* yacc.c:1646  */
4347      {
4348    if (conf_parser_ctx.pass == 1)
4349 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4349 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4350   }
4351 + #line 4352 "conf_parser.c" /* yacc.c:1646  */
4352      break;
4353  
4354 <  case 255:
4355 <
5263 < /* Line 1455 of yacc.c  */
5264 < #line 1704 "ircd_parser.y"
4354 >  case 265:
4355 > #line 1456 "conf_parser.y" /* yacc.c:1646  */
4356      {
4357    if (conf_parser_ctx.pass == 1)
4358 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4358 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4359   }
4360 + #line 4361 "conf_parser.c" /* yacc.c:1646  */
4361      break;
4362  
4363 <  case 256:
4364 <
5273 < /* Line 1455 of yacc.c  */
5274 < #line 1713 "ircd_parser.y"
4363 >  case 266:
4364 > #line 1462 "conf_parser.y" /* yacc.c:1646  */
4365      {
4366 <  if (conf_parser_ctx.pass == 2)
5277 <  {
5278 <    listener_address = NULL;
5279 <    listener_flags = 0;
5280 <  }
5281 < }
4366 >  if (conf_parser_ctx.pass != 1)
4367      break;
4368  
4369 <  case 257:
4370 <
5286 < /* Line 1455 of yacc.c  */
5287 < #line 1720 "ircd_parser.y"
5288 <    {
5289 <  if (conf_parser_ctx.pass == 2)
5290 <  {
5291 <    MyFree(listener_address);
5292 <    listener_address = NULL;
5293 <  }
4369 >  block_state.min_idle.value = (yyvsp[-1].number);
4370 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4371   }
4372 + #line 4373 "conf_parser.c" /* yacc.c:1646  */
4373      break;
4374  
4375 <  case 258:
4376 <
5299 < /* Line 1455 of yacc.c  */
5300 < #line 1729 "ircd_parser.y"
4375 >  case 267:
4376 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4377      {
4378 <  listener_flags = 0;
5303 < }
4378 >  if (conf_parser_ctx.pass != 1)
4379      break;
4380  
4381 <  case 262:
4382 <
5308 < /* Line 1455 of yacc.c  */
5309 < #line 1735 "ircd_parser.y"
5310 <    {
5311 <  if (conf_parser_ctx.pass == 2)
5312 <    listener_flags |= LISTENER_SSL;
4381 >  block_state.max_idle.value = (yyvsp[-1].number);
4382 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4383   }
4384 + #line 4385 "conf_parser.c" /* yacc.c:1646  */
4385      break;
4386  
4387 <  case 263:
4388 <
5318 < /* Line 1455 of yacc.c  */
5319 < #line 1739 "ircd_parser.y"
4387 >  case 268:
4388 > #line 1480 "conf_parser.y" /* yacc.c:1646  */
4389      {
4390 <  if (conf_parser_ctx.pass == 2)
4391 <    listener_flags |= LISTENER_HIDDEN;
4390 >  if (conf_parser_ctx.pass == 1)
4391 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4392   }
4393 + #line 4394 "conf_parser.c" /* yacc.c:1646  */
4394      break;
4395  
4396 <  case 264:
4397 <
5328 < /* Line 1455 of yacc.c  */
5329 < #line 1743 "ircd_parser.y"
4396 >  case 272:
4397 > #line 1487 "conf_parser.y" /* yacc.c:1646  */
4398      {
4399 <  if (conf_parser_ctx.pass == 2)
4400 <    listener_flags |= LISTENER_SERVER;
4399 >  if (conf_parser_ctx.pass == 1)
4400 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4401   }
4402 + #line 4403 "conf_parser.c" /* yacc.c:1646  */
4403      break;
4404  
4405 <  case 272:
4406 <
4407 < /* Line 1455 of yacc.c  */
4408 < #line 1753 "ircd_parser.y"
4409 <    { listener_flags = 0; }
4405 >  case 273:
4406 > #line 1491 "conf_parser.y" /* yacc.c:1646  */
4407 >    {
4408 >  if (conf_parser_ctx.pass == 1)
4409 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4410 > }
4411 > #line 4412 "conf_parser.c" /* yacc.c:1646  */
4412      break;
4413  
4414 <  case 276:
4415 <
5345 < /* Line 1455 of yacc.c  */
5346 < #line 1758 "ircd_parser.y"
4414 >  case 274:
4415 > #line 1501 "conf_parser.y" /* yacc.c:1646  */
4416      {
4417    if (conf_parser_ctx.pass == 2)
4418 <  {
5350 <    if ((listener_flags & LISTENER_SSL))
5351 < #ifdef HAVE_LIBCRYPTO
5352 <      if (!ServerInfo.server_ctx)
5353 < #endif
5354 <      {
5355 <        yyerror("SSL not available - port closed");
5356 <        break;
5357 <      }
5358 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
5359 <  }
4418 >    reset_block_state();
4419   }
4420 + #line 4421 "conf_parser.c" /* yacc.c:1646  */
4421      break;
4422  
4423 <  case 277:
4424 <
5365 < /* Line 1455 of yacc.c  */
5366 < #line 1772 "ircd_parser.y"
4423 >  case 276:
4424 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4425      {
4426 <  if (conf_parser_ctx.pass == 2)
5369 <  {
5370 <    int i;
5371 <
5372 <    if ((listener_flags & LISTENER_SSL))
5373 < #ifdef HAVE_LIBCRYPTO
5374 <      if (!ServerInfo.server_ctx)
5375 < #endif
5376 <      {
5377 <        yyerror("SSL not available - port closed");
5378 <        break;
5379 <      }
5380 <
5381 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
5382 <      add_listener(i, listener_address, listener_flags);
5383 <  }
4426 >  block_state.flags.value = 0;
4427   }
4428 + #line 4429 "conf_parser.c" /* yacc.c:1646  */
4429      break;
4430  
4431 <  case 278:
4432 <
5389 < /* Line 1455 of yacc.c  */
5390 < #line 1792 "ircd_parser.y"
4431 >  case 280:
4432 > #line 1513 "conf_parser.y" /* yacc.c:1646  */
4433      {
4434    if (conf_parser_ctx.pass == 2)
4435 <  {
5394 <    MyFree(listener_address);
5395 <    DupString(listener_address, yylval.string);
5396 <  }
4435 >    block_state.flags.value |= LISTENER_SSL;
4436   }
4437 + #line 4438 "conf_parser.c" /* yacc.c:1646  */
4438      break;
4439  
4440 <  case 279:
4441 <
5402 < /* Line 1455 of yacc.c  */
5403 < #line 1801 "ircd_parser.y"
4440 >  case 281:
4441 > #line 1517 "conf_parser.y" /* yacc.c:1646  */
4442      {
4443    if (conf_parser_ctx.pass == 2)
4444 <  {
5407 <    MyFree(listener_address);
5408 <    DupString(listener_address, yylval.string);
5409 <  }
4444 >    block_state.flags.value |= LISTENER_HIDDEN;
4445   }
4446 + #line 4447 "conf_parser.c" /* yacc.c:1646  */
4447      break;
4448  
4449 <  case 280:
4450 <
5415 < /* Line 1455 of yacc.c  */
5416 < #line 1813 "ircd_parser.y"
4449 >  case 282:
4450 > #line 1521 "conf_parser.y" /* yacc.c:1646  */
4451      {
4452    if (conf_parser_ctx.pass == 2)
4453 <  {
5420 <    yy_conf = make_conf_item(CLIENT_TYPE);
5421 <    yy_aconf = map_to_conf(yy_conf);
5422 <  }
5423 <  else
5424 <  {
5425 <    MyFree(class_name);
5426 <    class_name = NULL;
5427 <  }
4453 >   block_state.flags.value |= LISTENER_SERVER;
4454   }
4455 + #line 4456 "conf_parser.c" /* yacc.c:1646  */
4456      break;
4457  
4458 <  case 281:
4458 >  case 290:
4459 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4460 >    { block_state.flags.value = 0; }
4461 > #line 4462 "conf_parser.c" /* yacc.c:1646  */
4462 >    break;
4463  
4464 < /* Line 1455 of yacc.c  */
4465 < #line 1825 "ircd_parser.y"
4464 >  case 294:
4465 > #line 1534 "conf_parser.y" /* yacc.c:1646  */
4466      {
4467    if (conf_parser_ctx.pass == 2)
4468    {
4469 <    struct CollectItem *yy_tmp = NULL;
4470 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5440 <
5441 <    if (yy_aconf->user && yy_aconf->host)
5442 <    {
5443 <      conf_add_class_to_conf(yy_conf, class_name);
5444 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5445 <    }
5446 <    else
5447 <      delete_conf_item(yy_conf);
5448 <
5449 <    /* copy over settings from first struct */
5450 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4469 > #ifndef HAVE_TLS
4470 >    if (block_state.flags.value & LISTENER_SSL)
4471      {
4472 <      struct AccessItem *new_aconf;
4473 <      struct ConfItem *new_conf;
5454 <
5455 <      new_conf = make_conf_item(CLIENT_TYPE);
5456 <      new_aconf = map_to_conf(new_conf);
5457 <
5458 <      yy_tmp = ptr->data;
5459 <
5460 <      assert(yy_tmp->user && yy_tmp->host);
5461 <
5462 <      if (yy_aconf->passwd != NULL)
5463 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5464 <      if (yy_conf->name != NULL)
5465 <        DupString(new_conf->name, yy_conf->name);
5466 <      if (yy_aconf->passwd != NULL)
5467 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5468 <
5469 <      new_aconf->flags = yy_aconf->flags;
5470 <      new_aconf->port  = yy_aconf->port;
5471 <
5472 <      DupString(new_aconf->user, yy_tmp->user);
5473 <      collapse(new_aconf->user);
5474 <
5475 <      DupString(new_aconf->host, yy_tmp->host);
5476 <      collapse(new_aconf->host);
5477 <
5478 <      conf_add_class_to_conf(new_conf, class_name);
5479 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5480 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5481 <      free_collect_item(yy_tmp);
4472 >      conf_error_report("TLS not available - port closed");
4473 >      break;
4474      }
4475 <
4476 <    MyFree(class_name);
5485 <    class_name = NULL;
5486 <    yy_conf = NULL;
5487 <    yy_aconf = NULL;
4475 > #endif
4476 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4477    }
4478   }
4479 + #line 4480 "conf_parser.c" /* yacc.c:1646  */
4480      break;
4481  
4482 <  case 301:
4483 <
5494 < /* Line 1455 of yacc.c  */
5495 < #line 1890 "ircd_parser.y"
4482 >  case 295:
4483 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4484      {
4485    if (conf_parser_ctx.pass == 2)
4486    {
4487 <    struct CollectItem *yy_tmp = NULL;
4488 <    struct split_nuh_item nuh;
5501 <
5502 <    nuh.nuhmask  = yylval.string;
5503 <    nuh.nickptr  = NULL;
5504 <    nuh.userptr  = userbuf;
5505 <    nuh.hostptr  = hostbuf;
5506 <
5507 <    nuh.nicksize = 0;
5508 <    nuh.usersize = sizeof(userbuf);
5509 <    nuh.hostsize = sizeof(hostbuf);
5510 <
5511 <    split_nuh(&nuh);
5512 <
5513 <    if (yy_aconf->user == NULL)
4487 > #ifndef HAVE_TLS
4488 >    if (block_state.flags.value & LISTENER_SSL)
4489      {
4490 <      DupString(yy_aconf->user, userbuf);
4491 <      DupString(yy_aconf->host, hostbuf);
4490 >      conf_error_report("TLS not available - port closed");
4491 >      break;
4492      }
4493 <    else
5519 <    {
5520 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
5521 <
5522 <      DupString(yy_tmp->user, userbuf);
5523 <      DupString(yy_tmp->host, hostbuf);
4493 > #endif
4494  
4495 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4496 <    }
4495 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4496 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4497    }
4498   }
4499 + #line 4500 "conf_parser.c" /* yacc.c:1646  */
4500      break;
4501  
4502 <  case 302:
4503 <
5533 < /* Line 1455 of yacc.c  */
5534 < #line 1927 "ircd_parser.y"
4502 >  case 296:
4503 > #line 1564 "conf_parser.y" /* yacc.c:1646  */
4504      {
4505    if (conf_parser_ctx.pass == 2)
4506 <  {
5538 <    /* be paranoid */
5539 <    if (yy_aconf->passwd != NULL)
5540 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5541 <
5542 <    MyFree(yy_aconf->passwd);
5543 <    DupString(yy_aconf->passwd, yylval.string);
5544 <  }
4506 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4507   }
4508 + #line 4509 "conf_parser.c" /* yacc.c:1646  */
4509      break;
4510  
4511 <  case 303:
4512 <
5550 < /* Line 1455 of yacc.c  */
5551 < #line 1940 "ircd_parser.y"
4511 >  case 297:
4512 > #line 1570 "conf_parser.y" /* yacc.c:1646  */
4513      {
4514    if (conf_parser_ctx.pass == 2)
4515 <  {
5555 <    if (yylval.number)
5556 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5557 <    else
5558 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5559 <  }
4515 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4516   }
4517 + #line 4518 "conf_parser.c" /* yacc.c:1646  */
4518      break;
4519  
4520 <  case 304:
4521 <
5565 < /* Line 1455 of yacc.c  */
5566 < #line 1951 "ircd_parser.y"
4520 >  case 298:
4521 > #line 1580 "conf_parser.y" /* yacc.c:1646  */
4522      {
4523    if (conf_parser_ctx.pass == 2)
4524 <  {
5570 <    MyFree(class_name);
5571 <    DupString(class_name, yylval.string);
5572 <  }
4524 >    reset_block_state();
4525   }
4526 + #line 4527 "conf_parser.c" /* yacc.c:1646  */
4527      break;
4528  
4529 <  case 305:
4530 <
5578 < /* Line 1455 of yacc.c  */
5579 < #line 1960 "ircd_parser.y"
4529 >  case 299:
4530 > #line 1584 "conf_parser.y" /* yacc.c:1646  */
4531      {
4532 <  if (conf_parser_ctx.pass == 2)
4533 <  {
4534 <    if (yylval.number)
5584 <      SetConfEncrypted(yy_aconf);
5585 <    else
5586 <      ClearConfEncrypted(yy_aconf);
5587 <  }
5588 < }
4532 >  dlink_node *node = NULL;
4533 >
4534 >  if (conf_parser_ctx.pass != 2)
4535      break;
4536  
4537 <  case 306:
4537 >  DLINK_FOREACH(node, block_state.mask.list.head)
4538 >  {
4539 >    struct MaskItem *conf = NULL;
4540 >    struct split_nuh_item nuh;
4541 >    char *s = node->data;
4542  
4543 < /* Line 1455 of yacc.c  */
4544 < #line 1971 "ircd_parser.y"
5595 <    {
5596 < }
5597 <    break;
4543 >    if (EmptyString(s))
4544 >      continue;
4545  
4546 <  case 310:
4546 >    nuh.nuhmask  = s;
4547 >    nuh.nickptr  = NULL;
4548 >    nuh.userptr  = block_state.user.buf;
4549 >    nuh.hostptr  = block_state.host.buf;
4550 >    nuh.nicksize = 0;
4551 >    nuh.usersize = sizeof(block_state.user.buf);
4552 >    nuh.hostsize = sizeof(block_state.host.buf);
4553 >    split_nuh(&nuh);
4554  
4555 < /* Line 1455 of yacc.c  */
4556 < #line 1975 "ircd_parser.y"
4557 <    { not_atom = 1; }
5604 <    break;
4555 >    conf        = conf_make(CONF_CLIENT);
4556 >    conf->user  = xstrdup(block_state.user.buf);
4557 >    conf->host  = xstrdup(block_state.host.buf);
4558  
4559 <  case 312:
4559 >    if (block_state.rpass.buf[0])
4560 >      conf->passwd = xstrdup(block_state.rpass.buf);
4561 >    if (block_state.name.buf[0])
4562 >      conf->name = xstrdup(block_state.name.buf);
4563  
4564 < /* Line 1455 of yacc.c  */
4565 < #line 1976 "ircd_parser.y"
5610 <    { not_atom = 0; }
5611 <    break;
4564 >    conf->flags = block_state.flags.value;
4565 >    conf->port  = block_state.port.value;
4566  
4567 <  case 314:
4567 >    conf_add_class_to_conf(conf, block_state.class.buf);
4568 >    add_conf_by_address(CONF_CLIENT, conf);
4569 >  }
4570 > }
4571 > #line 4572 "conf_parser.c" /* yacc.c:1646  */
4572 >    break;
4573  
4574 < /* Line 1455 of yacc.c  */
4575 < #line 1979 "ircd_parser.y"
4574 >  case 311:
4575 > #line 1637 "conf_parser.y" /* yacc.c:1646  */
4576      {
4577    if (conf_parser_ctx.pass == 2)
4578 <  {
5620 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5621 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5622 <  }
5623 <
4578 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4579   }
4580 + #line 4581 "conf_parser.c" /* yacc.c:1646  */
4581      break;
4582  
4583 <  case 315:
4584 <
5629 < /* Line 1455 of yacc.c  */
5630 < #line 1987 "ircd_parser.y"
4583 >  case 312:
4584 > #line 1643 "conf_parser.y" /* yacc.c:1646  */
4585      {
4586    if (conf_parser_ctx.pass == 2)
4587 <  {
5634 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5635 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5636 <  }
4587 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4588   }
4589 + #line 4590 "conf_parser.c" /* yacc.c:1646  */
4590      break;
4591  
4592 <  case 316:
4593 <
5642 < /* Line 1455 of yacc.c  */
5643 < #line 1994 "ircd_parser.y"
4592 >  case 313:
4593 > #line 1649 "conf_parser.y" /* yacc.c:1646  */
4594      {
4595    if (conf_parser_ctx.pass == 2)
4596 <  {
5647 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5648 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5649 <  }
4596 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4597   }
4598 + #line 4599 "conf_parser.c" /* yacc.c:1646  */
4599      break;
4600  
4601 <  case 317:
4602 <
5655 < /* Line 1455 of yacc.c  */
5656 < #line 2001 "ircd_parser.y"
4601 >  case 314:
4602 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4603      {
4604    if (conf_parser_ctx.pass == 2)
4605    {
4606 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
4607 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4606 >    if (yylval.number)
4607 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4608 >    else
4609 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4610    }
4611   }
4612 + #line 4613 "conf_parser.c" /* yacc.c:1646  */
4613      break;
4614  
4615 <  case 318:
4616 <
5668 < /* Line 1455 of yacc.c  */
5669 < #line 2008 "ircd_parser.y"
4615 >  case 315:
4616 > #line 1666 "conf_parser.y" /* yacc.c:1646  */
4617      {
4618    if (conf_parser_ctx.pass == 2)
4619 <  {
5673 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5674 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5675 <  }
4619 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4620   }
4621 + #line 4622 "conf_parser.c" /* yacc.c:1646  */
4622      break;
4623  
4624    case 319:
4625 <
5681 < /* Line 1455 of yacc.c  */
5682 < #line 2015 "ircd_parser.y"
4625 > #line 1673 "conf_parser.y" /* yacc.c:1646  */
4626      {
4627    if (conf_parser_ctx.pass == 2)
4628 <  {
5686 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5687 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5688 <  }
4628 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4629   }
4630 + #line 4631 "conf_parser.c" /* yacc.c:1646  */
4631      break;
4632  
4633    case 320:
4634 <
5694 < /* Line 1455 of yacc.c  */
5695 < #line 2022 "ircd_parser.y"
4634 > #line 1677 "conf_parser.y" /* yacc.c:1646  */
4635      {
4636    if (conf_parser_ctx.pass == 2)
4637 <  {
5699 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5700 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5701 <  }
4637 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4638   }
4639 + #line 4640 "conf_parser.c" /* yacc.c:1646  */
4640      break;
4641  
4642    case 321:
4643 <
5707 < /* Line 1455 of yacc.c  */
5708 < #line 2029 "ircd_parser.y"
4643 > #line 1681 "conf_parser.y" /* yacc.c:1646  */
4644      {
4645    if (conf_parser_ctx.pass == 2)
4646 <  {
5712 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5713 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5714 <  }
4646 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4647   }
4648 + #line 4649 "conf_parser.c" /* yacc.c:1646  */
4649      break;
4650  
4651    case 322:
4652 <
5720 < /* Line 1455 of yacc.c  */
5721 < #line 2036 "ircd_parser.y"
4652 > #line 1685 "conf_parser.y" /* yacc.c:1646  */
4653      {
4654    if (conf_parser_ctx.pass == 2)
4655 <  {
5725 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5726 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5727 <  }
4655 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4656   }
4657 + #line 4658 "conf_parser.c" /* yacc.c:1646  */
4658      break;
4659  
4660    case 323:
4661 <
5733 < /* Line 1455 of yacc.c  */
5734 < #line 2043 "ircd_parser.y"
4661 > #line 1689 "conf_parser.y" /* yacc.c:1646  */
4662      {
4663    if (conf_parser_ctx.pass == 2)
4664 <  {
5738 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5739 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5740 <  }
4664 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4665   }
4666 + #line 4667 "conf_parser.c" /* yacc.c:1646  */
4667      break;
4668  
4669    case 324:
4670 <
5746 < /* Line 1455 of yacc.c  */
5747 < #line 2052 "ircd_parser.y"
4670 > #line 1693 "conf_parser.y" /* yacc.c:1646  */
4671      {
4672    if (conf_parser_ctx.pass == 2)
4673 <  {
5751 <    if (yylval.number)
5752 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5753 <    else
5754 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5755 <  }
4673 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4674   }
4675 + #line 4676 "conf_parser.c" /* yacc.c:1646  */
4676      break;
4677  
4678    case 325:
4679 <
5761 < /* Line 1455 of yacc.c  */
5762 < #line 2063 "ircd_parser.y"
4679 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4680      {
4681    if (conf_parser_ctx.pass == 2)
4682 <  {
5766 <    if (yylval.number)
5767 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5768 <    else
5769 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5770 <  }
4682 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4683   }
4684 + #line 4685 "conf_parser.c" /* yacc.c:1646  */
4685      break;
4686  
4687    case 326:
4688 <
5776 < /* Line 1455 of yacc.c  */
5777 < #line 2074 "ircd_parser.y"
4688 > #line 1701 "conf_parser.y" /* yacc.c:1646  */
4689      {
4690    if (conf_parser_ctx.pass == 2)
4691 <  {
5781 <    if (yylval.number)
5782 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5783 <    else
5784 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5785 <  }
4691 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4692   }
4693 + #line 4694 "conf_parser.c" /* yacc.c:1646  */
4694      break;
4695  
4696    case 327:
4697 <
5791 < /* Line 1455 of yacc.c  */
5792 < #line 2085 "ircd_parser.y"
4697 > #line 1705 "conf_parser.y" /* yacc.c:1646  */
4698      {
4699    if (conf_parser_ctx.pass == 2)
4700 <  {
5796 <    if (yylval.number)
5797 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5798 <    else
5799 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5800 <  }
4700 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4701   }
4702 + #line 4703 "conf_parser.c" /* yacc.c:1646  */
4703      break;
4704  
4705    case 328:
4706 <
5806 < /* Line 1455 of yacc.c  */
5807 < #line 2096 "ircd_parser.y"
4706 > #line 1709 "conf_parser.y" /* yacc.c:1646  */
4707      {
4708    if (conf_parser_ctx.pass == 2)
4709 <  {
5811 <    if (yylval.number)
5812 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5813 <    else
5814 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5815 <  }
4709 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4710   }
4711 + #line 4712 "conf_parser.c" /* yacc.c:1646  */
4712      break;
4713  
4714    case 329:
4715 <
5821 < /* Line 1455 of yacc.c  */
5822 < #line 2107 "ircd_parser.y"
4715 > #line 1715 "conf_parser.y" /* yacc.c:1646  */
4716      {
4717 <  if (conf_parser_ctx.pass == 2)
4717 >  if (conf_parser_ctx.pass != 2)
4718 >    break;
4719 >
4720 >  if (valid_hostname(yylval.string))
4721    {
4722 <    if (yylval.number)
4723 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5828 <    else
5829 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
4722 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4723 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4724    }
4725 +  else
4726 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4727   }
4728 + #line 4729 "conf_parser.c" /* yacc.c:1646  */
4729      break;
4730  
4731    case 330:
4732 <
5836 < /* Line 1455 of yacc.c  */
5837 < #line 2119 "ircd_parser.y"
4732 > #line 1729 "conf_parser.y" /* yacc.c:1646  */
4733      {
4734 <  if (conf_parser_ctx.pass == 2)
4735 <  {
5841 <    MyFree(yy_conf->name);
4734 >  if (conf_parser_ctx.pass != 2)
4735 >    break;
4736  
4737 <    if (strlen(yylval.string) < HOSTLEN)
4738 <    {    
5845 <      DupString(yy_conf->name, yylval.string);
5846 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5847 <    }
5848 <    else
5849 <    {
5850 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5851 <      yy_conf->name = NULL;
5852 <    }
5853 <  }
4737 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4738 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4739   }
4740 + #line 4741 "conf_parser.c" /* yacc.c:1646  */
4741      break;
4742  
4743    case 331:
4744 <
5859 < /* Line 1455 of yacc.c  */
5860 < #line 2138 "ircd_parser.y"
4744 > #line 1738 "conf_parser.y" /* yacc.c:1646  */
4745      {
4746 <  if (conf_parser_ctx.pass == 2)
4747 <  {
4748 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4749 <    MyFree(yy_conf->name);
4750 <    DupString(yy_conf->name, yylval.string);
5867 <  }
4746 >  if (conf_parser_ctx.pass != 2)
4747 >    break;
4748 >
4749 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4750 >  block_state.port.value = (yyvsp[-1].number);
4751   }
4752 + #line 4753 "conf_parser.c" /* yacc.c:1646  */
4753      break;
4754  
4755    case 332:
4756 <
5873 < /* Line 1455 of yacc.c  */
5874 < #line 2148 "ircd_parser.y"
4756 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4757      {
4758 <  if (conf_parser_ctx.pass == 2)
4759 <  {
4760 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4761 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4762 <  }
4758 >  if (conf_parser_ctx.pass != 2)
4759 >    break;
4760 >
4761 >  reset_block_state();
4762 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4763   }
4764 + #line 4765 "conf_parser.c" /* yacc.c:1646  */
4765      break;
4766  
4767    case 333:
4768 <
5886 < /* Line 1455 of yacc.c  */
5887 < #line 2157 "ircd_parser.y"
4768 > #line 1758 "conf_parser.y" /* yacc.c:1646  */
4769      {
4770 <  if (conf_parser_ctx.pass == 2)
5890 <  {
5891 <    if (yylval.number)
5892 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5893 <    else
5894 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5895 <  }
5896 < }
4770 >  if (conf_parser_ctx.pass != 2)
4771      break;
4772  
4773 <  case 334:
4773 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4774 > }
4775 > #line 4776 "conf_parser.c" /* yacc.c:1646  */
4776 >    break;
4777  
4778 < /* Line 1455 of yacc.c  */
4779 < #line 2172 "ircd_parser.y"
4778 >  case 340:
4779 > #line 1769 "conf_parser.y" /* yacc.c:1646  */
4780      {
4781    if (conf_parser_ctx.pass == 2)
4782 <  {
5906 <    MyFree(resv_reason);
5907 <    resv_reason = NULL;
5908 <  }
4782 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4783   }
4784 + #line 4785 "conf_parser.c" /* yacc.c:1646  */
4785      break;
4786  
4787 <  case 335:
4788 <
5914 < /* Line 1455 of yacc.c  */
5915 < #line 2179 "ircd_parser.y"
4787 >  case 341:
4788 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4789      {
4790    if (conf_parser_ctx.pass == 2)
4791 <  {
5919 <    MyFree(resv_reason);
5920 <    resv_reason = NULL;
5921 <  }
4791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4792   }
4793 + #line 4794 "conf_parser.c" /* yacc.c:1646  */
4794      break;
4795  
4796    case 342:
4797 <
5927 < /* Line 1455 of yacc.c  */
5928 < #line 2191 "ircd_parser.y"
4797 > #line 1781 "conf_parser.y" /* yacc.c:1646  */
4798      {
4799    if (conf_parser_ctx.pass == 2)
4800 <  {
5932 <    MyFree(resv_reason);
5933 <    DupString(resv_reason, yylval.string);
5934 <  }
4800 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4801   }
4802 + #line 4803 "conf_parser.c" /* yacc.c:1646  */
4803      break;
4804  
4805 <  case 343:
4806 <
5940 < /* Line 1455 of yacc.c  */
5941 < #line 2200 "ircd_parser.y"
4805 >  case 348:
4806 > #line 1796 "conf_parser.y" /* yacc.c:1646  */
4807      {
4808 <  if (conf_parser_ctx.pass == 2)
4809 <  {
5945 <    if (IsChanPrefix(*yylval.string))
5946 <    {
5947 <      char def_reason[] = "No reason";
4808 >  if (conf_parser_ctx.pass != 2)
4809 >    break;
4810  
4811 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4812 <    }
4811 >  if (server_valid_name(yylval.string) == true)
4812 >  {
4813 >    struct ServiceItem *service = service_make();
4814 >    service->name = xstrdup(yylval.string);
4815    }
5952  /* ignore it for now.. but we really should make a warning if
5953   * its an erroneous name --fl_ */
4816   }
4817 + #line 4818 "conf_parser.c" /* yacc.c:1646  */
4818      break;
4819  
4820 <  case 344:
4821 <
5959 < /* Line 1455 of yacc.c  */
5960 < #line 2215 "ircd_parser.y"
4820 >  case 349:
4821 > #line 1812 "conf_parser.y" /* yacc.c:1646  */
4822      {
4823 <  if (conf_parser_ctx.pass == 2)
5963 <  {
5964 <    char def_reason[] = "No reason";
5965 <
5966 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5967 <  }
5968 < }
4823 >  if (conf_parser_ctx.pass != 2)
4824      break;
4825  
4826 <  case 345:
4826 >  reset_block_state();
4827  
4828 < /* Line 1455 of yacc.c  */
4829 < #line 2228 "ircd_parser.y"
4830 <    {
4831 <  if (conf_parser_ctx.pass == 2)
5977 <  {
5978 <    yy_conf = make_conf_item(ULINE_TYPE);
5979 <    yy_match_item = map_to_conf(yy_conf);
5980 <    yy_match_item->action = SHARED_ALL;
5981 <  }
4828 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4829 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4830 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4831 >  block_state.flags.value = SHARED_ALL;
4832   }
4833 + #line 4834 "conf_parser.c" /* yacc.c:1646  */
4834      break;
4835  
4836 <  case 346:
4837 <
5987 < /* Line 1455 of yacc.c  */
5988 < #line 2236 "ircd_parser.y"
4836 >  case 350:
4837 > #line 1823 "conf_parser.y" /* yacc.c:1646  */
4838      {
4839 <  if (conf_parser_ctx.pass == 2)
5991 <  {
5992 <    yy_conf = NULL;
5993 <  }
5994 < }
4839 >  if (conf_parser_ctx.pass != 2)
4840      break;
4841  
4842 <  case 353:
4842 >  struct SharedItem *shared = shared_make();
4843 >  shared->type = block_state.flags.value;
4844 >  shared->server = xstrdup(block_state.name.buf);
4845 >  shared->user = xstrdup(block_state.user.buf);
4846 >  shared->host = xstrdup(block_state.host.buf);
4847 > }
4848 > #line 4849 "conf_parser.c" /* yacc.c:1646  */
4849 >    break;
4850  
4851 < /* Line 1455 of yacc.c  */
4852 < #line 2247 "ircd_parser.y"
4851 >  case 357:
4852 > #line 1838 "conf_parser.y" /* yacc.c:1646  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855 <  {
6004 <    MyFree(yy_conf->name);
6005 <    DupString(yy_conf->name, yylval.string);
6006 <  }
4855 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4856   }
4857 + #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 354:
4861 <
6012 < /* Line 1455 of yacc.c  */
6013 < #line 2256 "ircd_parser.y"
4860 >  case 358:
4861 > #line 1844 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864    {
# Line 6018 | Line 4866 | yyreduce:
4866  
4867      nuh.nuhmask  = yylval.string;
4868      nuh.nickptr  = NULL;
4869 <    nuh.userptr  = userbuf;
4870 <    nuh.hostptr  = hostbuf;
4869 >    nuh.userptr  = block_state.user.buf;
4870 >    nuh.hostptr  = block_state.host.buf;
4871  
4872      nuh.nicksize = 0;
4873 <    nuh.usersize = sizeof(userbuf);
4874 <    nuh.hostsize = sizeof(hostbuf);
4873 >    nuh.usersize = sizeof(block_state.user.buf);
4874 >    nuh.hostsize = sizeof(block_state.host.buf);
4875  
4876      split_nuh(&nuh);
6029
6030    DupString(yy_match_item->user, userbuf);
6031    DupString(yy_match_item->host, hostbuf);
4877    }
4878   }
4879 <    break;
6035 <
6036 <  case 355:
6037 <
6038 < /* Line 1455 of yacc.c  */
6039 < #line 2278 "ircd_parser.y"
6040 <    {
6041 <  if (conf_parser_ctx.pass == 2)
6042 <    yy_match_item->action = 0;
6043 < }
4879 > #line 4880 "conf_parser.c" /* yacc.c:1646  */
4880      break;
4881  
4882    case 359:
4883 <
6048 < /* Line 1455 of yacc.c  */
6049 < #line 2285 "ircd_parser.y"
6050 <    {
6051 <  if (conf_parser_ctx.pass == 2)
6052 <    yy_match_item->action |= SHARED_KLINE;
6053 < }
6054 <    break;
6055 <
6056 <  case 360:
6057 <
6058 < /* Line 1455 of yacc.c  */
6059 < #line 2289 "ircd_parser.y"
6060 <    {
6061 <  if (conf_parser_ctx.pass == 2)
6062 <    yy_match_item->action |= SHARED_TKLINE;
6063 < }
6064 <    break;
6065 <
6066 <  case 361:
6067 <
6068 < /* Line 1455 of yacc.c  */
6069 < #line 2293 "ircd_parser.y"
4883 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4884      {
4885    if (conf_parser_ctx.pass == 2)
4886 <    yy_match_item->action |= SHARED_UNKLINE;
6073 < }
6074 <    break;
6075 <
6076 <  case 362:
6077 <
6078 < /* Line 1455 of yacc.c  */
6079 < #line 2297 "ircd_parser.y"
6080 <    {
6081 <  if (conf_parser_ctx.pass == 2)
6082 <    yy_match_item->action |= SHARED_XLINE;
4886 >    block_state.flags.value = 0;
4887   }
4888 + #line 4889 "conf_parser.c" /* yacc.c:1646  */
4889      break;
4890  
4891    case 363:
4892 <
6088 < /* Line 1455 of yacc.c  */
6089 < #line 2301 "ircd_parser.y"
4892 > #line 1870 "conf_parser.y" /* yacc.c:1646  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895 <    yy_match_item->action |= SHARED_TXLINE;
4895 >    block_state.flags.value |= SHARED_KLINE;
4896   }
4897 + #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900    case 364:
4901 <
6098 < /* Line 1455 of yacc.c  */
6099 < #line 2305 "ircd_parser.y"
4901 > #line 1874 "conf_parser.y" /* yacc.c:1646  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904 <    yy_match_item->action |= SHARED_UNXLINE;
4904 >    block_state.flags.value |= SHARED_UNKLINE;
4905   }
4906 + #line 4907 "conf_parser.c" /* yacc.c:1646  */
4907      break;
4908  
4909    case 365:
4910 <
6108 < /* Line 1455 of yacc.c  */
6109 < #line 2309 "ircd_parser.y"
4910 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913 <    yy_match_item->action |= SHARED_RESV;
4913 >    block_state.flags.value |= SHARED_DLINE;
4914   }
4915 + #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918    case 366:
4919 <
6118 < /* Line 1455 of yacc.c  */
6119 < #line 2313 "ircd_parser.y"
4919 > #line 1882 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922 <    yy_match_item->action |= SHARED_TRESV;
4922 >    block_state.flags.value |= SHARED_UNDLINE;
4923   }
4924 + #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927    case 367:
4928 <
6128 < /* Line 1455 of yacc.c  */
6129 < #line 2317 "ircd_parser.y"
4928 > #line 1886 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931 <    yy_match_item->action |= SHARED_UNRESV;
4931 >    block_state.flags.value |= SHARED_XLINE;
4932   }
4933 + #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936    case 368:
4937 <
6138 < /* Line 1455 of yacc.c  */
6139 < #line 2321 "ircd_parser.y"
4937 > #line 1890 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940 <    yy_match_item->action |= SHARED_LOCOPS;
4940 >    block_state.flags.value |= SHARED_UNXLINE;
4941   }
4942 + #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945    case 369:
4946 <
6148 < /* Line 1455 of yacc.c  */
6149 < #line 2325 "ircd_parser.y"
4946 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949 <    yy_match_item->action = SHARED_ALL;
4949 >    block_state.flags.value |= SHARED_RESV;
4950   }
4951 + #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954    case 370:
4955 <
6158 < /* Line 1455 of yacc.c  */
6159 < #line 2334 "ircd_parser.y"
4955 > #line 1898 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958 <  {
6163 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6164 <    yy_conf->flags = SHARED_ALL;
6165 <  }
4958 >    block_state.flags.value |= SHARED_UNRESV;
4959   }
4960 + #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963    case 371:
4964 <
6171 < /* Line 1455 of yacc.c  */
6172 < #line 2341 "ircd_parser.y"
4964 > #line 1902 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967 <  {
6176 <    if (yy_conf->name == NULL)
6177 <      DupString(yy_conf->name, "*");
6178 <    yy_conf = NULL;
6179 <  }
4967 >    block_state.flags.value |= SHARED_LOCOPS;
4968   }
4969 + #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972 <  case 377:
4973 <
6185 < /* Line 1455 of yacc.c  */
6186 < #line 2354 "ircd_parser.y"
4972 >  case 372:
4973 > #line 1906 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <    DupString(yy_conf->name, yylval.string);
4976 >    block_state.flags.value = SHARED_ALL;
4977   }
4978 + #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981 <  case 378:
4982 <
6195 < /* Line 1455 of yacc.c  */
6196 < #line 2360 "ircd_parser.y"
4981 >  case 373:
4982 > #line 1916 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984 <  if (conf_parser_ctx.pass == 2)
6199 <    yy_conf->flags = 0;
6200 < }
4984 >  if (conf_parser_ctx.pass != 2)
4985      break;
4986  
4987 <  case 382:
4987 >  reset_block_state();
4988  
4989 < /* Line 1455 of yacc.c  */
4990 < #line 2367 "ircd_parser.y"
6207 <    {
6208 <  if (conf_parser_ctx.pass == 2)
6209 <    yy_conf->flags |= SHARED_KLINE;
4989 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4990 >  block_state.flags.value = CLUSTER_ALL;
4991   }
4992 + #line 4993 "conf_parser.c" /* yacc.c:1646  */
4993      break;
4994  
4995 <  case 383:
4995 >  case 374:
4996 > #line 1925 "conf_parser.y" /* yacc.c:1646  */
4997 >    {
4998 >  if (conf_parser_ctx.pass != 2)
4999 >    break;
5000  
5001 < /* Line 1455 of yacc.c  */
5002 < #line 2371 "ircd_parser.y"
5001 >  struct ClusterItem *cluster = cluster_make();
5002 >  cluster->type = block_state.flags.value;
5003 >  cluster->server = xstrdup(block_state.name.buf);
5004 > }
5005 > #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006 >    break;
5007 >
5008 >  case 380:
5009 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_conf->flags |= SHARED_TKLINE;
5012 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 384:
5018 <
6225 < /* Line 1455 of yacc.c  */
6226 < #line 2375 "ircd_parser.y"
5017 >  case 381:
5018 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    yy_conf->flags |= SHARED_UNKLINE;
5021 >    block_state.flags.value = 0;
5022   }
5023 + #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026    case 385:
5027 <
6235 < /* Line 1455 of yacc.c  */
6236 < #line 2379 "ircd_parser.y"
5027 > #line 1951 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_conf->flags |= SHARED_XLINE;
5030 >    block_state.flags.value |= CLUSTER_KLINE;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035    case 386:
5036 <
6245 < /* Line 1455 of yacc.c  */
6246 < #line 2383 "ircd_parser.y"
5036 > #line 1955 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_conf->flags |= SHARED_TXLINE;
5039 >    block_state.flags.value |= CLUSTER_UNKLINE;
5040   }
5041 + #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044    case 387:
5045 <
6255 < /* Line 1455 of yacc.c  */
6256 < #line 2387 "ircd_parser.y"
5045 > #line 1959 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_conf->flags |= SHARED_UNXLINE;
5048 >    block_state.flags.value |= CLUSTER_DLINE;
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053    case 388:
5054 <
6265 < /* Line 1455 of yacc.c  */
6266 < #line 2391 "ircd_parser.y"
5054 > #line 1963 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_conf->flags |= SHARED_RESV;
5057 >    block_state.flags.value |= CLUSTER_UNDLINE;
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062    case 389:
5063 <
6275 < /* Line 1455 of yacc.c  */
6276 < #line 2395 "ircd_parser.y"
5063 > #line 1967 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_conf->flags |= SHARED_TRESV;
5066 >    block_state.flags.value |= CLUSTER_XLINE;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071    case 390:
5072 <
6285 < /* Line 1455 of yacc.c  */
6286 < #line 2399 "ircd_parser.y"
5072 > #line 1971 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_conf->flags |= SHARED_UNRESV;
5075 >    block_state.flags.value |= CLUSTER_UNXLINE;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080    case 391:
5081 <
6295 < /* Line 1455 of yacc.c  */
6296 < #line 2403 "ircd_parser.y"
5081 > #line 1975 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_conf->flags |= SHARED_LOCOPS;
5084 >    block_state.flags.value |= CLUSTER_RESV;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089    case 392:
5090 <
6305 < /* Line 1455 of yacc.c  */
6306 < #line 2407 "ircd_parser.y"
5090 > #line 1979 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_conf->flags = SHARED_ALL;
5093 >    block_state.flags.value |= CLUSTER_UNRESV;
5094   }
5095 + #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098    case 393:
5099 <
6315 < /* Line 1455 of yacc.c  */
6316 < #line 2416 "ircd_parser.y"
5099 > #line 1983 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <  {
6320 <    yy_conf = make_conf_item(SERVER_TYPE);
6321 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6322 <    yy_aconf->passwd = NULL;
6323 <    /* defaults */
6324 <    yy_aconf->port = PORTNUM;
6325 <
6326 <    if (ConfigFileEntry.burst_away)
6327 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6328 <  }
6329 <  else
6330 <  {
6331 <    MyFree(class_name);
6332 <    class_name = NULL;
6333 <  }
5102 >    block_state.flags.value |= CLUSTER_LOCOPS;
5103   }
5104 + #line 5105 "conf_parser.c" /* yacc.c:1646  */
5105      break;
5106  
5107    case 394:
5108 <
6339 < /* Line 1455 of yacc.c  */
6340 < #line 2434 "ircd_parser.y"
5108 > #line 1987 "conf_parser.y" /* yacc.c:1646  */
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <  {
5112 <    struct CollectItem *yy_hconf=NULL;
5113 <    struct CollectItem *yy_lconf=NULL;
5114 <    dlink_node *ptr;
6347 <    dlink_node *next_ptr;
6348 < #ifdef HAVE_LIBCRYPTO
6349 <    if (yy_aconf->host &&
6350 <        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6351 <         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6352 < #else /* !HAVE_LIBCRYPTO */
6353 <      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6354 <          yy_aconf->passwd && yy_aconf->spasswd)
6355 < #endif /* !HAVE_LIBCRYPTO */
6356 <        {
6357 <          if (conf_add_server(yy_conf, class_name) == -1)
6358 <          {
6359 <            delete_conf_item(yy_conf);
6360 <            yy_conf = NULL;
6361 <            yy_aconf = NULL;
6362 <          }
6363 <        }
6364 <        else
6365 <        {
6366 <          /* Even if yy_conf ->name is NULL
6367 <           * should still unhook any hub/leaf confs still pending
6368 <           */
6369 <          unhook_hub_leaf_confs();
6370 <
6371 <          if (yy_conf->name != NULL)
6372 <          {
6373 < #ifndef HAVE_LIBCRYPTO
6374 <            if (IsConfCryptLink(yy_aconf))
6375 <              yyerror("Ignoring connect block -- no OpenSSL support");
6376 < #else
6377 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6378 <              yyerror("Ignoring connect block -- missing key");
6379 < #endif
6380 <            if (yy_aconf->host == NULL)
6381 <              yyerror("Ignoring connect block -- missing host");
6382 <            else if (!IsConfCryptLink(yy_aconf) &&
6383 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6384 <              yyerror("Ignoring connect block -- missing password");
6385 <          }
6386 <
6387 <
6388 <          /* XXX
6389 <           * This fixes a try_connections() core (caused by invalid class_ptr
6390 <           * pointers) reported by metalrock. That's an ugly fix, but there
6391 <           * is currently no better way. The entire config subsystem needs an
6392 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6393 <           * a doubly linked list immediately without any sanity checks!  -Michael
6394 <           */
6395 <          delete_conf_item(yy_conf);
6396 <
6397 <          yy_aconf = NULL;
6398 <          yy_conf = NULL;
6399 <        }
6400 <
6401 <      /*
6402 <       * yy_conf is still pointing at the server that is having
6403 <       * a connect block built for it. This means, y_aconf->name
6404 <       * points to the actual irc name this server will be known as.
6405 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6406 <       * given in the link list at yy_hconf. Fill in the HUB confs
6407 <       * from this link list now.
6408 <       */        
6409 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6410 <      {
6411 <        struct ConfItem *new_hub_conf;
6412 <        struct MatchItem *match_item;
6413 <
6414 <        yy_hconf = ptr->data;
6415 <
6416 <        /* yy_conf == NULL is a fatal error for this connect block! */
6417 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6418 <        {
6419 <          new_hub_conf = make_conf_item(HUB_TYPE);
6420 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6421 <          DupString(new_hub_conf->name, yy_conf->name);
6422 <          if (yy_hconf->user != NULL)
6423 <            DupString(match_item->user, yy_hconf->user);
6424 <          else
6425 <            DupString(match_item->user, "*");
6426 <          if (yy_hconf->host != NULL)
6427 <            DupString(match_item->host, yy_hconf->host);
6428 <          else
6429 <            DupString(match_item->host, "*");
6430 <        }
6431 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6432 <        free_collect_item(yy_hconf);
6433 <      }
6434 <
6435 <      /* Ditto for the LEAF confs */
5111 >    block_state.flags.value = CLUSTER_ALL;
5112 > }
5113 > #line 5114 "conf_parser.c" /* yacc.c:1646  */
5114 >    break;
5115  
5116 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5117 <      {
5118 <        struct ConfItem *new_leaf_conf;
6440 <        struct MatchItem *match_item;
5116 >  case 395:
5117 > #line 1997 "conf_parser.y" /* yacc.c:1646  */
5118 >    {
5119  
5120 <        yy_lconf = ptr->data;
5120 >  if (conf_parser_ctx.pass != 2)
5121 >    break;
5122  
5123 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5124 <        {
5125 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6447 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6448 <          DupString(new_leaf_conf->name, yy_conf->name);
6449 <          if (yy_lconf->user != NULL)
6450 <            DupString(match_item->user, yy_lconf->user);
6451 <          else
6452 <            DupString(match_item->user, "*");
6453 <          if (yy_lconf->host != NULL)
6454 <            DupString(match_item->host, yy_lconf->host);
6455 <          else
6456 <            DupString(match_item->host, "*");
6457 <        }
6458 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6459 <        free_collect_item(yy_lconf);
6460 <      }
6461 <      MyFree(class_name);
6462 <      class_name = NULL;
6463 <      yy_conf = NULL;
6464 <      yy_aconf = NULL;
6465 <  }
5123 >  reset_block_state();
5124 >  block_state.aftype.value = AF_INET;
5125 >  block_state.port.value = PORTNUM;
5126   }
5127 + #line 5128 "conf_parser.c" /* yacc.c:1646  */
5128      break;
5129  
5130 <  case 419:
5131 <
6471 < /* Line 1455 of yacc.c  */
6472 < #line 2573 "ircd_parser.y"
5130 >  case 396:
5131 > #line 2006 "conf_parser.y" /* yacc.c:1646  */
5132      {
5133 <  if (conf_parser_ctx.pass == 2)
5134 <  {
6476 <    if (yy_conf->name != NULL)
6477 <      yyerror("Multiple connect name entry");
5133 >  struct MaskItem *conf = NULL;
5134 >  struct addrinfo hints, *res;
5135  
5136 <    MyFree(yy_conf->name);
6480 <    DupString(yy_conf->name, yylval.string);
6481 <  }
6482 < }
5136 >  if (conf_parser_ctx.pass != 2)
5137      break;
5138  
5139 <  case 420:
5139 >  if (!block_state.name.buf[0] ||
5140 >      !block_state.host.buf[0])
5141 >    break;
5142  
5143 < /* Line 1455 of yacc.c  */
5144 < #line 2585 "ircd_parser.y"
5145 <    {
6490 <  if (conf_parser_ctx.pass == 2)
6491 <  {
6492 <    if (yy_conf->name != NULL)
6493 <      yyerror("Multiple connect name entry");
5143 >  if (!block_state.rpass.buf[0] ||
5144 >      !block_state.spass.buf[0])
5145 >    break;
5146  
5147 <    MyFree(yy_conf->name);
5148 <    DupString(yy_conf->name, yylval.string);
6497 <  }
6498 < }
5147 >  if (has_wildcards(block_state.name.buf) ||
5148 >      has_wildcards(block_state.host.buf))
5149      break;
5150  
5151 <  case 421:
5151 >  conf = conf_make(CONF_SERVER);
5152 >  conf->port = block_state.port.value;
5153 >  conf->flags = block_state.flags.value;
5154 >  conf->aftype = block_state.aftype.value;
5155 >  conf->host = xstrdup(block_state.host.buf);
5156 >  conf->name = xstrdup(block_state.name.buf);
5157 >  conf->passwd = xstrdup(block_state.rpass.buf);
5158 >  conf->spasswd = xstrdup(block_state.spass.buf);
5159  
5160 < /* Line 1455 of yacc.c  */
5161 < #line 2597 "ircd_parser.y"
6505 <    {
6506 <  if (conf_parser_ctx.pass == 2)
6507 <  {
6508 <    MyFree(yy_aconf->host);
6509 <    DupString(yy_aconf->host, yylval.string);
6510 <  }
6511 < }
6512 <    break;
5160 >  if (block_state.cert.buf[0])
5161 >    conf->certfp = xstrdup(block_state.cert.buf);
5162  
5163 <  case 422:
5163 >  if (block_state.ciph.buf[0])
5164 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5165  
5166 < /* Line 1455 of yacc.c  */
5167 < #line 2606 "ircd_parser.y"
6518 <    {
6519 <  if (conf_parser_ctx.pass == 2)
6520 <  {
6521 <    struct addrinfo hints, *res;
5166 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5167 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5168  
5169 +  if (block_state.bind.buf[0])
5170 +  {
5171      memset(&hints, 0, sizeof(hints));
5172  
5173      hints.ai_family   = AF_UNSPEC;
5174      hints.ai_socktype = SOCK_STREAM;
5175      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5176  
5177 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5178 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5177 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5178 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5179      else
5180      {
5181 <      assert(res != NULL);
6534 <
6535 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
6536 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
6537 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
6538 <      irc_freeaddrinfo(res);
6539 <    }
6540 <  }
6541 < }
6542 <    break;
6543 <
6544 <  case 423:
6545 <
6546 < /* Line 1455 of yacc.c  */
6547 < #line 2632 "ircd_parser.y"
6548 <    {
6549 <  if (conf_parser_ctx.pass == 2)
6550 <  {
6551 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6552 <      yyerror("Server passwords cannot begin with a colon");
6553 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6554 <      yyerror("Server passwords cannot contain spaces");
6555 <    else {
6556 <      if (yy_aconf->spasswd != NULL)
6557 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5181 >      assert(res);
5182  
5183 <      MyFree(yy_aconf->spasswd);
5184 <      DupString(yy_aconf->spasswd, yylval.string);
5183 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5184 >      conf->bind.ss.ss_family = res->ai_family;
5185 >      conf->bind.ss_len = res->ai_addrlen;
5186 >      freeaddrinfo(res);
5187      }
5188    }
6563 }
6564    break;
6565
6566  case 424:
6567
6568 /* Line 1455 of yacc.c  */
6569 #line 2650 "ircd_parser.y"
6570    {
6571  if (conf_parser_ctx.pass == 2)
6572  {
6573    if ((yyvsp[(3) - (4)].string)[0] == ':')
6574      yyerror("Server passwords cannot begin with a colon");
6575    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6576      yyerror("Server passwords cannot contain spaces");
6577    else {
6578      if (yy_aconf->passwd != NULL)
6579        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5189  
5190 <      MyFree(yy_aconf->passwd);
5191 <      DupString(yy_aconf->passwd, yylval.string);
6583 <    }
6584 <  }
5190 >  conf_add_class_to_conf(conf, block_state.class.buf);
5191 >  lookup_confhost(conf);
5192   }
5193 + #line 5194 "conf_parser.c" /* yacc.c:1646  */
5194      break;
5195  
5196 <  case 425:
5197 <
6590 < /* Line 1455 of yacc.c  */
6591 < #line 2668 "ircd_parser.y"
5196 >  case 414:
5197 > #line 2086 "conf_parser.y" /* yacc.c:1646  */
5198      {
5199    if (conf_parser_ctx.pass == 2)
5200 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5200 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5201   }
5202 + #line 5203 "conf_parser.c" /* yacc.c:1646  */
5203      break;
5204  
5205 <  case 426:
5206 <
6600 < /* Line 1455 of yacc.c  */
6601 < #line 2674 "ircd_parser.y"
5205 >  case 415:
5206 > #line 2092 "conf_parser.y" /* yacc.c:1646  */
5207      {
5208    if (conf_parser_ctx.pass == 2)
5209 <    yy_aconf->aftype = AF_INET;
5209 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5210   }
5211 + #line 5212 "conf_parser.c" /* yacc.c:1646  */
5212      break;
5213  
5214 <  case 427:
5215 <
6610 < /* Line 1455 of yacc.c  */
6611 < #line 2678 "ircd_parser.y"
5214 >  case 416:
5215 > #line 2098 "conf_parser.y" /* yacc.c:1646  */
5216      {
6613 #ifdef IPV6
5217    if (conf_parser_ctx.pass == 2)
5218 <    yy_aconf->aftype = AF_INET6;
6616 < #endif
5218 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5219   }
5220 + #line 5221 "conf_parser.c" /* yacc.c:1646  */
5221      break;
5222  
5223 <  case 428:
5224 <
6622 < /* Line 1455 of yacc.c  */
6623 < #line 2686 "ircd_parser.y"
5223 >  case 417:
5224 > #line 2104 "conf_parser.y" /* yacc.c:1646  */
5225      {
5226 <  if (conf_parser_ctx.pass == 2)
6626 <  {
6627 <    MyFree(yy_aconf->fakename);
6628 <    DupString(yy_aconf->fakename, yylval.string);
6629 <  }
6630 < }
5226 >  if (conf_parser_ctx.pass != 2)
5227      break;
5228  
5229 <  case 429:
5230 <
5231 < /* Line 1455 of yacc.c  */
5232 < #line 2695 "ircd_parser.y"
5233 <    {
5229 >  if ((yyvsp[-1].string)[0] == ':')
5230 >    conf_error_report("Server passwords cannot begin with a colon");
5231 >  else if (strchr((yyvsp[-1].string), ' '))
5232 >    conf_error_report("Server passwords cannot contain spaces");
5233 >  else
5234 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5235   }
5236 + #line 5237 "conf_parser.c" /* yacc.c:1646  */
5237      break;
5238  
5239 <  case 433:
5240 <
6643 < /* Line 1455 of yacc.c  */
6644 < #line 2699 "ircd_parser.y"
6645 <    { not_atom = 1; }
6646 <    break;
6647 <
6648 <  case 435:
6649 <
6650 < /* Line 1455 of yacc.c  */
6651 < #line 2700 "ircd_parser.y"
6652 <    { not_atom = 0; }
6653 <    break;
6654 <
6655 <  case 437:
6656 <
6657 < /* Line 1455 of yacc.c  */
6658 < #line 2703 "ircd_parser.y"
5239 >  case 418:
5240 > #line 2117 "conf_parser.y" /* yacc.c:1646  */
5241      {
5242 <  if (conf_parser_ctx.pass == 2)
6661 < #ifndef HAVE_LIBZ
6662 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6663 < #else
6664 < {
6665 <   if (not_atom)ClearConfCompressed(yy_aconf);
6666 <   else SetConfCompressed(yy_aconf);
6667 < }
6668 < #endif
6669 < }
5242 >  if (conf_parser_ctx.pass != 2)
5243      break;
5244  
5245 <  case 438:
5246 <
5247 < /* Line 1455 of yacc.c  */
5248 < #line 2714 "ircd_parser.y"
5249 <    {
5250 <  if (conf_parser_ctx.pass == 2)
6678 <  {
6679 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6680 <    else SetConfCryptLink(yy_aconf);
6681 <  }
5245 >  if ((yyvsp[-1].string)[0] == ':')
5246 >    conf_error_report("Server passwords cannot begin with a colon");
5247 >  else if (strchr((yyvsp[-1].string), ' '))
5248 >    conf_error_report("Server passwords cannot contain spaces");
5249 >  else
5250 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5251   }
5252 + #line 5253 "conf_parser.c" /* yacc.c:1646  */
5253      break;
5254  
5255 <  case 439:
5256 <
6687 < /* Line 1455 of yacc.c  */
6688 < #line 2721 "ircd_parser.y"
5255 >  case 419:
5256 > #line 2130 "conf_parser.y" /* yacc.c:1646  */
5257      {
5258    if (conf_parser_ctx.pass == 2)
5259 <  {
6692 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6693 <    else SetConfAllowAutoConn(yy_aconf);
6694 <  }
5259 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5260   }
5261 + #line 5262 "conf_parser.c" /* yacc.c:1646  */
5262      break;
5263  
5264 <  case 440:
5265 <
6700 < /* Line 1455 of yacc.c  */
6701 < #line 2728 "ircd_parser.y"
5264 >  case 420:
5265 > #line 2136 "conf_parser.y" /* yacc.c:1646  */
5266      {
5267    if (conf_parser_ctx.pass == 2)
5268 <  {
6705 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6706 <    else SetConfAwayBurst(yy_aconf);
6707 <  }
5268 >    block_state.port.value = (yyvsp[-1].number);
5269   }
5270 + #line 5271 "conf_parser.c" /* yacc.c:1646  */
5271      break;
5272  
5273 <  case 441:
5274 <
6713 < /* Line 1455 of yacc.c  */
6714 < #line 2735 "ircd_parser.y"
5273 >  case 421:
5274 > #line 2142 "conf_parser.y" /* yacc.c:1646  */
5275      {
5276    if (conf_parser_ctx.pass == 2)
5277 <  {
6718 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6719 <    else SetConfTopicBurst(yy_aconf);
6720 <  }
5277 >    block_state.aftype.value = AF_INET;
5278   }
5279 + #line 5280 "conf_parser.c" /* yacc.c:1646  */
5280      break;
5281  
5282 <  case 442:
5283 <
6726 < /* Line 1455 of yacc.c  */
6727 < #line 2745 "ircd_parser.y"
6728 <    {
6729 < #ifdef HAVE_LIBCRYPTO
6730 <  if (conf_parser_ctx.pass == 2)
6731 <  {
6732 <    BIO *file;
6733 <
6734 <    if (yy_aconf->rsa_public_key != NULL)
6735 <    {
6736 <      RSA_free(yy_aconf->rsa_public_key);
6737 <      yy_aconf->rsa_public_key = NULL;
6738 <    }
6739 <
6740 <    if (yy_aconf->rsa_public_key_file != NULL)
6741 <    {
6742 <      MyFree(yy_aconf->rsa_public_key_file);
6743 <      yy_aconf->rsa_public_key_file = NULL;
6744 <    }
6745 <
6746 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6747 <
6748 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6749 <    {
6750 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6751 <      break;
6752 <    }
6753 <
6754 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6755 <
6756 <    if (yy_aconf->rsa_public_key == NULL)
6757 <    {
6758 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6759 <      break;
6760 <    }
6761 <      
6762 <    BIO_set_close(file, BIO_CLOSE);
6763 <    BIO_free(file);
6764 <  }
6765 < #endif /* HAVE_LIBCRYPTO */
6766 < }
6767 <    break;
6768 <
6769 <  case 443:
6770 <
6771 < /* Line 1455 of yacc.c  */
6772 < #line 2786 "ircd_parser.y"
5282 >  case 422:
5283 > #line 2146 "conf_parser.y" /* yacc.c:1646  */
5284      {
5285    if (conf_parser_ctx.pass == 2)
5286 <  {
6776 <    if (yylval.number)
6777 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6778 <    else
6779 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6780 <  }
5286 >    block_state.aftype.value = AF_INET6;
5287   }
5288 + #line 5289 "conf_parser.c" /* yacc.c:1646  */
5289      break;
5290  
5291 <  case 444:
5292 <
6786 < /* Line 1455 of yacc.c  */
6787 < #line 2797 "ircd_parser.y"
5291 >  case 423:
5292 > #line 2152 "conf_parser.y" /* yacc.c:1646  */
5293      {
5294 <  if (conf_parser_ctx.pass == 2)
6790 <  {
6791 <    if (yylval.number)
6792 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6793 <    else
6794 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6795 <  }
5294 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5295   }
5296 + #line 5297 "conf_parser.c" /* yacc.c:1646  */
5297      break;
5298  
5299 <  case 445:
5300 <
6801 < /* Line 1455 of yacc.c  */
6802 < #line 2808 "ircd_parser.y"
5299 >  case 427:
5300 > #line 2158 "conf_parser.y" /* yacc.c:1646  */
5301      {
5302    if (conf_parser_ctx.pass == 2)
5303 <  {
6806 <    if (yylval.number)
6807 < #ifndef HAVE_LIBZ
6808 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6809 < #else
6810 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6811 < #endif
6812 <    else
6813 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6814 <  }
5303 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5304   }
5305 + #line 5306 "conf_parser.c" /* yacc.c:1646  */
5306      break;
5307  
5308 <  case 446:
5309 <
6820 < /* Line 1455 of yacc.c  */
6821 < #line 2823 "ircd_parser.y"
5308 >  case 428:
5309 > #line 2162 "conf_parser.y" /* yacc.c:1646  */
5310      {
5311    if (conf_parser_ctx.pass == 2)
5312 <  {
6825 <    if (yylval.number)
6826 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6827 <    else
6828 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6829 <  }
5312 >    block_state.flags.value |= CONF_FLAGS_SSL;
5313   }
5314 + #line 5315 "conf_parser.c" /* yacc.c:1646  */
5315      break;
5316  
5317 <  case 447:
5318 <
6835 < /* Line 1455 of yacc.c  */
6836 < #line 2834 "ircd_parser.y"
5317 >  case 429:
5318 > #line 2168 "conf_parser.y" /* yacc.c:1646  */
5319      {
5320    if (conf_parser_ctx.pass == 2)
5321    {
5322      if (yylval.number)
5323 <      SetConfTopicBurst(yy_aconf);
5323 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5324      else
5325 <      ClearConfTopicBurst(yy_aconf);
5325 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5326    }
5327   }
5328 + #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 448:
5332 <
6850 < /* Line 1455 of yacc.c  */
6851 < #line 2845 "ircd_parser.y"
5331 >  case 430:
5332 > #line 2179 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334    if (conf_parser_ctx.pass == 2)
5335 <  {
6855 <    struct CollectItem *yy_tmp;
6856 <
6857 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6858 <    DupString(yy_tmp->host, yylval.string);
6859 <    DupString(yy_tmp->user, "*");
6860 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6861 <  }
5335 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5336   }
5337 + #line 5338 "conf_parser.c" /* yacc.c:1646  */
5338      break;
5339  
5340 <  case 449:
5341 <
6867 < /* Line 1455 of yacc.c  */
6868 < #line 2858 "ircd_parser.y"
5340 >  case 431:
5341 > #line 2185 "conf_parser.y" /* yacc.c:1646  */
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344 <  {
6872 <    struct CollectItem *yy_tmp;
6873 <
6874 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6875 <    DupString(yy_tmp->host, yylval.string);
6876 <    DupString(yy_tmp->user, "*");
6877 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6878 <  }
5344 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5345   }
5346 + #line 5347 "conf_parser.c" /* yacc.c:1646  */
5347      break;
5348  
5349 <  case 450:
5350 <
6884 < /* Line 1455 of yacc.c  */
6885 < #line 2871 "ircd_parser.y"
5349 >  case 432:
5350 > #line 2191 "conf_parser.y" /* yacc.c:1646  */
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353 <  {
6889 <    MyFree(class_name);
6890 <    DupString(class_name, yylval.string);
6891 <  }
5353 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5354   }
5355 + #line 5356 "conf_parser.c" /* yacc.c:1646  */
5356      break;
5357  
5358 <  case 451:
5359 <
6897 < /* Line 1455 of yacc.c  */
6898 < #line 2880 "ircd_parser.y"
5358 >  case 433:
5359 > #line 2197 "conf_parser.y" /* yacc.c:1646  */
5360      {
5361 < #ifdef HAVE_LIBCRYPTO
5361 > #ifdef HAVE_TLS
5362    if (conf_parser_ctx.pass == 2)
5363 <  {
6903 <    struct EncCapability *ecap;
6904 <    const char *cipher_name;
6905 <    int found = 0;
6906 <
6907 <    yy_aconf->cipher_preference = NULL;
6908 <    cipher_name = yylval.string;
6909 <
6910 <    for (ecap = CipherTable; ecap->name; ecap++)
6911 <    {
6912 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6913 <          (ecap->cap & CAP_ENC_MASK))
6914 <      {
6915 <        yy_aconf->cipher_preference = ecap;
6916 <        found = 1;
6917 <        break;
6918 <      }
6919 <    }
6920 <
6921 <    if (!found)
6922 <      yyerror("Invalid cipher");
6923 <  }
5363 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5364   #else
5365    if (conf_parser_ctx.pass == 2)
5366 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5366 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5367   #endif
5368   }
5369 + #line 5370 "conf_parser.c" /* yacc.c:1646  */
5370      break;
5371  
5372 <  case 452:
5373 <
6933 < /* Line 1455 of yacc.c  */
6934 < #line 2915 "ircd_parser.y"
5372 >  case 434:
5373 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5374      {
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
6938 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6939 <    regex_ban = 0;
6940 <  }
5376 >    reset_block_state();
5377   }
5378 + #line 5379 "conf_parser.c" /* yacc.c:1646  */
5379      break;
5380  
5381 <  case 453:
5382 <
6946 < /* Line 1455 of yacc.c  */
6947 < #line 2922 "ircd_parser.y"
6948 <    {
6949 <  if (conf_parser_ctx.pass == 2)
6950 <  {
6951 <    if (userbuf[0] && hostbuf[0])
5381 >  case 435:
5382 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5383      {
5384 <      if (regex_ban)
6954 <      {
6955 <        pcre *exp_user = NULL;
6956 <        pcre *exp_host = NULL;
6957 <        const char *errptr = NULL;
6958 <
6959 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6960 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6961 <        {
6962 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6963 <               errptr);
6964 <          break;
6965 <        }
6966 <
6967 <        yy_conf = make_conf_item(RKLINE_TYPE);
6968 <        yy_aconf = map_to_conf(yy_conf);
6969 <
6970 <        yy_aconf->regexuser = exp_user;
6971 <        yy_aconf->regexhost = exp_host;
6972 <
6973 <        DupString(yy_aconf->user, userbuf);
6974 <        DupString(yy_aconf->host, hostbuf);
6975 <
6976 <        if (reasonbuf[0])
6977 <          DupString(yy_aconf->reason, reasonbuf);
6978 <        else
6979 <          DupString(yy_aconf->reason, "No reason");
6980 <      }
6981 <      else
6982 <      {
6983 <        yy_conf = make_conf_item(KLINE_TYPE);
6984 <        yy_aconf = map_to_conf(yy_conf);
6985 <
6986 <        DupString(yy_aconf->user, userbuf);
6987 <        DupString(yy_aconf->host, hostbuf);
6988 <
6989 <        if (reasonbuf[0])
6990 <          DupString(yy_aconf->reason, reasonbuf);
6991 <        else
6992 <          DupString(yy_aconf->reason, "No reason");
6993 <        add_conf_by_address(CONF_KILL, yy_aconf);
6994 <      }
6995 <    }
6996 <    else
6997 <      delete_conf_item(yy_conf);
5384 >  struct MaskItem *conf = NULL;
5385  
5386 <    yy_conf = NULL;
7000 <    yy_aconf = NULL;
7001 <  }
7002 < }
5386 >  if (conf_parser_ctx.pass != 2)
5387      break;
5388  
5389 <  case 454:
5390 <
7007 < /* Line 1455 of yacc.c  */
7008 < #line 2979 "ircd_parser.y"
7009 <    {
7010 < }
5389 >  if (!block_state.user.buf[0] ||
5390 >      !block_state.host.buf[0])
5391      break;
5392  
5393 <  case 458:
5393 >  conf = conf_make(CONF_KLINE);
5394 >  conf->user = xstrdup(block_state.user.buf);
5395 >  conf->host = xstrdup(block_state.host.buf);
5396  
5397 < /* Line 1455 of yacc.c  */
5398 < #line 2984 "ircd_parser.y"
5399 <    {
5400 <  if (conf_parser_ctx.pass == 2)
5401 <    regex_ban = 1;
5397 >  if (block_state.rpass.buf[0])
5398 >    conf->reason = xstrdup(block_state.rpass.buf);
5399 >  else
5400 >    conf->reason = xstrdup(CONF_NOREASON);
5401 >  add_conf_by_address(CONF_KLINE, conf);
5402   }
5403 + #line 5404 "conf_parser.c" /* yacc.c:1646  */
5404      break;
5405  
5406 <  case 465:
5407 <
7025 < /* Line 1455 of yacc.c  */
7026 < #line 2993 "ircd_parser.y"
5406 >  case 441:
5407 > #line 2241 "conf_parser.y" /* yacc.c:1646  */
5408      {
5409 +
5410    if (conf_parser_ctx.pass == 2)
5411    {
5412      struct split_nuh_item nuh;
5413  
5414      nuh.nuhmask  = yylval.string;
5415      nuh.nickptr  = NULL;
5416 <    nuh.userptr  = userbuf;
5417 <    nuh.hostptr  = hostbuf;
5416 >    nuh.userptr  = block_state.user.buf;
5417 >    nuh.hostptr  = block_state.host.buf;
5418  
5419      nuh.nicksize = 0;
5420 <    nuh.usersize = sizeof(userbuf);
5421 <    nuh.hostsize = sizeof(hostbuf);
5420 >    nuh.usersize = sizeof(block_state.user.buf);
5421 >    nuh.hostsize = sizeof(block_state.host.buf);
5422  
5423      split_nuh(&nuh);
5424    }
5425   }
5426 + #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 466:
5430 <
7048 < /* Line 1455 of yacc.c  */
7049 < #line 3012 "ircd_parser.y"
5429 >  case 442:
5430 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432    if (conf_parser_ctx.pass == 2)
5433 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5433 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5434   }
5435 + #line 5436 "conf_parser.c" /* yacc.c:1646  */
5436      break;
5437  
5438 <  case 467:
5439 <
7058 < /* Line 1455 of yacc.c  */
7059 < #line 3021 "ircd_parser.y"
5438 >  case 443:
5439 > #line 2271 "conf_parser.y" /* yacc.c:1646  */
5440      {
5441    if (conf_parser_ctx.pass == 2)
5442 <  {
7063 <    yy_conf = make_conf_item(DLINE_TYPE);
7064 <    yy_aconf = map_to_conf(yy_conf);
7065 <    /* default reason */
7066 <    DupString(yy_aconf->reason, "No reason");
7067 <  }
5442 >    reset_block_state();
5443   }
5444 + #line 5445 "conf_parser.c" /* yacc.c:1646  */
5445      break;
5446  
5447 <  case 468:
5448 <
7073 < /* Line 1455 of yacc.c  */
7074 < #line 3030 "ircd_parser.y"
5447 >  case 444:
5448 > #line 2275 "conf_parser.y" /* yacc.c:1646  */
5449      {
5450 <  if (conf_parser_ctx.pass == 2)
5450 >  struct MaskItem *conf = NULL;
5451 >
5452 >  if (conf_parser_ctx.pass != 2)
5453 >    break;
5454 >
5455 >  if (!block_state.addr.buf[0])
5456 >    break;
5457 >
5458 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5459    {
5460 <    if (yy_aconf->host && parse_netmask(yy_aconf->host, NULL, NULL) != HM_HOST)
5461 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5460 >    conf = conf_make(CONF_DLINE);
5461 >    conf->host = xstrdup(block_state.addr.buf);
5462 >
5463 >    if (block_state.rpass.buf[0])
5464 >      conf->reason = xstrdup(block_state.rpass.buf);
5465      else
5466 <      delete_conf_item(yy_conf);
5467 <    yy_conf = NULL;
7083 <    yy_aconf = NULL;
5466 >      conf->reason = xstrdup(CONF_NOREASON);
5467 >    add_conf_by_address(CONF_DLINE, conf);
5468    }
5469   }
5470 + #line 5471 "conf_parser.c" /* yacc.c:1646  */
5471      break;
5472  
5473 <  case 474:
5474 <
7090 < /* Line 1455 of yacc.c  */
7091 < #line 3046 "ircd_parser.y"
5473 >  case 450:
5474 > #line 2301 "conf_parser.y" /* yacc.c:1646  */
5475      {
5476    if (conf_parser_ctx.pass == 2)
5477 <  {
7095 <    MyFree(yy_aconf->host);
7096 <    DupString(yy_aconf->host, yylval.string);
7097 <  }
5477 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5478   }
5479 + #line 5480 "conf_parser.c" /* yacc.c:1646  */
5480      break;
5481  
5482 <  case 475:
5483 <
7103 < /* Line 1455 of yacc.c  */
7104 < #line 3055 "ircd_parser.y"
5482 >  case 451:
5483 > #line 2307 "conf_parser.y" /* yacc.c:1646  */
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486 <  {
7108 <    MyFree(yy_aconf->reason);
7109 <    DupString(yy_aconf->reason, yylval.string);
7110 <  }
5486 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5487   }
5488 + #line 5489 "conf_parser.c" /* yacc.c:1646  */
5489      break;
5490  
5491 <  case 481:
5492 <
7116 < /* Line 1455 of yacc.c  */
7117 < #line 3072 "ircd_parser.y"
5491 >  case 457:
5492 > #line 2322 "conf_parser.y" /* yacc.c:1646  */
5493      {
5494    if (conf_parser_ctx.pass == 2)
5495    {
5496 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5496 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5497      {
5498 <      yy_conf = make_conf_item(EXEMPTDLINE_TYPE);
5499 <      yy_aconf = map_to_conf(yy_conf);
7125 <      DupString(yy_aconf->host, yylval.string);
7126 <
7127 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5498 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5499 >      conf->host = xstrdup(yylval.string);
5500  
5501 <      yy_conf = NULL;
7130 <      yy_aconf = NULL;
5501 >      add_conf_by_address(CONF_EXEMPT, conf);
5502      }
5503    }
5504   }
5505 + #line 5506 "conf_parser.c" /* yacc.c:1646  */
5506      break;
5507  
5508 <  case 482:
5509 <
7138 < /* Line 1455 of yacc.c  */
7139 < #line 3093 "ircd_parser.y"
5508 >  case 458:
5509 > #line 2339 "conf_parser.y" /* yacc.c:1646  */
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512 <  {
7143 <    regex_ban = 0;
7144 <    reasonbuf[0] = gecos_name[0] = '\0';
7145 <  }
5512 >    reset_block_state();
5513   }
5514 + #line 5515 "conf_parser.c" /* yacc.c:1646  */
5515      break;
5516  
5517 <  case 483:
5518 <
7151 < /* Line 1455 of yacc.c  */
7152 < #line 3100 "ircd_parser.y"
5517 >  case 459:
5518 > #line 2343 "conf_parser.y" /* yacc.c:1646  */
5519      {
5520 <  if (conf_parser_ctx.pass == 2)
5521 <  {
7156 <    if (gecos_name[0])
7157 <    {
7158 <      if (regex_ban)
7159 <      {
7160 <        pcre *exp_p = NULL;
7161 <        const char *errptr = NULL;
7162 <
7163 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7164 <        {
7165 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7166 <               errptr);
7167 <          break;
7168 <        }
7169 <
7170 <        yy_conf = make_conf_item(RXLINE_TYPE);
7171 <        yy_conf->regexpname = exp_p;
7172 <      }
7173 <      else
7174 <        yy_conf = make_conf_item(XLINE_TYPE);
7175 <
7176 <      yy_match_item = map_to_conf(yy_conf);
7177 <      DupString(yy_conf->name, gecos_name);
5520 >  if (conf_parser_ctx.pass != 2)
5521 >    break;
5522  
5523 <      if (reasonbuf[0])
7180 <        DupString(yy_match_item->reason, reasonbuf);
7181 <      else
7182 <        DupString(yy_match_item->reason, "No reason");
7183 <    }
7184 <  }
7185 < }
5523 >  if (!block_state.name.buf[0])
5524      break;
5525  
5526 <  case 484:
5526 >  struct GecosItem *gecos = gecos_make();
5527 >  gecos->mask = xstrdup(block_state.name.buf);
5528  
5529 < /* Line 1455 of yacc.c  */
5530 < #line 3135 "ircd_parser.y"
5531 <    {
5529 >  if (block_state.rpass.buf[0])
5530 >    gecos->reason = xstrdup(block_state.rpass.buf);
5531 >  else
5532 >    gecos->reason = xstrdup(CONF_NOREASON);
5533   }
5534 + #line 5535 "conf_parser.c" /* yacc.c:1646  */
5535      break;
5536  
5537 <  case 488:
5538 <
7198 < /* Line 1455 of yacc.c  */
7199 < #line 3140 "ircd_parser.y"
5537 >  case 465:
5538 > #line 2363 "conf_parser.y" /* yacc.c:1646  */
5539      {
5540    if (conf_parser_ctx.pass == 2)
5541 <    regex_ban = 1;
5541 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5542   }
5543 + #line 5544 "conf_parser.c" /* yacc.c:1646  */
5544      break;
5545  
5546 <  case 495:
5547 <
7208 < /* Line 1455 of yacc.c  */
7209 < #line 3149 "ircd_parser.y"
5546 >  case 466:
5547 > #line 2369 "conf_parser.y" /* yacc.c:1646  */
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5550 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5551   }
5552 + #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555 <  case 496:
5556 <
7218 < /* Line 1455 of yacc.c  */
7219 < #line 3155 "ircd_parser.y"
5555 >  case 518:
5556 > #line 2432 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558 <  if (conf_parser_ctx.pass == 2)
7222 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5558 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5559   }
5560 + #line 5561 "conf_parser.c" /* yacc.c:1646  */
5561      break;
5562  
5563 <  case 557:
5564 <
7228 < /* Line 1455 of yacc.c  */
7229 < #line 3200 "ircd_parser.y"
5563 >  case 519:
5564 > #line 2437 "conf_parser.y" /* yacc.c:1646  */
5565      {
5566 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5566 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5567   }
5568 + #line 5569 "conf_parser.c" /* yacc.c:1646  */
5569      break;
5570  
5571 <  case 558:
5572 <
7237 < /* Line 1455 of yacc.c  */
7238 < #line 3205 "ircd_parser.y"
5571 >  case 520:
5572 > #line 2442 "conf_parser.y" /* yacc.c:1646  */
5573      {
5574 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5574 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5575   }
5576 + #line 5577 "conf_parser.c" /* yacc.c:1646  */
5577      break;
5578  
5579 <  case 559:
5580 <
7246 < /* Line 1455 of yacc.c  */
7247 < #line 3210 "ircd_parser.y"
5579 >  case 521:
5580 > #line 2447 "conf_parser.y" /* yacc.c:1646  */
5581      {
5582 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5582 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5583   }
5584 + #line 5585 "conf_parser.c" /* yacc.c:1646  */
5585      break;
5586  
5587 <  case 560:
5588 <
7255 < /* Line 1455 of yacc.c  */
7256 < #line 3215 "ircd_parser.y"
5587 >  case 522:
5588 > #line 2452 "conf_parser.y" /* yacc.c:1646  */
5589      {
5590 <  ConfigFileEntry.burst_away = yylval.number;
5590 >  if (conf_parser_ctx.pass == 2)
5591 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5592   }
5593 + #line 5594 "conf_parser.c" /* yacc.c:1646  */
5594      break;
5595  
5596 <  case 561:
5597 <
7264 < /* Line 1455 of yacc.c  */
7265 < #line 3220 "ircd_parser.y"
5596 >  case 523:
5597 > #line 2458 "conf_parser.y" /* yacc.c:1646  */
5598      {
5599 <  ConfigFileEntry.use_whois_actually = yylval.number;
5599 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5600   }
5601 + #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602      break;
5603  
5604 <  case 562:
5605 <
7273 < /* Line 1455 of yacc.c  */
7274 < #line 3225 "ircd_parser.y"
5604 >  case 524:
5605 > #line 2463 "conf_parser.y" /* yacc.c:1646  */
5606      {
5607 <  GlobalSetOptions.rejecttime = yylval.number;
5607 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5608   }
5609 + #line 5610 "conf_parser.c" /* yacc.c:1646  */
5610      break;
5611  
5612 <  case 563:
5613 <
7282 < /* Line 1455 of yacc.c  */
7283 < #line 3230 "ircd_parser.y"
5612 >  case 525:
5613 > #line 2468 "conf_parser.y" /* yacc.c:1646  */
5614      {
5615 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5615 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5616   }
5617 + #line 5618 "conf_parser.c" /* yacc.c:1646  */
5618      break;
5619  
5620 <  case 564:
5621 <
7291 < /* Line 1455 of yacc.c  */
7292 < #line 3235 "ircd_parser.y"
5620 >  case 526:
5621 > #line 2473 "conf_parser.y" /* yacc.c:1646  */
5622      {
5623 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5623 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5624   }
5625 + #line 5626 "conf_parser.c" /* yacc.c:1646  */
5626      break;
5627  
5628 <  case 565:
5629 <
7300 < /* Line 1455 of yacc.c  */
7301 < #line 3240 "ircd_parser.y"
5628 >  case 527:
5629 > #line 2478 "conf_parser.y" /* yacc.c:1646  */
5630      {
5631 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5631 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5632   }
5633 + #line 5634 "conf_parser.c" /* yacc.c:1646  */
5634      break;
5635  
5636 <  case 566:
5637 <
7309 < /* Line 1455 of yacc.c  */
7310 < #line 3245 "ircd_parser.y"
5636 >  case 528:
5637 > #line 2483 "conf_parser.y" /* yacc.c:1646  */
5638      {
5639 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5639 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5640   }
5641 + #line 5642 "conf_parser.c" /* yacc.c:1646  */
5642      break;
5643  
5644 <  case 567:
5645 <
7318 < /* Line 1455 of yacc.c  */
7319 < #line 3250 "ircd_parser.y"
5644 >  case 529:
5645 > #line 2488 "conf_parser.y" /* yacc.c:1646  */
5646      {
5647 <  ConfigFileEntry.disable_remote = yylval.number;
5647 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5648   }
5649 + #line 5650 "conf_parser.c" /* yacc.c:1646  */
5650      break;
5651  
5652 <  case 568:
5653 <
7327 < /* Line 1455 of yacc.c  */
7328 < #line 3255 "ircd_parser.y"
5652 >  case 530:
5653 > #line 2493 "conf_parser.y" /* yacc.c:1646  */
5654      {
5655 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5655 >  ConfigGeneral.failed_oper_notice = yylval.number;
5656   }
5657 + #line 5658 "conf_parser.c" /* yacc.c:1646  */
5658      break;
5659  
5660 <  case 569:
5661 <
7336 < /* Line 1455 of yacc.c  */
7337 < #line 3260 "ircd_parser.y"
5660 >  case 531:
5661 > #line 2498 "conf_parser.y" /* yacc.c:1646  */
5662      {
5663 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5663 >  ConfigGeneral.anti_nick_flood = yylval.number;
5664   }
5665 + #line 5666 "conf_parser.c" /* yacc.c:1646  */
5666      break;
5667  
5668 <  case 570:
5669 <
7345 < /* Line 1455 of yacc.c  */
7346 < #line 3265 "ircd_parser.y"
5668 >  case 532:
5669 > #line 2503 "conf_parser.y" /* yacc.c:1646  */
5670      {
5671 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5671 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5672   }
5673 + #line 5674 "conf_parser.c" /* yacc.c:1646  */
5674      break;
5675  
5676 <  case 571:
5677 <
7354 < /* Line 1455 of yacc.c  */
7355 < #line 3270 "ircd_parser.y"
5676 >  case 533:
5677 > #line 2508 "conf_parser.y" /* yacc.c:1646  */
5678      {
5679 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5679 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5680   }
5681 + #line 5682 "conf_parser.c" /* yacc.c:1646  */
5682      break;
5683  
5684 <  case 572:
5685 <
7363 < /* Line 1455 of yacc.c  */
7364 < #line 3275 "ircd_parser.y"
5684 >  case 534:
5685 > #line 2513 "conf_parser.y" /* yacc.c:1646  */
5686      {
5687 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5687 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5688   }
5689 + #line 5690 "conf_parser.c" /* yacc.c:1646  */
5690      break;
5691  
5692 <  case 573:
5693 <
7372 < /* Line 1455 of yacc.c  */
7373 < #line 3280 "ircd_parser.y"
5692 >  case 535:
5693 > #line 2518 "conf_parser.y" /* yacc.c:1646  */
5694      {
5695 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5695 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5696   }
5697 + #line 5698 "conf_parser.c" /* yacc.c:1646  */
5698      break;
5699  
5700 <  case 574:
5701 <
7381 < /* Line 1455 of yacc.c  */
7382 < #line 3285 "ircd_parser.y"
5700 >  case 536:
5701 > #line 2523 "conf_parser.y" /* yacc.c:1646  */
5702      {
5703 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5703 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5704   }
5705 + #line 5706 "conf_parser.c" /* yacc.c:1646  */
5706      break;
5707  
5708 <  case 575:
5709 <
7390 < /* Line 1455 of yacc.c  */
7391 < #line 3290 "ircd_parser.y"
5708 >  case 537:
5709 > #line 2528 "conf_parser.y" /* yacc.c:1646  */
5710      {
5711    if (conf_parser_ctx.pass == 2)
5712 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5712 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5713   }
5714 + #line 5715 "conf_parser.c" /* yacc.c:1646  */
5715      break;
5716  
5717 <  case 576:
5718 <
7400 < /* Line 1455 of yacc.c  */
7401 < #line 3296 "ircd_parser.y"
5717 >  case 538:
5718 > #line 2534 "conf_parser.y" /* yacc.c:1646  */
5719      {
5720 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
7404 <  {
7405 <    ilog(L_CRIT, "You haven't read your config file properly.");
7406 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
7407 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
7408 <    exit(0);
7409 <  }
5720 >  ConfigGeneral.invisible_on_connect = yylval.number;
5721   }
5722 + #line 5723 "conf_parser.c" /* yacc.c:1646  */
5723      break;
5724  
5725 <  case 577:
5726 <
7415 < /* Line 1455 of yacc.c  */
7416 < #line 3307 "ircd_parser.y"
5725 >  case 539:
5726 > #line 2539 "conf_parser.y" /* yacc.c:1646  */
5727      {
5728 <  ConfigFileEntry.kline_with_reason = yylval.number;
5728 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5729   }
5730 + #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;
5732  
5733 <  case 578:
5734 <
7424 < /* Line 1455 of yacc.c  */
7425 < #line 3312 "ircd_parser.y"
5733 >  case 540:
5734 > #line 2544 "conf_parser.y" /* yacc.c:1646  */
5735      {
5736 <  if (conf_parser_ctx.pass == 2)
7428 <  {
7429 <    MyFree(ConfigFileEntry.kline_reason);
7430 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7431 <  }
5736 >  ConfigGeneral.stats_e_disabled = yylval.number;
5737   }
5738 + #line 5739 "conf_parser.c" /* yacc.c:1646  */
5739      break;
5740  
5741 <  case 579:
5742 <
7437 < /* Line 1455 of yacc.c  */
7438 < #line 3321 "ircd_parser.y"
5741 >  case 541:
5742 > #line 2549 "conf_parser.y" /* yacc.c:1646  */
5743      {
5744 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5744 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5745   }
5746 + #line 5747 "conf_parser.c" /* yacc.c:1646  */
5747      break;
5748  
5749 <  case 580:
5750 <
7446 < /* Line 1455 of yacc.c  */
7447 < #line 3326 "ircd_parser.y"
5749 >  case 542:
5750 > #line 2554 "conf_parser.y" /* yacc.c:1646  */
5751      {
5752 <  ConfigFileEntry.warn_no_nline = yylval.number;
5752 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5753   }
5754 + #line 5755 "conf_parser.c" /* yacc.c:1646  */
5755      break;
5756  
5757 <  case 581:
5758 <
7455 < /* Line 1455 of yacc.c  */
7456 < #line 3331 "ircd_parser.y"
5757 >  case 543:
5758 > #line 2559 "conf_parser.y" /* yacc.c:1646  */
5759      {
5760 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5760 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5761   }
5762 + #line 5763 "conf_parser.c" /* yacc.c:1646  */
5763      break;
5764  
5765 <  case 582:
5766 <
7464 < /* Line 1455 of yacc.c  */
7465 < #line 3336 "ircd_parser.y"
5765 >  case 544:
5766 > #line 2564 "conf_parser.y" /* yacc.c:1646  */
5767      {
5768 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5768 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5769   }
5770 + #line 5771 "conf_parser.c" /* yacc.c:1646  */
5771      break;
5772  
5773 <  case 583:
5774 <
7473 < /* Line 1455 of yacc.c  */
7474 < #line 3341 "ircd_parser.y"
5773 >  case 545:
5774 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5775      {
5776 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5776 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5777   }
5778 + #line 5779 "conf_parser.c" /* yacc.c:1646  */
5779      break;
5780  
5781 <  case 584:
5782 <
7482 < /* Line 1455 of yacc.c  */
7483 < #line 3346 "ircd_parser.y"
5781 >  case 546:
5782 > #line 2572 "conf_parser.y" /* yacc.c:1646  */
5783      {
5784 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5784 >  ConfigGeneral.stats_k_oper_only = 1;
5785   }
5786 + #line 5787 "conf_parser.c" /* yacc.c:1646  */
5787      break;
5788  
5789 <  case 585:
5790 <
7491 < /* Line 1455 of yacc.c  */
7492 < #line 3349 "ircd_parser.y"
5789 >  case 547:
5790 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5791      {
5792 <  ConfigFileEntry.stats_k_oper_only = 1;
5792 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5793   }
5794 + #line 5795 "conf_parser.c" /* yacc.c:1646  */
5795      break;
5796  
5797 <  case 586:
5798 <
7500 < /* Line 1455 of yacc.c  */
7501 < #line 3354 "ircd_parser.y"
5797 >  case 548:
5798 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5799      {
5800 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5800 >  ConfigGeneral.stats_i_oper_only = 1;
5801   }
5802 + #line 5803 "conf_parser.c" /* yacc.c:1646  */
5803      break;
5804  
5805 <  case 587:
5806 <
7509 < /* Line 1455 of yacc.c  */
7510 < #line 3357 "ircd_parser.y"
5805 >  case 549:
5806 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5807      {
5808 <  ConfigFileEntry.stats_i_oper_only = 1;
5808 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5809   }
5810 + #line 5811 "conf_parser.c" /* yacc.c:1646  */
5811      break;
5812  
5813 <  case 588:
5814 <
7518 < /* Line 1455 of yacc.c  */
7519 < #line 3362 "ircd_parser.y"
5813 >  case 550:
5814 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5815      {
5816 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5816 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5817   }
5818 + #line 5819 "conf_parser.c" /* yacc.c:1646  */
5819      break;
5820  
5821 <  case 589:
5822 <
7527 < /* Line 1455 of yacc.c  */
7528 < #line 3367 "ircd_parser.y"
5821 >  case 551:
5822 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5823      {
5824 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5824 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5825   }
5826 + #line 5827 "conf_parser.c" /* yacc.c:1646  */
5827      break;
5828  
5829 <  case 590:
5830 <
7536 < /* Line 1455 of yacc.c  */
7537 < #line 3372 "ircd_parser.y"
5829 >  case 552:
5830 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5831      {
5832 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5832 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5833   }
5834 + #line 5835 "conf_parser.c" /* yacc.c:1646  */
5835      break;
5836  
5837 <  case 591:
5838 <
7545 < /* Line 1455 of yacc.c  */
7546 < #line 3377 "ircd_parser.y"
5837 >  case 553:
5838 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5839      {
5840 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5840 >  ConfigGeneral.short_motd = yylval.number;
5841   }
5842 + #line 5843 "conf_parser.c" /* yacc.c:1646  */
5843      break;
5844  
5845 <  case 592:
5846 <
7554 < /* Line 1455 of yacc.c  */
7555 < #line 3382 "ircd_parser.y"
5845 >  case 554:
5846 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5847      {
5848 <  ConfigFileEntry.short_motd = yylval.number;
5848 >  ConfigGeneral.no_oper_flood = yylval.number;
5849   }
5850 + #line 5851 "conf_parser.c" /* yacc.c:1646  */
5851      break;
5852  
5853 <  case 593:
5854 <
7563 < /* Line 1455 of yacc.c  */
7564 < #line 3387 "ircd_parser.y"
5853 >  case 555:
5854 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5855      {
5856 <  ConfigFileEntry.no_oper_flood = yylval.number;
5856 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5857   }
5858 + #line 5859 "conf_parser.c" /* yacc.c:1646  */
5859      break;
5860  
5861 <  case 594:
5862 <
7572 < /* Line 1455 of yacc.c  */
7573 < #line 3392 "ircd_parser.y"
5861 >  case 556:
5862 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5863      {
5864 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5864 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5865   }
5866 + #line 5867 "conf_parser.c" /* yacc.c:1646  */
5867      break;
5868  
5869 <  case 595:
5870 <
7581 < /* Line 1455 of yacc.c  */
7582 < #line 3397 "ircd_parser.y"
5869 >  case 557:
5870 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5871      {
5872 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5872 >  ConfigGeneral.ping_cookie = yylval.number;
5873   }
5874 + #line 5875 "conf_parser.c" /* yacc.c:1646  */
5875      break;
5876  
5877 <  case 596:
5878 <
7590 < /* Line 1455 of yacc.c  */
7591 < #line 3402 "ircd_parser.y"
5877 >  case 558:
5878 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5879      {
5880 <  if (conf_parser_ctx.pass == 2)
7594 <  {
7595 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7596 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7597 <
7598 <    set_locale(yylval.string);
7599 <  }
5880 >  ConfigGeneral.disable_auth = yylval.number;
5881   }
5882 + #line 5883 "conf_parser.c" /* yacc.c:1646  */
5883      break;
5884  
5885 <  case 597:
5886 <
7605 < /* Line 1455 of yacc.c  */
7606 < #line 3413 "ircd_parser.y"
5885 >  case 559:
5886 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5887      {
5888 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5888 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5889   }
5890 + #line 5891 "conf_parser.c" /* yacc.c:1646  */
5891      break;
5892  
5893 <  case 598:
5894 <
7614 < /* Line 1455 of yacc.c  */
7615 < #line 3418 "ircd_parser.y"
5893 >  case 560:
5894 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5895      {
5896 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5896 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5897   }
5898 + #line 5899 "conf_parser.c" /* yacc.c:1646  */
5899      break;
5900  
5901 <  case 599:
5902 <
7623 < /* Line 1455 of yacc.c  */
7624 < #line 3423 "ircd_parser.y"
5901 >  case 561:
5902 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5903      {
5904 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5904 >  ConfigGeneral.oper_umodes = 0;
5905   }
5906 + #line 5907 "conf_parser.c" /* yacc.c:1646  */
5907      break;
5908  
5909 <  case 600:
5910 <
7632 < /* Line 1455 of yacc.c  */
7633 < #line 3428 "ircd_parser.y"
5909 >  case 565:
5910 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5911      {
5912 <  if (conf_parser_ctx.pass == 2)
7636 <  {
7637 <    MyFree(ConfigFileEntry.servlink_path);
7638 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7639 <  }
5912 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5913   }
5914 + #line 5915 "conf_parser.c" /* yacc.c:1646  */
5915      break;
5916  
5917 <  case 601:
5918 <
7645 < /* Line 1455 of yacc.c  */
7646 < #line 3437 "ircd_parser.y"
7647 <    {
7648 < #ifdef HAVE_LIBCRYPTO
7649 <  if (conf_parser_ctx.pass == 2)
7650 <  {
7651 <    struct EncCapability *ecap;
7652 <    const char *cipher_name;
7653 <    int found = 0;
7654 <
7655 <    ConfigFileEntry.default_cipher_preference = NULL;
7656 <    cipher_name = yylval.string;
7657 <
7658 <    for (ecap = CipherTable; ecap->name; ecap++)
5917 >  case 566:
5918 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5919      {
5920 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7661 <          (ecap->cap & CAP_ENC_MASK))
7662 <      {
7663 <        ConfigFileEntry.default_cipher_preference = ecap;
7664 <        found = 1;
7665 <        break;
7666 <      }
7667 <    }
7668 <
7669 <    if (!found)
7670 <      yyerror("Invalid cipher");
7671 <  }
7672 < #else
7673 <  if (conf_parser_ctx.pass == 2)
7674 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7675 < #endif
5920 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5921   }
5922 + #line 5923 "conf_parser.c" /* yacc.c:1646  */
5923      break;
5924  
5925 <  case 602:
5926 <
7681 < /* Line 1455 of yacc.c  */
7682 < #line 3469 "ircd_parser.y"
7683 <    {
7684 <  if (conf_parser_ctx.pass == 2)
7685 <  {
7686 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
7687 < #ifndef HAVE_LIBZ
7688 <    yyerror("Ignoring compression_level -- no zlib support");
7689 < #else
7690 <    if ((ConfigFileEntry.compression_level < 1) ||
7691 <        (ConfigFileEntry.compression_level > 9))
5925 >  case 567:
5926 > #line 2657 "conf_parser.y" /* yacc.c:1646  */
5927      {
5928 <      yyerror("Ignoring invalid compression_level, using default");
7694 <      ConfigFileEntry.compression_level = 0;
7695 <    }
7696 < #endif
7697 <  }
5928 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5929   }
5930 + #line 5931 "conf_parser.c" /* yacc.c:1646  */
5931      break;
5932  
5933 <  case 603:
5934 <
7703 < /* Line 1455 of yacc.c  */
7704 < #line 3487 "ircd_parser.y"
5933 >  case 568:
5934 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5935      {
5936 <  ConfigFileEntry.use_egd = yylval.number;
5936 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5937   }
5938 + #line 5939 "conf_parser.c" /* yacc.c:1646  */
5939      break;
5940  
5941 <  case 604:
5942 <
7712 < /* Line 1455 of yacc.c  */
7713 < #line 3492 "ircd_parser.y"
5941 >  case 569:
5942 > #line 2663 "conf_parser.y" /* yacc.c:1646  */
5943      {
5944 <  if (conf_parser_ctx.pass == 2)
7716 <  {
7717 <    MyFree(ConfigFileEntry.egdpool_path);
7718 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7719 <  }
5944 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
5945   }
5946 + #line 5947 "conf_parser.c" /* yacc.c:1646  */
5947      break;
5948  
5949 <  case 605:
5950 <
7725 < /* Line 1455 of yacc.c  */
7726 < #line 3501 "ircd_parser.y"
5949 >  case 570:
5950 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5951      {
5952 <  ConfigFileEntry.ping_cookie = yylval.number;
5952 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5953   }
5954 + #line 5955 "conf_parser.c" /* yacc.c:1646  */
5955      break;
5956  
5957 <  case 606:
5958 <
7734 < /* Line 1455 of yacc.c  */
7735 < #line 3506 "ircd_parser.y"
5957 >  case 571:
5958 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5959      {
5960 <  ConfigFileEntry.disable_auth = yylval.number;
5960 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5961   }
5962 + #line 5963 "conf_parser.c" /* yacc.c:1646  */
5963      break;
5964  
5965 <  case 607:
5966 <
7743 < /* Line 1455 of yacc.c  */
7744 < #line 3511 "ircd_parser.y"
5965 >  case 572:
5966 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5967      {
5968 <  ConfigFileEntry.throttle_time = yylval.number;
5968 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5969   }
5970 + #line 5971 "conf_parser.c" /* yacc.c:1646  */
5971      break;
5972  
5973 <  case 608:
5974 <
7752 < /* Line 1455 of yacc.c  */
7753 < #line 3516 "ircd_parser.y"
5973 >  case 573:
5974 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5975      {
5976 <  ConfigFileEntry.oper_umodes = 0;
5976 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5977   }
5978 + #line 5979 "conf_parser.c" /* yacc.c:1646  */
5979      break;
5980  
5981 <  case 612:
5982 <
7761 < /* Line 1455 of yacc.c  */
7762 < #line 3522 "ircd_parser.y"
5981 >  case 574:
5982 > #line 2678 "conf_parser.y" /* yacc.c:1646  */
5983      {
5984 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5984 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5985   }
5986 + #line 5987 "conf_parser.c" /* yacc.c:1646  */
5987      break;
5988  
5989 <  case 613:
5990 <
7770 < /* Line 1455 of yacc.c  */
7771 < #line 3525 "ircd_parser.y"
5989 >  case 575:
5990 > #line 2681 "conf_parser.y" /* yacc.c:1646  */
5991      {
5992 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5992 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
5993   }
5994 + #line 5995 "conf_parser.c" /* yacc.c:1646  */
5995      break;
5996  
5997 <  case 614:
5998 <
7779 < /* Line 1455 of yacc.c  */
7780 < #line 3528 "ircd_parser.y"
5997 >  case 576:
5998 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5999      {
6000 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6000 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6001   }
6002 + #line 6003 "conf_parser.c" /* yacc.c:1646  */
6003      break;
6004  
6005 <  case 615:
6006 <
7788 < /* Line 1455 of yacc.c  */
7789 < #line 3531 "ircd_parser.y"
6005 >  case 577:
6006 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
6007      {
6008 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6008 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6009   }
6010 + #line 6011 "conf_parser.c" /* yacc.c:1646  */
6011      break;
6012  
6013 <  case 616:
6014 <
7797 < /* Line 1455 of yacc.c  */
7798 < #line 3534 "ircd_parser.y"
6013 >  case 578:
6014 > #line 2690 "conf_parser.y" /* yacc.c:1646  */
6015      {
6016 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6016 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6017   }
6018 + #line 6019 "conf_parser.c" /* yacc.c:1646  */
6019      break;
6020  
6021 <  case 617:
6022 <
7806 < /* Line 1455 of yacc.c  */
7807 < #line 3537 "ircd_parser.y"
6021 >  case 579:
6022 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
6023      {
6024 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6024 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6025   }
6026 + #line 6027 "conf_parser.c" /* yacc.c:1646  */
6027      break;
6028  
6029 <  case 618:
6030 <
7815 < /* Line 1455 of yacc.c  */
7816 < #line 3540 "ircd_parser.y"
6029 >  case 580:
6030 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
6031      {
6032 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6032 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6033   }
6034 + #line 6035 "conf_parser.c" /* yacc.c:1646  */
6035      break;
6036  
6037 <  case 619:
6038 <
7824 < /* Line 1455 of yacc.c  */
7825 < #line 3543 "ircd_parser.y"
6037 >  case 581:
6038 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
6039      {
6040 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6040 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6041   }
6042 + #line 6043 "conf_parser.c" /* yacc.c:1646  */
6043      break;
6044  
6045 <  case 620:
6046 <
7833 < /* Line 1455 of yacc.c  */
7834 < #line 3546 "ircd_parser.y"
6045 >  case 582:
6046 > #line 2702 "conf_parser.y" /* yacc.c:1646  */
6047      {
6048 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6048 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6049   }
6050 + #line 6051 "conf_parser.c" /* yacc.c:1646  */
6051      break;
6052  
6053 <  case 621:
6054 <
7842 < /* Line 1455 of yacc.c  */
7843 < #line 3549 "ircd_parser.y"
6053 >  case 583:
6054 > #line 2705 "conf_parser.y" /* yacc.c:1646  */
6055      {
6056 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6056 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6057   }
6058 + #line 6059 "conf_parser.c" /* yacc.c:1646  */
6059      break;
6060  
6061 <  case 622:
6062 <
7851 < /* Line 1455 of yacc.c  */
7852 < #line 3552 "ircd_parser.y"
6061 >  case 584:
6062 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
6063      {
6064 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6064 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6065   }
6066 + #line 6067 "conf_parser.c" /* yacc.c:1646  */
6067      break;
6068  
6069 <  case 623:
6070 <
7860 < /* Line 1455 of yacc.c  */
7861 < #line 3555 "ircd_parser.y"
6069 >  case 585:
6070 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
6071      {
6072 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6072 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6073   }
6074 + #line 6075 "conf_parser.c" /* yacc.c:1646  */
6075      break;
6076  
6077 <  case 624:
6078 <
7869 < /* Line 1455 of yacc.c  */
7870 < #line 3558 "ircd_parser.y"
6077 >  case 586:
6078 > #line 2714 "conf_parser.y" /* yacc.c:1646  */
6079      {
6080 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6080 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6081   }
6082 + #line 6083 "conf_parser.c" /* yacc.c:1646  */
6083      break;
6084  
6085 <  case 625:
6086 <
7878 < /* Line 1455 of yacc.c  */
7879 < #line 3561 "ircd_parser.y"
6085 >  case 587:
6086 > #line 2719 "conf_parser.y" /* yacc.c:1646  */
6087      {
6088 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6088 >  ConfigGeneral.oper_only_umodes = 0;
6089   }
6090 + #line 6091 "conf_parser.c" /* yacc.c:1646  */
6091      break;
6092  
6093 <  case 626:
6094 <
7887 < /* Line 1455 of yacc.c  */
7888 < #line 3564 "ircd_parser.y"
6093 >  case 591:
6094 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
6095      {
6096 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6096 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6097   }
6098 + #line 6099 "conf_parser.c" /* yacc.c:1646  */
6099      break;
6100  
6101 <  case 627:
6102 <
7896 < /* Line 1455 of yacc.c  */
7897 < #line 3567 "ircd_parser.y"
6101 >  case 592:
6102 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
6103      {
6104 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6104 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6105   }
6106 + #line 6107 "conf_parser.c" /* yacc.c:1646  */
6107      break;
6108  
6109 <  case 628:
6110 <
7905 < /* Line 1455 of yacc.c  */
7906 < #line 3570 "ircd_parser.y"
6109 >  case 593:
6110 > #line 2731 "conf_parser.y" /* yacc.c:1646  */
6111      {
6112 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6112 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6113   }
6114 + #line 6115 "conf_parser.c" /* yacc.c:1646  */
6115      break;
6116  
6117 <  case 629:
6118 <
7914 < /* Line 1455 of yacc.c  */
7915 < #line 3573 "ircd_parser.y"
6117 >  case 594:
6118 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
6119      {
6120 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6120 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6121   }
6122 + #line 6123 "conf_parser.c" /* yacc.c:1646  */
6123      break;
6124  
6125 <  case 630:
6126 <
7923 < /* Line 1455 of yacc.c  */
7924 < #line 3576 "ircd_parser.y"
6125 >  case 595:
6126 > #line 2737 "conf_parser.y" /* yacc.c:1646  */
6127      {
6128 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6128 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6129   }
6130 + #line 6131 "conf_parser.c" /* yacc.c:1646  */
6131      break;
6132  
6133 <  case 631:
6134 <
7932 < /* Line 1455 of yacc.c  */
7933 < #line 3581 "ircd_parser.y"
6133 >  case 596:
6134 > #line 2740 "conf_parser.y" /* yacc.c:1646  */
6135      {
6136 <  ConfigFileEntry.oper_only_umodes = 0;
6136 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6137   }
6138 + #line 6139 "conf_parser.c" /* yacc.c:1646  */
6139      break;
6140  
6141 <  case 635:
6142 <
7941 < /* Line 1455 of yacc.c  */
7942 < #line 3587 "ircd_parser.y"
6141 >  case 597:
6142 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
6143      {
6144 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6144 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6145   }
6146 + #line 6147 "conf_parser.c" /* yacc.c:1646  */
6147      break;
6148  
6149 <  case 636:
6150 <
7950 < /* Line 1455 of yacc.c  */
7951 < #line 3590 "ircd_parser.y"
6149 >  case 598:
6150 > #line 2746 "conf_parser.y" /* yacc.c:1646  */
6151      {
6152 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6152 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6153   }
6154 + #line 6155 "conf_parser.c" /* yacc.c:1646  */
6155      break;
6156  
6157 <  case 637:
6158 <
7959 < /* Line 1455 of yacc.c  */
7960 < #line 3593 "ircd_parser.y"
6157 >  case 599:
6158 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
6159      {
6160 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6160 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6161   }
6162 + #line 6163 "conf_parser.c" /* yacc.c:1646  */
6163      break;
6164  
6165 <  case 638:
6166 <
7968 < /* Line 1455 of yacc.c  */
7969 < #line 3596 "ircd_parser.y"
6165 >  case 600:
6166 > #line 2752 "conf_parser.y" /* yacc.c:1646  */
6167      {
6168 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6168 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6169   }
6170 + #line 6171 "conf_parser.c" /* yacc.c:1646  */
6171      break;
6172  
6173 <  case 639:
6174 <
7977 < /* Line 1455 of yacc.c  */
7978 < #line 3599 "ircd_parser.y"
6173 >  case 601:
6174 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
6175      {
6176 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
7981 < }
7982 <    break;
7983 <
7984 <  case 640:
7985 <
7986 < /* Line 1455 of yacc.c  */
7987 < #line 3602 "ircd_parser.y"
7988 <    {
7989 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6176 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6177   }
6178 + #line 6179 "conf_parser.c" /* yacc.c:1646  */
6179      break;
6180  
6181 <  case 641:
6182 <
7995 < /* Line 1455 of yacc.c  */
7996 < #line 3605 "ircd_parser.y"
6181 >  case 602:
6182 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6183      {
6184 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6184 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6185   }
6186 + #line 6187 "conf_parser.c" /* yacc.c:1646  */
6187      break;
6188  
6189 <  case 642:
6190 <
8004 < /* Line 1455 of yacc.c  */
8005 < #line 3608 "ircd_parser.y"
6189 >  case 603:
6190 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
6191      {
6192 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6192 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6193   }
6194 + #line 6195 "conf_parser.c" /* yacc.c:1646  */
6195      break;
6196  
6197 <  case 643:
6198 <
8013 < /* Line 1455 of yacc.c  */
8014 < #line 3611 "ircd_parser.y"
6197 >  case 604:
6198 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6199      {
6200 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6200 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6201   }
6202 + #line 6203 "conf_parser.c" /* yacc.c:1646  */
6203      break;
6204  
6205 <  case 644:
6206 <
8022 < /* Line 1455 of yacc.c  */
8023 < #line 3614 "ircd_parser.y"
6205 >  case 605:
6206 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6207      {
6208 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6208 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6209   }
6210 + #line 6211 "conf_parser.c" /* yacc.c:1646  */
6211      break;
6212  
6213 <  case 645:
6214 <
8031 < /* Line 1455 of yacc.c  */
8032 < #line 3617 "ircd_parser.y"
6213 >  case 606:
6214 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6215      {
6216 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6216 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6217   }
6218 + #line 6219 "conf_parser.c" /* yacc.c:1646  */
6219      break;
6220  
6221 <  case 646:
6222 <
8040 < /* Line 1455 of yacc.c  */
8041 < #line 3620 "ircd_parser.y"
6221 >  case 607:
6222 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6223      {
6224 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6224 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6225   }
6226 + #line 6227 "conf_parser.c" /* yacc.c:1646  */
6227      break;
6228  
6229 <  case 647:
6230 <
8049 < /* Line 1455 of yacc.c  */
8050 < #line 3623 "ircd_parser.y"
6229 >  case 608:
6230 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6231      {
6232 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6232 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6233   }
6234 + #line 6235 "conf_parser.c" /* yacc.c:1646  */
6235      break;
6236  
6237 <  case 648:
6238 <
8058 < /* Line 1455 of yacc.c  */
8059 < #line 3626 "ircd_parser.y"
6237 >  case 609:
6238 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6239      {
6240 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6240 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6241   }
6242 + #line 6243 "conf_parser.c" /* yacc.c:1646  */
6243      break;
6244  
6245 <  case 649:
6246 <
8067 < /* Line 1455 of yacc.c  */
8068 < #line 3629 "ircd_parser.y"
6245 >  case 610:
6246 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6247      {
6248 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6248 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6249   }
6250 + #line 6251 "conf_parser.c" /* yacc.c:1646  */
6251      break;
6252  
6253 <  case 650:
6254 <
8076 < /* Line 1455 of yacc.c  */
8077 < #line 3632 "ircd_parser.y"
6253 >  case 611:
6254 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6255      {
6256 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6256 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6257   }
6258 + #line 6259 "conf_parser.c" /* yacc.c:1646  */
6259      break;
6260  
6261 <  case 651:
6262 <
8085 < /* Line 1455 of yacc.c  */
8086 < #line 3635 "ircd_parser.y"
6261 >  case 612:
6262 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6263      {
6264 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6264 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6265   }
6266 + #line 6267 "conf_parser.c" /* yacc.c:1646  */
6267      break;
6268  
6269 <  case 652:
6270 <
8094 < /* Line 1455 of yacc.c  */
8095 < #line 3638 "ircd_parser.y"
6269 >  case 613:
6270 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6271      {
6272 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6272 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6273   }
6274 + #line 6275 "conf_parser.c" /* yacc.c:1646  */
6275      break;
6276  
6277 <  case 653:
6278 <
8103 < /* Line 1455 of yacc.c  */
8104 < #line 3641 "ircd_parser.y"
6277 >  case 614:
6278 > #line 2802 "conf_parser.y" /* yacc.c:1646  */
6279      {
6280 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6280 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6281   }
6282 + #line 6283 "conf_parser.c" /* yacc.c:1646  */
6283      break;
6284  
6285 <  case 654:
6286 <
8112 < /* Line 1455 of yacc.c  */
8113 < #line 3646 "ircd_parser.y"
6285 >  case 633:
6286 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6287      {
6288 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6288 >  ConfigChannel.disable_fake_channels = yylval.number;
6289   }
6290 + #line 6291 "conf_parser.c" /* yacc.c:1646  */
6291      break;
6292  
6293 <  case 655:
6294 <
8121 < /* Line 1455 of yacc.c  */
8122 < #line 3651 "ircd_parser.y"
6293 >  case 634:
6294 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6295      {
6296 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6296 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6297   }
6298 + #line 6299 "conf_parser.c" /* yacc.c:1646  */
6299      break;
6300  
6301 <  case 656:
6302 <
8130 < /* Line 1455 of yacc.c  */
8131 < #line 3656 "ircd_parser.y"
6301 >  case 635:
6302 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6303      {
6304 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6304 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6305   }
6306 + #line 6307 "conf_parser.c" /* yacc.c:1646  */
6307      break;
6308  
6309 <  case 657:
6310 <
8139 < /* Line 1455 of yacc.c  */
8140 < #line 3661 "ircd_parser.y"
6309 >  case 636:
6310 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6311      {
6312 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6312 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6313   }
6314 + #line 6315 "conf_parser.c" /* yacc.c:1646  */
6315      break;
6316  
6317 <  case 658:
6318 <
8148 < /* Line 1455 of yacc.c  */
8149 < #line 3666 "ircd_parser.y"
6317 >  case 637:
6318 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6319      {
6320 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
6320 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6321   }
6322 + #line 6323 "conf_parser.c" /* yacc.c:1646  */
6323      break;
6324  
6325 <  case 659:
6326 <
8157 < /* Line 1455 of yacc.c  */
8158 < #line 3674 "ircd_parser.y"
6325 >  case 638:
6326 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6327      {
6328 <  if (conf_parser_ctx.pass == 2)
8161 <  {
8162 <    yy_conf = make_conf_item(GDENY_TYPE);
8163 <    yy_aconf = map_to_conf(yy_conf);
8164 <  }
6328 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6329   }
6330 + #line 6331 "conf_parser.c" /* yacc.c:1646  */
6331      break;
6332  
6333 <  case 660:
6334 <
8170 < /* Line 1455 of yacc.c  */
8171 < #line 3681 "ircd_parser.y"
8172 <    {
8173 <  if (conf_parser_ctx.pass == 2)
8174 <  {
8175 <    /*
8176 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8177 <     * end we will have one extra, so we should free it.
8178 <     */
8179 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
6333 >  case 639:
6334 > #line 2860 "conf_parser.y" /* yacc.c:1646  */
6335      {
6336 <      delete_conf_item(yy_conf);
8182 <      yy_conf = NULL;
8183 <      yy_aconf = NULL;
8184 <    }
8185 <  }
6336 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6337   }
6338 + #line 6339 "conf_parser.c" /* yacc.c:1646  */
6339      break;
6340  
6341 <  case 670:
6342 <
8191 < /* Line 1455 of yacc.c  */
8192 < #line 3707 "ircd_parser.y"
6341 >  case 640:
6342 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6343      {
6344 <  if (conf_parser_ctx.pass == 2)
8195 <    ConfigFileEntry.glines = yylval.number;
6344 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6345   }
6346 + #line 6347 "conf_parser.c" /* yacc.c:1646  */
6347      break;
6348  
6349 <  case 671:
6350 <
8201 < /* Line 1455 of yacc.c  */
8202 < #line 3713 "ircd_parser.y"
6349 >  case 641:
6350 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6351      {
6352 <  if (conf_parser_ctx.pass == 2)
8205 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6352 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6353   }
6354 + #line 6355 "conf_parser.c" /* yacc.c:1646  */
6355      break;
6356  
6357 <  case 672:
6358 <
8211 < /* Line 1455 of yacc.c  */
8212 < #line 3719 "ircd_parser.y"
6357 >  case 642:
6358 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6359      {
6360 <  if (conf_parser_ctx.pass == 2)
8215 <    ConfigFileEntry.gline_logging = 0;
6360 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6361   }
6362 + #line 6363 "conf_parser.c" /* yacc.c:1646  */
6363      break;
6364  
6365 <  case 676:
6366 <
8221 < /* Line 1455 of yacc.c  */
8222 < #line 3725 "ircd_parser.y"
6365 >  case 643:
6366 > #line 2880 "conf_parser.y" /* yacc.c:1646  */
6367      {
6368 <  if (conf_parser_ctx.pass == 2)
8225 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6368 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6369   }
6370 + #line 6371 "conf_parser.c" /* yacc.c:1646  */
6371      break;
6372  
6373 <  case 677:
6374 <
8231 < /* Line 1455 of yacc.c  */
8232 < #line 3729 "ircd_parser.y"
6373 >  case 644:
6374 > #line 2885 "conf_parser.y" /* yacc.c:1646  */
6375      {
6376 <  if (conf_parser_ctx.pass == 2)
8235 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6376 >  ConfigChannel.max_bans_large = (yyvsp[-1].number);
6377   }
6378 + #line 6379 "conf_parser.c" /* yacc.c:1646  */
6379      break;
6380  
6381 <  case 678:
6382 <
8241 < /* Line 1455 of yacc.c  */
8242 < #line 3735 "ircd_parser.y"
8243 <    {
8244 <  if (conf_parser_ctx.pass == 2)
8245 <  {
8246 <    struct split_nuh_item nuh;
8247 <
8248 <    nuh.nuhmask  = yylval.string;
8249 <    nuh.nickptr  = NULL;
8250 <    nuh.userptr  = userbuf;
8251 <    nuh.hostptr  = hostbuf;
8252 <
8253 <    nuh.nicksize = 0;
8254 <    nuh.usersize = sizeof(userbuf);
8255 <    nuh.hostsize = sizeof(hostbuf);
8256 <
8257 <    split_nuh(&nuh);
8258 <
8259 <    if (yy_aconf->user == NULL)
8260 <    {
8261 <      DupString(yy_aconf->user, userbuf);
8262 <      DupString(yy_aconf->host, hostbuf);
8263 <    }
8264 <    else
6381 >  case 645:
6382 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6383      {
6384 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8267 <
8268 <      DupString(yy_tmp->user, userbuf);
8269 <      DupString(yy_tmp->host, hostbuf);
8270 <
8271 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8272 <    }
8273 <  }
6384 >  ConfigChannel.default_join_flood_count = yylval.number;
6385   }
6386 + #line 6387 "conf_parser.c" /* yacc.c:1646  */
6387      break;
6388  
6389 <  case 679:
6390 <
8279 < /* Line 1455 of yacc.c  */
8280 < #line 3769 "ircd_parser.y"
6389 >  case 646:
6390 > #line 2895 "conf_parser.y" /* yacc.c:1646  */
6391      {
6392 <  if (conf_parser_ctx.pass == 2)  
8283 <  {
8284 <    MyFree(yy_conf->name);
8285 <    DupString(yy_conf->name, yylval.string);
8286 <  }
6392 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6393   }
6394 + #line 6395 "conf_parser.c" /* yacc.c:1646  */
6395      break;
6396  
6397 <  case 680:
6398 <
8292 < /* Line 1455 of yacc.c  */
8293 < #line 3778 "ircd_parser.y"
6397 >  case 660:
6398 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6399      {
6400    if (conf_parser_ctx.pass == 2)
6401 <    yy_aconf->flags = 0;
6401 >    ConfigServerHide.flatten_links = yylval.number;
6402   }
6403 + #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404      break;
6405  
6406 <  case 681:
6407 <
8302 < /* Line 1455 of yacc.c  */
8303 < #line 3782 "ircd_parser.y"
6406 >  case 661:
6407 > #line 2924 "conf_parser.y" /* yacc.c:1646  */
6408      {
6409    if (conf_parser_ctx.pass == 2)
6410    {
6411 <    struct CollectItem *yy_tmp = NULL;
8308 <    dlink_node *ptr, *next_ptr;
8309 <
8310 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6411 >    if ((yyvsp[-1].number) > 0)
6412      {
6413 <      struct AccessItem *new_aconf;
6414 <      struct ConfItem *new_conf;
8314 <
8315 <      yy_tmp = ptr->data;
8316 <      new_conf = make_conf_item(GDENY_TYPE);
8317 <      new_aconf = map_to_conf(new_conf);
8318 <
8319 <      new_aconf->flags = yy_aconf->flags;
8320 <
8321 <      if (yy_conf->name != NULL)
8322 <        DupString(new_conf->name, yy_conf->name);
8323 <      else
8324 <        DupString(new_conf->name, "*");
8325 <      if (yy_aconf->user != NULL)
8326 <         DupString(new_aconf->user, yy_tmp->user);
8327 <      else  
8328 <        DupString(new_aconf->user, "*");
8329 <      if (yy_aconf->host != NULL)
8330 <        DupString(new_aconf->host, yy_tmp->host);
8331 <      else
8332 <        DupString(new_aconf->host, "*");
8333 <
8334 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
6413 >      event_write_links_file.when = (yyvsp[-1].number);
6414 >      event_add(&event_write_links_file, NULL);
6415      }
6416 +    else
6417 +     event_delete(&event_write_links_file);
6418  
6419 <    /*
8338 <     * In case someone has fed us with more than one action= after user/name
8339 <     * which would leak memory  -Michael
8340 <     */
8341 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8342 <      delete_conf_item(yy_conf);
8343 <
8344 <    yy_conf = make_conf_item(GDENY_TYPE);
8345 <    yy_aconf = map_to_conf(yy_conf);
6419 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6420    }
6421   }
6422 + #line 6423 "conf_parser.c" /* yacc.c:1646  */
6423      break;
6424  
6425 <  case 684:
6426 <
8352 < /* Line 1455 of yacc.c  */
8353 < #line 3829 "ircd_parser.y"
6425 >  case 662:
6426 > #line 2940 "conf_parser.y" /* yacc.c:1646  */
6427      {
6428    if (conf_parser_ctx.pass == 2)
6429 <    yy_aconf->flags |= GDENY_REJECT;
6430 < }
6431 <    break;
6432 <
8360 <  case 685:
8361 <
8362 < /* Line 1455 of yacc.c  */
8363 < #line 3833 "ircd_parser.y"
8364 <    {
8365 <  if (conf_parser_ctx.pass == 2)
8366 <    yy_aconf->flags |= GDENY_BLOCK;
8367 < }
8368 <    break;
8369 <
8370 <  case 708:
8371 <
8372 < /* Line 1455 of yacc.c  */
8373 < #line 3857 "ircd_parser.y"
8374 <    {
8375 <  ConfigChannel.disable_fake_channels = yylval.number;
8376 < }
8377 <    break;
8378 <
8379 <  case 709:
8380 <
8381 < /* Line 1455 of yacc.c  */
8382 < #line 3862 "ircd_parser.y"
8383 <    {
8384 <  ConfigChannel.restrict_channels = yylval.number;
8385 < }
8386 <    break;
8387 <
8388 <  case 710:
8389 <
8390 < /* Line 1455 of yacc.c  */
8391 < #line 3867 "ircd_parser.y"
8392 <    {
8393 <  ConfigChannel.disable_local_channels = yylval.number;
8394 < }
8395 <    break;
8396 <
8397 <  case 711:
8398 <
8399 < /* Line 1455 of yacc.c  */
8400 < #line 3872 "ircd_parser.y"
8401 <    {
8402 <  ConfigChannel.use_except = yylval.number;
8403 < }
8404 <    break;
8405 <
8406 <  case 712:
8407 <
8408 < /* Line 1455 of yacc.c  */
8409 < #line 3877 "ircd_parser.y"
8410 <    {
8411 <  ConfigChannel.use_invex = yylval.number;
8412 < }
8413 <    break;
8414 <
8415 <  case 713:
8416 <
8417 < /* Line 1455 of yacc.c  */
8418 < #line 3882 "ircd_parser.y"
8419 <    {
8420 <  ConfigChannel.use_knock = yylval.number;
8421 < }
8422 <    break;
8423 <
8424 <  case 714:
8425 <
8426 < /* Line 1455 of yacc.c  */
8427 < #line 3887 "ircd_parser.y"
8428 <    {
8429 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
8430 < }
8431 <    break;
8432 <
8433 <  case 715:
8434 <
8435 < /* Line 1455 of yacc.c  */
8436 < #line 3892 "ircd_parser.y"
8437 <    {
8438 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
8439 < }
8440 <    break;
8441 <
8442 <  case 716:
8443 <
8444 < /* Line 1455 of yacc.c  */
8445 < #line 3897 "ircd_parser.y"
8446 <    {
8447 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
8448 < }
8449 <    break;
8450 <
8451 <  case 717:
8452 <
8453 < /* Line 1455 of yacc.c  */
8454 < #line 3902 "ircd_parser.y"
8455 <    {
8456 <  ConfigChannel.quiet_on_ban = yylval.number;
8457 < }
8458 <    break;
8459 <
8460 <  case 718:
8461 <
8462 < /* Line 1455 of yacc.c  */
8463 < #line 3907 "ircd_parser.y"
8464 <    {
8465 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
8466 < }
8467 <    break;
8468 <
8469 <  case 719:
8470 <
8471 < /* Line 1455 of yacc.c  */
8472 < #line 3912 "ircd_parser.y"
8473 <    {
8474 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
8475 < }
8476 <    break;
8477 <
8478 <  case 720:
8479 <
8480 < /* Line 1455 of yacc.c  */
8481 < #line 3917 "ircd_parser.y"
8482 <    {
8483 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
8484 < }
8485 <    break;
8486 <
8487 <  case 721:
8488 <
8489 < /* Line 1455 of yacc.c  */
8490 < #line 3922 "ircd_parser.y"
8491 <    {
8492 <  ConfigChannel.no_create_on_split = yylval.number;
8493 < }
8494 <    break;
8495 <
8496 <  case 722:
8497 <
8498 < /* Line 1455 of yacc.c  */
8499 < #line 3927 "ircd_parser.y"
8500 <    {
8501 <  ConfigChannel.no_join_on_split = yylval.number;
8502 < }
8503 <    break;
8504 <
8505 <  case 723:
8506 <
8507 < /* Line 1455 of yacc.c  */
8508 < #line 3932 "ircd_parser.y"
8509 <    {
8510 <  ConfigChannel.burst_topicwho = yylval.number;
8511 < }
8512 <    break;
8513 <
8514 <  case 724:
8515 <
8516 < /* Line 1455 of yacc.c  */
8517 < #line 3937 "ircd_parser.y"
8518 <    {
8519 <  GlobalSetOptions.joinfloodcount = yylval.number;
8520 < }
8521 <    break;
8522 <
8523 <  case 725:
8524 <
8525 < /* Line 1455 of yacc.c  */
8526 < #line 3942 "ircd_parser.y"
8527 <    {
8528 <  GlobalSetOptions.joinfloodtime = yylval.number;
6429 >  {
6430 >    xfree(ConfigServerHide.flatten_links_file);
6431 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6432 >  }
6433   }
6434 + #line 6435 "conf_parser.c" /* yacc.c:1646  */
6435      break;
6436  
6437 <  case 737:
6438 <
8534 < /* Line 1455 of yacc.c  */
8535 < #line 3961 "ircd_parser.y"
6437 >  case 663:
6438 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6439      {
6440    if (conf_parser_ctx.pass == 2)
6441 <    ConfigServerHide.flatten_links = yylval.number;
6441 >    ConfigServerHide.disable_remote_commands = yylval.number;
6442   }
6443 + #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444      break;
6445  
6446 <  case 738:
6447 <
8544 < /* Line 1455 of yacc.c  */
8545 < #line 3967 "ircd_parser.y"
6446 >  case 664:
6447 > #line 2955 "conf_parser.y" /* yacc.c:1646  */
6448      {
6449    if (conf_parser_ctx.pass == 2)
6450      ConfigServerHide.hide_servers = yylval.number;
6451   }
6452 + #line 6453 "conf_parser.c" /* yacc.c:1646  */
6453      break;
6454  
6455 <  case 739:
6456 <
8554 < /* Line 1455 of yacc.c  */
8555 < #line 3973 "ircd_parser.y"
6455 >  case 665:
6456 > #line 2961 "conf_parser.y" /* yacc.c:1646  */
6457      {
6458    if (conf_parser_ctx.pass == 2)
6459 <  {
8559 <    MyFree(ConfigServerHide.hidden_name);
8560 <    DupString(ConfigServerHide.hidden_name, yylval.string);
8561 <  }
6459 >    ConfigServerHide.hide_services = yylval.number;
6460   }
6461 + #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 740:
6465 <
8567 < /* Line 1455 of yacc.c  */
8568 < #line 3982 "ircd_parser.y"
6464 >  case 666:
6465 > #line 2967 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467    if (conf_parser_ctx.pass == 2)
6468    {
6469 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6470 <    {
8574 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
8575 <      ConfigServerHide.links_disabled = 0;
8576 <    }
8577 <
8578 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6469 >    xfree(ConfigServerHide.hidden_name);
6470 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6471    }
6472   }
6473 + #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 741:
6477 <
8585 < /* Line 1455 of yacc.c  */
8586 < #line 3996 "ircd_parser.y"
6476 >  case 667:
6477 > #line 2976 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479    if (conf_parser_ctx.pass == 2)
6480      ConfigServerHide.hidden = yylval.number;
6481   }
6482 + #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 742:
6486 <
8595 < /* Line 1455 of yacc.c  */
8596 < #line 4002 "ircd_parser.y"
8597 <    {
8598 <  if (conf_parser_ctx.pass == 2)
8599 <    ConfigServerHide.disable_hidden = yylval.number;
8600 < }
8601 <    break;
8602 <
8603 <  case 743:
8604 <
8605 < /* Line 1455 of yacc.c  */
8606 < #line 4008 "ircd_parser.y"
6485 >  case 668:
6486 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488    if (conf_parser_ctx.pass == 2)
6489      ConfigServerHide.hide_server_ips = yylval.number;
6490   }
6491 + #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;
6493  
6494  
6495 <
8615 < /* Line 1455 of yacc.c  */
8616 < #line 8617 "ircd_parser.c"
6495 > #line 6496 "conf_parser.c" /* yacc.c:1646  */
6496        default: break;
6497      }
6498 +  /* User semantic actions sometimes alter yychar, and that requires
6499 +     that yytoken be updated with the new translation.  We take the
6500 +     approach of translating immediately before every use of yytoken.
6501 +     One alternative is translating here after every semantic action,
6502 +     but that translation would be missed if the semantic action invokes
6503 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6504 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6505 +     incorrect destructor might then be invoked immediately.  In the
6506 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6507 +     to an incorrect destructor call or verbose syntax error message
6508 +     before the lookahead is translated.  */
6509    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6510  
6511    YYPOPSTACK (yylen);
# Line 8624 | Line 6514 | yyreduce:
6514  
6515    *++yyvsp = yyval;
6516  
6517 <  /* Now `shift' the result of the reduction.  Determine what state
6517 >  /* Now 'shift' the result of the reduction.  Determine what state
6518       that goes to, based on the state we popped back to and the rule
6519       number reduced by.  */
6520  
# Line 8639 | Line 6529 | yyreduce:
6529    goto yynewstate;
6530  
6531  
6532 < /*------------------------------------.
6533 < | yyerrlab -- here on detecting error |
6534 < `------------------------------------*/
6532 > /*--------------------------------------.
6533 > | yyerrlab -- here on detecting error.  |
6534 > `--------------------------------------*/
6535   yyerrlab:
6536 +  /* Make sure we have latest lookahead translation.  See comments at
6537 +     user semantic actions for why this is necessary.  */
6538 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6539 +
6540    /* If not already recovering from an error, report this error.  */
6541    if (!yyerrstatus)
6542      {
# Line 8650 | Line 6544 | yyerrlab:
6544   #if ! YYERROR_VERBOSE
6545        yyerror (YY_("syntax error"));
6546   #else
6547 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6548 +                                        yyssp, yytoken)
6549        {
6550 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6551 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6552 <          {
6553 <            YYSIZE_T yyalloc = 2 * yysize;
6554 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6555 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6556 <            if (yymsg != yymsgbuf)
6557 <              YYSTACK_FREE (yymsg);
6558 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6559 <            if (yymsg)
6560 <              yymsg_alloc = yyalloc;
6561 <            else
6562 <              {
6563 <                yymsg = yymsgbuf;
6564 <                yymsg_alloc = sizeof yymsgbuf;
6565 <              }
6566 <          }
6567 <
6568 <        if (0 < yysize && yysize <= yymsg_alloc)
6569 <          {
6570 <            (void) yysyntax_error (yymsg, yystate, yychar);
6571 <            yyerror (yymsg);
6572 <          }
6573 <        else
6574 <          {
8679 <            yyerror (YY_("syntax error"));
8680 <            if (yysize != 0)
8681 <              goto yyexhaustedlab;
8682 <          }
6550 >        char const *yymsgp = YY_("syntax error");
6551 >        int yysyntax_error_status;
6552 >        yysyntax_error_status = YYSYNTAX_ERROR;
6553 >        if (yysyntax_error_status == 0)
6554 >          yymsgp = yymsg;
6555 >        else if (yysyntax_error_status == 1)
6556 >          {
6557 >            if (yymsg != yymsgbuf)
6558 >              YYSTACK_FREE (yymsg);
6559 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6560 >            if (!yymsg)
6561 >              {
6562 >                yymsg = yymsgbuf;
6563 >                yymsg_alloc = sizeof yymsgbuf;
6564 >                yysyntax_error_status = 2;
6565 >              }
6566 >            else
6567 >              {
6568 >                yysyntax_error_status = YYSYNTAX_ERROR;
6569 >                yymsgp = yymsg;
6570 >              }
6571 >          }
6572 >        yyerror (yymsgp);
6573 >        if (yysyntax_error_status == 2)
6574 >          goto yyexhaustedlab;
6575        }
6576 + # undef YYSYNTAX_ERROR
6577   #endif
6578      }
6579  
# Line 8689 | Line 6582 | yyerrlab:
6582    if (yyerrstatus == 3)
6583      {
6584        /* If just tried and failed to reuse lookahead token after an
6585 <         error, discard it.  */
6585 >         error, discard it.  */
6586  
6587        if (yychar <= YYEOF)
6588 <        {
6589 <          /* Return failure if at end of input.  */
6590 <          if (yychar == YYEOF)
6591 <            YYABORT;
6592 <        }
6588 >        {
6589 >          /* Return failure if at end of input.  */
6590 >          if (yychar == YYEOF)
6591 >            YYABORT;
6592 >        }
6593        else
6594 <        {
6595 <          yydestruct ("Error: discarding",
6596 <                      yytoken, &yylval);
6597 <          yychar = YYEMPTY;
6598 <        }
6594 >        {
6595 >          yydestruct ("Error: discarding",
6596 >                      yytoken, &yylval);
6597 >          yychar = YYEMPTY;
6598 >        }
6599      }
6600  
6601    /* Else will try to reuse lookahead token after shifting the error
# Line 8721 | Line 6614 | yyerrorlab:
6614    if (/*CONSTCOND*/ 0)
6615       goto yyerrorlab;
6616  
6617 <  /* Do not reclaim the symbols of the rule which action triggered
6617 >  /* Do not reclaim the symbols of the rule whose action triggered
6618       this YYERROR.  */
6619    YYPOPSTACK (yylen);
6620    yylen = 0;
# Line 8734 | Line 6627 | yyerrorlab:
6627   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6628   `-------------------------------------------------------------*/
6629   yyerrlab1:
6630 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6630 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6631  
6632    for (;;)
6633      {
6634        yyn = yypact[yystate];
6635 <      if (yyn != YYPACT_NINF)
6636 <        {
6637 <          yyn += YYTERROR;
6638 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6639 <            {
6640 <              yyn = yytable[yyn];
6641 <              if (0 < yyn)
6642 <                break;
6643 <            }
6644 <        }
6635 >      if (!yypact_value_is_default (yyn))
6636 >        {
6637 >          yyn += YYTERROR;
6638 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6639 >            {
6640 >              yyn = yytable[yyn];
6641 >              if (0 < yyn)
6642 >                break;
6643 >            }
6644 >        }
6645  
6646        /* Pop the current state because it cannot handle the error token.  */
6647        if (yyssp == yyss)
6648 <        YYABORT;
6648 >        YYABORT;
6649  
6650  
6651        yydestruct ("Error: popping",
6652 <                  yystos[yystate], yyvsp);
6652 >                  yystos[yystate], yyvsp);
6653        YYPOPSTACK (1);
6654        yystate = *yyssp;
6655        YY_STACK_PRINT (yyss, yyssp);
6656      }
6657  
6658 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6659    *++yyvsp = yylval;
6660 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6661  
6662  
6663    /* Shift the error token.  */
# Line 8786 | Line 6681 | yyabortlab:
6681    yyresult = 1;
6682    goto yyreturn;
6683  
6684 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6684 > #if !defined yyoverflow || YYERROR_VERBOSE
6685   /*-------------------------------------------------.
6686   | yyexhaustedlab -- memory exhaustion comes here.  |
6687   `-------------------------------------------------*/
# Line 8798 | Line 6693 | yyexhaustedlab:
6693  
6694   yyreturn:
6695    if (yychar != YYEMPTY)
6696 <     yydestruct ("Cleanup: discarding lookahead",
6697 <                 yytoken, &yylval);
6698 <  /* Do not reclaim the symbols of the rule which action triggered
6696 >    {
6697 >      /* Make sure we have latest lookahead translation.  See comments at
6698 >         user semantic actions for why this is necessary.  */
6699 >      yytoken = YYTRANSLATE (yychar);
6700 >      yydestruct ("Cleanup: discarding lookahead",
6701 >                  yytoken, &yylval);
6702 >    }
6703 >  /* Do not reclaim the symbols of the rule whose action triggered
6704       this YYABORT or YYACCEPT.  */
6705    YYPOPSTACK (yylen);
6706    YY_STACK_PRINT (yyss, yyssp);
6707    while (yyssp != yyss)
6708      {
6709        yydestruct ("Cleanup: popping",
6710 <                  yystos[*yyssp], yyvsp);
6710 >                  yystos[*yyssp], yyvsp);
6711        YYPOPSTACK (1);
6712      }
6713   #ifndef yyoverflow
# Line 8818 | Line 6718 | yyreturn:
6718    if (yymsg != yymsgbuf)
6719      YYSTACK_FREE (yymsg);
6720   #endif
6721 <  /* Make sure YYID is used.  */
8822 <  return YYID (yyresult);
6721 >  return yyresult;
6722   }
8824
8825
8826

Diff Legend

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