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

Comparing:
ircd-hybrid-8/src/ircd_parser.c (file contents), Revision 1303 by michael, Fri Mar 23 10:52:19 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.7.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 268 of yacc.c  */
69 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 77 | Line 74
74   #include "stdinc.h"
75   #include "ircd.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
83   #include "sprintf_irc.h"
# Line 97 | Line 95
95   #include <openssl/rsa.h>
96   #include <openssl/bio.h>
97   #include <openssl/pem.h>
98 + #include <openssl/dh.h>
99   #endif
100  
101 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
112 < static unsigned int listener_flags = 0;
113 < static unsigned int regex_ban = 0;
114 < static char userbuf[IRCD_BUFSIZE];
115 < static char hostbuf[IRCD_BUFSIZE];
116 < static char reasonbuf[REASONLEN + 1];
117 < static char gecos_name[REALLEN * 4];
118 < static char lfile[IRCD_BUFSIZE];
119 < static unsigned int ltype = 0;
120 < static unsigned int lsize = 0;
121 < static char *resv_reason = NULL;
122 < static char *listener_address = NULL;
101 > int yylex(void);
102  
103 < struct CollectItem
103 > static struct
104   {
105 <  dlink_node node;
106 <  char *name;
107 <  char *user;
108 <  char *host;
109 <  char *passwd;
110 <  int  port;
111 <  int  flags;
112 < #ifdef HAVE_LIBCRYPTO
113 <  char *rsa_public_key_file;
114 <  RSA *rsa_public_key;
115 < #endif
116 < };
105 >  struct {
106 >    dlink_list list;
107 >  } mask,
108 >    leaf,
109 >    hub;
110 >
111 >  struct {
112 >    char buf[IRCD_BUFSIZE];
113 >  } name,
114 >    user,
115 >    host,
116 >    addr,
117 >    bind,
118 >    file,
119 >    ciph,
120 >    rpass,
121 >    spass,
122 >    class;
123 >
124 >  struct {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    max_total,
136 >    max_global,
137 >    max_local,
138 >    max_ident,
139 >    max_sendq,
140 >    max_recvq,
141 >    cidr_bitlen_ipv4,
142 >    cidr_bitlen_ipv6,
143 >    number_per_cidr;
144 > } block_state;
145  
146   static void
147 < free_collect_item(struct CollectItem *item)
147 > reset_block_state(void)
148   {
149 <  MyFree(item->name);
143 <  MyFree(item->user);
144 <  MyFree(item->host);
145 <  MyFree(item->passwd);
146 < #ifdef HAVE_LIBCRYPTO
147 <  MyFree(item->rsa_public_key_file);
148 < #endif
149 <  MyFree(item);
150 < }
149 >  dlink_node *ptr = NULL, *ptr_next = NULL;
150  
151 < static void
152 < unhook_hub_leaf_confs(void)
153 < {
154 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
158 <  struct CollectItem *yy_lconf;
151 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
152 >  {
153 >    MyFree(ptr->data);
154 >    dlinkDelete(ptr, &block_state.mask.list);
155 >    free_dlink_node(ptr);
156 >  }
157  
158 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
159    {
160 <    yy_hconf = ptr->data;
161 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
162 <    free_collect_item(yy_hconf);
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.leaf.list);
162 >    free_dlink_node(ptr);
163    }
164  
165 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
166    {
167 <    yy_lconf = ptr->data;
168 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
169 <    free_collect_item(yy_lconf);
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.hub.list);
169 >    free_dlink_node(ptr);
170    }
173 }
171  
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 268 of yacc.c  */
177 < #line 179 "ircd_parser.c"
176 > /* Line 371 of yacc.c  */
177 > #line 178 "conf_parser.c"
178  
179 < /* Enabling traces.  */
180 < #ifndef YYDEBUG
181 < # define YYDEBUG 0
182 < #endif
179 > # ifndef YY_NULL
180 > #  if defined __cplusplus && 201103L <= __cplusplus
181 > #   define YY_NULL nullptr
182 > #  else
183 > #   define YY_NULL 0
184 > #  endif
185 > # endif
186  
187   /* Enabling verbose error messages.  */
188   #ifdef YYERROR_VERBOSE
# Line 190 | Line 192 | unhook_hub_leaf_confs(void)
192   # define YYERROR_VERBOSE 0
193   #endif
194  
195 < /* Enabling the token table.  */
196 < #ifndef YYTOKEN_TABLE
197 < # define YYTOKEN_TABLE 0
195 > /* In a future release of Bison, this section will be replaced
196 >   by #include "y.tab.h".  */
197 > #ifndef YY_YY_Y_TAB_H_INCLUDED
198 > # define YY_YY_Y_TAB_H_INCLUDED
199 > /* Enabling traces.  */
200 > #ifndef YYDEBUG
201 > # define YYDEBUG 0
202 > #endif
203 > #if YYDEBUG
204 > extern int yydebug;
205   #endif
197
206  
207   /* Tokens.  */
208   #ifndef YYTOKENTYPE
# Line 203 | Line 211 | unhook_hub_leaf_confs(void)
211        know about them.  */
212     enum yytokentype {
213       ACCEPT_PASSWORD = 258,
214 <     ACTION = 259,
215 <     ADMIN = 260,
216 <     AFTYPE = 261,
217 <     T_ALLOW = 262,
218 <     ANTI_NICK_FLOOD = 263,
219 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
220 <     AUTOCONN = 265,
221 <     T_BLOCK = 266,
222 <     BURST_AWAY = 267,
223 <     BURST_TOPICWHO = 268,
224 <     BYTES = 269,
225 <     KBYTES = 270,
226 <     MBYTES = 271,
227 <     GBYTES = 272,
228 <     TBYTES = 273,
229 <     CALLER_ID_WAIT = 274,
230 <     CAN_FLOOD = 275,
231 <     CHANNEL = 276,
232 <     CIDR_BITLEN_IPV4 = 277,
233 <     CIDR_BITLEN_IPV6 = 278,
234 <     CLASS = 279,
235 <     CONNECT = 280,
236 <     CONNECTFREQ = 281,
237 <     DEFAULT_FLOODCOUNT = 282,
238 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
239 <     DEFAULT_SPLIT_USER_COUNT = 284,
240 <     DENY = 285,
241 <     DESCRIPTION = 286,
242 <     DIE = 287,
243 <     DISABLE_AUTH = 288,
244 <     DISABLE_FAKE_CHANNELS = 289,
245 <     DISABLE_HIDDEN = 290,
246 <     DISABLE_LOCAL_CHANNELS = 291,
247 <     DISABLE_REMOTE_COMMANDS = 292,
248 <     DOTS_IN_IDENT = 293,
249 <     DURATION = 294,
250 <     EGDPOOL_PATH = 295,
251 <     EMAIL = 296,
252 <     ENABLE = 297,
253 <     ENCRYPTED = 298,
254 <     EXCEED_LIMIT = 299,
255 <     EXEMPT = 300,
256 <     FAILED_OPER_NOTICE = 301,
257 <     IRCD_FLAGS = 302,
258 <     FLATTEN_LINKS = 303,
259 <     GECOS = 304,
260 <     GENERAL = 305,
261 <     GLINE = 306,
262 <     GLINES = 307,
263 <     GLINE_EXEMPT = 308,
264 <     GLINE_TIME = 309,
265 <     GLINE_MIN_CIDR = 310,
266 <     GLINE_MIN_CIDR6 = 311,
267 <     GLOBAL_KILL = 312,
268 <     IRCD_AUTH = 313,
269 <     NEED_IDENT = 314,
270 <     HAVENT_READ_CONF = 315,
271 <     HIDDEN = 316,
272 <     HIDDEN_NAME = 317,
273 <     HIDE_SERVER_IPS = 318,
274 <     HIDE_SERVERS = 319,
275 <     HIDE_SPOOF_IPS = 320,
276 <     HOST = 321,
277 <     HUB = 322,
278 <     HUB_MASK = 323,
279 <     IGNORE_BOGUS_TS = 324,
280 <     INVISIBLE_ON_CONNECT = 325,
281 <     IP = 326,
282 <     KILL = 327,
283 <     KILL_CHASE_TIME_LIMIT = 328,
284 <     KLINE = 329,
285 <     KLINE_EXEMPT = 330,
286 <     KLINE_REASON = 331,
287 <     KLINE_WITH_REASON = 332,
288 <     KNOCK_DELAY = 333,
289 <     KNOCK_DELAY_CHANNEL = 334,
290 <     LEAF_MASK = 335,
291 <     LINKS_DELAY = 336,
292 <     LISTEN = 337,
293 <     T_LOG = 338,
294 <     MAX_ACCEPT = 339,
295 <     MAX_BANS = 340,
296 <     MAX_CHANS_PER_USER = 341,
297 <     MAX_GLOBAL = 342,
298 <     MAX_IDENT = 343,
299 <     MAX_LOCAL = 344,
300 <     MAX_NICK_CHANGES = 345,
301 <     MAX_NICK_TIME = 346,
302 <     MAX_NUMBER = 347,
303 <     MAX_TARGETS = 348,
304 <     MAX_WATCH = 349,
305 <     MESSAGE_LOCALE = 350,
306 <     MIN_NONWILDCARD = 351,
307 <     MIN_NONWILDCARD_SIMPLE = 352,
308 <     MODULE = 353,
309 <     MODULES = 354,
310 <     NAME = 355,
311 <     NEED_PASSWORD = 356,
312 <     NETWORK_DESC = 357,
313 <     NETWORK_NAME = 358,
314 <     NICK = 359,
315 <     NICK_CHANGES = 360,
316 <     NO_CREATE_ON_SPLIT = 361,
317 <     NO_JOIN_ON_SPLIT = 362,
318 <     NO_OPER_FLOOD = 363,
319 <     NO_TILDE = 364,
320 <     NUMBER = 365,
321 <     NUMBER_PER_IDENT = 366,
322 <     NUMBER_PER_CIDR = 367,
323 <     NUMBER_PER_IP = 368,
324 <     NUMBER_PER_IP_GLOBAL = 369,
325 <     OPERATOR = 370,
326 <     OPERS_BYPASS_CALLERID = 371,
327 <     OPER_ONLY_UMODES = 372,
328 <     OPER_PASS_RESV = 373,
329 <     OPER_SPY_T = 374,
330 <     OPER_UMODES = 375,
331 <     JOIN_FLOOD_COUNT = 376,
332 <     JOIN_FLOOD_TIME = 377,
333 <     PACE_WAIT = 378,
334 <     PACE_WAIT_SIMPLE = 379,
335 <     PASSWORD = 380,
336 <     PATH = 381,
337 <     PING_COOKIE = 382,
338 <     PING_TIME = 383,
339 <     PING_WARNING = 384,
340 <     PORT = 385,
341 <     QSTRING = 386,
342 <     QUIET_ON_BAN = 387,
343 <     REASON = 388,
344 <     REDIRPORT = 389,
345 <     REDIRSERV = 390,
346 <     REGEX_T = 391,
347 <     REHASH = 392,
348 <     TREJECT_HOLD_TIME = 393,
349 <     REMOTE = 394,
350 <     REMOTEBAN = 395,
351 <     RESTRICT_CHANNELS = 396,
352 <     RESTRICTED = 397,
353 <     RSA_PRIVATE_KEY_FILE = 398,
354 <     RSA_PUBLIC_KEY_FILE = 399,
355 <     SSL_CERTIFICATE_FILE = 400,
356 <     T_SSL_CONNECTION_METHOD = 401,
357 <     T_SSLV3 = 402,
358 <     T_TLSV1 = 403,
359 <     RESV = 404,
360 <     RESV_EXEMPT = 405,
361 <     SECONDS = 406,
362 <     MINUTES = 407,
363 <     HOURS = 408,
364 <     DAYS = 409,
365 <     WEEKS = 410,
366 <     SENDQ = 411,
367 <     SEND_PASSWORD = 412,
368 <     SERVERHIDE = 413,
369 <     SERVERINFO = 414,
370 <     IRCD_SID = 415,
371 <     TKLINE_EXPIRE_NOTICES = 416,
372 <     T_SHARED = 417,
373 <     T_CLUSTER = 418,
374 <     TYPE = 419,
375 <     SHORT_MOTD = 420,
376 <     SILENT = 421,
377 <     SPOOF = 422,
378 <     SPOOF_NOTICE = 423,
379 <     STATS_E_DISABLED = 424,
380 <     STATS_I_OPER_ONLY = 425,
381 <     STATS_K_OPER_ONLY = 426,
382 <     STATS_O_OPER_ONLY = 427,
383 <     STATS_P_OPER_ONLY = 428,
384 <     TBOOL = 429,
385 <     TMASKED = 430,
386 <     T_REJECT = 431,
387 <     TS_MAX_DELTA = 432,
388 <     TS_WARN_DELTA = 433,
389 <     TWODOTS = 434,
390 <     T_ALL = 435,
391 <     T_BOTS = 436,
392 <     T_SOFTCALLERID = 437,
393 <     T_CALLERID = 438,
394 <     T_CCONN = 439,
395 <     T_CCONN_FULL = 440,
396 <     T_CLIENT_FLOOD = 441,
397 <     T_DEAF = 442,
398 <     T_DEBUG = 443,
399 <     T_DLINE = 444,
400 <     T_DRONE = 445,
401 <     T_EXTERNAL = 446,
402 <     T_FULL = 447,
403 <     T_INVISIBLE = 448,
404 <     T_IPV4 = 449,
405 <     T_IPV6 = 450,
406 <     T_LOCOPS = 451,
407 <     T_MAX_CLIENTS = 452,
408 <     T_NCHANGE = 453,
409 <     T_OPERWALL = 454,
410 <     T_REJ = 455,
411 <     T_SERVER = 456,
412 <     T_SERVNOTICE = 457,
413 <     T_SKILL = 458,
414 <     T_SPY = 459,
415 <     T_SSL = 460,
416 <     T_UMODES = 461,
417 <     T_UNAUTH = 462,
418 <     T_UNDLINE = 463,
419 <     T_UNLIMITED = 464,
420 <     T_UNRESV = 465,
421 <     T_UNXLINE = 466,
422 <     T_GLOBOPS = 467,
423 <     T_WALLOP = 468,
424 <     T_RESTART = 469,
417 <     T_SERVICE = 470,
418 <     T_SERVICES_NAME = 471,
419 <     T_TIMESTAMP = 472,
420 <     THROTTLE_TIME = 473,
421 <     TOPICBURST = 474,
422 <     TRUE_NO_OPER_FLOOD = 475,
423 <     TKLINE = 476,
424 <     TXLINE = 477,
425 <     TRESV = 478,
426 <     UNKLINE = 479,
427 <     USER = 480,
428 <     USE_EGD = 481,
429 <     USE_EXCEPT = 482,
430 <     USE_INVEX = 483,
431 <     USE_KNOCK = 484,
432 <     USE_LOGGING = 485,
433 <     USE_WHOIS_ACTUALLY = 486,
434 <     VHOST = 487,
435 <     VHOST6 = 488,
436 <     XLINE = 489,
437 <     WARN = 490,
438 <     WARN_NO_NLINE = 491,
439 <     T_SIZE = 492,
440 <     T_FILE = 493
214 >     ADMIN = 259,
215 >     AFTYPE = 260,
216 >     ANTI_NICK_FLOOD = 261,
217 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >     AUTOCONN = 263,
219 >     BYTES = 264,
220 >     KBYTES = 265,
221 >     MBYTES = 266,
222 >     CALLER_ID_WAIT = 267,
223 >     CAN_FLOOD = 268,
224 >     CHANNEL = 269,
225 >     CIDR_BITLEN_IPV4 = 270,
226 >     CIDR_BITLEN_IPV6 = 271,
227 >     CLASS = 272,
228 >     CONNECT = 273,
229 >     CONNECTFREQ = 274,
230 >     DEFAULT_FLOODCOUNT = 275,
231 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
232 >     DEFAULT_SPLIT_USER_COUNT = 277,
233 >     DENY = 278,
234 >     DESCRIPTION = 279,
235 >     DIE = 280,
236 >     DISABLE_AUTH = 281,
237 >     DISABLE_FAKE_CHANNELS = 282,
238 >     DISABLE_REMOTE_COMMANDS = 283,
239 >     DOTS_IN_IDENT = 284,
240 >     EGDPOOL_PATH = 285,
241 >     EMAIL = 286,
242 >     ENCRYPTED = 287,
243 >     EXCEED_LIMIT = 288,
244 >     EXEMPT = 289,
245 >     FAILED_OPER_NOTICE = 290,
246 >     IRCD_FLAGS = 291,
247 >     FLATTEN_LINKS = 292,
248 >     GECOS = 293,
249 >     GENERAL = 294,
250 >     GLINE = 295,
251 >     GLINE_DURATION = 296,
252 >     GLINE_ENABLE = 297,
253 >     GLINE_EXEMPT = 298,
254 >     GLINE_REQUEST_DURATION = 299,
255 >     GLINE_MIN_CIDR = 300,
256 >     GLINE_MIN_CIDR6 = 301,
257 >     GLOBAL_KILL = 302,
258 >     IRCD_AUTH = 303,
259 >     NEED_IDENT = 304,
260 >     HAVENT_READ_CONF = 305,
261 >     HIDDEN = 306,
262 >     HIDDEN_NAME = 307,
263 >     HIDE_SERVER_IPS = 308,
264 >     HIDE_SERVERS = 309,
265 >     HIDE_SPOOF_IPS = 310,
266 >     HOST = 311,
267 >     HUB = 312,
268 >     HUB_MASK = 313,
269 >     IGNORE_BOGUS_TS = 314,
270 >     INVISIBLE_ON_CONNECT = 315,
271 >     IP = 316,
272 >     KILL = 317,
273 >     KILL_CHASE_TIME_LIMIT = 318,
274 >     KLINE = 319,
275 >     KLINE_EXEMPT = 320,
276 >     KNOCK_DELAY = 321,
277 >     KNOCK_DELAY_CHANNEL = 322,
278 >     LEAF_MASK = 323,
279 >     LINKS_DELAY = 324,
280 >     LISTEN = 325,
281 >     T_LOG = 326,
282 >     MAX_ACCEPT = 327,
283 >     MAX_BANS = 328,
284 >     MAX_CHANS_PER_OPER = 329,
285 >     MAX_CHANS_PER_USER = 330,
286 >     MAX_GLOBAL = 331,
287 >     MAX_IDENT = 332,
288 >     MAX_LOCAL = 333,
289 >     MAX_NICK_CHANGES = 334,
290 >     MAX_NICK_TIME = 335,
291 >     MAX_NUMBER = 336,
292 >     MAX_TARGETS = 337,
293 >     MAX_WATCH = 338,
294 >     MESSAGE_LOCALE = 339,
295 >     MIN_NONWILDCARD = 340,
296 >     MIN_NONWILDCARD_SIMPLE = 341,
297 >     MODULE = 342,
298 >     MODULES = 343,
299 >     NAME = 344,
300 >     NEED_PASSWORD = 345,
301 >     NETWORK_DESC = 346,
302 >     NETWORK_NAME = 347,
303 >     NICK = 348,
304 >     NICK_CHANGES = 349,
305 >     NO_CREATE_ON_SPLIT = 350,
306 >     NO_JOIN_ON_SPLIT = 351,
307 >     NO_OPER_FLOOD = 352,
308 >     NO_TILDE = 353,
309 >     NUMBER = 354,
310 >     NUMBER_PER_CIDR = 355,
311 >     NUMBER_PER_IP = 356,
312 >     OPERATOR = 357,
313 >     OPERS_BYPASS_CALLERID = 358,
314 >     OPER_ONLY_UMODES = 359,
315 >     OPER_PASS_RESV = 360,
316 >     OPER_SPY_T = 361,
317 >     OPER_UMODES = 362,
318 >     JOIN_FLOOD_COUNT = 363,
319 >     JOIN_FLOOD_TIME = 364,
320 >     PACE_WAIT = 365,
321 >     PACE_WAIT_SIMPLE = 366,
322 >     PASSWORD = 367,
323 >     PATH = 368,
324 >     PING_COOKIE = 369,
325 >     PING_TIME = 370,
326 >     PORT = 371,
327 >     QSTRING = 372,
328 >     QUIET_ON_BAN = 373,
329 >     REASON = 374,
330 >     REDIRPORT = 375,
331 >     REDIRSERV = 376,
332 >     REGEX_T = 377,
333 >     REHASH = 378,
334 >     REMOTE = 379,
335 >     REMOTEBAN = 380,
336 >     RESTRICT_CHANNELS = 381,
337 >     RSA_PRIVATE_KEY_FILE = 382,
338 >     RSA_PUBLIC_KEY_FILE = 383,
339 >     SSL_CERTIFICATE_FILE = 384,
340 >     SSL_DH_PARAM_FILE = 385,
341 >     T_SSL_CLIENT_METHOD = 386,
342 >     T_SSL_SERVER_METHOD = 387,
343 >     T_SSLV3 = 388,
344 >     T_TLSV1 = 389,
345 >     RESV = 390,
346 >     RESV_EXEMPT = 391,
347 >     SECONDS = 392,
348 >     MINUTES = 393,
349 >     HOURS = 394,
350 >     DAYS = 395,
351 >     WEEKS = 396,
352 >     SENDQ = 397,
353 >     SEND_PASSWORD = 398,
354 >     SERVERHIDE = 399,
355 >     SERVERINFO = 400,
356 >     IRCD_SID = 401,
357 >     TKLINE_EXPIRE_NOTICES = 402,
358 >     T_SHARED = 403,
359 >     T_CLUSTER = 404,
360 >     TYPE = 405,
361 >     SHORT_MOTD = 406,
362 >     SPOOF = 407,
363 >     SPOOF_NOTICE = 408,
364 >     STATS_E_DISABLED = 409,
365 >     STATS_I_OPER_ONLY = 410,
366 >     STATS_K_OPER_ONLY = 411,
367 >     STATS_O_OPER_ONLY = 412,
368 >     STATS_P_OPER_ONLY = 413,
369 >     TBOOL = 414,
370 >     TMASKED = 415,
371 >     TS_MAX_DELTA = 416,
372 >     TS_WARN_DELTA = 417,
373 >     TWODOTS = 418,
374 >     T_ALL = 419,
375 >     T_BOTS = 420,
376 >     T_SOFTCALLERID = 421,
377 >     T_CALLERID = 422,
378 >     T_CCONN = 423,
379 >     T_CCONN_FULL = 424,
380 >     T_SSL_CIPHER_LIST = 425,
381 >     T_DEAF = 426,
382 >     T_DEBUG = 427,
383 >     T_DLINE = 428,
384 >     T_EXTERNAL = 429,
385 >     T_FULL = 430,
386 >     T_INVISIBLE = 431,
387 >     T_IPV4 = 432,
388 >     T_IPV6 = 433,
389 >     T_LOCOPS = 434,
390 >     T_MAX_CLIENTS = 435,
391 >     T_NCHANGE = 436,
392 >     T_OPERWALL = 437,
393 >     T_RECVQ = 438,
394 >     T_REJ = 439,
395 >     T_SERVER = 440,
396 >     T_SERVNOTICE = 441,
397 >     T_SET = 442,
398 >     T_SKILL = 443,
399 >     T_SPY = 444,
400 >     T_SSL = 445,
401 >     T_UMODES = 446,
402 >     T_UNAUTH = 447,
403 >     T_UNDLINE = 448,
404 >     T_UNLIMITED = 449,
405 >     T_UNRESV = 450,
406 >     T_UNXLINE = 451,
407 >     T_GLOBOPS = 452,
408 >     T_WALLOP = 453,
409 >     T_WEBIRC = 454,
410 >     T_RESTART = 455,
411 >     T_SERVICE = 456,
412 >     T_SERVICES_NAME = 457,
413 >     THROTTLE_TIME = 458,
414 >     TRUE_NO_OPER_FLOOD = 459,
415 >     UNKLINE = 460,
416 >     USER = 461,
417 >     USE_EGD = 462,
418 >     USE_LOGGING = 463,
419 >     VHOST = 464,
420 >     VHOST6 = 465,
421 >     XLINE = 466,
422 >     WARN_NO_NLINE = 467,
423 >     T_SIZE = 468,
424 >     T_FILE = 469
425     };
426   #endif
427   /* Tokens.  */
428   #define ACCEPT_PASSWORD 258
429 < #define ACTION 259
430 < #define ADMIN 260
431 < #define AFTYPE 261
432 < #define T_ALLOW 262
433 < #define ANTI_NICK_FLOOD 263
434 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
435 < #define AUTOCONN 265
436 < #define T_BLOCK 266
437 < #define BURST_AWAY 267
438 < #define BURST_TOPICWHO 268
439 < #define BYTES 269
440 < #define KBYTES 270
441 < #define MBYTES 271
442 < #define GBYTES 272
443 < #define TBYTES 273
444 < #define CALLER_ID_WAIT 274
445 < #define CAN_FLOOD 275
446 < #define CHANNEL 276
447 < #define CIDR_BITLEN_IPV4 277
448 < #define CIDR_BITLEN_IPV6 278
449 < #define CLASS 279
450 < #define CONNECT 280
451 < #define CONNECTFREQ 281
452 < #define DEFAULT_FLOODCOUNT 282
453 < #define DEFAULT_SPLIT_SERVER_COUNT 283
454 < #define DEFAULT_SPLIT_USER_COUNT 284
455 < #define DENY 285
456 < #define DESCRIPTION 286
457 < #define DIE 287
458 < #define DISABLE_AUTH 288
459 < #define DISABLE_FAKE_CHANNELS 289
460 < #define DISABLE_HIDDEN 290
461 < #define DISABLE_LOCAL_CHANNELS 291
462 < #define DISABLE_REMOTE_COMMANDS 292
463 < #define DOTS_IN_IDENT 293
464 < #define DURATION 294
465 < #define EGDPOOL_PATH 295
466 < #define EMAIL 296
467 < #define ENABLE 297
468 < #define ENCRYPTED 298
469 < #define EXCEED_LIMIT 299
470 < #define EXEMPT 300
471 < #define FAILED_OPER_NOTICE 301
472 < #define IRCD_FLAGS 302
473 < #define FLATTEN_LINKS 303
474 < #define GECOS 304
475 < #define GENERAL 305
476 < #define GLINE 306
477 < #define GLINES 307
478 < #define GLINE_EXEMPT 308
479 < #define GLINE_TIME 309
480 < #define GLINE_MIN_CIDR 310
481 < #define GLINE_MIN_CIDR6 311
482 < #define GLOBAL_KILL 312
483 < #define IRCD_AUTH 313
484 < #define NEED_IDENT 314
485 < #define HAVENT_READ_CONF 315
486 < #define HIDDEN 316
487 < #define HIDDEN_NAME 317
488 < #define HIDE_SERVER_IPS 318
489 < #define HIDE_SERVERS 319
490 < #define HIDE_SPOOF_IPS 320
491 < #define HOST 321
492 < #define HUB 322
493 < #define HUB_MASK 323
494 < #define IGNORE_BOGUS_TS 324
495 < #define INVISIBLE_ON_CONNECT 325
496 < #define IP 326
497 < #define KILL 327
498 < #define KILL_CHASE_TIME_LIMIT 328
499 < #define KLINE 329
500 < #define KLINE_EXEMPT 330
501 < #define KLINE_REASON 331
502 < #define KLINE_WITH_REASON 332
503 < #define KNOCK_DELAY 333
504 < #define KNOCK_DELAY_CHANNEL 334
505 < #define LEAF_MASK 335
506 < #define LINKS_DELAY 336
507 < #define LISTEN 337
508 < #define T_LOG 338
509 < #define MAX_ACCEPT 339
510 < #define MAX_BANS 340
511 < #define MAX_CHANS_PER_USER 341
512 < #define MAX_GLOBAL 342
513 < #define MAX_IDENT 343
514 < #define MAX_LOCAL 344
515 < #define MAX_NICK_CHANGES 345
516 < #define MAX_NICK_TIME 346
517 < #define MAX_NUMBER 347
518 < #define MAX_TARGETS 348
519 < #define MAX_WATCH 349
520 < #define MESSAGE_LOCALE 350
521 < #define MIN_NONWILDCARD 351
522 < #define MIN_NONWILDCARD_SIMPLE 352
523 < #define MODULE 353
524 < #define MODULES 354
525 < #define NAME 355
526 < #define NEED_PASSWORD 356
527 < #define NETWORK_DESC 357
528 < #define NETWORK_NAME 358
529 < #define NICK 359
530 < #define NICK_CHANGES 360
531 < #define NO_CREATE_ON_SPLIT 361
532 < #define NO_JOIN_ON_SPLIT 362
533 < #define NO_OPER_FLOOD 363
534 < #define NO_TILDE 364
535 < #define NUMBER 365
536 < #define NUMBER_PER_IDENT 366
537 < #define NUMBER_PER_CIDR 367
538 < #define NUMBER_PER_IP 368
539 < #define NUMBER_PER_IP_GLOBAL 369
540 < #define OPERATOR 370
541 < #define OPERS_BYPASS_CALLERID 371
542 < #define OPER_ONLY_UMODES 372
543 < #define OPER_PASS_RESV 373
544 < #define OPER_SPY_T 374
545 < #define OPER_UMODES 375
546 < #define JOIN_FLOOD_COUNT 376
547 < #define JOIN_FLOOD_TIME 377
548 < #define PACE_WAIT 378
549 < #define PACE_WAIT_SIMPLE 379
550 < #define PASSWORD 380
551 < #define PATH 381
552 < #define PING_COOKIE 382
553 < #define PING_TIME 383
554 < #define PING_WARNING 384
555 < #define PORT 385
556 < #define QSTRING 386
557 < #define QUIET_ON_BAN 387
558 < #define REASON 388
559 < #define REDIRPORT 389
560 < #define REDIRSERV 390
561 < #define REGEX_T 391
562 < #define REHASH 392
563 < #define TREJECT_HOLD_TIME 393
564 < #define REMOTE 394
565 < #define REMOTEBAN 395
566 < #define RESTRICT_CHANNELS 396
567 < #define RESTRICTED 397
568 < #define RSA_PRIVATE_KEY_FILE 398
569 < #define RSA_PUBLIC_KEY_FILE 399
570 < #define SSL_CERTIFICATE_FILE 400
571 < #define T_SSL_CONNECTION_METHOD 401
572 < #define T_SSLV3 402
573 < #define T_TLSV1 403
574 < #define RESV 404
575 < #define RESV_EXEMPT 405
576 < #define SECONDS 406
577 < #define MINUTES 407
578 < #define HOURS 408
579 < #define DAYS 409
580 < #define WEEKS 410
581 < #define SENDQ 411
582 < #define SEND_PASSWORD 412
583 < #define SERVERHIDE 413
584 < #define SERVERINFO 414
585 < #define IRCD_SID 415
586 < #define TKLINE_EXPIRE_NOTICES 416
587 < #define T_SHARED 417
588 < #define T_CLUSTER 418
589 < #define TYPE 419
590 < #define SHORT_MOTD 420
591 < #define SILENT 421
592 < #define SPOOF 422
593 < #define SPOOF_NOTICE 423
594 < #define STATS_E_DISABLED 424
595 < #define STATS_I_OPER_ONLY 425
596 < #define STATS_K_OPER_ONLY 426
597 < #define STATS_O_OPER_ONLY 427
598 < #define STATS_P_OPER_ONLY 428
599 < #define TBOOL 429
600 < #define TMASKED 430
601 < #define T_REJECT 431
602 < #define TS_MAX_DELTA 432
603 < #define TS_WARN_DELTA 433
604 < #define TWODOTS 434
605 < #define T_ALL 435
606 < #define T_BOTS 436
607 < #define T_SOFTCALLERID 437
608 < #define T_CALLERID 438
609 < #define T_CCONN 439
610 < #define T_CCONN_FULL 440
611 < #define T_CLIENT_FLOOD 441
612 < #define T_DEAF 442
613 < #define T_DEBUG 443
614 < #define T_DLINE 444
615 < #define T_DRONE 445
616 < #define T_EXTERNAL 446
617 < #define T_FULL 447
618 < #define T_INVISIBLE 448
619 < #define T_IPV4 449
620 < #define T_IPV6 450
621 < #define T_LOCOPS 451
622 < #define T_MAX_CLIENTS 452
623 < #define T_NCHANGE 453
624 < #define T_OPERWALL 454
625 < #define T_REJ 455
626 < #define T_SERVER 456
627 < #define T_SERVNOTICE 457
628 < #define T_SKILL 458
629 < #define T_SPY 459
630 < #define T_SSL 460
631 < #define T_UMODES 461
632 < #define T_UNAUTH 462
633 < #define T_UNDLINE 463
634 < #define T_UNLIMITED 464
635 < #define T_UNRESV 465
636 < #define T_UNXLINE 466
637 < #define T_GLOBOPS 467
638 < #define T_WALLOP 468
639 < #define T_RESTART 469
656 < #define T_SERVICE 470
657 < #define T_SERVICES_NAME 471
658 < #define T_TIMESTAMP 472
659 < #define THROTTLE_TIME 473
660 < #define TOPICBURST 474
661 < #define TRUE_NO_OPER_FLOOD 475
662 < #define TKLINE 476
663 < #define TXLINE 477
664 < #define TRESV 478
665 < #define UNKLINE 479
666 < #define USER 480
667 < #define USE_EGD 481
668 < #define USE_EXCEPT 482
669 < #define USE_INVEX 483
670 < #define USE_KNOCK 484
671 < #define USE_LOGGING 485
672 < #define USE_WHOIS_ACTUALLY 486
673 < #define VHOST 487
674 < #define VHOST6 488
675 < #define XLINE 489
676 < #define WARN 490
677 < #define WARN_NO_NLINE 491
678 < #define T_SIZE 492
679 < #define T_FILE 493
680 <
429 > #define ADMIN 259
430 > #define AFTYPE 260
431 > #define ANTI_NICK_FLOOD 261
432 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
433 > #define AUTOCONN 263
434 > #define BYTES 264
435 > #define KBYTES 265
436 > #define MBYTES 266
437 > #define CALLER_ID_WAIT 267
438 > #define CAN_FLOOD 268
439 > #define CHANNEL 269
440 > #define CIDR_BITLEN_IPV4 270
441 > #define CIDR_BITLEN_IPV6 271
442 > #define CLASS 272
443 > #define CONNECT 273
444 > #define CONNECTFREQ 274
445 > #define DEFAULT_FLOODCOUNT 275
446 > #define DEFAULT_SPLIT_SERVER_COUNT 276
447 > #define DEFAULT_SPLIT_USER_COUNT 277
448 > #define DENY 278
449 > #define DESCRIPTION 279
450 > #define DIE 280
451 > #define DISABLE_AUTH 281
452 > #define DISABLE_FAKE_CHANNELS 282
453 > #define DISABLE_REMOTE_COMMANDS 283
454 > #define DOTS_IN_IDENT 284
455 > #define EGDPOOL_PATH 285
456 > #define EMAIL 286
457 > #define ENCRYPTED 287
458 > #define EXCEED_LIMIT 288
459 > #define EXEMPT 289
460 > #define FAILED_OPER_NOTICE 290
461 > #define IRCD_FLAGS 291
462 > #define FLATTEN_LINKS 292
463 > #define GECOS 293
464 > #define GENERAL 294
465 > #define GLINE 295
466 > #define GLINE_DURATION 296
467 > #define GLINE_ENABLE 297
468 > #define GLINE_EXEMPT 298
469 > #define GLINE_REQUEST_DURATION 299
470 > #define GLINE_MIN_CIDR 300
471 > #define GLINE_MIN_CIDR6 301
472 > #define GLOBAL_KILL 302
473 > #define IRCD_AUTH 303
474 > #define NEED_IDENT 304
475 > #define HAVENT_READ_CONF 305
476 > #define HIDDEN 306
477 > #define HIDDEN_NAME 307
478 > #define HIDE_SERVER_IPS 308
479 > #define HIDE_SERVERS 309
480 > #define HIDE_SPOOF_IPS 310
481 > #define HOST 311
482 > #define HUB 312
483 > #define HUB_MASK 313
484 > #define IGNORE_BOGUS_TS 314
485 > #define INVISIBLE_ON_CONNECT 315
486 > #define IP 316
487 > #define KILL 317
488 > #define KILL_CHASE_TIME_LIMIT 318
489 > #define KLINE 319
490 > #define KLINE_EXEMPT 320
491 > #define KNOCK_DELAY 321
492 > #define KNOCK_DELAY_CHANNEL 322
493 > #define LEAF_MASK 323
494 > #define LINKS_DELAY 324
495 > #define LISTEN 325
496 > #define T_LOG 326
497 > #define MAX_ACCEPT 327
498 > #define MAX_BANS 328
499 > #define MAX_CHANS_PER_OPER 329
500 > #define MAX_CHANS_PER_USER 330
501 > #define MAX_GLOBAL 331
502 > #define MAX_IDENT 332
503 > #define MAX_LOCAL 333
504 > #define MAX_NICK_CHANGES 334
505 > #define MAX_NICK_TIME 335
506 > #define MAX_NUMBER 336
507 > #define MAX_TARGETS 337
508 > #define MAX_WATCH 338
509 > #define MESSAGE_LOCALE 339
510 > #define MIN_NONWILDCARD 340
511 > #define MIN_NONWILDCARD_SIMPLE 341
512 > #define MODULE 342
513 > #define MODULES 343
514 > #define NAME 344
515 > #define NEED_PASSWORD 345
516 > #define NETWORK_DESC 346
517 > #define NETWORK_NAME 347
518 > #define NICK 348
519 > #define NICK_CHANGES 349
520 > #define NO_CREATE_ON_SPLIT 350
521 > #define NO_JOIN_ON_SPLIT 351
522 > #define NO_OPER_FLOOD 352
523 > #define NO_TILDE 353
524 > #define NUMBER 354
525 > #define NUMBER_PER_CIDR 355
526 > #define NUMBER_PER_IP 356
527 > #define OPERATOR 357
528 > #define OPERS_BYPASS_CALLERID 358
529 > #define OPER_ONLY_UMODES 359
530 > #define OPER_PASS_RESV 360
531 > #define OPER_SPY_T 361
532 > #define OPER_UMODES 362
533 > #define JOIN_FLOOD_COUNT 363
534 > #define JOIN_FLOOD_TIME 364
535 > #define PACE_WAIT 365
536 > #define PACE_WAIT_SIMPLE 366
537 > #define PASSWORD 367
538 > #define PATH 368
539 > #define PING_COOKIE 369
540 > #define PING_TIME 370
541 > #define PORT 371
542 > #define QSTRING 372
543 > #define QUIET_ON_BAN 373
544 > #define REASON 374
545 > #define REDIRPORT 375
546 > #define REDIRSERV 376
547 > #define REGEX_T 377
548 > #define REHASH 378
549 > #define REMOTE 379
550 > #define REMOTEBAN 380
551 > #define RESTRICT_CHANNELS 381
552 > #define RSA_PRIVATE_KEY_FILE 382
553 > #define RSA_PUBLIC_KEY_FILE 383
554 > #define SSL_CERTIFICATE_FILE 384
555 > #define SSL_DH_PARAM_FILE 385
556 > #define T_SSL_CLIENT_METHOD 386
557 > #define T_SSL_SERVER_METHOD 387
558 > #define T_SSLV3 388
559 > #define T_TLSV1 389
560 > #define RESV 390
561 > #define RESV_EXEMPT 391
562 > #define SECONDS 392
563 > #define MINUTES 393
564 > #define HOURS 394
565 > #define DAYS 395
566 > #define WEEKS 396
567 > #define SENDQ 397
568 > #define SEND_PASSWORD 398
569 > #define SERVERHIDE 399
570 > #define SERVERINFO 400
571 > #define IRCD_SID 401
572 > #define TKLINE_EXPIRE_NOTICES 402
573 > #define T_SHARED 403
574 > #define T_CLUSTER 404
575 > #define TYPE 405
576 > #define SHORT_MOTD 406
577 > #define SPOOF 407
578 > #define SPOOF_NOTICE 408
579 > #define STATS_E_DISABLED 409
580 > #define STATS_I_OPER_ONLY 410
581 > #define STATS_K_OPER_ONLY 411
582 > #define STATS_O_OPER_ONLY 412
583 > #define STATS_P_OPER_ONLY 413
584 > #define TBOOL 414
585 > #define TMASKED 415
586 > #define TS_MAX_DELTA 416
587 > #define TS_WARN_DELTA 417
588 > #define TWODOTS 418
589 > #define T_ALL 419
590 > #define T_BOTS 420
591 > #define T_SOFTCALLERID 421
592 > #define T_CALLERID 422
593 > #define T_CCONN 423
594 > #define T_CCONN_FULL 424
595 > #define T_SSL_CIPHER_LIST 425
596 > #define T_DEAF 426
597 > #define T_DEBUG 427
598 > #define T_DLINE 428
599 > #define T_EXTERNAL 429
600 > #define T_FULL 430
601 > #define T_INVISIBLE 431
602 > #define T_IPV4 432
603 > #define T_IPV6 433
604 > #define T_LOCOPS 434
605 > #define T_MAX_CLIENTS 435
606 > #define T_NCHANGE 436
607 > #define T_OPERWALL 437
608 > #define T_RECVQ 438
609 > #define T_REJ 439
610 > #define T_SERVER 440
611 > #define T_SERVNOTICE 441
612 > #define T_SET 442
613 > #define T_SKILL 443
614 > #define T_SPY 444
615 > #define T_SSL 445
616 > #define T_UMODES 446
617 > #define T_UNAUTH 447
618 > #define T_UNDLINE 448
619 > #define T_UNLIMITED 449
620 > #define T_UNRESV 450
621 > #define T_UNXLINE 451
622 > #define T_GLOBOPS 452
623 > #define T_WALLOP 453
624 > #define T_WEBIRC 454
625 > #define T_RESTART 455
626 > #define T_SERVICE 456
627 > #define T_SERVICES_NAME 457
628 > #define THROTTLE_TIME 458
629 > #define TRUE_NO_OPER_FLOOD 459
630 > #define UNKLINE 460
631 > #define USER 461
632 > #define USE_EGD 462
633 > #define USE_LOGGING 463
634 > #define VHOST 464
635 > #define VHOST6 465
636 > #define XLINE 466
637 > #define WARN_NO_NLINE 467
638 > #define T_SIZE 468
639 > #define T_FILE 469
640  
641  
642  
643   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
644   typedef union YYSTYPE
645   {
646 <
647 < /* Line 293 of yacc.c  */
689 < #line 132 "ircd_parser.y"
646 > /* Line 387 of yacc.c  */
647 > #line 135 "conf_parser.y"
648  
649    int number;
650    char *string;
651  
652  
653 <
654 < /* Line 293 of yacc.c  */
697 < #line 698 "ircd_parser.c"
653 > /* Line 387 of yacc.c  */
654 > #line 655 "conf_parser.c"
655   } YYSTYPE;
656   # define YYSTYPE_IS_TRIVIAL 1
657   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
658   # define YYSTYPE_IS_DECLARED 1
659   #endif
660  
661 + extern YYSTYPE yylval;
662  
663 < /* Copy the second part of user declarations.  */
663 > #ifdef YYPARSE_PARAM
664 > #if defined __STDC__ || defined __cplusplus
665 > int yyparse (void *YYPARSE_PARAM);
666 > #else
667 > int yyparse ();
668 > #endif
669 > #else /* ! YYPARSE_PARAM */
670 > #if defined __STDC__ || defined __cplusplus
671 > int yyparse (void);
672 > #else
673 > int yyparse ();
674 > #endif
675 > #endif /* ! YYPARSE_PARAM */
676  
677 + #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
678  
679 < /* Line 343 of yacc.c  */
680 < #line 710 "ircd_parser.c"
679 > /* Copy the second part of user declarations.  */
680 >
681 > /* Line 390 of yacc.c  */
682 > #line 683 "conf_parser.c"
683  
684   #ifdef short
685   # undef short
# Line 759 | Line 732 | typedef short int yytype_int16;
732   # if defined YYENABLE_NLS && YYENABLE_NLS
733   #  if ENABLE_NLS
734   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
735 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
735 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
736   #  endif
737   # endif
738   # ifndef YY_
739 < #  define YY_(msgid) msgid
739 > #  define YY_(Msgid) Msgid
740   # endif
741   #endif
742  
743   /* Suppress unused-variable warnings by "using" E.  */
744   #if ! defined lint || defined __GNUC__
745 < # define YYUSE(e) ((void) (e))
745 > # define YYUSE(E) ((void) (E))
746   #else
747 < # define YYUSE(e) /* empty */
747 > # define YYUSE(E) /* empty */
748   #endif
749  
750   /* Identity function, used to suppress warnings about constant conditions.  */
751   #ifndef lint
752 < # define YYID(n) (n)
752 > # define YYID(N) (N)
753   #else
754   #if (defined __STDC__ || defined __C99__FUNC__ \
755       || defined __cplusplus || defined _MSC_VER)
# Line 812 | Line 785 | YYID (yyi)
785   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
786       || defined __cplusplus || defined _MSC_VER)
787   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
788 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
789   #     ifndef EXIT_SUCCESS
790   #      define EXIT_SUCCESS 0
791   #     endif
# Line 903 | Line 877 | union yyalloc
877   #endif
878  
879   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
880 < /* Copy COUNT objects from FROM to TO.  The source and destination do
880 > /* Copy COUNT objects from SRC to DST.  The source and destination do
881     not overlap.  */
882   # ifndef YYCOPY
883   #  if defined __GNUC__ && 1 < __GNUC__
884 < #   define YYCOPY(To, From, Count) \
885 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
884 > #   define YYCOPY(Dst, Src, Count) \
885 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
886   #  else
887 < #   define YYCOPY(To, From, Count)              \
888 <      do                                        \
889 <        {                                       \
890 <          YYSIZE_T yyi;                         \
891 <          for (yyi = 0; yyi < (Count); yyi++)   \
892 <            (To)[yyi] = (From)[yyi];            \
893 <        }                                       \
887 > #   define YYCOPY(Dst, Src, Count)              \
888 >      do                                        \
889 >        {                                       \
890 >          YYSIZE_T yyi;                         \
891 >          for (yyi = 0; yyi < (Count); yyi++)   \
892 >            (Dst)[yyi] = (Src)[yyi];            \
893 >        }                                       \
894        while (YYID (0))
895   #  endif
896   # endif
# Line 925 | Line 899 | union yyalloc
899   /* YYFINAL -- State number of the termination state.  */
900   #define YYFINAL  2
901   /* YYLAST -- Last index in YYTABLE.  */
902 < #define YYLAST   1354
902 > #define YYLAST   1132
903  
904   /* YYNTOKENS -- Number of terminals.  */
905 < #define YYNTOKENS  244
905 > #define YYNTOKENS  220
906   /* YYNNTS -- Number of nonterminals.  */
907 < #define YYNNTS  301
907 > #define YYNNTS  282
908   /* YYNRULES -- Number of rules.  */
909 < #define YYNRULES  659
909 > #define YYNRULES  626
910   /* YYNRULES -- Number of states.  */
911 < #define YYNSTATES  1292
911 > #define YYNSTATES  1224
912  
913   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
914   #define YYUNDEFTOK  2
915 < #define YYMAXUTOK   493
915 > #define YYMAXUTOK   469
916  
917   #define YYTRANSLATE(YYX)                                                \
918    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 950 | Line 924 | static const yytype_uint8 yytranslate[]
924         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
925         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
926         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
927 <       2,     2,     2,     2,   243,     2,     2,     2,     2,     2,
928 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   239,
929 <       2,   242,     2,     2,     2,     2,     2,     2,     2,     2,
927 >       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
928 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
929 >       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
930         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
931         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
932         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
933         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935 <       2,     2,     2,   241,     2,   240,     2,     2,     2,     2,
935 >       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
938         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 992 | Line 966 | static const yytype_uint8 yytranslate[]
966       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
967       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
968       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
969 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
996 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
997 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
998 <     235,   236,   237,   238
969 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
970   };
971  
972   #if YYDEBUG
# Line 1005 | Line 976 | static const yytype_uint16 yyprhs[] =
976   {
977         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
978        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
979 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
980 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
981 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
982 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 <     154,   156,   158,   160,   162,   165,   166,   172,   176,   178,
984 <     180,   182,   187,   192,   197,   202,   207,   212,   217,   222,
985 <     227,   232,   237,   243,   246,   248,   250,   252,   254,   257,
986 <     262,   267,   272,   278,   281,   283,   285,   287,   289,   292,
987 <     297,   302,   303,   310,   313,   315,   317,   319,   321,   324,
988 <     329,   334,   339,   340,   346,   350,   352,   354,   356,   358,
989 <     360,   362,   364,   366,   367,   374,   377,   379,   381,   383,
990 <     385,   387,   389,   391,   393,   395,   398,   403,   408,   413,
991 <     418,   423,   428,   429,   435,   439,   441,   443,   445,   447,
992 <     449,   451,   453,   455,   457,   459,   461,   463,   465,   467,
993 <     469,   471,   473,   475,   477,   479,   481,   482,   488,   492,
994 <     494,   496,   498,   500,   502,   504,   506,   508,   510,   512,
995 <     514,   516,   518,   520,   522,   524,   526,   528,   530,   531,
996 <     538,   541,   543,   545,   547,   549,   551,   553,   555,   557,
997 <     559,   561,   563,   565,   567,   569,   572,   577,   582,   587,
998 <     592,   597,   602,   607,   612,   617,   622,   627,   632,   637,
999 <     638,   645,   646,   652,   656,   658,   660,   662,   664,   667,
1000 <     669,   671,   673,   675,   677,   680,   681,   687,   691,   693,
1001 <     695,   699,   704,   709,   710,   717,   720,   722,   724,   726,
1002 <     728,   730,   732,   734,   736,   738,   741,   746,   751,   756,
1003 <     761,   762,   768,   772,   774,   776,   778,   780,   782,   784,
1004 <     786,   788,   790,   792,   797,   802,   807,   808,   815,   818,
1005 <     820,   822,   824,   826,   829,   834,   839,   844,   850,   853,
1006 <     855,   857,   859,   864,   865,   872,   875,   877,   879,   881,
1007 <     883,   886,   891,   896,   897,   903,   907,   909,   911,   913,
1008 <     915,   917,   919,   921,   923,   925,   927,   929,   930,   937,
1009 <     940,   942,   944,   946,   949,   954,   955,   961,   965,   967,
1010 <     969,   971,   973,   975,   977,   979,   981,   983,   985,   987,
1011 <     988,   995,   998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,
1012 <    1014,  1016,  1018,  1020,  1022,  1024,  1027,  1032,  1037,  1042,
1013 <    1047,  1052,  1057,  1062,  1067,  1068,  1074,  1078,  1080,  1082,
1014 <    1084,  1086,  1088,  1093,  1098,  1103,  1108,  1109,  1116,  1117,
1015 <    1123,  1127,  1129,  1131,  1134,  1136,  1138,  1140,  1142,  1144,
1016 <    1149,  1154,  1155,  1162,  1165,  1167,  1169,  1171,  1173,  1178,
1017 <    1183,  1189,  1192,  1194,  1196,  1198,  1203,  1204,  1211,  1212,
1018 <    1218,  1222,  1224,  1226,  1229,  1231,  1233,  1235,  1237,  1239,
1019 <    1244,  1249,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1270,
1020 <    1272,  1274,  1276,  1278,  1280,  1282,  1284,  1286,  1288,  1290,
1021 <    1292,  1294,  1296,  1298,  1300,  1302,  1304,  1306,  1308,  1310,
1022 <    1312,  1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,
1023 <    1332,  1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,
1024 <    1352,  1354,  1356,  1358,  1360,  1362,  1364,  1369,  1374,  1379,
1025 <    1384,  1389,  1394,  1399,  1404,  1409,  1414,  1419,  1424,  1429,
1026 <    1434,  1439,  1444,  1449,  1454,  1459,  1464,  1469,  1474,  1479,
1027 <    1484,  1489,  1494,  1499,  1504,  1509,  1514,  1519,  1524,  1529,
1028 <    1534,  1539,  1544,  1549,  1554,  1559,  1564,  1569,  1574,  1579,
1029 <    1584,  1589,  1594,  1599,  1600,  1606,  1610,  1612,  1614,  1616,
1030 <    1618,  1620,  1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,
1031 <    1638,  1640,  1642,  1644,  1646,  1648,  1650,  1652,  1653,  1659,
1032 <    1663,  1665,  1667,  1669,  1671,  1673,  1675,  1677,  1679,  1681,
1033 <    1683,  1685,  1687,  1689,  1691,  1693,  1695,  1697,  1699,  1701,
1034 <    1703,  1705,  1710,  1715,  1720,  1725,  1726,  1733,  1736,  1738,
1035 <    1740,  1742,  1744,  1746,  1748,  1750,  1752,  1757,  1762,  1763,
1036 <    1769,  1773,  1775,  1777,  1779,  1784,  1789,  1790,  1796,  1800,
1037 <    1802,  1804,  1806,  1812,  1815,  1817,  1819,  1821,  1823,  1825,
1038 <    1827,  1829,  1831,  1833,  1835,  1837,  1839,  1841,  1843,  1845,
1039 <    1847,  1849,  1851,  1853,  1855,  1860,  1865,  1870,  1875,  1880,
1069 <    1885,  1890,  1895,  1900,  1905,  1910,  1915,  1920,  1925,  1930,
1070 <    1935,  1940,  1945,  1951,  1954,  1956,  1958,  1960,  1962,  1964,
1071 <    1966,  1968,  1970,  1972,  1977,  1982,  1987,  1992,  1997,  2002
979 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
980 >      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
981 >      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
982 >     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
984 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
985 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
986 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
987 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
988 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
989 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
990 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
991 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
992 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
993 >     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
994 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
995 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
996 >     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
997 >     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
998 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
999 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1000 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1001 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1002 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1003 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1004 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1005 >     814,   816,   821,   826,   831,   832,   839,   842,   844,   846,
1006 >     848,   850,   853,   858,   863,   868,   874,   877,   879,   881,
1007 >     883,   888,   889,   896,   899,   901,   903,   905,   907,   910,
1008 >     915,   920,   921,   927,   931,   933,   935,   937,   939,   941,
1009 >     943,   945,   947,   949,   951,   953,   954,   961,   964,   966,
1010 >     968,   970,   973,   978,   979,   985,   989,   991,   993,   995,
1011 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1011,  1012,  1019,
1012 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1013 >    1042,  1044,  1046,  1048,  1050,  1053,  1058,  1063,  1068,  1073,
1014 >    1078,  1083,  1088,  1093,  1094,  1100,  1104,  1106,  1108,  1110,
1015 >    1115,  1120,  1125,  1130,  1135,  1136,  1143,  1144,  1150,  1154,
1016 >    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1176,  1181,
1017 >    1182,  1189,  1192,  1194,  1196,  1198,  1200,  1205,  1210,  1216,
1018 >    1219,  1221,  1223,  1225,  1230,  1231,  1238,  1239,  1245,  1249,
1019 >    1251,  1253,  1256,  1258,  1260,  1262,  1264,  1266,  1271,  1276,
1020 >    1282,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1021 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1022 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1023 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1024 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1025 >    1383,  1385,  1387,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1026 >    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1027 >    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1028 >    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1029 >    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1618,
1030 >    1624,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1031 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1032 >    1666,  1668,  1670,  1671,  1677,  1681,  1683,  1685,  1687,  1689,
1033 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1034 >    1711,  1713,  1715,  1717,  1719,  1721,  1723,  1728,  1733,  1738,
1035 >    1744,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1036 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1779,  1784,  1789,
1037 >    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1038 >    1844,  1849,  1855,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1039 >    1872,  1874,  1879,  1884,  1889,  1894,  1899
1040   };
1041  
1042   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1043   static const yytype_int16 yyrhs[] =
1044   {
1045 <     245,     0,    -1,    -1,   245,   246,    -1,   274,    -1,   280,
1046 <      -1,   295,    -1,   514,    -1,   313,    -1,   330,    -1,   344,
1047 <      -1,   256,    -1,   535,    -1,   359,    -1,   366,    -1,   370,
1048 <      -1,   380,    -1,   389,    -1,   408,    -1,   418,    -1,   424,
1049 <      -1,   438,    -1,   498,    -1,   428,    -1,   251,    -1,     1,
1050 <     239,    -1,     1,   240,    -1,    -1,   248,    -1,   110,   247,
1051 <      -1,   110,   151,   247,    -1,   110,   152,   247,    -1,   110,
1052 <     153,   247,    -1,   110,   154,   247,    -1,   110,   155,   247,
1053 <      -1,    -1,   250,    -1,   110,   249,    -1,   110,    14,   249,
1054 <      -1,   110,    15,   249,    -1,   110,    16,   249,    -1,    99,
1055 <     241,   252,   240,   239,    -1,   252,   253,    -1,   253,    -1,
1056 <     254,    -1,   255,    -1,     1,   239,    -1,    98,   242,   131,
1057 <     239,    -1,   126,   242,   131,   239,    -1,   159,   241,   257,
1058 <     240,   239,    -1,   257,   258,    -1,   258,    -1,   265,    -1,
1059 <     270,    -1,   273,    -1,   267,    -1,   268,    -1,   269,    -1,
1060 <     272,    -1,   264,    -1,   271,    -1,   266,    -1,   263,    -1,
1061 <     259,    -1,     1,   239,    -1,    -1,   146,   260,   242,   261,
1062 <     239,    -1,   261,   243,   262,    -1,   262,    -1,   147,    -1,
1063 <     148,    -1,   145,   242,   131,   239,    -1,   143,   242,   131,
1064 <     239,    -1,   100,   242,   131,   239,    -1,   160,   242,   131,
1065 <     239,    -1,    31,   242,   131,   239,    -1,   103,   242,   131,
1066 <     239,    -1,   102,   242,   131,   239,    -1,   232,   242,   131,
1067 <     239,    -1,   233,   242,   131,   239,    -1,   197,   242,   110,
1068 <     239,    -1,    67,   242,   174,   239,    -1,     5,   241,   275,
1069 <     240,   239,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1070 <     279,    -1,   278,    -1,     1,   239,    -1,   100,   242,   131,
1071 <     239,    -1,    41,   242,   131,   239,    -1,    31,   242,   131,
1072 <     239,    -1,    83,   241,   281,   240,   239,    -1,   281,   282,
1073 <      -1,   282,    -1,   283,    -1,   284,    -1,   285,    -1,     1,
1074 <     239,    -1,   230,   242,   174,   239,    -1,   217,   242,   174,
1075 <     239,    -1,    -1,   286,   238,   241,   287,   240,   239,    -1,
1076 <     287,   288,    -1,   288,    -1,   289,    -1,   291,    -1,   290,
1077 <      -1,     1,   239,    -1,   100,   242,   131,   239,    -1,   237,
1078 <     242,   250,   239,    -1,   237,   242,   209,   239,    -1,    -1,
1079 <     164,   292,   242,   293,   239,    -1,   293,   243,   294,    -1,
1080 <     294,    -1,   225,    -1,   115,    -1,    51,    -1,   189,    -1,
1081 <      74,    -1,    72,    -1,   188,    -1,    -1,   115,   296,   241,
1082 <     297,   240,   239,    -1,   297,   298,    -1,   298,    -1,   299,
1083 <      -1,   300,    -1,   301,    -1,   305,    -1,   304,    -1,   302,
1084 <      -1,   303,    -1,   309,    -1,     1,   239,    -1,   100,   242,
1085 <     131,   239,    -1,   225,   242,   131,   239,    -1,   125,   242,
1086 <     131,   239,    -1,    43,   242,   174,   239,    -1,   144,   242,
1087 <     131,   239,    -1,    24,   242,   131,   239,    -1,    -1,   206,
1088 <     306,   242,   307,   239,    -1,   307,   243,   308,    -1,   308,
1089 <      -1,   181,    -1,   184,    -1,   185,    -1,   187,    -1,   188,
1090 <      -1,   192,    -1,    61,    -1,   203,    -1,   198,    -1,   200,
1091 <      -1,   207,    -1,   204,    -1,   191,    -1,   199,    -1,   202,
1092 <      -1,   193,    -1,   213,    -1,   182,    -1,   183,    -1,   196,
1093 <      -1,    -1,    47,   310,   242,   311,   239,    -1,   311,   243,
1094 <     312,    -1,   312,    -1,    57,    -1,   139,    -1,    74,    -1,
1095 <     224,    -1,   189,    -1,   208,    -1,   234,    -1,    51,    -1,
1096 <      32,    -1,   214,    -1,   137,    -1,     5,    -1,   105,    -1,
1097 <     199,    -1,   212,    -1,   119,    -1,   140,    -1,    98,    -1,
1098 <      -1,    24,   314,   241,   315,   240,   239,    -1,   315,   316,
1099 <      -1,   316,    -1,   317,    -1,   327,    -1,   328,    -1,   318,
1100 <      -1,   319,    -1,   329,    -1,   320,    -1,   321,    -1,   322,
1101 <      -1,   323,    -1,   324,    -1,   325,    -1,   326,    -1,     1,
1102 <     239,    -1,   100,   242,   131,   239,    -1,   128,   242,   248,
1103 <     239,    -1,   129,   242,   248,   239,    -1,   113,   242,   110,
1104 <     239,    -1,    26,   242,   248,   239,    -1,    92,   242,   110,
1105 <     239,    -1,    87,   242,   110,   239,    -1,    89,   242,   110,
1106 <     239,    -1,    88,   242,   110,   239,    -1,   156,   242,   250,
1107 <     239,    -1,    22,   242,   110,   239,    -1,    23,   242,   110,
1108 <     239,    -1,   112,   242,   110,   239,    -1,    -1,    82,   331,
1109 <     241,   336,   240,   239,    -1,    -1,    47,   333,   242,   334,
1110 <     239,    -1,   334,   243,   335,    -1,   335,    -1,   205,    -1,
1111 <      61,    -1,   201,    -1,   336,   337,    -1,   337,    -1,   338,
1112 <      -1,   332,    -1,   342,    -1,   343,    -1,     1,   239,    -1,
1113 <      -1,   130,   242,   340,   339,   239,    -1,   340,   243,   341,
1114 <      -1,   341,    -1,   110,    -1,   110,   179,   110,    -1,    71,
1115 <     242,   131,   239,    -1,    66,   242,   131,   239,    -1,    -1,
1116 <      58,   345,   241,   346,   240,   239,    -1,   346,   347,    -1,
1117 <     347,    -1,   348,    -1,   349,    -1,   350,    -1,   352,    -1,
1118 <     356,    -1,   357,    -1,   358,    -1,   351,    -1,     1,   239,
1119 <      -1,   225,   242,   131,   239,    -1,   125,   242,   131,   239,
1120 <      -1,    24,   242,   131,   239,    -1,    43,   242,   174,   239,
1121 <      -1,    -1,    47,   353,   242,   354,   239,    -1,   354,   243,
1122 <     355,    -1,   355,    -1,   168,    -1,    44,    -1,    75,    -1,
1123 <      59,    -1,    20,    -1,   109,    -1,    53,    -1,   150,    -1,
1124 <     101,    -1,   167,   242,   131,   239,    -1,   135,   242,   131,
1125 <     239,    -1,   134,   242,   110,   239,    -1,    -1,   149,   360,
1126 <     241,   361,   240,   239,    -1,   361,   362,    -1,   362,    -1,
1127 <     363,    -1,   364,    -1,   365,    -1,     1,   239,    -1,   133,
1128 <     242,   131,   239,    -1,    21,   242,   131,   239,    -1,   104,
1129 <     242,   131,   239,    -1,   215,   241,   367,   240,   239,    -1,
1130 <     367,   368,    -1,   368,    -1,   369,    -1,     1,    -1,   100,
1131 <     242,   131,   239,    -1,    -1,   162,   371,   241,   372,   240,
1132 <     239,    -1,   372,   373,    -1,   373,    -1,   374,    -1,   375,
1133 <      -1,   376,    -1,     1,   239,    -1,   100,   242,   131,   239,
1134 <      -1,   225,   242,   131,   239,    -1,    -1,   164,   377,   242,
1135 <     378,   239,    -1,   378,   243,   379,    -1,   379,    -1,    74,
1136 <      -1,   224,    -1,   189,    -1,   208,    -1,   234,    -1,   211,
1137 <      -1,   149,    -1,   210,    -1,   196,    -1,   180,    -1,    -1,
1138 <     163,   381,   241,   382,   240,   239,    -1,   382,   383,    -1,
1139 <     383,    -1,   384,    -1,   385,    -1,     1,   239,    -1,   100,
1140 <     242,   131,   239,    -1,    -1,   164,   386,   242,   387,   239,
1141 <      -1,   387,   243,   388,    -1,   388,    -1,    74,    -1,   224,
1142 <      -1,   189,    -1,   208,    -1,   234,    -1,   211,    -1,   149,
1143 <      -1,   210,    -1,   196,    -1,   180,    -1,    -1,    25,   390,
1144 <     241,   391,   240,   239,    -1,   391,   392,    -1,   392,    -1,
1145 <     393,    -1,   394,    -1,   395,    -1,   396,    -1,   397,    -1,
1146 <     399,    -1,   398,    -1,   400,    -1,   405,    -1,   406,    -1,
1147 <     407,    -1,   404,    -1,     1,   239,    -1,   100,   242,   131,
1148 <     239,    -1,    66,   242,   131,   239,    -1,   232,   242,   131,
1149 <     239,    -1,   157,   242,   131,   239,    -1,     3,   242,   131,
1150 <     239,    -1,   130,   242,   110,   239,    -1,     6,   242,   194,
1151 <     239,    -1,     6,   242,   195,   239,    -1,    -1,    47,   401,
1152 <     242,   402,   239,    -1,   402,   243,   403,    -1,   403,    -1,
1153 <      10,    -1,    12,    -1,   219,    -1,   205,    -1,    43,   242,
1154 <     174,   239,    -1,    68,   242,   131,   239,    -1,    80,   242,
1155 <     131,   239,    -1,    24,   242,   131,   239,    -1,    -1,    72,
1156 <     409,   241,   414,   240,   239,    -1,    -1,   164,   411,   242,
1157 <     412,   239,    -1,   412,   243,   413,    -1,   413,    -1,   136,
1158 <      -1,   414,   415,    -1,   415,    -1,   416,    -1,   417,    -1,
1159 <     410,    -1,     1,    -1,   225,   242,   131,   239,    -1,   133,
1160 <     242,   131,   239,    -1,    -1,    30,   419,   241,   420,   240,
1161 <     239,    -1,   420,   421,    -1,   421,    -1,   422,    -1,   423,
1162 <      -1,     1,    -1,    71,   242,   131,   239,    -1,   133,   242,
1163 <     131,   239,    -1,    45,   241,   425,   240,   239,    -1,   425,
1164 <     426,    -1,   426,    -1,   427,    -1,     1,    -1,    71,   242,
1165 <     131,   239,    -1,    -1,    49,   429,   241,   434,   240,   239,
1166 <      -1,    -1,   164,   431,   242,   432,   239,    -1,   432,   243,
1167 <     433,    -1,   433,    -1,   136,    -1,   434,   435,    -1,   435,
1168 <      -1,   436,    -1,   437,    -1,   430,    -1,     1,    -1,   100,
1169 <     242,   131,   239,    -1,   133,   242,   131,   239,    -1,    50,
1170 <     241,   439,   240,   239,    -1,   439,   440,    -1,   440,    -1,
1171 <     448,    -1,   449,    -1,   451,    -1,   452,    -1,   453,    -1,
1172 <     454,    -1,   455,    -1,   456,    -1,   457,    -1,   458,    -1,
1173 <     447,    -1,   460,    -1,   461,    -1,   462,    -1,   463,    -1,
1174 <     478,    -1,   465,    -1,   467,    -1,   469,    -1,   468,    -1,
1175 <     472,    -1,   466,    -1,   473,    -1,   474,    -1,   475,    -1,
1176 <     476,    -1,   477,    -1,   490,    -1,   479,    -1,   480,    -1,
1177 <     481,    -1,   486,    -1,   470,    -1,   471,    -1,   496,    -1,
1178 <     494,    -1,   495,    -1,   450,    -1,   497,    -1,   485,    -1,
1179 <     459,    -1,   483,    -1,   484,    -1,   446,    -1,   442,    -1,
1180 <     443,    -1,   444,    -1,   445,    -1,   464,    -1,   441,    -1,
1181 <     482,    -1,     1,    -1,    94,   242,   110,   239,    -1,    55,
1182 <     242,   110,   239,    -1,    56,   242,   110,   239,    -1,   231,
1183 <     242,   174,   239,    -1,   138,   242,   248,   239,    -1,   161,
1184 <     242,   174,   239,    -1,    73,   242,   248,   239,    -1,    65,
1185 <     242,   174,   239,    -1,    69,   242,   174,   239,    -1,    37,
1186 <     242,   174,   239,    -1,    46,   242,   174,   239,    -1,     8,
1187 <     242,   174,   239,    -1,    91,   242,   248,   239,    -1,    90,
1188 <     242,   110,   239,    -1,    84,   242,   110,   239,    -1,     9,
1189 <     242,   248,   239,    -1,   178,   242,   248,   239,    -1,   177,
1190 <     242,   248,   239,    -1,    60,   242,   110,   239,    -1,    77,
1191 <     242,   174,   239,    -1,    76,   242,   131,   239,    -1,    70,
1192 <     242,   174,   239,    -1,   236,   242,   174,   239,    -1,   169,
1193 <     242,   174,   239,    -1,   172,   242,   174,   239,    -1,   173,
1194 <     242,   174,   239,    -1,   171,   242,   174,   239,    -1,   171,
1195 <     242,   175,   239,    -1,   170,   242,   174,   239,    -1,   170,
1196 <     242,   175,   239,    -1,   123,   242,   248,   239,    -1,    19,
1197 <     242,   248,   239,    -1,   116,   242,   174,   239,    -1,   124,
1198 <     242,   248,   239,    -1,   165,   242,   174,   239,    -1,   108,
1199 <     242,   174,   239,    -1,   220,   242,   174,   239,    -1,   118,
1200 <     242,   174,   239,    -1,    95,   242,   131,   239,    -1,    38,
1201 <     242,   110,   239,    -1,    93,   242,   110,   239,    -1,   226,
1202 <     242,   174,   239,    -1,    40,   242,   131,   239,    -1,   216,
1203 <     242,   131,   239,    -1,   127,   242,   174,   239,    -1,    33,
1204 <     242,   174,   239,    -1,   218,   242,   248,   239,    -1,    -1,
1205 <     120,   487,   242,   488,   239,    -1,   488,   243,   489,    -1,
1206 <     489,    -1,   181,    -1,   184,    -1,   185,    -1,   187,    -1,
1207 <     188,    -1,   192,    -1,    61,    -1,   203,    -1,   198,    -1,
1208 <     200,    -1,   207,    -1,   204,    -1,   191,    -1,   199,    -1,
1209 <     202,    -1,   193,    -1,   213,    -1,   182,    -1,   183,    -1,
1210 <     196,    -1,    -1,   117,   491,   242,   492,   239,    -1,   492,
1211 <     243,   493,    -1,   493,    -1,   181,    -1,   184,    -1,   185,
1212 <      -1,   187,    -1,   188,    -1,   192,    -1,   203,    -1,    61,
1213 <      -1,   198,    -1,   200,    -1,   207,    -1,   204,    -1,   191,
1214 <      -1,   199,    -1,   202,    -1,   193,    -1,   213,    -1,   182,
1215 <      -1,   183,    -1,   196,    -1,    96,   242,   110,   239,    -1,
1216 <      97,   242,   110,   239,    -1,    27,   242,   110,   239,    -1,
1217 <     186,   242,   250,   239,    -1,    -1,    52,   499,   241,   500,
1218 <     240,   239,    -1,   500,   501,    -1,   501,    -1,   502,    -1,
1219 <     503,    -1,   504,    -1,   508,    -1,   509,    -1,   510,    -1,
1220 <       1,    -1,    42,   242,   174,   239,    -1,    39,   242,   248,
1221 <     239,    -1,    -1,    83,   505,   242,   506,   239,    -1,   506,
1222 <     243,   507,    -1,   507,    -1,   176,    -1,    11,    -1,   225,
1223 <     242,   131,   239,    -1,   100,   242,   131,   239,    -1,    -1,
1224 <       4,   511,   242,   512,   239,    -1,   512,   243,   513,    -1,
1225 <     513,    -1,   176,    -1,    11,    -1,    21,   241,   515,   240,
1226 <     239,    -1,   515,   516,    -1,   516,    -1,   519,    -1,   520,
1227 <      -1,   521,    -1,   522,    -1,   527,    -1,   523,    -1,   524,
1228 <      -1,   525,    -1,   526,    -1,   528,    -1,   529,    -1,   530,
1229 <      -1,   518,    -1,   531,    -1,   532,    -1,   533,    -1,   534,
1230 <      -1,   517,    -1,     1,    -1,    34,   242,   174,   239,    -1,
1231 <     141,   242,   174,   239,    -1,    36,   242,   174,   239,    -1,
1232 <     227,   242,   174,   239,    -1,   228,   242,   174,   239,    -1,
1233 <     229,   242,   174,   239,    -1,    78,   242,   248,   239,    -1,
1234 <      79,   242,   248,   239,    -1,    86,   242,   110,   239,    -1,
1235 <     132,   242,   174,   239,    -1,    85,   242,   110,   239,    -1,
1268 <      29,   242,   110,   239,    -1,    28,   242,   110,   239,    -1,
1269 <     106,   242,   174,   239,    -1,   107,   242,   174,   239,    -1,
1270 <      13,   242,   174,   239,    -1,   121,   242,   110,   239,    -1,
1271 <     122,   242,   248,   239,    -1,   158,   241,   536,   240,   239,
1272 <      -1,   536,   537,    -1,   537,    -1,   538,    -1,   539,    -1,
1273 <     541,    -1,   543,    -1,   542,    -1,   540,    -1,   544,    -1,
1274 <       1,    -1,    48,   242,   174,   239,    -1,    64,   242,   174,
1275 <     239,    -1,    62,   242,   131,   239,    -1,    81,   242,   248,
1276 <     239,    -1,    61,   242,   174,   239,    -1,    35,   242,   174,
1277 <     239,    -1,    63,   242,   174,   239,    -1
1045 >     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1046 >      -1,   274,    -1,   476,    -1,   292,    -1,   309,    -1,   323,
1047 >      -1,   232,    -1,   493,    -1,   338,    -1,   345,    -1,   349,
1048 >      -1,   359,    -1,   368,    -1,   388,    -1,   398,    -1,   404,
1049 >      -1,   418,    -1,   408,    -1,   227,    -1,     1,   215,    -1,
1050 >       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1051 >     137,   223,    -1,    99,   138,   223,    -1,    99,   139,   223,
1052 >      -1,    99,   140,   223,    -1,    99,   141,   223,    -1,    -1,
1053 >     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1054 >      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1055 >     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1056 >     231,    -1,     1,   215,    -1,    87,   218,   117,   215,    -1,
1057 >     113,   218,   117,   215,    -1,   145,   217,   233,   216,   215,
1058 >      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1059 >     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1060 >     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1061 >     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   131,
1062 >     218,   237,   215,    -1,   132,   218,   239,   215,    -1,   237,
1063 >     219,   238,    -1,   238,    -1,   133,    -1,   134,    -1,   239,
1064 >     219,   240,    -1,   240,    -1,   133,    -1,   134,    -1,   129,
1065 >     218,   117,   215,    -1,   127,   218,   117,   215,    -1,   130,
1066 >     218,   117,   215,    -1,   170,   218,   117,   215,    -1,    89,
1067 >     218,   117,   215,    -1,   146,   218,   117,   215,    -1,    24,
1068 >     218,   117,   215,    -1,    92,   218,   117,   215,    -1,    91,
1069 >     218,   117,   215,    -1,   209,   218,   117,   215,    -1,   210,
1070 >     218,   117,   215,    -1,   180,   218,    99,   215,    -1,    57,
1071 >     218,   159,   215,    -1,     4,   217,   255,   216,   215,    -1,
1072 >     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1073 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,    31,
1074 >     218,   117,   215,    -1,    24,   218,   117,   215,    -1,    71,
1075 >     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1076 >     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   159,
1077 >     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1078 >     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1079 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   213,
1080 >     218,   226,   215,    -1,   213,   218,   194,   215,    -1,    -1,
1081 >     150,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1082 >     273,    -1,   206,    -1,   102,    -1,    40,    -1,   173,    -1,
1083 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   275,   217,
1084 >     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1085 >      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1086 >      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1087 >     117,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1088 >     117,   215,    -1,    32,   218,   159,   215,    -1,   128,   218,
1089 >     117,   215,    -1,    17,   218,   117,   215,    -1,    -1,   191,
1090 >     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1091 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1092 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1093 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1094 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1095 >      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1096 >     291,    -1,   291,    -1,    47,    -1,   124,    -1,    64,    -1,
1097 >     205,    -1,   173,    -1,   193,    -1,   211,    -1,    40,    -1,
1098 >      25,    -1,   200,    -1,   123,    -1,     4,    -1,    94,    -1,
1099 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1100 >      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1101 >     294,   295,    -1,   295,    -1,   296,    -1,   306,    -1,   307,
1102 >      -1,   297,    -1,   308,    -1,   298,    -1,   299,    -1,   300,
1103 >      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1104 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   115,
1105 >     218,   224,   215,    -1,   101,   218,    99,   215,    -1,    19,
1106 >     218,   224,   215,    -1,    81,   218,    99,   215,    -1,    76,
1107 >     218,    99,   215,    -1,    78,   218,    99,   215,    -1,    77,
1108 >     218,    99,   215,    -1,   142,   218,   226,   215,    -1,   183,
1109 >     218,   226,   215,    -1,    15,   218,    99,   215,    -1,    16,
1110 >     218,    99,   215,    -1,   100,   218,    99,   215,    -1,    -1,
1111 >      70,   310,   217,   315,   216,   215,    -1,    -1,    36,   312,
1112 >     218,   313,   215,    -1,   313,   219,   314,    -1,   314,    -1,
1113 >     190,    -1,    51,    -1,   185,    -1,   315,   316,    -1,   316,
1114 >      -1,   317,    -1,   311,    -1,   321,    -1,   322,    -1,     1,
1115 >     215,    -1,    -1,   116,   218,   319,   318,   215,    -1,   319,
1116 >     219,   320,    -1,   320,    -1,    99,    -1,    99,   163,    99,
1117 >      -1,    61,   218,   117,   215,    -1,    56,   218,   117,   215,
1118 >      -1,    -1,    48,   324,   217,   325,   216,   215,    -1,   325,
1119 >     326,    -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,
1120 >     331,    -1,   335,    -1,   336,    -1,   337,    -1,   330,    -1,
1121 >       1,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1122 >     117,   215,    -1,    17,   218,   117,   215,    -1,    32,   218,
1123 >     159,   215,    -1,    -1,    36,   332,   218,   333,   215,    -1,
1124 >     333,   219,   334,    -1,   334,    -1,   153,    -1,    33,    -1,
1125 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1126 >     136,    -1,   199,    -1,    90,    -1,   152,   218,   117,   215,
1127 >      -1,   121,   218,   117,   215,    -1,   120,   218,    99,   215,
1128 >      -1,    -1,   135,   339,   217,   340,   216,   215,    -1,   340,
1129 >     341,    -1,   341,    -1,   342,    -1,   343,    -1,   344,    -1,
1130 >       1,   215,    -1,   119,   218,   117,   215,    -1,    14,   218,
1131 >     117,   215,    -1,    93,   218,   117,   215,    -1,   201,   217,
1132 >     346,   216,   215,    -1,   346,   347,    -1,   347,    -1,   348,
1133 >      -1,     1,    -1,    89,   218,   117,   215,    -1,    -1,   148,
1134 >     350,   217,   351,   216,   215,    -1,   351,   352,    -1,   352,
1135 >      -1,   353,    -1,   354,    -1,   355,    -1,     1,   215,    -1,
1136 >      89,   218,   117,   215,    -1,   206,   218,   117,   215,    -1,
1137 >      -1,   150,   356,   218,   357,   215,    -1,   357,   219,   358,
1138 >      -1,   358,    -1,    64,    -1,   205,    -1,   173,    -1,   193,
1139 >      -1,   211,    -1,   196,    -1,   135,    -1,   195,    -1,   179,
1140 >      -1,   164,    -1,    -1,   149,   360,   217,   361,   216,   215,
1141 >      -1,   361,   362,    -1,   362,    -1,   363,    -1,   364,    -1,
1142 >       1,   215,    -1,    89,   218,   117,   215,    -1,    -1,   150,
1143 >     365,   218,   366,   215,    -1,   366,   219,   367,    -1,   367,
1144 >      -1,    64,    -1,   205,    -1,   173,    -1,   193,    -1,   211,
1145 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1146 >      -1,    -1,    18,   369,   217,   370,   216,   215,    -1,   370,
1147 >     371,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1148 >     375,    -1,   376,    -1,   378,    -1,   377,    -1,   387,    -1,
1149 >     379,    -1,   384,    -1,   385,    -1,   386,    -1,   383,    -1,
1150 >       1,   215,    -1,    89,   218,   117,   215,    -1,    56,   218,
1151 >     117,   215,    -1,   209,   218,   117,   215,    -1,   143,   218,
1152 >     117,   215,    -1,     3,   218,   117,   215,    -1,   116,   218,
1153 >      99,   215,    -1,     5,   218,   177,   215,    -1,     5,   218,
1154 >     178,   215,    -1,    -1,    36,   380,   218,   381,   215,    -1,
1155 >     381,   219,   382,    -1,   382,    -1,     8,    -1,   190,    -1,
1156 >      32,   218,   159,   215,    -1,    58,   218,   117,   215,    -1,
1157 >      68,   218,   117,   215,    -1,    17,   218,   117,   215,    -1,
1158 >     170,   218,   117,   215,    -1,    -1,    62,   389,   217,   394,
1159 >     216,   215,    -1,    -1,   150,   391,   218,   392,   215,    -1,
1160 >     392,   219,   393,    -1,   393,    -1,   122,    -1,   394,   395,
1161 >      -1,   395,    -1,   396,    -1,   397,    -1,   390,    -1,     1,
1162 >      -1,   206,   218,   117,   215,    -1,   119,   218,   117,   215,
1163 >      -1,    -1,    23,   399,   217,   400,   216,   215,    -1,   400,
1164 >     401,    -1,   401,    -1,   402,    -1,   403,    -1,     1,    -1,
1165 >      61,   218,   117,   215,    -1,   119,   218,   117,   215,    -1,
1166 >      34,   217,   405,   216,   215,    -1,   405,   406,    -1,   406,
1167 >      -1,   407,    -1,     1,    -1,    61,   218,   117,   215,    -1,
1168 >      -1,    38,   409,   217,   414,   216,   215,    -1,    -1,   150,
1169 >     411,   218,   412,   215,    -1,   412,   219,   413,    -1,   413,
1170 >      -1,   122,    -1,   414,   415,    -1,   415,    -1,   416,    -1,
1171 >     417,    -1,   410,    -1,     1,    -1,    89,   218,   117,   215,
1172 >      -1,   119,   218,   117,   215,    -1,    39,   217,   419,   216,
1173 >     215,    -1,   419,   420,    -1,   420,    -1,   429,    -1,   430,
1174 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1175 >      -1,   437,    -1,   438,    -1,   439,    -1,   428,    -1,   441,
1176 >      -1,   442,    -1,   457,    -1,   444,    -1,   446,    -1,   448,
1177 >      -1,   447,    -1,   451,    -1,   445,    -1,   452,    -1,   453,
1178 >      -1,   454,    -1,   455,    -1,   456,    -1,   469,    -1,   458,
1179 >      -1,   459,    -1,   460,    -1,   465,    -1,   449,    -1,   450,
1180 >      -1,   475,    -1,   473,    -1,   474,    -1,   431,    -1,   464,
1181 >      -1,   440,    -1,   462,    -1,   463,    -1,   427,    -1,   422,
1182 >      -1,   423,    -1,   424,    -1,   425,    -1,   426,    -1,   443,
1183 >      -1,   421,    -1,   461,    -1,     1,    -1,    83,   218,    99,
1184 >     215,    -1,    42,   218,   159,   215,    -1,    41,   218,   224,
1185 >     215,    -1,    44,   218,   224,   215,    -1,    45,   218,    99,
1186 >     215,    -1,    46,   218,    99,   215,    -1,   147,   218,   159,
1187 >     215,    -1,    63,   218,   224,   215,    -1,    55,   218,   159,
1188 >     215,    -1,    59,   218,   159,   215,    -1,    28,   218,   159,
1189 >     215,    -1,    35,   218,   159,   215,    -1,     6,   218,   159,
1190 >     215,    -1,    80,   218,   224,   215,    -1,    79,   218,    99,
1191 >     215,    -1,    72,   218,    99,   215,    -1,     7,   218,   224,
1192 >     215,    -1,   162,   218,   224,   215,    -1,   161,   218,   224,
1193 >     215,    -1,    50,   218,    99,   215,    -1,    60,   218,   159,
1194 >     215,    -1,   212,   218,   159,   215,    -1,   154,   218,   159,
1195 >     215,    -1,   157,   218,   159,   215,    -1,   158,   218,   159,
1196 >     215,    -1,   156,   218,   159,   215,    -1,   156,   218,   160,
1197 >     215,    -1,   155,   218,   159,   215,    -1,   155,   218,   160,
1198 >     215,    -1,   110,   218,   224,   215,    -1,    12,   218,   224,
1199 >     215,    -1,   103,   218,   159,   215,    -1,   111,   218,   224,
1200 >     215,    -1,   151,   218,   159,   215,    -1,    97,   218,   159,
1201 >     215,    -1,   204,   218,   159,   215,    -1,   105,   218,   159,
1202 >     215,    -1,    84,   218,   117,   215,    -1,    29,   218,    99,
1203 >     215,    -1,    82,   218,    99,   215,    -1,   207,   218,   159,
1204 >     215,    -1,    30,   218,   117,   215,    -1,   202,   218,   117,
1205 >     215,    -1,   114,   218,   159,   215,    -1,    26,   218,   159,
1206 >     215,    -1,   203,   218,   224,   215,    -1,    -1,   107,   466,
1207 >     218,   467,   215,    -1,   467,   219,   468,    -1,   468,    -1,
1208 >     165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,    -1,
1209 >     175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,    -1,
1210 >     192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,    -1,
1211 >     176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,    -1,
1212 >      -1,   104,   470,   218,   471,   215,    -1,   471,   219,   472,
1213 >      -1,   472,    -1,   165,    -1,   168,    -1,   169,    -1,   171,
1214 >      -1,   172,    -1,   175,    -1,   188,    -1,    51,    -1,   181,
1215 >      -1,   184,    -1,   192,    -1,   189,    -1,   174,    -1,   182,
1216 >      -1,   186,    -1,   176,    -1,   198,    -1,   166,    -1,   167,
1217 >      -1,   179,    -1,    85,   218,    99,   215,    -1,    86,   218,
1218 >      99,   215,    -1,    20,   218,    99,   215,    -1,    14,   217,
1219 >     477,   216,   215,    -1,   477,   478,    -1,   478,    -1,   486,
1220 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   485,
1221 >      -1,   487,    -1,   488,    -1,   489,    -1,   480,    -1,   490,
1222 >      -1,   491,    -1,   492,    -1,   479,    -1,     1,    -1,    27,
1223 >     218,   159,   215,    -1,   126,   218,   159,   215,    -1,    66,
1224 >     218,   224,   215,    -1,    67,   218,   224,   215,    -1,    75,
1225 >     218,    99,   215,    -1,    74,   218,    99,   215,    -1,   118,
1226 >     218,   159,   215,    -1,    73,   218,    99,   215,    -1,    22,
1227 >     218,    99,   215,    -1,    21,   218,    99,   215,    -1,    95,
1228 >     218,   159,   215,    -1,    96,   218,   159,   215,    -1,   108,
1229 >     218,    99,   215,    -1,   109,   218,   224,   215,    -1,   144,
1230 >     217,   494,   216,   215,    -1,   494,   495,    -1,   495,    -1,
1231 >     496,    -1,   497,    -1,   499,    -1,   500,    -1,   498,    -1,
1232 >     501,    -1,     1,    -1,    37,   218,   159,   215,    -1,    54,
1233 >     218,   159,   215,    -1,    52,   218,   117,   215,    -1,    69,
1234 >     218,   224,   215,    -1,    51,   218,   159,   215,    -1,    53,
1235 >     218,   159,   215,    -1
1236   };
1237  
1238   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1239   static const yytype_uint16 yyrline[] =
1240   {
1241 <       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1242 <     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1243 <     394,   395,   396,   397,   398,   399,   400,   404,   404,   405,
1244 <     409,   413,   417,   421,   425,   431,   431,   432,   433,   434,
1245 <     435,   442,   445,   445,   446,   446,   446,   448,   454,   461,
1246 <     463,   463,   464,   464,   465,   465,   466,   466,   467,   468,
1247 <     468,   469,   469,   470,   471,   475,   474,   500,   500,   501,
1248 <     507,   515,   554,   614,   629,   644,   653,   667,   676,   704,
1249 <     734,   757,   766,   768,   768,   769,   769,   770,   770,   772,
1250 <     781,   790,   802,   803,   803,   805,   805,   805,   806,   808,
1251 <     814,   821,   821,   831,   832,   834,   834,   835,   835,   837,
1252 <     842,   845,   851,   850,   856,   856,   857,   861,   865,   869,
1253 <     873,   877,   881,   892,   891,   989,   989,   990,   990,   990,
1254 <     991,   991,   991,   992,   992,   992,   994,  1006,  1043,  1055,
1255 <    1066,  1108,  1118,  1117,  1123,  1123,  1124,  1128,  1132,  1136,
1256 <    1140,  1144,  1148,  1152,  1156,  1160,  1164,  1168,  1172,  1176,
1257 <    1180,  1184,  1188,  1192,  1196,  1200,  1207,  1206,  1212,  1212,
1258 <    1213,  1217,  1221,  1225,  1229,  1233,  1237,  1241,  1245,  1249,
1259 <    1253,  1257,  1261,  1265,  1269,  1273,  1277,  1281,  1292,  1291,
1260 <    1341,  1341,  1342,  1343,  1343,  1344,  1345,  1346,  1347,  1348,
1261 <    1349,  1350,  1351,  1352,  1353,  1354,  1356,  1365,  1371,  1377,
1262 <    1383,  1389,  1395,  1401,  1407,  1413,  1419,  1425,  1431,  1441,
1263 <    1440,  1457,  1456,  1461,  1461,  1462,  1466,  1470,  1478,  1478,
1264 <    1479,  1479,  1479,  1479,  1479,  1481,  1481,  1483,  1483,  1485,
1265 <    1499,  1519,  1528,  1541,  1540,  1609,  1609,  1610,  1610,  1610,
1266 <    1610,  1611,  1611,  1611,  1612,  1612,  1614,  1651,  1664,  1673,
1267 <    1685,  1684,  1688,  1688,  1689,  1693,  1697,  1701,  1705,  1709,
1268 <    1713,  1717,  1721,  1728,  1747,  1757,  1771,  1770,  1786,  1786,
1269 <    1787,  1787,  1787,  1787,  1789,  1798,  1813,  1826,  1828,  1828,
1270 <    1829,  1829,  1831,  1847,  1846,  1862,  1862,  1863,  1863,  1863,
1271 <    1863,  1865,  1874,  1897,  1896,  1902,  1902,  1903,  1907,  1911,
1272 <    1915,  1919,  1923,  1927,  1931,  1935,  1939,  1949,  1948,  1965,
1273 <    1965,  1966,  1966,  1966,  1968,  1975,  1974,  1980,  1980,  1981,
1274 <    1985,  1989,  1993,  1997,  2001,  2005,  2009,  2013,  2017,  2027,
1275 <    2026,  2155,  2155,  2156,  2156,  2156,  2157,  2157,  2158,  2158,
1276 <    2159,  2159,  2159,  2160,  2160,  2161,  2163,  2175,  2184,  2210,
1277 <    2228,  2246,  2252,  2256,  2265,  2264,  2268,  2268,  2269,  2273,
1278 <    2277,  2281,  2287,  2298,  2311,  2324,  2337,  2336,  2400,  2399,
1279 <    2403,  2403,  2404,  2410,  2410,  2411,  2411,  2411,  2411,  2413,
1280 <    2432,  2442,  2441,  2464,  2464,  2465,  2465,  2465,  2467,  2473,
1281 <    2482,  2484,  2484,  2485,  2485,  2487,  2506,  2505,  2553,  2552,
1282 <    2556,  2556,  2557,  2563,  2563,  2564,  2564,  2564,  2564,  2566,
1283 <    2572,  2581,  2584,  2584,  2585,  2585,  2586,  2586,  2587,  2587,
1284 <    2588,  2588,  2589,  2589,  2590,  2590,  2591,  2591,  2592,  2592,
1285 <    2593,  2593,  2594,  2594,  2595,  2595,  2596,  2596,  2597,  2597,
1286 <    2598,  2599,  2599,  2600,  2600,  2601,  2601,  2602,  2602,  2603,
1287 <    2603,  2604,  2605,  2606,  2606,  2607,  2608,  2609,  2609,  2610,
1288 <    2610,  2611,  2611,  2612,  2612,  2613,  2616,  2621,  2626,  2631,
1289 <    2636,  2641,  2646,  2651,  2656,  2661,  2666,  2671,  2676,  2681,
1290 <    2686,  2691,  2696,  2701,  2707,  2718,  2723,  2732,  2737,  2742,
1291 <    2747,  2752,  2757,  2760,  2765,  2768,  2773,  2778,  2783,  2788,
1292 <    2793,  2798,  2803,  2808,  2813,  2824,  2829,  2834,  2839,  2848,
1293 <    2857,  2862,  2867,  2873,  2872,  2877,  2877,  2878,  2881,  2884,
1294 <    2887,  2890,  2893,  2896,  2899,  2902,  2905,  2908,  2911,  2914,
1295 <    2917,  2920,  2923,  2926,  2929,  2932,  2935,  2941,  2940,  2945,
1296 <    2945,  2946,  2949,  2952,  2955,  2958,  2961,  2964,  2967,  2970,
1297 <    2973,  2976,  2979,  2982,  2985,  2988,  2991,  2994,  2997,  3000,
1298 <    3003,  3008,  3013,  3018,  3023,  3033,  3032,  3056,  3056,  3057,
1299 <    3058,  3059,  3060,  3061,  3062,  3063,  3065,  3071,  3078,  3077,
1300 <    3082,  3082,  3083,  3087,  3093,  3127,  3137,  3136,  3186,  3186,
1301 <    3187,  3191,  3200,  3203,  3203,  3204,  3204,  3205,  3205,  3206,
1302 <    3206,  3207,  3207,  3208,  3208,  3209,  3210,  3210,  3211,  3211,
1303 <    3212,  3212,  3213,  3213,  3215,  3220,  3225,  3230,  3235,  3240,
1346 <    3245,  3250,  3255,  3260,  3265,  3270,  3275,  3280,  3285,  3290,
1347 <    3295,  3300,  3308,  3311,  3311,  3312,  3312,  3313,  3314,  3315,
1348 <    3315,  3316,  3317,  3319,  3325,  3331,  3340,  3354,  3360,  3366
1241 >       0,   355,   355,   356,   359,   360,   361,   362,   363,   364,
1242 >     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1243 >     375,   376,   377,   378,   379,   380,   384,   384,   385,   389,
1244 >     393,   397,   401,   405,   411,   411,   412,   413,   414,   415,
1245 >     422,   425,   425,   426,   426,   426,   428,   434,   441,   443,
1246 >     443,   444,   444,   445,   445,   446,   446,   447,   447,   448,
1247 >     448,   449,   449,   450,   450,   451,   452,   455,   456,   458,
1248 >     458,   459,   465,   473,   473,   474,   480,   488,   527,   586,
1249 >     614,   622,   637,   652,   661,   675,   684,   712,   742,   765,
1250 >     774,   776,   776,   777,   777,   778,   778,   780,   789,   798,
1251 >     810,   811,   811,   813,   813,   814,   816,   823,   823,   836,
1252 >     837,   839,   839,   840,   840,   842,   850,   853,   859,   858,
1253 >     864,   864,   865,   869,   873,   877,   881,   885,   889,   900,
1254 >     899,   979,   979,   980,   980,   980,   981,   981,   981,   982,
1255 >     982,   982,   984,   990,   996,  1002,  1013,  1019,  1026,  1025,
1256 >    1031,  1031,  1032,  1036,  1040,  1044,  1048,  1052,  1056,  1060,
1257 >    1064,  1068,  1072,  1076,  1080,  1084,  1088,  1092,  1096,  1100,
1258 >    1104,  1108,  1115,  1114,  1120,  1120,  1121,  1125,  1129,  1133,
1259 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1260 >    1177,  1181,  1185,  1189,  1193,  1204,  1203,  1254,  1254,  1255,
1261 >    1256,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,
1262 >    1265,  1265,  1266,  1268,  1274,  1280,  1286,  1292,  1298,  1304,
1263 >    1310,  1316,  1322,  1329,  1335,  1341,  1351,  1350,  1357,  1356,
1264 >    1361,  1361,  1362,  1366,  1370,  1376,  1376,  1377,  1377,  1377,
1265 >    1377,  1377,  1379,  1379,  1381,  1381,  1383,  1397,  1417,  1423,
1266 >    1433,  1432,  1474,  1474,  1475,  1475,  1475,  1475,  1476,  1476,
1267 >    1476,  1477,  1477,  1479,  1485,  1491,  1497,  1509,  1508,  1514,
1268 >    1514,  1515,  1519,  1523,  1527,  1531,  1535,  1539,  1543,  1547,
1269 >    1551,  1557,  1571,  1580,  1594,  1593,  1602,  1602,  1603,  1603,
1270 >    1603,  1603,  1605,  1611,  1620,  1629,  1631,  1631,  1632,  1632,
1271 >    1634,  1650,  1649,  1674,  1674,  1675,  1675,  1675,  1675,  1677,
1272 >    1683,  1703,  1702,  1708,  1708,  1709,  1713,  1717,  1721,  1725,
1273 >    1729,  1733,  1737,  1741,  1745,  1755,  1754,  1775,  1775,  1776,
1274 >    1776,  1776,  1778,  1785,  1784,  1790,  1790,  1791,  1795,  1799,
1275 >    1803,  1807,  1811,  1815,  1819,  1823,  1827,  1837,  1836,  1902,
1276 >    1902,  1903,  1903,  1903,  1904,  1904,  1905,  1905,  1905,  1906,
1277 >    1906,  1906,  1907,  1907,  1908,  1910,  1916,  1922,  1928,  1941,
1278 >    1954,  1960,  1964,  1973,  1972,  1977,  1977,  1978,  1982,  1988,
1279 >    1999,  2005,  2011,  2017,  2033,  2032,  2095,  2094,  2100,  2100,
1280 >    2101,  2107,  2107,  2108,  2108,  2108,  2108,  2110,  2130,  2140,
1281 >    2139,  2166,  2166,  2167,  2167,  2167,  2169,  2175,  2184,  2186,
1282 >    2186,  2187,  2187,  2189,  2207,  2206,  2252,  2251,  2257,  2257,
1283 >    2258,  2264,  2264,  2265,  2265,  2265,  2265,  2267,  2273,  2282,
1284 >    2285,  2285,  2286,  2286,  2287,  2287,  2288,  2288,  2289,  2289,
1285 >    2290,  2290,  2291,  2292,  2293,  2293,  2294,  2294,  2295,  2295,
1286 >    2296,  2296,  2297,  2297,  2298,  2298,  2299,  2300,  2300,  2301,
1287 >    2301,  2302,  2302,  2303,  2303,  2304,  2304,  2305,  2306,  2306,
1288 >    2307,  2308,  2309,  2309,  2310,  2310,  2311,  2312,  2313,  2314,
1289 >    2314,  2315,  2318,  2323,  2329,  2335,  2341,  2346,  2351,  2356,
1290 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1291 >    2411,  2417,  2428,  2433,  2438,  2443,  2448,  2453,  2456,  2461,
1292 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2509,
1293 >    2520,  2525,  2530,  2535,  2544,  2553,  2558,  2563,  2569,  2568,
1294 >    2573,  2573,  2574,  2577,  2580,  2583,  2586,  2589,  2592,  2595,
1295 >    2598,  2601,  2604,  2607,  2610,  2613,  2616,  2619,  2622,  2625,
1296 >    2628,  2631,  2637,  2636,  2641,  2641,  2642,  2645,  2648,  2651,
1297 >    2654,  2657,  2660,  2663,  2666,  2669,  2672,  2675,  2678,  2681,
1298 >    2684,  2687,  2690,  2693,  2696,  2699,  2704,  2709,  2714,  2723,
1299 >    2726,  2726,  2727,  2728,  2728,  2729,  2729,  2730,  2730,  2731,
1300 >    2732,  2732,  2733,  2734,  2734,  2735,  2735,  2737,  2742,  2747,
1301 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1302 >    2802,  2810,  2813,  2813,  2814,  2814,  2815,  2816,  2816,  2817,
1303 >    2818,  2820,  2826,  2832,  2841,  2855,  2861
1304   };
1305   #endif
1306  
1307 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1307 > #if YYDEBUG || YYERROR_VERBOSE || 0
1308   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1309     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1310   static const char *const yytname[] =
1311   {
1312 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1313 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1314 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1360 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1312 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1313 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1314 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1315    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1316    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1317    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1318 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1319 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1366 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1318 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1319 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1320    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1321 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1322 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1323 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1324 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1325 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1326 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1327 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1328 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1321 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1322 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1323 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1324 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1325 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1326 >  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1327 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1328 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1329    "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1330    "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1331    "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1332    "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1333    "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1334    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1335 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1336 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1337 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1338 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1339 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1340 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1341 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1342 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1343 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1344 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1345 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1346 <  "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED",
1394 <  "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF", "SPOOF_NOTICE",
1335 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1336 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1337 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1338 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1339 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1340 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1341 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1342 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1343 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1344 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1345 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1346 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1347    "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1348 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT",
1348 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1349    "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1350    "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1351 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1352 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1353 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1354 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1355 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1356 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "T_TIMESTAMP",
1357 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1358 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1359 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1360 <  "XLINE", "WARN", "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'",
1361 <  "'{'", "'='", "','", "$accept", "conf", "conf_item", "timespec_",
1362 <  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1363 <  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1364 <  "serverinfo_items", "serverinfo_item",
1365 <  "serverinfo_ssl_connection_method", "$@1", "method_types",
1366 <  "method_type_item", "serverinfo_ssl_certificate_file",
1367 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1351 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1352 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1353 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1354 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1355 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1356 >  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1357 >  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1358 >  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1359 >  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1360 >  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1361 >  "sizespec", "modules_entry", "modules_items", "modules_item",
1362 >  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1363 >  "serverinfo_item", "serverinfo_ssl_client_method",
1364 >  "serverinfo_ssl_server_method", "client_method_types",
1365 >  "client_method_type_item", "server_method_types",
1366 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1367 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1368 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1369    "serverinfo_description", "serverinfo_network_name",
1370    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1371    "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1372    "admin_item", "admin_name", "admin_email", "admin_description",
1373    "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1374 <  "logging_timestamp", "logging_file_entry", "$@2", "logging_file_items",
1375 <  "logging_file_item", "logging_file_name", "logging_file_size",
1376 <  "logging_file_type", "$@3", "logging_file_type_items",
1377 <  "logging_file_type_item", "oper_entry", "$@4", "oper_items", "oper_item",
1378 <  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1379 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@5",
1380 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@6",
1381 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@7",
1382 <  "class_items", "class_item", "class_name", "class_ping_time",
1430 <  "class_ping_warning", "class_number_per_ip", "class_connectfreq",
1374 >  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1375 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1376 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1377 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1378 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1379 >  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1380 >  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1381 >  "class_entry", "$@6", "class_items", "class_item", "class_name",
1382 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1383    "class_max_number", "class_max_global", "class_max_local",
1384 <  "class_max_ident", "class_sendq", "class_cidr_bitlen_ipv4",
1385 <  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "listen_entry", "$@8",
1386 <  "listen_flags", "$@9", "listen_flags_items", "listen_flags_item",
1387 <  "listen_items", "listen_item", "listen_port", "$@10", "port_items",
1388 <  "port_item", "listen_address", "listen_host", "auth_entry", "$@11",
1389 <  "auth_items", "auth_item", "auth_user", "auth_passwd", "auth_class",
1390 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1391 <  "auth_flags_item", "auth_spoof", "auth_redir_serv", "auth_redir_port",
1392 <  "resv_entry", "$@13", "resv_items", "resv_item", "resv_creason",
1393 <  "resv_channel", "resv_nick", "service_entry", "service_items",
1394 <  "service_item", "service_name", "shared_entry", "$@14", "shared_items",
1395 <  "shared_item", "shared_name", "shared_user", "shared_type", "$@15",
1396 <  "shared_types", "shared_type_item", "cluster_entry", "$@16",
1397 <  "cluster_items", "cluster_item", "cluster_name", "cluster_type", "$@17",
1398 <  "cluster_types", "cluster_type_item", "connect_entry", "$@18",
1399 <  "connect_items", "connect_item", "connect_name", "connect_host",
1400 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1401 <  "connect_port", "connect_aftype", "connect_flags", "$@19",
1402 <  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1403 <  "connect_hub_mask", "connect_leaf_mask", "connect_class", "kill_entry",
1404 <  "$@20", "kill_type", "$@21", "kill_type_items", "kill_type_item",
1405 <  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1406 <  "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1407 <  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1408 <  "gecos_entry", "$@23", "gecos_flags", "$@24", "gecos_flags_items",
1409 <  "gecos_flags_item", "gecos_items", "gecos_item", "gecos_name",
1410 <  "gecos_reason", "general_entry", "general_items", "general_item",
1411 <  "general_max_watch", "general_gline_min_cidr", "general_gline_min_cidr6",
1412 <  "general_use_whois_actually", "general_reject_hold_time",
1413 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1414 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1415 <  "general_disable_remote_commands", "general_failed_oper_notice",
1416 <  "general_anti_nick_flood", "general_max_nick_time",
1417 <  "general_max_nick_changes", "general_max_accept",
1418 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1419 <  "general_ts_max_delta", "general_havent_read_conf",
1420 <  "general_kline_with_reason", "general_kline_reason",
1421 <  "general_invisible_on_connect", "general_warn_no_nline",
1422 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1423 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1424 <  "general_stats_i_oper_only", "general_pace_wait",
1425 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1426 <  "general_pace_wait_simple", "general_short_motd",
1427 <  "general_no_oper_flood", "general_true_no_oper_flood",
1428 <  "general_oper_pass_resv", "general_message_locale",
1429 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1430 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1431 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1432 <  "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1433 <  "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1434 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1435 <  "general_client_flood", "gline_entry", "$@27", "gline_items",
1436 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@28",
1437 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1486 <  "gline_server", "gline_action", "$@29", "gdeny_types", "gdeny_type_item",
1487 <  "channel_entry", "channel_items", "channel_item",
1488 <  "channel_disable_fake_channels", "channel_restrict_channels",
1489 <  "channel_disable_local_channels", "channel_use_except",
1490 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1384 >  "class_max_ident", "class_sendq", "class_recvq",
1385 >  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1386 >  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1387 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1388 >  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1389 >  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1390 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1391 >  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1392 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1393 >  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1394 >  "service_entry", "service_items", "service_item", "service_name",
1395 >  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1396 >  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1397 >  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1398 >  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1399 >  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1400 >  "connect_host", "connect_vhost", "connect_send_password",
1401 >  "connect_accept_password", "connect_port", "connect_aftype",
1402 >  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1403 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1404 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1405 >  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1406 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1407 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1408 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1409 >  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1410 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1411 >  "general_entry", "general_items", "general_item", "general_max_watch",
1412 >  "general_gline_enable", "general_gline_duration",
1413 >  "general_gline_request_duration", "general_gline_min_cidr",
1414 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1415 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1416 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1417 >  "general_failed_oper_notice", "general_anti_nick_flood",
1418 >  "general_max_nick_time", "general_max_nick_changes",
1419 >  "general_max_accept", "general_anti_spam_exit_message_time",
1420 >  "general_ts_warn_delta", "general_ts_max_delta",
1421 >  "general_havent_read_conf", "general_invisible_on_connect",
1422 >  "general_warn_no_nline", "general_stats_e_disabled",
1423 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1424 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1425 >  "general_pace_wait", "general_caller_id_wait",
1426 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1427 >  "general_short_motd", "general_no_oper_flood",
1428 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1429 >  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1430 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1431 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1432 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1433 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1434 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1435 >  "general_default_floodcount", "channel_entry", "channel_items",
1436 >  "channel_item", "channel_disable_fake_channels",
1437 >  "channel_restrict_channels", "channel_knock_delay",
1438    "channel_knock_delay_channel", "channel_max_chans_per_user",
1439 <  "channel_quiet_on_ban", "channel_max_bans",
1439 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1440    "channel_default_split_user_count", "channel_default_split_server_count",
1441    "channel_no_create_on_split", "channel_no_join_on_split",
1442 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1443 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1444 <  "serverhide_flatten_links", "serverhide_hide_servers",
1445 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1446 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1442 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1443 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1444 >  "serverhide_hide_servers", "serverhide_hidden_name",
1445 >  "serverhide_links_delay", "serverhide_hidden",
1446 >  "serverhide_hide_server_ips", YY_NULL
1447   };
1448   #endif
1449  
# Line 1526 | Line 1473 | static const yytype_uint16 yytoknum[] =
1473       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1474       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1475       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1476 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1530 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1531 <     485,   486,   487,   488,   489,   490,   491,   492,   493,    59,
1532 <     125,   123,    61,    44
1476 >     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1477   };
1478   # endif
1479  
1480   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1481   static const yytype_uint16 yyr1[] =
1482   {
1483 <       0,   244,   245,   245,   246,   246,   246,   246,   246,   246,
1484 <     246,   246,   246,   246,   246,   246,   246,   246,   246,   246,
1485 <     246,   246,   246,   246,   246,   246,   246,   247,   247,   248,
1486 <     248,   248,   248,   248,   248,   249,   249,   250,   250,   250,
1487 <     250,   251,   252,   252,   253,   253,   253,   254,   255,   256,
1488 <     257,   257,   258,   258,   258,   258,   258,   258,   258,   258,
1489 <     258,   258,   258,   258,   258,   260,   259,   261,   261,   262,
1490 <     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1491 <     272,   273,   274,   275,   275,   276,   276,   276,   276,   277,
1492 <     278,   279,   280,   281,   281,   282,   282,   282,   282,   283,
1493 <     284,   286,   285,   287,   287,   288,   288,   288,   288,   289,
1494 <     290,   290,   292,   291,   293,   293,   294,   294,   294,   294,
1495 <     294,   294,   294,   296,   295,   297,   297,   298,   298,   298,
1496 <     298,   298,   298,   298,   298,   298,   299,   300,   301,   302,
1497 <     303,   304,   306,   305,   307,   307,   308,   308,   308,   308,
1498 <     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1499 <     308,   308,   308,   308,   308,   308,   310,   309,   311,   311,
1500 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1501 <     312,   312,   312,   312,   312,   312,   312,   312,   314,   313,
1502 <     315,   315,   316,   316,   316,   316,   316,   316,   316,   316,
1503 <     316,   316,   316,   316,   316,   316,   317,   318,   319,   320,
1504 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   331,
1505 <     330,   333,   332,   334,   334,   335,   335,   335,   336,   336,
1506 <     337,   337,   337,   337,   337,   339,   338,   340,   340,   341,
1507 <     341,   342,   343,   345,   344,   346,   346,   347,   347,   347,
1508 <     347,   347,   347,   347,   347,   347,   348,   349,   350,   351,
1509 <     353,   352,   354,   354,   355,   355,   355,   355,   355,   355,
1510 <     355,   355,   355,   356,   357,   358,   360,   359,   361,   361,
1511 <     362,   362,   362,   362,   363,   364,   365,   366,   367,   367,
1512 <     368,   368,   369,   371,   370,   372,   372,   373,   373,   373,
1513 <     373,   374,   375,   377,   376,   378,   378,   379,   379,   379,
1514 <     379,   379,   379,   379,   379,   379,   379,   381,   380,   382,
1515 <     382,   383,   383,   383,   384,   386,   385,   387,   387,   388,
1516 <     388,   388,   388,   388,   388,   388,   388,   388,   388,   390,
1517 <     389,   391,   391,   392,   392,   392,   392,   392,   392,   392,
1518 <     392,   392,   392,   392,   392,   392,   393,   394,   395,   396,
1519 <     397,   398,   399,   399,   401,   400,   402,   402,   403,   403,
1520 <     403,   403,   404,   405,   406,   407,   409,   408,   411,   410,
1521 <     412,   412,   413,   414,   414,   415,   415,   415,   415,   416,
1522 <     417,   419,   418,   420,   420,   421,   421,   421,   422,   423,
1523 <     424,   425,   425,   426,   426,   427,   429,   428,   431,   430,
1524 <     432,   432,   433,   434,   434,   435,   435,   435,   435,   436,
1525 <     437,   438,   439,   439,   440,   440,   440,   440,   440,   440,
1526 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1527 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1528 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1529 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1530 <     440,   440,   440,   440,   440,   440,   441,   442,   443,   444,
1531 <     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1532 <     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1533 <     465,   466,   467,   467,   468,   468,   469,   470,   471,   472,
1534 <     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1535 <     483,   484,   485,   487,   486,   488,   488,   489,   489,   489,
1536 <     489,   489,   489,   489,   489,   489,   489,   489,   489,   489,
1537 <     489,   489,   489,   489,   489,   489,   489,   491,   490,   492,
1538 <     492,   493,   493,   493,   493,   493,   493,   493,   493,   493,
1539 <     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
1540 <     493,   494,   495,   496,   497,   499,   498,   500,   500,   501,
1541 <     501,   501,   501,   501,   501,   501,   502,   503,   505,   504,
1542 <     506,   506,   507,   507,   508,   509,   511,   510,   512,   512,
1543 <     513,   513,   514,   515,   515,   516,   516,   516,   516,   516,
1544 <     516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
1545 <     516,   516,   516,   516,   517,   518,   519,   520,   521,   522,
1602 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
1603 <     533,   534,   535,   536,   536,   537,   537,   537,   537,   537,
1604 <     537,   537,   537,   538,   539,   540,   541,   542,   543,   544
1483 >       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1484 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1485 >     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1486 >     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1487 >     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1488 >     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1489 >     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1490 >     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1491 >     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1492 >     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1493 >     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1494 >     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1495 >     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1496 >     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1497 >     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1498 >     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1499 >     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1500 >     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1501 >     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1502 >     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1503 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1504 >     295,   295,   295,   296,   297,   298,   299,   300,   301,   302,
1505 >     303,   304,   305,   306,   307,   308,   310,   309,   312,   311,
1506 >     313,   313,   314,   314,   314,   315,   315,   316,   316,   316,
1507 >     316,   316,   318,   317,   319,   319,   320,   320,   321,   322,
1508 >     324,   323,   325,   325,   326,   326,   326,   326,   326,   326,
1509 >     326,   326,   326,   327,   328,   329,   330,   332,   331,   333,
1510 >     333,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1511 >     334,   335,   336,   337,   339,   338,   340,   340,   341,   341,
1512 >     341,   341,   342,   343,   344,   345,   346,   346,   347,   347,
1513 >     348,   350,   349,   351,   351,   352,   352,   352,   352,   353,
1514 >     354,   356,   355,   357,   357,   358,   358,   358,   358,   358,
1515 >     358,   358,   358,   358,   358,   360,   359,   361,   361,   362,
1516 >     362,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1517 >     367,   367,   367,   367,   367,   367,   367,   369,   368,   370,
1518 >     370,   371,   371,   371,   371,   371,   371,   371,   371,   371,
1519 >     371,   371,   371,   371,   371,   372,   373,   374,   375,   376,
1520 >     377,   378,   378,   380,   379,   381,   381,   382,   382,   383,
1521 >     384,   385,   386,   387,   389,   388,   391,   390,   392,   392,
1522 >     393,   394,   394,   395,   395,   395,   395,   396,   397,   399,
1523 >     398,   400,   400,   401,   401,   401,   402,   403,   404,   405,
1524 >     405,   406,   406,   407,   409,   408,   411,   410,   412,   412,
1525 >     413,   414,   414,   415,   415,   415,   415,   416,   417,   418,
1526 >     419,   419,   420,   420,   420,   420,   420,   420,   420,   420,
1527 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1528 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1529 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1530 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1531 >     420,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1532 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1533 >     439,   440,   441,   442,   443,   444,   445,   446,   446,   447,
1534 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1535 >     457,   458,   459,   460,   461,   462,   463,   464,   466,   465,
1536 >     467,   467,   468,   468,   468,   468,   468,   468,   468,   468,
1537 >     468,   468,   468,   468,   468,   468,   468,   468,   468,   468,
1538 >     468,   468,   470,   469,   471,   471,   472,   472,   472,   472,
1539 >     472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
1540 >     472,   472,   472,   472,   472,   472,   473,   474,   475,   476,
1541 >     477,   477,   478,   478,   478,   478,   478,   478,   478,   478,
1542 >     478,   478,   478,   478,   478,   478,   478,   479,   480,   481,
1543 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1544 >     492,   493,   494,   494,   495,   495,   495,   495,   495,   495,
1545 >     495,   496,   497,   498,   499,   500,   501
1546   };
1547  
1548   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1609 | Line 1550 | static const yytype_uint8 yyr2[] =
1550   {
1551         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1552         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1553 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1554 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1555 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1556 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1558 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1559 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1560 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1561 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1562 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1563 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
1564 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1565 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1553 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1554 >       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1555 >       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1556 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1558 >       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1559 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1560 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1561 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1562 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1563 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1564 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1565 >       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1566 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1568 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1571 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1572 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1573 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1574 <       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
1575 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1576 <       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1577 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1578 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1579 <       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1580 <       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1581 <       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1582 <       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1570 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1571 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1572 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1573 >       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1574 >       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1575 >       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1576 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1577 >       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1578 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1579 >       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1580 >       1,     2,     4,     4,     4,     5,     2,     1,     1,     1,
1581 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1582 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1584 >       1,     2,     4,     0,     5,     3,     1,     1,     1,     1,
1585         1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1642       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1643       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1644       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1645       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1646       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1647       1,     1,     4,     4,     4,     4,     0,     6,     0,     5,
1648       3,     1,     1,     2,     1,     1,     1,     1,     1,     4,
1649       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1650       5,     2,     1,     1,     1,     4,     0,     6,     0,     5,
1651       3,     1,     1,     2,     1,     1,     1,     1,     1,     4,
1652       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1586         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 +       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
1588 +       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
1589 +       4,     4,     4,     4,     0,     6,     0,     5,     3,     1,
1590 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     0,
1591 +       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
1592 +       1,     1,     1,     4,     0,     6,     0,     5,     3,     1,
1593 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     5,
1594 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1596         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1598 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1599 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1598 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1600         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1601         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1602         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1603 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1604 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1664 <       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
1665 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1604 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     4,     4,     4,     4,     0,     6,     2,     1,     1,
1668 <       1,     1,     1,     1,     1,     1,     4,     4,     0,     5,
1669 <       3,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1670 <       1,     1,     5,     2,     1,     1,     1,     1,     1,     1,
1606 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1608 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1609 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1610 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1611         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1612 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1613 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4
1612 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1613 >       1,     4,     4,     4,     4,     4,     4
1614   };
1615  
1616   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1680 | Line 1618 | static const yytype_uint8 yyr2[] =
1618     means the default is an error.  */
1619   static const yytype_uint16 yydefact[] =
1620   {
1621 <       2,     0,     1,     0,     0,     0,   188,   339,   391,     0,
1622 <     406,     0,   575,   243,   376,   219,     0,     0,   123,   276,
1623 <       0,     0,   293,   317,     0,     3,    24,    11,     4,     5,
1624 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1625 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1621 >       2,     0,     1,     0,     0,     0,   195,   347,   399,     0,
1622 >     414,     0,   250,   384,   226,     0,     0,   129,   284,     0,
1623 >       0,   301,   325,     0,     3,    23,    11,     4,     5,     6,
1624 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1625 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1626 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 +       0,     0,    92,    93,    95,    94,   596,     0,     0,     0,
1629         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630 <       0,     0,     0,     0,     0,    84,    85,    87,    86,   623,
1630 >       0,     0,   581,   595,   591,   583,   584,   585,   586,   587,
1631 >     582,   588,   589,   590,   592,   593,   594,     0,     0,     0,
1632 >     412,     0,     0,   410,   411,     0,   481,     0,     0,     0,
1633         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692       0,     0,     0,     0,     0,     0,     0,     0,     0,   604,
1693     622,   617,   605,   606,   607,   608,   610,   611,   612,   613,
1694     609,   614,   615,   616,   618,   619,   620,   621,     0,     0,
1695       0,   404,     0,     0,   402,   403,     0,   475,     0,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 +       0,     0,     0,     0,     0,     0,   552,     0,   528,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637 <       0,     0,     0,     0,     0,     0,   547,     0,   523,     0,
1637 >       0,     0,     0,     0,     0,     0,     0,   431,   479,   473,
1638 >     474,   475,   476,   477,   472,   442,   432,   433,   467,   434,
1639 >     435,   436,   437,   438,   439,   440,   441,   469,   443,   444,
1640 >     478,   446,   451,   447,   449,   448,   462,   463,   450,   452,
1641 >     453,   454,   455,   456,   445,   458,   459,   460,   480,   470,
1642 >     471,   468,   461,   457,   465,   466,   464,     0,     0,     0,
1643 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1644 >       0,    42,    43,    44,     0,     0,   620,     0,     0,     0,
1645 >       0,     0,     0,     0,   613,   614,   615,   618,   616,   617,
1646 >     619,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1648 >      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1649 >      52,    60,    57,    53,     0,     0,   299,     0,     0,   297,
1650 >     298,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1651         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652 +       0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1653 +       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1654 +     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1655 +     201,   203,     0,     0,     0,     0,     0,   373,     0,     0,
1656 +       0,     0,     0,     0,     0,     0,     0,   350,   351,   352,
1657 +     353,   354,   355,   357,   356,   359,   363,   360,   361,   362,
1658 +     358,   405,     0,     0,     0,   402,   403,   404,     0,     0,
1659 +     409,   426,     0,     0,   416,   425,     0,   422,   423,   424,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701     423,   473,   468,   469,   470,   471,   467,   434,   424,   425,
1702     461,   426,   427,   428,   429,   430,   431,   432,   433,   464,
1703     435,   436,   437,   438,   472,   440,   445,   441,   443,   442,
1704     456,   457,   444,   446,   447,   448,   449,   450,   439,   452,
1705     453,   454,   474,   465,   466,   463,   455,   451,   459,   460,
1706     458,   462,     0,     0,     0,     0,     0,     0,     0,     0,
1707      94,    95,    96,    97,     0,     0,     0,     0,     0,    43,
1708      44,    45,     0,     0,   652,     0,     0,     0,     0,     0,
1709       0,     0,     0,   644,   645,   646,   650,   647,   649,   648,
1710     651,     0,     0,     0,     0,     0,     0,     0,     0,    65,
1711       0,     0,     0,     0,     0,    51,    63,    62,    59,    52,
1712      61,    55,    56,    57,    53,    60,    58,    54,     0,     0,
1713     291,     0,     0,   289,   290,    88,     0,     0,     0,     0,
1714      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716     603,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717       0,     0,     0,     0,     0,     0,   191,   192,   195,   196,
1718     198,   199,   200,   201,   202,   203,   204,   193,   194,   197,
1719       0,     0,     0,     0,     0,   364,     0,     0,     0,     0,
1720       0,     0,     0,     0,   342,   343,   344,   345,   346,   347,
1721     349,   348,   350,   354,   351,   352,   353,   397,     0,     0,
1722       0,   394,   395,   396,     0,     0,   401,   418,     0,     0,
1723     408,   417,     0,   414,   415,   416,     0,     0,     0,     0,
1662         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1665 +     430,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1666 +       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1667 +     396,     0,   386,     0,   395,     0,   392,   393,   394,     0,
1668 +     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1669 +     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1670 +       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1671 +     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1672 +       0,     0,     0,     0,   287,   288,   289,   290,     0,     0,
1673 +       0,     0,     0,     0,     0,   612,    66,     0,     0,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 <       0,     0,     0,     0,     0,     0,     0,     0,   422,   585,
1676 <     596,     0,     0,   588,     0,     0,     0,   578,   579,   580,
1677 <     581,   582,   583,   584,     0,     0,     0,   260,     0,     0,
1678 <       0,     0,     0,     0,   246,   247,   248,   249,   254,   250,
1679 <     251,   252,   253,   388,     0,   378,     0,   387,     0,   384,
1680 <     385,   386,     0,   221,     0,     0,     0,   231,     0,   229,
1734 <     230,   232,   233,    98,     0,     0,     0,    93,     0,    46,
1735 <       0,     0,     0,    42,     0,     0,     0,   166,     0,     0,
1736 <       0,   142,     0,     0,   126,   127,   128,   129,   132,   133,
1737 <     131,   130,   134,     0,     0,     0,     0,     0,   279,   280,
1738 <     281,   282,     0,     0,     0,     0,     0,     0,     0,     0,
1739 <     643,    64,     0,     0,     0,     0,     0,     0,     0,     0,
1740 <       0,     0,     0,     0,     0,    50,     0,     0,   303,     0,
1741 <       0,   296,   297,   298,   299,     0,     0,   325,     0,   320,
1742 <     321,   322,     0,     0,   288,     0,     0,     0,    82,     0,
1743 <       0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1744 <       0,     0,     0,     0,     0,     0,     0,     0,   602,   205,
1675 >       0,     0,     0,    49,     0,     0,   311,     0,     0,   304,
1676 >     305,   306,   307,     0,     0,   333,     0,   328,   329,   330,
1677 >       0,     0,   296,     0,     0,     0,    90,     0,     0,     0,
1678 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 >       0,     0,   579,   212,     0,     0,     0,     0,     0,     0,
1680 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   364,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682 <       0,     0,     0,     0,   190,   355,     0,     0,     0,     0,
1683 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   341,
1748 <       0,     0,     0,   393,     0,   400,     0,     0,     0,     0,
1749 <     413,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682 >       0,     0,     0,     0,   349,     0,     0,     0,   401,     0,
1683 >     408,     0,     0,     0,     0,   421,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753       0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
1754       0,     0,     0,     0,     0,   421,     0,     0,     0,     0,
1755       0,     0,     0,   577,   255,     0,     0,     0,     0,     0,
1756       0,     0,     0,     0,   245,     0,     0,     0,     0,   383,
1757     234,     0,     0,     0,     0,     0,   228,     0,     0,    92,
1758       0,     0,     0,    41,   135,     0,     0,     0,     0,     0,
1759       0,     0,     0,     0,   125,   283,     0,     0,     0,     0,
1760     278,     0,     0,     0,     0,     0,     0,     0,   642,     0,
1687         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,    49,   300,     0,     0,     0,     0,   295,   323,     0,
1689 <       0,     0,   319,     0,   287,    91,    90,    89,   639,   636,
1690 <     635,   624,   626,    27,    27,    27,    27,    27,    29,    28,
1691 <     630,   631,   634,   632,   637,   638,   640,   641,   633,   625,
1692 <     627,   628,   629,     0,     0,     0,     0,     0,     0,     0,
1693 <       0,     0,     0,     0,     0,     0,   189,     0,     0,     0,
1688 >       0,     0,     0,     0,     0,     0,     0,   429,   262,     0,
1689 >       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1690 >       0,     0,     0,   391,   241,     0,     0,     0,     0,     0,
1691 >     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1692 >       0,     0,     0,     0,     0,     0,     0,   131,   291,     0,
1693 >       0,     0,     0,   286,     0,     0,     0,     0,     0,     0,
1694 >     611,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1695 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1696 >       0,     0,    48,   308,     0,     0,     0,     0,   303,   331,
1697 >       0,     0,     0,   327,     0,   295,    99,    98,    97,   606,
1698 >     605,   597,    26,    26,    26,    26,    26,    28,    27,   599,
1699 >     600,   604,   602,   601,   607,   608,   609,   610,   603,   598,
1700         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701 <     340,     0,     0,   392,   405,     0,     0,     0,   407,   487,
1702 <     491,   507,   573,   521,   485,   515,   518,   486,   477,   478,
1703 <     494,   483,   484,   497,   482,   496,   495,   490,   489,   488,
1704 <     516,   476,   514,   571,   572,   511,   508,   558,   551,   568,
1705 <     569,   552,   553,   554,   555,   563,   556,   566,   570,   559,
1706 <     564,   560,   565,   557,   562,   561,   567,     0,   550,   513,
1707 <     533,   527,   544,   545,   528,   529,   530,   531,   539,   532,
1708 <     542,   546,   535,   540,   536,   541,   534,   538,   537,   543,
1709 <       0,   526,   506,   509,   520,   480,   481,   510,   499,   504,
1710 <     505,   502,   503,   500,   501,   493,   492,    35,    35,    35,
1711 <      37,    36,   574,   519,   522,   512,   517,   479,   498,     0,
1712 <       0,     0,     0,     0,     0,   576,     0,     0,     0,     0,
1713 <       0,     0,     0,     0,   244,     0,     0,     0,   377,     0,
1714 <       0,     0,   239,   235,   238,   220,   100,    99,     0,     0,
1715 <     112,     0,     0,   104,   105,   107,   106,    47,    48,     0,
1716 <       0,     0,     0,     0,     0,     0,     0,   124,     0,     0,
1717 <       0,   277,   658,   653,   657,   655,   659,   654,   656,    75,
1718 <      81,    73,    77,    76,    72,    71,    69,    70,     0,    68,
1719 <      74,    80,    78,    79,     0,     0,     0,   294,     0,     0,
1720 <     318,   292,    30,    31,    32,    33,    34,   216,   217,   210,
1721 <     212,   214,   213,   211,   206,   218,   209,   207,   208,   215,
1722 <     360,   362,   363,   375,   372,   368,   369,   371,   370,     0,
1723 <     367,   357,   373,   374,   356,   361,   359,   358,   398,   399,
1724 <     419,   420,   412,     0,   411,   548,     0,   524,     0,    38,
1725 <      39,    40,   601,   600,     0,   599,   587,   586,   593,   592,
1726 <       0,   591,   595,   594,   258,   259,   268,   265,   270,   267,
1727 <     266,   272,   269,   271,   264,     0,   263,   257,   275,   274,
1728 <     273,   256,   390,   382,     0,   381,   389,   226,   227,   225,
1729 <       0,   224,   242,   241,     0,     0,     0,   108,     0,     0,
1730 <       0,     0,   103,   141,   139,   181,   178,   177,   170,   172,
1731 <     187,   182,   185,   180,   171,   186,   174,   183,   175,   184,
1732 <     179,   173,   176,     0,   169,   136,   138,   140,   152,   146,
1733 <     163,   164,   147,   148,   149,   150,   158,   151,   161,   165,
1734 <     154,   159,   155,   160,   153,   157,   156,   162,     0,   145,
1735 <     137,   285,   286,   284,    66,     0,   301,   307,   313,   316,
1736 <     309,   315,   310,   314,   312,   308,   311,     0,   306,   302,
1737 <     324,   329,   335,   338,   331,   337,   332,   336,   334,   330,
1738 <     333,     0,   328,   365,     0,   409,     0,   549,   525,   597,
1739 <       0,   589,     0,   261,     0,   379,     0,   222,     0,   240,
1740 <     237,   236,     0,     0,     0,     0,   102,   167,     0,   143,
1741 <       0,    67,   304,     0,   326,     0,   366,   410,   598,   590,
1742 <     262,   380,   223,   109,   118,   121,   120,   117,   122,   119,
1743 <     116,     0,   115,   111,   110,   168,   144,   305,   327,   113,
1812 <       0,   114
1701 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   348,
1703 >       0,     0,   400,   413,     0,     0,     0,   415,   494,   498,
1704 >     512,   578,   526,   492,   520,   523,   493,   484,   483,   485,
1705 >     486,   487,   501,   490,   491,   502,   489,   497,   496,   495,
1706 >     521,   482,   519,   576,   577,   516,   513,   563,   556,   573,
1707 >     574,   557,   558,   559,   560,   568,   561,   571,   575,   564,
1708 >     569,   565,   570,   562,   567,   566,   572,     0,   555,   518,
1709 >     538,   532,   549,   550,   533,   534,   535,   536,   544,   537,
1710 >     547,   551,   540,   545,   541,   546,   539,   543,   542,   548,
1711 >       0,   531,   511,   514,   525,   488,   515,   504,   509,   510,
1712 >     507,   508,   505,   506,   500,   499,   524,   527,   517,   522,
1713 >     503,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1714 >       0,     0,     0,   385,     0,     0,     0,   246,   242,   245,
1715 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1716 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1717 >       0,   130,     0,     0,     0,   285,   621,   625,   623,   626,
1718 >     622,   624,    83,    89,    81,    85,    84,    78,    77,    79,
1719 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1720 >       0,     0,   302,     0,     0,   326,   300,    29,    30,    31,
1721 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1722 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1723 >     369,   371,   372,   382,   379,   377,   378,     0,   376,   366,
1724 >     380,   381,   365,   370,   368,   383,   367,   406,   407,   427,
1725 >     428,   420,     0,   419,   553,     0,   529,     0,   265,   266,
1726 >     275,   272,   277,   274,   273,   280,   276,   278,   271,   279,
1727 >       0,   270,   264,   283,   282,   281,   263,   398,   390,     0,
1728 >     389,   397,   233,   234,   232,     0,   231,   249,   248,     0,
1729 >       0,     0,   114,     0,     0,     0,     0,   109,   147,   145,
1730 >     187,   184,   183,   176,   178,   194,   188,   191,   186,   177,
1731 >     192,   180,   189,   193,   181,   190,   185,   179,   182,     0,
1732 >     175,   142,   144,   146,   158,   152,   169,   170,   153,   154,
1733 >     155,   156,   164,   157,   167,   171,   160,   165,   161,   166,
1734 >     159,   163,   162,   168,     0,   151,   143,   293,   294,   292,
1735 >      69,    73,   309,   315,   321,   324,   317,   323,   318,   322,
1736 >     320,   316,   319,     0,   314,   310,   332,   337,   343,   346,
1737 >     339,   345,   340,   344,   342,   338,   341,     0,   336,    37,
1738 >      38,    39,   374,     0,   417,     0,   554,   530,   268,     0,
1739 >     387,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1740 >       0,   108,   173,     0,   149,     0,   312,     0,   334,     0,
1741 >     375,   418,   269,   388,   230,   115,   124,   127,   126,   123,
1742 >     128,   125,   122,     0,   121,   117,   116,   174,   150,   313,
1743 >     335,   119,     0,   120
1744   };
1745  
1746   /* YYDEFGOTO[NTERM-NUM].  */
1747   static const yytype_int16 yydefgoto[] =
1748   {
1749 <      -1,     1,    25,   818,   819,   960,   961,    26,   248,   249,
1750 <     250,   251,    27,   284,   285,   286,   569,  1038,  1039,   287,
1751 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1752 <      28,    74,    75,    76,    77,    78,    29,   239,   240,   241,
1753 <     242,   243,   244,  1002,  1003,  1004,  1005,  1006,  1149,  1281,
1754 <    1282,    30,    63,   533,   534,   535,   536,   537,   538,   539,
1755 <     540,   541,   761,  1198,  1199,   542,   757,  1173,  1174,    31,
1756 <      51,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1757 <     354,   355,   356,   357,   358,   359,    32,    60,   507,   741,
1758 <    1140,  1141,   508,   509,   510,  1146,   993,   994,   511,   512,
1759 <      33,    58,   483,   484,   485,   486,   487,   488,   489,   727,
1760 <    1125,  1126,   490,   491,   492,    34,    64,   547,   548,   549,
1761 <     550,   551,    35,   302,   303,   304,    36,    67,   580,   581,
1762 <     582,   583,   584,   794,  1217,  1218,    37,    68,   588,   589,
1763 <     590,   591,   800,  1231,  1232,    38,    52,   373,   374,   375,
1764 <     376,   377,   378,   379,   380,   381,   382,   640,  1079,  1080,
1765 <     383,   384,   385,   386,    39,    59,   497,   736,  1134,  1135,
1766 <     498,   499,   500,   501,    40,    53,   390,   391,   392,   393,
1767 <      41,   123,   124,   125,    42,    55,   401,   658,  1093,  1094,
1768 <     402,   403,   404,   405,    43,   179,   180,   181,   182,   183,
1769 <     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1770 <     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1771 <     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1772 <     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1773 <     224,   225,   226,   436,   940,   941,   227,   434,   917,   918,
1774 <     228,   229,   230,   231,    44,    57,   466,   467,   468,   469,
1775 <     470,   719,  1110,  1111,   471,   472,   473,   716,  1104,  1105,
1776 <      45,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1777 <     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1847 <     117,    46,   262,   263,   264,   265,   266,   267,   268,   269,
1848 <     270
1749 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1750 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1751 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1752 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1753 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1754 >     950,  1084,  1213,  1214,    29,    60,   499,   500,   501,   502,
1755 >     503,   504,   505,   506,   507,   714,  1134,  1135,   508,   710,
1756 >    1109,  1110,    30,    49,   327,   328,   329,   330,   331,   332,
1757 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1758 >      57,   474,   695,  1075,  1076,   475,   476,   477,  1081,   938,
1759 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1760 >     455,   456,   681,  1060,  1061,   457,   458,   459,    33,    61,
1761 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1762 >      64,   548,   549,   550,   551,   552,   755,  1153,  1154,    36,
1763 >      65,   556,   557,   558,   559,   761,  1167,  1168,    37,    50,
1764 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1765 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1766 >     464,   690,  1069,  1070,   465,   466,   467,   468,    39,    51,
1767 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1768 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1769 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1770 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1771 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1772 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1773 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1774 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1775 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1776 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1777 >     249,   250
1778   };
1779  
1780   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1781     STATE-NUM.  */
1782 < #define YYPACT_NINF -772
1782 > #define YYPACT_NINF -678
1783   static const yytype_int16 yypact[] =
1784   {
1785 <    -772,   643,  -772,  -190,  -234,  -231,  -772,  -772,  -772,  -225,
1786 <    -772,  -215,  -772,  -772,  -772,  -772,  -207,  -205,  -772,  -772,
1787 <    -202,  -194,  -772,  -772,  -174,  -772,  -772,  -772,  -772,  -772,
1788 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1789 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   258,
1790 <     533,  -171,  -168,  -155,    14,  -146,   367,  -143,  -141,  -134,
1791 <    -131,     3,    41,  -128,  -112,   746,   326,  -109,   -98,    20,
1792 <    -115,   -90,   -87,   -81,     4,  -772,  -772,  -772,  -772,  -772,
1793 <     -71,   -68,   -48,   -45,   -31,   -24,   -15,    21,    23,    54,
1794 <      63,    72,    77,    78,    79,    80,    87,    88,   274,  -772,
1795 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1796 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   683,   449,
1797 <      47,  -772,    90,    32,  -772,  -772,   192,  -772,    98,   130,
1798 <     137,   147,   148,   156,   167,   168,   169,   172,   175,   176,
1799 <     177,   178,   179,   183,   188,   196,   197,   199,   200,   203,
1800 <     207,   211,   212,   214,   217,   225,  -772,   226,  -772,   228,
1801 <     232,   239,   240,   246,   247,   251,   255,   256,   262,   264,
1802 <     265,   267,   268,   269,   270,   271,   276,   277,   278,   108,
1803 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1804 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1805 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1806 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1807 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1808 <    -772,  -772,   562,   299,    58,   317,    35,   279,   284,    71,
1809 <    -772,  -772,  -772,  -772,   116,   209,   285,   288,    53,  -772,
1810 <    -772,  -772,   507,   283,  -772,   291,   293,   300,   301,   306,
1811 <     309,   310,    18,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1812 <    -772,   261,   313,   314,   315,   318,   323,   328,   329,  -772,
1813 <     330,   331,   333,   334,   152,  -772,  -772,  -772,  -772,  -772,
1814 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,    12,    70,
1815 <    -772,   335,    28,  -772,  -772,  -772,   119,   260,   394,   339,
1816 <    -772,   406,   458,   471,   408,   410,   476,   476,   479,   480,
1817 <     418,   420,   486,   476,   423,   426,   428,   434,   436,   360,
1818 <    -772,   376,   374,   375,   378,   381,   382,   383,   384,   386,
1819 <     392,   395,   399,   400,   404,     2,  -772,  -772,  -772,  -772,
1820 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1821 <     417,   405,   415,   416,   419,  -772,   421,   427,   429,   430,
1822 <     433,   435,   438,     8,  -772,  -772,  -772,  -772,  -772,  -772,
1823 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   440,   441,
1824 <      16,  -772,  -772,  -772,   529,   431,  -772,  -772,   443,   444,
1825 <    -772,  -772,    26,  -772,  -772,  -772,   504,   476,   476,   577,
1826 <     516,   517,   586,   566,   525,   593,   597,   598,   536,   537,
1827 <     538,   476,   585,   543,   608,   609,   476,   610,   611,   591,
1828 <     613,   617,   554,   556,   489,   564,   499,   476,   476,   572,
1829 <     476,   579,   583,   589,  -117,   -91,   590,   592,   476,   476,
1830 <     657,   637,   476,   595,   600,   602,   603,   539,  -772,  -772,
1831 <    -772,   542,   544,  -772,   547,   548,    36,  -772,  -772,  -772,
1832 <    -772,  -772,  -772,  -772,   540,   549,   551,  -772,   555,   557,
1833 <     558,   561,   571,    22,  -772,  -772,  -772,  -772,  -772,  -772,
1834 <    -772,  -772,  -772,  -772,   580,  -772,   581,  -772,    11,  -772,
1835 <    -772,  -772,   541,  -772,   599,   601,   605,  -772,    30,  -772,
1836 <    -772,  -772,  -772,  -772,   624,   645,   546,  -772,   587,  -772,
1837 <     703,   711,   606,  -772,   615,   620,   621,  -772,   623,   627,
1838 <     631,  -772,   632,   206,  -772,  -772,  -772,  -772,  -772,  -772,
1839 <    -772,  -772,  -772,   618,   634,   635,   636,    17,  -772,  -772,
1840 <    -772,  -772,   670,   674,   706,   751,   709,   710,   476,   646,
1841 <    -772,  -772,   755,   713,   757,   758,   759,   760,   761,   651,
1842 <     763,   785,   765,   767,   660,  -772,   661,   659,  -772,   662,
1843 <      42,  -772,  -772,  -772,  -772,   663,   664,  -772,     5,  -772,
1844 <    -772,  -772,   772,   666,  -772,   669,   671,   672,  -772,   673,
1845 <     675,   676,   677,   678,   325,   679,   680,   681,   682,   684,
1846 <     685,   686,   687,   688,   689,   690,   691,   692,  -772,  -772,
1847 <     797,   799,   476,   803,   812,   822,   823,   804,   824,   826,
1848 <     476,   476,   657,   698,  -772,  -772,   807,    44,   808,   766,
1849 <     699,   811,   813,   814,   815,   833,   816,   817,   712,  -772,
1850 <     818,   819,   714,  -772,   715,  -772,   821,   825,   716,   718,
1851 <    -772,   720,   721,   722,   723,   724,   725,   726,   727,   728,
1852 <     730,   731,   732,   733,   734,   735,   736,   737,   738,   739,
1853 <     740,   741,   742,   743,   744,   745,   747,   748,   749,   552,
1854 <     750,   633,   752,   753,   754,   756,   762,   764,   768,   769,
1855 <     770,   771,   773,   774,   775,   776,   777,   355,   778,   779,
1856 <     780,   781,   782,   783,   784,  -772,   786,   476,   794,   787,
1857 <     854,   859,   788,  -772,  -772,   863,   828,   789,   865,   845,
1858 <     866,   867,   868,   791,  -772,   869,   790,   873,   795,  -772,
1859 <    -772,   793,   874,   875,   901,   798,  -772,   800,   801,  -772,
1860 <     171,   802,   805,  -772,  -772,   893,   851,   796,   895,   902,
1861 <     905,   806,   911,   810,  -772,  -772,   912,   914,   915,   820,
1862 <    -772,   827,   829,   830,   831,   832,   834,   835,  -772,   836,
1863 <     837,   838,   839,   840,   841,   842,   143,   843,   844,   846,
1864 <     847,  -772,  -772,   916,   809,   919,   848,  -772,  -772,   921,
1865 <     849,   850,  -772,   853,  -772,  -772,  -772,  -772,  -772,  -772,
1866 <    -772,  -772,  -772,   476,   476,   476,   476,   476,  -772,  -772,
1867 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1868 <    -772,  -772,  -772,   855,   856,   857,   858,   860,   861,   862,
1869 <     864,   870,   871,   872,   876,   877,  -772,   878,   879,   880,
1870 <     881,   882,    10,   883,   884,   885,   886,   887,   888,   889,
1871 <    -772,   890,   891,  -772,  -772,   892,   894,   917,  -772,  -772,
1872 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1873 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1874 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1875 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1876 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -187,  -772,  -772,
1877 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1878 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1879 <     -77,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1880 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   657,   657,   657,
1881 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,    19,
1882 <     896,   897,    33,   898,   899,  -772,   900,   903,   729,   904,
1883 <     906,   907,   908,   909,  -772,   910,   918,   913,  -772,     7,
1884 <     920,   922,   923,   924,  -772,  -772,  -772,  -772,   925,   926,
1885 <    -772,   927,    96,  -772,  -772,  -772,  -772,  -772,  -772,   931,
1886 <     932,   490,   933,   934,   935,   668,   936,  -772,   937,   938,
1887 <     939,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1888 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   -29,  -772,
1889 <    -772,  -772,  -772,  -772,   940,   425,   941,  -772,   942,   442,
1890 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1891 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1892 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   -26,
1893 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1894 <    -772,  -772,  -772,    74,  -772,  -772,   552,  -772,   633,  -772,
1895 <    -772,  -772,  -772,  -772,   102,  -772,  -772,  -772,  -772,  -772,
1896 <     104,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1897 <    -772,  -772,  -772,  -772,  -772,   112,  -772,  -772,  -772,  -772,
1898 <    -772,  -772,  -772,  -772,   122,  -772,  -772,  -772,  -772,  -772,
1899 <     123,  -772,  -772,  -772,   945,   901,   943,  -772,   929,   944,
1900 <     -69,   946,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1901 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1902 <    -772,  -772,  -772,   124,  -772,  -772,  -772,  -772,  -772,  -772,
1903 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1904 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   134,  -772,
1905 <    -772,  -772,  -772,  -772,  -772,   143,  -772,  -772,  -772,  -772,
1906 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   139,  -772,  -772,
1907 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1979 <    -772,   158,  -772,  -772,    10,  -772,   917,  -772,  -772,  -772,
1980 <      19,  -772,    33,  -772,   729,  -772,   918,  -772,     7,  -772,
1981 <    -772,  -772,   948,   149,   949,   950,  -772,  -772,   490,  -772,
1982 <     668,  -772,  -772,   425,  -772,   442,  -772,  -772,  -772,  -772,
1983 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1984 <    -772,   160,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1985 <     149,  -772
1785 >    -678,   581,  -678,  -132,  -213,  -211,  -678,  -678,  -678,  -200,
1786 >    -678,  -194,  -678,  -678,  -678,  -191,  -189,  -678,  -678,  -181,
1787 >    -179,  -678,  -678,  -176,  -678,  -678,  -678,  -678,  -678,  -678,
1788 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1789 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   285,   812,  -143,
1790 >    -106,  -103,    18,   -88,   349,   -79,   -73,   -68,    62,    68,
1791 >     -66,   -57,   388,   387,   -43,   -21,    15,  -182,   -16,   -11,
1792 >      -9,     8,  -678,  -678,  -678,  -678,  -678,    -4,    59,    71,
1793 >      94,    97,   110,   131,   134,   136,   141,   142,   144,   145,
1794 >     146,   155,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1795 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   622,   419,    29,
1796 >    -678,   147,    44,  -678,  -678,   198,  -678,   148,   158,   163,
1797 >     164,   165,   167,   168,   169,   174,   179,   182,   183,   188,
1798 >     189,   192,   195,   196,   200,   205,   212,   227,   229,   230,
1799 >     232,   243,   246,   248,   249,   250,  -678,   251,  -678,   252,
1800 >     254,   255,   256,   263,   264,   267,   268,   271,   273,   274,
1801 >     275,   276,   277,   279,   280,   281,    36,  -678,  -678,  -678,
1802 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1803 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1804 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1805 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1806 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   448,     4,   257,
1807 >      65,   283,    45,  -678,  -678,  -678,    80,    88,   284,   294,
1808 >      49,  -678,  -678,  -678,   426,    13,  -678,   295,   302,   303,
1809 >     304,   305,   307,     7,  -678,  -678,  -678,  -678,  -678,  -678,
1810 >    -678,   187,   308,   309,   310,   311,   312,   314,   316,   318,
1811 >     319,   321,   322,   323,   324,   325,   326,    74,  -678,  -678,
1812 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1813 >    -678,  -678,  -678,  -678,    11,    28,  -678,   327,    53,  -678,
1814 >    -678,  -678,   253,   286,   299,   202,  -678,   384,   447,   390,
1815 >     456,   456,   459,   460,   464,   405,   406,   467,   456,   413,
1816 >     414,   332,  -678,   359,   357,   358,   361,   365,   366,   369,
1817 >     370,   373,   374,   375,   376,   383,   385,   156,  -678,  -678,
1818 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1819 >    -678,  -678,   362,   392,   393,   394,   395,  -678,   396,   398,
1820 >     400,   403,   404,   407,   408,   412,   210,  -678,  -678,  -678,
1821 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1822 >    -678,  -678,   415,   416,    66,  -678,  -678,  -678,   488,   391,
1823 >    -678,  -678,   418,   421,  -678,  -678,    39,  -678,  -678,  -678,
1824 >     472,   456,   456,   541,   483,   485,   546,   529,   489,   456,
1825 >     490,   456,   548,   551,   554,   496,   497,   499,   456,   560,
1826 >     562,   456,   563,   564,   547,   566,   568,   509,   511,   454,
1827 >     515,   457,   456,   456,   517,   519,   520,   521,   181,   184,
1828 >     523,   526,   456,   456,   569,   456,   528,   532,   533,   473,
1829 >    -678,   478,   479,   486,  -678,   487,   491,   492,   494,   495,
1830 >     199,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1831 >    -678,   500,  -678,   501,  -678,    69,  -678,  -678,  -678,   481,
1832 >    -678,   502,   506,   513,  -678,    51,  -678,  -678,  -678,  -678,
1833 >    -678,   542,   493,  -678,   498,  -678,   585,   589,   512,  -678,
1834 >     518,   514,   516,  -678,   525,   535,   538,  -678,   540,    56,
1835 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,   531,
1836 >     545,   549,   550,    33,  -678,  -678,  -678,  -678,   555,   558,
1837 >     590,   576,   591,   456,   536,  -678,  -678,   649,   601,   652,
1838 >     653,   655,   656,   662,   669,    46,   213,   670,   672,   695,
1839 >     679,   683,   587,  -678,   588,   586,  -678,   598,    20,  -678,
1840 >    -678,  -678,  -678,   605,   608,  -678,   152,  -678,  -678,  -678,
1841 >     689,   623,  -678,   625,   627,   629,  -678,   630,   631,   632,
1842 >     193,   633,   634,   636,   639,   640,   641,   646,   648,   650,
1843 >     651,   658,  -678,  -678,   724,   759,   456,   765,   768,   771,
1844 >     772,   755,   775,   777,   456,   778,   778,   665,  -678,  -678,
1845 >     764,   180,   766,   723,   666,   773,   774,   776,   779,   789,
1846 >     780,   781,   782,   674,  -678,   783,   784,   677,  -678,   680,
1847 >    -678,   785,   786,   676,   690,  -678,   691,   694,   696,   697,
1848 >     698,   699,   700,   701,   702,   703,   704,   707,   708,   709,
1849 >     710,   711,   712,   713,   714,   716,   717,   718,   719,   720,
1850 >     721,   722,   725,   726,   727,   573,   728,   609,   729,   730,
1851 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1852 >     741,   742,   743,   744,   745,   746,   747,  -678,  -678,   787,
1853 >     751,   748,   822,   864,   847,   848,   850,   753,  -678,   852,
1854 >     752,   854,   757,  -678,  -678,   756,   856,   858,   877,   762,
1855 >    -678,   763,  -678,   185,   767,   769,  -678,  -678,   862,   821,
1856 >     770,   866,   868,   869,   788,   870,   790,  -678,  -678,   872,
1857 >     873,   874,   792,  -678,   793,   794,   795,   796,   797,   798,
1858 >    -678,   799,   800,   801,   802,   803,   804,   805,   806,  -678,
1859 >    -678,  -204,  -678,  -678,  -678,  -197,  -678,   807,   808,   809,
1860 >     810,   811,  -678,  -678,   875,   813,   876,   814,  -678,  -678,
1861 >     878,   815,   817,  -678,   819,  -678,  -678,  -678,  -678,  -678,
1862 >    -678,  -678,   456,   456,   456,   456,   456,  -678,  -678,  -678,
1863 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1864 >     820,   823,   824,   825,   826,   827,   828,   829,   830,   831,
1865 >     832,   297,   833,   834,  -678,   835,   836,   837,   838,   839,
1866 >       5,   840,   841,   842,   843,   844,   845,   846,   849,  -678,
1867 >     851,   853,  -678,  -678,   855,   857,   859,  -678,  -678,  -678,
1868 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1869 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1870 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1871 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1872 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -195,  -678,  -678,
1873 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1874 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1875 >    -184,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1876 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1877 >    -678,   860,   861,   537,   863,   865,   867,   871,   879,  -678,
1878 >     880,   881,   882,  -678,   -26,   883,   884,   899,   818,  -678,
1879 >    -678,  -678,   885,   886,  -678,   887,   129,  -678,  -678,  -678,
1880 >    -678,  -678,  -678,   888,   891,   484,   892,   893,   894,   643,
1881 >     895,  -678,   896,   897,   898,  -678,  -678,  -678,  -678,  -678,
1882 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1883 >    -678,    46,  -678,   213,  -678,  -678,  -678,  -678,  -678,   900,
1884 >     657,   901,  -678,   902,   664,  -678,  -678,  -678,  -678,  -678,
1885 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1886 >    -678,  -678,  -678,   778,   778,   778,  -678,  -678,  -678,  -678,
1887 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -166,  -678,  -678,
1888 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1889 >    -678,  -678,  -164,  -678,  -678,   573,  -678,   609,  -678,  -678,
1890 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1891 >    -147,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -130,
1892 >    -678,  -678,  -678,  -678,  -678,   -46,  -678,  -678,  -678,   903,
1893 >     877,   904,  -678,   910,   905,   -92,   906,  -678,  -678,  -678,
1894 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1895 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    -7,
1896 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1897 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1898 >    -678,  -678,  -678,  -678,    76,  -678,  -678,  -678,  -678,  -678,
1899 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1900 >    -678,  -678,  -678,    82,  -678,  -678,  -678,  -678,  -678,  -678,
1901 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,    85,  -678,  -678,
1902 >    -678,  -678,  -678,     5,  -678,   859,  -678,  -678,  -678,   537,
1903 >    -678,   881,  -678,   -26,  -678,  -678,  -678,   907,   265,   909,
1904 >     911,  -678,  -678,   484,  -678,   643,  -678,   657,  -678,   664,
1905 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1906 >    -678,  -678,  -678,    95,  -678,  -678,  -678,  -678,  -678,  -678,
1907 >    -678,  -678,   265,  -678
1908   };
1909  
1910   /* YYPGOTO[NTERM-NUM].  */
1911   static const yytype_int16 yypgoto[] =
1912   {
1913 <    -772,  -772,  -772,  -753,  -315,  -771,  -450,  -772,  -772,   947,
1914 <    -772,  -772,  -772,  -772,   928,  -772,  -772,  -772,  -149,  -772,
1915 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1916 <    -772,  -772,   983,  -772,  -772,  -772,  -772,  -772,   951,  -772,
1917 <    -772,  -772,  -772,  -772,    56,  -772,  -772,  -772,  -772,  -772,
1918 <    -229,  -772,  -772,  -772,   530,  -772,  -772,  -772,  -772,  -772,
1919 <    -772,  -772,  -772,  -772,  -198,  -772,  -772,  -772,  -193,  -772,
1920 <    -772,  -772,   719,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1921 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1922 <    -772,  -181,  -772,   576,  -772,  -772,  -772,   -73,  -772,  -772,
1923 <    -772,  -772,  -772,   607,  -772,  -772,  -772,  -772,  -772,  -772,
1924 <    -772,  -156,  -772,  -772,  -772,  -772,  -772,  -772,   559,  -772,
1925 <    -772,  -772,  -772,  -772,   852,  -772,  -772,  -772,  -772,   513,
1926 <    -772,  -772,  -772,  -772,  -772,  -165,  -772,  -772,  -772,   519,
1927 <    -772,  -772,  -772,  -772,  -161,  -772,  -772,  -772,   792,  -772,
1928 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -129,
1929 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -138,
1930 <    -772,   614,  -772,  -772,  -772,  -772,  -772,   930,  -772,  -772,
1931 <    -772,  -772,   990,  -772,  -772,  -772,  -772,  -772,  -772,  -122,
1932 <    -772,   952,  -772,  -772,  -772,  -772,   953,  -772,  -772,  -772,
1933 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1934 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1935 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1936 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1937 <    -772,  -772,  -772,  -772,  -772,    43,  -772,  -772,  -772,    38,
1938 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   694,  -772,  -772,
1939 <    -772,  -772,  -772,  -102,  -772,  -772,  -772,  -772,  -772,   -96,
1940 <    -772,  -772,  1052,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1941 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
2020 <    -772,  -772,  -772,   954,  -772,  -772,  -772,  -772,  -772,  -772,
2021 <    -772
1913 >    -678,  -678,  -678,  -451,  -298,  -677,  -595,  -678,  -678,   890,
1914 >    -678,  -678,  -678,  -678,   761,  -678,  -678,  -678,    16,  -678,
1915 >      17,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1916 >    -678,  -678,  -678,  -678,  -678,  -678,   923,  -678,  -678,  -678,
1917 >    -678,  -678,   908,  -678,  -678,  -678,  -678,    50,  -678,  -678,
1918 >    -678,  -678,  -678,  -224,  -678,  -678,  -678,   505,  -678,  -678,
1919 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -196,  -678,  -678,
1920 >    -678,  -192,  -678,  -678,  -678,   750,  -678,  -678,  -678,  -678,
1921 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1922 >    -678,  -678,  -678,  -678,  -153,  -678,   561,  -678,  -678,  -678,
1923 >     -17,  -678,  -678,  -678,  -678,  -678,   615,  -678,  -678,  -678,
1924 >    -678,  -678,  -678,  -678,  -112,  -678,  -678,  -678,  -678,  -678,
1925 >    -678,   556,  -678,  -678,  -678,  -678,  -678,   791,  -678,  -678,
1926 >    -678,  -678,   539,  -678,  -678,  -678,  -678,  -678,  -126,  -678,
1927 >    -678,  -678,   527,  -678,  -678,  -678,  -678,  -125,  -678,  -678,
1928 >    -678,   758,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1929 >    -678,  -678,  -100,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1930 >    -678,  -678,  -678,   -97,  -678,   616,  -678,  -678,  -678,  -678,
1931 >    -678,   715,  -678,  -678,  -678,  -678,   973,  -678,  -678,  -678,
1932 >    -678,  -678,  -678,   -87,  -678,   705,  -678,  -678,  -678,  -678,
1933 >     924,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1934 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1935 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1936 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1937 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    54,  -678,
1938 >    -678,  -678,    47,  -678,  -678,  -678,  -678,  -678,  1002,  -678,
1939 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1940 >    -678,  -678,  -678,  -678,  -678,   889,  -678,  -678,  -678,  -678,
1941 >    -678,  -678
1942   };
1943  
1944   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1945     positive, shift that token.  If negative, reduce the rule which
1946     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1947 < #define YYTABLE_NINF -102
1947 > #define YYTABLE_NINF -108
1948   static const yytype_int16 yytable[] =
1949   {
1950 <     708,   605,   606,   331,   236,    70,   585,    49,   612,   360,
1951 <      50,   361,   493,   576,   362,   121,    54,   387,   543,   254,
1952 <    1075,   300,  1076,   474,   332,   333,    56,   397,   334,   300,
1953 <    1102,   502,   363,   121,    61,    71,    62,   459,   544,    65,
1954 <     460,   707,   245,   576,  1108,    72,   475,    66,   387,    47,
1955 <      48,   364,  1095,   255,   245,   365,  1096,   699,   700,   493,
1956 <    1052,  1053,  1054,  1055,  1056,   476,   256,    69,  1137,   477,
1957 <     118,   585,   236,   119,   366,   461,   367,   503,   462,   257,
1958 <     258,   259,   260,   701,   702,   122,   120,   388,   368,   335,
1959 <     336,   337,   662,   663,   338,   126,   504,   998,   232,   261,
1960 <     233,   505,   339,   122,    73,   586,   676,   234,   369,   127,
1961 <     235,   681,   577,   252,   340,   341,   128,   129,   388,   463,
1962 <     301,   545,   692,   693,   305,   695,   398,   130,   301,   253,
1963 <     342,   343,   298,   705,   706,   131,   464,   710,   370,   246,
1964 <    1254,   132,   577,   299,   494,   133,   134,   478,   135,   389,
1965 <     546,   246,   306,   271,   136,   307,   479,   480,   344,   399,
1966 <     506,   308,  1097,   137,   138,   371,  1098,   247,   139,   587,
1967 <     586,   311,   998,   140,   312,   495,   578,   141,   142,   247,
1968 <     389,   143,   845,   272,   144,   145,  1099,  1100,  1101,   481,
1969 <     400,   494,   146,   397,   313,  1103,   999,   314,   147,   148,
1970 <    1274,   149,   150,   151,   152,   153,   578,   524,  1138,  1109,
1971 <    1204,   315,  1139,  1233,  1205,  1077,   154,  1234,   316,   273,
1972 <     237,  1275,   495,  1276,   155,   156,   157,   317,   158,  1078,
1973 <     525,   159,   160,   238,   587,   161,   496,   579,   848,   849,
1974 <     372,  -101,   633,   777,   309,   801,   162,   482,   648,   526,
1975 <     595,   738,   274,   527,   275,   276,   652,   769,   559,    70,
1976 <    1000,   465,   733,   318,  1277,   319,   659,   579,   593,   163,
1977 <     745,   999,   395,   164,   513,    79,   722,   165,   166,   167,
1978 <     168,   169,   796,   496,   543,   170,   171,    80,   237,    71,
1979 <    1036,  1037,   398,   522,   172,   277,   320,   278,   279,    72,
1980 <     474,   238,    81,    82,   544,   321,   528,   835,    83,  -101,
1981 <      84,   516,   280,  1235,   322,   843,   844,  1236,   502,   323,
1982 <     324,   325,   326,   475,   173,   399,   174,   271,   175,   327,
1983 <     328,   529,   394,  1001,   176,  1000,  1151,  1278,  1279,   177,
1984 <     406,  1239,   476,  1241,   178,  1240,   477,  1242,   457,   281,
1985 <     530,  1243,    85,    86,   518,  1244,   400,   272,    73,    87,
1986 <      88,  1245,  1247,  1257,   503,  1246,  1248,  1258,   127,   957,
1987 <     958,   959,   407,  1259,  1280,   128,   129,  1260,  1262,   408,
1988 <      89,    90,  1263,   504,   282,   283,   130,   545,   505,   409,
1989 <     410,   596,   574,   273,   131,    91,    92,  1264,   411,  1289,
1990 <     132,  1265,   970,  1290,   133,   134,    93,   135,  1001,   412,
1991 <     413,   414,   531,   136,   415,    94,   546,   416,   417,   418,
1992 <     419,   420,   137,   138,   478,   421,   274,   139,   275,   276,
1993 <     422,   532,   140,   479,   480,   604,   141,   142,   423,   424,
1994 <     143,   425,   426,   144,   145,   427,   763,   506,   519,   428,
1995 <     360,   146,   361,   429,   430,   362,   431,   147,   148,   432,
1996 <     149,   150,   151,   152,   153,   707,   481,   433,   435,   277,
1997 <     437,   278,   279,   363,   438,   154,   813,   814,   815,   816,
1998 <     817,   439,   440,   155,   156,   157,   280,   158,   441,   442,
1999 <     159,   160,   364,   443,   161,  1155,   365,   444,   445,  1207,
2000 <     561,    95,    96,    97,   446,   162,   447,   448,   524,   449,
2001 <     450,   451,   452,   453,   329,   366,  1221,   367,   454,   455,
2002 <     456,   514,  1156,   281,   482,   597,   515,   520,   163,   368,
2003 <     521,   525,   164,   552,    79,   553,   165,   166,   167,   168,
2004 <     169,  1157,   554,   555,   170,   171,    80,  1158,   556,   369,
2005 <     526,   557,   558,   172,   527,   562,   563,   564,   282,   283,
2006 <     565,    81,    82,   459,  1159,   566,   460,    83,   600,    84,
2007 <     567,   568,   570,   571,  1208,   572,   573,   592,   598,   370,
2008 <     599,   601,   602,   173,   603,   174,   604,   175,  1160,   607,
2009 <     608,  1222,   609,   176,   610,  1161,   611,   613,   177,   618,
2010 <     614,   461,   615,   178,   462,  1209,   371,   528,   616,  1162,
2011 <     617,    85,    86,   897,  1210,   619,   620,   621,    87,    88,
2012 <     622,  1211,  1223,   623,   624,   625,   626,  1163,   627,  1164,
2013 <    1165,  1224,   529,  1212,   628,  1213,  1214,   629,  1225,    89,
2014 <      90,   630,   631,     2,     3,   463,   632,   636,     4,  1215,
2015 <    1226,   530,  1227,  1228,    91,    92,   635,   637,   638,  1216,
2016 <     654,   639,   464,   641,     5,    93,  1229,     6,     7,   642,
2017 <     655,   643,   644,     8,    94,   645,  1230,   646,   661,  1166,
2018 <     647,   372,   650,   651,   331,   656,   657,   664,     9,  1167,
2019 <     665,   666,    10,    11,   920,    12,   667,   668,  1168,   669,
2020 <    1255,    13,  1169,   670,  1170,   332,   333,   671,   672,   334,
2021 <     673,   674,   675,   531,  1171,    14,   677,   678,   679,   680,
2022 <     682,   683,   684,   685,  1172,    15,    16,   686,   687,  1178,
2023 <     688,   689,   532,   898,   899,   900,   901,   902,   690,   903,
2024 <     904,   691,    17,   905,   906,   907,   694,   254,   908,  1116,
2025 <     909,   910,   911,   696,   912,   913,   914,   697,    18,   915,
2026 <      95,    96,    97,   698,   703,   916,   704,   707,   709,   711,
2027 <     335,   336,   337,  1117,   712,   338,   713,   714,   715,   724,
2028 <     740,   255,  1118,   339,   717,   749,   718,   465,  1119,   720,
2029 <     721,   725,    19,   726,   256,   340,   341,   728,   747,   729,
2030 <     730,    20,    21,   731,  1120,    22,    23,   257,   258,   259,
2031 <     260,   342,   343,   732,   921,   922,   923,   924,   925,   748,
2032 <     926,   927,   735,   737,   928,   929,   930,   261,   750,   931,
2033 <    1121,   932,   933,   934,   751,   935,   936,   937,  1122,   344,
2034 <     938,   742,   752,   743,   771,   753,   939,   744,   772,  1179,
2035 <    1180,  1181,  1182,  1183,   754,  1184,  1185,   765,    24,  1186,
2036 <    1187,  1188,   755,   756,  1189,   758,  1190,  1191,  1192,   759,
2037 <    1193,  1194,  1195,   760,   762,  1196,   766,   767,   768,  1123,
2038 <     773,  1197,   774,   775,   776,   778,   779,   780,   781,   782,
2039 <     783,   784,   785,   786,   787,   788,   789,  1124,   790,   791,
2040 <     792,   793,   798,   803,   795,   804,   799,   833,   805,   834,
2041 <     806,   807,   808,   836,   809,   810,   811,   812,   820,   821,
2042 <     822,   823,   837,   824,   825,   826,   827,   828,   829,   830,
2043 <     831,   832,   838,   839,   841,   840,   842,   846,   847,   850,
2044 <     851,   852,   853,   857,   854,   855,   856,   858,   859,   861,
2045 <     862,   860,   865,   863,   864,   980,   866,   868,   867,   869,
2046 <     870,   871,   872,   873,   874,   875,   876,   877,   971,   878,
2047 <     879,   880,   881,   882,   883,   884,   885,   886,   887,   888,
2048 <     889,   890,   891,   892,   893,   973,   894,   895,   896,   919,
2049 <     974,   942,   943,   944,   976,   945,   979,   981,   982,   983,
2050 <     985,   946,   977,   947,   987,   990,   991,   948,   949,   950,
2051 <     951,   992,   952,   953,   954,   955,   956,   962,   963,   964,
2052 <     965,   966,   967,   968,  1009,  1010,  1012,   975,   969,   972,
2053 <     984,   978,   986,  1013,   988,   989,  1014,   995,  1011,   996,
2054 <     997,  1007,  1016,  1018,  1008,  1019,  1020,  1044,  1015,  1017,
2055 <    1046,  1045,  1048,  1092,  1133,  1249,  1261,   310,  1152,  1021,
2056 <    1252,  1291,  1286,   764,   634,  1285,  1022,  1272,  1023,  1024,
2057 <    1025,  1026,  1250,  1027,  1028,  1029,  1030,  1031,  1032,  1033,
2058 <    1034,  1035,  1040,  1041,   746,  1042,  1043,  1047,  1270,  1050,
2059 <     734,  1049,  1051,   797,  1057,  1058,  1059,  1060,  1287,  1061,
2060 <    1062,  1063,  1144,  1064,  1288,  1266,   770,   802,  1271,  1065,
2061 <    1066,  1067,   739,   396,  1267,  1068,  1069,  1070,  1071,  1072,
2062 <    1073,  1074,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,
2063 <    1089,  1090,   458,  1091,  1237,  1106,  1107,  1112,  1113,  1114,
2144 <    1269,  1238,  1115,  1127,  1268,  1128,  1129,  1130,  1131,  1132,
2145 <     330,     0,  1136,     0,   594,     0,     0,     0,     0,  1142,
2146 <     723,  1143,     0,     0,  1147,   649,     0,  1145,  1148,  1150,
2147 <    1153,  1154,  1175,  1176,  1177,  1200,  1201,  1202,  1203,  1206,
2148 <    1219,  1220,  1251,     0,     0,  1256,  1253,  1273,  1283,  1284,
2149 <     517,     0,     0,     0,     0,   523,     0,     0,     0,     0,
2150 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2151 <       0,     0,   575,     0,     0,     0,   560,     0,     0,     0,
2152 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2153 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2154 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2155 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2156 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2157 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2158 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2159 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2160 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2161 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2162 <     653,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2163 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2164 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2165 <       0,     0,     0,     0,   660
1950 >     802,   803,   571,   572,    47,   460,    48,   801,   236,    67,
1951 >     579,   980,   544,  1025,   509,   981,   286,    52,   982,   110,
1952 >    1044,   544,   983,    54,  1045,  1072,    58,   510,    59,   553,
1953 >     371,  1046,    68,   291,   509,  1047,    62,   116,    63,    69,
1954 >     381,    66,   117,   118,   237,   110,   220,   510,   119,  1172,
1955 >     227,  1174,   469,  1173,   286,  1175,   120,   490,   238,   239,
1956 >     240,   241,   121,   220,   122,   123,   124,   371,  1178,   227,
1957 >     460,   125,  1179,   491,   107,   251,   242,   126,   127,   111,
1958 >     128,   129,   130,    45,    46,  1180,   131,   470,   492,  1181,
1959 >     372,   132,   493,   627,   628,   133,   134,    70,   252,   135,
1960 >     545,   635,  1189,   637,   287,   111,   511,   471,   136,   545,
1961 >     644,   108,   472,   647,   109,   137,   138,   554,   139,   140,
1962 >     141,   142,   143,   461,   658,   659,   511,   372,   382,   115,
1963 >     942,   253,   512,   144,   670,   671,   228,   673,   217,   145,
1964 >     146,   147,   287,   148,   218,   494,   149,   150,   373,   219,
1965 >     151,   234,   512,   553,   462,   228,    76,   313,   383,  1073,
1966 >     235,   546,   229,   254,  1074,   255,   256,   473,   495,  1182,
1967 >     546,   314,   315,  1183,   284,   316,    77,    78,   555,   739,
1968 >     740,   229,    79,   152,   496,   373,   942,   153,   461,   384,
1969 >     154,   155,   156,   157,   158,  1026,   285,   159,   160,   381,
1970 >     441,   257,   292,   258,   259,   260,   261,   293,  1192,   294,
1971 >     463,   342,  1193,   343,   297,   344,   442,   547,   943,   462,
1972 >     262,    80,    81,   524,   295,   729,   547,   345,    82,    83,
1973 >      84,   443,   317,   318,   319,   444,   757,   320,   161,   162,
1974 >     163,   554,   346,   164,   263,   321,   347,   497,   165,   722,
1975 >      85,    86,   439,   221,   264,   624,   322,   323,   469,  -107,
1976 >     379,   482,   498,    87,    88,   488,   348,   699,   349,   561,
1977 >     221,   324,   716,    89,   943,   463,  -107,   298,   350,   944,
1978 >     480,    90,   617,   265,   266,   692,    67,   382,   792,   299,
1979 >     542,  1194,   570,   470,   484,  1195,   800,  1196,   325,   351,
1980 >    1198,  1197,   555,   485,  1199,  1206,  1013,  1014,  1015,    68,
1981 >    1221,   445,   300,   471,  1222,   301,    69,   383,   472,   446,
1982 >     447,   997,   998,   999,  1000,  1001,   352,  1207,   302,  1208,
1983 >     772,   773,   774,   775,   776,   944,  1169,  1170,  1171,   326,
1984 >     664,   665,   945,   666,   667,  1086,   743,   744,   384,   303,
1985 >     116,   448,   304,   353,   305,   117,   118,   806,   807,   306,
1986 >     307,   119,   308,   309,   310,   378,   390,  1209,   762,   120,
1987 >     563,   311,   597,   473,    70,   121,   391,   122,   123,   124,
1988 >     354,   392,   393,   394,   125,   395,   396,   397,   251,   236,
1989 >     126,   127,   398,   128,   129,   130,   801,   399,   945,   131,
1990 >     400,   401,   526,   564,   132,   449,   402,   403,   133,   134,
1991 >     404,   252,   135,   405,   406,   687,   565,   566,   407,   355,
1992 >     342,   136,   343,   408,   344,   237,   613,   490,   137,   138,
1993 >     409,   139,   140,   141,   142,   143,   345,  1210,  1211,   238,
1994 >     239,   240,   241,   491,   253,   410,   144,   411,   412,   441,
1995 >     413,   346,   145,   146,   147,   347,   148,   242,   492,   149,
1996 >     150,   414,   493,   151,   415,   442,   416,   417,   418,   420,
1997 >     422,  1212,   423,   424,   425,   348,   254,   349,   255,   256,
1998 >     443,   426,   427,   567,   444,   428,   429,   350,  1090,   430,
1999 >    1190,   431,   432,   433,   434,   435,   152,   436,   437,   438,
2000 >     153,   481,   486,   154,   155,   156,   157,   158,   351,  1091,
2001 >     159,   160,   487,   518,   257,   494,   258,   259,   260,   261,
2002 >     519,   520,   521,   522,  1092,   523,   527,   528,   529,   530,
2003 >     531,  1093,   532,   262,   533,   352,   534,   535,   495,   536,
2004 >     537,   538,   539,   540,   541,   560,   568,   582,  1094,   569,
2005 >    1050,   161,   162,   163,   496,   570,   164,   263,   573,   574,
2006 >     445,   165,   353,   575,   576,   577,   578,   264,   446,   447,
2007 >    1051,  1095,   580,   581,   583,   584,   585,   599,  1096,   586,
2008 >    1052,     2,     3,   587,   588,     4,  1053,   589,   590,   354,
2009 >    1097,   591,   592,   593,   594,     5,   265,   266,     6,     7,
2010 >     448,   595,  1054,   596,     8,   619,   620,  1098,  1099,  1100,
2011 >     600,   601,   602,   603,   605,     9,   606,   497,   607,    10,
2012 >      11,   608,   609,   313,   857,   610,   611,  1055,   355,    12,
2013 >     612,   626,   498,   615,   616,  1056,   621,   314,   315,   622,
2014 >     629,   316,   630,    13,   631,   632,   633,   638,   634,   636,
2015 >     639,    14,    15,   640,   449,   641,   642,  1101,   643,   645,
2016 >     880,   646,   648,   649,   650,   651,  1102,   652,   653,    16,
2017 >     654,  1103,   655,  1057,   656,   657,   660,  1104,   661,   662,
2018 >     663,  1105,   668,    17,  1106,   669,   672,   674,   677,  1107,
2019 >    1058,   675,   676,   678,  1114,  1108,   694,   679,   317,   318,
2020 >     319,   701,   704,   320,   680,   682,   705,   726,   702,   683,
2021 >     684,   321,   685,   686,   724,   703,    18,   725,   689,   691,
2022 >     696,  1143,   322,   323,   697,    19,    20,   706,  1157,    21,
2023 >      22,   698,   708,   707,   709,   727,  1059,   324,   858,   859,
2024 >     860,   861,   862,   711,   863,   864,   718,   865,   866,   867,
2025 >     728,   730,   868,   712,   869,   870,   713,   871,   715,   872,
2026 >     732,   873,   874,   719,   325,   875,   731,   720,   721,   733,
2027 >     734,   876,   735,   736,   881,   882,   883,   884,   885,   737,
2028 >     886,   887,    23,   888,   889,   890,   738,   747,   891,   748,
2029 >     892,   893,  1144,   894,   749,   895,   750,   896,   897,  1158,
2030 >     751,   898,   752,   753,   754,   326,   764,   899,  1115,  1116,
2031 >    1117,  1118,  1119,    76,  1120,  1121,   756,  1122,  1123,  1124,
2032 >     759,  1145,  1125,   790,  1126,  1127,   760,  1128,  1159,  1129,
2033 >    1146,  1130,  1131,    77,    78,  1132,  1147,  1160,   765,    79,
2034 >     766,  1133,   767,  1161,   768,   769,   770,   771,   779,   780,
2035 >    1148,   781,  1149,  1150,   782,   783,   784,  1162,   791,  1163,
2036 >    1164,   785,  1151,   786,   793,   787,   788,   794,  1152,  1165,
2037 >     795,   796,   797,   789,   798,  1166,   799,   801,    80,    81,
2038 >     804,   805,   809,   808,   810,    82,    83,    84,   815,   819,
2039 >     811,   812,   822,   813,   826,   823,   814,   816,   817,   818,
2040 >     820,   821,   824,   825,   921,   827,   828,    85,    86,   829,
2041 >     922,   830,   831,   832,   833,   834,   835,   836,   837,   838,
2042 >      87,    88,   839,   840,   841,   842,   843,   844,   845,   846,
2043 >      89,   847,   848,   849,   850,   851,   852,   853,    90,   924,
2044 >     854,   855,   856,   879,   902,   903,   904,   905,   906,   907,
2045 >     908,   909,   910,   911,   912,   913,   914,   915,   916,   917,
2046 >     918,   919,   920,   925,   926,   927,   923,   928,   929,   930,
2047 >     931,   932,   933,   935,   934,   936,   937,   940,   941,   953,
2048 >     954,  1041,   951,   956,   952,   957,   958,   960,   955,   962,
2049 >     963,   964,   989,   991,   296,   993,  1087,  1140,  1223,  1218,
2050 >    1141,  1217,  1184,  1068,   717,   961,   959,   965,   966,   967,
2051 >     968,   969,   970,   971,   972,   973,   974,   975,   976,   977,
2052 >     978,   979,   984,   985,   986,   987,   988,  1187,   543,   992,
2053 >    1204,   990,   995,   994,   996,  1002,   700,  1080,  1003,  1004,
2054 >    1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,  1019,
2055 >    1020,  1021,  1022,  1023,  1024,  1029,  1030,  1031,  1032,  1033,
2056 >    1034,  1035,  1079,  1185,  1036,   688,  1037,  1202,  1038,   723,
2057 >    1039,  1219,  1040,  1200,  1220,  1048,  1049,   598,  1062,   562,
2058 >    1063,   693,  1064,   763,  1203,   380,  1065,   758,  1201,   618,
2059 >     440,   625,  1176,   312,  1066,  1067,     0,  1071,  1077,  1078,
2060 >    1082,  1177,     0,  1088,  1083,  1085,  1089,  1111,  1112,  1113,
2061 >    1136,  1137,  1138,  1139,   614,  1142,  1155,  1156,     0,  1186,
2062 >     489,  1191,  1205,  1188,  1215,     0,  1216,     0,     0,     0,
2063 >     483,     0,   525
2064   };
2065  
2066 < #define yypact_value_is_default(yystate) \
2067 <  ((yystate) == (-772))
2066 > #define yypact_value_is_default(Yystate) \
2067 >  (!!((Yystate) == (-678)))
2068  
2069 < #define yytable_value_is_error(yytable_value) \
2069 > #define yytable_value_is_error(Yytable_value) \
2070    YYID (0)
2071  
2072   static const yytype_int16 yycheck[] =
2073   {
2074 <     450,   316,   317,     1,     1,     1,     1,   241,   323,     1,
2075 <     241,     3,     1,     1,     6,     1,   241,     1,     1,     1,
2076 <      10,     1,    12,     1,    22,    23,   241,     1,    26,     1,
2077 <      11,     1,    24,     1,   241,    31,   241,     1,    21,   241,
2078 <       4,   110,     1,     1,    11,    41,    24,   241,     1,   239,
2079 <     240,    43,   239,    35,     1,    47,   243,   174,   175,     1,
2080 <     813,   814,   815,   816,   817,    43,    48,   241,    61,    47,
2081 <     241,     1,     1,   241,    66,    39,    68,    47,    42,    61,
2082 <      62,    63,    64,   174,   175,    71,   241,    71,    80,    87,
2083 <      88,    89,   407,   408,    92,   241,    66,     1,   241,    81,
2084 <     241,    71,   100,    71,   100,   100,   421,   241,   100,     1,
2085 <     241,   426,   100,   241,   112,   113,     8,     9,    71,    83,
2086 <     100,   104,   437,   438,   239,   440,   100,    19,   100,   241,
2087 <     128,   129,   241,   448,   449,    27,   100,   452,   130,    98,
2088 <     209,    33,   100,   241,   133,    37,    38,   125,    40,   133,
2089 <     133,    98,   242,     1,    46,   242,   134,   135,   156,   133,
2090 <     130,   242,   239,    55,    56,   157,   243,   126,    60,   164,
2091 <     100,   242,     1,    65,   242,   164,   164,    69,    70,   126,
2092 <     133,    73,   632,    31,    76,    77,   957,   958,   959,   167,
2093 <     164,   133,    84,     1,   242,   176,   100,   242,    90,    91,
2094 <      51,    93,    94,    95,    96,    97,   164,     1,   201,   176,
2095 <     239,   242,   205,   239,   243,   205,   108,   243,   242,    67,
2096 <     217,    72,   164,    74,   116,   117,   118,   242,   120,   219,
2097 <      24,   123,   124,   230,   164,   127,   225,   225,   194,   195,
2098 <     232,   238,   240,   558,   240,   240,   138,   225,   240,    43,
2099 <     131,   240,   100,    47,   102,   103,   240,   240,   240,     1,
2100 <     164,   225,   240,   242,   115,   242,   240,   225,   240,   161,
2101 <     240,   100,   240,   165,   239,     1,   240,   169,   170,   171,
2102 <     172,   173,   240,   225,     1,   177,   178,    13,   217,    31,
2103 <     147,   148,   100,   240,   186,   143,   242,   145,   146,    41,
2104 <       1,   230,    28,    29,    21,   242,   100,   622,    34,   238,
2105 <      36,   240,   160,   239,   242,   630,   631,   243,     1,   242,
2106 <     242,   242,   242,    24,   216,   133,   218,     1,   220,   242,
2107 <     242,   125,   242,   237,   226,   164,   240,   188,   189,   231,
2108 <     242,   239,    43,   239,   236,   243,    47,   243,   240,   197,
2109 <     144,   239,    78,    79,   238,   243,   164,    31,   100,    85,
2110 <      86,   239,   239,   239,    47,   243,   243,   243,     1,    14,
2111 <      15,    16,   242,   239,   225,     8,     9,   243,   239,   242,
2112 <     106,   107,   243,    66,   232,   233,    19,   104,    71,   242,
2113 <     242,   131,   240,    67,    27,   121,   122,   239,   242,   239,
2114 <      33,   243,   717,   243,    37,    38,   132,    40,   237,   242,
2115 <     242,   242,   206,    46,   242,   141,   133,   242,   242,   242,
2116 <     242,   242,    55,    56,   125,   242,   100,    60,   102,   103,
2117 <     242,   225,    65,   134,   135,   110,    69,    70,   242,   242,
2118 <      73,   242,   242,    76,    77,   242,   240,   130,   239,   242,
2119 <       1,    84,     3,   242,   242,     6,   242,    90,    91,   242,
2120 <      93,    94,    95,    96,    97,   110,   167,   242,   242,   143,
2121 <     242,   145,   146,    24,   242,   108,   151,   152,   153,   154,
2122 <     155,   242,   242,   116,   117,   118,   160,   120,   242,   242,
2123 <     123,   124,    43,   242,   127,     5,    47,   242,   242,    74,
2124 <     239,   227,   228,   229,   242,   138,   242,   242,     1,   242,
2125 <     242,   242,   242,   242,   240,    66,    74,    68,   242,   242,
2126 <     242,   242,    32,   197,   225,   131,   242,   242,   161,    80,
2127 <     242,    24,   165,   242,     1,   242,   169,   170,   171,   172,
2128 <     173,    51,   242,   242,   177,   178,    13,    57,   242,   100,
2129 <      43,   242,   242,   186,    47,   242,   242,   242,   232,   233,
2130 <     242,    28,    29,     1,    74,   242,     4,    34,   110,    36,
2131 <     242,   242,   242,   242,   149,   242,   242,   242,   239,   130,
2132 <     174,   110,   174,   216,   174,   218,   110,   220,    98,   110,
2133 <     110,   149,   174,   226,   174,   105,   110,   174,   231,   239,
2134 <     174,    39,   174,   236,    42,   180,   157,   100,   174,   119,
2135 <     174,    78,    79,    61,   189,   239,   242,   242,    85,    86,
2136 <     242,   196,   180,   242,   242,   242,   242,   137,   242,   139,
2137 <     140,   189,   125,   208,   242,   210,   211,   242,   196,   106,
2138 <     107,   242,   242,     0,     1,    83,   242,   242,     5,   224,
2139 <     208,   144,   210,   211,   121,   122,   239,   242,   242,   234,
2140 <     131,   242,   100,   242,    21,   132,   224,    24,    25,   242,
2141 <     239,   242,   242,    30,   141,   242,   234,   242,   174,   189,
2142 <     242,   232,   242,   242,     1,   242,   242,   110,    45,   199,
2143 <     174,   174,    49,    50,    61,    52,   110,   131,   208,   174,
2144 <    1150,    58,   212,   110,   214,    22,    23,   110,   110,    26,
2145 <     174,   174,   174,   206,   224,    72,   131,   174,   110,   110,
2146 <     110,   110,   131,   110,   234,    82,    83,   110,   174,    61,
2147 <     174,   242,   225,   181,   182,   183,   184,   185,   174,   187,
2148 <     188,   242,    99,   191,   192,   193,   174,     1,   196,    20,
2149 <     198,   199,   200,   174,   202,   203,   204,   174,   115,   207,
2150 <     227,   228,   229,   174,   174,   213,   174,   110,   131,   174,
2151 <      87,    88,    89,    44,   174,    92,   174,   174,   239,   239,
2152 <     239,    35,    53,   100,   242,   239,   242,   225,    59,   242,
2153 <     242,   242,   149,   242,    48,   112,   113,   242,   174,   242,
2154 <     242,   158,   159,   242,    75,   162,   163,    61,    62,    63,
2155 <      64,   128,   129,   242,   181,   182,   183,   184,   185,   174,
2156 <     187,   188,   242,   242,   191,   192,   193,    81,   241,   196,
2157 <     101,   198,   199,   200,   131,   202,   203,   204,   109,   156,
2158 <     207,   242,   131,   242,   174,   239,   213,   242,   174,   181,
2159 <     182,   183,   184,   185,   239,   187,   188,   239,   215,   191,
2160 <     192,   193,   242,   242,   196,   242,   198,   199,   200,   242,
2161 <     202,   203,   204,   242,   242,   207,   242,   242,   242,   150,
2162 <     174,   213,   131,   174,   174,   239,   131,   174,   131,   131,
2163 <     131,   131,   131,   242,   131,   110,   131,   168,   131,   239,
2164 <     239,   242,   239,   131,   242,   239,   242,   110,   239,   110,
2165 <     239,   239,   239,   110,   239,   239,   239,   239,   239,   239,
2166 <     239,   239,   110,   239,   239,   239,   239,   239,   239,   239,
2167 <     239,   239,   110,   110,   110,   131,   110,   239,   131,   131,
2168 <     174,   242,   131,   110,   131,   131,   131,   131,   131,   131,
2169 <     131,   239,   131,   239,   239,   110,   131,   239,   242,   239,
2170 <     239,   239,   239,   239,   239,   239,   239,   239,   174,   239,
2171 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2172 <     239,   239,   239,   239,   239,   131,   239,   239,   239,   239,
2173 <     131,   239,   239,   239,   131,   239,   131,   131,   131,   131,
2174 <     131,   239,   174,   239,   131,   131,   131,   239,   239,   239,
2175 <     239,   110,   239,   239,   239,   239,   239,   239,   239,   239,
2176 <     239,   239,   239,   239,   131,   174,   131,   239,   242,   242,
2177 <     239,   242,   242,   131,   239,   242,   131,   239,   242,   239,
2178 <     239,   239,   131,   131,   239,   131,   131,   131,   242,   239,
2179 <     131,   242,   131,   136,   136,   110,  1205,    74,  1002,   239,
2180 <     131,  1290,  1260,   533,   345,  1258,   239,  1248,   239,   239,
2181 <     239,   239,  1145,   239,   239,   239,   239,   239,   239,   239,
2182 <     239,   239,   239,   239,   508,   239,   239,   239,  1244,   239,
2183 <     483,   242,   239,   580,   239,   239,   239,   239,  1263,   239,
2184 <     239,   239,   179,   239,  1265,  1234,   547,   588,  1246,   239,
2185 <     239,   239,   498,   123,  1236,   239,   239,   239,   239,   239,
2186 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2187 <     239,   239,   179,   239,  1096,   239,   239,   239,   239,   239,
2290 <    1242,  1098,   239,   239,  1240,   239,   239,   239,   239,   239,
2291 <      98,    -1,   239,    -1,   302,    -1,    -1,    -1,    -1,   239,
2292 <     466,   239,    -1,    -1,   239,   373,    -1,   243,   242,   242,
2293 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2294 <     239,   239,   239,    -1,    -1,   239,   242,   239,   239,   239,
2295 <     239,    -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,
2296 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2297 <      -1,    -1,   284,    -1,    -1,    -1,   262,    -1,    -1,    -1,
2298 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2299 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2300 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2301 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2302 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2303 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2304 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2305 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2306 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2307 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2308 <     390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2309 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2310 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2311 <      -1,    -1,    -1,    -1,   402
2074 >     595,   596,   300,   301,   217,     1,   217,    99,     1,     1,
2075 >     308,   215,     1,     8,     1,   219,     1,   217,   215,     1,
2076 >     215,     1,   219,   217,   219,    51,   217,    14,   217,     1,
2077 >       1,   215,    24,   215,     1,   219,   217,     1,   217,    31,
2078 >       1,   217,     6,     7,    37,     1,     1,    14,    12,   215,
2079 >       1,   215,     1,   219,     1,   219,    20,     1,    51,    52,
2080 >      53,    54,    26,     1,    28,    29,    30,     1,   215,     1,
2081 >       1,    35,   219,    17,   217,     1,    69,    41,    42,    61,
2082 >      44,    45,    46,   215,   216,   215,    50,    36,    32,   219,
2083 >      61,    55,    36,   391,   392,    59,    60,    89,    24,    63,
2084 >      89,   399,   194,   401,    89,    61,    93,    56,    72,    89,
2085 >     408,   217,    61,   411,   217,    79,    80,    89,    82,    83,
2086 >      84,    85,    86,   119,   422,   423,    93,    61,    89,   217,
2087 >       1,    57,   119,    97,   432,   433,    87,   435,   217,   103,
2088 >     104,   105,    89,   107,   217,    89,   110,   111,   119,   217,
2089 >     114,   217,   119,     1,   150,    87,     1,     1,   119,   185,
2090 >     217,   150,   113,    89,   190,    91,    92,   116,   112,   215,
2091 >     150,    15,    16,   219,   217,    19,    21,    22,   150,   133,
2092 >     134,   113,    27,   147,   128,   119,     1,   151,   119,   150,
2093 >     154,   155,   156,   157,   158,   190,   217,   161,   162,     1,
2094 >       1,   127,   218,   129,   130,   131,   132,   218,   215,   218,
2095 >     206,     1,   219,     3,   218,     5,    17,   206,    89,   150,
2096 >     146,    66,    67,   216,   216,   523,   206,    17,    73,    74,
2097 >      75,    32,    76,    77,    78,    36,   216,    81,   202,   203,
2098 >     204,    89,    32,   207,   170,    89,    36,   191,   212,   216,
2099 >      95,    96,   216,   208,   180,   216,   100,   101,     1,   214,
2100 >     216,   216,   206,   108,   109,   216,    56,   216,    58,   216,
2101 >     208,   115,   216,   118,    89,   206,   214,   218,    68,   150,
2102 >     215,   126,   216,   209,   210,   216,     1,    89,   586,   218,
2103 >     216,   215,    99,    36,   214,   219,   594,   215,   142,    89,
2104 >     215,   219,   150,   215,   219,    40,     9,    10,    11,    24,
2105 >     215,   112,   218,    56,   219,   218,    31,   119,    61,   120,
2106 >     121,   772,   773,   774,   775,   776,   116,    62,   218,    64,
2107 >     137,   138,   139,   140,   141,   150,  1013,  1014,  1015,   183,
2108 >     159,   160,   213,   159,   160,   216,   133,   134,   150,   218,
2109 >       1,   152,   218,   143,   218,     6,     7,   177,   178,   218,
2110 >     218,    12,   218,   218,   218,   218,   218,   102,   216,    20,
2111 >     117,   216,   216,   116,    89,    26,   218,    28,    29,    30,
2112 >     170,   218,   218,   218,    35,   218,   218,   218,     1,     1,
2113 >      41,    42,   218,    44,    45,    46,    99,   218,   213,    50,
2114 >     218,   218,   215,   117,    55,   206,   218,   218,    59,    60,
2115 >     218,    24,    63,   218,   218,   216,   117,   215,   218,   209,
2116 >       1,    72,     3,   218,     5,    37,   216,     1,    79,    80,
2117 >     218,    82,    83,    84,    85,    86,    17,   172,   173,    51,
2118 >      52,    53,    54,    17,    57,   218,    97,   218,   218,     1,
2119 >     218,    32,   103,   104,   105,    36,   107,    69,    32,   110,
2120 >     111,   218,    36,   114,   218,    17,   218,   218,   218,   218,
2121 >     218,   206,   218,   218,   218,    56,    89,    58,    91,    92,
2122 >      32,   218,   218,    99,    36,   218,   218,    68,     4,   218,
2123 >    1085,   218,   218,   218,   218,   218,   147,   218,   218,   218,
2124 >     151,   218,   218,   154,   155,   156,   157,   158,    89,    25,
2125 >     161,   162,   218,   218,   127,    89,   129,   130,   131,   132,
2126 >     218,   218,   218,   218,    40,   218,   218,   218,   218,   218,
2127 >     218,    47,   218,   146,   218,   116,   218,   218,   112,   218,
2128 >     218,   218,   218,   218,   218,   218,    99,   215,    64,   159,
2129 >      13,   202,   203,   204,   128,    99,   207,   170,    99,    99,
2130 >     112,   212,   143,    99,   159,   159,    99,   180,   120,   121,
2131 >      33,    87,   159,   159,   215,   218,   218,   215,    94,   218,
2132 >      43,     0,     1,   218,   218,     4,    49,   218,   218,   170,
2133 >     106,   218,   218,   218,   218,    14,   209,   210,    17,    18,
2134 >     152,   218,    65,   218,    23,   117,   215,   123,   124,   125,
2135 >     218,   218,   218,   218,   218,    34,   218,   191,   218,    38,
2136 >      39,   218,   218,     1,    51,   218,   218,    90,   209,    48,
2137 >     218,   159,   206,   218,   218,    98,   218,    15,    16,   218,
2138 >      99,    19,   159,    62,   159,    99,   117,    99,   159,   159,
2139 >      99,    70,    71,    99,   206,   159,   159,   173,   159,    99,
2140 >      51,    99,    99,    99,   117,    99,   182,    99,   159,    88,
2141 >     159,   187,   218,   136,   159,   218,   159,   193,   159,   159,
2142 >     159,   197,   159,   102,   200,   159,   117,   159,   215,   205,
2143 >     153,   159,   159,   215,    51,   211,   215,   218,    76,    77,
2144 >      78,   159,   117,    81,   218,   218,   117,   117,   215,   218,
2145 >     218,    89,   218,   218,   159,   217,   135,   159,   218,   218,
2146 >     218,    64,   100,   101,   218,   144,   145,   215,    64,   148,
2147 >     149,   218,   218,   215,   218,   159,   199,   115,   165,   166,
2148 >     167,   168,   169,   218,   171,   172,   215,   174,   175,   176,
2149 >     159,   215,   179,   218,   181,   182,   218,   184,   218,   186,
2150 >     159,   188,   189,   218,   142,   192,   117,   218,   218,   117,
2151 >     117,   198,   117,   117,   165,   166,   167,   168,   169,   117,
2152 >     171,   172,   201,   174,   175,   176,   117,   117,   179,   117,
2153 >     181,   182,   135,   184,    99,   186,   117,   188,   189,   135,
2154 >     117,   192,   215,   215,   218,   183,   117,   198,   165,   166,
2155 >     167,   168,   169,     1,   171,   172,   218,   174,   175,   176,
2156 >     215,   164,   179,    99,   181,   182,   218,   184,   164,   186,
2157 >     173,   188,   189,    21,    22,   192,   179,   173,   215,    27,
2158 >     215,   198,   215,   179,   215,   215,   215,   215,   215,   215,
2159 >     193,   215,   195,   196,   215,   215,   215,   193,    99,   195,
2160 >     196,   215,   205,   215,    99,   215,   215,    99,   211,   205,
2161 >      99,    99,   117,   215,    99,   211,    99,    99,    66,    67,
2162 >     215,   117,   159,   117,   218,    73,    74,    75,    99,   215,
2163 >     117,   117,   215,   117,   218,   215,   117,   117,   117,   117,
2164 >     117,   117,   117,   117,   117,   215,   215,    95,    96,   215,
2165 >     159,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2166 >     108,   109,   215,   215,   215,   215,   215,   215,   215,   215,
2167 >     118,   215,   215,   215,   215,   215,   215,   215,   126,   117,
2168 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2169 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2170 >     215,   215,   215,    99,   117,   117,   218,   117,   215,   117,
2171 >     218,   117,   215,   117,   218,   117,    99,   215,   215,   117,
2172 >     159,   122,   215,   117,   215,   117,   117,   117,   218,   117,
2173 >     117,   117,   117,   117,    71,   117,   946,   981,  1222,  1195,
2174 >     983,  1193,    99,   122,   499,   215,   218,   215,   215,   215,
2175 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2176 >     215,   215,   215,   215,   215,   215,   215,   117,   267,   215,
2177 >    1183,   218,   215,   218,   215,   215,   475,   219,   215,   215,
2178 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2179 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2180 >     215,   215,   163,  1080,   215,   450,   215,  1179,   215,   513,
2181 >     215,  1197,   215,  1173,  1199,   215,   215,   327,   215,   288,
2182 >     215,   465,   215,   556,  1181,   112,   215,   548,  1175,   374,
2183 >     166,   386,  1045,    91,   215,   215,    -1,   215,   215,   215,
2184 >     215,  1047,    -1,   215,   218,   218,   215,   215,   215,   215,
2185 >     215,   215,   215,   215,   356,   215,   215,   215,    -1,   215,
2186 >     230,   215,   215,   218,   215,    -1,   215,    -1,    -1,    -1,
2187 >     222,    -1,   243
2188   };
2189  
2190   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2191     symbol of state STATE-NUM.  */
2192   static const yytype_uint16 yystos[] =
2193   {
2194 <       0,   245,     0,     1,     5,    21,    24,    25,    30,    45,
2195 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   149,
2196 <     158,   159,   162,   163,   215,   246,   251,   256,   274,   280,
2197 <     295,   313,   330,   344,   359,   366,   370,   380,   389,   408,
2198 <     418,   424,   428,   438,   498,   514,   535,   239,   240,   241,
2199 <     241,   314,   390,   419,   241,   429,   241,   499,   345,   409,
2200 <     331,   241,   241,   296,   360,   241,   241,   371,   381,   241,
2201 <       1,    31,    41,   100,   275,   276,   277,   278,   279,     1,
2202 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2203 <     107,   121,   122,   132,   141,   227,   228,   229,   515,   516,
2204 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2205 <     527,   528,   529,   530,   531,   532,   533,   534,   241,   241,
2206 <     241,     1,    71,   425,   426,   427,   241,     1,     8,     9,
2207 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2208 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2209 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2210 <     124,   127,   138,   161,   165,   169,   170,   171,   172,   173,
2211 <     177,   178,   186,   216,   218,   220,   226,   231,   236,   439,
2212 <     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
2213 <     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
2214 <     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
2215 <     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2216 <     480,   481,   482,   483,   484,   485,   486,   490,   494,   495,
2217 <     496,   497,   241,   241,   241,   241,     1,   217,   230,   281,
2218 <     282,   283,   284,   285,   286,     1,    98,   126,   252,   253,
2219 <     254,   255,   241,   241,     1,    35,    48,    61,    62,    63,
2220 <      64,    81,   536,   537,   538,   539,   540,   541,   542,   543,
2221 <     544,     1,    31,    67,   100,   102,   103,   143,   145,   146,
2222 <     160,   197,   232,   233,   257,   258,   259,   263,   264,   265,
2223 <     266,   267,   268,   269,   270,   271,   272,   273,   241,   241,
2224 <       1,   100,   367,   368,   369,   239,   242,   242,   242,   240,
2225 <     276,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2226 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   240,
2227 <     516,     1,    22,    23,    26,    87,    88,    89,    92,   100,
2228 <     112,   113,   128,   129,   156,   315,   316,   317,   318,   319,
2229 <     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2230 <       1,     3,     6,    24,    43,    47,    66,    68,    80,   100,
2231 <     130,   157,   232,   391,   392,   393,   394,   395,   396,   397,
2232 <     398,   399,   400,   404,   405,   406,   407,     1,    71,   133,
2233 <     420,   421,   422,   423,   242,   240,   426,     1,   100,   133,
2234 <     164,   430,   434,   435,   436,   437,   242,   242,   242,   242,
2235 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2236 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2237 <     242,   242,   242,   242,   491,   242,   487,   242,   242,   242,
2238 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2239 <     242,   242,   242,   242,   242,   242,   242,   240,   440,     1,
2240 <       4,    39,    42,    83,   100,   225,   500,   501,   502,   503,
2241 <     504,   508,   509,   510,     1,    24,    43,    47,   125,   134,
2242 <     135,   167,   225,   346,   347,   348,   349,   350,   351,   352,
2243 <     356,   357,   358,     1,   133,   164,   225,   410,   414,   415,
2244 <     416,   417,     1,    47,    66,    71,   130,   332,   336,   337,
2245 <     338,   342,   343,   239,   242,   242,   240,   282,   238,   239,
2246 <     242,   242,   240,   253,     1,    24,    43,    47,   100,   125,
2247 <     144,   206,   225,   297,   298,   299,   300,   301,   302,   303,
2248 <     304,   305,   309,     1,    21,   104,   133,   361,   362,   363,
2249 <     364,   365,   242,   242,   242,   242,   242,   242,   242,   240,
2250 <     537,   239,   242,   242,   242,   242,   242,   242,   242,   260,
2251 <     242,   242,   242,   242,   240,   258,     1,   100,   164,   225,
2252 <     372,   373,   374,   375,   376,     1,   100,   164,   382,   383,
2253 <     384,   385,   242,   240,   368,   131,   131,   131,   239,   174,
2254 <     110,   110,   174,   174,   110,   248,   248,   110,   110,   174,
2255 <     174,   110,   248,   174,   174,   174,   174,   174,   239,   239,
2256 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2257 <     242,   242,   242,   240,   316,   239,   242,   242,   242,   242,
2258 <     401,   242,   242,   242,   242,   242,   242,   242,   240,   392,
2259 <     242,   242,   240,   421,   131,   239,   242,   242,   431,   240,
2260 <     435,   174,   248,   248,   110,   174,   174,   110,   131,   174,
2261 <     110,   110,   110,   174,   174,   174,   248,   131,   174,   110,
2262 <     110,   248,   110,   110,   131,   110,   110,   174,   174,   242,
2263 <     174,   242,   248,   248,   174,   248,   174,   174,   174,   174,
2264 <     175,   174,   175,   174,   174,   248,   248,   110,   250,   131,
2265 <     248,   174,   174,   174,   174,   239,   511,   242,   242,   505,
2266 <     242,   242,   240,   501,   239,   242,   242,   353,   242,   242,
2267 <     242,   242,   242,   240,   347,   242,   411,   242,   240,   415,
2268 <     239,   333,   242,   242,   242,   240,   337,   174,   174,   239,
2269 <     241,   131,   131,   239,   239,   242,   242,   310,   242,   242,
2270 <     242,   306,   242,   240,   298,   239,   242,   242,   242,   240,
2271 <     362,   174,   174,   174,   131,   174,   174,   248,   239,   131,
2272 <     174,   131,   131,   131,   131,   131,   242,   131,   110,   131,
2273 <     131,   239,   239,   242,   377,   242,   240,   373,   239,   242,
2274 <     386,   240,   383,   131,   239,   239,   239,   239,   239,   239,
2275 <     239,   239,   239,   151,   152,   153,   154,   155,   247,   248,
2276 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2277 <     239,   239,   239,   110,   110,   248,   110,   110,   110,   110,
2278 <     131,   110,   110,   248,   248,   250,   239,   131,   194,   195,
2279 <     131,   174,   242,   131,   131,   131,   131,   110,   131,   131,
2280 <     239,   131,   131,   239,   239,   131,   131,   242,   239,   239,
2281 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2282 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2283 <     239,   239,   239,   239,   239,   239,   239,    61,   181,   182,
2284 <     183,   184,   185,   187,   188,   191,   192,   193,   196,   198,
2285 <     199,   200,   202,   203,   204,   207,   213,   492,   493,   239,
2286 <      61,   181,   182,   183,   184,   185,   187,   188,   191,   192,
2287 <     193,   196,   198,   199,   200,   202,   203,   204,   207,   213,
2288 <     488,   489,   239,   239,   239,   239,   239,   239,   239,   239,
2289 <     239,   239,   239,   239,   239,   239,   239,    14,    15,    16,
2290 <     249,   250,   239,   239,   239,   239,   239,   239,   239,   242,
2291 <     248,   174,   242,   131,   131,   239,   131,   174,   242,   131,
2292 <     110,   131,   131,   131,   239,   131,   242,   131,   239,   242,
2293 <     131,   131,   110,   340,   341,   239,   239,   239,     1,   100,
2294 <     164,   237,   287,   288,   289,   290,   291,   239,   239,   131,
2295 <     174,   242,   131,   131,   131,   242,   131,   239,   131,   131,
2296 <     131,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2297 <     239,   239,   239,   239,   239,   239,   147,   148,   261,   262,
2298 <     239,   239,   239,   239,   131,   242,   131,   239,   131,   242,
2299 <     239,   239,   247,   247,   247,   247,   247,   239,   239,   239,
2300 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2301 <     239,   239,   239,   239,   239,    10,    12,   205,   219,   402,
2302 <     403,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2303 <     239,   239,   136,   432,   433,   239,   243,   239,   243,   249,
2304 <     249,   249,    11,   176,   512,   513,   239,   239,    11,   176,
2305 <     506,   507,   239,   239,   239,   239,    20,    44,    53,    59,
2306 <      75,   101,   109,   150,   168,   354,   355,   239,   239,   239,
2307 <     239,   239,   239,   136,   412,   413,   239,    61,   201,   205,
2308 <     334,   335,   239,   239,   179,   243,   339,   239,   242,   292,
2309 <     242,   240,   288,   239,   239,     5,    32,    51,    57,    74,
2310 <      98,   105,   119,   137,   139,   140,   189,   199,   208,   212,
2311 <     214,   224,   234,   311,   312,   239,   239,   239,    61,   181,
2312 <     182,   183,   184,   185,   187,   188,   191,   192,   193,   196,
2313 <     198,   199,   200,   202,   203,   204,   207,   213,   307,   308,
2314 <     239,   239,   239,   239,   239,   243,   239,    74,   149,   180,
2315 <     189,   196,   208,   210,   211,   224,   234,   378,   379,   239,
2316 <     239,    74,   149,   180,   189,   196,   208,   210,   211,   224,
2441 <     234,   387,   388,   239,   243,   239,   243,   493,   489,   239,
2442 <     243,   239,   243,   239,   243,   239,   243,   239,   243,   110,
2443 <     341,   239,   131,   242,   209,   250,   239,   239,   243,   239,
2444 <     243,   262,   239,   243,   239,   243,   403,   433,   513,   507,
2445 <     355,   413,   335,   239,    51,    72,    74,   115,   188,   189,
2446 <     225,   293,   294,   239,   239,   312,   308,   379,   388,   239,
2447 <     243,   294
2194 >       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2195 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2196 >     145,   148,   149,   201,   222,   227,   232,   254,   260,   274,
2197 >     292,   309,   323,   338,   345,   349,   359,   368,   388,   398,
2198 >     404,   408,   418,   476,   493,   215,   216,   217,   217,   293,
2199 >     369,   399,   217,   409,   217,   324,   389,   310,   217,   217,
2200 >     275,   339,   217,   217,   350,   360,   217,     1,    24,    31,
2201 >      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2202 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2203 >     126,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2204 >     486,   487,   488,   489,   490,   491,   492,   217,   217,   217,
2205 >       1,    61,   405,   406,   407,   217,     1,     6,     7,    12,
2206 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2207 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2208 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2209 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2210 >     162,   202,   203,   204,   207,   212,   419,   420,   421,   422,
2211 >     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
2212 >     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
2213 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2214 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2215 >     463,   464,   465,   469,   473,   474,   475,   217,   217,   217,
2216 >       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2217 >     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2218 >      53,    54,    69,   494,   495,   496,   497,   498,   499,   500,
2219 >     501,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2220 >     131,   132,   146,   170,   180,   209,   210,   233,   234,   235,
2221 >     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2222 >     250,   251,   252,   253,   217,   217,     1,    89,   346,   347,
2223 >     348,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2224 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2225 >     218,   216,   478,     1,    15,    16,    19,    76,    77,    78,
2226 >      81,    89,   100,   101,   115,   142,   183,   294,   295,   296,
2227 >     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2228 >     307,   308,     1,     3,     5,    17,    32,    36,    56,    58,
2229 >      68,    89,   116,   143,   170,   209,   370,   371,   372,   373,
2230 >     374,   375,   376,   377,   378,   379,   383,   384,   385,   386,
2231 >     387,     1,    61,   119,   400,   401,   402,   403,   218,   216,
2232 >     406,     1,    89,   119,   150,   410,   414,   415,   416,   417,
2233 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2234 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2235 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   470,
2236 >     218,   466,   218,   218,   218,   218,   218,   218,   218,   218,
2237 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   216,
2238 >     420,     1,    17,    32,    36,   112,   120,   121,   152,   206,
2239 >     325,   326,   327,   328,   329,   330,   331,   335,   336,   337,
2240 >       1,   119,   150,   206,   390,   394,   395,   396,   397,     1,
2241 >      36,    56,    61,   116,   311,   315,   316,   317,   321,   322,
2242 >     215,   218,   216,   262,   214,   215,   218,   218,   216,   229,
2243 >       1,    17,    32,    36,    89,   112,   128,   191,   206,   276,
2244 >     277,   278,   279,   280,   281,   282,   283,   284,   288,     1,
2245 >      14,    93,   119,   340,   341,   342,   343,   344,   218,   218,
2246 >     218,   218,   218,   218,   216,   495,   215,   218,   218,   218,
2247 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2248 >     218,   218,   216,   234,     1,    89,   150,   206,   351,   352,
2249 >     353,   354,   355,     1,    89,   150,   361,   362,   363,   364,
2250 >     218,   216,   347,   117,   117,   117,   215,    99,    99,   159,
2251 >      99,   224,   224,    99,    99,    99,   159,   159,    99,   224,
2252 >     159,   159,   215,   215,   218,   218,   218,   218,   218,   218,
2253 >     218,   218,   218,   218,   218,   218,   218,   216,   295,   215,
2254 >     218,   218,   218,   218,   380,   218,   218,   218,   218,   218,
2255 >     218,   218,   218,   216,   371,   218,   218,   216,   401,   117,
2256 >     215,   218,   218,   411,   216,   415,   159,   224,   224,    99,
2257 >     159,   159,    99,   117,   159,   224,   159,   224,    99,    99,
2258 >      99,   159,   159,   159,   224,    99,    99,   224,    99,    99,
2259 >     117,    99,    99,   159,   159,   218,   159,   218,   224,   224,
2260 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2261 >     224,   224,   117,   224,   159,   159,   159,   215,   215,   218,
2262 >     218,   332,   218,   218,   218,   218,   218,   216,   326,   218,
2263 >     391,   218,   216,   395,   215,   312,   218,   218,   218,   216,
2264 >     316,   159,   215,   217,   117,   117,   215,   215,   218,   218,
2265 >     289,   218,   218,   218,   285,   218,   216,   277,   215,   218,
2266 >     218,   218,   216,   341,   159,   159,   117,   159,   159,   224,
2267 >     215,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2268 >     134,   237,   238,   133,   134,   239,   240,   117,   117,    99,
2269 >     117,   117,   215,   215,   218,   356,   218,   216,   352,   215,
2270 >     218,   365,   216,   362,   117,   215,   215,   215,   215,   215,
2271 >     215,   215,   137,   138,   139,   140,   141,   223,   224,   215,
2272 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2273 >      99,    99,   224,    99,    99,    99,    99,   117,    99,    99,
2274 >     224,    99,   226,   226,   215,   117,   177,   178,   117,   159,
2275 >     218,   117,   117,   117,   117,    99,   117,   117,   117,   215,
2276 >     117,   117,   215,   215,   117,   117,   218,   215,   215,   215,
2277 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2278 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2279 >     215,   215,   215,   215,   215,   215,   215,    51,   165,   166,
2280 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2281 >     182,   184,   186,   188,   189,   192,   198,   471,   472,   215,
2282 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2283 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2284 >     467,   468,   215,   215,   215,   215,   215,   215,   215,   215,
2285 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2286 >     215,   117,   159,   218,   117,    99,   117,   117,   117,   215,
2287 >     117,   218,   117,   215,   218,   117,   117,    99,   319,   320,
2288 >     215,   215,     1,    89,   150,   213,   266,   267,   268,   269,
2289 >     270,   215,   215,   117,   159,   218,   117,   117,   117,   218,
2290 >     117,   215,   117,   117,   117,   215,   215,   215,   215,   215,
2291 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2292 >     215,   219,   215,   219,   215,   215,   215,   215,   215,   117,
2293 >     218,   117,   215,   117,   218,   215,   215,   223,   223,   223,
2294 >     223,   223,   215,   215,   215,   215,   215,   215,   215,   215,
2295 >     215,   215,   215,     9,    10,    11,   225,   226,   215,   215,
2296 >     215,   215,   215,   215,   215,     8,   190,   381,   382,   215,
2297 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2298 >     215,   122,   412,   413,   215,   219,   215,   219,   215,   215,
2299 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   199,
2300 >     333,   334,   215,   215,   215,   215,   215,   215,   122,   392,
2301 >     393,   215,    51,   185,   190,   313,   314,   215,   215,   163,
2302 >     219,   318,   215,   218,   271,   218,   216,   267,   215,   215,
2303 >       4,    25,    40,    47,    64,    87,    94,   106,   123,   124,
2304 >     125,   173,   182,   187,   193,   197,   200,   205,   211,   290,
2305 >     291,   215,   215,   215,    51,   165,   166,   167,   168,   169,
2306 >     171,   172,   174,   175,   176,   179,   181,   182,   184,   186,
2307 >     188,   189,   192,   198,   286,   287,   215,   215,   215,   215,
2308 >     238,   240,   215,    64,   135,   164,   173,   179,   193,   195,
2309 >     196,   205,   211,   357,   358,   215,   215,    64,   135,   164,
2310 >     173,   179,   193,   195,   196,   205,   211,   366,   367,   225,
2311 >     225,   225,   215,   219,   215,   219,   472,   468,   215,   219,
2312 >     215,   219,   215,   219,    99,   320,   215,   117,   218,   194,
2313 >     226,   215,   215,   219,   215,   219,   215,   219,   215,   219,
2314 >     382,   413,   334,   393,   314,   215,    40,    62,    64,   102,
2315 >     172,   173,   206,   272,   273,   215,   215,   291,   287,   358,
2316 >     367,   215,   219,   273
2317   };
2318  
2319   #define yyerrok         (yyerrstatus = 0)
# Line 2474 | Line 2343 | static const yytype_uint16 yystos[] =
2343  
2344   #define YYRECOVERING()  (!!yyerrstatus)
2345  
2346 < #define YYBACKUP(Token, Value)                                  \
2347 < do                                                              \
2348 <  if (yychar == YYEMPTY && yylen == 1)                          \
2349 <    {                                                           \
2350 <      yychar = (Token);                                         \
2351 <      yylval = (Value);                                         \
2352 <      YYPOPSTACK (1);                                           \
2353 <      goto yybackup;                                            \
2354 <    }                                                           \
2355 <  else                                                          \
2356 <    {                                                           \
2346 > #define YYBACKUP(Token, Value)                                  \
2347 > do                                                              \
2348 >  if (yychar == YYEMPTY)                                        \
2349 >    {                                                           \
2350 >      yychar = (Token);                                         \
2351 >      yylval = (Value);                                         \
2352 >      YYPOPSTACK (yylen);                                       \
2353 >      yystate = *yyssp;                                         \
2354 >      goto yybackup;                                            \
2355 >    }                                                           \
2356 >  else                                                          \
2357 >    {                                                           \
2358        yyerror (YY_("syntax error: cannot back up")); \
2359        YYERROR;                                                  \
2360      }                                                           \
2361   while (YYID (0))
2362  
2363 <
2363 > /* Error token number */
2364   #define YYTERROR        1
2365   #define YYERRCODE       256
2366  
2367  
2498 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2499   If N is 0, then set CURRENT to the empty location which ends
2500   the previous symbol: RHS[0] (always defined).  */
2501
2502 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2503 #ifndef YYLLOC_DEFAULT
2504 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2505    do                                                                  \
2506      if (YYID (N))                                                    \
2507        {                                                               \
2508          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2509          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2510          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2511          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2512        }                                                               \
2513      else                                                              \
2514        {                                                               \
2515          (Current).first_line   = (Current).last_line   =              \
2516            YYRHSLOC (Rhs, 0).last_line;                                \
2517          (Current).first_column = (Current).last_column =              \
2518            YYRHSLOC (Rhs, 0).last_column;                              \
2519        }                                                               \
2520    while (YYID (0))
2521 #endif
2522
2523
2368   /* This macro is provided for backward compatibility. */
2525
2369   #ifndef YY_LOCATION_PRINT
2370   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2371   #endif
2372  
2373  
2374   /* YYLEX -- calling `yylex' with the right arguments.  */
2532
2375   #ifdef YYLEX_PARAM
2376   # define YYLEX yylex (YYLEX_PARAM)
2377   #else
# Line 2579 | Line 2421 | yy_symbol_value_print (yyoutput, yytype,
2421      YYSTYPE const * const yyvaluep;
2422   #endif
2423   {
2424 +  FILE *yyo = yyoutput;
2425 +  YYUSE (yyo);
2426    if (!yyvaluep)
2427      return;
2428   # ifdef YYPRINT
# Line 2590 | Line 2434 | yy_symbol_value_print (yyoutput, yytype,
2434    switch (yytype)
2435      {
2436        default:
2437 <        break;
2437 >        break;
2438      }
2439   }
2440  
# Line 2830 | Line 2674 | static int
2674   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2675                  yytype_int16 *yyssp, int yytoken)
2676   {
2677 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2677 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2678    YYSIZE_T yysize = yysize0;
2835  YYSIZE_T yysize1;
2679    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2680    /* Internationalized format string. */
2681 <  const char *yyformat = 0;
2681 >  const char *yyformat = YY_NULL;
2682    /* Arguments of yyformat. */
2683    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2684    /* Number of reported tokens (one for the "unexpected", one per
# Line 2895 | Line 2738 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2738                      break;
2739                    }
2740                  yyarg[yycount++] = yytname[yyx];
2741 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2742 <                if (! (yysize <= yysize1
2743 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2744 <                  return 2;
2745 <                yysize = yysize1;
2741 >                {
2742 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2743 >                  if (! (yysize <= yysize1
2744 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2745 >                    return 2;
2746 >                  yysize = yysize1;
2747 >                }
2748                }
2749          }
2750      }
# Line 2919 | Line 2764 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2764   # undef YYCASE_
2765      }
2766  
2767 <  yysize1 = yysize + yystrlen (yyformat);
2768 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2769 <    return 2;
2770 <  yysize = yysize1;
2767 >  {
2768 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2769 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2770 >      return 2;
2771 >    yysize = yysize1;
2772 >  }
2773  
2774    if (*yymsg_alloc < yysize)
2775      {
# Line 2982 | Line 2829 | yydestruct (yymsg, yytype, yyvaluep)
2829      {
2830  
2831        default:
2832 <        break;
2832 >        break;
2833      }
2834   }
2835  
2836  
2990 /* Prevent warnings from -Wmissing-prototypes.  */
2991 #ifdef YYPARSE_PARAM
2992 #if defined __STDC__ || defined __cplusplus
2993 int yyparse (void *YYPARSE_PARAM);
2994 #else
2995 int yyparse ();
2996 #endif
2997 #else /* ! YYPARSE_PARAM */
2998 #if defined __STDC__ || defined __cplusplus
2999 int yyparse (void);
3000 #else
3001 int yyparse ();
3002 #endif
3003 #endif /* ! YYPARSE_PARAM */
2837  
2838  
2839   /* The lookahead symbol.  */
2840   int yychar;
2841  
2842 +
2843 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2844 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2845 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2846 + #endif
2847 + #ifndef YY_INITIAL_VALUE
2848 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2849 + #endif
2850 +
2851   /* The semantic value of the lookahead symbol.  */
2852 < YYSTYPE yylval;
2852 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2853  
2854   /* Number of syntax errors so far.  */
2855   int yynerrs;
# Line 3047 | Line 2889 | yyparse ()
2889         `yyss': related to states.
2890         `yyvs': related to semantic values.
2891  
2892 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2892 >       Refer to the stacks through separate pointers, to allow yyoverflow
2893         to reallocate them elsewhere.  */
2894  
2895      /* The state stack.  */
# Line 3065 | Line 2907 | yyparse ()
2907    int yyn;
2908    int yyresult;
2909    /* Lookahead token as an internal (translated) token number.  */
2910 <  int yytoken;
2910 >  int yytoken = 0;
2911    /* The variables used to return semantic value and location from the
2912       action routines.  */
2913    YYSTYPE yyval;
# Line 3083 | Line 2925 | yyparse ()
2925       Keep to zero when no symbol should be popped.  */
2926    int yylen = 0;
2927  
2928 <  yytoken = 0;
2929 <  yyss = yyssa;
3088 <  yyvs = yyvsa;
2928 >  yyssp = yyss = yyssa;
2929 >  yyvsp = yyvs = yyvsa;
2930    yystacksize = YYINITDEPTH;
2931  
2932    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3094 | Line 2935 | yyparse ()
2935    yyerrstatus = 0;
2936    yynerrs = 0;
2937    yychar = YYEMPTY; /* Cause a token to be read.  */
3097
3098  /* Initialize stack pointers.
3099     Waste one element of value and location stack
3100     so that they stay on the same level as the state stack.
3101     The wasted elements are never initialized.  */
3102  yyssp = yyss;
3103  yyvsp = yyvs;
3104
2938    goto yysetstate;
2939  
2940   /*------------------------------------------------------------.
# Line 3242 | Line 3075 | yybackup:
3075    yychar = YYEMPTY;
3076  
3077    yystate = yyn;
3078 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3079    *++yyvsp = yylval;
3080 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3081  
3082    goto yynewstate;
3083  
# Line 3278 | Line 3113 | yyreduce:
3113    YY_REDUCE_PRINT (yyn);
3114    switch (yyn)
3115      {
3116 <        case 27:
3117 <
3118 < /* Line 1806 of yacc.c  */
3284 < #line 404 "ircd_parser.y"
3116 >        case 26:
3117 > /* Line 1792 of yacc.c  */
3118 > #line 384 "conf_parser.y"
3119      { (yyval.number) = 0; }
3120      break;
3121  
3122 <  case 29:
3123 <
3124 < /* Line 1806 of yacc.c  */
3291 < #line 406 "ircd_parser.y"
3122 >  case 28:
3123 > /* Line 1792 of yacc.c  */
3124 > #line 386 "conf_parser.y"
3125      {
3126                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3127                  }
3128      break;
3129  
3130 <  case 30:
3131 <
3132 < /* Line 1806 of yacc.c  */
3300 < #line 410 "ircd_parser.y"
3130 >  case 29:
3131 > /* Line 1792 of yacc.c  */
3132 > #line 390 "conf_parser.y"
3133      {
3134                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3135                  }
3136      break;
3137  
3138 <  case 31:
3139 <
3140 < /* Line 1806 of yacc.c  */
3309 < #line 414 "ircd_parser.y"
3138 >  case 30:
3139 > /* Line 1792 of yacc.c  */
3140 > #line 394 "conf_parser.y"
3141      {
3142                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3143                  }
3144      break;
3145  
3146 <  case 32:
3147 <
3148 < /* Line 1806 of yacc.c  */
3318 < #line 418 "ircd_parser.y"
3146 >  case 31:
3147 > /* Line 1792 of yacc.c  */
3148 > #line 398 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3151                  }
3152      break;
3153  
3154 <  case 33:
3155 <
3156 < /* Line 1806 of yacc.c  */
3327 < #line 422 "ircd_parser.y"
3154 >  case 32:
3155 > /* Line 1792 of yacc.c  */
3156 > #line 402 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162 <  case 34:
3163 <
3164 < /* Line 1806 of yacc.c  */
3336 < #line 426 "ircd_parser.y"
3162 >  case 33:
3163 > /* Line 1792 of yacc.c  */
3164 > #line 406 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170 <  case 35:
3171 <
3172 < /* Line 1806 of yacc.c  */
3345 < #line 431 "ircd_parser.y"
3170 >  case 34:
3171 > /* Line 1792 of yacc.c  */
3172 > #line 411 "conf_parser.y"
3173      { (yyval.number) = 0; }
3174      break;
3175  
3176 <  case 37:
3177 <
3178 < /* Line 1806 of yacc.c  */
3352 < #line 432 "ircd_parser.y"
3176 >  case 36:
3177 > /* Line 1792 of yacc.c  */
3178 > #line 412 "conf_parser.y"
3179      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3180      break;
3181  
3182 <  case 38:
3183 <
3184 < /* Line 1806 of yacc.c  */
3359 < #line 433 "ircd_parser.y"
3182 >  case 37:
3183 > /* Line 1792 of yacc.c  */
3184 > #line 413 "conf_parser.y"
3185      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3186      break;
3187  
3188 <  case 39:
3189 <
3190 < /* Line 1806 of yacc.c  */
3366 < #line 434 "ircd_parser.y"
3188 >  case 38:
3189 > /* Line 1792 of yacc.c  */
3190 > #line 414 "conf_parser.y"
3191      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3192      break;
3193  
3194 <  case 40:
3195 <
3196 < /* Line 1806 of yacc.c  */
3373 < #line 435 "ircd_parser.y"
3194 >  case 39:
3195 > /* Line 1792 of yacc.c  */
3196 > #line 415 "conf_parser.y"
3197      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3198      break;
3199  
3200 <  case 47:
3201 <
3202 < /* Line 1806 of yacc.c  */
3380 < #line 449 "ircd_parser.y"
3200 >  case 46:
3201 > /* Line 1792 of yacc.c  */
3202 > #line 429 "conf_parser.y"
3203      {
3204    if (conf_parser_ctx.pass == 2)
3205      add_conf_module(libio_basename(yylval.string));
3206   }
3207      break;
3208  
3209 <  case 48:
3210 <
3211 < /* Line 1806 of yacc.c  */
3390 < #line 455 "ircd_parser.y"
3209 >  case 47:
3210 > /* Line 1792 of yacc.c  */
3211 > #line 435 "conf_parser.y"
3212      {
3213    if (conf_parser_ctx.pass == 2)
3214      mod_add_path(yylval.string);
3215   }
3216      break;
3217  
3218 <  case 65:
3219 <
3220 < /* Line 1806 of yacc.c  */
3400 < #line 475 "ircd_parser.y"
3218 >  case 71:
3219 > /* Line 1792 of yacc.c  */
3220 > #line 460 "conf_parser.y"
3221      {
3222   #ifdef HAVE_LIBCRYPTO
3223 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3224 <    ServerInfo.tls_version = 0;
3223 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3224 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3225   #endif
3226   }
3227      break;
3228  
3229 <  case 66:
3230 <
3231 < /* Line 1806 of yacc.c  */
3412 < #line 481 "ircd_parser.y"
3229 >  case 72:
3230 > /* Line 1792 of yacc.c  */
3231 > #line 466 "conf_parser.y"
3232      {
3233   #ifdef HAVE_LIBCRYPTO
3234 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3235 <  {
3417 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3418 <    {
3419 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3420 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3421 <    }
3422 <
3423 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3424 <    {
3425 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3426 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3427 <    }
3428 <  }
3234 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3235 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3236   #endif
3237   }
3238      break;
3239  
3240 <  case 69:
3241 <
3242 < /* Line 1806 of yacc.c  */
3436 < #line 502 "ircd_parser.y"
3240 >  case 75:
3241 > /* Line 1792 of yacc.c  */
3242 > #line 475 "conf_parser.y"
3243      {
3244   #ifdef HAVE_LIBCRYPTO
3245 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3246 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3245 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3246 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3247   #endif
3248   }
3249      break;
3250  
3251 <  case 70:
3252 <
3253 < /* Line 1806 of yacc.c  */
3448 < #line 508 "ircd_parser.y"
3251 >  case 76:
3252 > /* Line 1792 of yacc.c  */
3253 > #line 481 "conf_parser.y"
3254      {
3255   #ifdef HAVE_LIBCRYPTO
3256 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3257 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3256 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3257 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3258   #endif
3259   }
3260      break;
3261  
3262 <  case 71:
3263 <
3264 < /* Line 1806 of yacc.c  */
3460 < #line 516 "ircd_parser.y"
3262 >  case 77:
3263 > /* Line 1792 of yacc.c  */
3264 > #line 489 "conf_parser.y"
3265      {
3266   #ifdef HAVE_LIBCRYPTO
3267    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3497 | Line 3301 | yyreduce:
3301   }
3302      break;
3303  
3304 <  case 72:
3305 <
3306 < /* Line 1806 of yacc.c  */
3503 < #line 555 "ircd_parser.y"
3304 >  case 78:
3305 > /* Line 1792 of yacc.c  */
3306 > #line 528 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309    if (conf_parser_ctx.pass == 1)
# Line 3519 | Line 3322 | yyreduce:
3322        ServerInfo.rsa_private_key_file = NULL;
3323      }
3324  
3325 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3325 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3326  
3327      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3328      {
# Line 3527 | Line 3330 | yyreduce:
3330        break;
3331      }
3332  
3333 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3531 <      0, NULL);
3333 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3334  
3335      BIO_set_close(file, BIO_CLOSE);
3336      BIO_free(file);
# Line 3561 | Line 3363 | yyreduce:
3363   }
3364      break;
3365  
3366 <  case 73:
3366 >  case 79:
3367 > /* Line 1792 of yacc.c  */
3368 > #line 587 "conf_parser.y"
3369 >    {
3370 > /* TBD - XXX: error reporting */
3371 > #ifdef HAVE_LIBCRYPTO
3372 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3373 >  {
3374 >    BIO *file = BIO_new_file(yylval.string, "r");
3375 >
3376 >    if (file)
3377 >    {
3378 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3379 >
3380 >      BIO_free(file);
3381 >
3382 >      if (dh)
3383 >      {
3384 >        if (DH_size(dh) < 128)
3385 >          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3386 >        else
3387 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3388 >
3389 >        DH_free(dh);
3390 >      }
3391 >    }
3392 >  }
3393 > #endif
3394 > }
3395 >    break;
3396 >
3397 >  case 80:
3398 > /* Line 1792 of yacc.c  */
3399 > #line 615 "conf_parser.y"
3400 >    {
3401 > #ifdef HAVE_LIBCRYPTO
3402 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3403 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3404 > #endif
3405 > }
3406 >    break;
3407  
3408 < /* Line 1806 of yacc.c  */
3409 < #line 615 "ircd_parser.y"
3408 >  case 81:
3409 > /* Line 1792 of yacc.c  */
3410 > #line 623 "conf_parser.y"
3411      {
3412    /* this isn't rehashable */
3413    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3414    {
3415      if (valid_servname(yylval.string))
3416 <      DupString(ServerInfo.name, yylval.string);
3416 >      ServerInfo.name = xstrdup(yylval.string);
3417      else
3418      {
3419        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3580 | Line 3423 | yyreduce:
3423   }
3424      break;
3425  
3426 <  case 74:
3427 <
3428 < /* Line 1806 of yacc.c  */
3586 < #line 630 "ircd_parser.y"
3426 >  case 82:
3427 > /* Line 1792 of yacc.c  */
3428 > #line 638 "conf_parser.y"
3429      {
3430    /* this isn't rehashable */
3431    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3432    {
3433      if (valid_sid(yylval.string))
3434 <      DupString(ServerInfo.sid, yylval.string);
3434 >      ServerInfo.sid = xstrdup(yylval.string);
3435      else
3436      {
3437        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3599 | Line 3441 | yyreduce:
3441   }
3442      break;
3443  
3444 <  case 75:
3445 <
3446 < /* Line 1806 of yacc.c  */
3605 < #line 645 "ircd_parser.y"
3444 >  case 83:
3445 > /* Line 1792 of yacc.c  */
3446 > #line 653 "conf_parser.y"
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449    {
3450      MyFree(ServerInfo.description);
3451 <    DupString(ServerInfo.description,yylval.string);
3451 >    ServerInfo.description = xstrdup(yylval.string);
3452    }
3453   }
3454      break;
3455  
3456 <  case 76:
3457 <
3458 < /* Line 1806 of yacc.c  */
3618 < #line 654 "ircd_parser.y"
3456 >  case 84:
3457 > /* Line 1792 of yacc.c  */
3458 > #line 662 "conf_parser.y"
3459      {
3460    if (conf_parser_ctx.pass == 2)
3461    {
# Line 3625 | Line 3465 | yyreduce:
3465        p = '\0';
3466  
3467      MyFree(ServerInfo.network_name);
3468 <    DupString(ServerInfo.network_name, yylval.string);
3468 >    ServerInfo.network_name = xstrdup(yylval.string);
3469    }
3470   }
3471      break;
3472  
3473 <  case 77:
3474 <
3475 < /* Line 1806 of yacc.c  */
3636 < #line 668 "ircd_parser.y"
3473 >  case 85:
3474 > /* Line 1792 of yacc.c  */
3475 > #line 676 "conf_parser.y"
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478    {
3479      MyFree(ServerInfo.network_desc);
3480 <    DupString(ServerInfo.network_desc, yylval.string);
3480 >    ServerInfo.network_desc = xstrdup(yylval.string);
3481    }
3482   }
3483      break;
3484  
3485 <  case 78:
3486 <
3487 < /* Line 1806 of yacc.c  */
3649 < #line 677 "ircd_parser.y"
3485 >  case 86:
3486 > /* Line 1792 of yacc.c  */
3487 > #line 685 "conf_parser.y"
3488      {
3489    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3490    {
# Line 3675 | Line 3513 | yyreduce:
3513   }
3514      break;
3515  
3516 <  case 79:
3517 <
3518 < /* Line 1806 of yacc.c  */
3681 < #line 705 "ircd_parser.y"
3516 >  case 87:
3517 > /* Line 1792 of yacc.c  */
3518 > #line 713 "conf_parser.y"
3519      {
3520   #ifdef IPV6
3521    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3709 | Line 3546 | yyreduce:
3546   }
3547      break;
3548  
3549 <  case 80:
3550 <
3551 < /* Line 1806 of yacc.c  */
3715 < #line 735 "ircd_parser.y"
3549 >  case 88:
3550 > /* Line 1792 of yacc.c  */
3551 > #line 743 "conf_parser.y"
3552      {
3553    if (conf_parser_ctx.pass == 2)
3554    {
# Line 3736 | Line 3572 | yyreduce:
3572   }
3573      break;
3574  
3575 <  case 81:
3576 <
3577 < /* Line 1806 of yacc.c  */
3742 < #line 758 "ircd_parser.y"
3575 >  case 89:
3576 > /* Line 1792 of yacc.c  */
3577 > #line 766 "conf_parser.y"
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580      ServerInfo.hub = yylval.number;
3581   }
3582      break;
3583  
3584 <  case 89:
3585 <
3586 < /* Line 1806 of yacc.c  */
3752 < #line 773 "ircd_parser.y"
3584 >  case 97:
3585 > /* Line 1792 of yacc.c  */
3586 > #line 781 "conf_parser.y"
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589    {
3590      MyFree(AdminInfo.name);
3591 <    DupString(AdminInfo.name, yylval.string);
3591 >    AdminInfo.name = xstrdup(yylval.string);
3592    }
3593   }
3594      break;
3595  
3596 <  case 90:
3597 <
3598 < /* Line 1806 of yacc.c  */
3765 < #line 782 "ircd_parser.y"
3596 >  case 98:
3597 > /* Line 1792 of yacc.c  */
3598 > #line 790 "conf_parser.y"
3599      {
3600    if (conf_parser_ctx.pass == 2)
3601    {
3602      MyFree(AdminInfo.email);
3603 <    DupString(AdminInfo.email, yylval.string);
3603 >    AdminInfo.email = xstrdup(yylval.string);
3604    }
3605   }
3606      break;
3607  
3608 <  case 91:
3609 <
3610 < /* Line 1806 of yacc.c  */
3778 < #line 791 "ircd_parser.y"
3608 >  case 99:
3609 > /* Line 1792 of yacc.c  */
3610 > #line 799 "conf_parser.y"
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613    {
3614      MyFree(AdminInfo.description);
3615 <    DupString(AdminInfo.description, yylval.string);
3615 >    AdminInfo.description = xstrdup(yylval.string);
3616    }
3617   }
3618      break;
3619  
3620 <  case 99:
3621 <
3622 < /* Line 1806 of yacc.c  */
3791 < #line 809 "ircd_parser.y"
3620 >  case 106:
3621 > /* Line 1792 of yacc.c  */
3622 > #line 817 "conf_parser.y"
3623      {
3624    if (conf_parser_ctx.pass == 2)
3625      ConfigLoggingEntry.use_logging = yylval.number;
3626   }
3627      break;
3628  
3629 <  case 100:
3630 <
3631 < /* Line 1806 of yacc.c  */
3801 < #line 815 "ircd_parser.y"
3629 >  case 107:
3630 > /* Line 1792 of yacc.c  */
3631 > #line 823 "conf_parser.y"
3632      {
3633    if (conf_parser_ctx.pass == 2)
3634 <    ConfigLoggingEntry.timestamp = yylval.number;
3634 >    reset_block_state();
3635   }
3636      break;
3637  
3638 <  case 101:
3639 <
3640 < /* Line 1806 of yacc.c  */
3811 < #line 821 "ircd_parser.y"
3638 >  case 108:
3639 > /* Line 1792 of yacc.c  */
3640 > #line 827 "conf_parser.y"
3641      {
3642 <  lfile[0] = '\0';
3814 <  ltype = 0;
3815 <  lsize = 0;
3816 < }
3642 >  if (conf_parser_ctx.pass != 2)
3643      break;
3644  
3645 <  case 102:
3646 <
3647 < /* Line 1806 of yacc.c  */
3822 < #line 826 "ircd_parser.y"
3823 <    {
3824 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3825 <    log_add_file(ltype, lsize, lfile);
3645 >  if (block_state.type.value && block_state.file.buf[0])
3646 >    log_add_file(block_state.type.value, block_state.size.value,
3647 >                 block_state.file.buf);
3648   }
3649      break;
3650  
3651 <  case 109:
3652 <
3653 < /* Line 1806 of yacc.c  */
3832 < #line 838 "ircd_parser.y"
3651 >  case 115:
3652 > /* Line 1792 of yacc.c  */
3653 > #line 843 "conf_parser.y"
3654      {
3655 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3835 < }
3655 >  if (conf_parser_ctx.pass != 2)
3656      break;
3657  
3658 <  case 110:
3839 <
3840 < /* Line 1806 of yacc.c  */
3841 < #line 843 "ircd_parser.y"
3842 <    {
3843 <  lsize = (yyvsp[(3) - (4)].number);
3658 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3659   }
3660      break;
3661  
3662 <  case 111:
3663 <
3664 < /* Line 1806 of yacc.c  */
3850 < #line 846 "ircd_parser.y"
3662 >  case 116:
3663 > /* Line 1792 of yacc.c  */
3664 > #line 851 "conf_parser.y"
3665      {
3666 <  lsize = 0;
3666 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670 <  case 112:
3671 <
3672 < /* Line 1806 of yacc.c  */
3859 < #line 851 "ircd_parser.y"
3670 >  case 117:
3671 > /* Line 1792 of yacc.c  */
3672 > #line 854 "conf_parser.y"
3673      {
3674 <  if (conf_parser_ctx.pass == 2)
3862 <    ltype = 0;
3674 >  block_state.size.value = 0;
3675   }
3676      break;
3677  
3678 <  case 116:
3679 <
3680 < /* Line 1806 of yacc.c  */
3869 < #line 858 "ircd_parser.y"
3678 >  case 118:
3679 > /* Line 1792 of yacc.c  */
3680 > #line 859 "conf_parser.y"
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683 <    ltype = LOG_TYPE_USER;
3683 >    block_state.type.value = 0;
3684   }
3685      break;
3686  
3687 <  case 117:
3688 <
3689 < /* Line 1806 of yacc.c  */
3879 < #line 862 "ircd_parser.y"
3687 >  case 122:
3688 > /* Line 1792 of yacc.c  */
3689 > #line 866 "conf_parser.y"
3690      {
3691    if (conf_parser_ctx.pass == 2)
3692 <    ltype = LOG_TYPE_OPER;
3692 >    block_state.type.value = LOG_TYPE_USER;
3693   }
3694      break;
3695  
3696 <  case 118:
3697 <
3698 < /* Line 1806 of yacc.c  */
3889 < #line 866 "ircd_parser.y"
3696 >  case 123:
3697 > /* Line 1792 of yacc.c  */
3698 > #line 870 "conf_parser.y"
3699      {
3700    if (conf_parser_ctx.pass == 2)
3701 <    ltype = LOG_TYPE_GLINE;
3701 >    block_state.type.value = LOG_TYPE_OPER;
3702   }
3703      break;
3704  
3705 <  case 119:
3706 <
3707 < /* Line 1806 of yacc.c  */
3899 < #line 870 "ircd_parser.y"
3705 >  case 124:
3706 > /* Line 1792 of yacc.c  */
3707 > #line 874 "conf_parser.y"
3708      {
3709    if (conf_parser_ctx.pass == 2)
3710 <    ltype = LOG_TYPE_DLINE;
3710 >    block_state.type.value = LOG_TYPE_GLINE;
3711   }
3712      break;
3713  
3714 <  case 120:
3715 <
3716 < /* Line 1806 of yacc.c  */
3909 < #line 874 "ircd_parser.y"
3714 >  case 125:
3715 > /* Line 1792 of yacc.c  */
3716 > #line 878 "conf_parser.y"
3717      {
3718    if (conf_parser_ctx.pass == 2)
3719 <    ltype = LOG_TYPE_KLINE;
3719 >    block_state.type.value = LOG_TYPE_DLINE;
3720   }
3721      break;
3722  
3723 <  case 121:
3724 <
3725 < /* Line 1806 of yacc.c  */
3919 < #line 878 "ircd_parser.y"
3723 >  case 126:
3724 > /* Line 1792 of yacc.c  */
3725 > #line 882 "conf_parser.y"
3726      {
3727    if (conf_parser_ctx.pass == 2)
3728 <    ltype = LOG_TYPE_KILL;
3728 >    block_state.type.value = LOG_TYPE_KLINE;
3729   }
3730      break;
3731  
3732 <  case 122:
3733 <
3734 < /* Line 1806 of yacc.c  */
3929 < #line 882 "ircd_parser.y"
3732 >  case 127:
3733 > /* Line 1792 of yacc.c  */
3734 > #line 886 "conf_parser.y"
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737 <    ltype = LOG_TYPE_DEBUG;
3737 >    block_state.type.value = LOG_TYPE_KILL;
3738   }
3739      break;
3740  
3741 <  case 123:
3742 <
3743 < /* Line 1806 of yacc.c  */
3939 < #line 892 "ircd_parser.y"
3741 >  case 128:
3742 > /* Line 1792 of yacc.c  */
3743 > #line 890 "conf_parser.y"
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746 <  {
3943 <    yy_conf = make_conf_item(OPER_TYPE);
3944 <    yy_aconf = map_to_conf(yy_conf);
3945 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3946 <  }
3947 <  else
3948 <  {
3949 <    MyFree(class_name);
3950 <    class_name = NULL;
3951 <  }
3746 >    block_state.type.value = LOG_TYPE_DEBUG;
3747   }
3748      break;
3749  
3750 <  case 124:
3751 <
3752 < /* Line 1806 of yacc.c  */
3958 < #line 905 "ircd_parser.y"
3959 <    {
3960 <  if (conf_parser_ctx.pass == 2)
3961 <  {
3962 <    struct CollectItem *yy_tmp;
3963 <    dlink_node *ptr;
3964 <    dlink_node *next_ptr;
3965 <
3966 <    conf_add_class_to_conf(yy_conf, class_name);
3967 <
3968 <    /* Now, make sure there is a copy of the "base" given oper
3969 <     * block in each of the collected copies
3970 <     */
3971 <
3972 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3750 >  case 129:
3751 > /* Line 1792 of yacc.c  */
3752 > #line 900 "conf_parser.y"
3753      {
3754 <      struct AccessItem *new_aconf;
3755 <      struct ConfItem *new_conf;
3976 <      yy_tmp = ptr->data;
3977 <
3978 <      new_conf = make_conf_item(OPER_TYPE);
3979 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3980 <
3981 <      new_aconf->flags = yy_aconf->flags;
3982 <
3983 <      if (yy_conf->name != NULL)
3984 <        DupString(new_conf->name, yy_conf->name);
3985 <      if (yy_tmp->user != NULL)
3986 <        DupString(new_aconf->user, yy_tmp->user);
3987 <      else
3988 <        DupString(new_aconf->user, "*");
3989 <      if (yy_tmp->host != NULL)
3990 <        DupString(new_aconf->host, yy_tmp->host);
3991 <      else
3992 <        DupString(new_aconf->host, "*");
3993 <
3994 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3995 <                                     &new_aconf->bits);
3996 <
3997 <      conf_add_class_to_conf(new_conf, class_name);
3998 <      if (yy_aconf->passwd != NULL)
3999 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4000 <
4001 <      new_aconf->port = yy_aconf->port;
4002 < #ifdef HAVE_LIBCRYPTO
4003 <      if (yy_aconf->rsa_public_key_file != NULL)
4004 <      {
4005 <        BIO *file;
4006 <
4007 <        DupString(new_aconf->rsa_public_key_file,
4008 <                  yy_aconf->rsa_public_key_file);
4009 <
4010 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4011 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4012 <                                                           NULL, 0, NULL);
4013 <        BIO_set_close(file, BIO_CLOSE);
4014 <        BIO_free(file);
4015 <      }
4016 < #endif
4017 <
4018 < #ifdef HAVE_LIBCRYPTO
4019 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4020 <          && yy_tmp->host)
4021 < #else
4022 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4023 < #endif
4024 <      {
4025 <        conf_add_class_to_conf(new_conf, class_name);
4026 <        if (yy_tmp->name != NULL)
4027 <          DupString(new_conf->name, yy_tmp->name);
4028 <      }
4029 <
4030 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4031 <      free_collect_item(yy_tmp);
4032 <    }
4033 <
4034 <    yy_conf = NULL;
4035 <    yy_aconf = NULL;
4036 <
3754 >  if (conf_parser_ctx.pass != 2)
3755 >    break;
3756  
3757 <    MyFree(class_name);
3758 <    class_name = NULL;
4040 <  }
3757 >  reset_block_state();
3758 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3759   }
3760      break;
3761  
3762 <  case 136:
3763 <
3764 < /* Line 1806 of yacc.c  */
4047 < #line 995 "ircd_parser.y"
3762 >  case 130:
3763 > /* Line 1792 of yacc.c  */
3764 > #line 907 "conf_parser.y"
3765      {
3766 <  if (conf_parser_ctx.pass == 2)
4050 <  {
4051 <    if (strlen(yylval.string) > OPERNICKLEN)
4052 <      yylval.string[OPERNICKLEN] = '\0';
3766 >  dlink_node *ptr = NULL;
3767  
3768 <    MyFree(yy_conf->name);
4055 <    DupString(yy_conf->name, yylval.string);
4056 <  }
4057 < }
3768 >  if (conf_parser_ctx.pass != 2)
3769      break;
3770  
3771 <  case 137:
3771 >  if (!block_state.name.buf[0])
3772 >    break;
3773 > #ifdef HAVE_LIBCRYPTO
3774 >  if (!(block_state.file.buf[0] ||
3775 >        block_state.rpass.buf[0]))
3776 >    break;
3777 > #else
3778 >  if (!block_state.rpass.buf[0])
3779 >    break;
3780 > #endif
3781  
3782 < /* Line 1806 of yacc.c  */
4063 < #line 1007 "ircd_parser.y"
4064 <    {
4065 <  if (conf_parser_ctx.pass == 2)
3782 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3783    {
3784 +    struct MaskItem *conf = NULL;
3785      struct split_nuh_item nuh;
3786  
3787 <    nuh.nuhmask  = yylval.string;
3787 >    nuh.nuhmask  = ptr->data;
3788      nuh.nickptr  = NULL;
3789 <    nuh.userptr  = userbuf;
3790 <    nuh.hostptr  = hostbuf;
4073 <
3789 >    nuh.userptr  = block_state.user.buf;
3790 >    nuh.hostptr  = block_state.host.buf;
3791      nuh.nicksize = 0;
3792 <    nuh.usersize = sizeof(userbuf);
3793 <    nuh.hostsize = sizeof(hostbuf);
4077 <
3792 >    nuh.usersize = sizeof(block_state.user.buf);
3793 >    nuh.hostsize = sizeof(block_state.host.buf);
3794      split_nuh(&nuh);
3795  
3796 <    if (yy_aconf->user == NULL)
3797 <    {
3798 <      DupString(yy_aconf->user, userbuf);
3799 <      DupString(yy_aconf->host, hostbuf);
3800 <
3801 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
3802 <                                    &yy_aconf->bits);
3803 <    }
3804 <    else
3805 <    {
3806 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3807 <
4092 <      DupString(yy_tmp->user, userbuf);
4093 <      DupString(yy_tmp->host, hostbuf);
4094 <
4095 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4096 <    }
4097 <  }
4098 < }
4099 <    break;
4100 <
4101 <  case 138:
4102 <
4103 < /* Line 1806 of yacc.c  */
4104 < #line 1044 "ircd_parser.y"
4105 <    {
4106 <  if (conf_parser_ctx.pass == 2)
4107 <  {
4108 <    if (yy_aconf->passwd != NULL)
4109 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4110 <
4111 <    MyFree(yy_aconf->passwd);
4112 <    DupString(yy_aconf->passwd, yylval.string);
4113 <  }
4114 < }
4115 <    break;
3796 >    conf        = conf_make(CONF_OPER);
3797 >    conf->name  = xstrdup(block_state.name.buf);
3798 >    conf->user  = xstrdup(block_state.user.buf);
3799 >    conf->host  = xstrdup(block_state.host.buf);
3800 >
3801 >    if (block_state.rpass.buf[0])
3802 >      conf->passwd = xstrdup(block_state.rpass.buf);
3803 >
3804 >    conf->flags = block_state.flags.value;
3805 >    conf->modes = block_state.modes.value;
3806 >    conf->port  = block_state.port.value;
3807 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3808  
3809 <  case 139:
3809 >    conf_add_class_to_conf(conf, block_state.class.buf);
3810  
4119 /* Line 1806 of yacc.c  */
4120 #line 1056 "ircd_parser.y"
4121    {
4122  if (conf_parser_ctx.pass == 2)
4123  {
4124    if (yylval.number)
4125      SetConfEncrypted(yy_aconf);
4126    else
4127      ClearConfEncrypted(yy_aconf);
4128  }
4129 }
4130    break;
4131
4132  case 140:
4133
4134 /* Line 1806 of yacc.c  */
4135 #line 1067 "ircd_parser.y"
4136    {
3811   #ifdef HAVE_LIBCRYPTO
3812 <  if (conf_parser_ctx.pass == 2)
4139 <  {
4140 <    BIO *file;
4141 <
4142 <    if (yy_aconf->rsa_public_key != NULL)
3812 >    if (block_state.file.buf[0])
3813      {
3814 <      RSA_free(yy_aconf->rsa_public_key);
3815 <      yy_aconf->rsa_public_key = NULL;
4146 <    }
3814 >      BIO *file = NULL;
3815 >      RSA *pkey = NULL;
3816  
3817 <    if (yy_aconf->rsa_public_key_file != NULL)
3818 <    {
3819 <      MyFree(yy_aconf->rsa_public_key_file);
3820 <      yy_aconf->rsa_public_key_file = NULL;
3821 <    }
4153 <
4154 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4155 <    file = BIO_new_file(yylval.string, "r");
4156 <
4157 <    if (file == NULL)
4158 <    {
4159 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4160 <      break;
4161 <    }
3817 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3818 >      {
3819 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3820 >        break;
3821 >      }
3822  
3823 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3823 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3824 >      {
3825 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3826 >        break;
3827 >      }
3828  
3829 <    if (yy_aconf->rsa_public_key == NULL)
3830 <    {
3831 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4168 <      break;
3829 >      conf->rsa_public_key = pkey;
3830 >      BIO_set_close(file, BIO_CLOSE);
3831 >      BIO_free(file);
3832      }
4170
4171    BIO_set_close(file, BIO_CLOSE);
4172    BIO_free(file);
4173  }
3833   #endif /* HAVE_LIBCRYPTO */
4175 }
4176    break;
4177
4178  case 141:
4179
4180 /* Line 1806 of yacc.c  */
4181 #line 1109 "ircd_parser.y"
4182    {
4183  if (conf_parser_ctx.pass == 2)
4184  {
4185    MyFree(class_name);
4186    DupString(class_name, yylval.string);
3834    }
3835   }
3836      break;
3837  
3838    case 142:
3839 <
3840 < /* Line 1806 of yacc.c  */
4194 < #line 1118 "ircd_parser.y"
3839 > /* Line 1792 of yacc.c  */
3840 > #line 985 "conf_parser.y"
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <    yy_aconf->modes = 0;
3843 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3844   }
3845      break;
3846  
3847 <  case 146:
3848 <
3849 < /* Line 1806 of yacc.c  */
4204 < #line 1125 "ircd_parser.y"
3847 >  case 143:
3848 > /* Line 1792 of yacc.c  */
3849 > #line 991 "conf_parser.y"
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <    yy_aconf->modes |= UMODE_BOTS;
3852 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3853   }
3854      break;
3855  
3856 <  case 147:
3857 <
3858 < /* Line 1806 of yacc.c  */
4214 < #line 1129 "ircd_parser.y"
3856 >  case 144:
3857 > /* Line 1792 of yacc.c  */
3858 > #line 997 "conf_parser.y"
3859      {
3860    if (conf_parser_ctx.pass == 2)
3861 <    yy_aconf->modes |= UMODE_CCONN;
3861 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3862   }
3863      break;
3864  
3865 <  case 148:
3866 <
3867 < /* Line 1806 of yacc.c  */
4224 < #line 1133 "ircd_parser.y"
3865 >  case 145:
3866 > /* Line 1792 of yacc.c  */
3867 > #line 1003 "conf_parser.y"
3868      {
3869    if (conf_parser_ctx.pass == 2)
3870 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3870 >  {
3871 >    if (yylval.number)
3872 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3873 >    else
3874 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3875 >  }
3876   }
3877      break;
3878  
3879 <  case 149:
3880 <
3881 < /* Line 1806 of yacc.c  */
4234 < #line 1137 "ircd_parser.y"
3879 >  case 146:
3880 > /* Line 1792 of yacc.c  */
3881 > #line 1014 "conf_parser.y"
3882      {
3883    if (conf_parser_ctx.pass == 2)
3884 <    yy_aconf->modes |= UMODE_DEAF;
3884 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3885   }
3886      break;
3887  
3888 <  case 150:
3889 <
3890 < /* Line 1806 of yacc.c  */
4244 < #line 1141 "ircd_parser.y"
3888 >  case 147:
3889 > /* Line 1792 of yacc.c  */
3890 > #line 1020 "conf_parser.y"
3891      {
3892    if (conf_parser_ctx.pass == 2)
3893 <    yy_aconf->modes |= UMODE_DEBUG;
3893 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3894   }
3895      break;
3896  
3897 <  case 151:
3898 <
3899 < /* Line 1806 of yacc.c  */
4254 < #line 1145 "ircd_parser.y"
3897 >  case 148:
3898 > /* Line 1792 of yacc.c  */
3899 > #line 1026 "conf_parser.y"
3900      {
3901    if (conf_parser_ctx.pass == 2)
3902 <    yy_aconf->modes |= UMODE_FULL;
3902 >    block_state.modes.value = 0;
3903   }
3904      break;
3905  
3906    case 152:
3907 <
3908 < /* Line 1806 of yacc.c  */
4264 < #line 1149 "ircd_parser.y"
3907 > /* Line 1792 of yacc.c  */
3908 > #line 1033 "conf_parser.y"
3909      {
3910    if (conf_parser_ctx.pass == 2)
3911 <    yy_aconf->modes |= UMODE_HIDDEN;
3911 >    block_state.modes.value |= UMODE_BOTS;
3912   }
3913      break;
3914  
3915    case 153:
3916 <
3917 < /* Line 1806 of yacc.c  */
4274 < #line 1153 "ircd_parser.y"
3916 > /* Line 1792 of yacc.c  */
3917 > #line 1037 "conf_parser.y"
3918      {
3919    if (conf_parser_ctx.pass == 2)
3920 <    yy_aconf->modes |= UMODE_SKILL;
3920 >    block_state.modes.value |= UMODE_CCONN;
3921   }
3922      break;
3923  
3924    case 154:
3925 <
3926 < /* Line 1806 of yacc.c  */
4284 < #line 1157 "ircd_parser.y"
3925 > /* Line 1792 of yacc.c  */
3926 > #line 1041 "conf_parser.y"
3927      {
3928    if (conf_parser_ctx.pass == 2)
3929 <    yy_aconf->modes |= UMODE_NCHANGE;
3929 >    block_state.modes.value |= UMODE_CCONN_FULL;
3930   }
3931      break;
3932  
3933    case 155:
3934 <
3935 < /* Line 1806 of yacc.c  */
4294 < #line 1161 "ircd_parser.y"
3934 > /* Line 1792 of yacc.c  */
3935 > #line 1045 "conf_parser.y"
3936      {
3937    if (conf_parser_ctx.pass == 2)
3938 <    yy_aconf->modes |= UMODE_REJ;
3938 >    block_state.modes.value |= UMODE_DEAF;
3939   }
3940      break;
3941  
3942    case 156:
3943 <
3944 < /* Line 1806 of yacc.c  */
4304 < #line 1165 "ircd_parser.y"
3943 > /* Line 1792 of yacc.c  */
3944 > #line 1049 "conf_parser.y"
3945      {
3946    if (conf_parser_ctx.pass == 2)
3947 <    yy_aconf->modes |= UMODE_UNAUTH;
3947 >    block_state.modes.value |= UMODE_DEBUG;
3948   }
3949      break;
3950  
3951    case 157:
3952 <
3953 < /* Line 1806 of yacc.c  */
4314 < #line 1169 "ircd_parser.y"
3952 > /* Line 1792 of yacc.c  */
3953 > #line 1053 "conf_parser.y"
3954      {
3955    if (conf_parser_ctx.pass == 2)
3956 <    yy_aconf->modes |= UMODE_SPY;
3956 >    block_state.modes.value |= UMODE_FULL;
3957   }
3958      break;
3959  
3960    case 158:
3961 <
3962 < /* Line 1806 of yacc.c  */
4324 < #line 1173 "ircd_parser.y"
3961 > /* Line 1792 of yacc.c  */
3962 > #line 1057 "conf_parser.y"
3963      {
3964    if (conf_parser_ctx.pass == 2)
3965 <    yy_aconf->modes |= UMODE_EXTERNAL;
3965 >    block_state.modes.value |= UMODE_HIDDEN;
3966   }
3967      break;
3968  
3969    case 159:
3970 <
3971 < /* Line 1806 of yacc.c  */
4334 < #line 1177 "ircd_parser.y"
3970 > /* Line 1792 of yacc.c  */
3971 > #line 1061 "conf_parser.y"
3972      {
3973    if (conf_parser_ctx.pass == 2)
3974 <    yy_aconf->modes |= UMODE_OPERWALL;
3974 >    block_state.modes.value |= UMODE_SKILL;
3975   }
3976      break;
3977  
3978    case 160:
3979 <
3980 < /* Line 1806 of yacc.c  */
4344 < #line 1181 "ircd_parser.y"
3979 > /* Line 1792 of yacc.c  */
3980 > #line 1065 "conf_parser.y"
3981      {
3982    if (conf_parser_ctx.pass == 2)
3983 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3983 >    block_state.modes.value |= UMODE_NCHANGE;
3984   }
3985      break;
3986  
3987    case 161:
3988 <
3989 < /* Line 1806 of yacc.c  */
4354 < #line 1185 "ircd_parser.y"
3988 > /* Line 1792 of yacc.c  */
3989 > #line 1069 "conf_parser.y"
3990      {
3991    if (conf_parser_ctx.pass == 2)
3992 <    yy_aconf->modes |= UMODE_INVISIBLE;
3992 >    block_state.modes.value |= UMODE_REJ;
3993   }
3994      break;
3995  
3996    case 162:
3997 <
3998 < /* Line 1806 of yacc.c  */
4364 < #line 1189 "ircd_parser.y"
3997 > /* Line 1792 of yacc.c  */
3998 > #line 1073 "conf_parser.y"
3999      {
4000    if (conf_parser_ctx.pass == 2)
4001 <    yy_aconf->modes |= UMODE_WALLOP;
4001 >    block_state.modes.value |= UMODE_UNAUTH;
4002   }
4003      break;
4004  
4005    case 163:
4006 <
4007 < /* Line 1806 of yacc.c  */
4374 < #line 1193 "ircd_parser.y"
4006 > /* Line 1792 of yacc.c  */
4007 > #line 1077 "conf_parser.y"
4008      {
4009    if (conf_parser_ctx.pass == 2)
4010 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4010 >    block_state.modes.value |= UMODE_SPY;
4011   }
4012      break;
4013  
4014    case 164:
4015 <
4016 < /* Line 1806 of yacc.c  */
4384 < #line 1197 "ircd_parser.y"
4015 > /* Line 1792 of yacc.c  */
4016 > #line 1081 "conf_parser.y"
4017      {
4018    if (conf_parser_ctx.pass == 2)
4019 <    yy_aconf->modes |= UMODE_CALLERID;
4019 >    block_state.modes.value |= UMODE_EXTERNAL;
4020   }
4021      break;
4022  
4023    case 165:
4024 <
4025 < /* Line 1806 of yacc.c  */
4394 < #line 1201 "ircd_parser.y"
4024 > /* Line 1792 of yacc.c  */
4025 > #line 1085 "conf_parser.y"
4026      {
4027    if (conf_parser_ctx.pass == 2)
4028 <    yy_aconf->modes |= UMODE_LOCOPS;
4028 >    block_state.modes.value |= UMODE_OPERWALL;
4029   }
4030      break;
4031  
4032    case 166:
4033 <
4034 < /* Line 1806 of yacc.c  */
4404 < #line 1207 "ircd_parser.y"
4033 > /* Line 1792 of yacc.c  */
4034 > #line 1089 "conf_parser.y"
4035      {
4036    if (conf_parser_ctx.pass == 2)
4037 <    yy_aconf->port = 0;
4037 >    block_state.modes.value |= UMODE_SERVNOTICE;
4038   }
4039      break;
4040  
4041 <  case 170:
4042 <
4043 < /* Line 1806 of yacc.c  */
4414 < #line 1214 "ircd_parser.y"
4041 >  case 167:
4042 > /* Line 1792 of yacc.c  */
4043 > #line 1093 "conf_parser.y"
4044      {
4045    if (conf_parser_ctx.pass == 2)
4046 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4046 >    block_state.modes.value |= UMODE_INVISIBLE;
4047   }
4048      break;
4049  
4050 <  case 171:
4051 <
4052 < /* Line 1806 of yacc.c  */
4424 < #line 1218 "ircd_parser.y"
4050 >  case 168:
4051 > /* Line 1792 of yacc.c  */
4052 > #line 1097 "conf_parser.y"
4053      {
4054    if (conf_parser_ctx.pass == 2)
4055 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4055 >    block_state.modes.value |= UMODE_WALLOP;
4056   }
4057      break;
4058  
4059 <  case 172:
4060 <
4061 < /* Line 1806 of yacc.c  */
4434 < #line 1222 "ircd_parser.y"
4059 >  case 169:
4060 > /* Line 1792 of yacc.c  */
4061 > #line 1101 "conf_parser.y"
4062      {
4063    if (conf_parser_ctx.pass == 2)
4064 <    yy_aconf->port |= OPER_FLAG_K;
4064 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4065   }
4066      break;
4067  
4068 <  case 173:
4069 <
4070 < /* Line 1806 of yacc.c  */
4444 < #line 1226 "ircd_parser.y"
4068 >  case 170:
4069 > /* Line 1792 of yacc.c  */
4070 > #line 1105 "conf_parser.y"
4071      {
4072    if (conf_parser_ctx.pass == 2)
4073 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4073 >    block_state.modes.value |= UMODE_CALLERID;
4074   }
4075      break;
4076  
4077 <  case 174:
4078 <
4079 < /* Line 1806 of yacc.c  */
4454 < #line 1230 "ircd_parser.y"
4077 >  case 171:
4078 > /* Line 1792 of yacc.c  */
4079 > #line 1109 "conf_parser.y"
4080      {
4081    if (conf_parser_ctx.pass == 2)
4082 <    yy_aconf->port |= OPER_FLAG_DLINE;
4082 >    block_state.modes.value |= UMODE_LOCOPS;
4083   }
4084      break;
4085  
4086 <  case 175:
4087 <
4088 < /* Line 1806 of yacc.c  */
4464 < #line 1234 "ircd_parser.y"
4086 >  case 172:
4087 > /* Line 1792 of yacc.c  */
4088 > #line 1115 "conf_parser.y"
4089      {
4090    if (conf_parser_ctx.pass == 2)
4091 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4091 >    block_state.port.value = 0;
4092   }
4093      break;
4094  
4095    case 176:
4096 <
4097 < /* Line 1806 of yacc.c  */
4474 < #line 1238 "ircd_parser.y"
4096 > /* Line 1792 of yacc.c  */
4097 > #line 1122 "conf_parser.y"
4098      {
4099    if (conf_parser_ctx.pass == 2)
4100 <    yy_aconf->port |= OPER_FLAG_X;
4100 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4101   }
4102      break;
4103  
4104    case 177:
4105 <
4106 < /* Line 1806 of yacc.c  */
4484 < #line 1242 "ircd_parser.y"
4105 > /* Line 1792 of yacc.c  */
4106 > #line 1126 "conf_parser.y"
4107      {
4108    if (conf_parser_ctx.pass == 2)
4109 <    yy_aconf->port |= OPER_FLAG_GLINE;
4109 >    block_state.port.value |= OPER_FLAG_REMOTE;
4110   }
4111      break;
4112  
4113    case 178:
4114 <
4115 < /* Line 1806 of yacc.c  */
4494 < #line 1246 "ircd_parser.y"
4114 > /* Line 1792 of yacc.c  */
4115 > #line 1130 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <    yy_aconf->port |= OPER_FLAG_DIE;
4118 >    block_state.port.value |= OPER_FLAG_K;
4119   }
4120      break;
4121  
4122    case 179:
4123 <
4124 < /* Line 1806 of yacc.c  */
4504 < #line 1250 "ircd_parser.y"
4123 > /* Line 1792 of yacc.c  */
4124 > #line 1134 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <    yy_aconf->port |= OPER_FLAG_RESTART;
4127 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4128   }
4129      break;
4130  
4131    case 180:
4132 <
4133 < /* Line 1806 of yacc.c  */
4514 < #line 1254 "ircd_parser.y"
4132 > /* Line 1792 of yacc.c  */
4133 > #line 1138 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <    yy_aconf->port |= OPER_FLAG_REHASH;
4136 >    block_state.port.value |= OPER_FLAG_DLINE;
4137   }
4138      break;
4139  
4140    case 181:
4141 <
4142 < /* Line 1806 of yacc.c  */
4524 < #line 1258 "ircd_parser.y"
4141 > /* Line 1792 of yacc.c  */
4142 > #line 1142 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4145 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4146   }
4147      break;
4148  
4149    case 182:
4150 <
4151 < /* Line 1806 of yacc.c  */
4534 < #line 1262 "ircd_parser.y"
4150 > /* Line 1792 of yacc.c  */
4151 > #line 1146 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <    yy_aconf->port |= OPER_FLAG_N;
4154 >    block_state.port.value |= OPER_FLAG_X;
4155   }
4156      break;
4157  
4158    case 183:
4159 <
4160 < /* Line 1806 of yacc.c  */
4544 < #line 1266 "ircd_parser.y"
4159 > /* Line 1792 of yacc.c  */
4160 > #line 1150 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4163 >    block_state.port.value |= OPER_FLAG_GLINE;
4164   }
4165      break;
4166  
4167    case 184:
4168 <
4169 < /* Line 1806 of yacc.c  */
4554 < #line 1270 "ircd_parser.y"
4168 > /* Line 1792 of yacc.c  */
4169 > #line 1154 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4172 >    block_state.port.value |= OPER_FLAG_DIE;
4173   }
4174      break;
4175  
4176    case 185:
4177 <
4178 < /* Line 1806 of yacc.c  */
4564 < #line 1274 "ircd_parser.y"
4177 > /* Line 1792 of yacc.c  */
4178 > #line 1158 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4181 >    block_state.port.value |= OPER_FLAG_RESTART;
4182   }
4183      break;
4184  
4185    case 186:
4186 <
4187 < /* Line 1806 of yacc.c  */
4574 < #line 1278 "ircd_parser.y"
4186 > /* Line 1792 of yacc.c  */
4187 > #line 1162 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4190 >    block_state.port.value |= OPER_FLAG_REHASH;
4191   }
4192      break;
4193  
4194    case 187:
4195 <
4196 < /* Line 1806 of yacc.c  */
4584 < #line 1282 "ircd_parser.y"
4195 > /* Line 1792 of yacc.c  */
4196 > #line 1166 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <    yy_aconf->port |= OPER_FLAG_MODULE;
4199 >    block_state.port.value |= OPER_FLAG_ADMIN;
4200   }
4201      break;
4202  
4203    case 188:
4204 <
4205 < /* Line 1806 of yacc.c  */
4594 < #line 1292 "ircd_parser.y"
4204 > /* Line 1792 of yacc.c  */
4205 > #line 1170 "conf_parser.y"
4206      {
4207 <  if (conf_parser_ctx.pass == 1)
4208 <  {
4598 <    yy_conf = make_conf_item(CLASS_TYPE);
4599 <    yy_class = map_to_conf(yy_conf);
4600 <  }
4207 >  if (conf_parser_ctx.pass == 2)
4208 >    block_state.port.value |= OPER_FLAG_N;
4209   }
4210      break;
4211  
4212    case 189:
4213 + /* Line 1792 of yacc.c  */
4214 + #line 1174 "conf_parser.y"
4215 +    {
4216 +  if (conf_parser_ctx.pass == 2)
4217 +    block_state.port.value |= OPER_FLAG_OPERWALL;
4218 + }
4219 +    break;
4220  
4221 < /* Line 1806 of yacc.c  */
4222 < #line 1299 "ircd_parser.y"
4221 >  case 190:
4222 > /* Line 1792 of yacc.c  */
4223 > #line 1178 "conf_parser.y"
4224      {
4225 <  if (conf_parser_ctx.pass == 1)
4226 <  {
4227 <    struct ConfItem *cconf = NULL;
4228 <    struct ClassItem *class = NULL;
4225 >  if (conf_parser_ctx.pass == 2)
4226 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4227 > }
4228 >    break;
4229  
4230 <    if (yy_class_name == NULL)
4231 <      delete_conf_item(yy_conf);
4232 <    else
4230 >  case 191:
4231 > /* Line 1792 of yacc.c  */
4232 > #line 1182 "conf_parser.y"
4233      {
4234 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4234 >  if (conf_parser_ctx.pass == 2)
4235 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4236 > }
4237 >    break;
4238  
4239 <      if (cconf != NULL)                /* The class existed already */
4240 <      {
4241 <        int user_count = 0;
4239 >  case 192:
4240 > /* Line 1792 of yacc.c  */
4241 > #line 1186 "conf_parser.y"
4242 >    {
4243 >  if (conf_parser_ctx.pass == 2)
4244 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4245 > }
4246 >    break;
4247  
4248 <        rebuild_cidr_class(cconf, yy_class);
4248 >  case 193:
4249 > /* Line 1792 of yacc.c  */
4250 > #line 1190 "conf_parser.y"
4251 >    {
4252 >  if (conf_parser_ctx.pass == 2)
4253 >    block_state.port.value |= OPER_FLAG_SET;
4254 > }
4255 >    break;
4256  
4257 <        class = map_to_conf(cconf);
4257 >  case 194:
4258 > /* Line 1792 of yacc.c  */
4259 > #line 1194 "conf_parser.y"
4260 >    {
4261 >  if (conf_parser_ctx.pass == 2)
4262 >    block_state.port.value |= OPER_FLAG_MODULE;
4263 > }
4264 >    break;
4265  
4266 <        user_count = class->curr_user_count;
4267 <        memcpy(class, yy_class, sizeof(*class));
4268 <        class->curr_user_count = user_count;
4269 <        class->active = 1;
4266 >  case 195:
4267 > /* Line 1792 of yacc.c  */
4268 > #line 1204 "conf_parser.y"
4269 >    {
4270 >  if (conf_parser_ctx.pass != 1)
4271 >    break;
4272  
4273 <        delete_conf_item(yy_conf);
4273 >  reset_block_state();
4274  
4275 <        MyFree(cconf->name);            /* Allows case change of class name */
4276 <        cconf->name = yy_class_name;
4277 <      }
4278 <      else      /* Brand new class */
4279 <      {
4640 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4641 <        yy_conf->name = yy_class_name;
4642 <        yy_class->active = 1;
4643 <      }
4644 <    }
4275 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4276 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4277 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4278 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4279 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4280  
4646    yy_class_name = NULL;
4647  }
4281   }
4282      break;
4283  
4284 <  case 206:
4285 <
4286 < /* Line 1806 of yacc.c  */
4654 < #line 1357 "ircd_parser.y"
4284 >  case 196:
4285 > /* Line 1792 of yacc.c  */
4286 > #line 1217 "conf_parser.y"
4287      {
4288 <  if (conf_parser_ctx.pass == 1)
4289 <  {
4290 <    MyFree(yy_class_name);
4659 <    DupString(yy_class_name, yylval.string);
4660 <  }
4661 < }
4288 >  struct ClassItem *class = NULL;
4289 >
4290 >  if (conf_parser_ctx.pass != 1)
4291      break;
4292  
4293 <  case 207:
4293 >  if (!block_state.class.buf[0])
4294 >    break;
4295 >
4296 >  if (!(class = class_find(block_state.class.buf, 0)))
4297 >    class = class_make();
4298 >
4299 >  class->active = 1;
4300 >  MyFree(class->name);
4301 >  class->name = xstrdup(block_state.class.buf);
4302 >  class->ping_freq = block_state.ping_freq.value;
4303 >  class->max_perip = block_state.max_perip.value;
4304 >  class->con_freq = block_state.con_freq.value;
4305 >  class->max_total = block_state.max_total.value;
4306 >  class->max_global = block_state.max_global.value;
4307 >  class->max_local = block_state.max_local.value;
4308 >  class->max_ident = block_state.max_ident.value;
4309 >  class->max_sendq = block_state.max_sendq.value;
4310 >  class->max_recvq = block_state.max_recvq.value;
4311  
4312 < /* Line 1806 of yacc.c  */
4313 < #line 1366 "ircd_parser.y"
4312 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4313 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4314 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4315 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4316 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4317 >        rebuild_cidr_list(class);
4318 >
4319 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4320 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4321 >  class->number_per_cidr = block_state.number_per_cidr.value;
4322 > }
4323 >    break;
4324 >
4325 >  case 213:
4326 > /* Line 1792 of yacc.c  */
4327 > #line 1269 "conf_parser.y"
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4330 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4331   }
4332      break;
4333  
4334 <  case 208:
4335 <
4336 < /* Line 1806 of yacc.c  */
4677 < #line 1372 "ircd_parser.y"
4334 >  case 214:
4335 > /* Line 1792 of yacc.c  */
4336 > #line 1275 "conf_parser.y"
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4339 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4340   }
4341      break;
4342  
4343 <  case 209:
4344 <
4345 < /* Line 1806 of yacc.c  */
4687 < #line 1378 "ircd_parser.y"
4343 >  case 215:
4344 > /* Line 1792 of yacc.c  */
4345 > #line 1281 "conf_parser.y"
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4348 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4349   }
4350      break;
4351  
4352 <  case 210:
4353 <
4354 < /* Line 1806 of yacc.c  */
4697 < #line 1384 "ircd_parser.y"
4352 >  case 216:
4353 > /* Line 1792 of yacc.c  */
4354 > #line 1287 "conf_parser.y"
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4358   }
4359      break;
4360  
4361 <  case 211:
4362 <
4363 < /* Line 1806 of yacc.c  */
4707 < #line 1390 "ircd_parser.y"
4361 >  case 217:
4362 > /* Line 1792 of yacc.c  */
4363 > #line 1293 "conf_parser.y"
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4367   }
4368      break;
4369  
4370 <  case 212:
4371 <
4372 < /* Line 1806 of yacc.c  */
4717 < #line 1396 "ircd_parser.y"
4370 >  case 218:
4371 > /* Line 1792 of yacc.c  */
4372 > #line 1299 "conf_parser.y"
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4376   }
4377      break;
4378  
4379 <  case 213:
4380 <
4381 < /* Line 1806 of yacc.c  */
4727 < #line 1402 "ircd_parser.y"
4379 >  case 219:
4380 > /* Line 1792 of yacc.c  */
4381 > #line 1305 "conf_parser.y"
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4385   }
4386      break;
4387  
4388 <  case 214:
4389 <
4390 < /* Line 1806 of yacc.c  */
4737 < #line 1408 "ircd_parser.y"
4388 >  case 220:
4389 > /* Line 1792 of yacc.c  */
4390 > #line 1311 "conf_parser.y"
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4394   }
4395      break;
4396  
4397 <  case 215:
4398 <
4399 < /* Line 1806 of yacc.c  */
4747 < #line 1414 "ircd_parser.y"
4397 >  case 221:
4398 > /* Line 1792 of yacc.c  */
4399 > #line 1317 "conf_parser.y"
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4403   }
4404      break;
4405  
4406 <  case 216:
4407 <
4408 < /* Line 1806 of yacc.c  */
4757 < #line 1420 "ircd_parser.y"
4406 >  case 222:
4407 > /* Line 1792 of yacc.c  */
4408 > #line 1323 "conf_parser.y"
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4412 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4413   }
4414      break;
4415  
4416 <  case 217:
4417 <
4418 < /* Line 1806 of yacc.c  */
4767 < #line 1426 "ircd_parser.y"
4416 >  case 223:
4417 > /* Line 1792 of yacc.c  */
4418 > #line 1330 "conf_parser.y"
4419      {
4420    if (conf_parser_ctx.pass == 1)
4421 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4421 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4422   }
4423      break;
4424  
4425 <  case 218:
4426 <
4427 < /* Line 1806 of yacc.c  */
4777 < #line 1432 "ircd_parser.y"
4425 >  case 224:
4426 > /* Line 1792 of yacc.c  */
4427 > #line 1336 "conf_parser.y"
4428      {
4429    if (conf_parser_ctx.pass == 1)
4430 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4430 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4431   }
4432      break;
4433  
4434 <  case 219:
4435 <
4436 < /* Line 1806 of yacc.c  */
4787 < #line 1441 "ircd_parser.y"
4434 >  case 225:
4435 > /* Line 1792 of yacc.c  */
4436 > #line 1342 "conf_parser.y"
4437      {
4438 <  if (conf_parser_ctx.pass == 2)
4439 <  {
4791 <    listener_address = NULL;
4792 <    listener_flags = 0;
4793 <  }
4438 >  if (conf_parser_ctx.pass == 1)
4439 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443 <  case 220:
4444 <
4445 < /* Line 1806 of yacc.c  */
4800 < #line 1448 "ircd_parser.y"
4443 >  case 226:
4444 > /* Line 1792 of yacc.c  */
4445 > #line 1351 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 2)
4448 <  {
4804 <    MyFree(listener_address);
4805 <    listener_address = NULL;
4806 <  }
4448 >    reset_block_state();
4449   }
4450      break;
4451  
4452 <  case 221:
4453 <
4454 < /* Line 1806 of yacc.c  */
4813 < #line 1457 "ircd_parser.y"
4452 >  case 228:
4453 > /* Line 1792 of yacc.c  */
4454 > #line 1357 "conf_parser.y"
4455      {
4456 <  listener_flags = 0;
4456 >  block_state.flags.value = 0;
4457   }
4458      break;
4459  
4460 <  case 225:
4461 <
4462 < /* Line 1806 of yacc.c  */
4822 < #line 1463 "ircd_parser.y"
4460 >  case 232:
4461 > /* Line 1792 of yacc.c  */
4462 > #line 1363 "conf_parser.y"
4463      {
4464    if (conf_parser_ctx.pass == 2)
4465 <    listener_flags |= LISTENER_SSL;
4465 >    block_state.flags.value |= LISTENER_SSL;
4466   }
4467      break;
4468  
4469 <  case 226:
4470 <
4471 < /* Line 1806 of yacc.c  */
4832 < #line 1467 "ircd_parser.y"
4469 >  case 233:
4470 > /* Line 1792 of yacc.c  */
4471 > #line 1367 "conf_parser.y"
4472      {
4473    if (conf_parser_ctx.pass == 2)
4474 <    listener_flags |= LISTENER_HIDDEN;
4474 >    block_state.flags.value |= LISTENER_HIDDEN;
4475   }
4476      break;
4477  
4478 <  case 227:
4479 <
4480 < /* Line 1806 of yacc.c  */
4842 < #line 1471 "ircd_parser.y"
4478 >  case 234:
4479 > /* Line 1792 of yacc.c  */
4480 > #line 1371 "conf_parser.y"
4481      {
4482    if (conf_parser_ctx.pass == 2)
4483 <    listener_flags |= LISTENER_SERVER;
4483 >   block_state.flags.value |= LISTENER_SERVER;
4484   }
4485      break;
4486  
4487 <  case 235:
4488 <
4489 < /* Line 1806 of yacc.c  */
4490 < #line 1481 "ircd_parser.y"
4853 <    { listener_flags = 0; }
4487 >  case 242:
4488 > /* Line 1792 of yacc.c  */
4489 > #line 1379 "conf_parser.y"
4490 >    { block_state.flags.value = 0; }
4491      break;
4492  
4493 <  case 239:
4494 <
4495 < /* Line 1806 of yacc.c  */
4859 < #line 1486 "ircd_parser.y"
4493 >  case 246:
4494 > /* Line 1792 of yacc.c  */
4495 > #line 1384 "conf_parser.y"
4496      {
4497    if (conf_parser_ctx.pass == 2)
4498    {
4499 <    if ((listener_flags & LISTENER_SSL))
4499 >    if (block_state.flags.value & LISTENER_SSL)
4500   #ifdef HAVE_LIBCRYPTO
4501        if (!ServerInfo.server_ctx)
4502   #endif
# Line 4868 | Line 4504 | yyreduce:
4504          yyerror("SSL not available - port closed");
4505          break;
4506        }
4507 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4507 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4508    }
4509   }
4510      break;
4511  
4512 <  case 240:
4513 <
4514 < /* Line 1806 of yacc.c  */
4879 < #line 1500 "ircd_parser.y"
4512 >  case 247:
4513 > /* Line 1792 of yacc.c  */
4514 > #line 1398 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517    {
4518      int i;
4519  
4520 <    if ((listener_flags & LISTENER_SSL))
4520 >    if (block_state.flags.value & LISTENER_SSL)
4521   #ifdef HAVE_LIBCRYPTO
4522        if (!ServerInfo.server_ctx)
4523   #endif
# Line 4892 | Line 4527 | yyreduce:
4527        }
4528  
4529      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4530 <      add_listener(i, listener_address, listener_flags);
4530 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4531    }
4532   }
4533      break;
4534  
4535 <  case 241:
4536 <
4537 < /* Line 1806 of yacc.c  */
4903 < #line 1520 "ircd_parser.y"
4535 >  case 248:
4536 > /* Line 1792 of yacc.c  */
4537 > #line 1418 "conf_parser.y"
4538      {
4539    if (conf_parser_ctx.pass == 2)
4540 <  {
4907 <    MyFree(listener_address);
4908 <    DupString(listener_address, yylval.string);
4909 <  }
4540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4541   }
4542      break;
4543  
4544 <  case 242:
4545 <
4546 < /* Line 1806 of yacc.c  */
4916 < #line 1529 "ircd_parser.y"
4544 >  case 249:
4545 > /* Line 1792 of yacc.c  */
4546 > #line 1424 "conf_parser.y"
4547      {
4548    if (conf_parser_ctx.pass == 2)
4549 <  {
4920 <    MyFree(listener_address);
4921 <    DupString(listener_address, yylval.string);
4922 <  }
4549 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4550   }
4551      break;
4552  
4553 <  case 243:
4554 <
4555 < /* Line 1806 of yacc.c  */
4929 < #line 1541 "ircd_parser.y"
4553 >  case 250:
4554 > /* Line 1792 of yacc.c  */
4555 > #line 1433 "conf_parser.y"
4556      {
4557    if (conf_parser_ctx.pass == 2)
4558 <  {
4933 <    yy_conf = make_conf_item(CLIENT_TYPE);
4934 <    yy_aconf = map_to_conf(yy_conf);
4935 <  }
4936 <  else
4937 <  {
4938 <    MyFree(class_name);
4939 <    class_name = NULL;
4940 <  }
4558 >    reset_block_state();
4559   }
4560      break;
4561  
4562 <  case 244:
4563 <
4564 < /* Line 1806 of yacc.c  */
4947 < #line 1553 "ircd_parser.y"
4948 <    {
4949 <  if (conf_parser_ctx.pass == 2)
4950 <  {
4951 <    struct CollectItem *yy_tmp = NULL;
4952 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4953 <
4954 <    if (yy_aconf->user && yy_aconf->host)
4955 <    {
4956 <      conf_add_class_to_conf(yy_conf, class_name);
4957 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4958 <    }
4959 <    else
4960 <      delete_conf_item(yy_conf);
4961 <
4962 <    /* copy over settings from first struct */
4963 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4562 >  case 251:
4563 > /* Line 1792 of yacc.c  */
4564 > #line 1437 "conf_parser.y"
4565      {
4566 <      struct AccessItem *new_aconf;
4966 <      struct ConfItem *new_conf;
4566 >  dlink_node *ptr = NULL;
4567  
4568 <      new_conf = make_conf_item(CLIENT_TYPE);
4969 <      new_aconf = map_to_conf(new_conf);
4970 <
4971 <      yy_tmp = ptr->data;
4972 <
4973 <      assert(yy_tmp->user && yy_tmp->host);
4974 <
4975 <      if (yy_aconf->passwd != NULL)
4976 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4977 <      if (yy_conf->name != NULL)
4978 <        DupString(new_conf->name, yy_conf->name);
4979 <      if (yy_aconf->passwd != NULL)
4980 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4981 <
4982 <      new_aconf->flags = yy_aconf->flags;
4983 <      new_aconf->port  = yy_aconf->port;
4984 <
4985 <      DupString(new_aconf->user, yy_tmp->user);
4986 <      collapse(new_aconf->user);
4987 <
4988 <      DupString(new_aconf->host, yy_tmp->host);
4989 <      collapse(new_aconf->host);
4990 <
4991 <      conf_add_class_to_conf(new_conf, class_name);
4992 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4993 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4994 <      free_collect_item(yy_tmp);
4995 <    }
4996 <
4997 <    MyFree(class_name);
4998 <    class_name = NULL;
4999 <    yy_conf = NULL;
5000 <    yy_aconf = NULL;
5001 <  }
5002 < }
4568 >  if (conf_parser_ctx.pass != 2)
4569      break;
4570  
4571 <  case 256:
5006 <
5007 < /* Line 1806 of yacc.c  */
5008 < #line 1615 "ircd_parser.y"
5009 <    {
5010 <  if (conf_parser_ctx.pass == 2)
4571 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4572    {
4573 <    struct CollectItem *yy_tmp = NULL;
4573 >    struct MaskItem *conf = NULL;
4574      struct split_nuh_item nuh;
4575  
4576 <    nuh.nuhmask  = yylval.string;
4576 >    nuh.nuhmask  = ptr->data;
4577      nuh.nickptr  = NULL;
4578 <    nuh.userptr  = userbuf;
4579 <    nuh.hostptr  = hostbuf;
5019 <
4578 >    nuh.userptr  = block_state.user.buf;
4579 >    nuh.hostptr  = block_state.host.buf;
4580      nuh.nicksize = 0;
4581 <    nuh.usersize = sizeof(userbuf);
4582 <    nuh.hostsize = sizeof(hostbuf);
5023 <
4581 >    nuh.usersize = sizeof(block_state.user.buf);
4582 >    nuh.hostsize = sizeof(block_state.host.buf);
4583      split_nuh(&nuh);
4584  
4585 <    if (yy_aconf->user == NULL)
4586 <    {
4587 <      DupString(yy_aconf->user, userbuf);
5029 <      DupString(yy_aconf->host, hostbuf);
5030 <    }
5031 <    else
5032 <    {
5033 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4585 >    conf        = conf_make(CONF_CLIENT);
4586 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4587 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4588  
4589 <      DupString(yy_tmp->user, userbuf);
4590 <      DupString(yy_tmp->host, hostbuf);
4589 >    if (block_state.rpass.buf[0])
4590 >      conf->passwd = xstrdup(block_state.rpass.buf);
4591 >    if (block_state.name.buf[0])
4592 >      conf->passwd = xstrdup(block_state.name.buf);
4593  
4594 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4595 <    }
4594 >    conf->flags = block_state.flags.value;
4595 >    conf->port  = block_state.port.value;
4596 >
4597 >    conf_add_class_to_conf(conf, block_state.class.buf);
4598 >    add_conf_by_address(CONF_CLIENT, conf);
4599    }
4600   }
4601      break;
4602  
4603 <  case 257:
4604 <
4605 < /* Line 1806 of yacc.c  */
5047 < #line 1652 "ircd_parser.y"
4603 >  case 263:
4604 > /* Line 1792 of yacc.c  */
4605 > #line 1480 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608 <  {
5051 <    /* be paranoid */
5052 <    if (yy_aconf->passwd != NULL)
5053 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5054 <
5055 <    MyFree(yy_aconf->passwd);
5056 <    DupString(yy_aconf->passwd, yylval.string);
5057 <  }
4608 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4609   }
4610      break;
4611  
4612 <  case 258:
4613 <
4614 < /* Line 1806 of yacc.c  */
5064 < #line 1665 "ircd_parser.y"
4612 >  case 264:
4613 > /* Line 1792 of yacc.c  */
4614 > #line 1486 "conf_parser.y"
4615      {
4616    if (conf_parser_ctx.pass == 2)
4617 <  {
5068 <    MyFree(class_name);
5069 <    DupString(class_name, yylval.string);
5070 <  }
4617 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4618   }
4619      break;
4620  
4621 <  case 259:
4621 >  case 265:
4622 > /* Line 1792 of yacc.c  */
4623 > #line 1492 "conf_parser.y"
4624 >    {
4625 >  if (conf_parser_ctx.pass == 2)
4626 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4627 > }
4628 >    break;
4629  
4630 < /* Line 1806 of yacc.c  */
4631 < #line 1674 "ircd_parser.y"
4630 >  case 266:
4631 > /* Line 1792 of yacc.c  */
4632 > #line 1498 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635    {
4636      if (yylval.number)
4637 <      SetConfEncrypted(yy_aconf);
4637 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4638      else
4639 <      ClearConfEncrypted(yy_aconf);
4639 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4640    }
4641   }
4642      break;
4643  
4644 <  case 260:
4645 <
4646 < /* Line 1806 of yacc.c  */
5092 < #line 1685 "ircd_parser.y"
4644 >  case 267:
4645 > /* Line 1792 of yacc.c  */
4646 > #line 1509 "conf_parser.y"
4647      {
4648 +  if (conf_parser_ctx.pass == 2)
4649 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4650   }
4651      break;
4652  
4653 <  case 264:
4654 <
4655 < /* Line 1806 of yacc.c  */
5100 < #line 1690 "ircd_parser.y"
4653 >  case 271:
4654 > /* Line 1792 of yacc.c  */
4655 > #line 1516 "conf_parser.y"
4656      {
4657    if (conf_parser_ctx.pass == 2)
4658 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4658 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4659   }
4660      break;
4661  
4662 <  case 265:
4663 <
4664 < /* Line 1806 of yacc.c  */
5110 < #line 1694 "ircd_parser.y"
4662 >  case 272:
4663 > /* Line 1792 of yacc.c  */
4664 > #line 1520 "conf_parser.y"
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4667 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4668   }
4669      break;
4670  
4671 <  case 266:
4672 <
4673 < /* Line 1806 of yacc.c  */
5120 < #line 1698 "ircd_parser.y"
4671 >  case 273:
4672 > /* Line 1792 of yacc.c  */
4673 > #line 1524 "conf_parser.y"
4674      {
4675    if (conf_parser_ctx.pass == 2)
4676 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4676 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4677   }
4678      break;
4679  
4680 <  case 267:
4681 <
4682 < /* Line 1806 of yacc.c  */
5130 < #line 1702 "ircd_parser.y"
4680 >  case 274:
4681 > /* Line 1792 of yacc.c  */
4682 > #line 1528 "conf_parser.y"
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4685 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4686   }
4687      break;
4688  
4689 <  case 268:
4690 <
4691 < /* Line 1806 of yacc.c  */
5140 < #line 1706 "ircd_parser.y"
4689 >  case 275:
4690 > /* Line 1792 of yacc.c  */
4691 > #line 1532 "conf_parser.y"
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4694 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4695   }
4696      break;
4697  
4698 <  case 269:
4699 <
4700 < /* Line 1806 of yacc.c  */
5150 < #line 1710 "ircd_parser.y"
4698 >  case 276:
4699 > /* Line 1792 of yacc.c  */
4700 > #line 1536 "conf_parser.y"
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4703 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4704   }
4705      break;
4706  
4707 <  case 270:
4708 <
4709 < /* Line 1806 of yacc.c  */
5160 < #line 1714 "ircd_parser.y"
4707 >  case 277:
4708 > /* Line 1792 of yacc.c  */
4709 > #line 1540 "conf_parser.y"
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4712 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4713   }
4714      break;
4715  
4716 <  case 271:
4717 <
4718 < /* Line 1806 of yacc.c  */
5170 < #line 1718 "ircd_parser.y"
4716 >  case 278:
4717 > /* Line 1792 of yacc.c  */
4718 > #line 1544 "conf_parser.y"
4719      {
4720    if (conf_parser_ctx.pass == 2)
4721 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4721 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4722   }
4723      break;
4724  
4725 <  case 272:
4726 <
4727 < /* Line 1806 of yacc.c  */
5180 < #line 1722 "ircd_parser.y"
4725 >  case 279:
4726 > /* Line 1792 of yacc.c  */
4727 > #line 1548 "conf_parser.y"
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4730 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4731   }
4732      break;
4733  
4734 <  case 273:
4735 <
4736 < /* Line 1806 of yacc.c  */
5190 < #line 1729 "ircd_parser.y"
4734 >  case 280:
4735 > /* Line 1792 of yacc.c  */
4736 > #line 1552 "conf_parser.y"
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739 <  {
5194 <    MyFree(yy_conf->name);
5195 <
5196 <    if (strlen(yylval.string) < HOSTLEN)
5197 <    {    
5198 <      DupString(yy_conf->name, yylval.string);
5199 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5200 <    }
5201 <    else
5202 <    {
5203 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5204 <      yy_conf->name = NULL;
5205 <    }
5206 <  }
4739 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4740   }
4741      break;
4742  
4743 <  case 274:
4744 <
4745 < /* Line 1806 of yacc.c  */
5213 < #line 1748 "ircd_parser.y"
4743 >  case 281:
4744 > /* Line 1792 of yacc.c  */
4745 > #line 1558 "conf_parser.y"
4746      {
4747 <  if (conf_parser_ctx.pass == 2)
5216 <  {
5217 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5218 <    MyFree(yy_conf->name);
5219 <    DupString(yy_conf->name, yylval.string);
5220 <  }
5221 < }
4747 >  if (conf_parser_ctx.pass != 2)
4748      break;
4749  
4750 <  case 275:
5225 <
5226 < /* Line 1806 of yacc.c  */
5227 < #line 1758 "ircd_parser.y"
5228 <    {
5229 <  if (conf_parser_ctx.pass == 2)
4750 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4751    {
4752 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4753 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4752 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4753 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4754    }
4755 +  else
4756 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4757   }
4758      break;
4759  
4760 <  case 276:
4761 <
4762 < /* Line 1806 of yacc.c  */
5240 < #line 1771 "ircd_parser.y"
4760 >  case 282:
4761 > /* Line 1792 of yacc.c  */
4762 > #line 1572 "conf_parser.y"
4763      {
4764 <  if (conf_parser_ctx.pass == 2)
5243 <  {
5244 <    MyFree(resv_reason);
5245 <    resv_reason = NULL;
5246 <  }
5247 < }
4764 >  if (conf_parser_ctx.pass != 2)
4765      break;
4766  
4767 <  case 277:
4767 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4768 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4769 > }
4770 >    break;
4771  
4772 < /* Line 1806 of yacc.c  */
4773 < #line 1778 "ircd_parser.y"
4772 >  case 283:
4773 > /* Line 1792 of yacc.c  */
4774 > #line 1581 "conf_parser.y"
4775      {
4776 <  if (conf_parser_ctx.pass == 2)
4777 <  {
4778 <    MyFree(resv_reason);
4779 <    resv_reason = NULL;
4780 <  }
4776 >  if (conf_parser_ctx.pass != 2)
4777 >    break;
4778 >
4779 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4780 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4781   }
4782      break;
4783  
4784    case 284:
4785 <
4786 < /* Line 1806 of yacc.c  */
5266 < #line 1790 "ircd_parser.y"
4785 > /* Line 1792 of yacc.c  */
4786 > #line 1594 "conf_parser.y"
4787      {
4788 <  if (conf_parser_ctx.pass == 2)
5269 <  {
5270 <    MyFree(resv_reason);
5271 <    DupString(resv_reason, yylval.string);
5272 <  }
5273 < }
4788 >  if (conf_parser_ctx.pass != 2)
4789      break;
4790  
4791 <  case 285:
4791 >  reset_block_state();
4792 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4793 > }
4794 >    break;
4795  
4796 < /* Line 1806 of yacc.c  */
4797 < #line 1799 "ircd_parser.y"
4796 >  case 292:
4797 > /* Line 1792 of yacc.c  */
4798 > #line 1606 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801 <  {
4802 <    if (IsChanPrefix(*yylval.string))
4801 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4802 > }
4803 >    break;
4804 >
4805 >  case 293:
4806 > /* Line 1792 of yacc.c  */
4807 > #line 1612 "conf_parser.y"
4808      {
4809 <      char def_reason[] = "No reason";
4809 >  if (conf_parser_ctx.pass != 2)
4810 >    break;
4811  
4812 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4813 <    }
5289 <  }
5290 <  /* ignore it for now.. but we really should make a warning if
5291 <   * its an erroneous name --fl_ */
4812 >  if (IsChanPrefix(*yylval.string))
4813 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4814   }
4815      break;
4816  
4817 <  case 286:
4818 <
4819 < /* Line 1806 of yacc.c  */
5298 < #line 1814 "ircd_parser.y"
4817 >  case 294:
4818 > /* Line 1792 of yacc.c  */
4819 > #line 1621 "conf_parser.y"
4820      {
4821    if (conf_parser_ctx.pass == 2)
4822 <  {
5302 <    char def_reason[] = "No reason";
5303 <
5304 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5305 <  }
4822 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4823   }
4824      break;
4825  
4826 <  case 292:
4827 <
4828 < /* Line 1806 of yacc.c  */
5312 < #line 1832 "ircd_parser.y"
4826 >  case 300:
4827 > /* Line 1792 of yacc.c  */
4828 > #line 1635 "conf_parser.y"
4829      {
4830    if (conf_parser_ctx.pass == 2)
4831    {
4832      if (valid_servname(yylval.string))
4833      {
4834 <      yy_conf = make_conf_item(SERVICE_TYPE);
4835 <      DupString(yy_conf->name, yylval.string);
4834 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4835 >      conf->name = xstrdup(yylval.string);
4836      }
4837    }
4838   }
4839      break;
4840  
4841 <  case 293:
4842 <
4843 < /* Line 1806 of yacc.c  */
5328 < #line 1847 "ircd_parser.y"
4841 >  case 301:
4842 > /* Line 1792 of yacc.c  */
4843 > #line 1650 "conf_parser.y"
4844      {
4845 <  if (conf_parser_ctx.pass == 2)
5331 <  {
5332 <    yy_conf = make_conf_item(ULINE_TYPE);
5333 <    yy_match_item = map_to_conf(yy_conf);
5334 <    yy_match_item->action = SHARED_ALL;
5335 <  }
5336 < }
4845 >  if (conf_parser_ctx.pass != 2)
4846      break;
4847  
4848 <  case 294:
4848 >  reset_block_state();
4849  
4850 < /* Line 1806 of yacc.c  */
4851 < #line 1855 "ircd_parser.y"
4852 <    {
4853 <  if (conf_parser_ctx.pass == 2)
5345 <  {
5346 <    yy_conf = NULL;
5347 <  }
4850 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4851 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4852 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4853 >  block_state.flags.value = SHARED_ALL;
4854   }
4855      break;
4856  
4857 <  case 301:
4857 >  case 302:
4858 > /* Line 1792 of yacc.c  */
4859 > #line 1661 "conf_parser.y"
4860 >    {
4861 >  struct MaskItem *conf = NULL;
4862 >
4863 >  if (conf_parser_ctx.pass != 2)
4864 >    break;
4865 >
4866 >  conf = conf_make(CONF_ULINE);
4867 >  conf->flags = block_state.flags.value;
4868 >  conf->name = xstrdup(block_state.name.buf);
4869 >  conf->user = xstrdup(block_state.user.buf);
4870 >  conf->user = xstrdup(block_state.host.buf);
4871 > }
4872 >    break;
4873  
4874 < /* Line 1806 of yacc.c  */
4875 < #line 1866 "ircd_parser.y"
4874 >  case 309:
4875 > /* Line 1792 of yacc.c  */
4876 > #line 1678 "conf_parser.y"
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879 <  {
5358 <    MyFree(yy_conf->name);
5359 <    DupString(yy_conf->name, yylval.string);
5360 <  }
4879 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4880   }
4881      break;
4882  
4883 <  case 302:
4884 <
4885 < /* Line 1806 of yacc.c  */
5367 < #line 1875 "ircd_parser.y"
4883 >  case 310:
4884 > /* Line 1792 of yacc.c  */
4885 > #line 1684 "conf_parser.y"
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888    {
# Line 5372 | Line 4890 | yyreduce:
4890  
4891      nuh.nuhmask  = yylval.string;
4892      nuh.nickptr  = NULL;
4893 <    nuh.userptr  = userbuf;
4894 <    nuh.hostptr  = hostbuf;
4893 >    nuh.userptr  = block_state.user.buf;
4894 >    nuh.hostptr  = block_state.host.buf;
4895  
4896      nuh.nicksize = 0;
4897 <    nuh.usersize = sizeof(userbuf);
4898 <    nuh.hostsize = sizeof(hostbuf);
4897 >    nuh.usersize = sizeof(block_state.user.buf);
4898 >    nuh.hostsize = sizeof(block_state.host.buf);
4899  
4900      split_nuh(&nuh);
5383
5384    DupString(yy_match_item->user, userbuf);
5385    DupString(yy_match_item->host, hostbuf);
4901    }
4902   }
4903      break;
4904  
4905 <  case 303:
4906 <
4907 < /* Line 1806 of yacc.c  */
5393 < #line 1897 "ircd_parser.y"
4905 >  case 311:
4906 > /* Line 1792 of yacc.c  */
4907 > #line 1703 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <    yy_match_item->action = 0;
4910 >    block_state.flags.value = 0;
4911   }
4912      break;
4913  
4914 <  case 307:
4915 <
4916 < /* Line 1806 of yacc.c  */
5403 < #line 1904 "ircd_parser.y"
4914 >  case 315:
4915 > /* Line 1792 of yacc.c  */
4916 > #line 1710 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919 <    yy_match_item->action |= SHARED_KLINE;
4919 >    block_state.flags.value |= SHARED_KLINE;
4920   }
4921      break;
4922  
4923 <  case 308:
4924 <
4925 < /* Line 1806 of yacc.c  */
5413 < #line 1908 "ircd_parser.y"
4923 >  case 316:
4924 > /* Line 1792 of yacc.c  */
4925 > #line 1714 "conf_parser.y"
4926      {
4927    if (conf_parser_ctx.pass == 2)
4928 <    yy_match_item->action |= SHARED_UNKLINE;
4928 >    block_state.flags.value |= SHARED_UNKLINE;
4929   }
4930      break;
4931  
4932 <  case 309:
4933 <
4934 < /* Line 1806 of yacc.c  */
5423 < #line 1912 "ircd_parser.y"
4932 >  case 317:
4933 > /* Line 1792 of yacc.c  */
4934 > #line 1718 "conf_parser.y"
4935      {
4936    if (conf_parser_ctx.pass == 2)
4937 <    yy_match_item->action |= SHARED_DLINE;
4937 >    block_state.flags.value |= SHARED_DLINE;
4938   }
4939      break;
4940  
4941 <  case 310:
4942 <
4943 < /* Line 1806 of yacc.c  */
5433 < #line 1916 "ircd_parser.y"
4941 >  case 318:
4942 > /* Line 1792 of yacc.c  */
4943 > #line 1722 "conf_parser.y"
4944      {
4945    if (conf_parser_ctx.pass == 2)
4946 <    yy_match_item->action |= SHARED_UNDLINE;
4946 >    block_state.flags.value |= SHARED_UNDLINE;
4947   }
4948      break;
4949  
4950 <  case 311:
4951 <
4952 < /* Line 1806 of yacc.c  */
5443 < #line 1920 "ircd_parser.y"
4950 >  case 319:
4951 > /* Line 1792 of yacc.c  */
4952 > #line 1726 "conf_parser.y"
4953      {
4954    if (conf_parser_ctx.pass == 2)
4955 <    yy_match_item->action |= SHARED_XLINE;
4955 >    block_state.flags.value |= SHARED_XLINE;
4956   }
4957      break;
4958  
4959 <  case 312:
4960 <
4961 < /* Line 1806 of yacc.c  */
5453 < #line 1924 "ircd_parser.y"
4959 >  case 320:
4960 > /* Line 1792 of yacc.c  */
4961 > #line 1730 "conf_parser.y"
4962      {
4963    if (conf_parser_ctx.pass == 2)
4964 <    yy_match_item->action |= SHARED_UNXLINE;
4964 >    block_state.flags.value |= SHARED_UNXLINE;
4965   }
4966      break;
4967  
4968 <  case 313:
4969 <
4970 < /* Line 1806 of yacc.c  */
5463 < #line 1928 "ircd_parser.y"
4968 >  case 321:
4969 > /* Line 1792 of yacc.c  */
4970 > #line 1734 "conf_parser.y"
4971      {
4972    if (conf_parser_ctx.pass == 2)
4973 <    yy_match_item->action |= SHARED_RESV;
4973 >    block_state.flags.value |= SHARED_RESV;
4974   }
4975      break;
4976  
4977 <  case 314:
4978 <
4979 < /* Line 1806 of yacc.c  */
5473 < #line 1932 "ircd_parser.y"
4977 >  case 322:
4978 > /* Line 1792 of yacc.c  */
4979 > #line 1738 "conf_parser.y"
4980      {
4981    if (conf_parser_ctx.pass == 2)
4982 <    yy_match_item->action |= SHARED_UNRESV;
4982 >    block_state.flags.value |= SHARED_UNRESV;
4983   }
4984      break;
4985  
4986 <  case 315:
4987 <
4988 < /* Line 1806 of yacc.c  */
5483 < #line 1936 "ircd_parser.y"
4986 >  case 323:
4987 > /* Line 1792 of yacc.c  */
4988 > #line 1742 "conf_parser.y"
4989      {
4990    if (conf_parser_ctx.pass == 2)
4991 <    yy_match_item->action |= SHARED_LOCOPS;
4991 >    block_state.flags.value |= SHARED_LOCOPS;
4992   }
4993      break;
4994  
4995 <  case 316:
4996 <
4997 < /* Line 1806 of yacc.c  */
5493 < #line 1940 "ircd_parser.y"
4995 >  case 324:
4996 > /* Line 1792 of yacc.c  */
4997 > #line 1746 "conf_parser.y"
4998      {
4999    if (conf_parser_ctx.pass == 2)
5000 <    yy_match_item->action = SHARED_ALL;
5000 >    block_state.flags.value = SHARED_ALL;
5001   }
5002      break;
5003  
5004 <  case 317:
5005 <
5006 < /* Line 1806 of yacc.c  */
5503 < #line 1949 "ircd_parser.y"
5004 >  case 325:
5005 > /* Line 1792 of yacc.c  */
5006 > #line 1755 "conf_parser.y"
5007      {
5008 <  if (conf_parser_ctx.pass == 2)
5506 <  {
5507 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5508 <    yy_conf->flags = SHARED_ALL;
5509 <  }
5510 < }
5008 >  if (conf_parser_ctx.pass != 2)
5009      break;
5010  
5011 <  case 318:
5011 >  reset_block_state();
5012  
5013 < /* Line 1806 of yacc.c  */
5014 < #line 1956 "ircd_parser.y"
5517 <    {
5518 <  if (conf_parser_ctx.pass == 2)
5519 <  {
5520 <    if (yy_conf->name == NULL)
5521 <      DupString(yy_conf->name, "*");
5522 <    yy_conf = NULL;
5523 <  }
5013 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015   }
5016      break;
5017  
5018 <  case 324:
5019 <
5020 < /* Line 1806 of yacc.c  */
5530 < #line 1969 "ircd_parser.y"
5018 >  case 326:
5019 > /* Line 1792 of yacc.c  */
5020 > #line 1764 "conf_parser.y"
5021      {
5022 <  if (conf_parser_ctx.pass == 2)
5023 <    DupString(yy_conf->name, yylval.string);
5024 < }
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025      break;
5026  
5027 <  case 325:
5027 >  conf = conf_make(CONF_CLUSTER);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030 > }
5031 >    break;
5032  
5033 < /* Line 1806 of yacc.c  */
5034 < #line 1975 "ircd_parser.y"
5033 >  case 332:
5034 > /* Line 1792 of yacc.c  */
5035 > #line 1779 "conf_parser.y"
5036      {
5037    if (conf_parser_ctx.pass == 2)
5038 <    yy_conf->flags = 0;
5038 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5039   }
5040      break;
5041  
5042 <  case 329:
5043 <
5044 < /* Line 1806 of yacc.c  */
5550 < #line 1982 "ircd_parser.y"
5042 >  case 333:
5043 > /* Line 1792 of yacc.c  */
5044 > #line 1785 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047 <    yy_conf->flags |= SHARED_KLINE;
5047 >    block_state.flags.value = 0;
5048   }
5049      break;
5050  
5051 <  case 330:
5052 <
5053 < /* Line 1806 of yacc.c  */
5560 < #line 1986 "ircd_parser.y"
5051 >  case 337:
5052 > /* Line 1792 of yacc.c  */
5053 > #line 1792 "conf_parser.y"
5054      {
5055    if (conf_parser_ctx.pass == 2)
5056 <    yy_conf->flags |= SHARED_UNKLINE;
5056 >    block_state.flags.value |= SHARED_KLINE;
5057   }
5058      break;
5059  
5060 <  case 331:
5061 <
5062 < /* Line 1806 of yacc.c  */
5570 < #line 1990 "ircd_parser.y"
5060 >  case 338:
5061 > /* Line 1792 of yacc.c  */
5062 > #line 1796 "conf_parser.y"
5063      {
5064    if (conf_parser_ctx.pass == 2)
5065 <    yy_conf->flags |= SHARED_DLINE;
5065 >    block_state.flags.value |= SHARED_UNKLINE;
5066   }
5067      break;
5068  
5069 <  case 332:
5070 <
5071 < /* Line 1806 of yacc.c  */
5580 < #line 1994 "ircd_parser.y"
5069 >  case 339:
5070 > /* Line 1792 of yacc.c  */
5071 > #line 1800 "conf_parser.y"
5072      {
5073    if (conf_parser_ctx.pass == 2)
5074 <    yy_conf->flags |= SHARED_UNDLINE;
5074 >    block_state.flags.value |= SHARED_DLINE;
5075   }
5076      break;
5077  
5078 <  case 333:
5079 <
5080 < /* Line 1806 of yacc.c  */
5590 < #line 1998 "ircd_parser.y"
5078 >  case 340:
5079 > /* Line 1792 of yacc.c  */
5080 > #line 1804 "conf_parser.y"
5081      {
5082    if (conf_parser_ctx.pass == 2)
5083 <    yy_conf->flags |= SHARED_XLINE;
5083 >    block_state.flags.value |= SHARED_UNDLINE;
5084   }
5085      break;
5086  
5087 <  case 334:
5088 <
5089 < /* Line 1806 of yacc.c  */
5600 < #line 2002 "ircd_parser.y"
5087 >  case 341:
5088 > /* Line 1792 of yacc.c  */
5089 > #line 1808 "conf_parser.y"
5090      {
5091    if (conf_parser_ctx.pass == 2)
5092 <    yy_conf->flags |= SHARED_UNXLINE;
5092 >    block_state.flags.value |= SHARED_XLINE;
5093   }
5094      break;
5095  
5096 <  case 335:
5097 <
5098 < /* Line 1806 of yacc.c  */
5610 < #line 2006 "ircd_parser.y"
5096 >  case 342:
5097 > /* Line 1792 of yacc.c  */
5098 > #line 1812 "conf_parser.y"
5099      {
5100    if (conf_parser_ctx.pass == 2)
5101 <    yy_conf->flags |= SHARED_RESV;
5101 >    block_state.flags.value |= SHARED_UNXLINE;
5102   }
5103      break;
5104  
5105 <  case 336:
5106 <
5107 < /* Line 1806 of yacc.c  */
5620 < #line 2010 "ircd_parser.y"
5105 >  case 343:
5106 > /* Line 1792 of yacc.c  */
5107 > #line 1816 "conf_parser.y"
5108      {
5109    if (conf_parser_ctx.pass == 2)
5110 <    yy_conf->flags |= SHARED_UNRESV;
5110 >    block_state.flags.value |= SHARED_RESV;
5111   }
5112      break;
5113  
5114 <  case 337:
5115 <
5116 < /* Line 1806 of yacc.c  */
5630 < #line 2014 "ircd_parser.y"
5114 >  case 344:
5115 > /* Line 1792 of yacc.c  */
5116 > #line 1820 "conf_parser.y"
5117      {
5118    if (conf_parser_ctx.pass == 2)
5119 <    yy_conf->flags |= SHARED_LOCOPS;
5119 >    block_state.flags.value |= SHARED_UNRESV;
5120   }
5121      break;
5122  
5123 <  case 338:
5124 <
5125 < /* Line 1806 of yacc.c  */
5640 < #line 2018 "ircd_parser.y"
5123 >  case 345:
5124 > /* Line 1792 of yacc.c  */
5125 > #line 1824 "conf_parser.y"
5126      {
5127    if (conf_parser_ctx.pass == 2)
5128 <    yy_conf->flags = SHARED_ALL;
5128 >    block_state.flags.value |= SHARED_LOCOPS;
5129   }
5130      break;
5131  
5132 <  case 339:
5133 <
5134 < /* Line 1806 of yacc.c  */
5650 < #line 2027 "ircd_parser.y"
5132 >  case 346:
5133 > /* Line 1792 of yacc.c  */
5134 > #line 1828 "conf_parser.y"
5135      {
5136    if (conf_parser_ctx.pass == 2)
5137 <  {
5654 <    yy_conf = make_conf_item(SERVER_TYPE);
5655 <    yy_aconf = map_to_conf(yy_conf);
5656 <
5657 <    /* defaults */
5658 <    yy_aconf->port = PORTNUM;
5659 <  }
5660 <  else
5661 <  {
5662 <    MyFree(class_name);
5663 <    class_name = NULL;
5664 <  }
5137 >    block_state.flags.value = SHARED_ALL;
5138   }
5139      break;
5140  
5141 <  case 340:
5142 <
5143 < /* Line 1806 of yacc.c  */
5671 < #line 2042 "ircd_parser.y"
5141 >  case 347:
5142 > /* Line 1792 of yacc.c  */
5143 > #line 1837 "conf_parser.y"
5144      {
5673  if (conf_parser_ctx.pass == 2)
5674  {
5675    struct CollectItem *yy_hconf=NULL;
5676    struct CollectItem *yy_lconf=NULL;
5677    dlink_node *ptr = NULL, *next_ptr = NULL;
5145  
5146 <    if (yy_aconf->host &&
5147 <        yy_aconf->passwd && yy_aconf->spasswd)
5681 <    {
5682 <      if (conf_add_server(yy_conf, class_name) == -1)
5683 <      {
5684 <        delete_conf_item(yy_conf);
5685 <        yy_conf = NULL;
5686 <        yy_aconf = NULL;
5687 <      }
5688 <    }
5689 <    else
5690 <    {
5691 <      /* Even if yy_conf ->name is NULL
5692 <       * should still unhook any hub/leaf confs still pending
5693 <       */
5694 <      unhook_hub_leaf_confs();
5695 <
5696 <      if (yy_conf->name != NULL)
5697 <      {
5698 <        if (yy_aconf->host == NULL)
5699 <          yyerror("Ignoring connect block -- missing host");
5700 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5701 <          yyerror("Ignoring connect block -- missing password");
5702 <      }
5703 <
5704 <
5705 <      /* XXX
5706 <       * This fixes a try_connections() core (caused by invalid class_ptr
5707 <       * pointers) reported by metalrock. That's an ugly fix, but there
5708 <       * is currently no better way. The entire config subsystem needs an
5709 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5710 <       * a doubly linked list immediately without any sanity checks!  -Michael
5711 <       */
5712 <      delete_conf_item(yy_conf);
5713 <
5714 <      yy_aconf = NULL;
5715 <      yy_conf = NULL;
5716 <    }
5717 <
5718 <      /*
5719 <       * yy_conf is still pointing at the server that is having
5720 <       * a connect block built for it. This means, y_aconf->name
5721 <       * points to the actual irc name this server will be known as.
5722 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5723 <       * given in the link list at yy_hconf. Fill in the HUB confs
5724 <       * from this link list now.
5725 <       */        
5726 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5727 <      {
5728 <        struct ConfItem *new_hub_conf;
5729 <        struct MatchItem *match_item;
5730 <
5731 <        yy_hconf = ptr->data;
5732 <
5733 <        /* yy_conf == NULL is a fatal error for this connect block! */
5734 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5735 <        {
5736 <          new_hub_conf = make_conf_item(HUB_TYPE);
5737 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5738 <          DupString(new_hub_conf->name, yy_conf->name);
5739 <          if (yy_hconf->user != NULL)
5740 <            DupString(match_item->user, yy_hconf->user);
5741 <          else
5742 <            DupString(match_item->user, "*");
5743 <          if (yy_hconf->host != NULL)
5744 <            DupString(match_item->host, yy_hconf->host);
5745 <          else
5746 <            DupString(match_item->host, "*");
5747 <        }
5748 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5749 <        free_collect_item(yy_hconf);
5750 <      }
5751 <
5752 <      /* Ditto for the LEAF confs */
5753 <
5754 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5755 <      {
5756 <        struct ConfItem *new_leaf_conf;
5757 <        struct MatchItem *match_item;
5758 <
5759 <        yy_lconf = ptr->data;
5146 >  if (conf_parser_ctx.pass != 2)
5147 >    break;
5148  
5149 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5150 <        {
5763 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5764 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5765 <          DupString(new_leaf_conf->name, yy_conf->name);
5766 <          if (yy_lconf->user != NULL)
5767 <            DupString(match_item->user, yy_lconf->user);
5768 <          else
5769 <            DupString(match_item->user, "*");
5770 <          if (yy_lconf->host != NULL)
5771 <            DupString(match_item->host, yy_lconf->host);
5772 <          else
5773 <            DupString(match_item->host, "*");
5774 <        }
5775 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5776 <        free_collect_item(yy_lconf);
5777 <      }
5778 <      MyFree(class_name);
5779 <      class_name = NULL;
5780 <      yy_conf = NULL;
5781 <      yy_aconf = NULL;
5782 <  }
5149 >  reset_block_state();
5150 >  block_state.port.value = PORTNUM;
5151   }
5152      break;
5153  
5154 <  case 356:
5155 <
5156 < /* Line 1806 of yacc.c  */
5789 < #line 2164 "ircd_parser.y"
5154 >  case 348:
5155 > /* Line 1792 of yacc.c  */
5156 > #line 1845 "conf_parser.y"
5157      {
5158 <  if (conf_parser_ctx.pass == 2)
5159 <  {
5793 <    if (yy_conf->name != NULL)
5794 <      yyerror("Multiple connect name entry");
5158 >  struct MaskItem *conf = NULL;
5159 >  struct addrinfo hints, *res;
5160  
5161 <    MyFree(yy_conf->name);
5797 <    DupString(yy_conf->name, yylval.string);
5798 <  }
5799 < }
5161 >  if (conf_parser_ctx.pass != 2)
5162      break;
5163  
5164 <  case 357:
5164 >  if (!block_state.name.buf[0] ||
5165 >      !block_state.host.buf[0])
5166 >    break;
5167  
5168 < /* Line 1806 of yacc.c  */
5169 < #line 2176 "ircd_parser.y"
5806 <    {
5807 <  if (conf_parser_ctx.pass == 2)
5808 <  {
5809 <    MyFree(yy_aconf->host);
5810 <    DupString(yy_aconf->host, yylval.string);
5811 <  }
5812 < }
5168 >  if (!(block_state.rpass.buf[0] ||
5169 >        block_state.spass.buf[0]))
5170      break;
5171  
5172 <  case 358:
5172 >  if (has_wildcards(block_state.name.buf) ||
5173 >      has_wildcards(block_state.host.buf))
5174 >    break;
5175  
5176 < /* Line 1806 of yacc.c  */
5177 < #line 2185 "ircd_parser.y"
5178 <    {
5179 <  if (conf_parser_ctx.pass == 2)
5180 <  {
5181 <    struct addrinfo hints, *res;
5176 >  conf = conf_make(CONF_SERVER);
5177 >  conf->port = block_state.port.value;
5178 >  conf->flags = block_state.flags.value;
5179 >  conf->aftype = block_state.aftype.value;
5180 >  conf->host = xstrdup(block_state.host.buf);
5181 >  conf->name = xstrdup(block_state.name.buf);
5182 >  conf->passwd = xstrdup(block_state.rpass.buf);
5183 >  conf->spasswd = xstrdup(block_state.spass.buf);
5184 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5185 >
5186 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5187 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5188  
5189 +  if (block_state.bind.buf[0])
5190 +  {
5191      memset(&hints, 0, sizeof(hints));
5192  
5193      hints.ai_family   = AF_UNSPEC;
5194      hints.ai_socktype = SOCK_STREAM;
5195      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5196  
5197 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5198 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5197 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5198 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5199      else
5200      {
5201        assert(res != NULL);
5202  
5203 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5204 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5205 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5203 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5204 >      conf->bind.ss.ss_family = res->ai_family;
5205 >      conf->bind.ss_len = res->ai_addrlen;
5206        freeaddrinfo(res);
5207      }
5208    }
5209 +
5210 +  conf_add_class_to_conf(conf, block_state.class.buf);
5211 +  lookup_confhost(conf);
5212   }
5213      break;
5214  
5215 <  case 359:
5216 <
5217 < /* Line 1806 of yacc.c  */
5848 < #line 2211 "ircd_parser.y"
5215 >  case 365:
5216 > /* Line 1792 of yacc.c  */
5217 > #line 1911 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <  {
5852 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5853 <      yyerror("Server passwords cannot begin with a colon");
5854 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5855 <      yyerror("Server passwords cannot contain spaces");
5856 <    else {
5857 <      if (yy_aconf->spasswd != NULL)
5858 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5859 <
5860 <      MyFree(yy_aconf->spasswd);
5861 <      DupString(yy_aconf->spasswd, yylval.string);
5862 <    }
5863 <  }
5220 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5221   }
5222      break;
5223  
5224 <  case 360:
5225 <
5226 < /* Line 1806 of yacc.c  */
5870 < #line 2229 "ircd_parser.y"
5224 >  case 366:
5225 > /* Line 1792 of yacc.c  */
5226 > #line 1917 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <  {
5874 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5875 <      yyerror("Server passwords cannot begin with a colon");
5876 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5877 <      yyerror("Server passwords cannot contain spaces");
5878 <    else {
5879 <      if (yy_aconf->passwd != NULL)
5880 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5881 <
5882 <      MyFree(yy_aconf->passwd);
5883 <      DupString(yy_aconf->passwd, yylval.string);
5884 <    }
5885 <  }
5229 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5230   }
5231      break;
5232  
5233 <  case 361:
5234 <
5235 < /* Line 1806 of yacc.c  */
5892 < #line 2247 "ircd_parser.y"
5233 >  case 367:
5234 > /* Line 1792 of yacc.c  */
5235 > #line 1923 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5238 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5239   }
5240      break;
5241  
5242 <  case 362:
5243 <
5244 < /* Line 1806 of yacc.c  */
5902 < #line 2253 "ircd_parser.y"
5242 >  case 368:
5243 > /* Line 1792 of yacc.c  */
5244 > #line 1929 "conf_parser.y"
5245      {
5246 <  if (conf_parser_ctx.pass == 2)
5905 <    yy_aconf->aftype = AF_INET;
5906 < }
5246 >  if (conf_parser_ctx.pass != 2)
5247      break;
5248  
5249 <  case 363:
5249 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5250 >    yyerror("Server passwords cannot begin with a colon");
5251 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5252 >    yyerror("Server passwords cannot contain spaces");
5253 >  else
5254 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5255 > }
5256 >    break;
5257  
5258 < /* Line 1806 of yacc.c  */
5259 < #line 2257 "ircd_parser.y"
5258 >  case 369:
5259 > /* Line 1792 of yacc.c  */
5260 > #line 1942 "conf_parser.y"
5261      {
5262 < #ifdef IPV6
5915 <  if (conf_parser_ctx.pass == 2)
5916 <    yy_aconf->aftype = AF_INET6;
5917 < #endif
5918 < }
5262 >  if (conf_parser_ctx.pass != 2)
5263      break;
5264  
5265 <  case 364:
5265 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5266 >    yyerror("Server passwords cannot begin with a colon");
5267 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5268 >    yyerror("Server passwords cannot contain spaces");
5269 >  else
5270 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5271 > }
5272 >    break;
5273  
5274 < /* Line 1806 of yacc.c  */
5275 < #line 2265 "ircd_parser.y"
5274 >  case 370:
5275 > /* Line 1792 of yacc.c  */
5276 > #line 1955 "conf_parser.y"
5277      {
5278 +  if (conf_parser_ctx.pass == 2)
5279 +    block_state.port.value = (yyvsp[(3) - (4)].number);
5280   }
5281      break;
5282  
5283 <  case 368:
5284 <
5285 < /* Line 1806 of yacc.c  */
5932 < #line 2270 "ircd_parser.y"
5283 >  case 371:
5284 > /* Line 1792 of yacc.c  */
5285 > #line 1961 "conf_parser.y"
5286      {
5287    if (conf_parser_ctx.pass == 2)
5288 <    SetConfAllowAutoConn(yy_aconf);
5288 >    block_state.aftype.value = AF_INET;
5289   }
5290      break;
5291  
5292 <  case 369:
5293 <
5294 < /* Line 1806 of yacc.c  */
5942 < #line 2274 "ircd_parser.y"
5292 >  case 372:
5293 > /* Line 1792 of yacc.c  */
5294 > #line 1965 "conf_parser.y"
5295      {
5296 + #ifdef IPV6
5297    if (conf_parser_ctx.pass == 2)
5298 <    SetConfAwayBurst(yy_aconf);
5298 >    block_state.aftype.value = AF_INET6;
5299 > #endif
5300   }
5301      break;
5302  
5303 <  case 370:
5303 >  case 373:
5304 > /* Line 1792 of yacc.c  */
5305 > #line 1973 "conf_parser.y"
5306 >    {
5307 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5308 > }
5309 >    break;
5310  
5311 < /* Line 1806 of yacc.c  */
5312 < #line 2278 "ircd_parser.y"
5311 >  case 377:
5312 > /* Line 1792 of yacc.c  */
5313 > #line 1979 "conf_parser.y"
5314      {
5315    if (conf_parser_ctx.pass == 2)
5316 <    SetConfTopicBurst(yy_aconf);
5316 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5317   }
5318      break;
5319  
5320 <  case 371:
5321 <
5322 < /* Line 1806 of yacc.c  */
5962 < #line 2282 "ircd_parser.y"
5320 >  case 378:
5321 > /* Line 1792 of yacc.c  */
5322 > #line 1983 "conf_parser.y"
5323      {
5324    if (conf_parser_ctx.pass == 2)
5325 <    SetConfSSL(yy_aconf);
5325 >    block_state.flags.value |= CONF_FLAGS_SSL;
5326   }
5327      break;
5328  
5329 <  case 372:
5330 <
5331 < /* Line 1806 of yacc.c  */
5972 < #line 2288 "ircd_parser.y"
5329 >  case 379:
5330 > /* Line 1792 of yacc.c  */
5331 > #line 1989 "conf_parser.y"
5332      {
5333    if (conf_parser_ctx.pass == 2)
5334    {
5335      if (yylval.number)
5336 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5336 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5337      else
5338 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5338 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5339    }
5340   }
5341      break;
5342  
5343 <  case 373:
5344 <
5345 < /* Line 1806 of yacc.c  */
5987 < #line 2299 "ircd_parser.y"
5343 >  case 380:
5344 > /* Line 1792 of yacc.c  */
5345 > #line 2000 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <  {
5991 <    struct CollectItem *yy_tmp;
5992 <
5993 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5994 <    DupString(yy_tmp->host, yylval.string);
5995 <    DupString(yy_tmp->user, "*");
5996 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
5997 <  }
5348 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5349   }
5350      break;
5351  
5352 <  case 374:
5353 <
5354 < /* Line 1806 of yacc.c  */
6004 < #line 2312 "ircd_parser.y"
5352 >  case 381:
5353 > /* Line 1792 of yacc.c  */
5354 > #line 2006 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <  {
6008 <    struct CollectItem *yy_tmp;
6009 <
6010 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6011 <    DupString(yy_tmp->host, yylval.string);
6012 <    DupString(yy_tmp->user, "*");
6013 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6014 <  }
5357 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5358   }
5359      break;
5360  
5361 <  case 375:
5362 <
5363 < /* Line 1806 of yacc.c  */
6021 < #line 2325 "ircd_parser.y"
5361 >  case 382:
5362 > /* Line 1792 of yacc.c  */
5363 > #line 2012 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <  {
6025 <    MyFree(class_name);
6026 <    DupString(class_name, yylval.string);
6027 <  }
5366 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5367   }
5368      break;
5369  
5370 <  case 376:
5371 <
5372 < /* Line 1806 of yacc.c  */
6034 < #line 2337 "ircd_parser.y"
5370 >  case 383:
5371 > /* Line 1792 of yacc.c  */
5372 > #line 2018 "conf_parser.y"
5373      {
5374 + #ifdef HAVE_LIBCRYPTO
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
5377 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5378 <    regex_ban = 0;
5379 <  }
5376 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5377 > #else
5378 >  if (conf_parser_ctx.pass == 2)
5379 >    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5380 > #endif
5381   }
5382      break;
5383  
5384 <  case 377:
5385 <
5386 < /* Line 1806 of yacc.c  */
6047 < #line 2344 "ircd_parser.y"
5384 >  case 384:
5385 > /* Line 1792 of yacc.c  */
5386 > #line 2033 "conf_parser.y"
5387      {
5388    if (conf_parser_ctx.pass == 2)
5389 <  {
5390 <    if (userbuf[0] && hostbuf[0])
5389 >    reset_block_state();
5390 > }
5391 >    break;
5392 >
5393 >  case 385:
5394 > /* Line 1792 of yacc.c  */
5395 > #line 2037 "conf_parser.y"
5396      {
5397 <      if (regex_ban)
6054 <      {
6055 < #ifdef HAVE_LIBPCRE
6056 <        void *exp_user = NULL;
6057 <        void *exp_host = NULL;
6058 <        const char *errptr = NULL;
5397 >  struct MaskItem *conf = NULL;
5398  
5399 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5400 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6062 <        {
6063 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6064 <               errptr);
6065 <          break;
6066 <        }
5399 >  if (conf_parser_ctx.pass != 2)
5400 >    break;
5401  
5402 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5403 <        yy_aconf->regexuser = exp_user;
5404 <        yy_aconf->regexhost = exp_host;
5402 >  if (!block_state.user.buf[0] ||
5403 >      !block_state.host.buf[0])
5404 >    break;
5405  
6072        DupString(yy_aconf->user, userbuf);
6073        DupString(yy_aconf->host, hostbuf);
5406  
5407 <        if (reasonbuf[0])
5408 <          DupString(yy_aconf->reason, reasonbuf);
5409 <        else
5410 <          DupString(yy_aconf->reason, "No reason");
5407 >  if (block_state.port.value == 1)
5408 >  {
5409 > #ifdef HAVE_LIBPCRE
5410 >    void *exp_user = NULL;
5411 >    void *exp_host = NULL;
5412 >    const char *errptr = NULL;
5413 >
5414 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5415 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5416 >    {
5417 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 >           errptr);
5419 >      break;
5420 >    }
5421 >
5422 >    conf = conf_make(CONF_RKLINE);
5423 >    conf->regexuser = exp_user;
5424 >    conf->regexhost = exp_host;
5425 >
5426 >    conf->user = xstrdup(block_state.user.buf);
5427 >    conf->host = xstrdup(block_state.host.buf);
5428 >
5429 >    if (block_state.rpass.buf[0])
5430 >      conf->reason = xstrdup(block_state.rpass.buf);
5431 >    else
5432 >      conf->reason = xstrdup(CONF_NOREASON);
5433   #else
5434 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 <        break;
5434 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 >    break;
5436   #endif
5437 <      }
5438 <      else
5439 <      {
5440 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6087 <
6088 <        DupString(yy_aconf->user, userbuf);
6089 <        DupString(yy_aconf->host, hostbuf);
5437 >  }
5438 >  else
5439 >  {
5440 >    conf = conf_make(CONF_KLINE);
5441  
5442 <        if (reasonbuf[0])
5443 <          DupString(yy_aconf->reason, reasonbuf);
6093 <        else
6094 <          DupString(yy_aconf->reason, "No reason");
6095 <        add_conf_by_address(CONF_KILL, yy_aconf);
6096 <      }
6097 <    }
5442 >    conf->user = xstrdup(block_state.user.buf);
5443 >    conf->host = xstrdup(block_state.host.buf);
5444  
5445 <    yy_aconf = NULL;
5445 >    if (block_state.rpass.buf[0])
5446 >      conf->reason = xstrdup(block_state.rpass.buf);
5447 >    else
5448 >      conf->reason = xstrdup(CONF_NOREASON);
5449 >    add_conf_by_address(CONF_KLINE, conf);
5450    }
5451   }
5452      break;
5453  
5454 <  case 378:
5455 <
5456 < /* Line 1806 of yacc.c  */
6107 < #line 2400 "ircd_parser.y"
5454 >  case 386:
5455 > /* Line 1792 of yacc.c  */
5456 > #line 2095 "conf_parser.y"
5457      {
5458 +  if (conf_parser_ctx.pass == 2)
5459 +    block_state.port.value = 0;
5460   }
5461      break;
5462  
5463 <  case 382:
5464 <
5465 < /* Line 1806 of yacc.c  */
6115 < #line 2405 "ircd_parser.y"
5463 >  case 390:
5464 > /* Line 1792 of yacc.c  */
5465 > #line 2102 "conf_parser.y"
5466      {
5467    if (conf_parser_ctx.pass == 2)
5468 <    regex_ban = 1;
5468 >    block_state.port.value = 1;
5469   }
5470      break;
5471  
5472 <  case 389:
5473 <
5474 < /* Line 1806 of yacc.c  */
6125 < #line 2414 "ircd_parser.y"
5472 >  case 397:
5473 > /* Line 1792 of yacc.c  */
5474 > #line 2111 "conf_parser.y"
5475      {
5476 +
5477    if (conf_parser_ctx.pass == 2)
5478    {
5479      struct split_nuh_item nuh;
5480  
5481      nuh.nuhmask  = yylval.string;
5482      nuh.nickptr  = NULL;
5483 <    nuh.userptr  = userbuf;
5484 <    nuh.hostptr  = hostbuf;
5483 >    nuh.userptr  = block_state.user.buf;
5484 >    nuh.hostptr  = block_state.host.buf;
5485  
5486      nuh.nicksize = 0;
5487 <    nuh.usersize = sizeof(userbuf);
5488 <    nuh.hostsize = sizeof(hostbuf);
5487 >    nuh.usersize = sizeof(block_state.user.buf);
5488 >    nuh.hostsize = sizeof(block_state.host.buf);
5489  
5490      split_nuh(&nuh);
5491    }
5492   }
5493      break;
5494  
5495 <  case 390:
5496 <
5497 < /* Line 1806 of yacc.c  */
6148 < #line 2433 "ircd_parser.y"
5495 >  case 398:
5496 > /* Line 1792 of yacc.c  */
5497 > #line 2131 "conf_parser.y"
5498      {
5499    if (conf_parser_ctx.pass == 2)
5500 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5500 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5501   }
5502      break;
5503  
5504 <  case 391:
5505 <
5506 < /* Line 1806 of yacc.c  */
6158 < #line 2442 "ircd_parser.y"
5504 >  case 399:
5505 > /* Line 1792 of yacc.c  */
5506 > #line 2140 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <    hostbuf[0] = reasonbuf[0] = '\0';
5509 >    reset_block_state();
5510   }
5511      break;
5512  
5513 <  case 392:
5514 <
5515 < /* Line 1806 of yacc.c  */
6168 < #line 2446 "ircd_parser.y"
5513 >  case 400:
5514 > /* Line 1792 of yacc.c  */
5515 > #line 2144 "conf_parser.y"
5516      {
5517 <  if (conf_parser_ctx.pass == 2)
5517 >  struct MaskItem *conf = NULL;
5518 >
5519 >  if (conf_parser_ctx.pass != 2)
5520 >    break;
5521 >
5522 >  if (!block_state.addr.buf[0])
5523 >    break;
5524 >
5525 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5526    {
5527 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5528 <    {
6174 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6175 <      DupString(yy_aconf->host, hostbuf);
5527 >    conf = conf_make(CONF_DLINE);
5528 >    conf->host = xstrdup(block_state.addr.buf);
5529  
5530 <      if (reasonbuf[0])
5531 <        DupString(yy_aconf->reason, reasonbuf);
5532 <      else
5533 <        DupString(yy_aconf->reason, "No reason");
5534 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6182 <      yy_aconf = NULL;
6183 <    }
5530 >    if (block_state.rpass.buf[0])
5531 >      conf->reason = xstrdup(block_state.rpass.buf);
5532 >    else
5533 >      conf->reason = xstrdup(CONF_NOREASON);
5534 >    add_conf_by_address(CONF_DLINE, conf);
5535    }
5536   }
5537      break;
5538  
5539 <  case 398:
5540 <
5541 < /* Line 1806 of yacc.c  */
6191 < #line 2468 "ircd_parser.y"
5539 >  case 406:
5540 > /* Line 1792 of yacc.c  */
5541 > #line 2170 "conf_parser.y"
5542      {
5543    if (conf_parser_ctx.pass == 2)
5544 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5545   }
5546      break;
5547  
5548 <  case 399:
5549 <
5550 < /* Line 1806 of yacc.c  */
6201 < #line 2474 "ircd_parser.y"
5548 >  case 407:
5549 > /* Line 1792 of yacc.c  */
5550 > #line 2176 "conf_parser.y"
5551      {
5552    if (conf_parser_ctx.pass == 2)
5553 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5553 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5554   }
5555      break;
5556  
5557 <  case 405:
5558 <
5559 < /* Line 1806 of yacc.c  */
6211 < #line 2488 "ircd_parser.y"
5557 >  case 413:
5558 > /* Line 1792 of yacc.c  */
5559 > #line 2190 "conf_parser.y"
5560      {
5561    if (conf_parser_ctx.pass == 2)
5562    {
5563      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5564      {
5565 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5566 <      DupString(yy_aconf->host, yylval.string);
5565 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5566 >      conf->host = xstrdup(yylval.string);
5567  
5568 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6221 <      yy_aconf = NULL;
5568 >      add_conf_by_address(CONF_EXEMPT, conf);
5569      }
5570    }
5571   }
5572      break;
5573  
5574 <  case 406:
5575 <
5576 < /* Line 1806 of yacc.c  */
6230 < #line 2506 "ircd_parser.y"
5574 >  case 414:
5575 > /* Line 1792 of yacc.c  */
5576 > #line 2207 "conf_parser.y"
5577      {
5578    if (conf_parser_ctx.pass == 2)
5579 <  {
6234 <    regex_ban = 0;
6235 <    reasonbuf[0] = gecos_name[0] = '\0';
6236 <  }
5579 >    reset_block_state();
5580   }
5581      break;
5582  
5583 <  case 407:
5584 <
5585 < /* Line 1806 of yacc.c  */
6243 < #line 2513 "ircd_parser.y"
5583 >  case 415:
5584 > /* Line 1792 of yacc.c  */
5585 > #line 2211 "conf_parser.y"
5586      {
5587 <  if (conf_parser_ctx.pass == 2)
5587 >  struct MaskItem *conf = NULL;
5588 >
5589 >  if (conf_parser_ctx.pass != 2)
5590 >    break;
5591 >
5592 >  if (!block_state.name.buf[0])
5593 >    break;
5594 >
5595 >  if (block_state.port.value == 1)
5596    {
6247    if (gecos_name[0])
6248    {
6249      if (regex_ban)
6250      {
5597   #ifdef HAVE_LIBPCRE
5598 <        void *exp_p = NULL;
5599 <        const char *errptr = NULL;
5598 >    void *exp_p = NULL;
5599 >    const char *errptr = NULL;
5600  
5601 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5602 <        {
5603 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 <               errptr);
5605 <          break;
5606 <        }
5601 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5602 >    {
5603 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 >           errptr);
5605 >      break;
5606 >    }
5607  
5608 <        yy_conf = make_conf_item(RXLINE_TYPE);
5609 <        yy_conf->regexpname = exp_p;
5608 >    conf = conf_make(CONF_RXLINE);
5609 >    conf->regexuser = exp_p;
5610   #else
5611 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 <        break;
5611 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 >    break;
5613   #endif
5614 <      }
5615 <      else
5616 <        yy_conf = make_conf_item(XLINE_TYPE);
5614 >  }
5615 >  else
5616 >    conf = conf_make(CONF_XLINE);
5617  
5618 <      yy_match_item = map_to_conf(yy_conf);
6273 <      DupString(yy_conf->name, gecos_name);
5618 >  conf->name = xstrdup(block_state.name.buf);
5619  
5620 <      if (reasonbuf[0])
5621 <        DupString(yy_match_item->reason, reasonbuf);
5622 <      else
5623 <        DupString(yy_match_item->reason, "No reason");
6279 <    }
6280 <  }
5620 >  if (block_state.rpass.buf[0])
5621 >    conf->reason = xstrdup(block_state.rpass.buf);
5622 >  else
5623 >    conf->reason = xstrdup(CONF_NOREASON);
5624   }
5625      break;
5626  
5627 <  case 408:
5628 <
5629 < /* Line 1806 of yacc.c  */
6287 < #line 2553 "ircd_parser.y"
5627 >  case 416:
5628 > /* Line 1792 of yacc.c  */
5629 > #line 2252 "conf_parser.y"
5630      {
5631 +  if (conf_parser_ctx.pass == 2)
5632 +    block_state.port.value = 0;
5633   }
5634      break;
5635  
5636 <  case 412:
5637 <
5638 < /* Line 1806 of yacc.c  */
6295 < #line 2558 "ircd_parser.y"
5636 >  case 420:
5637 > /* Line 1792 of yacc.c  */
5638 > #line 2259 "conf_parser.y"
5639      {
5640    if (conf_parser_ctx.pass == 2)
5641 <    regex_ban = 1;
5641 >    block_state.port.value = 1;
5642   }
5643      break;
5644  
5645 <  case 419:
5646 <
5647 < /* Line 1806 of yacc.c  */
6305 < #line 2567 "ircd_parser.y"
5645 >  case 427:
5646 > /* Line 1792 of yacc.c  */
5647 > #line 2268 "conf_parser.y"
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5650 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5651   }
5652      break;
5653  
5654 <  case 420:
5655 <
5656 < /* Line 1806 of yacc.c  */
6315 < #line 2573 "ircd_parser.y"
5654 >  case 428:
5655 > /* Line 1792 of yacc.c  */
5656 > #line 2274 "conf_parser.y"
5657      {
5658    if (conf_parser_ctx.pass == 2)
5659 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5659 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5660   }
5661      break;
5662  
5663 <  case 476:
5664 <
5665 < /* Line 1806 of yacc.c  */
6325 < #line 2617 "ircd_parser.y"
5663 >  case 482:
5664 > /* Line 1792 of yacc.c  */
5665 > #line 2319 "conf_parser.y"
5666      {
5667    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5668   }
5669      break;
5670  
5671 <  case 477:
5672 <
5673 < /* Line 1806 of yacc.c  */
6334 < #line 2622 "ircd_parser.y"
5671 >  case 483:
5672 > /* Line 1792 of yacc.c  */
5673 > #line 2324 "conf_parser.y"
5674      {
5675 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5675 >  if (conf_parser_ctx.pass == 2)
5676 >    ConfigFileEntry.glines = yylval.number;
5677   }
5678      break;
5679  
5680 <  case 478:
5681 <
5682 < /* Line 1806 of yacc.c  */
6343 < #line 2627 "ircd_parser.y"
5680 >  case 484:
5681 > /* Line 1792 of yacc.c  */
5682 > #line 2330 "conf_parser.y"
5683      {
5684 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5684 >  if (conf_parser_ctx.pass == 2)
5685 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5686   }
5687      break;
5688  
5689 <  case 479:
5690 <
5691 < /* Line 1806 of yacc.c  */
6352 < #line 2632 "ircd_parser.y"
5689 >  case 485:
5690 > /* Line 1792 of yacc.c  */
5691 > #line 2336 "conf_parser.y"
5692      {
5693 <  ConfigFileEntry.use_whois_actually = yylval.number;
5693 >  if (conf_parser_ctx.pass == 2)
5694 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5695   }
5696      break;
5697  
5698 <  case 480:
5699 <
5700 < /* Line 1806 of yacc.c  */
6361 < #line 2637 "ircd_parser.y"
5698 >  case 486:
5699 > /* Line 1792 of yacc.c  */
5700 > #line 2342 "conf_parser.y"
5701      {
5702 <  GlobalSetOptions.rejecttime = yylval.number;
5702 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5703   }
5704      break;
5705  
5706 <  case 481:
5706 >  case 487:
5707 > /* Line 1792 of yacc.c  */
5708 > #line 2347 "conf_parser.y"
5709 >    {
5710 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5711 > }
5712 >    break;
5713  
5714 < /* Line 1806 of yacc.c  */
5715 < #line 2642 "ircd_parser.y"
5714 >  case 488:
5715 > /* Line 1792 of yacc.c  */
5716 > #line 2352 "conf_parser.y"
5717      {
5718    ConfigFileEntry.tkline_expire_notices = yylval.number;
5719   }
5720      break;
5721  
5722 <  case 482:
5723 <
5724 < /* Line 1806 of yacc.c  */
6379 < #line 2647 "ircd_parser.y"
5722 >  case 489:
5723 > /* Line 1792 of yacc.c  */
5724 > #line 2357 "conf_parser.y"
5725      {
5726    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5727   }
5728      break;
5729  
5730 <  case 483:
5731 <
5732 < /* Line 1806 of yacc.c  */
6388 < #line 2652 "ircd_parser.y"
5730 >  case 490:
5731 > /* Line 1792 of yacc.c  */
5732 > #line 2362 "conf_parser.y"
5733      {
5734    ConfigFileEntry.hide_spoof_ips = yylval.number;
5735   }
5736      break;
5737  
5738 <  case 484:
5739 <
5740 < /* Line 1806 of yacc.c  */
6397 < #line 2657 "ircd_parser.y"
5738 >  case 491:
5739 > /* Line 1792 of yacc.c  */
5740 > #line 2367 "conf_parser.y"
5741      {
5742    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5743   }
5744      break;
5745  
5746 <  case 485:
5747 <
5748 < /* Line 1806 of yacc.c  */
6406 < #line 2662 "ircd_parser.y"
5746 >  case 492:
5747 > /* Line 1792 of yacc.c  */
5748 > #line 2372 "conf_parser.y"
5749      {
5750    ConfigFileEntry.disable_remote = yylval.number;
5751   }
5752      break;
5753  
5754 <  case 486:
5755 <
5756 < /* Line 1806 of yacc.c  */
6415 < #line 2667 "ircd_parser.y"
5754 >  case 493:
5755 > /* Line 1792 of yacc.c  */
5756 > #line 2377 "conf_parser.y"
5757      {
5758    ConfigFileEntry.failed_oper_notice = yylval.number;
5759   }
5760      break;
5761  
5762 <  case 487:
5763 <
5764 < /* Line 1806 of yacc.c  */
6424 < #line 2672 "ircd_parser.y"
5762 >  case 494:
5763 > /* Line 1792 of yacc.c  */
5764 > #line 2382 "conf_parser.y"
5765      {
5766    ConfigFileEntry.anti_nick_flood = yylval.number;
5767   }
5768      break;
5769  
5770 <  case 488:
5771 <
5772 < /* Line 1806 of yacc.c  */
6433 < #line 2677 "ircd_parser.y"
5770 >  case 495:
5771 > /* Line 1792 of yacc.c  */
5772 > #line 2387 "conf_parser.y"
5773      {
5774    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778 <  case 489:
5779 <
5780 < /* Line 1806 of yacc.c  */
6442 < #line 2682 "ircd_parser.y"
5778 >  case 496:
5779 > /* Line 1792 of yacc.c  */
5780 > #line 2392 "conf_parser.y"
5781      {
5782    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786 <  case 490:
5787 <
5788 < /* Line 1806 of yacc.c  */
6451 < #line 2687 "ircd_parser.y"
5786 >  case 497:
5787 > /* Line 1792 of yacc.c  */
5788 > #line 2397 "conf_parser.y"
5789      {
5790    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794 <  case 491:
5795 <
5796 < /* Line 1806 of yacc.c  */
6460 < #line 2692 "ircd_parser.y"
5794 >  case 498:
5795 > /* Line 1792 of yacc.c  */
5796 > #line 2402 "conf_parser.y"
5797      {
5798    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5799   }
5800      break;
5801  
5802 <  case 492:
5803 <
5804 < /* Line 1806 of yacc.c  */
6469 < #line 2697 "ircd_parser.y"
5802 >  case 499:
5803 > /* Line 1792 of yacc.c  */
5804 > #line 2407 "conf_parser.y"
5805      {
5806    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5807   }
5808      break;
5809  
5810 <  case 493:
5811 <
5812 < /* Line 1806 of yacc.c  */
6478 < #line 2702 "ircd_parser.y"
5810 >  case 500:
5811 > /* Line 1792 of yacc.c  */
5812 > #line 2412 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5816   }
5817      break;
5818  
5819 <  case 494:
5820 <
5821 < /* Line 1806 of yacc.c  */
6488 < #line 2708 "ircd_parser.y"
5819 >  case 501:
5820 > /* Line 1792 of yacc.c  */
5821 > #line 2418 "conf_parser.y"
5822      {
5823    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5824    {
# Line 6497 | Line 5830 | yyreduce:
5830   }
5831      break;
5832  
5833 <  case 495:
5834 <
5835 < /* Line 1806 of yacc.c  */
6503 < #line 2719 "ircd_parser.y"
6504 <    {
6505 <  ConfigFileEntry.kline_with_reason = yylval.number;
6506 < }
6507 <    break;
6508 <
6509 <  case 496:
6510 <
6511 < /* Line 1806 of yacc.c  */
6512 < #line 2724 "ircd_parser.y"
6513 <    {
6514 <  if (conf_parser_ctx.pass == 2)
6515 <  {
6516 <    MyFree(ConfigFileEntry.kline_reason);
6517 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6518 <  }
6519 < }
6520 <    break;
6521 <
6522 <  case 497:
6523 <
6524 < /* Line 1806 of yacc.c  */
6525 < #line 2733 "ircd_parser.y"
5833 >  case 502:
5834 > /* Line 1792 of yacc.c  */
5835 > #line 2429 "conf_parser.y"
5836      {
5837    ConfigFileEntry.invisible_on_connect = yylval.number;
5838   }
5839      break;
5840  
5841 <  case 498:
5842 <
5843 < /* Line 1806 of yacc.c  */
6534 < #line 2738 "ircd_parser.y"
5841 >  case 503:
5842 > /* Line 1792 of yacc.c  */
5843 > #line 2434 "conf_parser.y"
5844      {
5845    ConfigFileEntry.warn_no_nline = yylval.number;
5846   }
5847      break;
5848  
5849 <  case 499:
5850 <
5851 < /* Line 1806 of yacc.c  */
6543 < #line 2743 "ircd_parser.y"
5849 >  case 504:
5850 > /* Line 1792 of yacc.c  */
5851 > #line 2439 "conf_parser.y"
5852      {
5853    ConfigFileEntry.stats_e_disabled = yylval.number;
5854   }
5855      break;
5856  
5857 <  case 500:
5858 <
5859 < /* Line 1806 of yacc.c  */
6552 < #line 2748 "ircd_parser.y"
5857 >  case 505:
5858 > /* Line 1792 of yacc.c  */
5859 > #line 2444 "conf_parser.y"
5860      {
5861    ConfigFileEntry.stats_o_oper_only = yylval.number;
5862   }
5863      break;
5864  
5865 <  case 501:
5866 <
5867 < /* Line 1806 of yacc.c  */
6561 < #line 2753 "ircd_parser.y"
5865 >  case 506:
5866 > /* Line 1792 of yacc.c  */
5867 > #line 2449 "conf_parser.y"
5868      {
5869    ConfigFileEntry.stats_P_oper_only = yylval.number;
5870   }
5871      break;
5872  
5873 <  case 502:
5874 <
5875 < /* Line 1806 of yacc.c  */
6570 < #line 2758 "ircd_parser.y"
5873 >  case 507:
5874 > /* Line 1792 of yacc.c  */
5875 > #line 2454 "conf_parser.y"
5876      {
5877    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5878   }
5879      break;
5880  
5881 <  case 503:
5882 <
5883 < /* Line 1806 of yacc.c  */
6579 < #line 2761 "ircd_parser.y"
5881 >  case 508:
5882 > /* Line 1792 of yacc.c  */
5883 > #line 2457 "conf_parser.y"
5884      {
5885    ConfigFileEntry.stats_k_oper_only = 1;
5886   }
5887      break;
5888  
5889 <  case 504:
5890 <
5891 < /* Line 1806 of yacc.c  */
6588 < #line 2766 "ircd_parser.y"
5889 >  case 509:
5890 > /* Line 1792 of yacc.c  */
5891 > #line 2462 "conf_parser.y"
5892      {
5893    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5894   }
5895      break;
5896  
5897 <  case 505:
5898 <
5899 < /* Line 1806 of yacc.c  */
6597 < #line 2769 "ircd_parser.y"
5897 >  case 510:
5898 > /* Line 1792 of yacc.c  */
5899 > #line 2465 "conf_parser.y"
5900      {
5901    ConfigFileEntry.stats_i_oper_only = 1;
5902   }
5903      break;
5904  
5905 <  case 506:
5906 <
5907 < /* Line 1806 of yacc.c  */
6606 < #line 2774 "ircd_parser.y"
5905 >  case 511:
5906 > /* Line 1792 of yacc.c  */
5907 > #line 2470 "conf_parser.y"
5908      {
5909    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5910   }
5911      break;
5912  
5913 <  case 507:
5914 <
5915 < /* Line 1806 of yacc.c  */
6615 < #line 2779 "ircd_parser.y"
5913 >  case 512:
5914 > /* Line 1792 of yacc.c  */
5915 > #line 2475 "conf_parser.y"
5916      {
5917    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5918   }
5919      break;
5920  
5921 <  case 508:
5922 <
5923 < /* Line 1806 of yacc.c  */
6624 < #line 2784 "ircd_parser.y"
5921 >  case 513:
5922 > /* Line 1792 of yacc.c  */
5923 > #line 2480 "conf_parser.y"
5924      {
5925    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5926   }
5927      break;
5928  
5929 <  case 509:
5930 <
5931 < /* Line 1806 of yacc.c  */
6633 < #line 2789 "ircd_parser.y"
5929 >  case 514:
5930 > /* Line 1792 of yacc.c  */
5931 > #line 2485 "conf_parser.y"
5932      {
5933    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5934   }
5935      break;
5936  
5937 <  case 510:
5938 <
5939 < /* Line 1806 of yacc.c  */
6642 < #line 2794 "ircd_parser.y"
5937 >  case 515:
5938 > /* Line 1792 of yacc.c  */
5939 > #line 2490 "conf_parser.y"
5940      {
5941    ConfigFileEntry.short_motd = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 511:
5946 <
5947 < /* Line 1806 of yacc.c  */
6651 < #line 2799 "ircd_parser.y"
5945 >  case 516:
5946 > /* Line 1792 of yacc.c  */
5947 > #line 2495 "conf_parser.y"
5948      {
5949    ConfigFileEntry.no_oper_flood = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 512:
5954 <
5955 < /* Line 1806 of yacc.c  */
6660 < #line 2804 "ircd_parser.y"
5953 >  case 517:
5954 > /* Line 1792 of yacc.c  */
5955 > #line 2500 "conf_parser.y"
5956      {
5957    ConfigFileEntry.true_no_oper_flood = yylval.number;
5958   }
5959      break;
5960  
5961 <  case 513:
5962 <
5963 < /* Line 1806 of yacc.c  */
6669 < #line 2809 "ircd_parser.y"
5961 >  case 518:
5962 > /* Line 1792 of yacc.c  */
5963 > #line 2505 "conf_parser.y"
5964      {
5965    ConfigFileEntry.oper_pass_resv = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 514:
5970 <
5971 < /* Line 1806 of yacc.c  */
6678 < #line 2814 "ircd_parser.y"
5969 >  case 519:
5970 > /* Line 1792 of yacc.c  */
5971 > #line 2510 "conf_parser.y"
5972      {
5973    if (conf_parser_ctx.pass == 2)
5974    {
# Line 6687 | Line 5980 | yyreduce:
5980   }
5981      break;
5982  
5983 <  case 515:
5984 <
5985 < /* Line 1806 of yacc.c  */
6693 < #line 2825 "ircd_parser.y"
5983 >  case 520:
5984 > /* Line 1792 of yacc.c  */
5985 > #line 2521 "conf_parser.y"
5986      {
5987    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5988   }
5989      break;
5990  
5991 <  case 516:
5992 <
5993 < /* Line 1806 of yacc.c  */
6702 < #line 2830 "ircd_parser.y"
5991 >  case 521:
5992 > /* Line 1792 of yacc.c  */
5993 > #line 2526 "conf_parser.y"
5994      {
5995    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5996   }
5997      break;
5998  
5999 <  case 517:
6000 <
6001 < /* Line 1806 of yacc.c  */
6711 < #line 2835 "ircd_parser.y"
5999 >  case 522:
6000 > /* Line 1792 of yacc.c  */
6001 > #line 2531 "conf_parser.y"
6002      {
6003    ConfigFileEntry.use_egd = yylval.number;
6004   }
6005      break;
6006  
6007 <  case 518:
6008 <
6009 < /* Line 1806 of yacc.c  */
6720 < #line 2840 "ircd_parser.y"
6007 >  case 523:
6008 > /* Line 1792 of yacc.c  */
6009 > #line 2536 "conf_parser.y"
6010      {
6011    if (conf_parser_ctx.pass == 2)
6012    {
6013      MyFree(ConfigFileEntry.egdpool_path);
6014 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015    }
6016   }
6017      break;
6018  
6019 <  case 519:
6020 <
6021 < /* Line 1806 of yacc.c  */
6733 < #line 2849 "ircd_parser.y"
6019 >  case 524:
6020 > /* Line 1792 of yacc.c  */
6021 > #line 2545 "conf_parser.y"
6022      {
6023    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024    {
6025      MyFree(ConfigFileEntry.service_name);
6026 <    DupString(ConfigFileEntry.service_name, yylval.string);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027    }
6028   }
6029      break;
6030  
6031 <  case 520:
6032 <
6033 < /* Line 1806 of yacc.c  */
6746 < #line 2858 "ircd_parser.y"
6031 >  case 525:
6032 > /* Line 1792 of yacc.c  */
6033 > #line 2554 "conf_parser.y"
6034      {
6035    ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 521:
6040 <
6041 < /* Line 1806 of yacc.c  */
6755 < #line 2863 "ircd_parser.y"
6039 >  case 526:
6040 > /* Line 1792 of yacc.c  */
6041 > #line 2559 "conf_parser.y"
6042      {
6043    ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 522:
6048 <
6049 < /* Line 1806 of yacc.c  */
6764 < #line 2868 "ircd_parser.y"
6047 >  case 527:
6048 > /* Line 1792 of yacc.c  */
6049 > #line 2564 "conf_parser.y"
6050      {
6051    ConfigFileEntry.throttle_time = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 523:
6056 <
6057 < /* Line 1806 of yacc.c  */
6773 < #line 2873 "ircd_parser.y"
6055 >  case 528:
6056 > /* Line 1792 of yacc.c  */
6057 > #line 2569 "conf_parser.y"
6058      {
6059    ConfigFileEntry.oper_umodes = 0;
6060   }
6061      break;
6062  
6063 <  case 527:
6064 <
6065 < /* Line 1806 of yacc.c  */
6782 < #line 2879 "ircd_parser.y"
6063 >  case 532:
6064 > /* Line 1792 of yacc.c  */
6065 > #line 2575 "conf_parser.y"
6066      {
6067    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068   }
6069      break;
6070  
6071 <  case 528:
6072 <
6073 < /* Line 1806 of yacc.c  */
6791 < #line 2882 "ircd_parser.y"
6071 >  case 533:
6072 > /* Line 1792 of yacc.c  */
6073 > #line 2578 "conf_parser.y"
6074      {
6075    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076   }
6077      break;
6078  
6079 <  case 529:
6080 <
6081 < /* Line 1806 of yacc.c  */
6800 < #line 2885 "ircd_parser.y"
6079 >  case 534:
6080 > /* Line 1792 of yacc.c  */
6081 > #line 2581 "conf_parser.y"
6082      {
6083    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084   }
6085      break;
6086  
6087 <  case 530:
6088 <
6089 < /* Line 1806 of yacc.c  */
6809 < #line 2888 "ircd_parser.y"
6087 >  case 535:
6088 > /* Line 1792 of yacc.c  */
6089 > #line 2584 "conf_parser.y"
6090      {
6091    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093      break;
6094  
6095 <  case 531:
6096 <
6097 < /* Line 1806 of yacc.c  */
6818 < #line 2891 "ircd_parser.y"
6095 >  case 536:
6096 > /* Line 1792 of yacc.c  */
6097 > #line 2587 "conf_parser.y"
6098      {
6099    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101      break;
6102  
6103 <  case 532:
6104 <
6105 < /* Line 1806 of yacc.c  */
6827 < #line 2894 "ircd_parser.y"
6103 >  case 537:
6104 > /* Line 1792 of yacc.c  */
6105 > #line 2590 "conf_parser.y"
6106      {
6107    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109      break;
6110  
6111 <  case 533:
6112 <
6113 < /* Line 1806 of yacc.c  */
6836 < #line 2897 "ircd_parser.y"
6111 >  case 538:
6112 > /* Line 1792 of yacc.c  */
6113 > #line 2593 "conf_parser.y"
6114      {
6115    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116   }
6117      break;
6118  
6119 <  case 534:
6120 <
6121 < /* Line 1806 of yacc.c  */
6845 < #line 2900 "ircd_parser.y"
6119 >  case 539:
6120 > /* Line 1792 of yacc.c  */
6121 > #line 2596 "conf_parser.y"
6122      {
6123    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6124   }
6125      break;
6126  
6127 <  case 535:
6128 <
6129 < /* Line 1806 of yacc.c  */
6854 < #line 2903 "ircd_parser.y"
6127 >  case 540:
6128 > /* Line 1792 of yacc.c  */
6129 > #line 2599 "conf_parser.y"
6130      {
6131    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6132   }
6133      break;
6134  
6135 <  case 536:
6136 <
6137 < /* Line 1806 of yacc.c  */
6863 < #line 2906 "ircd_parser.y"
6135 >  case 541:
6136 > /* Line 1792 of yacc.c  */
6137 > #line 2602 "conf_parser.y"
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6140   }
6141      break;
6142  
6143 <  case 537:
6144 <
6145 < /* Line 1806 of yacc.c  */
6872 < #line 2909 "ircd_parser.y"
6143 >  case 542:
6144 > /* Line 1792 of yacc.c  */
6145 > #line 2605 "conf_parser.y"
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6148   }
6149      break;
6150  
6151 <  case 538:
6152 <
6153 < /* Line 1806 of yacc.c  */
6881 < #line 2912 "ircd_parser.y"
6151 >  case 543:
6152 > /* Line 1792 of yacc.c  */
6153 > #line 2608 "conf_parser.y"
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6156   }
6157      break;
6158  
6159 <  case 539:
6160 <
6161 < /* Line 1806 of yacc.c  */
6890 < #line 2915 "ircd_parser.y"
6159 >  case 544:
6160 > /* Line 1792 of yacc.c  */
6161 > #line 2611 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6164   }
6165      break;
6166  
6167 <  case 540:
6168 <
6169 < /* Line 1806 of yacc.c  */
6899 < #line 2918 "ircd_parser.y"
6167 >  case 545:
6168 > /* Line 1792 of yacc.c  */
6169 > #line 2614 "conf_parser.y"
6170      {
6171    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6172   }
6173      break;
6174  
6175 <  case 541:
6176 <
6177 < /* Line 1806 of yacc.c  */
6908 < #line 2921 "ircd_parser.y"
6175 >  case 546:
6176 > /* Line 1792 of yacc.c  */
6177 > #line 2617 "conf_parser.y"
6178      {
6179    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6180   }
6181      break;
6182  
6183 <  case 542:
6184 <
6185 < /* Line 1806 of yacc.c  */
6917 < #line 2924 "ircd_parser.y"
6183 >  case 547:
6184 > /* Line 1792 of yacc.c  */
6185 > #line 2620 "conf_parser.y"
6186      {
6187    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6188   }
6189      break;
6190  
6191 <  case 543:
6192 <
6193 < /* Line 1806 of yacc.c  */
6926 < #line 2927 "ircd_parser.y"
6191 >  case 548:
6192 > /* Line 1792 of yacc.c  */
6193 > #line 2623 "conf_parser.y"
6194      {
6195    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6196   }
6197      break;
6198  
6199 <  case 544:
6200 <
6201 < /* Line 1806 of yacc.c  */
6935 < #line 2930 "ircd_parser.y"
6199 >  case 549:
6200 > /* Line 1792 of yacc.c  */
6201 > #line 2626 "conf_parser.y"
6202      {
6203    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6204   }
6205      break;
6206  
6207 <  case 545:
6208 <
6209 < /* Line 1806 of yacc.c  */
6944 < #line 2933 "ircd_parser.y"
6207 >  case 550:
6208 > /* Line 1792 of yacc.c  */
6209 > #line 2629 "conf_parser.y"
6210      {
6211    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6212   }
6213      break;
6214  
6215 <  case 546:
6216 <
6217 < /* Line 1806 of yacc.c  */
6953 < #line 2936 "ircd_parser.y"
6215 >  case 551:
6216 > /* Line 1792 of yacc.c  */
6217 > #line 2632 "conf_parser.y"
6218      {
6219    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6220   }
6221      break;
6222  
6223 <  case 547:
6224 <
6225 < /* Line 1806 of yacc.c  */
6962 < #line 2941 "ircd_parser.y"
6223 >  case 552:
6224 > /* Line 1792 of yacc.c  */
6225 > #line 2637 "conf_parser.y"
6226      {
6227    ConfigFileEntry.oper_only_umodes = 0;
6228   }
6229      break;
6230  
6231 <  case 551:
6232 <
6233 < /* Line 1806 of yacc.c  */
6971 < #line 2947 "ircd_parser.y"
6231 >  case 556:
6232 > /* Line 1792 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6236   }
6237      break;
6238  
6239 <  case 552:
6240 <
6241 < /* Line 1806 of yacc.c  */
6980 < #line 2950 "ircd_parser.y"
6239 >  case 557:
6240 > /* Line 1792 of yacc.c  */
6241 > #line 2646 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6244   }
6245      break;
6246  
6247 <  case 553:
6248 <
6249 < /* Line 1806 of yacc.c  */
6989 < #line 2953 "ircd_parser.y"
6247 >  case 558:
6248 > /* Line 1792 of yacc.c  */
6249 > #line 2649 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6252   }
6253      break;
6254  
6255 <  case 554:
6256 <
6257 < /* Line 1806 of yacc.c  */
6998 < #line 2956 "ircd_parser.y"
6255 >  case 559:
6256 > /* Line 1792 of yacc.c  */
6257 > #line 2652 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6260   }
6261      break;
6262  
6263 <  case 555:
6264 <
6265 < /* Line 1806 of yacc.c  */
7007 < #line 2959 "ircd_parser.y"
6263 >  case 560:
6264 > /* Line 1792 of yacc.c  */
6265 > #line 2655 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6268   }
6269      break;
6270  
6271 <  case 556:
6272 <
6273 < /* Line 1806 of yacc.c  */
7016 < #line 2962 "ircd_parser.y"
6271 >  case 561:
6272 > /* Line 1792 of yacc.c  */
6273 > #line 2658 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6276   }
6277      break;
6278  
6279 <  case 557:
6280 <
6281 < /* Line 1806 of yacc.c  */
7025 < #line 2965 "ircd_parser.y"
6279 >  case 562:
6280 > /* Line 1792 of yacc.c  */
6281 > #line 2661 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6284   }
6285      break;
6286  
6287 <  case 558:
6288 <
6289 < /* Line 1806 of yacc.c  */
7034 < #line 2968 "ircd_parser.y"
6287 >  case 563:
6288 > /* Line 1792 of yacc.c  */
6289 > #line 2664 "conf_parser.y"
6290      {
6291    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6292   }
6293      break;
6294  
6295 <  case 559:
6296 <
6297 < /* Line 1806 of yacc.c  */
7043 < #line 2971 "ircd_parser.y"
6295 >  case 564:
6296 > /* Line 1792 of yacc.c  */
6297 > #line 2667 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6300   }
6301      break;
6302  
6303 <  case 560:
6304 <
6305 < /* Line 1806 of yacc.c  */
7052 < #line 2974 "ircd_parser.y"
6303 >  case 565:
6304 > /* Line 1792 of yacc.c  */
6305 > #line 2670 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6308   }
6309      break;
6310  
6311 <  case 561:
6312 <
6313 < /* Line 1806 of yacc.c  */
7061 < #line 2977 "ircd_parser.y"
6311 >  case 566:
6312 > /* Line 1792 of yacc.c  */
6313 > #line 2673 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6316   }
6317      break;
6318  
6319 <  case 562:
6320 <
6321 < /* Line 1806 of yacc.c  */
7070 < #line 2980 "ircd_parser.y"
6319 >  case 567:
6320 > /* Line 1792 of yacc.c  */
6321 > #line 2676 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6324   }
6325      break;
6326  
6327 <  case 563:
6328 <
6329 < /* Line 1806 of yacc.c  */
7079 < #line 2983 "ircd_parser.y"
6327 >  case 568:
6328 > /* Line 1792 of yacc.c  */
6329 > #line 2679 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6332   }
6333      break;
6334  
6335 <  case 564:
6336 <
6337 < /* Line 1806 of yacc.c  */
7088 < #line 2986 "ircd_parser.y"
6335 >  case 569:
6336 > /* Line 1792 of yacc.c  */
6337 > #line 2682 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6340   }
6341      break;
6342  
6343 <  case 565:
6344 <
6345 < /* Line 1806 of yacc.c  */
7097 < #line 2989 "ircd_parser.y"
6343 >  case 570:
6344 > /* Line 1792 of yacc.c  */
6345 > #line 2685 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6348   }
6349      break;
6350  
6351 <  case 566:
6352 <
6353 < /* Line 1806 of yacc.c  */
7106 < #line 2992 "ircd_parser.y"
6351 >  case 571:
6352 > /* Line 1792 of yacc.c  */
6353 > #line 2688 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6356   }
6357      break;
6358  
6359 <  case 567:
6360 <
6361 < /* Line 1806 of yacc.c  */
7115 < #line 2995 "ircd_parser.y"
6359 >  case 572:
6360 > /* Line 1792 of yacc.c  */
6361 > #line 2691 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6364   }
6365      break;
6366  
6367 <  case 568:
6368 <
6369 < /* Line 1806 of yacc.c  */
7124 < #line 2998 "ircd_parser.y"
6367 >  case 573:
6368 > /* Line 1792 of yacc.c  */
6369 > #line 2694 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6372   }
6373      break;
6374  
6375 <  case 569:
6376 <
6377 < /* Line 1806 of yacc.c  */
7133 < #line 3001 "ircd_parser.y"
6375 >  case 574:
6376 > /* Line 1792 of yacc.c  */
6377 > #line 2697 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6380   }
6381      break;
6382  
6383 <  case 570:
6384 <
6385 < /* Line 1806 of yacc.c  */
7142 < #line 3004 "ircd_parser.y"
6383 >  case 575:
6384 > /* Line 1792 of yacc.c  */
6385 > #line 2700 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6388   }
6389      break;
6390  
6391 <  case 571:
6392 <
6393 < /* Line 1806 of yacc.c  */
7151 < #line 3009 "ircd_parser.y"
6391 >  case 576:
6392 > /* Line 1792 of yacc.c  */
6393 > #line 2705 "conf_parser.y"
6394      {
6395    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6396   }
6397      break;
6398  
6399 <  case 572:
6400 <
6401 < /* Line 1806 of yacc.c  */
7160 < #line 3014 "ircd_parser.y"
6399 >  case 577:
6400 > /* Line 1792 of yacc.c  */
6401 > #line 2710 "conf_parser.y"
6402      {
6403    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6404   }
6405      break;
6406  
6407 <  case 573:
6408 <
6409 < /* Line 1806 of yacc.c  */
7169 < #line 3019 "ircd_parser.y"
6407 >  case 578:
6408 > /* Line 1792 of yacc.c  */
6409 > #line 2715 "conf_parser.y"
6410      {
6411    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6412   }
6413      break;
6414  
7175  case 574:
7176
7177 /* Line 1806 of yacc.c  */
7178 #line 3024 "ircd_parser.y"
7179    {
7180  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7181 }
7182    break;
7183
7184  case 575:
7185
7186 /* Line 1806 of yacc.c  */
7187 #line 3033 "ircd_parser.y"
7188    {
7189  if (conf_parser_ctx.pass == 2)
7190  {
7191    yy_conf = make_conf_item(GDENY_TYPE);
7192    yy_aconf = map_to_conf(yy_conf);
7193  }
7194 }
7195    break;
7196
7197  case 576:
7198
7199 /* Line 1806 of yacc.c  */
7200 #line 3040 "ircd_parser.y"
7201    {
7202  if (conf_parser_ctx.pass == 2)
7203  {
7204    /*
7205     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7206     * end we will have one extra, so we should free it.
7207     */
7208    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7209    {
7210      delete_conf_item(yy_conf);
7211      yy_conf = NULL;
7212      yy_aconf = NULL;
7213    }
7214  }
7215 }
7216    break;
7217
7218  case 586:
7219
7220 /* Line 1806 of yacc.c  */
7221 #line 3066 "ircd_parser.y"
7222    {
7223  if (conf_parser_ctx.pass == 2)
7224    ConfigFileEntry.glines = yylval.number;
7225 }
7226    break;
7227
7228  case 587:
7229
7230 /* Line 1806 of yacc.c  */
7231 #line 3072 "ircd_parser.y"
7232    {
7233  if (conf_parser_ctx.pass == 2)
7234    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7235 }
7236    break;
7237
7238  case 588:
7239
7240 /* Line 1806 of yacc.c  */
7241 #line 3078 "ircd_parser.y"
7242    {
7243  if (conf_parser_ctx.pass == 2)
7244    ConfigFileEntry.gline_logging = 0;
7245 }
7246    break;
7247
7248  case 592:
7249
7250 /* Line 1806 of yacc.c  */
7251 #line 3084 "ircd_parser.y"
7252    {
7253  if (conf_parser_ctx.pass == 2)
7254    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7255 }
7256    break;
7257
7258  case 593:
7259
7260 /* Line 1806 of yacc.c  */
7261 #line 3088 "ircd_parser.y"
7262    {
7263  if (conf_parser_ctx.pass == 2)
7264    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7265 }
7266    break;
7267
7268  case 594:
7269
7270 /* Line 1806 of yacc.c  */
7271 #line 3094 "ircd_parser.y"
7272    {
7273  if (conf_parser_ctx.pass == 2)
7274  {
7275    struct split_nuh_item nuh;
7276
7277    nuh.nuhmask  = yylval.string;
7278    nuh.nickptr  = NULL;
7279    nuh.userptr  = userbuf;
7280    nuh.hostptr  = hostbuf;
7281
7282    nuh.nicksize = 0;
7283    nuh.usersize = sizeof(userbuf);
7284    nuh.hostsize = sizeof(hostbuf);
7285
7286    split_nuh(&nuh);
7287
7288    if (yy_aconf->user == NULL)
7289    {
7290      DupString(yy_aconf->user, userbuf);
7291      DupString(yy_aconf->host, hostbuf);
7292    }
7293    else
7294    {
7295      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7296
7297      DupString(yy_tmp->user, userbuf);
7298      DupString(yy_tmp->host, hostbuf);
7299
7300      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7301    }
7302  }
7303 }
7304    break;
7305
7306  case 595:
7307
7308 /* Line 1806 of yacc.c  */
7309 #line 3128 "ircd_parser.y"
7310    {
7311  if (conf_parser_ctx.pass == 2)  
7312  {
7313    MyFree(yy_conf->name);
7314    DupString(yy_conf->name, yylval.string);
7315  }
7316 }
7317    break;
7318
7319  case 596:
7320
7321 /* Line 1806 of yacc.c  */
7322 #line 3137 "ircd_parser.y"
7323    {
7324  if (conf_parser_ctx.pass == 2)
7325    yy_aconf->flags = 0;
7326 }
7327    break;
7328
6415    case 597:
6416 <
6417 < /* Line 1806 of yacc.c  */
7332 < #line 3141 "ircd_parser.y"
7333 <    {
7334 <  if (conf_parser_ctx.pass == 2)
7335 <  {
7336 <    struct CollectItem *yy_tmp = NULL;
7337 <    dlink_node *ptr, *next_ptr;
7338 <
7339 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7340 <    {
7341 <      struct AccessItem *new_aconf;
7342 <      struct ConfItem *new_conf;
7343 <
7344 <      yy_tmp = ptr->data;
7345 <      new_conf = make_conf_item(GDENY_TYPE);
7346 <      new_aconf = map_to_conf(new_conf);
7347 <
7348 <      new_aconf->flags = yy_aconf->flags;
7349 <
7350 <      if (yy_conf->name != NULL)
7351 <        DupString(new_conf->name, yy_conf->name);
7352 <      else
7353 <        DupString(new_conf->name, "*");
7354 <      if (yy_aconf->user != NULL)
7355 <         DupString(new_aconf->user, yy_tmp->user);
7356 <      else  
7357 <        DupString(new_aconf->user, "*");
7358 <      if (yy_aconf->host != NULL)
7359 <        DupString(new_aconf->host, yy_tmp->host);
7360 <      else
7361 <        DupString(new_aconf->host, "*");
7362 <
7363 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7364 <    }
7365 <
7366 <    /*
7367 <     * In case someone has fed us with more than one action= after user/name
7368 <     * which would leak memory  -Michael
7369 <     */
7370 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7371 <      delete_conf_item(yy_conf);
7372 <
7373 <    yy_conf = make_conf_item(GDENY_TYPE);
7374 <    yy_aconf = map_to_conf(yy_conf);
7375 <  }
7376 < }
7377 <    break;
7378 <
7379 <  case 600:
7380 <
7381 < /* Line 1806 of yacc.c  */
7382 < #line 3188 "ircd_parser.y"
7383 <    {
7384 <  if (conf_parser_ctx.pass == 2)
7385 <    yy_aconf->flags |= GDENY_REJECT;
7386 < }
7387 <    break;
7388 <
7389 <  case 601:
7390 <
7391 < /* Line 1806 of yacc.c  */
7392 < #line 3192 "ircd_parser.y"
7393 <    {
7394 <  if (conf_parser_ctx.pass == 2)
7395 <    yy_aconf->flags |= GDENY_BLOCK;
7396 < }
7397 <    break;
7398 <
7399 <  case 624:
7400 <
7401 < /* Line 1806 of yacc.c  */
7402 < #line 3216 "ircd_parser.y"
6416 > /* Line 1792 of yacc.c  */
6417 > #line 2738 "conf_parser.y"
6418      {
6419    ConfigChannel.disable_fake_channels = yylval.number;
6420   }
6421      break;
6422  
6423 <  case 625:
6424 <
6425 < /* Line 1806 of yacc.c  */
7411 < #line 3221 "ircd_parser.y"
6423 >  case 598:
6424 > /* Line 1792 of yacc.c  */
6425 > #line 2743 "conf_parser.y"
6426      {
6427    ConfigChannel.restrict_channels = yylval.number;
6428   }
6429      break;
6430  
6431 <  case 626:
6432 <
6433 < /* Line 1806 of yacc.c  */
7420 < #line 3226 "ircd_parser.y"
7421 <    {
7422 <  ConfigChannel.disable_local_channels = yylval.number;
7423 < }
7424 <    break;
7425 <
7426 <  case 627:
7427 <
7428 < /* Line 1806 of yacc.c  */
7429 < #line 3231 "ircd_parser.y"
7430 <    {
7431 <  ConfigChannel.use_except = yylval.number;
7432 < }
7433 <    break;
7434 <
7435 <  case 628:
7436 <
7437 < /* Line 1806 of yacc.c  */
7438 < #line 3236 "ircd_parser.y"
7439 <    {
7440 <  ConfigChannel.use_invex = yylval.number;
7441 < }
7442 <    break;
7443 <
7444 <  case 629:
7445 <
7446 < /* Line 1806 of yacc.c  */
7447 < #line 3241 "ircd_parser.y"
7448 <    {
7449 <  ConfigChannel.use_knock = yylval.number;
7450 < }
7451 <    break;
7452 <
7453 <  case 630:
7454 <
7455 < /* Line 1806 of yacc.c  */
7456 < #line 3246 "ircd_parser.y"
6431 >  case 599:
6432 > /* Line 1792 of yacc.c  */
6433 > #line 2748 "conf_parser.y"
6434      {
6435    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6436   }
6437      break;
6438  
6439 <  case 631:
6440 <
6441 < /* Line 1806 of yacc.c  */
7465 < #line 3251 "ircd_parser.y"
6439 >  case 600:
6440 > /* Line 1792 of yacc.c  */
6441 > #line 2753 "conf_parser.y"
6442      {
6443    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6444   }
6445      break;
6446  
6447 <  case 632:
6448 <
6449 < /* Line 1806 of yacc.c  */
7474 < #line 3256 "ircd_parser.y"
6447 >  case 601:
6448 > /* Line 1792 of yacc.c  */
6449 > #line 2758 "conf_parser.y"
6450      {
6451    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6452   }
6453      break;
6454  
6455 <  case 633:
6455 >  case 602:
6456 > /* Line 1792 of yacc.c  */
6457 > #line 2763 "conf_parser.y"
6458 >    {
6459 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6460 > }
6461 >    break;
6462  
6463 < /* Line 1806 of yacc.c  */
6464 < #line 3261 "ircd_parser.y"
6463 >  case 603:
6464 > /* Line 1792 of yacc.c  */
6465 > #line 2768 "conf_parser.y"
6466      {
6467    ConfigChannel.quiet_on_ban = yylval.number;
6468   }
6469      break;
6470  
6471 <  case 634:
6472 <
6473 < /* Line 1806 of yacc.c  */
7492 < #line 3266 "ircd_parser.y"
6471 >  case 604:
6472 > /* Line 1792 of yacc.c  */
6473 > #line 2773 "conf_parser.y"
6474      {
6475    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6476   }
6477      break;
6478  
6479 <  case 635:
6480 <
6481 < /* Line 1806 of yacc.c  */
7501 < #line 3271 "ircd_parser.y"
6479 >  case 605:
6480 > /* Line 1792 of yacc.c  */
6481 > #line 2778 "conf_parser.y"
6482      {
6483    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6484   }
6485      break;
6486  
6487 <  case 636:
6488 <
6489 < /* Line 1806 of yacc.c  */
7510 < #line 3276 "ircd_parser.y"
6487 >  case 606:
6488 > /* Line 1792 of yacc.c  */
6489 > #line 2783 "conf_parser.y"
6490      {
6491    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6492   }
6493      break;
6494  
6495 <  case 637:
6496 <
6497 < /* Line 1806 of yacc.c  */
7519 < #line 3281 "ircd_parser.y"
6495 >  case 607:
6496 > /* Line 1792 of yacc.c  */
6497 > #line 2788 "conf_parser.y"
6498      {
6499    ConfigChannel.no_create_on_split = yylval.number;
6500   }
6501      break;
6502  
6503 <  case 638:
6504 <
6505 < /* Line 1806 of yacc.c  */
7528 < #line 3286 "ircd_parser.y"
6503 >  case 608:
6504 > /* Line 1792 of yacc.c  */
6505 > #line 2793 "conf_parser.y"
6506      {
6507    ConfigChannel.no_join_on_split = yylval.number;
6508   }
6509      break;
6510  
6511 <  case 639:
6512 <
6513 < /* Line 1806 of yacc.c  */
7537 < #line 3291 "ircd_parser.y"
7538 <    {
7539 <  ConfigChannel.burst_topicwho = yylval.number;
7540 < }
7541 <    break;
7542 <
7543 <  case 640:
7544 <
7545 < /* Line 1806 of yacc.c  */
7546 < #line 3296 "ircd_parser.y"
6511 >  case 609:
6512 > /* Line 1792 of yacc.c  */
6513 > #line 2798 "conf_parser.y"
6514      {
6515    GlobalSetOptions.joinfloodcount = yylval.number;
6516   }
6517      break;
6518  
6519 <  case 641:
6520 <
6521 < /* Line 1806 of yacc.c  */
7555 < #line 3301 "ircd_parser.y"
6519 >  case 610:
6520 > /* Line 1792 of yacc.c  */
6521 > #line 2803 "conf_parser.y"
6522      {
6523    GlobalSetOptions.joinfloodtime = yylval.number;
6524   }
6525      break;
6526  
6527 <  case 653:
6528 <
6529 < /* Line 1806 of yacc.c  */
7564 < #line 3320 "ircd_parser.y"
6527 >  case 621:
6528 > /* Line 1792 of yacc.c  */
6529 > #line 2821 "conf_parser.y"
6530      {
6531    if (conf_parser_ctx.pass == 2)
6532      ConfigServerHide.flatten_links = yylval.number;
6533   }
6534      break;
6535  
6536 <  case 654:
6537 <
6538 < /* Line 1806 of yacc.c  */
7574 < #line 3326 "ircd_parser.y"
6536 >  case 622:
6537 > /* Line 1792 of yacc.c  */
6538 > #line 2827 "conf_parser.y"
6539      {
6540    if (conf_parser_ctx.pass == 2)
6541      ConfigServerHide.hide_servers = yylval.number;
6542   }
6543      break;
6544  
6545 <  case 655:
6546 <
6547 < /* Line 1806 of yacc.c  */
7584 < #line 3332 "ircd_parser.y"
6545 >  case 623:
6546 > /* Line 1792 of yacc.c  */
6547 > #line 2833 "conf_parser.y"
6548      {
6549    if (conf_parser_ctx.pass == 2)
6550    {
6551      MyFree(ConfigServerHide.hidden_name);
6552 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6552 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6553    }
6554   }
6555      break;
6556  
6557 <  case 656:
6558 <
6559 < /* Line 1806 of yacc.c  */
7597 < #line 3341 "ircd_parser.y"
6557 >  case 624:
6558 > /* Line 1792 of yacc.c  */
6559 > #line 2842 "conf_parser.y"
6560      {
6561    if (conf_parser_ctx.pass == 2)
6562    {
# Line 7609 | Line 6571 | yyreduce:
6571   }
6572      break;
6573  
6574 <  case 657:
6575 <
6576 < /* Line 1806 of yacc.c  */
7615 < #line 3355 "ircd_parser.y"
6574 >  case 625:
6575 > /* Line 1792 of yacc.c  */
6576 > #line 2856 "conf_parser.y"
6577      {
6578    if (conf_parser_ctx.pass == 2)
6579      ConfigServerHide.hidden = yylval.number;
6580   }
6581      break;
6582  
6583 <  case 658:
6584 <
6585 < /* Line 1806 of yacc.c  */
7625 < #line 3361 "ircd_parser.y"
7626 <    {
7627 <  if (conf_parser_ctx.pass == 2)
7628 <    ConfigServerHide.disable_hidden = yylval.number;
7629 < }
7630 <    break;
7631 <
7632 <  case 659:
7633 <
7634 < /* Line 1806 of yacc.c  */
7635 < #line 3367 "ircd_parser.y"
6583 >  case 626:
6584 > /* Line 1792 of yacc.c  */
6585 > #line 2862 "conf_parser.y"
6586      {
6587    if (conf_parser_ctx.pass == 2)
6588      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7640 | Line 6590 | yyreduce:
6590      break;
6591  
6592  
6593 <
6594 < /* Line 1806 of yacc.c  */
7645 < #line 7646 "ircd_parser.c"
6593 > /* Line 1792 of yacc.c  */
6594 > #line 6595 "conf_parser.c"
6595        default: break;
6596      }
6597    /* User semantic actions sometimes alter yychar, and that requires
# Line 7805 | Line 6754 | yyerrlab1:
6754        YY_STACK_PRINT (yyss, yyssp);
6755      }
6756  
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6758    *++yyvsp = yylval;
6759 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6760  
6761  
6762    /* Shift the error token.  */
# Line 7829 | Line 6780 | yyabortlab:
6780    yyresult = 1;
6781    goto yyreturn;
6782  
6783 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6783 > #if !defined yyoverflow || YYERROR_VERBOSE
6784   /*-------------------------------------------------.
6785   | yyexhaustedlab -- memory exhaustion comes here.  |
6786   `-------------------------------------------------*/
# Line 7871 | Line 6822 | yyreturn:
6822   }
6823  
6824  
7874

Comparing:
ircd-hybrid-8/src/ircd_parser.c (property svn:keywords), Revision 1303 by michael, Fri Mar 23 10:52:19 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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