/* source: config.h.in */
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
/* Published under the GNU General Public License V.2, see file COPYING */

#ifndef __config_h_included
#define __config_h_included 1

/* Define to empty if the keyword does not work.  */
#undef const

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef gid_t

/* Define if your struct stat has st_blksize.  */
#undef HAVE_ST_BLKSIZE

/* Define if your struct stat has st_blocks.  */
#undef HAVE_ST_BLOCKS

/* Define if your struct stat has st_rdev.  */
#undef HAVE_ST_RDEV

/* Define if you have the strftime function.  */
#undef HAVE_STRFTIME

/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
#undef HAVE_SYS_WAIT_H

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef mode_t

/* Define to `long' if <sys/types.h> doesn't define.  */
#undef off_t

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef pid_t

/* Define as the return type of signal handlers (int or void).  */
#undef RETSIGTYPE

/* Define to `unsigned' if <sys/types.h> doesn't define.  */
#undef size_t

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* Define if you can safely include both <sys/time.h> and <time.h>.  */
#undef TIME_WITH_SYS_TIME

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef uid_t

/* Define if you have the putenv function.  */
#undef HAVE_PUTENV

/* Define if your cc provides char **environ declaration.
   This implies HAVE_VAR_ENVIRON */
#undef HAVE_DECL_ENVIRON

/* Define if you have the char **environ variable */
#undef HAVE_VAR_ENVIRON

/* Define if you have the select function.  */
#undef HAVE_SELECT

/* Define if you have the pselect function.  */
#undef HAVE_PSELECT

/* Define if you have the poll function.  */
#undef HAVE_POLL

/* Define if you have the socket function.  */
#undef HAVE_SOCKET

/* Define if you have the posix_memalign function.  */
#undef HAVE_PROTOTYPE_LIB_posix_memalign

/* Define if you have the strdup function.  */
#undef HAVE_PROTOTYPE_LIB_strdup

/* Define if you have the strerror function.  */
#undef HAVE_PROTOTYPE_LIB_strerror

/* Define if you have the strstr function.  */
#undef HAVE_PROTOTYPE_LIB_strstr

/* Define if you have the strtod function.  */
#undef HAVE_STRTOD

/* Define if you have the strtol function.  */
#undef HAVE_STRTOL

/* Define if you have the strtoul function.  */
#undef HAVE_STRTOUL

/* Define if you have the uname function.  */
#undef HAVE_UNAME

/* Define if you have the getpgid function.  */
#undef HAVE_GETPGID

/* Define if you have the getsid function.  */
#undef HAVE_GETSID

/* Define if you have the nanosleep function.  */
#undef HAVE_NANOSLEEP

/* Define if you have the gethostbyname function.  */
#undef HAVE_GETHOSTBYNAME

/* Define if you have the getaddrinfo function.  */
#undef HAVE_GETADDRINFO

/* Define if you have the getipnodebyname function.  */
#undef HAVE_PROTOTYPE_LIB_getipnodebyname

/* Define if you have the getprotobynumber_r function. */
#undef HAVE_GETPROTOBYNUMBER_R

/* Define if you have the getprotobynumber function. */
#undef HAVE_GETPROTOBYNUMBER

/* Define if you have the setgroups function. */
#undef HAVE_SETGROUPS

/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON

/* Define if you have the strndup function. */
#undef HAVE_PROTOTYPE_LIB_strndup

/* Define if you have the memrchr function. */
#undef HAVE_PROTOTYPE_LIB_memrchr

/* Define if you have the if_indextoname function. */
#undef HAVE_PROTOTYPE_LIB_if_indextoname

/* Define if you have the sigaction function */
#undef HAVE_SIGACTION

/* Define if you have the stat64 function */
#undef HAVE_STAT64

/* Define if you have the fstat64 function */
#undef HAVE_FSTAT64

/* Define if you have the lstat64 function */
#undef HAVE_LSTAT64

/* Define if you have the lseek64 function */
#undef HAVE_LSEEK64

/* Define if you have the truncate64 function */
#undef HAVE_TRUNCATE64

/* Define if you have the ftruncate64 function */
#undef HAVE_FTRUNCATE64

/* Define if you have the gettimeofday function */
#undef HAVE_PROTOTYPE_LIB_gettimeofday

/* Define if you have the clock_gettime function */
#undef HAVE_CLOCK_GETTIME

