+# Copyright (C) Igor Sysoev
+
+
CFLAGS="$CFLAGS $CC_OPT"
case $CC in
# optimize for Pentium 4, gcc 3.x
CPU_OPT="-march=pentium4"
;;
+
+ sparc64)
+ # build 64-bit binary, sparcv9 only
+ CPU_OPT="-m64"
+ ;;
+
esac
# STUB for batch builds
#!/bin/sh
+# Copyright (C) Igor Sysoev
+
+
. auto/options
. auto/init
. auto/sources
have=NGX_SBIN_PATH value="\"$SBIN_PATH\"" . auto/define
have=NGX_CONF_PATH value="\"$CONF_PATH\"" . auto/define
have=NGX_PID_PATH value="\"$PID_PATH\"" . auto/define
-have=NGX_ERROR_LOG_PATH value="\"$ERROR_LOG_PATH\"" . auto/define
+if [ ".$NGX_ERROR_LOG_PATH" != "." ]; then
+ have=NGX_ERROR_LOG_PATH value="\"$ERROR_LOG_PATH\"" . auto/define
+fi
have=NGX_HTTP_LOG_PATH value="\"$HTTP_LOG_PATH\"" . auto/define
. auto/summary
+# Copyright (C) Igor Sysoev
+
+
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for system endianess ..." $ngx_c
echo >> $NGX_ERR
echo "checking for system endianess" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_feature ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_feature" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_type printf() format ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_type printf() format" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_type printf() format ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_type printf() format" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
cat << END | sed -e 's/d"$/x"/' >> $NGX_AUTO_CONFIG_H
#ifndef $ngx_fmt_name
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_func ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_func" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
+# Copyright (C) Igor Sysoev
+
+
ngx_inc="unistd.h"; . auto/inc
ngx_inc="inttypes.h"; . auto/inc
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_inc ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_inc" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
MAKEFILE=$OBJS/Makefile
NGX_AUTO_CONFIG_H=$OBJS/ngx_auto_config.h
+# Copyright (C) Igor Sysoev
+
+
cat << END >> $MAKEFILE
install:
test -d $PREFIX || mkdir -p $PREFIX
cp conf/nginx.conf `dirname $CONF_PATH`/nginx.conf.default
test -d `dirname $PID_PATH` || mkdir -p `dirname $PID_PATH`
- test -d `dirname $ERROR_LOG_PATH` || mkdir -p `dirname $ERROR_LOG_PATH`
+
test -d `dirname $HTTP_LOG_PATH` || mkdir -p `dirname $HTTP_LOG_PATH`
test -d $PREFIX/html || cp -r html $PREFIX
END
+if [ ".$ERROR_LOG_PATH" != "." ]; then
+ cat << END >> $MAKEFILE
+
+ test -d `dirname $ERROR_LOG_PATH` || mkdir -p `dirname $ERROR_LOG_PATH`
+END
+
+fi
+
+
if test ! -f Makefile; then
cat << END > Makefile
+# Copyright (C) Igor Sysoev
+
+
if [ $USE_PCRE = YES ]; then
. auto/lib/pcre/conf
fi
+# Copyright (C) Igor Sysoev
+
+
if [ $PCRE != NONE -a $PCRE != NO -a $PCRE != YES ]; then
. auto/lib/pcre/make
fi
+# Copyright (C) Igor Sysoev
+
+
if [ $MD5 != NONE ]; then
if grep MD5_Init $MD5/md5.h >/dev/null; then
+# Copyright (C) Igor Sysoev
+
+
case "$CC" in
cl)
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -q -O2 -tWM $(CPU_OPT) -DL_ENDIAN
!if "$(MD5_ASM)" == "YES"
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -nologo -MT -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN
!if "$(MD5_ASM)" == "YES"
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -zq -bt=nt -bm -ot -op -oi -oe -s $(CPU_OPT)
md5.lib:
+# Copyright (C) Igor Sysoev
+
+
if [ $OPENSSL != NONE ]; then
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
+# Copyright (C) Igor Sysoev
+
+
case $PLATFORM in
*)
echo "$OPENSSL/libssl.a:" >> $MAKEFILE
+# Copyright (C) Igor Sysoev
+
+
if [ $PCRE != NONE ]; then
CORE_INCS="$CORE_INCS $PCRE"
CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
+# Copyright (C) Igor Sysoev
+
+
case "$CC" in
cl)
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -q -O2 -tWM $(CPU_OPT)
PCREFLAGS = -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
PCREFLAGS = -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
PCREFLAGS = -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_lib ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_lib library" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
if [ $ZLIB != NONE ]; then
CORE_INCS="$CORE_INCS $ZLIB"
+# Copyright (C) Igor Sysoev
+
+
case "$CC" in
cl)
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -q -O2 -tWM $(CPU_OPT)
zlib.lib:
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
zlib.lib:
+# Copyright (C) Igor Sysoev
+
+
CFLAGS = -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT)
zlib.lib:
+# Copyright (C) Igor Sysoev
+
+
mkdir -p $OBJS/src/core $OBJS/src/event $OBJS/src/event/modules \
$OBJS/src/os/unix $OBJS/src/os/win32 \
$OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy \
+# Copyright (C) Igor Sysoev
+
+
if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
EVENT_SELECT=YES
fi
+# Copyright (C) Igor Sysoev
+
+
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $have
+# Copyright (C) Igor Sysoev
+
help=no
PREFIX=
ERROR_LOG_PATH=$PREFIX/logs/error.log
;;
+ .stderr)
+ ERROR_LOG_PATH=
+ ;;
+
*)
ERROR_LOG_PATH=$PREFIX/$ERROR_LOG_PATH
;;
+# Copyright (C) Igor Sysoev
+
+
if [ ".$PLATFORM" = "." ]; then
echo "checking for OS"
+# Copyright (C) Igor Sysoev
+
+
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
echo " + using rfork()"
- # kqueue's EVFILT_SIGNAL is safe
-
- if [ $version -gt 460101 ]; then
- echo " + kqueue's EVFILT_SIGNAL is safe"
- have=HAVE_SAFE_EVFILT_SIGNAL . auto/have
- else
- echo "$0: error: the kqueue's EVFILT_SIGNAL is unsafe on this"
- echo "FreeBSD version, so --with-threads=rfork could not be used"
- echo
-
- exit 1
- fi
+# # kqueue's EVFILT_SIGNAL is safe
+#
+# if [ $version -gt 460101 ]; then
+# echo " + kqueue's EVFILT_SIGNAL is safe"
+# have=HAVE_SAFE_EVFILT_SIGNAL . auto/have
+# else
+# echo "$0: error: the kqueue's EVFILT_SIGNAL is unsafe on this"
+# echo "FreeBSD version, so --with-threads=rfork could not be used"
+# echo
+#
+# exit 1
+# fi
fi
+# Copyright (C) Igor Sysoev
+
+
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
| sed -e 's/^.* \(.*\)$/\1/'`
-# enable rt signals on Linux 2.2.19 and onward
+# enable the rt signals on Linux 2.2.19 and onward
if [ $version -ge 131609 -o $EVENT_RTSIG = YES ]; then
echo " + using rt signals"
+# Copyright (C) Igor Sysoev
+
+
CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS"
CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS "
+# Copyright (C) Igor Sysoev
+
+
CORE_MODULES="ngx_core_module ngx_errlog_module ngx_conf_module"
CORE_INCS="src/core"
+# Copyright (C) Igor Sysoev
+
+
echo
echo "Configuration summary"
echo " nginx binary file: $SBIN_PATH"
echo " nginx configuration file: $CONF_PATH"
echo " nginx pid file: $PID_PATH"
-echo " nginx error log file: $ERROR_LOG_PATH"
+if [ ".$ERROR_LOG_PATH" != "." ]; then
+ echo " nginx error log file: $ERROR_LOG_PATH"
+else
+ echo " nginx logs errors to stderr"
+fi
echo " nginx http access log file: $HTTP_LOG_PATH"
echo
+# Copyright (C) Igor Sysoev
+
+
case $USE_THREADS in
rfork)
have=NGX_THREADS . auto/have
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_type size ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_type size" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for $ngx_type ..." $ngx_c
echo >> $NGX_ERR
echo "checking for $ngx_type" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
echo $ngx_n "checking for uintptr_t ... " $ngx_c
echo >> $NGX_ERR
echo "checking for uintptr_t" >> $NGX_ERR
+# Copyright (C) Igor Sysoev
+
+
cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $ngx_param
+# Copyright (C) Igor Sysoev
+
+
CC_WARN=$CC
ngx_fmt_collect=yes
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
ngx_uint_t ngx_max_module;
-ngx_uint_t ngx_use_stderr;
-
int main(int argc, char *const *argv)
{
ngx_pid = ngx_getpid();
- log = ngx_log_init_errlog();
+ if (!(log = ngx_log_init_errlog())) {
+ return 1;
+ }
#if (NGX_OPENSSL)
ngx_ssl_init(log);
return 1;
}
- if (ngx_use_stderr) {
- log = ngx_log_init_errlog();
- }
-
if (ngx_os_init(log) == NGX_ERROR) {
return 1;
}
ngx_test_config = 1;
break;
- case 's':
- ngx_use_stderr = 1;
- break;
-
case 'c':
if (ctx->argv[i + 1] == NULL) {
ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
static ngx_connection_t dumb;
/* STUB */
+#ifdef NGX_ERROR_LOG_PATH
static ngx_str_t error_log = ngx_string(NGX_ERROR_LOG_PATH);
+#else
+static ngx_str_t error_log = ngx_null_string;
+#endif
ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
if (err) {
if (len > max - 50) {
+
/* leave a space for an error code */
+
len = max - 50;
errstr[len++] = '.';
errstr[len++] = '.';
#endif
-#if 0
-
-void ngx_log_stderr(ngx_event_t *ev)
-{
- char errstr[MAX_ERROR_STR];
- ssize_t n;
- ngx_err_t err;
-
- for ( ;; ) {
- n = read((ngx_fd_t) ev->data, errstr, sizeof(errstr - 1));
-
- if (n == -1) {
- err = ngx_errno;
- if (err == NGX_EAGAIN) {
- return;
- }
-
- ngx_log_error(NGX_LOG_ALERT, &ngx_log, err, "read() failed");
- return;
- }
-
- if (n == 0) {
- ngx_log_error(NGX_LOG_ALERT, &ngx_log, 0, "stderr clolsed");
- return;
- }
-
- errstr[n] = '\0';
- ngx_log_error(NGX_LOG_STDERR, &ngx_log, 0, "%s", errstr);
- }
-}
-
-#endif
-
-
ngx_log_t *ngx_log_init_errlog()
{
ngx_log.file = &ngx_stderr;
ngx_log.log_level = NGX_LOG_ERR;
-#if 0
+#ifdef NGX_ERROR_LOG_PATH
+
fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR,
NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND);
}
#endif
+
#endif
return &ngx_log;
value = cf->args->elts;
- if (value[1].len == 6 && ngx_strcmp(value[1].data, "stderr") == 0) {
- cf->cycle->new_log->file->fd = ngx_stderr.fd;
- cf->cycle->new_log->file->name.len = 0;
- cf->cycle->new_log->file->name.data = NULL;
-
- } else {
- cf->cycle->new_log->file->name = value[1];
+ cf->cycle->new_log->file->name = value[1];
- if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
+ if (ngx_conf_full_name(cf->cycle, &cf->cycle->new_log->file->name)
== NGX_ERROR)
- {
- return NGX_CONF_ERROR;
- }
+ {
+ return NGX_CONF_ERROR;
}
return ngx_set_error_log_levels(cf, cf->cycle->new_log);
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/
/*
- * Copyright (C) 2002-2004 Igor Sysoev
+ * Copyright (C) Igor Sysoev
*/