Build of gif2png with clang_glibc toolchain

The build took 00h 01m 22s and was SUCCESSFUL.

The program in this build is written in the following languages, according to sloccount:

SLOCLanguage
2,187 sh
1,487 ansic
777 makefile
248 python
4,699 total

The process tree of the build process is here.

Several sub-process invocations were improper; see the process tree for details. Summary:

Log

To avoid scrolling, you may jump to the last line of the invocation of makepkg that was used to build this package.

Removed vanilla repositories from pacman.conf and added:
# [tuscan]
# Server = file:///var/cache/pacman/pkg/

CMD: pacman -Syy --noconfirm
# :: Synchronizing package databases...
# downloading tuscan.db...

Copied permanent toolchain into container-local sysroot
# /toolchain_root/sysroot --> /sysroot/sysroot
# /toolchain_root/lib --> /sysroot/lib
# /toolchain_root/sbin --> /sysroot/sbin
# /toolchain_root/lib64 --> /sysroot/lib64
# /toolchain_root/etc --> /sysroot/etc
# /toolchain_root/share --> /sysroot/share
# /toolchain_root/bin --> /sysroot/bin
# /toolchain_root/var --> /sysroot/var
# /toolchain_root/usr --> /sysroot/usr
# /toolchain_root/glibc-build --> /sysroot/glibc-build
# /toolchain_root/x86_64-pc-linux-gnu --> /sysroot/x86_64-pc-linux-gnu
# /toolchain_root/include --> /sysroot/include
# /toolchain_root/libexec --> /sysroot/libexec

CMD: sudo -u tuscan PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CC=clang CXX=clang++ red makepkg --noextract --syncdeps --skipinteg --skippgpcheck --skipchecksums --noconfirm --nocolor --log --noprogressbar --nocheck
# ==> Making package: gif2png 2.5.9-1 (Thu Apr 13 19:01:18 UTC 2017)
# ==> Checking runtime dependencies...
# ==> Checking buildtime dependencies...
# ==> WARNING: Using existing $srcdir/ tree
# ==> Starting build()...
# checking for a BSD-compatible install... /usr/bin/install -c
# checking whether build environment is sane... yes
# /tmp/gif2png/src/gif2png-2.5.9/missing: Unknown `--is-lightweight' option
# Try `/tmp/gif2png/src/gif2png-2.5.9/missing --help' for more information
# configure: WARNING: 'missing' script is too old or missing
# checking for x86_64-unknown-linux-strip... no
# checking for strip... strip
# checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
# checking for gawk... gawk
# checking whether make sets $(MAKE)... yes
# checking whether make supports nested variables... yes
# checking for x86_64-unknown-linux-gcc... clang
# checking whether the C compiler works... yes
# checking for C compiler default output file name... a.out
# checking for suffix of executables...
# checking whether we are cross compiling... no
# checking for suffix of object files... o
# checking whether we are using the GNU C compiler... yes
# checking whether clang accepts -g... yes
# checking for clang option to accept ISO C89... none needed
# checking whether clang understands -c and -o together... yes
# checking for style of include used by make... GNU
# checking dependency style of clang... gcc3
# checking how to run the C preprocessor... clang -E
# checking whether clang and cc understand -c and -o together... yes
# checking for grep that handles long lines and -e... /usr/bin/grep
# checking for egrep... /usr/bin/grep -E
# checking for ANSI C header files... yes
# checking for deflate in -lz... yes
# checking for pow in -lm... yes
# checking for png_get_io_ptr in -lpng... yes
# checking that generated files are newer than configure... done
# configure: creating ./config.status
# config.status: creating Makefile
# config.status: creating config.h
# config.status: executing depfiles commands
# make all-am
# make[1]: Entering directory '/tmp/gif2png/src/gif2png-2.5.9'
# clang -DHAVE_CONFIG_H -I. -MT 437_l1.o -MD -MP -MF .deps/437_l1.Tpo -c -o 437_l1.o 437_l1.c
# mv -f .deps/437_l1.Tpo .deps/437_l1.Po
# clang -DHAVE_CONFIG_H -I. -MT gif2png.o -MD -MP -MF .deps/gif2png.Tpo -c -o gif2png.o gif2png.c
# gif2png.c:742:2: warning: add explicit braces to avoid dangling else [-Wdangling-else]
# else
# ^
# 1 warning generated.
# mv -f .deps/gif2png.Tpo .deps/gif2png.Po
# clang -DHAVE_CONFIG_H -I. -MT gifread.o -MD -MP -MF .deps/gifread.Tpo -c -o gifread.o gifread.c
# mv -f .deps/gifread.Tpo .deps/gifread.Po
# clang -DHAVE_CONFIG_H -I. -MT memory.o -MD -MP -MF .deps/memory.Tpo -c -o memory.o memory.c
# mv -f .deps/memory.Tpo .deps/memory.Po
# clang -DHAVE_CONFIG_H -I. -MT version.o -MD -MP -MF .deps/version.Tpo -c -o version.o version.c
# mv -f .deps/version.Tpo .deps/version.Po
# clang -o gif2png 437_l1.o gif2png.o gifread.o memory.o version.o -lpng -lm -lz
# make[1]: Leaving directory '/tmp/gif2png/src/gif2png-2.5.9'
# ==> Entering fakeroot environment...
# ==> Starting package()...
# make[1]: Entering directory '/tmp/gif2png/src/gif2png-2.5.9'
# /usr/bin/mkdir -p '/tmp/gif2png/pkg/gif2png/usr/bin'
# /usr/bin/install -c gif2png '/tmp/gif2png/pkg/gif2png/usr/bin'
# /usr/bin/mkdir -p '/tmp/gif2png/pkg/gif2png/usr/bin'
# /usr/bin/install -c web2png '/tmp/gif2png/pkg/gif2png/usr/bin'
# /usr/bin/mkdir -p '/tmp/gif2png/pkg/gif2png/usr/share/man/man1'
# /usr/bin/install -c -m 644 gif2png.1 web2png.1 '/tmp/gif2png/pkg/gif2png/usr/share/man/man1'
# make[1]: Leaving directory '/tmp/gif2png/src/gif2png-2.5.9'
# ==> Tidying install...
# -> Removing doc files...
# -> Purging unwanted files...
# ==> Checking for packaging issue...
# ==> Creating package "gif2png"...
# -> Generating .PKGINFO file...
# -> Generating .BUILDINFO file...
# error: invalid option '--noprogressbar'
# -> Generating .MTREE file...
# -> Compressing package...
# ==> Leaving fakeroot environment.
# ==> Finished making: gif2png 2.5.9-1 (Thu Apr 13 19:01:33 UTC 2017)

