diff -Nru ircd-hybrid-8.2.37+dfsg.1/config.guess ircd-hybrid-8.2.38+dfsg.1/config.guess --- ircd-hybrid-8.2.37+dfsg.1/config.guess 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/config.guess 2021-01-17 11:18:41.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2020 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2020-12-22' +timestamp='2021-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2020 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -1087,7 +1087,7 @@ ppcle:Linux:*:*) echo powerpcle-unknown-linux-"$LIBC" exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) diff -Nru ircd-hybrid-8.2.37+dfsg.1/config.sub ircd-hybrid-8.2.38+dfsg.1/config.sub --- ircd-hybrid-8.2.37+dfsg.1/config.sub 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/config.sub 2021-01-17 11:18:41.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2020 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2020-12-22' +timestamp='2021-01-07' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2020 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -1230,7 +1230,7 @@ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ | pru \ | pyramid \ - | riscv | riscv32 | riscv64 \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ | rl78 | romp | rs6000 | rx \ | s390 | s390x \ | score \ @@ -1687,7 +1687,7 @@ musl* | newlib* | uclibc*) ;; # Likewise for "kernel-libc" - eabi | eabihf | gnueabi | gnueabihf) + eabi* | gnueabi*) ;; # Now accept the basic system types. # The portable systems comes first. diff -Nru ircd-hybrid-8.2.37+dfsg.1/configure ircd-hybrid-8.2.38+dfsg.1/configure --- ircd-hybrid-8.2.37+dfsg.1/configure 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/configure 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Id: configure.ac 9760 2020-11-30 11:34:48Z michael . +# From configure.ac Id: configure.ac 9850 2020-12-25 15:49:32Z michael . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ircd-hybrid 8.2.37. +# Generated by GNU Autoconf 2.69 for ircd-hybrid 8.2.38. # # Report bugs to . # @@ -593,8 +593,8 @@ # Identity of this package. PACKAGE_NAME='ircd-hybrid' PACKAGE_TARNAME='ircd-hybrid' -PACKAGE_VERSION='8.2.37' -PACKAGE_STRING='ircd-hybrid 8.2.37' +PACKAGE_VERSION='8.2.38' +PACKAGE_STRING='ircd-hybrid 8.2.38' PACKAGE_BUGREPORT='bugs@ircd-hybrid.org' PACKAGE_URL='' @@ -1378,7 +1378,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ircd-hybrid 8.2.37 to adapt to many kinds of systems. +\`configure' configures ircd-hybrid 8.2.38 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1449,7 +1449,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ircd-hybrid 8.2.37:";; + short | recursive ) echo "Configuration of ircd-hybrid 8.2.38:";; esac cat <<\_ACEOF @@ -1583,7 +1583,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ircd-hybrid configure 8.2.37 +ircd-hybrid configure 8.2.38 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2052,7 +2052,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ircd-hybrid $as_me 8.2.37, which was +It was created by ircd-hybrid $as_me 8.2.38, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2922,7 +2922,7 @@ # Define the identity of the package. PACKAGE='ircd-hybrid' - VERSION='8.2.37' + VERSION='8.2.38' cat >>confdefs.h <<_ACEOF @@ -17750,7 +17750,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ircd-hybrid $as_me 8.2.37, which was +This file was extended by ircd-hybrid $as_me 8.2.38, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17816,7 +17816,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ircd-hybrid config.status 8.2.37 +ircd-hybrid config.status 8.2.38 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru ircd-hybrid-8.2.37+dfsg.1/configure.ac ircd-hybrid-8.2.38+dfsg.1/configure.ac --- ircd-hybrid-8.2.37+dfsg.1/configure.ac 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/configure.ac 2021-01-17 11:18:41.000000000 +0000 @@ -1,9 +1,9 @@ dnl Process this file with autoconf to produce a configure script. -AC_REVISION([$Id: configure.ac 9850 2020-12-25 15:49:32Z michael $]) +AC_REVISION([$Id: configure.ac 9899 2021-01-17 10:57:27Z michael $]) AC_PREREQ(2.69) -AC_INIT([ircd-hybrid], [8.2.37], [bugs@ircd-hybrid.org]) +AC_INIT([ircd-hybrid], [8.2.38], [bugs@ircd-hybrid.org]) AM_INIT_AUTOMAKE(1.16.1 subdir-objects) AM_MAINTAINER_MODE AC_CONFIG_MACRO_DIR([m4]) diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/changelog ircd-hybrid-8.2.38+dfsg.1/debian/changelog --- ircd-hybrid-8.2.37+dfsg.1/debian/changelog 2021-01-04 11:49:55.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/changelog 2021-02-16 15:16:09.000000000 +0000 @@ -1,3 +1,21 @@ +ircd-hybrid (1:8.2.38+dfsg.1-1build1) hirsute; urgency=medium + + * No change rebuild with fixed ownership. + + -- Dimitri John Ledkov Tue, 16 Feb 2021 15:16:09 +0000 + +ircd-hybrid (1:8.2.38+dfsg.1-1) unstable; urgency=medium + + * New upstream release + - update config file for new reference.conf + - add additional config directive renaming in postinst + * Update NEWS with information about configuration directive renames + and upgrade version constraints + * Fix post-inst helper scripts to be executable + * Remove reference to old version 7.2.2 in default MOTD + + -- Dominic Hargreaves Sun, 07 Feb 2021 15:51:55 +0000 + ircd-hybrid (1:8.2.37+dfsg.1-1) unstable; urgency=medium * Update German debconf translation (Closes: #977152) diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/control ircd-hybrid-8.2.38+dfsg.1/debian/control --- ircd-hybrid-8.2.37+dfsg.1/debian/control 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/control 2021-02-16 15:16:09.000000000 +0000 @@ -9,7 +9,8 @@ libltdl-dev, libgnutls28-dev (>= 3.6.5), Build-Conflicts: autoconf2.13 -Maintainer: Dominic Hargreaves +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Dominic Hargreaves Standards-Version: 4.1.4 Homepage: https://www.ircd-hybrid.org/ Vcs-Browser: https://salsa.debian.org/dom/ircd-hybrid diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/copyright ircd-hybrid-8.2.38+dfsg.1/debian/copyright --- ircd-hybrid-8.2.37+dfsg.1/debian/copyright 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/copyright 2021-02-07 15:19:57.000000000 +0000 @@ -5,22 +5,22 @@ Files: * Copyright: 1988, 1989, 1990, 1991 University of Oulu, Computing Center - 1997-2020 ircd-hybrid development team + 1997-2021 ircd-hybrid development team License: GPL-2+ Files: include/conf_db.h src/conf_db.c Copyright: 1996-2009 Andrew Church - 2012-2020 ircd-hybrid development team + 2012-2021 ircd-hybrid development team License: GPL-2+ Files: include/extban.h src/extban_gecos.c src/extban_account.c src/extban_mute.c src/extban_fingerprint.c src/extban.c Copyright: 2015-2016 plexus development team - 2019-2020 ircd-hybrid development team + 2019-2021 ircd-hybrid development team License: GPL-2+ Files: include/motd.h src/motd.c Copyright: 2000 Kevin L. Mitchell - 2013-2020 ircd-hybrid development team + 2013-2021 ircd-hybrid development team License: GPL-2+ Files: include/patricia.h src/patricia.c @@ -34,12 +34,12 @@ Files: include/tls_wolfssl.h src/tls_wolfssl.c Copyright: 2015 Adam 2015 Attila Molnar - 2015-2020 ircd-hybrid development team + 2015-2021 ircd-hybrid development team License: GPL-2+ Files: include/monitor.h Copyright: 1997 Jukka Santala (Donwulff) - 2005-2020 ircd-hybrid development team + 2005-2021 ircd-hybrid development team License: GPL-2+ Files: include/stdinc.h @@ -57,17 +57,17 @@ Files: modules/m_svsmode.c modules/m_svsnick.c modules/m_services.c Copyright: 1999 by the Bahamut Development Team. - 2011-2020 ircd-hybrid development team + 2011-2021 ircd-hybrid development team License: GPL-2+ Files: modules/m_cap.c Copyright: 2004 Kevin L. Mitchell - 2006-2020 ircd-hybrid development team + 2006-2021 ircd-hybrid development team License: GPL-2+ Files: modules/m_monitor.c src/monitor.c Copyright: 1997 Jukka Santala (Donwulff) - 2000-2020 ircd-hybrid development team + 2000-2021 ircd-hybrid development team License: GPL-2+ Files: src/reslib.c diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/.git-dpm ircd-hybrid-8.2.38+dfsg.1/debian/.git-dpm --- ircd-hybrid-8.2.37+dfsg.1/debian/.git-dpm 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/.git-dpm 2021-02-07 13:19:44.000000000 +0000 @@ -1,8 +1,8 @@ # see git-dpm(1) from git-dpm package -9076b1fc591e6702beb1871ea7e32c1cf016e391 -9076b1fc591e6702beb1871ea7e32c1cf016e391 -aec166c40836d8b5bc740fe8db23eec8aa951fef -aec166c40836d8b5bc740fe8db23eec8aa951fef -ircd-hybrid_8.2.37+dfsg.1.orig.tar.gz -16f9bad60554fe40a2630705b5a199f78cb9d3de -957044 +a5877af3096bb02c60eb92fdc04a53e8d68b5271 +a5877af3096bb02c60eb92fdc04a53e8d68b5271 +c9c16d3efab78c47767ecbe5338444764c23afe7 +c9c16d3efab78c47767ecbe5338444764c23afe7 +ircd-hybrid_8.2.38+dfsg.1.orig.tar.gz +b5321a18cd113d20150ec942df2420d1e8db5728 +954756 diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd.conf ircd-hybrid-8.2.38+dfsg.1/debian/ircd.conf --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd.conf 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd.conf 2021-02-07 15:18:40.000000000 +0000 @@ -1,9 +1,9 @@ /* * This is an example configuration file for ircd-hybrid * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * - * $Id: reference.conf 9774 2020-12-03 15:50:11Z michael $ + * $Id: reference.conf 2021-01-17 06:18:18Z michael $ * * This version has been customized for Debian. */ @@ -1123,10 +1123,10 @@ failed_oper_notice = yes; /* - * dots_in_ident: the number of '.' characters permitted in an ident - * reply before the user is rejected. + * specials_in_ident: the number of '-', '_', or '.' characters permitted + * in an ident reply before the user is rejected. */ - dots_in_ident = 2; + specials_in_ident = 2; /* * min_nonwildcard: the minimum number of non-wildcard characters in diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.config ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.config --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.config 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.config 2021-02-07 15:22:31.000000000 +0000 @@ -5,7 +5,7 @@ if [ "$1" = "configure" ]; then db_input medium ircd-hybrid/restart_on_upgrade || true - if dpkg --compare-versions "$2" lt-nl "1:8.2.36+dfsg.1-1"; then + if dpkg --compare-versions "$2" lt-nl "1:8.2.38+dfsg.1-1"; then db_input medium ircd-hybrid/automatically_fix_config || true fi fi diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.install ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.install --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.install 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.install 2021-02-07 15:34:49.000000000 +0000 @@ -6,5 +6,4 @@ debian/cert.cnf etc/ircd-hybrid debian/ircd.conf etc/ircd-hybrid debian/ircd.motd etc/ircd-hybrid -debian/scripts/ssl-to-tls-config usr/share/ircd-hybrid/scripts -debian/scripts/upgrade-8.2.36 usr/share/ircd-hybrid/scripts +debian/scripts/* usr/share/ircd-hybrid/scripts diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.postinst ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.postinst --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.postinst 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.postinst 2021-02-07 15:21:10.000000000 +0000 @@ -48,6 +48,8 @@ /etc/ircd-hybrid/ircd.conf /usr/share/ircd-hybrid/scripts/upgrade-8.2.36 \ /etc/ircd-hybrid/ircd.conf + /usr/share/ircd-hybrid/scripts/upgrade-8.2.38 \ + /etc/ircd-hybrid/ircd.conf fi if [ -x "/etc/init.d/ircd-hybrid" ]; then diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.templates ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.templates --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd-hybrid.templates 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd-hybrid.templates 2021-02-07 15:23:30.000000000 +0000 @@ -27,7 +27,7 @@ _Description: Automatically fix references to obsolete config options? Several ssl configuration variables have been renamed to tls-like ones in version 8.2.30, with some further changes to rename network_desc and - max_watch in 8.2.36. If enabled, the post-installation script will attempt - to automatically fix them before the server is restarted. If not, and you - have these options specified, the configuration will become invalid, - and server restart will fail. + max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the + post-installation script will attempt to automatically fix them before the + server is restarted. If not, and you have these options specified, the + configuration will become invalid, and server restart will fail. diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/ircd.motd ircd-hybrid-8.2.38+dfsg.1/debian/ircd.motd --- ircd-hybrid-8.2.37+dfsg.1/debian/ircd.motd 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/ircd.motd 2021-02-07 15:50:50.000000000 +0000 @@ -11,13 +11,10 @@ `$$b "-.__ should do before going any further: `Y$$b `Y$$. 1. Edit /etc/ircd-hybrid/ircd.conf to - `$$b. suit your needs. Beware some options have - `Y$$b. been removed or moved into other blocks in - `"Y$b._ the configuration file since - `"""" ircd-hybrid 7.2.2. - - 2. Edit /etc/ircd-hybrid/ircd.motd (this - MOTD) to suit your needs. You are free + `$$b. suit your needs. + `Y$$b. + `"Y$b._ 2. Edit /etc/ircd-hybrid/ircd.motd (this + `"""" MOTD) to suit your needs. You are free to use this Debian swirl under the Debian Open Use Logo License. :) diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/NEWS ircd-hybrid-8.2.38+dfsg.1/debian/NEWS --- ircd-hybrid-8.2.37+dfsg.1/debian/NEWS 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/NEWS 2021-02-07 15:51:55.000000000 +0000 @@ -1,3 +1,26 @@ +ircd-hybrid (1:8.2.38+dfsg.1-1) unstable; urgency=medium + + ircd-hybrid 8.2.38 contains several configuration changes compared to 8.2.31 + and below. You are recommended to review your configuration against the + defaults supplied with this package when upgrading, or automatically + choose the option during upgrade to update your configuration to be + compatible. The scripts in /usr/share/ircd-hybrid/scripts can be used to + update your configuration later, if needed. + + This release cannot be used to link with any ircd-hybrid server < 8.2.23. + If you have such servers on your network (including those using Debian + packages from Debian 8, aka stretch) or below, you should upgrade those + to at least 8.2.23 or Debian 9, aka buster) before upgrading this package. + + This release cannot be used to link with any Anope release < 2.0.8. + For typical configurations where anope is running on the same host, + this requirement is enforced through Debian package relationships. If you + have a configuration where ircd-hyrid is linked to Anope running on a + different system, ensure that this installation is sufficiently up-to-date + before upgrading. + + -- Dominic Hargreaves Sun, 07 Feb 2021 15:25:04 +0000 + ircd-hybrid (1:8.2.31+dfsg.1-1) unstable; urgency=medium ircd-hybrid 8.2.31 contains several configuration changes compared to 8.2.26 diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/patches/fhs_comply.patch ircd-hybrid-8.2.38+dfsg.1/debian/patches/fhs_comply.patch --- ircd-hybrid-8.2.37+dfsg.1/debian/patches/fhs_comply.patch 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/patches/fhs_comply.patch 2021-02-07 13:19:44.000000000 +0000 @@ -1,4 +1,4 @@ -From 1860ea18d4a224c004d888ee51d362310977218d Mon Sep 17 00:00:00 2001 +From d7e3b30bb28eb05e5022392198aca8ae730bcc25 Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Sat, 12 Jan 2013 00:24:56 +0000 Subject: Adjust paths for Debian/FHS @@ -11,7 +11,7 @@ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/defaults.h b/include/defaults.h -index 491a9b9..8b3d3a2 100644 +index ad9ac04..741d1a7 100644 --- a/include/defaults.h +++ b/include/defaults.h @@ -50,25 +50,25 @@ diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/patches/no_ltdl_build.patch ircd-hybrid-8.2.38+dfsg.1/debian/patches/no_ltdl_build.patch --- ircd-hybrid-8.2.37+dfsg.1/debian/patches/no_ltdl_build.patch 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/patches/no_ltdl_build.patch 2021-02-07 13:19:44.000000000 +0000 @@ -1,4 +1,4 @@ -From f34bd800f7a5a75bf335d137ed95dd4c70b2ff4b Mon Sep 17 00:00:00 2001 +From bf28688f061fea808adc34c9cc32603ad3cd7d15 Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Sun, 8 Sep 2013 10:58:57 +0100 Subject: Don't build bundled libltdl diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/patches/patchlevel_debian.patch ircd-hybrid-8.2.38+dfsg.1/debian/patches/patchlevel_debian.patch --- ircd-hybrid-8.2.37+dfsg.1/debian/patches/patchlevel_debian.patch 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/patches/patchlevel_debian.patch 2021-02-07 13:19:44.000000000 +0000 @@ -1,4 +1,4 @@ -From 4db147a32f3da69a83a986b7eab09588e426f1be Mon Sep 17 00:00:00 2001 +From d67152948c635316c39e535b6352b3363103892d Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Sun, 30 Dec 2012 20:36:40 +0000 Subject: Patchlevel for Debian package. @@ -11,14 +11,14 @@ 1 file changed, 1 insertion(+) diff --git a/include/patchlevel.h b/include/patchlevel.h -index a63699f..d328a70 100644 +index 2b8c701..01c1b4c 100644 --- a/include/patchlevel.h +++ b/include/patchlevel.h @@ -24,6 +24,7 @@ - * \version $Id: patchlevel.h 9850 2020-12-25 15:49:32Z michael $ + * \version $Id: patchlevel.h 9899 2021-01-17 10:57:27Z michael $ */ +#include "patchlevel-debian.h" #ifndef PATCHLEVEL - #define PATCHLEVEL "hybrid-8.2.37" + #define PATCHLEVEL "hybrid-8.2.38" #endif diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/patches/reproducible_date_time.patch ircd-hybrid-8.2.38+dfsg.1/debian/patches/reproducible_date_time.patch --- ircd-hybrid-8.2.37+dfsg.1/debian/patches/reproducible_date_time.patch 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/patches/reproducible_date_time.patch 2021-02-07 13:19:44.000000000 +0000 @@ -1,4 +1,4 @@ -From 9076b1fc591e6702beb1871ea7e32c1cf016e391 Mon Sep 17 00:00:00 2001 +From a5877af3096bb02c60eb92fdc04a53e8d68b5271 Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Wed, 2 Sep 2015 22:15:22 +0100 Subject: Allow the build date/time to be overridden by BUILD_DATE @@ -39,10 +39,10 @@ ircd_LDADD = $(LIBLTDL) ircd_DEPENDENCIES = $(LTDLDEPS) diff --git a/src/user.c b/src/user.c -index c0869da..53d35e9 100644 +index d3cc8c5..bc1d010 100644 --- a/src/user.c +++ b/src/user.c -@@ -254,7 +254,11 @@ introduce_client(struct Client *client) +@@ -230,7 +230,11 @@ introduce_client(struct Client *client) static void user_welcome(struct Client *client) { diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/cs.po ircd-hybrid-8.2.38+dfsg.1/debian/po/cs.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/cs.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/cs.po 2021-02-07 15:23:35.000000000 +0000 @@ -15,7 +15,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-09 09:21+0100\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" @@ -73,10 +73,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/da.po ircd-hybrid-8.2.38+dfsg.1/debian/po/da.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/da.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/da.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-09 05:26+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" @@ -65,10 +65,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/de.po ircd-hybrid-8.2.38+dfsg.1/debian/po/de.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/de.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/de.po 2021-02-07 15:23:35.000000000 +0000 @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid 1:8.2.36.dfsg.1-1\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2020-12-11 20:54+0100\n" "Last-Translator: Helge Kreutzmann \n" "Language-Team: German \n" @@ -74,19 +74,29 @@ #. Type: boolean #. Description #: ../ircd-hybrid.templates:3001 +#, fuzzy +#| msgid "" +#| "Several ssl configuration variables have been renamed to tls-like ones in " +#| "version 8.2.30, with some further changes to rename network_desc and " +#| "max_watch in 8.2.36. If enabled, the post-installation script will " +#| "attempt to automatically fix them before the server is restarted. If not, " +#| "and you have these options specified, the configuration will become " +#| "invalid, and server restart will fail." msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" "Mehrere SSL-Konfigurationsvariablen wurden in Version 8.2.30 zu tls-artigen " -"umbenannt. In 8.2.36 erfolgten weitere Ändungen zur Umbenennung von network_desc und max_watch. Falls aktiviert, wird das Nachinstallationsskript versuchen, sie " -"automatisch zu korrigieren, bevor der Server neu gestartet wird. Falls nicht " -"und Sie diese Optionen festgelegt haben, wird die Konfiguration ungültig und " -"der Server-Start wird fehlschlagen." +"umbenannt. In 8.2.36 erfolgten weitere Ändungen zur Umbenennung von " +"network_desc und max_watch. Falls aktiviert, wird das " +"Nachinstallationsskript versuchen, sie automatisch zu korrigieren, bevor der " +"Server neu gestartet wird. Falls nicht und Sie diese Optionen festgelegt " +"haben, wird die Konfiguration ungültig und der Server-Start wird " +"fehlschlagen." #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" #~ msgstr "" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/es.po ircd-hybrid-8.2.38+dfsg.1/debian/po/es.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/es.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/es.po 2021-02-07 15:23:35.000000000 +0000 @@ -23,7 +23,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid_1 8.2.31+dfsg.1-1\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2020-05-21 12:43+0000\n" "Last-Translator: Camaleón \n" "Language-Team: Debian Spanish \n" @@ -94,10 +94,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" "Muchas variables de configuración de SSL se han renombrado en la versión " "8.2.30 para adecuarlas a TLS. Si habilita esta opción, el script de post-" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/eu.po ircd-hybrid-8.2.38+dfsg.1/debian/po/eu.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/eu.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/eu.po 2021-02-07 15:23:35.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid-eu\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-04-09 10:26+0200\n" "Last-Translator: Iñaki Larrañaga Murgoitio \n" "Language-Team: Basque \n" @@ -69,10 +69,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/fi.po ircd-hybrid-8.2.38+dfsg.1/debian/po/fi.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/fi.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/fi.po 2021-02-07 15:23:35.000000000 +0000 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2008-04-23 22:34+0200\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" @@ -69,8 +69,8 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/fr.po ircd-hybrid-8.2.38+dfsg.1/debian/po/fr.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/fr.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/fr.po 2021-02-07 15:23:35.000000000 +0000 @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid 1:7.0-5\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-08 08:09+0100\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" @@ -75,10 +75,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/gl.po ircd-hybrid-8.2.38+dfsg.1/debian/po/gl.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/gl.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/gl.po 2021-02-07 15:23:35.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2008-05-06 20:54+0100\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" @@ -71,8 +71,8 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/it.po ircd-hybrid-8.2.38+dfsg.1/debian/po/it.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/it.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/it.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-16 18:46+0200\n" "Last-Translator: Beatrice Torracca \n" "Language-Team: Italian \n" @@ -68,10 +68,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/ja.po ircd-hybrid-8.2.38+dfsg.1/debian/po/ja.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/ja.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/ja.po 2021-02-07 15:23:35.000000000 +0000 @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid 1:8.0.9\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-08 07:09+0900\n" "Last-Translator: Hideki Yamane (Debian-JP) \n" "Language-Team: Japanese \n" @@ -75,10 +75,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/nl.po ircd-hybrid-8.2.38+dfsg.1/debian/po/nl.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/nl.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/nl.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid_1_8.2.31+dfsg.1-1\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2020-05-24 15:57+0200\n" "Last-Translator: Frans Spiesschaert \n" "Language-Team: Dutch \n" @@ -79,10 +79,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" "In versie 8.2.30 werden verschillende ssl-configuratievariabelen hernoemd " "naar tls-achtige. Indien dit geactiveerd wordt, zal het post-" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/pl.po ircd-hybrid-8.2.38+dfsg.1/debian/po/pl.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/pl.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/pl.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-08 21:32+0100\n" "Last-Translator: MichaÅ‚ KuÅ‚ach \n" "Language-Team: Polish \n" @@ -68,10 +68,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/pt_BR.po ircd-hybrid-8.2.38+dfsg.1/debian/po/pt_BR.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/pt_BR.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/pt_BR.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2016-01-31 16:13-0200\n" "Last-Translator: Adriano Rafael Gomes \n" "Language-Team: Brazilian Portuguese \n" "Language-Team: Portuguese <>\n" @@ -78,10 +78,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" "Várias variáveis de configuração de ssl foram renomeadas para o estilo tls " "na versão 8.2.30. Se ativo, o script de pós-instalação irá tentar corrigi-" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/ru.po ircd-hybrid-8.2.38+dfsg.1/debian/po/ru.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/ru.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/ru.po 2021-02-07 15:23:35.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid 1:8.1.14.dfsg.1-1\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-03-11 20:09+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" @@ -69,10 +69,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/sv.po ircd-hybrid-8.2.38+dfsg.1/debian/po/sv.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/sv.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/sv.po 2021-02-07 15:23:36.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2014-09-17 13:00+0100\n" "Last-Translator: Martin Bagge / brother \n" "Language-Team: Swedish \n" @@ -66,10 +66,10 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" #~ msgid "Upgrade ircd-hybrid to version without cryptlink support?" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/templates.pot ircd-hybrid-8.2.38+dfsg.1/debian/po/templates.pot --- ircd-hybrid-8.2.37+dfsg.1/debian/po/templates.pot 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/templates.pot 2021-02-07 15:23:35.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -60,8 +60,8 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/po/vi.po ircd-hybrid-8.2.38+dfsg.1/debian/po/vi.po --- ircd-hybrid-8.2.37+dfsg.1/debian/po/vi.po 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/po/vi.po 2021-02-07 15:23:36.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: ircd-hybrid 1:7.2.2.dfsg.2-3.1\n" "Report-Msgid-Bugs-To: ircd-hybrid@packages.debian.org\n" -"POT-Creation-Date: 2020-12-06 22:07+0000\n" +"POT-Creation-Date: 2021-02-07 15:23+0000\n" "PO-Revision-Date: 2008-05-06 20:13+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -73,8 +73,8 @@ msgid "" "Several ssl configuration variables have been renamed to tls-like ones in " "version 8.2.30, with some further changes to rename network_desc and " -"max_watch in 8.2.36. If enabled, the post-installation script will attempt " -"to automatically fix them before the server is restarted. If not, and you " -"have these options specified, the configuration will become invalid, and " -"server restart will fail." +"max_watch in 8.2.36, and dots_in_ident in 8.2.38. If enabled, the post-" +"installation script will attempt to automatically fix them before the server " +"is restarted. If not, and you have these options specified, the " +"configuration will become invalid, and server restart will fail." msgstr "" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/rules ircd-hybrid-8.2.38+dfsg.1/debian/rules --- ircd-hybrid-8.2.37+dfsg.1/debian/rules 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/rules 2021-02-07 15:43:37.000000000 +0000 @@ -105,6 +105,7 @@ rm -f $(CURDIR)/debian/tmp/etc/ircd-hybrid/reference.conf install -d $(CURDIR)/debian/tmp/var/cache/ircd-hybrid + chmod +x $(CURDIR)/debian/scripts/* dh_install cp debian/cert.cnf $(I_ETC) diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/scripts/upgrade-8.2.36 ircd-hybrid-8.2.38+dfsg.1/debian/scripts/upgrade-8.2.36 --- ircd-hybrid-8.2.37+dfsg.1/debian/scripts/upgrade-8.2.36 2021-01-04 11:43:40.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/scripts/upgrade-8.2.36 2021-02-07 15:33:33.000000000 +0000 @@ -7,7 +7,7 @@ exit 1 fi -sed -i.bak \ +sed -i.bak8236 \ -e 's/network_desc /network_description /g' \ -e 's/max_watch /max_monitor /g' \ "$1" diff -Nru ircd-hybrid-8.2.37+dfsg.1/debian/scripts/upgrade-8.2.38 ircd-hybrid-8.2.38+dfsg.1/debian/scripts/upgrade-8.2.38 --- ircd-hybrid-8.2.37+dfsg.1/debian/scripts/upgrade-8.2.38 1970-01-01 00:00:00.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/debian/scripts/upgrade-8.2.38 2021-02-07 15:32:54.000000000 +0000 @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +sed -i.bak8238 \ + -e 's/dots_in_ident/specials_in_ident/g' \ + "$1" diff -Nru ircd-hybrid-8.2.37+dfsg.1/doc/ircd.8 ircd-hybrid-8.2.38+dfsg.1/doc/ircd.8 --- ircd-hybrid-8.2.37+dfsg.1/doc/ircd.8 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/doc/ircd.8 2021-01-17 11:18:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" @(#)ircd.8 7b10 25 Oct 2001 -.\" $Id: ircd.8 9102 2020-01-01 09:58:57Z michael $ -.TH IRCD 8 "22 October 2015" "ircd-hybrid" +.\" $Id: ircd.8 9858 2021-01-01 04:43:42Z michael $ +.TH IRCD 8 "2021-01-01" "ircd-hybrid" .SH NAME ircd \- ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon .SH SYNOPSIS @@ -90,7 +90,7 @@ .LP (c) 1988-1991 Jarkko Oikarinen .LP -(c) 1997-2020 ircd-hybrid development team +(c) 1997-2021 ircd-hybrid development team .LP For full COPYRIGHT, see the COPYING file within the IRC source package. .LP diff -Nru ircd-hybrid-8.2.37+dfsg.1/doc/kline.txt ircd-hybrid-8.2.38+dfsg.1/doc/kline.txt --- ircd-hybrid-8.2.37+dfsg.1/doc/kline.txt 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/doc/kline.txt 2021-01-17 11:18:41.000000000 +0000 @@ -1,8 +1,8 @@ /* doc/kline.txt - Overview of the remote kline system * - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * - * $Id: kline.txt 9102 2020-01-01 09:58:57Z michael $ + * $Id: kline.txt 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/doc/reference.conf ircd-hybrid-8.2.38+dfsg.1/doc/reference.conf --- ircd-hybrid-8.2.37+dfsg.1/doc/reference.conf 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/doc/reference.conf 2021-01-17 11:18:41.000000000 +0000 @@ -1,9 +1,9 @@ /* * This is an example configuration file for ircd-hybrid * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * - * $Id: reference.conf 9774 2020-12-03 15:50:11Z michael $ + * $Id: reference.conf 9897 2021-01-17 06:18:18Z michael $ */ /* @@ -1114,10 +1114,10 @@ failed_oper_notice = yes; /* - * dots_in_ident: the number of '.' characters permitted in an ident - * reply before the user is rejected. + * specials_in_ident: the number of '-', '_', or '.' characters permitted + * in an ident reply before the user is rejected. */ - dots_in_ident = 2; + specials_in_ident = 2; /* * min_nonwildcard: the minimum number of non-wildcard characters in diff -Nru ircd-hybrid-8.2.37+dfsg.1/doc/resv.txt ircd-hybrid-8.2.38+dfsg.1/doc/resv.txt --- ircd-hybrid-8.2.37+dfsg.1/doc/resv.txt 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/doc/resv.txt 2021-01-17 11:18:41.000000000 +0000 @@ -2,9 +2,9 @@ * doc/resv.txt - Overview of the resv system * Lee Hardy * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * - * $Id: resv.txt 9102 2020-01-01 09:58:57Z michael $ + * $Id: resv.txt 9858 2021-01-01 04:43:42Z michael $ */ RESV diff -Nru ircd-hybrid-8.2.37+dfsg.1/doc/serverhide.txt ircd-hybrid-8.2.38+dfsg.1/doc/serverhide.txt --- ircd-hybrid-8.2.37+dfsg.1/doc/serverhide.txt 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/doc/serverhide.txt 2021-01-17 11:18:41.000000000 +0000 @@ -1,8 +1,8 @@ Server Hide Reference - $Id: serverhide.txt 9102 2020-01-01 09:58:57Z michael $ + $Id: serverhide.txt 9858 2021-01-01 04:43:42Z michael $ - Copyright (c) 2001-2020 ircd-hybrid development team + Copyright (c) 2001-2021 ircd-hybrid development team ---------------------------------------------------------------------- diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/auth.h ircd-hybrid-8.2.38+dfsg.1/include/auth.h --- ircd-hybrid-8.2.37+dfsg.1/include/auth.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/auth.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file auth.h * \brief Interface for DNS and ident lookups. - * \version $Id: auth.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: auth.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_auth_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/channel.h ircd-hybrid-8.2.38+dfsg.1/include/channel.h --- ircd-hybrid-8.2.37+dfsg.1/include/channel.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/channel.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel.h * \brief Responsible for managing channels, members, bans and topics - * \version $Id: channel.h 9597 2020-09-05 10:09:36Z michael $ + * \version $Id: channel.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_channel_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/channel_invite.h ircd-hybrid-8.2.38+dfsg.1/include/channel_invite.h --- ircd-hybrid-8.2.37+dfsg.1/include/channel_invite.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/channel_invite.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel_invite.h * \brief Channel invitation related functions - * \version $Id: channel_invite.h 9368 2020-05-01 15:36:17Z michael $ + * \version $Id: channel_invite.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_channel_invite_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/channel_mode.h ircd-hybrid-8.2.38+dfsg.1/include/channel_mode.h --- ircd-hybrid-8.2.37+dfsg.1/include/channel_mode.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/channel_mode.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel_mode.h * \brief Includes channel mode related definitions and structures. - * \version $Id: channel_mode.h 9552 2020-07-26 07:33:37Z michael $ + * \version $Id: channel_mode.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_channel_mode_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/client.h ircd-hybrid-8.2.38+dfsg.1/include/client.h --- ircd-hybrid-8.2.37+dfsg.1/include/client.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/client.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file client.h * \brief Header including structures, macros and prototypes for client handling - * \version $Id: client.h 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: client.h 9889 2021-01-16 17:03:49Z michael $ */ @@ -423,6 +423,15 @@ }; +struct AcceptItem +{ + dlink_node node; + char *nick; + char *user; + char *host; +}; + + extern struct Client me; extern dlink_list listing_client_list; extern dlink_list global_client_list; @@ -434,11 +443,11 @@ extern bool accept_message(struct Client *, struct Client *); extern unsigned int client_get_idle_time(const struct Client *, const struct Client *); -extern struct split_nuh_item *find_accept(const char *, const char *, - const char *, struct Client *, +extern struct AcceptItem *accept_find(const char *, const char *, + const char *, dlink_list *, int (*)(const char *, const char *)); -extern void del_accept(struct split_nuh_item *, struct Client *); -extern void del_all_accepts(struct Client *); +extern void accept_del(struct AcceptItem *, dlink_list *); +extern void accept_clear_list(dlink_list *); extern void exit_client(struct Client *, const char *); extern void conf_try_ban(struct Client *, int, const char *); extern void check_conf_klines(void); diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/client_svstag.h ircd-hybrid-8.2.38+dfsg.1/include/client_svstag.h --- ircd-hybrid-8.2.37+dfsg.1/include/client_svstag.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/client_svstag.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file client_svstag.h * \brief Controls SVSTAGS. - * \version $Id: client_svstag.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: client_svstag.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_client_svstag_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_class.h ircd-hybrid-8.2.38+dfsg.1/include/conf_class.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_class.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_class.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file * \brief Configuration managment for class{} blocks - * \version $Id: conf_class.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_class.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_cluster.h ircd-hybrid-8.2.38+dfsg.1/include/conf_cluster.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_cluster.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_cluster.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_cluster.h * \brief Implements cluster {} block configuration management. - * \version $Id: conf_cluster.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_cluster.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_cluster_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_db.h ircd-hybrid-8.2.38+dfsg.1/include/conf_db.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_db.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_db.h 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1996-2009 by Andrew Church - * Copyright (c) 2012-2020 ircd-hybrid development team + * Copyright (c) 2012-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file conf_db.h * \brief Includes file utilities for database handling - * \version $Id: conf_db.h 9368 2020-05-01 15:36:17Z michael $ + * \version $Id: conf_db.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_db_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_gecos.h ircd-hybrid-8.2.38+dfsg.1/include/conf_gecos.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_gecos.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_gecos.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1998-2020 ircd-hybrid development team + * Copyright (c) 1998-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_gecos.h * \brief Implements gecos {} block configuration management. - * \version $Id: conf_gecos.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_gecos.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_gecos_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf.h ircd-hybrid-8.2.38+dfsg.1/include/conf.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf.h * \brief A header for the configuration functions. - * \version $Id: conf.h 9749 2020-11-29 16:51:27Z michael $ + * \version $Id: conf.h 9897 2021-01-17 06:18:18Z michael $ */ #ifndef INCLUDED_conf_h @@ -173,7 +173,7 @@ unsigned int dline_min_cidr6; unsigned int kline_min_cidr; unsigned int kline_min_cidr6; - unsigned int dots_in_ident; + unsigned int specials_in_ident; unsigned int failed_oper_notice; unsigned int anti_spam_exit_message_time; unsigned int max_accept; diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_pseudo.h ircd-hybrid-8.2.38+dfsg.1/include/conf_pseudo.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_pseudo.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_pseudo.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2014-2020 ircd-hybrid development team + * Copyright (c) 2014-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_pseudo.h * \brief Handles with pseudo commands/service aliases. - * \version $Id: conf_pseudo.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_pseudo.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_pseudo_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_resv.h ircd-hybrid-8.2.38+dfsg.1/include/conf_resv.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_resv.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_resv.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_resv.h * \brief A header for the RESV functions. - * \version $Id: conf_resv.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_resv.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_resv_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_service.h ircd-hybrid-8.2.38+dfsg.1/include/conf_service.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_service.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_service.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2012-2020 ircd-hybrid development team + * Copyright (c) 2012-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_service.h * \brief Implements service {} block configuration management. - * \version $Id: conf_service.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_service.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_service_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/conf_shared.h ircd-hybrid-8.2.38+dfsg.1/include/conf_shared.h --- ircd-hybrid-8.2.37+dfsg.1/include/conf_shared.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/conf_shared.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_shared.h * \brief Implements shared {} block configuration management. - * \version $Id: conf_shared.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_shared.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_conf_shared_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/dbuf.h ircd-hybrid-8.2.38+dfsg.1/include/dbuf.h --- ircd-hybrid-8.2.37+dfsg.1/include/dbuf.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/dbuf.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file dbuf.h * \brief A header for the dynamic buffers functions. - * \version $Id: dbuf.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: dbuf.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_dbuf_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/defaults.h ircd-hybrid-8.2.38+dfsg.1/include/defaults.h --- ircd-hybrid-8.2.37+dfsg.1/include/defaults.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/defaults.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file defaults.h * \brief The ircd defaults header for values and paths. - * \version $Id: defaults.h 9691 2020-10-31 19:04:39Z michael $ + * \version $Id: defaults.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_defaults_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/event.h ircd-hybrid-8.2.38+dfsg.1/include/event.h --- ircd-hybrid-8.2.37+dfsg.1/include/event.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/event.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file event.h * \brief Timer based event execution - * \version $Id: event.h 9341 2020-04-19 13:18:53Z michael $ + * \version $Id: event.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_event_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/extban.h ircd-hybrid-8.2.38+dfsg.1/include/extban.h --- ircd-hybrid-8.2.37+dfsg.1/include/extban.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/extban.h 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban.h * \brief Implements extended channel bans. - * \version $Id: extban.h 9820 2020-12-13 11:11:08Z michael $ + * \version $Id: extban.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_extban_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/fdlist.h ircd-hybrid-8.2.38+dfsg.1/include/fdlist.h --- ircd-hybrid-8.2.37+dfsg.1/include/fdlist.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/fdlist.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file fdlist.h * \brief The file descriptor list header. - * \version $Id: fdlist.h 9156 2020-01-13 14:51:47Z michael $ + * \version $Id: fdlist.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_fdlist_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/hash.h ircd-hybrid-8.2.38+dfsg.1/include/hash.h --- ircd-hybrid-8.2.37+dfsg.1/include/hash.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/hash.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file hash.h * \brief A header for the ircd hashtable code. - * \version $Id: hash.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: hash.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_hash_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/hostmask.h ircd-hybrid-8.2.38+dfsg.1/include/hostmask.h --- ircd-hybrid-8.2.37+dfsg.1/include/hostmask.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/hostmask.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file hostmask.h * \brief A header for the hostmask code. - * \version $Id: hostmask.h 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: hostmask.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_hostmask_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/id.h ircd-hybrid-8.2.38+dfsg.1/include/id.h --- ircd-hybrid-8.2.37+dfsg.1/include/id.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/id.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file id.h * \brief Contains functions pertaining to SID/UID generation. - * \version $Id: id.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: id.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_id_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/ipcache.h ircd-hybrid-8.2.38+dfsg.1/include/ipcache.h --- ircd-hybrid-8.2.37+dfsg.1/include/ipcache.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/ipcache.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ipcache.h * \brief Routines to count connections from particular IP addresses. - * \version $Id: ipcache.h 9334 2020-04-18 16:18:49Z michael $ + * \version $Id: ipcache.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_ipcache_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/ircd_defs.h ircd-hybrid-8.2.38+dfsg.1/include/ircd_defs.h --- ircd-hybrid-8.2.37+dfsg.1/include/ircd_defs.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/ircd_defs.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd_defs.h * \brief A header for ircd global definitions. - * \version $Id: ircd_defs.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: ircd_defs.h 9858 2021-01-01 04:43:42Z michael $ */ /* ircd_defs.h - Global size definitions for record entries used diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/ircd_getopt.h ircd-hybrid-8.2.38+dfsg.1/include/ircd_getopt.h --- ircd-hybrid-8.2.37+dfsg.1/include/ircd_getopt.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/ircd_getopt.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd_getopt.h * \brief A header for the getopt() command line option calls. - * \version $Id: ircd_getopt.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: ircd_getopt.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_ircd_getopt_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/ircd.h ircd-hybrid-8.2.38+dfsg.1/include/ircd.h --- ircd-hybrid-8.2.37+dfsg.1/include/ircd.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/ircd.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd.h * \brief A header for the ircd startup routines. - * \version $Id: ircd.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: ircd.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/ircd_signal.h ircd-hybrid-8.2.38+dfsg.1/include/ircd_signal.h --- ircd-hybrid-8.2.37+dfsg.1/include/ircd_signal.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/ircd_signal.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd_signal.h * \brief A header for ircd signals. - * \version $Id: ircd_signal.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: ircd_signal.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_ircd_signal_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/irc_string.h ircd-hybrid-8.2.38+dfsg.1/include/irc_string.h --- ircd-hybrid-8.2.37+dfsg.1/include/irc_string.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/irc_string.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1999-2020 ircd-hybrid development team + * Copyright (c) 1999-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file irc_string.h * \brief A header for the ircd string functions. - * \version $Id: irc_string.h 9330 2020-04-11 12:55:09Z michael $ + * \version $Id: irc_string.h 9876 2021-01-09 14:19:29Z michael $ */ #ifndef INCLUDED_irc_string_h @@ -99,12 +99,14 @@ SERV_C = 1 << 13, EOL_C = 1 << 14, MWILD_C = 1 << 15, - VCHAN_C = 1 << 16 + VCHAN_C = 1 << 16, + USER2_C = 1 << 17, }; #define IsVisibleChanChar(c) (CharAttrs[(unsigned char)(c)] & VCHAN_C) #define IsHostChar(c) (CharAttrs[(unsigned char)(c)] & HOST_C) #define IsUserChar(c) (CharAttrs[(unsigned char)(c)] & USER_C) +#define IsUser2Char(c) (CharAttrs[(unsigned char)(c)] & USER2_C) #define IsChanPrefix(c) (CharAttrs[(unsigned char)(c)] & CHANPFX_C) #define IsChanChar(c) (CharAttrs[(unsigned char)(c)] & CHAN_C) #define IsKWildChar(c) (CharAttrs[(unsigned char)(c)] & KWILD_C) diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/isupport.h ircd-hybrid-8.2.38+dfsg.1/include/isupport.h --- ircd-hybrid-8.2.37+dfsg.1/include/isupport.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/isupport.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file isupport.h * \brief Contains functions pertaining to RPL_ISUPPORT. - * \version $Id: isupport.h 9368 2020-05-01 15:36:17Z michael $ + * \version $Id: isupport.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_isupport_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/listener.h ircd-hybrid-8.2.38+dfsg.1/include/listener.h --- ircd-hybrid-8.2.37+dfsg.1/include/listener.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/listener.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file listener.h * \brief A header for the listener code. - * \version $Id: listener.h 9609 2020-09-06 07:28:07Z michael $ + * \version $Id: listener.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_listener_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/list.h ircd-hybrid-8.2.38+dfsg.1/include/list.h --- ircd-hybrid-8.2.37+dfsg.1/include/list.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/list.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file list.h * \brief A header for the list manipulation routines. - * \version $Id: list.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: list.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_list_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/log.h ircd-hybrid-8.2.38+dfsg.1/include/log.h --- ircd-hybrid-8.2.37+dfsg.1/include/log.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/log.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file log.h * \brief A header for the logger functions. - * \version $Id: log.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: log.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_log_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/memory.h ircd-hybrid-8.2.38+dfsg.1/include/memory.h --- ircd-hybrid-8.2.37+dfsg.1/include/memory.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/memory.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file memory.h * \brief A header for the memory functions. - * \version $Id: memory.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: memory.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_memory_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/misc.h ircd-hybrid-8.2.38+dfsg.1/include/misc.h --- ircd-hybrid-8.2.37+dfsg.1/include/misc.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/misc.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file misc.h * \brief A header for the miscellaneous functions. - * \version $Id: misc.h 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: misc.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_misc_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/modules.h ircd-hybrid-8.2.38+dfsg.1/include/modules.h --- ircd-hybrid-8.2.37+dfsg.1/include/modules.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/modules.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file modules.h * \brief A header for the modules functions. - * \version $Id: modules.h 9368 2020-05-01 15:36:17Z michael $ + * \version $Id: modules.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_modules_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/monitor.h ircd-hybrid-8.2.38+dfsg.1/include/monitor.h --- ircd-hybrid-8.2.37+dfsg.1/include/monitor.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/monitor.h 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1997 Jukka Santala (Donwulff) - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file monitor.h * \brief Header including structures and prototypes for MONITOR support - * \version $Id: monitor.h 9826 2020-12-19 16:21:50Z michael $ + * \version $Id: monitor.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_monitor_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/motd.h ircd-hybrid-8.2.38+dfsg.1/include/motd.h --- ircd-hybrid-8.2.37+dfsg.1/include/motd.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/motd.h 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2000 Kevin L. Mitchell - * Copyright (c) 2013-2020 ircd-hybrid development team + * Copyright (c) 2013-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file motd.h * \brief Message-of-the-day manipulation implementation. - * \version $Id: motd.h 9368 2020-05-01 15:36:17Z michael $ + * \version $Id: motd.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_motd_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/numeric.h ircd-hybrid-8.2.38+dfsg.1/include/numeric.h --- ircd-hybrid-8.2.37+dfsg.1/include/numeric.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/numeric.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file numeric.h * \brief Declarations of numeric replies. - * \version $Id: numeric.h 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: numeric.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_numeric_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/packet.h ircd-hybrid-8.2.38+dfsg.1/include/packet.h --- ircd-hybrid-8.2.37+dfsg.1/include/packet.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/packet.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file packet.h * \brief A header for the packet functions. - * \version $Id: packet.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: packet.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_packet_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/parse.h ircd-hybrid-8.2.38+dfsg.1/include/parse.h --- ircd-hybrid-8.2.37+dfsg.1/include/parse.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/parse.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file parse.h * \brief A header for the message parser. - * \version $Id: parse.h 9383 2020-05-10 08:58:47Z michael $ + * \version $Id: parse.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_parse_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/patchlevel.h ircd-hybrid-8.2.38+dfsg.1/include/patchlevel.h --- ircd-hybrid-8.2.37+dfsg.1/include/patchlevel.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/patchlevel.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,9 +21,9 @@ /*! \file patchlevel.h * \brief A header defining the patchlevel. - * \version $Id: patchlevel.h 9850 2020-12-25 15:49:32Z michael $ + * \version $Id: patchlevel.h 9899 2021-01-17 10:57:27Z michael $ */ #ifndef PATCHLEVEL -#define PATCHLEVEL "hybrid-8.2.37" +#define PATCHLEVEL "hybrid-8.2.38" #endif diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/res.h ircd-hybrid-8.2.38+dfsg.1/include/res.h --- ircd-hybrid-8.2.37+dfsg.1/include/res.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/res.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file res.h * \brief ircd resolver functions - * \version $Id: res.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: res.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_res_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/restart.h ircd-hybrid-8.2.38+dfsg.1/include/restart.h --- ircd-hybrid-8.2.37+dfsg.1/include/restart.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/restart.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file restart.h * \brief A header for the restart/die functions. - * \version $Id: restart.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: restart.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_restart_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/s_bsd.h ircd-hybrid-8.2.38+dfsg.1/include/s_bsd.h --- ircd-hybrid-8.2.37+dfsg.1/include/s_bsd.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/s_bsd.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd.h * \brief A header for the network subsystem. - * \version $Id: s_bsd.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: s_bsd.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_s_bsd_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/send.h ircd-hybrid-8.2.38+dfsg.1/include/send.h --- ircd-hybrid-8.2.37+dfsg.1/include/send.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/send.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file send.h * \brief A header for the message sending functions. - * \version $Id: send.h 9817 2020-12-11 19:09:14Z michael $ + * \version $Id: send.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_send_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/server_capab.h ircd-hybrid-8.2.38+dfsg.1/include/server_capab.h --- ircd-hybrid-8.2.37+dfsg.1/include/server_capab.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/server_capab.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file server_capab.h * \brief A header for the server CAPAB functions. - * \version $Id: server_capab.h 9789 2020-12-06 18:38:22Z michael $ + * \version $Id: server_capab.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_server_capab_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/server.h ircd-hybrid-8.2.38+dfsg.1/include/server.h --- ircd-hybrid-8.2.37+dfsg.1/include/server.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/server.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file server.h * \brief A header for the server functions. - * \version $Id: server.h 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: server.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_server_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/tls_gnutls.h ircd-hybrid-8.2.38+dfsg.1/include/tls_gnutls.h --- ircd-hybrid-8.2.37+dfsg.1/include/tls_gnutls.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/tls_gnutls.h 2021-01-17 11:18:41.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_gnutls.h * \brief GnuTLS-specific TLS types - * \version $Id: tls_gnutls.h 9194 2020-01-21 15:56:22Z michael $ + * \version $Id: tls_gnutls.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/tls.h ircd-hybrid-8.2.38+dfsg.1/include/tls.h --- ircd-hybrid-8.2.37+dfsg.1/include/tls.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/tls.h 2021-01-17 11:18:41.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls.h * \brief A header for generic TLS functions - * \version $Id: tls.h 9223 2020-01-26 11:35:22Z michael $ + * \version $Id: tls.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_tls_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/tls_none.h ircd-hybrid-8.2.38+dfsg.1/include/tls_none.h --- ircd-hybrid-8.2.37+dfsg.1/include/tls_none.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/tls_none.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file tls_none.h * \brief A header for builds that do not support a TLS library - * \version $Id: tls_none.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: tls_none.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/tls_openssl.h ircd-hybrid-8.2.38+dfsg.1/include/tls_openssl.h --- ircd-hybrid-8.2.37+dfsg.1/include/tls_openssl.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/tls_openssl.h 2021-01-17 11:18:41.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_openssl.h * \brief OpenSSL-specific TLS types - * \version $Id: tls_openssl.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: tls_openssl.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/tls_wolfssl.h ircd-hybrid-8.2.38+dfsg.1/include/tls_wolfssl.h --- ircd-hybrid-8.2.37+dfsg.1/include/tls_wolfssl.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/tls_wolfssl.h 2021-01-17 11:18:41.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_wolfssl.h * \brief wolfSSL-specific TLS types - * \version $Id: tls_wolfssl.h 9210 2020-01-25 16:58:45Z michael $ + * \version $Id: tls_wolfssl.h 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/user.h ircd-hybrid-8.2.38+dfsg.1/include/user.h --- ircd-hybrid-8.2.37+dfsg.1/include/user.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/user.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file user.h * \brief A header for the user functions. - * \version $Id: user.h 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: user.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_user_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/include/whowas.h ircd-hybrid-8.2.38+dfsg.1/include/whowas.h --- ircd-hybrid-8.2.37+dfsg.1/include/whowas.h 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/include/whowas.h 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file whowas.h * \brief A header for the whowas functions. - * \version $Id: whowas.h 9843 2020-12-25 13:51:05Z michael $ + * \version $Id: whowas.h 9858 2021-01-01 04:43:42Z michael $ */ #ifndef INCLUDED_whowas_h diff -Nru ircd-hybrid-8.2.37+dfsg.1/INSTALL ircd-hybrid-8.2.38+dfsg.1/INSTALL --- ircd-hybrid-8.2.37+dfsg.1/INSTALL 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/INSTALL 2021-01-17 11:18:41.000000000 +0000 @@ -1,8 +1,8 @@ Hybrid INSTALL Document - $Id: INSTALL 9206 2020-01-25 15:43:05Z michael $ + $Id: INSTALL 9858 2021-01-01 04:43:42Z michael $ - Copyright (c) 1997-2020 ircd-hybrid development team + Copyright (c) 1997-2021 ircd-hybrid development team ---------------------------------------------------------------------- diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_bmask.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_bmask.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_bmask.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_bmask.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_bmask.c * \brief Includes required functions for processing the BMASK command. - * \version $Id: m_bmask.c 9430 2020-06-24 08:36:05Z michael $ + * \version $Id: m_bmask.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -173,7 +173,7 @@ struct module module_entry = { - .version = "$Revision: 9430 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_die.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_die.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_die.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_die.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_die.c * \brief Includes required functions for processing the DIE command. - * \version $Id: m_die.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_die.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -93,7 +93,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_error.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_error.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_error.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_error.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_error.c * \brief Includes required functions for processing the ERROR command. - * \version $Id: m_error.c 9382 2020-05-09 22:36:27Z michael $ + * \version $Id: m_error.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -124,7 +124,7 @@ struct module module_entry = { - .version = "$Revision: 9382 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_join.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_join.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_join.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_join.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_join.c * \brief Includes required functions for processing the JOIN command. - * \version $Id: m_join.c 9597 2020-09-05 10:09:36Z michael $ + * \version $Id: m_join.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -309,7 +309,7 @@ struct module module_entry = { - .version = "$Revision: 9597 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_kick.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_kick.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_kick.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_kick.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_kick.c * \brief Includes required functions for processing the KICK command. - * \version $Id: m_kick.c 9600 2020-09-05 10:14:35Z michael $ + * \version $Id: m_kick.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -187,7 +187,7 @@ struct module module_entry = { - .version = "$Revision: 9600 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_kill.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_kill.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_kill.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_kill.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_kill.c * \brief Includes required functions for processing the KILL command. - * \version $Id: m_kill.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_kill.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -260,7 +260,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_message.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_message.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_message.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_message.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_message.c * \brief Includes required functions for processing the PRIVMSG/NOTICE command. - * \version $Id: m_message.c 9712 2020-11-14 19:13:46Z michael $ + * \version $Id: m_message.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -637,7 +637,7 @@ struct module module_entry = { - .version = "$Revision: 9712 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_mode.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_mode.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_mode.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_mode.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_mode.c * \brief Includes required functions for processing the MODE command. - * \version $Id: m_mode.c 9547 2020-07-18 16:33:47Z michael $ + * \version $Id: m_mode.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -252,7 +252,7 @@ struct module module_entry = { - .version = "$Revision: 9547 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_nick.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_nick.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_nick.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_nick.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_nick.c * \brief Includes required functions for processing the NICK command. - * \version $Id: m_nick.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_nick.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -342,17 +342,14 @@ client_p->hopcount = atoi(parv[2]); client_p->tsinfo = strtoumax(parv[3], NULL, 10); - /* TBR: compatibility mode */ - const int does_rhost = parc == 12; - strlcpy(client_p->name, parv[1], sizeof(client_p->name)); strlcpy(client_p->username, parv[5], sizeof(client_p->username)); strlcpy(client_p->host, parv[6], sizeof(client_p->host)); - strlcpy(client_p->realhost, parv[6 + does_rhost], sizeof(client_p->realhost)); - strlcpy(client_p->sockhost, parv[7 + does_rhost], sizeof(client_p->sockhost)); - strlcpy(client_p->id, parv[8 + does_rhost], sizeof(client_p->id)); - strlcpy(client_p->account, parv[9 + does_rhost], sizeof(client_p->account)); - strlcpy(client_p->info, parv[parc - 1], sizeof(client_p->info)); + strlcpy(client_p->realhost, parv[7], sizeof(client_p->realhost)); + strlcpy(client_p->sockhost, parv[8], sizeof(client_p->sockhost)); + strlcpy(client_p->id, parv[9], sizeof(client_p->id)); + strlcpy(client_p->account, parv[10], sizeof(client_p->account)); + strlcpy(client_p->info, parv[11], sizeof(client_p->info)); struct addrinfo hints, *res; memset(&hints, 0, sizeof(hints)); @@ -419,9 +416,7 @@ perform_uid_introduction_collides(struct Client *source_p, struct Client *target_p, int parc, char *parv[]) { - /* TBR: compatibility mode */ - const int does_rhost = parc == 12; - const char *uid = parv[8 + does_rhost]; + const char *uid = parv[9]; uintmax_t newts = strtoumax(parv[3], NULL, 10); assert(IsServer(source_p)); @@ -452,7 +447,7 @@ /* The timestamps are different */ bool sameuser = irccmp(target_p->username, parv[5]) == 0 && - irccmp(target_p->sockhost, parv[7 + does_rhost]) == 0; + irccmp(target_p->sockhost, parv[8]) == 0; /* * If the users are the same (loaded a client on a different server) @@ -798,17 +793,11 @@ static void ms_uid(struct Client *source_p, int parc, char *parv[]) { -/* TBR: compatibility mode */ - const int does_rhost = parc == 12; - if (check_clean_nick(source_p, parv[1]) == false || check_clean_user(source_p, parv[1], parv[5]) == false || check_clean_host(source_p, parv[1], parv[6]) == false || - check_clean_uid(source_p, parv[1], parv[8 + does_rhost]) == false) - return; - - /* TBR: compatibility mode */ - if (does_rhost && check_clean_host(source_p, parv[1], parv[7]) == false) + check_clean_host(source_p, parv[1], parv[7]) == false || + check_clean_uid(source_p, parv[1], parv[9]) == false) return; /* @@ -816,7 +805,7 @@ * This may generate 401's, but it ensures that both clients always * go, even if the other server refuses to do the right thing. */ - struct Client *target_p = hash_find_id(parv[8 + does_rhost]); + struct Client *target_p = hash_find_id(parv[9]); if (target_p) { sendto_realops_flags(UMODE_SERVNOTICE, L_ALL, SEND_NOTICE, @@ -860,7 +849,7 @@ .cmd = "UID", .handlers[UNREGISTERED_HANDLER] = { .handler = m_ignore }, .handlers[CLIENT_HANDLER] = { .handler = m_ignore }, - .handlers[SERVER_HANDLER] = { .handler = ms_uid, .args_min = 11 }, + .handlers[SERVER_HANDLER] = { .handler = ms_uid, .args_min = 12 }, .handlers[ENCAP_HANDLER] = { .handler = m_ignore }, .handlers[OPER_HANDLER] = { .handler = m_ignore } }; @@ -881,7 +870,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_part.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_part.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_part.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_part.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_part.c * \brief Includes required functions for processing the PART command. - * \version $Id: m_part.c 9383 2020-05-10 08:58:47Z michael $ + * \version $Id: m_part.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -81,7 +81,7 @@ struct module module_entry = { - .version = "$Revision: 9383 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_quit.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_quit.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_quit.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_quit.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_quit.c * \brief Includes required functions for processing the QUIT command. - * \version $Id: m_quit.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_quit.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -104,7 +104,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_server.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_server.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_server.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_server.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_server.c * \brief Includes required functions for processing the SERVER/SID command. - * \version $Id: m_server.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_server.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -131,23 +131,13 @@ buf[1] = '\0'; } - /* TBR: compatibility mode */ - if (IsCapable(client_p, CAPAB_RHOST)) - sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", - target_p->servptr->id, - target_p->name, target_p->hopcount + 1, - target_p->tsinfo, - buf, target_p->username, target_p->host, target_p->realhost, - target_p->sockhost, target_p->id, - target_p->account, target_p->info); - else - sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s :%s", - target_p->servptr->id, - target_p->name, target_p->hopcount + 1, - target_p->tsinfo, - buf, target_p->username, target_p->host, - target_p->sockhost, target_p->id, - target_p->account, target_p->info); + sendto_one(client_p, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", + target_p->servptr->id, + target_p->name, target_p->hopcount + 1, + target_p->tsinfo, + buf, target_p->username, target_p->host, target_p->realhost, + target_p->sockhost, target_p->id, + target_p->account, target_p->info); if (!EmptyString(target_p->tls_certfp)) sendto_one(client_p, ":%s CERTFP %s", target_p->id, target_p->tls_certfp); @@ -230,12 +220,12 @@ { const struct MaskItem *const conf = client_p->connection->confs.head->data; - sendto_one(client_p, "PASS %s TS %u %s", conf->spasswd, TS_CURRENT, me.id); + sendto_one(client_p, "PASS %s", conf->spasswd); sendto_one(client_p, "CAPAB :%s", capab_get(NULL)); - sendto_one(client_p, "SERVER %s 1 :%s%s", - me.name, ConfigServerHide.hidden ? "(H) " : "", me.info); + sendto_one(client_p, "SERVER %s 1 %s +%s :%s", + me.name, me.id, ConfigServerHide.hidden ? "h" : "", me.info); } sendto_one(client_p, ":%s SVINFO %u %u 0 :%ju", me.id, TS_CURRENT, TS_MINIMUM, @@ -309,9 +299,9 @@ fd_note(client_p->connection->fd, "Server: %s", client_p->name); - sendto_server(client_p, 0, 0, ":%s SID %s 2 %s :%s%s", + sendto_server(client_p, 0, 0, ":%s SID %s 2 %s +%s :%s", me.id, client_p->name, client_p->id, - IsHidden(client_p) ? "(H) " : "", client_p->info); + IsHidden(client_p) ? "h" : "", client_p->info); /* * Pass on my client information to the new server @@ -336,9 +326,9 @@ if (IsMe(target_p) || target_p->from == client_p) continue; - sendto_one(client_p, ":%s SID %s %u %s :%s%s", + sendto_one(client_p, ":%s SID %s %u %s +%s :%s", target_p->servptr->id, target_p->name, target_p->hopcount+1, - target_p->id, IsHidden(target_p) ? "(H) " : "", + target_p->id, IsHidden(target_p) ? "h" : "", target_p->info); } @@ -783,9 +773,9 @@ hash_add_client(target_p); hash_add_id(target_p); - sendto_server(source_p->from, 0, 0, ":%s SID %s %u %s :%s%s", + sendto_server(source_p->from, 0, 0, ":%s SID %s %u %s +%s :%s", source_p->id, target_p->name, target_p->hopcount + 1, - target_p->id, IsHidden(target_p) ? "(H) " : "", target_p->info); + target_p->id, IsHidden(target_p) ? "h" : "", target_p->info); sendto_realops_flags(UMODE_EXTERNAL, L_ALL, SEND_NOTICE, "Server %s being introduced by %s", target_p->name, source_p->name); @@ -827,7 +817,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_sjoin.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_sjoin.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_sjoin.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_sjoin.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_sjoin.c * \brief Includes required functions for processing the SJOIN command. - * \version $Id: m_sjoin.c 9597 2020-09-05 10:09:36Z michael $ + * \version $Id: m_sjoin.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -669,7 +669,7 @@ struct module module_entry = { - .version = "$Revision: 9597 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_squit.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_squit.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_squit.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_squit.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_squit.c * \brief Includes required functions for processing the SQUIT command. - * \version $Id: m_squit.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_squit.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -208,7 +208,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/core/m_tmode.c ircd-hybrid-8.2.38+dfsg.1/modules/core/m_tmode.c --- ircd-hybrid-8.2.37+dfsg.1/modules/core/m_tmode.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/core/m_tmode.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_tmode.c * \brief Includes required functions for processing the TMODE command. - * \version $Id: m_tmode.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_tmode.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -91,7 +91,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_core = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/extra/m_opme.c ircd-hybrid-8.2.38+dfsg.1/modules/extra/m_opme.c --- ircd-hybrid-8.2.37+dfsg.1/modules/extra/m_opme.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/extra/m_opme.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2014-2020 ircd-hybrid development team + * Copyright (c) 2014-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_opme.c * \brief Includes required functions for processing the OPME command. - * \version $Id: m_opme.c 9456 2020-06-30 17:33:43Z michael $ + * \version $Id: m_opme.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -127,7 +127,7 @@ struct module module_entry = { - .version = "$Revision: 9456 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_accept.c ircd-hybrid-8.2.38+dfsg.1/modules/m_accept.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_accept.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_accept.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_accept.c * \brief Includes required functions for processing the ACCEPT command. - * \version $Id: m_accept.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_accept.c 9889 2021-01-16 17:03:49Z michael $ */ #include "stdinc.h" @@ -55,10 +55,10 @@ DLINK_FOREACH(node, source_p->connection->acceptlist.head) { - const struct split_nuh_item *accept_p = node->data; - size_t masklen = strlen(accept_p->nickptr) + - strlen(accept_p->userptr) + - strlen(accept_p->hostptr) + 3; /* +3 for ! + @ + space */ + const struct AcceptItem *const accept = node->data; + size_t masklen = strlen(accept->nick) + + strlen(accept->user) + + strlen(accept->host) + 3; /* +3 for ! + @ + space */ if ((bufptr - buf) + masklen + len > sizeof(buf)) { @@ -68,9 +68,9 @@ } bufptr += snprintf(bufptr, sizeof(buf) - (bufptr - buf), "%s!%s@%s ", - accept_p->nickptr, - accept_p->userptr, - accept_p->hostptr); + accept->nick, + accept->user, + accept->host); } if (bufptr != buf) @@ -89,15 +89,17 @@ * \param source_p The actual Client the new accept is added to. */ static void -add_accept(const struct split_nuh_item *nuh, struct Client *source_p) +accept_add(const char *nick, + const char *user, + const char *host, struct Client *source_p) { - struct split_nuh_item *accept_p = xcalloc(sizeof(*accept_p)); + struct AcceptItem *accept = xcalloc(sizeof(*accept)); - accept_p->nickptr = xstrdup(nuh->nickptr); - accept_p->userptr = xstrdup(nuh->userptr); - accept_p->hostptr = xstrdup(nuh->hostptr); + accept->nick = xstrdup(nick); + accept->user = xstrdup(user); + accept->host = xstrdup(host); - dlinkAdd(accept_p, &accept_p->node, &source_p->connection->acceptlist); + dlinkAdd(accept, &accept->node, &source_p->connection->acceptlist); list_accepts(source_p); } @@ -117,7 +119,6 @@ m_accept(struct Client *source_p, int parc, char *parv[]) { struct split_nuh_item nuh; - struct split_nuh_item *accept_p = NULL; char nick[NICKLEN + 1]; char user[USERLEN + 1]; char host[HOSTLEN + 1]; @@ -146,13 +147,15 @@ split_nuh(&nuh); - if ((accept_p = find_accept(nick, user, host, source_p, irccmp)) == NULL) + struct AcceptItem *accept = + accept_find(nick, user, host, &source_p->connection->acceptlist, irccmp); + if (accept == NULL) { sendto_one_numeric(source_p, &me, ERR_ACCEPTNOT, nick, user, host); continue; } - del_accept(accept_p, source_p); + accept_del(accept, &source_p->connection->acceptlist); } else if (*mask) { @@ -173,13 +176,15 @@ split_nuh(&nuh); - if ((accept_p = find_accept(nick, user, host, source_p, irccmp))) + struct AcceptItem *accept = + accept_find(nick, user, host, &source_p->connection->acceptlist, irccmp); + if (accept) { sendto_one_numeric(source_p, &me, ERR_ACCEPTEXIST, nick, user, host); continue; } - add_accept(&nuh, source_p); + accept_add(nick, user, host, source_p); } } } @@ -208,7 +213,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9889 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_admin.c ircd-hybrid-8.2.38+dfsg.1/modules/m_admin.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_admin.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_admin.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_admin.c * \brief Includes required functions for processing the ADMIN command. - * \version $Id: m_admin.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_admin.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -133,7 +133,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_away.c ircd-hybrid-8.2.38+dfsg.1/modules/m_away.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_away.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_away.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_away.c * \brief Includes required functions for processing the AWAY command. - * \version $Id: m_away.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_away.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -138,7 +138,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_capab.c ircd-hybrid-8.2.38+dfsg.1/modules/m_capab.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_capab.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_capab.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1998-2020 ircd-hybrid development team + * Copyright (c) 1998-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_capab.c * \brief Includes required functions for processing the CAPAB command. - * \version $Id: m_capab.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: m_capab.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -82,7 +82,7 @@ struct module module_entry = { - .version = "$Revision: 9761 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_cap.c ircd-hybrid-8.2.38+dfsg.1/modules/m_cap.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_cap.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_cap.c 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2004 Kevin L. Mitchell - * Copyright (c) 2006-2020 ircd-hybrid development team + * Copyright (c) 2006-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file m_cap.c * \brief Includes required functions for processing the CAP command. - * \version $Id: m_cap.c 9817 2020-12-11 19:09:14Z michael $ + * \version $Id: m_cap.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -354,7 +354,7 @@ struct module module_entry = { - .version = "$Revision: 9817 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_resident = true /* XXX for now until caps are completely modular */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_certfp.c ircd-hybrid-8.2.38+dfsg.1/modules/m_certfp.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_certfp.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_certfp.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2013-2020 ircd-hybrid development team + * Copyright (c) 2013-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_certfp.c * \brief Includes required functions for processing the CERTFP command. - * \version $Id: m_certfp.c 9409 2020-05-31 09:13:44Z michael $ + * \version $Id: m_certfp.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -81,7 +81,7 @@ struct module module_entry = { - .version = "$Revision: 9409 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_close.c ircd-hybrid-8.2.38+dfsg.1/modules/m_close.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_close.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_close.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_close.c * \brief Includes required functions for processing the CLOSE command. - * \version $Id: m_close.c 9467 2020-07-01 12:21:05Z michael $ + * \version $Id: m_close.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -96,7 +96,7 @@ struct module module_entry = { - .version = "$Revision: 9467 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_connect.c ircd-hybrid-8.2.38+dfsg.1/modules/m_connect.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_connect.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_connect.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_connect.c * \brief Includes required functions for processing the CONNECT command. - * \version $Id: m_connect.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_connect.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -223,7 +223,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_dline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_dline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_dline.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_dline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_dline.c * \brief Includes required functions for processing the DLINE command. - * \version $Id: m_dline.c 9607 2020-09-06 06:33:33Z michael $ + * \version $Id: m_dline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -271,7 +271,7 @@ struct module module_entry = { - .version = "$Revision: 9607 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_encap.c ircd-hybrid-8.2.38+dfsg.1/modules/m_encap.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_encap.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_encap.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2003-2020 ircd-hybrid development team + * Copyright (c) 2003-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_encap.c * \brief Includes required functions for processing the ENCAP command. - * \version $Id: m_encap.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: m_encap.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -116,7 +116,7 @@ struct module module_entry = { - .version = "$Revision: 9761 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_eob.c ircd-hybrid-8.2.38+dfsg.1/modules/m_eob.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_eob.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_eob.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_eob.c * \brief Includes required functions for processing the EOB command. - * \version $Id: m_eob.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_eob.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -81,7 +81,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_etrace.c ircd-hybrid-8.2.38+dfsg.1/modules/m_etrace.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_etrace.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_etrace.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2004-2020 ircd-hybrid development team + * Copyright (c) 2004-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_etrace.c * \brief Includes required functions for processing the ETRACE command. - * \version $Id: m_etrace.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_etrace.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -153,7 +153,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_globops.c ircd-hybrid-8.2.38+dfsg.1/modules/m_globops.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_globops.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_globops.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2011-2020 ircd-hybrid development team + * Copyright (c) 2011-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_globops.c * \brief Includes required functions for processing the GLOBOPS command. - * \version $Id: m_globops.c 9388 2020-05-10 09:46:41Z michael $ + * \version $Id: m_globops.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -107,7 +107,7 @@ struct module module_entry = { - .version = "$Revision: 9388 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_hash.c ircd-hybrid-8.2.38+dfsg.1/modules/m_hash.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_hash.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_hash.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_hash.c * \brief Includes required functions for processing the HASH command. - * \version $Id: m_hash.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_hash.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -144,7 +144,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_help.c ircd-hybrid-8.2.38+dfsg.1/modules/m_help.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_help.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_help.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1999-2020 ircd-hybrid development team + * Copyright (c) 1999-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_help.c * \brief Includes required functions for processing the HELP command. - * \version $Id: m_help.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_help.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -178,7 +178,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_info.c ircd-hybrid-8.2.38+dfsg.1/modules/m_info.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_info.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_info.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_info.c * \brief Includes required functions for processing the INFO command. - * \version $Id: m_info.c 9749 2020-11-29 16:51:27Z michael $ + * \version $Id: m_info.c 9897 2021-01-17 06:18:18Z michael $ */ #include "stdinc.h" @@ -362,10 +362,10 @@ "Inform opers if someone tries to /oper with the wrong credentials" }, { - "dots_in_ident", + "specials_in_ident", OUTPUT_DECIMAL, - &ConfigGeneral.dots_in_ident, - "Number of permissable dots in an ident" + &ConfigGeneral.specials_in_ident, + "Number of permissable '-', '_', or '.' characters in an ident" }, { "min_nonwildcard", @@ -556,7 +556,7 @@ "ircd-hybrid --", "Based on the original code written by Jarkko Oikarinen", "Copyright (c) 1988-1991 University of Oulu, Computing Center", - "Copyright (c) 1997-2020 ircd-hybrid development team", + "Copyright (c) 1997-2021 ircd-hybrid development team", "", "This program is free software; you can redistribute it and/or", "modify it under the terms of the GNU General Public License as", @@ -822,7 +822,7 @@ struct module module_entry = { - .version = "$Revision: 9749 $", + .version = "$Revision: 9897 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_invite.c ircd-hybrid-8.2.38+dfsg.1/modules/m_invite.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_invite.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_invite.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_invite.c * \brief Includes required functions for processing the INVITE command. - * \version $Id: m_invite.c 9795 2020-12-07 21:58:24Z michael $ + * \version $Id: m_invite.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -243,7 +243,7 @@ struct module module_entry = { - .version = "$Revision: 9795 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_ison.c ircd-hybrid-8.2.38+dfsg.1/modules/m_ison.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_ison.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_ison.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_ison.c * \brief Includes required functions for processing the ISON command. - * \version $Id: m_ison.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_ison.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -99,7 +99,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_kline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_kline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_kline.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_kline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_kline.c * \brief Includes required functions for processing the KLINE command. - * \version $Id: m_kline.c 9607 2020-09-06 06:33:33Z michael $ + * \version $Id: m_kline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -289,7 +289,7 @@ struct module module_entry = { - .version = "$Revision: 9607 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_knock.c ircd-hybrid-8.2.38+dfsg.1/modules/m_knock.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_knock.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_knock.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1998-2020 ircd-hybrid development team + * Copyright (c) 1998-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_knock.c * \brief Includes required functions for processing the KNOCK command. - * \version $Id: m_knock.c 9555 2020-07-26 07:44:30Z michael $ + * \version $Id: m_knock.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -158,7 +158,7 @@ struct module module_entry = { - .version = "$Revision: 9555 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_links.c ircd-hybrid-8.2.38+dfsg.1/modules/m_links.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_links.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_links.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_links.c * \brief Includes required functions for processing the LINKS command. - * \version $Id: m_links.c 9394 2020-05-14 17:08:06Z michael $ + * \version $Id: m_links.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -161,7 +161,7 @@ struct module module_entry = { - .version = "$Revision: 9394 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_list.c ircd-hybrid-8.2.38+dfsg.1/modules/m_list.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_list.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_list.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_list.c * \brief Includes required functions for processing the LIST command. - * \version $Id: m_list.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_list.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -209,7 +209,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_locops.c ircd-hybrid-8.2.38+dfsg.1/modules/m_locops.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_locops.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_locops.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_locops.c * \brief Includes required functions for processing the LOCOPS command. - * \version $Id: m_locops.c 9388 2020-05-10 09:46:41Z michael $ + * \version $Id: m_locops.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -118,7 +118,7 @@ struct module module_entry = { - .version = "$Revision: 9388 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_lusers.c ircd-hybrid-8.2.38+dfsg.1/modules/m_lusers.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_lusers.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_lusers.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_lusers.c * \brief Includes required functions for processing the LUSERS command. - * \version $Id: m_lusers.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_lusers.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -113,7 +113,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_map.c ircd-hybrid-8.2.38+dfsg.1/modules/m_map.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_map.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_map.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_map.c * \brief Includes required functions for processing the MAP command. - * \version $Id: m_map.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_map.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -207,7 +207,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_metadata.c ircd-hybrid-8.2.38+dfsg.1/modules/m_metadata.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_metadata.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_metadata.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2020-2020 ircd-hybrid development team + * Copyright (c) 2020-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_metadata.c * \brief Includes required functions for processing the METADATA command. - * \version $Id: m_metadata.c 9412 2020-05-31 12:33:04Z michael $ + * \version $Id: m_metadata.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -84,7 +84,7 @@ struct module module_entry = { - .version = "$Revision: 9412 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_module.c ircd-hybrid-8.2.38+dfsg.1/modules/m_module.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_module.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_module.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_module.c * \brief Includes required functions for processing the MODULE command. - * \version $Id: m_module.c 9390 2020-05-11 16:50:09Z michael $ + * \version $Id: m_module.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -272,7 +272,7 @@ struct module module_entry = { - .version = "$Revision: 9390 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, .is_resident = true diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_monitor.c ircd-hybrid-8.2.38+dfsg.1/modules/m_monitor.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_monitor.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_monitor.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_monitor.c * \brief Includes required functions for processing the MONITOR command. - * \version $Id: m_monitor.c 9841 2020-12-25 13:32:22Z michael $ + * \version $Id: m_monitor.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -304,7 +304,7 @@ struct module module_entry = { - .version = "$Revision: 9841 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_motd.c ircd-hybrid-8.2.38+dfsg.1/modules/m_motd.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_motd.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_motd.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_motd.c * \brief Includes required functions for processing the MOTD command. - * \version $Id: m_motd.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_motd.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -127,7 +127,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_names.c ircd-hybrid-8.2.38+dfsg.1/modules/m_names.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_names.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_names.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_names.c * \brief Includes required functions for processing the NAMES command. - * \version $Id: m_names.c 9475 2020-07-04 15:26:07Z michael $ + * \version $Id: m_names.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -89,7 +89,7 @@ struct module module_entry = { - .version = "$Revision: 9475 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_oper.c ircd-hybrid-8.2.38+dfsg.1/modules/m_oper.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_oper.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_oper.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_oper.c * \brief Includes required functions for processing the OPER command. - * \version $Id: m_oper.c 9550 2020-07-23 13:32:47Z michael $ + * \version $Id: m_oper.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -214,7 +214,7 @@ struct module module_entry = { - .version = "$Revision: 9550 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_pass.c ircd-hybrid-8.2.38+dfsg.1/modules/m_pass.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_pass.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_pass.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_pass.c * \brief Includes required functions for processing the PASS command. - * \version $Id: m_pass.c 9837 2020-12-25 11:40:28Z michael $ + * \version $Id: m_pass.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -90,7 +90,7 @@ struct module module_entry = { - .version = "$Revision: 9837 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_ping.c ircd-hybrid-8.2.38+dfsg.1/modules/m_ping.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_ping.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_ping.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_ping.c * \brief Includes required functions for processing the PING command. - * \version $Id: m_ping.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_ping.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -140,7 +140,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_pong.c ircd-hybrid-8.2.38+dfsg.1/modules/m_pong.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_pong.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_pong.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_pong.c * \brief Includes required functions for processing the PONG command. - * \version $Id: m_pong.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_pong.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -138,7 +138,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_post.c ircd-hybrid-8.2.38+dfsg.1/modules/m_post.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_post.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_post.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_post.c * \brief Includes required functions for processing the POST/GET/PUT command. - * \version $Id: m_post.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_post.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -99,7 +99,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_rehash.c ircd-hybrid-8.2.38+dfsg.1/modules/m_rehash.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_rehash.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_rehash.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_rehash.c * \brief Includes required functions for processing the REHASH command. - * \version $Id: m_rehash.c 9393 2020-05-11 16:59:37Z michael $ + * \version $Id: m_rehash.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -225,7 +225,7 @@ struct module module_entry = { - .version = "$Revision: 9393 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_restart.c ircd-hybrid-8.2.38+dfsg.1/modules/m_restart.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_restart.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_restart.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_restart.c * \brief Includes required functions for processing the RESTART command. - * \version $Id: m_restart.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_restart.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -93,7 +93,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_resv.c ircd-hybrid-8.2.38+dfsg.1/modules/m_resv.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_resv.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_resv.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_resv.c * \brief Includes required functions for processing the RESV command. - * \version $Id: m_resv.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_resv.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -204,7 +204,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_set.c ircd-hybrid-8.2.38+dfsg.1/modules/m_set.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_set.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_set.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_set.c * \brief Includes required functions for processing the SET command. - * \version $Id: m_set.c 9428 2020-06-19 18:15:46Z michael $ + * \version $Id: m_set.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -398,7 +398,7 @@ struct module module_entry = { - .version = "$Revision: 9428 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_stats.c ircd-hybrid-8.2.38+dfsg.1/modules/m_stats.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_stats.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_stats.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_stats.c * \brief Includes required functions for processing the STATS command. - * \version $Id: m_stats.c 9749 2020-11-29 16:51:27Z michael $ + * \version $Id: m_stats.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -1368,7 +1368,7 @@ struct module module_entry = { - .version = "$Revision: 9749 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svinfo.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svinfo.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svinfo.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svinfo.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svinfo.c * \brief Includes required functions for processing the SVINFO command. - * \version $Id: m_svinfo.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_svinfo.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -135,7 +135,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svsaccount.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svsaccount.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svsaccount.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svsaccount.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2016-2020 ircd-hybrid development team + * Copyright (c) 2016-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svsaccount.c * \brief Includes required functions for processing the SVSACCOUNT command. - * \version $Id: m_svsaccount.c 9696 2020-11-01 09:56:43Z michael $ + * \version $Id: m_svsaccount.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -93,7 +93,7 @@ struct module module_entry = { - .version = "$Revision: 9696 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svshost.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svshost.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svshost.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svshost.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2016-2020 ircd-hybrid development team + * Copyright (c) 2016-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svshost.c * \brief Includes required functions for processing the SVSHOST command. - * \version $Id: m_svshost.c 9563 2020-08-15 10:55:38Z michael $ + * \version $Id: m_svshost.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -95,7 +95,7 @@ struct module module_entry = { - .version = "$Revision: 9563 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svsjoin.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svsjoin.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svsjoin.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svsjoin.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2014-2020 ircd-hybrid development team + * Copyright (c) 2014-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svsjoin.c * \brief Includes required functions for processing the SVSJOIN command. - * \version $Id: m_svsjoin.c 9739 2020-11-16 13:57:17Z michael $ + * \version $Id: m_svsjoin.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -107,7 +107,7 @@ struct module module_entry = { - .version = "$Revision: 9739 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svskill.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svskill.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svskill.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svskill.c 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1999 Bahamut development team. - * Copyright (c) 2013-2020 ircd-hybrid development team + * Copyright (c) 2013-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file m_svskill.c * \brief Includes required functions for processing the SVSKILL command. - * \version $Id: m_svskill.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_svskill.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -113,7 +113,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svsmode.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svsmode.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svsmode.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svsmode.c 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1999 Bahamut development team. - * Copyright (c) 2011-2020 ircd-hybrid development team + * Copyright (c) 2011-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file m_svsmode.c * \brief Includes required functions for processing the SVSMODE command. - * \version $Id: m_svsmode.c 9683 2020-10-28 18:56:24Z michael $ + * \version $Id: m_svsmode.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -56,16 +56,13 @@ static void ms_svsmode(struct Client *source_p, int parc, char *parv[]) { + const char *const modes = parv[3]; const struct user_modes *tab = NULL; int what = MODE_ADD; - const char *modes = NULL, *extarg = NULL; if (!HasFlag(source_p, FLAGS_SERVICE)) return; - modes = parv[3]; - extarg = (parc > 4) ? parv[4] : NULL; - struct Client *target_p = find_person(source_p, parv[1]); if (target_p == NULL) return; @@ -87,22 +84,6 @@ what = MODE_DEL; break; - case 'd': - if (!EmptyString(extarg)) - { - strlcpy(target_p->account, extarg, sizeof(target_p->account)); - sendto_common_channels_local(target_p, true, CAP_ACCOUNT_NOTIFY, 0, ":%s!%s@%s ACCOUNT %s", - target_p->name, target_p->username, - target_p->host, target_p->account); - } - - break; - - case 'x': - if (!EmptyString(extarg) && valid_hostname(extarg)) - user_set_hostmask(target_p, extarg); - break; - case 'o': if (what == MODE_DEL && HasUMode(target_p, UMODE_OPER)) { @@ -156,14 +137,9 @@ } } - if (extarg) - sendto_server(source_p, 0, 0, ":%s SVSMODE %s %ju %s %s", - source_p->id, - target_p->id, target_p->tsinfo, modes, extarg); - else - sendto_server(source_p, 0, 0, ":%s SVSMODE %s %ju %s", - source_p->id, - target_p->id, target_p->tsinfo, modes); + sendto_server(source_p, 0, 0, ":%s SVSMODE %s %ju %s", + source_p->id, + target_p->id, target_p->tsinfo, modes); if (MyConnect(target_p) && (setmodes != target_p->umodes)) { @@ -197,7 +173,7 @@ struct module module_entry = { - .version = "$Revision: 9683 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svsnick.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svsnick.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svsnick.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svsnick.c 2021-01-17 11:18:41.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1999 Bahamut development team. - * Copyright (c) 2011-2020 ircd-hybrid development team + * Copyright (c) 2011-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file m_svsnick.c * \brief Includes required functions for processing the SVSNICK command. - * \version $Id: m_svsnick.c 9749 2020-11-29 16:51:27Z michael $ + * \version $Id: m_svsnick.c 9858 2021-01-01 04:43:42Z michael $ */ @@ -165,7 +165,7 @@ struct module module_entry = { - .version = "$Revision: 9749 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svspart.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svspart.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svspart.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svspart.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2014-2020 ircd-hybrid development team + * Copyright (c) 2014-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svspart.c * \brief Includes required functions for processing the SVSPART command. - * \version $Id: m_svspart.c 9739 2020-11-16 13:57:17Z michael $ + * \version $Id: m_svspart.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -107,7 +107,7 @@ struct module module_entry = { - .version = "$Revision: 9739 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_svstag.c ircd-hybrid-8.2.38+dfsg.1/modules/m_svstag.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_svstag.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_svstag.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_svstag.c * \brief Includes required functions for processing the SVSTAG command. - * \version $Id: m_svstag.c 9747 2020-11-21 16:43:32Z michael $ + * \version $Id: m_svstag.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -108,7 +108,7 @@ struct module module_entry = { - .version = "$Revision: 9747 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_tburst.c ircd-hybrid-8.2.38+dfsg.1/modules/m_tburst.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_tburst.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_tburst.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2002-2020 ircd-hybrid development team + * Copyright (c) 2002-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_tburst.c * \brief Includes required functions for processing the TBURST command. - * \version $Id: m_tburst.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_tburst.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -144,7 +144,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_time.c ircd-hybrid-8.2.38+dfsg.1/modules/m_time.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_time.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_time.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_time.c * \brief Includes required functions for processing the TIME command. - * \version $Id: m_time.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_time.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -103,7 +103,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_topic.c ircd-hybrid-8.2.38+dfsg.1/modules/m_topic.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_topic.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_topic.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_topic.c * \brief Includes required functions for processing the TOPIC command. - * \version $Id: m_topic.c 9597 2020-09-05 10:09:36Z michael $ + * \version $Id: m_topic.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -187,7 +187,7 @@ struct module module_entry = { - .version = "$Revision: 9597 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_trace.c ircd-hybrid-8.2.38+dfsg.1/modules/m_trace.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_trace.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_trace.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_trace.c * \brief Includes required functions for processing the TRACE command. - * \version $Id: m_trace.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_trace.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -242,7 +242,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_undline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_undline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_undline.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_undline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_undline.c * \brief Includes required functions for processing the UNDLINE command. - * \version $Id: m_undline.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_undline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -191,7 +191,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_unkline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_unkline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_unkline.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_unkline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_unkline.c * \brief Includes required functions for processing the UNKLINE command. - * \version $Id: m_unkline.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_unkline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -194,7 +194,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_unresv.c ircd-hybrid-8.2.38+dfsg.1/modules/m_unresv.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_unresv.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_unresv.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_unresv.c * \brief Includes required functions for processing the UNRESV command. - * \version $Id: m_unresv.c 9430 2020-06-24 08:36:05Z michael $ + * \version $Id: m_unresv.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -175,7 +175,7 @@ struct module module_entry = { - .version = "$Revision: 9430 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_unxline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_unxline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_unxline.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_unxline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2003-2020 ircd-hybrid development team + * Copyright (c) 2003-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_unxline.c * \brief Includes required functions for processing the UNXLINE command. - * \version $Id: m_unxline.c 9430 2020-06-24 08:36:05Z michael $ + * \version $Id: m_unxline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -181,7 +181,7 @@ struct module module_entry = { - .version = "$Revision: 9430 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_user.c ircd-hybrid-8.2.38+dfsg.1/modules/m_user.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_user.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_user.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_user.c * \brief Includes required functions for processing the USER command. - * \version $Id: m_user.c 9585 2020-08-29 14:00:29Z michael $ + * \version $Id: m_user.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -104,7 +104,7 @@ struct module module_entry = { - .version = "$Revision: 9585 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_userhost.c ircd-hybrid-8.2.38+dfsg.1/modules/m_userhost.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_userhost.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_userhost.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_userhost.c * \brief Includes required functions for processing the USERHOST command. - * \version $Id: m_userhost.c 9373 2020-05-09 20:54:26Z michael $ + * \version $Id: m_userhost.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -126,7 +126,7 @@ struct module module_entry = { - .version = "$Revision: 9373 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_version.c ircd-hybrid-8.2.38+dfsg.1/modules/m_version.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_version.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_version.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_version.c * \brief Includes required functions for processing the VERSION command. - * \version $Id: m_version.c 9667 2020-10-12 13:18:43Z michael $ + * \version $Id: m_version.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -130,7 +130,7 @@ struct module module_entry = { - .version = "$Revision: 9667 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_wallops.c ircd-hybrid-8.2.38+dfsg.1/modules/m_wallops.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_wallops.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_wallops.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_wallops.c * \brief Includes required functions for processing the WALLOPS command. - * \version $Id: m_wallops.c 9388 2020-05-10 09:46:41Z michael $ + * \version $Id: m_wallops.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -105,7 +105,7 @@ struct module module_entry = { - .version = "$Revision: 9388 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_webirc.c ircd-hybrid-8.2.38+dfsg.1/modules/m_webirc.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_webirc.c 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_webirc.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2012-2020 ircd-hybrid development team + * Copyright (c) 2012-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_webirc.c * \brief Includes required functions for processing the WEBIRC command. - * \version $Id: m_webirc.c 9430 2020-06-24 08:36:05Z michael $ + * \version $Id: m_webirc.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -162,7 +162,7 @@ struct module module_entry = { - .version = "$Revision: 9430 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_who.c ircd-hybrid-8.2.38+dfsg.1/modules/m_who.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_who.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_who.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_who.c * \brief Includes required functions for processing the WHO command. - * \version $Id: m_who.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: m_who.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -400,7 +400,7 @@ struct module module_entry = { - .version = "$Revision: 9833 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_whois.c ircd-hybrid-8.2.38+dfsg.1/modules/m_whois.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_whois.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_whois.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_whois.c * \brief Includes required functions for processing the WHOIS command. - * \version $Id: m_whois.c 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: m_whois.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -360,7 +360,7 @@ struct module module_entry = { - .version = "$Revision: 9774 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_whowas.c ircd-hybrid-8.2.38+dfsg.1/modules/m_whowas.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_whowas.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_whowas.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_whowas.c * \brief Includes required functions for processing the WHOWAS command. - * \version $Id: m_whowas.c 9396 2020-05-14 19:26:35Z michael $ + * \version $Id: m_whowas.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -182,7 +182,7 @@ struct module module_entry = { - .version = "$Revision: 9396 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/modules/m_xline.c ircd-hybrid-8.2.38+dfsg.1/modules/m_xline.c --- ircd-hybrid-8.2.37+dfsg.1/modules/m_xline.c 2020-12-26 11:57:04.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/modules/m_xline.c 2021-01-17 11:18:41.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2003-2020 ircd-hybrid development team + * Copyright (c) 2003-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file m_xline.c * \brief Includes required functions for processing the XLINE command. - * \version $Id: m_xline.c 9582 2020-08-29 13:02:12Z michael $ + * \version $Id: m_xline.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -238,7 +238,7 @@ struct module module_entry = { - .version = "$Revision: 9582 $", + .version = "$Revision: 9858 $", .modinit = module_init, .modexit = module_exit, }; diff -Nru ircd-hybrid-8.2.37+dfsg.1/NEWS ircd-hybrid-8.2.38+dfsg.1/NEWS --- ircd-hybrid-8.2.37+dfsg.1/NEWS 2020-12-26 11:57:05.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/NEWS 2021-01-17 11:18:41.000000000 +0000 @@ -1,3 +1,18 @@ +-- Noteworthy changes in version 8.2.38 (2021-01-17) +* Backwards compatibility mode for ircd-hybrid 8.2.22 and below has been removed +* Minimum supported version of the Anope IRC services is now 2.0.8 +* Fixed displaying issue with channel MODE messages +* Characters valid for user names for local clients are now [A-Za-z0-9._-]. 'Special' + characters like }|{`^]\[$, that were allowed previously, are no longer valid. + Also user names may not begin with '.', '_', or '-'. +* The `general::dots_in_ident` configuration directive has been renamed to + `general::specials_in_ident` and now covers the '-' and '_' characters in + addition to '.' +* Fixed issue with clients connected from IPv6 localhost that, depending on the + system's getaddrinfo() implementation, could lead to a crash of remote servers +* For a full list of all changes in this release, see + + -- Noteworthy changes in version 8.2.37 (2020-12-26) * Implemented IRCv3 `CAP 302` * Implemented IRCv3 `cap-notify` capability @@ -5,7 +20,7 @@ sent in the first `PASS` message instead of the last one * Missing help file for `MONITOR` has been added * Fixed slightly off memory count for motds in `STATS z` -* For a full list of all changes in this release, see +* For a full list of all changes in this release, see -- Noteworthy changes in version 8.2.36 (2020-12-04) @@ -977,4 +992,4 @@ Other files recommended for reading: README, INSTALL -------------------------------------------------------------------------------- -$Id: NEWS 9851 2020-12-26 11:56:23Z michael $ +$Id: NEWS 9900 2021-01-17 11:13:43Z michael $ diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/auth.c ircd-hybrid-8.2.38+dfsg.1/src/auth.c --- ircd-hybrid-8.2.37+dfsg.1/src/auth.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/auth.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file auth.c * \brief Implementation of DNS and ident lookups. - * \version $Id: auth.c 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: auth.c 9858 2021-01-01 04:43:42Z michael $ */ /* diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/channel.c ircd-hybrid-8.2.38+dfsg.1/src/channel.c --- ircd-hybrid-8.2.37+dfsg.1/src/channel.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/channel.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel.c * \brief Responsible for managing channels, members, bans and topics - * \version $Id: channel.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: channel.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/channel_invite.c ircd-hybrid-8.2.38+dfsg.1/src/channel_invite.c --- ircd-hybrid-8.2.37+dfsg.1/src/channel_invite.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/channel_invite.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel_invite.c * \brief Channel invitation related functions - * \version $Id: channel_invite.c 9353 2020-04-26 08:36:36Z michael $ + * \version $Id: channel_invite.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/channel_mode.c ircd-hybrid-8.2.38+dfsg.1/src/channel_mode.c --- ircd-hybrid-8.2.37+dfsg.1/src/channel_mode.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/channel_mode.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file channel_mode.c * \brief Controls modes on channels. - * \version $Id: channel_mode.c 9833 2020-12-25 10:09:43Z michael $ + * \version $Id: channel_mode.c 9893 2021-01-17 03:28:38Z michael $ */ #include "stdinc.h" @@ -756,8 +756,8 @@ static void send_mode_changes_server(struct Client *client, struct Channel *channel) { - char modebuf[IRCD_BUFSIZE]; - char parabuf[IRCD_BUFSIZE]; + char modebuf[IRCD_BUFSIZE] = ""; + char parabuf[IRCD_BUFSIZE] = ""; /* Essential that parabuf[0] = '\0' */ char *parptr = parabuf; unsigned int mbl = 0, pbl = 0, arglen = 0, modecount = 0, paracount = 0; unsigned int dir = MODE_QUERY; @@ -790,7 +790,7 @@ ((arglen + mbl + pbl + 2 /* +2 for /r/n */ ) > IRCD_BUFSIZE)) { if (modecount) - sendto_server(client, 0, 0, "%s %s", modebuf, parabuf); + sendto_server(client, 0, 0, paracount == 0 ? "%s" : "%s %s", modebuf, parabuf); modecount = 0; paracount = 0; @@ -824,7 +824,7 @@ } if (modecount) - sendto_server(client, 0, 0, "%s %s", modebuf, parabuf); + sendto_server(client, 0, 0, paracount == 0 ? "%s" : "%s %s", modebuf, parabuf); } /* void send_mode_changes(struct Client *client, @@ -844,8 +844,8 @@ for (unsigned int pass = 2; pass--; flags = CHFL_CHANOP | CHFL_HALFOP) { - char modebuf[IRCD_BUFSIZE]; - char parabuf[IRCD_BUFSIZE]; + char modebuf[IRCD_BUFSIZE] = ""; + char parabuf[IRCD_BUFSIZE] = ""; /* Essential that parabuf[0] = '\0' */ char *parptr = parabuf; unsigned int mbl = 0, pbl = 0, arglen = 0, modecount = 0, paracount = 0; unsigned int dir = MODE_QUERY; @@ -873,7 +873,7 @@ ((arglen + mbl + pbl + 2 /* +2 for /r/n */ ) > IRCD_BUFSIZE)) { if (modecount) - sendto_channel_local(NULL, channel, flags, 0, 0, "%s %s", modebuf, parabuf); + sendto_channel_local(NULL, channel, flags, 0, 0, paracount == 0 ? "%s" : "%s %s", modebuf, parabuf); modecount = 0; paracount = 0; @@ -912,7 +912,7 @@ } if (modecount) - sendto_channel_local(NULL, channel, flags, 0, 0, "%s %s", modebuf, parabuf); + sendto_channel_local(NULL, channel, flags, 0, 0, paracount == 0 ? "%s" : "%s %s", modebuf, parabuf); } } diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/client.c ircd-hybrid-8.2.38+dfsg.1/src/client.c --- ircd-hybrid-8.2.37+dfsg.1/src/client.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/client.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file client.c * \brief Controls clients. - * \version $Id: client.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: client.c 9889 2021-01-16 17:03:49Z michael $ */ #include "stdinc.h" @@ -787,7 +787,9 @@ free_list_task(client); invite_clear_list(&client->connection->invited); - del_all_accepts(client); + + accept_clear_list(&client->connection->acceptlist); + monitor_clear_list(client); sendto_realops_flags(UMODE_CCONN, L_ALL, SEND_NOTICE, @@ -830,7 +832,7 @@ if (IsServer(client)) { - char splitstr[HOSTLEN + HOSTLEN + 2]; + char splitstr[HOSTLEN + HOSTLEN + 2]; /* +2 for space and \0 */ assert(client->serv); assert(client->servptr); @@ -1004,31 +1006,32 @@ */ void -del_accept(struct split_nuh_item *accept_p, struct Client *client) +accept_del(struct AcceptItem *accept, dlink_list *list) { - dlinkDelete(&accept_p->node, &client->connection->acceptlist); + dlinkDelete(&accept->node, list); - xfree(accept_p->nickptr); - xfree(accept_p->userptr); - xfree(accept_p->hostptr); - xfree(accept_p); + xfree(accept->nick); + xfree(accept->user); + xfree(accept->host); + xfree(accept); } -struct split_nuh_item * -find_accept(const char *nick, const char *user, - const char *host, struct Client *client, +struct AcceptItem * +accept_find(const char *nick, + const char *user, + const char *host, dlink_list *list, int (*compare)(const char *, const char *)) { dlink_node *node; - DLINK_FOREACH(node, client->connection->acceptlist.head) + DLINK_FOREACH(node, list->head) { - struct split_nuh_item *accept_p = node->data; + struct AcceptItem *accept = node->data; - if (compare(accept_p->nickptr, nick) == 0 && - compare(accept_p->userptr, user) == 0 && - compare(accept_p->hostptr, host) == 0) - return accept_p; + if (compare(accept->nick, nick) == 0 && + compare(accept->user, user) == 0 && + compare(accept->host, host) == 0) + return accept; } return NULL; @@ -1051,8 +1054,8 @@ (HasUMode(source, UMODE_OPER) && ConfigGeneral.opers_bypass_callerid)) return true; - if (source == target || find_accept(source->name, source->username, - source->host, target, match)) + if (source == target || accept_find(source->name, source->username, source->host, + &target->connection->acceptlist, match)) return true; if (!HasUMode(target, UMODE_CALLERID) && HasUMode(target, UMODE_SOFTCALLERID)) @@ -1070,12 +1073,10 @@ * side effects - Walk through given clients acceptlist and remove all entries */ void -del_all_accepts(struct Client *client) +accept_clear_list(dlink_list *list) { - dlink_node *node, *node_next; - - DLINK_FOREACH_SAFE(node, node_next, client->connection->acceptlist.head) - del_accept(node->data, client); + while (list->head) + accept_del(list->head->data, list); } unsigned int diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/client_svstag.c ircd-hybrid-8.2.38+dfsg.1/src/client_svstag.c --- ircd-hybrid-8.2.37+dfsg.1/src/client_svstag.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/client_svstag.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file client_svstag.c * \brief Controls SVSTAGS. - * \version $Id: client_svstag.c 9601 2020-09-05 11:04:17Z michael $ + * \version $Id: client_svstag.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf.c ircd-hybrid-8.2.38+dfsg.1/src/conf.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf.c * \brief Configuration file functions. - * \version $Id: conf.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: conf.c 9897 2021-01-17 06:18:18Z michael $ */ #include "stdinc.h" @@ -260,6 +260,8 @@ else if (class->max_perip_global && (ipcache->count_local + ipcache->count_remote) > class->max_perip_global) a_limit_reached = true; + else if (class_ip_limit_add(conf->class, &client->ip, IsConfExemptLimits(conf)) == true) + a_limit_reached = true; if (a_limit_reached == true) { @@ -340,58 +342,43 @@ bool conf_check_client(struct Client *client) { - int i; - - if ((i = verify_access(client))) - ilog(LOG_TYPE_IRCD, "Access denied: %s[%s]", - client->name, client->sockhost); + const char *error = NULL; + bool warn = true; - switch (i) + switch (verify_access(client)) { case TOO_MANY: - sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, - "Too many on IP for %s (%s).", - client_get_name(client, SHOW_IP), - client->sockhost); - ilog(LOG_TYPE_IRCD, "Too many connections on IP from %s.", - client_get_name(client, SHOW_IP)); - ++ServerStats.is_ref; - exit_client(client, "No more connections allowed on that IP"); + error = "too many connections on IP"; break; - case I_LINE_FULL: - sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, - "auth {} block is full for %s (%s).", - client_get_name(client, SHOW_IP), - client->sockhost); - ilog(LOG_TYPE_IRCD, "Too many connections from %s.", - client_get_name(client, SHOW_IP)); - ++ServerStats.is_ref; - exit_client(client, "No more connections allowed in your connection class"); + error = "connection class is full"; break; - case NOT_AUTHORIZED: - sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, - "Unauthorized client connection from %s.", - client_get_name(client, SHOW_IP)); - ilog(LOG_TYPE_IRCD, "Unauthorized client connection from %s.", - client_get_name(client, SHOW_IP)); - ++ServerStats.is_ref; - exit_client(client, "You are not authorized to use this server"); + error = "not authorized"; break; - case BANNED_CLIENT: - ++ServerStats.is_ref; - exit_client(client, "Banned"); - break; - - case 0: - default: + error = "banned from server"; + warn = false; break; } - if (i < 0) + if (error) + { + char buf[REASONLEN + 1]; + snprintf(buf, sizeof(buf), "Connection rejected - %s", error); + + ++ServerStats.is_ref; + + if (warn == true) + sendto_realops_flags(UMODE_REJ, L_ALL, SEND_NOTICE, "Rejecting client connection from %s: %s", + client_get_name(client, SHOW_IP), error); + + ilog(LOG_TYPE_IRCD, "Rejecting client connection from %s: %s", + client_get_name(client, SHOW_IP), error); + exit_client(client, buf); return false; + } + return true; } @@ -445,10 +432,6 @@ if (dlinkFind(&client->connection->confs, conf)) return 1; - if (conf->type == CONF_CLIENT) - if (class_ip_limit_add(conf->class, &client->ip, IsConfExemptLimits(conf)) == true) - return TOO_MANY; /* Already at maximum allowed */ - conf->class->ref_count++; conf->ref_count++; @@ -625,7 +608,7 @@ ConfigGeneral.default_floodcount = 8; ConfigGeneral.default_floodtime = 1; ConfigGeneral.failed_oper_notice = 1; - ConfigGeneral.dots_in_ident = 0; + ConfigGeneral.specials_in_ident = 0; ConfigGeneral.min_nonwildcard = 4; ConfigGeneral.min_nonwildcard_simple = 3; ConfigGeneral.max_accept = 50; diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_class.c ircd-hybrid-8.2.38+dfsg.1/src/conf_class.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_class.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_class.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_class.c * \brief Configuration managment for class{} blocks - * \version $Id: conf_class.c 9708 2020-11-14 15:54:45Z michael $ + * \version $Id: conf_class.c 9884 2021-01-15 13:47:56Z michael $ */ #include "stdinc.h" @@ -208,8 +208,19 @@ return false; patricia_node_t *pnode = patricia_make_and_lookup_addr(class_ip_limit_trie(class, addr), addr, bitlen); - if (((uintptr_t)pnode->data) >= class->number_per_cidr && over_rule == false) + if (((uintptr_t)pnode->data) >= class->number_per_cidr) + { + if (over_rule == true) + /* + * In case of overruling, we continue with the client registration process + * which means we expect a class_ip_limit_remove() call when detaching the + * configuration record upon client exit, therefore pnode->data has to be + * increased. + */ + PATRICIA_DATA_SET(pnode, (((uintptr_t)pnode->data) + 1)); + return true; + } PATRICIA_DATA_SET(pnode, (((uintptr_t)pnode->data) + 1)); return false; diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_cluster.c ircd-hybrid-8.2.38+dfsg.1/src/conf_cluster.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_cluster.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_cluster.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_cluster.c * \brief Implements cluster {} block configuration management. - * \version $Id: conf_cluster.c 9249 2020-02-01 13:35:32Z michael $ + * \version $Id: conf_cluster.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_db.c ircd-hybrid-8.2.38+dfsg.1/src/conf_db.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_db.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_db.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (C) 1996-2009 by Andrew Church - * Copyright (c) 2012-2020 ircd-hybrid development team + * Copyright (c) 2012-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file conf_db.c * \brief Includes file utilities for database handling - * \version $Id: conf_db.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_db.c 9858 2021-01-01 04:43:42Z michael $ */ diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_gecos.c ircd-hybrid-8.2.38+dfsg.1/src/conf_gecos.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_gecos.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_gecos.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1998-2020 ircd-hybrid development team + * Copyright (c) 1998-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_gecos.c * \brief Implements gecos {} block configuration management. - * \version $Id: conf_gecos.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_gecos.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_lexer.c ircd-hybrid-8.2.38+dfsg.1/src/conf_lexer.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_lexer.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_lexer.c 2021-01-17 11:18:40.000000000 +0000 @@ -355,8 +355,8 @@ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 255 -#define YY_END_OF_BUFFER 256 +#define YY_NUM_RULES 258 +#define YY_END_OF_BUFFER 259 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -364,187 +364,188 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1623] = +static const flex_int16_t yy_accept[1632] = { 0, - 4, 4, 256, 254, 4, 3, 254, 5, 254, 254, - 6, 254, 254, 254, 254, 254, 254, 254, 254, 254, - 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, - 254, 254, 254, 254, 4, 3, 0, 7, 5, 253, - 0, 2, 5, 6, 0, 0, 0, 0, 0, 0, + 7, 7, 0, 0, 259, 257, 7, 6, 257, 8, + 257, 257, 9, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 3, 4, 3, 7, + 6, 0, 10, 8, 256, 0, 1, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 0, 247, 0, 0, 0, 0, 0, 0, 0, 252, - 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 0, 250, 0, 0, 0, 0, + 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, + + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, - 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 23, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 175, 0, 0, 178, 0, 0, 0, 0, - 183, 0, 185, 0, 0, 0, 0, 197, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 180, + 0, 0, 0, 0, 0, 186, 0, 188, 0, 0, + 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 18, 0, 0, 22, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 15, 0, 0, 19, 242, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 233, 36, 0, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 39, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 236, 0, 0, - 93, 94, 95, 0, 96, 0, 0, 0, 0, 0, - 0, 107, 0, 0, 0, 0, 0, 0, 0, 126, - 127, 0, 0, 0, 133, 0, 0, 0, 0, 140, - 145, 0, 0, 149, 0, 152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, - 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, - 0, 216, 0, 0, 0, 0, 232, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 239, 0, 0, 95, 96, 97, 0, 98, 0, + 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, + 0, 0, 0, 128, 129, 0, 0, 0, 135, 0, + 0, 0, 0, 142, 147, 0, 0, 151, 0, 154, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, + 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, - 228, 0, 0, 9, 0, 0, 0, 0, 241, 0, - 0, 24, 0, 0, 28, 0, 30, 0, 0, 0, - 0, 37, 0, 43, 0, 0, 50, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 64, 0, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 235, 0, - 0, 0, 246, 0, 0, 98, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 251, 0, 0, - 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 231, 0, 0, 12, 0, + 0, 0, 0, 244, 0, 0, 27, 0, 0, 31, + 0, 33, 0, 0, 0, 0, 40, 0, 46, 0, + 0, 53, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 70, 71, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 0, 249, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 169, + 0, 254, 0, 0, 0, 0, 0, 233, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 0, 182, 184, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, + 182, 0, 0, 185, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 234, 224, 0, 226, 230, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, + 0, 0, 248, 0, 0, 0, 0, 0, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 231, 221, 0, 223, 227, 0, 0, 0, 11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, + + 253, 0, 241, 0, 0, 126, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 0, 0, 0, 0, 0, 0, 0, 245, 0, - 0, 0, 0, 0, 104, 105, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 250, 0, 238, 0, + 0, 0, 0, 0, 156, 0, 158, 0, 0, 162, + 164, 0, 0, 0, 243, 0, 172, 0, 0, 178, + 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 212, 0, 0, 0, 216, + 0, 0, 220, 0, 223, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 34, 35, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 72, 75, 0, 0, - 0, 124, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 156, 0, 0, 160, 162, 0, 0, 0, - 240, 0, 170, 0, 0, 176, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 0, 0, 0, 213, 0, 0, 217, 0, 220, + 0, 0, 0, 0, 0, 240, 0, 0, 127, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 31, 32, 33, 0, 0, + 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 166, 0, 0, 242, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 73, 0, 0, 0, 0, 0, 0, + 199, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 214, 0, 217, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 0, 19, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 80, 0, 0, + 87, 0, 0, 0, 0, 0, 247, 0, 0, 0, + 0, 0, 0, 111, 0, 114, 0, 0, 0, 0, + 0, 0, 252, 123, 0, 0, 0, 0, 138, 0, + 137, 0, 145, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 237, 0, 0, 125, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 0, 0, 0, 0, 164, 0, 0, 239, - 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 211, 0, 214, 0, 218, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 0, 78, 0, 0, 85, 0, 0, 0, - 0, 0, 244, 0, 0, 0, 0, 0, 0, 109, - 0, 112, 0, 0, 0, 0, 0, 0, 249, 121, - 0, 0, 0, 0, 136, 0, 135, 0, 143, 0, - 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 23, + 0, 0, 21, 0, 26, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, + 0, 0, 0, 0, 0, 79, 0, 0, 88, 0, + 0, 0, 0, 246, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 251, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 0, 153, 0, 160, 161, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 86, 0, 0, 0, 0, 243, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 146, 0, 151, 0, 158, - 159, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, - 0, 0, 1, 0, 1, 0, 0, 0, 0, 17, + 0, 215, 0, 0, 0, 0, 0, 5, 0, 5, + 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 64, 0, 76, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, + 0, 0, 0, 0, 0, 120, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 59, 0, 62, 0, 74, + 0, 0, 0, 0, 173, 174, 176, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, - 0, 118, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 171, 172, 174, 177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + + 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 115, 116, 0, 0, + 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 144, 0, 152, 157, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 45, 0, 0, + 0, 50, 0, 0, 0, 0, 59, 0, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 113, 114, 0, 0, 0, 119, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 150, - 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 0, 0, 227, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 119, 0, 0, 132, 0, 136, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, + + 0, 0, 0, 210, 0, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 54, 57, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, + 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 57, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 99, 0, 0, 0, 0, 111, + 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 11, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 82, + 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, + 0, 118, 0, 124, 0, 139, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, - 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 206, 0, 0, 0, 224, 0, 10, + 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 65, 0, 0, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 0, 0, 130, 0, 134, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 0, 207, 0, - - 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 0, 0, 110, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 13, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, - 72, 0, 0, 0, 0, 116, 0, 122, 0, 137, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 115, 120, 0, 0, 0, - 0, 0, 141, 147, 0, 186, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, - 0, 0, 0, 0, 0, 0, 0, 187, 188, 189, - 190, 191, 192, 0, 201, 0, 203, 0, 0, 0, - - 0, 0, 0, 38, 0, 0, 0, 0, 61, 0, - 67, 0, 0, 0, 89, 0, 91, 0, 100, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 42, 0, 0, 66, 0, - 0, 88, 0, 0, 102, 0, 131, 0, 139, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 79, 87, 90, 0, 0, 138, - 0, 167, 198, 0, 0, 0, 205, 0, 0, 0, - 0, 0, 48, 0, 97, 0, 144, 0, 0, 0, - 219, 222, 0, 0, 0, 0, 123, 0, 0, 0, - - 0, 0, 41, 49, 0, 202, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 14, 199, 0, - 204, 0 + 0, 0, 117, 122, 0, 0, 0, 0, 0, 143, + 149, 0, 0, 189, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 0, 184, 190, 191, 192, 193, + + 194, 195, 0, 204, 0, 206, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 63, 0, 69, + 0, 0, 0, 91, 0, 93, 0, 102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 45, 0, 0, 68, 0, 0, + 90, 0, 0, 104, 0, 133, 0, 141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, + 0, 0, 0, 81, 89, 92, 0, 0, 140, 0, + 169, 201, 0, 0, 0, 208, 0, 0, 0, 0, + 0, 51, 0, 99, 0, 146, 0, 0, 0, 222, + + 225, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 44, 52, 0, 205, 0, 0, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 202, 0, 207, + 0 } ; static const YY_CHAR yy_ec[256] = @@ -590,727 +591,732 @@ 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[1628] = +static const flex_int16_t yy_base[1638] = { 0, - 0, 0, 3121, 3122, 3118, 0, 64, 0, 62, 64, - 64, 96, 49, 146, 198, 52, 68, 58, 115, 68, - 52, 136, 147, 240, 282, 52, 330, 159, 372, 419, - 154, 196, 66, 74, 3117, 0, 82, 3122, 0, 3122, - 72, 3122, 0, 91, 109, 101, 95, 120, 133, 146, - 168, 170, 170, 172, 194, 187, 208, 208, 242, 207, - 220, 200, 471, 227, 218, 218, 243, 274, 276, 244, - 249, 285, 291, 251, 252, 291, 288, 296, 277, 289, - 306, 291, 305, 311, 313, 328, 314, 334, 316, 321, - 344, 338, 370, 346, 361, 365, 368, 368, 381, 400, - - 403, 385, 384, 398, 419, 411, 517, 433, 439, 447, - 452, 427, 431, 445, 418, 429, 466, 456, 458, 466, - 462, 3078, 466, 473, 560, 487, 484, 505, 480, 502, - 512, 511, 511, 515, 501, 3122, 519, 524, 508, 531, - 3122, 537, 534, 3077, 535, 536, 538, 542, 560, 548, - 549, 557, 560, 563, 560, 574, 560, 581, 560, 584, - 3122, 588, 576, 574, 587, 598, 585, 599, 597, 606, - 613, 607, 618, 617, 618, 609, 611, 623, 627, 627, - 629, 615, 618, 3076, 630, 123, 626, 621, 632, 629, - 647, 648, 637, 643, 3122, 653, 3075, 649, 671, 652, - - 654, 656, 674, 675, 681, 679, 663, 676, 673, 674, - 688, 674, 688, 690, 678, 690, 694, 684, 690, 687, - 707, 693, 696, 714, 725, 3122, 712, 710, 3074, 714, - 730, 714, 3122, 719, 722, 3122, 736, 730, 723, 729, - 3122, 737, 3122, 727, 741, 734, 746, 3073, 739, 750, - 754, 748, 753, 757, 767, 765, 763, 768, 769, 775, - 775, 779, 777, 776, 3122, 783, 780, 783, 782, 3072, - 3122, 797, 3071, 3122, 782, 798, 799, 792, 795, 3070, - 793, 800, 811, 797, 818, 815, 821, 3122, 3122, 824, - 813, 817, 3122, 819, 836, 835, 3069, 830, 833, 823, - - 844, 834, 833, 834, 849, 840, 3122, 837, 837, 855, - 841, 845, 851, 3068, 863, 871, 3122, 851, 860, 869, - 3122, 3122, 3122, 880, 3067, 889, 887, 883, 3066, 891, - 883, 3122, 926, 898, 902, 885, 897, 897, 902, 3122, - 3122, 900, 3065, 902, 3122, 906, 906, 915, 920, 941, - 3122, 3064, 911, 3122, 3063, 3122, 938, 941, 933, 935, - 936, 939, 939, 939, 962, 3062, 948, 951, 954, 969, - 971, 959, 3122, 970, 985, 983, 973, 975, 990, 976, - 982, 1014, 998, 1001, 3122, 999, 998, 999, 998, 993, - 1004, 3122, 1002, 1004, 3061, 1007, 1009, 1011, 1031, 1031, - - 1018, 1021, 1023, 1038, 1043, 1037, 1034, 1047, 3122, 1035, - 1046, 3122, 1056, 1060, 3122, 1045, 3122, 1061, 1054, 1068, - 3060, 3122, 1060, 3122, 1064, 1067, 3059, 1072, 3122, 1077, - 1068, 1082, 1067, 1089, 1077, 1092, 1083, 3122, 1096, 3122, - 3122, 1101, 1087, 1095, 1091, 1099, 1106, 1103, 3122, 1114, - 1107, 1114, 1101, 1118, 1100, 3058, 3057, 1113, 1113, 1114, - 1132, 1135, 1130, 1136, 1126, 1135, 1144, 1132, 1130, 1152, - 1154, 1146, 1159, 1147, 1162, 1164, 1152, 1156, 1170, 1164, - 1161, 1161, 3056, 1174, 1164, 1175, 1189, 1180, 1183, 1186, - 1190, 3122, 1194, 1197, 1206, 1194, 1210, 1200, 1216, 3122, - - 1207, 1206, 1224, 1213, 1225, 3055, 3122, 1229, 3122, 3122, - 3054, 1213, 1214, 1214, 1243, 1233, 1238, 1223, 1222, 1231, - 1234, 1245, 1249, 1255, 1243, 1252, 1252, 1253, 1258, 1271, - 3122, 3122, 1258, 3053, 3122, 1274, 3052, 1262, 3122, 1273, - 1267, 1270, 1272, 1279, 1280, 1280, 1285, 1289, 3122, 1282, - 1298, 1283, 1291, 1292, 1297, 1312, 1305, 1305, 3051, 1300, - 3050, 3122, 1301, 1322, 3049, 1312, 1314, 1319, 1313, 1330, - 3048, 1334, 1324, 1333, 1333, 1322, 1340, 3047, 3122, 1335, - 1329, 1347, 1353, 1350, 3122, 3122, 1351, 1352, 1366, 1359, - 1350, 1359, 1371, 1362, 1359, 1364, 3122, 1362, 1366, 1374, - - 1374, 1370, 3122, 1385, 1387, 1391, 1384, 1391, 1379, 1399, - 3046, 1390, 1404, 1394, 1397, 1410, 1396, 1405, 1412, 1421, - 3122, 3045, 3122, 1411, 1422, 3122, 1426, 1409, 1407, 1425, - 1417, 1438, 1434, 1435, 1424, 3122, 1432, 1434, 1469, 3122, - 1437, 1430, 1441, 1444, 1448, 3044, 1445, 1449, 3043, 1454, - 3122, 1470, 1474, 1461, 3122, 1478, 1481, 1474, 1479, 3122, - 3042, 1491, 1492, 1482, 1479, 1497, 1502, 1490, 1492, 1501, - 1512, 1509, 1504, 3122, 1502, 3122, 3122, 1522, 1515, 3041, - 1512, 3040, 1524, 3039, 1529, 1530, 1524, 1528, 1526, 1524, - 1537, 3038, 3122, 3122, 1539, 1533, 1534, 1545, 1539, 1534, - - 1542, 1542, 1579, 1557, 1562, 1544, 1561, 1560, 1568, 1557, - 1581, 1568, 1574, 1584, 1581, 1582, 1581, 1591, 1589, 1589, - 1596, 3122, 1597, 1581, 3122, 3122, 1600, 1587, 3037, 1600, - 3036, 1603, 1596, 1603, 1597, 1612, 1611, 1618, 1626, 1621, - 1624, 3122, 1629, 1622, 1623, 1641, 3122, 1638, 1622, 3122, - 1626, 1637, 1633, 3122, 1641, 1637, 1643, 3035, 3034, 3033, - 3032, 3031, 3030, 3029, 1651, 3122, 1638, 1651, 1646, 1645, - 1643, 1650, 1671, 3028, 3122, 3122, 1671, 3122, 1671, 3122, - 3027, 1672, 1657, 134, 1683, 1672, 1680, 1679, 3122, 1680, - 1690, 3122, 1692, 1693, 1686, 1681, 3026, 1700, 1691, 1714, - - 1687, 1695, 1685, 1708, 1705, 1701, 3122, 1713, 1727, 1722, - 1721, 1737, 1725, 3122, 1740, 1724, 3122, 1743, 1737, 1745, - 1727, 1733, 1734, 1749, 1741, 1749, 1748, 1752, 1748, 3025, - 1752, 3122, 1747, 1748, 3024, 1764, 1765, 1771, 1764, 3122, - 1775, 1772, 1769, 1785, 3122, 1786, 3122, 1793, 3122, 1784, - 1777, 1799, 1784, 3122, 1794, 1801, 1803, 1788, 1787, 1798, - 1801, 1816, 1799, 1816, 1815, 1819, 1803, 1819, 1824, 1822, - 1823, 1825, 1827, 1828, 1831, 3023, 1843, 1848, 1849, 1855, - 1856, 1843, 1854, 1856, 1857, 1853, 1860, 1857, 1863, 1883, - 3058, 3048, 1852, 1874, 3020, 3019, 1856, 3122, 3018, 3122, - - 1872, 1873, 1883, 1880, 1879, 1895, 1882, 1878, 1899, 1896, - 3017, 1902, 1887, 3122, 1895, 1895, 1905, 1891, 1903, 1893, - 1901, 3122, 3016, 1911, 3015, 1906, 1905, 1906, 1920, 3122, - 1916, 3014, 1925, 1930, 3122, 1912, 1933, 1941, 1943, 1935, - 1948, 1935, 1934, 3008, 3122, 1943, 1941, 1939, 1958, 1963, - 1953, 1948, 1966, 3007, 1964, 3006, 1961, 3122, 1959, 3122, - 3122, 3122, 1958, 1956, 1956, 1978, 1969, 1980, 1982, 1981, - 1991, 1986, 1988, 1989, 1991, 1992, 1993, 2013, 2008, 1997, - 2014, 2000, 2012, 2002, 2009, 2017, 3122, 2009, 2009, 2006, - 2015, 3040, 3039, 3028, 3026, 2011, 2017, 2032, 2034, 3122, - - 2017, 2039, 2037, 2041, 2043, 2050, 2037, 2048, 2043, 2057, - 2056, 2067, 2066, 2070, 2064, 3122, 2056, 3122, 2061, 3122, - 2071, 2071, 2060, 2076, 2067, 2079, 2086, 2082, 2998, 2076, - 2090, 2080, 2082, 3122, 2107, 2098, 2093, 2095, 2107, 2111, - 2108, 3122, 2103, 2111, 2120, 3122, 2110, 2107, 2114, 2113, - 2994, 2110, 2109, 2112, 2113, 2128, 2131, 2118, 2136, 2130, - 3122, 3122, 3122, 3122, 2137, 2128, 2143, 2156, 2157, 2159, - 2161, 2162, 2154, 2161, 2162, 2985, 2156, 2176, 2173, 2159, - 2160, 2169, 2175, 2169, 2164, 2169, 2163, 2172, 2178, 2168, - 2194, 1530, 3122, 2180, 2185, 2187, 1430, 3122, 2194, 2210, - - 2201, 2209, 2206, 2220, 2203, 1424, 2213, 3122, 2207, 2211, - 2226, 2218, 2219, 2209, 2217, 2216, 2217, 2230, 2220, 973, - 2223, 2225, 3122, 3122, 2245, 2235, 2240, 3122, 2249, 2252, - 2238, 2262, 2264, 2255, 2269, 2255, 2262, 3122, 2268, 3122, - 3122, 3122, 886, 2261, 2280, 2284, 2268, 2269, 2270, 2271, - 2272, 2273, 2272, 2281, 2292, 2288, 2289, 2290, 881, 2303, - 2308, 2290, 3122, 2305, 2308, 2304, 2311, 2310, 2314, 2322, - 2323, 2324, 2318, 2335, 875, 2337, 3122, 844, 2321, 2338, - 2323, 2330, 3122, 2331, 2328, 2333, 3122, 2340, 2333, 517, - 2334, 471, 2352, 2352, 3122, 2358, 466, 2360, 2357, 3122, - - 2359, 2370, 2373, 2366, 2381, 2379, 2367, 3122, 2382, 2378, - 2376, 464, 2378, 2381, 2384, 2392, 3122, 2395, 419, 418, - 416, 408, 373, 366, 2384, 2394, 2400, 2393, 2382, 2391, - 338, 2404, 2407, 3122, 2414, 2411, 2399, 3122, 2400, 3122, - 2412, 2411, 2412, 2418, 336, 2433, 2431, 2427, 2437, 2436, - 2428, 3122, 2428, 2433, 334, 2436, 2434, 3122, 2448, 330, - 2449, 327, 2442, 2438, 2466, 2449, 2455, 2455, 2445, 3122, - 2463, 2453, 3122, 2463, 3122, 2477, 326, 2482, 2484, 2474, - 2486, 3122, 2481, 2479, 2480, 2485, 2486, 2487, 2488, 2484, - 3122, 2485, 2487, 2498, 2495, 2504, 2502, 323, 3122, 2511, - - 2491, 2515, 2519, 240, 3122, 2502, 2522, 2511, 2526, 2527, - 2531, 2534, 237, 262, 3122, 2524, 2541, 231, 2529, 2534, - 2553, 2546, 2535, 2552, 258, 2543, 2550, 2559, 3122, 2556, - 2555, 2544, 2561, 2552, 2552, 2582, 2576, 2573, 2567, 2555, - 2588, 2582, 2584, 2585, 2587, 2588, 2589, 3122, 2603, 2589, - 2590, 195, 2602, 2605, 2606, 2594, 191, 3122, 3122, 2602, - 217, 2609, 2597, 2606, 2607, 2619, 2626, 2628, 3122, 2623, - 2628, 2625, 2628, 3122, 2633, 2633, 2641, 2651, 2644, 189, - 3122, 2634, 2643, 2643, 2643, 3122, 2655, 159, 2644, 3122, - 2653, 2651, 2655, 2649, 2664, 143, 2667, 2660, 2661, 2664, - - 2666, 2669, 2673, 113, 3122, 2681, 2669, 2676, 2692, 2683, - 107, 2690, 2699, 3122, 3122, 2705, 2693, 2704, 2695, 2697, - 2702, 2702, 2715, 2707, 2708, 2705, 2708, 2702, 2712, 2712, - 2714, 2718, 2718, 2730, 2725, 3122, 3122, 2721, 2732, 2727, - 2748, 2743, 3122, 3122, 2750, 3122, 2733, 2735, 2736, 2738, - 2739, 2740, 2764, 2752, 2767, 2768, 2755, 2760, 2774, 2772, - 2760, 2766, 2761, 3122, 2780, 2766, 2775, 2780, 2789, 2794, - 2791, 2800, 2804, 2796, 2807, 2800, 2810, 2808, 2798, 3122, - 2814, 2815, 2810, 2824, 2826, 2823, 2820, 3122, 3122, 3122, - 3122, 3122, 3122, 2821, 3122, 2814, 3122, 2813, 2813, 2823, - - 2824, 2821, 2836, 3122, 104, 2828, 2843, 2836, 3122, 2825, - 3122, 2841, 2860, 2844, 3122, 2861, 3122, 2855, 3122, 2857, - 2858, 2858, 2872, 2866, 2861, 2868, 2869, 2861, 101, 2868, - 2870, 2880, 2887, 2884, 2898, 3122, 2880, 2893, 3122, 2878, - 2882, 3122, 2891, 2895, 3122, 2897, 3122, 2905, 3122, 2911, - 2917, 2918, 2918, 2917, 2926, 2913, 2930, 2914, 2928, 3122, - 2921, 2928, 2919, 2925, 3122, 3122, 3122, 2921, 2930, 3122, - 2939, 3122, 3122, 2941, 2930, 2939, 3122, 2944, 2948, 2952, - 2937, 2954, 3122, 2967, 3122, 2967, 3122, 2956, 2971, 2970, - 3122, 3122, 95, 2965, 2975, 2962, 3122, 2970, 2983, 2973, - - 2969, 2970, 3122, 3122, 2973, 3122, 2974, 2984, 3122, 2986, - 2987, 2984, 2986, 2982, 3000, 2989, 3002, 3122, 3122, 2998, - 3122, 3122, 130, 3051, 95, 93, 87 + 0, 0, 64, 65, 3134, 3135, 3131, 0, 69, 0, + 62, 68, 68, 96, 53, 146, 75, 72, 92, 104, + 124, 116, 52, 139, 158, 200, 242, 54, 290, 137, + 332, 379, 173, 188, 67, 83, 3135, 3135, 3124, 3129, + 0, 82, 3135, 0, 3135, 77, 3135, 0, 85, 147, + 151, 150, 167, 164, 175, 198, 189, 184, 187, 196, + 197, 216, 217, 237, 227, 224, 208, 431, 250, 240, + 249, 258, 284, 257, 241, 282, 289, 256, 272, 291, + 296, 299, 284, 285, 302, 287, 311, 320, 330, 345, + 335, 352, 338, 333, 356, 351, 379, 356, 386, 392, + + 392, 386, 388, 398, 416, 388, 398, 412, 429, 426, + 477, 440, 468, 441, 444, 438, 443, 474, 436, 453, + 465, 455, 473, 481, 476, 3090, 485, 487, 526, 499, + 507, 522, 505, 523, 534, 3135, 530, 529, 527, 514, + 3135, 531, 533, 517, 539, 3135, 540, 537, 3089, 541, + 542, 540, 554, 569, 559, 560, 568, 570, 574, 568, + 582, 568, 589, 566, 589, 3135, 592, 581, 587, 595, + 580, 594, 589, 594, 599, 595, 606, 605, 620, 597, + 613, 627, 631, 630, 637, 618, 625, 3088, 635, 77, + 631, 626, 635, 634, 646, 645, 632, 638, 3135, 645, + + 3087, 637, 657, 660, 640, 643, 660, 661, 681, 682, + 666, 681, 679, 680, 694, 679, 693, 694, 682, 694, + 696, 684, 689, 685, 703, 691, 689, 703, 713, 3135, + 700, 698, 3086, 702, 731, 714, 3135, 722, 725, 3135, + 741, 736, 729, 747, 736, 3135, 743, 3135, 733, 747, + 740, 751, 3085, 745, 752, 755, 748, 749, 755, 760, + 754, 771, 757, 758, 765, 779, 785, 783, 782, 3135, + 790, 787, 790, 789, 3084, 3135, 803, 3083, 3135, 788, + 804, 804, 797, 798, 3082, 794, 800, 810, 798, 818, + 815, 817, 3135, 3135, 816, 804, 808, 3135, 810, 841, + + 839, 836, 839, 829, 851, 841, 840, 841, 855, 846, + 3135, 843, 843, 860, 846, 848, 852, 3081, 863, 870, + 3135, 850, 859, 857, 3135, 3135, 3135, 869, 3080, 878, + 877, 887, 3079, 897, 889, 3135, 932, 905, 909, 892, + 906, 901, 908, 3135, 3135, 903, 3078, 906, 3135, 908, + 907, 915, 921, 955, 3135, 3077, 904, 3135, 3076, 3135, + 923, 926, 916, 921, 942, 946, 946, 946, 966, 3075, + 953, 956, 954, 971, 970, 957, 3135, 966, 981, 978, + 982, 969, 971, 990, 979, 985, 1005, 1005, 1009, 3135, + 1008, 1010, 1011, 1008, 1004, 1016, 3135, 1016, 1014, 3074, + + 1012, 1012, 1013, 1033, 1033, 1020, 1020, 1022, 1034, 1039, + 1035, 1038, 1057, 3135, 1044, 1051, 3135, 1059, 1065, 3135, + 1052, 3135, 1068, 1060, 1072, 3073, 3135, 1066, 3135, 1070, + 1070, 3072, 3135, 1078, 1068, 1081, 1066, 1087, 1078, 1089, + 1081, 3135, 1091, 3135, 3135, 1096, 1082, 1094, 1093, 1100, + 1110, 1107, 3135, 1116, 1109, 1116, 1108, 1125, 1104, 3071, + 3070, 1118, 1118, 1114, 1133, 1136, 1130, 1135, 1125, 1141, + 1146, 1123, 1121, 1146, 1148, 1142, 1163, 1151, 1164, 1166, + 1154, 1162, 1176, 1171, 1167, 1166, 3069, 1172, 1167, 1176, + 1191, 1178, 1181, 1187, 1187, 3135, 1187, 1196, 1200, 1197, + + 1211, 1204, 1220, 3135, 1209, 1208, 1226, 1219, 1231, 3068, + 3135, 1235, 1236, 3135, 3135, 3067, 1219, 1220, 1220, 1239, + 1237, 1241, 1226, 1226, 1237, 1238, 1244, 1245, 1251, 1243, + 1255, 1255, 1260, 1264, 1276, 3135, 3135, 1261, 3066, 3135, + 1279, 3065, 1269, 3135, 1280, 1274, 1277, 1278, 1285, 1286, + 1283, 1287, 1291, 3135, 1283, 1298, 1284, 1293, 1289, 1295, + 1307, 1301, 3064, 1299, 3063, 3135, 1303, 1323, 3062, 1316, + 1318, 1321, 1315, 1333, 3061, 1339, 1330, 1339, 1339, 1326, + 1345, 3060, 3135, 1340, 1329, 1349, 1349, 1354, 3135, 3135, + 1353, 1344, 1362, 1353, 1344, 1354, 1370, 1364, 1360, 1368, + + 3135, 1366, 1368, 1376, 1377, 1375, 3135, 1391, 1393, 1397, + 1388, 1396, 1384, 1399, 3059, 1391, 1405, 1394, 1396, 1409, + 1394, 1401, 1408, 1415, 3135, 3058, 3135, 1405, 1417, 3135, + 1425, 1411, 1408, 1429, 1421, 1440, 1442, 1437, 1425, 3135, + 1435, 1440, 1441, 1476, 3135, 1443, 1436, 1439, 1445, 1449, + 3057, 1447, 1455, 3056, 1459, 3135, 1469, 1471, 1466, 3135, + 1489, 1488, 1477, 1484, 3135, 3055, 1497, 1499, 1489, 1486, + 1504, 1508, 1496, 1490, 1502, 1513, 1511, 1510, 3135, 1507, + 3135, 3135, 1522, 1516, 3054, 1515, 3053, 1530, 1535, 1536, + 1531, 1536, 1534, 1533, 1544, 3052, 3135, 3135, 1545, 1537, + + 1539, 1551, 1546, 1541, 1549, 1549, 1560, 1568, 1566, 1550, + 1570, 1569, 1577, 1565, 1584, 1574, 1580, 1590, 1588, 1590, + 1589, 1600, 1596, 1595, 1600, 3135, 1602, 1587, 3135, 3135, + 1607, 1594, 3051, 1607, 3050, 1610, 1601, 1600, 1594, 1611, + 1610, 1619, 1629, 1620, 1623, 3135, 1629, 1625, 1629, 1647, + 3135, 1644, 1629, 3135, 1634, 1645, 1642, 3135, 1648, 1643, + 1647, 1642, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 1659, + 3135, 1646, 1659, 1654, 1653, 1652, 1656, 1669, 3042, 3135, + 3135, 1672, 3135, 1672, 3135, 3041, 1674, 1663, 1471, 1688, + 1672, 1681, 1684, 3135, 1687, 1697, 3135, 1699, 1701, 1695, + + 1690, 3040, 1705, 1701, 1721, 1699, 1696, 1717, 1714, 1710, + 3135, 1710, 1728, 1721, 1722, 1740, 1724, 3135, 1739, 1724, + 3135, 1746, 1743, 1751, 1733, 1740, 1742, 1757, 1750, 1756, + 1755, 1758, 1756, 3039, 1760, 3135, 1755, 1756, 3038, 1772, + 1774, 1777, 1762, 3135, 1776, 1773, 1771, 1791, 3135, 1787, + 3135, 1792, 3135, 1782, 1775, 1805, 1790, 3135, 1800, 1808, + 1811, 1796, 1796, 1805, 1808, 1822, 1807, 1824, 1823, 1827, + 1811, 1828, 3037, 1830, 1820, 1824, 1826, 1829, 1832, 1834, + 3036, 1842, 1847, 1849, 1858, 1862, 1849, 1860, 1863, 1865, + 1861, 1869, 1864, 1870, 1894, 3071, 3061, 1858, 1879, 3033, + + 3032, 1862, 3135, 3031, 3135, 1879, 1882, 1880, 1877, 1880, + 1897, 1886, 1882, 1904, 1901, 3030, 1888, 3135, 1897, 1898, + 1908, 1897, 1909, 1899, 1907, 3135, 3029, 1918, 3028, 1912, + 1912, 1910, 1924, 3135, 1918, 3020, 1929, 1935, 3135, 1918, + 1929, 1937, 1938, 1934, 1952, 1934, 1937, 3019, 3135, 1947, + 1940, 1939, 1961, 1966, 1959, 1955, 1973, 3017, 1970, 3015, + 1968, 3135, 1966, 3135, 3135, 3135, 1964, 1961, 1960, 1980, + 1973, 1985, 1988, 1977, 1987, 1988, 1987, 1990, 1993, 1995, + 1997, 1998, 2015, 2010, 2002, 2018, 2007, 2019, 2009, 2016, + 2024, 3135, 2017, 2017, 2015, 2024, 3049, 3048, 3037, 3035, + + 2020, 2022, 2038, 2041, 3135, 2026, 2036, 2034, 2042, 2045, + 2054, 2041, 2053, 2048, 2059, 2059, 2071, 2073, 2070, 3135, + 2062, 3135, 2067, 3135, 2077, 2077, 2067, 2083, 2073, 2084, + 2090, 2084, 3005, 2080, 2095, 2086, 2078, 3135, 2103, 2093, + 2092, 2096, 2109, 2114, 2112, 3135, 2103, 2112, 2122, 3135, + 2113, 2110, 2120, 2119, 3002, 2116, 2115, 2118, 2120, 2135, + 2137, 2123, 2140, 2132, 3135, 3135, 3135, 3135, 2141, 2138, + 2135, 2152, 2153, 2154, 2160, 2163, 2166, 2158, 2166, 2167, + 2998, 2158, 2179, 2177, 2163, 2167, 2176, 2182, 2176, 2171, + 2177, 2171, 2181, 2185, 2175, 2200, 1685, 3135, 2185, 2191, + + 2194, 1437, 3135, 2203, 2207, 2198, 2210, 2221, 2205, 892, + 2216, 3135, 2211, 2215, 2225, 2218, 2222, 2212, 2223, 2223, + 2224, 2236, 2227, 891, 2230, 2231, 3135, 3135, 2250, 2239, + 2242, 3135, 2253, 2257, 2244, 2262, 2261, 2252, 2270, 2250, + 2263, 3135, 2272, 3135, 3135, 3135, 887, 2265, 2280, 881, + 2285, 2270, 2272, 2273, 2277, 2279, 2280, 2278, 2288, 2299, + 2293, 2295, 2294, 744, 2304, 2313, 2296, 3135, 2305, 2305, + 2301, 2308, 2309, 2315, 2324, 2326, 2328, 2318, 2336, 484, + 2339, 3135, 483, 2324, 2341, 2335, 3135, 2337, 2333, 2338, + 3135, 2346, 2337, 476, 2338, 431, 2354, 2352, 3135, 2359, + + 428, 2363, 2361, 3135, 2356, 2366, 2369, 2361, 2376, 2377, + 2366, 3135, 2383, 2380, 2375, 427, 2377, 2381, 2385, 2394, + 3135, 2390, 2401, 426, 425, 424, 396, 382, 381, 2391, + 2401, 2406, 2400, 2389, 2397, 379, 2409, 2411, 3135, 2416, + 2415, 2404, 3135, 2406, 3135, 2412, 2408, 2409, 2415, 378, + 2432, 2432, 2429, 2440, 2440, 2428, 2429, 2435, 350, 2440, + 2441, 3135, 2456, 344, 2457, 339, 2448, 2445, 2461, 2458, + 2462, 2462, 2451, 3135, 2467, 2458, 3135, 2469, 3135, 2478, + 334, 2480, 2481, 2473, 2487, 3135, 2491, 2485, 2484, 2485, + 2487, 2489, 2491, 2492, 2491, 3135, 2493, 2495, 2506, 2503, + + 2512, 2511, 333, 3135, 2518, 2498, 2521, 2524, 326, 3135, + 2508, 2529, 2520, 2527, 2525, 2530, 2535, 298, 322, 3135, + 2526, 2545, 286, 2534, 2539, 2555, 2548, 2540, 2556, 283, + 2550, 2558, 2567, 3135, 2564, 2563, 2552, 2570, 2561, 2561, + 2577, 2581, 2581, 2578, 2566, 2588, 2592, 2586, 2589, 2591, + 2593, 2594, 2596, 3135, 2607, 2594, 2595, 237, 2610, 2614, + 2615, 2603, 235, 3135, 3135, 2612, 124, 2618, 2607, 2616, + 2616, 2628, 2635, 2635, 3135, 2631, 2638, 2635, 2630, 3135, + 2633, 2636, 2645, 2656, 2650, 229, 3135, 2640, 2649, 2650, + 2647, 3135, 2660, 198, 2649, 3135, 2661, 2660, 2664, 2658, + + 2674, 197, 2666, 2678, 2671, 2673, 2675, 2678, 2680, 2682, + 191, 3135, 2692, 2680, 2687, 2696, 2687, 135, 2696, 2706, + 3135, 3135, 2712, 2701, 2711, 2703, 2706, 2708, 2708, 2724, + 2717, 2718, 2715, 2719, 2713, 2723, 2723, 2726, 2729, 2730, + 2741, 2734, 3135, 3135, 2732, 2743, 2738, 2752, 2747, 3135, + 3135, 2756, 2745, 3135, 2742, 2744, 2745, 2747, 2749, 2751, + 2771, 2762, 2778, 2779, 2766, 2772, 2786, 2785, 2772, 2779, + 2775, 3135, 2794, 2780, 2788, 2792, 2801, 2806, 2804, 2808, + 2811, 2805, 2816, 2809, 2819, 2817, 2808, 3135, 2825, 2822, + 2820, 2835, 2837, 2834, 2832, 3135, 3135, 3135, 3135, 3135, + + 3135, 3135, 2833, 3135, 2827, 3135, 2825, 2826, 2837, 2838, + 2835, 2849, 3135, 113, 2840, 2855, 2848, 3135, 2838, 3135, + 2849, 2867, 2853, 3135, 2870, 3135, 2864, 3135, 2866, 2867, + 2868, 2883, 2873, 2871, 2879, 2881, 2871, 107, 2880, 2883, + 2892, 2900, 2898, 2907, 3135, 2894, 2907, 3135, 2894, 2894, + 3135, 2903, 2908, 3135, 2905, 3135, 2912, 3135, 2920, 2926, + 2927, 2927, 2927, 2937, 2920, 2940, 2925, 2939, 3135, 2932, + 2940, 2931, 2938, 3135, 3135, 3135, 2933, 2943, 3135, 2953, + 3135, 3135, 2955, 2944, 2952, 3135, 2956, 2960, 2964, 2950, + 2962, 3135, 2974, 3135, 2976, 3135, 2965, 2980, 2979, 3135, + + 3135, 97, 2974, 2985, 2973, 3135, 2977, 2993, 2984, 2980, + 2981, 3135, 3135, 2985, 3135, 2986, 2997, 3135, 2998, 3000, + 2998, 3000, 2996, 3013, 3001, 3014, 3135, 3135, 3010, 3135, + 3135, 3063, 104, 3065, 102, 89, 81 } ; -static const flex_int16_t yy_def[1628] = +static const flex_int16_t yy_def[1638] = { 0, - 1622, 1, 1622, 1622, 1622, 1623, 1624, 1625, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1623, 1624, 1622, 1625, 1622, - 1622, 1622, 1625, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1626, 1627, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1626, 1626, 1627, 1627, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 0, 1622, 1622, 1622, 1622, 1622 + 1631, 1, 1632, 1632, 1631, 1631, 1631, 1633, 1634, 1635, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1633, 1634, 1631, 1635, 1631, 1631, 1631, 1635, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1636, 1637, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1636, 1636, 1637, 1637, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 0, 1631, 1631, 1631, 1631, 1631, 1631 } ; -static const flex_int16_t yy_nxt[3189] = +static const flex_int16_t yy_nxt[3202] = { 0, - 4, 5, 6, 7, 8, 4, 9, 10, 11, 11, - 11, 4, 4, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 4, - 28, 29, 30, 31, 4, 32, 33, 34, 4, 4, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 4, 28, 29, 30, - 31, 4, 32, 33, 34, 4, 38, 38, 40, 42, - 52, 43, 44, 44, 44, 73, 53, 67, 68, 81, - 100, 70, 74, 41, 38, 38, 54, 994, 69, 71, - 130, 131, 72, 992, 79, 39, 80, 52, 132, 44, - - 44, 44, 73, 53, 67, 68, 81, 100, 70, 74, - 41, 45, 46, 54, 47, 69, 71, 130, 131, 72, - 48, 79, 49, 80, 133, 132, 134, 135, 75, 50, - 36, 51, 321, 322, 1601, 890, 76, 891, 45, 46, - 1555, 47, 77, 1535, 136, 892, 1459, 48, 78, 49, - 82, 133, 1453, 134, 135, 75, 50, 83, 51, 55, - 84, 56, 85, 76, 86, 137, 57, 58, 87, 77, - 59, 136, 106, 60, 88, 78, 107, 82, 138, 124, - 125, 139, 1445, 61, 83, 126, 55, 84, 56, 85, - 108, 86, 137, 57, 58, 87, 140, 59, 1438, 106, - - 60, 88, 141, 107, 142, 138, 124, 125, 139, 127, - 61, 62, 126, 128, 145, 63, 129, 108, 143, 64, - 144, 146, 65, 140, 147, 66, 1414, 1415, 1432, 141, - 1412, 142, 152, 153, 1407, 154, 127, 155, 62, 163, - 128, 145, 63, 129, 161, 143, 64, 144, 146, 65, - 164, 147, 66, 89, 90, 148, 165, 91, 162, 152, - 153, 92, 154, 149, 155, 172, 163, 93, 1381, 150, - 1373, 161, 1369, 174, 173, 151, 1368, 164, 179, 1360, - 89, 90, 148, 165, 91, 162, 180, 166, 92, 167, - 149, 168, 172, 169, 93, 94, 150, 95, 175, 96, - - 174, 173, 151, 97, 170, 179, 177, 181, 171, 98, - 184, 185, 176, 180, 166, 99, 167, 178, 168, 182, - 169, 183, 94, 186, 95, 175, 96, 187, 188, 189, - 97, 170, 190, 177, 181, 171, 98, 184, 185, 176, - 191, 192, 99, 101, 178, 193, 182, 196, 183, 194, - 186, 102, 197, 195, 187, 188, 189, 103, 198, 190, - 104, 105, 1355, 199, 200, 1336, 1323, 191, 192, 1321, - 101, 204, 193, 1317, 196, 1307, 194, 1296, 102, 197, - 195, 205, 206, 208, 103, 198, 201, 104, 105, 109, - 199, 200, 110, 111, 209, 112, 202, 207, 204, 113, - - 114, 115, 203, 116, 117, 1289, 211, 210, 205, 206, - 208, 217, 1288, 201, 218, 219, 109, 212, 214, 110, - 111, 209, 112, 202, 207, 213, 113, 114, 115, 203, - 116, 117, 118, 211, 215, 216, 220, 221, 217, 119, - 120, 218, 219, 121, 212, 214, 229, 1287, 238, 239, - 122, 242, 213, 243, 230, 1286, 123, 1285, 1284, 118, - 234, 215, 216, 220, 221, 231, 119, 120, 236, 232, - 121, 233, 240, 229, 235, 238, 239, 122, 242, 244, - 243, 230, 241, 123, 156, 157, 245, 234, 246, 158, - 237, 247, 231, 248, 250, 236, 232, 159, 233, 240, - - 251, 235, 160, 1278, 257, 1265, 244, 262, 258, 241, - 1261, 156, 157, 245, 259, 246, 158, 237, 247, 260, - 248, 250, 261, 263, 159, 264, 266, 251, 267, 160, - 222, 257, 223, 224, 262, 258, 268, 225, 269, 226, - 270, 259, 227, 265, 271, 273, 260, 274, 228, 261, - 263, 272, 264, 266, 275, 267, 1259, 222, 276, 223, - 224, 278, 279, 268, 225, 269, 226, 270, 280, 227, - 265, 271, 273, 281, 274, 228, 252, 282, 272, 283, - 284, 275, 285, 253, 254, 276, 286, 287, 278, 279, - 255, 288, 289, 290, 291, 280, 256, 293, 292, 294, - - 281, 295, 296, 252, 282, 297, 283, 284, 298, 285, - 253, 254, 299, 286, 287, 300, 301, 255, 288, 289, - 290, 291, 302, 256, 293, 292, 294, 303, 295, 296, - 304, 305, 297, 306, 307, 298, 310, 308, 311, 299, - 312, 313, 300, 301, 314, 315, 316, 317, 318, 302, - 309, 320, 323, 324, 303, 327, 325, 304, 305, 326, - 306, 307, 328, 310, 308, 311, 329, 312, 313, 330, - 331, 314, 315, 316, 317, 318, 332, 309, 320, 323, - 324, 334, 327, 325, 335, 336, 326, 338, 339, 328, - 340, 337, 341, 329, 342, 343, 330, 331, 344, 345, - - 346, 347, 349, 332, 350, 351, 348, 352, 334, 353, - 354, 335, 336, 355, 338, 339, 356, 340, 357, 341, - 358, 342, 343, 359, 360, 344, 345, 346, 347, 349, - 361, 350, 351, 348, 352, 362, 353, 354, 363, 364, - 355, 368, 365, 356, 366, 357, 369, 358, 370, 371, - 359, 360, 372, 373, 374, 375, 376, 361, 377, 378, - 379, 380, 362, 381, 383, 363, 364, 385, 368, 365, - 386, 366, 387, 369, 384, 370, 371, 388, 389, 372, - 373, 374, 375, 376, 390, 377, 378, 379, 380, 391, - 381, 383, 394, 392, 385, 395, 396, 386, 397, 387, - - 398, 384, 393, 400, 388, 389, 401, 402, 403, 404, - 405, 390, 407, 409, 399, 410, 391, 411, 412, 394, - 392, 413, 395, 396, 415, 397, 416, 398, 417, 418, - 400, 419, 420, 401, 402, 403, 404, 405, 421, 407, - 409, 399, 410, 422, 411, 412, 423, 424, 413, 425, - 426, 415, 427, 416, 429, 417, 418, 430, 419, 420, - 431, 432, 433, 434, 435, 421, 436, 437, 438, 439, - 422, 440, 441, 423, 424, 442, 425, 426, 443, 427, - 445, 429, 449, 1249, 430, 450, 446, 431, 432, 433, - 434, 435, 447, 436, 437, 438, 439, 453, 440, 441, - - 451, 452, 442, 455, 456, 443, 457, 445, 459, 449, - 448, 460, 450, 446, 1247, 468, 469, 470, 471, 447, - 1232, 473, 474, 472, 453, 1215, 475, 451, 452, 477, - 455, 456, 478, 457, 479, 459, 480, 481, 460, 461, - 462, 463, 468, 469, 470, 471, 486, 464, 473, 474, - 472, 465, 466, 475, 482, 488, 477, 489, 467, 478, - 490, 479, 491, 480, 481, 492, 461, 462, 463, 493, - 494, 495, 483, 486, 464, 496, 498, 499, 465, 466, - 484, 482, 488, 500, 489, 467, 502, 490, 505, 491, - 503, 506, 492, 501, 507, 504, 493, 494, 495, 483, - - 508, 509, 496, 498, 499, 510, 511, 512, 513, 514, - 500, 519, 1198, 502, 520, 505, 521, 503, 506, 522, - 523, 507, 504, 524, 525, 526, 527, 508, 509, 515, - 516, 528, 510, 511, 512, 513, 514, 530, 519, 517, - 531, 520, 532, 521, 533, 518, 522, 523, 534, 535, - 524, 525, 526, 527, 536, 537, 515, 516, 528, 538, - 539, 542, 543, 540, 530, 545, 517, 531, 541, 532, - 546, 533, 518, 547, 548, 534, 535, 549, 550, 544, - 551, 536, 537, 552, 554, 555, 538, 539, 542, 543, - 540, 556, 545, 558, 559, 541, 560, 546, 561, 562, - - 547, 548, 563, 564, 549, 550, 544, 551, 565, 566, - 552, 554, 555, 567, 568, 569, 570, 571, 556, 572, - 558, 559, 573, 560, 574, 561, 562, 576, 577, 563, - 564, 578, 579, 580, 575, 565, 566, 581, 584, 585, - 567, 568, 569, 570, 571, 586, 572, 587, 588, 573, - 589, 574, 590, 592, 576, 577, 593, 595, 578, 579, - 580, 575, 591, 597, 581, 584, 585, 598, 594, 599, - 600, 596, 586, 601, 587, 588, 602, 589, 603, 590, - 592, 604, 607, 593, 595, 605, 608, 609, 610, 591, - 597, 611, 606, 612, 598, 594, 599, 600, 596, 616, - - 601, 614, 617, 602, 618, 603, 620, 615, 604, 607, - 621, 622, 605, 608, 609, 610, 623, 626, 611, 606, - 612, 619, 624, 627, 628, 625, 616, 629, 614, 617, - 630, 618, 631, 620, 615, 632, 633, 621, 622, 634, - 635, 636, 638, 623, 626, 640, 641, 642, 619, 624, - 627, 628, 625, 646, 629, 647, 648, 630, 649, 631, - 643, 650, 632, 633, 644, 651, 634, 635, 636, 638, - 645, 652, 640, 641, 642, 653, 654, 655, 656, 657, - 646, 658, 647, 648, 659, 649, 660, 643, 650, 661, - 663, 644, 651, 665, 666, 667, 668, 645, 652, 669, - - 670, 671, 653, 654, 655, 656, 657, 673, 658, 674, - 675, 659, 676, 660, 677, 678, 661, 663, 679, 672, - 665, 666, 667, 668, 680, 681, 669, 670, 671, 682, - 683, 684, 686, 688, 673, 689, 674, 675, 691, 676, - 692, 677, 678, 693, 694, 679, 695, 697, 698, 699, - 700, 680, 681, 701, 702, 704, 682, 683, 684, 686, - 688, 705, 689, 710, 706, 691, 711, 692, 708, 709, - 693, 694, 707, 695, 697, 698, 699, 700, 712, 713, - 701, 702, 704, 714, 715, 716, 717, 718, 705, 719, - 710, 706, 720, 711, 721, 708, 709, 722, 723, 707, - - 724, 725, 726, 727, 728, 712, 713, 729, 730, 731, - 714, 715, 716, 717, 718, 732, 719, 734, 735, 720, - 736, 721, 737, 738, 722, 723, 739, 724, 725, 726, - 727, 728, 740, 741, 729, 730, 731, 742, 744, 745, - 746, 747, 732, 748, 734, 735, 749, 736, 750, 737, - 738, 751, 754, 739, 752, 753, 755, 756, 757, 740, - 741, 765, 766, 1184, 742, 744, 745, 746, 747, 1176, - 748, 767, 768, 749, 769, 750, 771, 772, 751, 754, - 774, 752, 753, 755, 756, 757, 758, 775, 765, 766, - 759, 776, 760, 777, 761, 778, 762, 763, 767, 768, - - 779, 769, 764, 771, 772, 780, 781, 774, 783, 784, - 785, 786, 787, 758, 775, 788, 789, 759, 776, 760, - 777, 761, 778, 762, 763, 790, 791, 779, 792, 764, - 793, 794, 780, 781, 795, 783, 784, 785, 786, 787, - 796, 797, 788, 789, 799, 801, 803, 804, 805, 806, - 807, 808, 790, 791, 809, 792, 811, 793, 794, 812, - 813, 795, 814, 815, 816, 817, 818, 796, 797, 1172, - 822, 799, 801, 803, 804, 805, 806, 807, 808, 823, - 824, 809, 825, 811, 826, 827, 812, 813, 828, 814, - 815, 816, 817, 818, 819, 820, 821, 822, 829, 830, - - 831, 832, 833, 834, 835, 836, 823, 824, 837, 825, - 838, 826, 827, 839, 840, 828, 841, 842, 843, 845, - 847, 819, 820, 821, 848, 829, 830, 831, 832, 833, - 834, 835, 836, 849, 850, 837, 851, 838, 852, 853, - 839, 840, 854, 841, 842, 843, 845, 847, 855, 856, - 857, 848, 858, 859, 860, 861, 862, 863, 864, 865, - 849, 850, 866, 851, 867, 852, 853, 868, 876, 854, - 877, 878, 879, 880, 881, 855, 856, 857, 882, 858, - 859, 860, 861, 862, 863, 864, 865, 883, 885, 866, - 886, 867, 888, 889, 868, 876, 893, 877, 878, 879, - - 880, 881, 894, 895, 896, 882, 897, 898, 899, 900, - 901, 902, 907, 911, 883, 885, 912, 886, 904, 888, - 889, 913, 905, 893, 914, 906, 915, 908, 916, 894, - 895, 896, 909, 897, 898, 899, 900, 901, 902, 907, - 911, 917, 918, 912, 910, 904, 919, 920, 913, 905, - 921, 914, 906, 915, 908, 916, 922, 923, 924, 909, - 925, 926, 927, 928, 929, 930, 931, 932, 917, 918, - 933, 910, 934, 919, 920, 935, 936, 921, 938, 939, - 940, 942, 943, 922, 923, 924, 944, 925, 926, 927, - 928, 929, 930, 931, 932, 945, 946, 933, 947, 934, - - 948, 949, 935, 936, 951, 938, 939, 940, 942, 943, - 952, 950, 953, 944, 954, 955, 956, 957, 958, 959, - 960, 961, 945, 946, 962, 947, 963, 948, 949, 964, - 965, 951, 966, 967, 968, 969, 970, 952, 950, 953, - 971, 954, 955, 956, 957, 958, 959, 960, 961, 972, - 973, 962, 974, 963, 975, 976, 964, 965, 977, 966, - 967, 968, 969, 970, 979, 980, 981, 971, 982, 983, - 984, 985, 986, 987, 988, 989, 972, 973, 990, 974, - 991, 975, 976, 996, 890, 977, 891, 997, 1000, 1002, - 1003, 979, 980, 981, 892, 982, 983, 984, 985, 986, - - 987, 988, 989, 1004, 1005, 990, 1006, 991, 1007, 1008, - 996, 1009, 1010, 1011, 997, 1000, 1002, 1003, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1026, 1023, 1027, - 1004, 1005, 1024, 1006, 1028, 1007, 1008, 1029, 1009, 1010, - 1011, 1030, 1032, 1033, 1034, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1026, 1023, 1027, 1035, 1036, 1024, - 1037, 1028, 1038, 1039, 1029, 1042, 1043, 1045, 1030, 1032, - 1033, 1034, 1040, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1041, 1054, 1056, 1057, 1035, 1036, 1058, 1037, 1059, 1038, - 1039, 1060, 1042, 1043, 1045, 1061, 1062, 1063, 1064, 1040, - - 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1041, 1054, 1056, - 1057, 1065, 1066, 1058, 1067, 1059, 1068, 1069, 1060, 1070, - 1071, 1072, 1061, 1062, 1063, 1064, 1075, 1076, 1073, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1065, 1066, - 1086, 1067, 1087, 1068, 1069, 1074, 1070, 1071, 1072, 1088, - 1089, 1090, 1091, 1075, 1076, 1073, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1092, 1093, 1086, 1094, 1087, - 1095, 1096, 1074, 1097, 1098, 1099, 1088, 1089, 1090, 1091, - 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1092, 1093, 1112, 1094, 1113, 1095, 1096, 1114, - - 1097, 1098, 1099, 1115, 1117, 1118, 1119, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1120, - 1121, 1112, 1122, 1113, 1123, 1124, 1114, 1125, 1126, 1127, - 1115, 1117, 1118, 1119, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1136, 1137, 1138, 1139, 1140, 1120, 1121, 1141, 1122, - 1142, 1123, 1124, 1143, 1125, 1126, 1127, 1144, 1145, 1146, - 1147, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1136, 1137, - 1138, 1139, 1140, 1148, 1149, 1141, 1150, 1142, 1151, 1152, - 1143, 1153, 1154, 1155, 1144, 1145, 1146, 1147, 1157, 1158, - 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, - - 1148, 1149, 1169, 1150, 1170, 1151, 1152, 1171, 1153, 1154, - 1155, 1173, 1174, 1175, 1177, 1157, 1158, 1159, 1160, 1161, - 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1178, 1179, 1169, - 1180, 1170, 1181, 1182, 1171, 1183, 1185, 1186, 1173, 1174, - 1175, 1177, 1187, 1189, 1190, 1191, 1192, 1193, 1194, 1195, - 1188, 1196, 1197, 1199, 1178, 1179, 1200, 1180, 1201, 1181, - 1182, 1202, 1183, 1185, 1186, 1203, 1204, 1205, 1206, 1187, - 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1207, 1196, 1197, - 1199, 1208, 1209, 1200, 1210, 1201, 1212, 1213, 1202, 1214, - 1211, 1216, 1203, 1204, 1205, 1206, 1217, 1218, 1219, 1220, - - 1221, 1222, 1223, 1224, 1207, 1225, 1226, 1227, 1208, 1209, - 1230, 1210, 1228, 1212, 1213, 1231, 1214, 1211, 1216, 1229, - 1233, 1234, 1235, 1217, 1218, 1219, 1220, 1221, 1222, 1223, - 1224, 1236, 1225, 1226, 1227, 1237, 1238, 1230, 1239, 1228, - 1240, 1241, 1231, 1242, 1243, 1244, 1229, 1233, 1234, 1235, - 1245, 1246, 1248, 1250, 1251, 1252, 1253, 1254, 1236, 1255, - 1256, 1257, 1237, 1238, 1258, 1239, 1260, 1240, 1241, 1262, - 1242, 1243, 1244, 1263, 1264, 1266, 1267, 1245, 1246, 1248, - 1250, 1251, 1252, 1253, 1254, 1268, 1255, 1256, 1257, 1269, - 1270, 1258, 1271, 1260, 1272, 1273, 1262, 1274, 1275, 1276, - - 1263, 1264, 1266, 1267, 1277, 1279, 1280, 1281, 1282, 1283, - 1290, 1291, 1268, 1292, 1293, 1294, 1269, 1270, 1295, 1271, - 1297, 1272, 1273, 1298, 1274, 1275, 1276, 1299, 1300, 1301, - 1302, 1277, 1279, 1280, 1281, 1282, 1283, 1290, 1291, 1303, - 1292, 1293, 1294, 1304, 1305, 1295, 1306, 1297, 1308, 1310, - 1298, 1311, 1312, 1313, 1299, 1300, 1301, 1302, 1314, 1315, - 1316, 1318, 1319, 1320, 1322, 1309, 1303, 1324, 1325, 1328, - 1304, 1305, 1329, 1306, 1330, 1308, 1310, 1331, 1311, 1312, - 1313, 1326, 1332, 1333, 1334, 1314, 1315, 1316, 1318, 1319, - 1320, 1322, 1309, 1335, 1324, 1325, 1328, 1337, 1327, 1329, - - 1338, 1330, 1339, 1340, 1331, 1341, 1342, 1343, 1326, 1332, - 1333, 1334, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1335, 1352, 1353, 1354, 1337, 1327, 1356, 1338, 1357, 1339, - 1340, 1358, 1341, 1342, 1343, 1359, 1361, 1362, 1363, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1364, 1352, 1353, - 1354, 1365, 1366, 1356, 1367, 1357, 1370, 1371, 1358, 1372, - 1374, 1375, 1359, 1361, 1362, 1363, 1378, 1379, 1376, 1380, - 1382, 1383, 1384, 1385, 1364, 1386, 1387, 1388, 1365, 1366, - 1389, 1367, 1390, 1370, 1371, 1377, 1372, 1374, 1375, 1393, - 1394, 1395, 1396, 1378, 1379, 1376, 1380, 1382, 1383, 1384, - - 1385, 1391, 1386, 1387, 1388, 1397, 1392, 1389, 1398, 1390, - 1399, 1400, 1377, 1401, 1402, 1403, 1393, 1394, 1395, 1396, - 1404, 1405, 1406, 1408, 1409, 1410, 1411, 1413, 1391, 1416, - 1417, 1418, 1397, 1392, 1419, 1398, 1420, 1399, 1400, 1421, - 1401, 1402, 1403, 1422, 1423, 1424, 1425, 1404, 1405, 1406, - 1408, 1409, 1410, 1411, 1413, 1426, 1416, 1417, 1418, 1427, - 1428, 1419, 1429, 1420, 1430, 1431, 1421, 1433, 1434, 1435, - 1422, 1423, 1424, 1425, 1436, 1437, 1439, 1440, 1441, 1442, - 1443, 1444, 1426, 1446, 1447, 1448, 1427, 1428, 1449, 1429, - 1450, 1430, 1431, 1451, 1433, 1434, 1435, 1452, 1454, 1455, - - 1456, 1436, 1437, 1439, 1440, 1441, 1442, 1443, 1444, 1457, - 1446, 1447, 1448, 1458, 1460, 1449, 1461, 1450, 1462, 1463, - 1451, 1464, 1465, 1466, 1452, 1454, 1455, 1456, 1467, 1468, - 1469, 1470, 1471, 1472, 1473, 1474, 1457, 1475, 1476, 1477, - 1458, 1460, 1478, 1461, 1479, 1462, 1463, 1480, 1464, 1465, - 1466, 1481, 1482, 1483, 1484, 1467, 1468, 1469, 1470, 1471, - 1472, 1473, 1474, 1485, 1475, 1476, 1477, 1486, 1487, 1478, - 1488, 1479, 1489, 1490, 1480, 1491, 1492, 1493, 1481, 1482, - 1483, 1484, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, - 1485, 1502, 1503, 1504, 1486, 1487, 1505, 1488, 1506, 1489, - - 1490, 1507, 1491, 1492, 1493, 1508, 1509, 1510, 1511, 1494, - 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1512, 1502, 1503, - 1504, 1513, 1514, 1505, 1515, 1506, 1516, 1517, 1507, 1518, - 1519, 1520, 1508, 1509, 1510, 1511, 1521, 1522, 1523, 1524, - 1525, 1526, 1527, 1528, 1512, 1529, 1530, 1531, 1513, 1514, - 1532, 1515, 1533, 1516, 1517, 1534, 1518, 1519, 1520, 1536, - 1537, 1538, 1539, 1521, 1522, 1523, 1524, 1525, 1526, 1527, - 1528, 1540, 1529, 1530, 1531, 1541, 1542, 1532, 1543, 1533, - 1544, 1545, 1534, 1546, 1547, 1548, 1536, 1537, 1538, 1539, - 1549, 1550, 1551, 1552, 1554, 1553, 1556, 1557, 1540, 1558, - - 1559, 1560, 1541, 1542, 1563, 1543, 1564, 1544, 1545, 1565, - 1546, 1547, 1548, 1561, 1566, 1567, 1568, 1549, 1550, 1551, - 1552, 1554, 1553, 1556, 1557, 1569, 1558, 1559, 1560, 1570, - 1562, 1563, 1571, 1564, 1572, 1573, 1565, 1574, 1575, 1576, - 1561, 1566, 1567, 1568, 1577, 1578, 1579, 1580, 1581, 1582, - 1583, 1584, 1569, 1585, 1586, 1587, 1570, 1562, 1588, 1571, - 1589, 1572, 1573, 1590, 1574, 1575, 1576, 1591, 1592, 1593, - 1594, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1595, - 1585, 1586, 1587, 1596, 1597, 1588, 1598, 1589, 1599, 1600, - 1590, 1602, 1603, 1604, 1591, 1592, 1593, 1594, 1605, 1606, - - 1607, 1608, 1609, 1610, 1611, 1612, 1595, 1613, 1614, 1615, - 1596, 1597, 1616, 1598, 1617, 1599, 1600, 1618, 1602, 1603, - 1604, 1619, 1620, 1621, 1156, 1605, 1606, 1607, 1608, 1609, - 1610, 1611, 1612, 1135, 1613, 1614, 1615, 1116, 995, 1616, - 995, 1617, 993, 993, 1618, 1055, 1053, 1044, 1619, 1620, - 1621, 37, 37, 1031, 1025, 1022, 1012, 1001, 999, 998, - 995, 993, 978, 941, 937, 903, 887, 884, 875, 874, - 873, 872, 871, 870, 869, 846, 844, 810, 802, 800, - 798, 782, 773, 770, 743, 733, 703, 696, 690, 687, - 685, 664, 662, 639, 637, 613, 583, 582, 557, 553, - - 529, 497, 487, 485, 476, 458, 454, 444, 428, 414, - 408, 406, 382, 367, 333, 319, 277, 249, 35, 35, - 1622, 3, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622 + 6, 7, 8, 9, 10, 6, 11, 12, 13, 13, + 13, 6, 6, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 6, + 30, 31, 32, 33, 6, 34, 35, 36, 6, 6, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 6, 30, 31, 32, + 33, 6, 34, 35, 36, 6, 38, 38, 45, 39, + 39, 43, 43, 47, 57, 48, 49, 49, 49, 85, + 58, 999, 104, 46, 43, 43, 325, 326, 67, 997, + 59, 134, 68, 49, 49, 49, 69, 71, 72, 70, + + 135, 57, 44, 137, 41, 74, 85, 58, 73, 104, + 46, 50, 51, 75, 52, 67, 76, 59, 134, 68, + 53, 77, 54, 69, 71, 72, 70, 135, 78, 55, + 137, 56, 74, 1421, 1422, 73, 1610, 79, 50, 51, + 75, 52, 83, 76, 84, 80, 1564, 53, 77, 54, + 110, 81, 1544, 86, 111, 78, 55, 82, 56, 60, + 87, 61, 138, 88, 79, 89, 62, 63, 112, 83, + 64, 84, 80, 65, 1467, 90, 139, 110, 81, 91, + 86, 111, 140, 66, 82, 92, 60, 87, 61, 138, + 88, 141, 89, 62, 63, 112, 142, 64, 128, 129, + + 65, 131, 90, 139, 130, 132, 91, 143, 133, 140, + 66, 144, 92, 93, 94, 145, 146, 95, 141, 147, + 148, 96, 149, 142, 150, 128, 129, 97, 131, 151, + 1461, 130, 132, 152, 143, 133, 1452, 1445, 144, 159, + 93, 94, 145, 146, 95, 160, 147, 148, 96, 149, + 153, 150, 157, 158, 97, 98, 151, 99, 154, 100, + 152, 168, 169, 101, 155, 178, 159, 166, 1439, 102, + 156, 170, 160, 171, 1419, 103, 1414, 153, 176, 157, + 158, 167, 98, 183, 99, 154, 100, 177, 168, 169, + 101, 155, 178, 1387, 166, 179, 102, 156, 170, 172, + + 171, 173, 103, 105, 181, 176, 184, 185, 167, 180, + 183, 106, 174, 188, 177, 182, 175, 107, 189, 190, + 108, 109, 179, 191, 192, 1379, 172, 186, 173, 187, + 105, 181, 1375, 184, 185, 193, 180, 1374, 106, 174, + 188, 194, 182, 175, 107, 189, 190, 108, 109, 113, + 191, 192, 114, 115, 186, 116, 187, 195, 196, 117, + 118, 119, 193, 120, 121, 1366, 197, 198, 194, 200, + 202, 199, 1361, 1341, 201, 203, 113, 204, 1328, 114, + 115, 208, 116, 1326, 195, 196, 117, 118, 119, 1322, + 120, 121, 122, 197, 198, 205, 200, 202, 199, 123, + + 124, 201, 203, 125, 204, 206, 209, 212, 208, 210, + 126, 207, 213, 215, 221, 216, 127, 1312, 1301, 122, + 1294, 1293, 205, 217, 211, 214, 123, 124, 222, 223, + 125, 218, 206, 209, 212, 1292, 210, 126, 207, 213, + 215, 221, 216, 127, 161, 162, 224, 219, 220, 163, + 217, 211, 225, 233, 238, 222, 223, 164, 218, 242, + 240, 243, 165, 1291, 1290, 1289, 1282, 1269, 239, 247, + 1265, 161, 162, 224, 219, 220, 163, 248, 249, 225, + 233, 238, 241, 234, 164, 250, 242, 240, 243, 165, + 226, 244, 227, 228, 235, 239, 247, 229, 236, 230, + + 237, 245, 231, 251, 248, 249, 252, 253, 232, 241, + 234, 246, 250, 255, 256, 1263, 262, 226, 244, 227, + 228, 235, 1254, 1252, 229, 236, 230, 237, 245, 231, + 251, 263, 267, 252, 253, 232, 265, 264, 246, 266, + 255, 256, 257, 262, 268, 271, 272, 269, 273, 258, + 259, 274, 275, 276, 278, 279, 260, 280, 263, 267, + 277, 281, 261, 265, 264, 270, 266, 283, 284, 257, + 285, 268, 271, 272, 269, 273, 258, 259, 274, 275, + 276, 278, 279, 260, 280, 286, 287, 277, 281, 261, + 288, 289, 270, 290, 283, 284, 291, 285, 292, 293, + + 294, 295, 296, 298, 299, 300, 297, 301, 302, 303, + 304, 305, 286, 287, 306, 307, 308, 288, 289, 309, + 290, 310, 311, 291, 314, 292, 293, 294, 295, 296, + 298, 299, 300, 297, 301, 302, 303, 304, 305, 312, + 315, 306, 307, 308, 316, 317, 309, 318, 310, 311, + 321, 314, 313, 319, 320, 322, 324, 327, 328, 329, + 331, 332, 330, 333, 334, 335, 312, 315, 336, 338, + 339, 316, 317, 342, 318, 343, 344, 321, 345, 313, + 319, 320, 322, 324, 327, 328, 329, 331, 332, 330, + 333, 334, 335, 340, 346, 336, 338, 339, 347, 341, + + 342, 348, 343, 344, 349, 345, 350, 351, 353, 354, + 355, 356, 352, 357, 358, 359, 360, 361, 362, 363, + 340, 346, 364, 365, 366, 347, 367, 368, 348, 372, + 369, 349, 370, 350, 351, 353, 354, 355, 356, 352, + 357, 358, 359, 360, 361, 362, 363, 373, 374, 364, + 365, 366, 375, 367, 368, 376, 372, 369, 377, 370, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 390, + 388, 391, 392, 393, 373, 374, 394, 395, 396, 375, + 389, 399, 376, 1237, 400, 377, 401, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 390, 388, 391, 392, + + 393, 397, 402, 394, 395, 396, 403, 389, 399, 405, + 398, 400, 406, 401, 407, 408, 409, 410, 412, 414, + 404, 415, 416, 417, 418, 420, 421, 422, 397, 402, + 423, 424, 425, 403, 426, 427, 405, 428, 429, 406, + 430, 407, 408, 409, 410, 412, 414, 404, 415, 416, + 417, 418, 420, 421, 422, 431, 432, 423, 424, 425, + 433, 426, 427, 434, 428, 429, 435, 430, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 449, 453, 431, 432, 454, 450, 457, 433, 455, 456, + 434, 451, 459, 435, 460, 436, 437, 438, 439, 440, + + 441, 442, 443, 444, 445, 446, 447, 449, 453, 452, + 461, 454, 450, 457, 463, 455, 456, 464, 451, 459, + 1222, 460, 472, 473, 474, 477, 1219, 475, 478, 479, + 1202, 1188, 476, 481, 482, 483, 484, 461, 485, 490, + 492, 463, 493, 494, 464, 465, 466, 467, 495, 472, + 473, 474, 477, 468, 475, 478, 479, 469, 470, 476, + 481, 482, 483, 484, 471, 485, 490, 492, 486, 493, + 494, 496, 465, 466, 467, 495, 497, 498, 499, 500, + 468, 502, 503, 504, 469, 470, 487, 509, 506, 510, + 511, 471, 507, 505, 488, 486, 512, 508, 496, 513, + + 514, 515, 516, 497, 498, 499, 500, 517, 502, 503, + 504, 518, 519, 487, 509, 506, 510, 511, 524, 507, + 520, 521, 525, 512, 508, 526, 513, 514, 515, 516, + 522, 527, 528, 529, 517, 530, 523, 531, 518, 519, + 532, 533, 535, 536, 537, 524, 538, 520, 521, 525, + 539, 540, 526, 541, 542, 543, 544, 522, 527, 528, + 529, 545, 530, 523, 531, 547, 546, 532, 533, 535, + 536, 537, 548, 538, 550, 551, 552, 539, 540, 553, + 541, 542, 543, 544, 554, 555, 556, 557, 545, 549, + 559, 560, 547, 546, 561, 563, 564, 565, 566, 548, + + 567, 550, 551, 552, 568, 569, 553, 570, 571, 572, + 573, 554, 555, 556, 557, 574, 549, 559, 560, 575, + 576, 561, 563, 564, 565, 566, 577, 567, 578, 580, + 581, 568, 569, 582, 570, 571, 572, 573, 579, 583, + 584, 585, 574, 588, 589, 590, 575, 576, 591, 592, + 593, 594, 596, 577, 601, 578, 580, 581, 602, 599, + 582, 595, 597, 603, 604, 579, 583, 584, 585, 605, + 588, 589, 590, 600, 598, 591, 592, 593, 594, 596, + 606, 601, 607, 608, 611, 602, 599, 609, 595, 597, + 603, 604, 612, 613, 610, 614, 605, 615, 616, 618, + + 600, 598, 620, 621, 624, 619, 622, 606, 625, 607, + 608, 611, 626, 627, 609, 628, 630, 631, 629, 612, + 613, 610, 614, 623, 615, 616, 618, 632, 633, 620, + 621, 624, 619, 622, 634, 625, 635, 636, 637, 626, + 627, 638, 628, 630, 631, 629, 639, 640, 642, 643, + 623, 645, 646, 647, 632, 633, 648, 651, 652, 653, + 649, 634, 654, 635, 636, 637, 650, 655, 638, 656, + 657, 658, 659, 639, 640, 642, 643, 660, 645, 646, + 647, 661, 662, 648, 651, 652, 653, 649, 663, 654, + 664, 665, 666, 650, 655, 668, 656, 657, 658, 659, + + 670, 671, 672, 673, 660, 674, 675, 676, 661, 662, + 678, 679, 680, 681, 682, 663, 683, 664, 665, 666, + 684, 685, 668, 686, 687, 677, 688, 670, 671, 672, + 673, 690, 674, 675, 676, 692, 693, 678, 679, 680, + 681, 682, 695, 683, 696, 697, 698, 684, 685, 699, + 686, 687, 701, 688, 702, 703, 704, 705, 690, 706, + 708, 709, 692, 693, 712, 713, 710, 714, 715, 695, + 716, 696, 697, 698, 711, 717, 699, 718, 719, 701, + 720, 702, 703, 704, 705, 721, 706, 708, 709, 722, + 723, 712, 713, 710, 714, 715, 724, 716, 725, 726, + + 727, 711, 717, 728, 718, 719, 729, 720, 730, 731, + 732, 733, 721, 734, 735, 736, 722, 723, 738, 739, + 740, 741, 742, 724, 743, 725, 726, 727, 744, 745, + 728, 746, 748, 729, 749, 730, 731, 732, 733, 750, + 734, 735, 736, 751, 752, 738, 739, 740, 741, 742, + 753, 743, 754, 755, 758, 744, 745, 759, 746, 748, + 760, 749, 756, 757, 761, 762, 750, 770, 771, 772, + 751, 752, 895, 773, 896, 774, 1181, 753, 776, 754, + 755, 758, 897, 777, 759, 779, 780, 760, 781, 756, + 757, 761, 762, 763, 770, 771, 772, 764, 782, 765, + + 773, 766, 774, 767, 768, 776, 783, 784, 785, 769, + 777, 786, 779, 780, 788, 781, 789, 790, 791, 792, + 763, 793, 794, 795, 764, 782, 765, 796, 766, 797, + 767, 768, 798, 783, 784, 785, 769, 799, 786, 800, + 801, 788, 802, 789, 790, 791, 792, 804, 793, 794, + 795, 806, 807, 808, 796, 809, 797, 810, 811, 798, + 812, 813, 815, 816, 799, 817, 800, 801, 818, 802, + 819, 820, 821, 822, 804, 823, 824, 825, 806, 807, + 808, 826, 809, 827, 810, 811, 828, 812, 813, 815, + 816, 829, 817, 830, 831, 818, 832, 819, 820, 821, + + 822, 833, 823, 824, 825, 834, 835, 836, 826, 837, + 827, 838, 839, 828, 840, 841, 842, 843, 829, 844, + 830, 831, 845, 832, 846, 847, 849, 851, 833, 852, + 853, 854, 834, 835, 836, 855, 837, 856, 838, 839, + 857, 840, 841, 842, 843, 858, 844, 859, 860, 845, + 861, 846, 847, 849, 851, 862, 852, 853, 854, 863, + 864, 865, 855, 866, 856, 867, 868, 857, 869, 870, + 871, 872, 858, 873, 859, 860, 881, 861, 882, 883, + 884, 885, 862, 886, 887, 888, 863, 864, 865, 890, + 866, 891, 867, 868, 893, 869, 870, 871, 872, 894, + + 873, 898, 899, 881, 900, 882, 883, 884, 885, 901, + 886, 887, 888, 902, 903, 904, 890, 905, 891, 906, + 907, 893, 912, 909, 1177, 916, 894, 910, 898, 899, + 911, 900, 917, 918, 913, 919, 901, 920, 921, 914, + 902, 903, 904, 922, 905, 923, 906, 907, 924, 912, + 909, 915, 916, 925, 910, 926, 927, 911, 928, 917, + 918, 913, 919, 929, 920, 921, 914, 930, 931, 932, + 922, 933, 923, 934, 935, 924, 936, 937, 915, 938, + 925, 939, 926, 927, 940, 928, 942, 943, 944, 946, + 929, 947, 948, 949, 930, 931, 932, 950, 933, 951, + + 934, 935, 952, 936, 937, 955, 938, 953, 939, 956, + 957, 940, 958, 942, 943, 944, 946, 954, 947, 948, + 949, 959, 960, 961, 950, 962, 951, 963, 964, 952, + 965, 966, 955, 967, 953, 968, 956, 957, 969, 958, + 970, 971, 972, 973, 954, 974, 976, 977, 959, 960, + 961, 978, 962, 979, 963, 964, 980, 965, 966, 981, + 967, 982, 968, 984, 985, 969, 986, 970, 971, 972, + 973, 987, 974, 976, 977, 988, 989, 990, 978, 991, + 979, 992, 993, 980, 994, 995, 981, 996, 982, 1001, + 984, 985, 1002, 986, 1005, 895, 1007, 896, 987, 1008, + + 1009, 1010, 988, 989, 990, 897, 991, 1011, 992, 993, + 1012, 994, 995, 1013, 996, 1014, 1001, 1015, 1016, 1002, + 1018, 1005, 1019, 1007, 1020, 1021, 1008, 1009, 1010, 1022, + 1023, 1024, 1025, 1030, 1011, 1027, 1031, 1012, 1032, 1028, + 1013, 1033, 1014, 1034, 1015, 1016, 1036, 1018, 1037, 1019, + 1038, 1020, 1021, 1039, 1040, 1041, 1022, 1023, 1024, 1025, + 1030, 1042, 1027, 1031, 1046, 1032, 1028, 1043, 1033, 1047, + 1034, 1049, 1050, 1036, 1051, 1037, 1044, 1038, 1052, 1053, + 1039, 1040, 1041, 1054, 1045, 1055, 1056, 1058, 1042, 1060, + 1061, 1046, 1062, 1063, 1043, 1064, 1047, 1065, 1049, 1050, + + 1066, 1051, 1067, 1044, 1068, 1052, 1053, 1069, 1070, 1071, + 1054, 1045, 1055, 1056, 1058, 1072, 1060, 1061, 1073, 1062, + 1063, 1074, 1064, 1075, 1065, 1076, 1077, 1066, 1080, 1067, + 1078, 1068, 1081, 1082, 1069, 1070, 1071, 1083, 1084, 1085, + 1086, 1087, 1072, 1088, 1089, 1073, 1090, 1079, 1074, 1091, + 1075, 1092, 1076, 1077, 1093, 1080, 1094, 1078, 1095, 1081, + 1082, 1096, 1097, 1098, 1083, 1084, 1085, 1086, 1087, 1099, + 1088, 1089, 1100, 1090, 1079, 1101, 1091, 1102, 1092, 1103, + 1104, 1093, 1105, 1094, 1106, 1095, 1107, 1108, 1096, 1097, + 1098, 1109, 1110, 1111, 1112, 1113, 1099, 1114, 1115, 1100, + + 1116, 1117, 1101, 1118, 1102, 1119, 1103, 1104, 1121, 1105, + 1122, 1106, 1123, 1107, 1108, 1124, 1125, 1126, 1109, 1110, + 1111, 1112, 1113, 1127, 1114, 1115, 1128, 1116, 1117, 1129, + 1118, 1130, 1119, 1131, 1132, 1121, 1133, 1122, 1134, 1123, + 1135, 1136, 1124, 1125, 1126, 1137, 1138, 1140, 1141, 1142, + 1127, 1143, 1144, 1128, 1145, 1146, 1129, 1147, 1130, 1148, + 1131, 1132, 1149, 1133, 1150, 1134, 1151, 1135, 1136, 1152, + 1153, 1154, 1137, 1138, 1140, 1141, 1142, 1155, 1143, 1144, + 1156, 1145, 1146, 1157, 1147, 1158, 1148, 1159, 1160, 1149, + 1162, 1150, 1163, 1151, 1164, 1165, 1152, 1153, 1154, 1166, + + 1167, 1168, 1169, 1170, 1155, 1171, 1172, 1156, 1173, 1174, + 1157, 1175, 1158, 1176, 1159, 1160, 1178, 1162, 1179, 1163, + 1180, 1164, 1165, 1182, 1183, 1184, 1166, 1167, 1168, 1169, + 1170, 1185, 1171, 1172, 1186, 1173, 1174, 1187, 1175, 1189, + 1176, 1190, 1193, 1178, 1194, 1179, 1191, 1180, 1195, 1196, + 1182, 1183, 1184, 1197, 1192, 1198, 1199, 1200, 1185, 1201, + 1203, 1186, 1204, 1205, 1187, 1206, 1189, 1207, 1190, 1193, + 1208, 1194, 1209, 1191, 1210, 1195, 1196, 1211, 1212, 1213, + 1197, 1216, 1198, 1199, 1200, 1214, 1201, 1203, 1217, 1204, + 1205, 1215, 1206, 1218, 1207, 1220, 1221, 1208, 1223, 1209, + + 1224, 1210, 1225, 1226, 1211, 1212, 1213, 1227, 1216, 1228, + 1229, 1230, 1214, 1231, 1232, 1217, 1235, 1233, 1215, 1236, + 1218, 1238, 1220, 1221, 1234, 1223, 1239, 1224, 1240, 1225, + 1226, 1241, 1242, 1243, 1227, 1244, 1228, 1229, 1230, 1245, + 1231, 1232, 1246, 1235, 1233, 1247, 1236, 1248, 1238, 1249, + 1250, 1234, 1251, 1239, 1253, 1240, 1255, 1256, 1241, 1242, + 1243, 1257, 1244, 1258, 1259, 1260, 1245, 1261, 1262, 1246, + 1264, 1266, 1247, 1267, 1248, 1268, 1249, 1250, 1270, 1251, + 1271, 1253, 1272, 1255, 1256, 1273, 1274, 1275, 1257, 1276, + 1258, 1259, 1260, 1277, 1261, 1262, 1278, 1264, 1266, 1279, + + 1267, 1280, 1268, 1281, 1283, 1270, 1284, 1271, 1285, 1272, + 1286, 1287, 1273, 1274, 1275, 1288, 1276, 1295, 1296, 1297, + 1277, 1298, 1299, 1278, 1300, 1302, 1279, 1303, 1280, 1304, + 1281, 1283, 1305, 1284, 1306, 1285, 1307, 1286, 1287, 1308, + 1309, 1310, 1288, 1311, 1295, 1296, 1297, 1313, 1298, 1299, + 1315, 1300, 1302, 1316, 1303, 1317, 1304, 1318, 1319, 1305, + 1320, 1306, 1321, 1307, 1314, 1323, 1308, 1309, 1310, 1324, + 1311, 1325, 1327, 1329, 1313, 1330, 1331, 1315, 1333, 1334, + 1316, 1335, 1317, 1336, 1318, 1319, 1337, 1320, 1338, 1321, + 1339, 1314, 1323, 1332, 1340, 1342, 1324, 1343, 1325, 1327, + + 1329, 1344, 1330, 1331, 1345, 1333, 1334, 1346, 1335, 1347, + 1336, 1348, 1349, 1337, 1350, 1338, 1351, 1339, 1352, 1353, + 1332, 1340, 1342, 1354, 1343, 1355, 1356, 1357, 1344, 1358, + 1359, 1345, 1360, 1362, 1346, 1363, 1347, 1364, 1348, 1349, + 1365, 1350, 1367, 1351, 1368, 1352, 1353, 1369, 1370, 1371, + 1354, 1372, 1355, 1356, 1357, 1373, 1358, 1359, 1376, 1360, + 1362, 1377, 1363, 1378, 1364, 1380, 1381, 1365, 1384, 1367, + 1382, 1368, 1385, 1386, 1369, 1370, 1371, 1388, 1372, 1389, + 1390, 1391, 1373, 1392, 1393, 1376, 1394, 1383, 1377, 1395, + 1378, 1396, 1380, 1381, 1399, 1384, 1397, 1382, 1400, 1385, + + 1386, 1398, 1401, 1402, 1388, 1403, 1389, 1390, 1391, 1404, + 1392, 1393, 1405, 1394, 1383, 1406, 1395, 1407, 1396, 1408, + 1409, 1399, 1410, 1397, 1411, 1400, 1412, 1413, 1398, 1401, + 1402, 1415, 1403, 1416, 1417, 1418, 1404, 1420, 1423, 1405, + 1424, 1425, 1406, 1426, 1407, 1427, 1408, 1409, 1428, 1410, + 1429, 1411, 1430, 1412, 1413, 1431, 1432, 1433, 1415, 1434, + 1416, 1417, 1418, 1435, 1420, 1423, 1436, 1424, 1425, 1437, + 1426, 1438, 1427, 1440, 1441, 1428, 1442, 1429, 1443, 1430, + 1444, 1446, 1431, 1432, 1433, 1447, 1434, 1448, 1449, 1450, + 1435, 1451, 1453, 1436, 1454, 1455, 1437, 1456, 1438, 1457, + + 1440, 1441, 1458, 1442, 1459, 1443, 1460, 1444, 1446, 1462, + 1463, 1464, 1447, 1465, 1448, 1449, 1450, 1466, 1451, 1453, + 1468, 1454, 1455, 1469, 1456, 1470, 1457, 1471, 1472, 1458, + 1473, 1459, 1474, 1460, 1475, 1476, 1462, 1463, 1464, 1477, + 1465, 1478, 1479, 1480, 1466, 1481, 1482, 1468, 1483, 1484, + 1469, 1485, 1470, 1486, 1471, 1472, 1487, 1473, 1488, 1474, + 1489, 1475, 1476, 1490, 1491, 1492, 1477, 1493, 1478, 1479, + 1480, 1494, 1481, 1482, 1495, 1483, 1484, 1496, 1485, 1497, + 1486, 1498, 1499, 1487, 1500, 1488, 1501, 1489, 1502, 1503, + 1490, 1491, 1492, 1504, 1493, 1505, 1506, 1507, 1494, 1508, + + 1509, 1495, 1510, 1511, 1496, 1512, 1497, 1513, 1498, 1499, + 1514, 1500, 1515, 1501, 1516, 1502, 1503, 1517, 1518, 1519, + 1504, 1520, 1505, 1506, 1507, 1521, 1508, 1509, 1522, 1510, + 1511, 1523, 1512, 1524, 1513, 1525, 1526, 1514, 1527, 1515, + 1528, 1516, 1529, 1530, 1517, 1518, 1519, 1531, 1520, 1532, + 1533, 1534, 1521, 1535, 1536, 1522, 1537, 1538, 1523, 1539, + 1524, 1540, 1525, 1526, 1541, 1527, 1542, 1528, 1543, 1529, + 1530, 1545, 1546, 1547, 1531, 1548, 1532, 1533, 1534, 1549, + 1535, 1536, 1550, 1537, 1538, 1551, 1539, 1552, 1540, 1553, + 1554, 1541, 1555, 1542, 1556, 1543, 1557, 1558, 1545, 1546, + + 1547, 1559, 1548, 1560, 1563, 1561, 1549, 1562, 1565, 1550, + 1566, 1567, 1551, 1568, 1552, 1569, 1553, 1554, 1572, 1555, + 1573, 1556, 1570, 1557, 1558, 1574, 1575, 1576, 1559, 1577, + 1560, 1563, 1561, 1578, 1562, 1565, 1579, 1566, 1567, 1571, + 1568, 1580, 1569, 1581, 1582, 1572, 1583, 1573, 1584, 1570, + 1585, 1586, 1574, 1575, 1576, 1587, 1577, 1588, 1589, 1590, + 1578, 1591, 1592, 1579, 1593, 1594, 1571, 1595, 1580, 1596, + 1581, 1582, 1597, 1583, 1598, 1584, 1599, 1585, 1586, 1600, + 1601, 1602, 1587, 1603, 1588, 1589, 1590, 1604, 1591, 1592, + 1605, 1593, 1594, 1606, 1595, 1607, 1596, 1608, 1609, 1597, + + 1611, 1598, 1612, 1599, 1613, 1614, 1600, 1601, 1602, 1615, + 1603, 1616, 1617, 1618, 1604, 1619, 1620, 1605, 1621, 1622, + 1606, 1623, 1607, 1624, 1608, 1609, 1625, 1611, 1626, 1612, + 1627, 1613, 1614, 1628, 1629, 1630, 1615, 1161, 1616, 1617, + 1618, 1139, 1619, 1620, 1120, 1621, 1622, 1000, 1623, 1000, + 1624, 998, 998, 1625, 1059, 1626, 1057, 1627, 1048, 1035, + 1628, 1629, 1630, 37, 37, 42, 42, 1029, 1026, 1017, + 1006, 1004, 1003, 1000, 998, 983, 975, 945, 941, 908, + 892, 889, 880, 879, 878, 877, 876, 875, 874, 850, + 848, 814, 805, 803, 787, 778, 775, 747, 737, 707, + + 700, 694, 691, 689, 669, 667, 644, 641, 617, 587, + 586, 562, 558, 534, 501, 491, 489, 480, 462, 458, + 448, 419, 413, 411, 387, 371, 337, 323, 282, 254, + 40, 136, 40, 1631, 5, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631 } ; -static const flex_int16_t yy_chk[3189] = +static const flex_int16_t yy_chk[3202] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1318,350 +1324,353 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 7, 7, 9, 10, - 13, 10, 11, 11, 11, 18, 13, 16, 16, 21, - 26, 17, 18, 9, 37, 37, 13, 1627, 16, 17, - 33, 34, 17, 1626, 20, 1625, 20, 13, 41, 44, - - 44, 44, 18, 13, 16, 16, 21, 26, 17, 18, - 9, 12, 12, 13, 12, 16, 17, 33, 34, 17, - 12, 20, 12, 20, 45, 41, 46, 47, 19, 12, - 1623, 12, 186, 186, 1593, 784, 19, 784, 12, 12, - 1529, 12, 19, 1505, 48, 784, 1411, 12, 19, 12, - 22, 45, 1404, 46, 47, 19, 12, 22, 12, 14, - 22, 14, 22, 19, 23, 49, 14, 14, 23, 19, - 14, 48, 28, 14, 23, 19, 28, 22, 50, 31, - 31, 51, 1396, 14, 22, 31, 14, 22, 14, 22, - 28, 23, 49, 14, 14, 23, 52, 14, 1388, 28, - - 14, 23, 53, 28, 54, 50, 31, 31, 51, 32, - 14, 15, 31, 32, 56, 15, 32, 28, 55, 15, - 55, 57, 15, 52, 58, 15, 1361, 1361, 1380, 53, - 1357, 54, 60, 60, 1352, 61, 32, 62, 15, 65, - 32, 56, 15, 32, 64, 55, 15, 55, 57, 15, - 66, 58, 15, 24, 24, 59, 67, 24, 64, 60, - 60, 24, 61, 59, 62, 70, 65, 24, 1325, 59, - 1318, 64, 1314, 71, 70, 59, 1313, 66, 74, 1304, - 24, 24, 59, 67, 24, 64, 75, 68, 24, 68, - 59, 69, 70, 69, 24, 25, 59, 25, 72, 25, - - 71, 70, 59, 25, 69, 74, 73, 76, 69, 25, - 78, 79, 72, 75, 68, 25, 68, 73, 69, 77, - 69, 77, 25, 80, 25, 72, 25, 81, 82, 83, - 25, 69, 84, 73, 76, 69, 25, 78, 79, 72, - 85, 86, 25, 27, 73, 87, 77, 89, 77, 88, - 80, 27, 89, 88, 81, 82, 83, 27, 90, 84, - 27, 27, 1298, 91, 92, 1277, 1262, 85, 86, 1260, - 27, 94, 87, 1255, 89, 1245, 88, 1231, 27, 89, - 88, 95, 96, 97, 27, 90, 93, 27, 27, 29, - 91, 92, 29, 29, 98, 29, 93, 96, 94, 29, - - 29, 29, 93, 29, 29, 1224, 99, 98, 95, 96, - 97, 102, 1223, 93, 103, 104, 29, 100, 101, 29, - 29, 98, 29, 93, 96, 100, 29, 29, 29, 93, - 29, 29, 30, 99, 101, 101, 105, 106, 102, 30, - 30, 103, 104, 30, 100, 101, 108, 1222, 112, 113, - 30, 115, 100, 116, 109, 1221, 30, 1220, 1219, 30, - 110, 101, 101, 105, 106, 109, 30, 30, 111, 109, - 30, 109, 114, 108, 110, 112, 113, 30, 115, 117, - 116, 109, 114, 30, 63, 63, 118, 110, 119, 63, - 111, 120, 109, 121, 123, 111, 109, 63, 109, 114, - - 124, 110, 63, 1212, 126, 1197, 117, 129, 127, 114, - 1192, 63, 63, 118, 127, 119, 63, 111, 120, 128, - 121, 123, 128, 130, 63, 131, 132, 124, 133, 63, - 107, 126, 107, 107, 129, 127, 134, 107, 135, 107, - 137, 127, 107, 131, 138, 139, 128, 140, 107, 128, - 130, 138, 131, 132, 142, 133, 1190, 107, 143, 107, - 107, 145, 146, 134, 107, 135, 107, 137, 147, 107, - 131, 138, 139, 148, 140, 107, 125, 149, 138, 150, - 151, 142, 152, 125, 125, 143, 153, 154, 145, 146, - 125, 155, 156, 157, 158, 147, 125, 159, 158, 160, - - 148, 162, 163, 125, 149, 164, 150, 151, 165, 152, - 125, 125, 166, 153, 154, 167, 168, 125, 155, 156, - 157, 158, 169, 125, 159, 158, 160, 170, 162, 163, - 171, 172, 164, 173, 174, 165, 176, 175, 177, 166, - 178, 179, 167, 168, 180, 181, 181, 182, 183, 169, - 175, 185, 187, 188, 170, 190, 189, 171, 172, 189, - 173, 174, 191, 176, 175, 177, 192, 178, 179, 193, - 194, 180, 181, 181, 182, 183, 196, 175, 185, 187, - 188, 198, 190, 189, 199, 200, 189, 201, 202, 191, - 203, 200, 204, 192, 205, 206, 193, 194, 207, 208, - - 209, 210, 211, 196, 212, 213, 210, 214, 198, 215, - 216, 199, 200, 217, 201, 202, 218, 203, 219, 204, - 220, 205, 206, 221, 222, 207, 208, 209, 210, 211, - 223, 212, 213, 210, 214, 224, 215, 216, 225, 227, - 217, 230, 228, 218, 228, 219, 231, 220, 232, 234, - 221, 222, 235, 237, 238, 239, 240, 223, 242, 244, - 245, 246, 224, 247, 249, 225, 227, 250, 230, 228, - 251, 228, 252, 231, 249, 232, 234, 253, 254, 235, - 237, 238, 239, 240, 255, 242, 244, 245, 246, 256, - 247, 249, 258, 257, 250, 259, 260, 251, 261, 252, - - 262, 249, 257, 263, 253, 254, 264, 266, 267, 268, - 269, 255, 272, 275, 262, 276, 256, 277, 278, 258, - 257, 279, 259, 260, 281, 261, 282, 262, 283, 284, - 263, 285, 286, 264, 266, 267, 268, 269, 287, 272, - 275, 262, 276, 290, 277, 278, 291, 292, 279, 294, - 295, 281, 296, 282, 298, 283, 284, 299, 285, 286, - 300, 301, 302, 303, 304, 287, 305, 306, 308, 309, - 290, 310, 311, 291, 292, 312, 294, 295, 313, 296, - 315, 298, 318, 1178, 299, 319, 316, 300, 301, 302, - 303, 304, 316, 305, 306, 308, 309, 324, 310, 311, - - 320, 320, 312, 326, 327, 313, 328, 315, 330, 318, - 316, 331, 319, 316, 1175, 334, 335, 336, 337, 316, - 1159, 338, 339, 337, 324, 1143, 342, 320, 320, 344, - 326, 327, 346, 328, 347, 330, 348, 349, 331, 333, - 333, 333, 334, 335, 336, 337, 353, 333, 338, 339, - 337, 333, 333, 342, 350, 357, 344, 358, 333, 346, - 359, 347, 360, 348, 349, 361, 333, 333, 333, 362, - 363, 364, 350, 353, 333, 365, 367, 368, 333, 333, - 350, 350, 357, 369, 358, 333, 370, 359, 371, 360, - 370, 372, 361, 369, 374, 370, 362, 363, 364, 350, - - 375, 376, 365, 367, 368, 377, 378, 379, 380, 381, - 369, 383, 1120, 370, 384, 371, 386, 370, 372, 387, - 388, 374, 370, 389, 390, 391, 393, 375, 376, 382, - 382, 394, 377, 378, 379, 380, 381, 396, 383, 382, - 397, 384, 398, 386, 399, 382, 387, 388, 400, 401, - 389, 390, 391, 393, 402, 403, 382, 382, 394, 404, - 405, 407, 408, 406, 396, 410, 382, 397, 406, 398, - 411, 399, 382, 413, 414, 400, 401, 416, 418, 408, - 419, 402, 403, 420, 423, 425, 404, 405, 407, 408, - 406, 426, 410, 428, 430, 406, 431, 411, 432, 433, - - 413, 414, 434, 435, 416, 418, 408, 419, 436, 437, - 420, 423, 425, 439, 442, 443, 444, 445, 426, 446, - 428, 430, 447, 431, 448, 432, 433, 450, 451, 434, - 435, 452, 453, 454, 448, 436, 437, 455, 458, 459, - 439, 442, 443, 444, 445, 460, 446, 461, 462, 447, - 463, 448, 464, 465, 450, 451, 466, 467, 452, 453, - 454, 448, 464, 468, 455, 458, 459, 469, 466, 470, - 471, 467, 460, 472, 461, 462, 473, 463, 474, 464, - 465, 475, 477, 466, 467, 476, 478, 479, 480, 464, - 468, 481, 476, 482, 469, 466, 470, 471, 467, 485, - - 472, 484, 486, 473, 487, 474, 488, 484, 475, 477, - 489, 490, 476, 478, 479, 480, 491, 494, 481, 476, - 482, 487, 493, 495, 496, 493, 485, 497, 484, 486, - 498, 487, 499, 488, 484, 501, 502, 489, 490, 503, - 504, 505, 508, 491, 494, 512, 513, 514, 487, 493, - 495, 496, 493, 516, 497, 517, 518, 498, 519, 499, - 515, 520, 501, 502, 515, 521, 503, 504, 505, 508, - 515, 522, 512, 513, 514, 523, 524, 525, 526, 527, - 516, 528, 517, 518, 529, 519, 530, 515, 520, 533, - 536, 515, 521, 538, 540, 541, 542, 515, 522, 543, - - 544, 545, 523, 524, 525, 526, 527, 546, 528, 547, - 548, 529, 550, 530, 551, 552, 533, 536, 553, 545, - 538, 540, 541, 542, 554, 555, 543, 544, 545, 556, - 557, 558, 560, 563, 546, 564, 547, 548, 566, 550, - 567, 551, 552, 568, 569, 553, 570, 572, 573, 574, - 575, 554, 555, 576, 577, 580, 556, 557, 558, 560, - 563, 581, 564, 584, 582, 566, 587, 567, 583, 583, - 568, 569, 582, 570, 572, 573, 574, 575, 588, 589, - 576, 577, 580, 590, 591, 592, 593, 594, 581, 595, - 584, 582, 596, 587, 598, 583, 583, 599, 600, 582, - - 601, 602, 604, 605, 606, 588, 589, 607, 608, 609, - 590, 591, 592, 593, 594, 610, 595, 612, 613, 596, - 614, 598, 615, 616, 599, 600, 617, 601, 602, 604, - 605, 606, 618, 619, 607, 608, 609, 620, 624, 625, - 627, 628, 610, 629, 612, 613, 630, 614, 631, 615, - 616, 632, 634, 617, 633, 633, 635, 637, 638, 618, - 619, 641, 642, 1106, 620, 624, 625, 627, 628, 1097, - 629, 643, 644, 630, 645, 631, 647, 648, 632, 634, - 650, 633, 633, 635, 637, 638, 639, 652, 641, 642, - 639, 653, 639, 654, 639, 656, 639, 639, 643, 644, - - 657, 645, 639, 647, 648, 658, 659, 650, 662, 663, - 664, 665, 666, 639, 652, 667, 668, 639, 653, 639, - 654, 639, 656, 639, 639, 669, 670, 657, 671, 639, - 672, 673, 658, 659, 675, 662, 663, 664, 665, 666, - 678, 679, 667, 668, 681, 683, 685, 686, 687, 688, - 689, 690, 669, 670, 691, 671, 695, 672, 673, 696, - 697, 675, 698, 699, 700, 701, 702, 678, 679, 1092, - 704, 681, 683, 685, 686, 687, 688, 689, 690, 705, - 706, 691, 707, 695, 708, 709, 696, 697, 710, 698, - 699, 700, 701, 702, 703, 703, 703, 704, 711, 712, - - 713, 714, 715, 716, 717, 718, 705, 706, 719, 707, - 720, 708, 709, 721, 723, 710, 724, 727, 728, 730, - 732, 703, 703, 703, 733, 711, 712, 713, 714, 715, - 716, 717, 718, 734, 735, 719, 736, 720, 737, 738, - 721, 723, 739, 724, 727, 728, 730, 732, 740, 741, - 743, 733, 744, 745, 746, 748, 749, 751, 752, 753, - 734, 735, 755, 736, 756, 737, 738, 757, 765, 739, - 767, 768, 769, 770, 771, 740, 741, 743, 772, 744, - 745, 746, 748, 749, 751, 752, 753, 773, 777, 755, - 779, 756, 782, 783, 757, 765, 785, 767, 768, 769, - - 770, 771, 786, 787, 788, 772, 790, 791, 793, 794, - 795, 796, 799, 801, 773, 777, 802, 779, 798, 782, - 783, 803, 798, 785, 804, 798, 805, 800, 806, 786, - 787, 788, 800, 790, 791, 793, 794, 795, 796, 799, - 801, 808, 809, 802, 800, 798, 810, 811, 803, 798, - 812, 804, 798, 805, 800, 806, 813, 815, 816, 800, - 818, 819, 820, 821, 822, 823, 824, 825, 808, 809, - 826, 800, 827, 810, 811, 828, 829, 812, 831, 833, - 834, 836, 837, 813, 815, 816, 838, 818, 819, 820, - 821, 822, 823, 824, 825, 839, 841, 826, 842, 827, - - 843, 844, 828, 829, 846, 831, 833, 834, 836, 837, - 848, 844, 850, 838, 851, 852, 853, 855, 856, 857, - 858, 859, 839, 841, 860, 842, 861, 843, 844, 862, - 863, 846, 864, 865, 866, 867, 868, 848, 844, 850, - 869, 851, 852, 853, 855, 856, 857, 858, 859, 870, - 871, 860, 872, 861, 873, 874, 862, 863, 875, 864, - 865, 866, 867, 868, 877, 878, 879, 869, 880, 881, - 882, 883, 884, 885, 886, 887, 870, 871, 888, 872, - 889, 873, 874, 893, 890, 875, 890, 894, 897, 901, - 902, 877, 878, 879, 890, 880, 881, 882, 883, 884, - - 885, 886, 887, 903, 904, 888, 905, 889, 906, 907, - 893, 908, 909, 910, 894, 897, 901, 902, 912, 913, - 915, 916, 917, 918, 919, 920, 921, 926, 924, 927, - 903, 904, 924, 905, 928, 906, 907, 929, 908, 909, - 910, 931, 933, 934, 936, 912, 913, 915, 916, 917, - 918, 919, 920, 921, 926, 924, 927, 937, 938, 924, - 939, 928, 940, 941, 929, 942, 943, 946, 931, 933, - 934, 936, 941, 947, 948, 949, 950, 951, 952, 953, - 941, 955, 957, 959, 937, 938, 963, 939, 964, 940, - 941, 965, 942, 943, 946, 966, 967, 968, 969, 941, - - 947, 948, 949, 950, 951, 952, 953, 941, 955, 957, - 959, 970, 971, 963, 972, 964, 973, 974, 965, 975, - 976, 977, 966, 967, 968, 969, 979, 980, 978, 981, - 982, 983, 984, 985, 986, 988, 989, 990, 970, 971, - 991, 972, 996, 973, 974, 978, 975, 976, 977, 997, - 998, 999, 1001, 979, 980, 978, 981, 982, 983, 984, - 985, 986, 988, 989, 990, 1002, 1003, 991, 1004, 996, - 1005, 1006, 978, 1007, 1008, 1009, 997, 998, 999, 1001, - 1010, 1011, 1012, 1013, 1014, 1015, 1017, 1019, 1021, 1022, - 1023, 1024, 1002, 1003, 1025, 1004, 1026, 1005, 1006, 1027, - - 1007, 1008, 1009, 1028, 1030, 1031, 1032, 1010, 1011, 1012, - 1013, 1014, 1015, 1017, 1019, 1021, 1022, 1023, 1024, 1033, - 1035, 1025, 1036, 1026, 1037, 1038, 1027, 1039, 1040, 1041, - 1028, 1030, 1031, 1032, 1043, 1044, 1045, 1047, 1048, 1049, - 1050, 1052, 1053, 1054, 1055, 1056, 1033, 1035, 1057, 1036, - 1058, 1037, 1038, 1059, 1039, 1040, 1041, 1060, 1065, 1066, - 1067, 1043, 1044, 1045, 1047, 1048, 1049, 1050, 1052, 1053, - 1054, 1055, 1056, 1068, 1069, 1057, 1070, 1058, 1071, 1072, - 1059, 1073, 1074, 1075, 1060, 1065, 1066, 1067, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - - 1068, 1069, 1089, 1070, 1090, 1071, 1072, 1091, 1073, 1074, - 1075, 1094, 1095, 1096, 1099, 1077, 1078, 1079, 1080, 1081, - 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1100, 1101, 1089, - 1102, 1090, 1103, 1104, 1091, 1105, 1107, 1109, 1094, 1095, - 1096, 1099, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, - 1110, 1118, 1119, 1121, 1100, 1101, 1122, 1102, 1125, 1103, - 1104, 1126, 1105, 1107, 1109, 1127, 1129, 1130, 1131, 1110, - 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1132, 1118, 1119, - 1121, 1133, 1134, 1122, 1135, 1125, 1136, 1137, 1126, 1139, - 1135, 1144, 1127, 1129, 1130, 1131, 1145, 1146, 1147, 1148, - - 1149, 1150, 1151, 1152, 1132, 1153, 1154, 1155, 1133, 1134, - 1157, 1135, 1156, 1136, 1137, 1158, 1139, 1135, 1144, 1156, - 1160, 1161, 1162, 1145, 1146, 1147, 1148, 1149, 1150, 1151, - 1152, 1164, 1153, 1154, 1155, 1165, 1166, 1157, 1167, 1156, - 1168, 1169, 1158, 1170, 1171, 1172, 1156, 1160, 1161, 1162, - 1173, 1174, 1176, 1179, 1180, 1181, 1182, 1184, 1164, 1185, - 1186, 1188, 1165, 1166, 1189, 1167, 1191, 1168, 1169, 1193, - 1170, 1171, 1172, 1194, 1196, 1198, 1199, 1173, 1174, 1176, - 1179, 1180, 1181, 1182, 1184, 1201, 1185, 1186, 1188, 1202, - 1203, 1189, 1204, 1191, 1205, 1206, 1193, 1207, 1209, 1210, - - 1194, 1196, 1198, 1199, 1211, 1213, 1214, 1215, 1216, 1218, - 1225, 1226, 1201, 1227, 1228, 1229, 1202, 1203, 1230, 1204, - 1232, 1205, 1206, 1233, 1207, 1209, 1210, 1235, 1236, 1237, - 1239, 1211, 1213, 1214, 1215, 1216, 1218, 1225, 1226, 1241, - 1227, 1228, 1229, 1242, 1243, 1230, 1244, 1232, 1246, 1247, - 1233, 1248, 1249, 1250, 1235, 1236, 1237, 1239, 1251, 1253, - 1254, 1256, 1257, 1259, 1261, 1246, 1241, 1263, 1264, 1266, - 1242, 1243, 1267, 1244, 1268, 1246, 1247, 1269, 1248, 1249, - 1250, 1265, 1271, 1272, 1274, 1251, 1253, 1254, 1256, 1257, - 1259, 1261, 1246, 1276, 1263, 1264, 1266, 1278, 1265, 1267, - - 1279, 1268, 1280, 1281, 1269, 1283, 1284, 1285, 1265, 1271, - 1272, 1274, 1286, 1287, 1288, 1289, 1290, 1292, 1293, 1294, - 1276, 1295, 1296, 1297, 1278, 1265, 1300, 1279, 1301, 1280, - 1281, 1302, 1283, 1284, 1285, 1303, 1306, 1307, 1308, 1286, - 1287, 1288, 1289, 1290, 1292, 1293, 1294, 1309, 1295, 1296, - 1297, 1310, 1311, 1300, 1312, 1301, 1316, 1317, 1302, 1317, - 1319, 1320, 1303, 1306, 1307, 1308, 1322, 1323, 1321, 1324, - 1326, 1327, 1328, 1330, 1309, 1331, 1332, 1333, 1310, 1311, - 1334, 1312, 1335, 1316, 1317, 1321, 1317, 1319, 1320, 1337, - 1338, 1339, 1340, 1322, 1323, 1321, 1324, 1326, 1327, 1328, - - 1330, 1336, 1331, 1332, 1333, 1341, 1336, 1334, 1342, 1335, - 1343, 1344, 1321, 1345, 1346, 1347, 1337, 1338, 1339, 1340, - 1349, 1350, 1351, 1353, 1354, 1355, 1356, 1360, 1336, 1362, - 1363, 1364, 1341, 1336, 1365, 1342, 1366, 1343, 1344, 1367, - 1345, 1346, 1347, 1368, 1370, 1371, 1372, 1349, 1350, 1351, - 1353, 1354, 1355, 1356, 1360, 1373, 1362, 1363, 1364, 1375, - 1376, 1365, 1377, 1366, 1378, 1379, 1367, 1382, 1383, 1384, - 1368, 1370, 1371, 1372, 1385, 1387, 1389, 1391, 1392, 1393, - 1394, 1395, 1373, 1397, 1398, 1399, 1375, 1376, 1400, 1377, - 1401, 1378, 1379, 1402, 1382, 1383, 1384, 1403, 1406, 1407, - - 1408, 1385, 1387, 1389, 1391, 1392, 1393, 1394, 1395, 1409, - 1397, 1398, 1399, 1410, 1412, 1400, 1413, 1401, 1416, 1417, - 1402, 1418, 1419, 1420, 1403, 1406, 1407, 1408, 1421, 1422, - 1423, 1424, 1425, 1426, 1427, 1428, 1409, 1429, 1430, 1431, - 1410, 1412, 1432, 1413, 1433, 1416, 1417, 1434, 1418, 1419, - 1420, 1435, 1438, 1439, 1440, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1441, 1429, 1430, 1431, 1442, 1445, 1432, - 1447, 1433, 1448, 1449, 1434, 1450, 1451, 1452, 1435, 1438, - 1439, 1440, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, - 1441, 1461, 1462, 1463, 1442, 1445, 1465, 1447, 1466, 1448, - - 1449, 1467, 1450, 1451, 1452, 1468, 1469, 1470, 1471, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1472, 1461, 1462, - 1463, 1473, 1474, 1465, 1475, 1466, 1476, 1477, 1467, 1478, - 1479, 1481, 1468, 1469, 1470, 1471, 1482, 1483, 1484, 1485, - 1486, 1487, 1494, 1496, 1472, 1498, 1499, 1500, 1473, 1474, - 1501, 1475, 1502, 1476, 1477, 1503, 1478, 1479, 1481, 1506, - 1507, 1508, 1510, 1482, 1483, 1484, 1485, 1486, 1487, 1494, - 1496, 1512, 1498, 1499, 1500, 1513, 1514, 1501, 1516, 1502, - 1518, 1520, 1503, 1521, 1522, 1523, 1506, 1507, 1508, 1510, - 1524, 1525, 1526, 1527, 1528, 1527, 1530, 1531, 1512, 1532, - - 1533, 1534, 1513, 1514, 1537, 1516, 1538, 1518, 1520, 1540, - 1521, 1522, 1523, 1535, 1541, 1543, 1544, 1524, 1525, 1526, - 1527, 1528, 1527, 1530, 1531, 1546, 1532, 1533, 1534, 1548, - 1535, 1537, 1550, 1538, 1551, 1552, 1540, 1553, 1554, 1555, - 1535, 1541, 1543, 1544, 1556, 1557, 1558, 1559, 1561, 1562, - 1563, 1564, 1546, 1568, 1569, 1571, 1548, 1535, 1574, 1550, - 1575, 1551, 1552, 1576, 1553, 1554, 1555, 1578, 1579, 1580, - 1581, 1556, 1557, 1558, 1559, 1561, 1562, 1563, 1564, 1582, - 1568, 1569, 1571, 1584, 1586, 1574, 1588, 1575, 1589, 1590, - 1576, 1594, 1595, 1596, 1578, 1579, 1580, 1581, 1598, 1599, - - 1600, 1601, 1602, 1605, 1607, 1608, 1582, 1610, 1611, 1612, - 1584, 1586, 1613, 1588, 1614, 1589, 1590, 1615, 1594, 1595, - 1596, 1616, 1617, 1620, 1076, 1598, 1599, 1600, 1601, 1602, - 1605, 1607, 1608, 1051, 1610, 1611, 1612, 1029, 995, 1613, - 994, 1614, 993, 992, 1615, 956, 954, 944, 1616, 1617, - 1620, 1624, 1624, 932, 925, 923, 911, 899, 896, 895, - 892, 891, 876, 835, 830, 797, 781, 774, 764, 763, - 762, 761, 760, 759, 758, 731, 729, 692, 684, 682, - 680, 661, 649, 646, 622, 611, 578, 571, 565, 561, - 559, 537, 534, 511, 506, 483, 457, 456, 427, 421, - - 395, 366, 355, 352, 343, 329, 325, 314, 297, 280, - 273, 270, 248, 229, 197, 184, 144, 122, 35, 5, - 3, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, - 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622 + 1, 1, 1, 1, 1, 1, 3, 4, 11, 3, + 4, 9, 9, 12, 15, 12, 13, 13, 13, 23, + 15, 1637, 28, 11, 42, 42, 190, 190, 17, 1636, + 15, 35, 17, 49, 49, 49, 17, 18, 18, 17, + + 36, 15, 1635, 46, 1633, 19, 23, 15, 18, 28, + 11, 14, 14, 19, 14, 17, 19, 15, 35, 17, + 14, 20, 14, 17, 18, 18, 17, 36, 20, 14, + 46, 14, 19, 1367, 1367, 18, 1602, 21, 14, 14, + 19, 14, 22, 19, 22, 21, 1538, 14, 20, 14, + 30, 21, 1514, 24, 30, 20, 14, 21, 14, 16, + 24, 16, 50, 24, 21, 24, 16, 16, 30, 22, + 16, 22, 21, 16, 1418, 25, 51, 30, 21, 25, + 24, 30, 52, 16, 21, 25, 16, 24, 16, 50, + 24, 53, 24, 16, 16, 30, 54, 16, 33, 33, + + 16, 34, 25, 51, 33, 34, 25, 55, 34, 52, + 16, 56, 25, 26, 26, 57, 58, 26, 53, 59, + 60, 26, 60, 54, 61, 33, 33, 26, 34, 62, + 1411, 33, 34, 63, 55, 34, 1402, 1394, 56, 66, + 26, 26, 57, 58, 26, 67, 59, 60, 26, 60, + 64, 61, 65, 65, 26, 27, 62, 27, 64, 27, + 63, 70, 71, 27, 64, 75, 66, 69, 1386, 27, + 64, 72, 67, 72, 1363, 27, 1358, 64, 74, 65, + 65, 69, 27, 78, 27, 64, 27, 74, 70, 71, + 27, 64, 75, 1330, 69, 76, 27, 64, 72, 73, + + 72, 73, 27, 29, 77, 74, 79, 80, 69, 76, + 78, 29, 73, 82, 74, 77, 73, 29, 83, 84, + 29, 29, 76, 85, 86, 1323, 73, 81, 73, 81, + 29, 77, 1319, 79, 80, 87, 76, 1318, 29, 73, + 82, 88, 77, 73, 29, 83, 84, 29, 29, 31, + 85, 86, 31, 31, 81, 31, 81, 89, 90, 31, + 31, 31, 87, 31, 31, 1309, 91, 92, 88, 93, + 94, 92, 1303, 1281, 93, 95, 31, 96, 1266, 31, + 31, 98, 31, 1264, 89, 90, 31, 31, 31, 1259, + 31, 31, 32, 91, 92, 97, 93, 94, 92, 32, + + 32, 93, 95, 32, 96, 97, 99, 101, 98, 100, + 32, 97, 102, 103, 106, 104, 32, 1250, 1236, 32, + 1229, 1228, 97, 104, 100, 102, 32, 32, 107, 108, + 32, 105, 97, 99, 101, 1227, 100, 32, 97, 102, + 103, 106, 104, 32, 68, 68, 109, 105, 105, 68, + 104, 100, 110, 112, 114, 107, 108, 68, 105, 116, + 115, 117, 68, 1226, 1225, 1224, 1216, 1201, 114, 119, + 1196, 68, 68, 109, 105, 105, 68, 120, 121, 110, + 112, 114, 115, 113, 68, 122, 116, 115, 117, 68, + 111, 118, 111, 111, 113, 114, 119, 111, 113, 111, + + 113, 118, 111, 123, 120, 121, 124, 125, 111, 115, + 113, 118, 122, 127, 128, 1194, 130, 111, 118, 111, + 111, 113, 1183, 1180, 111, 113, 111, 113, 118, 111, + 123, 131, 133, 124, 125, 111, 132, 131, 118, 132, + 127, 128, 129, 130, 134, 137, 138, 135, 139, 129, + 129, 140, 142, 143, 144, 145, 129, 147, 131, 133, + 143, 148, 129, 132, 131, 135, 132, 150, 151, 129, + 152, 134, 137, 138, 135, 139, 129, 129, 140, 142, + 143, 144, 145, 129, 147, 153, 154, 143, 148, 129, + 155, 156, 135, 157, 150, 151, 158, 152, 159, 160, + + 161, 162, 163, 164, 165, 167, 163, 168, 169, 170, + 171, 172, 153, 154, 173, 174, 175, 155, 156, 176, + 157, 177, 178, 158, 180, 159, 160, 161, 162, 163, + 164, 165, 167, 163, 168, 169, 170, 171, 172, 179, + 181, 173, 174, 175, 182, 183, 176, 184, 177, 178, + 186, 180, 179, 185, 185, 187, 189, 191, 192, 193, + 194, 195, 193, 196, 197, 198, 179, 181, 200, 202, + 203, 182, 183, 205, 184, 206, 207, 186, 208, 179, + 185, 185, 187, 189, 191, 192, 193, 194, 195, 193, + 196, 197, 198, 204, 209, 200, 202, 203, 210, 204, + + 205, 211, 206, 207, 212, 208, 213, 214, 215, 216, + 217, 218, 214, 219, 220, 221, 222, 223, 224, 225, + 204, 209, 226, 227, 228, 210, 229, 231, 211, 234, + 232, 212, 232, 213, 214, 215, 216, 217, 218, 214, + 219, 220, 221, 222, 223, 224, 225, 235, 236, 226, + 227, 228, 238, 229, 231, 239, 234, 232, 241, 232, + 242, 243, 244, 245, 247, 249, 250, 251, 252, 255, + 254, 256, 257, 258, 235, 236, 259, 260, 261, 238, + 254, 263, 239, 1164, 264, 241, 265, 242, 243, 244, + 245, 247, 249, 250, 251, 252, 255, 254, 256, 257, + + 258, 262, 266, 259, 260, 261, 267, 254, 263, 268, + 262, 264, 269, 265, 271, 272, 273, 274, 277, 280, + 267, 281, 282, 283, 284, 286, 287, 288, 262, 266, + 289, 290, 291, 267, 292, 295, 268, 296, 297, 269, + 299, 271, 272, 273, 274, 277, 280, 267, 281, 282, + 283, 284, 286, 287, 288, 300, 301, 289, 290, 291, + 302, 292, 295, 303, 296, 297, 304, 299, 305, 306, + 307, 308, 309, 310, 312, 313, 314, 315, 316, 317, + 319, 322, 300, 301, 323, 320, 328, 302, 324, 324, + 303, 320, 330, 304, 331, 305, 306, 307, 308, 309, + + 310, 312, 313, 314, 315, 316, 317, 319, 322, 320, + 332, 323, 320, 328, 334, 324, 324, 335, 320, 330, + 1150, 331, 338, 339, 340, 342, 1147, 341, 343, 346, + 1124, 1110, 341, 348, 350, 351, 352, 332, 353, 357, + 361, 334, 362, 363, 335, 337, 337, 337, 364, 338, + 339, 340, 342, 337, 341, 343, 346, 337, 337, 341, + 348, 350, 351, 352, 337, 353, 357, 361, 354, 362, + 363, 365, 337, 337, 337, 364, 366, 367, 368, 369, + 337, 371, 372, 373, 337, 337, 354, 375, 374, 376, + 378, 337, 374, 373, 354, 354, 379, 374, 365, 380, + + 381, 382, 383, 366, 367, 368, 369, 384, 371, 372, + 373, 385, 386, 354, 375, 374, 376, 378, 388, 374, + 387, 387, 389, 379, 374, 391, 380, 381, 382, 383, + 387, 392, 393, 394, 384, 395, 387, 396, 385, 386, + 398, 399, 401, 402, 403, 388, 404, 387, 387, 389, + 405, 406, 391, 407, 408, 409, 410, 387, 392, 393, + 394, 411, 395, 387, 396, 412, 411, 398, 399, 401, + 402, 403, 413, 404, 415, 416, 418, 405, 406, 419, + 407, 408, 409, 410, 421, 423, 424, 425, 411, 413, + 428, 430, 412, 411, 431, 434, 435, 436, 437, 413, + + 438, 415, 416, 418, 439, 440, 419, 441, 443, 446, + 447, 421, 423, 424, 425, 448, 413, 428, 430, 449, + 450, 431, 434, 435, 436, 437, 451, 438, 452, 454, + 455, 439, 440, 456, 441, 443, 446, 447, 452, 457, + 458, 459, 448, 462, 463, 464, 449, 450, 465, 466, + 467, 468, 469, 451, 472, 452, 454, 455, 473, 471, + 456, 468, 470, 474, 475, 452, 457, 458, 459, 476, + 462, 463, 464, 471, 470, 465, 466, 467, 468, 469, + 477, 472, 478, 479, 481, 473, 471, 480, 468, 470, + 474, 475, 482, 483, 480, 484, 476, 485, 486, 488, + + 471, 470, 489, 490, 492, 488, 491, 477, 493, 478, + 479, 481, 494, 495, 480, 497, 498, 499, 497, 482, + 483, 480, 484, 491, 485, 486, 488, 500, 501, 489, + 490, 492, 488, 491, 502, 493, 503, 505, 506, 494, + 495, 507, 497, 498, 499, 497, 508, 509, 512, 513, + 491, 517, 518, 519, 500, 501, 520, 521, 522, 523, + 520, 502, 524, 503, 505, 506, 520, 525, 507, 526, + 527, 528, 529, 508, 509, 512, 513, 530, 517, 518, + 519, 531, 532, 520, 521, 522, 523, 520, 533, 524, + 534, 535, 538, 520, 525, 541, 526, 527, 528, 529, + + 543, 545, 546, 547, 530, 548, 549, 550, 531, 532, + 551, 552, 553, 555, 556, 533, 557, 534, 535, 538, + 558, 559, 541, 560, 561, 550, 562, 543, 545, 546, + 547, 564, 548, 549, 550, 567, 568, 551, 552, 553, + 555, 556, 570, 557, 571, 572, 573, 558, 559, 574, + 560, 561, 576, 562, 577, 578, 579, 580, 564, 581, + 584, 585, 567, 568, 587, 587, 586, 588, 591, 570, + 592, 571, 572, 573, 586, 593, 574, 594, 595, 576, + 596, 577, 578, 579, 580, 597, 581, 584, 585, 598, + 599, 587, 587, 586, 588, 591, 600, 592, 602, 603, + + 604, 586, 593, 605, 594, 595, 606, 596, 608, 609, + 610, 611, 597, 612, 613, 614, 598, 599, 616, 617, + 618, 619, 620, 600, 621, 602, 603, 604, 622, 623, + 605, 624, 628, 606, 629, 608, 609, 610, 611, 631, + 612, 613, 614, 632, 633, 616, 617, 618, 619, 620, + 634, 621, 635, 636, 638, 622, 623, 639, 624, 628, + 641, 629, 637, 637, 642, 643, 631, 646, 647, 648, + 632, 633, 789, 649, 789, 650, 1102, 634, 652, 635, + 636, 638, 789, 653, 639, 655, 657, 641, 658, 637, + 637, 642, 643, 644, 646, 647, 648, 644, 659, 644, + + 649, 644, 650, 644, 644, 652, 661, 662, 663, 644, + 653, 664, 655, 657, 667, 658, 668, 669, 670, 671, + 644, 672, 673, 674, 644, 659, 644, 675, 644, 676, + 644, 644, 677, 661, 662, 663, 644, 678, 664, 680, + 683, 667, 684, 668, 669, 670, 671, 686, 672, 673, + 674, 688, 689, 690, 675, 691, 676, 692, 693, 677, + 694, 695, 699, 700, 678, 701, 680, 683, 702, 684, + 703, 704, 705, 706, 686, 707, 707, 707, 688, 689, + 690, 708, 691, 709, 692, 693, 710, 694, 695, 699, + 700, 711, 701, 712, 713, 702, 714, 703, 704, 705, + + 706, 715, 707, 707, 707, 716, 717, 718, 708, 719, + 709, 720, 721, 710, 722, 723, 724, 725, 711, 727, + 712, 713, 728, 714, 731, 732, 734, 736, 715, 737, + 738, 739, 716, 717, 718, 740, 719, 741, 720, 721, + 742, 722, 723, 724, 725, 743, 727, 744, 745, 728, + 747, 731, 732, 734, 736, 748, 737, 738, 739, 749, + 750, 752, 740, 753, 741, 755, 756, 742, 757, 759, + 760, 761, 743, 762, 744, 745, 770, 747, 772, 773, + 774, 775, 748, 776, 777, 778, 749, 750, 752, 782, + 753, 784, 755, 756, 787, 757, 759, 760, 761, 788, + + 762, 790, 791, 770, 792, 772, 773, 774, 775, 793, + 776, 777, 778, 795, 796, 798, 782, 799, 784, 800, + 801, 787, 804, 803, 1097, 806, 788, 803, 790, 791, + 803, 792, 807, 808, 805, 809, 793, 810, 812, 805, + 795, 796, 798, 813, 799, 814, 800, 801, 815, 804, + 803, 805, 806, 816, 803, 817, 819, 803, 820, 807, + 808, 805, 809, 822, 810, 812, 805, 823, 824, 825, + 813, 826, 814, 827, 828, 815, 829, 830, 805, 831, + 816, 832, 817, 819, 833, 820, 835, 837, 838, 840, + 822, 841, 842, 843, 823, 824, 825, 845, 826, 846, + + 827, 828, 847, 829, 830, 850, 831, 848, 832, 852, + 854, 833, 855, 835, 837, 838, 840, 848, 841, 842, + 843, 856, 857, 859, 845, 860, 846, 861, 862, 847, + 863, 864, 850, 865, 848, 866, 852, 854, 867, 855, + 868, 869, 870, 871, 848, 872, 874, 875, 856, 857, + 859, 876, 860, 877, 861, 862, 878, 863, 864, 879, + 865, 880, 866, 882, 883, 867, 884, 868, 869, 870, + 871, 885, 872, 874, 875, 886, 887, 888, 876, 889, + 877, 890, 891, 878, 892, 893, 879, 894, 880, 898, + 882, 883, 899, 884, 902, 895, 906, 895, 885, 907, + + 908, 909, 886, 887, 888, 895, 889, 910, 890, 891, + 911, 892, 893, 912, 894, 913, 898, 914, 915, 899, + 917, 902, 919, 906, 920, 921, 907, 908, 909, 922, + 923, 924, 925, 930, 910, 928, 931, 911, 932, 928, + 912, 933, 913, 935, 914, 915, 937, 917, 938, 919, + 940, 920, 921, 941, 942, 943, 922, 923, 924, 925, + 930, 944, 928, 931, 946, 932, 928, 945, 933, 947, + 935, 950, 951, 937, 952, 938, 945, 940, 953, 954, + 941, 942, 943, 955, 945, 956, 957, 959, 944, 961, + 963, 946, 967, 968, 945, 969, 947, 970, 950, 951, + + 971, 952, 972, 945, 973, 953, 954, 974, 975, 976, + 955, 945, 956, 957, 959, 977, 961, 963, 978, 967, + 968, 979, 969, 980, 970, 981, 982, 971, 984, 972, + 983, 973, 985, 986, 974, 975, 976, 987, 988, 989, + 990, 991, 977, 993, 994, 978, 995, 983, 979, 996, + 980, 1001, 981, 982, 1002, 984, 1003, 983, 1004, 985, + 986, 1006, 1007, 1008, 987, 988, 989, 990, 991, 1009, + 993, 994, 1010, 995, 983, 1011, 996, 1012, 1001, 1013, + 1014, 1002, 1015, 1003, 1016, 1004, 1017, 1018, 1006, 1007, + 1008, 1019, 1021, 1023, 1025, 1026, 1009, 1027, 1028, 1010, + + 1029, 1030, 1011, 1031, 1012, 1032, 1013, 1014, 1034, 1015, + 1035, 1016, 1036, 1017, 1018, 1037, 1039, 1040, 1019, 1021, + 1023, 1025, 1026, 1041, 1027, 1028, 1042, 1029, 1030, 1043, + 1031, 1044, 1032, 1045, 1047, 1034, 1048, 1035, 1049, 1036, + 1051, 1052, 1037, 1039, 1040, 1053, 1054, 1056, 1057, 1058, + 1041, 1059, 1060, 1042, 1061, 1062, 1043, 1063, 1044, 1064, + 1045, 1047, 1069, 1048, 1070, 1049, 1071, 1051, 1052, 1072, + 1073, 1074, 1053, 1054, 1056, 1057, 1058, 1075, 1059, 1060, + 1076, 1061, 1062, 1077, 1063, 1078, 1064, 1079, 1080, 1069, + 1082, 1070, 1083, 1071, 1084, 1085, 1072, 1073, 1074, 1086, + + 1087, 1088, 1089, 1090, 1075, 1091, 1092, 1076, 1093, 1094, + 1077, 1095, 1078, 1096, 1079, 1080, 1099, 1082, 1100, 1083, + 1101, 1084, 1085, 1104, 1105, 1106, 1086, 1087, 1088, 1089, + 1090, 1107, 1091, 1092, 1108, 1093, 1094, 1109, 1095, 1111, + 1096, 1113, 1115, 1099, 1116, 1100, 1114, 1101, 1117, 1118, + 1104, 1105, 1106, 1119, 1114, 1120, 1121, 1122, 1107, 1123, + 1125, 1108, 1126, 1129, 1109, 1130, 1111, 1131, 1113, 1115, + 1133, 1116, 1134, 1114, 1135, 1117, 1118, 1136, 1137, 1138, + 1119, 1140, 1120, 1121, 1122, 1139, 1123, 1125, 1141, 1126, + 1129, 1139, 1130, 1143, 1131, 1148, 1149, 1133, 1151, 1134, + + 1152, 1135, 1153, 1154, 1136, 1137, 1138, 1155, 1140, 1156, + 1157, 1158, 1139, 1159, 1160, 1141, 1162, 1161, 1139, 1163, + 1143, 1165, 1148, 1149, 1161, 1151, 1166, 1152, 1167, 1153, + 1154, 1169, 1170, 1171, 1155, 1172, 1156, 1157, 1158, 1173, + 1159, 1160, 1174, 1162, 1161, 1175, 1163, 1176, 1165, 1177, + 1178, 1161, 1179, 1166, 1181, 1167, 1184, 1185, 1169, 1170, + 1171, 1186, 1172, 1188, 1189, 1190, 1173, 1192, 1193, 1174, + 1195, 1197, 1175, 1198, 1176, 1200, 1177, 1178, 1202, 1179, + 1203, 1181, 1205, 1184, 1185, 1206, 1207, 1208, 1186, 1209, + 1188, 1189, 1190, 1210, 1192, 1193, 1211, 1195, 1197, 1213, + + 1198, 1214, 1200, 1215, 1217, 1202, 1218, 1203, 1219, 1205, + 1220, 1222, 1206, 1207, 1208, 1223, 1209, 1230, 1231, 1232, + 1210, 1233, 1234, 1211, 1235, 1237, 1213, 1238, 1214, 1240, + 1215, 1217, 1241, 1218, 1242, 1219, 1244, 1220, 1222, 1246, + 1247, 1248, 1223, 1249, 1230, 1231, 1232, 1251, 1233, 1234, + 1252, 1235, 1237, 1253, 1238, 1254, 1240, 1255, 1256, 1241, + 1257, 1242, 1258, 1244, 1251, 1260, 1246, 1247, 1248, 1261, + 1249, 1263, 1265, 1267, 1251, 1268, 1269, 1252, 1270, 1271, + 1253, 1272, 1254, 1273, 1255, 1256, 1275, 1257, 1276, 1258, + 1278, 1251, 1260, 1269, 1280, 1282, 1261, 1283, 1263, 1265, + + 1267, 1284, 1268, 1269, 1285, 1270, 1271, 1287, 1272, 1288, + 1273, 1289, 1290, 1275, 1291, 1276, 1292, 1278, 1293, 1294, + 1269, 1280, 1282, 1295, 1283, 1297, 1298, 1299, 1284, 1300, + 1301, 1285, 1302, 1305, 1287, 1306, 1288, 1307, 1289, 1290, + 1308, 1291, 1311, 1292, 1312, 1293, 1294, 1313, 1314, 1315, + 1295, 1316, 1297, 1298, 1299, 1317, 1300, 1301, 1321, 1302, + 1305, 1322, 1306, 1322, 1307, 1324, 1325, 1308, 1327, 1311, + 1326, 1312, 1328, 1329, 1313, 1314, 1315, 1331, 1316, 1332, + 1333, 1335, 1317, 1336, 1337, 1321, 1338, 1326, 1322, 1339, + 1322, 1340, 1324, 1325, 1342, 1327, 1341, 1326, 1343, 1328, + + 1329, 1341, 1344, 1345, 1331, 1346, 1332, 1333, 1335, 1347, + 1336, 1337, 1348, 1338, 1326, 1349, 1339, 1350, 1340, 1351, + 1352, 1342, 1353, 1341, 1355, 1343, 1356, 1357, 1341, 1344, + 1345, 1359, 1346, 1360, 1361, 1362, 1347, 1366, 1368, 1348, + 1369, 1370, 1349, 1371, 1350, 1372, 1351, 1352, 1373, 1353, + 1374, 1355, 1376, 1356, 1357, 1377, 1378, 1379, 1359, 1381, + 1360, 1361, 1362, 1382, 1366, 1368, 1383, 1369, 1370, 1384, + 1371, 1385, 1372, 1388, 1389, 1373, 1390, 1374, 1391, 1376, + 1393, 1395, 1377, 1378, 1379, 1397, 1381, 1398, 1399, 1400, + 1382, 1401, 1403, 1383, 1404, 1405, 1384, 1406, 1385, 1407, + + 1388, 1389, 1408, 1390, 1409, 1391, 1410, 1393, 1395, 1413, + 1414, 1415, 1397, 1416, 1398, 1399, 1400, 1417, 1401, 1403, + 1419, 1404, 1405, 1420, 1406, 1423, 1407, 1424, 1425, 1408, + 1426, 1409, 1427, 1410, 1428, 1429, 1413, 1414, 1415, 1430, + 1416, 1431, 1432, 1433, 1417, 1434, 1435, 1419, 1436, 1437, + 1420, 1438, 1423, 1439, 1424, 1425, 1440, 1426, 1441, 1427, + 1442, 1428, 1429, 1445, 1446, 1447, 1430, 1448, 1431, 1432, + 1433, 1449, 1434, 1435, 1452, 1436, 1437, 1453, 1438, 1455, + 1439, 1456, 1457, 1440, 1458, 1441, 1459, 1442, 1460, 1461, + 1445, 1446, 1447, 1462, 1448, 1463, 1464, 1465, 1449, 1466, + + 1467, 1452, 1468, 1469, 1453, 1470, 1455, 1471, 1456, 1457, + 1473, 1458, 1474, 1459, 1475, 1460, 1461, 1476, 1477, 1478, + 1462, 1479, 1463, 1464, 1465, 1480, 1466, 1467, 1481, 1468, + 1469, 1482, 1470, 1483, 1471, 1484, 1485, 1473, 1486, 1474, + 1487, 1475, 1489, 1490, 1476, 1477, 1478, 1491, 1479, 1492, + 1493, 1494, 1480, 1495, 1503, 1481, 1505, 1507, 1482, 1508, + 1483, 1509, 1484, 1485, 1510, 1486, 1511, 1487, 1512, 1489, + 1490, 1515, 1516, 1517, 1491, 1519, 1492, 1493, 1494, 1521, + 1495, 1503, 1522, 1505, 1507, 1523, 1508, 1525, 1509, 1527, + 1529, 1510, 1530, 1511, 1531, 1512, 1532, 1533, 1515, 1516, + + 1517, 1534, 1519, 1535, 1537, 1536, 1521, 1536, 1539, 1522, + 1540, 1541, 1523, 1542, 1525, 1543, 1527, 1529, 1546, 1530, + 1547, 1531, 1544, 1532, 1533, 1549, 1550, 1552, 1534, 1553, + 1535, 1537, 1536, 1555, 1536, 1539, 1557, 1540, 1541, 1544, + 1542, 1559, 1543, 1560, 1561, 1546, 1562, 1547, 1563, 1544, + 1564, 1565, 1549, 1550, 1552, 1566, 1553, 1567, 1568, 1570, + 1555, 1571, 1572, 1557, 1573, 1577, 1544, 1578, 1559, 1580, + 1560, 1561, 1583, 1562, 1584, 1563, 1585, 1564, 1565, 1587, + 1588, 1589, 1566, 1590, 1567, 1568, 1570, 1591, 1571, 1572, + 1593, 1573, 1577, 1595, 1578, 1597, 1580, 1598, 1599, 1583, + + 1603, 1584, 1604, 1585, 1605, 1607, 1587, 1588, 1589, 1608, + 1590, 1609, 1610, 1611, 1591, 1614, 1616, 1593, 1617, 1619, + 1595, 1620, 1597, 1621, 1598, 1599, 1622, 1603, 1623, 1604, + 1624, 1605, 1607, 1625, 1626, 1629, 1608, 1081, 1609, 1610, + 1611, 1055, 1614, 1616, 1033, 1617, 1619, 1000, 1620, 999, + 1621, 998, 997, 1622, 960, 1623, 958, 1624, 948, 936, + 1625, 1626, 1629, 1632, 1632, 1634, 1634, 929, 927, 916, + 904, 901, 900, 897, 896, 881, 873, 839, 834, 802, + 786, 779, 769, 768, 767, 766, 765, 764, 763, 735, + 733, 696, 687, 685, 666, 654, 651, 626, 615, 582, + + 575, 569, 565, 563, 542, 539, 516, 510, 487, 461, + 460, 432, 426, 400, 370, 359, 356, 347, 333, 329, + 318, 285, 278, 275, 253, 233, 201, 188, 149, 126, + 40, 39, 7, 5, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, + + 1631 } ; static yy_state_type yy_last_accepting_state; @@ -1684,7 +1693,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1703,9 +1712,11 @@ */ /*! \file conf_lexer.l * \brief Scans the ircd configuration file for tokens. - * \version $Id: conf_lexer.l 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: conf_lexer.l 9885 2021-01-16 07:34:12Z michael $ */ -#line 33 "conf_lexer.l" +#define YY_NO_INPUT 1 + +#line 36 "conf_lexer.l" #include "stdinc.h" #include "irc_string.h" #include "conf.h" @@ -1734,9 +1745,8 @@ static unsigned int include_stack_ptr; -static void ccomment(void); -static void cinclude(void); -static bool ieof(void); +static void conf_include(void); +static bool conf_eof(void); static int conf_yy_input(char *lbuf, unsigned int max_size) @@ -1750,10 +1760,11 @@ return 0; } -#line 1754 "conf_lexer.c" -#line 1755 "conf_lexer.c" +#line 1764 "conf_lexer.c" +#line 1765 "conf_lexer.c" #define INITIAL 0 +#define IN_COMMENT 1 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1966,9 +1977,10 @@ } { -#line 85 "conf_lexer.l" +#line 87 "conf_lexer.l" -#line 1972 "conf_lexer.c" + +#line 1984 "conf_lexer.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2001,13 +2013,13 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1623 ) + if ( yy_current_state >= 1632 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1622 ); + while ( yy_current_state != 1631 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2029,39 +2041,59 @@ case 1: YY_RULE_SETUP -#line 86 "conf_lexer.l" -{ cinclude(); } +#line 89 "conf_lexer.l" +{ BEGIN IN_COMMENT; } YY_BREAK case 2: YY_RULE_SETUP -#line 87 "conf_lexer.l" -{ ccomment(); } +#line 90 "conf_lexer.l" +{ BEGIN INITIAL; } YY_BREAK case 3: -/* rule 3 can match eol */ YY_RULE_SETUP -#line 88 "conf_lexer.l" -{ strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++lineno; yyless(1); } +#line 91 "conf_lexer.l" +; /* Eat everything but a newline */ YY_BREAK case 4: +/* rule 4 can match eol */ YY_RULE_SETUP -#line 89 "conf_lexer.l" -; +#line 92 "conf_lexer.l" +{ ++lineno; } + YY_BREAK +case YY_STATE_EOF(IN_COMMENT): +#line 93 "conf_lexer.l" +{ BEGIN INITIAL; if (conf_eof()) yyterminate(); } YY_BREAK case 5: YY_RULE_SETUP -#line 90 "conf_lexer.l" -; +#line 95 "conf_lexer.l" +{ conf_include(); } YY_BREAK case 6: +/* rule 6 can match eol */ YY_RULE_SETUP -#line 91 "conf_lexer.l" -{ yylval.number = atoi(yytext); return NUMBER; } +#line 96 "conf_lexer.l" +{ strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++lineno; yyless(1); } YY_BREAK case 7: -/* rule 7 can match eol */ YY_RULE_SETUP -#line 92 "conf_lexer.l" +#line 97 "conf_lexer.l" +; + YY_BREAK +case 8: +YY_RULE_SETUP +#line 98 "conf_lexer.l" +; + YY_BREAK +case 9: +YY_RULE_SETUP +#line 99 "conf_lexer.l" +{ yylval.number = atoi(yytext); return NUMBER; } + YY_BREAK +case 10: +/* rule 10 can match eol */ +YY_RULE_SETUP +#line 100 "conf_lexer.l" { if (yytext[yyleng - 2] == '\\') { yyless(yyleng - 1); /* Return last quote */ @@ -2103,1251 +2135,1251 @@ } } YY_BREAK -case 8: +case 11: YY_RULE_SETUP -#line 133 "conf_lexer.l" +#line 141 "conf_lexer.l" { return ACCEPT_PASSWORD; } YY_BREAK -case 9: +case 12: YY_RULE_SETUP -#line 134 "conf_lexer.l" +#line 142 "conf_lexer.l" { return ADMIN; } YY_BREAK -case 10: +case 13: YY_RULE_SETUP -#line 135 "conf_lexer.l" +#line 143 "conf_lexer.l" { return ADMIN; } YY_BREAK -case 11: +case 14: YY_RULE_SETUP -#line 136 "conf_lexer.l" +#line 144 "conf_lexer.l" { return AFTYPE; } YY_BREAK -case 12: +case 15: YY_RULE_SETUP -#line 137 "conf_lexer.l" +#line 145 "conf_lexer.l" { return T_ALL; } YY_BREAK -case 13: +case 16: YY_RULE_SETUP -#line 138 "conf_lexer.l" +#line 146 "conf_lexer.l" { return ANTI_NICK_FLOOD; } YY_BREAK -case 14: +case 17: YY_RULE_SETUP -#line 139 "conf_lexer.l" +#line 147 "conf_lexer.l" { return ANTI_SPAM_EXIT_MESSAGE_TIME; } YY_BREAK -case 15: +case 18: YY_RULE_SETUP -#line 140 "conf_lexer.l" +#line 148 "conf_lexer.l" { return IRCD_AUTH; } YY_BREAK -case 16: +case 19: YY_RULE_SETUP -#line 141 "conf_lexer.l" +#line 149 "conf_lexer.l" { return AUTOCONN; } YY_BREAK -case 17: +case 20: YY_RULE_SETUP -#line 142 "conf_lexer.l" +#line 150 "conf_lexer.l" { return AWAY_COUNT; } YY_BREAK -case 18: +case 21: YY_RULE_SETUP -#line 143 "conf_lexer.l" +#line 151 "conf_lexer.l" { return AWAY_TIME; } YY_BREAK -case 19: +case 22: YY_RULE_SETUP -#line 144 "conf_lexer.l" +#line 152 "conf_lexer.l" { return T_BIND; } YY_BREAK -case 20: +case 23: YY_RULE_SETUP -#line 145 "conf_lexer.l" +#line 153 "conf_lexer.l" { return BOT; } YY_BREAK -case 21: +case 24: YY_RULE_SETUP -#line 146 "conf_lexer.l" +#line 154 "conf_lexer.l" { return CALLER_ID_WAIT; } YY_BREAK -case 22: +case 25: YY_RULE_SETUP -#line 147 "conf_lexer.l" +#line 155 "conf_lexer.l" { return T_CALLERID; } YY_BREAK -case 23: +case 26: YY_RULE_SETUP -#line 148 "conf_lexer.l" +#line 156 "conf_lexer.l" { return CAN_FLOOD; } YY_BREAK -case 24: +case 27: YY_RULE_SETUP -#line 149 "conf_lexer.l" +#line 157 "conf_lexer.l" { return T_CCONN; } YY_BREAK -case 25: +case 28: YY_RULE_SETUP -#line 150 "conf_lexer.l" +#line 158 "conf_lexer.l" { return CHANNEL; } YY_BREAK -case 26: +case 29: YY_RULE_SETUP -#line 151 "conf_lexer.l" +#line 159 "conf_lexer.l" { return CIDR_BITLEN_IPV4; } YY_BREAK -case 27: +case 30: YY_RULE_SETUP -#line 152 "conf_lexer.l" +#line 160 "conf_lexer.l" { return CIDR_BITLEN_IPV6; } YY_BREAK -case 28: +case 31: YY_RULE_SETUP -#line 153 "conf_lexer.l" +#line 161 "conf_lexer.l" { return CLASS; } YY_BREAK -case 29: +case 32: YY_RULE_SETUP -#line 154 "conf_lexer.l" +#line 162 "conf_lexer.l" { return CLIENT; } YY_BREAK -case 30: +case 33: YY_RULE_SETUP -#line 155 "conf_lexer.l" +#line 163 "conf_lexer.l" { return CLOSE; } YY_BREAK -case 31: +case 34: YY_RULE_SETUP -#line 156 "conf_lexer.l" +#line 164 "conf_lexer.l" { return T_CLUSTER; } YY_BREAK -case 32: +case 35: YY_RULE_SETUP -#line 157 "conf_lexer.l" +#line 165 "conf_lexer.l" { return T_COMMAND; } YY_BREAK -case 33: +case 36: YY_RULE_SETUP -#line 158 "conf_lexer.l" +#line 166 "conf_lexer.l" { return CONNECT; } YY_BREAK -case 34: +case 37: YY_RULE_SETUP -#line 159 "conf_lexer.l" +#line 167 "conf_lexer.l" { return CONNECTFREQ; } YY_BREAK -case 35: +case 38: YY_RULE_SETUP -#line 160 "conf_lexer.l" +#line 168 "conf_lexer.l" { return CYCLE_ON_HOST_CHANGE; } YY_BREAK -case 36: +case 39: YY_RULE_SETUP -#line 161 "conf_lexer.l" +#line 169 "conf_lexer.l" { return T_DEAF; } YY_BREAK -case 37: +case 40: YY_RULE_SETUP -#line 162 "conf_lexer.l" +#line 170 "conf_lexer.l" { return T_DEBUG; } YY_BREAK -case 38: +case 41: YY_RULE_SETUP -#line 163 "conf_lexer.l" +#line 171 "conf_lexer.l" { return DEFAULT_FLOODCOUNT; } YY_BREAK -case 39: +case 42: YY_RULE_SETUP -#line 164 "conf_lexer.l" +#line 172 "conf_lexer.l" { return DEFAULT_FLOODTIME; } YY_BREAK -case 40: +case 43: YY_RULE_SETUP -#line 165 "conf_lexer.l" +#line 173 "conf_lexer.l" { return DEFAULT_JOIN_FLOOD_COUNT; } YY_BREAK -case 41: +case 44: YY_RULE_SETUP -#line 166 "conf_lexer.l" +#line 174 "conf_lexer.l" { return DEFAULT_JOIN_FLOOD_TIME; } YY_BREAK -case 42: +case 45: YY_RULE_SETUP -#line 167 "conf_lexer.l" +#line 175 "conf_lexer.l" { return DEFAULT_MAX_CLIENTS; } YY_BREAK -case 43: +case 46: YY_RULE_SETUP -#line 168 "conf_lexer.l" +#line 176 "conf_lexer.l" { return DEFER; } YY_BREAK -case 44: +case 47: YY_RULE_SETUP -#line 169 "conf_lexer.l" +#line 177 "conf_lexer.l" { return DENY; } YY_BREAK -case 45: +case 48: YY_RULE_SETUP -#line 170 "conf_lexer.l" +#line 178 "conf_lexer.l" { return DESCRIPTION; } YY_BREAK -case 46: +case 49: YY_RULE_SETUP -#line 171 "conf_lexer.l" +#line 179 "conf_lexer.l" { return DIE; } YY_BREAK -case 47: +case 50: YY_RULE_SETUP -#line 172 "conf_lexer.l" +#line 180 "conf_lexer.l" { return DISABLE_AUTH; } YY_BREAK -case 48: +case 51: YY_RULE_SETUP -#line 173 "conf_lexer.l" +#line 181 "conf_lexer.l" { return DISABLE_FAKE_CHANNELS; } YY_BREAK -case 49: +case 52: YY_RULE_SETUP -#line 174 "conf_lexer.l" +#line 182 "conf_lexer.l" { return DISABLE_REMOTE_COMMANDS; } YY_BREAK -case 50: +case 53: YY_RULE_SETUP -#line 175 "conf_lexer.l" +#line 183 "conf_lexer.l" { return T_DLINE; } YY_BREAK -case 51: +case 54: YY_RULE_SETUP -#line 176 "conf_lexer.l" +#line 184 "conf_lexer.l" { return DLINE_MIN_CIDR; } YY_BREAK -case 52: +case 55: YY_RULE_SETUP -#line 177 "conf_lexer.l" +#line 185 "conf_lexer.l" { return DLINE_MIN_CIDR6; } YY_BREAK -case 53: -YY_RULE_SETUP -#line 178 "conf_lexer.l" -{ return DOTS_IN_IDENT; } - YY_BREAK -case 54: +case 56: YY_RULE_SETUP -#line 179 "conf_lexer.l" +#line 186 "conf_lexer.l" { return EMAIL; } YY_BREAK -case 55: +case 57: YY_RULE_SETUP -#line 180 "conf_lexer.l" +#line 187 "conf_lexer.l" { return ENABLE_EXTBANS; } YY_BREAK -case 56: +case 58: YY_RULE_SETUP -#line 181 "conf_lexer.l" +#line 188 "conf_lexer.l" { return ENCRYPTED; } YY_BREAK -case 57: +case 59: YY_RULE_SETUP -#line 182 "conf_lexer.l" +#line 189 "conf_lexer.l" { return EXCEED_LIMIT; } YY_BREAK -case 58: +case 60: YY_RULE_SETUP -#line 183 "conf_lexer.l" +#line 190 "conf_lexer.l" { return EXEMPT; } YY_BREAK -case 59: +case 61: YY_RULE_SETUP -#line 184 "conf_lexer.l" +#line 191 "conf_lexer.l" { return EXPIRATION; } YY_BREAK -case 60: +case 62: YY_RULE_SETUP -#line 185 "conf_lexer.l" +#line 192 "conf_lexer.l" { return T_EXTERNAL; } YY_BREAK -case 61: +case 63: YY_RULE_SETUP -#line 186 "conf_lexer.l" +#line 193 "conf_lexer.l" { return FAILED_OPER_NOTICE; } YY_BREAK -case 62: +case 64: YY_RULE_SETUP -#line 187 "conf_lexer.l" +#line 194 "conf_lexer.l" { return T_FARCONNECT; } YY_BREAK -case 63: +case 65: YY_RULE_SETUP -#line 188 "conf_lexer.l" +#line 195 "conf_lexer.l" { return T_FILE; } YY_BREAK -case 64: +case 66: YY_RULE_SETUP -#line 189 "conf_lexer.l" +#line 196 "conf_lexer.l" { return IRCD_FLAGS; } YY_BREAK -case 65: +case 67: YY_RULE_SETUP -#line 190 "conf_lexer.l" +#line 197 "conf_lexer.l" { return FLATTEN_LINKS; } YY_BREAK -case 66: +case 68: YY_RULE_SETUP -#line 191 "conf_lexer.l" +#line 198 "conf_lexer.l" { return FLATTEN_LINKS_DELAY; } YY_BREAK -case 67: +case 69: YY_RULE_SETUP -#line 192 "conf_lexer.l" +#line 199 "conf_lexer.l" { return FLATTEN_LINKS_FILE; } YY_BREAK -case 68: +case 70: YY_RULE_SETUP -#line 193 "conf_lexer.l" +#line 200 "conf_lexer.l" { return T_FLOOD; } YY_BREAK -case 69: +case 71: YY_RULE_SETUP -#line 194 "conf_lexer.l" +#line 201 "conf_lexer.l" { return GECOS; } YY_BREAK -case 70: +case 72: YY_RULE_SETUP -#line 195 "conf_lexer.l" +#line 202 "conf_lexer.l" { return GENERAL; } YY_BREAK -case 71: +case 73: YY_RULE_SETUP -#line 196 "conf_lexer.l" +#line 203 "conf_lexer.l" { return KLINE_MIN_CIDR; } YY_BREAK -case 72: +case 74: YY_RULE_SETUP -#line 197 "conf_lexer.l" +#line 204 "conf_lexer.l" { return KLINE_MIN_CIDR6; } YY_BREAK -case 73: +case 75: YY_RULE_SETUP -#line 198 "conf_lexer.l" +#line 205 "conf_lexer.l" { return T_GLOBOPS; } YY_BREAK -case 74: +case 76: YY_RULE_SETUP -#line 199 "conf_lexer.l" +#line 206 "conf_lexer.l" { return NEED_IDENT; } YY_BREAK -case 75: +case 77: YY_RULE_SETUP -#line 200 "conf_lexer.l" +#line 207 "conf_lexer.l" { return HIDDEN; } YY_BREAK -case 76: +case 78: YY_RULE_SETUP -#line 201 "conf_lexer.l" +#line 208 "conf_lexer.l" { return HIDDEN_NAME; } YY_BREAK -case 77: +case 79: YY_RULE_SETUP -#line 202 "conf_lexer.l" +#line 209 "conf_lexer.l" { return HIDE_CHANS; } YY_BREAK -case 78: +case 80: YY_RULE_SETUP -#line 203 "conf_lexer.l" +#line 210 "conf_lexer.l" { return HIDE_IDLE; } YY_BREAK -case 79: +case 81: YY_RULE_SETUP -#line 204 "conf_lexer.l" +#line 211 "conf_lexer.l" { return HIDE_IDLE_FROM_OPERS; } YY_BREAK -case 80: +case 82: YY_RULE_SETUP -#line 205 "conf_lexer.l" +#line 212 "conf_lexer.l" { return HIDE_SERVER_IPS; } YY_BREAK -case 81: +case 83: YY_RULE_SETUP -#line 206 "conf_lexer.l" +#line 213 "conf_lexer.l" { return HIDE_SERVERS; } YY_BREAK -case 82: +case 84: YY_RULE_SETUP -#line 207 "conf_lexer.l" +#line 214 "conf_lexer.l" { return HIDE_SERVICES; } YY_BREAK -case 83: +case 85: YY_RULE_SETUP -#line 208 "conf_lexer.l" +#line 215 "conf_lexer.l" { return HOST; } YY_BREAK -case 84: +case 86: YY_RULE_SETUP -#line 209 "conf_lexer.l" +#line 216 "conf_lexer.l" { return HUB; } YY_BREAK -case 85: +case 87: YY_RULE_SETUP -#line 210 "conf_lexer.l" +#line 217 "conf_lexer.l" { return HUB_MASK; } YY_BREAK -case 86: +case 88: YY_RULE_SETUP -#line 211 "conf_lexer.l" +#line 218 "conf_lexer.l" { return T_INVISIBLE; } YY_BREAK -case 87: +case 89: YY_RULE_SETUP -#line 212 "conf_lexer.l" +#line 219 "conf_lexer.l" { return INVISIBLE_ON_CONNECT; } YY_BREAK -case 88: +case 90: YY_RULE_SETUP -#line 213 "conf_lexer.l" +#line 220 "conf_lexer.l" { return INVITE_CLIENT_COUNT; } YY_BREAK -case 89: +case 91: YY_RULE_SETUP -#line 214 "conf_lexer.l" +#line 221 "conf_lexer.l" { return INVITE_CLIENT_TIME; } YY_BREAK -case 90: +case 92: YY_RULE_SETUP -#line 215 "conf_lexer.l" +#line 222 "conf_lexer.l" { return INVITE_DELAY_CHANNEL; } YY_BREAK -case 91: +case 93: YY_RULE_SETUP -#line 216 "conf_lexer.l" +#line 223 "conf_lexer.l" { return INVITE_EXPIRE_TIME; } YY_BREAK -case 92: +case 94: YY_RULE_SETUP -#line 217 "conf_lexer.l" +#line 224 "conf_lexer.l" { return IP; } YY_BREAK -case 93: +case 95: YY_RULE_SETUP -#line 218 "conf_lexer.l" +#line 225 "conf_lexer.l" { return T_IPV4; } YY_BREAK -case 94: +case 96: YY_RULE_SETUP -#line 219 "conf_lexer.l" +#line 226 "conf_lexer.l" { return T_IPV6; } YY_BREAK -case 95: +case 97: YY_RULE_SETUP -#line 220 "conf_lexer.l" +#line 227 "conf_lexer.l" { return JOIN; } YY_BREAK -case 96: +case 98: YY_RULE_SETUP -#line 221 "conf_lexer.l" +#line 228 "conf_lexer.l" { return KILL; } YY_BREAK -case 97: +case 99: YY_RULE_SETUP -#line 222 "conf_lexer.l" +#line 229 "conf_lexer.l" { return KILL_CHASE_TIME_LIMIT; } YY_BREAK -case 98: +case 100: YY_RULE_SETUP -#line 223 "conf_lexer.l" +#line 230 "conf_lexer.l" { return KLINE; } YY_BREAK -case 99: +case 101: YY_RULE_SETUP -#line 224 "conf_lexer.l" +#line 231 "conf_lexer.l" { return KLINE_EXEMPT; } YY_BREAK -case 100: +case 102: YY_RULE_SETUP -#line 225 "conf_lexer.l" +#line 232 "conf_lexer.l" { return KNOCK_CLIENT_COUNT; } YY_BREAK -case 101: +case 103: YY_RULE_SETUP -#line 226 "conf_lexer.l" +#line 233 "conf_lexer.l" { return KNOCK_CLIENT_TIME; } YY_BREAK -case 102: +case 104: YY_RULE_SETUP -#line 227 "conf_lexer.l" +#line 234 "conf_lexer.l" { return KNOCK_DELAY_CHANNEL; } YY_BREAK -case 103: +case 105: YY_RULE_SETUP -#line 228 "conf_lexer.l" +#line 235 "conf_lexer.l" { return LEAF_MASK; } YY_BREAK -case 104: +case 106: YY_RULE_SETUP -#line 229 "conf_lexer.l" +#line 236 "conf_lexer.l" { return LISTEN; } YY_BREAK -case 105: +case 107: YY_RULE_SETUP -#line 230 "conf_lexer.l" +#line 237 "conf_lexer.l" { return T_LOCOPS; } YY_BREAK -case 106: +case 108: YY_RULE_SETUP -#line 231 "conf_lexer.l" +#line 238 "conf_lexer.l" { return T_LOG; } YY_BREAK -case 107: +case 109: YY_RULE_SETUP -#line 232 "conf_lexer.l" +#line 239 "conf_lexer.l" { return MASK; } YY_BREAK -case 108: +case 110: YY_RULE_SETUP -#line 233 "conf_lexer.l" +#line 240 "conf_lexer.l" { return MAX_ACCEPT; } YY_BREAK -case 109: +case 111: YY_RULE_SETUP -#line 234 "conf_lexer.l" +#line 241 "conf_lexer.l" { return MAX_BANS; } YY_BREAK -case 110: +case 112: YY_RULE_SETUP -#line 235 "conf_lexer.l" +#line 242 "conf_lexer.l" { return MAX_BANS_LARGE; } YY_BREAK -case 111: +case 113: YY_RULE_SETUP -#line 236 "conf_lexer.l" +#line 243 "conf_lexer.l" { return MAX_CHANNELS; } YY_BREAK -case 112: +case 114: YY_RULE_SETUP -#line 237 "conf_lexer.l" +#line 244 "conf_lexer.l" { return MAX_IDLE; } YY_BREAK -case 113: +case 115: YY_RULE_SETUP -#line 238 "conf_lexer.l" +#line 245 "conf_lexer.l" { return MAX_INVITES; } YY_BREAK -case 114: +case 116: YY_RULE_SETUP -#line 239 "conf_lexer.l" +#line 246 "conf_lexer.l" { return MAX_MONITOR; } YY_BREAK -case 115: +case 117: YY_RULE_SETUP -#line 240 "conf_lexer.l" +#line 247 "conf_lexer.l" { return MAX_NICK_CHANGES; } YY_BREAK -case 116: +case 118: YY_RULE_SETUP -#line 241 "conf_lexer.l" +#line 248 "conf_lexer.l" { return MAX_NICK_LENGTH; } YY_BREAK -case 117: +case 119: YY_RULE_SETUP -#line 242 "conf_lexer.l" +#line 249 "conf_lexer.l" { return MAX_NICK_TIME; } YY_BREAK -case 118: +case 120: YY_RULE_SETUP -#line 243 "conf_lexer.l" +#line 250 "conf_lexer.l" { return MAX_NUMBER; } YY_BREAK -case 119: +case 121: YY_RULE_SETUP -#line 244 "conf_lexer.l" +#line 251 "conf_lexer.l" { return MAX_TARGETS; } YY_BREAK -case 120: +case 122: YY_RULE_SETUP -#line 245 "conf_lexer.l" +#line 252 "conf_lexer.l" { return MAX_TOPIC_LENGTH; } YY_BREAK -case 121: +case 123: YY_RULE_SETUP -#line 246 "conf_lexer.l" +#line 253 "conf_lexer.l" { return MIN_IDLE; } YY_BREAK -case 122: +case 124: YY_RULE_SETUP -#line 247 "conf_lexer.l" +#line 254 "conf_lexer.l" { return MIN_NONWILDCARD; } YY_BREAK -case 123: +case 125: YY_RULE_SETUP -#line 248 "conf_lexer.l" +#line 255 "conf_lexer.l" { return MIN_NONWILDCARD_SIMPLE; } YY_BREAK -case 124: +case 126: YY_RULE_SETUP -#line 249 "conf_lexer.l" +#line 256 "conf_lexer.l" { return MODULE; } YY_BREAK -case 125: +case 127: YY_RULE_SETUP -#line 250 "conf_lexer.l" +#line 257 "conf_lexer.l" { return MODULES; } YY_BREAK -case 126: +case 128: YY_RULE_SETUP -#line 251 "conf_lexer.l" +#line 258 "conf_lexer.l" { return MOTD; } YY_BREAK -case 127: +case 129: YY_RULE_SETUP -#line 252 "conf_lexer.l" +#line 259 "conf_lexer.l" { return NAME; } YY_BREAK -case 128: +case 130: YY_RULE_SETUP -#line 253 "conf_lexer.l" +#line 260 "conf_lexer.l" { return T_NCHANGE; } YY_BREAK -case 129: +case 131: YY_RULE_SETUP -#line 254 "conf_lexer.l" +#line 261 "conf_lexer.l" { return NEED_IDENT; } YY_BREAK -case 130: +case 132: YY_RULE_SETUP -#line 255 "conf_lexer.l" +#line 262 "conf_lexer.l" { return NEED_PASSWORD; } YY_BREAK -case 131: +case 133: YY_RULE_SETUP -#line 256 "conf_lexer.l" +#line 263 "conf_lexer.l" { return NETWORK_DESCRIPTION; } YY_BREAK -case 132: +case 134: YY_RULE_SETUP -#line 257 "conf_lexer.l" +#line 264 "conf_lexer.l" { return NETWORK_NAME; } YY_BREAK -case 133: +case 135: YY_RULE_SETUP -#line 258 "conf_lexer.l" +#line 265 "conf_lexer.l" { return NICK; } YY_BREAK -case 134: +case 136: YY_RULE_SETUP -#line 259 "conf_lexer.l" +#line 266 "conf_lexer.l" { return NO_OPER_FLOOD; } YY_BREAK -case 135: +case 137: YY_RULE_SETUP -#line 260 "conf_lexer.l" +#line 267 "conf_lexer.l" { return NO_TILDE; } YY_BREAK -case 136: +case 138: YY_RULE_SETUP -#line 261 "conf_lexer.l" +#line 268 "conf_lexer.l" { return T_NONONREG; } YY_BREAK -case 137: +case 139: YY_RULE_SETUP -#line 262 "conf_lexer.l" +#line 269 "conf_lexer.l" { return NUMBER_PER_CIDR; } YY_BREAK -case 138: +case 140: YY_RULE_SETUP -#line 263 "conf_lexer.l" +#line 270 "conf_lexer.l" { return NUMBER_PER_IP_GLOBAL; } YY_BREAK -case 139: +case 141: YY_RULE_SETUP -#line 264 "conf_lexer.l" +#line 271 "conf_lexer.l" { return NUMBER_PER_IP_LOCAL; } YY_BREAK -case 140: +case 142: YY_RULE_SETUP -#line 265 "conf_lexer.l" +#line 272 "conf_lexer.l" { return OPERATOR; } YY_BREAK -case 141: +case 143: YY_RULE_SETUP -#line 266 "conf_lexer.l" +#line 273 "conf_lexer.l" { return OPER_ONLY_UMODES; } YY_BREAK -case 142: +case 144: YY_RULE_SETUP -#line 267 "conf_lexer.l" +#line 274 "conf_lexer.l" { return OPER_UMODES; } YY_BREAK -case 143: +case 145: YY_RULE_SETUP -#line 268 "conf_lexer.l" +#line 275 "conf_lexer.l" { return OPERATOR; } YY_BREAK -case 144: +case 146: YY_RULE_SETUP -#line 269 "conf_lexer.l" +#line 276 "conf_lexer.l" { return OPERS_BYPASS_CALLERID; } YY_BREAK -case 145: +case 147: YY_RULE_SETUP -#line 270 "conf_lexer.l" +#line 277 "conf_lexer.l" { return T_OPME; } YY_BREAK -case 146: +case 148: YY_RULE_SETUP -#line 271 "conf_lexer.l" +#line 278 "conf_lexer.l" { return PACE_WAIT; } YY_BREAK -case 147: +case 149: YY_RULE_SETUP -#line 272 "conf_lexer.l" +#line 279 "conf_lexer.l" { return PACE_WAIT_SIMPLE; } YY_BREAK -case 148: +case 150: YY_RULE_SETUP -#line 273 "conf_lexer.l" +#line 280 "conf_lexer.l" { return PASSWORD; } YY_BREAK -case 149: +case 151: YY_RULE_SETUP -#line 274 "conf_lexer.l" +#line 281 "conf_lexer.l" { return PATH; } YY_BREAK -case 150: +case 152: YY_RULE_SETUP -#line 275 "conf_lexer.l" +#line 282 "conf_lexer.l" { return PING_COOKIE; } YY_BREAK -case 151: +case 153: YY_RULE_SETUP -#line 276 "conf_lexer.l" +#line 283 "conf_lexer.l" { return PING_TIME; } YY_BREAK -case 152: +case 154: YY_RULE_SETUP -#line 277 "conf_lexer.l" +#line 284 "conf_lexer.l" { return PORT; } YY_BREAK -case 153: +case 155: YY_RULE_SETUP -#line 278 "conf_lexer.l" +#line 285 "conf_lexer.l" { return T_PREPEND; } YY_BREAK -case 154: +case 156: YY_RULE_SETUP -#line 279 "conf_lexer.l" +#line 286 "conf_lexer.l" { return T_PSEUDO; } YY_BREAK -case 155: +case 157: YY_RULE_SETUP -#line 280 "conf_lexer.l" +#line 287 "conf_lexer.l" { return RANDOM_IDLE; } YY_BREAK -case 156: +case 158: YY_RULE_SETUP -#line 281 "conf_lexer.l" +#line 288 "conf_lexer.l" { return REASON; } YY_BREAK -case 157: +case 159: YY_RULE_SETUP -#line 282 "conf_lexer.l" +#line 289 "conf_lexer.l" { return T_RECVQ; } YY_BREAK -case 158: +case 160: YY_RULE_SETUP -#line 283 "conf_lexer.l" +#line 290 "conf_lexer.l" { return REDIRPORT; } YY_BREAK -case 159: +case 161: YY_RULE_SETUP -#line 284 "conf_lexer.l" +#line 291 "conf_lexer.l" { return REDIRSERV; } YY_BREAK -case 160: +case 162: YY_RULE_SETUP -#line 285 "conf_lexer.l" +#line 292 "conf_lexer.l" { return REHASH; } YY_BREAK -case 161: +case 163: YY_RULE_SETUP -#line 286 "conf_lexer.l" +#line 293 "conf_lexer.l" { return T_REJ; } YY_BREAK -case 162: +case 164: YY_RULE_SETUP -#line 287 "conf_lexer.l" +#line 294 "conf_lexer.l" { return REMOTE; } YY_BREAK -case 163: +case 165: YY_RULE_SETUP -#line 288 "conf_lexer.l" +#line 295 "conf_lexer.l" { return REMOTEBAN; } YY_BREAK -case 164: +case 166: YY_RULE_SETUP -#line 289 "conf_lexer.l" +#line 296 "conf_lexer.l" { return T_RESTART; } YY_BREAK -case 165: +case 167: YY_RULE_SETUP -#line 290 "conf_lexer.l" +#line 297 "conf_lexer.l" { return RESV; } YY_BREAK -case 166: +case 168: YY_RULE_SETUP -#line 291 "conf_lexer.l" +#line 298 "conf_lexer.l" { return RESV_EXEMPT; } YY_BREAK -case 167: +case 169: YY_RULE_SETUP -#line 292 "conf_lexer.l" +#line 299 "conf_lexer.l" { return RSA_PRIVATE_KEY_FILE; } YY_BREAK -case 168: +case 170: YY_RULE_SETUP -#line 293 "conf_lexer.l" +#line 300 "conf_lexer.l" { return SEND_PASSWORD; } YY_BREAK -case 169: +case 171: YY_RULE_SETUP -#line 294 "conf_lexer.l" +#line 301 "conf_lexer.l" { return SENDQ; } YY_BREAK -case 170: +case 172: YY_RULE_SETUP -#line 295 "conf_lexer.l" +#line 302 "conf_lexer.l" { return T_SERVER; } YY_BREAK -case 171: +case 173: YY_RULE_SETUP -#line 296 "conf_lexer.l" +#line 303 "conf_lexer.l" { return SERVERHIDE; } YY_BREAK -case 172: +case 174: YY_RULE_SETUP -#line 297 "conf_lexer.l" +#line 304 "conf_lexer.l" { return SERVERINFO; } YY_BREAK -case 173: +case 175: YY_RULE_SETUP -#line 298 "conf_lexer.l" +#line 305 "conf_lexer.l" { return T_SERVICE; } YY_BREAK -case 174: +case 176: YY_RULE_SETUP -#line 299 "conf_lexer.l" +#line 306 "conf_lexer.l" { return T_SERVNOTICE; } YY_BREAK -case 175: +case 177: YY_RULE_SETUP -#line 300 "conf_lexer.l" +#line 307 "conf_lexer.l" { return T_SET; } YY_BREAK -case 176: +case 178: YY_RULE_SETUP -#line 301 "conf_lexer.l" +#line 308 "conf_lexer.l" { return T_SHARED; } YY_BREAK -case 177: +case 179: YY_RULE_SETUP -#line 302 "conf_lexer.l" +#line 309 "conf_lexer.l" { return SHORT_MOTD; } YY_BREAK -case 178: +case 180: YY_RULE_SETUP -#line 303 "conf_lexer.l" +#line 310 "conf_lexer.l" { return IRCD_SID; } YY_BREAK -case 179: +case 181: YY_RULE_SETUP -#line 304 "conf_lexer.l" +#line 311 "conf_lexer.l" { return T_SIZE; } YY_BREAK -case 180: +case 182: YY_RULE_SETUP -#line 305 "conf_lexer.l" +#line 312 "conf_lexer.l" { return T_SKILL; } YY_BREAK -case 181: +case 183: YY_RULE_SETUP -#line 306 "conf_lexer.l" +#line 313 "conf_lexer.l" { return T_SOFTCALLERID; } YY_BREAK -case 182: +case 184: YY_RULE_SETUP -#line 307 "conf_lexer.l" +#line 314 "conf_lexer.l" +{ return SPECIALS_IN_IDENT; } + YY_BREAK +case 185: +YY_RULE_SETUP +#line 315 "conf_lexer.l" { return SPOOF; } YY_BREAK -case 183: +case 186: YY_RULE_SETUP -#line 308 "conf_lexer.l" +#line 316 "conf_lexer.l" { return T_SPY; } YY_BREAK -case 184: +case 187: YY_RULE_SETUP -#line 309 "conf_lexer.l" +#line 317 "conf_lexer.l" { return SQUIT; } YY_BREAK -case 185: +case 188: YY_RULE_SETUP -#line 310 "conf_lexer.l" +#line 318 "conf_lexer.l" { return T_TLS; } YY_BREAK -case 186: +case 189: YY_RULE_SETUP -#line 311 "conf_lexer.l" +#line 319 "conf_lexer.l" { return STATS_E_DISABLED; } YY_BREAK -case 187: +case 190: YY_RULE_SETUP -#line 312 "conf_lexer.l" +#line 320 "conf_lexer.l" { return STATS_I_OPER_ONLY; } YY_BREAK -case 188: +case 191: YY_RULE_SETUP -#line 313 "conf_lexer.l" +#line 321 "conf_lexer.l" { return STATS_K_OPER_ONLY; } YY_BREAK -case 189: +case 192: YY_RULE_SETUP -#line 314 "conf_lexer.l" +#line 322 "conf_lexer.l" { return STATS_M_OPER_ONLY; } YY_BREAK -case 190: +case 193: YY_RULE_SETUP -#line 315 "conf_lexer.l" +#line 323 "conf_lexer.l" { return STATS_O_OPER_ONLY; } YY_BREAK -case 191: +case 194: YY_RULE_SETUP -#line 316 "conf_lexer.l" +#line 324 "conf_lexer.l" { return STATS_P_OPER_ONLY; } YY_BREAK -case 192: +case 195: YY_RULE_SETUP -#line 317 "conf_lexer.l" +#line 325 "conf_lexer.l" { return STATS_U_OPER_ONLY; } YY_BREAK -case 193: +case 196: YY_RULE_SETUP -#line 318 "conf_lexer.l" +#line 326 "conf_lexer.l" { return T_TARGET; } YY_BREAK -case 194: +case 197: YY_RULE_SETUP -#line 319 "conf_lexer.l" +#line 327 "conf_lexer.l" { return THROTTLE_COUNT; } YY_BREAK -case 195: +case 198: YY_RULE_SETUP -#line 320 "conf_lexer.l" +#line 328 "conf_lexer.l" { return THROTTLE_TIME; } YY_BREAK -case 196: +case 199: YY_RULE_SETUP -#line 321 "conf_lexer.l" +#line 329 "conf_lexer.l" { return TIMEOUT; } YY_BREAK -case 197: +case 200: YY_RULE_SETUP -#line 322 "conf_lexer.l" +#line 330 "conf_lexer.l" { return T_TLS; } YY_BREAK -case 198: +case 201: YY_RULE_SETUP -#line 323 "conf_lexer.l" +#line 331 "conf_lexer.l" { return TLS_CERTIFICATE_FILE; } YY_BREAK -case 199: +case 202: YY_RULE_SETUP -#line 324 "conf_lexer.l" +#line 332 "conf_lexer.l" { return TLS_CERTIFICATE_FINGERPRINT; } YY_BREAK -case 200: +case 203: YY_RULE_SETUP -#line 325 "conf_lexer.l" +#line 333 "conf_lexer.l" { return TLS_CIPHER_LIST; } YY_BREAK -case 201: +case 204: YY_RULE_SETUP -#line 326 "conf_lexer.l" +#line 334 "conf_lexer.l" { return TLS_CIPHER_SUITES; } YY_BREAK -case 202: +case 205: YY_RULE_SETUP -#line 327 "conf_lexer.l" +#line 335 "conf_lexer.l" { return TLS_CONNECTION_REQUIRED; } YY_BREAK -case 203: +case 206: YY_RULE_SETUP -#line 328 "conf_lexer.l" +#line 336 "conf_lexer.l" { return TLS_DH_PARAM_FILE; } YY_BREAK -case 204: +case 207: YY_RULE_SETUP -#line 329 "conf_lexer.l" +#line 337 "conf_lexer.l" { return TLS_MESSAGE_DIGEST_ALGORITHM; } YY_BREAK -case 205: +case 208: YY_RULE_SETUP -#line 330 "conf_lexer.l" +#line 338 "conf_lexer.l" { return TLS_SUPPORTED_GROUPS; } YY_BREAK -case 206: +case 209: YY_RULE_SETUP -#line 331 "conf_lexer.l" +#line 339 "conf_lexer.l" { return TS_MAX_DELTA; } YY_BREAK -case 207: +case 210: YY_RULE_SETUP -#line 332 "conf_lexer.l" +#line 340 "conf_lexer.l" { return TS_WARN_DELTA; } YY_BREAK -case 208: +case 211: YY_RULE_SETUP -#line 333 "conf_lexer.l" +#line 341 "conf_lexer.l" { return TYPE; } YY_BREAK -case 209: +case 212: YY_RULE_SETUP -#line 334 "conf_lexer.l" +#line 342 "conf_lexer.l" { return T_UMODES; } YY_BREAK -case 210: +case 213: YY_RULE_SETUP -#line 335 "conf_lexer.l" +#line 343 "conf_lexer.l" { return T_UNDLINE; } YY_BREAK -case 211: +case 214: YY_RULE_SETUP -#line 336 "conf_lexer.l" +#line 344 "conf_lexer.l" { return UNKLINE; } YY_BREAK -case 212: +case 215: YY_RULE_SETUP -#line 337 "conf_lexer.l" +#line 345 "conf_lexer.l" { return T_UNLIMITED; } YY_BREAK -case 213: +case 216: YY_RULE_SETUP -#line 338 "conf_lexer.l" +#line 346 "conf_lexer.l" { return T_UNRESV; } YY_BREAK -case 214: +case 217: YY_RULE_SETUP -#line 339 "conf_lexer.l" +#line 347 "conf_lexer.l" { return T_UNXLINE; } YY_BREAK -case 215: +case 218: YY_RULE_SETUP -#line 340 "conf_lexer.l" +#line 348 "conf_lexer.l" { return USE_LOGGING; } YY_BREAK -case 216: +case 219: YY_RULE_SETUP -#line 341 "conf_lexer.l" +#line 349 "conf_lexer.l" { return USER; } YY_BREAK -case 217: +case 220: YY_RULE_SETUP -#line 342 "conf_lexer.l" +#line 350 "conf_lexer.l" { return T_WALLOP; } YY_BREAK -case 218: +case 221: YY_RULE_SETUP -#line 343 "conf_lexer.l" +#line 351 "conf_lexer.l" { return T_WALLOPS; } YY_BREAK -case 219: +case 222: YY_RULE_SETUP -#line 344 "conf_lexer.l" +#line 352 "conf_lexer.l" { return WARN_NO_CONNECT_BLOCK; } YY_BREAK -case 220: +case 223: YY_RULE_SETUP -#line 345 "conf_lexer.l" +#line 353 "conf_lexer.l" { return T_WEBIRC; } YY_BREAK -case 221: +case 224: YY_RULE_SETUP -#line 346 "conf_lexer.l" +#line 354 "conf_lexer.l" { return WHOIS; } YY_BREAK -case 222: +case 225: YY_RULE_SETUP -#line 347 "conf_lexer.l" +#line 355 "conf_lexer.l" { return WHOWAS_HISTORY_LENGTH; } YY_BREAK -case 223: +case 226: YY_RULE_SETUP -#line 348 "conf_lexer.l" +#line 356 "conf_lexer.l" { return XLINE; } YY_BREAK -case 224: +case 227: YY_RULE_SETUP -#line 349 "conf_lexer.l" +#line 357 "conf_lexer.l" { return XLINE_EXEMPT; } YY_BREAK -case 225: +case 228: YY_RULE_SETUP -#line 351 "conf_lexer.l" +#line 359 "conf_lexer.l" { yylval.number = 1; return TBOOL; } YY_BREAK -case 226: +case 229: YY_RULE_SETUP -#line 352 "conf_lexer.l" +#line 360 "conf_lexer.l" { yylval.number = 0; return TBOOL; } YY_BREAK -case 227: +case 230: YY_RULE_SETUP -#line 354 "conf_lexer.l" +#line 362 "conf_lexer.l" { return YEARS; } YY_BREAK -case 228: +case 231: YY_RULE_SETUP -#line 355 "conf_lexer.l" +#line 363 "conf_lexer.l" { return YEARS; } YY_BREAK -case 229: +case 232: YY_RULE_SETUP -#line 356 "conf_lexer.l" +#line 364 "conf_lexer.l" { return MONTHS; } YY_BREAK -case 230: +case 233: YY_RULE_SETUP -#line 357 "conf_lexer.l" +#line 365 "conf_lexer.l" { return MONTHS; } YY_BREAK -case 231: +case 234: YY_RULE_SETUP -#line 358 "conf_lexer.l" +#line 366 "conf_lexer.l" { return WEEKS; } YY_BREAK -case 232: +case 235: YY_RULE_SETUP -#line 359 "conf_lexer.l" +#line 367 "conf_lexer.l" { return WEEKS; } YY_BREAK -case 233: +case 236: YY_RULE_SETUP -#line 360 "conf_lexer.l" +#line 368 "conf_lexer.l" { return DAYS; } YY_BREAK -case 234: +case 237: YY_RULE_SETUP -#line 361 "conf_lexer.l" +#line 369 "conf_lexer.l" { return DAYS; } YY_BREAK -case 235: +case 238: YY_RULE_SETUP -#line 362 "conf_lexer.l" +#line 370 "conf_lexer.l" { return HOURS; } YY_BREAK -case 236: +case 239: YY_RULE_SETUP -#line 363 "conf_lexer.l" +#line 371 "conf_lexer.l" { return HOURS; } YY_BREAK -case 237: +case 240: YY_RULE_SETUP -#line 364 "conf_lexer.l" +#line 372 "conf_lexer.l" { return MINUTES; } YY_BREAK -case 238: +case 241: YY_RULE_SETUP -#line 365 "conf_lexer.l" +#line 373 "conf_lexer.l" { return MINUTES; } YY_BREAK -case 239: +case 242: YY_RULE_SETUP -#line 366 "conf_lexer.l" +#line 374 "conf_lexer.l" { return SECONDS; } YY_BREAK -case 240: +case 243: YY_RULE_SETUP -#line 367 "conf_lexer.l" +#line 375 "conf_lexer.l" { return SECONDS; } YY_BREAK -case 241: +case 244: YY_RULE_SETUP -#line 369 "conf_lexer.l" +#line 377 "conf_lexer.l" { return BYTES; } YY_BREAK -case 242: +case 245: YY_RULE_SETUP -#line 370 "conf_lexer.l" +#line 378 "conf_lexer.l" { return BYTES; } YY_BREAK -case 243: +case 246: YY_RULE_SETUP -#line 371 "conf_lexer.l" +#line 379 "conf_lexer.l" { return KBYTES; } YY_BREAK -case 244: +case 247: YY_RULE_SETUP -#line 372 "conf_lexer.l" +#line 380 "conf_lexer.l" { return KBYTES; } YY_BREAK -case 245: +case 248: YY_RULE_SETUP -#line 373 "conf_lexer.l" +#line 381 "conf_lexer.l" { return KBYTES; } YY_BREAK -case 246: +case 249: YY_RULE_SETUP -#line 374 "conf_lexer.l" +#line 382 "conf_lexer.l" { return KBYTES; } YY_BREAK -case 247: +case 250: YY_RULE_SETUP -#line 375 "conf_lexer.l" +#line 383 "conf_lexer.l" { return KBYTES; } YY_BREAK -case 248: +case 251: YY_RULE_SETUP -#line 376 "conf_lexer.l" +#line 384 "conf_lexer.l" { return MBYTES; } YY_BREAK -case 249: +case 252: YY_RULE_SETUP -#line 377 "conf_lexer.l" +#line 385 "conf_lexer.l" { return MBYTES; } YY_BREAK -case 250: +case 253: YY_RULE_SETUP -#line 378 "conf_lexer.l" +#line 386 "conf_lexer.l" { return MBYTES; } YY_BREAK -case 251: +case 254: YY_RULE_SETUP -#line 379 "conf_lexer.l" +#line 387 "conf_lexer.l" { return MBYTES; } YY_BREAK -case 252: +case 255: YY_RULE_SETUP -#line 380 "conf_lexer.l" +#line 388 "conf_lexer.l" { return MBYTES; } YY_BREAK -case 253: +case 256: YY_RULE_SETUP -#line 381 "conf_lexer.l" +#line 389 "conf_lexer.l" { return TWODOTS; } YY_BREAK -case 254: +case 257: YY_RULE_SETUP -#line 383 "conf_lexer.l" +#line 391 "conf_lexer.l" { return yytext[0]; } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 384 "conf_lexer.l" -{ if (ieof() == true) yyterminate(); } +#line 392 "conf_lexer.l" +{ if (conf_eof() == true) yyterminate(); } YY_BREAK -case 255: +case 258: YY_RULE_SETUP -#line 386 "conf_lexer.l" +#line 394 "conf_lexer.l" ECHO; YY_BREAK -#line 3351 "conf_lexer.c" +#line 3383 "conf_lexer.c" case YY_END_OF_BUFFER: { @@ -3643,7 +3675,7 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1623 ) + if ( yy_current_state >= 1632 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -3671,11 +3703,11 @@ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1623 ) + if ( yy_current_state >= 1632 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1622); + yy_is_jam = (yy_current_state == 1631); return yy_is_jam ? 0 : yy_current_state; } @@ -4314,50 +4346,13 @@ #define YYTABLES_NAME "yytables" -#line 386 "conf_lexer.l" - - -/* C-comment ignoring routine -kre*/ -static void -ccomment(void) -{ - int c = 0; - - /* log(L_NOTICE, "got comment"); */ - while (1) - { - while ((c = input()) != '*' && c != EOF) - if (c == '\n') - ++lineno; - - if (c == '*') - { - while ((c = input()) == '*') - /* Nothing */ ; - if (c == '/') - break; - else if (c == '\n') - ++lineno; - } +#line 394 "conf_lexer.l" - if (c == EOF) - { - YY_FATAL_ERROR("EOF in comment"); - /* XXX hack alert this disables - * the stupid unused function warning - * gcc generates - */ - if (1 == 0) - yy_fatal_error("EOF in comment"); - break; - } - } -} /* C-style .includes. This function will properly swap input conf buffers, * and lineno -kre */ static void -cinclude(void) +conf_include(void) { char *p; char filenamebuf[IRCD_BUFSIZE]; @@ -4404,7 +4399,7 @@ * apropriately close conf if it not main conf and swap input buffers -kre * */ static bool -ieof(void) +conf_eof(void) { if (include_stack_ptr == 0) { diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_lexer.l ircd-hybrid-8.2.38+dfsg.1/src/conf_lexer.l --- ircd-hybrid-8.2.37+dfsg.1/src/conf_lexer.l 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_lexer.l 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,14 +21,17 @@ /*! \file conf_lexer.l * \brief Scans the ircd configuration file for tokens. - * \version $Id: conf_lexer.l 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: conf_lexer.l 9897 2021-01-17 06:18:18Z michael $ */ %option case-insensitive %option noyywrap +%option noinput %option nounput %option never-interactive +%x IN_COMMENT + %{ #include "stdinc.h" #include "irc_string.h" @@ -58,9 +61,8 @@ static unsigned int include_stack_ptr; -static void ccomment(void); -static void cinclude(void); -static bool ieof(void); +static void conf_include(void); +static bool conf_eof(void); static int conf_yy_input(char *lbuf, unsigned int max_size) @@ -83,8 +85,14 @@ include \.include{WS}(\<.*\>|\".*\") %% -{include} { cinclude(); } -"/*" { ccomment(); } + +"/*" { BEGIN IN_COMMENT; } +"*/" { BEGIN INITIAL; } +. ; /* Eat everything but a newline */ +\n { ++lineno; } +<> { BEGIN INITIAL; if (conf_eof()) yyterminate(); } + +{include} { conf_include(); } \n.* { strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++lineno; yyless(1); } {WS} ; {COMMENT} ; @@ -175,7 +183,6 @@ dline { return T_DLINE; } dline_min_cidr { return DLINE_MIN_CIDR; } dline_min_cidr6 { return DLINE_MIN_CIDR6; } -dots_in_ident { return DOTS_IN_IDENT; } email { return EMAIL; } enable_extbans { return ENABLE_EXTBANS; } encrypted { return ENCRYPTED; } @@ -304,6 +311,7 @@ size { return T_SIZE; } skill { return T_SKILL; } softcallerid { return T_SOFTCALLERID; } +specials_in_ident { return SPECIALS_IN_IDENT; } spoof { return SPOOF; } spy { return T_SPY; } squit { return SQUIT; } @@ -381,51 +389,14 @@ \.\. { return TWODOTS; } . { return yytext[0]; } -<> { if (ieof() == true) yyterminate(); } +<> { if (conf_eof() == true) yyterminate(); } %% -/* C-comment ignoring routine -kre*/ -static void -ccomment(void) -{ - int c = 0; - - /* log(L_NOTICE, "got comment"); */ - while (1) - { - while ((c = input()) != '*' && c != EOF) - if (c == '\n') - ++lineno; - - if (c == '*') - { - while ((c = input()) == '*') - /* Nothing */ ; - if (c == '/') - break; - else if (c == '\n') - ++lineno; - } - - if (c == EOF) - { - YY_FATAL_ERROR("EOF in comment"); - /* XXX hack alert this disables - * the stupid unused function warning - * gcc generates - */ - if (1 == 0) - yy_fatal_error("EOF in comment"); - break; - } - } -} - /* C-style .includes. This function will properly swap input conf buffers, * and lineno -kre */ static void -cinclude(void) +conf_include(void) { char *p; char filenamebuf[IRCD_BUFSIZE]; @@ -472,7 +443,7 @@ * apropriately close conf if it not main conf and swap input buffers -kre * */ static bool -ieof(void) +conf_eof(void) { if (include_stack_ptr == 0) { diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.c ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.c 2021-01-17 11:18:40.000000000 +0000 @@ -256,115 +256,115 @@ DISABLE_REMOTE_COMMANDS = 292, DLINE_MIN_CIDR = 293, DLINE_MIN_CIDR6 = 294, - DOTS_IN_IDENT = 295, - EMAIL = 296, - ENABLE_EXTBANS = 297, - ENCRYPTED = 298, - EXCEED_LIMIT = 299, - EXEMPT = 300, - EXPIRATION = 301, - FAILED_OPER_NOTICE = 302, - FLATTEN_LINKS = 303, - FLATTEN_LINKS_DELAY = 304, - FLATTEN_LINKS_FILE = 305, - GECOS = 306, - GENERAL = 307, - HIDDEN = 308, - HIDDEN_NAME = 309, - HIDE_CHANS = 310, - HIDE_IDLE = 311, - HIDE_IDLE_FROM_OPERS = 312, - HIDE_SERVER_IPS = 313, - HIDE_SERVERS = 314, - HIDE_SERVICES = 315, - HOST = 316, - HUB = 317, - HUB_MASK = 318, - INVISIBLE_ON_CONNECT = 319, - INVITE_CLIENT_COUNT = 320, - INVITE_CLIENT_TIME = 321, - INVITE_DELAY_CHANNEL = 322, - INVITE_EXPIRE_TIME = 323, - IP = 324, - IRCD_AUTH = 325, - IRCD_FLAGS = 326, - IRCD_SID = 327, - JOIN = 328, - KILL = 329, - KILL_CHASE_TIME_LIMIT = 330, - KLINE = 331, - KLINE_EXEMPT = 332, - KLINE_MIN_CIDR = 333, - KLINE_MIN_CIDR6 = 334, - KNOCK_CLIENT_COUNT = 335, - KNOCK_CLIENT_TIME = 336, - KNOCK_DELAY_CHANNEL = 337, - LEAF_MASK = 338, - LISTEN = 339, - MASK = 340, - MAX_ACCEPT = 341, - MAX_BANS = 342, - MAX_BANS_LARGE = 343, - MAX_CHANNELS = 344, - MAX_IDLE = 345, - MAX_INVITES = 346, - MAX_MONITOR = 347, - MAX_NICK_CHANGES = 348, - MAX_NICK_LENGTH = 349, - MAX_NICK_TIME = 350, - MAX_NUMBER = 351, - MAX_TARGETS = 352, - MAX_TOPIC_LENGTH = 353, - MIN_IDLE = 354, - MIN_NONWILDCARD = 355, - MIN_NONWILDCARD_SIMPLE = 356, - MODULE = 357, - MODULES = 358, - MOTD = 359, - NAME = 360, - NEED_IDENT = 361, - NEED_PASSWORD = 362, - NETWORK_DESCRIPTION = 363, - NETWORK_NAME = 364, - NICK = 365, - NO_OPER_FLOOD = 366, - NO_TILDE = 367, - NUMBER_PER_CIDR = 368, - NUMBER_PER_IP_GLOBAL = 369, - NUMBER_PER_IP_LOCAL = 370, - OPER_ONLY_UMODES = 371, - OPER_UMODES = 372, - OPERATOR = 373, - OPERS_BYPASS_CALLERID = 374, - PACE_WAIT = 375, - PACE_WAIT_SIMPLE = 376, - PASSWORD = 377, - PATH = 378, - PING_COOKIE = 379, - PING_TIME = 380, - PORT = 381, - RANDOM_IDLE = 382, - REASON = 383, - REDIRPORT = 384, - REDIRSERV = 385, - REHASH = 386, - REMOTE = 387, - REMOTEBAN = 388, - RESV = 389, - RESV_EXEMPT = 390, - RSA_PRIVATE_KEY_FILE = 391, - SECONDS = 392, - MINUTES = 393, - HOURS = 394, - DAYS = 395, - WEEKS = 396, - MONTHS = 397, - YEARS = 398, - SEND_PASSWORD = 399, - SENDQ = 400, - SERVERHIDE = 401, - SERVERINFO = 402, - SHORT_MOTD = 403, + EMAIL = 295, + ENABLE_EXTBANS = 296, + ENCRYPTED = 297, + EXCEED_LIMIT = 298, + EXEMPT = 299, + EXPIRATION = 300, + FAILED_OPER_NOTICE = 301, + FLATTEN_LINKS = 302, + FLATTEN_LINKS_DELAY = 303, + FLATTEN_LINKS_FILE = 304, + GECOS = 305, + GENERAL = 306, + HIDDEN = 307, + HIDDEN_NAME = 308, + HIDE_CHANS = 309, + HIDE_IDLE = 310, + HIDE_IDLE_FROM_OPERS = 311, + HIDE_SERVER_IPS = 312, + HIDE_SERVERS = 313, + HIDE_SERVICES = 314, + HOST = 315, + HUB = 316, + HUB_MASK = 317, + INVISIBLE_ON_CONNECT = 318, + INVITE_CLIENT_COUNT = 319, + INVITE_CLIENT_TIME = 320, + INVITE_DELAY_CHANNEL = 321, + INVITE_EXPIRE_TIME = 322, + IP = 323, + IRCD_AUTH = 324, + IRCD_FLAGS = 325, + IRCD_SID = 326, + JOIN = 327, + KILL = 328, + KILL_CHASE_TIME_LIMIT = 329, + KLINE = 330, + KLINE_EXEMPT = 331, + KLINE_MIN_CIDR = 332, + KLINE_MIN_CIDR6 = 333, + KNOCK_CLIENT_COUNT = 334, + KNOCK_CLIENT_TIME = 335, + KNOCK_DELAY_CHANNEL = 336, + LEAF_MASK = 337, + LISTEN = 338, + MASK = 339, + MAX_ACCEPT = 340, + MAX_BANS = 341, + MAX_BANS_LARGE = 342, + MAX_CHANNELS = 343, + MAX_IDLE = 344, + MAX_INVITES = 345, + MAX_MONITOR = 346, + MAX_NICK_CHANGES = 347, + MAX_NICK_LENGTH = 348, + MAX_NICK_TIME = 349, + MAX_NUMBER = 350, + MAX_TARGETS = 351, + MAX_TOPIC_LENGTH = 352, + MIN_IDLE = 353, + MIN_NONWILDCARD = 354, + MIN_NONWILDCARD_SIMPLE = 355, + MODULE = 356, + MODULES = 357, + MOTD = 358, + NAME = 359, + NEED_IDENT = 360, + NEED_PASSWORD = 361, + NETWORK_DESCRIPTION = 362, + NETWORK_NAME = 363, + NICK = 364, + NO_OPER_FLOOD = 365, + NO_TILDE = 366, + NUMBER_PER_CIDR = 367, + NUMBER_PER_IP_GLOBAL = 368, + NUMBER_PER_IP_LOCAL = 369, + OPER_ONLY_UMODES = 370, + OPER_UMODES = 371, + OPERATOR = 372, + OPERS_BYPASS_CALLERID = 373, + PACE_WAIT = 374, + PACE_WAIT_SIMPLE = 375, + PASSWORD = 376, + PATH = 377, + PING_COOKIE = 378, + PING_TIME = 379, + PORT = 380, + RANDOM_IDLE = 381, + REASON = 382, + REDIRPORT = 383, + REDIRSERV = 384, + REHASH = 385, + REMOTE = 386, + REMOTEBAN = 387, + RESV = 388, + RESV_EXEMPT = 389, + RSA_PRIVATE_KEY_FILE = 390, + SECONDS = 391, + MINUTES = 392, + HOURS = 393, + DAYS = 394, + WEEKS = 395, + MONTHS = 396, + YEARS = 397, + SEND_PASSWORD = 398, + SENDQ = 399, + SERVERHIDE = 400, + SERVERINFO = 401, + SHORT_MOTD = 402, + SPECIALS_IN_IDENT = 403, SPOOF = 404, SQUIT = 405, STATS_E_DISABLED = 406, @@ -488,115 +488,115 @@ #define DISABLE_REMOTE_COMMANDS 292 #define DLINE_MIN_CIDR 293 #define DLINE_MIN_CIDR6 294 -#define DOTS_IN_IDENT 295 -#define EMAIL 296 -#define ENABLE_EXTBANS 297 -#define ENCRYPTED 298 -#define EXCEED_LIMIT 299 -#define EXEMPT 300 -#define EXPIRATION 301 -#define FAILED_OPER_NOTICE 302 -#define FLATTEN_LINKS 303 -#define FLATTEN_LINKS_DELAY 304 -#define FLATTEN_LINKS_FILE 305 -#define GECOS 306 -#define GENERAL 307 -#define HIDDEN 308 -#define HIDDEN_NAME 309 -#define HIDE_CHANS 310 -#define HIDE_IDLE 311 -#define HIDE_IDLE_FROM_OPERS 312 -#define HIDE_SERVER_IPS 313 -#define HIDE_SERVERS 314 -#define HIDE_SERVICES 315 -#define HOST 316 -#define HUB 317 -#define HUB_MASK 318 -#define INVISIBLE_ON_CONNECT 319 -#define INVITE_CLIENT_COUNT 320 -#define INVITE_CLIENT_TIME 321 -#define INVITE_DELAY_CHANNEL 322 -#define INVITE_EXPIRE_TIME 323 -#define IP 324 -#define IRCD_AUTH 325 -#define IRCD_FLAGS 326 -#define IRCD_SID 327 -#define JOIN 328 -#define KILL 329 -#define KILL_CHASE_TIME_LIMIT 330 -#define KLINE 331 -#define KLINE_EXEMPT 332 -#define KLINE_MIN_CIDR 333 -#define KLINE_MIN_CIDR6 334 -#define KNOCK_CLIENT_COUNT 335 -#define KNOCK_CLIENT_TIME 336 -#define KNOCK_DELAY_CHANNEL 337 -#define LEAF_MASK 338 -#define LISTEN 339 -#define MASK 340 -#define MAX_ACCEPT 341 -#define MAX_BANS 342 -#define MAX_BANS_LARGE 343 -#define MAX_CHANNELS 344 -#define MAX_IDLE 345 -#define MAX_INVITES 346 -#define MAX_MONITOR 347 -#define MAX_NICK_CHANGES 348 -#define MAX_NICK_LENGTH 349 -#define MAX_NICK_TIME 350 -#define MAX_NUMBER 351 -#define MAX_TARGETS 352 -#define MAX_TOPIC_LENGTH 353 -#define MIN_IDLE 354 -#define MIN_NONWILDCARD 355 -#define MIN_NONWILDCARD_SIMPLE 356 -#define MODULE 357 -#define MODULES 358 -#define MOTD 359 -#define NAME 360 -#define NEED_IDENT 361 -#define NEED_PASSWORD 362 -#define NETWORK_DESCRIPTION 363 -#define NETWORK_NAME 364 -#define NICK 365 -#define NO_OPER_FLOOD 366 -#define NO_TILDE 367 -#define NUMBER_PER_CIDR 368 -#define NUMBER_PER_IP_GLOBAL 369 -#define NUMBER_PER_IP_LOCAL 370 -#define OPER_ONLY_UMODES 371 -#define OPER_UMODES 372 -#define OPERATOR 373 -#define OPERS_BYPASS_CALLERID 374 -#define PACE_WAIT 375 -#define PACE_WAIT_SIMPLE 376 -#define PASSWORD 377 -#define PATH 378 -#define PING_COOKIE 379 -#define PING_TIME 380 -#define PORT 381 -#define RANDOM_IDLE 382 -#define REASON 383 -#define REDIRPORT 384 -#define REDIRSERV 385 -#define REHASH 386 -#define REMOTE 387 -#define REMOTEBAN 388 -#define RESV 389 -#define RESV_EXEMPT 390 -#define RSA_PRIVATE_KEY_FILE 391 -#define SECONDS 392 -#define MINUTES 393 -#define HOURS 394 -#define DAYS 395 -#define WEEKS 396 -#define MONTHS 397 -#define YEARS 398 -#define SEND_PASSWORD 399 -#define SENDQ 400 -#define SERVERHIDE 401 -#define SERVERINFO 402 -#define SHORT_MOTD 403 +#define EMAIL 295 +#define ENABLE_EXTBANS 296 +#define ENCRYPTED 297 +#define EXCEED_LIMIT 298 +#define EXEMPT 299 +#define EXPIRATION 300 +#define FAILED_OPER_NOTICE 301 +#define FLATTEN_LINKS 302 +#define FLATTEN_LINKS_DELAY 303 +#define FLATTEN_LINKS_FILE 304 +#define GECOS 305 +#define GENERAL 306 +#define HIDDEN 307 +#define HIDDEN_NAME 308 +#define HIDE_CHANS 309 +#define HIDE_IDLE 310 +#define HIDE_IDLE_FROM_OPERS 311 +#define HIDE_SERVER_IPS 312 +#define HIDE_SERVERS 313 +#define HIDE_SERVICES 314 +#define HOST 315 +#define HUB 316 +#define HUB_MASK 317 +#define INVISIBLE_ON_CONNECT 318 +#define INVITE_CLIENT_COUNT 319 +#define INVITE_CLIENT_TIME 320 +#define INVITE_DELAY_CHANNEL 321 +#define INVITE_EXPIRE_TIME 322 +#define IP 323 +#define IRCD_AUTH 324 +#define IRCD_FLAGS 325 +#define IRCD_SID 326 +#define JOIN 327 +#define KILL 328 +#define KILL_CHASE_TIME_LIMIT 329 +#define KLINE 330 +#define KLINE_EXEMPT 331 +#define KLINE_MIN_CIDR 332 +#define KLINE_MIN_CIDR6 333 +#define KNOCK_CLIENT_COUNT 334 +#define KNOCK_CLIENT_TIME 335 +#define KNOCK_DELAY_CHANNEL 336 +#define LEAF_MASK 337 +#define LISTEN 338 +#define MASK 339 +#define MAX_ACCEPT 340 +#define MAX_BANS 341 +#define MAX_BANS_LARGE 342 +#define MAX_CHANNELS 343 +#define MAX_IDLE 344 +#define MAX_INVITES 345 +#define MAX_MONITOR 346 +#define MAX_NICK_CHANGES 347 +#define MAX_NICK_LENGTH 348 +#define MAX_NICK_TIME 349 +#define MAX_NUMBER 350 +#define MAX_TARGETS 351 +#define MAX_TOPIC_LENGTH 352 +#define MIN_IDLE 353 +#define MIN_NONWILDCARD 354 +#define MIN_NONWILDCARD_SIMPLE 355 +#define MODULE 356 +#define MODULES 357 +#define MOTD 358 +#define NAME 359 +#define NEED_IDENT 360 +#define NEED_PASSWORD 361 +#define NETWORK_DESCRIPTION 362 +#define NETWORK_NAME 363 +#define NICK 364 +#define NO_OPER_FLOOD 365 +#define NO_TILDE 366 +#define NUMBER_PER_CIDR 367 +#define NUMBER_PER_IP_GLOBAL 368 +#define NUMBER_PER_IP_LOCAL 369 +#define OPER_ONLY_UMODES 370 +#define OPER_UMODES 371 +#define OPERATOR 372 +#define OPERS_BYPASS_CALLERID 373 +#define PACE_WAIT 374 +#define PACE_WAIT_SIMPLE 375 +#define PASSWORD 376 +#define PATH 377 +#define PING_COOKIE 378 +#define PING_TIME 379 +#define PORT 380 +#define RANDOM_IDLE 381 +#define REASON 382 +#define REDIRPORT 383 +#define REDIRSERV 384 +#define REHASH 385 +#define REMOTE 386 +#define REMOTEBAN 387 +#define RESV 388 +#define RESV_EXEMPT 389 +#define RSA_PRIVATE_KEY_FILE 390 +#define SECONDS 391 +#define MINUTES 392 +#define HOURS 393 +#define DAYS 394 +#define WEEKS 395 +#define MONTHS 396 +#define YEARS 397 +#define SEND_PASSWORD 398 +#define SENDQ 399 +#define SERVERHIDE 400 +#define SERVERINFO 401 +#define SHORT_MOTD 402 +#define SPECIALS_IN_IDENT 403 #define SPOOF 404 #define SQUIT 405 #define STATS_E_DISABLED 406 @@ -1009,7 +1009,7 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1240 +#define YYLAST 1243 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 238 @@ -1172,8 +1172,8 @@ "DEFAULT_JOIN_FLOOD_COUNT", "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DEFER", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", - "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6", "DOTS_IN_IDENT", "EMAIL", - "ENABLE_EXTBANS", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "EXPIRATION", + "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6", "EMAIL", "ENABLE_EXTBANS", + "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "EXPIRATION", "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY", "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", @@ -1197,11 +1197,11 @@ "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", - "SPOOF", "SQUIT", "STATS_E_DISABLED", "STATS_I_OPER_ONLY", - "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY", - "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BIND", - "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG", - "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FLOOD", + "SPECIALS_IN_IDENT", "SPOOF", "SQUIT", "STATS_E_DISABLED", + "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", + "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", + "T_BIND", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", + "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FLOOD", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET", @@ -1287,11 +1287,12 @@ "general_stats_k_oper_only", "general_stats_i_oper_only", "general_pace_wait", "general_caller_id_wait", "general_opers_bypass_callerid", "general_pace_wait_simple", - "general_short_motd", "general_no_oper_flood", "general_dots_in_ident", - "general_max_targets", "general_ping_cookie", "general_disable_auth", - "general_throttle_count", "general_throttle_time", "general_oper_umodes", - "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes", - "$@26", "umode_items", "umode_item", "general_min_nonwildcard", + "general_short_motd", "general_no_oper_flood", + "general_specials_in_ident", "general_max_targets", + "general_ping_cookie", "general_disable_auth", "general_throttle_count", + "general_throttle_time", "general_oper_umodes", "$@25", "umode_oitems", + "umode_oitem", "general_oper_only_umodes", "$@26", "umode_items", + "umode_item", "general_min_nonwildcard", "general_min_nonwildcard_simple", "general_default_floodcount", "general_default_floodtime", "channel_entry", "channel_items", "channel_item", "channel_enable_extbans", @@ -1342,7 +1343,7 @@ }; # endif -#define YYPACT_NINF (-981) +#define YYPACT_NINF (-1015) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1356,138 +1357,138 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - -981, 902, -981, -173, -229, -202, -981, -981, -981, -184, - -981, -177, -981, -981, -981, -172, -981, -981, -981, -163, - -161, -981, -123, -981, -106, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, 281, 927, -97, -96, -80, 27, -56, 398, -48, - -45, -34, 51, -25, -6, -2, 558, 547, 20, 12, - 36, 15, 49, -212, 54, 56, 61, 14, -981, -981, - -981, -981, -981, 68, 70, 71, 72, 75, 81, 82, - 91, 92, 94, 96, 97, 98, 99, 100, 2, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, 846, 633, 23, -981, 102, - 16, -981, -981, 42, -981, 104, 106, 108, 110, 112, - 117, 124, 127, 137, 138, 139, 140, 148, 149, 150, - 152, 153, 154, 156, 158, 160, 163, 174, 180, 181, - -981, -981, 182, 187, 191, 192, 193, 194, 196, 197, - 199, 200, 206, 207, 208, 213, 214, 215, 217, 218, - 39, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, 359, 40, 349, - 83, 219, 221, 25, -981, -981, -981, 50, 335, 264, - -981, 223, 225, 230, 231, 232, 233, 234, 236, 239, - 164, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, 171, 243, 245, 250, 251, 252, 257, 261, 262, - 265, 268, 269, 270, 271, 277, 278, 285, 143, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, 57, 284, 286, 13, - -981, -981, -981, 363, 220, -981, 300, 28, -981, -981, - 8, -981, 307, 308, 309, 310, -981, 224, 312, 336, - 337, 314, 312, 312, 312, 325, 312, 312, 327, 329, - 332, 333, 334, -981, 339, 330, 340, 341, -981, 343, - 347, 348, 350, 351, 352, 353, 355, 357, 361, 362, - 179, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, 342, 364, 365, - 366, 367, 370, 378, -981, 385, 386, 387, 392, 397, - 405, 407, 408, 237, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, 411, 412, 38, -981, -981, -981, 338, 401, -981, - -981, 414, 415, 115, -981, -981, -981, 368, 312, 399, - 312, 312, 380, 420, 312, 450, 427, 432, 434, 462, - 463, 312, 437, 439, 441, 444, 446, 312, 448, 451, - 453, 477, 452, 454, 481, 312, 312, 486, 487, 488, - 489, 493, 494, 495, 497, 501, 475, 312, 312, 312, - 504, 476, 479, -981, 480, 474, 478, -981, 482, 484, - 485, 490, 491, 55, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, 499, 500, 80, -981, -981, -981, - 483, 506, 507, -981, 508, -981, 26, -981, -981, -981, - -981, -981, 492, 498, 512, -981, 513, 511, 515, 3, - -981, -981, -981, 516, 518, 519, -981, 521, 528, -981, - 529, 530, 531, 532, 168, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, 537, 535, 536, 538, - 79, -981, -981, -981, -981, 510, 517, 312, 502, 520, - 544, 525, 543, 572, 549, -981, -981, 505, 554, 583, - 559, 560, 563, 567, 568, 569, 570, 573, 574, 576, - 577, 578, 582, 581, -981, 584, 579, -981, 62, -981, - -981, -981, -981, 598, 585, -981, 52, 586, 580, 587, - 588, 589, 105, -981, -981, -981, -981, -981, 590, 593, - -981, 594, 592, -981, 595, 41, -981, -981, -981, -981, - 596, 597, 599, -981, 600, 228, 601, 602, 603, 604, - 605, 606, 607, 609, 614, 621, 623, 625, 626, 628, - -981, -981, 619, 632, 312, 631, 637, 312, 638, 312, - 591, 641, 642, 643, 312, 647, 647, 648, -981, -981, - 649, -64, 651, 680, 658, 661, 660, 663, 666, 667, - 671, 674, 312, 677, 678, 679, -981, 682, 686, 688, - -981, 689, -981, 694, 696, 695, -981, 697, 698, 699, - 700, 701, 705, 706, 707, 708, 709, 711, 712, 714, - 716, 717, 718, 720, 725, 726, 730, 732, 733, 734, - 735, 736, 722, 618, 738, 741, 742, 743, 745, 746, - 747, 748, 749, 750, 751, 752, 753, 755, 756, 757, - 758, 764, -981, -981, 767, 794, 675, 769, 687, 770, - 771, 772, 778, -981, 773, 774, 779, -981, -981, 782, - 783, 784, 786, 789, -981, 790, 791, -981, -981, 795, - 796, 792, -981, -981, 797, 825, 798, 800, 801, 799, - 802, 831, 807, 808, 809, -981, -981, 810, 812, 813, - 814, -981, 815, 818, 819, 820, 821, 822, 823, 824, - 826, -981, 827, 828, 829, 830, 832, 834, 835, 836, - 837, 838, 839, 840, 841, 842, 843, 844, -981, -981, - 833, 804, 845, -981, 847, -981, 121, -981, 850, 851, - 852, 854, 853, -981, 855, -981, -981, 856, 857, 859, - 858, -981, -981, -981, -981, -981, 312, 312, 312, 312, - 312, 312, 312, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, 861, - 862, 863, -4, 864, 865, 866, 867, 868, 869, 870, - 871, 872, 22, 873, 874, -981, 875, 876, 877, 878, - 879, 880, 881, 4, 882, 883, 884, 885, 886, 887, - 888, 889, -981, 890, 891, -981, -981, 892, 893, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -214, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -213, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, 894, - 895, 395, 896, 897, 898, 899, 900, -981, 901, 903, - -981, 904, 905, 266, 916, 906, -981, -981, -981, -981, - 907, 908, -981, 909, 911, 460, 912, 913, 684, 914, - 915, 917, 918, -981, 919, 920, 921, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, 922, 503, -981, -981, 923, 924, 925, - -981, 111, -981, -981, -981, -981, 926, 929, 930, 931, - -981, -981, 932, 552, 933, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -211, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, 647, - 647, 647, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -199, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - 722, -981, 618, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -160, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -87, -981, 935, 786, 936, -981, -981, -981, -981, -981, - -981, 934, -981, 937, 938, -981, -981, 939, 940, -981, - -981, 941, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -75, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -61, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -53, -981, -981, 942, -137, 944, 948, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -30, -981, -981, -981, -4, -981, -981, - -981, -981, 4, -981, -981, -981, 395, -981, 266, -981, - -981, -981, 1006, 435, 1016, 910, 1024, 1025, -981, 460, - -981, 684, -981, 503, 949, 950, 951, 345, -981, -981, - 552, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -7, -981, -981, -981, 345, - -981 + -1015, 849, -1015, -183, -193, -187, -1015, -1015, -1015, -159, + -1015, -157, -1015, -1015, -1015, -136, -1015, -1015, -1015, -131, + -124, -1015, -117, -1015, -108, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, 367, 975, -102, -97, -78, 2, -77, 396, -59, + -53, -51, 110, -45, -40, -36, 605, 525, -35, 19, + -31, 17, -21, -206, -200, -89, -19, 3, -1015, -1015, + -1015, -1015, -1015, -12, -7, -2, -1, 21, 40, 49, + 66, 70, 76, 77, 80, 85, 91, 95, 186, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, 866, 460, 57, -1015, 98, + 50, -1015, -1015, 31, -1015, 101, 103, 104, 107, 109, + 112, 127, 131, 136, 139, 141, 143, 152, 154, 155, + 156, 157, 164, 166, 169, 177, 179, 182, 185, -1015, + -1015, 189, 191, 193, 197, 198, 202, 204, 205, 206, + 210, 218, 219, 220, 225, 232, 233, 240, 241, 242, + 53, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, 315, 68, 313, + 6, 243, 247, 12, -1015, -1015, -1015, 16, 309, 331, + -1015, 248, 249, 251, 256, 258, 259, 262, 263, 264, + 306, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, 59, 266, 268, 269, 272, 273, 274, 278, 282, + 288, 289, 290, 292, 297, 298, 299, 301, 89, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, 122, 113, 303, 8, + -1015, -1015, -1015, 74, 190, -1015, 311, 75, -1015, -1015, + 20, -1015, 62, 65, 195, 324, -1015, 54, 314, 275, + 353, 328, 314, 314, 314, 329, 314, 314, 330, 332, + 342, 343, 344, -1015, 345, 340, 347, 348, -1015, 349, + 352, 355, 356, 357, 358, 359, 360, 362, 363, 364, + 236, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, 372, 370, 373, + 374, 375, 376, 379, -1015, 381, 382, 385, 389, 390, + 391, 392, 393, 11, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, 395, 400, 38, -1015, -1015, -1015, 401, 405, -1015, + -1015, 411, 412, 63, -1015, -1015, -1015, 384, 314, 409, + 314, 314, 444, 418, 314, 446, 420, 424, 455, 457, + 314, 434, 435, 437, 440, 442, 314, 443, 445, 447, + 471, 448, 449, 478, 314, 314, 483, 487, 461, 489, + 491, 492, 493, 494, 495, 496, 470, 314, 314, 314, + 498, 473, 475, -1015, 477, 476, 480, -1015, 481, 482, + 484, 485, 488, 267, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, 490, 497, 24, -1015, -1015, -1015, + 486, 502, 507, -1015, 508, -1015, 14, -1015, -1015, -1015, + -1015, -1015, 499, 500, 509, -1015, 512, 510, 511, 56, + -1015, -1015, -1015, 515, 513, 516, -1015, 517, 520, -1015, + 523, 527, 528, 530, 160, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, 536, 534, 535, 538, + 28, -1015, -1015, -1015, -1015, 518, 524, 314, 501, 556, + 541, 570, 571, 573, 546, -1015, -1015, 479, 549, 579, + 554, 555, 557, 559, 561, 562, 563, 566, 567, 577, + 578, 580, 583, 553, -1015, 568, 552, -1015, 44, -1015, + -1015, -1015, -1015, 599, 582, -1015, 584, 587, 581, 585, + 588, 593, 55, -1015, -1015, -1015, -1015, -1015, 592, 600, + -1015, 606, 596, -1015, 607, 60, -1015, -1015, -1015, -1015, + 608, 611, 613, -1015, 616, 310, 619, 622, 623, 625, + 626, 627, 632, 633, 636, 639, 642, 643, 644, 645, + -1015, -1015, 647, 648, 314, 651, 649, 314, 652, 314, + 594, 656, 658, 660, 314, 661, 661, 650, -1015, -1015, + 664, -88, 665, 693, 671, 672, 668, 674, 677, 678, + 680, 681, 314, 682, 683, 676, -1015, 684, 686, 685, + -1015, 687, -1015, 690, 691, 692, -1015, 694, 696, 699, + 701, 702, 703, 706, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 721, 724, 725, 727, 731, 733, 735, + 737, 669, 589, 739, 741, 742, 743, 745, 749, 751, + 752, 753, 754, 755, 756, 757, 759, 760, 761, 764, + 765, 766, -1015, -1015, 695, 719, 767, 732, 768, 770, + 771, 775, 774, -1015, 777, 778, 781, -1015, -1015, 779, + 784, 780, 786, 787, -1015, 788, 789, -1015, -1015, 792, + 793, 794, -1015, -1015, 797, 814, 796, 798, 799, 801, + 802, 820, 803, 804, 805, -1015, -1015, 813, 815, 816, + 812, -1015, 817, 818, 819, 821, 825, 826, 827, 828, + 832, -1015, 834, 835, 836, 837, 838, 839, 840, 841, + 842, 843, 844, 845, 846, 847, 848, 850, -1015, -1015, + 822, 851, 852, -1015, 853, -1015, 108, -1015, 857, 858, + 859, 860, 861, -1015, 862, -1015, -1015, 865, 856, 867, + 864, -1015, -1015, -1015, -1015, -1015, 314, 314, 314, 314, + 314, 314, 314, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, 868, + 869, 870, -37, 871, 872, 873, 874, 875, 876, 877, + 878, 879, 82, 880, 881, -1015, 882, 883, 884, 885, + 886, 887, 888, -3, 889, 890, 891, 892, 893, 894, + 895, 896, -1015, 897, 898, -1015, -1015, 899, 900, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -209, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -208, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, 901, + 902, 351, 903, 904, 905, 906, 907, -1015, 908, 909, + -1015, 910, 911, 377, 829, 736, -1015, -1015, -1015, -1015, + 912, 913, -1015, 914, 915, 506, 916, 917, 634, 918, + 919, 920, 921, -1015, 922, 923, 924, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, 925, 730, -1015, -1015, 926, 863, 927, + -1015, 29, -1015, -1015, -1015, -1015, 928, 929, 931, 932, + -1015, -1015, 933, 740, 934, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -199, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, 661, + 661, 661, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -198, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + 669, -1015, 589, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -192, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -190, -1015, 936, 786, 937, -1015, -1015, -1015, -1015, -1015, + -1015, 855, -1015, 935, 938, -1015, -1015, 939, 940, -1015, + -1015, 941, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -184, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -149, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -135, -1015, -1015, 943, -176, 944, 942, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -70, -1015, -1015, -1015, -37, -1015, -1015, + -1015, -1015, -3, -1015, -1015, -1015, 351, -1015, 377, -1015, + -1015, -1015, 950, 591, 952, 966, 1028, 1037, -1015, 506, + -1015, 634, -1015, 730, 948, 949, 951, 244, -1015, -1015, + 740, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -58, -1015, -1015, -1015, 244, + -1015 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1509,8 +1510,8 @@ 623, 613, 614, 624, 625, 0, 0, 0, 457, 0, 0, 455, 456, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 582, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, + 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470, 471, 472, 514, 478, 515, 509, 510, 511, 512, 482, 473, 474, 475, 476, 477, 479, 480, 481, @@ -1584,13 +1585,13 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 445, 458, 0, 0, 460, 528, 532, 517, 518, 545, 521, 608, 609, 553, 522, - 523, 550, 527, 535, 526, 524, 525, 531, 519, 530, - 529, 551, 606, 607, 549, 586, 605, 592, 601, 587, - 588, 589, 596, 604, 590, 598, 602, 593, 603, 594, - 597, 591, 600, 595, 599, 0, 585, 560, 581, 565, - 566, 567, 577, 561, 562, 563, 572, 580, 564, 574, - 578, 569, 579, 570, 573, 568, 576, 571, 575, 0, - 559, 546, 544, 547, 552, 548, 537, 543, 542, 538, + 523, 527, 535, 526, 524, 525, 531, 519, 530, 529, + 551, 606, 607, 549, 586, 605, 592, 601, 587, 588, + 589, 596, 604, 590, 598, 602, 593, 603, 594, 597, + 591, 600, 595, 599, 0, 585, 560, 581, 565, 566, + 567, 577, 561, 562, 563, 572, 580, 564, 574, 578, + 569, 579, 570, 573, 568, 576, 571, 575, 0, 559, + 546, 544, 547, 552, 548, 550, 537, 543, 542, 538, 539, 540, 541, 554, 555, 534, 533, 536, 520, 0, 0, 0, 0, 0, 0, 0, 0, 299, 0, 0, 436, 0, 0, 0, 294, 290, 293, 273, 50, 51, @@ -1632,36 +1633,36 @@ /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -981, -981, -981, -293, -306, -980, -635, -981, -981, 946, - -981, -981, -981, -981, 777, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, 980, -981, -981, -981, -981, -981, -981, - 668, -981, -981, -981, -981, -981, 608, -981, -981, -981, - -981, -981, -981, 928, -981, -981, -981, -981, 129, -981, - -981, -981, -981, -981, -136, -981, -981, -981, 670, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -86, -981, -981, -981, -83, -981, -981, -981, 848, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -60, -981, -981, -981, - -981, -981, -69, -981, 710, -981, -981, -981, 48, -981, - -981, -981, -981, -981, 729, -981, -981, -981, -981, -981, - -981, -981, -63, -981, -981, -981, -981, -981, -981, 664, - -981, -981, -981, -981, -981, 943, -981, -981, -981, -981, - 610, -981, -981, -981, -981, -981, -85, -981, -981, -981, - 629, -981, -981, -981, -981, -74, -981, -981, -981, 849, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -54, -981, -981, -981, -981, -981, -981, -981, - -981, 724, -981, -981, -981, -981, -981, 811, -981, -981, - -981, -981, 1081, -981, -981, -981, -981, 803, -981, -981, - -981, -981, 1032, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, -981, 95, -981, -981, -981, 93, - -981, -981, -981, -981, -981, -981, 1110, -981, -981, -981, - -981, -981, -981, -981, -981, -981, -981, -981, -981, -981, - -981, -981, -981, -981, 969, -981, -981, -981, -981, -981, - -981, -981, -981, -981 + -1015, -1015, -1015, -251, -306, -1014, -635, -1015, -1015, 504, + -1015, -1015, -1015, -1015, 930, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, 635, -1015, -1015, -1015, -1015, -1015, -1015, + 214, -1015, -1015, -1015, -1015, -1015, 602, -1015, -1015, -1015, + -1015, -1015, -1015, 945, -1015, -1015, -1015, -1015, 129, -1015, + -1015, -1015, -1015, -1015, -138, -1015, -1015, -1015, 673, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -86, -1015, -1015, -1015, -87, -1015, -1015, -1015, 854, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -61, -1015, -1015, -1015, + -1015, -1015, -69, -1015, 704, -1015, -1015, -1015, 45, -1015, + -1015, -1015, -1015, -1015, 728, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -64, -1015, -1015, -1015, -1015, -1015, -1015, 663, + -1015, -1015, -1015, -1015, -1015, 946, -1015, -1015, -1015, -1015, + 601, -1015, -1015, -1015, -1015, -1015, -85, -1015, -1015, -1015, + 629, -1015, -1015, -1015, -1015, -74, -1015, -1015, -1015, 830, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -52, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, 726, -1015, -1015, -1015, -1015, -1015, 808, -1015, -1015, + -1015, -1015, 1084, -1015, -1015, -1015, -1015, 806, -1015, -1015, + -1015, -1015, 1035, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, 94, -1015, -1015, -1015, 97, + -1015, -1015, -1015, -1015, -1015, -1015, 1110, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015, 970, -1015, -1015, -1015, -1015, -1015, + -1015, -1015, -1015, -1015 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1692,7 +1693,7 @@ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 433, 949, 950, 212, 432, 925, 926, + 209, 210, 211, 432, 948, 949, 212, 431, 924, 925, 213, 214, 215, 216, 47, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 48, 240, 241, 242, 243, 244, 245, 246, @@ -1704,326 +1705,326 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 853, 854, 606, 82, 496, 51, 610, 611, 612, 591, - 614, 615, 1093, 287, 287, 73, 295, 118, 1109, 1111, - 301, 1246, 1110, 1112, 390, 1247, 220, 480, 118, 295, - 83, 84, 52, 1251, 1079, 1080, 1081, 1252, 85, 390, - 124, 473, 591, 400, 86, 125, 126, 74, 127, 128, - 56, 496, 220, 1066, 129, 75, 454, 58, 565, 49, - 50, 1275, 62, 565, 130, 131, 132, 87, 88, 89, - 90, 66, 1255, 67, 133, 455, 1256, 134, 135, 136, - 526, 473, 91, 92, 93, 119, 137, 481, 497, 94, - 95, 96, 391, 97, 852, 482, 119, 483, 456, 1248, - 1249, 1250, 668, 138, 670, 671, 577, 391, 674, 857, - 858, 69, 1037, 592, 139, 681, 400, 140, 141, 76, - 296, 687, 1037, 1067, 527, 142, 457, 221, 71, 695, - 696, 143, 144, 296, 145, 497, 146, 115, 116, 147, - 148, 707, 708, 709, 251, 1257, 592, 401, 222, 1258, - 149, 392, 484, 221, 117, 150, 151, 1268, 152, 153, - 154, 1269, 566, 155, 528, 230, 392, 566, 474, 503, - 402, 1270, 498, 252, 222, 1271, 253, 458, 123, 1272, - 324, -127, -127, 1273, 459, 460, 217, 156, 504, 218, - 157, 158, 159, 160, 161, 162, 163, 325, 326, 1094, - 219, 231, 1279, 327, 461, 254, 1280, 529, 474, 227, - 578, 505, 232, 233, 234, 255, 1038, 235, 236, 498, - 401, 577, 237, 238, 239, 1308, 1038, 593, 228, 1309, - 594, 764, 229, 288, 288, 322, 741, 256, 357, 506, - 358, 257, 359, 402, 164, 165, 574, 305, 258, 398, - 328, 259, 260, 852, 286, 166, 167, 360, 494, 733, - 593, 589, 475, 594, 168, 526, 169, 579, 329, 330, - 294, 659, 452, 507, 810, 331, 567, 462, 332, 261, - 361, 567, 73, 300, 333, 580, 796, 1135, 722, 302, - 508, 303, 334, 335, 336, 792, 304, 1136, 362, 581, - 363, 1039, 475, 307, 337, 308, 309, 310, 364, 527, - 311, 1039, 760, 726, 74, 491, 312, 313, 841, 1137, - 365, 844, 75, 846, 338, 578, 314, 315, 851, 316, - 1040, 317, 318, 319, 320, 321, 503, 397, 802, 407, - 1040, 408, 366, 409, 1226, 410, 869, 411, 665, 528, - 480, 262, 412, 263, 264, 504, 265, 266, 267, 413, - 454, 339, 414, 367, 509, 816, 817, 818, 819, 820, - 821, 822, 415, 416, 417, 418, 563, 510, 505, 455, - 511, 368, 579, 419, 420, 421, 76, 422, 423, 424, - 512, 425, 529, 426, 513, 427, 369, 544, 428, 124, - 580, 754, 456, 546, 125, 126, 506, 127, 128, 429, - 481, 1115, 637, 129, 581, 430, 431, 434, 482, 1297, - 483, 1298, 435, 130, 131, 132, 436, 437, 438, 439, - 457, 440, 441, 133, 442, 443, 134, 135, 136, 1116, - 507, 444, 445, 446, 370, 137, 371, 372, 447, 448, - 449, 1138, 450, 451, 492, 604, 493, 508, 535, 605, - 536, 1139, 138, 1299, 1149, 537, 538, 539, 540, 541, - 655, 542, 1117, 139, 543, 484, 140, 141, 547, 1300, - 548, 458, 1150, 1151, 142, 549, 550, 551, 459, 460, - 143, 144, 552, 145, 1152, 146, 553, 554, 147, 148, - 555, 1118, 1119, 556, 557, 558, 559, 1120, 461, 149, - 1301, 1302, 560, 561, 150, 151, 572, 152, 153, 154, - 562, 573, 155, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1121, 509, 576, 1153, 1154, 588, 1155, 600, 601, 602, - 607, 608, 603, 605, 510, 609, 156, 511, 251, 157, - 158, 159, 160, 161, 162, 163, 613, 512, 616, 230, - 617, 513, 1156, 618, 619, 622, 620, 1303, 661, 1286, - 1157, 621, 667, 1304, 639, 623, 624, 252, 626, 1210, - 253, 462, 627, 628, 672, 629, 630, 631, 632, 1276, - 633, 1158, 634, 1159, 1160, 231, 635, 636, 1122, 640, - 641, 642, 643, 164, 165, 644, 232, 233, 234, 254, - 1161, 235, 236, 645, 166, 167, 237, 238, 239, 255, - 647, 648, 649, 168, 1123, 169, 1162, 650, 1233, 927, - 669, 1163, 651, 662, 357, 1164, 358, 1211, 359, 1165, - 652, 256, 653, 654, 1166, 257, 657, 658, 1167, 663, - 664, 673, 258, 360, 675, 259, 260, 1168, 676, 1169, - 1170, 1212, 1171, 677, 928, 678, 679, 680, 682, 1213, - 683, 929, 684, 930, 931, 685, 361, 686, 1214, 688, - 1172, 691, 689, 261, 690, 694, 1234, 692, 1173, 693, - 697, 698, 699, 700, 362, 1178, 363, 701, 702, 703, - 1215, 704, 1216, 1217, 364, 705, 706, 711, 710, 714, - 1235, 712, 713, 715, 762, 728, 365, 717, 1236, 718, - 719, 763, 735, 1218, 766, 720, 721, 1237, 736, 768, - 1179, 1219, 765, 905, 724, 725, 772, 1180, 366, 1181, - 1182, 729, 730, 732, 737, 738, 739, 769, 743, 1238, - 740, 1239, 1240, 744, 745, 262, 747, 263, 264, 367, - 265, 266, 267, 748, 750, 751, 752, 753, 906, 756, - 757, 758, 1241, 759, 767, 907, 770, 368, 932, 933, - 1242, 771, 934, 935, 773, 936, 937, 774, 938, 775, - 939, 776, 369, 940, 777, 941, 942, 778, 779, 780, - 781, 943, 794, 782, 783, 944, 784, 785, 786, 945, - 946, 947, 787, 788, 790, 798, 789, 795, 797, 948, - 804, 847, 799, 800, 801, 805, 806, 807, 812, 813, - 809, 814, 815, 825, 826, 827, 828, 829, 830, 831, - 370, 832, 371, 372, 1183, 1184, 833, 324, 1185, 1186, - 839, 1187, 1188, 834, 1189, 835, 1190, 836, 837, 1191, - 838, 1192, 1193, 840, 325, 326, 842, 1194, 843, 845, - 327, 1195, 848, 849, 850, 1196, 1197, 1198, 852, 856, - 855, 859, 908, 909, 860, 1199, 910, 911, 861, 912, - 913, 862, 914, 864, 915, 863, 865, 916, 866, 917, - 918, 867, 2, 3, 868, 919, 4, 870, 871, 920, - 971, 872, 873, 921, 922, 923, 874, 328, 973, 5, - 875, 876, 6, 924, 877, 7, 878, 879, 82, 880, - 881, 882, 883, 884, 8, 329, 330, 885, 886, 887, - 888, 889, 331, 890, 891, 332, 892, 9, 893, 894, - 895, 333, 896, 10, 11, 83, 84, 897, 898, 334, - 335, 336, 899, 85, 900, 901, 902, 903, 904, 86, - 951, 337, 12, 952, 953, 954, 13, 955, 956, 957, - 958, 959, 960, 961, 962, 963, 14, 964, 965, 966, - 967, 338, 87, 88, 89, 90, 968, 969, 970, 972, - 974, 975, 976, 978, 979, 15, 16, 91, 92, 93, - 977, 980, 981, 982, 94, 95, 96, 984, 97, 983, - 17, 987, 988, 989, 992, 990, 991, 993, 339, 994, - 996, 997, 999, 995, 998, 1000, 18, 1001, 1002, 1034, - 1004, 1003, 1005, 1006, 1288, 564, 1007, 1008, 19, 20, - 1009, 1010, 1011, 1012, 1013, 1014, 1015, 306, 1016, 1017, - 1018, 1019, 1020, 1033, 1021, 21, 1022, 1023, 1024, 1025, - 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1035, 22, 1036, - 1046, 1047, 1048, 23, 1049, 1050, 1052, 1051, 24, 1054, - 1055, 25, 1053, 1063, 1064, 1065, 1070, 1071, 1072, 1073, - 1074, 1075, 1076, 1077, 1078, 1084, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1113, 1114, 1126, 1127, - 1128, 1129, 1130, 1131, 1142, 1132, 1133, 1134, 1285, 1145, - 1146, 1147, 1143, 1148, 1176, 1177, 1202, 1203, 1287, 1204, - 1205, 1206, 1207, 1208, 1209, 1222, 1289, 1290, 1228, 1223, - 1224, 1229, 1230, 1231, 1232, 1245, 1259, 742, 1261, 495, - 1227, 1262, 1274, 1310, 1263, 1264, 1265, 1266, 1267, 1277, - 1278, 1294, 1295, 1296, 755, 1292, 1291, 1281, 638, 1284, - 803, 1260, 723, 1283, 761, 1307, 734, 793, 1282, 1293, - 727, 399, 453, 1253, 660, 811, 666, 1254, 323, 545, - 0, 0, 0, 0, 0, 0, 0, 575, 0, 0, - 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, + 853, 854, 606, 118, 73, 1093, 610, 611, 612, 287, + 614, 615, 357, 220, 358, 480, 359, 496, 295, 1066, + 287, 591, 1275, 1109, 1111, 473, 301, 1110, 1112, 526, + 1037, 360, 400, 1246, 1251, 302, 74, 1247, 1252, 390, + 1255, 51, 1257, 75, 1256, 565, 1258, 52, 1268, 49, + 50, 118, 1269, 361, 124, 852, 577, 496, 390, 125, + 126, 591, 127, 128, 400, 1248, 1249, 1250, 129, 473, + 119, 362, 527, 363, 481, 56, 295, 58, 130, 131, + 132, 364, 482, 1270, 483, 857, 858, 1271, 133, 1067, + 251, 134, 135, 365, 1079, 1080, 1081, 1272, 62, 136, + 497, 1273, 668, 66, 670, 671, 391, 76, 674, 1037, + 67, 220, 528, 221, 680, 366, 137, 69, 119, 252, + 686, 296, 253, 565, 592, 391, 71, 138, 694, 695, + 139, 140, 115, 1038, 222, 401, 367, 116, 141, 484, + 497, 707, 708, 709, 142, 143, 303, 144, 566, 145, + 254, 474, 146, 147, 368, 529, 117, 123, 402, 578, + 255, 503, 1279, 148, 592, 392, 1280, 401, 149, 150, + 369, 151, 152, 153, 1308, 217, 154, -127, 1309, 296, + 504, 218, 256, 219, 392, 498, 257, 82, -127, 227, + 402, 577, 1094, 258, 228, 474, 259, 260, 229, 286, + 155, 156, 505, 294, 157, 158, 159, 160, 161, 162, + 163, 221, 1038, 300, 83, 84, 304, 579, 370, 1039, + 371, 372, 85, 307, 261, 498, 566, 86, 308, 288, + 506, 764, 222, 309, 310, 580, 305, 324, 491, 593, + 288, 574, 594, 576, 655, 494, 475, 733, 1040, 581, + 87, 88, 89, 90, 325, 326, 311, 726, 164, 165, + 327, 760, 1226, 567, 507, 91, 92, 93, 454, 166, + 167, 659, 94, 95, 96, 312, 97, 792, 168, 593, + 169, 508, 594, 398, 313, 604, 452, 455, 802, 741, + 475, 546, 600, 810, 578, 601, 665, 262, 1039, 263, + 264, 314, 265, 266, 267, 315, 328, 230, 589, 456, + 503, 316, 317, 852, 480, 318, 454, 1297, 841, 1298, + 319, 844, 563, 846, 329, 330, 320, 1040, 851, 504, + 321, 331, 526, 397, 332, 455, 407, 457, 408, 409, + 333, 567, 410, 231, 411, 572, 869, 412, 334, 335, + 336, 505, 579, 232, 233, 234, 509, 456, 235, 236, + 337, 1299, 413, 237, 238, 239, 414, 1115, 73, 510, + 580, 415, 511, 481, 416, 527, 417, 1300, 418, 506, + 338, 482, 512, 483, 581, 457, 513, 419, 458, 420, + 421, 422, 423, 754, 1116, 459, 460, 124, 1135, 424, + 74, 425, 125, 126, 426, 127, 128, 75, 1136, 1301, + 1302, 129, 427, 507, 428, 528, 461, 429, 339, 322, + 430, 130, 131, 132, 433, 602, 434, 1117, 435, 1137, + 508, 133, 436, 437, 134, 135, 458, 438, 484, 439, + 440, 441, 136, 459, 460, 442, 816, 817, 818, 819, + 820, 821, 822, 443, 444, 445, 1118, 1119, 529, 137, + 446, 357, 1120, 358, 461, 359, 1303, 447, 448, 637, + 138, 76, 1304, 139, 140, 449, 450, 451, 492, 607, + 360, 141, 493, 535, 536, 1121, 537, 142, 143, 462, + 144, 538, 145, 539, 540, 146, 147, 541, 542, 543, + 722, 547, 361, 548, 549, 509, 148, 550, 551, 552, + 1149, 149, 150, 553, 151, 152, 153, 554, 510, 154, + 362, 511, 363, 555, 556, 557, 251, 558, 1150, 1151, + 364, 512, 559, 560, 561, 513, 562, 462, 573, 544, + 1152, 605, 365, 155, 156, 605, 588, 157, 158, 159, + 160, 161, 162, 163, 1122, 252, 603, 608, 253, 609, + 613, 616, 1138, 617, 366, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1139, 618, 619, 622, 620, 621, 1153, 1154, + 1123, 1155, 623, 624, 626, 367, 254, 627, 667, 1276, + 628, 629, 630, 631, 632, 633, 255, 634, 635, 636, + 926, 164, 165, 368, 639, 640, 230, 1156, 641, 642, + 643, 644, 166, 167, 645, 1157, 647, 648, 256, 369, + 649, 168, 257, 169, 650, 651, 652, 653, 654, 258, + 657, 661, 259, 260, 927, 658, 1158, 662, 1159, 1160, + 669, 928, 231, 929, 930, 1178, 663, 664, 672, 673, + 675, 676, 232, 233, 234, 677, 1161, 235, 236, 678, + 261, 679, 237, 238, 239, 681, 682, 370, 683, 371, + 372, 684, 1162, 685, 687, 690, 688, 1163, 689, 1179, + 904, 1164, 693, 691, 692, 1165, 1180, 696, 1181, 1182, + 1166, 697, 698, 699, 1167, 700, 701, 702, 703, 704, + 705, 706, 710, 1168, 711, 1169, 1170, 712, 1171, 713, + 772, 714, 306, 742, 905, 715, 717, 718, 728, 719, + 720, 906, 762, 721, 1286, 724, 1172, 495, 763, 735, + 736, 765, 725, 262, 1173, 263, 264, 729, 265, 266, + 267, 737, 730, 732, 738, 739, 740, 743, 744, 931, + 932, 745, 747, 933, 934, 748, 935, 936, 750, 937, + 766, 938, 751, 752, 939, 753, 940, 941, 756, 757, + 758, 767, 942, 759, 768, 769, 943, 770, 771, 773, + 944, 945, 946, 774, 775, 788, 776, 790, 777, 778, + 947, 779, 780, 781, 1183, 1184, 782, 783, 1185, 1186, + 789, 1187, 1188, 794, 1189, 1210, 1190, 784, 785, 1191, + 786, 1192, 1193, 787, 795, 1233, 798, 1194, 796, 797, + 799, 1195, 804, 800, 847, 1196, 1197, 1198, 801, 907, + 908, 807, 805, 909, 910, 1199, 911, 912, 806, 913, + 812, 914, 809, 813, 915, 814, 916, 917, 815, 2, + 3, 825, 918, 4, 826, 827, 919, 828, 829, 830, + 920, 921, 922, 1211, 831, 832, 5, 324, 833, 6, + 923, 834, 7, 1234, 835, 836, 837, 838, 839, 840, + 843, 8, 855, 845, 325, 326, 842, 848, 1212, 849, + 327, 850, 852, 9, 856, 859, 1213, 860, 1235, 10, + 11, 861, 862, 863, 864, 1214, 1236, 865, 872, 866, + 867, 868, 870, 871, 873, 1237, 874, 875, 12, 876, + 877, 878, 13, 970, 879, 969, 880, 1215, 881, 1216, + 1217, 882, 14, 883, 884, 885, 328, 1238, 886, 1239, + 1240, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 1218, 15, 16, 896, 329, 330, 897, 898, 1219, 899, + 1241, 331, 972, 900, 332, 901, 17, 902, 1242, 903, + 333, 950, 1143, 951, 952, 953, 82, 954, 334, 335, + 336, 955, 18, 956, 957, 958, 959, 960, 961, 962, + 337, 963, 964, 965, 19, 20, 966, 967, 968, 973, + 974, 975, 971, 83, 84, 976, 977, 978, 979, 981, + 338, 85, 21, 980, 982, 983, 86, 984, 994, 987, + 988, 989, 990, 991, 1000, 22, 992, 993, 996, 997, + 23, 995, 999, 1001, 1002, 24, 998, 1003, 25, 87, + 88, 89, 90, 1004, 1007, 1005, 1006, 1142, 339, 1008, + 1009, 1010, 1033, 1011, 91, 92, 93, 1012, 1013, 1014, + 1015, 94, 95, 96, 1016, 97, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1285, 1032, 1287, 1035, 1036, 1034, 1046, 1047, 1048, + 1049, 1053, 1262, 1050, 1051, 1052, 1055, 1054, 1223, 1288, + 1063, 1064, 1065, 1070, 1071, 1072, 1073, 1074, 1075, 1076, + 1077, 1078, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, + 1092, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1107, 1108, 1113, 1114, 1126, 1127, 1128, 1129, 1130, + 1131, 1132, 1133, 1134, 1145, 1146, 1147, 1148, 1176, 1177, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1222, 1289, + 1228, 1229, 1224, 1230, 1231, 1232, 1245, 1259, 1290, 1261, + 1227, 1310, 1263, 1274, 1278, 1264, 1265, 1266, 1267, 1277, + 1294, 1295, 1291, 1296, 803, 1292, 1281, 755, 1260, 1284, + 734, 723, 1283, 761, 638, 1307, 811, 793, 564, 1293, + 1282, 660, 727, 656, 399, 453, 1254, 1253, 323, 666, + 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 590 + 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, + 0, 0, 0, 590 }; static const yytype_int16 yycheck[] = { - 635, 636, 308, 1, 1, 234, 312, 313, 314, 1, - 316, 317, 8, 1, 1, 1, 1, 1, 232, 232, - 232, 232, 236, 236, 1, 236, 1, 1, 1, 1, - 28, 29, 234, 232, 12, 13, 14, 236, 36, 1, - 1, 1, 1, 1, 42, 6, 7, 33, 9, 10, - 234, 1, 1, 57, 15, 41, 1, 234, 1, 232, - 233, 198, 234, 1, 25, 26, 27, 65, 66, 67, - 68, 234, 232, 234, 35, 20, 236, 38, 39, 40, - 1, 1, 80, 81, 82, 69, 47, 61, 85, 87, - 88, 89, 69, 91, 231, 69, 69, 71, 43, 1079, - 1080, 1081, 408, 64, 410, 411, 1, 69, 414, 173, - 174, 234, 1, 105, 75, 421, 1, 78, 79, 105, - 105, 427, 1, 127, 45, 86, 71, 102, 234, 435, - 436, 92, 93, 105, 95, 85, 97, 234, 234, 100, - 101, 447, 448, 449, 1, 232, 105, 105, 123, 236, - 111, 128, 126, 102, 234, 116, 117, 232, 119, 120, - 121, 236, 105, 124, 85, 1, 128, 105, 128, 1, - 128, 232, 169, 30, 123, 236, 33, 122, 234, 232, - 1, 169, 169, 236, 129, 130, 234, 148, 20, 234, - 151, 152, 153, 154, 155, 156, 157, 18, 19, 195, - 234, 37, 232, 24, 149, 62, 236, 128, 128, 234, - 105, 43, 48, 49, 50, 72, 105, 53, 54, 169, - 105, 1, 58, 59, 60, 232, 105, 219, 234, 236, - 222, 537, 234, 221, 221, 233, 233, 94, 1, 71, - 3, 98, 5, 128, 205, 206, 233, 233, 105, 233, - 71, 108, 109, 231, 234, 216, 217, 20, 233, 233, - 219, 233, 222, 222, 225, 1, 227, 162, 89, 90, - 234, 233, 233, 105, 233, 96, 219, 222, 99, 136, - 43, 219, 1, 234, 105, 180, 234, 21, 233, 235, - 122, 235, 113, 114, 115, 233, 235, 31, 61, 194, - 63, 190, 222, 235, 125, 235, 235, 235, 71, 45, - 235, 190, 233, 233, 33, 232, 235, 235, 624, 53, - 83, 627, 41, 629, 145, 105, 235, 235, 634, 235, - 219, 235, 235, 235, 235, 235, 1, 235, 233, 235, - 219, 235, 105, 235, 233, 235, 652, 235, 233, 85, - 1, 208, 235, 210, 211, 20, 213, 214, 215, 235, - 1, 182, 235, 126, 196, 137, 138, 139, 140, 141, - 142, 143, 235, 235, 235, 235, 233, 209, 43, 20, - 212, 144, 162, 235, 235, 235, 105, 235, 235, 235, - 222, 235, 128, 235, 226, 235, 159, 233, 235, 1, - 180, 233, 43, 232, 6, 7, 71, 9, 10, 235, - 61, 16, 233, 15, 194, 235, 235, 235, 69, 74, - 71, 76, 235, 25, 26, 27, 235, 235, 235, 235, - 71, 235, 235, 35, 235, 235, 38, 39, 40, 44, - 105, 235, 235, 235, 207, 47, 209, 210, 235, 235, - 235, 185, 235, 235, 235, 231, 235, 122, 235, 231, - 235, 195, 64, 118, 4, 235, 235, 235, 235, 235, - 233, 235, 77, 75, 235, 126, 78, 79, 235, 134, - 235, 122, 22, 23, 86, 235, 235, 235, 129, 130, - 92, 93, 235, 95, 34, 97, 235, 235, 100, 101, - 235, 106, 107, 235, 235, 235, 235, 112, 149, 111, - 165, 166, 235, 235, 116, 117, 232, 119, 120, 121, - 235, 235, 124, 816, 817, 818, 819, 820, 821, 822, - 135, 196, 169, 73, 74, 235, 76, 230, 230, 230, - 204, 204, 232, 231, 209, 231, 148, 212, 1, 151, - 152, 153, 154, 155, 156, 157, 231, 222, 231, 1, - 231, 226, 102, 231, 231, 235, 232, 222, 230, 134, - 110, 232, 204, 228, 232, 235, 235, 30, 235, 76, - 33, 222, 235, 235, 204, 235, 235, 235, 235, 1224, - 235, 131, 235, 133, 134, 37, 235, 235, 203, 235, - 235, 235, 235, 205, 206, 235, 48, 49, 50, 62, - 150, 53, 54, 235, 216, 217, 58, 59, 60, 72, - 235, 235, 235, 225, 229, 227, 166, 235, 76, 11, - 231, 171, 235, 232, 1, 175, 3, 134, 5, 179, - 235, 94, 235, 235, 184, 98, 235, 235, 188, 235, - 235, 231, 105, 20, 204, 108, 109, 197, 231, 199, - 200, 158, 202, 231, 46, 231, 204, 204, 231, 166, - 231, 53, 231, 55, 56, 231, 43, 231, 175, 231, - 220, 204, 231, 136, 231, 204, 134, 235, 228, 235, - 204, 204, 204, 204, 61, 11, 63, 204, 204, 204, - 197, 204, 199, 200, 71, 204, 231, 231, 204, 235, - 158, 232, 232, 235, 204, 232, 83, 235, 166, 235, - 235, 204, 230, 220, 204, 235, 235, 175, 230, 204, - 46, 228, 230, 11, 235, 235, 231, 53, 105, 55, - 56, 235, 235, 235, 232, 232, 235, 204, 232, 197, - 235, 199, 200, 235, 235, 208, 235, 210, 211, 126, - 213, 214, 215, 235, 235, 235, 235, 235, 46, 232, - 235, 235, 220, 235, 230, 53, 204, 144, 160, 161, - 228, 232, 164, 165, 230, 167, 168, 204, 170, 230, - 172, 231, 159, 175, 231, 177, 178, 230, 230, 230, - 230, 183, 204, 230, 230, 187, 230, 230, 230, 191, - 192, 193, 230, 232, 235, 235, 232, 232, 232, 201, - 230, 230, 235, 235, 235, 232, 232, 235, 232, 232, - 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 207, 232, 209, 210, 160, 161, 232, 1, 164, 165, - 231, 167, 168, 232, 170, 232, 172, 232, 232, 175, - 232, 177, 178, 231, 18, 19, 235, 183, 231, 231, - 24, 187, 231, 231, 231, 191, 192, 193, 231, 230, - 232, 230, 160, 161, 204, 201, 164, 165, 230, 167, - 168, 230, 170, 230, 172, 235, 230, 175, 231, 177, - 178, 230, 0, 1, 230, 183, 4, 230, 230, 187, - 235, 232, 230, 191, 192, 193, 230, 71, 231, 17, - 232, 232, 20, 201, 230, 23, 230, 232, 1, 232, - 232, 232, 232, 232, 32, 89, 90, 232, 232, 232, - 232, 232, 96, 232, 232, 99, 232, 45, 232, 232, - 232, 105, 232, 51, 52, 28, 29, 232, 232, 113, - 114, 115, 232, 36, 232, 232, 232, 232, 232, 42, - 232, 125, 70, 232, 232, 232, 74, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 84, 232, 232, 232, - 232, 145, 65, 66, 67, 68, 232, 230, 204, 230, - 230, 230, 230, 230, 230, 103, 104, 80, 81, 82, - 232, 232, 230, 230, 87, 88, 89, 231, 91, 235, - 118, 232, 232, 232, 232, 230, 230, 230, 182, 204, - 230, 230, 230, 235, 235, 204, 134, 230, 230, 235, - 230, 232, 230, 230, 134, 268, 232, 232, 146, 147, - 232, 232, 232, 232, 232, 232, 232, 77, 232, 232, - 232, 232, 232, 230, 232, 163, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 176, 232, - 230, 230, 230, 181, 230, 232, 230, 232, 186, 230, - 232, 189, 235, 232, 232, 232, 232, 232, 232, 232, + 635, 636, 308, 1, 1, 8, 312, 313, 314, 1, + 316, 317, 1, 1, 3, 1, 5, 1, 1, 56, + 1, 1, 198, 232, 232, 1, 232, 236, 236, 1, + 1, 20, 1, 232, 232, 235, 33, 236, 236, 1, + 232, 234, 232, 40, 236, 1, 236, 234, 232, 232, + 233, 1, 236, 42, 1, 231, 1, 1, 1, 6, + 7, 1, 9, 10, 1, 1079, 1080, 1081, 15, 1, + 68, 60, 44, 62, 60, 234, 1, 234, 25, 26, + 27, 70, 68, 232, 70, 173, 174, 236, 35, 126, + 1, 38, 39, 82, 12, 13, 14, 232, 234, 46, + 84, 236, 408, 234, 410, 411, 68, 104, 414, 1, + 234, 1, 84, 101, 420, 104, 63, 234, 68, 30, + 426, 104, 33, 1, 104, 68, 234, 74, 434, 435, + 77, 78, 234, 104, 122, 104, 125, 234, 85, 125, + 84, 447, 448, 449, 91, 92, 235, 94, 104, 96, + 61, 127, 99, 100, 143, 127, 234, 234, 127, 104, + 71, 1, 232, 110, 104, 127, 236, 104, 115, 116, + 159, 118, 119, 120, 232, 234, 123, 169, 236, 104, + 20, 234, 93, 234, 127, 169, 97, 1, 169, 234, + 127, 1, 195, 104, 234, 127, 107, 108, 234, 234, + 147, 148, 42, 234, 151, 152, 153, 154, 155, 156, + 157, 101, 104, 234, 28, 29, 235, 162, 207, 190, + 209, 210, 36, 235, 135, 169, 104, 41, 235, 221, + 70, 537, 122, 235, 235, 180, 233, 1, 232, 219, + 221, 233, 222, 169, 233, 233, 222, 233, 219, 194, + 64, 65, 66, 67, 18, 19, 235, 233, 205, 206, + 24, 233, 233, 219, 104, 79, 80, 81, 1, 216, + 217, 233, 86, 87, 88, 235, 90, 233, 225, 219, + 227, 121, 222, 233, 235, 231, 233, 20, 233, 233, + 222, 232, 230, 233, 104, 230, 233, 208, 190, 210, + 211, 235, 213, 214, 215, 235, 70, 1, 233, 42, + 1, 235, 235, 231, 1, 235, 1, 73, 624, 75, + 235, 627, 233, 629, 88, 89, 235, 219, 634, 20, + 235, 95, 1, 235, 98, 20, 235, 70, 235, 235, + 104, 219, 235, 37, 235, 232, 652, 235, 112, 113, + 114, 42, 162, 47, 48, 49, 196, 42, 52, 53, + 124, 117, 235, 57, 58, 59, 235, 16, 1, 209, + 180, 235, 212, 60, 235, 44, 235, 133, 235, 70, + 144, 68, 222, 70, 194, 70, 226, 235, 121, 235, + 235, 235, 235, 233, 43, 128, 129, 1, 21, 235, + 33, 235, 6, 7, 235, 9, 10, 40, 31, 165, + 166, 15, 235, 104, 235, 84, 149, 235, 182, 233, + 235, 25, 26, 27, 235, 230, 235, 76, 235, 52, + 121, 35, 235, 235, 38, 39, 121, 235, 125, 235, + 235, 235, 46, 128, 129, 235, 136, 137, 138, 139, + 140, 141, 142, 235, 235, 235, 105, 106, 127, 63, + 235, 1, 111, 3, 149, 5, 222, 235, 235, 233, + 74, 104, 228, 77, 78, 235, 235, 235, 235, 204, + 20, 85, 235, 235, 235, 134, 235, 91, 92, 222, + 94, 235, 96, 235, 235, 99, 100, 235, 235, 235, + 233, 235, 42, 235, 235, 196, 110, 235, 235, 235, + 4, 115, 116, 235, 118, 119, 120, 235, 209, 123, + 60, 212, 62, 235, 235, 235, 1, 235, 22, 23, + 70, 222, 235, 235, 235, 226, 235, 222, 235, 233, + 34, 231, 82, 147, 148, 231, 235, 151, 152, 153, + 154, 155, 156, 157, 203, 30, 232, 204, 33, 231, + 231, 231, 185, 231, 104, 816, 817, 818, 819, 820, + 821, 822, 195, 231, 231, 235, 232, 232, 72, 73, + 229, 75, 235, 235, 235, 125, 61, 235, 204, 1224, + 235, 235, 235, 235, 235, 235, 71, 235, 235, 235, + 11, 205, 206, 143, 232, 235, 1, 101, 235, 235, + 235, 235, 216, 217, 235, 109, 235, 235, 93, 159, + 235, 225, 97, 227, 235, 235, 235, 235, 235, 104, + 235, 230, 107, 108, 45, 235, 130, 232, 132, 133, + 231, 52, 37, 54, 55, 11, 235, 235, 204, 231, + 204, 231, 47, 48, 49, 231, 150, 52, 53, 204, + 135, 204, 57, 58, 59, 231, 231, 207, 231, 209, + 210, 231, 166, 231, 231, 204, 231, 171, 231, 45, + 11, 175, 204, 235, 235, 179, 52, 204, 54, 55, + 184, 204, 231, 204, 188, 204, 204, 204, 204, 204, + 204, 231, 204, 197, 231, 199, 200, 232, 202, 232, + 231, 235, 77, 499, 45, 235, 235, 235, 232, 235, + 235, 52, 204, 235, 133, 235, 220, 223, 204, 230, + 230, 230, 235, 208, 228, 210, 211, 235, 213, 214, + 215, 232, 235, 235, 232, 235, 235, 232, 235, 160, + 161, 235, 235, 164, 165, 235, 167, 168, 235, 170, + 204, 172, 235, 235, 175, 235, 177, 178, 232, 235, + 235, 230, 183, 235, 204, 204, 187, 204, 232, 230, + 191, 192, 193, 204, 230, 232, 231, 235, 231, 230, + 201, 230, 230, 230, 160, 161, 230, 230, 164, 165, + 232, 167, 168, 204, 170, 75, 172, 230, 230, 175, + 230, 177, 178, 230, 232, 75, 235, 183, 234, 232, + 235, 187, 230, 235, 230, 191, 192, 193, 235, 160, + 161, 235, 232, 164, 165, 201, 167, 168, 232, 170, + 232, 172, 235, 232, 175, 232, 177, 178, 232, 0, + 1, 232, 183, 4, 232, 232, 187, 232, 232, 232, + 191, 192, 193, 133, 232, 232, 17, 1, 232, 20, + 201, 232, 23, 133, 232, 232, 232, 232, 231, 231, + 231, 32, 232, 231, 18, 19, 235, 231, 158, 231, + 24, 231, 231, 44, 230, 230, 166, 204, 158, 50, + 51, 230, 230, 235, 230, 175, 166, 230, 232, 231, + 230, 230, 230, 230, 230, 175, 230, 232, 69, 232, + 230, 230, 73, 204, 232, 230, 232, 197, 232, 199, + 200, 232, 83, 232, 232, 232, 70, 197, 232, 199, + 200, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 220, 102, 103, 232, 88, 89, 232, 232, 228, 232, + 220, 95, 230, 232, 98, 232, 117, 232, 228, 232, + 104, 232, 236, 232, 232, 232, 1, 232, 112, 113, + 114, 232, 133, 232, 232, 232, 232, 232, 232, 232, + 124, 232, 232, 232, 145, 146, 232, 232, 232, 231, + 230, 230, 235, 28, 29, 230, 232, 230, 230, 230, + 144, 36, 163, 232, 230, 235, 41, 231, 204, 232, + 232, 232, 230, 230, 204, 176, 232, 230, 230, 230, + 181, 235, 230, 230, 230, 186, 235, 232, 189, 64, + 65, 66, 67, 230, 232, 230, 230, 218, 182, 232, + 232, 232, 230, 232, 79, 80, 81, 232, 232, 232, + 232, 86, 87, 88, 232, 90, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 131, 232, 131, 232, 232, 235, 230, 230, 230, + 230, 235, 237, 232, 232, 230, 232, 230, 235, 133, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 218, 232, 232, 232, 132, 232, - 232, 232, 236, 232, 232, 232, 232, 232, 132, 232, - 232, 232, 232, 232, 232, 232, 132, 132, 232, 235, - 235, 232, 232, 232, 232, 232, 231, 499, 232, 223, - 1041, 237, 230, 1309, 237, 237, 237, 237, 237, 235, - 232, 232, 232, 232, 514, 1271, 1269, 1247, 340, 1258, - 582, 1143, 463, 1256, 530, 1280, 486, 568, 1252, 1273, - 476, 120, 170, 1110, 393, 595, 403, 1112, 98, 240, - -1, -1, -1, -1, -1, -1, -1, 289, -1, -1, - -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 131, + 232, 232, 235, 232, 232, 232, 232, 231, 131, 232, + 1041, 1309, 237, 230, 232, 237, 237, 237, 237, 235, + 232, 232, 1269, 232, 582, 1271, 1247, 514, 1143, 1258, + 486, 463, 1256, 530, 340, 1280, 595, 568, 268, 1273, + 1252, 393, 476, 373, 120, 170, 1112, 1110, 98, 403, + 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 297 + -1, -1, -1, -1, 289, -1, -1, -1, -1, -1, + -1, -1, -1, 297 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 239, 0, 1, 4, 17, 20, 23, 32, 45, - 51, 52, 70, 74, 84, 103, 104, 118, 134, 146, - 147, 163, 176, 181, 186, 189, 240, 245, 250, 269, + 0, 239, 0, 1, 4, 17, 20, 23, 32, 44, + 50, 51, 69, 73, 83, 102, 103, 117, 133, 145, + 146, 163, 176, 181, 186, 189, 240, 245, 250, 269, 275, 281, 289, 303, 323, 345, 359, 374, 381, 385, 395, 404, 426, 432, 438, 442, 448, 502, 520, 232, 233, 234, 234, 324, 405, 433, 234, 443, 234, 360, 427, 346, 234, 276, 304, 375, 234, 234, 396, 234, - 282, 234, 386, 1, 33, 41, 105, 270, 271, 272, - 273, 274, 1, 28, 29, 36, 42, 65, 66, 67, - 68, 80, 81, 82, 87, 88, 89, 91, 503, 504, + 282, 234, 386, 1, 33, 40, 104, 270, 271, 272, + 273, 274, 1, 28, 29, 36, 41, 64, 65, 66, + 67, 79, 80, 81, 86, 87, 88, 90, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 234, 234, 234, 1, 69, + 515, 516, 517, 518, 519, 234, 234, 234, 1, 68, 439, 440, 441, 234, 1, 6, 7, 9, 10, 15, - 25, 26, 27, 35, 38, 39, 40, 47, 64, 75, - 78, 79, 86, 92, 93, 95, 97, 100, 101, 111, - 116, 117, 119, 120, 121, 124, 148, 151, 152, 153, + 25, 26, 27, 35, 38, 39, 46, 63, 74, 77, + 78, 85, 91, 92, 94, 96, 99, 100, 110, 115, + 116, 118, 119, 120, 123, 147, 148, 151, 152, 153, 154, 155, 156, 157, 205, 206, 216, 217, 225, 227, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 494, 498, 499, 500, 501, 234, 234, 234, - 1, 102, 123, 246, 247, 248, 249, 234, 234, 234, - 1, 37, 48, 49, 50, 53, 54, 58, 59, 60, + 1, 101, 122, 246, 247, 248, 249, 234, 234, 234, + 1, 37, 47, 48, 49, 52, 53, 57, 58, 59, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 1, 30, 33, 62, 72, 94, 98, 105, 108, - 109, 136, 208, 210, 211, 213, 214, 215, 251, 252, + 531, 1, 30, 33, 61, 71, 93, 97, 104, 107, + 108, 135, 208, 210, 211, 213, 214, 215, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 234, 1, 221, 290, - 291, 292, 293, 294, 234, 1, 105, 382, 383, 384, + 291, 292, 293, 294, 234, 1, 104, 382, 383, 384, 234, 232, 235, 235, 235, 233, 271, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 233, 504, 1, 18, 19, 24, 71, 89, - 90, 96, 99, 105, 113, 114, 115, 125, 145, 182, + 235, 235, 233, 504, 1, 18, 19, 24, 70, 88, + 89, 95, 98, 104, 112, 113, 114, 124, 144, 182, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 1, 3, 5, - 20, 43, 61, 63, 71, 83, 105, 126, 144, 159, + 20, 42, 60, 62, 70, 82, 104, 125, 143, 159, 207, 209, 210, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 425, - 1, 69, 128, 434, 435, 436, 437, 235, 233, 440, - 1, 105, 128, 444, 445, 446, 447, 235, 235, 235, + 1, 68, 127, 434, 435, 436, 437, 235, 233, 440, + 1, 104, 127, 444, 445, 446, 447, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 495, 491, 235, 235, 235, 235, 235, 235, + 235, 495, 491, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 233, 450, 1, 20, 43, 71, 122, 129, - 130, 149, 222, 361, 362, 363, 364, 365, 366, 367, - 371, 372, 373, 1, 128, 222, 428, 429, 430, 431, - 1, 61, 69, 71, 126, 347, 351, 352, 353, 357, - 358, 232, 235, 235, 233, 247, 1, 85, 169, 277, - 278, 279, 280, 1, 20, 43, 71, 105, 122, 196, + 235, 235, 233, 450, 1, 20, 42, 70, 121, 128, + 129, 149, 222, 361, 362, 363, 364, 365, 366, 367, + 371, 372, 373, 1, 127, 222, 428, 429, 430, 431, + 1, 60, 68, 70, 125, 347, 351, 352, 353, 357, + 358, 232, 235, 235, 233, 247, 1, 84, 169, 277, + 278, 279, 280, 1, 20, 42, 70, 104, 121, 196, 209, 212, 222, 226, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 319, 1, 45, 85, 128, + 311, 312, 313, 314, 315, 319, 1, 44, 84, 127, 376, 377, 378, 379, 380, 235, 235, 235, 235, 235, 235, 235, 235, 235, 233, 522, 232, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 235, 235, 235, 233, 252, 1, 105, 219, 397, 398, - 399, 400, 232, 235, 233, 291, 169, 1, 105, 162, + 235, 235, 235, 233, 252, 1, 104, 219, 397, 398, + 399, 400, 232, 235, 233, 291, 169, 1, 104, 162, 180, 194, 283, 284, 285, 286, 287, 288, 235, 233, - 383, 1, 105, 219, 222, 387, 388, 389, 390, 391, + 383, 1, 104, 219, 222, 387, 388, 389, 390, 391, 230, 230, 230, 232, 231, 231, 242, 204, 204, 231, 242, 242, 242, 231, 242, 242, 231, 231, 231, 231, 232, 232, 235, 235, 235, 342, 235, 235, 235, 235, @@ -2031,9 +2032,9 @@ 235, 235, 235, 235, 235, 235, 418, 235, 235, 235, 235, 235, 235, 235, 235, 233, 407, 235, 235, 233, 435, 230, 232, 235, 235, 233, 445, 204, 242, 231, - 242, 242, 204, 231, 242, 204, 231, 231, 231, 204, - 204, 242, 231, 231, 231, 231, 231, 242, 231, 231, - 231, 204, 235, 235, 204, 242, 242, 204, 204, 204, + 242, 242, 204, 231, 242, 204, 231, 231, 204, 204, + 242, 231, 231, 231, 231, 231, 242, 231, 231, 231, + 204, 235, 235, 204, 242, 242, 204, 204, 231, 204, 204, 204, 204, 204, 204, 204, 231, 242, 242, 242, 204, 231, 232, 232, 235, 235, 368, 235, 235, 235, 235, 235, 233, 362, 235, 235, 233, 429, 232, 235, @@ -2045,8 +2046,8 @@ 230, 230, 230, 230, 230, 230, 230, 230, 232, 232, 235, 401, 233, 398, 204, 232, 234, 232, 235, 235, 235, 235, 233, 284, 230, 232, 232, 235, 392, 235, - 233, 388, 232, 232, 232, 232, 137, 138, 139, 140, - 141, 142, 143, 241, 242, 232, 232, 232, 232, 232, + 233, 388, 232, 232, 232, 232, 136, 137, 138, 139, + 140, 141, 142, 241, 242, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 231, 231, 242, 235, 231, 242, 231, 242, 230, 231, 231, 231, 242, 231, 244, 244, 232, 230, 173, 174, 230, @@ -2054,12 +2055,12 @@ 230, 230, 232, 230, 230, 232, 232, 230, 230, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 11, 46, 53, 160, 161, - 164, 165, 167, 168, 170, 172, 175, 177, 178, 183, - 187, 191, 192, 193, 201, 496, 497, 11, 46, 53, - 55, 56, 160, 161, 164, 165, 167, 168, 170, 172, - 175, 177, 178, 183, 187, 191, 192, 193, 201, 492, - 493, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 11, 45, 52, 160, 161, 164, + 165, 167, 168, 170, 172, 175, 177, 178, 183, 187, + 191, 192, 193, 201, 496, 497, 11, 45, 52, 54, + 55, 160, 161, 164, 165, 167, 168, 170, 172, 175, + 177, 178, 183, 187, 191, 192, 193, 201, 492, 493, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 230, 204, 235, 230, 231, 230, 230, 230, 232, 230, 230, 232, 230, 230, 235, 231, 355, 356, 232, 232, 232, @@ -2067,34 +2068,34 @@ 204, 230, 230, 232, 230, 230, 230, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 230, 235, 232, 232, 1, 105, 190, + 232, 232, 232, 230, 235, 232, 232, 1, 104, 190, 219, 295, 296, 297, 298, 299, 230, 230, 230, 230, 232, 232, 230, 235, 230, 232, 241, 241, 241, 241, - 241, 241, 241, 232, 232, 232, 57, 127, 343, 344, + 241, 241, 241, 232, 232, 232, 56, 126, 343, 344, 232, 232, 232, 232, 232, 232, 232, 232, 232, 12, 13, 14, 243, 244, 232, 232, 232, 232, 232, 232, 232, 232, 232, 8, 195, 419, 420, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 236, 232, 236, 232, 232, 16, 44, 77, 106, 107, - 112, 135, 203, 229, 369, 370, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 21, 31, 53, 185, 195, + 236, 232, 236, 232, 232, 16, 43, 76, 105, 106, + 111, 134, 203, 229, 369, 370, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 21, 31, 52, 185, 195, 349, 350, 218, 236, 354, 232, 232, 232, 232, 4, - 22, 23, 34, 73, 74, 76, 102, 110, 131, 133, - 134, 150, 166, 171, 175, 179, 184, 188, 197, 199, - 200, 202, 220, 228, 321, 322, 232, 232, 11, 46, - 53, 55, 56, 160, 161, 164, 165, 167, 168, 170, + 22, 23, 34, 72, 73, 75, 101, 109, 130, 132, + 133, 150, 166, 171, 175, 179, 184, 188, 197, 199, + 200, 202, 220, 228, 321, 322, 232, 232, 11, 45, + 52, 54, 55, 160, 161, 164, 165, 167, 168, 170, 172, 175, 177, 178, 183, 187, 191, 192, 193, 201, 317, 318, 232, 232, 232, 232, 232, 232, 232, 232, - 76, 134, 158, 166, 175, 197, 199, 200, 220, 228, + 75, 133, 158, 166, 175, 197, 199, 200, 220, 228, 402, 403, 232, 235, 235, 300, 233, 296, 232, 232, - 232, 232, 232, 76, 134, 158, 166, 175, 197, 199, + 232, 232, 232, 75, 133, 158, 166, 175, 197, 199, 200, 220, 228, 393, 394, 232, 232, 236, 243, 243, 243, 232, 236, 497, 493, 232, 236, 232, 236, 231, 356, 232, 237, 237, 237, 237, 237, 237, 232, 236, 232, 236, 232, 236, 230, 198, 244, 235, 232, 232, - 236, 344, 420, 370, 350, 132, 134, 132, 134, 132, - 132, 322, 318, 403, 232, 232, 232, 74, 76, 118, - 134, 165, 166, 222, 228, 301, 302, 394, 232, 236, + 236, 344, 420, 370, 350, 131, 133, 131, 133, 131, + 131, 322, 318, 403, 232, 232, 232, 73, 75, 117, + 133, 165, 166, 222, 228, 301, 302, 394, 232, 236, 302 }; @@ -2937,85 +2938,85 @@ case 28: #line 397 "conf_parser.y" { (yyval.number) = 0; } -#line 2941 "conf_parser.c" +#line 2942 "conf_parser.c" break; case 30: #line 398 "conf_parser.y" { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 2947 "conf_parser.c" +#line 2948 "conf_parser.c" break; case 31: #line 399 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 2953 "conf_parser.c" +#line 2954 "conf_parser.c" break; case 32: #line 400 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } -#line 2959 "conf_parser.c" +#line 2960 "conf_parser.c" break; case 33: #line 401 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } -#line 2965 "conf_parser.c" +#line 2966 "conf_parser.c" break; case 34: #line 402 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); } -#line 2971 "conf_parser.c" +#line 2972 "conf_parser.c" break; case 35: #line 403 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); } -#line 2977 "conf_parser.c" +#line 2978 "conf_parser.c" break; case 36: #line 404 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); } -#line 2983 "conf_parser.c" +#line 2984 "conf_parser.c" break; case 37: #line 405 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); } -#line 2989 "conf_parser.c" +#line 2990 "conf_parser.c" break; case 38: #line 408 "conf_parser.y" { (yyval.number) = 0; } -#line 2995 "conf_parser.c" +#line 2996 "conf_parser.c" break; case 40: #line 409 "conf_parser.y" { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 3001 "conf_parser.c" +#line 3002 "conf_parser.c" break; case 41: #line 410 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 3007 "conf_parser.c" +#line 3008 "conf_parser.c" break; case 42: #line 411 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } -#line 3013 "conf_parser.c" +#line 3014 "conf_parser.c" break; case 43: #line 412 "conf_parser.y" { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } -#line 3019 "conf_parser.c" +#line 3020 "conf_parser.c" break; case 50: @@ -3024,7 +3025,7 @@ if (conf_parser_ctx.pass == 2) add_conf_module(libio_basename(yylval.string)); } -#line 3028 "conf_parser.c" +#line 3029 "conf_parser.c" break; case 51: @@ -3033,7 +3034,7 @@ if (conf_parser_ctx.pass == 2) mod_add_path(yylval.string); } -#line 3037 "conf_parser.c" +#line 3038 "conf_parser.c" break; case 72: @@ -3045,7 +3046,7 @@ ConfigServerInfo.tls_certificate_file = xstrdup(yylval.string); } } -#line 3049 "conf_parser.c" +#line 3050 "conf_parser.c" break; case 73: @@ -3057,7 +3058,7 @@ ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string); } } -#line 3061 "conf_parser.c" +#line 3062 "conf_parser.c" break; case 74: @@ -3069,7 +3070,7 @@ ConfigServerInfo.tls_dh_param_file = xstrdup(yylval.string); } } -#line 3073 "conf_parser.c" +#line 3074 "conf_parser.c" break; case 75: @@ -3081,7 +3082,7 @@ ConfigServerInfo.tls_cipher_list = xstrdup(yylval.string); } } -#line 3085 "conf_parser.c" +#line 3086 "conf_parser.c" break; case 76: @@ -3093,7 +3094,7 @@ ConfigServerInfo.tls_cipher_suites = xstrdup(yylval.string); } } -#line 3097 "conf_parser.c" +#line 3098 "conf_parser.c" break; case 77: @@ -3105,7 +3106,7 @@ ConfigServerInfo.tls_message_digest_algorithm = xstrdup(yylval.string); } } -#line 3109 "conf_parser.c" +#line 3110 "conf_parser.c" break; case 78: @@ -3117,7 +3118,7 @@ ConfigServerInfo.tls_supported_groups = xstrdup(yylval.string); } } -#line 3121 "conf_parser.c" +#line 3122 "conf_parser.c" break; case 79: @@ -3135,7 +3136,7 @@ } } } -#line 3139 "conf_parser.c" +#line 3140 "conf_parser.c" break; case 80: @@ -3153,7 +3154,7 @@ } } } -#line 3157 "conf_parser.c" +#line 3158 "conf_parser.c" break; case 81: @@ -3166,7 +3167,7 @@ strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info)); } } -#line 3170 "conf_parser.c" +#line 3171 "conf_parser.c" break; case 82: @@ -3183,7 +3184,7 @@ ConfigServerInfo.network_name = xstrdup(yylval.string); } } -#line 3187 "conf_parser.c" +#line 3188 "conf_parser.c" break; case 83: @@ -3195,7 +3196,7 @@ xfree(ConfigServerInfo.network_description); ConfigServerInfo.network_description = xstrdup(yylval.string); } -#line 3199 "conf_parser.c" +#line 3200 "conf_parser.c" break; case 84: @@ -3221,7 +3222,7 @@ else ConfigServerInfo.default_max_clients = (yyvsp[-1].number); } -#line 3225 "conf_parser.c" +#line 3226 "conf_parser.c" break; case 85: @@ -3247,7 +3248,7 @@ else ConfigServerInfo.max_nick_length = (yyvsp[-1].number); } -#line 3251 "conf_parser.c" +#line 3252 "conf_parser.c" break; case 86: @@ -3273,7 +3274,7 @@ else ConfigServerInfo.max_topic_length = (yyvsp[-1].number); } -#line 3277 "conf_parser.c" +#line 3278 "conf_parser.c" break; case 87: @@ -3282,7 +3283,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerInfo.hub = yylval.number; } -#line 3286 "conf_parser.c" +#line 3287 "conf_parser.c" break; case 95: @@ -3294,7 +3295,7 @@ xfree(ConfigAdminInfo.name); ConfigAdminInfo.name = xstrdup(yylval.string); } -#line 3298 "conf_parser.c" +#line 3299 "conf_parser.c" break; case 96: @@ -3306,7 +3307,7 @@ xfree(ConfigAdminInfo.email); ConfigAdminInfo.email = xstrdup(yylval.string); } -#line 3310 "conf_parser.c" +#line 3311 "conf_parser.c" break; case 97: @@ -3318,7 +3319,7 @@ xfree(ConfigAdminInfo.description); ConfigAdminInfo.description = xstrdup(yylval.string); } -#line 3322 "conf_parser.c" +#line 3323 "conf_parser.c" break; case 98: @@ -3327,7 +3328,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 3331 "conf_parser.c" +#line 3332 "conf_parser.c" break; case 99: @@ -3344,7 +3345,7 @@ DLINK_FOREACH(node, block_state.mask.list.head) motd_add(node->data, block_state.file.buf); } -#line 3348 "conf_parser.c" +#line 3349 "conf_parser.c" break; case 105: @@ -3353,7 +3354,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); } -#line 3357 "conf_parser.c" +#line 3358 "conf_parser.c" break; case 106: @@ -3362,7 +3363,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf)); } -#line 3366 "conf_parser.c" +#line 3367 "conf_parser.c" break; case 107: @@ -3371,7 +3372,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 3375 "conf_parser.c" +#line 3376 "conf_parser.c" break; case 108: @@ -3389,7 +3390,7 @@ pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf, block_state.prepend.buf, block_state.command.buf); } -#line 3393 "conf_parser.c" +#line 3394 "conf_parser.c" break; case 116: @@ -3398,7 +3399,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf)); } -#line 3402 "conf_parser.c" +#line 3403 "conf_parser.c" break; case 117: @@ -3407,7 +3408,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 3411 "conf_parser.c" +#line 3412 "conf_parser.c" break; case 118: @@ -3416,7 +3417,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf)); } -#line 3420 "conf_parser.c" +#line 3421 "conf_parser.c" break; case 119: @@ -3437,7 +3438,7 @@ split_nuh(&nuh); } } -#line 3441 "conf_parser.c" +#line 3442 "conf_parser.c" break; case 126: @@ -3446,7 +3447,7 @@ if (conf_parser_ctx.pass == 2) ConfigLog.use_logging = yylval.number; } -#line 3450 "conf_parser.c" +#line 3451 "conf_parser.c" break; case 127: @@ -3455,7 +3456,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 3459 "conf_parser.c" +#line 3460 "conf_parser.c" break; case 128: @@ -3468,7 +3469,7 @@ log_set_file(block_state.type.value, block_state.size.value, block_state.file.buf); } -#line 3472 "conf_parser.c" +#line 3473 "conf_parser.c" break; case 135: @@ -3479,7 +3480,7 @@ strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf)); } -#line 3483 "conf_parser.c" +#line 3484 "conf_parser.c" break; case 136: @@ -3487,7 +3488,7 @@ { block_state.size.value = (yyvsp[-1].number); } -#line 3491 "conf_parser.c" +#line 3492 "conf_parser.c" break; case 137: @@ -3495,7 +3496,7 @@ { block_state.size.value = 0; } -#line 3499 "conf_parser.c" +#line 3500 "conf_parser.c" break; case 138: @@ -3504,7 +3505,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = 0; } -#line 3508 "conf_parser.c" +#line 3509 "conf_parser.c" break; case 142: @@ -3513,7 +3514,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_USER; } -#line 3517 "conf_parser.c" +#line 3518 "conf_parser.c" break; case 143: @@ -3522,7 +3523,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_OPER; } -#line 3526 "conf_parser.c" +#line 3527 "conf_parser.c" break; case 144: @@ -3531,7 +3532,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_XLINE; } -#line 3535 "conf_parser.c" +#line 3536 "conf_parser.c" break; case 145: @@ -3540,7 +3541,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_RESV; } -#line 3544 "conf_parser.c" +#line 3545 "conf_parser.c" break; case 146: @@ -3549,7 +3550,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_DLINE; } -#line 3553 "conf_parser.c" +#line 3554 "conf_parser.c" break; case 147: @@ -3558,7 +3559,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_KLINE; } -#line 3562 "conf_parser.c" +#line 3563 "conf_parser.c" break; case 148: @@ -3567,7 +3568,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_KILL; } -#line 3571 "conf_parser.c" +#line 3572 "conf_parser.c" break; case 149: @@ -3576,7 +3577,7 @@ if (conf_parser_ctx.pass == 2) block_state.type.value = LOG_TYPE_DEBUG; } -#line 3580 "conf_parser.c" +#line 3581 "conf_parser.c" break; case 150: @@ -3588,7 +3589,7 @@ reset_block_state(); block_state.flags.value |= CONF_FLAGS_ENCRYPTED; } -#line 3592 "conf_parser.c" +#line 3593 "conf_parser.c" break; case 151: @@ -3647,7 +3648,7 @@ conf_add_class_to_conf(conf, block_state.class.buf); } } -#line 3651 "conf_parser.c" +#line 3652 "conf_parser.c" break; case 165: @@ -3656,7 +3657,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 3660 "conf_parser.c" +#line 3661 "conf_parser.c" break; case 166: @@ -3665,7 +3666,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); } -#line 3669 "conf_parser.c" +#line 3670 "conf_parser.c" break; case 167: @@ -3674,7 +3675,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 3678 "conf_parser.c" +#line 3679 "conf_parser.c" break; case 168: @@ -3683,7 +3684,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf)); } -#line 3687 "conf_parser.c" +#line 3688 "conf_parser.c" break; case 169: @@ -3697,7 +3698,7 @@ else block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED; } -#line 3701 "conf_parser.c" +#line 3702 "conf_parser.c" break; case 170: @@ -3706,7 +3707,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf)); } -#line 3710 "conf_parser.c" +#line 3711 "conf_parser.c" break; case 171: @@ -3720,7 +3721,7 @@ else block_state.flags.value &= ~CONF_FLAGS_TLS; } -#line 3724 "conf_parser.c" +#line 3725 "conf_parser.c" break; case 172: @@ -3729,7 +3730,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); } -#line 3733 "conf_parser.c" +#line 3734 "conf_parser.c" break; case 173: @@ -3738,7 +3739,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value = 0; } -#line 3742 "conf_parser.c" +#line 3743 "conf_parser.c" break; case 177: @@ -3747,7 +3748,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_BOT; } -#line 3751 "conf_parser.c" +#line 3752 "conf_parser.c" break; case 178: @@ -3756,7 +3757,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_CCONN; } -#line 3760 "conf_parser.c" +#line 3761 "conf_parser.c" break; case 179: @@ -3765,7 +3766,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_DEAF; } -#line 3769 "conf_parser.c" +#line 3770 "conf_parser.c" break; case 180: @@ -3774,7 +3775,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_DEBUG; } -#line 3778 "conf_parser.c" +#line 3779 "conf_parser.c" break; case 181: @@ -3783,7 +3784,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_FLOOD; } -#line 3787 "conf_parser.c" +#line 3788 "conf_parser.c" break; case 182: @@ -3792,7 +3793,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_HIDDEN; } -#line 3796 "conf_parser.c" +#line 3797 "conf_parser.c" break; case 183: @@ -3801,7 +3802,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_HIDECHANS; } -#line 3805 "conf_parser.c" +#line 3806 "conf_parser.c" break; case 184: @@ -3810,7 +3811,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_HIDEIDLE; } -#line 3814 "conf_parser.c" +#line 3815 "conf_parser.c" break; case 185: @@ -3819,7 +3820,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SKILL; } -#line 3823 "conf_parser.c" +#line 3824 "conf_parser.c" break; case 186: @@ -3828,7 +3829,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_NCHANGE; } -#line 3832 "conf_parser.c" +#line 3833 "conf_parser.c" break; case 187: @@ -3837,7 +3838,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_REJ; } -#line 3841 "conf_parser.c" +#line 3842 "conf_parser.c" break; case 188: @@ -3846,7 +3847,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SPY; } -#line 3850 "conf_parser.c" +#line 3851 "conf_parser.c" break; case 189: @@ -3855,7 +3856,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_EXTERNAL; } -#line 3859 "conf_parser.c" +#line 3860 "conf_parser.c" break; case 190: @@ -3864,7 +3865,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SERVNOTICE; } -#line 3868 "conf_parser.c" +#line 3869 "conf_parser.c" break; case 191: @@ -3873,7 +3874,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_INVISIBLE; } -#line 3877 "conf_parser.c" +#line 3878 "conf_parser.c" break; case 192: @@ -3882,7 +3883,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_WALLOP; } -#line 3886 "conf_parser.c" +#line 3887 "conf_parser.c" break; case 193: @@ -3891,7 +3892,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_SOFTCALLERID; } -#line 3895 "conf_parser.c" +#line 3896 "conf_parser.c" break; case 194: @@ -3900,7 +3901,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_CALLERID; } -#line 3904 "conf_parser.c" +#line 3905 "conf_parser.c" break; case 195: @@ -3909,7 +3910,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_LOCOPS; } -#line 3913 "conf_parser.c" +#line 3914 "conf_parser.c" break; case 196: @@ -3918,7 +3919,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_REGONLY; } -#line 3922 "conf_parser.c" +#line 3923 "conf_parser.c" break; case 197: @@ -3927,7 +3928,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_FARCONNECT; } -#line 3931 "conf_parser.c" +#line 3932 "conf_parser.c" break; case 198: @@ -3936,7 +3937,7 @@ if (conf_parser_ctx.pass == 2) block_state.modes.value |= UMODE_EXPIRATION; } -#line 3940 "conf_parser.c" +#line 3941 "conf_parser.c" break; case 199: @@ -3945,7 +3946,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value = 0; } -#line 3949 "conf_parser.c" +#line 3950 "conf_parser.c" break; case 203: @@ -3954,7 +3955,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_KILL_REMOTE; } -#line 3958 "conf_parser.c" +#line 3959 "conf_parser.c" break; case 204: @@ -3963,7 +3964,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_KILL; } -#line 3967 "conf_parser.c" +#line 3968 "conf_parser.c" break; case 205: @@ -3972,7 +3973,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_CONNECT_REMOTE; } -#line 3976 "conf_parser.c" +#line 3977 "conf_parser.c" break; case 206: @@ -3981,7 +3982,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_CONNECT; } -#line 3985 "conf_parser.c" +#line 3986 "conf_parser.c" break; case 207: @@ -3990,7 +3991,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_SQUIT_REMOTE; } -#line 3994 "conf_parser.c" +#line 3995 "conf_parser.c" break; case 208: @@ -3999,7 +4000,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_SQUIT; } -#line 4003 "conf_parser.c" +#line 4004 "conf_parser.c" break; case 209: @@ -4008,7 +4009,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_KLINE; } -#line 4012 "conf_parser.c" +#line 4013 "conf_parser.c" break; case 210: @@ -4017,7 +4018,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNKLINE; } -#line 4021 "conf_parser.c" +#line 4022 "conf_parser.c" break; case 211: @@ -4026,7 +4027,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_DLINE; } -#line 4030 "conf_parser.c" +#line 4031 "conf_parser.c" break; case 212: @@ -4035,7 +4036,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNDLINE; } -#line 4039 "conf_parser.c" +#line 4040 "conf_parser.c" break; case 213: @@ -4044,7 +4045,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_XLINE; } -#line 4048 "conf_parser.c" +#line 4049 "conf_parser.c" break; case 214: @@ -4053,7 +4054,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNXLINE; } -#line 4057 "conf_parser.c" +#line 4058 "conf_parser.c" break; case 215: @@ -4062,7 +4063,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_DIE; } -#line 4066 "conf_parser.c" +#line 4067 "conf_parser.c" break; case 216: @@ -4071,7 +4072,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_RESTART; } -#line 4075 "conf_parser.c" +#line 4076 "conf_parser.c" break; case 217: @@ -4080,7 +4081,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REHASH_REMOTE; } -#line 4084 "conf_parser.c" +#line 4085 "conf_parser.c" break; case 218: @@ -4089,7 +4090,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REHASH; } -#line 4093 "conf_parser.c" +#line 4094 "conf_parser.c" break; case 219: @@ -4098,7 +4099,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_ADMIN; } -#line 4102 "conf_parser.c" +#line 4103 "conf_parser.c" break; case 220: @@ -4107,7 +4108,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_GLOBOPS; } -#line 4111 "conf_parser.c" +#line 4112 "conf_parser.c" break; case 221: @@ -4116,7 +4117,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_WALLOPS; } -#line 4120 "conf_parser.c" +#line 4121 "conf_parser.c" break; case 222: @@ -4125,7 +4126,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_LOCOPS; } -#line 4129 "conf_parser.c" +#line 4130 "conf_parser.c" break; case 223: @@ -4134,7 +4135,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_REMOTEBAN; } -#line 4138 "conf_parser.c" +#line 4139 "conf_parser.c" break; case 224: @@ -4143,7 +4144,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_SET; } -#line 4147 "conf_parser.c" +#line 4148 "conf_parser.c" break; case 225: @@ -4152,7 +4153,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_MODULE; } -#line 4156 "conf_parser.c" +#line 4157 "conf_parser.c" break; case 226: @@ -4161,7 +4162,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_OPME; } -#line 4165 "conf_parser.c" +#line 4166 "conf_parser.c" break; case 227: @@ -4170,7 +4171,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_NICK_RESV; } -#line 4174 "conf_parser.c" +#line 4175 "conf_parser.c" break; case 228: @@ -4179,7 +4180,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_JOIN_RESV; } -#line 4183 "conf_parser.c" +#line 4184 "conf_parser.c" break; case 229: @@ -4188,7 +4189,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_RESV; } -#line 4192 "conf_parser.c" +#line 4193 "conf_parser.c" break; case 230: @@ -4197,7 +4198,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_UNRESV; } -#line 4201 "conf_parser.c" +#line 4202 "conf_parser.c" break; case 231: @@ -4206,7 +4207,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value |= OPER_FLAG_CLOSE; } -#line 4210 "conf_parser.c" +#line 4211 "conf_parser.c" break; case 232: @@ -4222,7 +4223,7 @@ block_state.max_sendq.value = DEFAULT_SENDQ; block_state.max_recvq.value = DEFAULT_RECVQ; } -#line 4226 "conf_parser.c" +#line 4227 "conf_parser.c" break; case 233: @@ -4270,7 +4271,7 @@ if (diff) class_ip_limit_rebuild(class); } -#line 4274 "conf_parser.c" +#line 4275 "conf_parser.c" break; case 252: @@ -4279,7 +4280,7 @@ if (conf_parser_ctx.pass == 1) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); } -#line 4283 "conf_parser.c" +#line 4284 "conf_parser.c" break; case 253: @@ -4288,7 +4289,7 @@ if (conf_parser_ctx.pass == 1) block_state.ping_freq.value = (yyvsp[-1].number); } -#line 4292 "conf_parser.c" +#line 4293 "conf_parser.c" break; case 254: @@ -4297,7 +4298,7 @@ if (conf_parser_ctx.pass == 1) block_state.max_perip_local.value = (yyvsp[-1].number); } -#line 4301 "conf_parser.c" +#line 4302 "conf_parser.c" break; case 255: @@ -4306,7 +4307,7 @@ if (conf_parser_ctx.pass == 1) block_state.max_perip_global.value = (yyvsp[-1].number); } -#line 4310 "conf_parser.c" +#line 4311 "conf_parser.c" break; case 256: @@ -4315,7 +4316,7 @@ if (conf_parser_ctx.pass == 1) block_state.con_freq.value = (yyvsp[-1].number); } -#line 4319 "conf_parser.c" +#line 4320 "conf_parser.c" break; case 257: @@ -4324,7 +4325,7 @@ if (conf_parser_ctx.pass == 1) block_state.max_channels.value = (yyvsp[-1].number); } -#line 4328 "conf_parser.c" +#line 4329 "conf_parser.c" break; case 258: @@ -4333,7 +4334,7 @@ if (conf_parser_ctx.pass == 1) block_state.max_total.value = (yyvsp[-1].number); } -#line 4337 "conf_parser.c" +#line 4338 "conf_parser.c" break; case 259: @@ -4342,7 +4343,7 @@ if (conf_parser_ctx.pass == 1) block_state.max_sendq.value = (yyvsp[-1].number); } -#line 4346 "conf_parser.c" +#line 4347 "conf_parser.c" break; case 260: @@ -4352,7 +4353,7 @@ if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX) block_state.max_recvq.value = (yyvsp[-1].number); } -#line 4356 "conf_parser.c" +#line 4357 "conf_parser.c" break; case 261: @@ -4361,7 +4362,7 @@ if (conf_parser_ctx.pass == 1) block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number); } -#line 4365 "conf_parser.c" +#line 4366 "conf_parser.c" break; case 262: @@ -4370,7 +4371,7 @@ if (conf_parser_ctx.pass == 1) block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number); } -#line 4374 "conf_parser.c" +#line 4375 "conf_parser.c" break; case 263: @@ -4379,7 +4380,7 @@ if (conf_parser_ctx.pass == 1) block_state.number_per_cidr.value = (yyvsp[-1].number); } -#line 4383 "conf_parser.c" +#line 4384 "conf_parser.c" break; case 264: @@ -4391,7 +4392,7 @@ block_state.min_idle.value = (yyvsp[-1].number); block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE; } -#line 4395 "conf_parser.c" +#line 4396 "conf_parser.c" break; case 265: @@ -4403,7 +4404,7 @@ block_state.max_idle.value = (yyvsp[-1].number); block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE; } -#line 4407 "conf_parser.c" +#line 4408 "conf_parser.c" break; case 266: @@ -4412,7 +4413,7 @@ if (conf_parser_ctx.pass == 1) block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE; } -#line 4416 "conf_parser.c" +#line 4417 "conf_parser.c" break; case 270: @@ -4421,7 +4422,7 @@ if (conf_parser_ctx.pass == 1) block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE; } -#line 4425 "conf_parser.c" +#line 4426 "conf_parser.c" break; case 271: @@ -4430,7 +4431,7 @@ if (conf_parser_ctx.pass == 1) block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS; } -#line 4434 "conf_parser.c" +#line 4435 "conf_parser.c" break; case 272: @@ -4439,7 +4440,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 4443 "conf_parser.c" +#line 4444 "conf_parser.c" break; case 274: @@ -4447,7 +4448,7 @@ { block_state.flags.value = 0; } -#line 4451 "conf_parser.c" +#line 4452 "conf_parser.c" break; case 278: @@ -4456,7 +4457,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_TLS; } -#line 4460 "conf_parser.c" +#line 4461 "conf_parser.c" break; case 279: @@ -4465,7 +4466,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_HIDDEN; } -#line 4469 "conf_parser.c" +#line 4470 "conf_parser.c" break; case 280: @@ -4474,7 +4475,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_SERVER; } -#line 4478 "conf_parser.c" +#line 4479 "conf_parser.c" break; case 281: @@ -4483,7 +4484,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_CLIENT; } -#line 4487 "conf_parser.c" +#line 4488 "conf_parser.c" break; case 282: @@ -4492,13 +4493,13 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= LISTENER_DEFER; } -#line 4496 "conf_parser.c" +#line 4497 "conf_parser.c" break; case 290: #line 1481 "conf_parser.y" { block_state.flags.value = 0; } -#line 4502 "conf_parser.c" +#line 4503 "conf_parser.c" break; case 294: @@ -4516,7 +4517,7 @@ listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value); } } -#line 4520 "conf_parser.c" +#line 4521 "conf_parser.c" break; case 295: @@ -4536,7 +4537,7 @@ listener_add(i, block_state.addr.buf, block_state.flags.value); } } -#line 4540 "conf_parser.c" +#line 4541 "conf_parser.c" break; case 296: @@ -4545,7 +4546,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); } -#line 4549 "conf_parser.c" +#line 4550 "conf_parser.c" break; case 297: @@ -4554,7 +4555,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); } -#line 4558 "conf_parser.c" +#line 4559 "conf_parser.c" break; case 298: @@ -4563,7 +4564,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 4567 "conf_parser.c" +#line 4568 "conf_parser.c" break; case 299: @@ -4609,7 +4610,7 @@ add_conf_by_address(CONF_CLIENT, conf); } } -#line 4613 "conf_parser.c" +#line 4614 "conf_parser.c" break; case 311: @@ -4618,7 +4619,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); } -#line 4622 "conf_parser.c" +#line 4623 "conf_parser.c" break; case 312: @@ -4627,7 +4628,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 4631 "conf_parser.c" +#line 4632 "conf_parser.c" break; case 313: @@ -4636,7 +4637,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); } -#line 4640 "conf_parser.c" +#line 4641 "conf_parser.c" break; case 314: @@ -4650,7 +4651,7 @@ block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED; } } -#line 4654 "conf_parser.c" +#line 4655 "conf_parser.c" break; case 315: @@ -4659,7 +4660,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP); } -#line 4663 "conf_parser.c" +#line 4664 "conf_parser.c" break; case 319: @@ -4668,7 +4669,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NOLIMIT; } -#line 4672 "conf_parser.c" +#line 4673 "conf_parser.c" break; case 320: @@ -4677,7 +4678,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE; } -#line 4681 "conf_parser.c" +#line 4682 "conf_parser.c" break; case 321: @@ -4686,7 +4687,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE; } -#line 4690 "conf_parser.c" +#line 4691 "conf_parser.c" break; case 322: @@ -4695,7 +4696,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NEED_IDENTD; } -#line 4699 "conf_parser.c" +#line 4700 "conf_parser.c" break; case 323: @@ -4704,7 +4705,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_CAN_FLOOD; } -#line 4708 "conf_parser.c" +#line 4709 "conf_parser.c" break; case 324: @@ -4713,7 +4714,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NO_TILDE; } -#line 4717 "conf_parser.c" +#line 4718 "conf_parser.c" break; case 325: @@ -4722,7 +4723,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_EXEMPTRESV; } -#line 4726 "conf_parser.c" +#line 4727 "conf_parser.c" break; case 326: @@ -4731,7 +4732,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_WEBIRC; } -#line 4735 "conf_parser.c" +#line 4736 "conf_parser.c" break; case 327: @@ -4740,7 +4741,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD; } -#line 4744 "conf_parser.c" +#line 4745 "conf_parser.c" break; case 328: @@ -4757,7 +4758,7 @@ else ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it."); } -#line 4761 "conf_parser.c" +#line 4762 "conf_parser.c" break; case 329: @@ -4769,7 +4770,7 @@ strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); block_state.flags.value |= CONF_FLAGS_REDIR; } -#line 4773 "conf_parser.c" +#line 4774 "conf_parser.c" break; case 330: @@ -4781,7 +4782,7 @@ block_state.flags.value |= CONF_FLAGS_REDIR; block_state.port.value = (yyvsp[-1].number); } -#line 4785 "conf_parser.c" +#line 4786 "conf_parser.c" break; case 331: @@ -4793,7 +4794,7 @@ reset_block_state(); strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf)); } -#line 4797 "conf_parser.c" +#line 4798 "conf_parser.c" break; case 332: @@ -4804,7 +4805,7 @@ resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list); } -#line 4808 "conf_parser.c" +#line 4809 "conf_parser.c" break; case 339: @@ -4813,7 +4814,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 4817 "conf_parser.c" +#line 4818 "conf_parser.c" break; case 340: @@ -4822,7 +4823,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 4826 "conf_parser.c" +#line 4827 "conf_parser.c" break; case 341: @@ -4831,7 +4832,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list); } -#line 4835 "conf_parser.c" +#line 4836 "conf_parser.c" break; case 347: @@ -4846,7 +4847,7 @@ service->name = xstrdup(yylval.string); } } -#line 4850 "conf_parser.c" +#line 4851 "conf_parser.c" break; case 348: @@ -4862,7 +4863,7 @@ strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf)); block_state.flags.value = SHARED_ALL; } -#line 4866 "conf_parser.c" +#line 4867 "conf_parser.c" break; case 349: @@ -4877,7 +4878,7 @@ shared->user = xstrdup(block_state.user.buf); shared->host = xstrdup(block_state.host.buf); } -#line 4881 "conf_parser.c" +#line 4882 "conf_parser.c" break; case 356: @@ -4886,7 +4887,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 4890 "conf_parser.c" +#line 4891 "conf_parser.c" break; case 357: @@ -4908,7 +4909,7 @@ split_nuh(&nuh); } } -#line 4912 "conf_parser.c" +#line 4913 "conf_parser.c" break; case 358: @@ -4917,7 +4918,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value = 0; } -#line 4921 "conf_parser.c" +#line 4922 "conf_parser.c" break; case 362: @@ -4926,7 +4927,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_KLINE; } -#line 4930 "conf_parser.c" +#line 4931 "conf_parser.c" break; case 363: @@ -4935,7 +4936,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNKLINE; } -#line 4939 "conf_parser.c" +#line 4940 "conf_parser.c" break; case 364: @@ -4944,7 +4945,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_DLINE; } -#line 4948 "conf_parser.c" +#line 4949 "conf_parser.c" break; case 365: @@ -4953,7 +4954,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNDLINE; } -#line 4957 "conf_parser.c" +#line 4958 "conf_parser.c" break; case 366: @@ -4962,7 +4963,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_XLINE; } -#line 4966 "conf_parser.c" +#line 4967 "conf_parser.c" break; case 367: @@ -4971,7 +4972,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNXLINE; } -#line 4975 "conf_parser.c" +#line 4976 "conf_parser.c" break; case 368: @@ -4980,7 +4981,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_RESV; } -#line 4984 "conf_parser.c" +#line 4985 "conf_parser.c" break; case 369: @@ -4989,7 +4990,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_UNRESV; } -#line 4993 "conf_parser.c" +#line 4994 "conf_parser.c" break; case 370: @@ -4998,7 +4999,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= SHARED_LOCOPS; } -#line 5002 "conf_parser.c" +#line 5003 "conf_parser.c" break; case 371: @@ -5007,7 +5008,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value = SHARED_ALL; } -#line 5011 "conf_parser.c" +#line 5012 "conf_parser.c" break; case 372: @@ -5021,7 +5022,7 @@ strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf)); block_state.flags.value = CLUSTER_ALL; } -#line 5025 "conf_parser.c" +#line 5026 "conf_parser.c" break; case 373: @@ -5034,7 +5035,7 @@ cluster->type = block_state.flags.value; cluster->server = xstrdup(block_state.name.buf); } -#line 5038 "conf_parser.c" +#line 5039 "conf_parser.c" break; case 379: @@ -5043,7 +5044,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 5047 "conf_parser.c" +#line 5048 "conf_parser.c" break; case 380: @@ -5052,7 +5053,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value = 0; } -#line 5056 "conf_parser.c" +#line 5057 "conf_parser.c" break; case 384: @@ -5061,7 +5062,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_KLINE; } -#line 5065 "conf_parser.c" +#line 5066 "conf_parser.c" break; case 385: @@ -5070,7 +5071,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_UNKLINE; } -#line 5074 "conf_parser.c" +#line 5075 "conf_parser.c" break; case 386: @@ -5079,7 +5080,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_DLINE; } -#line 5083 "conf_parser.c" +#line 5084 "conf_parser.c" break; case 387: @@ -5088,7 +5089,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_UNDLINE; } -#line 5092 "conf_parser.c" +#line 5093 "conf_parser.c" break; case 388: @@ -5097,7 +5098,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_XLINE; } -#line 5101 "conf_parser.c" +#line 5102 "conf_parser.c" break; case 389: @@ -5106,7 +5107,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_UNXLINE; } -#line 5110 "conf_parser.c" +#line 5111 "conf_parser.c" break; case 390: @@ -5115,7 +5116,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_RESV; } -#line 5119 "conf_parser.c" +#line 5120 "conf_parser.c" break; case 391: @@ -5124,7 +5125,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_UNRESV; } -#line 5128 "conf_parser.c" +#line 5129 "conf_parser.c" break; case 392: @@ -5133,7 +5134,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CLUSTER_LOCOPS; } -#line 5137 "conf_parser.c" +#line 5138 "conf_parser.c" break; case 393: @@ -5142,7 +5143,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value = CLUSTER_ALL; } -#line 5146 "conf_parser.c" +#line 5147 "conf_parser.c" break; case 394: @@ -5157,7 +5158,7 @@ block_state.port.value = PORTNUM; block_state.timeout.value = CONNECTTIMEOUT; } -#line 5161 "conf_parser.c" +#line 5162 "conf_parser.c" break; case 395: @@ -5228,7 +5229,7 @@ conf_add_class_to_conf(conf, block_state.class.buf); conf_dns_lookup(conf); } -#line 5232 "conf_parser.c" +#line 5233 "conf_parser.c" break; case 414: @@ -5237,7 +5238,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 5241 "conf_parser.c" +#line 5242 "conf_parser.c" break; case 415: @@ -5246,7 +5247,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf)); } -#line 5250 "conf_parser.c" +#line 5251 "conf_parser.c" break; case 416: @@ -5255,7 +5256,7 @@ if (conf_parser_ctx.pass == 2) block_state.timeout.value = (yyvsp[-1].number); } -#line 5259 "conf_parser.c" +#line 5260 "conf_parser.c" break; case 417: @@ -5264,7 +5265,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf)); } -#line 5268 "conf_parser.c" +#line 5269 "conf_parser.c" break; case 418: @@ -5280,7 +5281,7 @@ else strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf)); } -#line 5284 "conf_parser.c" +#line 5285 "conf_parser.c" break; case 419: @@ -5296,7 +5297,7 @@ else strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 5300 "conf_parser.c" +#line 5301 "conf_parser.c" break; case 420: @@ -5305,7 +5306,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf)); } -#line 5309 "conf_parser.c" +#line 5310 "conf_parser.c" break; case 421: @@ -5314,7 +5315,7 @@ if (conf_parser_ctx.pass == 2) block_state.port.value = (yyvsp[-1].number); } -#line 5318 "conf_parser.c" +#line 5319 "conf_parser.c" break; case 422: @@ -5323,7 +5324,7 @@ if (conf_parser_ctx.pass == 2) block_state.aftype.value = AF_INET; } -#line 5327 "conf_parser.c" +#line 5328 "conf_parser.c" break; case 423: @@ -5332,7 +5333,7 @@ if (conf_parser_ctx.pass == 2) block_state.aftype.value = AF_INET6; } -#line 5336 "conf_parser.c" +#line 5337 "conf_parser.c" break; case 424: @@ -5340,7 +5341,7 @@ { block_state.flags.value &= CONF_FLAGS_ENCRYPTED; } -#line 5344 "conf_parser.c" +#line 5345 "conf_parser.c" break; case 428: @@ -5349,7 +5350,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN; } -#line 5353 "conf_parser.c" +#line 5354 "conf_parser.c" break; case 429: @@ -5358,7 +5359,7 @@ if (conf_parser_ctx.pass == 2) block_state.flags.value |= CONF_FLAGS_TLS; } -#line 5362 "conf_parser.c" +#line 5363 "conf_parser.c" break; case 430: @@ -5372,7 +5373,7 @@ block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED; } } -#line 5376 "conf_parser.c" +#line 5377 "conf_parser.c" break; case 431: @@ -5381,7 +5382,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list); } -#line 5385 "conf_parser.c" +#line 5386 "conf_parser.c" break; case 432: @@ -5390,7 +5391,7 @@ if (conf_parser_ctx.pass == 2) dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list); } -#line 5394 "conf_parser.c" +#line 5395 "conf_parser.c" break; case 433: @@ -5399,7 +5400,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf)); } -#line 5403 "conf_parser.c" +#line 5404 "conf_parser.c" break; case 434: @@ -5413,7 +5414,7 @@ conf_error_report("Ignoring connect::tls_cipher_list -- no TLS support"); #endif } -#line 5417 "conf_parser.c" +#line 5418 "conf_parser.c" break; case 435: @@ -5422,7 +5423,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 5426 "conf_parser.c" +#line 5427 "conf_parser.c" break; case 436: @@ -5445,7 +5446,7 @@ conf->reason = xstrdup(CONF_NOREASON); add_conf_by_address(CONF_KLINE, conf); } -#line 5449 "conf_parser.c" +#line 5450 "conf_parser.c" break; case 442: @@ -5468,7 +5469,7 @@ split_nuh(&nuh); } } -#line 5472 "conf_parser.c" +#line 5473 "conf_parser.c" break; case 443: @@ -5477,7 +5478,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 5481 "conf_parser.c" +#line 5482 "conf_parser.c" break; case 444: @@ -5486,7 +5487,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 5490 "conf_parser.c" +#line 5491 "conf_parser.c" break; case 445: @@ -5510,7 +5511,7 @@ add_conf_by_address(CONF_DLINE, conf); } } -#line 5514 "conf_parser.c" +#line 5515 "conf_parser.c" break; case 451: @@ -5519,7 +5520,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf)); } -#line 5523 "conf_parser.c" +#line 5524 "conf_parser.c" break; case 452: @@ -5528,7 +5529,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 5532 "conf_parser.c" +#line 5533 "conf_parser.c" break; case 458: @@ -5545,7 +5546,7 @@ } } } -#line 5549 "conf_parser.c" +#line 5550 "conf_parser.c" break; case 459: @@ -5554,7 +5555,7 @@ if (conf_parser_ctx.pass == 2) reset_block_state(); } -#line 5558 "conf_parser.c" +#line 5559 "conf_parser.c" break; case 460: @@ -5574,7 +5575,7 @@ else gecos->reason = xstrdup(CONF_NOREASON); } -#line 5578 "conf_parser.c" +#line 5579 "conf_parser.c" break; case 466: @@ -5583,7 +5584,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf)); } -#line 5587 "conf_parser.c" +#line 5588 "conf_parser.c" break; case 467: @@ -5592,7 +5593,7 @@ if (conf_parser_ctx.pass == 2) strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf)); } -#line 5596 "conf_parser.c" +#line 5597 "conf_parser.c" break; case 517: @@ -5600,7 +5601,7 @@ { ConfigGeneral.away_count = (yyvsp[-1].number); } -#line 5604 "conf_parser.c" +#line 5605 "conf_parser.c" break; case 518: @@ -5608,7 +5609,7 @@ { ConfigGeneral.away_time = (yyvsp[-1].number); } -#line 5612 "conf_parser.c" +#line 5613 "conf_parser.c" break; case 519: @@ -5616,7 +5617,7 @@ { ConfigGeneral.max_monitor = (yyvsp[-1].number); } -#line 5620 "conf_parser.c" +#line 5621 "conf_parser.c" break; case 520: @@ -5624,7 +5625,7 @@ { ConfigGeneral.whowas_history_length = (yyvsp[-1].number); } -#line 5628 "conf_parser.c" +#line 5629 "conf_parser.c" break; case 521: @@ -5632,7 +5633,7 @@ { ConfigGeneral.cycle_on_host_change = yylval.number; } -#line 5636 "conf_parser.c" +#line 5637 "conf_parser.c" break; case 522: @@ -5640,7 +5641,7 @@ { ConfigGeneral.dline_min_cidr = (yyvsp[-1].number); } -#line 5644 "conf_parser.c" +#line 5645 "conf_parser.c" break; case 523: @@ -5648,7 +5649,7 @@ { ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number); } -#line 5652 "conf_parser.c" +#line 5653 "conf_parser.c" break; case 524: @@ -5656,7 +5657,7 @@ { ConfigGeneral.kline_min_cidr = (yyvsp[-1].number); } -#line 5660 "conf_parser.c" +#line 5661 "conf_parser.c" break; case 525: @@ -5664,7 +5665,7 @@ { ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number); } -#line 5668 "conf_parser.c" +#line 5669 "conf_parser.c" break; case 526: @@ -5672,7 +5673,7 @@ { ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number); } -#line 5676 "conf_parser.c" +#line 5677 "conf_parser.c" break; case 527: @@ -5680,7 +5681,7 @@ { ConfigGeneral.failed_oper_notice = yylval.number; } -#line 5684 "conf_parser.c" +#line 5685 "conf_parser.c" break; case 528: @@ -5688,7 +5689,7 @@ { ConfigGeneral.anti_nick_flood = yylval.number; } -#line 5692 "conf_parser.c" +#line 5693 "conf_parser.c" break; case 529: @@ -5696,7 +5697,7 @@ { ConfigGeneral.max_nick_time = (yyvsp[-1].number); } -#line 5700 "conf_parser.c" +#line 5701 "conf_parser.c" break; case 530: @@ -5704,7 +5705,7 @@ { ConfigGeneral.max_nick_changes = (yyvsp[-1].number); } -#line 5708 "conf_parser.c" +#line 5709 "conf_parser.c" break; case 531: @@ -5712,7 +5713,7 @@ { ConfigGeneral.max_accept = (yyvsp[-1].number); } -#line 5716 "conf_parser.c" +#line 5717 "conf_parser.c" break; case 532: @@ -5720,7 +5721,7 @@ { ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number); } -#line 5724 "conf_parser.c" +#line 5725 "conf_parser.c" break; case 533: @@ -5728,7 +5729,7 @@ { ConfigGeneral.ts_warn_delta = (yyvsp[-1].number); } -#line 5732 "conf_parser.c" +#line 5733 "conf_parser.c" break; case 534: @@ -5736,7 +5737,7 @@ { ConfigGeneral.ts_max_delta = (yyvsp[-1].number); } -#line 5740 "conf_parser.c" +#line 5741 "conf_parser.c" break; case 535: @@ -5744,7 +5745,7 @@ { ConfigGeneral.invisible_on_connect = yylval.number; } -#line 5748 "conf_parser.c" +#line 5749 "conf_parser.c" break; case 536: @@ -5752,7 +5753,7 @@ { ConfigGeneral.warn_no_connect_block = yylval.number; } -#line 5756 "conf_parser.c" +#line 5757 "conf_parser.c" break; case 537: @@ -5760,7 +5761,7 @@ { ConfigGeneral.stats_e_disabled = yylval.number; } -#line 5764 "conf_parser.c" +#line 5765 "conf_parser.c" break; case 538: @@ -5768,7 +5769,7 @@ { ConfigGeneral.stats_m_oper_only = yylval.number; } -#line 5772 "conf_parser.c" +#line 5773 "conf_parser.c" break; case 539: @@ -5776,7 +5777,7 @@ { ConfigGeneral.stats_o_oper_only = yylval.number; } -#line 5780 "conf_parser.c" +#line 5781 "conf_parser.c" break; case 540: @@ -5784,7 +5785,7 @@ { ConfigGeneral.stats_P_oper_only = yylval.number; } -#line 5788 "conf_parser.c" +#line 5789 "conf_parser.c" break; case 541: @@ -5792,7 +5793,7 @@ { ConfigGeneral.stats_u_oper_only = yylval.number; } -#line 5796 "conf_parser.c" +#line 5797 "conf_parser.c" break; case 542: @@ -5800,7 +5801,7 @@ { ConfigGeneral.stats_k_oper_only = yylval.number; } -#line 5804 "conf_parser.c" +#line 5805 "conf_parser.c" break; case 543: @@ -5808,7 +5809,7 @@ { ConfigGeneral.stats_i_oper_only = yylval.number; } -#line 5812 "conf_parser.c" +#line 5813 "conf_parser.c" break; case 544: @@ -5816,7 +5817,7 @@ { ConfigGeneral.pace_wait = (yyvsp[-1].number); } -#line 5820 "conf_parser.c" +#line 5821 "conf_parser.c" break; case 545: @@ -5824,7 +5825,7 @@ { ConfigGeneral.caller_id_wait = (yyvsp[-1].number); } -#line 5828 "conf_parser.c" +#line 5829 "conf_parser.c" break; case 546: @@ -5832,7 +5833,7 @@ { ConfigGeneral.opers_bypass_callerid = yylval.number; } -#line 5836 "conf_parser.c" +#line 5837 "conf_parser.c" break; case 547: @@ -5840,7 +5841,7 @@ { ConfigGeneral.pace_wait_simple = (yyvsp[-1].number); } -#line 5844 "conf_parser.c" +#line 5845 "conf_parser.c" break; case 548: @@ -5848,7 +5849,7 @@ { ConfigGeneral.short_motd = yylval.number; } -#line 5852 "conf_parser.c" +#line 5853 "conf_parser.c" break; case 549: @@ -5856,15 +5857,15 @@ { ConfigGeneral.no_oper_flood = yylval.number; } -#line 5860 "conf_parser.c" +#line 5861 "conf_parser.c" break; case 550: #line 2553 "conf_parser.y" { - ConfigGeneral.dots_in_ident = (yyvsp[-1].number); + ConfigGeneral.specials_in_ident = (yyvsp[-1].number); } -#line 5868 "conf_parser.c" +#line 5869 "conf_parser.c" break; case 551: @@ -5872,7 +5873,7 @@ { ConfigGeneral.max_targets = (yyvsp[-1].number); } -#line 5876 "conf_parser.c" +#line 5877 "conf_parser.c" break; case 552: @@ -5880,7 +5881,7 @@ { ConfigGeneral.ping_cookie = yylval.number; } -#line 5884 "conf_parser.c" +#line 5885 "conf_parser.c" break; case 553: @@ -5888,7 +5889,7 @@ { ConfigGeneral.disable_auth = yylval.number; } -#line 5892 "conf_parser.c" +#line 5893 "conf_parser.c" break; case 554: @@ -5896,7 +5897,7 @@ { ConfigGeneral.throttle_count = (yyvsp[-1].number); } -#line 5900 "conf_parser.c" +#line 5901 "conf_parser.c" break; case 555: @@ -5904,7 +5905,7 @@ { ConfigGeneral.throttle_time = (yyvsp[-1].number); } -#line 5908 "conf_parser.c" +#line 5909 "conf_parser.c" break; case 556: @@ -5912,7 +5913,7 @@ { ConfigGeneral.oper_umodes = 0; } -#line 5916 "conf_parser.c" +#line 5917 "conf_parser.c" break; case 560: @@ -5920,7 +5921,7 @@ { ConfigGeneral.oper_umodes |= UMODE_BOT; } -#line 5924 "conf_parser.c" +#line 5925 "conf_parser.c" break; case 561: @@ -5928,7 +5929,7 @@ { ConfigGeneral.oper_umodes |= UMODE_CCONN; } -#line 5932 "conf_parser.c" +#line 5933 "conf_parser.c" break; case 562: @@ -5936,7 +5937,7 @@ { ConfigGeneral.oper_umodes |= UMODE_DEAF; } -#line 5940 "conf_parser.c" +#line 5941 "conf_parser.c" break; case 563: @@ -5944,7 +5945,7 @@ { ConfigGeneral.oper_umodes |= UMODE_DEBUG; } -#line 5948 "conf_parser.c" +#line 5949 "conf_parser.c" break; case 564: @@ -5952,7 +5953,7 @@ { ConfigGeneral.oper_umodes |= UMODE_FLOOD; } -#line 5956 "conf_parser.c" +#line 5957 "conf_parser.c" break; case 565: @@ -5960,7 +5961,7 @@ { ConfigGeneral.oper_umodes |= UMODE_HIDDEN; } -#line 5964 "conf_parser.c" +#line 5965 "conf_parser.c" break; case 566: @@ -5968,7 +5969,7 @@ { ConfigGeneral.oper_umodes |= UMODE_HIDECHANS; } -#line 5972 "conf_parser.c" +#line 5973 "conf_parser.c" break; case 567: @@ -5976,7 +5977,7 @@ { ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE; } -#line 5980 "conf_parser.c" +#line 5981 "conf_parser.c" break; case 568: @@ -5984,7 +5985,7 @@ { ConfigGeneral.oper_umodes |= UMODE_SKILL; } -#line 5988 "conf_parser.c" +#line 5989 "conf_parser.c" break; case 569: @@ -5992,7 +5993,7 @@ { ConfigGeneral.oper_umodes |= UMODE_NCHANGE; } -#line 5996 "conf_parser.c" +#line 5997 "conf_parser.c" break; case 570: @@ -6000,7 +6001,7 @@ { ConfigGeneral.oper_umodes |= UMODE_REJ; } -#line 6004 "conf_parser.c" +#line 6005 "conf_parser.c" break; case 571: @@ -6008,7 +6009,7 @@ { ConfigGeneral.oper_umodes |= UMODE_SPY; } -#line 6012 "conf_parser.c" +#line 6013 "conf_parser.c" break; case 572: @@ -6016,7 +6017,7 @@ { ConfigGeneral.oper_umodes |= UMODE_EXTERNAL; } -#line 6020 "conf_parser.c" +#line 6021 "conf_parser.c" break; case 573: @@ -6024,7 +6025,7 @@ { ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE; } -#line 6028 "conf_parser.c" +#line 6029 "conf_parser.c" break; case 574: @@ -6032,7 +6033,7 @@ { ConfigGeneral.oper_umodes |= UMODE_INVISIBLE; } -#line 6036 "conf_parser.c" +#line 6037 "conf_parser.c" break; case 575: @@ -6040,7 +6041,7 @@ { ConfigGeneral.oper_umodes |= UMODE_WALLOP; } -#line 6044 "conf_parser.c" +#line 6045 "conf_parser.c" break; case 576: @@ -6048,7 +6049,7 @@ { ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID; } -#line 6052 "conf_parser.c" +#line 6053 "conf_parser.c" break; case 577: @@ -6056,7 +6057,7 @@ { ConfigGeneral.oper_umodes |= UMODE_CALLERID; } -#line 6060 "conf_parser.c" +#line 6061 "conf_parser.c" break; case 578: @@ -6064,7 +6065,7 @@ { ConfigGeneral.oper_umodes |= UMODE_LOCOPS; } -#line 6068 "conf_parser.c" +#line 6069 "conf_parser.c" break; case 579: @@ -6072,7 +6073,7 @@ { ConfigGeneral.oper_umodes |= UMODE_REGONLY; } -#line 6076 "conf_parser.c" +#line 6077 "conf_parser.c" break; case 580: @@ -6080,7 +6081,7 @@ { ConfigGeneral.oper_umodes |= UMODE_FARCONNECT; } -#line 6084 "conf_parser.c" +#line 6085 "conf_parser.c" break; case 581: @@ -6088,7 +6089,7 @@ { ConfigGeneral.oper_umodes |= UMODE_EXPIRATION; } -#line 6092 "conf_parser.c" +#line 6093 "conf_parser.c" break; case 582: @@ -6096,7 +6097,7 @@ { ConfigGeneral.oper_only_umodes = 0; } -#line 6100 "conf_parser.c" +#line 6101 "conf_parser.c" break; case 586: @@ -6104,7 +6105,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_BOT; } -#line 6108 "conf_parser.c" +#line 6109 "conf_parser.c" break; case 587: @@ -6112,7 +6113,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_CCONN; } -#line 6116 "conf_parser.c" +#line 6117 "conf_parser.c" break; case 588: @@ -6120,7 +6121,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_DEAF; } -#line 6124 "conf_parser.c" +#line 6125 "conf_parser.c" break; case 589: @@ -6128,7 +6129,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_DEBUG; } -#line 6132 "conf_parser.c" +#line 6133 "conf_parser.c" break; case 590: @@ -6136,7 +6137,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_FLOOD; } -#line 6140 "conf_parser.c" +#line 6141 "conf_parser.c" break; case 591: @@ -6144,7 +6145,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_SKILL; } -#line 6148 "conf_parser.c" +#line 6149 "conf_parser.c" break; case 592: @@ -6152,7 +6153,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN; } -#line 6156 "conf_parser.c" +#line 6157 "conf_parser.c" break; case 593: @@ -6160,7 +6161,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE; } -#line 6164 "conf_parser.c" +#line 6165 "conf_parser.c" break; case 594: @@ -6168,7 +6169,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_REJ; } -#line 6172 "conf_parser.c" +#line 6173 "conf_parser.c" break; case 595: @@ -6176,7 +6177,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_SPY; } -#line 6180 "conf_parser.c" +#line 6181 "conf_parser.c" break; case 596: @@ -6184,7 +6185,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL; } -#line 6188 "conf_parser.c" +#line 6189 "conf_parser.c" break; case 597: @@ -6192,7 +6193,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE; } -#line 6196 "conf_parser.c" +#line 6197 "conf_parser.c" break; case 598: @@ -6200,7 +6201,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE; } -#line 6204 "conf_parser.c" +#line 6205 "conf_parser.c" break; case 599: @@ -6208,7 +6209,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_WALLOP; } -#line 6212 "conf_parser.c" +#line 6213 "conf_parser.c" break; case 600: @@ -6216,7 +6217,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID; } -#line 6220 "conf_parser.c" +#line 6221 "conf_parser.c" break; case 601: @@ -6224,7 +6225,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_CALLERID; } -#line 6228 "conf_parser.c" +#line 6229 "conf_parser.c" break; case 602: @@ -6232,7 +6233,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS; } -#line 6236 "conf_parser.c" +#line 6237 "conf_parser.c" break; case 603: @@ -6240,7 +6241,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_REGONLY; } -#line 6244 "conf_parser.c" +#line 6245 "conf_parser.c" break; case 604: @@ -6248,7 +6249,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT; } -#line 6252 "conf_parser.c" +#line 6253 "conf_parser.c" break; case 605: @@ -6256,7 +6257,7 @@ { ConfigGeneral.oper_only_umodes |= UMODE_EXPIRATION; } -#line 6260 "conf_parser.c" +#line 6261 "conf_parser.c" break; case 606: @@ -6264,7 +6265,7 @@ { ConfigGeneral.min_nonwildcard = (yyvsp[-1].number); } -#line 6268 "conf_parser.c" +#line 6269 "conf_parser.c" break; case 607: @@ -6272,7 +6273,7 @@ { ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number); } -#line 6276 "conf_parser.c" +#line 6277 "conf_parser.c" break; case 608: @@ -6280,7 +6281,7 @@ { ConfigGeneral.default_floodcount = (yyvsp[-1].number); } -#line 6284 "conf_parser.c" +#line 6285 "conf_parser.c" break; case 609: @@ -6288,7 +6289,7 @@ { ConfigGeneral.default_floodtime = (yyvsp[-1].number); } -#line 6292 "conf_parser.c" +#line 6293 "conf_parser.c" break; case 629: @@ -6296,7 +6297,7 @@ { ConfigChannel.enable_extbans = yylval.number; } -#line 6300 "conf_parser.c" +#line 6301 "conf_parser.c" break; case 630: @@ -6304,7 +6305,7 @@ { ConfigChannel.disable_fake_channels = yylval.number; } -#line 6308 "conf_parser.c" +#line 6309 "conf_parser.c" break; case 631: @@ -6312,7 +6313,7 @@ { ConfigChannel.invite_client_count = (yyvsp[-1].number); } -#line 6316 "conf_parser.c" +#line 6317 "conf_parser.c" break; case 632: @@ -6320,7 +6321,7 @@ { ConfigChannel.invite_client_time = (yyvsp[-1].number); } -#line 6324 "conf_parser.c" +#line 6325 "conf_parser.c" break; case 633: @@ -6328,7 +6329,7 @@ { ConfigChannel.invite_delay_channel = (yyvsp[-1].number); } -#line 6332 "conf_parser.c" +#line 6333 "conf_parser.c" break; case 634: @@ -6336,7 +6337,7 @@ { ConfigChannel.invite_expire_time = (yyvsp[-1].number); } -#line 6340 "conf_parser.c" +#line 6341 "conf_parser.c" break; case 635: @@ -6344,7 +6345,7 @@ { ConfigChannel.knock_client_count = (yyvsp[-1].number); } -#line 6348 "conf_parser.c" +#line 6349 "conf_parser.c" break; case 636: @@ -6352,7 +6353,7 @@ { ConfigChannel.knock_client_time = (yyvsp[-1].number); } -#line 6356 "conf_parser.c" +#line 6357 "conf_parser.c" break; case 637: @@ -6360,7 +6361,7 @@ { ConfigChannel.knock_delay_channel = (yyvsp[-1].number); } -#line 6364 "conf_parser.c" +#line 6365 "conf_parser.c" break; case 638: @@ -6368,7 +6369,7 @@ { ConfigChannel.max_channels = (yyvsp[-1].number); } -#line 6372 "conf_parser.c" +#line 6373 "conf_parser.c" break; case 639: @@ -6376,7 +6377,7 @@ { ConfigChannel.max_invites = (yyvsp[-1].number); } -#line 6380 "conf_parser.c" +#line 6381 "conf_parser.c" break; case 640: @@ -6384,7 +6385,7 @@ { ConfigChannel.max_bans = (yyvsp[-1].number); } -#line 6388 "conf_parser.c" +#line 6389 "conf_parser.c" break; case 641: @@ -6392,7 +6393,7 @@ { ConfigChannel.max_bans_large = (yyvsp[-1].number); } -#line 6396 "conf_parser.c" +#line 6397 "conf_parser.c" break; case 642: @@ -6400,7 +6401,7 @@ { ConfigChannel.default_join_flood_count = yylval.number; } -#line 6404 "conf_parser.c" +#line 6405 "conf_parser.c" break; case 643: @@ -6408,7 +6409,7 @@ { ConfigChannel.default_join_flood_time = (yyvsp[-1].number); } -#line 6412 "conf_parser.c" +#line 6413 "conf_parser.c" break; case 657: @@ -6417,7 +6418,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.flatten_links = yylval.number; } -#line 6421 "conf_parser.c" +#line 6422 "conf_parser.c" break; case 658: @@ -6436,7 +6437,7 @@ ConfigServerHide.flatten_links_delay = (yyvsp[-1].number); } } -#line 6440 "conf_parser.c" +#line 6441 "conf_parser.c" break; case 659: @@ -6448,7 +6449,7 @@ ConfigServerHide.flatten_links_file = xstrdup(yylval.string); } } -#line 6452 "conf_parser.c" +#line 6453 "conf_parser.c" break; case 660: @@ -6457,7 +6458,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.disable_remote_commands = yylval.number; } -#line 6461 "conf_parser.c" +#line 6462 "conf_parser.c" break; case 661: @@ -6466,7 +6467,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.hide_servers = yylval.number; } -#line 6470 "conf_parser.c" +#line 6471 "conf_parser.c" break; case 662: @@ -6475,7 +6476,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.hide_services = yylval.number; } -#line 6479 "conf_parser.c" +#line 6480 "conf_parser.c" break; case 663: @@ -6487,7 +6488,7 @@ ConfigServerHide.hidden_name = xstrdup(yylval.string); } } -#line 6491 "conf_parser.c" +#line 6492 "conf_parser.c" break; case 664: @@ -6496,7 +6497,7 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.hidden = yylval.number; } -#line 6500 "conf_parser.c" +#line 6501 "conf_parser.c" break; case 665: @@ -6505,11 +6506,11 @@ if (conf_parser_ctx.pass == 2) ConfigServerHide.hide_server_ips = yylval.number; } -#line 6509 "conf_parser.c" +#line 6510 "conf_parser.c" break; -#line 6513 "conf_parser.c" +#line 6514 "conf_parser.c" default: break; } diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.h ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.h --- ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.h 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.h 2021-01-17 11:18:40.000000000 +0000 @@ -86,115 +86,115 @@ DISABLE_REMOTE_COMMANDS = 292, DLINE_MIN_CIDR = 293, DLINE_MIN_CIDR6 = 294, - DOTS_IN_IDENT = 295, - EMAIL = 296, - ENABLE_EXTBANS = 297, - ENCRYPTED = 298, - EXCEED_LIMIT = 299, - EXEMPT = 300, - EXPIRATION = 301, - FAILED_OPER_NOTICE = 302, - FLATTEN_LINKS = 303, - FLATTEN_LINKS_DELAY = 304, - FLATTEN_LINKS_FILE = 305, - GECOS = 306, - GENERAL = 307, - HIDDEN = 308, - HIDDEN_NAME = 309, - HIDE_CHANS = 310, - HIDE_IDLE = 311, - HIDE_IDLE_FROM_OPERS = 312, - HIDE_SERVER_IPS = 313, - HIDE_SERVERS = 314, - HIDE_SERVICES = 315, - HOST = 316, - HUB = 317, - HUB_MASK = 318, - INVISIBLE_ON_CONNECT = 319, - INVITE_CLIENT_COUNT = 320, - INVITE_CLIENT_TIME = 321, - INVITE_DELAY_CHANNEL = 322, - INVITE_EXPIRE_TIME = 323, - IP = 324, - IRCD_AUTH = 325, - IRCD_FLAGS = 326, - IRCD_SID = 327, - JOIN = 328, - KILL = 329, - KILL_CHASE_TIME_LIMIT = 330, - KLINE = 331, - KLINE_EXEMPT = 332, - KLINE_MIN_CIDR = 333, - KLINE_MIN_CIDR6 = 334, - KNOCK_CLIENT_COUNT = 335, - KNOCK_CLIENT_TIME = 336, - KNOCK_DELAY_CHANNEL = 337, - LEAF_MASK = 338, - LISTEN = 339, - MASK = 340, - MAX_ACCEPT = 341, - MAX_BANS = 342, - MAX_BANS_LARGE = 343, - MAX_CHANNELS = 344, - MAX_IDLE = 345, - MAX_INVITES = 346, - MAX_MONITOR = 347, - MAX_NICK_CHANGES = 348, - MAX_NICK_LENGTH = 349, - MAX_NICK_TIME = 350, - MAX_NUMBER = 351, - MAX_TARGETS = 352, - MAX_TOPIC_LENGTH = 353, - MIN_IDLE = 354, - MIN_NONWILDCARD = 355, - MIN_NONWILDCARD_SIMPLE = 356, - MODULE = 357, - MODULES = 358, - MOTD = 359, - NAME = 360, - NEED_IDENT = 361, - NEED_PASSWORD = 362, - NETWORK_DESCRIPTION = 363, - NETWORK_NAME = 364, - NICK = 365, - NO_OPER_FLOOD = 366, - NO_TILDE = 367, - NUMBER_PER_CIDR = 368, - NUMBER_PER_IP_GLOBAL = 369, - NUMBER_PER_IP_LOCAL = 370, - OPER_ONLY_UMODES = 371, - OPER_UMODES = 372, - OPERATOR = 373, - OPERS_BYPASS_CALLERID = 374, - PACE_WAIT = 375, - PACE_WAIT_SIMPLE = 376, - PASSWORD = 377, - PATH = 378, - PING_COOKIE = 379, - PING_TIME = 380, - PORT = 381, - RANDOM_IDLE = 382, - REASON = 383, - REDIRPORT = 384, - REDIRSERV = 385, - REHASH = 386, - REMOTE = 387, - REMOTEBAN = 388, - RESV = 389, - RESV_EXEMPT = 390, - RSA_PRIVATE_KEY_FILE = 391, - SECONDS = 392, - MINUTES = 393, - HOURS = 394, - DAYS = 395, - WEEKS = 396, - MONTHS = 397, - YEARS = 398, - SEND_PASSWORD = 399, - SENDQ = 400, - SERVERHIDE = 401, - SERVERINFO = 402, - SHORT_MOTD = 403, + EMAIL = 295, + ENABLE_EXTBANS = 296, + ENCRYPTED = 297, + EXCEED_LIMIT = 298, + EXEMPT = 299, + EXPIRATION = 300, + FAILED_OPER_NOTICE = 301, + FLATTEN_LINKS = 302, + FLATTEN_LINKS_DELAY = 303, + FLATTEN_LINKS_FILE = 304, + GECOS = 305, + GENERAL = 306, + HIDDEN = 307, + HIDDEN_NAME = 308, + HIDE_CHANS = 309, + HIDE_IDLE = 310, + HIDE_IDLE_FROM_OPERS = 311, + HIDE_SERVER_IPS = 312, + HIDE_SERVERS = 313, + HIDE_SERVICES = 314, + HOST = 315, + HUB = 316, + HUB_MASK = 317, + INVISIBLE_ON_CONNECT = 318, + INVITE_CLIENT_COUNT = 319, + INVITE_CLIENT_TIME = 320, + INVITE_DELAY_CHANNEL = 321, + INVITE_EXPIRE_TIME = 322, + IP = 323, + IRCD_AUTH = 324, + IRCD_FLAGS = 325, + IRCD_SID = 326, + JOIN = 327, + KILL = 328, + KILL_CHASE_TIME_LIMIT = 329, + KLINE = 330, + KLINE_EXEMPT = 331, + KLINE_MIN_CIDR = 332, + KLINE_MIN_CIDR6 = 333, + KNOCK_CLIENT_COUNT = 334, + KNOCK_CLIENT_TIME = 335, + KNOCK_DELAY_CHANNEL = 336, + LEAF_MASK = 337, + LISTEN = 338, + MASK = 339, + MAX_ACCEPT = 340, + MAX_BANS = 341, + MAX_BANS_LARGE = 342, + MAX_CHANNELS = 343, + MAX_IDLE = 344, + MAX_INVITES = 345, + MAX_MONITOR = 346, + MAX_NICK_CHANGES = 347, + MAX_NICK_LENGTH = 348, + MAX_NICK_TIME = 349, + MAX_NUMBER = 350, + MAX_TARGETS = 351, + MAX_TOPIC_LENGTH = 352, + MIN_IDLE = 353, + MIN_NONWILDCARD = 354, + MIN_NONWILDCARD_SIMPLE = 355, + MODULE = 356, + MODULES = 357, + MOTD = 358, + NAME = 359, + NEED_IDENT = 360, + NEED_PASSWORD = 361, + NETWORK_DESCRIPTION = 362, + NETWORK_NAME = 363, + NICK = 364, + NO_OPER_FLOOD = 365, + NO_TILDE = 366, + NUMBER_PER_CIDR = 367, + NUMBER_PER_IP_GLOBAL = 368, + NUMBER_PER_IP_LOCAL = 369, + OPER_ONLY_UMODES = 370, + OPER_UMODES = 371, + OPERATOR = 372, + OPERS_BYPASS_CALLERID = 373, + PACE_WAIT = 374, + PACE_WAIT_SIMPLE = 375, + PASSWORD = 376, + PATH = 377, + PING_COOKIE = 378, + PING_TIME = 379, + PORT = 380, + RANDOM_IDLE = 381, + REASON = 382, + REDIRPORT = 383, + REDIRSERV = 384, + REHASH = 385, + REMOTE = 386, + REMOTEBAN = 387, + RESV = 388, + RESV_EXEMPT = 389, + RSA_PRIVATE_KEY_FILE = 390, + SECONDS = 391, + MINUTES = 392, + HOURS = 393, + DAYS = 394, + WEEKS = 395, + MONTHS = 396, + YEARS = 397, + SEND_PASSWORD = 398, + SENDQ = 399, + SERVERHIDE = 400, + SERVERINFO = 401, + SHORT_MOTD = 402, + SPECIALS_IN_IDENT = 403, SPOOF = 404, SQUIT = 405, STATS_E_DISABLED = 406, @@ -318,115 +318,115 @@ #define DISABLE_REMOTE_COMMANDS 292 #define DLINE_MIN_CIDR 293 #define DLINE_MIN_CIDR6 294 -#define DOTS_IN_IDENT 295 -#define EMAIL 296 -#define ENABLE_EXTBANS 297 -#define ENCRYPTED 298 -#define EXCEED_LIMIT 299 -#define EXEMPT 300 -#define EXPIRATION 301 -#define FAILED_OPER_NOTICE 302 -#define FLATTEN_LINKS 303 -#define FLATTEN_LINKS_DELAY 304 -#define FLATTEN_LINKS_FILE 305 -#define GECOS 306 -#define GENERAL 307 -#define HIDDEN 308 -#define HIDDEN_NAME 309 -#define HIDE_CHANS 310 -#define HIDE_IDLE 311 -#define HIDE_IDLE_FROM_OPERS 312 -#define HIDE_SERVER_IPS 313 -#define HIDE_SERVERS 314 -#define HIDE_SERVICES 315 -#define HOST 316 -#define HUB 317 -#define HUB_MASK 318 -#define INVISIBLE_ON_CONNECT 319 -#define INVITE_CLIENT_COUNT 320 -#define INVITE_CLIENT_TIME 321 -#define INVITE_DELAY_CHANNEL 322 -#define INVITE_EXPIRE_TIME 323 -#define IP 324 -#define IRCD_AUTH 325 -#define IRCD_FLAGS 326 -#define IRCD_SID 327 -#define JOIN 328 -#define KILL 329 -#define KILL_CHASE_TIME_LIMIT 330 -#define KLINE 331 -#define KLINE_EXEMPT 332 -#define KLINE_MIN_CIDR 333 -#define KLINE_MIN_CIDR6 334 -#define KNOCK_CLIENT_COUNT 335 -#define KNOCK_CLIENT_TIME 336 -#define KNOCK_DELAY_CHANNEL 337 -#define LEAF_MASK 338 -#define LISTEN 339 -#define MASK 340 -#define MAX_ACCEPT 341 -#define MAX_BANS 342 -#define MAX_BANS_LARGE 343 -#define MAX_CHANNELS 344 -#define MAX_IDLE 345 -#define MAX_INVITES 346 -#define MAX_MONITOR 347 -#define MAX_NICK_CHANGES 348 -#define MAX_NICK_LENGTH 349 -#define MAX_NICK_TIME 350 -#define MAX_NUMBER 351 -#define MAX_TARGETS 352 -#define MAX_TOPIC_LENGTH 353 -#define MIN_IDLE 354 -#define MIN_NONWILDCARD 355 -#define MIN_NONWILDCARD_SIMPLE 356 -#define MODULE 357 -#define MODULES 358 -#define MOTD 359 -#define NAME 360 -#define NEED_IDENT 361 -#define NEED_PASSWORD 362 -#define NETWORK_DESCRIPTION 363 -#define NETWORK_NAME 364 -#define NICK 365 -#define NO_OPER_FLOOD 366 -#define NO_TILDE 367 -#define NUMBER_PER_CIDR 368 -#define NUMBER_PER_IP_GLOBAL 369 -#define NUMBER_PER_IP_LOCAL 370 -#define OPER_ONLY_UMODES 371 -#define OPER_UMODES 372 -#define OPERATOR 373 -#define OPERS_BYPASS_CALLERID 374 -#define PACE_WAIT 375 -#define PACE_WAIT_SIMPLE 376 -#define PASSWORD 377 -#define PATH 378 -#define PING_COOKIE 379 -#define PING_TIME 380 -#define PORT 381 -#define RANDOM_IDLE 382 -#define REASON 383 -#define REDIRPORT 384 -#define REDIRSERV 385 -#define REHASH 386 -#define REMOTE 387 -#define REMOTEBAN 388 -#define RESV 389 -#define RESV_EXEMPT 390 -#define RSA_PRIVATE_KEY_FILE 391 -#define SECONDS 392 -#define MINUTES 393 -#define HOURS 394 -#define DAYS 395 -#define WEEKS 396 -#define MONTHS 397 -#define YEARS 398 -#define SEND_PASSWORD 399 -#define SENDQ 400 -#define SERVERHIDE 401 -#define SERVERINFO 402 -#define SHORT_MOTD 403 +#define EMAIL 295 +#define ENABLE_EXTBANS 296 +#define ENCRYPTED 297 +#define EXCEED_LIMIT 298 +#define EXEMPT 299 +#define EXPIRATION 300 +#define FAILED_OPER_NOTICE 301 +#define FLATTEN_LINKS 302 +#define FLATTEN_LINKS_DELAY 303 +#define FLATTEN_LINKS_FILE 304 +#define GECOS 305 +#define GENERAL 306 +#define HIDDEN 307 +#define HIDDEN_NAME 308 +#define HIDE_CHANS 309 +#define HIDE_IDLE 310 +#define HIDE_IDLE_FROM_OPERS 311 +#define HIDE_SERVER_IPS 312 +#define HIDE_SERVERS 313 +#define HIDE_SERVICES 314 +#define HOST 315 +#define HUB 316 +#define HUB_MASK 317 +#define INVISIBLE_ON_CONNECT 318 +#define INVITE_CLIENT_COUNT 319 +#define INVITE_CLIENT_TIME 320 +#define INVITE_DELAY_CHANNEL 321 +#define INVITE_EXPIRE_TIME 322 +#define IP 323 +#define IRCD_AUTH 324 +#define IRCD_FLAGS 325 +#define IRCD_SID 326 +#define JOIN 327 +#define KILL 328 +#define KILL_CHASE_TIME_LIMIT 329 +#define KLINE 330 +#define KLINE_EXEMPT 331 +#define KLINE_MIN_CIDR 332 +#define KLINE_MIN_CIDR6 333 +#define KNOCK_CLIENT_COUNT 334 +#define KNOCK_CLIENT_TIME 335 +#define KNOCK_DELAY_CHANNEL 336 +#define LEAF_MASK 337 +#define LISTEN 338 +#define MASK 339 +#define MAX_ACCEPT 340 +#define MAX_BANS 341 +#define MAX_BANS_LARGE 342 +#define MAX_CHANNELS 343 +#define MAX_IDLE 344 +#define MAX_INVITES 345 +#define MAX_MONITOR 346 +#define MAX_NICK_CHANGES 347 +#define MAX_NICK_LENGTH 348 +#define MAX_NICK_TIME 349 +#define MAX_NUMBER 350 +#define MAX_TARGETS 351 +#define MAX_TOPIC_LENGTH 352 +#define MIN_IDLE 353 +#define MIN_NONWILDCARD 354 +#define MIN_NONWILDCARD_SIMPLE 355 +#define MODULE 356 +#define MODULES 357 +#define MOTD 358 +#define NAME 359 +#define NEED_IDENT 360 +#define NEED_PASSWORD 361 +#define NETWORK_DESCRIPTION 362 +#define NETWORK_NAME 363 +#define NICK 364 +#define NO_OPER_FLOOD 365 +#define NO_TILDE 366 +#define NUMBER_PER_CIDR 367 +#define NUMBER_PER_IP_GLOBAL 368 +#define NUMBER_PER_IP_LOCAL 369 +#define OPER_ONLY_UMODES 370 +#define OPER_UMODES 371 +#define OPERATOR 372 +#define OPERS_BYPASS_CALLERID 373 +#define PACE_WAIT 374 +#define PACE_WAIT_SIMPLE 375 +#define PASSWORD 376 +#define PATH 377 +#define PING_COOKIE 378 +#define PING_TIME 379 +#define PORT 380 +#define RANDOM_IDLE 381 +#define REASON 382 +#define REDIRPORT 383 +#define REDIRSERV 384 +#define REHASH 385 +#define REMOTE 386 +#define REMOTEBAN 387 +#define RESV 388 +#define RESV_EXEMPT 389 +#define RSA_PRIVATE_KEY_FILE 390 +#define SECONDS 391 +#define MINUTES 392 +#define HOURS 393 +#define DAYS 394 +#define WEEKS 395 +#define MONTHS 396 +#define YEARS 397 +#define SEND_PASSWORD 398 +#define SENDQ 399 +#define SERVERHIDE 400 +#define SERVERINFO 401 +#define SHORT_MOTD 402 +#define SPECIALS_IN_IDENT 403 #define SPOOF 404 #define SQUIT 405 #define STATS_E_DISABLED 406 diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.y ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.y --- ircd-hybrid-8.2.37+dfsg.1/src/conf_parser.y 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_parser.y 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_parser.y * \brief Parses the ircd configuration file. - * \version $Id: conf_parser.y 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: conf_parser.y 9897 2021-01-17 06:18:18Z michael $ */ @@ -170,7 +170,6 @@ %token DISABLE_REMOTE_COMMANDS %token DLINE_MIN_CIDR %token DLINE_MIN_CIDR6 -%token DOTS_IN_IDENT %token EMAIL %token ENABLE_EXTBANS %token ENCRYPTED @@ -273,6 +272,7 @@ %token SERVERHIDE %token SERVERINFO %token SHORT_MOTD +%token SPECIALS_IN_IDENT %token SPOOF %token SQUIT %token STATS_E_DISABLED @@ -2350,7 +2350,7 @@ general_kill_chase_time_limit | general_invisible_on_connect | general_warn_no_connect_block | - general_dots_in_ident | + general_specials_in_ident | general_stats_i_oper_only | general_stats_k_oper_only | general_stats_m_oper_only | @@ -2549,9 +2549,9 @@ ConfigGeneral.no_oper_flood = yylval.number; }; -general_dots_in_ident: DOTS_IN_IDENT '=' NUMBER ';' +general_specials_in_ident: SPECIALS_IN_IDENT '=' NUMBER ';' { - ConfigGeneral.dots_in_ident = $3; + ConfigGeneral.specials_in_ident = $3; }; general_max_targets: MAX_TARGETS '=' NUMBER ';' diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_pseudo.c ircd-hybrid-8.2.38+dfsg.1/src/conf_pseudo.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_pseudo.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_pseudo.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2014-2020 ircd-hybrid development team + * Copyright (c) 2014-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_pseudo.c * \brief Handles with pseudo commands/service aliases. - * \version $Id: conf_pseudo.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: conf_pseudo.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_resv.c ircd-hybrid-8.2.38+dfsg.1/src/conf_resv.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_resv.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_resv.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_resv.c * \brief Functions to reserve(jupe) a nick/channel. - * \version $Id: conf_resv.c 9607 2020-09-06 06:33:33Z michael $ + * \version $Id: conf_resv.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_service.c ircd-hybrid-8.2.38+dfsg.1/src/conf_service.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_service.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_service.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2012-2020 ircd-hybrid development team + * Copyright (c) 2012-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_service.c * \brief Implements service {} block configuration management. - * \version $Id: conf_service.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_service.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/conf_shared.c ircd-hybrid-8.2.38+dfsg.1/src/conf_shared.c --- ircd-hybrid-8.2.37+dfsg.1/src/conf_shared.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/conf_shared.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file conf_shared.c * \brief Implements shared {} block configuration management. - * \version $Id: conf_shared.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: conf_shared.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/dbuf.c ircd-hybrid-8.2.38+dfsg.1/src/dbuf.c --- ircd-hybrid-8.2.37+dfsg.1/src/dbuf.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/dbuf.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file dbuf.c * \brief Supports dynamic data buffers. - * \version $Id: dbuf.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: dbuf.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/event.c ircd-hybrid-8.2.38+dfsg.1/src/event.c --- ircd-hybrid-8.2.37+dfsg.1/src/event.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/event.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file event.c * \brief Timer based event execution - * \version $Id: event.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: event.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_account.c ircd-hybrid-8.2.38+dfsg.1/src/extban_account.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_account.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_account.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban_account.c * \brief Implements services account based extended channel bans. - * \version $Id: extban_account.c 9249 2020-02-01 13:35:32Z michael $ + * \version $Id: extban_account.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban.c ircd-hybrid-8.2.38+dfsg.1/src/extban.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban.c * \brief Implements extended channel bans. - * \version $Id: extban.c 9818 2020-12-12 12:52:20Z michael $ + * \version $Id: extban.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_channel.c ircd-hybrid-8.2.38+dfsg.1/src/extban_channel.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_channel.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_channel.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_channel.c * \brief Implements channel name based extended channel bans. - * \version $Id: extban_channel.c 9457 2020-06-30 19:26:46Z michael $ + * \version $Id: extban_channel.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_fingerprint.c ircd-hybrid-8.2.38+dfsg.1/src/extban_fingerprint.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_fingerprint.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_fingerprint.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban_fingerprint.c * \brief Implements TLS certificate fingerprint based extended channel bans. - * \version $Id: extban_fingerprint.c 9409 2020-05-31 09:13:44Z michael $ + * \version $Id: extban_fingerprint.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_gecos.c ircd-hybrid-8.2.38+dfsg.1/src/extban_gecos.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_gecos.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_gecos.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban_gecos.c * \brief Implements gecos (real name) based extended channel bans. - * \version $Id: extban_gecos.c 9249 2020-02-01 13:35:32Z michael $ + * \version $Id: extban_gecos.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_join.c ircd-hybrid-8.2.38+dfsg.1/src/extban_join.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_join.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_join.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_join.c * \brief Implements join restriction extended channel bans. - * \version $Id: extban_join.c 9302 2020-02-23 15:23:54Z michael $ + * \version $Id: extban_join.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_mute.c ircd-hybrid-8.2.38+dfsg.1/src/extban_mute.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_mute.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_mute.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban_mute.c * \brief Implements message muting extended channel bans. - * \version $Id: extban_mute.c 9302 2020-02-23 15:23:54Z michael $ + * \version $Id: extban_mute.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_nick.c ircd-hybrid-8.2.38+dfsg.1/src/extban_nick.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_nick.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_nick.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_nick.c * \brief Implements nick change restriction extended channel bans. - * \version $Id: extban_nick.c 9296 2020-02-23 10:39:42Z michael $ + * \version $Id: extban_nick.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_operclass.c ircd-hybrid-8.2.38+dfsg.1/src/extban_operclass.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_operclass.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_operclass.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_operclass.c * \brief Implements oper class based extended channel bans. - * \version $Id: extban_operclass.c 9249 2020-02-01 13:35:32Z michael $ + * \version $Id: extban_operclass.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_server.c ircd-hybrid-8.2.38+dfsg.1/src/extban_server.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_server.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_server.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_server.c * \brief Implements server name based extended channel bans. - * \version $Id: extban_server.c 9249 2020-02-01 13:35:32Z michael $ + * \version $Id: extban_server.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_tlsinfo.c ircd-hybrid-8.2.38+dfsg.1/src/extban_tlsinfo.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_tlsinfo.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_tlsinfo.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2015-2016 plexus development team - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file extban_tlsinfo.c * \brief Implements TLS version/cipher based extended channel bans. - * \version $Id: extban_tlsinfo.c 9460 2020-06-30 19:55:52Z michael $ + * \version $Id: extban_tlsinfo.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/extban_usermode.c ircd-hybrid-8.2.38+dfsg.1/src/extban_usermode.c --- ircd-hybrid-8.2.37+dfsg.1/src/extban_usermode.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/extban_usermode.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2019-2020 ircd-hybrid development team + * Copyright (c) 2019-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file extban_usermode.c * \brief Implements usermode based extended channel bans. - * \version $Id: extban_usermode.c 9302 2020-02-23 15:23:54Z michael $ + * \version $Id: extban_usermode.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/fdlist.c ircd-hybrid-8.2.38+dfsg.1/src/fdlist.c --- ircd-hybrid-8.2.37+dfsg.1/src/fdlist.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/fdlist.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file fdlist.c * \brief Maintains a list of file descriptors. - * \version $Id: fdlist.c 9156 2020-01-13 14:51:47Z michael $ + * \version $Id: fdlist.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/getopt.c ircd-hybrid-8.2.38+dfsg.1/src/getopt.c --- ircd-hybrid-8.2.37+dfsg.1/src/getopt.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/getopt.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file getopt.c * \brief Uses getopt to fetch the command line options. - * \version $Id: getopt.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: getopt.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/hash.c ircd-hybrid-8.2.38+dfsg.1/src/hash.c --- ircd-hybrid-8.2.37+dfsg.1/src/hash.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/hash.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file hash.c * \brief Hash table management. - * \version $Id: hash.c 9547 2020-07-18 16:33:47Z michael $ + * \version $Id: hash.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/hostmask.c ircd-hybrid-8.2.38+dfsg.1/src/hostmask.c --- ircd-hybrid-8.2.37+dfsg.1/src/hostmask.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/hostmask.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file hostmask.c * \brief Code to efficiently find IP & hostmask based configs. - * \version $Id: hostmask.c 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: hostmask.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/id.c ircd-hybrid-8.2.38+dfsg.1/src/id.c --- ircd-hybrid-8.2.37+dfsg.1/src/id.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/id.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file id.c * \brief Contains functions pertaining to SID/UID generation. - * \version $Id: id.c 9645 2020-10-05 17:53:52Z michael $ + * \version $Id: id.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/ipcache.c ircd-hybrid-8.2.38+dfsg.1/src/ipcache.c --- ircd-hybrid-8.2.37+dfsg.1/src/ipcache.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/ipcache.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ipcache.c * \brief Routines to count connections from particular IP addresses. - * \version $Id: ipcache.c 9334 2020-04-18 16:18:49Z michael $ + * \version $Id: ipcache.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/ircd.c ircd-hybrid-8.2.38+dfsg.1/src/ircd.c --- ircd-hybrid-8.2.37+dfsg.1/src/ircd.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/ircd.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd.c * \brief Starts up and runs the ircd. - * \version $Id: ircd.c 9706 2020-11-14 14:31:43Z michael $ + * \version $Id: ircd.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/ircd_signal.c ircd-hybrid-8.2.38+dfsg.1/src/ircd_signal.c --- ircd-hybrid-8.2.37+dfsg.1/src/ircd_signal.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/ircd_signal.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file ircd_signal.c * \brief responsible for ircd's signal handling. - * \version $Id: ircd_signal.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: ircd_signal.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/irc_string.c ircd-hybrid-8.2.38+dfsg.1/src/irc_string.c --- ircd-hybrid-8.2.37+dfsg.1/src/irc_string.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/irc_string.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file irc_string.c * \brief IRC string functions. - * \version $Id: irc_string.c 9330 2020-04-11 12:55:09Z michael $ + * \version $Id: irc_string.c 9858 2021-01-01 04:43:42Z michael $ */ #include "config.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/isupport.c ircd-hybrid-8.2.38+dfsg.1/src/isupport.c --- ircd-hybrid-8.2.37+dfsg.1/src/isupport.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/isupport.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file isupport.c * \brief Contains functions pertaining to RPL_ISUPPORT. - * \version $Id: isupport.c 9780 2020-12-03 16:35:25Z michael $ + * \version $Id: isupport.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/list.c ircd-hybrid-8.2.38+dfsg.1/src/list.c --- ircd-hybrid-8.2.37+dfsg.1/src/list.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/list.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file list.c * \brief Maintains doubly-linked lists. - * \version $Id: list.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: list.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/listener.c ircd-hybrid-8.2.38+dfsg.1/src/listener.c --- ircd-hybrid-8.2.37+dfsg.1/src/listener.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/listener.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1999-2020 ircd-hybrid development team + * Copyright (c) 1999-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file listener.c * \brief Implementation for handling listening sockets. - * \version $Id: listener.c 9614 2020-09-07 12:46:40Z michael $ + * \version $Id: listener.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/log.c ircd-hybrid-8.2.38+dfsg.1/src/log.c --- ircd-hybrid-8.2.37+dfsg.1/src/log.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/log.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file log.c * \brief Logger functions. - * \version $Id: log.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: log.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/match.c ircd-hybrid-8.2.38+dfsg.1/src/match.c --- ircd-hybrid-8.2.37+dfsg.1/src/match.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/match.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file match.c * \brief Functions to match/compare strings. - * \version $Id: match.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: match.c 9876 2021-01-09 14:19:29Z michael $ */ #include "stdinc.h" @@ -350,19 +350,19 @@ /* * */ PRINT_C|KWILD_C|MWILD_C|CHAN_C|VCHAN_C|NONEOS_C|SERV_C, /* + */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, /* , */ PRINT_C|NONEOS_C, -/* - */ PRINT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* . */ PRINT_C|KWILD_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C|SERV_C, +/* - */ PRINT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* . */ PRINT_C|KWILD_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C|SERV_C, /* / */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, -/* 0 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 1 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 2 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 3 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 4 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 5 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 6 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 7 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 8 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* 9 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, +/* 0 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 1 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 2 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 3 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 4 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 5 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 6 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 7 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 8 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* 9 */ PRINT_C|DIGIT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, /* : */ PRINT_C|KWILD_C|CHAN_C|VCHAN_C|NONEOS_C|HOST_C, /* ; */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, /* < */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, @@ -370,64 +370,64 @@ /* > */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, /* ? */ PRINT_C|KWILD_C|MWILD_C|CHAN_C|VCHAN_C|NONEOS_C, /* @ */ PRINT_C|CHAN_C|VCHAN_C|NONEOS_C, -/* A */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* B */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* C */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* D */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* E */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* F */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* G */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* H */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* I */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* J */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* K */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* L */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* M */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* N */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* O */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* P */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* Q */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* R */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* S */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* T */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* U */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* V */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* W */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* X */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* Y */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* Z */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, +/* A */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* B */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* C */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* D */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* E */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* F */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* G */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* H */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* I */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* J */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* K */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* L */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* M */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* N */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* O */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* P */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* Q */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* R */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* S */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* T */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* U */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* V */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* W */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* X */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* Y */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* Z */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, /* [ */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, /* \ */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, /* ] */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, /* ^ */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, -/* _ */ PRINT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, +/* _ */ PRINT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C, /* ` */ PRINT_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, -/* a */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* b */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* c */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* d */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* e */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* f */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* g */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* h */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* i */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* j */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* k */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* l */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* m */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* n */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* o */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* p */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* q */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* r */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* s */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* t */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* u */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* v */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* w */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* x */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* y */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, -/* z */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|HOST_C, +/* a */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* b */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* c */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* d */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* e */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* f */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* g */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* h */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* i */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* j */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* k */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* l */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* m */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* n */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* o */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* p */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* q */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* r */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* s */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* t */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* u */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* v */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* w */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* x */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* y */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, +/* z */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C|USER2_C|HOST_C, /* { */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, /* | */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, /* } */ PRINT_C|ALPHA_C|NICK_C|CHAN_C|VCHAN_C|NONEOS_C|USER_C, diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/memory.c ircd-hybrid-8.2.38+dfsg.1/src/memory.c --- ircd-hybrid-8.2.37+dfsg.1/src/memory.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/memory.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file memory.c * \brief Memory utilities. - * \version $Id: memory.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: memory.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/misc.c ircd-hybrid-8.2.38+dfsg.1/src/misc.c --- ircd-hybrid-8.2.37+dfsg.1/src/misc.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/misc.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file misc.c * \brief Yet another miscellaneous functions file. - * \version $Id: misc.c 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: misc.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/modules.c ircd-hybrid-8.2.38+dfsg.1/src/modules.c --- ircd-hybrid-8.2.37+dfsg.1/src/modules.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/modules.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file modules.c * \brief A module loader. - * \version $Id: modules.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: modules.c 9858 2021-01-01 04:43:42Z michael $ */ #include "ltdl.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/monitor.c ircd-hybrid-8.2.38+dfsg.1/src/monitor.c --- ircd-hybrid-8.2.37+dfsg.1/src/monitor.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/monitor.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 1997 Jukka Santala (Donwulff) - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file monitor.c * \brief File including functions for MONITOR support - * \version $Id: monitor.c 9826 2020-12-19 16:21:50Z michael $ + * \version $Id: monitor.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/motd.c ircd-hybrid-8.2.38+dfsg.1/src/motd.c --- ircd-hybrid-8.2.37+dfsg.1/src/motd.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/motd.c 2021-01-17 11:18:40.000000000 +0000 @@ -2,7 +2,7 @@ * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * * Copyright (c) 2000 Kevin L. Mitchell - * Copyright (c) 2013-2020 ircd-hybrid development team + * Copyright (c) 2013-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ /*! \file motd.c * \brief Message-of-the-day manipulation implementation. - * \version $Id: motd.c 9847 2020-12-25 15:12:45Z michael $ + * \version $Id: motd.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/numeric.c ircd-hybrid-8.2.38+dfsg.1/src/numeric.c --- ircd-hybrid-8.2.37+dfsg.1/src/numeric.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/numeric.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file numeric.c * \brief Declarations of numeric replies. - * \version $Id: numeric.c 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: numeric.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/packet.c ircd-hybrid-8.2.38+dfsg.1/src/packet.c --- ircd-hybrid-8.2.37+dfsg.1/src/packet.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/packet.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file packet.c * \brief Packet handlers. - * \version $Id: packet.c 9548 2020-07-21 13:26:37Z michael $ + * \version $Id: packet.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/parse.c ircd-hybrid-8.2.38+dfsg.1/src/parse.c --- ircd-hybrid-8.2.37+dfsg.1/src/parse.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/parse.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file parse.c * \brief The message parser. - * \version $Id: parse.c 9414 2020-06-11 10:35:45Z michael $ + * \version $Id: parse.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/res.c ircd-hybrid-8.2.38+dfsg.1/src/res.c --- ircd-hybrid-8.2.37+dfsg.1/src/res.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/res.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file res.c * \brief ircd resolver functions - * \version $Id: res.c 9595 2020-09-04 16:48:45Z michael $ + * \version $Id: res.c 9874 2021-01-04 11:46:16Z michael $ */ /* @@ -598,8 +598,6 @@ (*request->callback)(request->callback_ctx, &request->addr, request->name, request->namelength); rem_request(request); } - - continue; } comm_setselect(F, COMM_SELECT_READ, res_readreply, NULL, 0); @@ -609,11 +607,10 @@ * timeout_query_list - Remove queries from the list which have been * there too long without being resolved. */ -static uintmax_t -timeout_query_list(void) +static void +resolver_timeout(void *unused) { dlink_node *node, *node_next; - uintmax_t next_time = 0; DLINK_FOREACH_SAFE(node, node_next, request_list.head) { @@ -626,7 +623,6 @@ { (*request->callback)(request->callback_ctx, NULL, NULL, 0); rem_request(request); - continue; } else { @@ -635,21 +631,7 @@ resend_query(request); } } - - if (next_time == 0 || timeout < next_time) - next_time = timeout; } - - return (next_time > event_base->time.sec_monotonic) ? next_time : (event_base->time.sec_monotonic + AR_TTL); -} - -/* - * timeout_resolver - check request list - */ -static void -timeout_resolver(void *unused) -{ - timeout_query_list(); } /* @@ -658,13 +640,13 @@ void resolver_init(void) { - static struct event event_timeout_resolver = + static struct event resolver_timeout_event = { - .name = "timeout_resolver", - .handler = timeout_resolver, + .name = "resolver_timeout", + .handler = resolver_timeout, .when = 1 }; start_resolver(); - event_add(&event_timeout_resolver, NULL); + event_add(&resolver_timeout_event, NULL); } diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/restart.c ircd-hybrid-8.2.38+dfsg.1/src/restart.c --- ircd-hybrid-8.2.37+dfsg.1/src/restart.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/restart.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file restart.c * \brief Functions to allow the ircd to restart. - * \version $Id: restart.c 9761 2020-11-30 18:01:55Z michael $ + * \version $Id: restart.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/s_bsd.c ircd-hybrid-8.2.38+dfsg.1/src/s_bsd.c --- ircd-hybrid-8.2.37+dfsg.1/src/s_bsd.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/s_bsd.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd.c * \brief Network functions. - * \version $Id: s_bsd.c 9589 2020-08-29 14:22:27Z michael $ + * \version $Id: s_bsd.c 9891 2021-01-16 18:20:44Z michael $ */ #include "stdinc.h" @@ -215,10 +215,11 @@ client->ip.ss_len, client->sockhost, sizeof(client->sockhost), NULL, 0, NI_NUMERICHOST); - if (client->sockhost[0] == ':') + if (client->sockhost[0] == ':' && + client->sockhost[1] == ':') { - client->sockhost[0] = '0'; memmove(client->sockhost + 1, client->sockhost, sizeof(client->sockhost) - 1); + client->sockhost[0] = '0'; } strlcpy(client->host, client->sockhost, sizeof(client->host)); diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_devpoll.c ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_devpoll.c --- ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_devpoll.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_devpoll.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2001-2020 ircd-hybrid development team + * Copyright (c) 2001-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd_devpoll.c * \brief /dev/poll compatible network routines. - * \version $Id: s_bsd_devpoll.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: s_bsd_devpoll.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_epoll.c ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_epoll.c --- ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_epoll.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_epoll.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd_epoll.c * \brief Linux epoll() compatible network routines. - * \version $Id: s_bsd_epoll.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: s_bsd_epoll.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_kqueue.c ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_kqueue.c --- ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_kqueue.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_kqueue.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd_kqueue.c * \brief kqueue() compatible network routines. - * \version $Id: s_bsd_kqueue.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: s_bsd_kqueue.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_poll.c ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_poll.c --- ircd-hybrid-8.2.37+dfsg.1/src/s_bsd_poll.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/s_bsd_poll.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 2000-2020 ircd-hybrid development team + * Copyright (c) 2000-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file s_bsd_poll.c * \brief POSIX poll() compatible network routines. - * \version $Id: s_bsd_poll.c 9102 2020-01-01 09:58:57Z michael $ + * \version $Id: s_bsd_poll.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/send.c ircd-hybrid-8.2.38+dfsg.1/src/send.c --- ircd-hybrid-8.2.37+dfsg.1/src/send.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/send.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file send.c * \brief Functions for sending messages. - * \version $Id: send.c 9835 2020-12-25 10:12:13Z michael $ + * \version $Id: send.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/server.c ircd-hybrid-8.2.38+dfsg.1/src/server.c --- ircd-hybrid-8.2.37+dfsg.1/src/server.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/server.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file server.c * \brief Server related functions. - * \version $Id: server.c 9683 2020-10-28 18:56:24Z michael $ + * \version $Id: server.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" @@ -482,13 +482,12 @@ /* Next, send the initial handshake */ SetHandshake(client); - sendto_one(client, "PASS %s TS %u %s", conf->spasswd, TS_CURRENT, me.id); + sendto_one(client, "PASS %s", conf->spasswd); sendto_one(client, "CAPAB :%s", capab_get(NULL)); - sendto_one(client, "SERVER %s 1 :%s%s", - me.name, ConfigServerHide.hidden ? "(H) " : "", - me.info); + sendto_one(client, "SERVER %s 1 %s +%s :%s", + me.name, me.id, ConfigServerHide.hidden ? "h" : "", me.info); /* If we get here, we're ok, so lets start reading some data */ read_packet(client->connection->fd, client); @@ -627,12 +626,12 @@ /* Next, send the initial handshake */ SetHandshake(client); - sendto_one(client, "PASS %s TS %u %s", conf->spasswd, TS_CURRENT, me.id); + sendto_one(client, "PASS %s", conf->spasswd); sendto_one(client, "CAPAB :%s", capab_get(NULL)); - sendto_one(client, "SERVER %s 1 :%s%s", me.name, - ConfigServerHide.hidden ? "(H) " : "", me.info); + sendto_one(client, "SERVER %s 1 %s +%s :%s", + me.name, me.id, ConfigServerHide.hidden ? "h" : "", me.info); /* If we get here, we're ok, so lets start reading some data */ read_packet(client->connection->fd, client); diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/server_capab.c ircd-hybrid-8.2.38+dfsg.1/src/server_capab.c --- ircd-hybrid-8.2.37+dfsg.1/src/server_capab.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/server_capab.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file server_capab.c * \brief Server CAPAB related functions. - * \version $Id: server_capab.c 9624 2020-09-11 14:37:24Z michael $ + * \version $Id: server_capab.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/tls_gnutls.c ircd-hybrid-8.2.38+dfsg.1/src/tls_gnutls.c --- ircd-hybrid-8.2.37+dfsg.1/src/tls_gnutls.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/tls_gnutls.c 2021-01-17 11:18:40.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_gnutls.c * \brief Includes all GnuTLS-specific TLS functions - * \version $Id: tls_gnutls.c 9592 2020-08-29 14:56:24Z michael $ + * \version $Id: tls_gnutls.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/tls_none.c ircd-hybrid-8.2.38+dfsg.1/src/tls_none.c --- ircd-hybrid-8.2.37+dfsg.1/src/tls_none.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/tls_none.c 2021-01-17 11:18:40.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2015-2020 ircd-hybrid development team + * Copyright (c) 2015-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_none.c * \brief Dummy file for no TLS support - * \version $Id: tls_none.c 9223 2020-01-26 11:35:22Z michael $ + * \version $Id: tls_none.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/tls_openssl.c ircd-hybrid-8.2.38+dfsg.1/src/tls_openssl.c --- ircd-hybrid-8.2.37+dfsg.1/src/tls_openssl.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/tls_openssl.c 2021-01-17 11:18:40.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_openssl.c * \brief Includes all OpenSSL-specific TLS functions - * \version $Id: tls_openssl.c 9528 2020-07-12 12:49:19Z michael $ + * \version $Id: tls_openssl.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/tls_wolfssl.c ircd-hybrid-8.2.38+dfsg.1/src/tls_wolfssl.c --- ircd-hybrid-8.2.37+dfsg.1/src/tls_wolfssl.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/tls_wolfssl.c 2021-01-17 11:18:40.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 2015 Attila Molnar * Copyright (c) 2015 Adam - * Copyright (c) 2005-2020 ircd-hybrid development team + * Copyright (c) 2005-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ /*! \file tls_wolfssl.c * \brief Includes all wolfSSL-specific TLS functions - * \version $Id: tls_wolfssl.c 9528 2020-07-12 12:49:19Z michael $ + * \version $Id: tls_wolfssl.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h" diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/user.c ircd-hybrid-8.2.38+dfsg.1/src/user.c --- ircd-hybrid-8.2.37+dfsg.1/src/user.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/user.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file user.c * \brief User related functions. - * \version $Id: user.c 9774 2020-12-03 15:50:11Z michael $ + * \version $Id: user.c 9897 2021-01-17 06:18:18Z michael $ */ #include "stdinc.h" @@ -51,7 +51,6 @@ #include "isupport.h" #include "tls.h" #include "patchlevel.h" -#include "server_capab.h" /* TBR: RHOST compatibility mode */ static char umode_buffer[UMODE_MAX_STR]; @@ -201,7 +200,6 @@ static void introduce_client(struct Client *client) { - dlink_node *node; char buf[UMODE_MAX_STR] = ""; send_umode(client, MyConnect(client), 0, buf); @@ -213,36 +211,14 @@ buf[1] = '\0'; } - DLINK_FOREACH(node, local_server_list.head) - { - struct Client *server = node->data; - - if (server == client->from) - continue; - - /* TBR: compatibility mode */ - if (IsCapable(server, CAPAB_RHOST)) - sendto_one(server, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", - client->servptr->id, - client->name, client->hopcount+1, - client->tsinfo, - buf, client->username, client->host, client->realhost, - client->sockhost, client->id, - client->account, - client->info); - else - sendto_one(server, ":%s UID %s %u %ju %s %s %s %s %s %s :%s", - client->servptr->id, - client->name, client->hopcount+1, - client->tsinfo, - buf, client->username, client->host, - client->sockhost, client->id, - client->account, - client->info); + sendto_server(client, 0, 0, ":%s UID %s %u %ju %s %s %s %s %s %s %s :%s", + client->servptr->id, client->name, client->hopcount + 1, + client->tsinfo, buf, client->username, client->host, + client->realhost, client->sockhost, client->id, + client->account, client->info); - if (!EmptyString(client->tls_certfp)) - sendto_one(server, ":%s CERTFP %s", client->id, client->tls_certfp); - } + if (!EmptyString(client->tls_certfp)) + sendto_server(client, 0, 0, ":%s CERTFP %s", client->id, client->tls_certfp); } /* user_welcome() @@ -564,19 +540,20 @@ if (local) { - unsigned int dots = 0; + unsigned int special = 0; - while (*++p) + while (*p) { - if (*p == '.' && ConfigGeneral.dots_in_ident) + if (*p == '-' || *p == '_' || *p == '.') { - if (++dots > ConfigGeneral.dots_in_ident) - return false; - if (!IsUserChar(*(p + 1))) + if (ConfigGeneral.specials_in_ident && + ConfigGeneral.specials_in_ident < ++special) return false; } - else if (!IsUserChar(*p)) + else if (!IsUser2Char(*p)) return false; + + ++p; } } else diff -Nru ircd-hybrid-8.2.37+dfsg.1/src/whowas.c ircd-hybrid-8.2.38+dfsg.1/src/whowas.c --- ircd-hybrid-8.2.37+dfsg.1/src/whowas.c 2020-12-26 11:57:06.000000000 +0000 +++ ircd-hybrid-8.2.38+dfsg.1/src/whowas.c 2021-01-17 11:18:40.000000000 +0000 @@ -1,7 +1,7 @@ /* * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) * - * Copyright (c) 1997-2020 ircd-hybrid development team + * Copyright (c) 1997-2021 ircd-hybrid development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /*! \file whowas.c * \brief WHOWAS user cache. - * \version $Id: whowas.c 9843 2020-12-25 13:51:05Z michael $ + * \version $Id: whowas.c 9858 2021-01-01 04:43:42Z michael $ */ #include "stdinc.h"