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

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 1833 by michael, Fri Apr 19 19:19:46 2013 UTC vs.
Revision 6490 by michael, Fri Sep 4 18:07:10 2015 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
1 > /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 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
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.7.12-4996"
47 > #define YYBISON_VERSION "3.0.4"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 < /* Line 371 of yacc.c  */
66 < #line 25 "conf_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
69 #define YY_NO_UNPUT
68   #include <sys/types.h>
69   #include <string.h>
70  
# Line 76 | Line 74
74   #include "list.h"
75   #include "conf.h"
76   #include "conf_class.h"
77 + #include "conf_pseudo.h"
78   #include "event.h"
79 + #include "id.h"
80   #include "log.h"
81 < #include "client.h"     /* for UMODE_ALL only */
81 > #include "client.h"     /* for UMODE_SERVNOTICE only */
82   #include "irc_string.h"
83   #include "memory.h"
84   #include "modules.h"
85 < #include "s_serv.h"
85 > #include "server.h"
86   #include "hostmask.h"
87   #include "send.h"
88   #include "listener.h"
89   #include "resv.h"
90   #include "numeric.h"
91 < #include "s_user.h"
91 > #include "user.h"
92 > #include "motd.h"
93  
94   #ifdef HAVE_LIBCRYPTO
95   #include <openssl/rsa.h>
# Line 103 | Line 104 | int yylex(void);
104  
105   static struct
106   {
107 <  struct {
107 >  struct
108 >  {
109      dlink_list list;
110    } mask,
111      leaf,
112      hub;
113  
114 <  struct {
114 >  struct
115 >  {
116      char buf[IRCD_BUFSIZE];
117    } name,
118 +    nick,
119      user,
120      host,
121      addr,
122      bind,
123      file,
124      ciph,
125 +    cert,
126      rpass,
127      spass,
128 <    class;
128 >    whois,
129 >    class,
130 >    target,
131 >    prepend,
132 >    command;
133  
134 <  struct {
134 >  struct
135 >  {
136      unsigned int value;
137    } flags,
138      modes,
# Line 141 | Line 151 | static struct
151      max_ident,
152      max_sendq,
153      max_recvq,
154 +    max_channels,
155      cidr_bitlen_ipv4,
156      cidr_bitlen_ipv6,
157      number_per_cidr;
# Line 149 | Line 160 | static struct
160   static void
161   reset_block_state(void)
162   {
163 <  dlink_node *ptr = NULL, *ptr_next = NULL;
163 >  dlink_node *node = NULL, *node_next = NULL;
164  
165 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
165 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
166    {
167 <    MyFree(ptr->data);
168 <    dlinkDelete(ptr, &block_state.mask.list);
169 <    free_dlink_node(ptr);
167 >    MyFree(node->data);
168 >    dlinkDelete(node, &block_state.mask.list);
169 >    free_dlink_node(node);
170    }
171  
172 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
172 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
173    {
174 <    MyFree(ptr->data);
175 <    dlinkDelete(ptr, &block_state.leaf.list);
176 <    free_dlink_node(ptr);
174 >    MyFree(node->data);
175 >    dlinkDelete(node, &block_state.leaf.list);
176 >    free_dlink_node(node);
177    }
178  
179 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
179 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
180    {
181 <    MyFree(ptr->data);
182 <    dlinkDelete(ptr, &block_state.hub.list);
183 <    free_dlink_node(ptr);
181 >    MyFree(node->data);
182 >    dlinkDelete(node, &block_state.hub.list);
183 >    free_dlink_node(node);
184    }
185  
186    memset(&block_state, 0, sizeof(block_state));
187   }
188  
189  
190 < /* Line 371 of yacc.c  */
180 < #line 181 "conf_parser.c"
190 > #line 191 "conf_parser.c" /* yacc.c:339  */
191  
192 < # ifndef YY_NULL
192 > # ifndef YY_NULLPTR
193   #  if defined __cplusplus && 201103L <= __cplusplus
194 < #   define YY_NULL nullptr
194 > #   define YY_NULLPTR nullptr
195   #  else
196 < #   define YY_NULL 0
196 > #   define YY_NULLPTR 0
197   #  endif
198   # endif
199  
# Line 199 | Line 209 | reset_block_state(void)
209     by #include "y.tab.h".  */
210   #ifndef YY_YY_CONF_PARSER_H_INCLUDED
211   # define YY_YY_CONF_PARSER_H_INCLUDED
212 < /* Enabling traces.  */
212 > /* Debug traces.  */
213   #ifndef YYDEBUG
214   # define YYDEBUG 0
215   #endif
# Line 207 | Line 217 | reset_block_state(void)
217   extern int yydebug;
218   #endif
219  
220 < /* Tokens.  */
220 > /* Token type.  */
221   #ifndef YYTOKENTYPE
222   # define YYTOKENTYPE
223 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
224 <      know about them.  */
225 <   enum yytokentype {
226 <     ACCEPT_PASSWORD = 258,
227 <     ADMIN = 259,
228 <     AFTYPE = 260,
229 <     ANTI_NICK_FLOOD = 261,
230 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
231 <     AUTOCONN = 263,
232 <     BYTES = 264,
233 <     KBYTES = 265,
234 <     MBYTES = 266,
235 <     CALLER_ID_WAIT = 267,
236 <     CAN_FLOOD = 268,
237 <     CHANNEL = 269,
238 <     CIDR_BITLEN_IPV4 = 270,
239 <     CIDR_BITLEN_IPV6 = 271,
240 <     CLASS = 272,
241 <     CONNECT = 273,
242 <     CONNECTFREQ = 274,
243 <     DEFAULT_FLOODCOUNT = 275,
244 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
245 <     DEFAULT_SPLIT_USER_COUNT = 277,
246 <     DENY = 278,
247 <     DESCRIPTION = 279,
248 <     DIE = 280,
249 <     DISABLE_AUTH = 281,
250 <     DISABLE_FAKE_CHANNELS = 282,
251 <     DISABLE_REMOTE_COMMANDS = 283,
252 <     DOTS_IN_IDENT = 284,
253 <     EGDPOOL_PATH = 285,
254 <     EMAIL = 286,
255 <     ENCRYPTED = 287,
256 <     EXCEED_LIMIT = 288,
257 <     EXEMPT = 289,
258 <     FAILED_OPER_NOTICE = 290,
259 <     IRCD_FLAGS = 291,
260 <     FLATTEN_LINKS = 292,
261 <     GECOS = 293,
262 <     GENERAL = 294,
263 <     GLINE = 295,
264 <     GLINE_DURATION = 296,
265 <     GLINE_ENABLE = 297,
266 <     GLINE_EXEMPT = 298,
267 <     GLINE_REQUEST_DURATION = 299,
268 <     GLINE_MIN_CIDR = 300,
269 <     GLINE_MIN_CIDR6 = 301,
270 <     GLOBAL_KILL = 302,
271 <     IRCD_AUTH = 303,
272 <     NEED_IDENT = 304,
273 <     HAVENT_READ_CONF = 305,
274 <     HIDDEN = 306,
275 <     HIDDEN_NAME = 307,
276 <     HIDE_SERVER_IPS = 308,
277 <     HIDE_SERVERS = 309,
278 <     HIDE_SPOOF_IPS = 310,
279 <     HOST = 311,
280 <     HUB = 312,
281 <     HUB_MASK = 313,
282 <     IGNORE_BOGUS_TS = 314,
283 <     INVISIBLE_ON_CONNECT = 315,
284 <     IP = 316,
285 <     KILL = 317,
286 <     KILL_CHASE_TIME_LIMIT = 318,
287 <     KLINE = 319,
288 <     KLINE_EXEMPT = 320,
289 <     KNOCK_DELAY = 321,
290 <     KNOCK_DELAY_CHANNEL = 322,
291 <     LEAF_MASK = 323,
292 <     LINKS_DELAY = 324,
293 <     LISTEN = 325,
294 <     T_LOG = 326,
295 <     MAX_ACCEPT = 327,
296 <     MAX_BANS = 328,
297 <     MAX_CHANS_PER_OPER = 329,
298 <     MAX_CHANS_PER_USER = 330,
299 <     MAX_GLOBAL = 331,
300 <     MAX_IDENT = 332,
301 <     MAX_LOCAL = 333,
302 <     MAX_NICK_CHANGES = 334,
303 <     MAX_NICK_LENGTH = 335,
304 <     MAX_NICK_TIME = 336,
305 <     MAX_NUMBER = 337,
306 <     MAX_TARGETS = 338,
307 <     MAX_TOPIC_LENGTH = 339,
308 <     MAX_WATCH = 340,
309 <     MIN_NONWILDCARD = 341,
310 <     MIN_NONWILDCARD_SIMPLE = 342,
311 <     MIN_IDLE = 343,
312 <     MAX_IDLE = 344,
313 <     RANDOM_IDLE = 345,
314 <     HIDE_IDLE_FROM_OPERS = 346,
315 <     MODULE = 347,
316 <     MODULES = 348,
317 <     NAME = 349,
318 <     NEED_PASSWORD = 350,
319 <     NETWORK_DESC = 351,
320 <     NETWORK_NAME = 352,
321 <     NICK = 353,
322 <     NICK_CHANGES = 354,
323 <     NO_CREATE_ON_SPLIT = 355,
324 <     NO_JOIN_ON_SPLIT = 356,
325 <     NO_OPER_FLOOD = 357,
326 <     NO_TILDE = 358,
327 <     NUMBER = 359,
328 <     NUMBER_PER_CIDR = 360,
329 <     NUMBER_PER_IP = 361,
330 <     OPERATOR = 362,
331 <     OPERS_BYPASS_CALLERID = 363,
332 <     OPER_ONLY_UMODES = 364,
333 <     OPER_PASS_RESV = 365,
334 <     OPER_SPY_T = 366,
335 <     OPER_UMODES = 367,
336 <     JOIN_FLOOD_COUNT = 368,
337 <     JOIN_FLOOD_TIME = 369,
338 <     PACE_WAIT = 370,
339 <     PACE_WAIT_SIMPLE = 371,
340 <     PASSWORD = 372,
341 <     PATH = 373,
342 <     PING_COOKIE = 374,
343 <     PING_TIME = 375,
344 <     PORT = 376,
345 <     QSTRING = 377,
346 <     QUIET_ON_BAN = 378,
347 <     REASON = 379,
348 <     REDIRPORT = 380,
349 <     REDIRSERV = 381,
350 <     REGEX_T = 382,
351 <     REHASH = 383,
352 <     REMOTE = 384,
353 <     REMOTEBAN = 385,
354 <     RESTRICT_CHANNELS = 386,
355 <     RSA_PRIVATE_KEY_FILE = 387,
356 <     RSA_PUBLIC_KEY_FILE = 388,
357 <     SSL_CERTIFICATE_FILE = 389,
358 <     SSL_DH_PARAM_FILE = 390,
359 <     T_SSL_CLIENT_METHOD = 391,
360 <     T_SSL_SERVER_METHOD = 392,
361 <     T_SSLV3 = 393,
362 <     T_TLSV1 = 394,
363 <     RESV = 395,
364 <     RESV_EXEMPT = 396,
365 <     SECONDS = 397,
366 <     MINUTES = 398,
367 <     HOURS = 399,
368 <     DAYS = 400,
369 <     WEEKS = 401,
370 <     MONTHS = 402,
371 <     YEARS = 403,
372 <     SENDQ = 404,
373 <     SEND_PASSWORD = 405,
374 <     SERVERHIDE = 406,
375 <     SERVERINFO = 407,
376 <     IRCD_SID = 408,
377 <     TKLINE_EXPIRE_NOTICES = 409,
378 <     T_SHARED = 410,
379 <     T_CLUSTER = 411,
380 <     TYPE = 412,
381 <     SHORT_MOTD = 413,
382 <     SPOOF = 414,
383 <     SPOOF_NOTICE = 415,
384 <     STATS_E_DISABLED = 416,
385 <     STATS_I_OPER_ONLY = 417,
386 <     STATS_K_OPER_ONLY = 418,
387 <     STATS_O_OPER_ONLY = 419,
388 <     STATS_P_OPER_ONLY = 420,
389 <     TBOOL = 421,
390 <     TMASKED = 422,
391 <     TS_MAX_DELTA = 423,
392 <     TS_WARN_DELTA = 424,
393 <     TWODOTS = 425,
394 <     T_ALL = 426,
395 <     T_BOTS = 427,
396 <     T_SOFTCALLERID = 428,
397 <     T_CALLERID = 429,
398 <     T_CCONN = 430,
399 <     T_CCONN_FULL = 431,
400 <     T_SSL_CIPHER_LIST = 432,
401 <     T_DEAF = 433,
402 <     T_DEBUG = 434,
403 <     T_DLINE = 435,
404 <     T_EXTERNAL = 436,
405 <     T_FULL = 437,
406 <     T_INVISIBLE = 438,
407 <     T_IPV4 = 439,
408 <     T_IPV6 = 440,
409 <     T_LOCOPS = 441,
410 <     T_MAX_CLIENTS = 442,
411 <     T_NCHANGE = 443,
412 <     T_OPERWALL = 444,
413 <     T_RECVQ = 445,
414 <     T_REJ = 446,
415 <     T_SERVER = 447,
416 <     T_SERVNOTICE = 448,
417 <     T_SET = 449,
418 <     T_SKILL = 450,
419 <     T_SPY = 451,
420 <     T_SSL = 452,
421 <     T_UMODES = 453,
422 <     T_UNAUTH = 454,
423 <     T_UNDLINE = 455,
424 <     T_UNLIMITED = 456,
425 <     T_UNRESV = 457,
426 <     T_UNXLINE = 458,
427 <     T_GLOBOPS = 459,
428 <     T_WALLOP = 460,
429 <     T_WEBIRC = 461,
430 <     T_RESTART = 462,
431 <     T_SERVICE = 463,
432 <     T_SERVICES_NAME = 464,
433 <     THROTTLE_TIME = 465,
434 <     TRUE_NO_OPER_FLOOD = 466,
435 <     UNKLINE = 467,
436 <     USER = 468,
437 <     USE_EGD = 469,
438 <     USE_LOGGING = 470,
439 <     VHOST = 471,
440 <     VHOST6 = 472,
441 <     XLINE = 473,
442 <     WARN_NO_NLINE = 474,
443 <     T_SIZE = 475,
444 <     T_FILE = 476
445 <   };
223 >  enum yytokentype
224 >  {
225 >    ACCEPT_PASSWORD = 258,
226 >    ADMIN = 259,
227 >    AFTYPE = 260,
228 >    ANTI_NICK_FLOOD = 261,
229 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
230 >    AUTOCONN = 263,
231 >    AWAY_COUNT = 264,
232 >    AWAY_TIME = 265,
233 >    BYTES = 266,
234 >    KBYTES = 267,
235 >    MBYTES = 268,
236 >    CALLER_ID_WAIT = 269,
237 >    CAN_FLOOD = 270,
238 >    CHANNEL = 271,
239 >    CIDR_BITLEN_IPV4 = 272,
240 >    CIDR_BITLEN_IPV6 = 273,
241 >    CLASS = 274,
242 >    CLOSE = 275,
243 >    CONNECT = 276,
244 >    CONNECTFREQ = 277,
245 >    CYCLE_ON_HOST_CHANGE = 278,
246 >    DEFAULT_FLOODCOUNT = 279,
247 >    DEFAULT_JOIN_FLOOD_COUNT = 280,
248 >    DEFAULT_JOIN_FLOOD_TIME = 281,
249 >    DEFAULT_MAX_CLIENTS = 282,
250 >    DENY = 283,
251 >    DESCRIPTION = 284,
252 >    DIE = 285,
253 >    DISABLE_AUTH = 286,
254 >    DISABLE_FAKE_CHANNELS = 287,
255 >    DISABLE_REMOTE_COMMANDS = 288,
256 >    DLINE_MIN_CIDR = 289,
257 >    DLINE_MIN_CIDR6 = 290,
258 >    DOTS_IN_IDENT = 291,
259 >    EMAIL = 292,
260 >    ENCRYPTED = 293,
261 >    EXCEED_LIMIT = 294,
262 >    EXEMPT = 295,
263 >    FAILED_OPER_NOTICE = 296,
264 >    FLATTEN_LINKS = 297,
265 >    GECOS = 298,
266 >    GENERAL = 299,
267 >    HIDDEN = 300,
268 >    HIDDEN_NAME = 301,
269 >    HIDE_CHANS = 302,
270 >    HIDE_IDLE = 303,
271 >    HIDE_IDLE_FROM_OPERS = 304,
272 >    HIDE_SERVER_IPS = 305,
273 >    HIDE_SERVERS = 306,
274 >    HIDE_SERVICES = 307,
275 >    HOST = 308,
276 >    HUB = 309,
277 >    HUB_MASK = 310,
278 >    IGNORE_BOGUS_TS = 311,
279 >    INVISIBLE_ON_CONNECT = 312,
280 >    INVITE_CLIENT_COUNT = 313,
281 >    INVITE_CLIENT_TIME = 314,
282 >    IP = 315,
283 >    IRCD_AUTH = 316,
284 >    IRCD_FLAGS = 317,
285 >    IRCD_SID = 318,
286 >    JOIN = 319,
287 >    KILL = 320,
288 >    KILL_CHASE_TIME_LIMIT = 321,
289 >    KLINE = 322,
290 >    KLINE_EXEMPT = 323,
291 >    KLINE_MIN_CIDR = 324,
292 >    KLINE_MIN_CIDR6 = 325,
293 >    KNOCK_CLIENT_COUNT = 326,
294 >    KNOCK_CLIENT_TIME = 327,
295 >    KNOCK_DELAY_CHANNEL = 328,
296 >    LEAF_MASK = 329,
297 >    LINKS_DELAY = 330,
298 >    LISTEN = 331,
299 >    MASK = 332,
300 >    MAX_ACCEPT = 333,
301 >    MAX_BANS = 334,
302 >    MAX_CHANNELS = 335,
303 >    MAX_GLOBAL = 336,
304 >    MAX_IDENT = 337,
305 >    MAX_IDLE = 338,
306 >    MAX_LOCAL = 339,
307 >    MAX_NICK_CHANGES = 340,
308 >    MAX_NICK_LENGTH = 341,
309 >    MAX_NICK_TIME = 342,
310 >    MAX_NUMBER = 343,
311 >    MAX_TARGETS = 344,
312 >    MAX_TOPIC_LENGTH = 345,
313 >    MAX_WATCH = 346,
314 >    MIN_IDLE = 347,
315 >    MIN_NONWILDCARD = 348,
316 >    MIN_NONWILDCARD_SIMPLE = 349,
317 >    MODULE = 350,
318 >    MODULES = 351,
319 >    MOTD = 352,
320 >    NAME = 353,
321 >    NEED_IDENT = 354,
322 >    NEED_PASSWORD = 355,
323 >    NETWORK_DESC = 356,
324 >    NETWORK_NAME = 357,
325 >    NICK = 358,
326 >    NO_OPER_FLOOD = 359,
327 >    NO_TILDE = 360,
328 >    NUMBER = 361,
329 >    NUMBER_PER_CIDR = 362,
330 >    NUMBER_PER_IP = 363,
331 >    OPER_ONLY_UMODES = 364,
332 >    OPER_UMODES = 365,
333 >    OPERATOR = 366,
334 >    OPERS_BYPASS_CALLERID = 367,
335 >    PACE_WAIT = 368,
336 >    PACE_WAIT_SIMPLE = 369,
337 >    PASSWORD = 370,
338 >    PATH = 371,
339 >    PING_COOKIE = 372,
340 >    PING_TIME = 373,
341 >    PORT = 374,
342 >    QSTRING = 375,
343 >    RANDOM_IDLE = 376,
344 >    REASON = 377,
345 >    REDIRPORT = 378,
346 >    REDIRSERV = 379,
347 >    REHASH = 380,
348 >    REMOTE = 381,
349 >    REMOTEBAN = 382,
350 >    RESV = 383,
351 >    RESV_EXEMPT = 384,
352 >    RSA_PRIVATE_KEY_FILE = 385,
353 >    RSA_PUBLIC_KEY_FILE = 386,
354 >    SECONDS = 387,
355 >    MINUTES = 388,
356 >    HOURS = 389,
357 >    DAYS = 390,
358 >    WEEKS = 391,
359 >    MONTHS = 392,
360 >    YEARS = 393,
361 >    SEND_PASSWORD = 394,
362 >    SENDQ = 395,
363 >    SERVERHIDE = 396,
364 >    SERVERINFO = 397,
365 >    SHORT_MOTD = 398,
366 >    SPOOF = 399,
367 >    SPOOF_NOTICE = 400,
368 >    SQUIT = 401,
369 >    SSL_CERTIFICATE_FILE = 402,
370 >    SSL_CERTIFICATE_FINGERPRINT = 403,
371 >    SSL_CONNECTION_REQUIRED = 404,
372 >    SSL_DH_ELLIPTIC_CURVE = 405,
373 >    SSL_DH_PARAM_FILE = 406,
374 >    SSL_MESSAGE_DIGEST_ALGORITHM = 407,
375 >    STATS_E_DISABLED = 408,
376 >    STATS_I_OPER_ONLY = 409,
377 >    STATS_K_OPER_ONLY = 410,
378 >    STATS_M_OPER_ONLY = 411,
379 >    STATS_O_OPER_ONLY = 412,
380 >    STATS_P_OPER_ONLY = 413,
381 >    STATS_U_OPER_ONLY = 414,
382 >    T_ALL = 415,
383 >    T_BOTS = 416,
384 >    T_CALLERID = 417,
385 >    T_CCONN = 418,
386 >    T_COMMAND = 419,
387 >    T_CLUSTER = 420,
388 >    T_DEAF = 421,
389 >    T_DEBUG = 422,
390 >    T_DLINE = 423,
391 >    T_EXTERNAL = 424,
392 >    T_FARCONNECT = 425,
393 >    T_FILE = 426,
394 >    T_FULL = 427,
395 >    T_GLOBOPS = 428,
396 >    T_INVISIBLE = 429,
397 >    T_IPV4 = 430,
398 >    T_IPV6 = 431,
399 >    T_LOCOPS = 432,
400 >    T_LOG = 433,
401 >    T_NCHANGE = 434,
402 >    T_NONONREG = 435,
403 >    T_OPME = 436,
404 >    T_PREPEND = 437,
405 >    T_PSEUDO = 438,
406 >    T_RECVQ = 439,
407 >    T_REJ = 440,
408 >    T_RESTART = 441,
409 >    T_SERVER = 442,
410 >    T_SERVICE = 443,
411 >    T_SERVNOTICE = 444,
412 >    T_SET = 445,
413 >    T_SHARED = 446,
414 >    T_SIZE = 447,
415 >    T_SKILL = 448,
416 >    T_SOFTCALLERID = 449,
417 >    T_SPY = 450,
418 >    T_SSL = 451,
419 >    T_SSL_CIPHER_LIST = 452,
420 >    T_TARGET = 453,
421 >    T_UMODES = 454,
422 >    T_UNAUTH = 455,
423 >    T_UNDLINE = 456,
424 >    T_UNLIMITED = 457,
425 >    T_UNRESV = 458,
426 >    T_UNXLINE = 459,
427 >    T_WALLOP = 460,
428 >    T_WALLOPS = 461,
429 >    T_WEBIRC = 462,
430 >    TBOOL = 463,
431 >    THROTTLE_COUNT = 464,
432 >    THROTTLE_TIME = 465,
433 >    TKLINE_EXPIRE_NOTICES = 466,
434 >    TMASKED = 467,
435 >    TS_MAX_DELTA = 468,
436 >    TS_WARN_DELTA = 469,
437 >    TWODOTS = 470,
438 >    TYPE = 471,
439 >    UNKLINE = 472,
440 >    USE_LOGGING = 473,
441 >    USER = 474,
442 >    VHOST = 475,
443 >    VHOST6 = 476,
444 >    WARN_NO_CONNECT_BLOCK = 477,
445 >    WHOIS = 478,
446 >    XLINE = 479,
447 >    XLINE_EXEMPT = 480
448 >  };
449   #endif
450   /* Tokens.  */
451   #define ACCEPT_PASSWORD 258
# Line 441 | Line 454 | extern int yydebug;
454   #define ANTI_NICK_FLOOD 261
455   #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
456   #define AUTOCONN 263
457 < #define BYTES 264
458 < #define KBYTES 265
459 < #define MBYTES 266
460 < #define CALLER_ID_WAIT 267
461 < #define CAN_FLOOD 268
462 < #define CHANNEL 269
463 < #define CIDR_BITLEN_IPV4 270
464 < #define CIDR_BITLEN_IPV6 271
465 < #define CLASS 272
466 < #define CONNECT 273
467 < #define CONNECTFREQ 274
468 < #define DEFAULT_FLOODCOUNT 275
469 < #define DEFAULT_SPLIT_SERVER_COUNT 276
470 < #define DEFAULT_SPLIT_USER_COUNT 277
471 < #define DENY 278
472 < #define DESCRIPTION 279
473 < #define DIE 280
474 < #define DISABLE_AUTH 281
475 < #define DISABLE_FAKE_CHANNELS 282
476 < #define DISABLE_REMOTE_COMMANDS 283
477 < #define DOTS_IN_IDENT 284
478 < #define EGDPOOL_PATH 285
479 < #define EMAIL 286
480 < #define ENCRYPTED 287
481 < #define EXCEED_LIMIT 288
482 < #define EXEMPT 289
483 < #define FAILED_OPER_NOTICE 290
484 < #define IRCD_FLAGS 291
485 < #define FLATTEN_LINKS 292
486 < #define GECOS 293
487 < #define GENERAL 294
488 < #define GLINE 295
489 < #define GLINE_DURATION 296
490 < #define GLINE_ENABLE 297
491 < #define GLINE_EXEMPT 298
492 < #define GLINE_REQUEST_DURATION 299
493 < #define GLINE_MIN_CIDR 300
494 < #define GLINE_MIN_CIDR6 301
495 < #define GLOBAL_KILL 302
496 < #define IRCD_AUTH 303
497 < #define NEED_IDENT 304
498 < #define HAVENT_READ_CONF 305
499 < #define HIDDEN 306
500 < #define HIDDEN_NAME 307
501 < #define HIDE_SERVER_IPS 308
502 < #define HIDE_SERVERS 309
503 < #define HIDE_SPOOF_IPS 310
504 < #define HOST 311
505 < #define HUB 312
506 < #define HUB_MASK 313
507 < #define IGNORE_BOGUS_TS 314
508 < #define INVISIBLE_ON_CONNECT 315
509 < #define IP 316
510 < #define KILL 317
511 < #define KILL_CHASE_TIME_LIMIT 318
512 < #define KLINE 319
513 < #define KLINE_EXEMPT 320
514 < #define KNOCK_DELAY 321
515 < #define KNOCK_DELAY_CHANNEL 322
516 < #define LEAF_MASK 323
517 < #define LINKS_DELAY 324
518 < #define LISTEN 325
519 < #define T_LOG 326
520 < #define MAX_ACCEPT 327
521 < #define MAX_BANS 328
522 < #define MAX_CHANS_PER_OPER 329
523 < #define MAX_CHANS_PER_USER 330
524 < #define MAX_GLOBAL 331
525 < #define MAX_IDENT 332
526 < #define MAX_LOCAL 333
527 < #define MAX_NICK_CHANGES 334
528 < #define MAX_NICK_LENGTH 335
529 < #define MAX_NICK_TIME 336
530 < #define MAX_NUMBER 337
531 < #define MAX_TARGETS 338
532 < #define MAX_TOPIC_LENGTH 339
533 < #define MAX_WATCH 340
534 < #define MIN_NONWILDCARD 341
535 < #define MIN_NONWILDCARD_SIMPLE 342
536 < #define MIN_IDLE 343
537 < #define MAX_IDLE 344
538 < #define RANDOM_IDLE 345
539 < #define HIDE_IDLE_FROM_OPERS 346
540 < #define MODULE 347
541 < #define MODULES 348
542 < #define NAME 349
543 < #define NEED_PASSWORD 350
544 < #define NETWORK_DESC 351
545 < #define NETWORK_NAME 352
546 < #define NICK 353
547 < #define NICK_CHANGES 354
548 < #define NO_CREATE_ON_SPLIT 355
549 < #define NO_JOIN_ON_SPLIT 356
550 < #define NO_OPER_FLOOD 357
551 < #define NO_TILDE 358
552 < #define NUMBER 359
553 < #define NUMBER_PER_CIDR 360
554 < #define NUMBER_PER_IP 361
555 < #define OPERATOR 362
556 < #define OPERS_BYPASS_CALLERID 363
457 > #define AWAY_COUNT 264
458 > #define AWAY_TIME 265
459 > #define BYTES 266
460 > #define KBYTES 267
461 > #define MBYTES 268
462 > #define CALLER_ID_WAIT 269
463 > #define CAN_FLOOD 270
464 > #define CHANNEL 271
465 > #define CIDR_BITLEN_IPV4 272
466 > #define CIDR_BITLEN_IPV6 273
467 > #define CLASS 274
468 > #define CLOSE 275
469 > #define CONNECT 276
470 > #define CONNECTFREQ 277
471 > #define CYCLE_ON_HOST_CHANGE 278
472 > #define DEFAULT_FLOODCOUNT 279
473 > #define DEFAULT_JOIN_FLOOD_COUNT 280
474 > #define DEFAULT_JOIN_FLOOD_TIME 281
475 > #define DEFAULT_MAX_CLIENTS 282
476 > #define DENY 283
477 > #define DESCRIPTION 284
478 > #define DIE 285
479 > #define DISABLE_AUTH 286
480 > #define DISABLE_FAKE_CHANNELS 287
481 > #define DISABLE_REMOTE_COMMANDS 288
482 > #define DLINE_MIN_CIDR 289
483 > #define DLINE_MIN_CIDR6 290
484 > #define DOTS_IN_IDENT 291
485 > #define EMAIL 292
486 > #define ENCRYPTED 293
487 > #define EXCEED_LIMIT 294
488 > #define EXEMPT 295
489 > #define FAILED_OPER_NOTICE 296
490 > #define FLATTEN_LINKS 297
491 > #define GECOS 298
492 > #define GENERAL 299
493 > #define HIDDEN 300
494 > #define HIDDEN_NAME 301
495 > #define HIDE_CHANS 302
496 > #define HIDE_IDLE 303
497 > #define HIDE_IDLE_FROM_OPERS 304
498 > #define HIDE_SERVER_IPS 305
499 > #define HIDE_SERVERS 306
500 > #define HIDE_SERVICES 307
501 > #define HOST 308
502 > #define HUB 309
503 > #define HUB_MASK 310
504 > #define IGNORE_BOGUS_TS 311
505 > #define INVISIBLE_ON_CONNECT 312
506 > #define INVITE_CLIENT_COUNT 313
507 > #define INVITE_CLIENT_TIME 314
508 > #define IP 315
509 > #define IRCD_AUTH 316
510 > #define IRCD_FLAGS 317
511 > #define IRCD_SID 318
512 > #define JOIN 319
513 > #define KILL 320
514 > #define KILL_CHASE_TIME_LIMIT 321
515 > #define KLINE 322
516 > #define KLINE_EXEMPT 323
517 > #define KLINE_MIN_CIDR 324
518 > #define KLINE_MIN_CIDR6 325
519 > #define KNOCK_CLIENT_COUNT 326
520 > #define KNOCK_CLIENT_TIME 327
521 > #define KNOCK_DELAY_CHANNEL 328
522 > #define LEAF_MASK 329
523 > #define LINKS_DELAY 330
524 > #define LISTEN 331
525 > #define MASK 332
526 > #define MAX_ACCEPT 333
527 > #define MAX_BANS 334
528 > #define MAX_CHANNELS 335
529 > #define MAX_GLOBAL 336
530 > #define MAX_IDENT 337
531 > #define MAX_IDLE 338
532 > #define MAX_LOCAL 339
533 > #define MAX_NICK_CHANGES 340
534 > #define MAX_NICK_LENGTH 341
535 > #define MAX_NICK_TIME 342
536 > #define MAX_NUMBER 343
537 > #define MAX_TARGETS 344
538 > #define MAX_TOPIC_LENGTH 345
539 > #define MAX_WATCH 346
540 > #define MIN_IDLE 347
541 > #define MIN_NONWILDCARD 348
542 > #define MIN_NONWILDCARD_SIMPLE 349
543 > #define MODULE 350
544 > #define MODULES 351
545 > #define MOTD 352
546 > #define NAME 353
547 > #define NEED_IDENT 354
548 > #define NEED_PASSWORD 355
549 > #define NETWORK_DESC 356
550 > #define NETWORK_NAME 357
551 > #define NICK 358
552 > #define NO_OPER_FLOOD 359
553 > #define NO_TILDE 360
554 > #define NUMBER 361
555 > #define NUMBER_PER_CIDR 362
556 > #define NUMBER_PER_IP 363
557   #define OPER_ONLY_UMODES 364
558 < #define OPER_PASS_RESV 365
559 < #define OPER_SPY_T 366
560 < #define OPER_UMODES 367
561 < #define JOIN_FLOOD_COUNT 368
562 < #define JOIN_FLOOD_TIME 369
563 < #define PACE_WAIT 370
564 < #define PACE_WAIT_SIMPLE 371
565 < #define PASSWORD 372
566 < #define PATH 373
567 < #define PING_COOKIE 374
568 < #define PING_TIME 375
569 < #define PORT 376
570 < #define QSTRING 377
571 < #define QUIET_ON_BAN 378
572 < #define REASON 379
573 < #define REDIRPORT 380
574 < #define REDIRSERV 381
575 < #define REGEX_T 382
576 < #define REHASH 383
577 < #define REMOTE 384
578 < #define REMOTEBAN 385
579 < #define RESTRICT_CHANNELS 386
580 < #define RSA_PRIVATE_KEY_FILE 387
581 < #define RSA_PUBLIC_KEY_FILE 388
582 < #define SSL_CERTIFICATE_FILE 389
583 < #define SSL_DH_PARAM_FILE 390
584 < #define T_SSL_CLIENT_METHOD 391
585 < #define T_SSL_SERVER_METHOD 392
586 < #define T_SSLV3 393
587 < #define T_TLSV1 394
588 < #define RESV 395
589 < #define RESV_EXEMPT 396
590 < #define SECONDS 397
591 < #define MINUTES 398
592 < #define HOURS 399
593 < #define DAYS 400
594 < #define WEEKS 401
595 < #define MONTHS 402
596 < #define YEARS 403
597 < #define SENDQ 404
598 < #define SEND_PASSWORD 405
599 < #define SERVERHIDE 406
600 < #define SERVERINFO 407
601 < #define IRCD_SID 408
602 < #define TKLINE_EXPIRE_NOTICES 409
603 < #define T_SHARED 410
604 < #define T_CLUSTER 411
605 < #define TYPE 412
606 < #define SHORT_MOTD 413
607 < #define SPOOF 414
608 < #define SPOOF_NOTICE 415
609 < #define STATS_E_DISABLED 416
610 < #define STATS_I_OPER_ONLY 417
611 < #define STATS_K_OPER_ONLY 418
612 < #define STATS_O_OPER_ONLY 419
613 < #define STATS_P_OPER_ONLY 420
614 < #define TBOOL 421
615 < #define TMASKED 422
616 < #define TS_MAX_DELTA 423
617 < #define TS_WARN_DELTA 424
618 < #define TWODOTS 425
619 < #define T_ALL 426
620 < #define T_BOTS 427
621 < #define T_SOFTCALLERID 428
622 < #define T_CALLERID 429
623 < #define T_CCONN 430
624 < #define T_CCONN_FULL 431
625 < #define T_SSL_CIPHER_LIST 432
626 < #define T_DEAF 433
627 < #define T_DEBUG 434
628 < #define T_DLINE 435
629 < #define T_EXTERNAL 436
630 < #define T_FULL 437
631 < #define T_INVISIBLE 438
632 < #define T_IPV4 439
633 < #define T_IPV6 440
634 < #define T_LOCOPS 441
635 < #define T_MAX_CLIENTS 442
636 < #define T_NCHANGE 443
637 < #define T_OPERWALL 444
638 < #define T_RECVQ 445
639 < #define T_REJ 446
640 < #define T_SERVER 447
641 < #define T_SERVNOTICE 448
642 < #define T_SET 449
643 < #define T_SKILL 450
644 < #define T_SPY 451
645 < #define T_SSL 452
646 < #define T_UMODES 453
647 < #define T_UNAUTH 454
648 < #define T_UNDLINE 455
649 < #define T_UNLIMITED 456
650 < #define T_UNRESV 457
651 < #define T_UNXLINE 458
652 < #define T_GLOBOPS 459
558 > #define OPER_UMODES 365
559 > #define OPERATOR 366
560 > #define OPERS_BYPASS_CALLERID 367
561 > #define PACE_WAIT 368
562 > #define PACE_WAIT_SIMPLE 369
563 > #define PASSWORD 370
564 > #define PATH 371
565 > #define PING_COOKIE 372
566 > #define PING_TIME 373
567 > #define PORT 374
568 > #define QSTRING 375
569 > #define RANDOM_IDLE 376
570 > #define REASON 377
571 > #define REDIRPORT 378
572 > #define REDIRSERV 379
573 > #define REHASH 380
574 > #define REMOTE 381
575 > #define REMOTEBAN 382
576 > #define RESV 383
577 > #define RESV_EXEMPT 384
578 > #define RSA_PRIVATE_KEY_FILE 385
579 > #define RSA_PUBLIC_KEY_FILE 386
580 > #define SECONDS 387
581 > #define MINUTES 388
582 > #define HOURS 389
583 > #define DAYS 390
584 > #define WEEKS 391
585 > #define MONTHS 392
586 > #define YEARS 393
587 > #define SEND_PASSWORD 394
588 > #define SENDQ 395
589 > #define SERVERHIDE 396
590 > #define SERVERINFO 397
591 > #define SHORT_MOTD 398
592 > #define SPOOF 399
593 > #define SPOOF_NOTICE 400
594 > #define SQUIT 401
595 > #define SSL_CERTIFICATE_FILE 402
596 > #define SSL_CERTIFICATE_FINGERPRINT 403
597 > #define SSL_CONNECTION_REQUIRED 404
598 > #define SSL_DH_ELLIPTIC_CURVE 405
599 > #define SSL_DH_PARAM_FILE 406
600 > #define SSL_MESSAGE_DIGEST_ALGORITHM 407
601 > #define STATS_E_DISABLED 408
602 > #define STATS_I_OPER_ONLY 409
603 > #define STATS_K_OPER_ONLY 410
604 > #define STATS_M_OPER_ONLY 411
605 > #define STATS_O_OPER_ONLY 412
606 > #define STATS_P_OPER_ONLY 413
607 > #define STATS_U_OPER_ONLY 414
608 > #define T_ALL 415
609 > #define T_BOTS 416
610 > #define T_CALLERID 417
611 > #define T_CCONN 418
612 > #define T_COMMAND 419
613 > #define T_CLUSTER 420
614 > #define T_DEAF 421
615 > #define T_DEBUG 422
616 > #define T_DLINE 423
617 > #define T_EXTERNAL 424
618 > #define T_FARCONNECT 425
619 > #define T_FILE 426
620 > #define T_FULL 427
621 > #define T_GLOBOPS 428
622 > #define T_INVISIBLE 429
623 > #define T_IPV4 430
624 > #define T_IPV6 431
625 > #define T_LOCOPS 432
626 > #define T_LOG 433
627 > #define T_NCHANGE 434
628 > #define T_NONONREG 435
629 > #define T_OPME 436
630 > #define T_PREPEND 437
631 > #define T_PSEUDO 438
632 > #define T_RECVQ 439
633 > #define T_REJ 440
634 > #define T_RESTART 441
635 > #define T_SERVER 442
636 > #define T_SERVICE 443
637 > #define T_SERVNOTICE 444
638 > #define T_SET 445
639 > #define T_SHARED 446
640 > #define T_SIZE 447
641 > #define T_SKILL 448
642 > #define T_SOFTCALLERID 449
643 > #define T_SPY 450
644 > #define T_SSL 451
645 > #define T_SSL_CIPHER_LIST 452
646 > #define T_TARGET 453
647 > #define T_UMODES 454
648 > #define T_UNAUTH 455
649 > #define T_UNDLINE 456
650 > #define T_UNLIMITED 457
651 > #define T_UNRESV 458
652 > #define T_UNXLINE 459
653   #define T_WALLOP 460
654 < #define T_WEBIRC 461
655 < #define T_RESTART 462
656 < #define T_SERVICE 463
657 < #define T_SERVICES_NAME 464
654 > #define T_WALLOPS 461
655 > #define T_WEBIRC 462
656 > #define TBOOL 463
657 > #define THROTTLE_COUNT 464
658   #define THROTTLE_TIME 465
659 < #define TRUE_NO_OPER_FLOOD 466
660 < #define UNKLINE 467
661 < #define USER 468
662 < #define USE_EGD 469
663 < #define USE_LOGGING 470
664 < #define VHOST 471
665 < #define VHOST6 472
666 < #define XLINE 473
667 < #define WARN_NO_NLINE 474
668 < #define T_SIZE 475
669 < #define T_FILE 476
670 <
671 <
659 > #define TKLINE_EXPIRE_NOTICES 466
660 > #define TMASKED 467
661 > #define TS_MAX_DELTA 468
662 > #define TS_WARN_DELTA 469
663 > #define TWODOTS 470
664 > #define TYPE 471
665 > #define UNKLINE 472
666 > #define USE_LOGGING 473
667 > #define USER 474
668 > #define VHOST 475
669 > #define VHOST6 476
670 > #define WARN_NO_CONNECT_BLOCK 477
671 > #define WHOIS 478
672 > #define XLINE 479
673 > #define XLINE_EXEMPT 480
674  
675 + /* Value type.  */
676   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
677 < typedef union YYSTYPE
677 >
678 > union YYSTYPE
679   {
680 < /* Line 387 of yacc.c  */
664 < #line 138 "conf_parser.y"
680 > #line 153 "conf_parser.y" /* yacc.c:355  */
681  
682    int number;
683    char *string;
684  
685 + #line 686 "conf_parser.c" /* yacc.c:355  */
686 + };
687  
688 < /* Line 387 of yacc.c  */
671 < #line 672 "conf_parser.c"
672 < } YYSTYPE;
688 > typedef union YYSTYPE YYSTYPE;
689   # define YYSTYPE_IS_TRIVIAL 1
674 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
690   # define YYSTYPE_IS_DECLARED 1
691   #endif
692  
693 +
694   extern YYSTYPE yylval;
695  
680 #ifdef YYPARSE_PARAM
681 #if defined __STDC__ || defined __cplusplus
682 int yyparse (void *YYPARSE_PARAM);
683 #else
684 int yyparse ();
685 #endif
686 #else /* ! YYPARSE_PARAM */
687 #if defined __STDC__ || defined __cplusplus
696   int yyparse (void);
689 #else
690 int yyparse ();
691 #endif
692 #endif /* ! YYPARSE_PARAM */
697  
698   #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
699  
700   /* Copy the second part of user declarations.  */
701  
702 < /* Line 390 of yacc.c  */
699 < #line 700 "conf_parser.c"
702 > #line 703 "conf_parser.c" /* yacc.c:358  */
703  
704   #ifdef short
705   # undef short
# Line 710 | Line 713 | typedef unsigned char yytype_uint8;
713  
714   #ifdef YYTYPE_INT8
715   typedef YYTYPE_INT8 yytype_int8;
713 #elif (defined __STDC__ || defined __C99__FUNC__ \
714     || defined __cplusplus || defined _MSC_VER)
715 typedef signed char yytype_int8;
716   #else
717 < typedef short int yytype_int8;
717 > typedef signed char yytype_int8;
718   #endif
719  
720   #ifdef YYTYPE_UINT16
# Line 734 | Line 734 | typedef short int yytype_int16;
734   #  define YYSIZE_T __SIZE_TYPE__
735   # elif defined size_t
736   #  define YYSIZE_T size_t
737 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
738 <     || defined __cplusplus || defined _MSC_VER)
737 > # elif ! defined YYSIZE_T
738   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
739   #  define YYSIZE_T size_t
740   # else
# Line 757 | Line 756 | typedef short int yytype_int16;
756   # endif
757   #endif
758  
759 < #ifndef __attribute__
760 < /* This feature is available in gcc versions 2.5 and later.  */
761 < # if (! defined __GNUC__ || __GNUC__ < 2 \
762 <      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
763 < #  define __attribute__(Spec) /* empty */
759 > #ifndef YY_ATTRIBUTE
760 > # if (defined __GNUC__                                               \
761 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
762 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
763 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
764 > # else
765 > #  define YY_ATTRIBUTE(Spec) /* empty */
766 > # endif
767 > #endif
768 >
769 > #ifndef YY_ATTRIBUTE_PURE
770 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
771 > #endif
772 >
773 > #ifndef YY_ATTRIBUTE_UNUSED
774 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
775 > #endif
776 >
777 > #if !defined _Noreturn \
778 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
779 > # if defined _MSC_VER && 1200 <= _MSC_VER
780 > #  define _Noreturn __declspec (noreturn)
781 > # else
782 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
783   # endif
784   #endif
785  
# Line 772 | Line 790 | typedef short int yytype_int16;
790   # define YYUSE(E) /* empty */
791   #endif
792  
793 <
794 < /* Identity function, used to suppress warnings about constant conditions.  */
795 < #ifndef lint
796 < # define YYID(N) (N)
797 < #else
798 < #if (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
800 < static int
783 < YYID (int yyi)
793 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
794 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
795 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
796 >    _Pragma ("GCC diagnostic push") \
797 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
798 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
799 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
800 >    _Pragma ("GCC diagnostic pop")
801   #else
802 < static int
786 < YYID (yyi)
787 <    int yyi;
802 > # define YY_INITIAL_VALUE(Value) Value
803   #endif
804 < {
805 <  return yyi;
806 < }
804 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
806 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
807   #endif
808 + #ifndef YY_INITIAL_VALUE
809 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
810 + #endif
811 +
812  
813   #if ! defined yyoverflow || YYERROR_VERBOSE
814  
# Line 808 | Line 827 | YYID (yyi)
827   #    define alloca _alloca
828   #   else
829   #    define YYSTACK_ALLOC alloca
830 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
812 <     || defined __cplusplus || defined _MSC_VER)
830 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
831   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
832        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
833   #     ifndef EXIT_SUCCESS
# Line 821 | Line 839 | YYID (yyi)
839   # endif
840  
841   # ifdef YYSTACK_ALLOC
842 <   /* Pacify GCC's `empty if-body' warning.  */
843 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
842 >   /* Pacify GCC's 'empty if-body' warning.  */
843 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
844   #  ifndef YYSTACK_ALLOC_MAXIMUM
845      /* The OS might guarantee only one guard page at the bottom of the stack,
846         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 838 | Line 856 | YYID (yyi)
856   #  endif
857   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
858         && ! ((defined YYMALLOC || defined malloc) \
859 <             && (defined YYFREE || defined free)))
859 >             && (defined YYFREE || defined free)))
860   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
861   #   ifndef EXIT_SUCCESS
862   #    define EXIT_SUCCESS 0
# Line 846 | Line 864 | YYID (yyi)
864   #  endif
865   #  ifndef YYMALLOC
866   #   define YYMALLOC malloc
867 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
850 <     || defined __cplusplus || defined _MSC_VER)
867 > #   if ! defined malloc && ! defined EXIT_SUCCESS
868   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
869   #   endif
870   #  endif
871   #  ifndef YYFREE
872   #   define YYFREE free
873 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
857 <     || defined __cplusplus || defined _MSC_VER)
873 > #   if ! defined free && ! defined EXIT_SUCCESS
874   void free (void *); /* INFRINGES ON USER NAME SPACE */
875   #   endif
876   #  endif
# Line 864 | Line 880 | void free (void *); /* INFRINGES ON USER
880  
881   #if (! defined yyoverflow \
882       && (! defined __cplusplus \
883 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
883 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
884  
885   /* A type that is properly aligned for any stack member.  */
886   union yyalloc
# Line 889 | Line 905 | union yyalloc
905     elements in the stack, and YYPTR gives the new location of the
906     stack.  Advance YYPTR to a properly aligned location for the next
907     stack.  */
908 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
909 <    do                                                                  \
910 <      {                                                                 \
911 <        YYSIZE_T yynewbytes;                                            \
912 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
913 <        Stack = &yyptr->Stack_alloc;                                    \
914 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
915 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
916 <      }                                                                 \
917 <    while (YYID (0))
908 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
909 >    do                                                                  \
910 >      {                                                                 \
911 >        YYSIZE_T yynewbytes;                                            \
912 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
913 >        Stack = &yyptr->Stack_alloc;                                    \
914 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
915 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
916 >      }                                                                 \
917 >    while (0)
918  
919   #endif
920  
# Line 917 | Line 933 | union yyalloc
933            for (yyi = 0; yyi < (Count); yyi++)   \
934              (Dst)[yyi] = (Src)[yyi];            \
935          }                                       \
936 <      while (YYID (0))
936 >      while (0)
937   #  endif
938   # endif
939   #endif /* !YYCOPY_NEEDED */
# Line 925 | Line 941 | union yyalloc
941   /* YYFINAL -- State number of the termination state.  */
942   #define YYFINAL  2
943   /* YYLAST -- Last index in YYTABLE.  */
944 < #define YYLAST   1201
944 > #define YYLAST   1248
945  
946   /* YYNTOKENS -- Number of terminals.  */
947 < #define YYNTOKENS  227
947 > #define YYNTOKENS  232
948   /* YYNNTS -- Number of nonterminals.  */
949 < #define YYNNTS  289
949 > #define YYNNTS  291
950   /* YYNRULES -- Number of rules.  */
951 < #define YYNRULES  641
952 < /* YYNRULES -- Number of states.  */
953 < #define YYNSTATES  1254
951 > #define YYNRULES  659
952 > /* YYNSTATES -- Number of states.  */
953 > #define YYNSTATES  1297
954  
955 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
955 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
956 >   by yylex, with out-of-bounds checking.  */
957   #define YYUNDEFTOK  2
958 < #define YYMAXUTOK   476
958 > #define YYMAXUTOK   480
959  
960 < #define YYTRANSLATE(YYX)                                                \
960 > #define YYTRANSLATE(YYX)                                                \
961    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
962  
963 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
963 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
964 >   as returned by yylex, without out-of-bounds checking.  */
965   static const yytype_uint8 yytranslate[] =
966   {
967         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971 <       2,     2,     2,     2,   226,     2,     2,     2,     2,     2,
972 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   222,
973 <       2,   225,     2,     2,     2,     2,     2,     2,     2,     2,
971 >       2,     2,     2,     2,   230,     2,     2,     2,     2,     2,
972 >       2,     2,     2,     2,     2,     2,     2,     2,   231,   226,
973 >       2,   229,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979 <       2,     2,     2,   224,     2,   223,     2,     2,     2,     2,
979 >       2,     2,     2,   228,     2,   227,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 993 | Line 1011 | static const yytype_uint8 yytranslate[]
1011       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1012       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1013       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1014 <     215,   216,   217,   218,   219,   220,   221
1014 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1015 >     225
1016   };
1017  
1018   #if YYDEBUG
1019 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1001 <   YYRHS.  */
1002 < static const yytype_uint16 yyprhs[] =
1003 < {
1004 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1005 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1006 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1007 <      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1008 <      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1009 <     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1010 <     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1011 <     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1012 <     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1013 <     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1014 <     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1015 <     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1016 <     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1017 <     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1018 <     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1019 <     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1020 <     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1021 <     507,   509,   511,   513,   515,   517,   519,   521,   523,   524,
1022 <     530,   534,   536,   538,   540,   542,   544,   546,   548,   550,
1023 <     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1024 <     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1025 <     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1026 <     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1027 <     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1028 <     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1029 <     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1030 <     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1031 <     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1032 <     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1033 <     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1034 <     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1035 <     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1036 <     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1037 <     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1038 <    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1039 <    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1040 <    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1041 <    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1042 <    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1043 <    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1044 <    1185,  1190,  1191,  1198,  1199,  1205,  1209,  1211,  1213,  1216,
1045 <    1218,  1220,  1222,  1224,  1226,  1231,  1236,  1237,  1244,  1247,
1046 <    1249,  1251,  1253,  1255,  1260,  1265,  1271,  1274,  1276,  1278,
1047 <    1280,  1285,  1286,  1293,  1294,  1300,  1304,  1306,  1308,  1311,
1048 <    1313,  1315,  1317,  1319,  1321,  1326,  1331,  1337,  1340,  1342,
1049 <    1344,  1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,
1050 <    1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
1051 <    1384,  1386,  1388,  1390,  1392,  1394,  1396,  1398,  1400,  1402,
1052 <    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1422,
1053 <    1424,  1426,  1428,  1430,  1432,  1434,  1436,  1438,  1440,  1445,
1054 <    1450,  1455,  1460,  1465,  1470,  1475,  1480,  1485,  1490,  1495,
1055 <    1500,  1505,  1510,  1515,  1520,  1525,  1530,  1535,  1540,  1545,
1056 <    1550,  1555,  1560,  1565,  1570,  1575,  1580,  1585,  1590,  1595,
1057 <    1600,  1605,  1610,  1615,  1620,  1625,  1630,  1635,  1640,  1645,
1058 <    1650,  1655,  1660,  1665,  1666,  1672,  1676,  1678,  1680,  1682,
1059 <    1684,  1686,  1688,  1690,  1692,  1694,  1696,  1698,  1700,  1702,
1060 <    1704,  1706,  1708,  1710,  1712,  1714,  1716,  1718,  1719,  1725,
1061 <    1729,  1731,  1733,  1735,  1737,  1739,  1741,  1743,  1745,  1747,
1062 <    1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,  1765,  1767,
1063 <    1769,  1771,  1776,  1781,  1786,  1792,  1795,  1797,  1799,  1801,
1064 <    1803,  1805,  1807,  1809,  1811,  1813,  1815,  1817,  1819,  1821,
1065 <    1823,  1825,  1827,  1832,  1837,  1842,  1847,  1852,  1857,  1862,
1066 <    1867,  1872,  1877,  1882,  1887,  1892,  1897,  1903,  1906,  1908,
1067 <    1910,  1912,  1914,  1916,  1918,  1920,  1922,  1927,  1932,  1937,
1068 <    1942,  1947
1069 < };
1070 <
1071 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1072 < static const yytype_int16 yyrhs[] =
1073 < {
1074 <     228,     0,    -1,    -1,   228,   229,    -1,   263,    -1,   269,
1075 <      -1,   283,    -1,   490,    -1,   301,    -1,   324,    -1,   338,
1076 <      -1,   239,    -1,   507,    -1,   353,    -1,   360,    -1,   364,
1077 <      -1,   374,    -1,   383,    -1,   403,    -1,   413,    -1,   419,
1078 <      -1,   433,    -1,   423,    -1,   234,    -1,     1,   222,    -1,
1079 <       1,   223,    -1,    -1,   231,    -1,   104,   230,    -1,   104,
1080 <     142,   230,    -1,   104,   143,   230,    -1,   104,   144,   230,
1081 <      -1,   104,   145,   230,    -1,   104,   146,   230,    -1,   104,
1082 <     147,   230,    -1,   104,   148,   230,    -1,    -1,   233,    -1,
1083 <     104,   232,    -1,   104,     9,   232,    -1,   104,    10,   232,
1084 <      -1,   104,    11,   232,    -1,    93,   224,   235,   223,   222,
1085 <      -1,   235,   236,    -1,   236,    -1,   237,    -1,   238,    -1,
1086 <       1,   222,    -1,    92,   225,   122,   222,    -1,   118,   225,
1087 <     122,   222,    -1,   152,   224,   240,   223,   222,    -1,   240,
1088 <     241,    -1,   241,    -1,   252,    -1,   257,    -1,   262,    -1,
1089 <     254,    -1,   255,    -1,   256,    -1,   259,    -1,   260,    -1,
1090 <     261,    -1,   250,    -1,   249,    -1,   258,    -1,   253,    -1,
1091 <     248,    -1,   242,    -1,   243,    -1,   251,    -1,     1,   222,
1092 <      -1,   136,   225,   244,   222,    -1,   137,   225,   246,   222,
1093 <      -1,   244,   226,   245,    -1,   245,    -1,   138,    -1,   139,
1094 <      -1,   246,   226,   247,    -1,   247,    -1,   138,    -1,   139,
1095 <      -1,   134,   225,   122,   222,    -1,   132,   225,   122,   222,
1096 <      -1,   135,   225,   122,   222,    -1,   177,   225,   122,   222,
1097 <      -1,    94,   225,   122,   222,    -1,   153,   225,   122,   222,
1098 <      -1,    24,   225,   122,   222,    -1,    97,   225,   122,   222,
1099 <      -1,    96,   225,   122,   222,    -1,   216,   225,   122,   222,
1100 <      -1,   217,   225,   122,   222,    -1,   187,   225,   104,   222,
1101 <      -1,    80,   225,   104,   222,    -1,    84,   225,   104,   222,
1102 <      -1,    57,   225,   166,   222,    -1,     4,   224,   264,   223,
1103 <     222,    -1,   264,   265,    -1,   265,    -1,   266,    -1,   268,
1104 <      -1,   267,    -1,     1,   222,    -1,    94,   225,   122,   222,
1105 <      -1,    31,   225,   122,   222,    -1,    24,   225,   122,   222,
1106 <      -1,    71,   224,   270,   223,   222,    -1,   270,   271,    -1,
1107 <     271,    -1,   272,    -1,   273,    -1,     1,   222,    -1,   215,
1108 <     225,   166,   222,    -1,    -1,   274,   221,   224,   275,   223,
1109 <     222,    -1,   275,   276,    -1,   276,    -1,   277,    -1,   279,
1110 <      -1,   278,    -1,     1,   222,    -1,    94,   225,   122,   222,
1111 <      -1,   220,   225,   233,   222,    -1,   220,   225,   201,   222,
1112 <      -1,    -1,   157,   280,   225,   281,   222,    -1,   281,   226,
1113 <     282,    -1,   282,    -1,   213,    -1,   107,    -1,    40,    -1,
1114 <     180,    -1,    64,    -1,    62,    -1,   179,    -1,    -1,   107,
1115 <     284,   224,   285,   223,   222,    -1,   285,   286,    -1,   286,
1116 <      -1,   287,    -1,   288,    -1,   289,    -1,   293,    -1,   292,
1117 <      -1,   290,    -1,   291,    -1,   297,    -1,     1,   222,    -1,
1118 <      94,   225,   122,   222,    -1,   213,   225,   122,   222,    -1,
1119 <     117,   225,   122,   222,    -1,    32,   225,   166,   222,    -1,
1120 <     133,   225,   122,   222,    -1,    17,   225,   122,   222,    -1,
1121 <      -1,   198,   294,   225,   295,   222,    -1,   295,   226,   296,
1122 <      -1,   296,    -1,   172,    -1,   175,    -1,   176,    -1,   178,
1123 <      -1,   179,    -1,   182,    -1,    51,    -1,   195,    -1,   188,
1124 <      -1,   191,    -1,   199,    -1,   196,    -1,   181,    -1,   189,
1125 <      -1,   193,    -1,   183,    -1,   205,    -1,   173,    -1,   174,
1126 <      -1,   186,    -1,    -1,    36,   298,   225,   299,   222,    -1,
1127 <     299,   226,   300,    -1,   300,    -1,    47,    -1,   129,    -1,
1128 <      64,    -1,   212,    -1,   180,    -1,   200,    -1,   218,    -1,
1129 <      40,    -1,    25,    -1,   207,    -1,   128,    -1,     4,    -1,
1130 <      99,    -1,   189,    -1,   204,    -1,   111,    -1,   130,    -1,
1131 <     194,    -1,    92,    -1,    -1,    17,   302,   224,   303,   223,
1132 <     222,    -1,   303,   304,    -1,   304,    -1,   305,    -1,   315,
1133 <      -1,   316,    -1,   306,    -1,   317,    -1,   307,    -1,   308,
1134 <      -1,   309,    -1,   310,    -1,   311,    -1,   312,    -1,   313,
1135 <      -1,   314,    -1,   318,    -1,   319,    -1,   320,    -1,     1,
1136 <     222,    -1,    94,   225,   122,   222,    -1,   120,   225,   231,
1137 <     222,    -1,   106,   225,   104,   222,    -1,    19,   225,   231,
1138 <     222,    -1,    82,   225,   104,   222,    -1,    76,   225,   104,
1139 <     222,    -1,    78,   225,   104,   222,    -1,    77,   225,   104,
1140 <     222,    -1,   149,   225,   233,   222,    -1,   190,   225,   233,
1141 <     222,    -1,    15,   225,   104,   222,    -1,    16,   225,   104,
1142 <     222,    -1,   105,   225,   104,   222,    -1,    88,   225,   231,
1143 <     222,    -1,    89,   225,   231,   222,    -1,    -1,    36,   321,
1144 <     225,   322,   222,    -1,   322,   226,   323,    -1,   323,    -1,
1145 <      90,    -1,    91,    -1,    -1,    70,   325,   224,   330,   223,
1146 <     222,    -1,    -1,    36,   327,   225,   328,   222,    -1,   328,
1147 <     226,   329,    -1,   329,    -1,   197,    -1,    51,    -1,   192,
1148 <      -1,   330,   331,    -1,   331,    -1,   332,    -1,   326,    -1,
1149 <     336,    -1,   337,    -1,     1,   222,    -1,    -1,   121,   225,
1150 <     334,   333,   222,    -1,   334,   226,   335,    -1,   335,    -1,
1151 <     104,    -1,   104,   170,   104,    -1,    61,   225,   122,   222,
1152 <      -1,    56,   225,   122,   222,    -1,    -1,    48,   339,   224,
1153 <     340,   223,   222,    -1,   340,   341,    -1,   341,    -1,   342,
1154 <      -1,   343,    -1,   344,    -1,   346,    -1,   350,    -1,   351,
1155 <      -1,   352,    -1,   345,    -1,     1,   222,    -1,   213,   225,
1156 <     122,   222,    -1,   117,   225,   122,   222,    -1,    17,   225,
1157 <     122,   222,    -1,    32,   225,   166,   222,    -1,    -1,    36,
1158 <     347,   225,   348,   222,    -1,   348,   226,   349,    -1,   349,
1159 <      -1,   160,    -1,    33,    -1,    65,    -1,    49,    -1,    13,
1160 <      -1,   103,    -1,    43,    -1,   141,    -1,   206,    -1,    95,
1161 <      -1,   159,   225,   122,   222,    -1,   126,   225,   122,   222,
1162 <      -1,   125,   225,   104,   222,    -1,    -1,   140,   354,   224,
1163 <     355,   223,   222,    -1,   355,   356,    -1,   356,    -1,   357,
1164 <      -1,   358,    -1,   359,    -1,     1,   222,    -1,   124,   225,
1165 <     122,   222,    -1,    14,   225,   122,   222,    -1,    98,   225,
1166 <     122,   222,    -1,   208,   224,   361,   223,   222,    -1,   361,
1167 <     362,    -1,   362,    -1,   363,    -1,     1,    -1,    94,   225,
1168 <     122,   222,    -1,    -1,   155,   365,   224,   366,   223,   222,
1169 <      -1,   366,   367,    -1,   367,    -1,   368,    -1,   369,    -1,
1170 <     370,    -1,     1,   222,    -1,    94,   225,   122,   222,    -1,
1171 <     213,   225,   122,   222,    -1,    -1,   157,   371,   225,   372,
1172 <     222,    -1,   372,   226,   373,    -1,   373,    -1,    64,    -1,
1173 <     212,    -1,   180,    -1,   200,    -1,   218,    -1,   203,    -1,
1174 <     140,    -1,   202,    -1,   186,    -1,   171,    -1,    -1,   156,
1175 <     375,   224,   376,   223,   222,    -1,   376,   377,    -1,   377,
1176 <      -1,   378,    -1,   379,    -1,     1,   222,    -1,    94,   225,
1177 <     122,   222,    -1,    -1,   157,   380,   225,   381,   222,    -1,
1178 <     381,   226,   382,    -1,   382,    -1,    64,    -1,   212,    -1,
1179 <     180,    -1,   200,    -1,   218,    -1,   203,    -1,   140,    -1,
1180 <     202,    -1,   186,    -1,   171,    -1,    -1,    18,   384,   224,
1181 <     385,   223,   222,    -1,   385,   386,    -1,   386,    -1,   387,
1182 <      -1,   388,    -1,   389,    -1,   390,    -1,   391,    -1,   393,
1183 <      -1,   392,    -1,   402,    -1,   394,    -1,   399,    -1,   400,
1184 <      -1,   401,    -1,   398,    -1,     1,   222,    -1,    94,   225,
1185 <     122,   222,    -1,    56,   225,   122,   222,    -1,   216,   225,
1186 <     122,   222,    -1,   150,   225,   122,   222,    -1,     3,   225,
1187 <     122,   222,    -1,   121,   225,   104,   222,    -1,     5,   225,
1188 <     184,   222,    -1,     5,   225,   185,   222,    -1,    -1,    36,
1189 <     395,   225,   396,   222,    -1,   396,   226,   397,    -1,   397,
1190 <      -1,     8,    -1,   197,    -1,    32,   225,   166,   222,    -1,
1191 <      58,   225,   122,   222,    -1,    68,   225,   122,   222,    -1,
1192 <      17,   225,   122,   222,    -1,   177,   225,   122,   222,    -1,
1193 <      -1,    62,   404,   224,   409,   223,   222,    -1,    -1,   157,
1194 <     406,   225,   407,   222,    -1,   407,   226,   408,    -1,   408,
1195 <      -1,   127,    -1,   409,   410,    -1,   410,    -1,   411,    -1,
1196 <     412,    -1,   405,    -1,     1,    -1,   213,   225,   122,   222,
1197 <      -1,   124,   225,   122,   222,    -1,    -1,    23,   414,   224,
1198 <     415,   223,   222,    -1,   415,   416,    -1,   416,    -1,   417,
1199 <      -1,   418,    -1,     1,    -1,    61,   225,   122,   222,    -1,
1200 <     124,   225,   122,   222,    -1,    34,   224,   420,   223,   222,
1201 <      -1,   420,   421,    -1,   421,    -1,   422,    -1,     1,    -1,
1202 <      61,   225,   122,   222,    -1,    -1,    38,   424,   224,   429,
1203 <     223,   222,    -1,    -1,   157,   426,   225,   427,   222,    -1,
1204 <     427,   226,   428,    -1,   428,    -1,   127,    -1,   429,   430,
1205 <      -1,   430,    -1,   431,    -1,   432,    -1,   425,    -1,     1,
1206 <      -1,    94,   225,   122,   222,    -1,   124,   225,   122,   222,
1207 <      -1,    39,   224,   434,   223,   222,    -1,   434,   435,    -1,
1208 <     435,    -1,   444,    -1,   445,    -1,   447,    -1,   448,    -1,
1209 <     449,    -1,   450,    -1,   451,    -1,   452,    -1,   453,    -1,
1210 <     454,    -1,   443,    -1,   456,    -1,   457,    -1,   471,    -1,
1211 <     459,    -1,   461,    -1,   463,    -1,   462,    -1,   466,    -1,
1212 <     460,    -1,   467,    -1,   468,    -1,   469,    -1,   470,    -1,
1213 <     483,    -1,   472,    -1,   473,    -1,   474,    -1,   479,    -1,
1214 <     464,    -1,   465,    -1,   489,    -1,   487,    -1,   488,    -1,
1215 <     446,    -1,   478,    -1,   455,    -1,   476,    -1,   477,    -1,
1216 <     442,    -1,   437,    -1,   438,    -1,   439,    -1,   440,    -1,
1217 <     441,    -1,   458,    -1,   436,    -1,   475,    -1,     1,    -1,
1218 <      85,   225,   104,   222,    -1,    42,   225,   166,   222,    -1,
1219 <      41,   225,   231,   222,    -1,    44,   225,   231,   222,    -1,
1220 <      45,   225,   104,   222,    -1,    46,   225,   104,   222,    -1,
1221 <     154,   225,   166,   222,    -1,    63,   225,   231,   222,    -1,
1222 <      55,   225,   166,   222,    -1,    59,   225,   166,   222,    -1,
1223 <      28,   225,   166,   222,    -1,    35,   225,   166,   222,    -1,
1224 <       6,   225,   166,   222,    -1,    81,   225,   231,   222,    -1,
1225 <      79,   225,   104,   222,    -1,    72,   225,   104,   222,    -1,
1226 <       7,   225,   231,   222,    -1,   169,   225,   231,   222,    -1,
1227 <     168,   225,   231,   222,    -1,    50,   225,   104,   222,    -1,
1228 <      60,   225,   166,   222,    -1,   219,   225,   166,   222,    -1,
1229 <     161,   225,   166,   222,    -1,   164,   225,   166,   222,    -1,
1230 <     165,   225,   166,   222,    -1,   163,   225,   166,   222,    -1,
1231 <     163,   225,   167,   222,    -1,   162,   225,   166,   222,    -1,
1232 <     162,   225,   167,   222,    -1,   115,   225,   231,   222,    -1,
1233 <      12,   225,   231,   222,    -1,   108,   225,   166,   222,    -1,
1234 <     116,   225,   231,   222,    -1,   158,   225,   166,   222,    -1,
1235 <     102,   225,   166,   222,    -1,   211,   225,   166,   222,    -1,
1236 <     110,   225,   166,   222,    -1,    29,   225,   104,   222,    -1,
1237 <      83,   225,   104,   222,    -1,   214,   225,   166,   222,    -1,
1238 <      30,   225,   122,   222,    -1,   209,   225,   122,   222,    -1,
1239 <     119,   225,   166,   222,    -1,    26,   225,   166,   222,    -1,
1240 <     210,   225,   231,   222,    -1,    -1,   112,   480,   225,   481,
1241 <     222,    -1,   481,   226,   482,    -1,   482,    -1,   172,    -1,
1242 <     175,    -1,   176,    -1,   178,    -1,   179,    -1,   182,    -1,
1243 <      51,    -1,   195,    -1,   188,    -1,   191,    -1,   199,    -1,
1244 <     196,    -1,   181,    -1,   189,    -1,   193,    -1,   183,    -1,
1245 <     205,    -1,   173,    -1,   174,    -1,   186,    -1,    -1,   109,
1246 <     484,   225,   485,   222,    -1,   485,   226,   486,    -1,   486,
1247 <      -1,   172,    -1,   175,    -1,   176,    -1,   178,    -1,   179,
1248 <      -1,   182,    -1,   195,    -1,    51,    -1,   188,    -1,   191,
1249 <      -1,   199,    -1,   196,    -1,   181,    -1,   189,    -1,   193,
1250 <      -1,   183,    -1,   205,    -1,   173,    -1,   174,    -1,   186,
1251 <      -1,    86,   225,   104,   222,    -1,    87,   225,   104,   222,
1252 <      -1,    20,   225,   104,   222,    -1,    14,   224,   491,   223,
1253 <     222,    -1,   491,   492,    -1,   492,    -1,   500,    -1,   495,
1254 <      -1,   496,    -1,   497,    -1,   498,    -1,   499,    -1,   501,
1255 <      -1,   502,    -1,   503,    -1,   494,    -1,   504,    -1,   505,
1256 <      -1,   506,    -1,   493,    -1,     1,    -1,    27,   225,   166,
1257 <     222,    -1,   131,   225,   166,   222,    -1,    66,   225,   231,
1258 <     222,    -1,    67,   225,   231,   222,    -1,    75,   225,   104,
1259 <     222,    -1,    74,   225,   104,   222,    -1,   123,   225,   166,
1260 <     222,    -1,    73,   225,   104,   222,    -1,    22,   225,   104,
1261 <     222,    -1,    21,   225,   104,   222,    -1,   100,   225,   166,
1262 <     222,    -1,   101,   225,   166,   222,    -1,   113,   225,   104,
1263 <     222,    -1,   114,   225,   231,   222,    -1,   151,   224,   508,
1264 <     223,   222,    -1,   508,   509,    -1,   509,    -1,   510,    -1,
1265 <     511,    -1,   513,    -1,   514,    -1,   512,    -1,   515,    -1,
1266 <       1,    -1,    37,   225,   166,   222,    -1,    54,   225,   166,
1267 <     222,    -1,    52,   225,   122,   222,    -1,    69,   225,   231,
1268 <     222,    -1,    51,   225,   166,   222,    -1,    53,   225,   166,
1269 <     222,    -1
1270 < };
1271 <
1272 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1019 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1020   static const yytype_uint16 yyrline[] =
1021   {
1022 <       0,   363,   363,   364,   367,   368,   369,   370,   371,   372,
1023 <     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
1024 <     383,   384,   385,   386,   387,   388,   392,   392,   393,   397,
1025 <     401,   405,   409,   413,   417,   421,   427,   427,   428,   429,
1026 <     430,   431,   438,   441,   441,   442,   442,   442,   444,   450,
1027 <     457,   459,   459,   460,   460,   461,   461,   462,   462,   463,
1028 <     463,   464,   464,   465,   465,   466,   466,   467,   467,   468,
1029 <     469,   472,   473,   475,   475,   476,   482,   490,   490,   491,
1030 <     497,   505,   547,   606,   634,   642,   657,   672,   681,   695,
1031 <     704,   732,   762,   787,   809,   831,   840,   842,   842,   843,
1032 <     843,   844,   844,   846,   855,   864,   876,   877,   877,   879,
1033 <     879,   880,   882,   889,   889,   902,   903,   905,   905,   906,
1034 <     906,   908,   916,   919,   925,   924,   930,   930,   931,   935,
1035 <     939,   943,   947,   951,   955,   966,   965,  1042,  1042,  1043,
1036 <    1043,  1043,  1044,  1044,  1044,  1045,  1045,  1045,  1047,  1053,
1037 <    1059,  1065,  1076,  1082,  1089,  1088,  1094,  1094,  1095,  1099,
1038 <    1103,  1107,  1111,  1115,  1119,  1123,  1127,  1131,  1135,  1139,
1039 <    1143,  1147,  1151,  1155,  1159,  1163,  1167,  1171,  1178,  1177,
1040 <    1183,  1183,  1184,  1188,  1192,  1196,  1200,  1204,  1208,  1212,
1041 <    1216,  1220,  1224,  1228,  1232,  1236,  1240,  1244,  1248,  1252,
1042 <    1256,  1267,  1266,  1327,  1327,  1328,  1329,  1329,  1330,  1331,
1043 <    1332,  1333,  1334,  1335,  1336,  1337,  1338,  1338,  1339,  1340,
1044 <    1341,  1342,  1344,  1350,  1356,  1362,  1368,  1374,  1380,  1386,
1045 <    1392,  1398,  1405,  1411,  1417,  1423,  1432,  1442,  1441,  1447,
1046 <    1447,  1448,  1452,  1463,  1462,  1469,  1468,  1473,  1473,  1474,
1047 <    1478,  1482,  1488,  1488,  1489,  1489,  1489,  1489,  1489,  1491,
1048 <    1491,  1493,  1493,  1495,  1509,  1529,  1535,  1545,  1544,  1586,
1049 <    1586,  1587,  1587,  1587,  1587,  1588,  1588,  1588,  1589,  1589,
1050 <    1591,  1597,  1603,  1609,  1621,  1620,  1626,  1626,  1627,  1631,
1051 <    1635,  1639,  1643,  1647,  1651,  1655,  1659,  1663,  1669,  1683,
1052 <    1692,  1706,  1705,  1720,  1720,  1721,  1721,  1721,  1721,  1723,
1053 <    1729,  1735,  1744,  1746,  1746,  1747,  1747,  1749,  1765,  1764,
1054 <    1789,  1789,  1790,  1790,  1790,  1790,  1792,  1798,  1818,  1817,
1055 <    1823,  1823,  1824,  1828,  1832,  1836,  1840,  1844,  1848,  1852,
1056 <    1856,  1860,  1870,  1869,  1890,  1890,  1891,  1891,  1891,  1893,
1057 <    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1058 <    1930,  1934,  1938,  1942,  1952,  1951,  2017,  2017,  2018,  2018,
1059 <    2018,  2019,  2019,  2020,  2020,  2020,  2021,  2021,  2021,  2022,
1060 <    2022,  2023,  2025,  2031,  2037,  2043,  2056,  2069,  2075,  2079,
1061 <    2088,  2087,  2092,  2092,  2093,  2097,  2103,  2114,  2120,  2126,
1062 <    2132,  2148,  2147,  2210,  2209,  2215,  2215,  2216,  2222,  2222,
1063 <    2223,  2223,  2223,  2223,  2225,  2245,  2255,  2254,  2281,  2281,
1064 <    2282,  2282,  2282,  2284,  2290,  2299,  2301,  2301,  2302,  2302,
1065 <    2304,  2322,  2321,  2367,  2366,  2372,  2372,  2373,  2379,  2379,
1066 <    2380,  2380,  2380,  2380,  2382,  2388,  2397,  2400,  2400,  2401,
1067 <    2401,  2402,  2402,  2403,  2403,  2404,  2404,  2405,  2405,  2406,
1068 <    2407,  2408,  2408,  2409,  2409,  2410,  2410,  2411,  2411,  2412,
1069 <    2412,  2413,  2413,  2414,  2414,  2415,  2415,  2416,  2416,  2417,
1070 <    2417,  2418,  2418,  2419,  2420,  2420,  2421,  2422,  2423,  2423,
1071 <    2424,  2424,  2425,  2426,  2427,  2428,  2428,  2429,  2432,  2437,
1072 <    2443,  2449,  2455,  2460,  2465,  2470,  2475,  2480,  2485,  2490,
1073 <    2495,  2500,  2505,  2510,  2515,  2520,  2525,  2531,  2542,  2547,
1074 <    2552,  2557,  2562,  2567,  2570,  2575,  2578,  2583,  2588,  2593,
1075 <    2598,  2603,  2608,  2613,  2618,  2623,  2628,  2633,  2638,  2647,
1076 <    2656,  2661,  2666,  2672,  2671,  2676,  2676,  2677,  2680,  2683,
1077 <    2686,  2689,  2692,  2695,  2698,  2701,  2704,  2707,  2710,  2713,
1078 <    2716,  2719,  2722,  2725,  2728,  2731,  2734,  2740,  2739,  2744,
1079 <    2744,  2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,  2769,
1080 <    2772,  2775,  2778,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1081 <    2802,  2807,  2812,  2817,  2826,  2829,  2829,  2830,  2831,  2831,
1082 <    2832,  2832,  2833,  2833,  2834,  2835,  2835,  2836,  2837,  2837,
1083 <    2838,  2838,  2840,  2845,  2850,  2855,  2860,  2865,  2870,  2875,
1084 <    2880,  2885,  2890,  2895,  2900,  2905,  2913,  2916,  2916,  2917,
1085 <    2917,  2918,  2919,  2919,  2920,  2921,  2923,  2929,  2935,  2944,
1086 <    2958,  2964
1022 >       0,   382,   382,   383,   386,   387,   388,   389,   390,   391,
1023 >     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
1024 >     402,   403,   404,   405,   406,   407,   408,   409,   413,   413,
1025 >     414,   415,   416,   417,   418,   419,   420,   421,   424,   424,
1026 >     425,   426,   427,   428,   435,   438,   438,   439,   439,   439,
1027 >     441,   447,   454,   456,   456,   457,   458,   459,   460,   461,
1028 >     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1029 >     472,   473,   474,   477,   517,   575,   604,   612,   626,   654,
1030 >     669,   684,   694,   708,   717,   745,   773,   798,   820,   842,
1031 >     851,   853,   853,   854,   855,   856,   857,   859,   868,   877,
1032 >     890,   889,   907,   907,   908,   908,   908,   910,   916,   926,
1033 >     925,   944,   944,   945,   945,   945,   945,   945,   947,   953,
1034 >     959,   965,   986,   987,   987,   989,   989,   990,   992,   999,
1035 >     999,  1012,  1013,  1015,  1015,  1016,  1016,  1018,  1026,  1029,
1036 >    1035,  1034,  1040,  1040,  1041,  1045,  1049,  1053,  1057,  1061,
1037 >    1065,  1069,  1080,  1079,  1168,  1168,  1169,  1170,  1171,  1172,
1038 >    1173,  1174,  1175,  1176,  1177,  1178,  1179,  1180,  1182,  1188,
1039 >    1194,  1200,  1206,  1217,  1223,  1229,  1240,  1247,  1246,  1252,
1040 >    1252,  1253,  1257,  1261,  1265,  1269,  1273,  1277,  1281,  1285,
1041 >    1289,  1293,  1297,  1301,  1305,  1309,  1313,  1317,  1321,  1325,
1042 >    1329,  1333,  1337,  1344,  1343,  1349,  1349,  1350,  1354,  1358,
1043 >    1362,  1366,  1370,  1374,  1378,  1382,  1386,  1390,  1394,  1398,
1044 >    1402,  1406,  1410,  1414,  1418,  1422,  1426,  1430,  1434,  1438,
1045 >    1442,  1446,  1450,  1454,  1458,  1469,  1468,  1525,  1525,  1526,
1046 >    1527,  1528,  1529,  1530,  1531,  1532,  1533,  1534,  1535,  1536,
1047 >    1537,  1538,  1538,  1539,  1540,  1541,  1542,  1544,  1550,  1556,
1048 >    1562,  1568,  1574,  1580,  1586,  1592,  1598,  1604,  1611,  1617,
1049 >    1623,  1629,  1638,  1648,  1647,  1653,  1653,  1654,  1658,  1669,
1050 >    1668,  1675,  1674,  1679,  1679,  1680,  1684,  1688,  1694,  1694,
1051 >    1695,  1695,  1695,  1695,  1695,  1697,  1697,  1699,  1699,  1701,
1052 >    1714,  1731,  1737,  1747,  1746,  1788,  1788,  1789,  1790,  1791,
1053 >    1792,  1793,  1794,  1795,  1796,  1797,  1799,  1805,  1811,  1817,
1054 >    1829,  1828,  1834,  1834,  1835,  1839,  1843,  1847,  1851,  1855,
1055 >    1859,  1863,  1867,  1871,  1877,  1891,  1900,  1914,  1913,  1928,
1056 >    1928,  1929,  1929,  1929,  1929,  1931,  1937,  1943,  1953,  1955,
1057 >    1955,  1956,  1956,  1958,  1974,  1973,  1998,  1998,  1999,  1999,
1058 >    1999,  1999,  2001,  2007,  2027,  2026,  2032,  2032,  2033,  2037,
1059 >    2041,  2045,  2049,  2053,  2057,  2061,  2065,  2069,  2079,  2078,
1060 >    2099,  2099,  2100,  2100,  2100,  2102,  2109,  2108,  2114,  2114,
1061 >    2115,  2119,  2123,  2127,  2131,  2135,  2139,  2143,  2147,  2151,
1062 >    2161,  2160,  2232,  2232,  2233,  2234,  2235,  2236,  2237,  2238,
1063 >    2239,  2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2249,
1064 >    2255,  2261,  2267,  2280,  2293,  2299,  2305,  2309,  2316,  2315,
1065 >    2320,  2320,  2321,  2325,  2331,  2342,  2348,  2354,  2360,  2376,
1066 >    2375,  2401,  2401,  2402,  2402,  2402,  2404,  2424,  2434,  2433,
1067 >    2460,  2460,  2461,  2461,  2461,  2463,  2469,  2478,  2480,  2480,
1068 >    2481,  2481,  2483,  2501,  2500,  2523,  2523,  2524,  2524,  2524,
1069 >    2526,  2532,  2541,  2544,  2544,  2545,  2546,  2547,  2548,  2549,
1070 >    2550,  2551,  2552,  2553,  2554,  2555,  2556,  2557,  2558,  2559,
1071 >    2560,  2561,  2562,  2563,  2564,  2565,  2566,  2567,  2568,  2569,
1072 >    2570,  2571,  2572,  2573,  2574,  2575,  2576,  2577,  2578,  2579,
1073 >    2580,  2581,  2582,  2583,  2584,  2585,  2586,  2587,  2588,  2589,
1074 >    2590,  2593,  2598,  2603,  2608,  2614,  2619,  2624,  2629,  2634,
1075 >    2639,  2644,  2649,  2654,  2659,  2664,  2669,  2674,  2679,  2684,
1076 >    2690,  2695,  2700,  2705,  2710,  2715,  2720,  2725,  2728,  2733,
1077 >    2736,  2741,  2746,  2751,  2756,  2761,  2766,  2771,  2776,  2781,
1078 >    2786,  2791,  2796,  2802,  2801,  2806,  2806,  2807,  2810,  2813,
1079 >    2816,  2819,  2822,  2825,  2828,  2831,  2834,  2837,  2840,  2843,
1080 >    2846,  2849,  2852,  2855,  2858,  2861,  2864,  2867,  2870,  2876,
1081 >    2875,  2880,  2880,  2881,  2884,  2887,  2890,  2893,  2896,  2899,
1082 >    2902,  2905,  2908,  2911,  2914,  2917,  2920,  2923,  2926,  2929,
1083 >    2932,  2935,  2938,  2943,  2948,  2953,  2962,  2965,  2965,  2966,
1084 >    2967,  2968,  2969,  2970,  2971,  2972,  2973,  2974,  2975,  2976,
1085 >    2978,  2983,  2988,  2993,  2998,  3003,  3008,  3013,  3018,  3023,
1086 >    3031,  3034,  3034,  3035,  3036,  3037,  3038,  3039,  3040,  3041,
1087 >    3042,  3043,  3045,  3051,  3057,  3063,  3069,  3078,  3093,  3099
1088   };
1089   #endif
1090  
# Line 1346 | Line 1094 | static const yytype_uint16 yyrline[] =
1094   static const char *const yytname[] =
1095   {
1096    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1097 <  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1098 <  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1099 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1100 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1101 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1102 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1103 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1104 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1105 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1106 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1107 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1108 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1109 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1110 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1111 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1112 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1113 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1097 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1098 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1099 >  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1100 >  "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1101 >  "DEFAULT_FLOODCOUNT", "DEFAULT_JOIN_FLOOD_COUNT",
1102 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1103 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1104 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1105 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1106 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "HIDDEN",
1107 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1108 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB",
1109 >  "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1110 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1111 >  "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT",
1112 >  "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6",
1113 >  "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL",
1114 >  "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1115 >  "MAX_CHANNELS", "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL",
1116    "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
1117 <  "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_NONWILDCARD",
1118 <  "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE", "RANDOM_IDLE",
1119 <  "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1120 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1121 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1122 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1123 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1124 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1125 <  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1376 <  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1377 <  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1378 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1379 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1380 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1117 >  "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE",
1118 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD",
1119 >  "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1120 >  "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR",
1121 >  "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR",
1122 >  "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD",
1123 >  "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE",
1124 >  "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN",
1125 >  "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1126    "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS",
1127 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1128 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1129 <  "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1130 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1131 <  "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1132 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1133 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1134 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1135 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1136 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1137 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1138 <  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1139 <  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1140 <  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1141 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1142 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1143 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1144 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1145 <  "serverinfo_item", "serverinfo_ssl_client_method",
1146 <  "serverinfo_ssl_server_method", "client_method_types",
1147 <  "client_method_type_item", "server_method_types",
1148 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1127 >  "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO", "SHORT_MOTD",
1128 >  "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1129 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1130 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1131 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1132 >  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1133 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1134 >  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1135 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1136 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1137 >  "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1138 >  "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1139 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1140 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1141 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1142 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1143 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1144 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1145 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1146 >  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1147 >  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1148 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1149 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1150    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1151 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1151 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1152 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1153    "serverinfo_description", "serverinfo_network_name",
1154    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1155 <  "serverinfo_max_clients", "serverinfo_max_nick_length",
1155 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1156    "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1157    "admin_items", "admin_item", "admin_name", "admin_email",
1158 <  "admin_description", "logging_entry", "logging_items", "logging_item",
1159 <  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1158 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1159 >  "motd_mask", "motd_file", "pseudo_entry", "$@2", "pseudo_items",
1160 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1161 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1162 >  "logging_use_logging", "logging_file_entry", "$@3", "logging_file_items",
1163    "logging_file_item", "logging_file_name", "logging_file_size",
1164 <  "logging_file_type", "$@2", "logging_file_type_items",
1165 <  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1166 <  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1167 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1168 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1169 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1170 <  "class_items", "class_item", "class_name", "class_ping_time",
1171 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1164 >  "logging_file_type", "$@4", "logging_file_type_items",
1165 >  "logging_file_type_item", "oper_entry", "$@5", "oper_items", "oper_item",
1166 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1167 >  "oper_encrypted", "oper_rsa_public_key_file",
1168 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1169 >  "oper_class", "oper_umodes", "$@6", "oper_umodes_items",
1170 >  "oper_umodes_item", "oper_flags", "$@7", "oper_flags_items",
1171 >  "oper_flags_item", "class_entry", "$@8", "class_items", "class_item",
1172 >  "class_name", "class_ping_time", "class_number_per_ip",
1173 >  "class_connectfreq", "class_max_channels", "class_max_number",
1174    "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1175    "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1176    "class_number_per_cidr", "class_min_idle", "class_max_idle",
1177 <  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1178 <  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1177 >  "class_flags", "$@9", "class_flags_items", "class_flags_item",
1178 >  "listen_entry", "$@10", "listen_flags", "$@11", "listen_flags_items",
1179    "listen_flags_item", "listen_items", "listen_item", "listen_port",
1180 <  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1181 <  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1182 <  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1180 >  "$@12", "port_items", "port_item", "listen_address", "listen_host",
1181 >  "auth_entry", "$@13", "auth_items", "auth_item", "auth_user",
1182 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@14",
1183    "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1184 <  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1185 <  "resv_reason", "resv_channel", "resv_nick", "service_entry",
1186 <  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1184 >  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1185 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1186 >  "service_items", "service_item", "service_name", "shared_entry", "$@16",
1187    "shared_items", "shared_item", "shared_name", "shared_user",
1188 <  "shared_type", "$@15", "shared_types", "shared_type_item",
1189 <  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1190 <  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1191 <  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1188 >  "shared_type", "$@17", "shared_types", "shared_type_item",
1189 >  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1190 >  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1191 >  "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1192    "connect_host", "connect_vhost", "connect_send_password",
1193 <  "connect_accept_password", "connect_port", "connect_aftype",
1194 <  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1195 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1196 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1197 <  "kill_type", "$@21", "kill_type_items", "kill_type_item", "kill_items",
1198 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1193 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1194 >  "connect_port", "connect_aftype", "connect_flags", "$@21",
1195 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1196 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1197 >  "connect_ssl_cipher_list", "kill_entry", "$@22", "kill_items",
1198 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@23",
1199    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1200 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1449 <  "gecos_flags", "$@24", "gecos_flags_items", "gecos_flags_item",
1200 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@24",
1201    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1202 <  "general_entry", "general_items", "general_item", "general_max_watch",
1203 <  "general_gline_enable", "general_gline_duration",
1204 <  "general_gline_request_duration", "general_gline_min_cidr",
1205 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1206 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1207 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1208 <  "general_failed_oper_notice", "general_anti_nick_flood",
1209 <  "general_max_nick_time", "general_max_nick_changes",
1210 <  "general_max_accept", "general_anti_spam_exit_message_time",
1211 <  "general_ts_warn_delta", "general_ts_max_delta",
1212 <  "general_havent_read_conf", "general_invisible_on_connect",
1213 <  "general_warn_no_nline", "general_stats_e_disabled",
1214 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1202 >  "general_entry", "general_items", "general_item", "general_away_count",
1203 >  "general_away_time", "general_max_watch", "general_cycle_on_host_change",
1204 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1205 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1206 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1207 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1208 >  "general_anti_nick_flood", "general_max_nick_time",
1209 >  "general_max_nick_changes", "general_max_accept",
1210 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1211 >  "general_ts_max_delta", "general_invisible_on_connect",
1212 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1213 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1214 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1215    "general_stats_k_oper_only", "general_stats_i_oper_only",
1216    "general_pace_wait", "general_caller_id_wait",
1217    "general_opers_bypass_callerid", "general_pace_wait_simple",
1218 <  "general_short_motd", "general_no_oper_flood",
1219 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1220 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1470 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1471 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1218 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1219 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1220 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1221    "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1222    "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1223    "general_min_nonwildcard_simple", "general_default_floodcount",
1224    "channel_entry", "channel_items", "channel_item",
1225 <  "channel_disable_fake_channels", "channel_restrict_channels",
1226 <  "channel_knock_delay", "channel_knock_delay_channel",
1227 <  "channel_max_chans_per_user", "channel_max_chans_per_oper",
1228 <  "channel_quiet_on_ban", "channel_max_bans",
1229 <  "channel_default_split_user_count", "channel_default_split_server_count",
1230 <  "channel_no_create_on_split", "channel_no_join_on_split",
1231 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1232 <  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1233 <  "serverhide_hide_servers", "serverhide_hidden_name",
1234 <  "serverhide_links_delay", "serverhide_hidden",
1486 <  "serverhide_hide_server_ips", YY_NULL
1225 >  "channel_disable_fake_channels", "channel_invite_client_count",
1226 >  "channel_invite_client_time", "channel_knock_client_count",
1227 >  "channel_knock_client_time", "channel_knock_delay_channel",
1228 >  "channel_max_channels", "channel_max_bans",
1229 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1230 >  "serverhide_entry", "serverhide_items", "serverhide_item",
1231 >  "serverhide_flatten_links", "serverhide_disable_remote_commands",
1232 >  "serverhide_hide_servers", "serverhide_hide_services",
1233 >  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1234 >  "serverhide_hide_server_ips", YY_NULLPTR
1235   };
1236   #endif
1237  
1238   # ifdef YYPRINT
1239 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1240 <   token YYLEX-NUM.  */
1239 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1240 >   (internal) symbol number NUM (which must be that of a token).  */
1241   static const yytype_uint16 yytoknum[] =
1242   {
1243         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1514 | Line 1262 | static const yytype_uint16 yytoknum[] =
1262       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1263       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1264       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1265 <     475,   476,    59,   125,   123,    61,    44
1265 >     475,   476,   477,   478,   479,   480,    59,   125,   123,    61,
1266 >      44,    58
1267   };
1268   # endif
1269  
1270 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1522 < static const yytype_uint16 yyr1[] =
1523 < {
1524 <       0,   227,   228,   228,   229,   229,   229,   229,   229,   229,
1525 <     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1526 <     229,   229,   229,   229,   229,   229,   230,   230,   231,   231,
1527 <     231,   231,   231,   231,   231,   231,   232,   232,   233,   233,
1528 <     233,   233,   234,   235,   235,   236,   236,   236,   237,   238,
1529 <     239,   240,   240,   241,   241,   241,   241,   241,   241,   241,
1530 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
1531 <     241,   242,   243,   244,   244,   245,   245,   246,   246,   247,
1532 <     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1533 <     257,   258,   259,   260,   261,   262,   263,   264,   264,   265,
1534 <     265,   265,   265,   266,   267,   268,   269,   270,   270,   271,
1535 <     271,   271,   272,   274,   273,   275,   275,   276,   276,   276,
1536 <     276,   277,   278,   278,   280,   279,   281,   281,   282,   282,
1537 <     282,   282,   282,   282,   282,   284,   283,   285,   285,   286,
1538 <     286,   286,   286,   286,   286,   286,   286,   286,   287,   288,
1539 <     289,   290,   291,   292,   294,   293,   295,   295,   296,   296,
1540 <     296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
1541 <     296,   296,   296,   296,   296,   296,   296,   296,   298,   297,
1542 <     299,   299,   300,   300,   300,   300,   300,   300,   300,   300,
1543 <     300,   300,   300,   300,   300,   300,   300,   300,   300,   300,
1544 <     300,   302,   301,   303,   303,   304,   304,   304,   304,   304,
1545 <     304,   304,   304,   304,   304,   304,   304,   304,   304,   304,
1546 <     304,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1547 <     313,   314,   315,   316,   317,   318,   319,   321,   320,   322,
1548 <     322,   323,   323,   325,   324,   327,   326,   328,   328,   329,
1549 <     329,   329,   330,   330,   331,   331,   331,   331,   331,   333,
1550 <     332,   334,   334,   335,   335,   336,   337,   339,   338,   340,
1551 <     340,   341,   341,   341,   341,   341,   341,   341,   341,   341,
1552 <     342,   343,   344,   345,   347,   346,   348,   348,   349,   349,
1553 <     349,   349,   349,   349,   349,   349,   349,   349,   350,   351,
1554 <     352,   354,   353,   355,   355,   356,   356,   356,   356,   357,
1555 <     358,   359,   360,   361,   361,   362,   362,   363,   365,   364,
1556 <     366,   366,   367,   367,   367,   367,   368,   369,   371,   370,
1557 <     372,   372,   373,   373,   373,   373,   373,   373,   373,   373,
1558 <     373,   373,   375,   374,   376,   376,   377,   377,   377,   378,
1559 <     380,   379,   381,   381,   382,   382,   382,   382,   382,   382,
1560 <     382,   382,   382,   382,   384,   383,   385,   385,   386,   386,
1561 <     386,   386,   386,   386,   386,   386,   386,   386,   386,   386,
1562 <     386,   386,   387,   388,   389,   390,   391,   392,   393,   393,
1563 <     395,   394,   396,   396,   397,   397,   398,   399,   400,   401,
1564 <     402,   404,   403,   406,   405,   407,   407,   408,   409,   409,
1565 <     410,   410,   410,   410,   411,   412,   414,   413,   415,   415,
1566 <     416,   416,   416,   417,   418,   419,   420,   420,   421,   421,
1567 <     422,   424,   423,   426,   425,   427,   427,   428,   429,   429,
1568 <     430,   430,   430,   430,   431,   432,   433,   434,   434,   435,
1569 <     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1570 <     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1571 <     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1572 <     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1573 <     435,   435,   435,   435,   435,   435,   435,   435,   436,   437,
1574 <     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
1575 <     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
1576 <     458,   459,   460,   461,   461,   462,   462,   463,   464,   465,
1577 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1578 <     476,   477,   478,   480,   479,   481,   481,   482,   482,   482,
1579 <     482,   482,   482,   482,   482,   482,   482,   482,   482,   482,
1580 <     482,   482,   482,   482,   482,   482,   482,   484,   483,   485,
1581 <     485,   486,   486,   486,   486,   486,   486,   486,   486,   486,
1582 <     486,   486,   486,   486,   486,   486,   486,   486,   486,   486,
1583 <     486,   487,   488,   489,   490,   491,   491,   492,   492,   492,
1584 <     492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
1585 <     492,   492,   493,   494,   495,   496,   497,   498,   499,   500,
1586 <     501,   502,   503,   504,   505,   506,   507,   508,   508,   509,
1587 <     509,   509,   509,   509,   509,   509,   510,   511,   512,   513,
1588 <     514,   515
1589 < };
1270 > #define YYPACT_NINF -719
1271  
1272 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1273 < static const yytype_uint8 yyr2[] =
1272 > #define yypact_value_is_default(Yystate) \
1273 >  (!!((Yystate) == (-719)))
1274 >
1275 > #define YYTABLE_NINF -130
1276 >
1277 > #define yytable_value_is_error(Yytable_value) \
1278 >  0
1279 >
1280 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1281 >     STATE-NUM.  */
1282 > static const yytype_int16 yypact[] =
1283   {
1284 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1285 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1286 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1287 <       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1288 <       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1289 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1290 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1291 <       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1292 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1293 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1294 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1295 <       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1296 <       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1297 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1298 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1299 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
1302 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1304 <       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1306 <       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1307 <       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1308 <       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1309 <       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1310 <       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1312 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1314 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1315 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1316 <       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1317 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1318 <       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1319 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1320 <       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1321 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1322 <       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1323 <       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1324 <       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1325 <       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
1326 <       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
1327 <       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1328 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1330 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1332 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1334 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1335 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1336 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1337 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1338 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1343 <       1,     4,     4,     4,     5,     2,     1,     1,     1,     1,
1344 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1347 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1348 <       4,     4
1284 >    -719,   673,  -719,  -160,  -224,  -212,  -719,  -719,  -719,  -206,
1285 >    -719,  -203,  -719,  -719,  -719,  -196,  -719,  -719,  -719,  -187,
1286 >    -171,  -719,  -164,  -719,  -155,  -719,  -719,  -719,  -719,  -719,
1287 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1288 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1289 >    -719,   318,   918,  -148,  -143,  -141,     8,   -86,   403,   -77,
1290 >     -69,   -61,     2,   -39,   -26,   -23,   758,   536,   -20,    30,
1291 >     -15,    12,    24,  -178,   -33,    15,    33,    41,  -719,  -719,
1292 >    -719,  -719,  -719,    40,    45,    53,    56,    58,    86,    94,
1293 >      97,   116,   119,   192,  -719,  -719,  -719,  -719,  -719,  -719,
1294 >    -719,  -719,  -719,  -719,  -719,   714,   530,    22,  -719,   125,
1295 >      14,  -719,  -719,   220,  -719,   127,   128,   129,   130,   131,
1296 >     132,   134,   136,   137,   138,   144,   146,   147,   148,   150,
1297 >     152,   154,   157,   159,   160,   161,   162,   164,   166,   168,
1298 >    -719,  -719,   170,   171,   174,   176,   178,   182,   186,   191,
1299 >     193,   195,   200,   201,   204,   212,   213,   214,   217,   218,
1300 >      20,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1301 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1302 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1303 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1304 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,   308,    38,   334,
1305 >      54,   219,   221,     5,  -719,  -719,  -719,    16,   287,   276,
1306 >    -719,   222,   225,   226,   227,   228,   229,   232,   233,   253,
1307 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   108,
1308 >     234,   236,   237,   238,   239,   241,   242,   245,   246,   247,
1309 >     248,   249,   250,   254,   258,   260,   262,    18,  -719,  -719,
1310 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1311 >    -719,  -719,  -719,  -719,  -719,  -719,   122,   117,   266,    19,
1312 >    -719,  -719,  -719,   278,   210,  -719,   271,    52,  -719,  -719,
1313 >      37,  -719,   251,   301,   381,   277,  -719,   274,   396,   296,
1314 >     399,   396,   405,   396,   396,   408,   412,   283,  -719,   293,
1315 >     292,   294,   297,  -719,   299,   300,   303,   305,   309,   310,
1316 >     311,   315,   321,   322,   323,   324,   326,    74,  -719,  -719,
1317 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1318 >    -719,  -719,  -719,  -719,  -719,  -719,   338,   337,   340,   342,
1319 >     343,   353,   355,  -719,   357,   358,   359,   360,   364,   365,
1320 >     366,   142,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1321 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   367,   368,
1322 >      62,  -719,  -719,  -719,   402,   341,  -719,  -719,   369,   371,
1323 >      87,  -719,  -719,  -719,   339,   396,   495,   396,   396,   394,
1324 >     501,   400,   503,   505,   509,   410,   411,   413,   396,   514,
1325 >     517,   521,   524,   396,   525,   527,   529,   541,   428,   419,
1326 >     423,   445,   396,   396,   446,   448,   449,  -194,  -184,   450,
1327 >     452,   453,   454,   557,   396,   457,   396,   396,   459,   444,
1328 >    -719,   465,   443,   447,  -719,   451,   456,   464,   467,   468,
1329 >     187,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1330 >    -719,   469,   470,    64,  -719,  -719,  -719,   474,   475,   476,
1331 >    -719,   477,  -719,     9,  -719,  -719,  -719,  -719,  -719,   555,
1332 >     587,   482,  -719,   483,   481,   485,    48,  -719,  -719,  -719,
1333 >     486,   489,   490,  -719,   492,   499,   500,   506,   508,  -719,
1334 >     511,   512,   145,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1335 >    -719,  -719,  -719,  -719,  -719,   498,   513,   516,   519,   151,
1336 >    -719,  -719,  -719,  -719,   535,   544,   545,   631,   546,   547,
1337 >     550,   396,   538,  -719,  -719,   655,   642,   560,   651,   667,
1338 >     671,   658,   660,   661,   662,   663,   665,   668,   669,   670,
1339 >     672,   679,   561,  -719,   567,   576,  -719,   114,  -719,  -719,
1340 >    -719,  -719,   599,   585,  -719,   588,   591,   589,   590,   594,
1341 >     595,   102,  -719,  -719,  -719,  -719,  -719,   700,   600,  -719,
1342 >     601,   596,  -719,   602,    51,  -719,  -719,  -719,  -719,   603,
1343 >     604,   608,  -719,   609,   442,   610,   611,   616,   617,   620,
1344 >     623,   627,   633,   634,  -719,  -719,   722,   756,   396,   636,
1345 >     760,   762,   763,   396,   764,   769,   396,   754,   770,   771,
1346 >     396,   773,   773,   654,  -719,  -719,   761,   -81,   765,   674,
1347 >     766,   767,   666,   772,   780,   778,   782,   783,   785,   788,
1348 >     683,  -719,   790,   791,   687,  -719,   688,  -719,   795,   797,
1349 >     692,  -719,   697,   698,   699,   702,   707,   710,   713,   715,
1350 >     720,   723,   725,   726,   728,   729,   730,   732,   733,   734,
1351 >     738,   739,   740,   741,   743,   744,   745,   768,   678,   746,
1352 >     748,   749,   752,   753,   755,   757,   759,   774,   775,   776,
1353 >     777,   779,   781,   784,   786,   787,   789,   792,   793,  -719,
1354 >    -719,   806,   796,   751,   862,   878,   866,   867,   868,   794,
1355 >    -719,   872,   873,   798,  -719,  -719,   874,   875,   799,   890,
1356 >     800,  -719,   801,   803,  -719,  -719,   879,   886,   804,  -719,
1357 >    -719,   888,   808,   802,   889,   891,   894,   897,   813,   805,
1358 >     902,   903,   807,  -719,  -719,   905,   912,   915,   810,  -719,
1359 >     811,   812,   814,   815,   816,   817,   818,   819,  -719,   820,
1360 >     821,   822,   823,   824,   825,   826,   827,   828,   829,   830,
1361 >     831,   832,   833,   834,   835,   836,  -719,  -719,   919,   837,
1362 >     838,  -719,   839,  -719,   209,  -719,   943,   947,   948,   949,
1363 >     844,  -719,   845,  -719,  -719,   952,   846,   953,   848,  -719,
1364 >    -719,  -719,  -719,  -719,   396,   396,   396,   396,   396,   396,
1365 >     396,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1366 >    -719,  -719,   850,   851,   852,   -37,   853,   854,   855,   856,
1367 >     857,   858,   859,   860,   861,   863,   864,    47,   865,   869,
1368 >    -719,   870,   871,   876,   877,   880,   881,   882,     3,   883,
1369 >     884,   885,   887,   892,   893,   895,  -719,   896,   898,  -719,
1370 >    -719,   899,   900,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1371 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1372 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1373 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1374 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -193,
1375 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1376 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1377 >    -719,  -719,  -719,  -190,  -719,  -719,  -719,  -719,  -719,  -719,
1378 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1379 >    -719,  -719,  -719,  -719,  -719,   901,   904,   425,   906,   907,
1380 >     908,   909,   910,  -719,   911,   913,  -719,   914,   916,   126,
1381 >     676,   917,  -719,  -719,  -719,  -719,   920,   922,  -719,   923,
1382 >     924,   478,   925,   926,   927,   928,   929,   727,   930,   931,
1383 >    -719,   932,   933,   934,  -719,  -719,  -719,  -719,  -719,  -719,
1384 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1385 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1386 >     935,   543,  -719,  -719,   936,   937,   938,  -719,   105,  -719,
1387 >    -719,  -719,  -719,   939,   942,   944,   945,  -719,  -719,   946,
1388 >     562,   950,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1389 >    -719,  -719,  -719,  -719,  -719,  -180,  -719,  -719,  -719,  -719,
1390 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   773,   773,
1391 >     773,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1392 >    -719,  -719,  -719,  -719,  -147,  -719,  -719,  -719,  -719,  -719,
1393 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   768,  -719,
1394 >     678,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1395 >    -719,  -719,  -719,   -32,  -719,  -719,  -719,  -719,  -719,  -719,
1396 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,    -4,  -719,   982,
1397 >     890,   951,  -719,  -719,  -719,  -719,  -719,  -719,   954,  -719,
1398 >     955,   956,  -719,  -719,   957,  -719,  -719,  -719,   958,  -719,
1399 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1400 >    -719,    -3,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1401 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1402 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1403 >      29,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1404 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,    66,  -719,
1405 >    -719,   972,   -71,   940,   964,  -719,  -719,  -719,  -719,  -719,
1406 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1407 >    -719,   107,  -719,  -719,  -719,   -37,  -719,  -719,  -719,  -719,
1408 >       3,  -719,  -719,  -719,   425,  -719,   126,  -719,  -719,  -719,
1409 >     967,   966,   973,   970,   974,  -719,   478,  -719,   727,  -719,
1410 >     543,   965,   968,   969,   317,  -719,  -719,   562,  -719,  -719,
1411 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1412 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1413 >    -719,   110,  -719,  -719,  -719,   317,  -719
1414   };
1415  
1416 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1417 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1418 <   means the default is an error.  */
1416 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1417 >     Performed when YYTABLE does not specify something else to do.  Zero
1418 >     means the default is an error.  */
1419   static const yytype_uint16 yydefact[] =
1420   {
1421 <       2,     0,     1,     0,     0,     0,   201,   364,   416,     0,
1422 <     431,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1423 <       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1424 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1425 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1426 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1672 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673 <       0,     0,    98,    99,   101,   100,   611,     0,     0,     0,
1674 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 <       0,     0,   596,   610,   606,   598,   599,   600,   601,   602,
1676 <     597,   603,   604,   605,   607,   608,   609,     0,     0,     0,
1677 <     429,     0,     0,   427,   428,     0,   497,     0,     0,     0,
1421 >       2,     0,     1,     0,     0,     0,   235,   400,   448,     0,
1422 >     463,     0,   303,   439,   279,     0,   100,   152,   337,     0,
1423 >       0,   378,     0,   109,     0,   354,     3,    23,    11,     4,
1424 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1425 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1426 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1428 +       0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
1429 +      95,    94,   629,     0,     0,     0,     0,     0,     0,     0,
1430 +       0,     0,     0,     0,   618,   628,   620,   621,   622,   623,
1431 +     624,   625,   619,   626,   627,     0,     0,     0,   461,     0,
1432 +       0,   459,   460,     0,   520,     0,     0,     0,     0,     0,
1433         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680       0,     0,     0,     0,     0,   567,     0,   543,     0,     0,
1434         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1435 <       0,     0,     0,     0,     0,     0,   448,   495,   489,   490,
1683 <     491,   492,   493,   488,   459,   449,   450,   483,   451,   452,
1684 <     453,   454,   455,   456,   457,   458,   485,   460,   461,   494,
1685 <     463,   468,   464,   466,   465,   478,   479,   467,   469,   470,
1686 <     471,   472,   462,   474,   475,   476,   496,   486,   487,   484,
1687 <     477,   473,   481,   482,   480,     0,     0,     0,     0,     0,
1688 <       0,   108,   109,   110,     0,     0,     0,     0,     0,    44,
1689 <      45,    46,     0,     0,   635,     0,     0,     0,     0,     0,
1690 <       0,     0,   628,   629,   630,   633,   631,   632,   634,     0,
1435 >     589,   563,     0,     0,     0,     0,     0,     0,     0,     0,
1436         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1437 <       0,     0,     0,     0,     0,     0,     0,     0,    52,    67,
1438 <      68,    66,    63,    62,    69,    53,    65,    56,    57,    58,
1439 <      54,    64,    59,    60,    61,    55,     0,     0,   316,     0,
1440 <       0,   314,   315,   102,     0,     0,     0,     0,    97,     0,
1437 >       0,   474,   475,   476,   518,   519,   513,   514,   515,   516,
1438 >     512,   486,   477,   478,   479,   480,   481,   482,   483,   484,
1439 >     485,   487,   488,   517,   492,   493,   494,   495,   491,   490,
1440 >     496,   503,   504,   497,   498,   499,   489,   501,   510,   511,
1441 >     508,   509,   502,   500,   506,   507,   505,     0,     0,     0,
1442 >       0,     0,     0,     0,    46,    47,    48,     0,     0,     0,
1443 >     651,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444 >     642,   643,   644,   645,   646,   649,   647,   648,   650,     0,
1445         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446 <       0,     0,     0,     0,   595,     0,     0,     0,     0,   237,
1446 >       0,     0,     0,     0,     0,     0,     0,     0,    54,    69,
1447 >      66,    64,    70,    71,    65,    55,    68,    58,    59,    60,
1448 >      56,    67,    61,    62,    63,    57,     0,     0,     0,     0,
1449 >     124,   125,   126,     0,     0,   352,     0,     0,   350,   351,
1450 >       0,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1451 >       0,     0,     0,     0,     0,     0,     0,     0,   617,     0,
1452 >       0,     0,     0,   273,     0,     0,     0,     0,     0,     0,
1453 >       0,     0,     0,     0,     0,     0,     0,     0,   238,   239,
1454 >     242,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1455 >     240,   241,   243,   253,   254,   255,     0,     0,     0,     0,
1456 >       0,     0,     0,   428,     0,     0,     0,     0,     0,     0,
1457 >       0,     0,   403,   404,   405,   406,   407,   408,   409,   411,
1458 >     410,   413,   417,   414,   415,   416,   412,   454,     0,     0,
1459 >       0,   451,   452,   453,     0,     0,   458,   469,     0,     0,
1460 >       0,   466,   467,   468,     0,     0,     0,     0,     0,     0,
1461         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1699       0,     0,     0,   204,   205,   208,   210,   211,   212,   213,
1700     214,   215,   216,   217,   206,   207,   209,   218,   219,   220,
1701       0,     0,     0,     0,     0,   390,     0,     0,     0,     0,
1702       0,     0,     0,     0,     0,   367,   368,   369,   370,   371,
1703     372,   374,   373,   376,   380,   377,   378,   379,   375,   422,
1704       0,     0,     0,   419,   420,   421,     0,     0,   426,   443,
1705       0,     0,   433,   442,     0,   439,   440,   441,     0,     0,
1462         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +     473,     0,     0,     0,   320,     0,     0,     0,     0,     0,
1466 +       0,   306,   307,   308,   309,   314,   310,   311,   312,   313,
1467 +     445,     0,     0,     0,   442,   443,   444,     0,     0,     0,
1468 +     281,     0,   291,     0,   289,   290,   292,   293,    49,     0,
1469 +       0,     0,    45,     0,     0,     0,     0,   103,   104,   105,
1470 +       0,     0,     0,   203,     0,     0,     0,     0,     0,   177,
1471 +       0,     0,     0,   155,   156,   157,   158,   159,   162,   163,
1472 +     164,   165,   161,   160,   166,     0,     0,     0,     0,     0,
1473 +     340,   341,   342,   343,     0,     0,     0,     0,     0,     0,
1474 +       0,     0,     0,   641,    72,     0,     0,     0,     0,     0,
1475         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1476 <       0,     0,     0,     0,     0,     0,     0,   447,     0,     0,
1477 <       0,   284,     0,     0,     0,     0,     0,     0,   270,   271,
1478 <     272,   273,   278,   274,   275,   276,   277,   413,     0,   403,
1479 <       0,   412,     0,   409,   410,   411,     0,   245,     0,     0,
1480 <       0,   255,     0,   253,   254,   256,   257,   111,     0,     0,
1481 <     107,     0,    47,     0,     0,     0,    43,     0,     0,     0,
1716 <     178,     0,     0,     0,   154,     0,     0,   138,   139,   140,
1717 <     141,   144,   145,   143,   142,   146,     0,     0,     0,     0,
1718 <       0,   304,   305,   306,   307,     0,     0,     0,     0,     0,
1719 <       0,     0,   627,    70,     0,     0,     0,     0,     0,     0,
1476 >       0,     0,     0,    53,     0,     0,   386,     0,   381,   382,
1477 >     383,   127,     0,     0,   123,     0,     0,     0,     0,     0,
1478 >       0,     0,   112,   113,   115,   114,   116,     0,     0,   349,
1479 >       0,     0,   364,     0,     0,   357,   358,   359,   360,     0,
1480 >       0,     0,    90,     0,    28,     0,     0,     0,     0,     0,
1481 >       0,     0,     0,     0,   616,   256,     0,     0,     0,     0,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483 <       0,     0,    51,     0,     0,   328,     0,     0,   321,   322,
1722 <     323,   324,     0,     0,   350,     0,   345,   346,   347,     0,
1723 <       0,   313,     0,     0,     0,    96,     0,     0,     0,    26,
1483 >       0,     0,     0,     0,   237,   418,     0,     0,     0,     0,
1484         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485 <       0,   594,   221,     0,     0,     0,     0,     0,     0,     0,
1485 >       0,   402,     0,     0,     0,   450,     0,   457,     0,     0,
1486 >       0,   465,     0,     0,     0,     0,     0,     0,     0,     0,
1487         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1727     203,   381,     0,     0,     0,     0,     0,     0,     0,     0,
1728       0,     0,     0,     0,     0,     0,   366,     0,     0,     0,
1729     418,     0,   425,     0,     0,     0,     0,   438,     0,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1490 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   472,
1491 +     315,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 +     305,     0,     0,     0,   441,   294,     0,     0,     0,     0,
1493 +       0,   288,     0,     0,    44,   106,     0,     0,     0,   102,
1494 +     167,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1495 +       0,     0,     0,   154,   344,     0,     0,     0,     0,   339,
1496 +       0,     0,     0,     0,     0,     0,     0,     0,   640,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1498 +       0,     0,     0,     0,     0,     0,    52,   384,     0,     0,
1499 +       0,   380,     0,   122,     0,   117,     0,     0,     0,     0,
1500 +       0,   111,     0,   348,   361,     0,     0,     0,     0,   356,
1501 +      99,    98,    97,   638,    28,    28,    28,    28,    28,    28,
1502 +      28,    30,    29,   639,   630,   631,   632,   633,   634,   635,
1503 +     637,   636,     0,     0,     0,     0,     0,     0,     0,     0,
1504 +       0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
1505 +     236,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506 +       0,     0,     0,     0,     0,     0,   401,     0,     0,   449,
1507 +     462,     0,     0,   464,   533,   537,   521,   522,   552,   524,
1508 +     615,   560,   525,   526,   557,   532,   531,   540,   530,   527,
1509 +     528,   536,   535,   534,   558,   523,   613,   614,   556,   599,
1510 +     593,   609,   594,   595,   596,   604,   612,   597,   606,   610,
1511 +     600,   611,   601,   605,   598,   608,   603,   602,   607,     0,
1512 +     592,   572,   573,   574,   567,   585,   568,   569,   570,   580,
1513 +     588,   571,   582,   586,   576,   587,   577,   581,   575,   584,
1514 +     579,   578,   583,     0,   566,   553,   551,   554,   559,   555,
1515 +     542,   549,   550,   547,   548,   543,   544,   545,   546,   561,
1516 +     562,   529,   539,   538,   541,     0,     0,     0,     0,     0,
1517 +       0,     0,     0,   304,     0,     0,   440,     0,     0,     0,
1518 +     299,   295,   298,   280,    50,    51,     0,     0,   101,     0,
1519         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1520 <       0,     0,     0,     0,     0,     0,     0,     0,   446,   279,
1521 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1522 <       0,     0,     0,     0,   408,   258,     0,     0,     0,     0,
1523 <       0,   252,     0,   106,     0,     0,     0,    42,   147,     0,
1524 <       0,     0,     0,     0,     0,     0,     0,     0,   137,   308,
1525 <       0,     0,     0,     0,   303,     0,     0,     0,     0,     0,
1526 <       0,   626,     0,     0,     0,     0,     0,     0,     0,     0,
1527 <       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1528 <       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1529 <       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1530 <     104,   103,   621,   620,   612,    26,    26,    26,    26,    26,
1531 <      26,    26,    28,    27,   614,   615,   619,   617,   616,   622,
1532 <     623,   624,   625,   618,   613,     0,     0,     0,     0,     0,
1533 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
1534 <       0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
1535 <       0,     0,     0,     0,     0,     0,     0,   365,     0,     0,
1536 <     417,   430,     0,     0,     0,   432,   510,   514,   528,   593,
1537 <     541,   508,   535,   538,   509,   500,   499,   501,   502,   503,
1538 <     517,   506,   507,   518,   505,   513,   512,   511,   536,   498,
1539 <     591,   592,   532,   529,   578,   571,   588,   589,   572,   573,
1540 <     574,   575,   583,   576,   586,   590,   579,   584,   580,   585,
1541 <     577,   582,   581,   587,     0,   570,   534,   553,   547,   564,
1542 <     565,   548,   549,   550,   551,   559,   552,   562,   566,   555,
1543 <     560,   556,   561,   554,   558,   557,   563,     0,   546,   527,
1544 <     530,   540,   504,   531,   520,   525,   526,   523,   524,   521,
1545 <     522,   516,   515,   539,   542,   533,   537,   519,     0,     0,
1546 <       0,     0,     0,     0,     0,     0,   268,     0,     0,     0,
1547 <     402,     0,     0,     0,   263,   259,   262,   244,   112,     0,
1548 <       0,   124,     0,     0,   116,   117,   119,   118,    48,    49,
1549 <       0,     0,     0,     0,     0,     0,     0,     0,   136,     0,
1550 <       0,     0,   302,   636,   640,   638,   641,   637,   639,    87,
1765 <      95,    93,    94,    85,    89,    88,    82,    81,    83,    71,
1766 <       0,    72,     0,    86,    84,    92,    90,    91,     0,     0,
1767 <       0,   319,     0,     0,   343,   317,    29,    30,    31,    32,
1768 <      33,    34,    35,   232,   233,   225,   241,   242,     0,   240,
1769 <     227,   229,   228,   226,   235,   236,   222,   234,   224,   223,
1770 <      36,    36,    36,    38,    37,   230,   231,   386,   388,   389,
1771 <     399,   396,   394,   395,     0,   393,   383,   397,   398,   382,
1772 <     387,   385,   400,   384,   423,   424,   444,   445,   437,     0,
1773 <     436,   568,     0,   544,     0,   282,   283,   292,   289,   294,
1774 <     291,   290,   297,   293,   295,   288,   296,     0,   287,   281,
1775 <     300,   299,   298,   280,   415,   407,     0,   406,   414,   250,
1776 <     251,   249,     0,   248,   266,   265,     0,     0,     0,   120,
1777 <       0,     0,     0,     0,   115,   153,   151,   193,   190,   189,
1778 <     182,   184,   200,   194,   197,   192,   183,   198,   186,   195,
1779 <     199,   187,   196,   191,   185,   188,     0,   181,   148,   150,
1780 <     152,   164,   158,   175,   176,   159,   160,   161,   162,   170,
1781 <     163,   173,   177,   166,   171,   167,   172,   165,   169,   168,
1782 <     174,     0,   157,   149,   310,   311,   309,    73,    77,   326,
1783 <     332,   338,   341,   334,   340,   335,   339,   337,   333,   336,
1784 <       0,   331,   327,   349,   354,   360,   363,   356,   362,   357,
1785 <     361,   359,   355,   358,     0,   353,   238,     0,    39,    40,
1786 <      41,   391,     0,   434,     0,   569,   545,   285,     0,   404,
1787 <       0,   246,     0,   264,   261,   260,     0,     0,     0,     0,
1788 <     114,   179,     0,   155,     0,   329,     0,   351,     0,   239,
1789 <     392,   435,   286,   405,   247,   121,   130,   133,   132,   129,
1790 <     134,   131,   128,     0,   127,   123,   122,   180,   156,   330,
1791 <     352,   125,     0,   126
1792 < };
1793 <
1794 < /* YYDEFGOTO[NTERM-NUM].  */
1795 < static const yytype_int16 yydefgoto[] =
1796 < {
1797 <      -1,     1,    24,   792,   793,  1043,  1044,    25,   228,   229,
1798 <     230,   231,    26,   267,   268,   269,   270,   754,   755,   758,
1799 <     759,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1800 <     280,   281,   282,   283,   284,   285,    27,    71,    72,    73,
1801 <      74,    75,    28,   220,   221,   222,   223,   224,   963,   964,
1802 <     965,   966,   967,  1111,  1243,  1244,    29,    60,   506,   507,
1803 <     508,   509,   510,   511,   512,   513,   514,   725,  1161,  1162,
1804 <     515,   721,  1136,  1137,    30,    49,   332,   333,   334,   335,
1805 <     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
1806 <     346,   347,   348,   349,   596,  1028,  1029,    31,    57,   481,
1807 <     706,  1102,  1103,   482,   483,   484,  1108,   955,   956,   485,
1808 <     486,    32,    55,   457,   458,   459,   460,   461,   462,   463,
1809 <     692,  1087,  1088,   464,   465,   466,    33,    61,   520,   521,
1810 <     522,   523,   524,    34,   290,   291,   292,    35,    64,   557,
1811 <     558,   559,   560,   561,   768,  1180,  1181,    36,    65,   565,
1812 <     566,   567,   568,   774,  1194,  1195,    37,    50,   364,   365,
1813 <     366,   367,   368,   369,   370,   371,   372,   373,   616,  1054,
1814 <    1055,   374,   375,   376,   377,   378,    38,    56,   471,   701,
1815 <    1096,  1097,   472,   473,   474,   475,    39,    51,   382,   383,
1816 <     384,   385,    40,   112,   113,   114,    41,    53,   393,   635,
1817 <    1069,  1070,   394,   395,   396,   397,    42,   165,   166,   167,
1818 <     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1819 <     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1820 <     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1821 <     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1822 <     208,   209,   210,   428,   917,   918,   211,   426,   894,   895,
1823 <     212,   213,   214,    43,    91,    92,    93,    94,    95,    96,
1824 <      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1825 <      44,   241,   242,   243,   244,   245,   246,   247,   248
1520 >     153,     0,     0,     0,   338,   653,   652,   658,   656,   659,
1521 >     654,   655,   657,    86,    81,    89,    80,    87,    88,    79,
1522 >      83,    82,    74,    73,    78,    75,    77,    76,    84,    85,
1523 >       0,     0,   379,   128,     0,     0,     0,   140,     0,   132,
1524 >     133,   135,   134,     0,     0,     0,     0,   110,   353,     0,
1525 >       0,     0,   355,    31,    32,    33,    34,    35,    36,    37,
1526 >     268,   269,   260,   278,   277,     0,   276,   261,   263,   265,
1527 >     272,   264,   262,   271,   257,   270,   259,   258,    38,    38,
1528 >      38,    40,    39,   266,   267,   423,   426,   427,   437,   434,
1529 >     420,   435,   432,   433,     0,   431,   436,   419,   425,   422,
1530 >     424,   438,   421,   455,   456,   470,   471,   590,     0,   564,
1531 >       0,   318,   319,   329,   325,   326,   328,   333,   330,   331,
1532 >     324,   332,   327,     0,   323,   317,   336,   335,   334,   316,
1533 >     447,   446,   302,   301,   286,   287,   285,     0,   284,     0,
1534 >       0,     0,   107,   108,   176,   172,   222,   234,   210,   219,
1535 >       0,   208,   213,   228,     0,   221,   226,   232,   212,   215,
1536 >     223,   225,   229,   220,   227,   216,   233,   218,   224,   214,
1537 >     217,     0,   206,   168,   170,   173,   174,   175,   186,   187,
1538 >     188,   181,   199,   182,   183,   184,   194,   202,   185,   196,
1539 >     200,   190,   201,   191,   195,   189,   198,   193,   192,   197,
1540 >       0,   180,   169,   171,   347,   345,   346,   385,   390,   396,
1541 >     399,   392,   398,   393,   397,   395,   391,   394,     0,   389,
1542 >     136,     0,     0,     0,     0,   131,   119,   118,   120,   121,
1543 >     362,   368,   374,   377,   370,   376,   371,   375,   373,   369,
1544 >     372,     0,   367,   363,   274,     0,    41,    42,    43,   429,
1545 >       0,   591,   565,   321,     0,   282,     0,   300,   297,   296,
1546 >       0,     0,     0,     0,     0,   204,     0,   178,     0,   387,
1547 >       0,     0,     0,     0,     0,   130,   365,     0,   275,   430,
1548 >     322,   283,   209,   231,   207,   230,   211,   205,   179,   388,
1549 >     137,   139,   138,   150,   149,   145,   147,   151,   148,   144,
1550 >     146,     0,   143,   366,   141,     0,   142
1551   };
1552  
1553 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1554 <   STATE-NUM.  */
1830 < #define YYPACT_NINF -820
1831 < static const yytype_int16 yypact[] =
1553 >  /* YYPGOTO[NTERM-NUM].  */
1554 > static const yytype_int16 yypgoto[] =
1555   {
1556 <    -820,   585,  -820,  -131,  -219,  -213,  -820,  -820,  -820,  -202,
1557 <    -820,  -195,  -820,  -820,  -820,  -178,  -151,  -820,  -820,  -149,
1558 <    -146,  -820,  -820,  -130,  -820,  -820,  -820,  -820,  -820,  -820,
1559 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1560 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,    31,   836,  -121,
1561 <    -118,  -109,    27,   -83,   358,   -77,   -68,   -62,    63,   206,
1562 <     -59,   -42,   495,   405,   -37,   -11,    18,  -185,  -155,   -98,
1563 <      -9,    30,  -820,  -820,  -820,  -820,  -820,    41,    43,    45,
1564 <      56,    60,    67,    78,    80,    83,    88,   104,   107,   112,
1565 <     129,   151,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1566 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,   629,   423,    59,
1567 <    -820,   133,    19,  -820,  -820,    11,  -820,   138,   141,   142,
1568 <     143,   147,   148,   150,   155,   157,   158,   160,   165,   169,
1569 <     170,   171,   172,   180,   184,   185,   186,   187,   189,   190,
1570 <     194,   195,   198,   200,   202,  -820,   207,  -820,   208,   210,
1571 <     211,   217,   223,   224,   226,   227,   228,   229,   231,   232,
1572 <     233,   236,   239,   240,   244,   125,  -820,  -820,  -820,  -820,
1573 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1574 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1575 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1576 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1577 <    -820,  -820,  -820,  -820,  -820,   321,   176,   295,    14,   250,
1578 <      76,  -820,  -820,  -820,   105,    23,   251,   253,    25,  -820,
1579 <    -820,  -820,   471,    65,  -820,   257,   258,   259,   262,   267,
1580 <     272,     5,  -820,  -820,  -820,  -820,  -820,  -820,  -820,    39,
1581 <     273,   275,   279,   281,   283,   284,   286,   288,   289,   290,
1582 <     293,   299,   300,   305,   306,   308,   310,   175,  -820,  -820,
1583 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1584 <    -820,  -820,  -820,  -820,  -820,  -820,     7,    17,  -820,   318,
1585 <      40,  -820,  -820,  -820,   254,   309,   428,   128,  -820,   297,
1863 <     447,   386,   449,   449,   450,   452,   455,   394,   396,   459,
1864 <     449,   400,   404,   349,  -820,   356,   354,   355,   359,  -820,
1865 <     362,   365,   368,   369,   370,   371,   373,   376,   380,   381,
1866 <     382,   384,     8,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1867 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1868 <     361,   385,   387,   389,   390,  -820,   391,   392,   393,   395,
1869 <     402,   403,   407,   409,   313,  -820,  -820,  -820,  -820,  -820,
1870 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1871 <     411,   413,    20,  -820,  -820,  -820,   489,   419,  -820,  -820,
1872 <     417,   424,  -820,  -820,    24,  -820,  -820,  -820,   463,   449,
1873 <     449,   521,   486,   488,   553,   537,   494,   449,   497,   449,
1874 <     557,   562,   563,   502,   504,   506,   449,   570,   571,   449,
1875 <     572,   575,   576,   577,   516,   517,   460,   520,   462,   449,
1876 <     449,   524,   529,   530,   531,   -45,   174,   532,   533,   449,
1877 <     449,   578,   449,   536,   538,   544,   490,  -820,   492,   496,
1878 <     499,  -820,   508,   513,   514,   518,   522,    33,  -820,  -820,
1879 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   523,  -820,
1880 <     525,  -820,    37,  -820,  -820,  -820,   493,  -820,   526,   527,
1881 <     528,  -820,    15,  -820,  -820,  -820,  -820,  -820,   547,   498,
1882 <    -820,   539,  -820,   594,   597,   500,  -820,   534,   541,   545,
1883 <    -820,   546,   551,   555,  -820,   558,    16,  -820,  -820,  -820,
1884 <    -820,  -820,  -820,  -820,  -820,  -820,   535,   559,   561,   564,
1885 <      81,  -820,  -820,  -820,  -820,   579,   580,   620,   589,   607,
1886 <     449,   565,  -820,  -820,   666,   624,   688,   695,   684,   685,
1887 <     687,   690,   692,   694,    64,   204,   708,   712,   698,   713,
1888 <     718,   625,  -820,   626,   617,  -820,   619,    44,  -820,  -820,
1889 <    -820,  -820,   628,   627,  -820,    52,  -820,  -820,  -820,   731,
1890 <     632,  -820,   634,   637,   639,  -820,   640,   642,   643,   584,
1891 <     652,   653,   654,   655,   656,   657,   659,   662,   663,   664,
1892 <     665,  -820,  -820,   784,   785,   449,   668,   786,   787,   790,
1893 <     791,   449,   449,   774,   793,   795,   449,   796,   796,   679,
1894 <    -820,  -820,   782,   162,   783,   740,   682,   792,   794,   797,
1895 <     798,   804,   799,   800,   801,   691,  -820,   802,   803,   693,
1896 <    -820,   696,  -820,   805,   806,   701,   707,  -820,   709,   710,
1897 <     711,   716,   717,   719,   720,   721,   722,   723,   724,   725,
1898 <     726,   729,   730,   732,   733,   734,   735,   736,   738,   739,
1899 <     741,   742,   743,   744,   746,   747,   586,   748,   622,   749,
1900 <     750,   751,   752,   753,   754,   755,   756,   757,   758,   759,
1901 <     760,   761,   762,   763,   764,   765,   766,   767,  -820,  -820,
1902 <     808,   768,   715,   813,   849,   840,   868,   869,   770,  -820,
1903 <     871,   769,   873,   775,  -820,  -820,   771,   876,   877,   896,
1904 <     779,  -820,   780,  -820,    29,   781,   788,  -820,  -820,   882,
1905 <     839,   789,   884,   885,   886,   807,   887,   809,  -820,  -820,
1906 <     889,   890,   891,   811,  -820,   812,   814,   815,   816,   817,
1907 <     818,  -820,   819,   820,   821,   822,   823,   824,   825,   826,
1908 <     827,   828,  -820,  -820,  -187,  -820,  -820,  -820,  -186,  -820,
1909 <     829,   830,   831,   832,   833,  -820,  -820,   893,   810,   894,
1910 <     834,  -820,  -820,   895,   835,   837,  -820,   841,  -820,  -820,
1911 <    -820,  -820,  -820,  -820,  -820,   449,   449,   449,   449,   449,
1912 <     449,   449,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1913 <    -820,  -820,  -820,  -820,  -820,   842,   843,   844,   270,   845,
1914 <     846,   847,   848,   850,   851,   852,   853,   854,   855,     4,
1915 <     856,   857,  -820,   858,   859,   860,   861,   862,    -4,   863,
1916 <     864,   865,   866,   867,   870,   872,   874,  -820,   875,   878,
1917 <    -820,  -820,   879,   880,   892,  -820,  -820,  -820,  -820,  -820,
1918 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1919 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1920 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1921 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1922 <    -820,  -820,  -820,  -820,  -179,  -820,  -820,  -820,  -820,  -820,
1923 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1924 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -159,  -820,  -820,
1925 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1926 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   881,   883,
1927 <     548,   888,   897,   898,   899,   900,  -820,   901,   902,   903,
1928 <    -820,    -2,   904,   905,   920,   686,  -820,  -820,  -820,   906,
1929 <     907,  -820,   908,    97,  -820,  -820,  -820,  -820,  -820,  -820,
1930 <     909,   912,   446,   913,   914,   915,   650,   916,  -820,   917,
1931 <     918,   919,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1932 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1933 <      64,  -820,   204,  -820,  -820,  -820,  -820,  -820,   921,   491,
1934 <     922,  -820,   923,   680,  -820,  -820,  -820,  -820,  -820,  -820,
1935 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -154,  -820,
1936 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1937 <     796,   796,   796,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1938 <    -820,  -820,  -820,  -820,  -139,  -820,  -820,  -820,  -820,  -820,
1939 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -133,
1940 <    -820,  -820,   586,  -820,   622,  -820,  -820,  -820,  -820,  -820,
1941 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,   -26,  -820,  -820,
1942 <    -820,  -820,  -820,  -820,  -820,  -820,    -7,  -820,  -820,  -820,
1943 <    -820,  -820,    36,  -820,  -820,  -820,   924,   896,   925,  -820,
1944 <     935,   926,   -97,   927,  -820,  -820,  -820,  -820,  -820,  -820,
1945 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1946 <    -820,  -820,  -820,  -820,  -820,  -820,    51,  -820,  -820,  -820,
1947 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1948 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1949 <    -820,    54,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1950 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1951 <      93,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1952 <    -820,  -820,  -820,  -820,    99,  -820,  -820,   270,  -820,  -820,
1953 <    -820,  -820,    -4,  -820,   892,  -820,  -820,  -820,   548,  -820,
1954 <     902,  -820,    -2,  -820,  -820,  -820,   928,   315,   930,   931,
1955 <    -820,  -820,   446,  -820,   650,  -820,   491,  -820,   680,  -820,
1956 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1957 <    -820,  -820,  -820,   101,  -820,  -820,  -820,  -820,  -820,  -820,
1958 <    -820,  -820,   315,  -820
1556 >    -719,  -719,  -719,  -165,  -296,  -718,  -621,  -719,  -719,   960,
1557 >    -719,  -719,  -719,  -719,   847,  -719,  -719,  -719,  -719,  -719,
1558 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1559 >    -719,  -719,  -719,  -719,  1024,  -719,  -719,  -719,  -719,  -719,
1560 >    -719,   619,  -719,  -719,  -719,  -719,  -719,   549,  -719,  -719,
1561 >    -719,  -719,  -719,  -719,   849,  -719,  -719,  -719,  -719,    84,
1562 >    -719,  -719,  -719,  -719,  -719,  -181,  -719,  -719,  -719,   613,
1563 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1564 >    -719,  -719,  -142,  -719,  -719,  -719,  -139,  -719,  -719,  -719,
1565 >     921,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1566 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1567 >    -112,  -719,  -719,  -719,  -719,  -719,  -117,  -719,   690,  -719,
1568 >    -719,  -719,     1,  -719,  -719,  -719,  -719,  -719,   691,  -719,
1569 >    -719,  -719,  -719,  -719,  -719,  -719,  -106,  -719,  -719,  -719,
1570 >    -719,  -719,  -719,   624,  -719,  -719,  -719,  -719,  -719,   941,
1571 >    -719,  -719,  -719,  -719,   580,  -719,  -719,  -719,  -719,  -719,
1572 >    -123,  -719,  -719,  -719,   618,  -719,  -719,  -719,  -719,  -115,
1573 >    -719,  -719,  -719,   840,  -719,  -719,  -719,  -719,  -719,  -719,
1574 >    -719,  -719,  -719,  -719,  -719,   -66,  -719,  -719,  -719,  -719,
1575 >    -719,  -719,  -719,  -719,   716,  -719,  -719,  -719,  -719,  -719,
1576 >     841,  -719,  -719,  -719,  -719,  1068,  -719,  -719,  -719,  -719,
1577 >     809,  -719,  -719,  -719,  -719,  1020,  -719,  -719,  -719,  -719,
1578 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1579 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1580 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1581 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,    81,
1582 >    -719,  -719,  -719,    85,  -719,  -719,  -719,  -719,  -719,  1089,
1583 >    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1584 >    -719,  -719,   963,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
1585 >    -719
1586   };
1587  
1588 < /* YYPGOTO[NTERM-NUM].  */
1589 < static const yytype_int16 yypgoto[] =
1588 >  /* YYDEFGOTO[NTERM-NUM].  */
1589 > static const yytype_int16 yydefgoto[] =
1590   {
1591 <    -820,  -820,  -820,    82,  -300,  -819,  -607,  -820,  -820,   689,
1592 <    -820,  -820,  -820,  -820,   910,  -820,  -820,  -820,    21,  -820,
1593 <      22,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1594 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   947,  -820,
1595 <    -820,  -820,  -820,  -820,   838,  -820,  -820,  -820,  -820,    57,
1596 <    -820,  -820,  -820,  -820,  -820,  -230,  -820,  -820,  -820,   519,
1597 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -201,
1598 <    -820,  -820,  -820,  -196,  -820,  -820,  -820,   772,  -820,  -820,
1599 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1600 <    -820,  -820,  -820,  -820,  -820,  -820,  -170,  -820,  -820,  -820,
1601 <    -820,  -820,  -182,  -820,   609,  -820,  -820,  -820,   -46,  -820,
1602 <    -820,  -820,  -820,  -820,   605,  -820,  -820,  -820,  -820,  -820,
1603 <    -820,  -820,  -137,  -820,  -820,  -820,  -820,  -820,  -820,   573,
1604 <    -820,  -820,  -820,  -820,  -820,   911,  -820,  -820,  -820,  -820,
1605 <     542,  -820,  -820,  -820,  -820,  -820,  -128,  -820,  -820,  -820,
1606 <     543,  -820,  -820,  -820,  -820,  -122,  -820,  -820,  -820,   745,
1607 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1608 <    -107,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1609 <    -820,  -103,  -820,   641,  -820,  -820,  -820,  -820,  -820,   773,
1610 <    -820,  -820,  -820,  -820,   999,  -820,  -820,  -820,  -820,  -820,
1611 <    -820,   -92,  -820,   776,  -820,  -820,  -820,  -820,   949,  -820,
1612 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1613 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1614 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1615 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1616 <    -820,  -820,  -820,  -820,  -820,    42,  -820,  -820,  -820,    46,
1617 <    -820,  -820,  -820,  -820,  -820,  1024,  -820,  -820,  -820,  -820,
1618 <    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
1619 <    -820,  -820,   932,  -820,  -820,  -820,  -820,  -820,  -820
1591 >      -1,     1,    26,   811,   812,  1071,  1072,    27,   213,   214,
1592 >     215,   216,    28,   257,   258,   259,   260,   261,   262,   263,
1593 >     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
1594 >     274,   275,    29,    77,    78,    79,    80,    81,    30,    63,
1595 >     486,   487,   488,   489,    31,    70,   571,   572,   573,   574,
1596 >     575,   576,    32,   279,   280,   281,   282,   283,  1028,  1029,
1597 >    1030,  1031,  1032,  1213,  1291,  1292,    33,    64,   502,   503,
1598 >     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
1599 >     739,  1190,  1191,   514,   733,  1161,  1162,    34,    53,   327,
1600 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1601 >     338,   339,   340,   341,   342,   343,   344,   345,   609,  1055,
1602 >    1056,    35,    61,   472,   718,  1127,  1128,   473,   474,   475,
1603 >    1131,   971,   972,   476,   477,    36,    59,   450,   451,   452,
1604 >     453,   454,   455,   456,   703,  1113,  1114,   457,   458,   459,
1605 >      37,    65,   519,   520,   521,   522,   523,    38,   287,   288,
1606 >     289,    39,    72,   584,   585,   586,   587,   588,   796,  1231,
1607 >    1232,    40,    68,   557,   558,   559,   560,   779,  1208,  1209,
1608 >      41,    54,   361,   362,   363,   364,   365,   366,   367,   368,
1609 >     369,   370,   371,   632,  1084,  1085,   372,   373,   374,   375,
1610 >     376,    42,    60,   463,   464,   465,   466,    43,    55,   380,
1611 >     381,   382,   383,    44,   110,   111,   112,    45,    57,   390,
1612 >     391,   392,   393,    46,   160,   161,   162,   163,   164,   165,
1613 >     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1614 >     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1615 >     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1616 >     196,   197,   198,   199,   200,   201,   202,   420,   933,   934,
1617 >     203,   419,   909,   910,   204,   205,   206,    47,    93,    94,
1618 >      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1619 >      48,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1620 >     238
1621   };
1622  
1623 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1624 <   positive, shift that token.  If negative, reduce the rule which
1625 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1998 < #define YYTABLE_NINF -114
1623 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1624 >     positive, shift that token.  If negative, reduce the rule whose
1625 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1626   static const yytype_int16 yytable[] =
1627   {
1628 <     820,   821,   580,   581,  1052,    47,   234,   819,   553,   315,
1629 <     588,    48,   389,  1040,  1041,  1042,   476,   497,   562,   288,
1630 <     110,   379,    52,   316,   317,   389,   225,   318,   110,    54,
1631 <     959,    67,    67,   498,   448,   999,  1001,   293,   467,  1000,
1632 <    1002,   288,   235,  1071,   319,   553,    58,  1072,   499,  1099,
1633 <     449,   477,   500,   562,    68,    68,   236,   237,   238,   239,
1634 <     379,    69,    69,  1073,   218,   450,   516,  1074,  1196,   451,
1635 <     294,   478,  1197,    59,   240,    62,   479,   218,    63,   517,
1636 <     111,   380,   516,  1201,   320,   321,   322,  1202,   111,  1203,
1637 <     323,    45,    46,  1204,    66,   517,   324,   325,   959,   639,
1638 <     640,   554,   326,   107,  1218,   390,   108,   647,   819,   649,
1639 <     501,   563,   289,   327,   328,   109,   656,   226,   390,   659,
1640 <     380,   675,   676,   960,    70,    70,   116,   295,   329,   669,
1641 <     670,   117,   118,   502,   289,   391,   480,   119,   554,   681,
1642 <     682,   115,   684,   227,   381,   120,   563,   215,   391,   503,
1643 <     452,   121,    76,   122,   123,   124,   216,   330,   453,   454,
1644 <     125,   468,   217,   518,   555,   232,   126,   127,   392,   128,
1645 <     129,   130,    77,    78,   564,   131,   249,   467,    79,   518,
1646 <     132,   392,   233,   381,   133,   134,   961,   286,   135,   519,
1647 <    1100,   960,   455,  1053,   469,  1101,  1207,   136,   331,   250,
1648 <    1208,   555,   752,   753,   137,   519,   138,   225,   139,   564,
1649 <     140,   141,   142,   287,   504,  1209,   296,    80,    81,  1210,
1650 <     556,  1198,  1199,  1200,    82,    83,    84,   143,   531,   505,
1651 <     740,   609,   251,   144,   145,   146,   487,   147,   710,   727,
1652 <     148,   149,   387,   629,   150,   492,   456,   636,   495,   962,
1653 <     470,    85,    86,   297,   961,   252,   698,   556,  1211,   253,
1654 <     703,   533,  1212,   570,    87,    88,   299,   770,   300,   254,
1655 <     301,   255,   256,  1221,    89,   775,  1223,  1222,   219,   151,
1656 <    1224,   302,    90,   152,  -113,   303,   153,   154,   155,   156,
1657 <     157,   219,   304,   158,   159,   807,   476,  -113,   226,   489,
1658 <     468,   813,   814,   305,   733,   306,   818,   257,   307,   258,
1659 <     259,   260,   261,   308,   350,  1225,   351,   962,   352,  1226,
1660 <    1113,  1227,   448,  1251,   227,  1228,   491,  1252,   262,   309,
1661 <     353,   477,   310,   469,   160,   161,   162,   311,   449,   163,
1662 <     677,   678,   756,   757,   164,   354,   824,   825,   446,   355,
1663 <     575,   478,   263,   450,   312,  1236,   479,   451,   386,   116,
1664 <    1026,  1027,   264,   398,   117,   118,   399,   400,   401,   356,
1665 <     119,   357,   402,   403,   313,   404,   572,  1237,   120,  1238,
1666 <     405,   358,   406,   407,   121,   408,   122,   123,   124,   470,
1667 <     409,   265,   266,   125,   410,   411,   412,   413,   551,   126,
1668 <     127,   576,   128,   129,   130,   414,   249,   359,   131,   415,
1669 <     416,   417,   418,   132,   419,   420,   480,   133,   134,   421,
1670 <     422,   135,  1239,   423,   350,   424,   351,   425,   352,   250,
1671 <     136,   573,   427,   429,   360,   430,   431,   137,   452,   138,
1672 <     353,   139,   432,   140,   141,   142,   453,   454,   433,   434,
1673 <    1117,   435,   436,   437,   438,   354,   439,   440,   441,   355,
1674 <     143,   442,   251,   361,   443,   444,   144,   145,   146,   445,
1675 <     147,  1118,   497,   148,   149,   488,   493,   150,   494,   356,
1676 <     455,   357,   525,   526,   527,   252,  1119,   528,   498,   253,
1677 <     362,   358,   529,  1120,  1240,  1241,   234,   530,   534,   254,
1678 <     535,   255,   256,   499,   536,  1219,   537,   500,   538,   539,
1679 <    1121,   540,   151,   541,   542,   543,   152,   359,   544,   153,
1680 <     154,   155,   156,   157,   545,   546,   158,   159,  1242,   363,
1681 <     547,   548,   235,   549,   456,   550,   625,   257,  1122,   258,
1682 <     259,   260,   261,   569,   360,  1123,   236,   237,   238,   239,
1683 <     574,   577,   578,   579,   582,  1170,   583,  1124,   262,   584,
1684 <     585,  1077,   586,   587,   240,   501,   589,   160,   161,   162,
1685 <     590,   591,   163,   361,  1125,  1126,  1127,   164,   592,   593,
1686 <     594,  1078,   263,   611,   595,     2,     3,   597,   502,     4,
1687 <     598,  1079,   264,   599,   600,   601,   602,  1080,   603,     5,
1688 <     362,   604,     6,     7,   503,   605,   606,   607,     8,   608,
1689 <     612,   631,   613,  1081,   614,   615,   617,   618,   619,     9,
1690 <     620,   265,   266,    10,    11,   641,  1128,   621,   622,   638,
1691 <     315,  1171,   623,    12,   624,  1129,   627,   874,   628,   363,
1692 <    1130,   632,   633,  1082,   316,   317,  1131,    13,   318,   634,
1693 <    1132,  1083,   642,  1133,   643,    14,    15,   644,  1134,   645,
1694 <     646,   650,  1172,   648,  1135,   319,   651,   652,   653,   504,
1695 <     654,  1173,   655,   897,   657,   658,   660,  1174,    16,   661,
1696 <     662,   663,   664,   665,   505,   666,   667,   668,   579,  1084,
1697 <     671,  1175,    17,  1176,  1177,   672,   673,   674,   679,   680,
1698 <     683,  1141,   685,  1178,   686,   320,   321,   322,  1085,  1179,
1699 <     687,   323,   688,   712,   689,   705,   715,   324,   325,   716,
1700 <     713,   690,   717,   326,   691,    18,   785,   786,   787,   788,
1701 <     789,   790,   791,   693,   327,   328,    19,    20,   694,   695,
1702 <      21,    22,   737,   696,  1184,   735,   736,   697,   700,   329,
1703 <     702,   707,   708,   709,  1086,   738,   718,   729,   875,   876,
1704 <     877,   878,   879,   714,   880,   881,   719,   882,   883,   884,
1705 <     720,   722,   885,   739,   886,   887,   723,   888,   330,   889,
1706 <     724,   890,   891,   726,   730,   892,   731,   741,   742,   732,
1707 <     743,   893,   744,    23,   898,   899,   900,   901,   902,   745,
1708 <     903,   904,   762,   905,   906,   907,   746,   747,   908,   748,
1709 <     909,   910,   749,   911,   750,   912,   751,   913,   914,   331,
1710 <    1185,   915,  1142,  1143,  1144,  1145,  1146,   916,  1147,  1148,
1711 <     760,  1149,  1150,  1151,   761,   763,  1152,    76,  1153,  1154,
1712 <     764,  1155,   767,  1156,   769,  1157,  1158,   765,   766,  1159,
1713 <     772,  1186,   773,   777,   778,  1160,   779,    77,    78,   780,
1714 <    1187,   781,   782,    79,   783,   784,  1188,  1016,  1017,  1018,
1715 <    1019,  1020,  1021,  1022,   794,   795,   796,   797,   798,   799,
1716 <    1189,   800,  1190,  1191,   801,   802,   803,   804,   805,   806,
1717 <     809,   810,  1192,   808,   811,   812,   815,   816,  1193,   817,
1718 <     819,   822,    80,    81,   823,   826,   827,   828,   833,    82,
1719 <      83,    84,  1107,   837,   829,   840,   830,   496,   841,   831,
1720 <     832,   834,   835,   836,   838,   839,   844,   842,   843,   845,
1721 <     938,   846,   847,   848,   939,   941,    85,    86,   849,   850,
1722 <     940,   851,   852,   853,   854,   855,   856,   857,   858,    87,
1723 <      88,   859,   860,   942,   861,   862,   863,   864,   865,    89,
1724 <     866,   867,   943,   868,   869,   870,   871,    90,   872,   873,
1725 <     896,   919,   920,   921,   922,   923,   924,   925,   926,   927,
1726 <     928,   929,   930,   931,   932,   933,   934,   935,   936,   937,
1727 <     944,   945,   946,   947,   948,   949,   951,   950,   952,   953,
1728 <     954,   957,   958,   968,   970,   971,   973,   974,   975,   977,
1729 <     969,   979,   980,   981,   972,  1008,  1010,  1012,   298,  1068,
1730 <    1114,  1167,  1253,  1248,  1168,   728,  1247,  1229,  1213,  1095,
1731 <    1234,   978,   976,   982,   983,  1009,   984,   985,   986,   987,
1732 <     988,   989,   990,   991,   992,   993,   994,   995,   996,   997,
1733 <     998,  1003,  1004,  1005,  1006,  1007,  1011,  1216,   490,  1014,
1734 <    1013,  1214,   699,  1015,  1023,  1024,  1025,  1030,  1031,  1032,
1735 <    1033,  1232,  1034,  1035,  1036,  1037,  1038,  1039,  1045,  1046,
1736 <    1047,  1048,  1049,  1050,  1051,  1056,  1057,  1058,  1059,  1060,
1737 <    1106,   711,  1061,   734,  1062,  1230,  1063,  1064,  1249,   771,
1738 <    1065,  1066,  1067,  1075,   610,  1076,  1250,  1233,   776,   626,
1739 <    1089,   388,  1231,   704,   447,   314,  1206,     0,  1205,  1090,
1740 <    1091,  1092,  1093,  1094,     0,  1098,  1104,  1105,  1109,     0,
1741 <       0,  1115,  1110,  1112,  1116,  1138,  1139,  1140,  1163,  1164,
1742 <    1165,  1166,     0,  1169,  1182,  1183,     0,  1215,     0,  1220,
1743 <    1235,  1217,  1245,  1246,     0,   630,     0,     0,     0,     0,
1744 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1745 <     637,     0,     0,   532,     0,     0,     0,   552,     0,     0,
1628 >     838,   839,   595,   210,    51,   598,   210,   600,   601,   108,
1629 >     467,  1082,  1053,   285,   685,   108,    52,   483,   686,   239,
1630 >     277,   114,    56,   377,   687,    58,   115,   116,   688,   117,
1631 >     118,   277,    62,  1097,   119,   837,  1099,  1098,   580,   460,
1632 >    1100,    66,    73,   120,   121,   240,  1234,   241,   291,   483,
1633 >    1235,   122,   580,   285,   123,   124,   125,    67,  1068,  1069,
1634 >    1070,   126,   468,   377,    69,   460,    49,    50,   109,   469,
1635 >      74,   470,   242,    71,   109,   309,   127,   128,    75,  1239,
1636 >     105,   243,   378,  1240,  1054,   106,   129,   107,   387,   130,
1637 >     131,   310,   311,   484,   842,   843,   312,   211,   132,   653,
1638 >     211,   655,   656,   566,   244,   133,  1024,   134,   245,   135,
1639 >     286,   136,   666,   137,   138,   554,   246,   671,   212,   247,
1640 >     248,   212,   378,   554,   139,   484,   680,   681,   471,   140,
1641 >     141,  1262,   142,   143,   144,   581,   313,   145,   694,    76,
1642 >     696,   697,   113,   346,   379,   347,   490,   348,   249,   581,
1643 >     286,   207,   515,   837,   314,   315,   316,   317,   318,   208,
1644 >     461,   349,   319,   146,   491,   250,   320,   209,   251,   252,
1645 >     253,  1124,   321,   147,   148,   149,   150,   151,   152,   153,
1646 >     350,   322,   323,   492,   379,   388,   461,   485,   441,   217,
1647 >    -129,   516,   324,    82,  1243,   351,   292,   352,  1244,  1083,
1648 >     567,  -129,   218,  1025,   353,   219,   442,   493,   276,   389,
1649 >    1024,   566,   555,   284,   325,   254,   354,    83,    84,   485,
1650 >     555,   387,  1245,  1255,    85,   443,  1246,  1256,   517,   154,
1651 >     155,   156,   481,   157,   158,   757,   720,   278,   255,   256,
1652 >     355,   385,   159,   494,   293,   552,   563,   439,   278,   444,
1653 >      86,    87,   290,   582,   220,  1257,   583,   462,   326,  1258,
1654 >     495,   356,   294,    88,    89,    90,   568,   582,   295,   297,
1655 >     583,    91,    92,   518,   298,   728,   496,   515,   798,   578,
1656 >     478,   357,   299,   462,   569,   300,   221,   301,   490,   644,
1657 >     358,   713,  1259,   497,   498,   222,  1260,  1026,   223,   224,
1658 >     570,   623,   445,   225,   226,   227,   491,  1025,   567,   441,
1659 >     446,   447,   824,  1125,   650,   302,   516,   829,   388,    73,
1660 >     832,  1027,  1126,   303,   836,   492,   304,   442,   228,   790,
1661 >     556,   448,  1214,  1266,   534,   467,  1294,  1267,   556,   359,
1662 >    1295,   780,   389,   561,   499,   305,   443,    74,   306,   493,
1663 >    1236,  1237,  1238,   517,   384,    75,   394,   395,   396,   397,
1664 >     398,   399,   360,   400,   500,   401,   402,   403,   501,   640,
1665 >     444,   589,   742,   404,   568,   405,   406,   407,   748,   408,
1666 >     593,   409,  1283,   410,  1284,   494,   411,   468,   412,   413,
1667 >     414,   415,   569,   416,   469,   417,   470,   418,   518,   421,
1668 >     422,  1026,   495,   423,   114,   424,   449,   425,   570,   115,
1669 >     116,   426,   117,   118,   709,   427,    76,   119,   496,   307,
1670 >     428,   590,   429,   445,   430,  1027,   120,   121,  1285,   431,
1671 >     432,   446,   447,   433,   122,   497,   498,   123,   124,   125,
1672 >    1103,   434,   435,   436,   126,  1286,   437,   438,   479,   565,
1673 >     480,   524,   448,   471,   525,   526,   527,   528,   529,   127,
1674 >     128,   530,   531,   535,  1104,   536,   537,   538,   539,   129,
1675 >     540,   541,   130,   131,   542,   543,   544,   545,   546,   547,
1676 >     532,   132,  1136,   548,  1287,  1288,   499,   549,   133,   550,
1677 >     134,   551,   135,  1105,   136,   562,   137,   138,  1137,  1138,
1678 >     577,   591,   594,   592,   596,   597,   500,   139,  1139,   604,
1679 >     501,   599,   140,   141,   602,   142,   143,   144,   603,   605,
1680 >     145,   606,   646,   607,  1106,  1107,   608,   449,   610,   611,
1681 >    1108,   346,   612,   347,   613,   348,  1289,   239,   614,   615,
1682 >     616,  1290,  1140,  1141,   617,  1142,   146,   652,   594,   349,
1683 >     618,   619,   620,   621,  1109,   622,   147,   148,   149,   150,
1684 >     151,   152,   153,   240,   625,   241,   626,   647,   350,   627,
1685 >    1110,   628,   629,  1143,   804,   805,   806,   807,   808,   809,
1686 >     810,  1144,   630,   351,   631,   352,   633,   634,   635,   636,
1687 >     242,  1263,   353,   637,   638,   639,   642,   643,   648,   243,
1688 >     649,   654,   657,  1145,   354,  1146,  1147,   658,   659,   660,
1689 >    1198,   661,   154,   155,   156,   662,   157,   158,   663,   664,
1690 >     667,   665,   244,   668,  1148,   159,   245,   669,   355,  1221,
1691 >     670,   672,  1111,   673,   246,   674,   676,   247,   248,  1043,
1692 >    1044,  1045,  1046,  1047,  1048,  1049,  1149,   675,   677,   356,
1693 >    1112,  1150,   678,   679,   682,  1151,   683,   684,   689,  1152,
1694 >     690,   691,   692,   693,  1153,   695,   249,   698,  1154,   357,
1695 >     699,  1199,   701,     2,     3,   722,   702,     4,   358,  1155,
1696 >     704,  1156,  1157,   250,  1158,   705,   251,   252,   253,     5,
1697 >    1222,   700,     6,   706,     7,  1159,   707,   708,   711,   712,
1698 >     715,     8,  1160,  1200,   716,   717,   719,   723,   724,   725,
1699 >     726,  1201,   730,     9,   727,   309,    10,    11,   731,   732,
1700 >    1202,   734,  1223,   911,   744,   912,   913,   359,   735,   736,
1701 >    1224,   310,   311,   254,    12,   737,   312,   738,    13,  1225,
1702 >     740,   741,   745,   750,  1203,   746,  1204,  1205,   747,    14,
1703 >     360,   753,   751,   752,   754,   755,   255,   256,   756,   220,
1704 >    1206,   759,   760,  1226,   758,  1227,  1228,  1207,   761,    15,
1705 >      16,   762,  1168,   763,  1169,  1170,   313,   764,   765,  1229,
1706 >     766,   767,   768,   769,    17,   770,  1230,   776,   771,   772,
1707 >     773,   221,   774,   777,   314,   315,   316,   317,   318,   775,
1708 >     222,    18,   319,   223,   224,   778,   320,   782,   225,   226,
1709 >     227,   783,   321,   889,    19,    20,   784,   785,   786,   787,
1710 >     792,   322,   323,   788,   789,   795,   793,   794,   822,   800,
1711 >     801,   797,   324,   228,   802,   803,   813,   814,    21,   914,
1712 >     915,   916,   815,   816,   917,   918,   817,   919,   920,   818,
1713 >     921,    22,   922,   819,   325,   923,    23,   924,   925,   820,
1714 >     821,    24,   823,   926,    25,   825,   826,   927,   827,   828,
1715 >     830,   928,   929,   930,   833,   831,   834,   835,   931,   837,
1716 >     840,   841,   845,   932,   851,   844,   846,   847,  1171,  1172,
1717 >    1173,  1129,   849,  1174,  1175,   848,  1176,  1177,   326,  1178,
1718 >     850,  1179,   852,   853,  1180,   854,  1181,  1182,   855,   856,
1719 >     857,   858,  1183,   859,   860,   861,  1184,   862,   863,    82,
1720 >    1185,  1186,  1187,   864,   865,   866,   955,  1188,   867,   890,
1721 >     891,   892,  1189,   868,   893,   894,   869,   895,   896,   870,
1722 >     897,   871,   898,    83,    84,   899,   872,   900,   901,   873,
1723 >      85,   874,   875,   902,   876,   877,   878,   903,   879,   880,
1724 >     881,   904,   905,   906,   882,   883,   884,   885,   907,   886,
1725 >     887,   888,   935,   908,   936,   937,    86,    87,   938,   939,
1726 >     957,   940,   958,   941,   959,   942,   960,   961,   962,    88,
1727 >      89,    90,   964,   965,   967,   968,   970,    91,    92,   976,
1728 >     943,   944,   945,   946,   956,   947,   977,   948,   979,   982,
1729 >     949,   983,   950,   951,   984,   952,   980,   985,   953,   954,
1730 >     963,   986,   988,   989,   966,   991,   973,   974,   969,   975,
1731 >     978,   981,   992,   990,   987,   993,   994,   995,   996,  1020,
1732 >     997,   998,   999,  1000,  1001,  1002,  1003,  1004,  1005,  1006,
1733 >    1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,  1016,
1734 >    1017,  1018,  1019,  1033,  1022,  1023,  1021,  1034,  1035,  1036,
1735 >    1037,  1038,  1039,  1041,  1042,  1040,  1050,  1051,  1052,  1057,
1736 >    1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,  1247,  1066,
1737 >    1067,  1073,  1261,  1272,  1273,  1074,  1075,  1076,  1275,  1274,
1738 >    1276,   296,  1077,  1078,   553,   729,  1079,  1080,  1081,  1086,
1739 >    1087,  1088,  1215,  1089,  1296,   743,  1278,  1277,  1090,  1091,
1740 >     791,  1092,  1093,  1268,  1094,  1095,  1096,  1101,   564,  1271,
1741 >    1102,  1248,  1115,  1116,  1117,  1118,  1119,  1120,  1270,  1121,
1742 >    1122,   710,  1123,   749,  1293,  1279,  1132,  1130,  1133,  1134,
1743 >    1135,  1163,  1164,  1165,  1166,  1167,  1192,  1193,  1194,  1195,
1744 >    1196,  1197,  1210,   721,   799,  1216,  1211,  1212,  1217,  1264,
1745 >    1218,  1219,  1220,   482,  1269,   781,  1233,  1249,   386,   714,
1746 >     440,  1242,   308,  1241,     0,  1250,  1251,  1252,  1253,  1254,
1747 >    1265,  1280,   533,     0,  1281,  1282,     0,     0,     0,   651,
1748 >       0,   641,     0,     0,     0,     0,     0,     0,     0,     0,
1749         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1750 +       0,   645,     0,     0,     0,     0,     0,     0,   579,     0,
1751         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1752 <       0,   571
1752 >       0,     0,     0,     0,     0,     0,     0,     0,   624
1753   };
1754  
2124 #define yypact_value_is_default(Yystate) \
2125  (!!((Yystate) == (-820)))
2126
2127 #define yytable_value_is_error(Yytable_value) \
2128  YYID (0)
2129
1755   static const yytype_int16 yycheck[] =
1756   {
1757 <     607,   608,   302,   303,     8,   224,     1,   104,     1,     1,
1758 <     310,   224,     1,     9,    10,    11,     1,     1,     1,     1,
1759 <       1,     1,   224,    15,    16,     1,     1,    19,     1,   224,
1760 <       1,     1,     1,    17,     1,   222,   222,   222,     1,   226,
1761 <     226,     1,    37,   222,    36,     1,   224,   226,    32,    51,
1762 <      17,    36,    36,     1,    24,    24,    51,    52,    53,    54,
1763 <       1,    31,    31,   222,     1,    32,     1,   226,   222,    36,
1764 <     225,    56,   226,   224,    69,   224,    61,     1,   224,    14,
1765 <      61,    61,     1,   222,    76,    77,    78,   226,    61,   222,
1766 <      82,   222,   223,   226,   224,    14,    88,    89,     1,   399,
1767 <     400,    94,    94,   224,   201,    94,   224,   407,   104,   409,
1768 <      94,    94,    94,   105,   106,   224,   416,    92,    94,   419,
1769 <      61,   166,   167,    94,    94,    94,     1,   225,   120,   429,
1770 <     430,     6,     7,   117,    94,   124,   121,    12,    94,   439,
1771 <     440,   224,   442,   118,   124,    20,    94,   224,   124,   133,
1772 <     117,    26,     1,    28,    29,    30,   224,   149,   125,   126,
1773 <      35,   124,   224,    98,   157,   224,    41,    42,   157,    44,
1774 <      45,    46,    21,    22,   157,    50,     1,     1,    27,    98,
1775 <      55,   157,   224,   124,    59,    60,   157,   224,    63,   124,
1776 <     192,    94,   159,   197,   157,   197,   222,    72,   190,    24,
1777 <     226,   157,   138,   139,    79,   124,    81,     1,    83,   157,
1778 <      85,    86,    87,   224,   198,   222,   225,    66,    67,   226,
1779 <     213,  1040,  1041,  1042,    73,    74,    75,   102,   223,   213,
1780 <     530,   223,    57,   108,   109,   110,   222,   112,   223,   223,
1781 <     115,   116,   223,   223,   119,   222,   213,   223,   223,   220,
1782 <     213,   100,   101,   223,   157,    80,   223,   213,   222,    84,
1783 <     223,   222,   226,   223,   113,   114,   225,   223,   225,    94,
1784 <     225,    96,    97,   222,   123,   223,   222,   226,   215,   154,
1785 <     226,   225,   131,   158,   221,   225,   161,   162,   163,   164,
1786 <     165,   215,   225,   168,   169,   595,     1,   221,    92,   223,
1787 <     124,   601,   602,   225,   223,   225,   606,   132,   225,   134,
1788 <     135,   136,   137,   225,     1,   222,     3,   220,     5,   226,
1789 <     223,   222,     1,   222,   118,   226,   221,   226,   153,   225,
1790 <      17,    36,   225,   157,   209,   210,   211,   225,    17,   214,
1791 <     166,   167,   138,   139,   219,    32,   184,   185,   223,    36,
1792 <     222,    56,   177,    32,   225,    40,    61,    36,   225,     1,
1793 <      90,    91,   187,   225,     6,     7,   225,   225,   225,    56,
1794 <      12,    58,   225,   225,   223,   225,   122,    62,    20,    64,
1795 <     225,    68,   225,   225,    26,   225,    28,    29,    30,   213,
1796 <     225,   216,   217,    35,   225,   225,   225,   225,   223,    41,
1797 <      42,   104,    44,    45,    46,   225,     1,    94,    50,   225,
1798 <     225,   225,   225,    55,   225,   225,   121,    59,    60,   225,
1799 <     225,    63,   107,   225,     1,   225,     3,   225,     5,    24,
1800 <      72,   122,   225,   225,   121,   225,   225,    79,   117,    81,
1801 <      17,    83,   225,    85,    86,    87,   125,   126,   225,   225,
1802 <       4,   225,   225,   225,   225,    32,   225,   225,   225,    36,
1803 <     102,   225,    57,   150,   225,   225,   108,   109,   110,   225,
1804 <     112,    25,     1,   115,   116,   225,   225,   119,   225,    56,
1805 <     159,    58,   225,   225,   225,    80,    40,   225,    17,    84,
1806 <     177,    68,   225,    47,   179,   180,     1,   225,   225,    94,
1807 <     225,    96,    97,    32,   225,  1112,   225,    36,   225,   225,
1808 <      64,   225,   154,   225,   225,   225,   158,    94,   225,   161,
1809 <     162,   163,   164,   165,   225,   225,   168,   169,   213,   216,
1810 <     225,   225,    37,   225,   213,   225,   223,   132,    92,   134,
1811 <     135,   136,   137,   225,   121,    99,    51,    52,    53,    54,
1812 <     122,   104,   166,   104,   104,    64,   104,   111,   153,   104,
1813 <     166,    13,   166,   104,    69,    94,   166,   209,   210,   211,
1814 <     166,   222,   214,   150,   128,   129,   130,   219,   222,   225,
1815 <     225,    33,   177,   222,   225,     0,     1,   225,   117,     4,
1816 <     225,    43,   187,   225,   225,   225,   225,    49,   225,    14,
1817 <     177,   225,    17,    18,   133,   225,   225,   225,    23,   225,
1818 <     225,   122,   225,    65,   225,   225,   225,   225,   225,    34,
1819 <     225,   216,   217,    38,    39,   104,   180,   225,   225,   166,
1820 <       1,   140,   225,    48,   225,   189,   225,    51,   225,   216,
1821 <     194,   222,   225,    95,    15,    16,   200,    62,    19,   225,
1822 <     204,   103,   166,   207,   166,    70,    71,   104,   212,   122,
1823 <     166,   104,   171,   166,   218,    36,   104,   104,   166,   198,
1824 <     166,   180,   166,    51,   104,   104,   104,   186,    93,   104,
1825 <     104,   104,   166,   166,   213,   225,   166,   225,   104,   141,
1826 <     166,   200,   107,   202,   203,   166,   166,   166,   166,   166,
1827 <     122,    51,   166,   212,   166,    76,    77,    78,   160,   218,
1828 <     166,    82,   222,   166,   222,   222,   122,    88,    89,   122,
1829 <     222,   225,   222,    94,   225,   140,   142,   143,   144,   145,
1830 <     146,   147,   148,   225,   105,   106,   151,   152,   225,   225,
1831 <     155,   156,   122,   225,    64,   166,   166,   225,   225,   120,
1832 <     225,   225,   225,   225,   206,   166,   222,   222,   172,   173,
1833 <     174,   175,   176,   224,   178,   179,   225,   181,   182,   183,
1834 <     225,   225,   186,   166,   188,   189,   225,   191,   149,   193,
1835 <     225,   195,   196,   225,   225,   199,   225,   222,   122,   225,
1836 <     166,   205,   104,   208,   172,   173,   174,   175,   176,   104,
1837 <     178,   179,   104,   181,   182,   183,   122,   122,   186,   122,
1838 <     188,   189,   122,   191,   122,   193,   122,   195,   196,   190,
1839 <     140,   199,   172,   173,   174,   175,   176,   205,   178,   179,
1840 <     122,   181,   182,   183,   122,   122,   186,     1,   188,   189,
1841 <     122,   191,   225,   193,   225,   195,   196,   222,   222,   199,
1842 <     222,   171,   225,   122,   222,   205,   222,    21,    22,   222,
1843 <     180,   222,   222,    27,   222,   222,   186,   785,   786,   787,
1844 <     788,   789,   790,   791,   222,   222,   222,   222,   222,   222,
1845 <     200,   222,   202,   203,   222,   222,   222,   222,   104,   104,
1846 <     104,   104,   212,   225,   104,   104,   122,   104,   218,   104,
1847 <     104,   222,    66,    67,   122,   122,   166,   225,   104,    73,
1848 <      74,    75,   226,   222,   122,   222,   122,   228,   222,   122,
1849 <     122,   122,   122,   122,   122,   122,   225,   122,   122,   222,
1850 <     122,   222,   222,   222,   166,   122,   100,   101,   222,   222,
1851 <     225,   222,   222,   222,   222,   222,   222,   222,   222,   113,
1852 <     114,   222,   222,   104,   222,   222,   222,   222,   222,   123,
1853 <     222,   222,   122,   222,   222,   222,   222,   131,   222,   222,
1854 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1855 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1856 <     122,   122,   222,   122,   225,   122,   225,   222,   122,   122,
1857 <     104,   222,   222,   222,   122,   166,   122,   122,   122,   122,
1858 <     222,   122,   122,   122,   225,   122,   122,   122,    71,   127,
1859 <     963,  1000,  1252,  1224,  1002,   506,  1222,  1197,   104,   127,
1860 <    1212,   222,   225,   222,   222,   225,   222,   222,   222,   222,
1861 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1862 <     222,   222,   222,   222,   222,   222,   222,   122,   220,   222,
1863 <     225,  1107,   457,   222,   222,   222,   222,   222,   222,   222,
1864 <     222,  1208,   222,   222,   222,   222,   222,   222,   222,   222,
1865 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1866 <     170,   482,   222,   520,   222,  1202,   222,   222,  1226,   557,
1867 <     222,   222,   222,   222,   332,   222,  1228,  1210,   565,   364,
1868 <     222,   112,  1204,   472,   165,    91,  1074,    -1,  1072,   222,
1869 <     222,   222,   222,   222,    -1,   222,   222,   222,   222,    -1,
1870 <      -1,   222,   225,   225,   222,   222,   222,   222,   222,   222,
1871 <     222,   222,    -1,   222,   222,   222,    -1,   222,    -1,   222,
1872 <     222,   225,   222,   222,    -1,   382,    -1,    -1,    -1,    -1,
1873 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1874 <     394,    -1,    -1,   241,    -1,    -1,    -1,   267,    -1,    -1,
1757 >     621,   622,   298,     1,   228,   301,     1,   303,   304,     1,
1758 >       1,     8,    49,     1,   208,     1,   228,     1,   212,     1,
1759 >       1,     1,   228,     1,   208,   228,     6,     7,   212,     9,
1760 >      10,     1,   228,   226,    14,   106,   226,   230,     1,     1,
1761 >     230,   228,     1,    23,    24,    27,   226,    29,   226,     1,
1762 >     230,    31,     1,     1,    34,    35,    36,   228,    11,    12,
1763 >      13,    41,    53,     1,   228,     1,   226,   227,    60,    60,
1764 >      29,    62,    54,   228,    60,     1,    56,    57,    37,   226,
1765 >     228,    63,    60,   230,   121,   228,    66,   228,     1,    69,
1766 >      70,    17,    18,    77,   175,   176,    22,    95,    78,   395,
1767 >      95,   397,   398,     1,    86,    85,     1,    87,    90,    89,
1768 >      98,    91,   408,    93,    94,     1,    98,   413,   116,   101,
1769 >     102,   116,    60,     1,   104,    77,   422,   423,   119,   109,
1770 >     110,   202,   112,   113,   114,    98,    62,   117,   434,    98,
1771 >     436,   437,   228,     1,   122,     3,     1,     5,   130,    98,
1772 >      98,   228,     1,   106,    80,    81,    82,    83,    84,   228,
1773 >     122,    19,    88,   143,    19,   147,    92,   228,   150,   151,
1774 >     152,    45,    98,   153,   154,   155,   156,   157,   158,   159,
1775 >      38,   107,   108,    38,   122,    98,   122,   171,     1,   228,
1776 >     171,    40,   118,     1,   226,    53,   229,    55,   230,   196,
1777 >      98,   171,   228,    98,    62,   228,    19,    62,   228,   122,
1778 >       1,     1,    98,   228,   140,   197,    74,    25,    26,   171,
1779 >      98,     1,   226,   226,    32,    38,   230,   230,    77,   209,
1780 >     210,   211,   227,   213,   214,   531,   227,   218,   220,   221,
1781 >      98,   227,   222,    98,   229,   227,   227,   227,   218,    62,
1782 >      58,    59,   228,   216,     1,   226,   219,   219,   184,   230,
1783 >     115,   119,   229,    71,    72,    73,   164,   216,   227,   229,
1784 >     219,    79,    80,   122,   229,   227,   131,     1,   227,   227,
1785 >     226,   139,   229,   219,   182,   229,    33,   229,     1,   227,
1786 >     148,   227,   226,   148,   149,    42,   230,   192,    45,    46,
1787 >     198,   227,   115,    50,    51,    52,    19,    98,    98,     1,
1788 >     123,   124,   608,   187,   227,   229,    40,   613,    98,     1,
1789 >     616,   216,   196,   229,   620,    38,   229,    19,    75,   227,
1790 >     216,   144,   227,   226,   226,     1,   226,   230,   216,   197,
1791 >     230,   227,   122,   226,   199,   229,    38,    29,   229,    62,
1792 >    1068,  1069,  1070,    77,   229,    37,   229,   229,   229,   229,
1793 >     229,   229,   220,   229,   219,   229,   229,   229,   223,   227,
1794 >      62,   120,   227,   229,   164,   229,   229,   229,   227,   229,
1795 >     106,   229,    65,   229,    67,    98,   229,    53,   229,   229,
1796 >     229,   229,   182,   229,    60,   229,    62,   229,   122,   229,
1797 >     229,   192,   115,   229,     1,   229,   219,   229,   198,     6,
1798 >       7,   229,     9,    10,   227,   229,    98,    14,   131,   227,
1799 >     229,   120,   229,   115,   229,   216,    23,    24,   111,   229,
1800 >     229,   123,   124,   229,    31,   148,   149,    34,    35,    36,
1801 >      15,   229,   229,   229,    41,   128,   229,   229,   229,   171,
1802 >     229,   229,   144,   119,   229,   229,   229,   229,   229,    56,
1803 >      57,   229,   229,   229,    39,   229,   229,   229,   229,    66,
1804 >     229,   229,    69,    70,   229,   229,   229,   229,   229,   229,
1805 >     227,    78,     4,   229,   167,   168,   199,   229,    85,   229,
1806 >      87,   229,    89,    68,    91,   229,    93,    94,    20,    21,
1807 >     229,   120,   106,   226,   208,   106,   219,   104,    30,   226,
1808 >     223,   106,   109,   110,   106,   112,   113,   114,   106,   226,
1809 >     117,   229,   120,   229,    99,   100,   229,   219,   229,   229,
1810 >     105,     1,   229,     3,   229,     5,   219,     1,   229,   229,
1811 >     229,   224,    64,    65,   229,    67,   143,   208,   106,    19,
1812 >     229,   229,   229,   229,   129,   229,   153,   154,   155,   156,
1813 >     157,   158,   159,    27,   226,    29,   229,   226,    38,   229,
1814 >     145,   229,   229,    95,   132,   133,   134,   135,   136,   137,
1815 >     138,   103,   229,    53,   229,    55,   229,   229,   229,   229,
1816 >      54,  1212,    62,   229,   229,   229,   229,   229,   229,    63,
1817 >     229,   106,   208,   125,    74,   127,   128,   106,   208,   106,
1818 >      67,   106,   209,   210,   211,   106,   213,   214,   208,   208,
1819 >     106,   208,    86,   106,   146,   222,    90,   106,    98,    67,
1820 >     106,   106,   207,   106,    98,   106,   208,   101,   102,   804,
1821 >     805,   806,   807,   808,   809,   810,   168,   106,   229,   119,
1822 >     225,   173,   229,   208,   208,   177,   208,   208,   208,   181,
1823 >     208,   208,   208,   106,   186,   208,   130,   208,   190,   139,
1824 >     226,   128,   229,     0,     1,   120,   229,     4,   148,   201,
1825 >     229,   203,   204,   147,   206,   229,   150,   151,   152,    16,
1826 >     128,   226,    19,   229,    21,   217,   229,   229,   229,   229,
1827 >     226,    28,   224,   160,   229,   229,   229,   120,   226,   226,
1828 >     229,   168,   226,    40,   229,     1,    43,    44,   229,   229,
1829 >     177,   229,   160,    45,   226,    47,    48,   197,   229,   229,
1830 >     168,    17,    18,   197,    61,   229,    22,   229,    65,   177,
1831 >     229,   229,   229,   208,   201,   229,   203,   204,   229,    76,
1832 >     220,   120,   208,   208,   208,   208,   220,   221,   208,     1,
1833 >     217,   106,   120,   201,   226,   203,   204,   224,   208,    96,
1834 >      97,   120,    45,   106,    47,    48,    62,   106,   120,   217,
1835 >     120,   120,   120,   120,   111,   120,   224,   226,   120,   120,
1836 >     120,    33,   120,   226,    80,    81,    82,    83,    84,   120,
1837 >      42,   128,    88,    45,    46,   229,    92,   208,    50,    51,
1838 >      52,   226,    98,    45,   141,   142,   228,   226,   229,   229,
1839 >     120,   107,   108,   229,   229,   229,   226,   226,   106,   226,
1840 >     226,   229,   118,    75,   226,   226,   226,   226,   165,   161,
1841 >     162,   163,   226,   226,   166,   167,   226,   169,   170,   226,
1842 >     172,   178,   174,   226,   140,   177,   183,   179,   180,   226,
1843 >     226,   188,   106,   185,   191,   229,   106,   189,   106,   106,
1844 >     106,   193,   194,   195,   120,   106,   106,   106,   200,   106,
1845 >     226,   120,   208,   205,   106,   120,   120,   120,   161,   162,
1846 >     163,   215,   120,   166,   167,   229,   169,   170,   184,   172,
1847 >     120,   174,   120,   120,   177,   120,   179,   180,   120,   226,
1848 >     120,   120,   185,   226,   226,   120,   189,   120,   226,     1,
1849 >     193,   194,   195,   226,   226,   226,   120,   200,   226,   161,
1850 >     162,   163,   205,   226,   166,   167,   226,   169,   170,   226,
1851 >     172,   226,   174,    25,    26,   177,   226,   179,   180,   226,
1852 >      32,   226,   226,   185,   226,   226,   226,   189,   226,   226,
1853 >     226,   193,   194,   195,   226,   226,   226,   226,   200,   226,
1854 >     226,   226,   226,   205,   226,   226,    58,    59,   226,   226,
1855 >     229,   226,   120,   226,   106,   226,   120,   120,   120,    71,
1856 >      72,    73,   120,   120,   120,   120,   106,    79,    80,   120,
1857 >     226,   226,   226,   226,   208,   226,   120,   226,   120,   120,
1858 >     226,   120,   226,   226,   120,   226,   208,   120,   226,   226,
1859 >     226,   208,   120,   120,   226,   120,   226,   226,   229,   226,
1860 >     226,   229,   120,   226,   229,   120,   226,   226,   226,   120,
1861 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1862 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1863 >     226,   226,   226,   120,   226,   226,   229,   120,   120,   120,
1864 >     226,   226,   120,   120,   226,   229,   226,   226,   226,   226,
1865 >     226,   226,   226,   226,   226,   226,   226,   226,   106,   226,
1866 >     226,   226,   120,   126,   128,   226,   226,   226,   128,   126,
1867 >     126,    77,   226,   226,   257,   486,   226,   226,   226,   226,
1868 >     226,   226,  1028,   226,  1295,   502,  1258,  1256,   226,   226,
1869 >     571,   226,   226,  1235,   226,   226,   226,   226,   279,  1246,
1870 >     226,  1130,   226,   226,   226,   226,   226,   226,  1244,   226,
1871 >     226,   450,   226,   519,  1267,  1260,   226,   230,   226,   226,
1872 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1873 >     226,   226,   226,   473,   584,   226,   229,   229,   226,   229,
1874 >     226,   226,   226,   213,  1240,   557,   226,   226,   110,   463,
1875 >     160,  1100,    93,  1098,    -1,   231,   231,   231,   231,   231,
1876 >     226,   226,   229,    -1,   226,   226,    -1,    -1,    -1,   390,
1877 >      -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1878        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1879 +      -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,   287,    -1,
1880        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1881 <      -1,   290
1881 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   327
1882   };
1883  
1884 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1885 <   symbol of state STATE-NUM.  */
1884 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1885 >     symbol of state STATE-NUM.  */
1886   static const yytype_uint16 yystos[] =
1887   {
1888 <       0,   228,     0,     1,     4,    14,    17,    18,    23,    34,
1889 <      38,    39,    48,    62,    70,    71,    93,   107,   140,   151,
1890 <     152,   155,   156,   208,   229,   234,   239,   263,   269,   283,
1891 <     301,   324,   338,   353,   360,   364,   374,   383,   403,   413,
1892 <     419,   423,   433,   490,   507,   222,   223,   224,   224,   302,
1893 <     384,   414,   224,   424,   224,   339,   404,   325,   224,   224,
1894 <     284,   354,   224,   224,   365,   375,   224,     1,    24,    31,
1895 <      94,   264,   265,   266,   267,   268,     1,    21,    22,    27,
1896 <      66,    67,    73,    74,    75,   100,   101,   113,   114,   123,
1897 <     131,   491,   492,   493,   494,   495,   496,   497,   498,   499,
1898 <     500,   501,   502,   503,   504,   505,   506,   224,   224,   224,
1899 <       1,    61,   420,   421,   422,   224,     1,     6,     7,    12,
1900 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1901 <      46,    50,    55,    59,    60,    63,    72,    79,    81,    83,
1902 <      85,    86,    87,   102,   108,   109,   110,   112,   115,   116,
1903 <     119,   154,   158,   161,   162,   163,   164,   165,   168,   169,
1904 <     209,   210,   211,   214,   219,   434,   435,   436,   437,   438,
1905 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1906 <     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
1907 <     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1908 <     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
1909 <     479,   483,   487,   488,   489,   224,   224,   224,     1,   215,
1910 <     270,   271,   272,   273,   274,     1,    92,   118,   235,   236,
1911 <     237,   238,   224,   224,     1,    37,    51,    52,    53,    54,
1912 <      69,   508,   509,   510,   511,   512,   513,   514,   515,     1,
1913 <      24,    57,    80,    84,    94,    96,    97,   132,   134,   135,
1914 <     136,   137,   153,   177,   187,   216,   217,   240,   241,   242,
1915 <     243,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1916 <     257,   258,   259,   260,   261,   262,   224,   224,     1,    94,
1917 <     361,   362,   363,   222,   225,   225,   225,   223,   265,   225,
1918 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1919 <     225,   225,   225,   223,   492,     1,    15,    16,    19,    36,
1920 <      76,    77,    78,    82,    88,    89,    94,   105,   106,   120,
1921 <     149,   190,   303,   304,   305,   306,   307,   308,   309,   310,
1922 <     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
1923 <       1,     3,     5,    17,    32,    36,    56,    58,    68,    94,
1924 <     121,   150,   177,   216,   385,   386,   387,   388,   389,   390,
1925 <     391,   392,   393,   394,   398,   399,   400,   401,   402,     1,
1926 <      61,   124,   415,   416,   417,   418,   225,   223,   421,     1,
1927 <      94,   124,   157,   425,   429,   430,   431,   432,   225,   225,
1928 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1929 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1930 <     225,   225,   225,   225,   225,   225,   484,   225,   480,   225,
1931 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1932 <     225,   225,   225,   225,   225,   225,   223,   435,     1,    17,
1933 <      32,    36,   117,   125,   126,   159,   213,   340,   341,   342,
1934 <     343,   344,   345,   346,   350,   351,   352,     1,   124,   157,
1935 <     213,   405,   409,   410,   411,   412,     1,    36,    56,    61,
1936 <     121,   326,   330,   331,   332,   336,   337,   222,   225,   223,
1937 <     271,   221,   222,   225,   225,   223,   236,     1,    17,    32,
1938 <      36,    94,   117,   133,   198,   213,   285,   286,   287,   288,
1939 <     289,   290,   291,   292,   293,   297,     1,    14,    98,   124,
1940 <     355,   356,   357,   358,   359,   225,   225,   225,   225,   225,
1941 <     225,   223,   509,   222,   225,   225,   225,   225,   225,   225,
1942 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
1943 <     225,   223,   241,     1,    94,   157,   213,   366,   367,   368,
1944 <     369,   370,     1,    94,   157,   376,   377,   378,   379,   225,
1945 <     223,   362,   122,   122,   122,   222,   104,   104,   166,   104,
1946 <     231,   231,   104,   104,   104,   166,   166,   104,   231,   166,
1947 <     166,   222,   222,   225,   225,   225,   321,   225,   225,   225,
1948 <     225,   225,   225,   225,   225,   225,   225,   225,   225,   223,
1949 <     304,   222,   225,   225,   225,   225,   395,   225,   225,   225,
1950 <     225,   225,   225,   225,   225,   223,   386,   225,   225,   223,
1951 <     416,   122,   222,   225,   225,   426,   223,   430,   166,   231,
1952 <     231,   104,   166,   166,   104,   122,   166,   231,   166,   231,
1953 <     104,   104,   104,   166,   166,   166,   231,   104,   104,   231,
1954 <     104,   104,   104,   104,   166,   166,   225,   166,   225,   231,
1955 <     231,   166,   166,   166,   166,   166,   167,   166,   167,   166,
1956 <     166,   231,   231,   122,   231,   166,   166,   166,   222,   222,
1957 <     225,   225,   347,   225,   225,   225,   225,   225,   223,   341,
1958 <     225,   406,   225,   223,   410,   222,   327,   225,   225,   225,
1959 <     223,   331,   166,   222,   224,   122,   122,   222,   222,   225,
1960 <     225,   298,   225,   225,   225,   294,   225,   223,   286,   222,
1961 <     225,   225,   225,   223,   356,   166,   166,   122,   166,   166,
1962 <     231,   222,   122,   166,   104,   104,   122,   122,   122,   122,
1963 <     122,   122,   138,   139,   244,   245,   138,   139,   246,   247,
1964 <     122,   122,   104,   122,   122,   222,   222,   225,   371,   225,
1965 <     223,   367,   222,   225,   380,   223,   377,   122,   222,   222,
1966 <     222,   222,   222,   222,   222,   142,   143,   144,   145,   146,
1967 <     147,   148,   230,   231,   222,   222,   222,   222,   222,   222,
1968 <     222,   222,   222,   222,   222,   104,   104,   231,   225,   104,
1969 <     104,   104,   104,   231,   231,   122,   104,   104,   231,   104,
1970 <     233,   233,   222,   122,   184,   185,   122,   166,   225,   122,
1971 <     122,   122,   122,   104,   122,   122,   122,   222,   122,   122,
1972 <     222,   222,   122,   122,   225,   222,   222,   222,   222,   222,
1973 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1974 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1975 <     222,   222,   222,   222,    51,   172,   173,   174,   175,   176,
1976 <     178,   179,   181,   182,   183,   186,   188,   189,   191,   193,
1977 <     195,   196,   199,   205,   485,   486,   222,    51,   172,   173,
1978 <     174,   175,   176,   178,   179,   181,   182,   183,   186,   188,
1979 <     189,   191,   193,   195,   196,   199,   205,   481,   482,   222,
1980 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1981 <     222,   222,   222,   222,   222,   222,   222,   222,   122,   166,
1982 <     225,   122,   104,   122,   122,   122,   222,   122,   225,   122,
1983 <     222,   225,   122,   122,   104,   334,   335,   222,   222,     1,
1984 <      94,   157,   220,   275,   276,   277,   278,   279,   222,   222,
1985 <     122,   166,   225,   122,   122,   122,   225,   122,   222,   122,
1986 <     122,   122,   222,   222,   222,   222,   222,   222,   222,   222,
1987 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1988 <     226,   222,   226,   222,   222,   222,   222,   222,   122,   225,
1989 <     122,   222,   122,   225,   222,   222,   230,   230,   230,   230,
1990 <     230,   230,   230,   222,   222,   222,    90,    91,   322,   323,
1991 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1992 <       9,    10,    11,   232,   233,   222,   222,   222,   222,   222,
1993 <     222,   222,     8,   197,   396,   397,   222,   222,   222,   222,
1994 <     222,   222,   222,   222,   222,   222,   222,   222,   127,   427,
1995 <     428,   222,   226,   222,   226,   222,   222,    13,    33,    43,
1996 <      49,    65,    95,   103,   141,   160,   206,   348,   349,   222,
1997 <     222,   222,   222,   222,   222,   127,   407,   408,   222,    51,
1998 <     192,   197,   328,   329,   222,   222,   170,   226,   333,   222,
1999 <     225,   280,   225,   223,   276,   222,   222,     4,    25,    40,
2000 <      47,    64,    92,    99,   111,   128,   129,   130,   180,   189,
2001 <     194,   200,   204,   207,   212,   218,   299,   300,   222,   222,
2002 <     222,    51,   172,   173,   174,   175,   176,   178,   179,   181,
2003 <     182,   183,   186,   188,   189,   191,   193,   195,   196,   199,
2004 <     205,   295,   296,   222,   222,   222,   222,   245,   247,   222,
2005 <      64,   140,   171,   180,   186,   200,   202,   203,   212,   218,
2006 <     372,   373,   222,   222,    64,   140,   171,   180,   186,   200,
2007 <     202,   203,   212,   218,   381,   382,   222,   226,   232,   232,
2008 <     232,   222,   226,   222,   226,   486,   482,   222,   226,   222,
2009 <     226,   222,   226,   104,   335,   222,   122,   225,   201,   233,
2010 <     222,   222,   226,   222,   226,   222,   226,   222,   226,   323,
2011 <     397,   428,   349,   408,   329,   222,    40,    62,    64,   107,
2012 <     179,   180,   213,   281,   282,   222,   222,   300,   296,   373,
2013 <     382,   222,   226,   282
1888 >       0,   233,     0,     1,     4,    16,    19,    21,    28,    40,
1889 >      43,    44,    61,    65,    76,    96,    97,   111,   128,   141,
1890 >     142,   165,   178,   183,   188,   191,   234,   239,   244,   264,
1891 >     270,   276,   284,   298,   319,   343,   357,   372,   379,   383,
1892 >     393,   402,   423,   429,   435,   439,   445,   499,   512,   226,
1893 >     227,   228,   228,   320,   403,   430,   228,   440,   228,   358,
1894 >     424,   344,   228,   271,   299,   373,   228,   228,   394,   228,
1895 >     277,   228,   384,     1,    29,    37,    98,   265,   266,   267,
1896 >     268,   269,     1,    25,    26,    32,    58,    59,    71,    72,
1897 >      73,    79,    80,   500,   501,   502,   503,   504,   505,   506,
1898 >     507,   508,   509,   510,   511,   228,   228,   228,     1,    60,
1899 >     436,   437,   438,   228,     1,     6,     7,     9,    10,    14,
1900 >      23,    24,    31,    34,    35,    36,    41,    56,    57,    66,
1901 >      69,    70,    78,    85,    87,    89,    91,    93,    94,   104,
1902 >     109,   110,   112,   113,   114,   117,   143,   153,   154,   155,
1903 >     156,   157,   158,   159,   209,   210,   211,   213,   214,   222,
1904 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1905 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1906 >     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1907 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1908 >     486,   487,   488,   492,   496,   497,   498,   228,   228,   228,
1909 >       1,    95,   116,   240,   241,   242,   243,   228,   228,   228,
1910 >       1,    33,    42,    45,    46,    50,    51,    52,    75,   513,
1911 >     514,   515,   516,   517,   518,   519,   520,   521,   522,     1,
1912 >      27,    29,    54,    63,    86,    90,    98,   101,   102,   130,
1913 >     147,   150,   151,   152,   197,   220,   221,   245,   246,   247,
1914 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1915 >     258,   259,   260,   261,   262,   263,   228,     1,   218,   285,
1916 >     286,   287,   288,   289,   228,     1,    98,   380,   381,   382,
1917 >     228,   226,   229,   229,   229,   227,   266,   229,   229,   229,
1918 >     229,   229,   229,   229,   229,   229,   229,   227,   501,     1,
1919 >      17,    18,    22,    62,    80,    81,    82,    83,    84,    88,
1920 >      92,    98,   107,   108,   118,   140,   184,   321,   322,   323,
1921 >     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
1922 >     334,   335,   336,   337,   338,   339,     1,     3,     5,    19,
1923 >      38,    53,    55,    62,    74,    98,   119,   139,   148,   197,
1924 >     220,   404,   405,   406,   407,   408,   409,   410,   411,   412,
1925 >     413,   414,   418,   419,   420,   421,   422,     1,    60,   122,
1926 >     431,   432,   433,   434,   229,   227,   437,     1,    98,   122,
1927 >     441,   442,   443,   444,   229,   229,   229,   229,   229,   229,
1928 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1929 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   493,
1930 >     489,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1931 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   227,
1932 >     447,     1,    19,    38,    62,   115,   123,   124,   144,   219,
1933 >     359,   360,   361,   362,   363,   364,   365,   369,   370,   371,
1934 >       1,   122,   219,   425,   426,   427,   428,     1,    53,    60,
1935 >      62,   119,   345,   349,   350,   351,   355,   356,   226,   229,
1936 >     229,   227,   241,     1,    77,   171,   272,   273,   274,   275,
1937 >       1,    19,    38,    62,    98,   115,   131,   148,   149,   199,
1938 >     219,   223,   300,   301,   302,   303,   304,   305,   306,   307,
1939 >     308,   309,   310,   311,   315,     1,    40,    77,   122,   374,
1940 >     375,   376,   377,   378,   229,   229,   229,   229,   229,   229,
1941 >     229,   229,   227,   514,   226,   229,   229,   229,   229,   229,
1942 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1943 >     229,   229,   227,   246,     1,    98,   216,   395,   396,   397,
1944 >     398,   226,   229,   227,   286,   171,     1,    98,   164,   182,
1945 >     198,   278,   279,   280,   281,   282,   283,   229,   227,   381,
1946 >       1,    98,   216,   219,   385,   386,   387,   388,   389,   120,
1947 >     120,   120,   226,   106,   106,   236,   208,   106,   236,   106,
1948 >     236,   236,   106,   106,   226,   226,   229,   229,   229,   340,
1949 >     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
1950 >     229,   229,   229,   227,   322,   226,   229,   229,   229,   229,
1951 >     229,   229,   415,   229,   229,   229,   229,   229,   229,   229,
1952 >     227,   405,   229,   229,   227,   432,   120,   226,   229,   229,
1953 >     227,   442,   208,   236,   106,   236,   236,   208,   106,   208,
1954 >     106,   106,   106,   208,   208,   208,   236,   106,   106,   106,
1955 >     106,   236,   106,   106,   106,   106,   208,   229,   229,   208,
1956 >     236,   236,   208,   208,   208,   208,   212,   208,   212,   208,
1957 >     208,   208,   208,   106,   236,   208,   236,   236,   208,   226,
1958 >     226,   229,   229,   366,   229,   229,   229,   229,   229,   227,
1959 >     360,   229,   229,   227,   426,   226,   229,   229,   346,   229,
1960 >     227,   350,   120,   120,   226,   226,   229,   229,   227,   273,
1961 >     226,   229,   229,   316,   229,   229,   229,   229,   229,   312,
1962 >     229,   229,   227,   301,   226,   229,   229,   229,   227,   375,
1963 >     208,   208,   208,   120,   208,   208,   208,   236,   226,   106,
1964 >     120,   208,   120,   106,   106,   120,   120,   120,   120,   120,
1965 >     120,   120,   120,   120,   120,   120,   226,   226,   229,   399,
1966 >     227,   396,   208,   226,   228,   226,   229,   229,   229,   229,
1967 >     227,   279,   120,   226,   226,   229,   390,   229,   227,   386,
1968 >     226,   226,   226,   226,   132,   133,   134,   135,   136,   137,
1969 >     138,   235,   236,   226,   226,   226,   226,   226,   226,   226,
1970 >     226,   226,   106,   106,   236,   229,   106,   106,   106,   236,
1971 >     106,   106,   236,   120,   106,   106,   236,   106,   238,   238,
1972 >     226,   120,   175,   176,   120,   208,   120,   120,   229,   120,
1973 >     120,   106,   120,   120,   120,   120,   226,   120,   120,   226,
1974 >     226,   120,   120,   226,   226,   226,   226,   226,   226,   226,
1975 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1976 >     226,   226,   226,   226,   226,   226,   226,   226,   226,    45,
1977 >     161,   162,   163,   166,   167,   169,   170,   172,   174,   177,
1978 >     179,   180,   185,   189,   193,   194,   195,   200,   205,   494,
1979 >     495,    45,    47,    48,   161,   162,   163,   166,   167,   169,
1980 >     170,   172,   174,   177,   179,   180,   185,   189,   193,   194,
1981 >     195,   200,   205,   490,   491,   226,   226,   226,   226,   226,
1982 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1983 >     226,   226,   226,   226,   226,   120,   208,   229,   120,   106,
1984 >     120,   120,   120,   226,   120,   120,   226,   120,   120,   229,
1985 >     106,   353,   354,   226,   226,   226,   120,   120,   226,   120,
1986 >     208,   229,   120,   120,   120,   120,   208,   229,   120,   120,
1987 >     226,   120,   120,   120,   226,   226,   226,   226,   226,   226,
1988 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1989 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1990 >     120,   229,   226,   226,     1,    98,   192,   216,   290,   291,
1991 >     292,   293,   294,   120,   120,   120,   120,   226,   226,   120,
1992 >     229,   120,   226,   235,   235,   235,   235,   235,   235,   235,
1993 >     226,   226,   226,    49,   121,   341,   342,   226,   226,   226,
1994 >     226,   226,   226,   226,   226,   226,   226,   226,    11,    12,
1995 >      13,   237,   238,   226,   226,   226,   226,   226,   226,   226,
1996 >     226,   226,     8,   196,   416,   417,   226,   226,   226,   226,
1997 >     226,   226,   226,   226,   226,   226,   226,   226,   230,   226,
1998 >     230,   226,   226,    15,    39,    68,    99,   100,   105,   129,
1999 >     145,   207,   225,   367,   368,   226,   226,   226,   226,   226,
2000 >     226,   226,   226,   226,    45,   187,   196,   347,   348,   215,
2001 >     230,   352,   226,   226,   226,   226,     4,    20,    21,    30,
2002 >      64,    65,    67,    95,   103,   125,   127,   128,   146,   168,
2003 >     173,   177,   181,   186,   190,   201,   203,   204,   206,   217,
2004 >     224,   317,   318,   226,   226,   226,   226,   226,    45,    47,
2005 >      48,   161,   162,   163,   166,   167,   169,   170,   172,   174,
2006 >     177,   179,   180,   185,   189,   193,   194,   195,   200,   205,
2007 >     313,   314,   226,   226,   226,   226,   226,   226,    67,   128,
2008 >     160,   168,   177,   201,   203,   204,   217,   224,   400,   401,
2009 >     226,   229,   229,   295,   227,   291,   226,   226,   226,   226,
2010 >     226,    67,   128,   160,   168,   177,   201,   203,   204,   217,
2011 >     224,   391,   392,   226,   226,   230,   237,   237,   237,   226,
2012 >     230,   495,   491,   226,   230,   226,   230,   106,   354,   226,
2013 >     231,   231,   231,   231,   231,   226,   230,   226,   230,   226,
2014 >     230,   120,   202,   238,   229,   226,   226,   230,   342,   417,
2015 >     368,   348,   126,   128,   126,   128,   126,   318,   314,   401,
2016 >     226,   226,   226,    65,    67,   111,   128,   167,   168,   219,
2017 >     224,   296,   297,   392,   226,   230,   297
2018   };
2019  
2020 < #define yyerrok         (yyerrstatus = 0)
2021 < #define yyclearin       (yychar = YYEMPTY)
2022 < #define YYEMPTY         (-2)
2023 < #define YYEOF           0
2024 <
2025 < #define YYACCEPT        goto yyacceptlab
2026 < #define YYABORT         goto yyabortlab
2027 < #define YYERROR         goto yyerrorlab
2028 <
2029 <
2030 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2031 <   to ease the transition to the new meaning of YYERROR, for GCC.
2032 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2033 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2034 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2035 <   discussed.  */
2036 <
2037 < #define YYFAIL          goto yyerrlab
2038 < #if defined YYFAIL
2039 <  /* This is here to suppress warnings from the GCC cpp's
2040 <     -Wunused-macros.  Normally we don't worry about that warning, but
2041 <     some users do, and we want to make it easy for users to remove
2042 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2043 < #endif
2020 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2021 > static const yytype_uint16 yyr1[] =
2022 > {
2023 >       0,   232,   233,   233,   234,   234,   234,   234,   234,   234,
2024 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2025 >     234,   234,   234,   234,   234,   234,   234,   234,   235,   235,
2026 >     236,   236,   236,   236,   236,   236,   236,   236,   237,   237,
2027 >     238,   238,   238,   238,   239,   240,   240,   241,   241,   241,
2028 >     242,   243,   244,   245,   245,   246,   246,   246,   246,   246,
2029 >     246,   246,   246,   246,   246,   246,   246,   246,   246,   246,
2030 >     246,   246,   246,   247,   248,   249,   250,   251,   252,   253,
2031 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2032 >     264,   265,   265,   266,   266,   266,   266,   267,   268,   269,
2033 >     271,   270,   272,   272,   273,   273,   273,   274,   275,   277,
2034 >     276,   278,   278,   279,   279,   279,   279,   279,   280,   281,
2035 >     282,   283,   284,   285,   285,   286,   286,   286,   287,   289,
2036 >     288,   290,   290,   291,   291,   291,   291,   292,   293,   293,
2037 >     295,   294,   296,   296,   297,   297,   297,   297,   297,   297,
2038 >     297,   297,   299,   298,   300,   300,   301,   301,   301,   301,
2039 >     301,   301,   301,   301,   301,   301,   301,   301,   302,   303,
2040 >     304,   305,   306,   307,   308,   309,   310,   312,   311,   313,
2041 >     313,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2042 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2043 >     314,   314,   314,   316,   315,   317,   317,   318,   318,   318,
2044 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2045 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2046 >     318,   318,   318,   318,   318,   320,   319,   321,   321,   322,
2047 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2048 >     322,   322,   322,   322,   322,   322,   322,   323,   324,   325,
2049 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
2050 >     336,   337,   338,   340,   339,   341,   341,   342,   342,   344,
2051 >     343,   346,   345,   347,   347,   348,   348,   348,   349,   349,
2052 >     350,   350,   350,   350,   350,   352,   351,   353,   353,   354,
2053 >     354,   355,   356,   358,   357,   359,   359,   360,   360,   360,
2054 >     360,   360,   360,   360,   360,   360,   361,   362,   363,   364,
2055 >     366,   365,   367,   367,   368,   368,   368,   368,   368,   368,
2056 >     368,   368,   368,   368,   369,   370,   371,   373,   372,   374,
2057 >     374,   375,   375,   375,   375,   376,   377,   378,   379,   380,
2058 >     380,   381,   381,   382,   384,   383,   385,   385,   386,   386,
2059 >     386,   386,   387,   388,   390,   389,   391,   391,   392,   392,
2060 >     392,   392,   392,   392,   392,   392,   392,   392,   394,   393,
2061 >     395,   395,   396,   396,   396,   397,   399,   398,   400,   400,
2062 >     401,   401,   401,   401,   401,   401,   401,   401,   401,   401,
2063 >     403,   402,   404,   404,   405,   405,   405,   405,   405,   405,
2064 >     405,   405,   405,   405,   405,   405,   405,   405,   405,   406,
2065 >     407,   408,   409,   410,   411,   412,   413,   413,   415,   414,
2066 >     416,   416,   417,   417,   418,   419,   420,   421,   422,   424,
2067 >     423,   425,   425,   426,   426,   426,   427,   428,   430,   429,
2068 >     431,   431,   432,   432,   432,   433,   434,   435,   436,   436,
2069 >     437,   437,   438,   440,   439,   441,   441,   442,   442,   442,
2070 >     443,   444,   445,   446,   446,   447,   447,   447,   447,   447,
2071 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2072 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2073 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2074 >     447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
2075 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
2076 >     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
2077 >     467,   468,   469,   470,   471,   472,   473,   474,   474,   475,
2078 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2079 >     485,   486,   487,   489,   488,   490,   490,   491,   491,   491,
2080 >     491,   491,   491,   491,   491,   491,   491,   491,   491,   491,
2081 >     491,   491,   491,   491,   491,   491,   491,   491,   491,   493,
2082 >     492,   494,   494,   495,   495,   495,   495,   495,   495,   495,
2083 >     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
2084 >     495,   495,   495,   496,   497,   498,   499,   500,   500,   501,
2085 >     501,   501,   501,   501,   501,   501,   501,   501,   501,   501,
2086 >     502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
2087 >     512,   513,   513,   514,   514,   514,   514,   514,   514,   514,
2088 >     514,   514,   515,   516,   517,   518,   519,   520,   521,   522
2089 > };
2090 >
2091 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2092 > static const yytype_uint8 yyr2[] =
2093 > {
2094 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2095 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2096 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2097 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2098 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2099 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2100 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2101 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2102 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2103 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2104 >       0,     6,     2,     1,     1,     1,     2,     4,     4,     0,
2105 >       6,     2,     1,     1,     1,     1,     1,     2,     4,     4,
2106 >       4,     4,     5,     2,     1,     1,     1,     2,     4,     0,
2107 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2108 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2109 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2110 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2111 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2112 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2113 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2114 >       1,     1,     1,     0,     5,     3,     1,     3,     1,     3,
2115 >       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2116 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2117 >       3,     3,     1,     1,     1,     0,     6,     2,     1,     1,
2118 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2119 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2120 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2121 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2122 >       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2123 >       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2124 >       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2125 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2126 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2127 >       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2128 >       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2129 >       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2130 >       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2132 >       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2133 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2134 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2135 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2136 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2137 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2138 >       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2139 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2140 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2141 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2142 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2146 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2147 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2148 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2149 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2150 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2151 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2152 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
2153 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2154 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2155 >       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
2156 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2158 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2159 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4
2160 > };
2161 >
2162 >
2163 > #define yyerrok         (yyerrstatus = 0)
2164 > #define yyclearin       (yychar = YYEMPTY)
2165 > #define YYEMPTY         (-2)
2166 > #define YYEOF           0
2167 >
2168 > #define YYACCEPT        goto yyacceptlab
2169 > #define YYABORT         goto yyabortlab
2170 > #define YYERROR         goto yyerrorlab
2171 >
2172  
2173   #define YYRECOVERING()  (!!yyerrstatus)
2174  
# Line 2424 | Line 2185 | do
2185    else                                                          \
2186      {                                                           \
2187        yyerror (YY_("syntax error: cannot back up")); \
2188 <      YYERROR;                                                  \
2189 <    }                                                           \
2190 < while (YYID (0))
2188 >      YYERROR;                                                  \
2189 >    }                                                           \
2190 > while (0)
2191  
2192   /* Error token number */
2193 < #define YYTERROR        1
2194 < #define YYERRCODE       256
2434 <
2435 <
2436 < /* This macro is provided for backward compatibility. */
2437 < #ifndef YY_LOCATION_PRINT
2438 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2439 < #endif
2193 > #define YYTERROR        1
2194 > #define YYERRCODE       256
2195  
2196  
2442 /* YYLEX -- calling `yylex' with the right arguments.  */
2443 #ifdef YYLEX_PARAM
2444 # define YYLEX yylex (YYLEX_PARAM)
2445 #else
2446 # define YYLEX yylex ()
2447 #endif
2197  
2198   /* Enable debugging if requested.  */
2199   #if YYDEBUG
# Line 2454 | Line 2203 | while (YYID (0))
2203   #  define YYFPRINTF fprintf
2204   # endif
2205  
2206 < # define YYDPRINTF(Args)                        \
2207 < do {                                            \
2208 <  if (yydebug)                                  \
2209 <    YYFPRINTF Args;                             \
2210 < } while (YYID (0))
2462 <
2463 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2464 < do {                                                                      \
2465 <  if (yydebug)                                                            \
2466 <    {                                                                     \
2467 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2468 <      yy_symbol_print (stderr,                                            \
2469 <                  Type, Value); \
2470 <      YYFPRINTF (stderr, "\n");                                           \
2471 <    }                                                                     \
2472 < } while (YYID (0))
2206 > # define YYDPRINTF(Args)                        \
2207 > do {                                            \
2208 >  if (yydebug)                                  \
2209 >    YYFPRINTF Args;                             \
2210 > } while (0)
2211  
2212 + /* This macro is provided for backward compatibility. */
2213 + #ifndef YY_LOCATION_PRINT
2214 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2215 + #endif
2216  
2475 /*--------------------------------.
2476 | Print this symbol on YYOUTPUT.  |
2477 `--------------------------------*/
2217  
2218 < /*ARGSUSED*/
2219 < #if (defined __STDC__ || defined __C99__FUNC__ \
2220 <     || defined __cplusplus || defined _MSC_VER)
2218 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2219 > do {                                                                      \
2220 >  if (yydebug)                                                            \
2221 >    {                                                                     \
2222 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2223 >      yy_symbol_print (stderr,                                            \
2224 >                  Type, Value); \
2225 >      YYFPRINTF (stderr, "\n");                                           \
2226 >    }                                                                     \
2227 > } while (0)
2228 >
2229 >
2230 > /*----------------------------------------.
2231 > | Print this symbol's value on YYOUTPUT.  |
2232 > `----------------------------------------*/
2233 >
2234   static void
2235   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2484 #else
2485 static void
2486 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2487    FILE *yyoutput;
2488    int yytype;
2489    YYSTYPE const * const yyvaluep;
2490 #endif
2236   {
2237    FILE *yyo = yyoutput;
2238    YYUSE (yyo);
# Line 2496 | Line 2241 | yy_symbol_value_print (yyoutput, yytype,
2241   # ifdef YYPRINT
2242    if (yytype < YYNTOKENS)
2243      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2499 # else
2500  YYUSE (yyoutput);
2244   # endif
2245    YYUSE (yytype);
2246   }
# Line 2507 | Line 2250 | yy_symbol_value_print (yyoutput, yytype,
2250   | Print this symbol on YYOUTPUT.  |
2251   `--------------------------------*/
2252  
2510 #if (defined __STDC__ || defined __C99__FUNC__ \
2511     || defined __cplusplus || defined _MSC_VER)
2253   static void
2254   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2514 #else
2515 static void
2516 yy_symbol_print (yyoutput, yytype, yyvaluep)
2517    FILE *yyoutput;
2518    int yytype;
2519    YYSTYPE const * const yyvaluep;
2520 #endif
2255   {
2256 <  if (yytype < YYNTOKENS)
2257 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2524 <  else
2525 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2256 >  YYFPRINTF (yyoutput, "%s %s (",
2257 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2258  
2259    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2260    YYFPRINTF (yyoutput, ")");
# Line 2533 | Line 2265 | yy_symbol_print (yyoutput, yytype, yyval
2265   | TOP (included).                                                   |
2266   `------------------------------------------------------------------*/
2267  
2536 #if (defined __STDC__ || defined __C99__FUNC__ \
2537     || defined __cplusplus || defined _MSC_VER)
2268   static void
2269   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2540 #else
2541 static void
2542 yy_stack_print (yybottom, yytop)
2543    yytype_int16 *yybottom;
2544    yytype_int16 *yytop;
2545 #endif
2270   {
2271    YYFPRINTF (stderr, "Stack now");
2272    for (; yybottom <= yytop; yybottom++)
# Line 2553 | Line 2277 | yy_stack_print (yybottom, yytop)
2277    YYFPRINTF (stderr, "\n");
2278   }
2279  
2280 < # define YY_STACK_PRINT(Bottom, Top)                            \
2281 < do {                                                            \
2282 <  if (yydebug)                                                  \
2283 <    yy_stack_print ((Bottom), (Top));                           \
2284 < } while (YYID (0))
2280 > # define YY_STACK_PRINT(Bottom, Top)                            \
2281 > do {                                                            \
2282 >  if (yydebug)                                                  \
2283 >    yy_stack_print ((Bottom), (Top));                           \
2284 > } while (0)
2285  
2286  
2287   /*------------------------------------------------.
2288   | Report that the YYRULE is going to be reduced.  |
2289   `------------------------------------------------*/
2290  
2567 #if (defined __STDC__ || defined __C99__FUNC__ \
2568     || defined __cplusplus || defined _MSC_VER)
2569 static void
2570 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2571 #else
2291   static void
2292 < yy_reduce_print (yyvsp, yyrule)
2574 <    YYSTYPE *yyvsp;
2575 <    int yyrule;
2576 < #endif
2292 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2293   {
2294 +  unsigned long int yylno = yyrline[yyrule];
2295    int yynrhs = yyr2[yyrule];
2296    int yyi;
2580  unsigned long int yylno = yyrline[yyrule];
2297    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2298 <             yyrule - 1, yylno);
2298 >             yyrule - 1, yylno);
2299    /* The symbols being reduced.  */
2300    for (yyi = 0; yyi < yynrhs; yyi++)
2301      {
2302        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2303 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2304 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2305 <                                       );
2303 >      yy_symbol_print (stderr,
2304 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2305 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2306 >                                              );
2307        YYFPRINTF (stderr, "\n");
2308      }
2309   }
2310  
2311 < # define YY_REDUCE_PRINT(Rule)          \
2312 < do {                                    \
2313 <  if (yydebug)                          \
2314 <    yy_reduce_print (yyvsp, Rule); \
2315 < } while (YYID (0))
2311 > # define YY_REDUCE_PRINT(Rule)          \
2312 > do {                                    \
2313 >  if (yydebug)                          \
2314 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2315 > } while (0)
2316  
2317   /* Nonzero means print parse trace.  It is left uninitialized so that
2318     multiple parsers can coexist.  */
# Line 2609 | Line 2326 | int yydebug;
2326  
2327  
2328   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2329 < #ifndef YYINITDEPTH
2329 > #ifndef YYINITDEPTH
2330   # define YYINITDEPTH 200
2331   #endif
2332  
# Line 2632 | Line 2349 | int yydebug;
2349   #   define yystrlen strlen
2350   #  else
2351   /* Return the length of YYSTR.  */
2635 #if (defined __STDC__ || defined __C99__FUNC__ \
2636     || defined __cplusplus || defined _MSC_VER)
2352   static YYSIZE_T
2353   yystrlen (const char *yystr)
2639 #else
2640 static YYSIZE_T
2641 yystrlen (yystr)
2642    const char *yystr;
2643 #endif
2354   {
2355    YYSIZE_T yylen;
2356    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2656 | Line 2366 | yystrlen (yystr)
2366   #  else
2367   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2368     YYDEST.  */
2659 #if (defined __STDC__ || defined __C99__FUNC__ \
2660     || defined __cplusplus || defined _MSC_VER)
2369   static char *
2370   yystpcpy (char *yydest, const char *yysrc)
2663 #else
2664 static char *
2665 yystpcpy (yydest, yysrc)
2666    char *yydest;
2667    const char *yysrc;
2668 #endif
2371   {
2372    char *yyd = yydest;
2373    const char *yys = yysrc;
# Line 2695 | Line 2397 | yytnamerr (char *yyres, const char *yyst
2397        char const *yyp = yystr;
2398  
2399        for (;;)
2400 <        switch (*++yyp)
2401 <          {
2402 <          case '\'':
2403 <          case ',':
2404 <            goto do_not_strip_quotes;
2405 <
2406 <          case '\\':
2407 <            if (*++yyp != '\\')
2408 <              goto do_not_strip_quotes;
2409 <            /* Fall through.  */
2410 <          default:
2411 <            if (yyres)
2412 <              yyres[yyn] = *yyp;
2413 <            yyn++;
2414 <            break;
2415 <
2416 <          case '"':
2417 <            if (yyres)
2418 <              yyres[yyn] = '\0';
2419 <            return yyn;
2420 <          }
2400 >        switch (*++yyp)
2401 >          {
2402 >          case '\'':
2403 >          case ',':
2404 >            goto do_not_strip_quotes;
2405 >
2406 >          case '\\':
2407 >            if (*++yyp != '\\')
2408 >              goto do_not_strip_quotes;
2409 >            /* Fall through.  */
2410 >          default:
2411 >            if (yyres)
2412 >              yyres[yyn] = *yyp;
2413 >            yyn++;
2414 >            break;
2415 >
2416 >          case '"':
2417 >            if (yyres)
2418 >              yyres[yyn] = '\0';
2419 >            return yyn;
2420 >          }
2421      do_not_strip_quotes: ;
2422      }
2423  
# Line 2738 | Line 2440 | static int
2440   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2441                  yytype_int16 *yyssp, int yytoken)
2442   {
2443 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2443 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2444    YYSIZE_T yysize = yysize0;
2445    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2446    /* Internationalized format string. */
2447 <  const char *yyformat = YY_NULL;
2447 >  const char *yyformat = YY_NULLPTR;
2448    /* Arguments of yyformat. */
2449    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2450    /* Number of reported tokens (one for the "unexpected", one per
# Line 2750 | Line 2452 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2452    int yycount = 0;
2453  
2454    /* There are many possibilities here to consider:
2753     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2754       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2755       for details.  YYERROR is fine as it does not invoke this
2756       function.
2455       - If this state is a consistent state with a default action, then
2456         the only way this function was invoked is if the default action
2457         is an error action.  In that case, don't check for expected
# Line 2803 | Line 2501 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2501                    }
2502                  yyarg[yycount++] = yytname[yyx];
2503                  {
2504 <                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2504 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2505                    if (! (yysize <= yysize1
2506                           && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2507                      return 2;
# Line 2870 | Line 2568 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2568   | Release the memory associated to this symbol.  |
2569   `-----------------------------------------------*/
2570  
2873 /*ARGSUSED*/
2874 #if (defined __STDC__ || defined __C99__FUNC__ \
2875     || defined __cplusplus || defined _MSC_VER)
2571   static void
2572   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2878 #else
2879 static void
2880 yydestruct (yymsg, yytype, yyvaluep)
2881    const char *yymsg;
2882    int yytype;
2883    YYSTYPE *yyvaluep;
2884 #endif
2573   {
2574    YYUSE (yyvaluep);
2887
2575    if (!yymsg)
2576      yymsg = "Deleting";
2577    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2578  
2579 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2580    YYUSE (yytype);
2581 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2582   }
2583  
2584  
# Line 2898 | Line 2587 | yydestruct (yymsg, yytype, yyvaluep)
2587   /* The lookahead symbol.  */
2588   int yychar;
2589  
2901
2902 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2903 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2904 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2905 #endif
2906 #ifndef YY_INITIAL_VALUE
2907 # define YY_INITIAL_VALUE(Value) /* Nothing. */
2908 #endif
2909
2590   /* The semantic value of the lookahead symbol.  */
2591 < YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2912 <
2591 > YYSTYPE yylval;
2592   /* Number of syntax errors so far.  */
2593   int yynerrs;
2594  
# Line 2918 | Line 2597 | int yynerrs;
2597   | yyparse.  |
2598   `----------*/
2599  
2921 #ifdef YYPARSE_PARAM
2922 #if (defined __STDC__ || defined __C99__FUNC__ \
2923     || defined __cplusplus || defined _MSC_VER)
2924 int
2925 yyparse (void *YYPARSE_PARAM)
2926 #else
2927 int
2928 yyparse (YYPARSE_PARAM)
2929    void *YYPARSE_PARAM;
2930 #endif
2931 #else /* ! YYPARSE_PARAM */
2932 #if (defined __STDC__ || defined __C99__FUNC__ \
2933     || defined __cplusplus || defined _MSC_VER)
2600   int
2601   yyparse (void)
2936 #else
2937 int
2938 yyparse ()
2939
2940 #endif
2941 #endif
2602   {
2603      int yystate;
2604      /* Number of tokens to shift before error messages enabled.  */
2605      int yyerrstatus;
2606  
2607      /* The stacks and their tools:
2608 <       `yyss': related to states.
2609 <       `yyvs': related to semantic values.
2608 >       'yyss': related to states.
2609 >       'yyvs': related to semantic values.
2610  
2611         Refer to the stacks through separate pointers, to allow yyoverflow
2612         to reallocate them elsewhere.  */
# Line 3014 | Line 2674 | yyparse ()
2674  
2675   #ifdef yyoverflow
2676        {
2677 <        /* Give user a chance to reallocate the stack.  Use copies of
2678 <           these so that the &'s don't force the real ones into
2679 <           memory.  */
2680 <        YYSTYPE *yyvs1 = yyvs;
2681 <        yytype_int16 *yyss1 = yyss;
2682 <
2683 <        /* Each stack pointer address is followed by the size of the
2684 <           data in use in that stack, in bytes.  This used to be a
2685 <           conditional around just the two extra args, but that might
2686 <           be undefined if yyoverflow is a macro.  */
2687 <        yyoverflow (YY_("memory exhausted"),
2688 <                    &yyss1, yysize * sizeof (*yyssp),
2689 <                    &yyvs1, yysize * sizeof (*yyvsp),
2690 <                    &yystacksize);
2677 >        /* Give user a chance to reallocate the stack.  Use copies of
2678 >           these so that the &'s don't force the real ones into
2679 >           memory.  */
2680 >        YYSTYPE *yyvs1 = yyvs;
2681 >        yytype_int16 *yyss1 = yyss;
2682 >
2683 >        /* Each stack pointer address is followed by the size of the
2684 >           data in use in that stack, in bytes.  This used to be a
2685 >           conditional around just the two extra args, but that might
2686 >           be undefined if yyoverflow is a macro.  */
2687 >        yyoverflow (YY_("memory exhausted"),
2688 >                    &yyss1, yysize * sizeof (*yyssp),
2689 >                    &yyvs1, yysize * sizeof (*yyvsp),
2690 >                    &yystacksize);
2691  
2692 <        yyss = yyss1;
2693 <        yyvs = yyvs1;
2692 >        yyss = yyss1;
2693 >        yyvs = yyvs1;
2694        }
2695   #else /* no yyoverflow */
2696   # ifndef YYSTACK_RELOCATE
# Line 3038 | Line 2698 | yyparse ()
2698   # else
2699        /* Extend the stack our own way.  */
2700        if (YYMAXDEPTH <= yystacksize)
2701 <        goto yyexhaustedlab;
2701 >        goto yyexhaustedlab;
2702        yystacksize *= 2;
2703        if (YYMAXDEPTH < yystacksize)
2704 <        yystacksize = YYMAXDEPTH;
2704 >        yystacksize = YYMAXDEPTH;
2705  
2706        {
2707 <        yytype_int16 *yyss1 = yyss;
2708 <        union yyalloc *yyptr =
2709 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2710 <        if (! yyptr)
2711 <          goto yyexhaustedlab;
2712 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2713 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2707 >        yytype_int16 *yyss1 = yyss;
2708 >        union yyalloc *yyptr =
2709 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2710 >        if (! yyptr)
2711 >          goto yyexhaustedlab;
2712 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2713 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2714   #  undef YYSTACK_RELOCATE
2715 <        if (yyss1 != yyssa)
2716 <          YYSTACK_FREE (yyss1);
2715 >        if (yyss1 != yyssa)
2716 >          YYSTACK_FREE (yyss1);
2717        }
2718   # endif
2719   #endif /* no yyoverflow */
# Line 3062 | Line 2722 | yyparse ()
2722        yyvsp = yyvs + yysize - 1;
2723  
2724        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2725 <                  (unsigned long int) yystacksize));
2725 >                  (unsigned long int) yystacksize));
2726  
2727        if (yyss + yystacksize - 1 <= yyssp)
2728 <        YYABORT;
2728 >        YYABORT;
2729      }
2730  
2731    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3094 | Line 2754 | yybackup:
2754    if (yychar == YYEMPTY)
2755      {
2756        YYDPRINTF ((stderr, "Reading a token: "));
2757 <      yychar = YYLEX;
2757 >      yychar = yylex ();
2758      }
2759  
2760    if (yychar <= YYEOF)
# Line 3159 | Line 2819 | yyreduce:
2819    yylen = yyr2[yyn];
2820  
2821    /* If YYLEN is nonzero, implement the default value of the action:
2822 <     `$$ = $1'.
2822 >     '$$ = $1'.
2823  
2824       Otherwise, the following line sets YYVAL to garbage.
2825       This behavior is undocumented and Bison
# Line 3172 | Line 2832 | yyreduce:
2832    YY_REDUCE_PRINT (yyn);
2833    switch (yyn)
2834      {
2835 <        case 26:
2836 < /* Line 1787 of yacc.c  */
3177 < #line 392 "conf_parser.y"
2835 >        case 28:
2836 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2837      { (yyval.number) = 0; }
2838 <    break;
3180 <
3181 <  case 28:
3182 < /* Line 1787 of yacc.c  */
3183 < #line 394 "conf_parser.y"
3184 <    {
3185 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3186 <                }
3187 <    break;
3188 <
3189 <  case 29:
3190 < /* Line 1787 of yacc.c  */
3191 < #line 398 "conf_parser.y"
3192 <    {
3193 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3194 <                }
2838 > #line 2839 "conf_parser.c" /* yacc.c:1646  */
2839      break;
2840  
2841    case 30:
2842 < /* Line 1787 of yacc.c  */
2843 < #line 402 "conf_parser.y"
2844 <    {
3201 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3202 <                }
2842 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2843 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2844 > #line 2845 "conf_parser.c" /* yacc.c:1646  */
2845      break;
2846  
2847    case 31:
2848 < /* Line 1787 of yacc.c  */
2849 < #line 406 "conf_parser.y"
2850 <    {
3209 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3210 <                }
2848 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2849 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2850 > #line 2851 "conf_parser.c" /* yacc.c:1646  */
2851      break;
2852  
2853    case 32:
2854 < /* Line 1787 of yacc.c  */
2855 < #line 410 "conf_parser.y"
2856 <    {
3217 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3218 <                }
2854 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2855 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2856 > #line 2857 "conf_parser.c" /* yacc.c:1646  */
2857      break;
2858  
2859    case 33:
2860 < /* Line 1787 of yacc.c  */
2861 < #line 414 "conf_parser.y"
2862 <    {
3225 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3226 <                }
2860 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2861 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2862 > #line 2863 "conf_parser.c" /* yacc.c:1646  */
2863      break;
2864  
2865    case 34:
2866 < /* Line 1787 of yacc.c  */
2867 < #line 418 "conf_parser.y"
2868 <    {
3233 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3234 <                }
2866 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2867 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2868 > #line 2869 "conf_parser.c" /* yacc.c:1646  */
2869      break;
2870  
2871    case 35:
2872 < /* Line 1787 of yacc.c  */
2873 < #line 422 "conf_parser.y"
2874 <    {
3241 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3242 <                }
2872 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2873 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2874 > #line 2875 "conf_parser.c" /* yacc.c:1646  */
2875      break;
2876  
2877    case 36:
2878 < /* Line 1787 of yacc.c  */
2879 < #line 427 "conf_parser.y"
2880 <    { (yyval.number) = 0; }
2878 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2879 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2880 > #line 2881 "conf_parser.c" /* yacc.c:1646  */
2881      break;
2882  
2883 <  case 38:
2884 < /* Line 1787 of yacc.c  */
2885 < #line 428 "conf_parser.y"
2886 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2883 >  case 37:
2884 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2885 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2886 > #line 2887 "conf_parser.c" /* yacc.c:1646  */
2887      break;
2888  
2889 <  case 39:
2890 < /* Line 1787 of yacc.c  */
2891 < #line 429 "conf_parser.y"
2892 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2889 >  case 38:
2890 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2891 >    { (yyval.number) = 0; }
2892 > #line 2893 "conf_parser.c" /* yacc.c:1646  */
2893      break;
2894  
2895    case 40:
2896 < /* Line 1787 of yacc.c  */
2897 < #line 430 "conf_parser.y"
2898 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2896 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2897 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2898 > #line 2899 "conf_parser.c" /* yacc.c:1646  */
2899      break;
2900  
2901    case 41:
2902 < /* Line 1787 of yacc.c  */
2903 < #line 431 "conf_parser.y"
2904 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2902 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2903 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2904 > #line 2905 "conf_parser.c" /* yacc.c:1646  */
2905      break;
2906  
2907 <  case 48:
2908 < /* Line 1787 of yacc.c  */
2909 < #line 445 "conf_parser.y"
2910 <    {
3279 <  if (conf_parser_ctx.pass == 2)
3280 <    add_conf_module(libio_basename(yylval.string));
3281 < }
2907 >  case 42:
2908 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2909 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2910 > #line 2911 "conf_parser.c" /* yacc.c:1646  */
2911      break;
2912  
2913 <  case 49:
2914 < /* Line 1787 of yacc.c  */
2915 < #line 451 "conf_parser.y"
2916 <    {
3288 <  if (conf_parser_ctx.pass == 2)
3289 <    mod_add_path(yylval.string);
3290 < }
2913 >  case 43:
2914 > #line 428 "conf_parser.y" /* yacc.c:1646  */
2915 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2916 > #line 2917 "conf_parser.c" /* yacc.c:1646  */
2917      break;
2918  
2919 <  case 75:
2920 < /* Line 1787 of yacc.c  */
3295 < #line 477 "conf_parser.y"
2919 >  case 50:
2920 > #line 442 "conf_parser.y" /* yacc.c:1646  */
2921      {
2922 < #ifdef HAVE_LIBCRYPTO
2923 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3299 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3300 < #endif
3301 < }
3302 <    break;
3303 <
3304 <  case 76:
3305 < /* Line 1787 of yacc.c  */
3306 < #line 483 "conf_parser.y"
3307 <    {
3308 < #ifdef HAVE_LIBCRYPTO
3309 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3310 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3311 < #endif
3312 < }
3313 <    break;
3314 <
3315 <  case 79:
3316 < /* Line 1787 of yacc.c  */
3317 < #line 492 "conf_parser.y"
3318 <    {
3319 < #ifdef HAVE_LIBCRYPTO
3320 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3321 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3322 < #endif
2922 >  if (conf_parser_ctx.pass == 2)
2923 >    add_conf_module(libio_basename(yylval.string));
2924   }
2925 + #line 2926 "conf_parser.c" /* yacc.c:1646  */
2926      break;
2927  
2928 <  case 80:
2929 < /* Line 1787 of yacc.c  */
3328 < #line 498 "conf_parser.y"
2928 >  case 51:
2929 > #line 448 "conf_parser.y" /* yacc.c:1646  */
2930      {
2931 < #ifdef HAVE_LIBCRYPTO
2932 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3332 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3333 < #endif
2931 >  if (conf_parser_ctx.pass == 2)
2932 >    mod_add_path(yylval.string);
2933   }
2934 + #line 2935 "conf_parser.c" /* yacc.c:1646  */
2935      break;
2936  
2937 <  case 81:
2938 < /* Line 1787 of yacc.c  */
3339 < #line 506 "conf_parser.y"
2937 >  case 73:
2938 > #line 478 "conf_parser.y" /* yacc.c:1646  */
2939      {
2940   #ifdef HAVE_LIBCRYPTO
2941 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2941 >  if (conf_parser_ctx.pass == 2)
2942    {
2943 <    if (!ServerInfo.rsa_private_key_file)
2943 >    if (!ConfigServerInfo.rsa_private_key_file)
2944      {
2945        conf_error_report("No rsa_private_key_file specified, SSL disabled");
2946        break;
2947      }
2948  
2949 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
2950 <                                     SSL_FILETYPE_PEM) <= 0 ||
3352 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3353 <                                     SSL_FILETYPE_PEM) <= 0)
2949 >    if (SSL_CTX_use_certificate_chain_file(ConfigServerInfo.server_ctx, yylval.string) <= 0 ||
2950 >        SSL_CTX_use_certificate_chain_file(ConfigServerInfo.client_ctx, yylval.string) <= 0)
2951      {
2952        report_crypto_errors();
2953        conf_error_report("Could not open/read certificate file");
2954        break;
2955      }
2956  
2957 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
2957 >    if (SSL_CTX_use_PrivateKey_file(ConfigServerInfo.server_ctx, ConfigServerInfo.rsa_private_key_file,
2958                                      SSL_FILETYPE_PEM) <= 0 ||
2959 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
2959 >        SSL_CTX_use_PrivateKey_file(ConfigServerInfo.client_ctx, ConfigServerInfo.rsa_private_key_file,
2960                                      SSL_FILETYPE_PEM) <= 0)
2961      {
2962        report_crypto_errors();
# Line 3367 | Line 2964 | yyreduce:
2964        break;
2965      }
2966  
2967 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
2968 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
2967 >    if (!SSL_CTX_check_private_key(ConfigServerInfo.server_ctx) ||
2968 >        !SSL_CTX_check_private_key(ConfigServerInfo.client_ctx))
2969      {
2970        report_crypto_errors();
2971        conf_error_report("Could not read RSA private key");
# Line 3377 | Line 2974 | yyreduce:
2974    }
2975   #endif
2976   }
2977 + #line 2978 "conf_parser.c" /* yacc.c:1646  */
2978      break;
2979  
2980 <  case 82:
2981 < /* Line 1787 of yacc.c  */
3384 < #line 548 "conf_parser.y"
2980 >  case 74:
2981 > #line 518 "conf_parser.y" /* yacc.c:1646  */
2982      {
2983   #ifdef HAVE_LIBCRYPTO
2984 <  if (conf_parser_ctx.pass == 1)
3388 <  {
3389 <    BIO *file;
2984 >  BIO *file = NULL;
2985  
2986 <    if (ServerInfo.rsa_private_key)
2987 <    {
3393 <      RSA_free(ServerInfo.rsa_private_key);
3394 <      ServerInfo.rsa_private_key = NULL;
3395 <    }
2986 >  if (conf_parser_ctx.pass != 1)
2987 >    break;
2988  
2989 <    if (ServerInfo.rsa_private_key_file)
2990 <    {
2991 <      MyFree(ServerInfo.rsa_private_key_file);
2992 <      ServerInfo.rsa_private_key_file = NULL;
2993 <    }
2989 >  if (ConfigServerInfo.rsa_private_key)
2990 >  {
2991 >    RSA_free(ConfigServerInfo.rsa_private_key);
2992 >    ConfigServerInfo.rsa_private_key = NULL;
2993 >  }
2994  
2995 <    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2995 >  if (ConfigServerInfo.rsa_private_key_file)
2996 >  {
2997 >    MyFree(ConfigServerInfo.rsa_private_key_file);
2998 >    ConfigServerInfo.rsa_private_key_file = NULL;
2999 >  }
3000  
3001 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3406 <    {
3407 <      conf_error_report("File open failed, ignoring");
3408 <      break;
3409 <    }
3001 >  ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3002  
3003 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3003 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3004 >  {
3005 >    conf_error_report("File open failed, ignoring");
3006 >    break;
3007 >  }
3008  
3009 <    BIO_set_close(file, BIO_CLOSE);
3414 <    BIO_free(file);
3009 >  ConfigServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3010  
3011 <    if (ServerInfo.rsa_private_key == NULL)
3012 <    {
3418 <      conf_error_report("Couldn't extract key, ignoring");
3419 <      break;
3420 <    }
3011 >  BIO_set_close(file, BIO_CLOSE);
3012 >  BIO_free(file);
3013  
3014 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3015 <    {
3016 <      RSA_free(ServerInfo.rsa_private_key);
3017 <      ServerInfo.rsa_private_key = NULL;
3014 >  if (ConfigServerInfo.rsa_private_key == NULL)
3015 >  {
3016 >    conf_error_report("Couldn't extract key, ignoring");
3017 >    break;
3018 >  }
3019  
3020 <      conf_error_report("Invalid key, ignoring");
3021 <      break;
3022 <    }
3020 >  if (!RSA_check_key(ConfigServerInfo.rsa_private_key))
3021 >  {
3022 >    RSA_free(ConfigServerInfo.rsa_private_key);
3023 >    ConfigServerInfo.rsa_private_key = NULL;
3024  
3025 <    /* require 2048 bit (256 byte) key */
3026 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3027 <    {
3434 <      RSA_free(ServerInfo.rsa_private_key);
3435 <      ServerInfo.rsa_private_key = NULL;
3025 >    conf_error_report("Invalid key, ignoring");
3026 >    break;
3027 >  }
3028  
3029 <      conf_error_report("Not a 2048 bit key, ignoring");
3030 <    }
3029 >  if (RSA_size(ConfigServerInfo.rsa_private_key) < 128)
3030 >  {
3031 >    RSA_free(ConfigServerInfo.rsa_private_key);
3032 >    ConfigServerInfo.rsa_private_key = NULL;
3033 >
3034 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3035    }
3036   #endif
3037   }
3038 + #line 3039 "conf_parser.c" /* yacc.c:1646  */
3039      break;
3040  
3041 <  case 83:
3042 < /* Line 1787 of yacc.c  */
3446 < #line 607 "conf_parser.y"
3041 >  case 75:
3042 > #line 576 "conf_parser.y" /* yacc.c:1646  */
3043      {
3448 /* TBD - XXX: error reporting */
3044   #ifdef HAVE_LIBCRYPTO
3045 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3045 >  if (conf_parser_ctx.pass == 2)
3046    {
3047      BIO *file = BIO_new_file(yylval.string, "r");
3048  
# Line 3462 | Line 3057 | yyreduce:
3057          if (DH_size(dh) < 128)
3058            conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3059          else
3060 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3060 >          SSL_CTX_set_tmp_dh(ConfigServerInfo.server_ctx, dh);
3061  
3062          DH_free(dh);
3063        }
3064      }
3065 +    else
3066 +      conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- could not open/read Diffie-Hellman parameter file");
3067    }
3068   #endif
3069   }
3070 + #line 3071 "conf_parser.c" /* yacc.c:1646  */
3071      break;
3072  
3073 <  case 84:
3074 < /* Line 1787 of yacc.c  */
3477 < #line 635 "conf_parser.y"
3073 >  case 76:
3074 > #line 605 "conf_parser.y" /* yacc.c:1646  */
3075      {
3076   #ifdef HAVE_LIBCRYPTO
3077 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3078 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3077 >  if (conf_parser_ctx.pass == 2)
3078 >    SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);
3079   #endif
3080   }
3081 + #line 3082 "conf_parser.c" /* yacc.c:1646  */
3082      break;
3083  
3084 <  case 85:
3085 < /* Line 1787 of yacc.c  */
3086 < #line 643 "conf_parser.y"
3084 >  case 77:
3085 > #line 613 "conf_parser.y" /* yacc.c:1646  */
3086 >    {
3087 > #ifdef HAVE_LIBCRYPTO
3088 >  if (conf_parser_ctx.pass == 2)
3089 >  {
3090 >    if ((ConfigServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3091 >    {
3092 >      ConfigServerInfo.message_digest_algorithm = EVP_sha256();
3093 >      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3094 >    }
3095 >  }
3096 > #endif
3097 > }
3098 > #line 3099 "conf_parser.c" /* yacc.c:1646  */
3099 >    break;
3100 >
3101 >  case 78:
3102 > #line 627 "conf_parser.y" /* yacc.c:1646  */
3103 >    {
3104 > #ifdef HAVE_LIBCRYPTO
3105 > #if OPENSSL_VERSION_NUMBER >= 0x009080FFL && !defined(OPENSSL_NO_ECDH)
3106 >  int nid = 0;
3107 >  EC_KEY *key = NULL;
3108 >
3109 >  if (conf_parser_ctx.pass == 2)
3110 >  {
3111 >    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3112 >    {
3113 >        conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- unknown curve name");
3114 >        break;
3115 >    }
3116 >
3117 >    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3118 >    {
3119 >      conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- could not create curve");
3120 >      break;
3121 >    }
3122 >
3123 >    SSL_CTX_set_tmp_ecdh(ConfigServerInfo.server_ctx, key);
3124 >    EC_KEY_free(key);
3125 > }
3126 > #endif
3127 > #endif
3128 > }
3129 > #line 3130 "conf_parser.c" /* yacc.c:1646  */
3130 >    break;
3131 >
3132 >  case 79:
3133 > #line 655 "conf_parser.y" /* yacc.c:1646  */
3134      {
3135    /* this isn't rehashable */
3136 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3136 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3137    {
3138      if (valid_servname(yylval.string))
3139 <      ServerInfo.name = xstrdup(yylval.string);
3139 >      ConfigServerInfo.name = xstrdup(yylval.string);
3140      else
3141      {
3142        conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3499 | Line 3144 | yyreduce:
3144      }
3145    }
3146   }
3147 + #line 3148 "conf_parser.c" /* yacc.c:1646  */
3148      break;
3149  
3150 <  case 86:
3151 < /* Line 1787 of yacc.c  */
3506 < #line 658 "conf_parser.y"
3150 >  case 80:
3151 > #line 670 "conf_parser.y" /* yacc.c:1646  */
3152      {
3153    /* this isn't rehashable */
3154 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3154 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3155    {
3156      if (valid_sid(yylval.string))
3157 <      ServerInfo.sid = xstrdup(yylval.string);
3157 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3158      else
3159      {
3160        conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3517 | Line 3162 | yyreduce:
3162      }
3163    }
3164   }
3165 + #line 3166 "conf_parser.c" /* yacc.c:1646  */
3166      break;
3167  
3168 <  case 87:
3169 < /* Line 1787 of yacc.c  */
3524 < #line 673 "conf_parser.y"
3168 >  case 81:
3169 > #line 685 "conf_parser.y" /* yacc.c:1646  */
3170      {
3171    if (conf_parser_ctx.pass == 2)
3172    {
3173 <    MyFree(ServerInfo.description);
3174 <    ServerInfo.description = xstrdup(yylval.string);
3173 >    MyFree(ConfigServerInfo.description);
3174 >    ConfigServerInfo.description = xstrdup(yylval.string);
3175 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3176    }
3177   }
3178 + #line 3179 "conf_parser.c" /* yacc.c:1646  */
3179      break;
3180  
3181 <  case 88:
3182 < /* Line 1787 of yacc.c  */
3536 < #line 682 "conf_parser.y"
3181 >  case 82:
3182 > #line 695 "conf_parser.y" /* yacc.c:1646  */
3183      {
3184    if (conf_parser_ctx.pass == 2)
3185    {
3186      char *p;
3187  
3188 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3189 <      p = '\0';
3188 >    if ((p = strchr(yylval.string, ' ')))
3189 >      *p = '\0';
3190  
3191 <    MyFree(ServerInfo.network_name);
3192 <    ServerInfo.network_name = xstrdup(yylval.string);
3191 >    MyFree(ConfigServerInfo.network_name);
3192 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3193    }
3194   }
3195 + #line 3196 "conf_parser.c" /* yacc.c:1646  */
3196      break;
3197  
3198 <  case 89:
3199 < /* Line 1787 of yacc.c  */
3553 < #line 696 "conf_parser.y"
3198 >  case 83:
3199 > #line 709 "conf_parser.y" /* yacc.c:1646  */
3200      {
3201 <  if (conf_parser_ctx.pass == 2)
3202 <  {
3203 <    MyFree(ServerInfo.network_desc);
3204 <    ServerInfo.network_desc = xstrdup(yylval.string);
3205 <  }
3201 >  if (conf_parser_ctx.pass != 2)
3202 >    break;
3203 >
3204 >  MyFree(ConfigServerInfo.network_desc);
3205 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3206   }
3207 + #line 3208 "conf_parser.c" /* yacc.c:1646  */
3208      break;
3209  
3210 <  case 90:
3211 < /* Line 1787 of yacc.c  */
3565 < #line 705 "conf_parser.y"
3210 >  case 84:
3211 > #line 718 "conf_parser.y" /* yacc.c:1646  */
3212      {
3213    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3214    {
# Line 3578 | Line 3224 | yyreduce:
3224        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3225      else
3226      {
3227 <      assert(res != NULL);
3227 >      assert(res);
3228  
3229 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3230 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3231 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3229 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3230 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3231 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3232        freeaddrinfo(res);
3233  
3234 <      ServerInfo.specific_ipv4_vhost = 1;
3234 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3235      }
3236    }
3237   }
3238 + #line 3239 "conf_parser.c" /* yacc.c:1646  */
3239      break;
3240  
3241 <  case 91:
3242 < /* Line 1787 of yacc.c  */
3596 < #line 733 "conf_parser.y"
3241 >  case 85:
3242 > #line 746 "conf_parser.y" /* yacc.c:1646  */
3243      {
3598 #ifdef IPV6
3244    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3245    {
3246      struct addrinfo hints, *res;
# Line 3610 | Line 3255 | yyreduce:
3255        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3256      else
3257      {
3258 <      assert(res != NULL);
3258 >      assert(res);
3259  
3260 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3261 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3262 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3260 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3261 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3262 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3263        freeaddrinfo(res);
3264  
3265 <      ServerInfo.specific_ipv6_vhost = 1;
3265 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3266      }
3267    }
3623 #endif
3268   }
3269 + #line 3270 "conf_parser.c" /* yacc.c:1646  */
3270      break;
3271  
3272 <  case 92:
3273 < /* Line 1787 of yacc.c  */
3629 < #line 763 "conf_parser.y"
3272 >  case 86:
3273 > #line 774 "conf_parser.y" /* yacc.c:1646  */
3274      {
3275    if (conf_parser_ctx.pass != 2)
3276      break;
3277  
3278 <  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3278 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3279    {
3280 <    char buf[IRCD_BUFSIZE];
3280 >    char buf[IRCD_BUFSIZE] = "";
3281  
3282      snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3283      conf_error_report(buf);
3284 <    ServerInfo.max_clients = MAXCLIENTS_MIN;
3284 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3285    }
3286 <  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3286 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3287    {
3288 <    char buf[IRCD_BUFSIZE];
3288 >    char buf[IRCD_BUFSIZE] = "";
3289  
3290      snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3291      conf_error_report(buf);
3292 <    ServerInfo.max_clients = MAXCLIENTS_MAX;
3292 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3293    }
3294    else
3295 <    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3295 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3296   }
3297 + #line 3298 "conf_parser.c" /* yacc.c:1646  */
3298      break;
3299  
3300 <  case 93:
3301 < /* Line 1787 of yacc.c  */
3657 < #line 788 "conf_parser.y"
3300 >  case 87:
3301 > #line 799 "conf_parser.y" /* yacc.c:1646  */
3302      {
3303    if (conf_parser_ctx.pass != 2)
3304      break;
3305  
3306 <  if ((yyvsp[(3) - (4)].number) < 9)
3306 >  if ((yyvsp[-1].number) < 9)
3307    {
3308      conf_error_report("max_nick_length too low, setting to 9");
3309 <    ServerInfo.max_nick_length = 9;
3309 >    ConfigServerInfo.max_nick_length = 9;
3310    }
3311 <  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3311 >  else if ((yyvsp[-1].number) > NICKLEN)
3312    {
3313 <    char buf[IRCD_BUFSIZE];
3313 >    char buf[IRCD_BUFSIZE] = "";
3314  
3315      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3316      conf_error_report(buf);
3317 <    ServerInfo.max_nick_length = NICKLEN;
3317 >    ConfigServerInfo.max_nick_length = NICKLEN;
3318    }
3319    else
3320 <    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3320 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3321   }
3322 + #line 3323 "conf_parser.c" /* yacc.c:1646  */
3323      break;
3324  
3325 <  case 94:
3326 < /* Line 1787 of yacc.c  */
3682 < #line 810 "conf_parser.y"
3325 >  case 88:
3326 > #line 821 "conf_parser.y" /* yacc.c:1646  */
3327      {
3328    if (conf_parser_ctx.pass != 2)
3329      break;
3330  
3331 <  if ((yyvsp[(3) - (4)].number) < 80)
3331 >  if ((yyvsp[-1].number) < 80)
3332    {
3333      conf_error_report("max_topic_length too low, setting to 80");
3334 <    ServerInfo.max_topic_length = 80;
3334 >    ConfigServerInfo.max_topic_length = 80;
3335    }
3336 <  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3336 >  else if ((yyvsp[-1].number) > TOPICLEN)
3337    {
3338 <    char buf[IRCD_BUFSIZE];
3338 >    char buf[IRCD_BUFSIZE] = "";
3339  
3340      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3341      conf_error_report(buf);
3342 <    ServerInfo.max_topic_length = TOPICLEN;
3342 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3343    }
3344    else
3345 <    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3345 >    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3346   }
3347 + #line 3348 "conf_parser.c" /* yacc.c:1646  */
3348      break;
3349  
3350 <  case 95:
3351 < /* Line 1787 of yacc.c  */
3707 < #line 832 "conf_parser.y"
3350 >  case 89:
3351 > #line 843 "conf_parser.y" /* yacc.c:1646  */
3352      {
3353    if (conf_parser_ctx.pass == 2)
3354 <    ServerInfo.hub = yylval.number;
3354 >    ConfigServerInfo.hub = yylval.number;
3355 > }
3356 > #line 3357 "conf_parser.c" /* yacc.c:1646  */
3357 >    break;
3358 >
3359 >  case 97:
3360 > #line 860 "conf_parser.y" /* yacc.c:1646  */
3361 >    {
3362 >  if (conf_parser_ctx.pass != 2)
3363 >    break;
3364 >
3365 >  MyFree(ConfigAdminInfo.name);
3366 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3367   }
3368 + #line 3369 "conf_parser.c" /* yacc.c:1646  */
3369      break;
3370  
3371 <  case 103:
3372 < /* Line 1787 of yacc.c  */
3373 < #line 847 "conf_parser.y"
3371 >  case 98:
3372 > #line 869 "conf_parser.y" /* yacc.c:1646  */
3373 >    {
3374 >  if (conf_parser_ctx.pass != 2)
3375 >    break;
3376 >
3377 >  MyFree(ConfigAdminInfo.email);
3378 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3379 > }
3380 > #line 3381 "conf_parser.c" /* yacc.c:1646  */
3381 >    break;
3382 >
3383 >  case 99:
3384 > #line 878 "conf_parser.y" /* yacc.c:1646  */
3385 >    {
3386 >  if (conf_parser_ctx.pass != 2)
3387 >    break;
3388 >
3389 >  MyFree(ConfigAdminInfo.description);
3390 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3391 > }
3392 > #line 3393 "conf_parser.c" /* yacc.c:1646  */
3393 >    break;
3394 >
3395 >  case 100:
3396 > #line 890 "conf_parser.y" /* yacc.c:1646  */
3397      {
3398    if (conf_parser_ctx.pass == 2)
3399 <  {
3400 <    MyFree(AdminInfo.name);
3401 <    AdminInfo.name = xstrdup(yylval.string);
3402 <  }
3399 >    reset_block_state();
3400 > }
3401 > #line 3402 "conf_parser.c" /* yacc.c:1646  */
3402 >    break;
3403 >
3404 >  case 101:
3405 > #line 894 "conf_parser.y" /* yacc.c:1646  */
3406 >    {
3407 >  dlink_node *node = NULL;
3408 >
3409 >  if (conf_parser_ctx.pass != 2)
3410 >    break;
3411 >
3412 >  if (!block_state.file.buf[0])
3413 >    break;
3414 >
3415 >  DLINK_FOREACH(node, block_state.mask.list.head)
3416 >    motd_add(node->data, block_state.file.buf);
3417   }
3418 + #line 3419 "conf_parser.c" /* yacc.c:1646  */
3419      break;
3420  
3421 <  case 104:
3422 < /* Line 1787 of yacc.c  */
3728 < #line 856 "conf_parser.y"
3421 >  case 107:
3422 > #line 911 "conf_parser.y" /* yacc.c:1646  */
3423      {
3424    if (conf_parser_ctx.pass == 2)
3425 <  {
3426 <    MyFree(AdminInfo.email);
3427 <    AdminInfo.email = xstrdup(yylval.string);
3428 <  }
3425 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3426 > }
3427 > #line 3428 "conf_parser.c" /* yacc.c:1646  */
3428 >    break;
3429 >
3430 >  case 108:
3431 > #line 917 "conf_parser.y" /* yacc.c:1646  */
3432 >    {
3433 >  if (conf_parser_ctx.pass == 2)
3434 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3435 > }
3436 > #line 3437 "conf_parser.c" /* yacc.c:1646  */
3437 >    break;
3438 >
3439 >  case 109:
3440 > #line 926 "conf_parser.y" /* yacc.c:1646  */
3441 >    {
3442 >  if (conf_parser_ctx.pass == 2)
3443 >    reset_block_state();
3444   }
3445 + #line 3446 "conf_parser.c" /* yacc.c:1646  */
3446      break;
3447  
3448 <  case 105:
3449 < /* Line 1787 of yacc.c  */
3450 < #line 865 "conf_parser.y"
3448 >  case 110:
3449 > #line 930 "conf_parser.y" /* yacc.c:1646  */
3450 >    {
3451 >  if (conf_parser_ctx.pass != 2)
3452 >    break;
3453 >
3454 >  if (!block_state.command.buf[0] ||
3455 >      !block_state.name.buf[0] ||
3456 >      !block_state.nick.buf[0] ||
3457 >      !block_state.host.buf[0])
3458 >    break;
3459 >
3460 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3461 >                  block_state.prepend.buf, block_state.command.buf);
3462 > }
3463 > #line 3464 "conf_parser.c" /* yacc.c:1646  */
3464 >    break;
3465 >
3466 >  case 118:
3467 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3468 >    {
3469 >  if (conf_parser_ctx.pass == 2)
3470 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3471 > }
3472 > #line 3473 "conf_parser.c" /* yacc.c:1646  */
3473 >    break;
3474 >
3475 >  case 119:
3476 > #line 954 "conf_parser.y" /* yacc.c:1646  */
3477 >    {
3478 >  if (conf_parser_ctx.pass == 2)
3479 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3480 > }
3481 > #line 3482 "conf_parser.c" /* yacc.c:1646  */
3482 >    break;
3483 >
3484 >  case 120:
3485 > #line 960 "conf_parser.y" /* yacc.c:1646  */
3486 >    {
3487 >  if (conf_parser_ctx.pass == 2)
3488 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3489 > }
3490 > #line 3491 "conf_parser.c" /* yacc.c:1646  */
3491 >    break;
3492 >
3493 >  case 121:
3494 > #line 966 "conf_parser.y" /* yacc.c:1646  */
3495      {
3496    if (conf_parser_ctx.pass == 2)
3497    {
3498 <    MyFree(AdminInfo.description);
3499 <    AdminInfo.description = xstrdup(yylval.string);
3498 >    struct split_nuh_item nuh;
3499 >
3500 >    nuh.nuhmask  = yylval.string;
3501 >    nuh.nickptr  = NULL;
3502 >    nuh.userptr  = block_state.nick.buf;
3503 >    nuh.hostptr  = block_state.host.buf;
3504 >    nuh.nicksize = 0;
3505 >    nuh.usersize = sizeof(block_state.nick.buf);
3506 >    nuh.hostsize = sizeof(block_state.host.buf);
3507 >
3508 >    split_nuh(&nuh);
3509    }
3510   }
3511 + #line 3512 "conf_parser.c" /* yacc.c:1646  */
3512      break;
3513  
3514 <  case 112:
3515 < /* Line 1787 of yacc.c  */
3752 < #line 883 "conf_parser.y"
3514 >  case 128:
3515 > #line 993 "conf_parser.y" /* yacc.c:1646  */
3516      {
3517    if (conf_parser_ctx.pass == 2)
3518 <    ConfigLoggingEntry.use_logging = yylval.number;
3518 >    ConfigLog.use_logging = yylval.number;
3519   }
3520 + #line 3521 "conf_parser.c" /* yacc.c:1646  */
3521      break;
3522  
3523 <  case 113:
3524 < /* Line 1787 of yacc.c  */
3761 < #line 889 "conf_parser.y"
3523 >  case 129:
3524 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3525      {
3526    if (conf_parser_ctx.pass == 2)
3527      reset_block_state();
3528   }
3529 + #line 3530 "conf_parser.c" /* yacc.c:1646  */
3530      break;
3531  
3532 <  case 114:
3533 < /* Line 1787 of yacc.c  */
3770 < #line 893 "conf_parser.y"
3532 >  case 130:
3533 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3534      {
3535    if (conf_parser_ctx.pass != 2)
3536      break;
# Line 3776 | Line 3539 | yyreduce:
3539      log_set_file(block_state.type.value, block_state.size.value,
3540                   block_state.file.buf);
3541   }
3542 + #line 3543 "conf_parser.c" /* yacc.c:1646  */
3543      break;
3544  
3545 <  case 121:
3546 < /* Line 1787 of yacc.c  */
3783 < #line 909 "conf_parser.y"
3545 >  case 137:
3546 > #line 1019 "conf_parser.y" /* yacc.c:1646  */
3547      {
3548    if (conf_parser_ctx.pass != 2)
3549      break;
3550  
3551    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3552   }
3553 + #line 3554 "conf_parser.c" /* yacc.c:1646  */
3554      break;
3555  
3556 <  case 122:
3557 < /* Line 1787 of yacc.c  */
3794 < #line 917 "conf_parser.y"
3556 >  case 138:
3557 > #line 1027 "conf_parser.y" /* yacc.c:1646  */
3558      {
3559 <  block_state.size.value = (yyvsp[(3) - (4)].number);
3559 >  block_state.size.value = (yyvsp[-1].number);
3560   }
3561 + #line 3562 "conf_parser.c" /* yacc.c:1646  */
3562      break;
3563  
3564 <  case 123:
3565 < /* Line 1787 of yacc.c  */
3802 < #line 920 "conf_parser.y"
3564 >  case 139:
3565 > #line 1030 "conf_parser.y" /* yacc.c:1646  */
3566      {
3567    block_state.size.value = 0;
3568   }
3569 + #line 3570 "conf_parser.c" /* yacc.c:1646  */
3570      break;
3571  
3572 <  case 124:
3573 < /* Line 1787 of yacc.c  */
3810 < #line 925 "conf_parser.y"
3572 >  case 140:
3573 > #line 1035 "conf_parser.y" /* yacc.c:1646  */
3574      {
3575    if (conf_parser_ctx.pass == 2)
3576      block_state.type.value = 0;
3577   }
3578 + #line 3579 "conf_parser.c" /* yacc.c:1646  */
3579      break;
3580  
3581 <  case 128:
3582 < /* Line 1787 of yacc.c  */
3819 < #line 932 "conf_parser.y"
3581 >  case 144:
3582 > #line 1042 "conf_parser.y" /* yacc.c:1646  */
3583      {
3584    if (conf_parser_ctx.pass == 2)
3585      block_state.type.value = LOG_TYPE_USER;
3586   }
3587 + #line 3588 "conf_parser.c" /* yacc.c:1646  */
3588      break;
3589  
3590 <  case 129:
3591 < /* Line 1787 of yacc.c  */
3828 < #line 936 "conf_parser.y"
3590 >  case 145:
3591 > #line 1046 "conf_parser.y" /* yacc.c:1646  */
3592      {
3593    if (conf_parser_ctx.pass == 2)
3594      block_state.type.value = LOG_TYPE_OPER;
3595   }
3596 + #line 3597 "conf_parser.c" /* yacc.c:1646  */
3597      break;
3598  
3599 <  case 130:
3600 < /* Line 1787 of yacc.c  */
3601 < #line 940 "conf_parser.y"
3599 >  case 146:
3600 > #line 1050 "conf_parser.y" /* yacc.c:1646  */
3601 >    {
3602 >  if (conf_parser_ctx.pass == 2)
3603 >    block_state.type.value = LOG_TYPE_XLINE;
3604 > }
3605 > #line 3606 "conf_parser.c" /* yacc.c:1646  */
3606 >    break;
3607 >
3608 >  case 147:
3609 > #line 1054 "conf_parser.y" /* yacc.c:1646  */
3610      {
3611    if (conf_parser_ctx.pass == 2)
3612 <    block_state.type.value = LOG_TYPE_GLINE;
3612 >    block_state.type.value = LOG_TYPE_RESV;
3613   }
3614 + #line 3615 "conf_parser.c" /* yacc.c:1646  */
3615      break;
3616  
3617 <  case 131:
3618 < /* Line 1787 of yacc.c  */
3846 < #line 944 "conf_parser.y"
3617 >  case 148:
3618 > #line 1058 "conf_parser.y" /* yacc.c:1646  */
3619      {
3620    if (conf_parser_ctx.pass == 2)
3621      block_state.type.value = LOG_TYPE_DLINE;
3622   }
3623 + #line 3624 "conf_parser.c" /* yacc.c:1646  */
3624      break;
3625  
3626 <  case 132:
3627 < /* Line 1787 of yacc.c  */
3855 < #line 948 "conf_parser.y"
3626 >  case 149:
3627 > #line 1062 "conf_parser.y" /* yacc.c:1646  */
3628      {
3629    if (conf_parser_ctx.pass == 2)
3630      block_state.type.value = LOG_TYPE_KLINE;
3631   }
3632 + #line 3633 "conf_parser.c" /* yacc.c:1646  */
3633      break;
3634  
3635 <  case 133:
3636 < /* Line 1787 of yacc.c  */
3864 < #line 952 "conf_parser.y"
3635 >  case 150:
3636 > #line 1066 "conf_parser.y" /* yacc.c:1646  */
3637      {
3638    if (conf_parser_ctx.pass == 2)
3639      block_state.type.value = LOG_TYPE_KILL;
3640   }
3641 + #line 3642 "conf_parser.c" /* yacc.c:1646  */
3642      break;
3643  
3644 <  case 134:
3645 < /* Line 1787 of yacc.c  */
3873 < #line 956 "conf_parser.y"
3644 >  case 151:
3645 > #line 1070 "conf_parser.y" /* yacc.c:1646  */
3646      {
3647    if (conf_parser_ctx.pass == 2)
3648      block_state.type.value = LOG_TYPE_DEBUG;
3649   }
3650 + #line 3651 "conf_parser.c" /* yacc.c:1646  */
3651      break;
3652  
3653 <  case 135:
3654 < /* Line 1787 of yacc.c  */
3882 < #line 966 "conf_parser.y"
3653 >  case 152:
3654 > #line 1080 "conf_parser.y" /* yacc.c:1646  */
3655      {
3656    if (conf_parser_ctx.pass != 2)
3657      break;
# Line 3887 | Line 3659 | yyreduce:
3659    reset_block_state();
3660    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3661   }
3662 + #line 3663 "conf_parser.c" /* yacc.c:1646  */
3663      break;
3664  
3665 <  case 136:
3666 < /* Line 1787 of yacc.c  */
3894 < #line 973 "conf_parser.y"
3665 >  case 153:
3666 > #line 1087 "conf_parser.y" /* yacc.c:1646  */
3667      {
3668 <  dlink_node *ptr = NULL;
3668 >  dlink_node *node = NULL;
3669  
3670    if (conf_parser_ctx.pass != 2)
3671      break;
# Line 3901 | Line 3673 | yyreduce:
3673    if (!block_state.name.buf[0])
3674      break;
3675   #ifdef HAVE_LIBCRYPTO
3676 <  if (!(block_state.file.buf[0] ||
3677 <        block_state.rpass.buf[0]))
3676 >  if (!block_state.file.buf[0] &&
3677 >      !block_state.rpass.buf[0])
3678      break;
3679   #else
3680    if (!block_state.rpass.buf[0])
3681      break;
3682   #endif
3683  
3684 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3684 >  DLINK_FOREACH(node, block_state.mask.list.head)
3685    {
3686      struct MaskItem *conf = NULL;
3687      struct split_nuh_item nuh;
3688  
3689 <    nuh.nuhmask  = ptr->data;
3689 >    nuh.nuhmask  = node->data;
3690      nuh.nickptr  = NULL;
3691      nuh.userptr  = block_state.user.buf;
3692      nuh.hostptr  = block_state.host.buf;
# Line 3923 | Line 3695 | yyreduce:
3695      nuh.hostsize = sizeof(block_state.host.buf);
3696      split_nuh(&nuh);
3697  
3698 <    conf        = conf_make(CONF_OPER);
3699 <    conf->name  = xstrdup(block_state.name.buf);
3700 <    conf->user  = xstrdup(block_state.user.buf);
3701 <    conf->host  = xstrdup(block_state.host.buf);
3698 >    conf         = conf_make(CONF_OPER);
3699 >    conf->name   = xstrdup(block_state.name.buf);
3700 >    conf->user   = xstrdup(block_state.user.buf);
3701 >    conf->host   = xstrdup(block_state.host.buf);
3702 >
3703 >    if (block_state.cert.buf[0])
3704 >      conf->certfp = xstrdup(block_state.cert.buf);
3705  
3706      if (block_state.rpass.buf[0])
3707        conf->passwd = xstrdup(block_state.rpass.buf);
3708  
3709 +    if (block_state.whois.buf[0])
3710 +      conf->whois = xstrdup(block_state.whois.buf);
3711 +
3712      conf->flags = block_state.flags.value;
3713      conf->modes = block_state.modes.value;
3714      conf->port  = block_state.port.value;
# Line 3946 | Line 3724 | yyreduce:
3724  
3725        if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3726        {
3727 <        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3727 >        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- file doesn't exist");
3728          break;
3729        }
3730  
3731        if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3732 <        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3732 >        ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key invalid; check key syntax");
3733 >      else
3734 >      {
3735 >        if (RSA_size(pkey) > 128)
3736 >          ilog(LOG_TYPE_IRCD, "Ignoring rsa_public_key_file -- key size must be 1024 or below");
3737 >        else
3738 >          conf->rsa_public_key = pkey;
3739 >      }
3740  
3956      conf->rsa_public_key = pkey;
3741        BIO_set_close(file, BIO_CLOSE);
3742        BIO_free(file);
3743      }
3744   #endif /* HAVE_LIBCRYPTO */
3745    }
3746   }
3747 + #line 3748 "conf_parser.c" /* yacc.c:1646  */
3748      break;
3749  
3750 <  case 148:
3751 < /* Line 1787 of yacc.c  */
3967 < #line 1048 "conf_parser.y"
3750 >  case 168:
3751 > #line 1183 "conf_parser.y" /* yacc.c:1646  */
3752      {
3753    if (conf_parser_ctx.pass == 2)
3754      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3755   }
3756 + #line 3757 "conf_parser.c" /* yacc.c:1646  */
3757      break;
3758  
3759 <  case 149:
3760 < /* Line 1787 of yacc.c  */
3976 < #line 1054 "conf_parser.y"
3759 >  case 169:
3760 > #line 1189 "conf_parser.y" /* yacc.c:1646  */
3761      {
3762    if (conf_parser_ctx.pass == 2)
3763      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3764   }
3765 + #line 3766 "conf_parser.c" /* yacc.c:1646  */
3766      break;
3767  
3768 <  case 150:
3769 < /* Line 1787 of yacc.c  */
3985 < #line 1060 "conf_parser.y"
3768 >  case 170:
3769 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3770      {
3771    if (conf_parser_ctx.pass == 2)
3772      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3773   }
3774 + #line 3775 "conf_parser.c" /* yacc.c:1646  */
3775      break;
3776  
3777 <  case 151:
3778 < /* Line 1787 of yacc.c  */
3994 < #line 1066 "conf_parser.y"
3777 >  case 171:
3778 > #line 1201 "conf_parser.y" /* yacc.c:1646  */
3779      {
3780    if (conf_parser_ctx.pass == 2)
3781 <  {
3998 <    if (yylval.number)
3999 <      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4000 <    else
4001 <      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4002 <  }
3781 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3782   }
3783 + #line 3784 "conf_parser.c" /* yacc.c:1646  */
3784      break;
3785  
3786 <  case 152:
3787 < /* Line 1787 of yacc.c  */
3788 < #line 1077 "conf_parser.y"
3786 >  case 172:
3787 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3788 >    {
3789 >  if (conf_parser_ctx.pass != 2)
3790 >    break;
3791 >
3792 >  if (yylval.number)
3793 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3794 >  else
3795 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3796 > }
3797 > #line 3798 "conf_parser.c" /* yacc.c:1646  */
3798 >    break;
3799 >
3800 >  case 173:
3801 > #line 1218 "conf_parser.y" /* yacc.c:1646  */
3802      {
3803    if (conf_parser_ctx.pass == 2)
3804      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3805   }
3806 + #line 3807 "conf_parser.c" /* yacc.c:1646  */
3807      break;
3808  
3809 <  case 153:
3810 < /* Line 1787 of yacc.c  */
4017 < #line 1083 "conf_parser.y"
3809 >  case 174:
3810 > #line 1224 "conf_parser.y" /* yacc.c:1646  */
3811      {
3812    if (conf_parser_ctx.pass == 2)
3813 <    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3813 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3814   }
3815 + #line 3816 "conf_parser.c" /* yacc.c:1646  */
3816      break;
3817  
3818 <  case 154:
3819 < /* Line 1787 of yacc.c  */
3820 < #line 1089 "conf_parser.y"
3818 >  case 175:
3819 > #line 1230 "conf_parser.y" /* yacc.c:1646  */
3820 >    {
3821 >  if (conf_parser_ctx.pass != 2)
3822 >    break;
3823 >
3824 >  if (yylval.number)
3825 >    block_state.flags.value |= CONF_FLAGS_SSL;
3826 >  else
3827 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3828 > }
3829 > #line 3830 "conf_parser.c" /* yacc.c:1646  */
3830 >    break;
3831 >
3832 >  case 176:
3833 > #line 1241 "conf_parser.y" /* yacc.c:1646  */
3834      {
3835    if (conf_parser_ctx.pass == 2)
3836 <    block_state.modes.value = 0;
3836 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3837   }
3838 + #line 3839 "conf_parser.c" /* yacc.c:1646  */
3839      break;
3840  
3841 <  case 158:
3842 < /* Line 1787 of yacc.c  */
4035 < #line 1096 "conf_parser.y"
3841 >  case 177:
3842 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
3843      {
3844    if (conf_parser_ctx.pass == 2)
3845 <    block_state.modes.value |= UMODE_BOTS;
3845 >    block_state.modes.value = 0;
3846   }
3847 + #line 3848 "conf_parser.c" /* yacc.c:1646  */
3848      break;
3849  
3850 <  case 159:
3851 < /* Line 1787 of yacc.c  */
4044 < #line 1100 "conf_parser.y"
3850 >  case 181:
3851 > #line 1254 "conf_parser.y" /* yacc.c:1646  */
3852      {
3853    if (conf_parser_ctx.pass == 2)
3854 <    block_state.modes.value |= UMODE_CCONN;
3854 >    block_state.modes.value |= UMODE_BOTS;
3855   }
3856 + #line 3857 "conf_parser.c" /* yacc.c:1646  */
3857      break;
3858  
3859 <  case 160:
3860 < /* Line 1787 of yacc.c  */
4053 < #line 1104 "conf_parser.y"
3859 >  case 182:
3860 > #line 1258 "conf_parser.y" /* yacc.c:1646  */
3861      {
3862    if (conf_parser_ctx.pass == 2)
3863 <    block_state.modes.value |= UMODE_CCONN_FULL;
3863 >    block_state.modes.value |= UMODE_CCONN;
3864   }
3865 + #line 3866 "conf_parser.c" /* yacc.c:1646  */
3866      break;
3867  
3868 <  case 161:
3869 < /* Line 1787 of yacc.c  */
4062 < #line 1108 "conf_parser.y"
3868 >  case 183:
3869 > #line 1262 "conf_parser.y" /* yacc.c:1646  */
3870      {
3871    if (conf_parser_ctx.pass == 2)
3872      block_state.modes.value |= UMODE_DEAF;
3873   }
3874 + #line 3875 "conf_parser.c" /* yacc.c:1646  */
3875      break;
3876  
3877 <  case 162:
3878 < /* Line 1787 of yacc.c  */
4071 < #line 1112 "conf_parser.y"
3877 >  case 184:
3878 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
3879      {
3880    if (conf_parser_ctx.pass == 2)
3881      block_state.modes.value |= UMODE_DEBUG;
3882   }
3883 + #line 3884 "conf_parser.c" /* yacc.c:1646  */
3884      break;
3885  
3886 <  case 163:
3887 < /* Line 1787 of yacc.c  */
4080 < #line 1116 "conf_parser.y"
3886 >  case 185:
3887 > #line 1270 "conf_parser.y" /* yacc.c:1646  */
3888      {
3889    if (conf_parser_ctx.pass == 2)
3890      block_state.modes.value |= UMODE_FULL;
3891   }
3892 + #line 3893 "conf_parser.c" /* yacc.c:1646  */
3893      break;
3894  
3895 <  case 164:
3896 < /* Line 1787 of yacc.c  */
4089 < #line 1120 "conf_parser.y"
3895 >  case 186:
3896 > #line 1274 "conf_parser.y" /* yacc.c:1646  */
3897      {
3898    if (conf_parser_ctx.pass == 2)
3899      block_state.modes.value |= UMODE_HIDDEN;
3900   }
3901 + #line 3902 "conf_parser.c" /* yacc.c:1646  */
3902 +    break;
3903 +
3904 +  case 187:
3905 + #line 1278 "conf_parser.y" /* yacc.c:1646  */
3906 +    {
3907 +  if (conf_parser_ctx.pass == 2)
3908 +    block_state.modes.value |= UMODE_HIDECHANS;
3909 + }
3910 + #line 3911 "conf_parser.c" /* yacc.c:1646  */
3911      break;
3912  
3913 <  case 165:
3914 < /* Line 1787 of yacc.c  */
3915 < #line 1124 "conf_parser.y"
3913 >  case 188:
3914 > #line 1282 "conf_parser.y" /* yacc.c:1646  */
3915 >    {
3916 >  if (conf_parser_ctx.pass == 2)
3917 >    block_state.modes.value |= UMODE_HIDEIDLE;
3918 > }
3919 > #line 3920 "conf_parser.c" /* yacc.c:1646  */
3920 >    break;
3921 >
3922 >  case 189:
3923 > #line 1286 "conf_parser.y" /* yacc.c:1646  */
3924      {
3925    if (conf_parser_ctx.pass == 2)
3926      block_state.modes.value |= UMODE_SKILL;
3927   }
3928 + #line 3929 "conf_parser.c" /* yacc.c:1646  */
3929      break;
3930  
3931 <  case 166:
3932 < /* Line 1787 of yacc.c  */
4107 < #line 1128 "conf_parser.y"
3931 >  case 190:
3932 > #line 1290 "conf_parser.y" /* yacc.c:1646  */
3933      {
3934    if (conf_parser_ctx.pass == 2)
3935      block_state.modes.value |= UMODE_NCHANGE;
3936   }
3937 + #line 3938 "conf_parser.c" /* yacc.c:1646  */
3938      break;
3939  
3940 <  case 167:
3941 < /* Line 1787 of yacc.c  */
4116 < #line 1132 "conf_parser.y"
3940 >  case 191:
3941 > #line 1294 "conf_parser.y" /* yacc.c:1646  */
3942      {
3943    if (conf_parser_ctx.pass == 2)
3944      block_state.modes.value |= UMODE_REJ;
3945   }
3946 + #line 3947 "conf_parser.c" /* yacc.c:1646  */
3947      break;
3948  
3949 <  case 168:
3950 < /* Line 1787 of yacc.c  */
4125 < #line 1136 "conf_parser.y"
3949 >  case 192:
3950 > #line 1298 "conf_parser.y" /* yacc.c:1646  */
3951      {
3952    if (conf_parser_ctx.pass == 2)
3953      block_state.modes.value |= UMODE_UNAUTH;
3954   }
3955 + #line 3956 "conf_parser.c" /* yacc.c:1646  */
3956      break;
3957  
3958 <  case 169:
3959 < /* Line 1787 of yacc.c  */
4134 < #line 1140 "conf_parser.y"
3958 >  case 193:
3959 > #line 1302 "conf_parser.y" /* yacc.c:1646  */
3960      {
3961    if (conf_parser_ctx.pass == 2)
3962      block_state.modes.value |= UMODE_SPY;
3963   }
3964 + #line 3965 "conf_parser.c" /* yacc.c:1646  */
3965      break;
3966  
3967 <  case 170:
3968 < /* Line 1787 of yacc.c  */
4143 < #line 1144 "conf_parser.y"
3967 >  case 194:
3968 > #line 1306 "conf_parser.y" /* yacc.c:1646  */
3969      {
3970    if (conf_parser_ctx.pass == 2)
3971      block_state.modes.value |= UMODE_EXTERNAL;
3972   }
3973 + #line 3974 "conf_parser.c" /* yacc.c:1646  */
3974      break;
3975  
3976 <  case 171:
3977 < /* Line 1787 of yacc.c  */
4152 < #line 1148 "conf_parser.y"
4153 <    {
4154 <  if (conf_parser_ctx.pass == 2)
4155 <    block_state.modes.value |= UMODE_OPERWALL;
4156 < }
4157 <    break;
4158 <
4159 <  case 172:
4160 < /* Line 1787 of yacc.c  */
4161 < #line 1152 "conf_parser.y"
3976 >  case 195:
3977 > #line 1310 "conf_parser.y" /* yacc.c:1646  */
3978      {
3979    if (conf_parser_ctx.pass == 2)
3980      block_state.modes.value |= UMODE_SERVNOTICE;
3981   }
3982 + #line 3983 "conf_parser.c" /* yacc.c:1646  */
3983      break;
3984  
3985 <  case 173:
3986 < /* Line 1787 of yacc.c  */
4170 < #line 1156 "conf_parser.y"
3985 >  case 196:
3986 > #line 1314 "conf_parser.y" /* yacc.c:1646  */
3987      {
3988    if (conf_parser_ctx.pass == 2)
3989      block_state.modes.value |= UMODE_INVISIBLE;
3990   }
3991 + #line 3992 "conf_parser.c" /* yacc.c:1646  */
3992      break;
3993  
3994 <  case 174:
3995 < /* Line 1787 of yacc.c  */
4179 < #line 1160 "conf_parser.y"
3994 >  case 197:
3995 > #line 1318 "conf_parser.y" /* yacc.c:1646  */
3996      {
3997    if (conf_parser_ctx.pass == 2)
3998      block_state.modes.value |= UMODE_WALLOP;
3999   }
4000 + #line 4001 "conf_parser.c" /* yacc.c:1646  */
4001      break;
4002  
4003 <  case 175:
4004 < /* Line 1787 of yacc.c  */
4188 < #line 1164 "conf_parser.y"
4003 >  case 198:
4004 > #line 1322 "conf_parser.y" /* yacc.c:1646  */
4005      {
4006    if (conf_parser_ctx.pass == 2)
4007      block_state.modes.value |= UMODE_SOFTCALLERID;
4008   }
4009 + #line 4010 "conf_parser.c" /* yacc.c:1646  */
4010      break;
4011  
4012 <  case 176:
4013 < /* Line 1787 of yacc.c  */
4197 < #line 1168 "conf_parser.y"
4012 >  case 199:
4013 > #line 1326 "conf_parser.y" /* yacc.c:1646  */
4014      {
4015    if (conf_parser_ctx.pass == 2)
4016      block_state.modes.value |= UMODE_CALLERID;
4017   }
4018 + #line 4019 "conf_parser.c" /* yacc.c:1646  */
4019      break;
4020  
4021 <  case 177:
4022 < /* Line 1787 of yacc.c  */
4206 < #line 1172 "conf_parser.y"
4021 >  case 200:
4022 > #line 1330 "conf_parser.y" /* yacc.c:1646  */
4023      {
4024    if (conf_parser_ctx.pass == 2)
4025      block_state.modes.value |= UMODE_LOCOPS;
4026   }
4027 + #line 4028 "conf_parser.c" /* yacc.c:1646  */
4028      break;
4029  
4030 <  case 178:
4031 < /* Line 1787 of yacc.c  */
4032 < #line 1178 "conf_parser.y"
4030 >  case 201:
4031 > #line 1334 "conf_parser.y" /* yacc.c:1646  */
4032 >    {
4033 >  if (conf_parser_ctx.pass == 2)
4034 >    block_state.modes.value |= UMODE_REGONLY;
4035 > }
4036 > #line 4037 "conf_parser.c" /* yacc.c:1646  */
4037 >    break;
4038 >
4039 >  case 202:
4040 > #line 1338 "conf_parser.y" /* yacc.c:1646  */
4041 >    {
4042 >  if (conf_parser_ctx.pass == 2)
4043 >    block_state.modes.value |= UMODE_FARCONNECT;
4044 > }
4045 > #line 4046 "conf_parser.c" /* yacc.c:1646  */
4046 >    break;
4047 >
4048 >  case 203:
4049 > #line 1344 "conf_parser.y" /* yacc.c:1646  */
4050      {
4051    if (conf_parser_ctx.pass == 2)
4052      block_state.port.value = 0;
4053   }
4054 + #line 4055 "conf_parser.c" /* yacc.c:1646  */
4055      break;
4056  
4057 <  case 182:
4058 < /* Line 1787 of yacc.c  */
4224 < #line 1185 "conf_parser.y"
4057 >  case 207:
4058 > #line 1351 "conf_parser.y" /* yacc.c:1646  */
4059      {
4060    if (conf_parser_ctx.pass == 2)
4061 <    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4061 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4062   }
4063 + #line 4064 "conf_parser.c" /* yacc.c:1646  */
4064      break;
4065  
4066 <  case 183:
4067 < /* Line 1787 of yacc.c  */
4233 < #line 1189 "conf_parser.y"
4066 >  case 208:
4067 > #line 1355 "conf_parser.y" /* yacc.c:1646  */
4068      {
4069    if (conf_parser_ctx.pass == 2)
4070 <    block_state.port.value |= OPER_FLAG_REMOTE;
4070 >    block_state.port.value |= OPER_FLAG_KILL;
4071   }
4072 + #line 4073 "conf_parser.c" /* yacc.c:1646  */
4073      break;
4074  
4075 <  case 184:
4076 < /* Line 1787 of yacc.c  */
4242 < #line 1193 "conf_parser.y"
4075 >  case 209:
4076 > #line 1359 "conf_parser.y" /* yacc.c:1646  */
4077      {
4078    if (conf_parser_ctx.pass == 2)
4079 <    block_state.port.value |= OPER_FLAG_K;
4079 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4080   }
4081 + #line 4082 "conf_parser.c" /* yacc.c:1646  */
4082      break;
4083  
4084 <  case 185:
4085 < /* Line 1787 of yacc.c  */
4086 < #line 1197 "conf_parser.y"
4084 >  case 210:
4085 > #line 1363 "conf_parser.y" /* yacc.c:1646  */
4086 >    {
4087 >  if (conf_parser_ctx.pass == 2)
4088 >    block_state.port.value |= OPER_FLAG_CONNECT;
4089 > }
4090 > #line 4091 "conf_parser.c" /* yacc.c:1646  */
4091 >    break;
4092 >
4093 >  case 211:
4094 > #line 1367 "conf_parser.y" /* yacc.c:1646  */
4095 >    {
4096 >  if (conf_parser_ctx.pass == 2)
4097 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4098 > }
4099 > #line 4100 "conf_parser.c" /* yacc.c:1646  */
4100 >    break;
4101 >
4102 >  case 212:
4103 > #line 1371 "conf_parser.y" /* yacc.c:1646  */
4104 >    {
4105 >  if (conf_parser_ctx.pass == 2)
4106 >    block_state.port.value |= OPER_FLAG_SQUIT;
4107 > }
4108 > #line 4109 "conf_parser.c" /* yacc.c:1646  */
4109 >    break;
4110 >
4111 >  case 213:
4112 > #line 1375 "conf_parser.y" /* yacc.c:1646  */
4113 >    {
4114 >  if (conf_parser_ctx.pass == 2)
4115 >    block_state.port.value |= OPER_FLAG_KLINE;
4116 > }
4117 > #line 4118 "conf_parser.c" /* yacc.c:1646  */
4118 >    break;
4119 >
4120 >  case 214:
4121 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4122      {
4123    if (conf_parser_ctx.pass == 2)
4124      block_state.port.value |= OPER_FLAG_UNKLINE;
4125   }
4126 + #line 4127 "conf_parser.c" /* yacc.c:1646  */
4127      break;
4128  
4129 <  case 186:
4130 < /* Line 1787 of yacc.c  */
4260 < #line 1201 "conf_parser.y"
4129 >  case 215:
4130 > #line 1383 "conf_parser.y" /* yacc.c:1646  */
4131      {
4132    if (conf_parser_ctx.pass == 2)
4133      block_state.port.value |= OPER_FLAG_DLINE;
4134   }
4135 + #line 4136 "conf_parser.c" /* yacc.c:1646  */
4136      break;
4137  
4138 <  case 187:
4139 < /* Line 1787 of yacc.c  */
4269 < #line 1205 "conf_parser.y"
4138 >  case 216:
4139 > #line 1387 "conf_parser.y" /* yacc.c:1646  */
4140      {
4141    if (conf_parser_ctx.pass == 2)
4142      block_state.port.value |= OPER_FLAG_UNDLINE;
4143   }
4144 + #line 4145 "conf_parser.c" /* yacc.c:1646  */
4145      break;
4146  
4147 <  case 188:
4148 < /* Line 1787 of yacc.c  */
4278 < #line 1209 "conf_parser.y"
4147 >  case 217:
4148 > #line 1391 "conf_parser.y" /* yacc.c:1646  */
4149      {
4150    if (conf_parser_ctx.pass == 2)
4151 <    block_state.port.value |= OPER_FLAG_X;
4151 >    block_state.port.value |= OPER_FLAG_XLINE;
4152   }
4153 + #line 4154 "conf_parser.c" /* yacc.c:1646  */
4154      break;
4155  
4156 <  case 189:
4157 < /* Line 1787 of yacc.c  */
4287 < #line 1213 "conf_parser.y"
4156 >  case 218:
4157 > #line 1395 "conf_parser.y" /* yacc.c:1646  */
4158      {
4159    if (conf_parser_ctx.pass == 2)
4160 <    block_state.port.value |= OPER_FLAG_GLINE;
4160 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4161   }
4162 + #line 4163 "conf_parser.c" /* yacc.c:1646  */
4163      break;
4164  
4165 <  case 190:
4166 < /* Line 1787 of yacc.c  */
4296 < #line 1217 "conf_parser.y"
4165 >  case 219:
4166 > #line 1399 "conf_parser.y" /* yacc.c:1646  */
4167      {
4168    if (conf_parser_ctx.pass == 2)
4169      block_state.port.value |= OPER_FLAG_DIE;
4170   }
4171 + #line 4172 "conf_parser.c" /* yacc.c:1646  */
4172      break;
4173  
4174 <  case 191:
4175 < /* Line 1787 of yacc.c  */
4305 < #line 1221 "conf_parser.y"
4174 >  case 220:
4175 > #line 1403 "conf_parser.y" /* yacc.c:1646  */
4176      {
4177    if (conf_parser_ctx.pass == 2)
4178      block_state.port.value |= OPER_FLAG_RESTART;
4179   }
4180 + #line 4181 "conf_parser.c" /* yacc.c:1646  */
4181      break;
4182  
4183 <  case 192:
4184 < /* Line 1787 of yacc.c  */
4314 < #line 1225 "conf_parser.y"
4183 >  case 221:
4184 > #line 1407 "conf_parser.y" /* yacc.c:1646  */
4185      {
4186    if (conf_parser_ctx.pass == 2)
4187      block_state.port.value |= OPER_FLAG_REHASH;
4188   }
4189 + #line 4190 "conf_parser.c" /* yacc.c:1646  */
4190      break;
4191  
4192 <  case 193:
4193 < /* Line 1787 of yacc.c  */
4323 < #line 1229 "conf_parser.y"
4192 >  case 222:
4193 > #line 1411 "conf_parser.y" /* yacc.c:1646  */
4194      {
4195    if (conf_parser_ctx.pass == 2)
4196      block_state.port.value |= OPER_FLAG_ADMIN;
4197   }
4198 + #line 4199 "conf_parser.c" /* yacc.c:1646  */
4199      break;
4200  
4201 <  case 194:
4202 < /* Line 1787 of yacc.c  */
4332 < #line 1233 "conf_parser.y"
4201 >  case 223:
4202 > #line 1415 "conf_parser.y" /* yacc.c:1646  */
4203      {
4204    if (conf_parser_ctx.pass == 2)
4205 <    block_state.port.value |= OPER_FLAG_N;
4205 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4206   }
4207 + #line 4208 "conf_parser.c" /* yacc.c:1646  */
4208      break;
4209  
4210 <  case 195:
4211 < /* Line 1787 of yacc.c  */
4341 < #line 1237 "conf_parser.y"
4210 >  case 224:
4211 > #line 1419 "conf_parser.y" /* yacc.c:1646  */
4212      {
4213    if (conf_parser_ctx.pass == 2)
4214 <    block_state.port.value |= OPER_FLAG_OPERWALL;
4214 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4215   }
4216 + #line 4217 "conf_parser.c" /* yacc.c:1646  */
4217      break;
4218  
4219 <  case 196:
4220 < /* Line 1787 of yacc.c  */
4350 < #line 1241 "conf_parser.y"
4219 >  case 225:
4220 > #line 1423 "conf_parser.y" /* yacc.c:1646  */
4221      {
4222    if (conf_parser_ctx.pass == 2)
4223 <    block_state.port.value |= OPER_FLAG_GLOBOPS;
4223 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4224   }
4225 + #line 4226 "conf_parser.c" /* yacc.c:1646  */
4226      break;
4227  
4228 <  case 197:
4229 < /* Line 1787 of yacc.c  */
4359 < #line 1245 "conf_parser.y"
4228 >  case 226:
4229 > #line 1427 "conf_parser.y" /* yacc.c:1646  */
4230      {
4231    if (conf_parser_ctx.pass == 2)
4232 <    block_state.port.value |= OPER_FLAG_OPER_SPY;
4232 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4233   }
4234 + #line 4235 "conf_parser.c" /* yacc.c:1646  */
4235      break;
4236  
4237 <  case 198:
4238 < /* Line 1787 of yacc.c  */
4368 < #line 1249 "conf_parser.y"
4237 >  case 227:
4238 > #line 1431 "conf_parser.y" /* yacc.c:1646  */
4239      {
4240    if (conf_parser_ctx.pass == 2)
4241 <    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4241 >    block_state.port.value |= OPER_FLAG_SET;
4242   }
4243 + #line 4244 "conf_parser.c" /* yacc.c:1646  */
4244      break;
4245  
4246 <  case 199:
4247 < /* Line 1787 of yacc.c  */
4377 < #line 1253 "conf_parser.y"
4246 >  case 228:
4247 > #line 1435 "conf_parser.y" /* yacc.c:1646  */
4248      {
4249    if (conf_parser_ctx.pass == 2)
4250 <    block_state.port.value |= OPER_FLAG_SET;
4250 >    block_state.port.value |= OPER_FLAG_MODULE;
4251   }
4252 + #line 4253 "conf_parser.c" /* yacc.c:1646  */
4253      break;
4254  
4255 <  case 200:
4256 < /* Line 1787 of yacc.c  */
4386 < #line 1257 "conf_parser.y"
4255 >  case 229:
4256 > #line 1439 "conf_parser.y" /* yacc.c:1646  */
4257      {
4258    if (conf_parser_ctx.pass == 2)
4259 <    block_state.port.value |= OPER_FLAG_MODULE;
4259 >    block_state.port.value |= OPER_FLAG_OPME;
4260   }
4261 + #line 4262 "conf_parser.c" /* yacc.c:1646  */
4262      break;
4263  
4264 <  case 201:
4265 < /* Line 1787 of yacc.c  */
4266 < #line 1267 "conf_parser.y"
4264 >  case 230:
4265 > #line 1443 "conf_parser.y" /* yacc.c:1646  */
4266 >    {
4267 >  if (conf_parser_ctx.pass == 2)
4268 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4269 > }
4270 > #line 4271 "conf_parser.c" /* yacc.c:1646  */
4271 >    break;
4272 >
4273 >  case 231:
4274 > #line 1447 "conf_parser.y" /* yacc.c:1646  */
4275 >    {
4276 >  if (conf_parser_ctx.pass == 2)
4277 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4278 > }
4279 > #line 4280 "conf_parser.c" /* yacc.c:1646  */
4280 >    break;
4281 >
4282 >  case 232:
4283 > #line 1451 "conf_parser.y" /* yacc.c:1646  */
4284 >    {
4285 >  if (conf_parser_ctx.pass == 2)
4286 >    block_state.port.value |= OPER_FLAG_RESV;
4287 > }
4288 > #line 4289 "conf_parser.c" /* yacc.c:1646  */
4289 >    break;
4290 >
4291 >  case 233:
4292 > #line 1455 "conf_parser.y" /* yacc.c:1646  */
4293 >    {
4294 >  if (conf_parser_ctx.pass == 2)
4295 >    block_state.port.value |= OPER_FLAG_UNRESV;
4296 > }
4297 > #line 4298 "conf_parser.c" /* yacc.c:1646  */
4298 >    break;
4299 >
4300 >  case 234:
4301 > #line 1459 "conf_parser.y" /* yacc.c:1646  */
4302 >    {
4303 >  if (conf_parser_ctx.pass == 2)
4304 >    block_state.port.value |= OPER_FLAG_CLOSE;
4305 > }
4306 > #line 4307 "conf_parser.c" /* yacc.c:1646  */
4307 >    break;
4308 >
4309 >  case 235:
4310 > #line 1469 "conf_parser.y" /* yacc.c:1646  */
4311      {
4312    if (conf_parser_ctx.pass != 1)
4313      break;
# Line 4405 | Line 4320 | yyreduce:
4320    block_state.max_sendq.value = DEFAULT_SENDQ;
4321    block_state.max_recvq.value = DEFAULT_RECVQ;
4322   }
4323 + #line 4324 "conf_parser.c" /* yacc.c:1646  */
4324      break;
4325  
4326 <  case 202:
4327 < /* Line 1787 of yacc.c  */
4412 < #line 1279 "conf_parser.y"
4326 >  case 236:
4327 > #line 1481 "conf_parser.y" /* yacc.c:1646  */
4328      {
4329    struct ClassItem *class = NULL;
4330  
# Line 4434 | Line 4349 | yyreduce:
4349    class->max_ident = block_state.max_ident.value;
4350    class->max_sendq = block_state.max_sendq.value;
4351    class->max_recvq = block_state.max_recvq.value;
4352 +  class->max_channels = block_state.max_channels.value;
4353  
4354    if (block_state.min_idle.value > block_state.max_idle.value)
4355    {
# Line 4446 | Line 4362 | yyreduce:
4362    class->min_idle = block_state.min_idle.value;
4363    class->max_idle = block_state.max_idle.value;
4364  
4365 <  if (class->number_per_cidr && block_state.number_per_cidr.value)
4450 <    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4451 <        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4452 <      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4453 <          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4454 <        rebuild_cidr_list(class);
4365 >  rebuild_cidr_list(class);
4366  
4367    class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4368    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4369    class->number_per_cidr = block_state.number_per_cidr.value;
4370   }
4371 + #line 4372 "conf_parser.c" /* yacc.c:1646  */
4372      break;
4373  
4374 <  case 222:
4375 < /* Line 1787 of yacc.c  */
4464 < #line 1345 "conf_parser.y"
4374 >  case 257:
4375 > #line 1545 "conf_parser.y" /* yacc.c:1646  */
4376      {
4377    if (conf_parser_ctx.pass == 1)
4378      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4379   }
4380 + #line 4381 "conf_parser.c" /* yacc.c:1646  */
4381      break;
4382  
4383 <  case 223:
4384 < /* Line 1787 of yacc.c  */
4473 < #line 1351 "conf_parser.y"
4383 >  case 258:
4384 > #line 1551 "conf_parser.y" /* yacc.c:1646  */
4385      {
4386    if (conf_parser_ctx.pass == 1)
4387 <    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4387 >    block_state.ping_freq.value = (yyvsp[-1].number);
4388   }
4389 + #line 4390 "conf_parser.c" /* yacc.c:1646  */
4390      break;
4391  
4392 <  case 224:
4393 < /* Line 1787 of yacc.c  */
4482 < #line 1357 "conf_parser.y"
4392 >  case 259:
4393 > #line 1557 "conf_parser.y" /* yacc.c:1646  */
4394      {
4395    if (conf_parser_ctx.pass == 1)
4396 <    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4396 >    block_state.max_perip.value = (yyvsp[-1].number);
4397   }
4398 + #line 4399 "conf_parser.c" /* yacc.c:1646  */
4399      break;
4400  
4401 <  case 225:
4402 < /* Line 1787 of yacc.c  */
4491 < #line 1363 "conf_parser.y"
4401 >  case 260:
4402 > #line 1563 "conf_parser.y" /* yacc.c:1646  */
4403      {
4404    if (conf_parser_ctx.pass == 1)
4405 <    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4405 >    block_state.con_freq.value = (yyvsp[-1].number);
4406   }
4407 + #line 4408 "conf_parser.c" /* yacc.c:1646  */
4408      break;
4409  
4410 <  case 226:
4411 < /* Line 1787 of yacc.c  */
4500 < #line 1369 "conf_parser.y"
4410 >  case 261:
4411 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4412      {
4413    if (conf_parser_ctx.pass == 1)
4414 <    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4414 >    block_state.max_channels.value = (yyvsp[-1].number);
4415   }
4416 + #line 4417 "conf_parser.c" /* yacc.c:1646  */
4417      break;
4418  
4419 <  case 227:
4420 < /* Line 1787 of yacc.c  */
4509 < #line 1375 "conf_parser.y"
4419 >  case 262:
4420 > #line 1575 "conf_parser.y" /* yacc.c:1646  */
4421      {
4422    if (conf_parser_ctx.pass == 1)
4423 <    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4423 >    block_state.max_total.value = (yyvsp[-1].number);
4424   }
4425 + #line 4426 "conf_parser.c" /* yacc.c:1646  */
4426      break;
4427  
4428 <  case 228:
4429 < /* Line 1787 of yacc.c  */
4518 < #line 1381 "conf_parser.y"
4428 >  case 263:
4429 > #line 1581 "conf_parser.y" /* yacc.c:1646  */
4430      {
4431    if (conf_parser_ctx.pass == 1)
4432 <    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4432 >    block_state.max_global.value = (yyvsp[-1].number);
4433   }
4434 + #line 4435 "conf_parser.c" /* yacc.c:1646  */
4435      break;
4436  
4437 <  case 229:
4438 < /* Line 1787 of yacc.c  */
4527 < #line 1387 "conf_parser.y"
4437 >  case 264:
4438 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4439      {
4440    if (conf_parser_ctx.pass == 1)
4441 <    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4441 >    block_state.max_local.value = (yyvsp[-1].number);
4442   }
4443 + #line 4444 "conf_parser.c" /* yacc.c:1646  */
4444      break;
4445  
4446 <  case 230:
4447 < /* Line 1787 of yacc.c  */
4536 < #line 1393 "conf_parser.y"
4446 >  case 265:
4447 > #line 1593 "conf_parser.y" /* yacc.c:1646  */
4448      {
4449    if (conf_parser_ctx.pass == 1)
4450 <    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4450 >    block_state.max_ident.value = (yyvsp[-1].number);
4451   }
4452 + #line 4453 "conf_parser.c" /* yacc.c:1646  */
4453      break;
4454  
4455 <  case 231:
4456 < /* Line 1787 of yacc.c  */
4545 < #line 1399 "conf_parser.y"
4455 >  case 266:
4456 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4457      {
4458    if (conf_parser_ctx.pass == 1)
4459 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4549 <      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4459 >    block_state.max_sendq.value = (yyvsp[-1].number);
4460   }
4461 + #line 4462 "conf_parser.c" /* yacc.c:1646  */
4462      break;
4463  
4464 <  case 232:
4465 < /* Line 1787 of yacc.c  */
4555 < #line 1406 "conf_parser.y"
4464 >  case 267:
4465 > #line 1605 "conf_parser.y" /* yacc.c:1646  */
4466      {
4467    if (conf_parser_ctx.pass == 1)
4468 <    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4468 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4469 >      block_state.max_recvq.value = (yyvsp[-1].number);
4470   }
4471 + #line 4472 "conf_parser.c" /* yacc.c:1646  */
4472      break;
4473  
4474 <  case 233:
4475 < /* Line 1787 of yacc.c  */
4564 < #line 1412 "conf_parser.y"
4474 >  case 268:
4475 > #line 1612 "conf_parser.y" /* yacc.c:1646  */
4476      {
4477    if (conf_parser_ctx.pass == 1)
4478 <    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4478 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4479   }
4480 + #line 4481 "conf_parser.c" /* yacc.c:1646  */
4481      break;
4482  
4483 <  case 234:
4484 < /* Line 1787 of yacc.c  */
4573 < #line 1418 "conf_parser.y"
4483 >  case 269:
4484 > #line 1618 "conf_parser.y" /* yacc.c:1646  */
4485      {
4486    if (conf_parser_ctx.pass == 1)
4487 <    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4487 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4488   }
4489 + #line 4490 "conf_parser.c" /* yacc.c:1646  */
4490      break;
4491  
4492 <  case 235:
4493 < /* Line 1787 of yacc.c  */
4494 < #line 1424 "conf_parser.y"
4492 >  case 270:
4493 > #line 1624 "conf_parser.y" /* yacc.c:1646  */
4494 >    {
4495 >  if (conf_parser_ctx.pass == 1)
4496 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4497 > }
4498 > #line 4499 "conf_parser.c" /* yacc.c:1646  */
4499 >    break;
4500 >
4501 >  case 271:
4502 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4503      {
4504    if (conf_parser_ctx.pass != 1)
4505      break;
4506  
4507 <  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4507 >  block_state.min_idle.value = (yyvsp[-1].number);
4508    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4509   }
4510 + #line 4511 "conf_parser.c" /* yacc.c:1646  */
4511      break;
4512  
4513 <  case 236:
4514 < /* Line 1787 of yacc.c  */
4594 < #line 1433 "conf_parser.y"
4513 >  case 272:
4514 > #line 1639 "conf_parser.y" /* yacc.c:1646  */
4515      {
4516    if (conf_parser_ctx.pass != 1)
4517      break;
4518  
4519 <  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4519 >  block_state.max_idle.value = (yyvsp[-1].number);
4520    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4521   }
4522 + #line 4523 "conf_parser.c" /* yacc.c:1646  */
4523      break;
4524  
4525 <  case 237:
4526 < /* Line 1787 of yacc.c  */
4606 < #line 1442 "conf_parser.y"
4525 >  case 273:
4526 > #line 1648 "conf_parser.y" /* yacc.c:1646  */
4527      {
4528    if (conf_parser_ctx.pass == 1)
4529      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4530   }
4531 + #line 4532 "conf_parser.c" /* yacc.c:1646  */
4532      break;
4533  
4534 <  case 241:
4535 < /* Line 1787 of yacc.c  */
4615 < #line 1449 "conf_parser.y"
4534 >  case 277:
4535 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4536      {
4537    if (conf_parser_ctx.pass == 1)
4538      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4539   }
4540 + #line 4541 "conf_parser.c" /* yacc.c:1646  */
4541      break;
4542  
4543 <  case 242:
4544 < /* Line 1787 of yacc.c  */
4624 < #line 1453 "conf_parser.y"
4543 >  case 278:
4544 > #line 1659 "conf_parser.y" /* yacc.c:1646  */
4545      {
4546    if (conf_parser_ctx.pass == 1)
4547      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4548   }
4549 + #line 4550 "conf_parser.c" /* yacc.c:1646  */
4550      break;
4551  
4552 <  case 243:
4553 < /* Line 1787 of yacc.c  */
4633 < #line 1463 "conf_parser.y"
4552 >  case 279:
4553 > #line 1669 "conf_parser.y" /* yacc.c:1646  */
4554      {
4555    if (conf_parser_ctx.pass == 2)
4556      reset_block_state();
4557   }
4558 + #line 4559 "conf_parser.c" /* yacc.c:1646  */
4559      break;
4560  
4561 <  case 245:
4562 < /* Line 1787 of yacc.c  */
4642 < #line 1469 "conf_parser.y"
4561 >  case 281:
4562 > #line 1675 "conf_parser.y" /* yacc.c:1646  */
4563      {
4564    block_state.flags.value = 0;
4565   }
4566 + #line 4567 "conf_parser.c" /* yacc.c:1646  */
4567      break;
4568  
4569 <  case 249:
4570 < /* Line 1787 of yacc.c  */
4650 < #line 1475 "conf_parser.y"
4569 >  case 285:
4570 > #line 1681 "conf_parser.y" /* yacc.c:1646  */
4571      {
4572    if (conf_parser_ctx.pass == 2)
4573      block_state.flags.value |= LISTENER_SSL;
4574   }
4575 + #line 4576 "conf_parser.c" /* yacc.c:1646  */
4576      break;
4577  
4578 <  case 250:
4579 < /* Line 1787 of yacc.c  */
4659 < #line 1479 "conf_parser.y"
4578 >  case 286:
4579 > #line 1685 "conf_parser.y" /* yacc.c:1646  */
4580      {
4581    if (conf_parser_ctx.pass == 2)
4582      block_state.flags.value |= LISTENER_HIDDEN;
4583   }
4584 + #line 4585 "conf_parser.c" /* yacc.c:1646  */
4585      break;
4586  
4587 <  case 251:
4588 < /* Line 1787 of yacc.c  */
4668 < #line 1483 "conf_parser.y"
4587 >  case 287:
4588 > #line 1689 "conf_parser.y" /* yacc.c:1646  */
4589      {
4590    if (conf_parser_ctx.pass == 2)
4591     block_state.flags.value |= LISTENER_SERVER;
4592   }
4593 + #line 4594 "conf_parser.c" /* yacc.c:1646  */
4594      break;
4595  
4596 <  case 259:
4597 < /* Line 1787 of yacc.c  */
4677 < #line 1491 "conf_parser.y"
4596 >  case 295:
4597 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4598      { block_state.flags.value = 0; }
4599 + #line 4600 "conf_parser.c" /* yacc.c:1646  */
4600      break;
4601  
4602 <  case 263:
4603 < /* Line 1787 of yacc.c  */
4683 < #line 1496 "conf_parser.y"
4602 >  case 299:
4603 > #line 1702 "conf_parser.y" /* yacc.c:1646  */
4604      {
4605    if (conf_parser_ctx.pass == 2)
4606    {
4607 + #ifndef HAVE_LIBCRYPTO
4608      if (block_state.flags.value & LISTENER_SSL)
4609 < #ifdef HAVE_LIBCRYPTO
4610 <      if (!ServerInfo.server_ctx)
4609 >    {
4610 >      conf_error_report("SSL not available - port closed");
4611 >      break;
4612 >    }
4613   #endif
4614 <      {
4692 <        conf_error_report("SSL not available - port closed");
4693 <        break;
4694 <      }
4695 <    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4614 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4615    }
4616   }
4617 + #line 4618 "conf_parser.c" /* yacc.c:1646  */
4618      break;
4619  
4620 <  case 264:
4621 < /* Line 1787 of yacc.c  */
4702 < #line 1510 "conf_parser.y"
4620 >  case 300:
4621 > #line 1715 "conf_parser.y" /* yacc.c:1646  */
4622      {
4623    if (conf_parser_ctx.pass == 2)
4624    {
4625 <    int i;
4707 <
4625 > #ifndef HAVE_LIBCRYPTO
4626      if (block_state.flags.value & LISTENER_SSL)
4627 < #ifdef HAVE_LIBCRYPTO
4628 <      if (!ServerInfo.server_ctx)
4627 >    {
4628 >      conf_error_report("SSL not available - port closed");
4629 >      break;
4630 >    }
4631   #endif
4712      {
4713        conf_error_report("SSL not available - port closed");
4714        break;
4715      }
4632  
4633 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4634 <      add_listener(i, block_state.addr.buf, block_state.flags.value);
4633 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4634 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4635    }
4636   }
4637 + #line 4638 "conf_parser.c" /* yacc.c:1646  */
4638      break;
4639  
4640 <  case 265:
4641 < /* Line 1787 of yacc.c  */
4725 < #line 1530 "conf_parser.y"
4640 >  case 301:
4641 > #line 1732 "conf_parser.y" /* yacc.c:1646  */
4642      {
4643    if (conf_parser_ctx.pass == 2)
4644      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4645   }
4646 + #line 4647 "conf_parser.c" /* yacc.c:1646  */
4647      break;
4648  
4649 <  case 266:
4650 < /* Line 1787 of yacc.c  */
4734 < #line 1536 "conf_parser.y"
4649 >  case 302:
4650 > #line 1738 "conf_parser.y" /* yacc.c:1646  */
4651      {
4652    if (conf_parser_ctx.pass == 2)
4653      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4654   }
4655 + #line 4656 "conf_parser.c" /* yacc.c:1646  */
4656      break;
4657  
4658 <  case 267:
4659 < /* Line 1787 of yacc.c  */
4743 < #line 1545 "conf_parser.y"
4658 >  case 303:
4659 > #line 1747 "conf_parser.y" /* yacc.c:1646  */
4660      {
4661    if (conf_parser_ctx.pass == 2)
4662      reset_block_state();
4663   }
4664 + #line 4665 "conf_parser.c" /* yacc.c:1646  */
4665      break;
4666  
4667 <  case 268:
4668 < /* Line 1787 of yacc.c  */
4752 < #line 1549 "conf_parser.y"
4667 >  case 304:
4668 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4669      {
4670 <  dlink_node *ptr = NULL;
4670 >  dlink_node *node = NULL;
4671  
4672    if (conf_parser_ctx.pass != 2)
4673      break;
4674  
4675 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
4675 >  DLINK_FOREACH(node, block_state.mask.list.head)
4676    {
4677      struct MaskItem *conf = NULL;
4678      struct split_nuh_item nuh;
4679  
4680 <    nuh.nuhmask  = ptr->data;
4680 >    nuh.nuhmask  = node->data;
4681      nuh.nickptr  = NULL;
4682      nuh.userptr  = block_state.user.buf;
4683      nuh.hostptr  = block_state.host.buf;
# Line 4771 | Line 4687 | yyreduce:
4687      split_nuh(&nuh);
4688  
4689      conf        = conf_make(CONF_CLIENT);
4690 <    conf->user  = xstrdup(collapse(block_state.user.buf));
4691 <    conf->host  = xstrdup(collapse(block_state.host.buf));
4690 >    conf->user  = xstrdup(block_state.user.buf);
4691 >    conf->host  = xstrdup(block_state.host.buf);
4692  
4693      if (block_state.rpass.buf[0])
4694        conf->passwd = xstrdup(block_state.rpass.buf);
4695      if (block_state.name.buf[0])
4696 <      conf->passwd = xstrdup(block_state.name.buf);
4696 >      conf->name = xstrdup(block_state.name.buf);
4697  
4698      conf->flags = block_state.flags.value;
4699      conf->port  = block_state.port.value;
# Line 4786 | Line 4702 | yyreduce:
4702      add_conf_by_address(CONF_CLIENT, conf);
4703    }
4704   }
4705 + #line 4706 "conf_parser.c" /* yacc.c:1646  */
4706      break;
4707  
4708 <  case 280:
4709 < /* Line 1787 of yacc.c  */
4793 < #line 1592 "conf_parser.y"
4708 >  case 316:
4709 > #line 1800 "conf_parser.y" /* yacc.c:1646  */
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4713   }
4714 + #line 4715 "conf_parser.c" /* yacc.c:1646  */
4715      break;
4716  
4717 <  case 281:
4718 < /* Line 1787 of yacc.c  */
4802 < #line 1598 "conf_parser.y"
4717 >  case 317:
4718 > #line 1806 "conf_parser.y" /* yacc.c:1646  */
4719      {
4720    if (conf_parser_ctx.pass == 2)
4721      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4722   }
4723 + #line 4724 "conf_parser.c" /* yacc.c:1646  */
4724      break;
4725  
4726 <  case 282:
4727 < /* Line 1787 of yacc.c  */
4811 < #line 1604 "conf_parser.y"
4726 >  case 318:
4727 > #line 1812 "conf_parser.y" /* yacc.c:1646  */
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4731   }
4732 + #line 4733 "conf_parser.c" /* yacc.c:1646  */
4733      break;
4734  
4735 <  case 283:
4736 < /* Line 1787 of yacc.c  */
4820 < #line 1610 "conf_parser.y"
4735 >  case 319:
4736 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739    {
# Line 4827 | Line 4743 | yyreduce:
4743        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4744    }
4745   }
4746 + #line 4747 "conf_parser.c" /* yacc.c:1646  */
4747      break;
4748  
4749 <  case 284:
4750 < /* Line 1787 of yacc.c  */
4834 < #line 1621 "conf_parser.y"
4749 >  case 320:
4750 > #line 1829 "conf_parser.y" /* yacc.c:1646  */
4751      {
4752    if (conf_parser_ctx.pass == 2)
4753 <    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4753 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4754   }
4755 + #line 4756 "conf_parser.c" /* yacc.c:1646  */
4756      break;
4757  
4758 <  case 288:
4759 < /* Line 1787 of yacc.c  */
4843 < #line 1628 "conf_parser.y"
4758 >  case 324:
4759 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4760      {
4761    if (conf_parser_ctx.pass == 2)
4762      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4763   }
4764 + #line 4765 "conf_parser.c" /* yacc.c:1646  */
4765      break;
4766  
4767 <  case 289:
4768 < /* Line 1787 of yacc.c  */
4852 < #line 1632 "conf_parser.y"
4767 >  case 325:
4768 > #line 1840 "conf_parser.y" /* yacc.c:1646  */
4769      {
4770    if (conf_parser_ctx.pass == 2)
4771      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4772   }
4773 + #line 4774 "conf_parser.c" /* yacc.c:1646  */
4774      break;
4775  
4776 <  case 290:
4777 < /* Line 1787 of yacc.c  */
4861 < #line 1636 "conf_parser.y"
4776 >  case 326:
4777 > #line 1844 "conf_parser.y" /* yacc.c:1646  */
4778      {
4779    if (conf_parser_ctx.pass == 2)
4780      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4781   }
4782 + #line 4783 "conf_parser.c" /* yacc.c:1646  */
4783      break;
4784  
4785 <  case 291:
4786 < /* Line 1787 of yacc.c  */
4870 < #line 1640 "conf_parser.y"
4785 >  case 327:
4786 > #line 1848 "conf_parser.y" /* yacc.c:1646  */
4787      {
4788    if (conf_parser_ctx.pass == 2)
4789 <    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4789 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4790   }
4791 + #line 4792 "conf_parser.c" /* yacc.c:1646  */
4792      break;
4793  
4794 <  case 292:
4795 < /* Line 1787 of yacc.c  */
4879 < #line 1644 "conf_parser.y"
4794 >  case 328:
4795 > #line 1852 "conf_parser.y" /* yacc.c:1646  */
4796      {
4797    if (conf_parser_ctx.pass == 2)
4798 <    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4798 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4799   }
4800 + #line 4801 "conf_parser.c" /* yacc.c:1646  */
4801      break;
4802  
4803 <  case 293:
4804 < /* Line 1787 of yacc.c  */
4888 < #line 1648 "conf_parser.y"
4803 >  case 329:
4804 > #line 1856 "conf_parser.y" /* yacc.c:1646  */
4805      {
4806    if (conf_parser_ctx.pass == 2)
4807 <    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4807 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4808   }
4809 + #line 4810 "conf_parser.c" /* yacc.c:1646  */
4810      break;
4811  
4812 <  case 294:
4813 < /* Line 1787 of yacc.c  */
4897 < #line 1652 "conf_parser.y"
4812 >  case 330:
4813 > #line 1860 "conf_parser.y" /* yacc.c:1646  */
4814      {
4815    if (conf_parser_ctx.pass == 2)
4816 <    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4816 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4817   }
4818 + #line 4819 "conf_parser.c" /* yacc.c:1646  */
4819      break;
4820  
4821 <  case 295:
4822 < /* Line 1787 of yacc.c  */
4906 < #line 1656 "conf_parser.y"
4821 >  case 331:
4822 > #line 1864 "conf_parser.y" /* yacc.c:1646  */
4823      {
4824    if (conf_parser_ctx.pass == 2)
4825      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4826   }
4827 + #line 4828 "conf_parser.c" /* yacc.c:1646  */
4828      break;
4829  
4830 <  case 296:
4831 < /* Line 1787 of yacc.c  */
4915 < #line 1660 "conf_parser.y"
4830 >  case 332:
4831 > #line 1868 "conf_parser.y" /* yacc.c:1646  */
4832      {
4833    if (conf_parser_ctx.pass == 2)
4834      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4835   }
4836 + #line 4837 "conf_parser.c" /* yacc.c:1646  */
4837      break;
4838  
4839 <  case 297:
4840 < /* Line 1787 of yacc.c  */
4924 < #line 1664 "conf_parser.y"
4839 >  case 333:
4840 > #line 1872 "conf_parser.y" /* yacc.c:1646  */
4841      {
4842    if (conf_parser_ctx.pass == 2)
4843      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4844   }
4845 + #line 4846 "conf_parser.c" /* yacc.c:1646  */
4846      break;
4847  
4848 <  case 298:
4849 < /* Line 1787 of yacc.c  */
4933 < #line 1670 "conf_parser.y"
4848 >  case 334:
4849 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4850      {
4851    if (conf_parser_ctx.pass != 2)
4852      break;
4853  
4854 <  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4854 >  if (valid_hostname(yylval.string))
4855    {
4856      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4857      block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
# Line 4943 | Line 4859 | yyreduce:
4859    else
4860      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4861   }
4862 + #line 4863 "conf_parser.c" /* yacc.c:1646  */
4863      break;
4864  
4865 <  case 299:
4866 < /* Line 1787 of yacc.c  */
4950 < #line 1684 "conf_parser.y"
4865 >  case 335:
4866 > #line 1892 "conf_parser.y" /* yacc.c:1646  */
4867      {
4868    if (conf_parser_ctx.pass != 2)
4869      break;
# Line 4955 | Line 4871 | yyreduce:
4871    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4872    block_state.flags.value |= CONF_FLAGS_REDIR;
4873   }
4874 + #line 4875 "conf_parser.c" /* yacc.c:1646  */
4875      break;
4876  
4877 <  case 300:
4878 < /* Line 1787 of yacc.c  */
4962 < #line 1693 "conf_parser.y"
4877 >  case 336:
4878 > #line 1901 "conf_parser.y" /* yacc.c:1646  */
4879      {
4880    if (conf_parser_ctx.pass != 2)
4881      break;
4882  
4883    block_state.flags.value |= CONF_FLAGS_REDIR;
4884 <  block_state.port.value = (yyvsp[(3) - (4)].number);
4884 >  block_state.port.value = (yyvsp[-1].number);
4885   }
4886 + #line 4887 "conf_parser.c" /* yacc.c:1646  */
4887      break;
4888  
4889 <  case 301:
4890 < /* Line 1787 of yacc.c  */
4974 < #line 1706 "conf_parser.y"
4889 >  case 337:
4890 > #line 1914 "conf_parser.y" /* yacc.c:1646  */
4891      {
4892    if (conf_parser_ctx.pass != 2)
4893      break;
# Line 4979 | Line 4895 | yyreduce:
4895    reset_block_state();
4896    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4897   }
4898 + #line 4899 "conf_parser.c" /* yacc.c:1646  */
4899      break;
4900  
4901 <  case 302:
4902 < /* Line 1787 of yacc.c  */
4986 < #line 1713 "conf_parser.y"
4901 >  case 338:
4902 > #line 1921 "conf_parser.y" /* yacc.c:1646  */
4903      {
4904 <  if (IsChanPrefix(block_state.name.buf[0]))
4905 <    create_channel_resv(block_state.name.buf, block_state.rpass.buf);
4906 <  else if (block_state.name.buf[0])
4907 <    create_nick_resv(block_state.name.buf, block_state.rpass.buf);
4904 >  if (conf_parser_ctx.pass != 2)
4905 >    break;
4906 >
4907 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4908   }
4909 + #line 4910 "conf_parser.c" /* yacc.c:1646  */
4910      break;
4911  
4912 <  case 309:
4913 < /* Line 1787 of yacc.c  */
4997 < #line 1724 "conf_parser.y"
4912 >  case 345:
4913 > #line 1932 "conf_parser.y" /* yacc.c:1646  */
4914      {
4915    if (conf_parser_ctx.pass == 2)
4916 <    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4916 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4917   }
4918 + #line 4919 "conf_parser.c" /* yacc.c:1646  */
4919      break;
4920  
4921 <  case 310:
4922 < /* Line 1787 of yacc.c  */
5006 < #line 1730 "conf_parser.y"
4921 >  case 346:
4922 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
4923      {
4924    if (conf_parser_ctx.pass == 2)
4925 <    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4925 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4926   }
4927 + #line 4928 "conf_parser.c" /* yacc.c:1646  */
4928      break;
4929  
4930 <  case 311:
4931 < /* Line 1787 of yacc.c  */
5015 < #line 1736 "conf_parser.y"
4930 >  case 347:
4931 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
4932      {
4933    if (conf_parser_ctx.pass == 2)
4934 <    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4934 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4935   }
4936 + #line 4937 "conf_parser.c" /* yacc.c:1646  */
4937      break;
4938  
4939 <  case 317:
4940 < /* Line 1787 of yacc.c  */
5024 < #line 1750 "conf_parser.y"
4939 >  case 353:
4940 > #line 1959 "conf_parser.y" /* yacc.c:1646  */
4941      {
4942 <  if (conf_parser_ctx.pass == 2)
4942 >  if (conf_parser_ctx.pass != 2)
4943 >    break;
4944 >
4945 >  if (valid_servname(yylval.string))
4946    {
4947 <    if (valid_servname(yylval.string))
4948 <    {
5030 <      struct MaskItem *conf = conf_make(CONF_SERVICE);
5031 <      conf->name = xstrdup(yylval.string);
5032 <    }
4947 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4948 >    conf->name = xstrdup(yylval.string);
4949    }
4950   }
4951 + #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954 <  case 318:
4955 < /* Line 1787 of yacc.c  */
5039 < #line 1765 "conf_parser.y"
4954 >  case 354:
4955 > #line 1974 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass != 2)
4958      break;
# Line 5048 | Line 4964 | yyreduce:
4964    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4965    block_state.flags.value = SHARED_ALL;
4966   }
4967 + #line 4968 "conf_parser.c" /* yacc.c:1646  */
4968      break;
4969  
4970 <  case 319:
4971 < /* Line 1787 of yacc.c  */
5055 < #line 1776 "conf_parser.y"
4970 >  case 355:
4971 > #line 1985 "conf_parser.y" /* yacc.c:1646  */
4972      {
4973    struct MaskItem *conf = NULL;
4974  
# Line 5063 | Line 4979 | yyreduce:
4979    conf->flags = block_state.flags.value;
4980    conf->name = xstrdup(block_state.name.buf);
4981    conf->user = xstrdup(block_state.user.buf);
4982 <  conf->user = xstrdup(block_state.host.buf);
4982 >  conf->host = xstrdup(block_state.host.buf);
4983   }
4984 + #line 4985 "conf_parser.c" /* yacc.c:1646  */
4985      break;
4986  
4987 <  case 326:
4988 < /* Line 1787 of yacc.c  */
5072 < #line 1793 "conf_parser.y"
4987 >  case 362:
4988 > #line 2002 "conf_parser.y" /* yacc.c:1646  */
4989      {
4990    if (conf_parser_ctx.pass == 2)
4991      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4992   }
4993 + #line 4994 "conf_parser.c" /* yacc.c:1646  */
4994      break;
4995  
4996 <  case 327:
4997 < /* Line 1787 of yacc.c  */
5081 < #line 1799 "conf_parser.y"
4996 >  case 363:
4997 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
4998      {
4999    if (conf_parser_ctx.pass == 2)
5000    {
# Line 5096 | Line 5012 | yyreduce:
5012      split_nuh(&nuh);
5013    }
5014   }
5015 + #line 5016 "conf_parser.c" /* yacc.c:1646  */
5016      break;
5017  
5018 <  case 328:
5019 < /* Line 1787 of yacc.c  */
5103 < #line 1818 "conf_parser.y"
5018 >  case 364:
5019 > #line 2027 "conf_parser.y" /* yacc.c:1646  */
5020      {
5021    if (conf_parser_ctx.pass == 2)
5022      block_state.flags.value = 0;
5023   }
5024 + #line 5025 "conf_parser.c" /* yacc.c:1646  */
5025      break;
5026  
5027 <  case 332:
5028 < /* Line 1787 of yacc.c  */
5112 < #line 1825 "conf_parser.y"
5027 >  case 368:
5028 > #line 2034 "conf_parser.y" /* yacc.c:1646  */
5029      {
5030    if (conf_parser_ctx.pass == 2)
5031      block_state.flags.value |= SHARED_KLINE;
5032   }
5033 + #line 5034 "conf_parser.c" /* yacc.c:1646  */
5034      break;
5035  
5036 <  case 333:
5037 < /* Line 1787 of yacc.c  */
5121 < #line 1829 "conf_parser.y"
5036 >  case 369:
5037 > #line 2038 "conf_parser.y" /* yacc.c:1646  */
5038      {
5039    if (conf_parser_ctx.pass == 2)
5040      block_state.flags.value |= SHARED_UNKLINE;
5041   }
5042 + #line 5043 "conf_parser.c" /* yacc.c:1646  */
5043      break;
5044  
5045 <  case 334:
5046 < /* Line 1787 of yacc.c  */
5130 < #line 1833 "conf_parser.y"
5045 >  case 370:
5046 > #line 2042 "conf_parser.y" /* yacc.c:1646  */
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049      block_state.flags.value |= SHARED_DLINE;
5050   }
5051 + #line 5052 "conf_parser.c" /* yacc.c:1646  */
5052      break;
5053  
5054 <  case 335:
5055 < /* Line 1787 of yacc.c  */
5139 < #line 1837 "conf_parser.y"
5054 >  case 371:
5055 > #line 2046 "conf_parser.y" /* yacc.c:1646  */
5056      {
5057    if (conf_parser_ctx.pass == 2)
5058      block_state.flags.value |= SHARED_UNDLINE;
5059   }
5060 + #line 5061 "conf_parser.c" /* yacc.c:1646  */
5061      break;
5062  
5063 <  case 336:
5064 < /* Line 1787 of yacc.c  */
5148 < #line 1841 "conf_parser.y"
5063 >  case 372:
5064 > #line 2050 "conf_parser.y" /* yacc.c:1646  */
5065      {
5066    if (conf_parser_ctx.pass == 2)
5067      block_state.flags.value |= SHARED_XLINE;
5068   }
5069 + #line 5070 "conf_parser.c" /* yacc.c:1646  */
5070      break;
5071  
5072 <  case 337:
5073 < /* Line 1787 of yacc.c  */
5157 < #line 1845 "conf_parser.y"
5072 >  case 373:
5073 > #line 2054 "conf_parser.y" /* yacc.c:1646  */
5074      {
5075    if (conf_parser_ctx.pass == 2)
5076      block_state.flags.value |= SHARED_UNXLINE;
5077   }
5078 + #line 5079 "conf_parser.c" /* yacc.c:1646  */
5079      break;
5080  
5081 <  case 338:
5082 < /* Line 1787 of yacc.c  */
5166 < #line 1849 "conf_parser.y"
5081 >  case 374:
5082 > #line 2058 "conf_parser.y" /* yacc.c:1646  */
5083      {
5084    if (conf_parser_ctx.pass == 2)
5085      block_state.flags.value |= SHARED_RESV;
5086   }
5087 + #line 5088 "conf_parser.c" /* yacc.c:1646  */
5088      break;
5089  
5090 <  case 339:
5091 < /* Line 1787 of yacc.c  */
5175 < #line 1853 "conf_parser.y"
5090 >  case 375:
5091 > #line 2062 "conf_parser.y" /* yacc.c:1646  */
5092      {
5093    if (conf_parser_ctx.pass == 2)
5094      block_state.flags.value |= SHARED_UNRESV;
5095   }
5096 + #line 5097 "conf_parser.c" /* yacc.c:1646  */
5097      break;
5098  
5099 <  case 340:
5100 < /* Line 1787 of yacc.c  */
5184 < #line 1857 "conf_parser.y"
5099 >  case 376:
5100 > #line 2066 "conf_parser.y" /* yacc.c:1646  */
5101      {
5102    if (conf_parser_ctx.pass == 2)
5103      block_state.flags.value |= SHARED_LOCOPS;
5104   }
5105 + #line 5106 "conf_parser.c" /* yacc.c:1646  */
5106      break;
5107  
5108 <  case 341:
5109 < /* Line 1787 of yacc.c  */
5193 < #line 1861 "conf_parser.y"
5108 >  case 377:
5109 > #line 2070 "conf_parser.y" /* yacc.c:1646  */
5110      {
5111    if (conf_parser_ctx.pass == 2)
5112      block_state.flags.value = SHARED_ALL;
5113   }
5114 + #line 5115 "conf_parser.c" /* yacc.c:1646  */
5115      break;
5116  
5117 <  case 342:
5118 < /* Line 1787 of yacc.c  */
5202 < #line 1870 "conf_parser.y"
5117 >  case 378:
5118 > #line 2079 "conf_parser.y" /* yacc.c:1646  */
5119      {
5120    if (conf_parser_ctx.pass != 2)
5121      break;
# Line 5209 | Line 5125 | yyreduce:
5125    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5126    block_state.flags.value = SHARED_ALL;
5127   }
5128 + #line 5129 "conf_parser.c" /* yacc.c:1646  */
5129      break;
5130  
5131 <  case 343:
5132 < /* Line 1787 of yacc.c  */
5216 < #line 1879 "conf_parser.y"
5131 >  case 379:
5132 > #line 2088 "conf_parser.y" /* yacc.c:1646  */
5133      {
5134    struct MaskItem *conf = NULL;
5135  
# Line 5224 | Line 5140 | yyreduce:
5140    conf->flags = block_state.flags.value;
5141    conf->name = xstrdup(block_state.name.buf);
5142   }
5143 + #line 5144 "conf_parser.c" /* yacc.c:1646  */
5144      break;
5145  
5146 <  case 349:
5147 < /* Line 1787 of yacc.c  */
5231 < #line 1894 "conf_parser.y"
5146 >  case 385:
5147 > #line 2103 "conf_parser.y" /* yacc.c:1646  */
5148      {
5149    if (conf_parser_ctx.pass == 2)
5150      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5151   }
5152 + #line 5153 "conf_parser.c" /* yacc.c:1646  */
5153      break;
5154  
5155 <  case 350:
5156 < /* Line 1787 of yacc.c  */
5240 < #line 1900 "conf_parser.y"
5155 >  case 386:
5156 > #line 2109 "conf_parser.y" /* yacc.c:1646  */
5157      {
5158    if (conf_parser_ctx.pass == 2)
5159      block_state.flags.value = 0;
5160   }
5161 + #line 5162 "conf_parser.c" /* yacc.c:1646  */
5162      break;
5163  
5164 <  case 354:
5165 < /* Line 1787 of yacc.c  */
5249 < #line 1907 "conf_parser.y"
5164 >  case 390:
5165 > #line 2116 "conf_parser.y" /* yacc.c:1646  */
5166      {
5167    if (conf_parser_ctx.pass == 2)
5168      block_state.flags.value |= SHARED_KLINE;
5169   }
5170 + #line 5171 "conf_parser.c" /* yacc.c:1646  */
5171      break;
5172  
5173 <  case 355:
5174 < /* Line 1787 of yacc.c  */
5258 < #line 1911 "conf_parser.y"
5173 >  case 391:
5174 > #line 2120 "conf_parser.y" /* yacc.c:1646  */
5175      {
5176    if (conf_parser_ctx.pass == 2)
5177      block_state.flags.value |= SHARED_UNKLINE;
5178   }
5179 + #line 5180 "conf_parser.c" /* yacc.c:1646  */
5180      break;
5181  
5182 <  case 356:
5183 < /* Line 1787 of yacc.c  */
5267 < #line 1915 "conf_parser.y"
5182 >  case 392:
5183 > #line 2124 "conf_parser.y" /* yacc.c:1646  */
5184      {
5185    if (conf_parser_ctx.pass == 2)
5186      block_state.flags.value |= SHARED_DLINE;
5187   }
5188 + #line 5189 "conf_parser.c" /* yacc.c:1646  */
5189      break;
5190  
5191 <  case 357:
5192 < /* Line 1787 of yacc.c  */
5276 < #line 1919 "conf_parser.y"
5191 >  case 393:
5192 > #line 2128 "conf_parser.y" /* yacc.c:1646  */
5193      {
5194    if (conf_parser_ctx.pass == 2)
5195      block_state.flags.value |= SHARED_UNDLINE;
5196   }
5197 + #line 5198 "conf_parser.c" /* yacc.c:1646  */
5198      break;
5199  
5200 <  case 358:
5201 < /* Line 1787 of yacc.c  */
5285 < #line 1923 "conf_parser.y"
5200 >  case 394:
5201 > #line 2132 "conf_parser.y" /* yacc.c:1646  */
5202      {
5203    if (conf_parser_ctx.pass == 2)
5204      block_state.flags.value |= SHARED_XLINE;
5205   }
5206 + #line 5207 "conf_parser.c" /* yacc.c:1646  */
5207      break;
5208  
5209 <  case 359:
5210 < /* Line 1787 of yacc.c  */
5294 < #line 1927 "conf_parser.y"
5209 >  case 395:
5210 > #line 2136 "conf_parser.y" /* yacc.c:1646  */
5211      {
5212    if (conf_parser_ctx.pass == 2)
5213      block_state.flags.value |= SHARED_UNXLINE;
5214   }
5215 + #line 5216 "conf_parser.c" /* yacc.c:1646  */
5216      break;
5217  
5218 <  case 360:
5219 < /* Line 1787 of yacc.c  */
5303 < #line 1931 "conf_parser.y"
5218 >  case 396:
5219 > #line 2140 "conf_parser.y" /* yacc.c:1646  */
5220      {
5221    if (conf_parser_ctx.pass == 2)
5222      block_state.flags.value |= SHARED_RESV;
5223   }
5224 + #line 5225 "conf_parser.c" /* yacc.c:1646  */
5225      break;
5226  
5227 <  case 361:
5228 < /* Line 1787 of yacc.c  */
5312 < #line 1935 "conf_parser.y"
5227 >  case 397:
5228 > #line 2144 "conf_parser.y" /* yacc.c:1646  */
5229      {
5230    if (conf_parser_ctx.pass == 2)
5231      block_state.flags.value |= SHARED_UNRESV;
5232   }
5233 + #line 5234 "conf_parser.c" /* yacc.c:1646  */
5234      break;
5235  
5236 <  case 362:
5237 < /* Line 1787 of yacc.c  */
5321 < #line 1939 "conf_parser.y"
5236 >  case 398:
5237 > #line 2148 "conf_parser.y" /* yacc.c:1646  */
5238      {
5239    if (conf_parser_ctx.pass == 2)
5240      block_state.flags.value |= SHARED_LOCOPS;
5241   }
5242 + #line 5243 "conf_parser.c" /* yacc.c:1646  */
5243      break;
5244  
5245 <  case 363:
5246 < /* Line 1787 of yacc.c  */
5330 < #line 1943 "conf_parser.y"
5245 >  case 399:
5246 > #line 2152 "conf_parser.y" /* yacc.c:1646  */
5247      {
5248    if (conf_parser_ctx.pass == 2)
5249      block_state.flags.value = SHARED_ALL;
5250   }
5251 + #line 5252 "conf_parser.c" /* yacc.c:1646  */
5252      break;
5253  
5254 <  case 364:
5255 < /* Line 1787 of yacc.c  */
5339 < #line 1952 "conf_parser.y"
5254 >  case 400:
5255 > #line 2161 "conf_parser.y" /* yacc.c:1646  */
5256      {
5257  
5258    if (conf_parser_ctx.pass != 2)
5259      break;
5260  
5261    reset_block_state();
5262 +  block_state.aftype.value = AF_INET;
5263    block_state.port.value = PORTNUM;
5264   }
5265 + #line 5266 "conf_parser.c" /* yacc.c:1646  */
5266      break;
5267  
5268 <  case 365:
5269 < /* Line 1787 of yacc.c  */
5352 < #line 1960 "conf_parser.y"
5268 >  case 401:
5269 > #line 2170 "conf_parser.y" /* yacc.c:1646  */
5270      {
5271    struct MaskItem *conf = NULL;
5272    struct addrinfo hints, *res;
# Line 5361 | Line 5278 | yyreduce:
5278        !block_state.host.buf[0])
5279      break;
5280  
5281 <  if (!(block_state.rpass.buf[0] ||
5282 <        block_state.spass.buf[0]))
5281 >  if (!block_state.rpass.buf[0] ||
5282 >      !block_state.spass.buf[0])
5283      break;
5284  
5285    if (has_wildcards(block_state.name.buf) ||
# Line 5377 | Line 5294 | yyreduce:
5294    conf->name = xstrdup(block_state.name.buf);
5295    conf->passwd = xstrdup(block_state.rpass.buf);
5296    conf->spasswd = xstrdup(block_state.spass.buf);
5297 <  conf->cipher_list = xstrdup(block_state.ciph.buf);
5297 >
5298 >  if (block_state.cert.buf[0])
5299 >    conf->certfp = xstrdup(block_state.cert.buf);
5300 >
5301 >  if (block_state.ciph.buf[0])
5302 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5303  
5304    dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5305    dlinkMoveList(&block_state.hub.list, &conf->hub_list);
# Line 5394 | Line 5316 | yyreduce:
5316        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5317      else
5318      {
5319 <      assert(res != NULL);
5319 >      assert(res);
5320  
5321        memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5322        conf->bind.ss.ss_family = res->ai_family;
# Line 5406 | Line 5328 | yyreduce:
5328    conf_add_class_to_conf(conf, block_state.class.buf);
5329    lookup_confhost(conf);
5330   }
5331 + #line 5332 "conf_parser.c" /* yacc.c:1646  */
5332      break;
5333  
5334 <  case 382:
5335 < /* Line 1787 of yacc.c  */
5413 < #line 2026 "conf_parser.y"
5334 >  case 419:
5335 > #line 2250 "conf_parser.y" /* yacc.c:1646  */
5336      {
5337    if (conf_parser_ctx.pass == 2)
5338      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5339   }
5340 + #line 5341 "conf_parser.c" /* yacc.c:1646  */
5341      break;
5342  
5343 <  case 383:
5344 < /* Line 1787 of yacc.c  */
5422 < #line 2032 "conf_parser.y"
5343 >  case 420:
5344 > #line 2256 "conf_parser.y" /* yacc.c:1646  */
5345      {
5346    if (conf_parser_ctx.pass == 2)
5347      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5348   }
5349 + #line 5350 "conf_parser.c" /* yacc.c:1646  */
5350      break;
5351  
5352 <  case 384:
5353 < /* Line 1787 of yacc.c  */
5431 < #line 2038 "conf_parser.y"
5352 >  case 421:
5353 > #line 2262 "conf_parser.y" /* yacc.c:1646  */
5354      {
5355    if (conf_parser_ctx.pass == 2)
5356      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5357   }
5358 + #line 5359 "conf_parser.c" /* yacc.c:1646  */
5359      break;
5360  
5361 <  case 385:
5362 < /* Line 1787 of yacc.c  */
5440 < #line 2044 "conf_parser.y"
5361 >  case 422:
5362 > #line 2268 "conf_parser.y" /* yacc.c:1646  */
5363      {
5364    if (conf_parser_ctx.pass != 2)
5365      break;
5366  
5367 <  if ((yyvsp[(3) - (4)].string)[0] == ':')
5367 >  if ((yyvsp[-1].string)[0] == ':')
5368      conf_error_report("Server passwords cannot begin with a colon");
5369 <  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5369 >  else if (strchr((yyvsp[-1].string), ' '))
5370      conf_error_report("Server passwords cannot contain spaces");
5371    else
5372      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5373   }
5374 + #line 5375 "conf_parser.c" /* yacc.c:1646  */
5375      break;
5376  
5377 <  case 386:
5378 < /* Line 1787 of yacc.c  */
5456 < #line 2057 "conf_parser.y"
5377 >  case 423:
5378 > #line 2281 "conf_parser.y" /* yacc.c:1646  */
5379      {
5380    if (conf_parser_ctx.pass != 2)
5381      break;
5382  
5383 <  if ((yyvsp[(3) - (4)].string)[0] == ':')
5383 >  if ((yyvsp[-1].string)[0] == ':')
5384      conf_error_report("Server passwords cannot begin with a colon");
5385 <  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5385 >  else if (strchr((yyvsp[-1].string), ' '))
5386      conf_error_report("Server passwords cannot contain spaces");
5387    else
5388      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5389   }
5390 + #line 5391 "conf_parser.c" /* yacc.c:1646  */
5391      break;
5392  
5393 <  case 387:
5394 < /* Line 1787 of yacc.c  */
5472 < #line 2070 "conf_parser.y"
5393 >  case 424:
5394 > #line 2294 "conf_parser.y" /* yacc.c:1646  */
5395      {
5396    if (conf_parser_ctx.pass == 2)
5397 <    block_state.port.value = (yyvsp[(3) - (4)].number);
5397 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5398   }
5399 + #line 5400 "conf_parser.c" /* yacc.c:1646  */
5400      break;
5401  
5402 <  case 388:
5403 < /* Line 1787 of yacc.c  */
5404 < #line 2076 "conf_parser.y"
5402 >  case 425:
5403 > #line 2300 "conf_parser.y" /* yacc.c:1646  */
5404 >    {
5405 >  if (conf_parser_ctx.pass == 2)
5406 >    block_state.port.value = (yyvsp[-1].number);
5407 > }
5408 > #line 5409 "conf_parser.c" /* yacc.c:1646  */
5409 >    break;
5410 >
5411 >  case 426:
5412 > #line 2306 "conf_parser.y" /* yacc.c:1646  */
5413      {
5414    if (conf_parser_ctx.pass == 2)
5415      block_state.aftype.value = AF_INET;
5416   }
5417 + #line 5418 "conf_parser.c" /* yacc.c:1646  */
5418      break;
5419  
5420 <  case 389:
5421 < /* Line 1787 of yacc.c  */
5490 < #line 2080 "conf_parser.y"
5420 >  case 427:
5421 > #line 2310 "conf_parser.y" /* yacc.c:1646  */
5422      {
5492 #ifdef IPV6
5423    if (conf_parser_ctx.pass == 2)
5424      block_state.aftype.value = AF_INET6;
5495 #endif
5425   }
5426 + #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 390:
5430 < /* Line 1787 of yacc.c  */
5501 < #line 2088 "conf_parser.y"
5429 >  case 428:
5430 > #line 2316 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5433   }
5434 + #line 5435 "conf_parser.c" /* yacc.c:1646  */
5435      break;
5436  
5437 <  case 394:
5438 < /* Line 1787 of yacc.c  */
5509 < #line 2094 "conf_parser.y"
5437 >  case 432:
5438 > #line 2322 "conf_parser.y" /* yacc.c:1646  */
5439      {
5440    if (conf_parser_ctx.pass == 2)
5441      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5442   }
5443 + #line 5444 "conf_parser.c" /* yacc.c:1646  */
5444      break;
5445  
5446 <  case 395:
5447 < /* Line 1787 of yacc.c  */
5518 < #line 2098 "conf_parser.y"
5446 >  case 433:
5447 > #line 2326 "conf_parser.y" /* yacc.c:1646  */
5448      {
5449    if (conf_parser_ctx.pass == 2)
5450      block_state.flags.value |= CONF_FLAGS_SSL;
5451   }
5452 + #line 5453 "conf_parser.c" /* yacc.c:1646  */
5453      break;
5454  
5455 <  case 396:
5456 < /* Line 1787 of yacc.c  */
5527 < #line 2104 "conf_parser.y"
5455 >  case 434:
5456 > #line 2332 "conf_parser.y" /* yacc.c:1646  */
5457      {
5458    if (conf_parser_ctx.pass == 2)
5459    {
# Line 5534 | Line 5463 | yyreduce:
5463        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5464    }
5465   }
5466 + #line 5467 "conf_parser.c" /* yacc.c:1646  */
5467      break;
5468  
5469 <  case 397:
5470 < /* Line 1787 of yacc.c  */
5541 < #line 2115 "conf_parser.y"
5469 >  case 435:
5470 > #line 2343 "conf_parser.y" /* yacc.c:1646  */
5471      {
5472    if (conf_parser_ctx.pass == 2)
5473      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5474   }
5475 + #line 5476 "conf_parser.c" /* yacc.c:1646  */
5476      break;
5477  
5478 <  case 398:
5479 < /* Line 1787 of yacc.c  */
5550 < #line 2121 "conf_parser.y"
5478 >  case 436:
5479 > #line 2349 "conf_parser.y" /* yacc.c:1646  */
5480      {
5481    if (conf_parser_ctx.pass == 2)
5482      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5483   }
5484 + #line 5485 "conf_parser.c" /* yacc.c:1646  */
5485      break;
5486  
5487 <  case 399:
5488 < /* Line 1787 of yacc.c  */
5559 < #line 2127 "conf_parser.y"
5487 >  case 437:
5488 > #line 2355 "conf_parser.y" /* yacc.c:1646  */
5489      {
5490    if (conf_parser_ctx.pass == 2)
5491      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5492   }
5493 + #line 5494 "conf_parser.c" /* yacc.c:1646  */
5494      break;
5495  
5496 <  case 400:
5497 < /* Line 1787 of yacc.c  */
5568 < #line 2133 "conf_parser.y"
5496 >  case 438:
5497 > #line 2361 "conf_parser.y" /* yacc.c:1646  */
5498      {
5499   #ifdef HAVE_LIBCRYPTO
5500    if (conf_parser_ctx.pass == 2)
# Line 5575 | Line 5504 | yyreduce:
5504      conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5505   #endif
5506   }
5507 + #line 5508 "conf_parser.c" /* yacc.c:1646  */
5508      break;
5509  
5510 <  case 401:
5511 < /* Line 1787 of yacc.c  */
5582 < #line 2148 "conf_parser.y"
5510 >  case 439:
5511 > #line 2376 "conf_parser.y" /* yacc.c:1646  */
5512      {
5513    if (conf_parser_ctx.pass == 2)
5514      reset_block_state();
5515   }
5516 + #line 5517 "conf_parser.c" /* yacc.c:1646  */
5517      break;
5518  
5519 <  case 402:
5520 < /* Line 1787 of yacc.c  */
5591 < #line 2152 "conf_parser.y"
5519 >  case 440:
5520 > #line 2380 "conf_parser.y" /* yacc.c:1646  */
5521      {
5522    struct MaskItem *conf = NULL;
5523  
# Line 5599 | Line 5528 | yyreduce:
5528        !block_state.host.buf[0])
5529      break;
5530  
5531 +  conf = conf_make(CONF_KLINE);
5532 +  conf->user = xstrdup(block_state.user.buf);
5533 +  conf->host = xstrdup(block_state.host.buf);
5534  
5535 <  if (block_state.port.value == 1)
5536 <  {
5605 < #ifdef HAVE_LIBPCRE
5606 <    void *exp_user = NULL;
5607 <    void *exp_host = NULL;
5608 <    const char *errptr = NULL;
5609 <
5610 <    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5611 <        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5612 <    {
5613 <      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5614 <           errptr);
5615 <      break;
5616 <    }
5617 <
5618 <    conf = conf_make(CONF_RKLINE);
5619 <    conf->regexuser = exp_user;
5620 <    conf->regexhost = exp_host;
5621 <
5622 <    conf->user = xstrdup(block_state.user.buf);
5623 <    conf->host = xstrdup(block_state.host.buf);
5624 <
5625 <    if (block_state.rpass.buf[0])
5626 <      conf->reason = xstrdup(block_state.rpass.buf);
5627 <    else
5628 <      conf->reason = xstrdup(CONF_NOREASON);
5629 < #else
5630 <    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5631 <    break;
5632 < #endif
5633 <  }
5535 >  if (block_state.rpass.buf[0])
5536 >    conf->reason = xstrdup(block_state.rpass.buf);
5537    else
5538 <  {
5539 <    conf = conf_make(CONF_KLINE);
5637 <
5638 <    conf->user = xstrdup(block_state.user.buf);
5639 <    conf->host = xstrdup(block_state.host.buf);
5640 <
5641 <    if (block_state.rpass.buf[0])
5642 <      conf->reason = xstrdup(block_state.rpass.buf);
5643 <    else
5644 <      conf->reason = xstrdup(CONF_NOREASON);
5645 <    add_conf_by_address(CONF_KLINE, conf);
5646 <  }
5647 < }
5648 <    break;
5649 <
5650 <  case 403:
5651 < /* Line 1787 of yacc.c  */
5652 < #line 2210 "conf_parser.y"
5653 <    {
5654 <  if (conf_parser_ctx.pass == 2)
5655 <    block_state.port.value = 0;
5656 < }
5657 <    break;
5658 <
5659 <  case 407:
5660 < /* Line 1787 of yacc.c  */
5661 < #line 2217 "conf_parser.y"
5662 <    {
5663 <  if (conf_parser_ctx.pass == 2)
5664 <    block_state.port.value = 1;
5538 >    conf->reason = xstrdup(CONF_NOREASON);
5539 >  add_conf_by_address(CONF_KLINE, conf);
5540   }
5541 + #line 5542 "conf_parser.c" /* yacc.c:1646  */
5542      break;
5543  
5544 <  case 414:
5545 < /* Line 1787 of yacc.c  */
5670 < #line 2226 "conf_parser.y"
5544 >  case 446:
5545 > #line 2405 "conf_parser.y" /* yacc.c:1646  */
5546      {
5547  
5548    if (conf_parser_ctx.pass == 2)
# Line 5686 | Line 5561 | yyreduce:
5561      split_nuh(&nuh);
5562    }
5563   }
5564 + #line 5565 "conf_parser.c" /* yacc.c:1646  */
5565      break;
5566  
5567 <  case 415:
5568 < /* Line 1787 of yacc.c  */
5693 < #line 2246 "conf_parser.y"
5567 >  case 447:
5568 > #line 2425 "conf_parser.y" /* yacc.c:1646  */
5569      {
5570    if (conf_parser_ctx.pass == 2)
5571      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5572   }
5573 + #line 5574 "conf_parser.c" /* yacc.c:1646  */
5574      break;
5575  
5576 <  case 416:
5577 < /* Line 1787 of yacc.c  */
5702 < #line 2255 "conf_parser.y"
5576 >  case 448:
5577 > #line 2434 "conf_parser.y" /* yacc.c:1646  */
5578      {
5579    if (conf_parser_ctx.pass == 2)
5580      reset_block_state();
5581   }
5582 + #line 5583 "conf_parser.c" /* yacc.c:1646  */
5583      break;
5584  
5585 <  case 417:
5586 < /* Line 1787 of yacc.c  */
5711 < #line 2259 "conf_parser.y"
5585 >  case 449:
5586 > #line 2438 "conf_parser.y" /* yacc.c:1646  */
5587      {
5588    struct MaskItem *conf = NULL;
5589  
# Line 5730 | Line 5605 | yyreduce:
5605      add_conf_by_address(CONF_DLINE, conf);
5606    }
5607   }
5608 + #line 5609 "conf_parser.c" /* yacc.c:1646  */
5609      break;
5610  
5611 <  case 423:
5612 < /* Line 1787 of yacc.c  */
5737 < #line 2285 "conf_parser.y"
5611 >  case 455:
5612 > #line 2464 "conf_parser.y" /* yacc.c:1646  */
5613      {
5614    if (conf_parser_ctx.pass == 2)
5615      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5616   }
5617 + #line 5618 "conf_parser.c" /* yacc.c:1646  */
5618      break;
5619  
5620 <  case 424:
5621 < /* Line 1787 of yacc.c  */
5746 < #line 2291 "conf_parser.y"
5620 >  case 456:
5621 > #line 2470 "conf_parser.y" /* yacc.c:1646  */
5622      {
5623    if (conf_parser_ctx.pass == 2)
5624      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629 <  case 430:
5630 < /* Line 1787 of yacc.c  */
5755 < #line 2305 "conf_parser.y"
5629 >  case 462:
5630 > #line 2484 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632    if (conf_parser_ctx.pass == 2)
5633    {
# Line 5765 | Line 5640 | yyreduce:
5640      }
5641    }
5642   }
5643 + #line 5644 "conf_parser.c" /* yacc.c:1646  */
5644      break;
5645  
5646 <  case 431:
5647 < /* Line 1787 of yacc.c  */
5772 < #line 2322 "conf_parser.y"
5646 >  case 463:
5647 > #line 2501 "conf_parser.y" /* yacc.c:1646  */
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650      reset_block_state();
5651   }
5652 + #line 5653 "conf_parser.c" /* yacc.c:1646  */
5653      break;
5654  
5655 <  case 432:
5656 < /* Line 1787 of yacc.c  */
5781 < #line 2326 "conf_parser.y"
5655 >  case 464:
5656 > #line 2505 "conf_parser.y" /* yacc.c:1646  */
5657      {
5658    struct MaskItem *conf = NULL;
5659  
# Line 5788 | Line 5663 | yyreduce:
5663    if (!block_state.name.buf[0])
5664      break;
5665  
5666 <  if (block_state.port.value == 1)
5792 <  {
5793 < #ifdef HAVE_LIBPCRE
5794 <    void *exp_p = NULL;
5795 <    const char *errptr = NULL;
5796 <
5797 <    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5798 <    {
5799 <      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5800 <           errptr);
5801 <      break;
5802 <    }
5803 <
5804 <    conf = conf_make(CONF_RXLINE);
5805 <    conf->regexuser = exp_p;
5806 < #else
5807 <    conf_error_report("Failed to add regular expression based X-Line: no PCRE support");
5808 <    break;
5809 < #endif
5810 <  }
5811 <  else
5812 <    conf = conf_make(CONF_XLINE);
5813 <
5666 >  conf = conf_make(CONF_XLINE);
5667    conf->name = xstrdup(block_state.name.buf);
5668  
5669    if (block_state.rpass.buf[0])
# Line 5818 | Line 5671 | yyreduce:
5671    else
5672      conf->reason = xstrdup(CONF_NOREASON);
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677 <  case 433:
5678 < /* Line 1787 of yacc.c  */
5825 < #line 2367 "conf_parser.y"
5826 <    {
5827 <  if (conf_parser_ctx.pass == 2)
5828 <    block_state.port.value = 0;
5829 < }
5830 <    break;
5831 <
5832 <  case 437:
5833 < /* Line 1787 of yacc.c  */
5834 < #line 2374 "conf_parser.y"
5835 <    {
5836 <  if (conf_parser_ctx.pass == 2)
5837 <    block_state.port.value = 1;
5838 < }
5839 <    break;
5840 <
5841 <  case 444:
5842 < /* Line 1787 of yacc.c  */
5843 < #line 2383 "conf_parser.y"
5677 >  case 470:
5678 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680    if (conf_parser_ctx.pass == 2)
5681      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5682   }
5683 + #line 5684 "conf_parser.c" /* yacc.c:1646  */
5684      break;
5685  
5686 <  case 445:
5687 < /* Line 1787 of yacc.c  */
5852 < #line 2389 "conf_parser.y"
5686 >  case 471:
5687 > #line 2533 "conf_parser.y" /* yacc.c:1646  */
5688      {
5689    if (conf_parser_ctx.pass == 2)
5690      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5691   }
5692 + #line 5693 "conf_parser.c" /* yacc.c:1646  */
5693      break;
5694  
5695 <  case 498:
5696 < /* Line 1787 of yacc.c  */
5861 < #line 2433 "conf_parser.y"
5695 >  case 521:
5696 > #line 2594 "conf_parser.y" /* yacc.c:1646  */
5697      {
5698 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5698 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5699   }
5700 + #line 5701 "conf_parser.c" /* yacc.c:1646  */
5701      break;
5702  
5703 <  case 499:
5704 < /* Line 1787 of yacc.c  */
5869 < #line 2438 "conf_parser.y"
5703 >  case 522:
5704 > #line 2599 "conf_parser.y" /* yacc.c:1646  */
5705      {
5706 <  if (conf_parser_ctx.pass == 2)
5872 <    ConfigFileEntry.glines = yylval.number;
5706 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5707   }
5708 + #line 5709 "conf_parser.c" /* yacc.c:1646  */
5709      break;
5710  
5711 <  case 500:
5712 < /* Line 1787 of yacc.c  */
5878 < #line 2444 "conf_parser.y"
5711 >  case 523:
5712 > #line 2604 "conf_parser.y" /* yacc.c:1646  */
5713      {
5714 <  if (conf_parser_ctx.pass == 2)
5881 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5714 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5715   }
5716 + #line 5717 "conf_parser.c" /* yacc.c:1646  */
5717      break;
5718  
5719 <  case 501:
5720 < /* Line 1787 of yacc.c  */
5887 < #line 2450 "conf_parser.y"
5719 >  case 524:
5720 > #line 2609 "conf_parser.y" /* yacc.c:1646  */
5721      {
5722    if (conf_parser_ctx.pass == 2)
5723 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5723 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5724   }
5725 + #line 5726 "conf_parser.c" /* yacc.c:1646  */
5726      break;
5727  
5728 <  case 502:
5729 < /* Line 1787 of yacc.c  */
5896 < #line 2456 "conf_parser.y"
5728 >  case 525:
5729 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5730      {
5731 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5731 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5732   }
5733 + #line 5734 "conf_parser.c" /* yacc.c:1646  */
5734      break;
5735  
5736 <  case 503:
5737 < /* Line 1787 of yacc.c  */
5904 < #line 2461 "conf_parser.y"
5736 >  case 526:
5737 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5738      {
5739 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5739 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5740   }
5741 + #line 5742 "conf_parser.c" /* yacc.c:1646  */
5742      break;
5743  
5744 <  case 504:
5745 < /* Line 1787 of yacc.c  */
5912 < #line 2466 "conf_parser.y"
5744 >  case 527:
5745 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5746      {
5747 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5747 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5748   }
5749 + #line 5750 "conf_parser.c" /* yacc.c:1646  */
5750      break;
5751  
5752 <  case 505:
5753 < /* Line 1787 of yacc.c  */
5920 < #line 2471 "conf_parser.y"
5752 >  case 528:
5753 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5754      {
5755 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5755 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5756   }
5757 + #line 5758 "conf_parser.c" /* yacc.c:1646  */
5758      break;
5759  
5760 <  case 506:
5761 < /* Line 1787 of yacc.c  */
5928 < #line 2476 "conf_parser.y"
5760 >  case 529:
5761 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5762      {
5763 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5763 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5764   }
5765 + #line 5766 "conf_parser.c" /* yacc.c:1646  */
5766      break;
5767  
5768 <  case 507:
5769 < /* Line 1787 of yacc.c  */
5936 < #line 2481 "conf_parser.y"
5768 >  case 530:
5769 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5770      {
5771 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5771 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5772   }
5773 + #line 5774 "conf_parser.c" /* yacc.c:1646  */
5774      break;
5775  
5776 <  case 508:
5777 < /* Line 1787 of yacc.c  */
5944 < #line 2486 "conf_parser.y"
5776 >  case 531:
5777 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5778      {
5779 <  ConfigFileEntry.disable_remote = yylval.number;
5779 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5780   }
5781 + #line 5782 "conf_parser.c" /* yacc.c:1646  */
5782      break;
5783  
5784 <  case 509:
5785 < /* Line 1787 of yacc.c  */
5952 < #line 2491 "conf_parser.y"
5784 >  case 532:
5785 > #line 2650 "conf_parser.y" /* yacc.c:1646  */
5786      {
5787 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5787 >  ConfigGeneral.failed_oper_notice = yylval.number;
5788   }
5789 + #line 5790 "conf_parser.c" /* yacc.c:1646  */
5790      break;
5791  
5792 <  case 510:
5793 < /* Line 1787 of yacc.c  */
5960 < #line 2496 "conf_parser.y"
5792 >  case 533:
5793 > #line 2655 "conf_parser.y" /* yacc.c:1646  */
5794      {
5795 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5795 >  ConfigGeneral.anti_nick_flood = yylval.number;
5796   }
5797 + #line 5798 "conf_parser.c" /* yacc.c:1646  */
5798      break;
5799  
5800 <  case 511:
5801 < /* Line 1787 of yacc.c  */
5968 < #line 2501 "conf_parser.y"
5800 >  case 534:
5801 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5802      {
5803 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5803 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5804   }
5805 + #line 5806 "conf_parser.c" /* yacc.c:1646  */
5806      break;
5807  
5808 <  case 512:
5809 < /* Line 1787 of yacc.c  */
5976 < #line 2506 "conf_parser.y"
5808 >  case 535:
5809 > #line 2665 "conf_parser.y" /* yacc.c:1646  */
5810      {
5811 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5811 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5812   }
5813 + #line 5814 "conf_parser.c" /* yacc.c:1646  */
5814      break;
5815  
5816 <  case 513:
5817 < /* Line 1787 of yacc.c  */
5984 < #line 2511 "conf_parser.y"
5816 >  case 536:
5817 > #line 2670 "conf_parser.y" /* yacc.c:1646  */
5818      {
5819 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5819 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5820   }
5821 + #line 5822 "conf_parser.c" /* yacc.c:1646  */
5822      break;
5823  
5824 <  case 514:
5825 < /* Line 1787 of yacc.c  */
5992 < #line 2516 "conf_parser.y"
5824 >  case 537:
5825 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5826      {
5827 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5827 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5828   }
5829 + #line 5830 "conf_parser.c" /* yacc.c:1646  */
5830      break;
5831  
5832 <  case 515:
5833 < /* Line 1787 of yacc.c  */
6000 < #line 2521 "conf_parser.y"
5832 >  case 538:
5833 > #line 2680 "conf_parser.y" /* yacc.c:1646  */
5834      {
5835 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5835 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5836   }
5837 + #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840 <  case 516:
5841 < /* Line 1787 of yacc.c  */
6008 < #line 2526 "conf_parser.y"
5840 >  case 539:
5841 > #line 2685 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843    if (conf_parser_ctx.pass == 2)
5844 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5844 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5845   }
5846 + #line 5847 "conf_parser.c" /* yacc.c:1646  */
5847      break;
5848  
5849 <  case 517:
5850 < /* Line 1787 of yacc.c  */
6017 < #line 2532 "conf_parser.y"
5849 >  case 540:
5850 > #line 2691 "conf_parser.y" /* yacc.c:1646  */
5851      {
5852 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6020 <  {
6021 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6022 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6023 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6024 <    exit(0);
6025 <  }
5852 >  ConfigGeneral.invisible_on_connect = yylval.number;
5853   }
5854 + #line 5855 "conf_parser.c" /* yacc.c:1646  */
5855      break;
5856  
5857 <  case 518:
5858 < /* Line 1787 of yacc.c  */
6031 < #line 2543 "conf_parser.y"
5857 >  case 541:
5858 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
5859      {
5860 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5860 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5861   }
5862 + #line 5863 "conf_parser.c" /* yacc.c:1646  */
5863      break;
5864  
5865 <  case 519:
5866 < /* Line 1787 of yacc.c  */
6039 < #line 2548 "conf_parser.y"
5865 >  case 542:
5866 > #line 2701 "conf_parser.y" /* yacc.c:1646  */
5867      {
5868 <  ConfigFileEntry.warn_no_nline = yylval.number;
5868 >  ConfigGeneral.stats_e_disabled = yylval.number;
5869   }
5870 + #line 5871 "conf_parser.c" /* yacc.c:1646  */
5871      break;
5872  
5873 <  case 520:
5874 < /* Line 1787 of yacc.c  */
6047 < #line 2553 "conf_parser.y"
5873 >  case 543:
5874 > #line 2706 "conf_parser.y" /* yacc.c:1646  */
5875      {
5876 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5876 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5877   }
5878 + #line 5879 "conf_parser.c" /* yacc.c:1646  */
5879      break;
5880  
5881 <  case 521:
5882 < /* Line 1787 of yacc.c  */
6055 < #line 2558 "conf_parser.y"
5881 >  case 544:
5882 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
5883      {
5884 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5884 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5885   }
5886 + #line 5887 "conf_parser.c" /* yacc.c:1646  */
5887      break;
5888  
5889 <  case 522:
5890 < /* Line 1787 of yacc.c  */
6063 < #line 2563 "conf_parser.y"
5889 >  case 545:
5890 > #line 2716 "conf_parser.y" /* yacc.c:1646  */
5891      {
5892 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5892 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5893   }
5894 + #line 5895 "conf_parser.c" /* yacc.c:1646  */
5895      break;
5896  
5897 <  case 523:
5898 < /* Line 1787 of yacc.c  */
6071 < #line 2568 "conf_parser.y"
5897 >  case 546:
5898 > #line 2721 "conf_parser.y" /* yacc.c:1646  */
5899      {
5900 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5900 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5901   }
5902 + #line 5903 "conf_parser.c" /* yacc.c:1646  */
5903      break;
5904  
5905 <  case 524:
5906 < /* Line 1787 of yacc.c  */
6079 < #line 2571 "conf_parser.y"
5905 >  case 547:
5906 > #line 2726 "conf_parser.y" /* yacc.c:1646  */
5907      {
5908 <  ConfigFileEntry.stats_k_oper_only = 1;
5908 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5909   }
5910 + #line 5911 "conf_parser.c" /* yacc.c:1646  */
5911      break;
5912  
5913 <  case 525:
5914 < /* Line 1787 of yacc.c  */
6087 < #line 2576 "conf_parser.y"
5913 >  case 548:
5914 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
5915      {
5916 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5916 >  ConfigGeneral.stats_k_oper_only = 1;
5917   }
5918 + #line 5919 "conf_parser.c" /* yacc.c:1646  */
5919      break;
5920  
5921 <  case 526:
5922 < /* Line 1787 of yacc.c  */
6095 < #line 2579 "conf_parser.y"
5921 >  case 549:
5922 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
5923      {
5924 <  ConfigFileEntry.stats_i_oper_only = 1;
5924 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5925   }
5926 + #line 5927 "conf_parser.c" /* yacc.c:1646  */
5927      break;
5928  
5929 <  case 527:
5930 < /* Line 1787 of yacc.c  */
6103 < #line 2584 "conf_parser.y"
5929 >  case 550:
5930 > #line 2737 "conf_parser.y" /* yacc.c:1646  */
5931      {
5932 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5932 >  ConfigGeneral.stats_i_oper_only = 1;
5933   }
5934 + #line 5935 "conf_parser.c" /* yacc.c:1646  */
5935      break;
5936  
5937 <  case 528:
5938 < /* Line 1787 of yacc.c  */
6111 < #line 2589 "conf_parser.y"
5937 >  case 551:
5938 > #line 2742 "conf_parser.y" /* yacc.c:1646  */
5939      {
5940 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5940 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5941   }
5942 + #line 5943 "conf_parser.c" /* yacc.c:1646  */
5943      break;
5944  
5945 <  case 529:
5946 < /* Line 1787 of yacc.c  */
6119 < #line 2594 "conf_parser.y"
5945 >  case 552:
5946 > #line 2747 "conf_parser.y" /* yacc.c:1646  */
5947      {
5948 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5948 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5949   }
5950 + #line 5951 "conf_parser.c" /* yacc.c:1646  */
5951      break;
5952  
5953 <  case 530:
5954 < /* Line 1787 of yacc.c  */
6127 < #line 2599 "conf_parser.y"
5953 >  case 553:
5954 > #line 2752 "conf_parser.y" /* yacc.c:1646  */
5955      {
5956 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5956 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5957   }
5958 + #line 5959 "conf_parser.c" /* yacc.c:1646  */
5959      break;
5960  
5961 <  case 531:
5962 < /* Line 1787 of yacc.c  */
6135 < #line 2604 "conf_parser.y"
5961 >  case 554:
5962 > #line 2757 "conf_parser.y" /* yacc.c:1646  */
5963      {
5964 <  ConfigFileEntry.short_motd = yylval.number;
5964 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5965   }
5966 + #line 5967 "conf_parser.c" /* yacc.c:1646  */
5967      break;
5968  
5969 <  case 532:
5970 < /* Line 1787 of yacc.c  */
6143 < #line 2609 "conf_parser.y"
5969 >  case 555:
5970 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
5971      {
5972 <  ConfigFileEntry.no_oper_flood = yylval.number;
5972 >  ConfigGeneral.short_motd = yylval.number;
5973   }
5974 + #line 5975 "conf_parser.c" /* yacc.c:1646  */
5975      break;
5976  
5977 <  case 533:
5978 < /* Line 1787 of yacc.c  */
6151 < #line 2614 "conf_parser.y"
5977 >  case 556:
5978 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
5979      {
5980 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5980 >  ConfigGeneral.no_oper_flood = yylval.number;
5981   }
5982 + #line 5983 "conf_parser.c" /* yacc.c:1646  */
5983      break;
5984  
5985 <  case 534:
5986 < /* Line 1787 of yacc.c  */
6159 < #line 2619 "conf_parser.y"
5985 >  case 557:
5986 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
5987      {
5988 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5988 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5989   }
5990 + #line 5991 "conf_parser.c" /* yacc.c:1646  */
5991      break;
5992  
5993 <  case 535:
5994 < /* Line 1787 of yacc.c  */
6167 < #line 2624 "conf_parser.y"
5993 >  case 558:
5994 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
5995      {
5996 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5996 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5997   }
5998 + #line 5999 "conf_parser.c" /* yacc.c:1646  */
5999      break;
6000  
6001 <  case 536:
6002 < /* Line 1787 of yacc.c  */
6175 < #line 2629 "conf_parser.y"
6001 >  case 559:
6002 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6003      {
6004 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6004 >  ConfigGeneral.ping_cookie = yylval.number;
6005   }
6006 + #line 6007 "conf_parser.c" /* yacc.c:1646  */
6007      break;
6008  
6009 <  case 537:
6010 < /* Line 1787 of yacc.c  */
6183 < #line 2634 "conf_parser.y"
6009 >  case 560:
6010 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6011      {
6012 <  ConfigFileEntry.use_egd = yylval.number;
6012 >  ConfigGeneral.disable_auth = yylval.number;
6013   }
6014 + #line 6015 "conf_parser.c" /* yacc.c:1646  */
6015      break;
6016  
6017 <  case 538:
6018 < /* Line 1787 of yacc.c  */
6191 < #line 2639 "conf_parser.y"
6017 >  case 561:
6018 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6019      {
6020 <  if (conf_parser_ctx.pass == 2)
6194 <  {
6195 <    MyFree(ConfigFileEntry.egdpool_path);
6196 <    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6197 <  }
6020 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
6021   }
6022 + #line 6023 "conf_parser.c" /* yacc.c:1646  */
6023      break;
6024  
6025 <  case 539:
6026 < /* Line 1787 of yacc.c  */
6203 < #line 2648 "conf_parser.y"
6025 >  case 562:
6026 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6027      {
6028 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6206 <  {
6207 <    MyFree(ConfigFileEntry.service_name);
6208 <    ConfigFileEntry.service_name = xstrdup(yylval.string);
6209 <  }
6028 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
6029   }
6030 + #line 6031 "conf_parser.c" /* yacc.c:1646  */
6031      break;
6032  
6033 <  case 540:
6034 < /* Line 1787 of yacc.c  */
6215 < #line 2657 "conf_parser.y"
6033 >  case 563:
6034 > #line 2802 "conf_parser.y" /* yacc.c:1646  */
6035      {
6036 <  ConfigFileEntry.ping_cookie = yylval.number;
6036 >  ConfigGeneral.oper_umodes = 0;
6037   }
6038 + #line 6039 "conf_parser.c" /* yacc.c:1646  */
6039      break;
6040  
6041 <  case 541:
6042 < /* Line 1787 of yacc.c  */
6223 < #line 2662 "conf_parser.y"
6041 >  case 567:
6042 > #line 2808 "conf_parser.y" /* yacc.c:1646  */
6043      {
6044 <  ConfigFileEntry.disable_auth = yylval.number;
6044 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
6045   }
6046 + #line 6047 "conf_parser.c" /* yacc.c:1646  */
6047      break;
6048  
6049 <  case 542:
6050 < /* Line 1787 of yacc.c  */
6231 < #line 2667 "conf_parser.y"
6049 >  case 568:
6050 > #line 2811 "conf_parser.y" /* yacc.c:1646  */
6051      {
6052 <  ConfigFileEntry.throttle_time = yylval.number;
6052 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
6053   }
6054 + #line 6055 "conf_parser.c" /* yacc.c:1646  */
6055      break;
6056  
6057 <  case 543:
6058 < /* Line 1787 of yacc.c  */
6239 < #line 2672 "conf_parser.y"
6057 >  case 569:
6058 > #line 2814 "conf_parser.y" /* yacc.c:1646  */
6059      {
6060 <  ConfigFileEntry.oper_umodes = 0;
6060 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
6061   }
6062 + #line 6063 "conf_parser.c" /* yacc.c:1646  */
6063      break;
6064  
6065 <  case 547:
6066 < /* Line 1787 of yacc.c  */
6247 < #line 2678 "conf_parser.y"
6065 >  case 570:
6066 > #line 2817 "conf_parser.y" /* yacc.c:1646  */
6067      {
6068 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6069   }
6070 + #line 6071 "conf_parser.c" /* yacc.c:1646  */
6071      break;
6072  
6073 <  case 548:
6074 < /* Line 1787 of yacc.c  */
6255 < #line 2681 "conf_parser.y"
6073 >  case 571:
6074 > #line 2820 "conf_parser.y" /* yacc.c:1646  */
6075      {
6076 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
6077   }
6078 + #line 6079 "conf_parser.c" /* yacc.c:1646  */
6079      break;
6080  
6081 <  case 549:
6082 < /* Line 1787 of yacc.c  */
6263 < #line 2684 "conf_parser.y"
6081 >  case 572:
6082 > #line 2823 "conf_parser.y" /* yacc.c:1646  */
6083      {
6084 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6085   }
6086 + #line 6087 "conf_parser.c" /* yacc.c:1646  */
6087      break;
6088  
6089 <  case 550:
6090 < /* Line 1787 of yacc.c  */
6271 < #line 2687 "conf_parser.y"
6089 >  case 573:
6090 > #line 2826 "conf_parser.y" /* yacc.c:1646  */
6091      {
6092 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6093   }
6094 + #line 6095 "conf_parser.c" /* yacc.c:1646  */
6095      break;
6096  
6097 <  case 551:
6098 < /* Line 1787 of yacc.c  */
6279 < #line 2690 "conf_parser.y"
6097 >  case 574:
6098 > #line 2829 "conf_parser.y" /* yacc.c:1646  */
6099      {
6100 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6101   }
6102 + #line 6103 "conf_parser.c" /* yacc.c:1646  */
6103      break;
6104  
6105 <  case 552:
6106 < /* Line 1787 of yacc.c  */
6287 < #line 2693 "conf_parser.y"
6105 >  case 575:
6106 > #line 2832 "conf_parser.y" /* yacc.c:1646  */
6107      {
6108 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
6109   }
6110 + #line 6111 "conf_parser.c" /* yacc.c:1646  */
6111      break;
6112  
6113 <  case 553:
6114 < /* Line 1787 of yacc.c  */
6295 < #line 2696 "conf_parser.y"
6113 >  case 576:
6114 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6115      {
6116 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6117   }
6118 + #line 6119 "conf_parser.c" /* yacc.c:1646  */
6119      break;
6120  
6121 <  case 554:
6122 < /* Line 1787 of yacc.c  */
6303 < #line 2699 "conf_parser.y"
6121 >  case 577:
6122 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6123      {
6124 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6124 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
6125   }
6126 + #line 6127 "conf_parser.c" /* yacc.c:1646  */
6127      break;
6128  
6129 <  case 555:
6130 < /* Line 1787 of yacc.c  */
6311 < #line 2702 "conf_parser.y"
6129 >  case 578:
6130 > #line 2841 "conf_parser.y" /* yacc.c:1646  */
6131      {
6132 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6132 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6133   }
6134 + #line 6135 "conf_parser.c" /* yacc.c:1646  */
6135      break;
6136  
6137 <  case 556:
6138 < /* Line 1787 of yacc.c  */
6319 < #line 2705 "conf_parser.y"
6137 >  case 579:
6138 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6139      {
6140 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6140 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6141   }
6142 + #line 6143 "conf_parser.c" /* yacc.c:1646  */
6143      break;
6144  
6145 <  case 557:
6146 < /* Line 1787 of yacc.c  */
6327 < #line 2708 "conf_parser.y"
6145 >  case 580:
6146 > #line 2847 "conf_parser.y" /* yacc.c:1646  */
6147      {
6148 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6148 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6149   }
6150 + #line 6151 "conf_parser.c" /* yacc.c:1646  */
6151      break;
6152  
6153 <  case 558:
6154 < /* Line 1787 of yacc.c  */
6335 < #line 2711 "conf_parser.y"
6153 >  case 581:
6154 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6155      {
6156 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6156 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6157   }
6158 + #line 6159 "conf_parser.c" /* yacc.c:1646  */
6159      break;
6160  
6161 <  case 559:
6162 < /* Line 1787 of yacc.c  */
6343 < #line 2714 "conf_parser.y"
6161 >  case 582:
6162 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6163      {
6164 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6164 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6165   }
6166 + #line 6167 "conf_parser.c" /* yacc.c:1646  */
6167      break;
6168  
6169 <  case 560:
6170 < /* Line 1787 of yacc.c  */
6351 < #line 2717 "conf_parser.y"
6169 >  case 583:
6170 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6171      {
6172 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6172 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6173   }
6174 + #line 6175 "conf_parser.c" /* yacc.c:1646  */
6175      break;
6176  
6177 <  case 561:
6178 < /* Line 1787 of yacc.c  */
6359 < #line 2720 "conf_parser.y"
6177 >  case 584:
6178 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6179      {
6180 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6180 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6181   }
6182 + #line 6183 "conf_parser.c" /* yacc.c:1646  */
6183      break;
6184  
6185 <  case 562:
6186 < /* Line 1787 of yacc.c  */
6367 < #line 2723 "conf_parser.y"
6185 >  case 585:
6186 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6187      {
6188 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6188 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6189   }
6190 + #line 6191 "conf_parser.c" /* yacc.c:1646  */
6191      break;
6192  
6193 <  case 563:
6194 < /* Line 1787 of yacc.c  */
6375 < #line 2726 "conf_parser.y"
6193 >  case 586:
6194 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6195      {
6196 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6196 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6197   }
6198 + #line 6199 "conf_parser.c" /* yacc.c:1646  */
6199      break;
6200  
6201 <  case 564:
6202 < /* Line 1787 of yacc.c  */
6383 < #line 2729 "conf_parser.y"
6201 >  case 587:
6202 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6203      {
6204 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6204 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6205   }
6206 + #line 6207 "conf_parser.c" /* yacc.c:1646  */
6207      break;
6208  
6209 <  case 565:
6210 < /* Line 1787 of yacc.c  */
6391 < #line 2732 "conf_parser.y"
6209 >  case 588:
6210 > #line 2871 "conf_parser.y" /* yacc.c:1646  */
6211      {
6212 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6212 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6213   }
6214 + #line 6215 "conf_parser.c" /* yacc.c:1646  */
6215      break;
6216  
6217 <  case 566:
6218 < /* Line 1787 of yacc.c  */
6399 < #line 2735 "conf_parser.y"
6217 >  case 589:
6218 > #line 2876 "conf_parser.y" /* yacc.c:1646  */
6219      {
6220 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6220 >  ConfigGeneral.oper_only_umodes = 0;
6221   }
6222 + #line 6223 "conf_parser.c" /* yacc.c:1646  */
6223      break;
6224  
6225 <  case 567:
6226 < /* Line 1787 of yacc.c  */
6407 < #line 2740 "conf_parser.y"
6225 >  case 593:
6226 > #line 2882 "conf_parser.y" /* yacc.c:1646  */
6227      {
6228 <  ConfigFileEntry.oper_only_umodes = 0;
6228 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6229   }
6230 + #line 6231 "conf_parser.c" /* yacc.c:1646  */
6231      break;
6232  
6233 <  case 571:
6234 < /* Line 1787 of yacc.c  */
6415 < #line 2746 "conf_parser.y"
6233 >  case 594:
6234 > #line 2885 "conf_parser.y" /* yacc.c:1646  */
6235      {
6236 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6236 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6237   }
6238 + #line 6239 "conf_parser.c" /* yacc.c:1646  */
6239      break;
6240  
6241 <  case 572:
6242 < /* Line 1787 of yacc.c  */
6423 < #line 2749 "conf_parser.y"
6241 >  case 595:
6242 > #line 2888 "conf_parser.y" /* yacc.c:1646  */
6243      {
6244 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6244 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6245   }
6246 + #line 6247 "conf_parser.c" /* yacc.c:1646  */
6247      break;
6248  
6249 <  case 573:
6250 < /* Line 1787 of yacc.c  */
6431 < #line 2752 "conf_parser.y"
6249 >  case 596:
6250 > #line 2891 "conf_parser.y" /* yacc.c:1646  */
6251      {
6252 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6252 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6253   }
6254 + #line 6255 "conf_parser.c" /* yacc.c:1646  */
6255      break;
6256  
6257 <  case 574:
6258 < /* Line 1787 of yacc.c  */
6439 < #line 2755 "conf_parser.y"
6257 >  case 597:
6258 > #line 2894 "conf_parser.y" /* yacc.c:1646  */
6259      {
6260 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6260 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6261   }
6262 + #line 6263 "conf_parser.c" /* yacc.c:1646  */
6263      break;
6264  
6265 <  case 575:
6266 < /* Line 1787 of yacc.c  */
6447 < #line 2758 "conf_parser.y"
6265 >  case 598:
6266 > #line 2897 "conf_parser.y" /* yacc.c:1646  */
6267      {
6268 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6450 < }
6451 <    break;
6452 <
6453 <  case 576:
6454 < /* Line 1787 of yacc.c  */
6455 < #line 2761 "conf_parser.y"
6456 <    {
6457 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6268 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6269   }
6270 + #line 6271 "conf_parser.c" /* yacc.c:1646  */
6271      break;
6272  
6273 <  case 577:
6274 < /* Line 1787 of yacc.c  */
6463 < #line 2764 "conf_parser.y"
6273 >  case 599:
6274 > #line 2900 "conf_parser.y" /* yacc.c:1646  */
6275      {
6276 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6276 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6277   }
6278 + #line 6279 "conf_parser.c" /* yacc.c:1646  */
6279      break;
6280  
6281 <  case 578:
6282 < /* Line 1787 of yacc.c  */
6471 < #line 2767 "conf_parser.y"
6281 >  case 600:
6282 > #line 2903 "conf_parser.y" /* yacc.c:1646  */
6283      {
6284 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6284 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6285   }
6286 + #line 6287 "conf_parser.c" /* yacc.c:1646  */
6287      break;
6288  
6289 <  case 579:
6290 < /* Line 1787 of yacc.c  */
6479 < #line 2770 "conf_parser.y"
6289 >  case 601:
6290 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6291      {
6292 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6292 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6293   }
6294 + #line 6295 "conf_parser.c" /* yacc.c:1646  */
6295      break;
6296  
6297 <  case 580:
6298 < /* Line 1787 of yacc.c  */
6487 < #line 2773 "conf_parser.y"
6297 >  case 602:
6298 > #line 2909 "conf_parser.y" /* yacc.c:1646  */
6299      {
6300 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6300 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6301   }
6302 + #line 6303 "conf_parser.c" /* yacc.c:1646  */
6303      break;
6304  
6305 <  case 581:
6306 < /* Line 1787 of yacc.c  */
6495 < #line 2776 "conf_parser.y"
6305 >  case 603:
6306 > #line 2912 "conf_parser.y" /* yacc.c:1646  */
6307      {
6308 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6308 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6309   }
6310 + #line 6311 "conf_parser.c" /* yacc.c:1646  */
6311      break;
6312  
6313 <  case 582:
6314 < /* Line 1787 of yacc.c  */
6503 < #line 2779 "conf_parser.y"
6313 >  case 604:
6314 > #line 2915 "conf_parser.y" /* yacc.c:1646  */
6315      {
6316 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6316 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6317   }
6318 + #line 6319 "conf_parser.c" /* yacc.c:1646  */
6319      break;
6320  
6321 <  case 583:
6322 < /* Line 1787 of yacc.c  */
6511 < #line 2782 "conf_parser.y"
6321 >  case 605:
6322 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6323      {
6324 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6324 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6325   }
6326 + #line 6327 "conf_parser.c" /* yacc.c:1646  */
6327      break;
6328  
6329 <  case 584:
6330 < /* Line 1787 of yacc.c  */
6519 < #line 2785 "conf_parser.y"
6329 >  case 606:
6330 > #line 2921 "conf_parser.y" /* yacc.c:1646  */
6331      {
6332 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6332 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6333   }
6334 + #line 6335 "conf_parser.c" /* yacc.c:1646  */
6335      break;
6336  
6337 <  case 585:
6338 < /* Line 1787 of yacc.c  */
6527 < #line 2788 "conf_parser.y"
6337 >  case 607:
6338 > #line 2924 "conf_parser.y" /* yacc.c:1646  */
6339      {
6340 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6340 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6341   }
6342 + #line 6343 "conf_parser.c" /* yacc.c:1646  */
6343      break;
6344  
6345 <  case 586:
6346 < /* Line 1787 of yacc.c  */
6535 < #line 2791 "conf_parser.y"
6345 >  case 608:
6346 > #line 2927 "conf_parser.y" /* yacc.c:1646  */
6347      {
6348 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6348 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6349   }
6350 + #line 6351 "conf_parser.c" /* yacc.c:1646  */
6351      break;
6352  
6353 <  case 587:
6354 < /* Line 1787 of yacc.c  */
6543 < #line 2794 "conf_parser.y"
6353 >  case 609:
6354 > #line 2930 "conf_parser.y" /* yacc.c:1646  */
6355      {
6356 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6356 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6357   }
6358 + #line 6359 "conf_parser.c" /* yacc.c:1646  */
6359      break;
6360  
6361 <  case 588:
6362 < /* Line 1787 of yacc.c  */
6551 < #line 2797 "conf_parser.y"
6361 >  case 610:
6362 > #line 2933 "conf_parser.y" /* yacc.c:1646  */
6363      {
6364 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6364 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6365   }
6366 + #line 6367 "conf_parser.c" /* yacc.c:1646  */
6367      break;
6368  
6369 <  case 589:
6370 < /* Line 1787 of yacc.c  */
6559 < #line 2800 "conf_parser.y"
6369 >  case 611:
6370 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6371      {
6372 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6372 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6373   }
6374 + #line 6375 "conf_parser.c" /* yacc.c:1646  */
6375      break;
6376  
6377 <  case 590:
6378 < /* Line 1787 of yacc.c  */
6567 < #line 2803 "conf_parser.y"
6377 >  case 612:
6378 > #line 2939 "conf_parser.y" /* yacc.c:1646  */
6379      {
6380 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6380 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6381   }
6382 + #line 6383 "conf_parser.c" /* yacc.c:1646  */
6383      break;
6384  
6385 <  case 591:
6386 < /* Line 1787 of yacc.c  */
6575 < #line 2808 "conf_parser.y"
6385 >  case 613:
6386 > #line 2944 "conf_parser.y" /* yacc.c:1646  */
6387      {
6388 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6388 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6389   }
6390 + #line 6391 "conf_parser.c" /* yacc.c:1646  */
6391      break;
6392  
6393 <  case 592:
6394 < /* Line 1787 of yacc.c  */
6583 < #line 2813 "conf_parser.y"
6393 >  case 614:
6394 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6395      {
6396 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6396 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6397   }
6398 + #line 6399 "conf_parser.c" /* yacc.c:1646  */
6399      break;
6400  
6401 <  case 593:
6402 < /* Line 1787 of yacc.c  */
6591 < #line 2818 "conf_parser.y"
6401 >  case 615:
6402 > #line 2954 "conf_parser.y" /* yacc.c:1646  */
6403      {
6404 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6404 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6405   }
6406 + #line 6407 "conf_parser.c" /* yacc.c:1646  */
6407      break;
6408  
6409 <  case 612:
6410 < /* Line 1787 of yacc.c  */
6599 < #line 2841 "conf_parser.y"
6409 >  case 630:
6410 > #line 2979 "conf_parser.y" /* yacc.c:1646  */
6411      {
6412    ConfigChannel.disable_fake_channels = yylval.number;
6413   }
6414 + #line 6415 "conf_parser.c" /* yacc.c:1646  */
6415      break;
6416  
6417 <  case 613:
6418 < /* Line 1787 of yacc.c  */
6607 < #line 2846 "conf_parser.y"
6417 >  case 631:
6418 > #line 2984 "conf_parser.y" /* yacc.c:1646  */
6419      {
6420 <  ConfigChannel.restrict_channels = yylval.number;
6420 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6421   }
6422 + #line 6423 "conf_parser.c" /* yacc.c:1646  */
6423      break;
6424  
6425 <  case 614:
6426 < /* Line 1787 of yacc.c  */
6615 < #line 2851 "conf_parser.y"
6425 >  case 632:
6426 > #line 2989 "conf_parser.y" /* yacc.c:1646  */
6427      {
6428 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6428 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6429   }
6430 + #line 6431 "conf_parser.c" /* yacc.c:1646  */
6431      break;
6432  
6433 <  case 615:
6434 < /* Line 1787 of yacc.c  */
6623 < #line 2856 "conf_parser.y"
6433 >  case 633:
6434 > #line 2994 "conf_parser.y" /* yacc.c:1646  */
6435      {
6436 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6436 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6437   }
6438 + #line 6439 "conf_parser.c" /* yacc.c:1646  */
6439      break;
6440  
6441 <  case 616:
6442 < /* Line 1787 of yacc.c  */
6631 < #line 2861 "conf_parser.y"
6441 >  case 634:
6442 > #line 2999 "conf_parser.y" /* yacc.c:1646  */
6443      {
6444 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6444 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6445   }
6446 + #line 6447 "conf_parser.c" /* yacc.c:1646  */
6447      break;
6448  
6449 <  case 617:
6450 < /* Line 1787 of yacc.c  */
6639 < #line 2866 "conf_parser.y"
6449 >  case 635:
6450 > #line 3004 "conf_parser.y" /* yacc.c:1646  */
6451      {
6452 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6452 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6453   }
6454 + #line 6455 "conf_parser.c" /* yacc.c:1646  */
6455      break;
6456  
6457 <  case 618:
6458 < /* Line 1787 of yacc.c  */
6647 < #line 2871 "conf_parser.y"
6648 <    {
6649 <  ConfigChannel.quiet_on_ban = yylval.number;
6650 < }
6651 <    break;
6652 <
6653 <  case 619:
6654 < /* Line 1787 of yacc.c  */
6655 < #line 2876 "conf_parser.y"
6656 <    {
6657 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6658 < }
6659 <    break;
6660 <
6661 <  case 620:
6662 < /* Line 1787 of yacc.c  */
6663 < #line 2881 "conf_parser.y"
6457 >  case 636:
6458 > #line 3009 "conf_parser.y" /* yacc.c:1646  */
6459      {
6460 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6460 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6461   }
6462 + #line 6463 "conf_parser.c" /* yacc.c:1646  */
6463      break;
6464  
6465 <  case 621:
6466 < /* Line 1787 of yacc.c  */
6671 < #line 2886 "conf_parser.y"
6465 >  case 637:
6466 > #line 3014 "conf_parser.y" /* yacc.c:1646  */
6467      {
6468 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6468 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6469   }
6470 + #line 6471 "conf_parser.c" /* yacc.c:1646  */
6471      break;
6472  
6473 <  case 622:
6474 < /* Line 1787 of yacc.c  */
6679 < #line 2891 "conf_parser.y"
6473 >  case 638:
6474 > #line 3019 "conf_parser.y" /* yacc.c:1646  */
6475      {
6476 <  ConfigChannel.no_create_on_split = yylval.number;
6476 >  ConfigChannel.default_join_flood_count = yylval.number;
6477   }
6478 + #line 6479 "conf_parser.c" /* yacc.c:1646  */
6479      break;
6480  
6481 <  case 623:
6482 < /* Line 1787 of yacc.c  */
6687 < #line 2896 "conf_parser.y"
6481 >  case 639:
6482 > #line 3024 "conf_parser.y" /* yacc.c:1646  */
6483      {
6484 <  ConfigChannel.no_join_on_split = yylval.number;
6484 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6485   }
6486 + #line 6487 "conf_parser.c" /* yacc.c:1646  */
6487      break;
6488  
6489 <  case 624:
6490 < /* Line 1787 of yacc.c  */
6695 < #line 2901 "conf_parser.y"
6489 >  case 652:
6490 > #line 3046 "conf_parser.y" /* yacc.c:1646  */
6491      {
6492 <  GlobalSetOptions.joinfloodcount = yylval.number;
6492 >  if (conf_parser_ctx.pass == 2)
6493 >    ConfigServerHide.flatten_links = yylval.number;
6494   }
6495 + #line 6496 "conf_parser.c" /* yacc.c:1646  */
6496      break;
6497  
6498 <  case 625:
6499 < /* Line 1787 of yacc.c  */
6703 < #line 2906 "conf_parser.y"
6498 >  case 653:
6499 > #line 3052 "conf_parser.y" /* yacc.c:1646  */
6500      {
6501 <  GlobalSetOptions.joinfloodtime = yylval.number;
6501 >  if (conf_parser_ctx.pass == 2)
6502 >    ConfigServerHide.disable_remote_commands = yylval.number;
6503   }
6504 + #line 6505 "conf_parser.c" /* yacc.c:1646  */
6505      break;
6506  
6507 <  case 636:
6508 < /* Line 1787 of yacc.c  */
6711 < #line 2924 "conf_parser.y"
6507 >  case 654:
6508 > #line 3058 "conf_parser.y" /* yacc.c:1646  */
6509      {
6510    if (conf_parser_ctx.pass == 2)
6511 <    ConfigServerHide.flatten_links = yylval.number;
6511 >    ConfigServerHide.hide_servers = yylval.number;
6512   }
6513 + #line 6514 "conf_parser.c" /* yacc.c:1646  */
6514      break;
6515  
6516 <  case 637:
6517 < /* Line 1787 of yacc.c  */
6720 < #line 2930 "conf_parser.y"
6516 >  case 655:
6517 > #line 3064 "conf_parser.y" /* yacc.c:1646  */
6518      {
6519    if (conf_parser_ctx.pass == 2)
6520 <    ConfigServerHide.hide_servers = yylval.number;
6520 >    ConfigServerHide.hide_services = yylval.number;
6521   }
6522 + #line 6523 "conf_parser.c" /* yacc.c:1646  */
6523      break;
6524  
6525 <  case 638:
6526 < /* Line 1787 of yacc.c  */
6729 < #line 2936 "conf_parser.y"
6525 >  case 656:
6526 > #line 3070 "conf_parser.y" /* yacc.c:1646  */
6527      {
6528    if (conf_parser_ctx.pass == 2)
6529    {
# Line 6734 | Line 6531 | yyreduce:
6531      ConfigServerHide.hidden_name = xstrdup(yylval.string);
6532    }
6533   }
6534 + #line 6535 "conf_parser.c" /* yacc.c:1646  */
6535      break;
6536  
6537 <  case 639:
6538 < /* Line 1787 of yacc.c  */
6741 < #line 2945 "conf_parser.y"
6537 >  case 657:
6538 > #line 3079 "conf_parser.y" /* yacc.c:1646  */
6539      {
6540    if (conf_parser_ctx.pass == 2)
6541    {
6542 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6542 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6543      {
6544 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6544 >      event_write_links_file.when = (yyvsp[-1].number);
6545 >      event_addish(&event_write_links_file, NULL);
6546        ConfigServerHide.links_disabled = 0;
6547      }
6548  
6549 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6549 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6550    }
6551   }
6552 + #line 6553 "conf_parser.c" /* yacc.c:1646  */
6553      break;
6554  
6555 <  case 640:
6556 < /* Line 1787 of yacc.c  */
6758 < #line 2959 "conf_parser.y"
6555 >  case 658:
6556 > #line 3094 "conf_parser.y" /* yacc.c:1646  */
6557      {
6558    if (conf_parser_ctx.pass == 2)
6559      ConfigServerHide.hidden = yylval.number;
6560   }
6561 + #line 6562 "conf_parser.c" /* yacc.c:1646  */
6562      break;
6563  
6564 <  case 641:
6565 < /* Line 1787 of yacc.c  */
6767 < #line 2965 "conf_parser.y"
6564 >  case 659:
6565 > #line 3100 "conf_parser.y" /* yacc.c:1646  */
6566      {
6567    if (conf_parser_ctx.pass == 2)
6568      ConfigServerHide.hide_server_ips = yylval.number;
6569   }
6570 + #line 6571 "conf_parser.c" /* yacc.c:1646  */
6571      break;
6572  
6573  
6574 < /* Line 1787 of yacc.c  */
6776 < #line 6777 "conf_parser.c"
6574 > #line 6575 "conf_parser.c" /* yacc.c:1646  */
6575        default: break;
6576      }
6577    /* User semantic actions sometimes alter yychar, and that requires
# Line 6795 | Line 6593 | yyreduce:
6593  
6594    *++yyvsp = yyval;
6595  
6596 <  /* Now `shift' the result of the reduction.  Determine what state
6596 >  /* Now 'shift' the result of the reduction.  Determine what state
6597       that goes to, based on the state we popped back to and the rule
6598       number reduced by.  */
6599  
# Line 6810 | Line 6608 | yyreduce:
6608    goto yynewstate;
6609  
6610  
6611 < /*------------------------------------.
6612 < | yyerrlab -- here on detecting error |
6613 < `------------------------------------*/
6611 > /*--------------------------------------.
6612 > | yyerrlab -- here on detecting error.  |
6613 > `--------------------------------------*/
6614   yyerrlab:
6615    /* Make sure we have latest lookahead translation.  See comments at
6616       user semantic actions for why this is necessary.  */
# Line 6863 | Line 6661 | yyerrlab:
6661    if (yyerrstatus == 3)
6662      {
6663        /* If just tried and failed to reuse lookahead token after an
6664 <         error, discard it.  */
6664 >         error, discard it.  */
6665  
6666        if (yychar <= YYEOF)
6667 <        {
6668 <          /* Return failure if at end of input.  */
6669 <          if (yychar == YYEOF)
6670 <            YYABORT;
6671 <        }
6667 >        {
6668 >          /* Return failure if at end of input.  */
6669 >          if (yychar == YYEOF)
6670 >            YYABORT;
6671 >        }
6672        else
6673 <        {
6674 <          yydestruct ("Error: discarding",
6675 <                      yytoken, &yylval);
6676 <          yychar = YYEMPTY;
6677 <        }
6673 >        {
6674 >          yydestruct ("Error: discarding",
6675 >                      yytoken, &yylval);
6676 >          yychar = YYEMPTY;
6677 >        }
6678      }
6679  
6680    /* Else will try to reuse lookahead token after shifting the error
# Line 6895 | Line 6693 | yyerrorlab:
6693    if (/*CONSTCOND*/ 0)
6694       goto yyerrorlab;
6695  
6696 <  /* Do not reclaim the symbols of the rule which action triggered
6696 >  /* Do not reclaim the symbols of the rule whose action triggered
6697       this YYERROR.  */
6698    YYPOPSTACK (yylen);
6699    yylen = 0;
# Line 6908 | Line 6706 | yyerrorlab:
6706   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6707   `-------------------------------------------------------------*/
6708   yyerrlab1:
6709 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6709 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6710  
6711    for (;;)
6712      {
6713        yyn = yypact[yystate];
6714        if (!yypact_value_is_default (yyn))
6715 <        {
6716 <          yyn += YYTERROR;
6717 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6718 <            {
6719 <              yyn = yytable[yyn];
6720 <              if (0 < yyn)
6721 <                break;
6722 <            }
6723 <        }
6715 >        {
6716 >          yyn += YYTERROR;
6717 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6718 >            {
6719 >              yyn = yytable[yyn];
6720 >              if (0 < yyn)
6721 >                break;
6722 >            }
6723 >        }
6724  
6725        /* Pop the current state because it cannot handle the error token.  */
6726        if (yyssp == yyss)
6727 <        YYABORT;
6727 >        YYABORT;
6728  
6729  
6730        yydestruct ("Error: popping",
6731 <                  yystos[yystate], yyvsp);
6731 >                  yystos[yystate], yyvsp);
6732        YYPOPSTACK (1);
6733        yystate = *yyssp;
6734        YY_STACK_PRINT (yyss, yyssp);
# Line 6981 | Line 6779 | yyreturn:
6779        yydestruct ("Cleanup: discarding lookahead",
6780                    yytoken, &yylval);
6781      }
6782 <  /* Do not reclaim the symbols of the rule which action triggered
6782 >  /* Do not reclaim the symbols of the rule whose action triggered
6783       this YYABORT or YYACCEPT.  */
6784    YYPOPSTACK (yylen);
6785    YY_STACK_PRINT (yyss, yyssp);
6786    while (yyssp != yyss)
6787      {
6788        yydestruct ("Cleanup: popping",
6789 <                  yystos[*yyssp], yyvsp);
6789 >                  yystos[*yyssp], yyvsp);
6790        YYPOPSTACK (1);
6791      }
6792   #ifndef yyoverflow
# Line 6999 | Line 6797 | yyreturn:
6797    if (yymsg != yymsgbuf)
6798      YYSTACK_FREE (yymsg);
6799   #endif
6800 <  /* Make sure YYID is used.  */
7003 <  return YYID (yyresult);
6800 >  return yyresult;
6801   }
7005
7006

Diff Legend

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