CMD: pacman --query --file gif2png-2.5.9-1-x86_64.pkg.tar.xz
# gif2png 2.5.9-1

Creating hybrid package for 'gif2png'

Trying to find vanilla package 'gif2png'...

CMD: pacman --query --file /mirror/gif2png-2.5.9-1.pkg.tar.xz
# gif2png 2.5.9-1

Package file has the following structure:
# /.PKGINFO
# /.MTREE
# /usr/bin/web2png
# /usr/bin/gif2png
# /usr/share/man/man1/gif2png.1.gz
# /usr/share/man/man1/web2png.1.gz
# /usr/share/licenses/gif2png/LICENSE

Generating .MTREE

CMD: bsdtar -czf .MTREE --format=mtree --options=!all,use-set,type,uid,mode,time,size,md5,sha256,link .PKGINFO usr

Tar-ing up files

CMD: bsdtar -cf - .PKGINFO usr .MTREE

CMD: xz -c -z

Successfully ran bsdtar -cf - .PKGINFO usr .MTREE | xz -c -z

CMD: bsdtar -tqf gif2png.pkg.tar.xz .PKGINFO
# .PKGINFO

Created package at path /var/cache/pacman/pkg/gif2png.pkg.tar.xz

Attempting to access local repository, attempt 1

CMD: repo-add /var/cache/pacman/pkg/tuscan.db.tar /var/cache/pacman/pkg/gif2png.pkg.tar.xz
# ==> ERROR: Failed to acquire lockfile: /var/cache/pacman/pkg/tuscan.db.tar.lck.
# ==> ERROR: Held by process 4942