/* Define if you have the strtoll function */
#undef HAVE_STRTOLL

/* Define if you have the hstrerror function */
#undef HAVE_HSTRERROR

/* Define if you have the inet_ntop function */
#undef HAVE_INET_NTOP

/* Define if you have the hstrerror prototype */
#undef HAVE_PROTOTYPE_HSTRERROR

/* Define if you have the <stdbool.h> header file.  */
#undef HAVE_STDBOOL_H

/* Define if you have the <inttypes.h> header file.  */
#undef HAVE_INTTYPES_H

/* Define if you have the <fcntl.h> header file.  */
#undef HAVE_FCNTL_H

/* Define if you have the <limits.h> header file.  */
#undef HAVE_LIMITS_H

/* Define if you have the <strings.h> header file.  */
#undef HAVE_STRINGS_H

/* Define if you have the <sys/param.h> header file.  */
#undef HAVE_SYS_PARAM_H

/* Define if you have the <sys/ioctl.h> header file.  */
#undef HAVE_SYS_IOCTL_H

/* Define if you have the <sys/time.h> header file.  */
#undef HAVE_SYS_TIME_H

/* Define if you have the <syslog.h> header file.  */
#undef HAVE_SYSLOG_H

/* Define if you have the <unistd.h> header file.  */
#undef HAVE_UNISTD_H

/* Define if you have the <pwd.h> header file.  */
#undef HAVE_PWD_H

/* Define if you have the <grp.h> header file.  */
#undef HAVE_GRP_H

/* Define if you have the <stdint.h> header file.  */
#undef HAVE_STDINT_H

/* Define if you have the <sys/types.h> header file.  */
#undef HAVE_SYS_TYPES_H

/* Define if you have the <poll.h> header file.  */
#undef HAVE_POLL_H

/* Define if you have the <sys/poll.h> header file.  */
#undef HAVE_SYS_POLL_H

/* Define if you have the <sys/socket.h> header file.  */
#undef HAVE_SYS_SOCKET_H

/* Define if you have the <sys/uio.h> header file.  */
#undef HAVE_SYS_UIO_H

/* Define if you have the <sys/stat.h> header file.  */
#undef HAVE_SYS_STAT_H

/* Define if you have the <netdb.h> header file.  */
#undef HAVE_NETDB_H

/* Define if you have the <sys/un.h> header file.  */
#undef HAVE_SYS_UN_H

/* Define if you have the <pty.h> header file.  */
#undef HAVE_PTY_H

/* Define if you have the <netinet/in.h> header file.  */
#undef HAVE_NETINET_IN_H

/* Define if you have the <netinet/in_systm.h> header file.  */
#undef HAVE_NETINET_IN_SYSTM_H

/* Define if you have the <netinet/ip.h> header file.  */
#undef HAVE_NETINET_IP_H

/* Define if you have the <netinet/tcp.h> header file.  */
#undef HAVE_NETINET_TCP_H

/* Define if you have the <netinet/ip6.h> header file.  */
#undef HAVE_NETINET_IP6_H

/* Define if you have the <netinet6/in6.h> header file.  */
#undef HAVE_NETINET6_IN6_H

/* Define if you have the <arpa/nameser.h> header file.  */
#undef HAVE_ARPA_NAMESER_H

/* Define if you have the <resolv.h> header file.  */
#undef HAVE_RESOLV_H

/* Define if you have the <termios.h> header file.  */
#undef HAVE_TERMIOS_H

/* Define if you have the <net/if.h> header file.  */
#undef HAVE_NET_IF_H

/* Define if you have the <net/if_dl.h> header file.  */
#undef HAVE_NET_IF_DL_H

/* Define if you have the <linux/types.h> header file.  */
#undef HAVE_LINUX_TYPES_H

/* Define if you have the <linux/errqueue.h> header file.  */
#undef HAVE_LINUX_ERRQUEUE_H

/* Define if you have the <linux/if_tun.h> header file.  */
#undef HAVE_LINUX_IF_TUN_H

/* Define if you have the <linux/dccp.h> header file.  */
#undef HAVE_LINUX_DCCP_H

/* Define if you have the <linux/vm_sockets.h> header file.  */
#undef HAVE_LINUX_VM_SOCKETS_H

/* Define if you have the <sched.h> header file.  */
#undef HAVE_SCHED_H

