/[svn]/ircd-hybrid-7.2/src/ircd_parser.c
ViewVC logotype

Annotation of /ircd-hybrid-7.2/src/ircd_parser.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 913 - (hide annotations)
Wed Nov 7 23:20:12 2007 UTC (12 years, 10 months ago) by michael
File MIME type: text/x-chdr
File size: 241780 byte(s)
- Added some missing files
- Moved HOSTLEN and USERLEN definition back to ircd_defs.h
  Those two shouldn't be configurable

1 michael 913 /* A Bison parser, made by GNU Bison 2.3. */
2    
3     /* Skeleton implementation for Bison's Yacc-like parsers in C
4    
5     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6     Free Software Foundation, Inc.
7    
8     This program is free software; you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
10     the Free Software Foundation; either version 2, or (at your option)
11     any later version.
12    
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     GNU General Public License for more details.
17    
18     You should have received a copy of the GNU General Public License
19     along with this program; if not, write to the Free Software
20     Foundation, Inc., 51 Franklin Street, Fifth Floor,
21     Boston, MA 02110-1301, USA. */
22    
23     /* As a special exception, you may create a larger work that contains
24     part or all of the Bison parser skeleton and distribute that work
25     under terms of your choice, so long as that work isn't itself a
26     parser generator using the skeleton or a modified version thereof
27     as a parser skeleton. Alternatively, if you modify or redistribute
28     the parser skeleton itself, you may (at your option) remove this
29     special exception, which will cause the skeleton and the resulting
30     Bison output files to be licensed under the GNU General Public
31     License without this special exception.
32    
33     This special exception was added by the Free Software Foundation in
34     version 2.2 of Bison. */
35    
36     /* C LALR(1) parser skeleton written by Richard Stallman, by
37     simplifying the original so-called "semantic" parser. */
38    
39     /* All symbols defined below should begin with yy or YY, to avoid
40     infringing on user name space. This should be done even for local
41     variables, as they might otherwise be expanded by user macros.
42     There are some unavoidable exceptions within include files to
43     define necessary library symbols; they are noted "INFRINGES ON
44     USER NAME SPACE" below. */
45    
46     /* Identify Bison output. */
47     #define YYBISON 1
48    
49     /* Bison version. */
50     #define YYBISON_VERSION "2.3"
51    
52     /* Skeleton name. */
53     #define YYSKELETON_NAME "yacc.c"
54    
55     /* Pure parsers. */
56     #define YYPURE 0
57    
58     /* Using locations. */
59     #define YYLSP_NEEDED 0
60    
61    
62    
63     /* Tokens. */
64     #ifndef YYTOKENTYPE
65     # define YYTOKENTYPE
66     /* Put the tokens into the symbol table, so that GDB and other debuggers
67     know about them. */
68     enum yytokentype {
69     ACCEPT_PASSWORD = 258,
70     ACTION = 259,
71     ADMIN = 260,
72     AFTYPE = 261,
73     T_ALLOW = 262,
74     ANTI_NICK_FLOOD = 263,
75     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
76     AUTOCONN = 265,
77     T_BLOCK = 266,
78     BURST_AWAY = 267,
79     BURST_TOPICWHO = 268,
80     BYTES = 269,
81     KBYTES = 270,
82     MBYTES = 271,
83     GBYTES = 272,
84     TBYTES = 273,
85     CALLER_ID_WAIT = 274,
86     CAN_FLOOD = 275,
87     CAN_IDLE = 276,
88     CHANNEL = 277,
89     CIDR_BITLEN_IPV4 = 278,
90     CIDR_BITLEN_IPV6 = 279,
91     CIPHER_PREFERENCE = 280,
92     CLASS = 281,
93     COMPRESSED = 282,
94     COMPRESSION_LEVEL = 283,
95     CONNECT = 284,
96     CONNECTFREQ = 285,
97     CRYPTLINK = 286,
98     DEFAULT_CIPHER_PREFERENCE = 287,
99     DEFAULT_FLOODCOUNT = 288,
100     DEFAULT_SPLIT_SERVER_COUNT = 289,
101     DEFAULT_SPLIT_USER_COUNT = 290,
102     DENY = 291,
103     DESCRIPTION = 292,
104     DIE = 293,
105     DISABLE_AUTH = 294,
106     DISABLE_FAKE_CHANNELS = 295,
107     DISABLE_HIDDEN = 296,
108     DISABLE_LOCAL_CHANNELS = 297,
109     DISABLE_REMOTE_COMMANDS = 298,
110     DOT_IN_IP6_ADDR = 299,
111     DOTS_IN_IDENT = 300,
112     DURATION = 301,
113     EGDPOOL_PATH = 302,
114     EMAIL = 303,
115     ENABLE = 304,
116     ENCRYPTED = 305,
117     EXCEED_LIMIT = 306,
118     EXEMPT = 307,
119     FAILED_OPER_NOTICE = 308,
120     FAKENAME = 309,
121     IRCD_FLAGS = 310,
122     FLATTEN_LINKS = 311,
123     FFAILED_OPERLOG = 312,
124     FKILLLOG = 313,
125     FKLINELOG = 314,
126     FGLINELOG = 315,
127     FIOERRLOG = 316,
128     FOPERLOG = 317,
129     FOPERSPYLOG = 318,
130     FUSERLOG = 319,
131     GECOS = 320,
132     GENERAL = 321,
133     GLINE = 322,
134     GLINES = 323,
135     GLINE_EXEMPT = 324,
136     GLINE_LOG = 325,
137     GLINE_TIME = 326,
138     GLINE_MIN_CIDR = 327,
139     GLINE_MIN_CIDR6 = 328,
140     GLOBAL_KILL = 329,
141     IRCD_AUTH = 330,
142     NEED_IDENT = 331,
143     HAVENT_READ_CONF = 332,
144     HIDDEN = 333,
145     HIDDEN_ADMIN = 334,
146     HIDDEN_NAME = 335,
147     HIDDEN_OPER = 336,
148     HIDE_SERVER_IPS = 337,
149     HIDE_SERVERS = 338,
150     HIDE_SPOOF_IPS = 339,
151     HOST = 340,
152     HUB = 341,
153     HUB_MASK = 342,
154     IDLETIME = 343,
155     IGNORE_BOGUS_TS = 344,
156     INVISIBLE_ON_CONNECT = 345,
157     IP = 346,
158     KILL = 347,
159     KILL_CHASE_TIME_LIMIT = 348,
160     KLINE = 349,
161     KLINE_EXEMPT = 350,
162     KLINE_REASON = 351,
163     KLINE_WITH_REASON = 352,
164     KNOCK_DELAY = 353,
165     KNOCK_DELAY_CHANNEL = 354,
166     LEAF_MASK = 355,
167     LINKS_DELAY = 356,
168     LISTEN = 357,
169     T_LOG = 358,
170     LOGGING = 359,
171     LOG_LEVEL = 360,
172     MAX_ACCEPT = 361,
173     MAX_BANS = 362,
174     MAX_CHANS_PER_USER = 363,
175     MAX_GLOBAL = 364,
176     MAX_IDENT = 365,
177     MAX_LOCAL = 366,
178     MAX_NICK_CHANGES = 367,
179     MAX_NICK_TIME = 368,
180     MAX_NUMBER = 369,
181     MAX_TARGETS = 370,
182     MAX_WATCH = 371,
183     MESSAGE_LOCALE = 372,
184     MIN_NONWILDCARD = 373,
185     MIN_NONWILDCARD_SIMPLE = 374,
186     MODULE = 375,
187     MODULES = 376,
188     NAME = 377,
189     NEED_PASSWORD = 378,
190     NETWORK_DESC = 379,
191     NETWORK_NAME = 380,
192     NICK = 381,
193     NICK_CHANGES = 382,
194     NO_CREATE_ON_SPLIT = 383,
195     NO_JOIN_ON_SPLIT = 384,
196     NO_OPER_FLOOD = 385,
197     NO_TILDE = 386,
198     NOT = 387,
199     NUMBER = 388,
200     NUMBER_PER_IDENT = 389,
201     NUMBER_PER_CIDR = 390,
202     NUMBER_PER_IP = 391,
203     NUMBER_PER_IP_GLOBAL = 392,
204     OPERATOR = 393,
205     OPERS_BYPASS_CALLERID = 394,
206     OPER_LOG = 395,
207     OPER_ONLY_UMODES = 396,
208     OPER_PASS_RESV = 397,
209     OPER_SPY_T = 398,
210     OPER_UMODES = 399,
211     JOIN_FLOOD_COUNT = 400,
212     JOIN_FLOOD_TIME = 401,
213     PACE_WAIT = 402,
214     PACE_WAIT_SIMPLE = 403,
215     PASSWORD = 404,
216     PATH = 405,
217     PING_COOKIE = 406,
218     PING_TIME = 407,
219     PING_WARNING = 408,
220     PORT = 409,
221     QSTRING = 410,
222     QUIET_ON_BAN = 411,
223     REASON = 412,
224     REDIRPORT = 413,
225     REDIRSERV = 414,
226     REGEX_T = 415,
227     REHASH = 416,
228     TREJECT_HOLD_TIME = 417,
229     REMOTE = 418,
230     REMOTEBAN = 419,
231     RESTRICT_CHANNELS = 420,
232     RESTRICTED = 421,
233     RSA_PRIVATE_KEY_FILE = 422,
234     RSA_PUBLIC_KEY_FILE = 423,
235     SSL_CERTIFICATE_FILE = 424,
236     RESV = 425,
237     RESV_EXEMPT = 426,
238     SECONDS = 427,
239     MINUTES = 428,
240     HOURS = 429,
241     DAYS = 430,
242     WEEKS = 431,
243     SENDQ = 432,
244     SEND_PASSWORD = 433,
245     SERVERHIDE = 434,
246     SERVERINFO = 435,
247     SERVLINK_PATH = 436,
248     IRCD_SID = 437,
249     TKLINE_EXPIRE_NOTICES = 438,
250     T_SHARED = 439,
251     T_CLUSTER = 440,
252     TYPE = 441,
253     SHORT_MOTD = 442,
254     SILENT = 443,
255     SPOOF = 444,
256     SPOOF_NOTICE = 445,
257     STATS_E_DISABLED = 446,
258     STATS_I_OPER_ONLY = 447,
259     STATS_K_OPER_ONLY = 448,
260     STATS_O_OPER_ONLY = 449,
261     STATS_P_OPER_ONLY = 450,
262     TBOOL = 451,
263     TMASKED = 452,
264     T_REJECT = 453,
265     TS_MAX_DELTA = 454,
266     TS_WARN_DELTA = 455,
267     TWODOTS = 456,
268     T_ALL = 457,
269     T_BOTS = 458,
270     T_SOFTCALLERID = 459,
271     T_CALLERID = 460,
272     T_CCONN = 461,
273     T_CCONN_FULL = 462,
274     T_CLIENT_FLOOD = 463,
275     T_DEAF = 464,
276     T_DEBUG = 465,
277     T_DRONE = 466,
278     T_EXTERNAL = 467,
279     T_FULL = 468,
280     T_INVISIBLE = 469,
281     T_IPV4 = 470,
282     T_IPV6 = 471,
283     T_LOCOPS = 472,
284     T_LOGPATH = 473,
285     T_L_CRIT = 474,
286     T_L_DEBUG = 475,
287     T_L_ERROR = 476,
288     T_L_INFO = 477,
289     T_L_NOTICE = 478,
290     T_L_TRACE = 479,
291     T_L_WARN = 480,
292     T_MAX_CLIENTS = 481,
293     T_NCHANGE = 482,
294     T_OPERWALL = 483,
295     T_REJ = 484,
296     T_SERVER = 485,
297     T_SERVNOTICE = 486,
298     T_SKILL = 487,
299     T_SPY = 488,
300     T_SSL = 489,
301     T_UMODES = 490,
302     T_UNAUTH = 491,
303     T_UNRESV = 492,
304     T_UNXLINE = 493,
305     T_WALLOP = 494,
306     THROTTLE_TIME = 495,
307     TOPICBURST = 496,
308     TRUE_NO_OPER_FLOOD = 497,
309     TKLINE = 498,
310     TXLINE = 499,
311     TRESV = 500,
312     UNKLINE = 501,
313     USER = 502,
314     USE_EGD = 503,
315     USE_EXCEPT = 504,
316     USE_INVEX = 505,
317     USE_KNOCK = 506,
318     USE_LOGGING = 507,
319     USE_WHOIS_ACTUALLY = 508,
320     VHOST = 509,
321     VHOST6 = 510,
322     XLINE = 511,
323     WARN = 512,
324     WARN_NO_NLINE = 513
325     };
326     #endif
327     /* Tokens. */
328     #define ACCEPT_PASSWORD 258
329     #define ACTION 259
330     #define ADMIN 260
331     #define AFTYPE 261
332     #define T_ALLOW 262
333     #define ANTI_NICK_FLOOD 263
334     #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
335     #define AUTOCONN 265
336     #define T_BLOCK 266
337     #define BURST_AWAY 267
338     #define BURST_TOPICWHO 268
339     #define BYTES 269
340     #define KBYTES 270
341     #define MBYTES 271
342     #define GBYTES 272
343     #define TBYTES 273
344     #define CALLER_ID_WAIT 274
345     #define CAN_FLOOD 275
346     #define CAN_IDLE 276
347     #define CHANNEL 277
348     #define CIDR_BITLEN_IPV4 278
349     #define CIDR_BITLEN_IPV6 279
350     #define CIPHER_PREFERENCE 280
351     #define CLASS 281
352     #define COMPRESSED 282
353     #define COMPRESSION_LEVEL 283
354     #define CONNECT 284
355     #define CONNECTFREQ 285
356     #define CRYPTLINK 286
357     #define DEFAULT_CIPHER_PREFERENCE 287
358     #define DEFAULT_FLOODCOUNT 288
359     #define DEFAULT_SPLIT_SERVER_COUNT 289
360     #define DEFAULT_SPLIT_USER_COUNT 290
361     #define DENY 291
362     #define DESCRIPTION 292
363     #define DIE 293
364     #define DISABLE_AUTH 294
365     #define DISABLE_FAKE_CHANNELS 295
366     #define DISABLE_HIDDEN 296
367     #define DISABLE_LOCAL_CHANNELS 297
368     #define DISABLE_REMOTE_COMMANDS 298
369     #define DOT_IN_IP6_ADDR 299
370     #define DOTS_IN_IDENT 300
371     #define DURATION 301
372     #define EGDPOOL_PATH 302
373     #define EMAIL 303
374     #define ENABLE 304
375     #define ENCRYPTED 305
376     #define EXCEED_LIMIT 306
377     #define EXEMPT 307
378     #define FAILED_OPER_NOTICE 308
379     #define FAKENAME 309
380     #define IRCD_FLAGS 310
381     #define FLATTEN_LINKS 311
382     #define FFAILED_OPERLOG 312
383     #define FKILLLOG 313
384     #define FKLINELOG 314
385     #define FGLINELOG 315
386     #define FIOERRLOG 316
387     #define FOPERLOG 317
388     #define FOPERSPYLOG 318
389     #define FUSERLOG 319
390     #define GECOS 320
391     #define GENERAL 321
392     #define GLINE 322
393     #define GLINES 323
394     #define GLINE_EXEMPT 324
395     #define GLINE_LOG 325
396     #define GLINE_TIME 326
397     #define GLINE_MIN_CIDR 327
398     #define GLINE_MIN_CIDR6 328
399     #define GLOBAL_KILL 329
400     #define IRCD_AUTH 330
401     #define NEED_IDENT 331
402     #define HAVENT_READ_CONF 332
403     #define HIDDEN 333
404     #define HIDDEN_ADMIN 334
405     #define HIDDEN_NAME 335
406     #define HIDDEN_OPER 336
407     #define HIDE_SERVER_IPS 337
408     #define HIDE_SERVERS 338
409     #define HIDE_SPOOF_IPS 339
410     #define HOST 340
411     #define HUB 341
412     #define HUB_MASK 342
413     #define IDLETIME 343
414     #define IGNORE_BOGUS_TS 344
415     #define INVISIBLE_ON_CONNECT 345
416     #define IP 346
417     #define KILL 347
418     #define KILL_CHASE_TIME_LIMIT 348
419     #define KLINE 349
420     #define KLINE_EXEMPT 350
421     #define KLINE_REASON 351
422     #define KLINE_WITH_REASON 352
423     #define KNOCK_DELAY 353
424     #define KNOCK_DELAY_CHANNEL 354
425     #define LEAF_MASK 355
426     #define LINKS_DELAY 356
427     #define LISTEN 357
428     #define T_LOG 358
429     #define LOGGING 359
430     #define LOG_LEVEL 360
431     #define MAX_ACCEPT 361
432     #define MAX_BANS 362
433     #define MAX_CHANS_PER_USER 363
434     #define MAX_GLOBAL 364
435     #define MAX_IDENT 365
436     #define MAX_LOCAL 366
437     #define MAX_NICK_CHANGES 367
438     #define MAX_NICK_TIME 368
439     #define MAX_NUMBER 369
440     #define MAX_TARGETS 370
441     #define MAX_WATCH 371
442     #define MESSAGE_LOCALE 372
443     #define MIN_NONWILDCARD 373
444     #define MIN_NONWILDCARD_SIMPLE 374
445     #define MODULE 375
446     #define MODULES 376
447     #define NAME 377
448     #define NEED_PASSWORD 378
449     #define NETWORK_DESC 379
450     #define NETWORK_NAME 380
451     #define NICK 381
452     #define NICK_CHANGES 382
453     #define NO_CREATE_ON_SPLIT 383
454     #define NO_JOIN_ON_SPLIT 384
455     #define NO_OPER_FLOOD 385
456     #define NO_TILDE 386
457     #define NOT 387
458     #define NUMBER 388
459     #define NUMBER_PER_IDENT 389
460     #define NUMBER_PER_CIDR 390
461     #define NUMBER_PER_IP 391
462     #define NUMBER_PER_IP_GLOBAL 392
463     #define OPERATOR 393
464     #define OPERS_BYPASS_CALLERID 394
465     #define OPER_LOG 395
466     #define OPER_ONLY_UMODES 396
467     #define OPER_PASS_RESV 397
468     #define OPER_SPY_T 398
469     #define OPER_UMODES 399
470     #define JOIN_FLOOD_COUNT 400
471     #define JOIN_FLOOD_TIME 401
472     #define PACE_WAIT 402
473     #define PACE_WAIT_SIMPLE 403
474     #define PASSWORD 404
475     #define PATH 405
476     #define PING_COOKIE 406
477     #define PING_TIME 407
478     #define PING_WARNING 408
479     #define PORT 409
480     #define QSTRING 410
481     #define QUIET_ON_BAN 411
482     #define REASON 412
483     #define REDIRPORT 413
484     #define REDIRSERV 414
485     #define REGEX_T 415
486     #define REHASH 416
487     #define TREJECT_HOLD_TIME 417
488     #define REMOTE 418
489     #define REMOTEBAN 419
490     #define RESTRICT_CHANNELS 420
491     #define RESTRICTED 421
492     #define RSA_PRIVATE_KEY_FILE 422
493     #define RSA_PUBLIC_KEY_FILE 423
494     #define SSL_CERTIFICATE_FILE 424
495     #define RESV 425
496     #define RESV_EXEMPT 426
497     #define SECONDS 427
498     #define MINUTES 428
499     #define HOURS 429
500     #define DAYS 430
501     #define WEEKS 431
502     #define SENDQ 432
503     #define SEND_PASSWORD 433
504     #define SERVERHIDE 434
505     #define SERVERINFO 435
506     #define SERVLINK_PATH 436
507     #define IRCD_SID 437
508     #define TKLINE_EXPIRE_NOTICES 438
509     #define T_SHARED 439
510     #define T_CLUSTER 440
511     #define TYPE 441
512     #define SHORT_MOTD 442
513     #define SILENT 443
514     #define SPOOF 444
515     #define SPOOF_NOTICE 445
516     #define STATS_E_DISABLED 446
517     #define STATS_I_OPER_ONLY 447
518     #define STATS_K_OPER_ONLY 448
519     #define STATS_O_OPER_ONLY 449
520     #define STATS_P_OPER_ONLY 450
521     #define TBOOL 451
522     #define TMASKED 452
523     #define T_REJECT 453
524     #define TS_MAX_DELTA 454
525     #define TS_WARN_DELTA 455
526     #define TWODOTS 456
527     #define T_ALL 457
528     #define T_BOTS 458
529     #define T_SOFTCALLERID 459
530     #define T_CALLERID 460
531     #define T_CCONN 461
532     #define T_CCONN_FULL 462
533     #define T_CLIENT_FLOOD 463
534     #define T_DEAF 464
535     #define T_DEBUG 465
536     #define T_DRONE 466
537     #define T_EXTERNAL 467
538     #define T_FULL 468
539     #define T_INVISIBLE 469
540     #define T_IPV4 470
541     #define T_IPV6 471
542     #define T_LOCOPS 472
543     #define T_LOGPATH 473
544     #define T_L_CRIT 474
545     #define T_L_DEBUG 475
546     #define T_L_ERROR 476
547     #define T_L_INFO 477
548     #define T_L_NOTICE 478
549     #define T_L_TRACE 479
550     #define T_L_WARN 480
551     #define T_MAX_CLIENTS 481
552     #define T_NCHANGE 482
553     #define T_OPERWALL 483
554     #define T_REJ 484
555     #define T_SERVER 485
556     #define T_SERVNOTICE 486
557     #define T_SKILL 487
558     #define T_SPY 488
559     #define T_SSL 489
560     #define T_UMODES 490
561     #define T_UNAUTH 491
562     #define T_UNRESV 492
563     #define T_UNXLINE 493
564     #define T_WALLOP 494
565     #define THROTTLE_TIME 495
566     #define TOPICBURST 496
567     #define TRUE_NO_OPER_FLOOD 497
568     #define TKLINE 498
569     #define TXLINE 499
570     #define TRESV 500
571     #define UNKLINE 501
572     #define USER 502
573     #define USE_EGD 503
574     #define USE_EXCEPT 504
575     #define USE_INVEX 505
576     #define USE_KNOCK 506
577     #define USE_LOGGING 507
578     #define USE_WHOIS_ACTUALLY 508
579     #define VHOST 509
580     #define VHOST6 510
581     #define XLINE 511
582     #define WARN 512
583     #define WARN_NO_NLINE 513
584    
585    
586    
587    
588     /* Copy the first part of user declarations. */
589     #line 25 "ircd_parser.y"
590    
591    
592     #define YY_NO_UNPUT
593     #include <sys/types.h>
594     #include <string.h>
595    
596     #include "stdinc.h"
597     #include "ircd.h"
598     #include "tools.h"
599     #include "list.h"
600     #include "s_conf.h"
601     #include "event.h"
602     #include "s_log.h"
603     #include "client.h" /* for UMODE_ALL only */
604     #include "pcre.h"
605     #include "irc_string.h"
606     #include "irc_getaddrinfo.h"
607     #include "sprintf_irc.h"
608     #include "memory.h"
609     #include "modules.h"
610     #include "s_serv.h"
611     #include "hostmask.h"
612     #include "send.h"
613     #include "listener.h"
614     #include "resv.h"
615     #include "numeric.h"
616     #include "s_user.h"
617    
618     #ifdef HAVE_LIBCRYPTO
619     #include <openssl/rsa.h>
620     #include <openssl/bio.h>
621     #include <openssl/pem.h>
622     #endif
623    
624     static char *class_name = NULL;
625     static struct ConfItem *yy_conf = NULL;
626     static struct AccessItem *yy_aconf = NULL;
627     static struct MatchItem *yy_match_item = NULL;
628     static struct ClassItem *yy_class = NULL;
629     static char *yy_class_name = NULL;
630    
631     static dlink_list col_conf_list = { NULL, NULL, 0 };
632     static dlink_list hub_conf_list = { NULL, NULL, 0 };
633     static dlink_list leaf_conf_list = { NULL, NULL, 0 };
634     static unsigned int listener_flags = 0;
635     static unsigned int regex_ban = 0;
636     static char userbuf[IRCD_BUFSIZE];
637     static char hostbuf[IRCD_BUFSIZE];
638     static char reasonbuf[REASONLEN + 1];
639     static char gecos_name[REALLEN * 4];
640    
641     extern dlink_list gdeny_items; /* XXX */
642    
643     static char *resv_reason = NULL;
644     static char *listener_address = NULL;
645     static int not_atom = 0;
646    
647     struct CollectItem
648     {
649     dlink_node node;
650     char *name;
651     char *user;
652     char *host;
653     char *passwd;
654     int port;
655     int flags;
656     #ifdef HAVE_LIBCRYPTO
657     char *rsa_public_key_file;
658     RSA *rsa_public_key;
659     #endif
660     };
661    
662     static void
663     free_collect_item(struct CollectItem *item)
664     {
665     MyFree(item->name);
666     MyFree(item->user);
667     MyFree(item->host);
668     MyFree(item->passwd);
669     #ifdef HAVE_LIBCRYPTO
670     MyFree(item->rsa_public_key_file);
671     #endif
672     MyFree(item);
673     }
674    
675     static void
676     unhook_hub_leaf_confs(void)
677     {
678     dlink_node *ptr;
679     dlink_node *next_ptr;
680     struct CollectItem *yy_hconf;
681     struct CollectItem *yy_lconf;
682    
683     DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
684     {
685     yy_hconf = ptr->data;
686     dlinkDelete(&yy_hconf->node, &hub_conf_list);
687     free_collect_item(yy_hconf);
688     }
689    
690     DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
691     {
692     yy_lconf = ptr->data;
693     dlinkDelete(&yy_lconf->node, &leaf_conf_list);
694     free_collect_item(yy_lconf);
695     }
696     }
697    
698    
699    
700     /* Enabling traces. */
701     #ifndef YYDEBUG
702     # define YYDEBUG 0
703     #endif
704    
705     /* Enabling verbose error messages. */
706     #ifdef YYERROR_VERBOSE
707     # undef YYERROR_VERBOSE
708     # define YYERROR_VERBOSE 1
709     #else
710     # define YYERROR_VERBOSE 0
711     #endif
712    
713     /* Enabling the token table. */
714     #ifndef YYTOKEN_TABLE
715     # define YYTOKEN_TABLE 0
716     #endif
717    
718     #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
719     typedef union YYSTYPE
720     #line 135 "ircd_parser.y"
721     {
722     int number;
723     char *string;
724     }
725     /* Line 193 of yacc.c. */
726     #line 727 "ircd_parser.c"
727     YYSTYPE;
728     # define yystype YYSTYPE /* obsolescent; will be withdrawn */
729     # define YYSTYPE_IS_DECLARED 1
730     # define YYSTYPE_IS_TRIVIAL 1
731     #endif
732    
733    
734    
735     /* Copy the second part of user declarations. */
736    
737    
738     /* Line 216 of yacc.c. */
739     #line 740 "ircd_parser.c"
740    
741     #ifdef short
742     # undef short
743     #endif
744    
745     #ifdef YYTYPE_UINT8
746     typedef YYTYPE_UINT8 yytype_uint8;
747     #else
748     typedef unsigned char yytype_uint8;
749     #endif
750    
751     #ifdef YYTYPE_INT8
752     typedef YYTYPE_INT8 yytype_int8;
753     #elif (defined __STDC__ || defined __C99__FUNC__ \
754     || defined __cplusplus || defined _MSC_VER)
755     typedef signed char yytype_int8;
756     #else
757     typedef short int yytype_int8;
758     #endif
759    
760     #ifdef YYTYPE_UINT16
761     typedef YYTYPE_UINT16 yytype_uint16;
762     #else
763     typedef unsigned short int yytype_uint16;
764     #endif
765    
766     #ifdef YYTYPE_INT16
767     typedef YYTYPE_INT16 yytype_int16;
768     #else
769     typedef short int yytype_int16;
770     #endif
771    
772     #ifndef YYSIZE_T
773     # ifdef __SIZE_TYPE__
774     # define YYSIZE_T __SIZE_TYPE__
775     # elif defined size_t
776     # define YYSIZE_T size_t
777     # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
778     || defined __cplusplus || defined _MSC_VER)
779     # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
780     # define YYSIZE_T size_t
781     # else
782     # define YYSIZE_T unsigned int
783     # endif
784     #endif
785    
786     #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
787    
788     #ifndef YY_
789     # if YYENABLE_NLS
790     # if ENABLE_NLS
791     # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
792     # define YY_(msgid) dgettext ("bison-runtime", msgid)
793     # endif
794     # endif
795     # ifndef YY_
796     # define YY_(msgid) msgid
797     # endif
798     #endif
799    
800     /* Suppress unused-variable warnings by "using" E. */
801     #if ! defined lint || defined __GNUC__
802     # define YYUSE(e) ((void) (e))
803     #else
804     # define YYUSE(e) /* empty */
805     #endif
806    
807     /* Identity function, used to suppress warnings about constant conditions. */
808     #ifndef lint
809     # define YYID(n) (n)
810     #else
811     #if (defined __STDC__ || defined __C99__FUNC__ \
812     || defined __cplusplus || defined _MSC_VER)
813     static int
814     YYID (int i)
815     #else
816     static int
817     YYID (i)
818     int i;
819     #endif
820     {
821     return i;
822     }
823     #endif
824    
825     #if ! defined yyoverflow || YYERROR_VERBOSE
826    
827     /* The parser invokes alloca or malloc; define the necessary symbols. */
828    
829     # ifdef YYSTACK_USE_ALLOCA
830     # if YYSTACK_USE_ALLOCA
831     # ifdef __GNUC__
832     # define YYSTACK_ALLOC __builtin_alloca
833     # elif defined __BUILTIN_VA_ARG_INCR
834     # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
835     # elif defined _AIX
836     # define YYSTACK_ALLOC __alloca
837     # elif defined _MSC_VER
838     # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
839     # define alloca _alloca
840     # else
841     # define YYSTACK_ALLOC alloca
842     # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
843     || defined __cplusplus || defined _MSC_VER)
844     # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
845     # ifndef _STDLIB_H
846     # define _STDLIB_H 1
847     # endif
848     # endif
849     # endif
850     # endif
851     # endif
852    
853     # ifdef YYSTACK_ALLOC
854     /* Pacify GCC's `empty if-body' warning. */
855     # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
856     # ifndef YYSTACK_ALLOC_MAXIMUM
857     /* The OS might guarantee only one guard page at the bottom of the stack,
858     and a page size can be as small as 4096 bytes. So we cannot safely
859     invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
860     to allow for a few compiler-allocated temporary stack slots. */
861     # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
862     # endif
863     # else
864     # define YYSTACK_ALLOC YYMALLOC
865     # define YYSTACK_FREE YYFREE
866     # ifndef YYSTACK_ALLOC_MAXIMUM
867     # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
868     # endif
869     # if (defined __cplusplus && ! defined _STDLIB_H \
870     && ! ((defined YYMALLOC || defined malloc) \
871     && (defined YYFREE || defined free)))
872     # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
873     # ifndef _STDLIB_H
874     # define _STDLIB_H 1
875     # endif
876     # endif
877     # ifndef YYMALLOC
878     # define YYMALLOC malloc
879     # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
880     || defined __cplusplus || defined _MSC_VER)
881     void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
882     # endif
883     # endif
884     # ifndef YYFREE
885     # define YYFREE free
886     # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
887     || defined __cplusplus || defined _MSC_VER)
888     void free (void *); /* INFRINGES ON USER NAME SPACE */
889     # endif
890     # endif
891     # endif
892     #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
893    
894    
895     #if (! defined yyoverflow \
896     && (! defined __cplusplus \
897     || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
898    
899     /* A type that is properly aligned for any stack member. */
900     union yyalloc
901     {
902     yytype_int16 yyss;
903     YYSTYPE yyvs;
904     };
905    
906     /* The size of the maximum gap between one aligned stack and the next. */
907     # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
908    
909     /* The size of an array large to enough to hold all stacks, each with
910     N elements. */
911     # define YYSTACK_BYTES(N) \
912     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
913     + YYSTACK_GAP_MAXIMUM)
914    
915     /* Copy COUNT objects from FROM to TO. The source and destination do
916     not overlap. */
917     # ifndef YYCOPY
918     # if defined __GNUC__ && 1 < __GNUC__
919     # define YYCOPY(To, From, Count) \
920     __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
921     # else
922     # define YYCOPY(To, From, Count) \
923     do \
924     { \
925     YYSIZE_T yyi; \
926     for (yyi = 0; yyi < (Count); yyi++) \
927     (To)[yyi] = (From)[yyi]; \
928     } \
929     while (YYID (0))
930     # endif
931     # endif
932    
933     /* Relocate STACK from its old location to the new one. The
934     local variables YYSIZE and YYSTACKSIZE give the old and new number of
935     elements in the stack, and YYPTR gives the new location of the
936     stack. Advance YYPTR to a properly aligned location for the next
937     stack. */
938     # define YYSTACK_RELOCATE(Stack) \
939     do \
940     { \
941     YYSIZE_T yynewbytes; \
942     YYCOPY (&yyptr->Stack, Stack, yysize); \
943     Stack = &yyptr->Stack; \
944     yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
945     yyptr += yynewbytes / sizeof (*yyptr); \
946     } \
947     while (YYID (0))
948    
949     #endif
950    
951     /* YYFINAL -- State number of the termination state. */
952     #define YYFINAL 2
953     /* YYLAST -- Last index in YYTABLE. */
954     #define YYLAST 1410
955    
956     /* YYNTOKENS -- Number of terminals. */
957     #define YYNTOKENS 264
958     /* YYNNTS -- Number of nonterminals. */
959     #define YYNNTS 342
960     /* YYNRULES -- Number of rules. */
961     #define YYNRULES 736
962     /* YYNRULES -- Number of states. */
963     #define YYNSTATES 1483
964    
965     /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
966     #define YYUNDEFTOK 2
967     #define YYMAXUTOK 513
968    
969     #define YYTRANSLATE(YYX) \
970     ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
971    
972     /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
973     static const yytype_uint16 yytranslate[] =
974     {
975     0, 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, 2, 263, 2, 2, 2, 2, 2,
980     2, 2, 2, 2, 2, 2, 2, 2, 2, 259,
981     2, 262, 2, 2, 2, 2, 2, 2, 2, 2,
982     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
985     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
986     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
987     2, 2, 2, 261, 2, 260, 2, 2, 2, 2,
988     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
989     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
990     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
991     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
992     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
993     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
994     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
995     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
996     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
997     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
998     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
999     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1000     2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1001     5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1002     15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1003     25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1004     35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1005     45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1006     55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1007     65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1008     75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1009     85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1010     95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1011     105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1012     115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1013     125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1014     135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1015     145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1016     155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1017     165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1018     175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1019     185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1020     195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1021     205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1022     215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1023     225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1024     235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1025     245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1026     255, 256, 257, 258
1027     };
1028    
1029     #if YYDEBUG
1030     /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1031     YYRHS. */
1032     static const yytype_uint16 yyprhs[] =
1033     {
1034     0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
1035     19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1036     39, 41, 43, 45, 47, 50, 53, 54, 56, 59,
1037     63, 67, 71, 75, 79, 80, 82, 85, 89, 93,
1038     97, 103, 106, 108, 110, 112, 115, 120, 125, 131,
1039     134, 136, 138, 140, 142, 144, 146, 148, 150, 152,
1040     154, 156, 158, 161, 166, 171, 176, 181, 186, 191,
1041     196, 201, 206, 211, 216, 222, 225, 227, 229, 231,
1042     233, 236, 241, 246, 251, 257, 260, 262, 264, 266,
1043     268, 270, 272, 274, 276, 278, 280, 282, 284, 286,
1044     289, 294, 299, 304, 309, 314, 319, 324, 329, 334,
1045     339, 344, 349, 354, 359, 364, 369, 374, 379, 380,
1046     388, 389, 391, 394, 396, 398, 400, 402, 404, 406,
1047     408, 410, 412, 414, 416, 418, 420, 422, 424, 426,
1048     428, 430, 432, 434, 436, 438, 440, 443, 448, 450,
1049     455, 460, 465, 470, 475, 476, 482, 486, 488, 490,
1050     492, 494, 496, 498, 500, 502, 504, 506, 508, 510,
1051     512, 514, 516, 518, 520, 522, 524, 526, 531, 536,
1052     541, 546, 551, 556, 561, 566, 571, 576, 581, 586,
1053     591, 596, 597, 603, 607, 609, 610, 614, 615, 618,
1054     620, 622, 624, 626, 628, 630, 632, 634, 636, 638,
1055     640, 642, 644, 646, 648, 650, 651, 659, 660, 662,
1056     665, 667, 669, 671, 673, 675, 677, 679, 681, 683,
1057     685, 687, 689, 691, 693, 696, 701, 703, 708, 713,
1058     718, 723, 728, 733, 738, 743, 748, 753, 758, 763,
1059     764, 771, 772, 778, 782, 784, 786, 788, 790, 793,
1060     795, 797, 799, 801, 803, 806, 807, 813, 817, 819,
1061     821, 825, 830, 835, 836, 843, 846, 848, 850, 852,
1062     854, 856, 858, 860, 862, 864, 866, 868, 870, 872,
1063     874, 876, 878, 880, 883, 888, 893, 898, 903, 908,
1064     909, 915, 919, 921, 922, 926, 927, 930, 932, 934,
1065     936, 938, 940, 942, 944, 946, 948, 950, 955, 960,
1066     965, 970, 975, 980, 985, 990, 995, 1000, 1001, 1008,
1067     1011, 1013, 1015, 1017, 1019, 1022, 1027, 1032, 1037, 1038,
1068     1045, 1048, 1050, 1052, 1054, 1056, 1059, 1064, 1069, 1070,
1069     1076, 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096,
1070     1098, 1100, 1102, 1104, 1105, 1112, 1115, 1117, 1119, 1121,
1071     1124, 1129, 1130, 1136, 1140, 1142, 1144, 1146, 1148, 1150,
1072     1152, 1154, 1156, 1158, 1160, 1162, 1164, 1165, 1173, 1174,
1073     1176, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195,
1074     1197, 1199, 1201, 1203, 1205, 1207, 1209, 1211, 1213, 1215,
1075     1217, 1219, 1222, 1227, 1229, 1234, 1239, 1244, 1249, 1254,
1076     1259, 1264, 1269, 1270, 1276, 1280, 1282, 1283, 1287, 1288,
1077     1291, 1293, 1295, 1297, 1299, 1301, 1306, 1311, 1316, 1321,
1078     1326, 1331, 1336, 1341, 1346, 1351, 1352, 1359, 1360, 1366,
1079     1370, 1372, 1374, 1377, 1379, 1381, 1383, 1385, 1387, 1392,
1080     1397, 1398, 1405, 1408, 1410, 1412, 1414, 1416, 1421, 1426,
1081     1432, 1435, 1437, 1439, 1441, 1446, 1447, 1454, 1455, 1461,
1082     1465, 1467, 1469, 1472, 1474, 1476, 1478, 1480, 1482, 1487,
1083     1492, 1498, 1501, 1503, 1505, 1507, 1509, 1511, 1513, 1515,
1084     1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531, 1533, 1535,
1085     1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555,
1086     1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575,
1087     1577, 1579, 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1595,
1088     1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615,
1089     1617, 1622, 1627, 1632, 1637, 1642, 1647, 1652, 1657, 1662,
1090     1667, 1672, 1677, 1682, 1687, 1692, 1697, 1702, 1707, 1712,
1091     1717, 1722, 1727, 1732, 1737, 1742, 1747, 1752, 1757, 1762,
1092     1767, 1772, 1777, 1782, 1787, 1792, 1797, 1802, 1807, 1812,
1093     1817, 1822, 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862,
1094     1867, 1872, 1873, 1879, 1883, 1885, 1887, 1889, 1891, 1893,
1095     1895, 1897, 1899, 1901, 1903, 1905, 1907, 1909, 1911, 1913,
1096     1915, 1917, 1919, 1921, 1923, 1924, 1930, 1934, 1936, 1938,
1097     1940, 1942, 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958,
1098     1960, 1962, 1964, 1966, 1968, 1970, 1972, 1974, 1979, 1984,
1099     1989, 1994, 1999, 2000, 2007, 2010, 2012, 2014, 2016, 2018,
1100     2020, 2022, 2024, 2026, 2031, 2036, 2037, 2043, 2047, 2049,
1101     2051, 2053, 2058, 2063, 2064, 2070, 2074, 2076, 2078, 2080,
1102     2086, 2089, 2091, 2093, 2095, 2097, 2099, 2101, 2103, 2105,
1103     2107, 2109, 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125,
1104     2127, 2129, 2134, 2139, 2144, 2149, 2154, 2159, 2164, 2169,
1105     2174, 2179, 2184, 2189, 2194, 2199, 2204, 2209, 2214, 2219,
1106     2225, 2228, 2230, 2232, 2234, 2236, 2238, 2240, 2242, 2244,
1107     2246, 2251, 2256, 2261, 2266, 2271, 2276
1108     };
1109    
1110     /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1111     static const yytype_int16 yyrhs[] =
1112     {
1113     265, 0, -1, -1, 265, 266, -1, 290, -1, 296,
1114     -1, 311, -1, 575, -1, 348, -1, 367, -1, 381,
1115     -1, 276, -1, 596, -1, 407, -1, 414, -1, 424,
1116     -1, 433, -1, 464, -1, 474, -1, 480, -1, 494,
1117     -1, 559, -1, 484, -1, 271, -1, 1, 259, -1,
1118     1, 260, -1, -1, 268, -1, 133, 267, -1, 133,
1119     172, 267, -1, 133, 173, 267, -1, 133, 174, 267,
1120     -1, 133, 175, 267, -1, 133, 176, 267, -1, -1,
1121     270, -1, 133, 269, -1, 133, 14, 269, -1, 133,
1122     15, 269, -1, 133, 16, 269, -1, 121, 261, 272,
1123     260, 259, -1, 272, 273, -1, 273, -1, 274, -1,
1124     275, -1, 1, 259, -1, 120, 262, 155, 259, -1,
1125     150, 262, 155, 259, -1, 180, 261, 277, 260, 259,
1126     -1, 277, 278, -1, 278, -1, 281, -1, 286, -1,
1127     289, -1, 283, -1, 284, -1, 285, -1, 288, -1,
1128     280, -1, 287, -1, 282, -1, 279, -1, 1, 259,
1129     -1, 169, 262, 155, 259, -1, 167, 262, 155, 259,
1130     -1, 122, 262, 155, 259, -1, 182, 262, 155, 259,
1131     -1, 37, 262, 155, 259, -1, 125, 262, 155, 259,
1132     -1, 124, 262, 155, 259, -1, 254, 262, 155, 259,
1133     -1, 255, 262, 155, 259, -1, 226, 262, 133, 259,
1134     -1, 86, 262, 196, 259, -1, 5, 261, 291, 260,
1135     259, -1, 291, 292, -1, 292, -1, 293, -1, 295,
1136     -1, 294, -1, 1, 259, -1, 122, 262, 155, 259,
1137     -1, 48, 262, 155, 259, -1, 37, 262, 155, 259,
1138     -1, 104, 261, 297, 260, 259, -1, 297, 298, -1,
1139     298, -1, 299, -1, 300, -1, 309, -1, 310, -1,
1140     301, -1, 303, -1, 305, -1, 306, -1, 308, -1,
1141     304, -1, 307, -1, 302, -1, 1, 259, -1, 218,
1142     262, 155, 259, -1, 140, 262, 155, 259, -1, 64,
1143     262, 155, 259, -1, 57, 262, 155, 259, -1, 62,
1144     262, 155, 259, -1, 63, 262, 155, 259, -1, 60,
1145     262, 155, 259, -1, 59, 262, 155, 259, -1, 61,
1146     262, 155, 259, -1, 58, 262, 155, 259, -1, 105,
1147     262, 219, 259, -1, 105, 262, 221, 259, -1, 105,
1148     262, 225, 259, -1, 105, 262, 223, 259, -1, 105,
1149     262, 224, 259, -1, 105, 262, 222, 259, -1, 105,
1150     262, 220, 259, -1, 252, 262, 196, 259, -1, -1,
1151     138, 312, 313, 261, 314, 260, 259, -1, -1, 317,
1152     -1, 314, 315, -1, 315, -1, 316, -1, 318, -1,
1153     319, -1, 338, -1, 339, -1, 323, -1, 322, -1,
1154     327, -1, 328, -1, 330, -1, 331, -1, 332, -1,
1155     333, -1, 334, -1, 329, -1, 335, -1, 336, -1,
1156     337, -1, 340, -1, 320, -1, 321, -1, 341, -1,
1157     1, 259, -1, 122, 262, 155, 259, -1, 155, -1,
1158     247, 262, 155, 259, -1, 149, 262, 155, 259, -1,
1159     50, 262, 196, 259, -1, 168, 262, 155, 259, -1,
1160     26, 262, 155, 259, -1, -1, 235, 324, 262, 325,
1161     259, -1, 325, 263, 326, -1, 326, -1, 203, -1,
1162     206, -1, 207, -1, 209, -1, 210, -1, 213, -1,
1163     232, -1, 227, -1, 229, -1, 236, -1, 233, -1,
1164     212, -1, 228, -1, 231, -1, 214, -1, 239, -1,
1165     204, -1, 205, -1, 217, -1, 74, 262, 196, 259,
1166     -1, 163, 262, 196, 259, -1, 164, 262, 196, 259,
1167     -1, 94, 262, 196, 259, -1, 256, 262, 196, 259,
1168     -1, 246, 262, 196, 259, -1, 67, 262, 196, 259,
1169     -1, 127, 262, 196, 259, -1, 38, 262, 196, 259,
1170     -1, 161, 262, 196, 259, -1, 5, 262, 196, 259,
1171     -1, 79, 262, 196, 259, -1, 81, 262, 196, 259,
1172     -1, 228, 262, 196, 259, -1, -1, 55, 342, 262,
1173     343, 259, -1, 343, 263, 344, -1, 344, -1, -1,
1174     132, 345, 347, -1, -1, 346, 347, -1, 74, -1,
1175     163, -1, 94, -1, 246, -1, 256, -1, 67, -1,
1176     38, -1, 161, -1, 5, -1, 79, -1, 127, -1,
1177     228, -1, 143, -1, 81, -1, 164, -1, 50, -1,
1178     -1, 26, 349, 350, 261, 351, 260, 259, -1, -1,
1179     354, -1, 351, 352, -1, 352, -1, 353, -1, 364,
1180     -1, 365, -1, 355, -1, 356, -1, 366, -1, 357,
1181     -1, 358, -1, 359, -1, 360, -1, 361, -1, 362,
1182     -1, 363, -1, 1, 259, -1, 122, 262, 155, 259,
1183     -1, 155, -1, 152, 262, 268, 259, -1, 153, 262,
1184     268, 259, -1, 136, 262, 133, 259, -1, 30, 262,
1185     268, 259, -1, 114, 262, 133, 259, -1, 109, 262,
1186     133, 259, -1, 111, 262, 133, 259, -1, 110, 262,
1187     133, 259, -1, 177, 262, 270, 259, -1, 23, 262,
1188     133, 259, -1, 24, 262, 133, 259, -1, 135, 262,
1189     133, 259, -1, -1, 102, 368, 261, 373, 260, 259,
1190     -1, -1, 55, 370, 262, 371, 259, -1, 371, 263,
1191     372, -1, 372, -1, 234, -1, 78, -1, 230, -1,
1192     373, 374, -1, 374, -1, 375, -1, 369, -1, 379,
1193     -1, 380, -1, 1, 259, -1, -1, 154, 262, 377,
1194     376, 259, -1, 377, 263, 378, -1, 378, -1, 133,
1195     -1, 133, 201, 133, -1, 91, 262, 155, 259, -1,
1196     85, 262, 155, 259, -1, -1, 75, 382, 261, 383,
1197     260, 259, -1, 383, 384, -1, 384, -1, 385, -1,
1198     386, -1, 388, -1, 390, -1, 397, -1, 398, -1,
1199     399, -1, 401, -1, 402, -1, 403, -1, 387, -1,
1200     404, -1, 405, -1, 400, -1, 406, -1, 389, -1,
1201     1, 259, -1, 247, 262, 155, 259, -1, 149, 262,
1202     155, 259, -1, 190, 262, 196, 259, -1, 26, 262,
1203     155, 259, -1, 50, 262, 196, 259, -1, -1, 55,
1204     391, 262, 392, 259, -1, 392, 263, 393, -1, 393,
1205     -1, -1, 132, 394, 396, -1, -1, 395, 396, -1,
1206     190, -1, 51, -1, 95, -1, 76, -1, 20, -1,
1207     21, -1, 131, -1, 69, -1, 171, -1, 123, -1,
1208     95, 262, 196, 259, -1, 76, 262, 196, 259, -1,
1209     51, 262, 196, 259, -1, 20, 262, 196, 259, -1,
1210     131, 262, 196, 259, -1, 69, 262, 196, 259, -1,
1211     189, 262, 155, 259, -1, 159, 262, 155, 259, -1,
1212     158, 262, 133, 259, -1, 123, 262, 196, 259, -1,
1213     -1, 170, 408, 261, 409, 260, 259, -1, 409, 410,
1214     -1, 410, -1, 411, -1, 412, -1, 413, -1, 1,
1215     259, -1, 157, 262, 155, 259, -1, 22, 262, 155,
1216     259, -1, 126, 262, 155, 259, -1, -1, 184, 415,
1217     261, 416, 260, 259, -1, 416, 417, -1, 417, -1,
1218     418, -1, 419, -1, 420, -1, 1, 259, -1, 122,
1219     262, 155, 259, -1, 247, 262, 155, 259, -1, -1,
1220     186, 421, 262, 422, 259, -1, 422, 263, 423, -1,
1221     423, -1, 94, -1, 243, -1, 246, -1, 256, -1,
1222     244, -1, 238, -1, 170, -1, 245, -1, 237, -1,
1223     217, -1, 202, -1, -1, 185, 425, 261, 426, 260,
1224     259, -1, 426, 427, -1, 427, -1, 428, -1, 429,
1225     -1, 1, 259, -1, 122, 262, 155, 259, -1, -1,
1226     186, 430, 262, 431, 259, -1, 431, 263, 432, -1,
1227     432, -1, 94, -1, 243, -1, 246, -1, 256, -1,
1228     244, -1, 238, -1, 170, -1, 245, -1, 237, -1,
1229     217, -1, 202, -1, -1, 29, 434, 435, 261, 436,
1230     260, 259, -1, -1, 439, -1, 436, 437, -1, 437,
1231     -1, 438, -1, 440, -1, 441, -1, 442, -1, 443,
1232     -1, 445, -1, 444, -1, 446, -1, 447, -1, 460,
1233     -1, 461, -1, 462, -1, 458, -1, 455, -1, 457,
1234     -1, 456, -1, 454, -1, 463, -1, 459, -1, 1,
1235     259, -1, 122, 262, 155, 259, -1, 155, -1, 85,
1236     262, 155, 259, -1, 254, 262, 155, 259, -1, 178,
1237     262, 155, 259, -1, 3, 262, 155, 259, -1, 154,
1238     262, 133, 259, -1, 6, 262, 215, 259, -1, 6,
1239     262, 216, 259, -1, 54, 262, 155, 259, -1, -1,
1240     55, 448, 262, 449, 259, -1, 449, 263, 450, -1,
1241     450, -1, -1, 132, 451, 453, -1, -1, 452, 453,
1242     -1, 27, -1, 31, -1, 10, -1, 12, -1, 241,
1243     -1, 168, 262, 155, 259, -1, 50, 262, 196, 259,
1244     -1, 31, 262, 196, 259, -1, 27, 262, 196, 259,
1245     -1, 10, 262, 196, 259, -1, 241, 262, 196, 259,
1246     -1, 87, 262, 155, 259, -1, 100, 262, 155, 259,
1247     -1, 26, 262, 155, 259, -1, 25, 262, 155, 259,
1248     -1, -1, 92, 465, 261, 470, 260, 259, -1, -1,
1249     186, 467, 262, 468, 259, -1, 468, 263, 469, -1,
1250     469, -1, 160, -1, 470, 471, -1, 471, -1, 472,
1251     -1, 473, -1, 466, -1, 1, -1, 247, 262, 155,
1252     259, -1, 157, 262, 155, 259, -1, -1, 36, 475,
1253     261, 476, 260, 259, -1, 476, 477, -1, 477, -1,
1254     478, -1, 479, -1, 1, -1, 91, 262, 155, 259,
1255     -1, 157, 262, 155, 259, -1, 52, 261, 481, 260,
1256     259, -1, 481, 482, -1, 482, -1, 483, -1, 1,
1257     -1, 91, 262, 155, 259, -1, -1, 65, 485, 261,
1258     490, 260, 259, -1, -1, 186, 487, 262, 488, 259,
1259     -1, 488, 263, 489, -1, 489, -1, 160, -1, 490,
1260     491, -1, 491, -1, 492, -1, 493, -1, 486, -1,
1261     1, -1, 122, 262, 155, 259, -1, 157, 262, 155,
1262     259, -1, 66, 261, 495, 260, 259, -1, 495, 496,
1263     -1, 496, -1, 505, -1, 506, -1, 508, -1, 509,
1264     -1, 510, -1, 511, -1, 512, -1, 513, -1, 514,
1265     -1, 515, -1, 504, -1, 517, -1, 518, -1, 519,
1266     -1, 520, -1, 536, -1, 522, -1, 524, -1, 526,
1267     -1, 525, -1, 529, -1, 523, -1, 530, -1, 531,
1268     -1, 532, -1, 533, -1, 535, -1, 534, -1, 550,
1269     -1, 537, -1, 541, -1, 542, -1, 546, -1, 527,
1270     -1, 528, -1, 556, -1, 554, -1, 555, -1, 538,
1271     -1, 507, -1, 539, -1, 540, -1, 557, -1, 545,
1272     -1, 516, -1, 558, -1, 543, -1, 544, -1, 500,
1273     -1, 503, -1, 498, -1, 499, -1, 501, -1, 502,
1274     -1, 521, -1, 497, -1, 1, -1, 116, 262, 133,
1275     259, -1, 72, 262, 133, 259, -1, 73, 262, 133,
1276     259, -1, 12, 262, 196, 259, -1, 253, 262, 196,
1277     259, -1, 162, 262, 268, 259, -1, 183, 262, 196,
1278     259, -1, 93, 262, 133, 259, -1, 84, 262, 196,
1279     259, -1, 89, 262, 196, 259, -1, 43, 262, 196,
1280     259, -1, 53, 262, 196, 259, -1, 8, 262, 196,
1281     259, -1, 113, 262, 268, 259, -1, 112, 262, 133,
1282     259, -1, 106, 262, 133, 259, -1, 9, 262, 268,
1283     259, -1, 200, 262, 268, 259, -1, 199, 262, 268,
1284     259, -1, 77, 262, 133, 259, -1, 97, 262, 196,
1285     259, -1, 96, 262, 155, 259, -1, 90, 262, 196,
1286     259, -1, 258, 262, 196, 259, -1, 191, 262, 196,
1287     259, -1, 194, 262, 196, 259, -1, 195, 262, 196,
1288     259, -1, 193, 262, 196, 259, -1, 193, 262, 197,
1289     259, -1, 192, 262, 196, 259, -1, 192, 262, 197,
1290     259, -1, 147, 262, 268, 259, -1, 19, 262, 268,
1291     259, -1, 139, 262, 196, 259, -1, 148, 262, 268,
1292     259, -1, 187, 262, 196, 259, -1, 130, 262, 196,
1293     259, -1, 242, 262, 196, 259, -1, 142, 262, 196,
1294     259, -1, 117, 262, 155, 259, -1, 88, 262, 268,
1295     259, -1, 45, 262, 133, 259, -1, 115, 262, 133,
1296     259, -1, 181, 262, 155, 259, -1, 32, 262, 155,
1297     259, -1, 28, 262, 133, 259, -1, 248, 262, 196,
1298     259, -1, 47, 262, 155, 259, -1, 151, 262, 196,
1299     259, -1, 39, 262, 196, 259, -1, 240, 262, 268,
1300     259, -1, -1, 144, 547, 262, 548, 259, -1, 548,
1301     263, 549, -1, 549, -1, 203, -1, 206, -1, 207,
1302     -1, 209, -1, 210, -1, 213, -1, 232, -1, 227,
1303     -1, 229, -1, 236, -1, 233, -1, 212, -1, 228,
1304     -1, 231, -1, 214, -1, 239, -1, 204, -1, 205,
1305     -1, 217, -1, -1, 141, 551, 262, 552, 259, -1,
1306     552, 263, 553, -1, 553, -1, 203, -1, 206, -1,
1307     207, -1, 209, -1, 210, -1, 213, -1, 232, -1,
1308     227, -1, 229, -1, 236, -1, 233, -1, 212, -1,
1309     228, -1, 231, -1, 214, -1, 239, -1, 204, -1,
1310     205, -1, 217, -1, 118, 262, 133, 259, -1, 119,
1311     262, 133, 259, -1, 33, 262, 133, 259, -1, 208,
1312     262, 270, 259, -1, 44, 262, 196, 259, -1, -1,
1313     68, 560, 261, 561, 260, 259, -1, 561, 562, -1,
1314     562, -1, 563, -1, 564, -1, 565, -1, 569, -1,
1315     570, -1, 571, -1, 1, -1, 49, 262, 196, 259,
1316     -1, 46, 262, 268, 259, -1, -1, 104, 566, 262,
1317     567, 259, -1, 567, 263, 568, -1, 568, -1, 198,
1318     -1, 11, -1, 247, 262, 155, 259, -1, 122, 262,
1319     155, 259, -1, -1, 4, 572, 262, 573, 259, -1,
1320     573, 263, 574, -1, 574, -1, 198, -1, 11, -1,
1321     22, 261, 576, 260, 259, -1, 576, 577, -1, 577,
1322     -1, 580, -1, 581, -1, 582, -1, 583, -1, 588,
1323     -1, 584, -1, 585, -1, 586, -1, 587, -1, 589,
1324     -1, 590, -1, 591, -1, 579, -1, 592, -1, 593,
1325     -1, 594, -1, 595, -1, 578, -1, 1, -1, 40,
1326     262, 196, 259, -1, 165, 262, 196, 259, -1, 42,
1327     262, 196, 259, -1, 249, 262, 196, 259, -1, 250,
1328     262, 196, 259, -1, 251, 262, 196, 259, -1, 98,
1329     262, 268, 259, -1, 99, 262, 268, 259, -1, 108,
1330     262, 133, 259, -1, 156, 262, 196, 259, -1, 107,
1331     262, 133, 259, -1, 35, 262, 133, 259, -1, 34,
1332     262, 133, 259, -1, 128, 262, 196, 259, -1, 129,
1333     262, 196, 259, -1, 13, 262, 196, 259, -1, 145,
1334     262, 133, 259, -1, 146, 262, 268, 259, -1, 179,
1335     261, 597, 260, 259, -1, 597, 598, -1, 598, -1,
1336     599, -1, 600, -1, 602, -1, 604, -1, 603, -1,
1337     601, -1, 605, -1, 1, -1, 56, 262, 196, 259,
1338     -1, 83, 262, 196, 259, -1, 80, 262, 155, 259,
1339     -1, 101, 262, 268, 259, -1, 78, 262, 196, 259,
1340     -1, 41, 262, 196, 259, -1, 82, 262, 196, 259,
1341     -1
1342     };
1343    
1344     /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1345     static const yytype_uint16 yyrline[] =
1346     {
1347     0, 397, 397, 398, 401, 402, 403, 404, 405, 406,
1348     407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
1349     417, 418, 419, 420, 421, 422, 426, 426, 427, 431,
1350     435, 439, 443, 447, 453, 453, 454, 455, 456, 457,
1351     464, 467, 467, 468, 468, 468, 470, 487, 498, 501,
1352     502, 503, 503, 504, 504, 505, 505, 506, 507, 507,
1353     508, 508, 509, 511, 545, 605, 619, 634, 643, 657,
1354     666, 694, 724, 747, 769, 771, 771, 772, 772, 773,
1355     773, 775, 784, 793, 806, 808, 809, 811, 811, 812,
1356     813, 813, 814, 814, 815, 815, 816, 816, 817, 818,
1357     820, 824, 828, 835, 842, 849, 856, 863, 870, 877,
1358     884, 888, 892, 896, 900, 904, 908, 914, 924, 923,
1359     1017, 1017, 1018, 1018, 1019, 1019, 1019, 1019, 1020, 1020,
1360     1021, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1023, 1024,
1361     1024, 1024, 1024, 1025, 1025, 1026, 1026, 1028, 1040, 1052,
1362     1086, 1098, 1109, 1151, 1161, 1160, 1166, 1166, 1167, 1171,
1363     1175, 1179, 1183, 1187, 1191, 1195, 1199, 1203, 1207, 1211,
1364     1215, 1219, 1223, 1227, 1231, 1235, 1239, 1245, 1256, 1267,
1365     1278, 1289, 1300, 1311, 1322, 1333, 1344, 1355, 1366, 1377,
1366     1388, 1400, 1399, 1403, 1403, 1404, 1404, 1405, 1405, 1407,
1367     1414, 1421, 1428, 1435, 1442, 1449, 1456, 1463, 1470, 1477,
1368     1484, 1491, 1498, 1505, 1512, 1526, 1525, 1575, 1575, 1577,
1369     1577, 1578, 1579, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
1370     1586, 1587, 1588, 1589, 1590, 1592, 1601, 1610, 1616, 1622,
1371     1628, 1634, 1640, 1646, 1652, 1658, 1664, 1670, 1676, 1686,
1372     1685, 1702, 1701, 1706, 1706, 1707, 1711, 1715, 1723, 1723,
1373     1724, 1724, 1724, 1724, 1724, 1726, 1726, 1728, 1728, 1730,
1374     1744, 1764, 1773, 1786, 1785, 1854, 1854, 1855, 1855, 1855,
1375     1855, 1856, 1856, 1857, 1857, 1857, 1858, 1858, 1859, 1859,
1376     1859, 1860, 1860, 1860, 1862, 1899, 1912, 1923, 1932, 1944,
1377     1943, 1947, 1947, 1948, 1948, 1949, 1949, 1951, 1959, 1966,
1378     1973, 1980, 1987, 1994, 2001, 2008, 2015, 2024, 2035, 2046,
1379     2057, 2068, 2079, 2091, 2110, 2120, 2129, 2145, 2144, 2160,
1380     2160, 2161, 2161, 2161, 2161, 2163, 2172, 2187, 2201, 2200,
1381     2216, 2216, 2217, 2217, 2217, 2217, 2219, 2228, 2251, 2250,
1382     2256, 2256, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285,
1383     2289, 2293, 2297, 2307, 2306, 2323, 2323, 2324, 2324, 2324,
1384     2326, 2333, 2332, 2338, 2338, 2339, 2343, 2347, 2351, 2355,
1385     2359, 2363, 2367, 2371, 2375, 2379, 2389, 2388, 2534, 2534,
1386     2535, 2535, 2536, 2536, 2536, 2537, 2537, 2538, 2538, 2539,
1387     2539, 2539, 2540, 2540, 2540, 2541, 2541, 2541, 2542, 2542,
1388     2543, 2543, 2545, 2557, 2569, 2578, 2604, 2622, 2640, 2646,
1389     2650, 2658, 2668, 2667, 2671, 2671, 2672, 2672, 2673, 2673,
1390     2675, 2686, 2693, 2700, 2707, 2717, 2758, 2769, 2780, 2795,
1391     2806, 2817, 2830, 2843, 2852, 2888, 2887, 2952, 2951, 2955,
1392     2955, 2956, 2962, 2962, 2963, 2963, 2963, 2963, 2965, 2984,
1393     2994, 2993, 3015, 3015, 3016, 3016, 3016, 3018, 3027, 3039,
1394     3041, 3041, 3042, 3042, 3044, 3066, 3065, 3108, 3107, 3111,
1395     3111, 3112, 3118, 3118, 3119, 3119, 3119, 3119, 3121, 3127,
1396     3136, 3139, 3139, 3140, 3140, 3141, 3141, 3142, 3142, 3143,
1397     3143, 3144, 3144, 3145, 3145, 3146, 3146, 3147, 3147, 3148,
1398     3148, 3149, 3149, 3150, 3150, 3151, 3151, 3152, 3152, 3153,
1399     3153, 3154, 3154, 3155, 3155, 3156, 3156, 3157, 3157, 3158,
1400     3158, 3159, 3159, 3160, 3161, 3161, 3162, 3162, 3163, 3163,
1401     3164, 3164, 3165, 3165, 3166, 3166, 3167, 3167, 3168, 3169,
1402     3172, 3177, 3182, 3187, 3192, 3197, 3202, 3207, 3212, 3217,
1403     3222, 3227, 3232, 3237, 3242, 3247, 3252, 3257, 3262, 3268,
1404     3279, 3284, 3293, 3298, 3303, 3308, 3313, 3318, 3321, 3326,
1405     3329, 3334, 3339, 3344, 3349, 3354, 3359, 3364, 3369, 3374,
1406     3385, 3390, 3395, 3400, 3409, 3441, 3459, 3464, 3473, 3478,
1407     3483, 3489, 3488, 3493, 3493, 3494, 3497, 3500, 3503, 3506,
1408     3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536,
1409     3539, 3542, 3545, 3548, 3554, 3553, 3558, 3558, 3559, 3562,
1410     3565, 3568, 3571, 3574, 3577, 3580, 3583, 3586, 3589, 3592,
1411     3595, 3598, 3601, 3604, 3607, 3610, 3613, 3618, 3623, 3628,
1412     3633, 3638, 3647, 3646, 3670, 3670, 3671, 3672, 3673, 3674,
1413     3675, 3676, 3677, 3679, 3685, 3692, 3691, 3696, 3696, 3697,
1414     3701, 3707, 3741, 3751, 3750, 3800, 3800, 3801, 3805, 3814,
1415     3817, 3817, 3818, 3818, 3819, 3819, 3820, 3820, 3821, 3821,
1416     3822, 3822, 3823, 3824, 3824, 3825, 3825, 3826, 3826, 3827,
1417     3827, 3829, 3834, 3839, 3844, 3849, 3854, 3859, 3864, 3869,
1418     3874, 3879, 3884, 3889, 3894, 3899, 3904, 3909, 3914, 3922,
1419     3925, 3925, 3926, 3926, 3927, 3928, 3929, 3929, 3930, 3931,
1420     3933, 3939, 3945, 3954, 3968, 3974, 3980
1421     };
1422     #endif
1423    
1424     #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1425     /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1426     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1427     static const char *const yytname[] =
1428     {
1429     "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1430     "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1431     "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1432     "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1433     "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1434     "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1435     "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1436     "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1437     "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1438     "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1439     "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1440     "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1441     "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1442     "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1443     "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1444     "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1445     "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1446     "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1447     "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1448     "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1449     "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1450     "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1451     "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1452     "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1453     "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1454     "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1455     "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1456     "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1457     "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1458     "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1459     "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1460     "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1461     "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1462     "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1463     "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1464     "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1465     "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1466     "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "RESV", "RESV_EXEMPT",
1467     "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1468     "SERVERHIDE", "SERVERINFO", "SERVLINK_PATH", "IRCD_SID",
1469     "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1470     "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1471     "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1472     "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1473     "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1474     "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF",
1475     "T_DEBUG", "T_DRONE", "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4",
1476     "T_IPV6", "T_LOCOPS", "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR",
1477     "T_L_INFO", "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS",
1478     "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE",
1479     "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV",
1480     "T_UNXLINE", "T_WALLOP", "THROTTLE_TIME", "TOPICBURST",
1481     "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV", "UNKLINE", "USER",
1482     "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK", "USE_LOGGING",
1483     "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1484     "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1485     "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1486     "modules_entry", "modules_items", "modules_item", "modules_module",
1487     "modules_path", "serverinfo_entry", "serverinfo_items",
1488     "serverinfo_item", "serverinfo_ssl_certificate_file",
1489     "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1490     "serverinfo_description", "serverinfo_network_name",
1491     "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1492     "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1493     "admin_item", "admin_name", "admin_email", "admin_description",
1494     "logging_entry", "logging_items", "logging_item", "logging_path",
1495     "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1496     "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1497     "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1498     "logging_log_level", "logging_use_logging", "oper_entry", "@1",
1499     "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1500     "oper_user", "oper_password", "oper_encrypted",
1501     "oper_rsa_public_key_file", "oper_class", "oper_umodes", "@2",
1502     "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1503     "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1504     "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1505     "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1506     "oper_operwall", "oper_flags", "@3", "oper_flags_items",
1507     "oper_flags_item", "@4", "@5", "oper_flags_item_atom", "class_entry",
1508     "@6", "class_name_b", "class_items", "class_item", "class_name",
1509     "class_name_t", "class_ping_time", "class_ping_warning",
1510     "class_number_per_ip", "class_connectfreq", "class_max_number",
1511     "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1512     "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1513     "class_number_per_cidr", "listen_entry", "@7", "listen_flags", "@8",
1514     "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1515     "listen_port", "@9", "port_items", "port_item", "listen_address",
1516     "listen_host", "auth_entry", "@10", "auth_items", "auth_item",
1517     "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1518     "auth_encrypted", "auth_flags", "@11", "auth_flags_items",
1519     "auth_flags_item", "@12", "@13", "auth_flags_item_atom",
1520     "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1521     "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1522     "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1523     "@14", "resv_items", "resv_item", "resv_creason", "resv_channel",
1524     "resv_nick", "shared_entry", "@15", "shared_items", "shared_item",
1525     "shared_name", "shared_user", "shared_type", "@16", "shared_types",
1526     "shared_type_item", "cluster_entry", "@17", "cluster_items",
1527     "cluster_item", "cluster_name", "cluster_type", "@18", "cluster_types",
1528     "cluster_type_item", "connect_entry", "@19", "connect_name_b",
1529     "connect_items", "connect_item", "connect_name", "connect_name_t",
1530     "connect_host", "connect_vhost", "connect_send_password",
1531     "connect_accept_password", "connect_port", "connect_aftype",
1532     "connect_fakename", "connect_flags", "@20", "connect_flags_items",
1533     "connect_flags_item", "@21", "@22", "connect_flags_item_atom",
1534     "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1535     "connect_compressed", "connect_auto", "connect_topicburst",
1536     "connect_hub_mask", "connect_leaf_mask", "connect_class",
1537     "connect_cipher_preference", "kill_entry", "@23", "kill_type", "@24",
1538     "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1539     "kill_user", "kill_reason", "deny_entry", "@25", "deny_items",
1540     "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1541     "exempt_item", "exempt_ip", "gecos_entry", "@26", "gecos_flags", "@27",
1542     "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1543     "gecos_name", "gecos_reason", "general_entry", "general_items",
1544     "general_item", "general_max_watch", "general_gline_min_cidr",
1545     "general_gline_min_cidr6", "general_burst_away",
1546     "general_use_whois_actually", "general_reject_hold_time",
1547     "general_tkline_expire_notices", "general_kill_chase_time_limit",
1548     "general_hide_spoof_ips", "general_ignore_bogus_ts",
1549     "general_disable_remote_commands", "general_failed_oper_notice",
1550     "general_anti_nick_flood", "general_max_nick_time",
1551     "general_max_nick_changes", "general_max_accept",
1552     "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1553     "general_ts_max_delta", "general_havent_read_conf",
1554     "general_kline_with_reason", "general_kline_reason",
1555     "general_invisible_on_connect", "general_warn_no_nline",
1556     "general_stats_e_disabled", "general_stats_o_oper_only",
1557     "general_stats_P_oper_only", "general_stats_k_oper_only",
1558     "general_stats_i_oper_only", "general_pace_wait",
1559     "general_caller_id_wait", "general_opers_bypass_callerid",
1560     "general_pace_wait_simple", "general_short_motd",
1561     "general_no_oper_flood", "general_true_no_oper_flood",
1562     "general_oper_pass_resv", "general_message_locale", "general_idletime",
1563     "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1564     "general_default_cipher_preference", "general_compression_level",
1565     "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1566     "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1567     "@28", "umode_oitems", "umode_oitem", "general_oper_only_umodes", "@29",
1568     "umode_items", "umode_item", "general_min_nonwildcard",
1569     "general_min_nonwildcard_simple", "general_default_floodcount",
1570     "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "@30",
1571     "gline_items", "gline_item", "gline_enable", "gline_duration",
1572     "gline_logging", "@31", "gline_logging_types", "gline_logging_type_item",
1573     "gline_user", "gline_server", "gline_action", "@32", "gdeny_types",
1574     "gdeny_type_item", "channel_entry", "channel_items", "channel_item",
1575     "channel_disable_fake_channels", "channel_restrict_channels",
1576     "channel_disable_local_channels", "channel_use_except",
1577     "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1578     "channel_knock_delay_channel", "channel_max_chans_per_user",
1579     "channel_quiet_on_ban", "channel_max_bans",
1580     "channel_default_split_user_count", "channel_default_split_server_count",
1581     "channel_no_create_on_split", "channel_no_join_on_split",
1582     "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1583     "serverhide_entry", "serverhide_items", "serverhide_item",
1584     "serverhide_flatten_links", "serverhide_hide_servers",
1585     "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1586     "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1587     };
1588     #endif
1589    
1590     # ifdef YYPRINT
1591     /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1592     token YYLEX-NUM. */
1593     static const yytype_uint16 yytoknum[] =
1594     {
1595     0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1596     265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1597     275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1598     285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1599     295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1600     305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1601     315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1602     325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1603     335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1604     345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1605     355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1606     365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1607     375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1608     385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1609     395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1610     405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1611     415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1612     425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1613     435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1614     445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1615     455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1616     465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1617     475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1618     485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1619     495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1620     505, 506, 507, 508, 509, 510, 511, 512, 513, 59,
1621     125, 123, 61, 44
1622     };
1623     # endif
1624    
1625     /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1626     static const yytype_uint16 yyr1[] =
1627     {
1628     0, 264, 265, 265, 266, 266, 266, 266, 266, 266,
1629     266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1630     266, 266, 266, 266, 266, 266, 267, 267, 268, 268,
1631     268, 268, 268, 268, 269, 269, 270, 270, 270, 270,
1632     271, 272, 272, 273, 273, 273, 274, 275, 276, 277,
1633     277, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1634     278, 278, 278, 279, 280, 281, 282, 283, 284, 285,
1635     286, 287, 288, 289, 290, 291, 291, 292, 292, 292,
1636     292, 293, 294, 295, 296, 297, 297, 298, 298, 298,
1637     298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1638     299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
1639     309, 309, 309, 309, 309, 309, 309, 310, 312, 311,
1640     313, 313, 314, 314, 315, 315, 315, 315, 315, 315,
1641     315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
1642     315, 315, 315, 315, 315, 315, 315, 316, 317, 318,
1643     319, 320, 321, 322, 324, 323, 325, 325, 326, 326,
1644     326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
1645     326, 326, 326, 326, 326, 326, 326, 327, 328, 329,
1646     330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
1647     340, 342, 341, 343, 343, 345, 344, 346, 344, 347,
1648     347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
1649     347, 347, 347, 347, 347, 349, 348, 350, 350, 351,
1650     351, 352, 352, 352, 352, 352, 352, 352, 352, 352,
1651     352, 352, 352, 352, 352, 353, 354, 355, 356, 357,
1652     358, 359, 360, 361, 362, 363, 364, 365, 366, 368,
1653     367, 370, 369, 371, 371, 372, 372, 372, 373, 373,
1654     374, 374, 374, 374, 374, 376, 375, 377, 377, 378,
1655     378, 379, 380, 382, 381, 383, 383, 384, 384, 384,
1656     384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
1657     384, 384, 384, 384, 385, 386, 387, 388, 389, 391,
1658     390, 392, 392, 394, 393, 395, 393, 396, 396, 396,
1659     396, 396, 396, 396, 396, 396, 396, 397, 398, 399,
1660     400, 401, 402, 403, 404, 405, 406, 408, 407, 409,
1661     409, 410, 410, 410, 410, 411, 412, 413, 415, 414,
1662     416, 416, 417, 417, 417, 417, 418, 419, 421, 420,
1663     422, 422, 423, 423, 423, 423, 423, 423, 423, 423,
1664     423, 423, 423, 425, 424, 426, 426, 427, 427, 427,
1665     428, 430, 429, 431, 431, 432, 432, 432, 432, 432,
1666     432, 432, 432, 432, 432, 432, 434, 433, 435, 435,
1667     436, 436, 437, 437, 437, 437, 437, 437, 437, 437,
1668     437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
1669     437, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1670     445, 446, 448, 447, 449, 449, 451, 450, 452, 450,
1671     453, 453, 453, 453, 453, 454, 455, 456, 457, 458,
1672     459, 460, 461, 462, 463, 465, 464, 467, 466, 468,
1673     468, 469, 470, 470, 471, 471, 471, 471, 472, 473,
1674     475, 474, 476, 476, 477, 477, 477, 478, 479, 480,
1675     481, 481, 482, 482, 483, 485, 484, 487, 486, 488,
1676     488, 489, 490, 490, 491, 491, 491, 491, 492, 493,
1677     494, 495, 495, 496, 496, 496, 496, 496, 496, 496,
1678     496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
1679     496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
1680     496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
1681     496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
1682     496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
1683     497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
1684     507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
1685     517, 518, 519, 520, 521, 522, 523, 524, 524, 525,
1686     525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1687     535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1688     545, 547, 546, 548, 548, 549, 549, 549, 549, 549,
1689     549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
1690     549, 549, 549, 549, 551, 550, 552, 552, 553, 553,
1691     553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
1692     553, 553, 553, 553, 553, 553, 553, 554, 555, 556,
1693     557, 558, 560, 559, 561, 561, 562, 562, 562, 562,
1694     562, 562, 562, 563, 564, 566, 565, 567, 567, 568,
1695     568, 569, 570, 572, 571, 573, 573, 574, 574, 575,
1696     576, 576, 577, 577, 577, 577, 577, 577, 577, 577,
1697     577, 577, 577, 577, 577, 577, 577, 577, 577, 577,
1698     577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
1699     587, 588, 589, 590, 591, 592, 593, 594, 595, 596,
1700     597, 597, 598, 598, 598, 598, 598, 598, 598, 598,
1701     599, 600, 601, 602, 603, 604, 605
1702     };
1703    
1704     /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1705     static const yytype_uint8 yyr2[] =
1706     {
1707     0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1708     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1709     1, 1, 1, 1, 2, 2, 0, 1, 2, 3,
1710     3, 3, 3, 3, 0, 1, 2, 3, 3, 3,
1711     5, 2, 1, 1, 1, 2, 4, 4, 5, 2,
1712     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713     1, 1, 2, 4, 4, 4, 4, 4, 4, 4,
1714     4, 4, 4, 4, 5, 2, 1, 1, 1, 1,
1715     2, 4, 4, 4, 5, 2, 1, 1, 1, 1,
1716     1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1717     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1718     4, 4