Attempting to access local repository, attempt 2

CMD: repo-add /var/cache/pacman/pkg/tuscan.db.tar /var/cache/pacman/pkg/gif2png.pkg.tar.xz
# ==> ERROR: Failed to acquire lockfile: /var/cache/pacman/pkg/tuscan.db.tar.lck.
# ==> ERROR: Held by process 4942

Attempting to access local repository, attempt 3

CMD: repo-add /var/cache/pacman/pkg/tuscan.db.tar /var/cache/pacman/pkg/gif2png.pkg.tar.xz
# ==> Extracting database to a temporary location...
# ==> Extracting database to a temporary location...
# ==> Adding package '/var/cache/pacman/pkg/gif2png.pkg.tar.xz'
# -> Computing checksums...
# -> Creating 'desc' db entry...
# -> Creating 'files' db entry...
# ==> Creating updated database file '/var/cache/pacman/pkg/tuscan.db.tar'

Printing config logfiles

CMD: config logfiles '/tmp/gif2png/src/gif2png-2.5.9/config.log'
# This file contains any messages produced by compilers while
# running configure, to aid debugging if configure makes a mistake.
#
# It was created by gif2png configure 2.5.9, which was
# generated by GNU Autoconf 2.69. Invocation command line was
#
# $ ./configure --host=x86_64-unknown-linux --prefix=/usr --mandir=/usr/share/man
#
# ## --------- ##
# ## Platform. ##
# ## --------- ##
#
# hostname = 80c497c6fe27
# uname -m = x86_64
# uname -r = 4.10.6-1-ARCH
# uname -s = Linux
# uname -v = #1 SMP PREEMPT Mon Mar 27 08:28:22 CEST 2017
#
# /usr/bin/uname -p = unknown
# /bin/uname -X = unknown
#
# /bin/arch = unknown
# /usr/bin/arch -k = unknown
# /usr/convex/getsysinfo = unknown
# /usr/bin/hostinfo = unknown
# /bin/machine = unknown
# /usr/bin/oslevel = unknown
# /bin/universe = unknown
#
# PATH: /usr/bin
# PATH: /usr/local/sbin
# PATH: /usr/local/bin
# PATH: /usr/sbin
# PATH: /usr/bin
# PATH: /sbin
# PATH: /bin
#
#
# ## ----------- ##
# ## Core tests. ##
# ## ----------- ##
#
# configure:1968: checking for a BSD-compatible install
# configure:2036: result: /usr/bin/install -c
# configure:2047: checking whether build environment is sane
# configure:2102: result: yes
# configure:2140: WARNING: 'missing' script is too old or missing
# configure:2161: checking for x86_64-unknown-linux-strip
# configure:2191: result: no
# configure:2201: checking for strip
# configure:2217: found /usr/bin/strip
# configure:2228: result: strip
# configure:2253: checking for a thread-safe mkdir -p
# configure:2292: result: /usr/bin/mkdir -p
# configure:2299: checking for gawk
# configure:2315: found /usr/bin/gawk
# configure:2326: result: gawk
# configure:2337: checking whether make sets $(MAKE)
# configure:2359: result: yes
# configure:2388: checking whether make supports nested variables
# configure:2405: result: yes
# configure:2541: checking for x86_64-unknown-linux-gcc
# configure:2568: result: clang
# configure:2837: checking for C compiler version
# configure:2846: clang --version >&5
# clang version 3.8.0 (tags/RELEASE_380/final)
# Target: x86_64-unknown-linux-gnu
# Thread model: posix
# InstalledDir: /usr/bin
# configure:2857: $? = 0
# configure:2846: clang -v >&5
# clang version 3.8.0 (tags/RELEASE_380/final)
# Target: x86_64-unknown-linux-gnu
# Thread model: posix
# InstalledDir: /usr/bin
# Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.1
# Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
# Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1
# Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/6.1.1
# Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1
# Candidate multilib: .;@m64
# ... rest of stderr output deleted ...
# configure:2857: $? = 0
# configure:2846: clang -V >&5
# clang-3.8: error: argument to '-V' is missing (expected 1 value)
# clang-3.8: error: no input files
# configure:2857: $? = 1
# configure:2846: clang -qversion >&5
# clang-3.8: error: unknown argument: '-qversion'
# clang-3.8: error: no input files
# configure:2857: $? = 1
# configure:2877: checking whether the C compiler works
# configure:2899: clang conftest.c >&5
# configure:2903: $? = 0
# configure:2951: result: yes
# configure:2954: checking for C compiler default output file name
# configure:2956: result: a.out
# configure:2962: checking for suffix of executables
# configure:2969: clang -o conftest conftest.c >&5
# configure:2973: $? = 0
# configure:2995: result:
# configure:3017: checking whether we are cross compiling
# configure:3025: clang -o conftest conftest.c >&5
# configure:3029: $? = 0
# configure:3036: ./conftest
# configure:3040: $? = 0
# configure:3055: result: no
# configure:3060: checking for suffix of object files
# configure:3082: clang -c conftest.c >&5
# configure:3086: $? = 0
# configure:3107: result: o
# configure:3111: checking whether we are using the GNU C compiler
# configure:3130: clang -c conftest.c >&5
# configure:3130: $? = 0
# configure:3139: result: yes
# configure:3148: checking whether clang accepts -g
# configure:3168: clang -c -g conftest.c >&5
# configure:3168: $? = 0
# configure:3209: result: yes
# configure:3226: checking for clang option to accept ISO C89
# configure:3289: clang -c conftest.c >&5
# configure:3289: $? = 0
# configure:3302: result: none needed
# configure:3327: checking whether clang understands -c and -o together
# configure:3349: clang -c conftest.c -o conftest2.o
# configure:3352: $? = 0
# configure:3349: clang -c conftest.c -o conftest2.o
# configure:3352: $? = 0
# configure:3364: result: yes
# configure:3392: checking for style of include used by make
# configure:3420: result: GNU
# configure:3446: checking dependency style of clang
# configure:3557: result: gcc3
# configure:3578: checking how to run the C preprocessor
# configure:3609: clang -E conftest.c
# configure:3609: $? = 0
# configure:3623: clang -E conftest.c
# conftest.c:11:10: fatal error: 'ac_nonexistent.h' file not found
# #include
# ^
# 1 error generated.
# configure:3623: $? = 1
# configure: failed program was:
# | /* confdefs.h */
# | #define PACKAGE_NAME "gif2png"
# | #define PACKAGE_TARNAME "gif2png"
# | #define PACKAGE_VERSION "2.5.9"
# | #define PACKAGE_STRING "gif2png 2.5.9"
# | #define PACKAGE_BUGREPORT ""
# | #define PACKAGE_URL ""
# | #define PACKAGE "gif2png"
# | #define VERSION "2.5.9"
# | /* end confdefs.h. */
# | #include
# configure:3648: result: clang -E
# configure:3668: clang -E conftest.c
# configure:3668: $? = 0
# configure:3682: clang -E conftest.c
# conftest.c:11:10: fatal error: 'ac_nonexistent.h' file not found
# #include
# ^
# 1 error generated.
# configure:3682: $? = 1
# configure: failed program was:
# | /* confdefs.h */
# | #define PACKAGE_NAME "gif2png"
# | #define PACKAGE_TARNAME "gif2png"
# | #define PACKAGE_VERSION "2.5.9"
# | #define PACKAGE_STRING "gif2png 2.5.9"
# | #define PACKAGE_BUGREPORT ""
# | #define PACKAGE_URL ""
# | #define PACKAGE "gif2png"
# | #define VERSION "2.5.9"
# | /* end confdefs.h. */
# | #include
# configure:3710: checking whether clang and cc understand -c and -o together
# configure:3741: clang -c conftest.c -o conftest2.o >&5
# configure:3745: $? = 0
# configure:3751: clang -c conftest.c -o conftest2.o >&5
# configure:3755: $? = 0
# configure:3766: cc -c conftest.c >&5
# configure:3770: $? = 0
# configure:3778: cc -c conftest.c -o conftest2.o >&5
# configure:3782: $? = 0
# configure:3788: cc -c conftest.c -o conftest2.o >&5
# configure:3792: $? = 0
# configure:3810: result: yes
# configure:3822: checking for grep that handles long lines and -e
# configure:3880: result: /usr/bin/grep
# configure:3885: checking for egrep
# configure:3947: result: /usr/bin/grep -E
# configure:3952: checking for ANSI C header files
# configure:3972: clang -c conftest.c >&5
# configure:3972: $? = 0
# configure:4045: clang -o conftest conftest.c >&5
# configure:4045: $? = 0
# configure:4045: ./conftest
# configure:4045: $? = 0
# configure:4056: result: yes
# configure:4087: checking for deflate in -lz
# configure:4112: clang -o conftest conftest.c -lz >&5
# configure:4112: $? = 0
# configure:4121: result: yes
# configure:4132: checking for pow in -lm
# configure:4157: clang -o conftest conftest.c -lm -lz >&5
# conftest.c:20:6: warning: incompatible redeclaration of library function 'pow' [-Wincompatible-library-redeclaration]
# char pow ();
# ^
# conftest.c:20:6: note: 'pow' is a builtin with type 'double (double, double)'
# 1 warning generated.
# configure:4157: $? = 0
# configure:4166: result: yes
# configure:4177: checking for png_get_io_ptr in -lpng
# configure:4202: clang -o conftest conftest.c -lpng -lm -lz -lm -lz >&5
# configure:4202: $? = 0
# configure:4211: result: yes
# configure:4342: checking that generated files are newer than configure
# configure:4348: result: done
# configure:4371: creating ./config.status
#
# ## ---------------------- ##
# ## Running config.status. ##
# ## ---------------------- ##
#
# This file was extended by gif2png config.status 2.5.9, which was
# generated by GNU Autoconf 2.69. Invocation command line was
#
# CONFIG_FILES =
# CONFIG_HEADERS =
# CONFIG_LINKS =
# CONFIG_COMMANDS =
# $ ./config.status
#
# on 80c497c6fe27
#
# config.status:846: creating Makefile
# config.status:846: creating config.h
# config.status:1075: executing depfiles commands
#
# ## ---------------- ##
# ## Cache variables. ##
# ## ---------------- ##
#
# ac_cv_c_compiler_gnu=yes
# ac_cv_env_CC_set=set
# ac_cv_env_CC_value=clang
# ac_cv_env_CFLAGS_set=set
# ac_cv_env_CFLAGS_value=
# ac_cv_env_CPPFLAGS_set=set
# ac_cv_env_CPPFLAGS_value=
# ac_cv_env_CPP_set=
# ac_cv_env_CPP_value=
# ac_cv_env_LDFLAGS_set=set
# ac_cv_env_LDFLAGS_value=
# ac_cv_env_LIBS_set=
# ac_cv_env_LIBS_value=
# ac_cv_env_build_alias_set=
# ac_cv_env_build_alias_value=
# ac_cv_env_host_alias_set=set
# ac_cv_env_host_alias_value=x86_64-unknown-linux
# ac_cv_env_target_alias_set=
# ac_cv_env_target_alias_value=
# ac_cv_header_stdc=yes
# ac_cv_lib_m_pow=yes
# ac_cv_lib_png_png_get_io_ptr=yes
# ac_cv_lib_z_deflate=yes
# ac_cv_objext=o
# ac_cv_path_EGREP='/usr/bin/grep -E'
# ac_cv_path_GREP=/usr/bin/grep
# ac_cv_path_install='/usr/bin/install -c'
# ac_cv_path_mkdir=/usr/bin/mkdir
# ac_cv_prog_AWK=gawk
# ac_cv_prog_CC=clang
# ac_cv_prog_CPP='clang -E'
# ac_cv_prog_ac_ct_STRIP=strip
# ac_cv_prog_cc_c89=
# ac_cv_prog_cc_clang_c_o=yes
# ac_cv_prog_cc_g=yes
# ac_cv_prog_make_make_set=yes
# am_cv_CC_dependencies_compiler_type=gcc3
# am_cv_make_support_nested_variables=yes
# am_cv_prog_cc_c_o=yes
#
# ## ----------------- ##
# ## Output variables. ##
# ## ----------------- ##
#
# ACLOCAL='aclocal-1.14'
# AMDEPBACKSLASH='\'
# AMDEP_FALSE='#'
# AMDEP_TRUE=''
# AMTAR='$${TAR-tar}'
# AM_BACKSLASH='\'
# AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
# AM_DEFAULT_VERBOSITY='1'
# AM_V='$(V)'
# AUTOCONF='autoconf'
# AUTOHEADER='autoheader'
# AUTOMAKE='automake-1.14'
# AWK='gawk'
# CC='clang'
# CCDEPMODE='depmode=gcc3'
# CFLAGS=''
# CPP='clang -E'
# CPPFLAGS=''
# CYGPATH_W='echo'
# DEFS='-DHAVE_CONFIG_H'
# DEPDIR='.deps'
# ECHO_C=''
# ECHO_N='-n'
# ECHO_T=''
# EGREP='/usr/bin/grep -E'
# EXEEXT=''
# GREP='/usr/bin/grep'
# INSTALL_DATA='${INSTALL} -m 644'
# INSTALL_PROGRAM='${INSTALL}'
# INSTALL_SCRIPT='${INSTALL}'
# INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
# LDFLAGS=''
# LIBOBJS=''
# LIBS='-lpng -lm -lz '
# LTLIBOBJS=''
# MAKEINFO='makeinfo'
# MKDIR_P='/usr/bin/mkdir -p'
# OBJEXT='o'
# PACKAGE='gif2png'
# PACKAGE_BUGREPORT=''
# PACKAGE_NAME='gif2png'
# PACKAGE_STRING='gif2png 2.5.9'
# PACKAGE_TARNAME='gif2png'
# PACKAGE_URL=''
# PACKAGE_VERSION='2.5.9'
# PATH_SEPARATOR=':'
# SET_MAKE=''
# SHELL='/bin/sh'
# STRIP='strip'
# VERSION='2.5.9'
# ac_ct_CC=''
# am__EXEEXT_FALSE=''
# am__EXEEXT_TRUE='#'
# am__fastdepCC_FALSE='#'
# am__fastdepCC_TRUE=''
# am__include='include'
# am__isrc=''
# am__leading_dot='.'
# am__nodep='_no'
# am__quote=''
# am__tar='$${TAR-tar} chof - "$$tardir"'
# am__untar='$${TAR-tar} xf -'
# bindir='${exec_prefix}/bin'
# build_alias=''
# datadir='${datarootdir}'
# datarootdir='${prefix}/share'
# docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
# dvidir='${docdir}'
# exec_prefix='${prefix}'
# host_alias='x86_64-unknown-linux'
# htmldir='${docdir}'
# includedir='${prefix}/include'
# infodir='${datarootdir}/info'
# install_sh='${SHELL} /tmp/gif2png/src/gif2png-2.5.9/install-sh'
# libdir='${exec_prefix}/lib'
# libexecdir='${exec_prefix}/libexec'
# localedir='${datarootdir}/locale'
# localstatedir='${prefix}/var'
# mandir='/usr/share/man'
# mkdir_p='$(MKDIR_P)'
# oldincludedir='/usr/include'
# pdfdir='${docdir}'
# prefix='/usr'
# program_transform_name='s,x,x,'
# psdir='${docdir}'
# sbindir='${exec_prefix}/sbin'
# sharedstatedir='${prefix}/com'
# sysconfdir='${prefix}/etc'
# target_alias=''
#
# ## ----------- ##
# ## confdefs.h. ##
# ## ----------- ##
#
# /* confdefs.h */
# #define PACKAGE_NAME "gif2png"
# #define PACKAGE_TARNAME "gif2png"
# #define PACKAGE_VERSION "2.5.9"
# #define PACKAGE_STRING "gif2png 2.5.9"
# #define PACKAGE_BUGREPORT ""
# #define PACKAGE_URL ""
# #define PACKAGE "gif2png"
# #define VERSION "2.5.9"
# #define STDC_HEADERS 1
# #define HAVE_LIBZ 1
# #define HAVE_LIBM 1
# #define HAVE_LIBPNG 1
#
# configure: exit 0