/* Define if you have the <linux/if_packet.h> header file.  */
#undef HAVE_LINUX_IF_PACKET_H

/* Define if you have the <netinet/if_ether.h> header file.  */
#undef HAVE_NETINET_IF_ETHER_H

/* Define if you have the <sys/utsname.h> header file.  */
#undef HAVE_SYS_UTSNAME_H

/* Define if you have the <sys/select.h> header file. (AIX) */
#undef HAVE_SYS_SELECT_H

/* Define if you have the <sys/file.h> header file. (AIX) */
#undef HAVE_SYS_FILE_H

/* Define if you have the <util.h> header file. (NetBSD, OpenBSD: openpty()) */
#undef HAVE_UTIL_H

/* Define if you have the <bsd/libutil.h> header file. */
#undef HAVE_BSD_LIBUTIL_H

/* Define if you have the <libutil.h> header file. (FreeBSD: openpty()) */
#undef HAVE_LIBUTIL_H

/* Define if you have the <sys/stropts.h> header file. (stream opts on SunOS)*/
#undef HAVE_SYS_STROPTS_H

/* Define if you have the <regex.h> header file. */
#undef HAVE_REGEX_H

/* Define if you have the <linux/fs.h> header file. */
#undef HAVE_LINUX_FS_H

/* Define if you have the <linux/ext2_fs.h> header file. */
#undef HAVE_LINUX_EXT2_FS_H

/* Define if you have the <readline/readline.h> header file. */
#undef HAVE_READLINE_READLINE_H

/* Define if you have the <readline/history.h> header file. */
#undef HAVE_READLINE_HISTORY_H

/* Define if you have the readline library. */
#undef HAVE_LIBREADLINE

/* Define if you have the m library (-lm).  */
#undef HAVE_LIBM

/* Define if you have the floor function */
#undef HAVE_FLOOR

/* some platforms need _XOPEN_EXTENDED_SOURCE to get syslog headers (AIX4.1) */
#undef _XOPEN_EXTENDED_SOURCE

/* fdset may have component fds_bits or __fds_bits */
#undef HAVE_FDS_BITS

/* struct termios may have components c_ispeed,c_ospeed */
#undef HAVE_STRUCT_TERMIOS_C_ISPEED
#undef HAVE_STRUCT_TERMIOS_C_OSPEED

/* Define if you have the sa_family_t */
#undef HAVE_TYPE_SA_FAMILY_T

/* define if your struct sigaction has sa_sigaction */
#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION

/* define if you have struct sock_extended_err */
#undef HAVE_STRUCT_SOCK_EXTENDED_ERR

/* Define if your termios.h likes _SVID3 defined */
#undef _SVID3

/* Define if your sys/socket.h likes _XPG4_2 defined */
#undef _XPG4_2

/* Define if your ctime_r() choices need _POSIX_PTHREAD_SEMANTICS */
#undef _POSIX_PTHREAD_SEMANTICS

/* Define if you need __EXTENSIONS__ */
#undef __EXTENSIONS__

/* Define if you have struct timespec (e.g. for nanosleep) */
#undef HAVE_STRUCT_TIMESPEC

/* Define if you have struct linger */
#undef HAVE_STRUCT_LINGER

/* Define if you have struct ip */
#undef HAVE_STRUCT_IP

/* Define if you have struct ip_mreq */
#undef HAVE_STRUCT_IP_MREQ

/* Define if you have struct ip_mreqn */
#undef HAVE_STRUCT_IP_MREQN

/* Define if you have struct ipv6_mreq */
#undef HAVE_STRUCT_IPV6_MREQ

/* Define if you have struct ip_mreq_source */
#undef HAVE_STRUCT_IP_MREQ_SOURCE

/* Define if you have struct group_source_req */
#undef HAVE_STRUCT_GROUP_SOURCE_REQ

/* Define if you have struct ifreq */
#undef HAVE_STRUCT_IFREQ

/* Define if you have struct ifreq.ifr_index */
#undef HAVE_STRUCT_IFREQ_IFR_INDEX

/* Define if you have struct ifreq.ifr_ifindex; not on HPUX */
#undef HAVE_STRUCT_IFREQ_IFR_IFINDEX

/* Define if your struct sockaddr has sa_len */
#undef HAVE_STRUCT_SOCKADDR_SALEN

