package Apache2::ConstantsTable;

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# ! WARNING: generated by Apache2::ParseSource/0.02
# !          Mon Jul  1 12:38:09 2013
# !          do NOT edit, any changes will be lost !
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

$Apache2::ConstantsTable = {
  'ModPerl' => {
    'common' => [
      'MODPERL_RC_EXIT'
    ]
  },
  'Apache2::Const' => {
    'types' => [
      'DIR_MAGIC_TYPE'
    ],
    'satisfy' => [
      'SATISFY_ALL',
      'SATISFY_ANY',
      'SATISFY_NOSPEC'
    ],
    'remotehost' => [
      'REMOTE_HOST',
      'REMOTE_NAME',
      'REMOTE_NOLOOKUP',
      'REMOTE_DOUBLE_REV'
    ],
    'proxy' => [
      'PROXYREQ_NONE',
      'PROXYREQ_PROXY',
      'PROXYREQ_REVERSE',
      'PROXYREQ_RESPONSE'
    ],
    'platform' => [
      'LF',
      'CR',
      'CRLF',
      'CRLF_ASCII'
    ],
    'override' => [
      'OR_NONE',
      'OR_LIMIT',
      'OR_OPTIONS',
      'OR_FILEINFO',
      'OR_AUTHCFG',
      'OR_INDEXES',
      'OR_UNSET',
      'ACCESS_CONF',
      'RSRC_CONF',
      'EXEC_ON_READ',
      'OR_ALL'
    ],
    'options' => [
      'OPT_NONE',
      'OPT_INDEXES',
      'OPT_INCLUDES',
      'OPT_SYM_LINKS',
      'OPT_EXECCGI',
      'OPT_UNSET',
      'OPT_INC_WITH_EXEC',
      'OPT_SYM_OWNER',
      'OPT_MULTI',
      'OPT_ALL'
    ],
    'mpmq' => [
      'AP_MPMQ_NOT_SUPPORTED',
      'AP_MPMQ_STATIC',
      'AP_MPMQ_DYNAMIC',
      'AP_MPMQ_STARTING',
      'AP_MPMQ_RUNNING',
      'AP_MPMQ_STOPPING',
      'AP_MPMQ_MAX_DAEMON_USED',
      'AP_MPMQ_IS_THREADED',
      'AP_MPMQ_IS_FORKED',
      'AP_MPMQ_HARD_LIMIT_DAEMONS',
      'AP_MPMQ_HARD_LIMIT_THREADS',
      'AP_MPMQ_MAX_THREADS',
      'AP_MPMQ_MIN_SPARE_DAEMONS',
      'AP_MPMQ_MIN_SPARE_THREADS',
      'AP_MPMQ_MAX_SPARE_DAEMONS',
      'AP_MPMQ_MAX_SPARE_THREADS',
      'AP_MPMQ_MAX_REQUESTS_DAEMON',
      'AP_MPMQ_MAX_DAEMONS',
      'AP_MPMQ_MPM_STATE',
      'AP_MPMQ_IS_ASYNC',
      'AP_MPMQ_GENERATION',
      'AP_MPMQ_HAS_SERF'
    ],
    'methods' => [
      'M_GET',
      'M_PUT',
      'M_POST',
      'M_DELETE',
      'M_CONNECT',
      'M_OPTIONS',
      'M_TRACE',
      'M_PATCH',
      'M_PROPFIND',
      'M_PROPPATCH',
      'M_MKCOL',
      'M_COPY',
      'M_MOVE',
      'M_LOCK',
      'M_UNLOCK',
      'M_VERSION_CONTROL',
      'M_CHECKOUT',
      'M_UNCHECKOUT',
      'M_CHECKIN',
      'M_UPDATE',
      'M_LABEL',
      'M_REPORT',
      'M_MKWORKSPACE',
      'M_MKACTIVITY',
      'M_BASELINE_CONTROL',
      'M_MERGE',
      'M_INVALID',
      'METHODS'
    ],
    'log' => [
      'APLOG_EMERG',
      'APLOG_ALERT',
      'APLOG_CRIT',
      'APLOG_ERR',
      'APLOG_WARNING',
      'APLOG_NOTICE',
      'APLOG_INFO',
      'APLOG_DEBUG',
      'APLOG_TRACE1',
      'APLOG_TRACE2',
      'APLOG_TRACE3',
      'APLOG_TRACE4',
      'APLOG_TRACE5',
      'APLOG_TRACE6',
      'APLOG_TRACE7',
      'APLOG_TRACE8',
      'APLOG_LEVELMASK',
      'APLOG_TOCLIENT',
      'APLOG_STARTUP',
      'APLOG_NO_MODULE',
      'APLOG_MODULE_INDEX'
    ],
    'input_mode' => [
      'AP_MODE_READBYTES',
      'AP_MODE_GETLINE',
      'AP_MODE_EATCRLF',
      'AP_MODE_SPECULATIVE',
      'AP_MODE_EXHAUSTIVE',
      'AP_MODE_INIT'
    ],
    'http' => [
      'HTTP_CONTINUE',
      'HTTP_SWITCHING_PROTOCOLS',
      'HTTP_PROCESSING',
      'HTTP_OK',
      'HTTP_CREATED',
      'HTTP_ACCEPTED',
      'HTTP_NON_AUTHORITATIVE',
      'HTTP_NO_CONTENT',
      'HTTP_RESET_CONTENT',
      'HTTP_PARTIAL_CONTENT',
      'HTTP_MULTI_STATUS',
      'HTTP_ALREADY_REPORTED',
      'HTTP_IM_USED',
      'HTTP_MULTIPLE_CHOICES',
      'HTTP_MOVED_PERMANENTLY',
      'HTTP_MOVED_TEMPORARILY',
      'HTTP_SEE_OTHER',
      'HTTP_NOT_MODIFIED',
      'HTTP_USE_PROXY',
      'HTTP_TEMPORARY_REDIRECT',
      'HTTP_PERMANENT_REDIRECT',
      'HTTP_BAD_REQUEST',
      'HTTP_UNAUTHORIZED',
      'HTTP_PAYMENT_REQUIRED',
      'HTTP_FORBIDDEN',
      'HTTP_NOT_FOUND',
      'HTTP_METHOD_NOT_ALLOWED',
      'HTTP_NOT_ACCEPTABLE',
      'HTTP_PROXY_AUTHENTICATION_REQUIRED',
      'HTTP_REQUEST_TIME_OUT',
      'HTTP_CONFLICT',
      'HTTP_GONE',
      'HTTP_LENGTH_REQUIRED',
      'HTTP_PRECONDITION_FAILED',
      'HTTP_REQUEST_ENTITY_TOO_LARGE',
      'HTTP_REQUEST_URI_TOO_LARGE',
      'HTTP_UNSUPPORTED_MEDIA_TYPE',
      'HTTP_RANGE_NOT_SATISFIABLE',
      'HTTP_EXPECTATION_FAILED',
      'HTTP_UNPROCESSABLE_ENTITY',
      'HTTP_LOCKED',
      'HTTP_FAILED_DEPENDENCY',
      'HTTP_UPGRADE_REQUIRED',
      'HTTP_PRECONDITION_REQUIRED',
      'HTTP_TOO_MANY_REQUESTS',
      'HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE',
      'HTTP_INTERNAL_SERVER_ERROR',
      'HTTP_NOT_IMPLEMENTED',
      'HTTP_BAD_GATEWAY',
      'HTTP_SERVICE_UNAVAILABLE',
      'HTTP_GATEWAY_TIME_OUT',
      'HTTP_VARIANT_ALSO_VARIES',
      'HTTP_INSUFFICIENT_STORAGE',
      'HTTP_LOOP_DETECTED',
      'HTTP_NOT_EXTENDED',
      'HTTP_NETWORK_AUTHENTICATION_REQUIRED'
    ],
    'filter_type' => [
      'AP_FTYPE_RESOURCE',
      'AP_FTYPE_CONTENT_SET',
      'AP_FTYPE_PROTOCOL',
      'AP_FTYPE_TRANSCODE',
      'AP_FTYPE_CONNECTION',
      'AP_FTYPE_NETWORK'
    ],
    'context' => [
      'NOT_IN_VIRTUALHOST',
      'NOT_IN_LIMIT',
      'NOT_IN_DIRECTORY',
      'NOT_IN_LOCATION',
      'NOT_IN_FILES',
      'NOT_IN_HTACCESS',
      'NOT_IN_DIR_LOC_FILE',
      'GLOBAL_ONLY'
    ],
    'conn_keepalive' => [
      'AP_CONN_UNKNOWN',
      'AP_CONN_CLOSE',
      'AP_CONN_KEEPALIVE'
    ],
    'config' => [
      'DECLINE_CMD'
    ],
    'common' => [
      'OK',
      'DECLINED',
      'DONE',
      'NOT_FOUND',
      'FORBIDDEN',
      'AUTH_REQUIRED',
      'SERVER_ERROR',
      'REDIRECT'
    ],
    'cmd_how' => [
      'RAW_ARGS',
      'TAKE1',
      'TAKE2',
      'ITERATE',
      'ITERATE2',
      'FLAG',
      'NO_ARGS',
      'TAKE12',
      'TAKE3',
      'TAKE23',
      'TAKE123',
      'TAKE13',
      'TAKE_ARGV'
    ],
    'authz_status' => [
      'AUTHZ_DENIED',
      'AUTHZ_GRANTED',
      'AUTHZ_NEUTRAL',
      'AUTHZ_GENERAL_ERROR',
      'AUTHZ_DENIED_NO_USER'
    ],
    'authn_status' => [
      'AUTH_DENIED',
      'AUTH_GRANTED',
      'AUTH_USER_FOUND',
      'AUTH_USER_NOT_FOUND',
      'AUTH_GENERAL_ERROR'
    ],
    'auth' => [
      'AUTHN_PROVIDER_GROUP',
      'AUTHZ_PROVIDER_GROUP',
      'AUTHN_PROVIDER_VERSION',
      'AUTHZ_PROVIDER_VERSION',
      'AUTHN_DEFAULT_PROVIDER',
      'AUTHN_PROVIDER_NAME_NOTE',
      'AUTHZ_PROVIDER_NAME_NOTE',
      'AUTHN_PREFIX',
      'AUTHZ_PREFIX',
      'AP_AUTH_INTERNAL_PER_URI',
      'AP_AUTH_INTERNAL_PER_CONF',
      'AP_AUTH_INTERNAL_MASK'
    ]
  },
  'APR::Const' => {
    'uri' => [
      'APR_URI_FTP_DEFAULT_PORT',
      'APR_URI_SSH_DEFAULT_PORT',
      'APR_URI_TELNET_DEFAULT_PORT',
      'APR_URI_GOPHER_DEFAULT_PORT',
      'APR_URI_HTTP_DEFAULT_PORT',
      'APR_URI_POP_DEFAULT_PORT',
      'APR_URI_NNTP_DEFAULT_PORT',
      'APR_URI_IMAP_DEFAULT_PORT',
      'APR_URI_PROSPERO_DEFAULT_PORT',
      'APR_URI_WAIS_DEFAULT_PORT',
      'APR_URI_LDAP_DEFAULT_PORT',
      'APR_URI_HTTPS_DEFAULT_PORT',
      'APR_URI_RTSP_DEFAULT_PORT',
      'APR_URI_SNEWS_DEFAULT_PORT',
      'APR_URI_ACAP_DEFAULT_PORT',
      'APR_URI_NFS_DEFAULT_PORT',
      'APR_URI_TIP_DEFAULT_PORT',
      'APR_URI_SIP_DEFAULT_PORT',
      'APR_URI_UNP_OMITSITEPART',
      'APR_URI_UNP_OMITUSER',
      'APR_URI_UNP_OMITPASSWORD',
      'APR_URI_UNP_OMITUSERINFO',
      'APR_URI_UNP_REVEALPASSWORD',
      'APR_URI_UNP_OMITPATHINFO',
      'APR_URI_UNP_OMITQUERY'
    ],
    'table' => [
      'APR_OVERLAP_TABLES_SET',
      'APR_OVERLAP_TABLES_MERGE'
    ],
    'status' => [
      'APR_TIMEUP'
    ],
    'socket' => [
      'APR_SO_LINGER',
      'APR_SO_KEEPALIVE',
      'APR_SO_DEBUG',
      'APR_SO_NONBLOCK',
      'APR_SO_REUSEADDR',
      'APR_SO_SNDBUF',
      'APR_SO_RCVBUF',
      'APR_SO_DISCONNECTED'
    ],
    'shutdown_how' => [
      'APR_SHUTDOWN_READ',
      'APR_SHUTDOWN_WRITE',
      'APR_SHUTDOWN_READWRITE'
    ],
    'read_type' => [
      'APR_BLOCK_READ',
      'APR_NONBLOCK_READ'
    ],
    'poll' => [
      'APR_POLLIN',
      'APR_POLLPRI',
      'APR_POLLOUT',
      'APR_POLLERR',
      'APR_POLLHUP',
      'APR_POLLNVAL',
      'APR_POLLSET_THREADSAFE',
      'APR_POLLSET_NOCOPY',
      'APR_POLLSET_WAKEABLE',
      'APR_POLLSET_NODEFAULT'
    ],
    'lockmech' => [
      'APR_LOCK_FCNTL',
      'APR_LOCK_FLOCK',
      'APR_LOCK_SYSVSEM',
      'APR_LOCK_PROC_PTHREAD',
      'APR_LOCK_POSIXSEM',
      'APR_LOCK_DEFAULT'
    ],
    'limit' => [
      'APR_LIMIT_CPU',
      'APR_LIMIT_MEM',
      'APR_LIMIT_NPROC',
      'APR_LIMIT_NOFILE'
    ],
    'hook' => [
      'APR_HOOK_REALLY_FIRST',
      'APR_HOOK_FIRST',
      'APR_HOOK_MIDDLE',
      'APR_HOOK_LAST',
      'APR_HOOK_REALLY_LAST'
    ],
    'fprot' => [
      'APR_FPROT_USETID',
      'APR_FPROT_UREAD',
      'APR_FPROT_UWRITE',
      'APR_FPROT_UEXECUTE',
      'APR_FPROT_GSETID',
      'APR_FPROT_GREAD',
      'APR_FPROT_GWRITE',
      'APR_FPROT_GEXECUTE',
      'APR_FPROT_WSTICKY',
      'APR_FPROT_WREAD',
      'APR_FPROT_WWRITE',
      'APR_FPROT_WEXECUTE',
      'APR_FPROT_OS_DEFAULT',
      'APR_FPROT_FILE_SOURCE_PERMS'
    ],
    'fopen' => [
      'APR_FOPEN_READ',
      'APR_FOPEN_WRITE',
      'APR_FOPEN_CREATE',
      'APR_FOPEN_APPEND',
      'APR_FOPEN_TRUNCATE',
      'APR_FOPEN_BINARY',
      'APR_FOPEN_EXCL',
      'APR_FOPEN_BUFFERED',
      'APR_FOPEN_DELONCLOSE',
      'APR_FOPEN_XTHREAD',
      'APR_FOPEN_SHARELOCK',
      'APR_FOPEN_NOCLEANUP',
      'APR_FOPEN_SENDFILE_ENABLED',
      'APR_FOPEN_LARGEFILE',
      'APR_FOPEN_SPARSE'
    ],
    'flock' => [
      'APR_FLOCK_SHARED',
      'APR_FLOCK_EXCLUSIVE',
      'APR_FLOCK_TYPEMASK',
      'APR_FLOCK_NONBLOCK'
    ],
    'finfo' => [
      'APR_FINFO_LINK',
      'APR_FINFO_MTIME',
      'APR_FINFO_CTIME',
      'APR_FINFO_ATIME',
      'APR_FINFO_SIZE',
      'APR_FINFO_CSIZE',
      'APR_FINFO_DEV',
      'APR_FINFO_INODE',
      'APR_FINFO_NLINK',
      'APR_FINFO_TYPE',
      'APR_FINFO_USER',
      'APR_FINFO_GROUP',
      'APR_FINFO_UPROT',
      'APR_FINFO_GPROT',
      'APR_FINFO_WPROT',
      'APR_FINFO_ICASE',
      'APR_FINFO_NAME',
      'APR_FINFO_MIN',
      'APR_FINFO_IDENT',
      'APR_FINFO_OWNER',
      'APR_FINFO_PROT',
      'APR_FINFO_NORM',
      'APR_FINFO_DIRENT'
    ],
    'filetype' => [
      'APR_FILETYPE_NOFILE',
      'APR_FILETYPE_REG',
      'APR_FILETYPE_DIR',
      'APR_FILETYPE_CHR',
      'APR_FILETYPE_BLK',
      'APR_FILETYPE_PIPE',
      'APR_FILETYPE_LNK',
      'APR_FILETYPE_SOCK',
      'APR_FILETYPE_UNKFILE'
    ],
    'filepath' => [
      'APR_FILEPATH_NOTABOVEROOT',
      'APR_FILEPATH_SECUREROOTTEST',
      'APR_FILEPATH_SECUREROOT',
      'APR_FILEPATH_NOTRELATIVE',
      'APR_FILEPATH_NOTABSOLUTE',
      'APR_FILEPATH_NATIVE',
      'APR_FILEPATH_TRUENAME',
      'APR_FILEPATH_ENCODING_UNKNOWN',
      'APR_FILEPATH_ENCODING_LOCALE',
      'APR_FILEPATH_ENCODING_UTF8'
    ],
    'error' => [
      'APR_ENOSTAT',
      'APR_ENOPOOL',
      'APR_EBADDATE',
      'APR_EINVALSOCK',
      'APR_ENOPROC',
      'APR_ENOTIME',
      'APR_ENODIR',
      'APR_ENOLOCK',
      'APR_ENOPOLL',
      'APR_ENOSOCKET',
      'APR_ENOTHREAD',
      'APR_ENOTHDKEY',
      'APR_EGENERAL',
      'APR_ENOSHMAVAIL',
      'APR_EBADIP',
      'APR_EBADMASK',
      'APR_EDSOOPEN',
      'APR_EABSOLUTE',
      'APR_ERELATIVE',
      'APR_EINCOMPLETE',
      'APR_EABOVEROOT',
      'APR_EBADPATH',
      'APR_EPATHWILD',
      'APR_ESYMNOTFOUND',
      'APR_EPROC_UNKNOWN',
      'APR_ENOTENOUGHENTROPY',
      'APR_EOF',
      'APR_EINIT',
      'APR_ENOTIMPL',
      'APR_EMISMATCH',
      'APR_EBUSY',
      'APR_EACCES',
      'APR_EEXIST',
      'APR_ENAMETOOLONG',
      'APR_ENOENT',
      'APR_ENOTDIR',
      'APR_ENOSPC',
      'APR_ENOMEM',
      'APR_EMFILE',
      'APR_ENFILE',
      'APR_EBADF',
      'APR_EINVAL',
      'APR_ESPIPE',
      'APR_EAGAIN',
      'APR_EINTR',
      'APR_ENOTSOCK',
      'APR_ECONNREFUSED',
      'APR_EINPROGRESS',
      'APR_ECONNABORTED',
      'APR_ECONNRESET',
      'APR_ETIMEDOUT',
      'APR_EHOSTUNREACH',
      'APR_ENETUNREACH',
      'APR_EFTYPE',
      'APR_EPIPE',
      'APR_EXDEV',
      'APR_ENOTEMPTY',
      'APR_EAFNOSUPPORT',
      'APR_EXCL',
      'APR_END',
      'APR_ENOKEY',
      'APR_ENOIV',
      'APR_EKEYTYPE',
      'APR_ENOSPACE',
      'APR_ECRYPT',
      'APR_EPADDING',
      'APR_EKEYLENGTH',
      'APR_ENOCIPHER',
      'APR_ENODIGEST',
      'APR_ENOENGINE',
      'APR_EINITENGINE',
      'APR_EREINIT'
    ],
    'common' => [
      'APR_SUCCESS'
    ]
  }
};


1;