/* there are several implementations of sockaddr_in6 */
#undef HAVE_IP6_SOCKADDR

/* Define if you have struct iovec */
#undef HAVE_STRUCT_IOVEC

/* define if your struct msghdr has msg_control */
#undef HAVE_STRUCT_MSGHDR_MSGCONTROL

/* define if your struct msghdr has msg_controllen */
#undef HAVE_STRUCT_MSGHDR_MSGCONTROLLEN

/* define if your struct msghdr has msg_flag */
#undef HAVE_STRUCT_MSGHDR_MSGFLAGS

/* define if you have struct cmsghdr */
#undef HAVE_STRUCT_CMSGHDR

/* define if you have struct in_pktinfo */
#undef HAVE_STRUCT_IN_PKTINFO

/* define if your struct in_pktinfo has component ipi_spec_dst */
#undef HAVE_PKTINFO_IPI_SPEC_DST

/* define if you have struct in6_pktinfo */
#undef HAVE_STRUCT_IN6_PKTINFO

/* define if you have struct tpacket_auxdata */
#undef HAVE_STRUCT_TPACKET_AUXDATA

/* define if you have struct tpacket_auxdata and it has tp_vlan_tpid */
#undef HAVE_STRUCT_TPACKET_AUXDATA_TP_VLAN_TPID

/* define if your struct ip has ip_hl; otherwise assume ip_vhl */
#undef HAVE_STRUCT_IP_IP_HL

/* Define if you have the setns function */
#undef HAVE_SETNS

/* Define if you have the setenv function */
#undef HAVE_SETENV

/* Define if you have the unsetenv function. not on HP-UX */
#undef HAVE_UNSETENV

/* Define if you have the cfsetispeed,cfgetispeed,cfsetspeed,cfgetospeed function */
#undef HAVE_CFSETISPEED
#undef HAVE_CFSETOSPEED

#if HAVE_CFSETISPEED
#  define HAVE_TERMIOS_ISPEED 1
#endif
#if HAVE_CFSETOSPEED
#  define HAVE_TERMIOS_OSPEED 1
#endif
#if defined(HAVE_TERMIOS_ISPEED) && defined(HAVE_TERMIOS_OSPEED)
#  define HAVE_TERMIOS_SPEED 1
#endif

/* Define if you have the OPENSSL_init_ssl function */
#undef HAVE_OPENSSL_INIT_SSL

/* Define if you have the OPENSSL_INIT_SETTINGS type (guarded for OpenBSD) */
#undef HAVE_OPENSSL_INIT_SETTINGS

/* Define if you have the SSL_library_init function */
#undef HAVE_SSL_library_init

/* Define if you have the OPENSSL_INIT_new function */
#undef HAVE_OPENSSL_INIT_new

/* Define if you have the SSLv2 client and server method functions. not in new openssl */
#undef HAVE_SSLv2_client_method
#undef HAVE_SSLv2_server_method

/* Define if you have the HAVE_SSL_CTX_set_default_verify_paths function */
#undef HAVE_SSL_CTX_set_default_verify_paths

/* Define if you have the TLS client and server method functions. not in old openssl? */
#undef HAVE_TLS_client_method
#undef HAVE_TLS_server_method

/* Define if you have the SSLv3 client and server method functions. not in new openssl */
#undef HAVE_SSLv3_client_method
#undef HAVE_SSLv3_server_method

/* Define if you have the SSLv3 client and server method functions with rollback to v2 */
#undef HAVE_SSLv23_client_method
#undef HAVE_SSLv23_server_method

/* Define if you have the TLSv1.0 client and server method functions */
#undef HAVE_TLSv1_client_method
#undef HAVE_TLSv1_server_method

/* Define if you have the TLSv1.1 client and server method functions */
#undef HAVE_TLSv1_1_client_method
#undef HAVE_TLSv1_1_server_method

/* Define if you have the TLSv1.2 client and server method functions */
#undef HAVE_TLSv1_2_client_method
#undef HAVE_TLSv1_2_server_method

/* Define if you have the DTLS client and server method functions */
#undef HAVE_DTLS_client_method
#undef HAVE_DTLS_server_method

/* Define if you have the DTLSv1 client and server method functions */
#undef HAVE_DTLSv1_client_method
#undef HAVE_DTLSv1_server_method

/* Define if you have the SSL CTX_set_min_proto_version function/macro */
#undef HAVE_SSL_CTX_set_min_proto_version

/* Define if you have the SSL_CTX_set_max_proto_version function/macro */
#undef HAVE_SSL_CTX_set_max_proto_version

/* Define if you have the DTLSv1_2 client and server method functions */
#undef HAVE_DTLSv1_2_client_method
#undef HAVE_DTLSv1_2_server_method

/* Define if you have the EC_KEY type */
#undef HAVE_TYPE_EC_KEY

/* Define if you have the OpenSSL RAND_egd function */
#undef HAVE_RAND_egd

/* Define if you have the OpenSSL RAND_status function */
#undef HAVE_RAND_status

/* Define if you have the OpenSSL DH_set0_pqg function */
#undef HAVE_DH_set0_pqg

/* Define if you have the OpenSSL ASN1_STRING_get0_data function */
#undef HAVE_ASN1_STRING_get0_data

/* Define if you have the OpenSSL SSL_CTX_clear_mode macro or function */
#undef HAVE_SSL_CTX_clear_mode

/* Define if you have the OpenSSL SSL_set_tlsext_host_name define/function */
#undef HAVE_SSL_set_tlsext_host_name

/* Define if you have the OpenSSL SSL_CTX_set_tlsext_max_fragment_length define/function */
#undef HAVE_SSL_CTX_set_tlsext_max_fragment_length

/* Define if you have the OpenSSL SSL_CTX_set_max_send_fragment define/function */
#undef HAVE_SSL_CTX_set_max_send_fragment

/* Define if you have the flock function */
#undef HAVE_FLOCK

/* Define if you have the openpty function */
#undef HAVE_OPENPTY

/* Define if you have the grantpt function */
#undef HAVE_GRANTPT

/* Define if you have the unlockpt function */
#undef HAVE_UNLOCKPT

/* Define if you have the ptsname function */
#undef HAVE_PROTOTYPE_LIB_ptsname

/* Define if you have the /dev/ptmx pseudo terminal multiplexer */
#undef HAVE_DEV_PTMX

/* Define if you have the /dev/ptc pseudo terminal multiplexer */
#undef HAVE_DEV_PTC

/* Define if you have the cfmakeraw() function */
#undef HAVE_CFMAKERAW

/* Define if you have the long long type */
#undef HAVE_TYPE_LONGLONG

/* is sig_atomic_t declared */
#undef HAVE_TYPE_SIG_ATOMIC_T

/* is bool already typedef'd? */
#undef HAVE_TYPE_BOOL

/* is socklen_t already typedef'd? */
#undef HAVE_TYPE_SOCKLEN

/* Define if you have the struct stat64 type */
#undef HAVE_TYPE_STAT64

/* Define if you have the struct off64_t type */
#undef HAVE_TYPE_OFF64

/* is sighandler_t already typedef'd? */
#undef HAVE_TYPE_SIGHANDLER

/* is uint8_t already defined? */
#undef HAVE_TYPE_UINT8

/* is uint16_t already defined? */
#undef HAVE_TYPE_UINT16

/* is uint32_t already defined? */
#undef HAVE_TYPE_UINT32

/* is uint64_t already defined? */
#undef HAVE_TYPE_UINT64

/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS

/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

/* Define if snprintf() returns required len on truncation (C-99 conform) */
#undef HAVE_C99_SNPRINTF

/* Define if you have the printf "Z" modifier */
#undef HAVE_FORMAT_Z

/* Define the shift offset of the CRDLY mask */
#undef CRDLY_SHIFT

/* Define the shift offset of the TABDLY mask */
#undef TABDLY_SHIFT

/* Define the shift offset of the CSIZE mask */
#undef CSIZE_SHIFT

/* Define if you have tcpwrappers (libwrap, tcpd) and it declares hosts_allow_table */
#undef HAVE_HOSTS_ALLOW_TABLE
#if defined(HAVE_HOSTS_ALLOW_TABLE) && HAVE_HOSTS_ALLOW_TABLE
#   define HAVE_HOSTS_DENY_TABLE 1
#else
#   undef HAVE_HOSTS_DENY_TABLE
#endif

/* 1..short, 3..int, 5..long; 2,4,6..unsigned */
#undef HAVE_BASIC_UINT16_T
#undef HAVE_BASIC_UINT32_T
#undef HAVE_BASIC_UINT64_T
#undef HAVE_BASIC_INT16_T
#undef HAVE_BASIC_INT32_T
#undef HAVE_BASIC_INT64_T

#undef HAVE_BASIC_SIZE_T
#undef HAVE_BASIC_MODE_T
#undef HAVE_BASIC_PID_T
#undef HAVE_BASIC_UID_T
#undef HAVE_BASIC_GID_T
#undef HAVE_BASIC_TIME_T
#undef HAVE_BASIC_OFF_T
#undef HAVE_BASIC_OFF64_T
#undef HAVE_BASIC_DEV_T
#undef HAVE_BASIC_SPEED_T

#undef HAVE_BASIC_SOCKLEN_T

#undef HAVE_TYPEOF_ST_INO
#undef HAVE_TYPEOF_ST_NLINK
#undef HAVE_TYPEOF_ST_SIZE
#undef HAVE_TYPEOF_ST_BLKSIZE
#undef HAVE_TYPEOF_ST_BLOCKS

#undef HAVE_TYPEOF_ST64_DEV
#undef HAVE_TYPEOF_ST64_INO
#undef HAVE_TYPEOF_ST64_NLINK
#undef HAVE_TYPEOF_ST64_SIZE
#undef HAVE_TYPEOF_ST64_BLKSIZE
#undef HAVE_TYPEOF_ST64_BLOCKS

#undef HAVE_TYPEOF_STRUCT_TIMEVAL_TV_USEC
#undef HAVE_TYPEOF_STRUCT_TIMESPEC_TV_NSEC

#undef HAVE_TYPEOF_RLIM_MAX

#undef HAVE_TYPEOF_STRUCT_CMSGHDR_CMSG_LEN

/* Define if you have the /proc filesystem */
#undef HAVE_PROC_DIR

/* Define if you have the /proc/$$/fd directories */
#undef HAVE_PROC_DIR_FD
#undef HAVE_PROC_DIR_PATH

#undef HAVE_DIRENT_D_TYPE

#undef HAVE_RES_RETRANS
#undef HAVE_RES_RETRY
#undef HAVE_RES_NSADDR_LIST

#undef HAVE_SETGRENT
#undef HAVE_GETGRENT
#undef HAVE_ENDGRENT
#undef HAVE_GETGROUPLIST

#undef WITH_HELP
#undef WITH_STATS
#undef WITH_STDIO
#undef WITH_FDNUM
#undef WITH_FILE
#undef WITH_CREAT
#undef WITH_GOPEN
#undef WITH_TERMIOS
#undef WITH_PIPE
#undef WITH_SOCKETPAIR
#undef WITH_UNIX
#undef WITH_ABSTRACT_UNIXSOCKET
#undef WITH_IP4
#undef WITH_IP6
#undef WITH_RAWIP
#undef WITH_GENERICSOCKET
#undef WITH_INTERFACE
#undef WITH_TCP
#undef WITH_UDP
#undef WITH_UDPLITE
#undef WITH_SCTP
#undef WITH_DCCP
#undef WITH_LISTEN
#undef WITH_POSIXMQ
#undef WITH_SOCKS4
#undef WITH_SOCKS4A
#undef WITH_SOCKS5
#undef WITH_VSOCK
#undef WITH_NAMESPACES
#undef WITH_PROXY
#undef WITH_EXEC
#undef WITH_SYSTEM
#undef WITH_SHELL
#undef WITH_READLINE
#undef WITH_TUN
#undef WITH_PTY
#undef WITH_FS
#undef WITH_OPENSSL
#undef WITH_OPENSSL_METHOD
#undef WITH_RESOLVE
#undef WITH_RES_DEPRECATED 	/* AAONLY,PRIMARY */
#define WITH_STREAMS 1
#undef WITH_FIPS
#undef OPENSSL_FIPS
#undef WITH_LIBWRAP
#undef HAVE_TCPD_H
#undef HAVE_LIBWRAP

#undef WITH_SYCLS
#undef WITH_FILAN
#undef WITH_RETRY

#undef WITH_MSGLEVEL

#undef WITH_DEFAULT_IPV 	/* default IP version: "0", "4", "6" */

#define BUILD_DATE __DATE__ " " __TIME__

#endif /* !defined(__config_h_included) */
