2021-03-02 02:46 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000770Frama-CKernelpublic2014-02-12 16:59
Reporterpascal 
Assigned Tovirgile 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Product Version 
Target VersionFixed in VersionFrama-C Nitrogen-20111001 
Summary0000770: r12430, some assertions are localized at Cabs2cil_start:0 (csmith)
Descriptionbin/toplevel.opt -val -slevel 70000 -unspecified-access dummy_loc.i

Result:
...
Cabs2cil_start:0:[kernel] warning: Unspecified sequence with side effect:
...
Cabs2cil_start:0:[kernel] warning: undefined multiple accesses in expression. assert \separated(l_934,& l_922);
...

The attached file is pre-processed but it was made from ordinary .c and .h files on a Linux system (computation server).
TagsNo tags attached.
Attached Files
  • ? file icon dummy_loc.i (189,870 bytes) 2011-03-30 10:57 -
    # 1 "assert.30103626.6.c"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "assert.30103626.6.c"
    /*
     * This is a RANDOMLY GENERATED PROGRAM.
     *
     * Generator: csmith 2.0.0
     * svn version: exported
     * Options:   --no-longlong --no-volatiles --no-argc
     * Seed:      3415456946
     */
    
    
    
    
    
    
    # 1 "runtime/csmith.h" 1
    /* -*- mode: C -*-
     *
     * Copyright (c) 2007-2010 The University of Utah
     * All rights reserved.
     *
     * This file is part of `csmith', a random generator of C programs.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are met:
     *
     *   * Redistributions of source code must retain the above copyright notice,
     *     this list of conditions and the following disclaimer.
     *
     *   * Redistributions in binary form must reproduce the above copyright
     *     notice, this list of conditions and the following disclaimer in the
     *     documentation and/or other materials provided with the distribution.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     * POSSIBILITY OF SUCH DAMAGE.
     */
    
    
    
    
    /*****************************************************************************/
    
    
    
    
    
    # 1 "runtime/random_inc.h" 1
    /* -*- mode: C -*-
     *
     * Copyright (c) 2007-2010 The University of Utah
     * All rights reserved.
     *
     * This file is part of `csmith', a random generator of C programs.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are met:
     *
     *   * Redistributions of source code must retain the above copyright notice,
     *     this list of conditions and the following disclaimer.
     *
     *   * Redistributions in binary form must reproduce the above copyright
     *     notice, this list of conditions and the following disclaimer in the
     *     documentation and/or other materials provided with the distribution.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     * POSSIBILITY OF SUCH DAMAGE.
     */
    # 51 "runtime/random_inc.h"
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 1 3 4
    /* This administrivia gets added to the beginning of limits.h
       if the system has its own version of limits.h.  */
    
    /* We use _GCC_LIMITS_H_ because we want this not to match
       any macros that the system's limits.h uses for its own purposes.  */
    
    
    
    
    /* Use "..." so that we find syslimits.h only in this same directory.  */
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/syslimits.h" 1 3 4
    /* syslimits.h stands for the system's own limits.h file.
       If we can use it ok unmodified, then we install this text.
       If fixincludes fixes it, then the fixed version is installed
       instead of this text.  */
    
    
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 1 3 4
    /* This administrivia gets added to the beginning of limits.h
       if the system has its own version of limits.h.  */
    
    /* We use _GCC_LIMITS_H_ because we want this not to match
       any macros that the system's limits.h uses for its own purposes.  */
    # 122 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 3 4
    # 1 "/usr/include/limits.h" 1 3 4
    /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005
       Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
     */
    
    
    
    
    # 1 "/usr/include/features.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    
    
    
    /* These are defined by the user (or the compiler)
       to specify the desired environment:
    
       __STRICT_ANSI__	ISO Standard C.
       _ISOC99_SOURCE	Extensions to ISO C89 from ISO C99.
       _POSIX_SOURCE	IEEE Std 1003.1.
       _POSIX_C_SOURCE	If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
    			if >=199309L, add IEEE Std 1003.1b-1993;
    			if >=199506L, add IEEE Std 1003.1c-1995;
    			if >=200112L, all of IEEE 1003.1-2004
    			if >=200809L, all of IEEE 1003.1-2008
       _XOPEN_SOURCE	Includes POSIX and XPG things.  Set to 500 if
    			Single Unix conformance is wanted, to 600 for the
    			sixth revision, to 700 for the seventh revision.
       _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
       _LARGEFILE_SOURCE	Some more functions for correct standard I/O.
       _LARGEFILE64_SOURCE	Additional functionality from LFS for large files.
       _FILE_OFFSET_BITS=N	Select default filesystem interface.
       _BSD_SOURCE		ISO C, POSIX, and 4.3BSD things.
       _SVID_SOURCE		ISO C, POSIX, and SVID things.
       _ATFILE_SOURCE	Additional *at interfaces.
       _GNU_SOURCE		All of the above, plus GNU extensions.
       _REENTRANT		Select additionally reentrant object.
       _THREAD_SAFE		Same as _REENTRANT, often used by other systems.
       _FORTIFY_SOURCE	If set to numeric value > 0 additional security
    			measures are defined, according to level.
    
       The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
       If none of these are defined, the default is to have _SVID_SOURCE,
       _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
       200112L.  If more than one of these are defined, they accumulate.
       For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
       together give you ISO C, 1003.1, and 1003.2, but nothing else.
    
       These are defined by this file and are used by the
       header files to decide what to declare or define:
    
       __USE_ISOC99		Define ISO C99 things.
       __USE_ISOC95		Define ISO C90 AMD1 (C95) things.
       __USE_POSIX		Define IEEE Std 1003.1 things.
       __USE_POSIX2		Define IEEE Std 1003.2 things.
       __USE_POSIX199309	Define IEEE Std 1003.1, and .1b things.
       __USE_POSIX199506	Define IEEE Std 1003.1, .1b, .1c and .1i things.
       __USE_XOPEN		Define XPG things.
       __USE_XOPEN_EXTENDED	Define X/Open Unix things.
       __USE_UNIX98		Define Single Unix V2 things.
       __USE_XOPEN2K        Define XPG6 things.
       __USE_XOPEN2K8       Define XPG7 things.
       __USE_LARGEFILE	Define correct standard I/O things.
       __USE_LARGEFILE64	Define LFS things with separate names.
       __USE_FILE_OFFSET64	Define 64bit interface as default.
       __USE_BSD		Define 4.3BSD things.
       __USE_SVID		Define SVID things.
       __USE_MISC		Define things common to BSD and System V Unix.
       __USE_ATFILE		Define *at interfaces and AT_* constants for them.
       __USE_GNU		Define GNU extensions.
       __USE_REENTRANT	Define reentrant/thread-safe *_r functions.
       __USE_FORTIFY_LEVEL	Additional security measures used, according to level.
       __FAVOR_BSD		Favor 4.3BSD things in cases of conflict.
    
       The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
       defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
       only for compatibility.  All new code should use the other symbols
       to test for features.
    
       All macros listed above as possibly being defined by this file are
       explicitly undefined if they are not explicitly defined.
       Feature-test macros that are not defined by the user or compiler
       but are implied by the other feature-test macros defined (or by the
       lack of any definitions) are defined by the file.  */
    
    
    /* Undefine everything, so we get a clean slate.  */
    # 119 "/usr/include/features.h" 3 4
    /* Suppress kernel-name space pollution unless user expressedly asks
       for it.  */
    
    
    
    
    /* Always use ISO C things.  */
    
    
    /* Convenience macros to test the versions of glibc and gcc.
       Use them like this:
       #if __GNUC_PREREQ (2,8)
       ... code requiring gcc 2.8 or later ...
       #endif
       Note - they won't work for gcc1 or glibc1, since the _MINOR macros
       were not defined then.  */
    # 143 "/usr/include/features.h" 3 4
    /* If _BSD_SOURCE was defined by the user, favor BSD over POSIX.  */
    
    
    
    
    
    
    
    /* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
    # 173 "/usr/include/features.h" 3 4
    /* If nothing (other than _GNU_SOURCE) is defined,
       define _BSD_SOURCE and _SVID_SOURCE.  */
    # 183 "/usr/include/features.h" 3 4
    /* This is to enable the ISO C99 extension.  Also recognize the old macro
       which was used prior to the standard acceptance.  This macro will
       eventually go away and the features enabled by default once the ISO C99
       standard is widely adopted.  */
    
    
    
    
    
    /* This is to enable the ISO C90 Amendment 1:1995 extension.  */
    
    
    
    
    
    /* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
       (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined).  */
    # 312 "/usr/include/features.h" 3 4
    /* Define __STDC_IEC_559__ and other similar macros.  */
    # 1 "/usr/include/bits/predefs.h" 1 3 4
    /* Copyright (C) 2005 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 26 "/usr/include/bits/predefs.h" 3 4
    /* We do support the IEC 559 math functionality, real and complex.  */
    # 314 "/usr/include/features.h" 2 3 4
    
    /* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
    
    
    /* This macro indicates that the installed library is the GNU C Library.
       For historic reasons the value now is 6 and this will stay from now
       on.  The use of this variable is deprecated.  Use __GLIBC__ and
       __GLIBC_MINOR__ now (see below) when you want to test for a specific
       GNU C library version and use the values in <gnu/lib-names.h> to get
       the sonames of the shared libraries.  */
    
    
    
    /* Major and minor version number of the GNU C library package.  Use
       these macros to test for features in specific releases.  */
    
    
    
    
    
    
    /* Decide whether a compiler supports the long long datatypes.  */
    
    
    
    
    
    
    
    /* This is here only because every header file already includes this one.  */
    
    
    # 1 "/usr/include/sys/cdefs.h" 1 3 4
    /* Copyright (C) 1992-2001, 2002, 2004, 2005, 2006, 2007, 2009
       Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    
    
    
    /* We are almost always included from features.h. */
    
    
    
    
    /* The GNU libc does not support any K&R compilers or the traditional mode
       of ISO C compilers anymore.  Check for some of the combinations not
       anymore supported.  */
    
    
    
    
    /* Some user header file might have defined this before.  */
    
    
    
    
    
    /* GCC can always grok prototypes.  For C++ programs we add throw()
       to help it optimize the function calls.  But this works only with
       gcc 2.8.x and egcs.  For gcc 3.2 and up we even mark C functions
       as non-throwing using a function attribute since programs can use
       the -fexceptions options for C code as well.  */
    # 72 "/usr/include/sys/cdefs.h" 3 4
    /* These two macros are not used in glibc anymore.  They are kept here
       only because some other projects expect the macros to be defined.  */
    
    
    
    /* For these things, GCC behaves the ANSI way normally,
       and the non-ANSI way under -traditional.  */
    
    
    
    
    /* This is not a typedef so `const __ptr_t' does the right thing.  */
    
    
    
    
    /* C++ needs to know that types and declarations are C, not C++.  */
    # 98 "/usr/include/sys/cdefs.h" 3 4
    /* The standard library needs the functions from the ISO C90 standard
       in the std namespace.  At the same time we want to be safe for
       future changes and we include the ISO C99 code in the non-standard
       namespace __c99.  The C++ wrapper header take case of adding the
       definitions to the global namespace.  */
    # 111 "/usr/include/sys/cdefs.h" 3 4
    /* For compatibility we do not add the declarations into any
       namespace.  They will end up in the global namespace which is what
       old code expects.  */
    # 123 "/usr/include/sys/cdefs.h" 3 4
    /* Support for bounded pointers.  */
    
    
    
    
    
    
    
    /* Fortify support.  */
    # 147 "/usr/include/sys/cdefs.h" 3 4
    /* Support for flexible arrays.  */
    
    /* GCC 2.97 supports C99 flexible array members.  */
    # 165 "/usr/include/sys/cdefs.h" 3 4
    /* __asm__ ("xyz") is used throughout the headers to rename functions
       at the assembly language level.  This is wrapped by the __REDIRECT
       macro, in order to support compilers that can do this some other
       way.  When compilers don't support asm-names at all, we have to do
       preprocessor tricks instead (which don't have exactly the right
       semantics, but it's the best we can do).
    
       Example:
       int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
    # 188 "/usr/include/sys/cdefs.h" 3 4
    /*
    #elif __SOME_OTHER_COMPILER__
    
    # define __REDIRECT(name, proto, alias) name proto; 	_Pragma("let " #name " = " #alias)
    )
    */
    
    
    /* GCC has various useful declarations that can be made with the
       `__attribute__' syntax.  All of the ways we use this do fine if
       they are omitted for compilers that don't understand it. */
    
    
    
    
    /* At some point during the gcc 2.96 development the `malloc' attribute
       for functions was introduced.  We don't want to use it unconditionally
       (although this would be possible) since it generates warnings.  */
    
    
    
    
    
    
    /* At some point during the gcc 2.96 development the `pure' attribute
       for functions was introduced.  We don't want to use it unconditionally
       (although this would be possible) since it generates warnings.  */
    
    
    
    
    
    
    /* At some point during the gcc 3.1 development the `used' attribute
       for functions was introduced.  We don't want to use it unconditionally
       (although this would be possible) since it generates warnings.  */
    # 232 "/usr/include/sys/cdefs.h" 3 4
    /* gcc allows marking deprecated functions.  */
    
    
    
    
    
    
    /* At some point during the gcc 2.8 development the `format_arg' attribute
       for functions was introduced.  We don't want to use it unconditionally
       (although this would be possible) since it generates warnings.
       If several `format_arg' attributes are given for the same function, in
       gcc-3.0 and older, all but the last one are ignored.  In newer gccs,
       all designated arguments are considered.  */
    
    
    
    
    
    
    /* At some point during the gcc 2.97 development the `strfmon' format
       attribute for functions was introduced.  We don't want to use it
       unconditionally (although this would be possible) since it
       generates warnings.  */
    
    
    
    
    
    
    
    /* The nonull function attribute allows to mark pointer parameters which
       must not be NULL.  */
    
    
    
    
    
    
    /* If fortification mode, we warn about unused results of certain
       function calls which can lead to problems.  */
    # 285 "/usr/include/sys/cdefs.h" 3 4
    /* Forces a function to be always inlined.  */
    
    
    
    
    
    
    /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
       inline semantics, unless -fgnu89-inline is used.  */
    # 315 "/usr/include/sys/cdefs.h" 3 4
    /* GCC 4.3 and above allow passing all anonymous arguments of an
       __extern_always_inline function to some other vararg function.  */
    
    
    
    
    
    /* It is possible to compile containing GCC extensions even if GCC is
       run in pedantic mode if the uses are carefully marked using the
       `__extension__' keyword.  But this is not generally available before
       version 2.8.  */
    
    
    
    
    /* __restrict is known in EGCS 1.2 and above. */
    
    
    
    
    /* ISO C99 also allows to declare arrays as non-overlapping.  The syntax is
         array_name[restrict]
       GCC 3.1 supports this.  */
    # 353 "/usr/include/sys/cdefs.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    /* Determine the wordsize from the preprocessor defines.  */
    # 354 "/usr/include/sys/cdefs.h" 2 3 4
    # 347 "/usr/include/features.h" 2 3 4
    
    
    /* If we don't have __REDIRECT, prototypes will be missing if
       __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
    
    
    
    
    
    
    
    /* Decide whether we can define 'extern inline' functions in headers.  */
    
    
    
    
    
    
    /* There are some functions that must be declared 'extern inline' even with
       -Os when building LIBC, or they'll end up undefined.  */
    
    
    
    
    
    
    
    /* This is here only because every header file already includes this one.
       Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
       <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
       that will always return failure (and set errno to ENOSYS).  */
    # 1 "/usr/include/gnu/stubs.h" 1 3 4
    /* This file selects the right generated file of `__stub_FUNCTION' macros
       based on the architecture being compiled for.  */
    
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    /* Determine the wordsize from the preprocessor defines.  */
    # 5 "/usr/include/gnu/stubs.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
    /* This file is automatically generated.
       It defines a symbol `__stub_FUNCTION' for each function
       in the C library which is a stub, meaning it will fail
       every time called, usually setting errno to ENOSYS.  */
    # 10 "/usr/include/gnu/stubs.h" 2 3 4
    # 379 "/usr/include/features.h" 2 3 4
    # 28 "/usr/include/limits.h" 2 3 4
    
    
    /* Maximum length of any multibyte character in any locale.
       We define this value here since the gcc header does not define
       the correct value.  */
    
    
    
    /* If we are not using GNU CC we have to define all the symbols ourself.
       Otherwise use gcc's definitions (see below).  */
    # 118 "/usr/include/limits.h" 3 4
     /* Get the compiler's limits.h, which defines almost all the ISO constants.
    
        We put this #include_next outside the double inclusion check because
        it should be possible to include this file more than once and still get
        the definitions from gcc's header.  */
    
    
    
    
    
    /* The <limits.h> files in some gcc versions don't define LLONG_MIN,
       LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
       ages are available.  */
    # 144 "/usr/include/limits.h" 3 4
    /* POSIX adds things to <limits.h>.  */
    # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
    /* Copyright (C) 1991-1993,96,98,2000-2003,2004 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
     *
     *	Never include this file directly; use <limits.h> instead.
     */
    
    
    
    
    
    /* These are the standard-mandated minimum values.  */
    
    /* Minimum number of operations in one list I/O call.  */
    
    
    /* Minimal number of outstanding asynchronous I/O operations.  */
    
    
    /* Maximum length of arguments to `execve', including environment.  */
    
    
    /* Maximum simultaneous processes per real user ID.  */
    
    
    
    
    
    
    /* Minimal number of timer expiration overruns.  */
    
    
    /* Maximum length of a host name (not including the terminating null)
       as returned from the GETHOSTNAME function.  */
    
    
    /* Maximum link count of a file.  */
    
    
    /* Maximum length of login name.  */
    
    
    /* Number of bytes in a terminal canonical input queue.  */
    
    
    /* Number of bytes for which space will be
       available in a terminal input queue.  */
    
    
    /* Maximum number of message queues open for a process.  */
    
    
    /* Maximum number of supported message priorities.  */
    
    
    /* Number of bytes in a filename.  */
    
    
    /* Number of simultaneous supplementary group IDs per process.  */
    
    
    
    
    
    
    /* Number of files one process can have open at once.  */
    # 96 "/usr/include/bits/posix1_lim.h" 3 4
    /* Number of bytes in a pathname.  */
    
    
    /* Number of bytes than can be written atomically to a pipe.  */
    
    
    /* The number of repeated occurrences of a BRE permitted by the
       REGEXEC and REGCOMP functions when using the interval notation.  */
    
    
    /* Minimal number of realtime signals reserved for the application.  */
    
    
    /* Number of semaphores a process can have.  */
    
    
    /* Maximal value of a semaphore.  */
    
    
    /* Number of pending realtime signals.  */
    
    
    /* Largest value of a `ssize_t'.  */
    
    
    /* Number of streams a process can have open at once.  */
    
    
    /* The number of bytes in a symbolic link.  */
    
    
    /* The number of symbolic links that can be traversed in the
       resolution of a pathname in the absence of a loop.  */
    
    
    /* Number of timer for a process.  */
    
    
    /* Maximum number of characters in a tty name.  */
    
    
    /* Maximum length of a timezone name (element of `tzname').  */
    # 152 "/usr/include/bits/posix1_lim.h" 3 4
    /* Maximum clock resolution in nanoseconds.  */
    
    
    
    /* Get the implementation-specific values for the above.  */
    # 1 "/usr/include/bits/local_lim.h" 1 3 4
    /* Minimum guaranteed maximum values for system limits.  Linux version.
       Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public License as
       published by the Free Software Foundation; either version 2.1 of the
       License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; see the file COPYING.LIB.  If not,
       write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       Boston, MA 02111-1307, USA.  */
    
    /* The kernel header pollutes the namespace with the NR_OPEN symbol
       and defines LINK_MAX although filesystems have different maxima.  A
       similar thing is true for OPEN_MAX: the limit can be changed at
       runtime and therefore the macro must not be defined.  Remove this
       after including the header if necessary.  */
    # 38 "/usr/include/bits/local_lim.h" 3 4
    /* The kernel sources contain a file with all the needed information.  */
    # 1 "/usr/include/linux/limits.h" 1 3 4
    # 40 "/usr/include/bits/local_lim.h" 2 3 4
    
    /* Have to remove NR_OPEN?  */
    
    
    
    
    /* Have to remove LINK_MAX?  */
    
    
    
    
    /* Have to remove OPEN_MAX?  */
    
    
    
    
    /* Have to remove ARG_MAX?  */
    
    
    
    
    
    /* The number of data keys per process.  */
    
    /* This is the value this implementation supports.  */
    
    
    /* Controlling the iterations of destructors for thread-specific data.  */
    
    /* Number of iterations this implementation does.  */
    
    
    /* The number of threads per process.  */
    
    /* We have no predefined limit on the number of threads.  */
    
    
    /* Maximum amount by which a process can descrease its asynchronous I/O
       priority level.  */
    
    
    /* Minimum size for a thread.  We are free to choose a reasonable value.  */
    
    
    /* Maximum number of timer expiration overruns.  */
    
    
    /* Maximum tty name length.  */
    
    
    /* Maximum login name length.  This is arbitrary.  */
    
    
    /* Maximum host name length.  */
    
    
    /* Maximum message queue priority level.  */
    
    
    /* Maximum value the semaphore can have.  */
    # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
    
    
    
    
    
    
    
    /* This value is a guaranteed minimum maximum.
       The current maximum can be got from `sysconf'.  */
    # 146 "/usr/include/limits.h" 2 3 4
    
    
    
    # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
    /* Copyright (C) 1991, 1996, 1999, 2000, 2001 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     * Never include this file directly; include <limits.h> instead.
     */
    
    
    
    
    
    /* The maximum `ibase' and `obase' values allowed by the `bc' utility.  */
    
    
    /* The maximum number of elements allowed in an array by the `bc' utility.  */
    
    
    /* The maximum `scale' value allowed by the `bc' utility.  */
    
    
    /* The maximum length of a string constant accepted by the `bc' utility.  */
    
    
    /* The maximum number of weights that can be assigned to an entry of
       the LC_COLLATE `order' keyword in the locale definition file.  */
    
    
    /* The maximum number of expressions that can be nested
       within parentheses by the `expr' utility.  */
    
    
    /* The maximum length, in bytes, of an input line.  */
    
    
    /* The maximum number of repeated occurrences of a regular expression
       permitted when using the interval notation `\{M,N\}'.  */
    
    
    /* The maximum number of bytes in a character class name.  We have no
       fixed limit, 2048 is a high number.  */
    
    
    
    /* These values are implementation-specific,
       and may vary within the implementation.
       Their precise values can be obtained from sysconf.  */
    # 88 "/usr/include/bits/posix2_lim.h" 3 4
    /* This value is defined like this in regex.h.  */
    # 150 "/usr/include/limits.h" 2 3 4
    # 123 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 2 3 4
    # 8 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/syslimits.h" 2 3 4
    # 12 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 2 3 4
    
    
    
    
    /* Number of bits in a `char'.  */
    
    
    
    /* Maximum length of a multibyte character.  */
    
    
    
    
    /* Minimum and maximum values a `signed char' can hold.  */
    
    
    
    
    
    /* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
    
    
    
    
    
    
    
    /* Minimum and maximum values a `char' can hold.  */
    # 56 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 3 4
    /* Minimum and maximum values a `signed short int' can hold.  */
    
    
    
    
    
    /* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
    
    
    
    
    
    
    
    /* Minimum and maximum values a `signed int' can hold.  */
    
    
    
    
    
    /* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
    
    
    
    /* Minimum and maximum values a `signed long int' can hold.
       (Same as `int').  */
    
    
    
    
    
    /* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
    # 116 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include-fixed/limits.h" 3 4
    /* This administrivia gets added to the end of limits.h
       if the system has its own version of limits.h.  */
    # 52 "runtime/random_inc.h" 2
    
    
    
    # 1 "/usr/include/stdint.h" 1 3 4
    /* Copyright (C) 1997,1998,1999,2000,2001,2006 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *	ISO C99: 7.18 Integer types <stdint.h>
     */
    
    
    
    
    # 1 "/usr/include/features.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 27 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wchar.h" 1 3 4
    /* wchar_t type related definitions.
       Copyright (C) 2000 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    
    
    
    /* Use GCC's __WCHAR_MAX__ when available.  */
    
    
    
    
    
    
    /* GCC may also define __WCHAR_UNSIGNED__.
       Use L'\0' to give the expression the correct (unsigned) type.  */
    # 28 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    /* Determine the wordsize from the preprocessor defines.  */
    # 29 "/usr/include/stdint.h" 2 3 4
    
    /* Exact integral types.  */
    
    /* Signed.  */
    
    /* There is some amount of overlap with <sys/types.h> as known by inet code */
    
    
    typedef signed char int8_t;
    typedef short int int16_t;
    typedef int int32_t;
    
    typedef long int int64_t;
    
    
    
    
    
    
    /* Unsigned.  */
    typedef unsigned char uint8_t;
    typedef unsigned short int uint16_t;
    
    typedef unsigned int uint32_t;
    
    
    
    typedef unsigned long int uint64_t;
    
    
    
    
    
    
    /* Small types.  */
    
    /* Signed.  */
    typedef signed char int_least8_t;
    typedef short int int_least16_t;
    typedef int int_least32_t;
    
    typedef long int int_least64_t;
    
    
    
    
    
    /* Unsigned.  */
    typedef unsigned char uint_least8_t;
    typedef unsigned short int uint_least16_t;
    typedef unsigned int uint_least32_t;
    
    typedef unsigned long int uint_least64_t;
    
    
    
    
    
    
    /* Fast types.  */
    
    /* Signed.  */
    typedef signed char int_fast8_t;
    
    typedef long int int_fast16_t;
    typedef long int int_fast32_t;
    typedef long int int_fast64_t;
    
    
    
    
    
    
    
    /* Unsigned.  */
    typedef unsigned char uint_fast8_t;
    
    typedef unsigned long int uint_fast16_t;
    typedef unsigned long int uint_fast32_t;
    typedef unsigned long int uint_fast64_t;
    # 117 "/usr/include/stdint.h" 3 4
    /* Types for `void *' pointers.  */
    
    
    typedef long int intptr_t;
    
    
    typedef unsigned long int uintptr_t;
    # 133 "/usr/include/stdint.h" 3 4
    /* Largest integral types.  */
    
    typedef long int intmax_t;
    typedef unsigned long int uintmax_t;
    # 145 "/usr/include/stdint.h" 3 4
    /* The ISO C99 standard specifies that in C++ implementations these
       macros should only be defined if explicitly requested.  */
    # 157 "/usr/include/stdint.h" 3 4
    /* Limits of integral types.  */
    
    /* Minimum of signed integral types.  */
    
    
    
    
    /* Maximum of signed integral types.  */
    
    
    
    
    
    /* Maximum of unsigned integral types.  */
    
    
    
    
    
    
    /* Minimum of signed integral types having a minimum size.  */
    
    
    
    
    /* Maximum of signed integral types having a minimum size.  */
    
    
    
    
    
    /* Maximum of unsigned integral types having a minimum size.  */
    
    
    
    
    
    
    /* Minimum of fast signed integral types having a minimum size.  */
    # 205 "/usr/include/stdint.h" 3 4
    /* Maximum of fast signed integral types having a minimum size.  */
    # 216 "/usr/include/stdint.h" 3 4
    /* Maximum of fast unsigned integral types having a minimum size.  */
    # 228 "/usr/include/stdint.h" 3 4
    /* Values to test for integral types holding `void *' pointer.  */
    # 240 "/usr/include/stdint.h" 3 4
    /* Minimum for largest signed integral type.  */
    
    /* Maximum for largest signed integral type.  */
    
    
    /* Maximum for largest unsigned integral type.  */
    
    
    
    /* Limits of other integer types.  */
    
    /* Limits of `ptrdiff_t' type.  */
    # 260 "/usr/include/stdint.h" 3 4
    /* Limits of `sig_atomic_t'.  */
    
    
    
    /* Limit of `size_t' type.  */
    
    
    
    
    
    
    /* Limits of `wchar_t'.  */
    
    /* These constants might also be defined in <wchar.h>.  */
    
    
    
    
    /* Limits of `wint_t'.  */
    
    
    
    
    
    
    /* The ISO C99 standard specifies that in C++ implementations these
       should only be defined if explicitly requested.  */
    
    
    /* Signed.  */
    # 299 "/usr/include/stdint.h" 3 4
    /* Unsigned.  */
    # 309 "/usr/include/stdint.h" 3 4
    /* Maximal type.  */
    # 56 "runtime/random_inc.h" 2
    
    
    
    
    
    
    
    # 1 "/usr/include/string.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2004,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *	ISO C99 Standard: 7.21 String handling	<string.h>
     */
    
    
    
    
    # 1 "/usr/include/features.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 27 "/usr/include/string.h" 2 3 4
    
    
    
    /* Get size_t and NULL from <stddef.h>.  */
    
    
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 1 3 4
    /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
       Free Software Foundation, Inc.
    
    This file is part of GCC.
    
    GCC is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
    
    GCC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    Under Section 7 of GPL version 3, you are granted additional
    permissions described in the GCC Runtime Library Exception, version
    3.1, as published by the Free Software Foundation.
    
    You should have received a copy of the GNU General Public License and
    a copy of the GCC Runtime Library Exception along with this program;
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
    
    /*
     * ISO C Standard:  7.17  Common definitions  <stddef.h>
     */
    
    
    
    
    
    
    /* Any one of these symbols __need_* means that GNU libc
       wants us just to define one data type.  So don't define
       the symbols that indicate this file's entire job has been done.  */
    # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* This avoids lossage on SunOS but only if stdtypes.h comes first.
       There's no way to win with the other order!  Sun lossage.  */
    
    /* On 4.3bsd-net2, make sure ansi.h is included, so we have
       one less case to deal with in the following.  */
    
    
    
    /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
    
    
    
    
    /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
       defined if the corresponding type is *not* defined.
       FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_ */
    # 94 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
       Just ignore it.  */
    
    
    
    
    /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
       _TYPE_size_t which will typedef size_t.  fixincludes patched the
       vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
       not defined, and so that defining this macro defines _GCC_SIZE_T.
       If we find that the macros are still defined at this point, we must
       invoke them so that the type is defined as expected.  */
    # 119 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* In case nobody has defined these types, but we aren't running under
       GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
       __WCHAR_TYPE__ have reasonable values.  This can happen if the
       parts of GCC is compiled by an older compiler, that actually
       include gstddef.h, such as collect2.  */
    
    /* Signed type of difference of two pointers.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 164 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Unsigned type of `sizeof' something.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    typedef long unsigned int size_t;
    # 237 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Wide character type.
       Locale-writers should change this as necessary to
       be big enough to hold unique values not between 0 and 127,
       and not (wchar_t) -1, for each defined multibyte character.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 357 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /*  In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
        are already defined.  */
    /*  BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.  */
    # 392 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* A null pointer constant.  */
    # 34 "/usr/include/string.h" 2 3 4
    
    /* Tell the caller that we provide correct C++ prototypes.  */
    
    
    
    
    
    
    /* Copy N bytes of SRC to DEST.  */
    extern void *memcpy (void *__restrict __dest,
           __const void *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Copy N bytes of SRC to DEST, guaranteeing
       correct behavior for overlapping strings.  */
    extern void *memmove (void *__dest, __const void *__src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    /* Copy no more than N bytes of SRC to DEST, stopping when C is found.
       Return the position in DEST one byte past where C was copied,
       or NULL if C was not found in the first N bytes of SRC.  */
    
    extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
            int __c, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    /* Set N bytes of S to C.  */
    extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    /* Compare N bytes of S1 and S2.  */
    extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Search N bytes of S for C.  */
    # 94 "/usr/include/string.h" 3 4
    extern void *memchr (__const void *__s, int __c, size_t __n)
          __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 125 "/usr/include/string.h" 3 4
    
    /* Copy SRC to DEST.  */
    extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Copy no more than N characters of SRC to DEST.  */
    extern char *strncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Append SRC onto DEST.  */
    extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Append no more than N characters from SRC onto DEST.  */
    extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
            size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Compare S1 and S2.  */
    extern int strcmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Compare N characters of S1 and S2.  */
    extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Compare the collated forms of S1 and S2.  */
    extern int strcoll (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Put a transformation of SRC into no more than N bytes of DEST.  */
    extern size_t strxfrm (char *__restrict __dest,
             __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    /* The following functions are equivalent to the both above but they
       take the locale they use for the collation as an extra argument.
       This is not standardsized but something like will come.  */
    # 1 "/usr/include/xlocale.h" 1 3 4
    /* Definition of locale datatype.
       Copyright (C) 1997,2000,2002,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
       Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    
    
    
    /* Structure for reentrant locale using functions.  This is an
       (almost) opaque type for the user level programs.  The file and
       this data structure is not standardized.  Don't rely on it.  It can
       go away without warning.  */
    typedef struct __locale_struct
    {
      /* Note: LC_ALL is not a valid index into this array.  */
      struct locale_data *__locales[13]; /* 13 = __LC_LAST. */
    
      /* To increase the speed of this solution we add some special members.  */
      const unsigned short int *__ctype_b;
      const int *__ctype_tolower;
      const int *__ctype_toupper;
    
      /* Note: LC_ALL is not a valid index into this array.  */
      const char *__names[13];
    } *__locale_t;
    
    /* POSIX 2008 makes locale_t official.  */
    typedef __locale_t locale_t;
    # 162 "/usr/include/string.h" 2 3 4
    
    /* Compare the collated forms of S1 and S2 using rules from L.  */
    extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
    /* Put a transformation of SRC into no more than N bytes of DEST.  */
    extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
        __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    
    
    
    /* Duplicate S, returning an identical malloc'd string.  */
    extern char *strdup (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    
    
    /* Return a malloc'd copy of at most N bytes of STRING.  The
       resultant string is terminated even if no null terminator
       appears before STRING[N].  */
    
    extern char *strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    # 208 "/usr/include/string.h" 3 4
    
    /* Find the first occurrence of C in S.  */
    # 233 "/usr/include/string.h" 3 4
    extern char *strchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    /* Find the last occurrence of C in S.  */
    # 260 "/usr/include/string.h" 3 4
    extern char *strrchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 279 "/usr/include/string.h" 3 4
    
    /* Return the length of the initial segment of S which
       consists entirely of characters not in REJECT.  */
    extern size_t strcspn (__const char *__s, __const char *__reject)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Return the length of the initial segment of S which
       consists entirely of characters in ACCEPT.  */
    extern size_t strspn (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    /* Find the first occurrence in S of any character in ACCEPT.  */
    # 312 "/usr/include/string.h" 3 4
    extern char *strpbrk (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Find the first occurrence of NEEDLE in HAYSTACK.  */
    # 340 "/usr/include/string.h" 3 4
    extern char *strstr (__const char *__haystack, __const char *__needle)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    /* Divide S into tokens separated by characters in DELIM.  */
    extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    /* Divide S into tokens separated by characters in DELIM.  Information
       passed between calls are stored in SAVE_PTR.  */
    extern char *__strtok_r (char *__restrict __s,
        __const char *__restrict __delim,
        char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    
    extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
             char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    # 395 "/usr/include/string.h" 3 4
    
    /* Return the length of S.  */
    extern size_t strlen (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    /* Find the length of STRING, but scan at most MAXLEN characters.
       If no '\0' terminator is found in that many characters, return MAXLEN.  */
    extern size_t strnlen (__const char *__string, size_t __maxlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    /* Return a string describing the meaning of the `errno' code in ERRNUM.  */
    extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
    
    
    /* Reentrant version of `strerror'.
       There are 2 flavors of `strerror_r', GNU which returns the string
       and may or may not use the supplied temporary buffer and POSIX one
       which fills the string into the buffer.
       To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L
       without -D_GNU_SOURCE is needed, otherwise the GNU version is
       preferred.  */
    
    /* Fill BUF with a string describing the meaning of the `errno' code in
       ERRNUM.  */
    
    extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    # 442 "/usr/include/string.h" 3 4
    /* Translate error number to string according to the locale L.  */
    extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
    
    
    
    /* We define this function always since `bzero' is sometimes needed when
       the namespace rules does not allow this.  */
    extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    /* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
    extern void bcopy (__const void *__src, void *__dest, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Set N bytes of S to 0.  */
    extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    /* Compare N bytes of S1 and S2 (same as memcmp).  */
    extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Find the first occurrence of C in S (same as strchr).  */
    # 487 "/usr/include/string.h" 3 4
    extern char *index (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    /* Find the last occurrence of C in S (same as strrchr).  */
    # 515 "/usr/include/string.h" 3 4
    extern char *rindex (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    /* Return the position of the first bit set in I, or 0 if none are set.
       The least-significant bit is position 1, the most-significant 32.  */
    extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    /* The following two functions are non-standard but necessary for non-32 bit
       platforms.  */
    # 533 "/usr/include/string.h" 3 4
    /* Compare S1 and S2, ignoring case.  */
    extern int strcasecmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Compare no more than N chars of S1 and S2, ignoring case.  */
    extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 555 "/usr/include/string.h" 3 4
    /* Return the next DELIM-delimited token from *STRINGP,
       terminating it with a '\0', and update *STRINGP to point past it.  */
    extern char *strsep (char **__restrict __stringp,
           __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    /* Return a string describing the meaning of the signal number in SIG.  */
    extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
    
    /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
    extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    /* Copy no more than N characters of SRC to DEST, returning the address of
       the last character written into DEST.  */
    extern char *__stpncpy (char *__restrict __dest,
       __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 644 "/usr/include/string.h" 3 4
    
    # 64 "runtime/random_inc.h" 2
    
    /*****************************************************************************/
    
    
    
    
    
    
    
    /*****************************************************************************/
    # 93 "runtime/random_inc.h"
    # 1 "runtime/platform_generic.h" 1
    /* -*- mode: C -*-
     *
     *
     * Copyright (c) 2007, 2008 The University of Utah
     * All rights reserved.
     *
     * This file is part of `csmith', a random generator of C programs.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are met:
     *
     *   * Redistributions of source code must retain the above copyright notice,
     *     this list of conditions and the following disclaimer.
     *
     *   * Redistributions in binary form must reproduce the above copyright
     *     notice, this list of conditions and the following disclaimer in the
     *     documentation and/or other materials provided with the distribution.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     * POSSIBILITY OF SUCH DAMAGE.
     */
    
    
    
    
    /*****************************************************************************/
    
    
    
    
    # 1 "/usr/include/stdio.h" 1 3 4
    /* Define ISO C stdio on top of C++ iostreams.
       Copyright (C) 1991, 1994-2007, 2008, 2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *	ISO C99 Standard: 7.19 Input/output	<stdio.h>
     */
    
    
    
    
    
    # 1 "/usr/include/features.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 29 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 1 3 4
    /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
       Free Software Foundation, Inc.
    
    This file is part of GCC.
    
    GCC is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
    
    GCC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    Under Section 7 of GPL version 3, you are granted additional
    permissions described in the GCC Runtime Library Exception, version
    3.1, as published by the Free Software Foundation.
    
    You should have received a copy of the GNU General Public License and
    a copy of the GCC Runtime Library Exception along with this program;
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
    
    /*
     * ISO C Standard:  7.17  Common definitions  <stddef.h>
     */
    
    
    
    
    
    
    /* Any one of these symbols __need_* means that GNU libc
       wants us just to define one data type.  So don't define
       the symbols that indicate this file's entire job has been done.  */
    # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* This avoids lossage on SunOS but only if stdtypes.h comes first.
       There's no way to win with the other order!  Sun lossage.  */
    
    /* On 4.3bsd-net2, make sure ansi.h is included, so we have
       one less case to deal with in the following.  */
    
    
    
    /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
    
    
    
    
    /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
       defined if the corresponding type is *not* defined.
       FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_ */
    # 94 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
       Just ignore it.  */
    
    
    
    
    /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
       _TYPE_size_t which will typedef size_t.  fixincludes patched the
       vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
       not defined, and so that defining this macro defines _GCC_SIZE_T.
       If we find that the macros are still defined at this point, we must
       invoke them so that the type is defined as expected.  */
    # 119 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* In case nobody has defined these types, but we aren't running under
       GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
       __WCHAR_TYPE__ have reasonable values.  This can happen if the
       parts of GCC is compiled by an older compiler, that actually
       include gstddef.h, such as collect2.  */
    
    /* Signed type of difference of two pointers.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 164 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Unsigned type of `sizeof' something.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 237 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Wide character type.
       Locale-writers should change this as necessary to
       be big enough to hold unique values not between 0 and 127,
       and not (wchar_t) -1, for each defined multibyte character.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 357 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /*  In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
        are already defined.  */
    /*  BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.  */
    # 392 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* A null pointer constant.  */
    # 35 "/usr/include/stdio.h" 2 3 4
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    /* bits/types.h -- definitions of __*_t types underlying *_t types.
       Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     * Never include this file directly; use <sys/types.h> instead.
     */
    
    
    
    
    # 1 "/usr/include/features.h" 1 3 4
    /* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 28 "/usr/include/bits/types.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    /* Determine the wordsize from the preprocessor defines.  */
    # 29 "/usr/include/bits/types.h" 2 3 4
    
    /* Convenience types.  */
    typedef unsigned char __u_char;
    typedef unsigned short int __u_short;
    typedef unsigned int __u_int;
    typedef unsigned long int __u_long;
    
    /* Fixed-size types, underlying types depend on word size and compiler.  */
    typedef signed char __int8_t;
    typedef unsigned char __uint8_t;
    typedef signed short int __int16_t;
    typedef unsigned short int __uint16_t;
    typedef signed int __int32_t;
    typedef unsigned int __uint32_t;
    
    typedef signed long int __int64_t;
    typedef unsigned long int __uint64_t;
    
    
    
    
    
    /* quad_t is also 64 bits.  */
    
    typedef long int __quad_t;
    typedef unsigned long int __u_quad_t;
    # 70 "/usr/include/bits/types.h" 3 4
    /* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
       macros for each of the OS types we define below.  The definitions
       of those macros must use the following macros for underlying types.
       We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
       variants of each of the following integer types on this machine.
    
    	16		-- "natural" 16-bit type (always short)
    	32		-- "natural" 32-bit type (always int)
    	64		-- "natural" 64-bit type (long or long long)
    	LONG32		-- 32-bit type, traditionally long
    	QUAD		-- 64-bit type, always long long
    	WORD		-- natural type of __WORDSIZE bits (int or long)
    	LONGWORD	-- type of __WORDSIZE bits, traditionally long
    
       We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
       conventional uses of `long' or `long long' type modifiers match the
       types we define, even when a less-adorned type would be the same size.
       This matters for (somewhat) portably writing printf/scanf formats for
       these types, where using the appropriate l or ll format modifiers can
       make the typedefs and the formats match up across all GNU platforms.  If
       we used `long' when it's 64 bits where `long long' is expected, then the
       compiler would warn about the formats not matching the argument types,
       and the programmer changing them to shut up the compiler would break the
       program's portability.
    
       Here we assume what is presently the case in all the GCC configurations
       we support: long long is always 64 bits, long is always word/address size,
       and int is always 32 bits.  */
    # 126 "/usr/include/bits/types.h" 3 4
    /* No need to mark the typedef with __extension__.   */
    
    
    
    
    # 1 "/usr/include/bits/typesizes.h" 1 3 4
    /* bits/typesizes.h -- underlying types for *_t.  Generic version.
       Copyright (C) 2002, 2003 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 27 "/usr/include/bits/typesizes.h" 3 4
    /* See <bits/types.h> for the meaning of these macros.  This file exists so
       that <bits/types.h> need not vary across different GNU platforms.  */
    # 62 "/usr/include/bits/typesizes.h" 3 4
    /* Number of descriptors that can fit in an `fd_set'.  */
    # 132 "/usr/include/bits/types.h" 2 3 4
    
    
    typedef unsigned long int __dev_t; /* Type of device numbers.  */
    typedef unsigned int __uid_t; /* Type of user identifications.  */
    typedef unsigned int __gid_t; /* Type of group identifications.  */
    typedef unsigned long int __ino_t; /* Type of file serial numbers.  */
    typedef unsigned long int __ino64_t; /* Type of file serial numbers (LFS).*/
    typedef unsigned int __mode_t; /* Type of file attribute bitmasks.  */
    typedef unsigned long int __nlink_t; /* Type of file link counts.  */
    typedef long int __off_t; /* Type of file sizes and offsets.  */
    typedef long int __off64_t; /* Type of file sizes and offsets (LFS).  */
    typedef int __pid_t; /* Type of process identifications.  */
    typedef struct { int __val[2]; } __fsid_t; /* Type of file system IDs.  */
    typedef long int __clock_t; /* Type of CPU usage counts.  */
    typedef unsigned long int __rlim_t; /* Type for resource measurement.  */
    typedef unsigned long int __rlim64_t; /* Type for resource measurement (LFS).  */
    typedef unsigned int __id_t; /* General type for IDs.  */
    typedef long int __time_t; /* Seconds since the Epoch.  */
    typedef unsigned int __useconds_t; /* Count of microseconds.  */
    typedef long int __suseconds_t; /* Signed count of microseconds.  */
    
    typedef int __daddr_t; /* The type of a disk address.  */
    typedef long int __swblk_t; /* Type of a swap block maybe?  */
    typedef int __key_t; /* Type of an IPC key.  */
    
    /* Clock ID used in clock and timer functions.  */
    typedef int __clockid_t;
    
    /* Timer ID returned by `timer_create'.  */
    typedef void * __timer_t;
    
    /* Type to represent block size.  */
    typedef long int __blksize_t;
    
    /* Types from the Large File Support interface.  */
    
    /* Type to count number of disk blocks.  */
    typedef long int __blkcnt_t;
    typedef long int __blkcnt64_t;
    
    /* Type to count file system blocks.  */
    typedef unsigned long int __fsblkcnt_t;
    typedef unsigned long int __fsblkcnt64_t;
    
    /* Type to count file system nodes.  */
    typedef unsigned long int __fsfilcnt_t;
    typedef unsigned long int __fsfilcnt64_t;
    
    typedef long int __ssize_t; /* Type of a byte count, or error.  */
    
    /* These few don't really vary by system, they always correspond
       to one of the other defined types.  */
    typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS).  */
    typedef __quad_t *__qaddr_t;
    typedef char *__caddr_t;
    
    /* Duplicates info from stdint.h but this is used in unistd.h.  */
    typedef long int __intptr_t;
    
    /* Duplicate info from sys/socket.h.  */
    typedef unsigned int __socklen_t;
    # 37 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    
    
    /* Define outside of namespace so the C++ is happy.  */
    struct _IO_FILE;
    
    
    /* The opaque type of streams.  This is the definition used elsewhere.  */
    typedef struct _IO_FILE FILE;
    
    
    
    
    
    # 64 "/usr/include/stdio.h" 3 4
    /* The opaque type of streams.  This is the definition used elsewhere.  */
    typedef struct _IO_FILE __FILE;
    # 75 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/libio.h" 1 3 4
    /* Copyright (C) 1991-1995,1997-2006,2007,2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
       Written by Per Bothner <bothner@cygnus.com>.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.
    
       As a special exception, if you link the code in this file with
       files compiled with a GNU compiler to produce an executable,
       that does not cause the resulting executable to be covered by
       the GNU Lesser General Public License.  This exception does not
       however invalidate any other reasons why the executable file
       might be covered by the GNU Lesser General Public License.
       This exception applies to code released by its copyright holders
       in files containing the exception.  */
    
    
    
    
    # 1 "/usr/include/_G_config.h" 1 3 4
    /* This file is needed by libio to define various configuration parameters.
       These are always the same in the GNU C library.  */
    
    
    
    
    /* Define types for libio in terms of the standard internal type names.  */
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    /* bits/types.h -- definitions of __*_t types underlying *_t types.
       Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     * Never include this file directly; use <sys/types.h> instead.
     */
    # 10 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 1 3 4
    /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
       Free Software Foundation, Inc.
    
    This file is part of GCC.
    
    GCC is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
    
    GCC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    Under Section 7 of GPL version 3, you are granted additional
    permissions described in the GCC Runtime Library Exception, version
    3.1, as published by the Free Software Foundation.
    
    You should have received a copy of the GNU General Public License and
    a copy of the GCC Runtime Library Exception along with this program;
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
    
    /*
     * ISO C Standard:  7.17  Common definitions  <stddef.h>
     */
    
    
    
    
    
    
    /* Any one of these symbols __need_* means that GNU libc
       wants us just to define one data type.  So don't define
       the symbols that indicate this file's entire job has been done.  */
    # 49 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* This avoids lossage on SunOS but only if stdtypes.h comes first.
       There's no way to win with the other order!  Sun lossage.  */
    
    /* On 4.3bsd-net2, make sure ansi.h is included, so we have
       one less case to deal with in the following.  */
    
    
    
    /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
    
    
    
    
    /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
       defined if the corresponding type is *not* defined.
       FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_ */
    # 94 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
       Just ignore it.  */
    
    
    
    
    /* On VxWorks, <type/vxTypesBase.h> may have defined macros like
       _TYPE_size_t which will typedef size_t.  fixincludes patched the
       vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
       not defined, and so that defining this macro defines _GCC_SIZE_T.
       If we find that the macros are still defined at this point, we must
       invoke them so that the type is defined as expected.  */
    # 119 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* In case nobody has defined these types, but we aren't running under
       GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
       __WCHAR_TYPE__ have reasonable values.  This can happen if the
       parts of GCC is compiled by an older compiler, that actually
       include gstddef.h, such as collect2.  */
    
    /* Signed type of difference of two pointers.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 164 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Unsigned type of `sizeof' something.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 237 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* Wide character type.
       Locale-writers should change this as necessary to
       be big enough to hold unique values not between 0 and 127,
       and not (wchar_t) -1, for each defined multibyte character.  */
    
    /* Define this type if we are doing the whole job,
       or if we want this type in particular.  */
    # 357 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /*  In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
        are already defined.  */
    /*  BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.  */
    # 392 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h" 3 4
    /* A null pointer constant.  */
    # 16 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/wchar.h" 1 3 4
    /* Copyright (C) 1995-2008, 2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    /*
     *      ISO C99 Standard: 7.24
     *	Extended multibyte and wide character utilities	<wchar.h>
     */
    # 82 "/usr/include/wchar.h" 3 4
    /* Conversion state information.  */
    typedef struct
    {
      int __count;
      union
      {
    
        unsigned int __wch;
    
    
    
        char __wchb[4];
      } __value; /* Value so far.  */
    } __mbstate_t;
    
    
    
    
    /* The rest of the file is only used if used if __need_mbstate_t is not
       defined.  */
    # 895 "/usr/include/wchar.h" 3 4
    /* Undefined all __need_* constants in case we are included to get those
       constants but the whole file was already read.  */
    # 21 "/usr/include/_G_config.h" 2 3 4
    
    typedef struct
    {
      __off_t __pos;
      __mbstate_t __state;
    } _G_fpos_t;
    typedef struct
    {
      __off64_t __pos;
      __mbstate_t __state;
    } _G_fpos64_t;
    # 53 "/usr/include/_G_config.h" 3 4
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
    typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
    typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
    
    
    
    
    /* These library features are always available in the GNU C library.  */
    # 82 "/usr/include/_G_config.h" 3 4
    /* This is defined by <bits/stat.h> if `st_blksize' exists.  */
    
    
    
    
    /* These are the vtbl details for ELF.  */
    # 33 "/usr/include/libio.h" 2 3 4
    /* ALL of these should be defined in _G_config.h */
    # 51 "/usr/include/libio.h" 3 4
    /* This define avoids name pollution if we're using GNU stdarg.h */
    
    # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stdarg.h" 1 3 4
    /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
    
    This file is part of GCC.
    
    GCC is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3, or (at your option)
    any later version.
    
    GCC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    Under Section 7 of GPL version 3, you are granted additional
    permissions described in the GCC Runtime Library Exception, version
    3.1, as published by the Free Software Foundation.
    
    You should have received a copy of the GNU General Public License and
    a copy of the GCC Runtime Library Exception along with this program;
    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    <http://www.gnu.org/licenses/>.  */
    
    /*
     * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
     */
    # 36 "/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stdarg.h" 3 4
    /* Define __gnuc_va_list.  */
    
    
    
    typedef __builtin_va_list __gnuc_va_list;
    
    
    /* Define the standard macros for the user,
       if this invocation was from the user program.  */
    # 54 "/usr/include/libio.h" 2 3 4
    # 74 "/usr/include/libio.h" 3 4
    /* For backward compatibility */
    # 114 "/usr/include/libio.h" 3 4
    /* Magic numbers and bits for the _flags field.
       The magic numbers use the high-order bits of _flags;
       the remaining bits are available for variable flags.
       Note: The magic numbers must all be negative if stdio
       emulation is desired. */
    # 150 "/usr/include/libio.h" 3 4
    /* These are "formatting flags" matching the iostream fmtflags enum values. */
    # 170 "/usr/include/libio.h" 3 4
    struct _IO_jump_t; struct _IO_FILE;
    
    /* Handle lock.  */
    
    
    
    
    
    
    
    typedef void _IO_lock_t;
    
    
    
    /* A streammarker remembers a position in a buffer. */
    
    struct _IO_marker {
      struct _IO_marker *_next;
      struct _IO_FILE *_sbuf;
      /* If _pos >= 0
     it points to _buf->Gbase()+_pos. FIXME comment */
      /* if _pos < 0, it points to _buf->eBptr()+_pos. FIXME comment */
      int _pos;
    # 203 "/usr/include/libio.h" 3 4
    };
    
    /* This is the structure from the libstdc++ codecvt class.  */
    enum __codecvt_result
    {
      __codecvt_ok,
      __codecvt_partial,
      __codecvt_error,
      __codecvt_noconv
    };
    # 271 "/usr/include/libio.h" 3 4
    struct _IO_FILE {
      int _flags; /* High-order word is _IO_MAGIC; rest is flags. */
    
    
      /* The following pointers correspond to the C++ streambuf protocol. */
      /* Note:  Tk uses the _IO_read_ptr and _IO_read_end fields directly. */
      char* _IO_read_ptr; /* Current read pointer */
      char* _IO_read_end; /* End of get area. */
      char* _IO_read_base; /* Start of putback+get area. */
      char* _IO_write_base; /* Start of put area. */
      char* _IO_write_ptr; /* Current put pointer. */
      char* _IO_write_end; /* End of put area. */
      char* _IO_buf_base; /* Start of reserve area. */
      char* _IO_buf_end; /* End of reserve area. */
      /* The following fields are used to support backing up and undo. */
      char *_IO_save_base; /* Pointer to start of non-current get area. */
      char *_IO_backup_base; /* Pointer to first valid character of backup area */
      char *_IO_save_end; /* Pointer to end of non-current get area. */
    
      struct _IO_marker *_markers;
    
      struct _IO_FILE *_chain;
    
      int _fileno;
    
    
    
      int _flags2;
    
      __off_t _old_offset; /* This used to be _offset but it's too small.  */
    
    
      /* 1+column number of pbase(); 0 is unknown. */
      unsigned short _cur_column;
      signed char _vtable_offset;
      char _shortbuf[1];
    
      /*  char* _save_gptr;  char* _save_egptr; */
    
      _IO_lock_t *_lock;
    # 319 "/usr/include/libio.h" 3 4
      __off64_t _offset;
    # 328 "/usr/include/libio.h" 3 4
      void *__pad1;
      void *__pad2;
      void *__pad3;
      void *__pad4;
      size_t __pad5;
    
      int _mode;
      /* Make sure we don't get into trouble again.  */
      char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
    
    };
    
    
    typedef struct _IO_FILE _IO_FILE;
    
    
    struct _IO_FILE_plus;
    
    extern struct _IO_FILE_plus _IO_2_1_stdin_;
    extern struct _IO_FILE_plus _IO_2_1_stdout_;
    extern struct _IO_FILE_plus _IO_2_1_stderr_;
    # 360 "/usr/include/libio.h" 3 4
    /* Functions to do I/O and file management for a stream.  */
    
    /* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
       Return number of bytes read.  */
    typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
    
    /* Write N bytes pointed to by BUF to COOKIE.  Write all N bytes
       unless there is an error.  Return number of bytes written, or -1 if
       there is an error without writing anything.  If the file has been
       opened for append (__mode.__append set), then set the file pointer
       to the end of the file and then do the write; if not, just write at
       the current file pointer.  */
    typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
         size_t __n);
    
    /* Move COOKIE's file position to *POS bytes from the
       beginning of the file (if W is SEEK_SET),
       the current position (if W is SEEK_CUR),
       or the end of the file (if W is SEEK_END).
       Set *POS to the new file position.
       Returns zero if successful, nonzero if not.  */
    typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
    
    /* Close COOKIE.  */
    typedef int __io_close_fn (void *__cookie);
    # 416 "/usr/include/libio.h" 3 4
    extern int __underflow (_IO_FILE *);
    extern int __uflow (_IO_FILE *);
    extern int __overflow (_IO_FILE *, int);
    # 460 "/usr/include/libio.h" 3 4
    extern int _IO_getc (_IO_FILE *__fp);
    extern int _IO_putc (int __c, _IO_FILE *__fp);
    extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    
    extern int _IO_peekc_locked (_IO_FILE *__fp);
    
    /* This one is for Emacs. */
    
    
    
    extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    # 490 "/usr/include/libio.h" 3 4
    extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
       __gnuc_va_list, int *__restrict);
    extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
        __gnuc_va_list);
    extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
    extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
    
    extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
    extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
    
    extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
    # 76 "/usr/include/stdio.h" 2 3 4
    # 88 "/usr/include/stdio.h" 3 4
    /* The type of the second argument to `fgetpos' and `fsetpos'.  */
    
    
    typedef _G_fpos_t fpos_t;
    
    
    
    
    
    
    
    
    /* The possibilities for the third argument to `setvbuf'.  */
    
    
    
    
    
    /* Default buffer size.  */
    
    
    
    
    
    /* End of file character.
       Some things throughout the library rely on this being -1.  */
    
    
    
    
    
    /* The possibilities for the third argument to `fseek'.
       These values should not be changed.  */
    
    
    
    
    
    
    /* Default path prefix for `tempnam' and `tmpnam'.  */
    
    
    
    
    /* Get the values:
       L_tmpnam	How long an array of chars must be to be passed to `tmpnam'.
       TMP_MAX	The minimum number of unique filenames generated by tmpnam
       		(and tempnam when it uses tmpnam's name space),
    		or tempnam (the two are separate).
       L_ctermid	How long an array to pass to `ctermid'.
       L_cuserid	How long an array to pass to `cuserid'.
       FOPEN_MAX	Minimum number of files that can be open at once.
       FILENAME_MAX	Maximum length of a filename.  */
    # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
    /* Copyright (C) 1994, 1997, 1998, 1999, 2009 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    # 142 "/usr/include/stdio.h" 2 3 4
    
    
    /* Standard streams.  */
    extern struct _IO_FILE *stdin; /* Standard input stream.  */
    extern struct _IO_FILE *stdout; /* Standard output stream.  */
    extern struct _IO_FILE *stderr; /* Standard error output stream.  */
    /* C89/C99 say they're macros.  Make them happy.  */
    
    
    
    
    
    /* Remove file FILENAME.  */
    extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
    /* Rename file OLD to NEW.  */
    extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    /* Rename file OLD relative to OLDFD to NEW relative to NEWFD.  */
    extern int renameat (int __oldfd, __const char *__old, int __newfd,
           __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    /* Create a temporary file and open it read/write.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    
    extern FILE *tmpfile (void) ;
    # 185 "/usr/include/stdio.h" 3 4
    /* Generate a temporary filename.  */
    extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;
    
    
    
    /* This is the reentrant variant of `tmpnam'.  The only difference is
       that it does not allow S to be NULL.  */
    extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;
    
    
    
    
    /* Generate a unique temporary filename using up to five characters of PFX
       if it is not NULL.  The directory to put this file in is searched for
       as follows: First the environment variable "TMPDIR" is checked.
       If it contains the name of a writable directory, that directory is used.
       If not and if DIR is not NULL, that value is checked.  If that fails,
       P_tmpdir is tried and finally "/tmp".  The storage for the filename
       is allocated by `malloc'.  */
    extern char *tempnam (__const char *__dir, __const char *__pfx)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
    
    
    
    
    /* Close STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fclose (FILE *__stream);
    /* Flush STREAM, or all streams if STREAM is NULL.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fflush (FILE *__stream);
    
    
    
    /* Faster versions when locking is not required.
    
       This function is not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation it is a cancellation point and
       therefore not marked with __THROW.  */
    extern int fflush_unlocked (FILE *__stream);
    # 243 "/usr/include/stdio.h" 3 4
    
    
    /* Open a file and create a new stream for it.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern FILE *fopen (__const char *__restrict __filename,
          __const char *__restrict __modes) ;
    /* Open a file, replacing an existing stream with it.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern FILE *freopen (__const char *__restrict __filename,
            __const char *__restrict __modes,
            FILE *__restrict __stream) ;
    # 272 "/usr/include/stdio.h" 3 4
    
    # 282 "/usr/include/stdio.h" 3 4
    /* Create a new stream that refers to an existing system file descriptor.  */
    extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;
    # 295 "/usr/include/stdio.h" 3 4
    /* Create a new stream that refers to a memory buffer.  */
    extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
      __attribute__ ((__nothrow__)) ;
    
    /* Open a stream that writes into a malloc'd buffer that is expanded as
       necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
       and the number of characters written on fflush or fclose.  */
    extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) ;
    
    
    
    
    /* If BUF is NULL, make STREAM unbuffered.
       Else make it use buffer BUF, of size BUFSIZ.  */
    extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
    /* Make STREAM use buffering mode MODE.
       If BUF is not NULL, use N bytes of it for buffering;
       else allocate an internal buffer N bytes long.  */
    extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
          int __modes, size_t __n) __attribute__ ((__nothrow__));
    
    
    
    /* If BUF is NULL, make STREAM unbuffered.
       Else make it use SIZE bytes of BUF for buffering.  */
    extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
             size_t __size) __attribute__ ((__nothrow__));
    
    /* Make STREAM line-buffered.  */
    extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    
    /* Write formatted output to STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fprintf (FILE *__restrict __stream,
          __const char *__restrict __format, ...);
    /* Write formatted output to stdout.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int printf (__const char *__restrict __format, ...);
    /* Write formatted output to S.  */
    extern int sprintf (char *__restrict __s,
          __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    
    /* Write formatted output to S from argument list ARG.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
           __gnuc_va_list __arg);
    /* Write formatted output to stdout from argument list ARG.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
    /* Write formatted output to S from argument list ARG.  */
    extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
           __gnuc_va_list __arg) __attribute__ ((__nothrow__));
    
    
    
    
    /* Maximum chars of output to write in MAXLEN.  */
    extern int snprintf (char *__restrict __s, size_t __maxlen,
           __const char *__restrict __format, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
    
    extern int vsnprintf (char *__restrict __s, size_t __maxlen,
            __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
    
    # 388 "/usr/include/stdio.h" 3 4
    /* Write formatted output to a file descriptor.
    
       These functions are not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation they are cancellation points and
       therefore not marked with __THROW.  */
    extern int vdprintf (int __fd, __const char *__restrict __fmt,
           __gnuc_va_list __arg)
         __attribute__ ((__format__ (__printf__, 2, 0)));
    extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
         __attribute__ ((__format__ (__printf__, 2, 3)));
    
    
    
    
    /* Read formatted input from STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fscanf (FILE *__restrict __stream,
         __const char *__restrict __format, ...) ;
    /* Read formatted input from stdin.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int scanf (__const char *__restrict __format, ...) ;
    /* Read formatted input from S.  */
    extern int sscanf (__const char *__restrict __s,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    
    
    
    
    
    /* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
       GNU extension which conflicts with valid %a followed by letter
       s, S or [.  */
    extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") ;
    
    
    extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") ;
    
    extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__));
    # 445 "/usr/include/stdio.h" 3 4
    
    
    
    
    /* Read formatted input from S into argument list ARG.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
          __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 2, 0))) ;
    
    /* Read formatted input from stdin into argument list ARG.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 1, 0))) ;
    
    /* Read formatted input from S into argument list ARG.  */
    extern int vsscanf (__const char *__restrict __s,
          __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    
    
    
    
    
    /* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
       GNU extension which conflicts with valid %a followed by letter
       s, S or [.  */
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0))) ;
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
    
         __attribute__ ((__format__ (__scanf__, 1, 0))) ;
    extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf")
    
    
    
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 504 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    /* Read a character from STREAM.
    
       These functions are possible cancellation points and therefore not
       marked with __THROW.  */
    extern int fgetc (FILE *__stream);
    extern int getc (FILE *__stream);
    
    /* Read a character from stdin.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int getchar (void);
    
    
    /* The C standard explicitly says this is a macro, so we always do the
       optimization for it.  */
    
    
    
    /* These are defined in POSIX.1:1996.
    
       These functions are possible cancellation points and therefore not
       marked with __THROW.  */
    extern int getc_unlocked (FILE *__stream);
    extern int getchar_unlocked (void);
    
    
    
    /* Faster version when locking is not necessary.
    
       This function is not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation it is a cancellation point and
       therefore not marked with __THROW.  */
    extern int fgetc_unlocked (FILE *__stream);
    
    
    
    
    /* Write a character to STREAM.
    
       These functions are possible cancellation points and therefore not
       marked with __THROW.
    
       These functions is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fputc (int __c, FILE *__stream);
    extern int putc (int __c, FILE *__stream);
    
    /* Write a character to stdout.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int putchar (int __c);
    
    
    /* The C standard explicitly says this can be a macro,
       so we always do the optimization for it.  */
    
    
    
    /* Faster version when locking is not necessary.
    
       This function is not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation it is a cancellation point and
       therefore not marked with __THROW.  */
    extern int fputc_unlocked (int __c, FILE *__stream);
    
    
    
    /* These are defined in POSIX.1:1996.
    
       These functions are possible cancellation points and therefore not
       marked with __THROW.  */
    extern int putc_unlocked (int __c, FILE *__stream);
    extern int putchar_unlocked (int __c);
    
    
    
    
    
    /* Get a word (int) from STREAM.  */
    extern int getw (FILE *__stream);
    
    /* Write a word (int) to STREAM.  */
    extern int putw (int __w, FILE *__stream);
    
    
    
    
    /* Get a newline-terminated string of finite length from STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
         ;
    
    /* Get a newline-terminated string from stdin, removing the newline.
       DO NOT USE THIS FUNCTION!!  There is no limit on how much it will read.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern char *gets (char *__s) ;
    
    # 628 "/usr/include/stdio.h" 3 4
    /* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
       (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
       NULL), pointing to *N characters of space.  It is realloc'd as
       necessary.  Returns the number of characters read (not including the
       null terminator), or -1 on error or EOF.
    
       These functions are not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation they are cancellation points and
       therefore not marked with __THROW.  */
    extern __ssize_t __getdelim (char **__restrict __lineptr,
              size_t *__restrict __n, int __delimiter,
              FILE *__restrict __stream) ;
    extern __ssize_t getdelim (char **__restrict __lineptr,
            size_t *__restrict __n, int __delimiter,
            FILE *__restrict __stream) ;
    
    /* Like `getdelim', but reads up to a newline.
    
       This function is not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation it is a cancellation point and
       therefore not marked with __THROW.  */
    extern __ssize_t getline (char **__restrict __lineptr,
           size_t *__restrict __n,
           FILE *__restrict __stream) ;
    
    
    
    
    /* Write a string to STREAM.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
    
    /* Write a string, followed by a newline, to stdout.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    extern int puts (__const char *__s);
    
    
    /* Push a character back onto the input buffer of STREAM.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    extern int ungetc (int __c, FILE *__stream);
    
    
    /* Read chunks of generic data from STREAM.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    extern size_t fread (void *__restrict __ptr, size_t __size,
           size_t __n, FILE *__restrict __stream) ;
    /* Write chunks of generic data to STREAM.
    
       This function is a possible cancellation points and therefore not
       marked with __THROW.  */
    extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
            size_t __n, FILE *__restrict __s);
    
    # 704 "/usr/include/stdio.h" 3 4
    /* Faster versions when locking is not necessary.
    
       These functions are not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation they are cancellation points and
       therefore not marked with __THROW.  */
    extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
             size_t __n, FILE *__restrict __stream) ;
    extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
              size_t __n, FILE *__restrict __stream);
    
    
    
    
    /* Seek to a certain position on STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fseek (FILE *__stream, long int __off, int __whence);
    /* Return the current position of STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern long int ftell (FILE *__stream) ;
    /* Rewind to the beginning of STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern void rewind (FILE *__stream);
    
    
    /* The Single Unix Specification, Version 2, specifies an alternative,
       more adequate interface for the two functions above which deal with
       file offset.  `long int' is not the right type.  These definitions
       are originally defined in the Large File Support API.  */
    
    
    
    /* Seek to a certain position on STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fseeko (FILE *__stream, __off_t __off, int __whence);
    /* Return the current position of STREAM.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern __off_t ftello (FILE *__stream) ;
    # 765 "/usr/include/stdio.h" 3 4
    
    
    /* Get STREAM's position.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
    /* Set STREAM's position.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
    # 788 "/usr/include/stdio.h" 3 4
    
    # 797 "/usr/include/stdio.h" 3 4
    
    /* Clear the error and EOF indicators for STREAM.  */
    extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
    /* Return the EOF indicator for STREAM.  */
    extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;
    /* Return the error indicator for STREAM.  */
    extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    /* Faster versions when locking is not required.  */
    extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
    extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    
    /* Print a message describing the meaning of the value of errno.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern void perror (__const char *__s);
    
    
    /* Provide the declarations for `sys_errlist' and `sys_nerr' if they
       are available on this system.  Even if available, these variables
       should not be used directly.  The `strerror' function provides
       all the necessary functionality.  */
    # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
    /* Declare sys_errlist and sys_nerr, or don't.  Compatibility (do) version.
       Copyright (C) 2002 Free Software Foundation, Inc.
       This file is part of the GNU C Library.
    
       The GNU C Library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Lesser General Public
       License as published by the Free Software Foundation; either
       version 2.1 of the License, or (at your option) any later version.
    
       The GNU C Library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.
    
       You should have received a copy of the GNU Lesser General Public
       License along with the GNU C Library; if not, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
       02111-1307 USA.  */
    
    
    
    
    
    /* sys_errlist and sys_nerr are deprecated.  Use strerror instead.  */
    
    
    extern int sys_nerr;
    extern __const char *__const sys_errlist[];
    # 827 "/usr/include/stdio.h" 2 3 4
    
    
    
    /* Return the system file descriptor for STREAM.  */
    extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    /* Faster version when locking is not required.  */
    extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    
    
    
    
    /* Create a new stream connected to a pipe running the given command.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern FILE *popen (__const char *__command, __const char *__modes) ;
    
    /* Close a stream opened by popen and return the status of its child.
    
       This function is a possible cancellation point and therefore not
       marked with __THROW.  */
    extern int pclose (FILE *__stream);
    
    
    
    
    /* Return the name of the controlling terminal.  */
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    # 883 "/usr/include/stdio.h" 3 4
    /* These are defined in POSIX.1:1996.  */
    
    /* Acquire ownership of STREAM.  */
    extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
    
    /* Try to acquire ownership of STREAM but do not block if it is not
       possible.  */
    extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;
    
    /* Relinquish the ownership granted for STREAM.  */
    extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
    # 904 "/usr/include/stdio.h" 3 4
    /* If we are compiling with optimizing read this file.  It contains
       several optimizing inline functions and macros.  */
    # 916 "/usr/include/stdio.h" 3 4
    
    # 41 "runtime/platform_generic.h" 2
    
    
    static void
    platform_main_begin(void)
    {
     /* Nothing to do. */
    }
    
    static void
    platform_main_end(uint32_t crc)
    {
    
    
    
        printf ("[value] Called Frama_C_show_each({%u; })\n", crc);
    
     //	printf ("checksum = %X\n", crc);
    # 119 "runtime/platform_generic.h"
    }
    
    
    
    /*****************************************************************************/
    
    
    
    /*
     * Local Variables:
     * c-basic-offset: 4
     * tab-width: 4
     * End:
     */
    
    /* End of file. */
    # 94 "runtime/random_inc.h" 2
    # 104 "runtime/random_inc.h"
    # 1 "runtime/safe_math.h" 1
    # 13 "runtime/safe_math.h"
    static int8_t
    (safe_unary_minus_func_int8_t_s)(int8_t si )
    {
     
      return
    
    
    
    
    
    
        -si;
    }
    
    static int8_t
    (safe_add_func_int8_t_s_s)(int8_t si1, int8_t si2 )
    {
     
      return
    
    
    
    
    
    
        (si1 + si2);
    }
    
    static int8_t
    (safe_sub_func_int8_t_s_s)(int8_t si1, int8_t si2 )
    {
     
      return
    
    
    
    
    
    
        (si1 - si2);
    }
    
    static int8_t
    (safe_mul_func_int8_t_s_s)(int8_t si1, int8_t si2 )
    {
     
      return
    
    
    
    
    
    
        si1 * si2;
    }
    
    static int8_t
    (safe_mod_func_int8_t_s_s)(int8_t si1, int8_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-128)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int8_t
    (safe_div_func_int8_t_s_s)(int8_t si1, int8_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-128)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int8_t
    (safe_lshift_func_int8_t_s_s)(int8_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((127) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int8_t
    (safe_lshift_func_int8_t_s_u)(int8_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((127) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static int8_t
    (safe_rshift_func_int8_t_s_s)(int8_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static int8_t
    (safe_rshift_func_int8_t_s_u)(int8_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    static int16_t
    (safe_unary_minus_func_int16_t_s)(int16_t si )
    {
     
      return
    
    
    
    
    
    
        -si;
    }
    
    static int16_t
    (safe_add_func_int16_t_s_s)(int16_t si1, int16_t si2 )
    {
     
      return
    
    
    
    
    
    
        (si1 + si2);
    }
    
    static int16_t
    (safe_sub_func_int16_t_s_s)(int16_t si1, int16_t si2 )
    {
     
      return
    
    
    
    
    
    
        (si1 - si2);
    }
    
    static int16_t
    (safe_mul_func_int16_t_s_s)(int16_t si1, int16_t si2 )
    {
     
      return
    
    
    
    
    
    
        si1 * si2;
    }
    
    static int16_t
    (safe_mod_func_int16_t_s_s)(int16_t si1, int16_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-32767-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int16_t
    (safe_div_func_int16_t_s_s)(int16_t si1, int16_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-32767-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int16_t
    (safe_lshift_func_int16_t_s_s)(int16_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((32767) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int16_t
    (safe_lshift_func_int16_t_s_u)(int16_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((32767) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static int16_t
    (safe_rshift_func_int16_t_s_s)(int16_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static int16_t
    (safe_rshift_func_int16_t_s_u)(int16_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    static int32_t
    (safe_unary_minus_func_int32_t_s)(int32_t si )
    {
     
      return
    
    
        (si==(-2147483647-1)) ?
        ((si)) :
    
    
        -si;
    }
    
    static int32_t
    (safe_add_func_int32_t_s_s)(int32_t si1, int32_t si2 )
    {
     
      return
    
    
        (((si1>0) && (si2>0) && (si1 > ((2147483647)-si2))) || ((si1<0) && (si2<0) && (si1 < ((-2147483647-1)-si2)))) ?
        ((si1)) :
    
    
        (si1 + si2);
    }
    
    static int32_t
    (safe_sub_func_int32_t_s_s)(int32_t si1, int32_t si2 )
    {
     
      return
    
    
        (((si1^si2) & (((si1 ^ ((si1^si2) & (~(2147483647))))-si2)^si2)) < 0) ?
        ((si1)) :
    
    
        (si1 - si2);
    }
    
    static int32_t
    (safe_mul_func_int32_t_s_s)(int32_t si1, int32_t si2 )
    {
     
      return
    
    
        (((si1 > 0) && (si2 > 0) && (si1 > ((2147483647) / si2))) || ((si1 > 0) && (si2 <= 0) && (si2 < ((-2147483647-1) / si1))) || ((si1 <= 0) && (si2 > 0) && (si1 < ((-2147483647-1) / si2))) || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ((2147483647) / si1)))) ?
        ((si1)) :
    
    
        si1 * si2;
    }
    
    static int32_t
    (safe_mod_func_int32_t_s_s)(int32_t si1, int32_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-2147483647-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int32_t
    (safe_div_func_int32_t_s_s)(int32_t si1, int32_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-2147483647-1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int32_t
    (safe_lshift_func_int32_t_s_s)(int32_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((2147483647) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int32_t
    (safe_lshift_func_int32_t_s_u)(int32_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((2147483647) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static int32_t
    (safe_rshift_func_int32_t_s_s)(int32_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static int32_t
    (safe_rshift_func_int32_t_s_u)(int32_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    
    static int64_t
    (safe_unary_minus_func_int64_t_s)(int64_t si )
    {
     
      return
    
    
        (si==(-9223372036854775807L -1)) ?
        ((si)) :
    
    
        -si;
    }
    
    static int64_t
    (safe_add_func_int64_t_s_s)(int64_t si1, int64_t si2 )
    {
     
      return
    
    
        (((si1>0) && (si2>0) && (si1 > ((9223372036854775807L)-si2))) || ((si1<0) && (si2<0) && (si1 < ((-9223372036854775807L -1)-si2)))) ?
        ((si1)) :
    
    
        (si1 + si2);
    }
    
    static int64_t
    (safe_sub_func_int64_t_s_s)(int64_t si1, int64_t si2 )
    {
     
      return
    
    
        (((si1^si2) & (((si1 ^ ((si1^si2) & (~(9223372036854775807L))))-si2)^si2)) < 0) ?
        ((si1)) :
    
    
        (si1 - si2);
    }
    
    static int64_t
    (safe_mul_func_int64_t_s_s)(int64_t si1, int64_t si2 )
    {
     
      return
    
    
        (((si1 > 0) && (si2 > 0) && (si1 > ((9223372036854775807L) / si2))) || ((si1 > 0) && (si2 <= 0) && (si2 < ((-9223372036854775807L -1) / si1))) || ((si1 <= 0) && (si2 > 0) && (si1 < ((-9223372036854775807L -1) / si2))) || ((si1 <= 0) && (si2 <= 0) && (si1 != 0) && (si2 < ((9223372036854775807L) / si1)))) ?
        ((si1)) :
    
    
        si1 * si2;
    }
    
    static int64_t
    (safe_mod_func_int64_t_s_s)(int64_t si1, int64_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-9223372036854775807L -1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 % si2);
    }
    
    static int64_t
    (safe_div_func_int64_t_s_s)(int64_t si1, int64_t si2 )
    {
     
      return
    
        ((si2 == 0) || ((si1 == (-9223372036854775807L -1)) && (si2 == (-1)))) ?
        ((si1)) :
    
        (si1 / si2);
    }
    
    static int64_t
    (safe_lshift_func_int64_t_s_s)(int64_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32) || (left > ((9223372036854775807L) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static int64_t
    (safe_lshift_func_int64_t_s_u)(int64_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32) || (left > ((9223372036854775807L) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static int64_t
    (safe_rshift_func_int64_t_s_s)(int64_t left, int right )
    {
     
      return
    
        ((left < 0) || (((int)right) < 0) || (((int)right) >= 32))?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static int64_t
    (safe_rshift_func_int64_t_s_u)(int64_t left, unsigned int right )
    {
     
      return
    
        ((left < 0) || (((unsigned int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    
    
    
    
    static uint8_t
    (safe_unary_minus_func_uint8_t_u)(uint8_t ui )
    {
     
      return -ui;
    }
    
    static uint8_t
    (safe_add_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 )
    {
     
      return ui1 + ui2;
    }
    
    static uint8_t
    (safe_sub_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 )
    {
     
      return ui1 - ui2;
    }
    
    static uint8_t
    (safe_mul_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 )
    {
     
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint8_t
    (safe_mod_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint8_t
    (safe_div_func_uint8_t_u_u)(uint8_t ui1, uint8_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint8_t
    (safe_lshift_func_uint8_t_u_s)(uint8_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((255) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint8_t
    (safe_lshift_func_uint8_t_u_u)(uint8_t left, unsigned int right )
    {
     
      return
    
        ((((unsigned int)right) >= 32) || (left > ((255) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static uint8_t
    (safe_rshift_func_uint8_t_u_s)(uint8_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static uint8_t
    (safe_rshift_func_uint8_t_u_u)(uint8_t left, unsigned int right )
    {
     
      return
    
        (((unsigned int)right) >= 32) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    static uint16_t
    (safe_unary_minus_func_uint16_t_u)(uint16_t ui )
    {
     
      return -ui;
    }
    
    static uint16_t
    (safe_add_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 )
    {
     
      return ui1 + ui2;
    }
    
    static uint16_t
    (safe_sub_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 )
    {
     
      return ui1 - ui2;
    }
    
    static uint16_t
    (safe_mul_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 )
    {
     
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint16_t
    (safe_mod_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint16_t
    (safe_div_func_uint16_t_u_u)(uint16_t ui1, uint16_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint16_t
    (safe_lshift_func_uint16_t_u_s)(uint16_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((65535) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint16_t
    (safe_lshift_func_uint16_t_u_u)(uint16_t left, unsigned int right )
    {
     
      return
    
        ((((unsigned int)right) >= 32) || (left > ((65535) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static uint16_t
    (safe_rshift_func_uint16_t_u_s)(uint16_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static uint16_t
    (safe_rshift_func_uint16_t_u_u)(uint16_t left, unsigned int right )
    {
     
      return
    
        (((unsigned int)right) >= 32) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    static uint32_t
    (safe_unary_minus_func_uint32_t_u)(uint32_t ui )
    {
     
      return -ui;
    }
    
    static uint32_t
    (safe_add_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 )
    {
     
      return ui1 + ui2;
    }
    
    static uint32_t
    (safe_sub_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 )
    {
     
      return ui1 - ui2;
    }
    
    static uint32_t
    (safe_mul_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 )
    {
     
      return ((unsigned int)ui1) * ((unsigned int)ui2);
    }
    
    static uint32_t
    (safe_mod_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint32_t
    (safe_div_func_uint32_t_u_u)(uint32_t ui1, uint32_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint32_t
    (safe_lshift_func_uint32_t_u_s)(uint32_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((4294967295U) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint32_t
    (safe_lshift_func_uint32_t_u_u)(uint32_t left, unsigned int right )
    {
     
      return
    
        ((((unsigned int)right) >= 32) || (left > ((4294967295U) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static uint32_t
    (safe_rshift_func_uint32_t_u_s)(uint32_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static uint32_t
    (safe_rshift_func_uint32_t_u_u)(uint32_t left, unsigned int right )
    {
     
      return
    
        (((unsigned int)right) >= 32) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    
    
    
    
    static uint64_t
    (safe_unary_minus_func_uint64_t_u)(uint64_t ui )
    {
     
      return -ui;
    }
    
    static uint64_t
    (safe_add_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 )
    {
     
      return ui1 + ui2;
    }
    
    static uint64_t
    (safe_sub_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 )
    {
     
      return ui1 - ui2;
    }
    
    static uint64_t
    (safe_mul_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 )
    {
     
      return ((unsigned long long int)ui1) * ((unsigned long long int)ui2);
    }
    
    static uint64_t
    (safe_mod_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 % ui2);
    }
    
    static uint64_t
    (safe_div_func_uint64_t_u_u)(uint64_t ui1, uint64_t ui2 )
    {
     
      return
    
        (ui2 == 0) ?
        ((ui1)) :
    
        (ui1 / ui2);
    }
    
    static uint64_t
    (safe_lshift_func_uint64_t_u_s)(uint64_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32) || (left > ((18446744073709551615UL) >> ((int)right)))) ?
        ((left)) :
    
        (left << ((int)right));
    }
    
    static uint64_t
    (safe_lshift_func_uint64_t_u_u)(uint64_t left, unsigned int right )
    {
     
      return
    
        ((((unsigned int)right) >= 32) || (left > ((18446744073709551615UL) >> ((unsigned int)right)))) ?
        ((left)) :
    
        (left << ((unsigned int)right));
    }
    
    static uint64_t
    (safe_rshift_func_uint64_t_u_s)(uint64_t left, int right )
    {
     
      return
    
        ((((int)right) < 0) || (((int)right) >= 32)) ?
        ((left)) :
    
        (left >> ((int)right));
    }
    
    static uint64_t
    (safe_rshift_func_uint64_t_u_u)(uint64_t left, unsigned int right )
    {
     
      return
    
        (((unsigned int)right) >= 32) ?
        ((left)) :
    
        (left >> ((unsigned int)right));
    }
    # 105 "runtime/random_inc.h" 2
    # 41 "runtime/csmith.h" 2
    
    static uint32_t crc32_tab[256];
    static uint32_t crc32_context = 0xFFFFFFFFUL;
    
    static void
    crc32_gentab (void)
    {
     uint32_t crc;
     const uint32_t poly = 0xEDB88320UL;
     int i, j;
    
     for (i = 0; i < 256; i++) {
      crc = i;
      for (j = 8; j > 0; j--) {
       if (crc & 1) {
        crc = (crc >> 1) ^ poly;
       } else {
        crc >>= 1;
       }
      }
      crc32_tab[i] = crc;
     }
    }
    
    static void
    crc32_byte (uint8_t b) {
     crc32_context =
      ((crc32_context >> 8) & 0x00FFFFFF) ^
      crc32_tab[(crc32_context ^ b) & 0xFF];
    }
    # 91 "runtime/csmith.h"
    static void
    crc32_8bytes (uint64_t val)
    {
     crc32_byte ((val>>0) & 0xff);
     crc32_byte ((val>>8) & 0xff);
     crc32_byte ((val>>16) & 0xff);
     crc32_byte ((val>>24) & 0xff);
     crc32_byte ((val>>32) & 0xff);
     crc32_byte ((val>>40) & 0xff);
     crc32_byte ((val>>48) & 0xff);
     crc32_byte ((val>>56) & 0xff);
    }
    
    static void
    transparent_crc (uint64_t val, char* vname, int flag)
    {
     crc32_8bytes(val);
     if (flag) {
        printf("...checksum after hashing %s : %lX\n", vname, crc32_context ^ 0xFFFFFFFFUL);
     }
    }
    
    
    /*****************************************************************************/
    
    
    
    /*
     * Local Variables:
     * c-basic-offset: 4
     * tab-width: 4
     * End:
     */
    
    /* End of file. */
    # 16 "assert.30103626.6.c" 2
    
    
    long __undefined;
    
    /* --- Struct/Union Declarations --- */
    struct S0 {
       int32_t f0;
        const uint32_t f1;
    };
    
    struct S1 {
       uint64_t f0;
       uint32_t f1;
       uint8_t f2;
       int32_t f3;
    };
    
    /* --- GLOBAL VARIABLES --- */
    int32_t g_10 = 0x704F3D4EL;
    int32_t * const g_9[10] = {&g_10, &g_10, &g_10, &g_10, &g_10, &g_10, &g_10, &g_10, &g_10, &g_10};
    struct S1 g_25 = {4294967294U,1U,255U,4L};
    struct S1 * const g_42[6][1][1] = {{{&g_25}}, {{&g_25}}, {{&g_25}}, {{&g_25}}, {{&g_25}}, {{&g_25}}};
    struct S1 * const *g_41 = &g_42[2][0][0];
    struct S1 * const **g_40[5][7] = {{&g_41, &g_41, &g_41, &g_41, &g_41, &g_41, &g_41}, {&g_41, &g_41, &g_41, &g_41, &g_41, &g_41, &g_41}, {&g_41, &g_41, &g_41, &g_41, &g_41, &g_41, &g_41}, {&g_41, &g_41, &g_41, &g_41, &g_41, &g_41, &g_41}, {&g_41, &g_41, &g_41, &g_41, &g_41, &g_41, &g_41}};
    struct S1 *g_88 = &g_25;
    struct S1 ** const g_87 = &g_88;
    int32_t g_124 = 0x33E2D464L;
     const int32_t *g_147 = &g_25.f3;
    int32_t g_183 = 9L;
    struct S0 g_191 = {-1L,0U};
    struct S0 g_194 = {0x52D1B5B4L,1U};
    struct S0 *g_237[4][1][2] = {{{&g_194, &g_194}}, {{&g_194, &g_194}}, {{&g_194, &g_194}}, {{&g_194, &g_194}}};
    struct S0 **g_236 = &g_237[1][0][0];
     const uint16_t g_525 = 65533U;
    uint64_t g_571 = 0x431ACFF5L;
    uint32_t g_591 = 0x9FB29B4FL;
    int32_t *g_609 = &g_124;
    int32_t **g_608[9] = {&g_609, &g_609, &g_609, &g_609, &g_609, &g_609, &g_609, &g_609, &g_609};
    int32_t ***g_607 = &g_608[4];
    struct S0 g_812[1][6] = {{{0L,1U}, {0L,1U}, {0L,1U}, {0L,1U}, {0L,1U}, {0L,1U}}};
    struct S0 *g_815 = 0;
    struct S0 **g_814 = &g_815;
    struct S0 ***g_813 = &g_814;
    uint16_t g_840 = 0xB582L;
     const struct S1 *g_847[7][10][1] = {{{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}, {{&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}, {&g_25}}};
     const struct S1 **g_846 = &g_847[3][9][0];
    int32_t *g_854 = &g_194.f0;
    uint16_t g_891 = 0x8C61L;
    int64_t g_953 = 0L;
    
    
    /* --- FORWARD DECLARATIONS --- */
    int16_t func_1(void);
    int32_t * const func_2(int32_t * p_3, uint32_t p_4, int32_t * p_5, int32_t * const p_6);
    int32_t * func_11(int32_t * p_12, uint32_t p_13, uint16_t p_14);
    struct S1 func_15(int32_t * p_16, const int64_t p_17, int16_t p_18, const int32_t * p_19, int8_t p_20);
    int32_t func_30(struct S1 * p_31, int32_t p_32, struct S0 p_33, struct S1 * p_34, int32_t * p_35);
    int32_t * func_36(int32_t * p_37, const struct S1 ** p_38, uint64_t p_39);
    int16_t func_46(struct S1 ** const * p_47, struct S1 * p_48, uint8_t p_49);
    uint8_t func_52(struct S1 ** const p_53);
    struct S1 ** func_59(uint8_t p_60, uint64_t p_61, uint8_t p_62);
    int32_t func_71(struct S1 p_72, uint32_t p_73);
    
    
    /* --- FUNCTIONS --- */
    /* ------------------------------------------ */
    /* 
     * reads : g_124 g_812.f0 g_41 g_42 g_10 g_25.f0 g_87 g_25.f2 g_88 g_25.f1 g_571 g_194.f0 g_591 g_607 g_608 g_609 g_9 g_191.f0 g_191.f1 g_183 g_25.f3
     * writes: g_25.f0 g_25 g_10 g_88 g_124 g_609 g_191.f0 g_183
     */
    int16_t func_1(void)
    { /* block id: 0 */
        int32_t *l_922 = &g_124;
         const uint32_t l_929 = 1U;
        int32_t **l_934 = &l_922;
        struct S1 ** const l_964 = &g_88;
        struct S0 l_974 = {-1L,1U};
         const int32_t *l_988 = &g_194.f0;
         const struct S0 *l_1005 = &g_191;
         const struct S0 **l_1004 = &l_1005;
        struct S1 *l_1010[3][8];
        struct S1 *l_1011 = &g_25;
        uint64_t l_1012 = 6U;
        int32_t *l_1014 = &g_25.f3;
         const struct S1 **l_1015 = 0;
        uint16_t l_1054 = 0xBDD8L;
        int64_t l_1074 = 0xBDC153E4L;
        int32_t * const l_1081 = 0;
        int i, j, k;
        for (i = 0; i < 3; i++)
        {
            for (j = 0; j < 8; j++)
                l_1010[i][j] = &g_25;
        }
        (*l_934) = func_2(l_922, (safe_mod_func_uint16_t_u_u((*l_922), (safe_mul_func_int8_t_s_s((safe_mod_func_int16_t_s_s(func_71(func_15(l_922, l_929, g_812[0][3].f0, l_922, g_812[0][3].f0), (*l_922)), (-10L))), (safe_rshift_func_uint8_t_u_s(g_571, (((*l_922) || g_194.f0) || (g_812[0][3].f0 == g_591)))))))), (**g_607), l_922);
        (*l_934) = (*l_934);
        if ((((g_812[0][3].f0 && ((**l_934) ^ (g_191.f0 | g_191.f1))) > (safe_unary_minus_func_uint16_t_u((**l_934)))) < g_183))
        { /* block id: 784 */
            int64_t l_936[6][7];
            int32_t * const l_937 = 0;
            int32_t **l_938 = 0;
            int32_t **l_939 = &l_922;
            struct S1 l_958 = {0xC4766444L,0x03E0F88AL,0x23L,1L};
            struct S1 ** const *l_962 = &g_87;
            uint64_t l_976 = 4294967295U;
             const int64_t l_996 = 0L;
            struct S0 l_1013 = {1L,0xDD265188L};
            struct S0 *l_1016 = &g_812[0][3];
            int32_t *l_1017[1][4][7];
            int i, j, k;
            for (i = 0; i < 6; i++)
            {
                for (j = 0; j < 7; j++)
                    l_936[i][j] = 0xDB7E22F6L;
            }
            for (i = 0; i < 1; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    for (k = 0; k < 7; k++)
                        l_1017[i][j][k] = &g_25.f3;
                }
            }
        }
        else
        { /* block id: 848 */
            int32_t *l_1043 = &g_25.f3;
            (**l_934) = ((&l_934 != 0) & (((**l_934) < (*l_1043)) == (*l_1043)));
        }
        for (l_974.f0 = 1; l_974.f0 < 4; l_974.f0 += 3)
        {
            for (g_25.f2 = 0; g_25.f2 < 1; g_25.f2 += 1)
            {
                for (g_183 = 1; g_183 < 2; g_183 += 2)
                { /* block id: 851 */
                    int32_t l_1045[4];
                    int32_t ***l_1057 = &l_934;
                    struct S1 ** const *l_1069 = &l_964;
                    int32_t *l_1080 = &l_974.f0;
                    int i, j;
                    for (i = 0; i < 4; i++)
                        l_1045[i] = 0xFA5CFE37L;
                }
            }
        }
        return (*l_1014);
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_9 g_607 g_608 g_609
     * writes: g_609 g_124 g_191.f0 g_10 g_194.f0
     */
    int32_t * const func_2(int32_t * p_3, uint32_t p_4, int32_t * p_5, int32_t * const p_6)
    { /* block id: 1 */
        int16_t l_7 = 0x40FCL;
        int64_t l_8[10];
        struct S1 l_920 = {4294967293U,6U,0x7DL,-6L};
        int32_t * const l_921 = &g_191.f0;
        int i;
        for (i = 0; i < 10; i++)
            l_8[i] = 3L;
        (*p_3) &= l_7;
        for (p_4 = 2; p_4 < 10; p_4 += 5)
        { /* block id: 3 */
            int i;
            for (l_7 = 2; l_7 < 10; l_7 += 1)
            { /* block id: 4 */
                return g_9[7];
            }
            (**g_607) = (**g_607);
        }
        return l_921;
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_10 g_87 g_88 g_854 g_607 g_608 g_814 g_815 g_25.f0 g_25.f2 g_194.f0 g_525 g_840 g_41 g_42 g_25 g_813 g_124 g_891 g_812.f1 g_40 g_609 g_191.f1 g_147 g_191.f0 g_183 g_194.f1
     * writes: g_25 g_609 g_10 g_194.f0 g_608 g_812.f0 g_183 g_40 g_815 g_840 g_88 g_236 g_124 g_191.f0 g_237 g_147
     */
    int32_t * func_11(int32_t * p_12, uint32_t p_13, uint16_t p_14)
    { /* block id: 7 */
         const int32_t *l_23 = &g_10;
        struct S1 *l_24 = &g_25;
        int8_t l_858 = 0x44L;
        struct S0 l_862 = {1L,4294967295U};
        int32_t *l_863 = &g_812[0][3].f0;
         const struct S1 **l_905 = &g_847[0][2][0];
        struct S1 ** const *l_915 = &g_87;
        struct S1 *l_916 = &g_25;
    lbl_880:
        (*l_24) = func_15(&g_10, g_10, g_10, l_23, (*l_23));
        if ((*l_23))
        { /* block id: 12 */
            struct S1 **l_27 = &l_24;
            struct S1 ***l_26 = &l_27;
            int32_t *l_855[4][9];
             const struct S1 **l_875 = &g_847[0][9][0];
            int i, j;
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 9; j++)
                    l_855[i][j] = &g_124;
            }
            (*l_26) = &l_24;
            for (p_14 = 0; (p_14 > 6); p_14 = safe_add_func_uint32_t_u_u(p_14, 1))
            { /* block id: 16 */
                struct S0 l_853 = {0L,0xB6EE9EC5L};
                struct S1 *l_861 = &g_25;
                if (func_30(l_24, 0xA06C0D53L, l_853, (*g_87), g_854))
                { /* block id: 720 */
                    int32_t *l_874 = &g_194.f0;
                    (**g_41) = func_15(p_12, (p_14 >= (((l_863 != l_863) | (safe_div_func_int8_t_s_s((safe_rshift_func_uint8_t_u_u(l_853.f1, 2)), l_853.f1))) > (safe_rshift_func_int8_t_s_s(l_853.f1, 2)))), (safe_mod_func_int8_t_s_s((safe_div_func_uint32_t_u_u(p_13, l_853.f0)), g_525)), p_12, g_840);
                }
                else
                { /* block id: 722 */
                    (*l_863) &= (safe_mod_func_int32_t_s_s(l_853.f0, 0x563C0672L));
                    for (g_25.f1 = 0; g_25.f1 < 5; g_25.f1 += 1)
                    {
                        for (g_183 = 0; g_183 < 7; g_183 += 1)
                        {
                            g_40[g_25.f1][g_183] = &g_41;
                        }
                    }
                    (**g_41) = (*g_88);
                }
                (*l_863) &= (*p_12);
            }
            for (g_25.f3 = 19; (g_25.f3 == 1); g_25.f3 = safe_sub_func_uint8_t_u_u(g_25.f3, 1))
            { /* block id: 731 */
                if (g_840)
                    goto lbl_880;
            }
            if ((*p_12))
            { /* block id: 734 */
                (**g_607) = 0;
                (**g_813) = &l_862;
            }
            else
            { /* block id: 737 */
                int8_t l_883[6][5];
                int i, j;
                for (i = 0; i < 6; i++)
                {
                    for (j = 0; j < 5; j++)
                        l_883[i][j] = 0xE0L;
                }
                (*l_863) &= 0x5C0D26E1L;
                (**g_607) = 0;
                (*g_854) = (g_194.f0 > (safe_add_func_int32_t_s_s(func_52(&g_88), l_883[0][3])));
            }
        }
        else
        { /* block id: 742 */
             const struct S1 **l_903[10];
            int32_t l_909[6][4][1];
            struct S0 l_911[10] = {{0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}, {0L,0x0CDF2679L}};
            int i, j, k;
            for (i = 0; i < 10; i++)
                l_903[i] = &g_847[2][3][0];
            for (i = 0; i < 6; i++)
            {
                for (j = 0; j < 4; j++)
                {
                    for (k = 0; k < 1; k++)
                        l_909[i][j][k] = 4L;
                }
            }
            for (p_13 = 0; p_13 < 9; p_13 += 1)
            { /* block id: 743 */
                int32_t *l_888 = &g_183;
                 const struct S1 **l_907 = &g_847[3][9][0];
                int64_t l_908 = 1L;
                for (g_840 = (-22); (g_840 <= 13); g_840 = safe_add_func_uint8_t_u_u(g_840, 6))
                { /* block id: 746 */
                     const uint32_t l_901 = 0xADAE480CL;
                    int16_t l_913 = (-9L);
                     const struct S1 **l_914 = &g_847[2][1][0];
                    for (l_858 = 0; (l_858 < (-16)); l_858 = safe_sub_func_uint8_t_u_u(l_858, 1))
                    { /* block id: 749 */
                        struct S0 l_896 = {0xC75BECDAL,9U};
                        int32_t *l_904 = &g_124;
                        int i, j;
                        for (g_25.f3 = 3; g_25.f3 < 5; g_25.f3 += 1)
                        {
                            for (g_25.f2 = 3; g_25.f2 < 7; g_25.f2 += 4)
                            { /* block id: 750 */
                                uint16_t l_902 = 0U;
                                int32_t *l_906 = &g_124;
                                (*g_88) = func_15(l_888, g_124, (safe_mod_func_int8_t_s_s((~(p_13 && g_891)), (safe_div_func_uint32_t_u_u(g_812[0][3].f1, (safe_mod_func_uint16_t_u_u((p_14 || g_840), (safe_sub_func_uint16_t_u_u((p_13 != (*p_12)), (safe_mul_func_uint8_t_u_u(l_901, p_14)))))))))), p_12, l_902);
                                (**g_607) = p_12;
                                (**g_607) = p_12;
                            }
                        }
                        (*l_863) = ((255U >= (g_40[(uint32_t)(g_25.f3) % 5][(g_25.f2) % 7] != &l_905)) >= 0xC3L);
                    }
                }
            }
            (**g_607) = (**g_607);
        }
        (*l_863) = (((8U || g_191.f1) ^ func_46(&g_87, (**l_915), p_13)) >= g_812[0][3].f1);
        return p_12;
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads :
     * writes:
     */
    struct S1 func_15(int32_t * p_16, const int64_t p_17, int16_t p_18, const int32_t * p_19, int8_t p_20)
    { /* block id: 8 */
        int16_t l_21[4];
        struct S1 l_22 = {3U,4294967295U,0x84L,-1L};
        int i;
        for (i = 0; i < 4; i++)
            l_21[i] = 0x039DL;
        l_21[0] = 0L;
        return l_22;
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_607 g_608 g_814 g_815 g_25.f0 g_25.f2 g_10 g_194.f0 g_124 g_25.f3
     * writes: g_609 g_10 g_25.f2 g_608 g_194.f0 g_124 g_25.f3
     */
    int32_t func_30(struct S1 * p_31, int32_t p_32, struct S0 p_33, struct S1 * p_34, int32_t * p_35)
    { /* block id: 17 */
        int32_t *l_845 = 0;
        struct S1 ** const l_850[5][2] = {{&g_88, &g_88}, {&g_88, &g_88}, {&g_88, &g_88}, {&g_88, &g_88}, {&g_88, &g_88}};
         const struct S1 **l_851 = 0;
        struct S0 *l_852 = 0;
        int i, j;
        (**g_607) = l_845;
        l_852 = (*g_814);
        (*p_35) = func_52(&g_88);
        for (g_25.f2 = 0; g_25.f2 < 9; g_25.f2 += 1)
        {
            g_608[g_25.f2] = &g_609;
        }
        return (*p_35);
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_25.f1 g_25.f2 g_40 g_194.f1 g_87 g_88 g_25 g_591 g_41 g_42 g_10 g_571 g_607 g_608 g_609 g_124 g_194.f0 g_183 g_236 g_237 g_191.f1 g_525 g_191.f0 g_840
     * writes: g_25 g_10 g_88 g_609 g_571 g_194.f0 g_124 g_237 g_191.f0
     */
    int32_t * func_36(int32_t * p_37, const struct S1 ** p_38, uint64_t p_39)
    { /* block id: 18 */
        uint16_t l_43 = 0U;
        int32_t **l_612 = &g_609;
        int64_t l_638 = 0xE08A6CA8L;
        uint64_t l_671[7][3];
        int32_t l_683 = 0xBD9F51E2L;
        struct S1 *l_718 = &g_25;
        uint8_t l_719 = 0xD8L;
        int32_t *l_747 = &g_194.f0;
         const int32_t *l_785 = &g_191.f0;
        struct S1 ** const *l_787 = &g_87;
        struct S1 ** const l_801 = 0;
        struct S0 *l_811 = &g_812[0][3];
        struct S0 **l_810 = &l_811;
        struct S0 ***l_809 = &l_810;
        int i, j;
        for (i = 0; i < 7; i++)
        {
            for (j = 0; j < 3; j++)
                l_671[i][j] = 0x8D38D202L;
        }
        (*p_37) = ((g_25.f1 >= g_25.f2) <= (g_40[4][5] != 0));
        if ((!l_43))
        { /* block id: 20 */
            struct S1 ** const *l_590 = &g_87;
            int32_t * const l_600 = &g_124;
            struct S0 *l_603 = 0;
            int32_t l_635 = 0x5631608BL;
            uint16_t l_717 = 1U;
            for (l_43 = 0; (l_43 <= 36); l_43 = safe_add_func_int8_t_s_s(l_43, 2))
            { /* block id: 23 */
                int8_t l_594 = 1L;
                int32_t l_617 = 1L;
                uint64_t l_641 = 0U;
                struct S1 ** const l_654 = &g_88;
                int8_t l_664 = (-1L);
                uint32_t l_700 = 0xBDAC3BF3L;
                struct S1 **l_726 = 0;
                (*p_37) = (p_39 & g_194.f1);
                (**g_87) = func_15(&g_124, (safe_lshift_func_int16_t_s_u(0x6A3AL, l_594)), l_43, 0, p_39);
                for (g_25.f3 = (-29); (g_25.f3 >= (-10)); g_25.f3 = safe_add_func_uint16_t_u_u(g_25.f3, 9))
                { /* block id: 523 */
                    uint32_t l_599 = 4294967294U;
                    struct S1 l_626 = {0x0EE48A1EL,0xCCA5A0DBL,0x54L,0xBBA4CB45L};
                    int32_t *l_652 = &g_10;
                    int32_t l_653 = 1L;
                    uint16_t l_693[8][4];
                     const uint64_t l_720[5] = {4294967289U, 4294967289U, 4294967289U, 4294967289U, 4294967289U};
                    int i, j;
                    for (i = 0; i < 8; i++)
                    {
                        for (j = 0; j < 4; j++)
                            l_693[i][j] = 0x63B5L;
                    }
                }
            }
            if ((safe_mod_func_int32_t_s_s(((safe_mul_func_int8_t_s_s((func_71((*g_88), (g_194.f1 ^ g_591)) != (((*p_37) == (*p_37)) > (safe_div_func_int16_t_s_s(p_39, p_39)))), g_571)) || ((-6L) != func_52(&l_718))), (*p_37))))
            { /* block id: 595 */
                int32_t *l_733 = &l_683;
                (**g_607) = l_733;
            }
            else
            { /* block id: 597 */
                int32_t *l_746 = &l_683;
                struct S1 l_748 = {0U,0x28946FE9L,255U,0L};
                struct S0 ***l_751 = &g_236;
                 const int32_t *l_759[10][6][1];
                struct S1 ** const l_774 = &g_88;
                struct S1 l_780 = {4294967295U,0U,0x8FL,1L};
                int i, j, k;
                for (i = 0; i < 10; i++)
                {
                    for (j = 0; j < 6; j++)
                    {
                        for (k = 0; k < 1; k++)
                            l_759[i][j][k] = &g_124;
                    }
                }
                for (g_571 = 0; (g_571 > 47); g_571 = safe_add_func_uint32_t_u_u(g_571, 1))
                { /* block id: 600 */
                    uint8_t l_742 = 0xEEL;
                    struct S1 ** const l_755 = &g_88;
                }
                (*l_612) = (*l_612);
                (*l_747) &= (***g_607);
                if (((0x4FL > (*l_600)) >= (&g_237[3][0][1] != &l_603)))
                { /* block id: 640 */
                    uint32_t l_773[4];
                    int32_t *l_779[10];
                    int i;
                    for (i = 0; i < 4; i++)
                        l_773[i] = 0x13136EEEL;
                    for (i = 0; i < 10; i++)
                        l_779[i] = &g_194.f0;
                    (*p_37) |= (*p_37);
                    (*p_37) &= (p_39 >= p_39);
                    if ((((*l_600) > (p_39 | ((safe_mul_func_uint16_t_u_u(g_194.f1, g_194.f0)) || func_52((*l_590))))) < (((&p_37 == 0) > (((*l_600) | (g_25.f2 <= g_183)) >= l_773[3])) & 9L)))
                    { /* block id: 643 */
                        return p_37;
                    }
                    else
                    { /* block id: 645 */
                        uint16_t l_777 = 3U;
                        if ((*l_600))
                        { /* block id: 646 */
                            return (**g_607);
                        }
                        else
                        { /* block id: 648 */
                             const int16_t l_778 = (-1L);
                            (*g_609) = (*g_609);
                            (**l_612) = (p_39 > l_777);
                        }
                    }
                    return l_779[0];
                }
                else
                { /* block id: 654 */
                    struct S0 ***l_790[2];
                    struct S1 l_791 = {0x4FA2EB5DL,0x887EBD63L,2U,0xDB99216EL};
                    int32_t *l_792 = 0;
                    int i, j;
                    for (i = 0; i < 2; i++)
                        l_790[i] = &g_236;
                    for (l_638 = 0; l_638 < 7; l_638 += 5)
                    {
                        for (g_25.f1 = 1; g_25.f1 < 3; g_25.f1 += 1)
                        { /* block id: 655 */
                            struct S1 ** const l_783 = 0;
                            int16_t l_784 = 1L;
                             const int32_t *l_786 = &l_635;
                            l_780 = func_15((**g_607), 6L, ((*g_236) == 0), (*l_612), (p_39 != func_52(&l_718)));
                            for (l_683 = 0; (l_683 > 13); l_683 = safe_add_func_int8_t_s_s(l_683, 4))
                            { /* block id: 659 */
                                (**g_41) = func_15(p_37, (func_52(&l_718) >= g_191.f1), l_784, l_785, g_191.f1);
                                (*l_718) = func_15(p_37, l_671[(uint64_t)(l_638) % 7][(g_25.f1) % 3], (-10L), l_786, l_671[(uint64_t)(l_638) % 7][(g_25.f1) % 3]);
                                (*l_747) |= (*p_37);
                                (**l_612) |= (((p_39 != g_25.f1) & (-3L)) != 0xAD7758DBL);
                            }
                            l_791 = func_15(l_746, (safe_lshift_func_uint8_t_u_u(l_671[(uint64_t)(l_638) % 7][(g_25.f1) % 3], ((func_52(&g_88) == ((l_671[(uint64_t)(l_638) % 7][(g_25.f1) % 3] ^ p_39) != (l_671[(uint64_t)(l_638) % 7][(g_25.f1) % 3] ^ (*p_37)))) != (&g_236 == l_790[1])))), g_525, l_786, p_39);
                            return l_792;
                        }
                    }
                    (*p_37) = (***g_607);
                    (**l_751) = (*g_236);
                    (*l_612) = l_746;
                }
            }
            (*p_37) |= (safe_lshift_func_uint8_t_u_s(((safe_div_func_int16_t_s_s((safe_mod_func_int8_t_s_s((safe_rshift_func_uint16_t_u_u(g_591, func_52(l_801))), p_39)), g_25.f3)) >= ((*l_600) == (p_39 || p_39))), 3));
            (*l_747) &= (((**l_612) != (safe_rshift_func_uint16_t_u_s((*l_600), g_571))) != 0x3ADFL);
        }
        else
        { /* block id: 675 */
            uint32_t l_808 = 8U;
            struct S1 ** const l_816[8][3] = {{&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88}};
            int i, j;
            (***g_607) |= (*p_37);
            (*g_609) = (safe_lshift_func_int16_t_s_u(func_52(l_816[7][2]), 2));
            (*g_609) ^= (*p_37);
            for (g_25.f0 = 0; (g_25.f0 >= 11); g_25.f0 = safe_add_func_int32_t_s_s(g_25.f0, 8))
            { /* block id: 681 */
                struct S1 l_819 = {0x14C695C2L,0x20629D87L,255U,0xAA947EE7L};
            }
        }
        (*p_37) |= (((safe_mul_func_int16_t_s_s(g_525, (((safe_rshift_func_uint16_t_u_u(g_25.f1, p_39)) < (*l_747)) > (g_194.f1 & ((*p_37) | (*l_785)))))) && ((*l_785) >= (*l_785))) > (safe_rshift_func_int8_t_s_u(((safe_add_func_uint8_t_u_u((safe_mul_func_uint8_t_u_u((safe_mod_func_int8_t_s_s((*l_747), g_183)), (p_39 ^ (*p_37)))), (safe_mul_func_uint16_t_u_u(func_52((*l_787)), (g_25.f3 | g_840))))) & (*l_785)), (((*l_612) != 0) && (**l_612)))));
        for (g_191.f0 = 0; (g_191.f0 == (-22)); g_191.f0 = safe_sub_func_uint16_t_u_u(g_191.f0, 1))
        { /* block id: 710 */
            (*l_747) |= (safe_mul_func_int16_t_s_s(g_10, 0x95EAL));
            (*p_37) = 9L;
        }
        return (**g_607);
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_25.f0 g_124 g_25.f2 g_10 g_41 g_42 g_87 g_88 g_25.f1 g_147 g_25.f3 g_191.f0 g_191.f1 g_183 g_194.f1 g_25 g_194.f0
     * writes: g_10 g_25.f0 g_25 g_88 g_183 g_40 g_236 g_124 g_191.f0 g_237 g_194.f0 g_147
     */
    int16_t func_46(struct S1 ** const * p_47, struct S1 * p_48, uint8_t p_49)
    { /* block id: 24 */
        uint8_t l_355 = 0U;
        int32_t l_357 = 2L;
         const int32_t *l_371 = &g_124;
        struct S0 *l_385 = &g_194;
        struct S0 *l_404[5];
        int8_t l_431[2][10][2];
        uint32_t l_476 = 4294967290U;
        struct S1 l_478 = {0xDFF2E105L,1U,255U,-8L};
        struct S1 *l_484 = &g_25;
        int32_t *l_588[7];
        uint16_t l_589[5];
        int i, j, k;
        for (i = 0; i < 5; i++)
            l_404[i] = &g_194;
        for (i = 0; i < 2; i++)
        {
            for (j = 0; j < 10; j++)
            {
                for (k = 0; k < 2; k++)
                    l_431[i][j][k] = 0x2AL;
            }
        }
        for (i = 0; i < 7; i++)
            l_588[i] = &l_478.f3;
        for (i = 0; i < 5; i++)
            l_589[i] = 0xC543L;
        if ((safe_mul_func_uint8_t_u_u(func_52(func_59(g_25.f0, p_49, l_355)), g_191.f1)))
        { /* block id: 304 */
            int32_t *l_356[10];
             const int32_t *l_373 = &g_25.f3;
            struct S1 l_395 = {0x7BEEB050L,0x79CE891FL,1U,0x6CD2CA98L};
            uint32_t l_402 = 0x7117A211L;
            struct S0 *l_403 = 0;
            int16_t l_488 = 0x6D2CL;
            int32_t *l_504 = 0;
            int32_t ***l_505 = 0;
            struct S1 ** const l_532[1][7][6] = {{{&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}, {&g_88, &g_88, &g_88, &g_88, &g_88, &g_88}}};
            int i, j, k;
            for (i = 0; i < 10; i++)
                l_356[i] = &g_194.f0;
            l_357 ^= (0L < g_191.f1);
            for (g_191.f0 = 0; (g_191.f0 > (-6)); g_191.f0 = safe_sub_func_uint32_t_u_u(g_191.f0, 7))
            { /* block id: 308 */
                int64_t l_362 = 0L;
                for (p_49 = 0; (p_49 <= 28); p_49 = safe_add_func_int16_t_s_s(p_49, 1))
                { /* block id: 311 */
                    l_357 &= (*g_147);
                    l_362 = 0x7D7BA46BL;
                }
                if ((safe_rshift_func_int16_t_s_s(p_49, p_49)))
                { /* block id: 315 */
                    for (l_355 = 23; (l_355 == 29); l_355 = safe_add_func_int32_t_s_s(l_355, 9))
                    { /* block id: 318 */
                        return p_49;
                    }
                    return g_25.f2;
                }
                else
                { /* block id: 322 */
                    int32_t l_370 = (-1L);
                    for (g_25.f0 = (-26); (g_25.f0 <= 27); g_25.f0 = safe_add_func_uint8_t_u_u(g_25.f0, 8))
                    { /* block id: 325 */
                        struct S1 ** const l_369 = &g_88;
                         const int32_t **l_372[9][3][1];
                        int i, j, k;
                        for (i = 0; i < 9; i++)
                        {
                            for (j = 0; j < 3; j++)
                            {
                                for (k = 0; k < 1; k++)
                                    l_372[i][j][k] = &l_371;
                            }
                        }
                        l_357 &= func_52(l_369);
                        l_370 ^= (*g_147);
                        l_373 = l_371;
                    }
                    l_370 ^= (~(safe_rshift_func_int16_t_s_s(((safe_mod_func_uint16_t_u_u(p_49, (safe_lshift_func_int8_t_s_u((l_362 >= l_362), g_194.f0)))) ^ g_191.f0), 0)));
                    return l_370;
                }
            }
            for (g_183 = 1; (g_183 < 22); g_183 = safe_add_func_int16_t_s_s(g_183, 1))
            { /* block id: 336 */
                int64_t l_384 = 0x90F69E3CL;
                struct S0 **l_386 = &g_237[1][0][1];
                int32_t **l_387 = 0;
                int32_t *l_388[4][10][1];
                int i, j, k;
                for (i = 0; i < 4; i++)
                {
                    for (j = 0; j < 10; j++)
                    {
                        for (k = 0; k < 1; k++)
                            l_388[i][j][k] = 0;
                    }
                }
                l_384 ^= (safe_sub_func_int32_t_s_s(0xD18F26ECL, (*l_371)));
                (*l_386) = l_385;
                l_388[2][5][0] = 0;
            }
            if ((safe_add_func_int32_t_s_s(((safe_add_func_uint8_t_u_u((safe_div_func_int8_t_s_s((*l_371), (p_49 & (*l_371)))), (safe_mul_func_int16_t_s_s((*l_371), 65530U)))) < (safe_rshift_func_int8_t_s_u(((((*l_371) > g_10) == ((*l_373) == p_49)) && p_49), 2))), ((p_49 != p_49) != (9L ^ ((p_49 | (*l_373)) == (g_25.f0 < (l_402 & p_49))))))))
            { /* block id: 341 */
                 const uint32_t l_407 = 0xAA9C15E2L;
                int32_t *l_419[7][9][1];
                int i, j, k;
                for (i = 0; i < 7; i++)
                {
                    for (j = 0; j < 9; j++)
                    {
                        for (k = 0; k < 1; k++)
                            l_419[i][j][k] = &g_191.f0;
                    }
                }
                l_357 |= (l_403 != l_404[1]);
                for (l_402 = 0; (l_402 >= 37); l_402 = safe_add_func_int32_t_s_s(l_402, 1))
                { /* block id: 345 */
                    int32_t *l_410[2][8];
                    int32_t **l_428 = &l_410[1][6];
                    int32_t ***l_427 = &l_428;
                    int32_t *l_436 = 0;
                    int i, j;
                    for (i = 0; i < 2; i++)
                    {
                        for (j = 0; j < 8; j++)
                            l_410[i][j] = &g_10;
                    }
                    if ((l_407 & g_25.f0))
                    { /* block id: 346 */
                        int16_t l_413 = 8L;
                        int32_t l_414 = 0x4BB2AAA4L;
                        for (l_395.f3 = 0; (l_395.f3 <= (-30)); l_395.f3 = safe_sub_func_int32_t_s_s(l_395.f3, 3))
                        { /* block id: 349 */
                            int32_t **l_411 = 0;
                            int32_t **l_412 = &l_356[7];
                            (*l_412) = l_410[0][2];
                            l_414 |= ((*l_371) & l_413);
                        }
                    }
                    else
                    { /* block id: 353 */
                        int16_t l_417 = 0x9199L;
                        int32_t **l_418[7][8];
                        int i, j;
                        for (i = 0; i < 7; i++)
                        {
                            for (j = 0; j < 8; j++)
                                l_418[i][j] = &l_410[1][4];
                        }
                        l_417 ^= ((safe_sub_func_int8_t_s_s(0x46L, p_49)) > (p_49 & (-1L)));
                        l_419[3][7][0] = &l_357;
                        return g_25.f2;
                    }
                    for (l_395.f2 = (-20); (l_395.f2 > 31); l_395.f2 = safe_add_func_uint32_t_u_u(l_395.f2, 1))
                    { /* block id: 360 */
                        int32_t ** const *l_426 = 0;
                        for (g_191.f0 = 0; (g_191.f0 > (-13)); g_191.f0 = safe_sub_func_uint8_t_u_u(g_191.f0, 1))
                        { /* block id: 363 */
                             const int32_t **l_425 = &l_373;
                             const int32_t ***l_424 = &l_425;
                            (*l_424) = &l_373;
                            (**l_428) = (l_426 != l_427);
                            (**l_428) = (l_431[0][0][1] | (((!(0 != &g_237[3][0][0])) & ((p_49 >= g_124) <= func_52(&g_88))) >= p_49));
                        }
                    }
                    for (g_10 = 0; g_10 < 5; g_10 += 1)
                    {
                        for (l_395.f0 = 0; l_395.f0 < 7; l_395.f0 += 6)
                        { /* block id: 369 */
                            uint32_t l_434 = 0U;
                             const int16_t l_435 = (-7L);
                            l_434 &= (safe_mod_func_int8_t_s_s(p_49, p_49));
                            if (l_435)
                            { /* block id: 371 */
                                (**l_427) = &g_183;
                            }
                            else
                            { /* block id: 373 */
                                (**l_427) = l_436;
                            }
                        }
                    }
                    if (p_49)
                        continue;
                }
                if ((*g_147))
                { /* block id: 379 */
                    int64_t l_445[3][7][1];
                    int32_t l_446 = 0x6E72EE30L;
                    struct S0 **l_450[2][4];
                     const uint8_t l_458 = 1U;
                    int i, j, k;
                    for (i = 0; i < 3; i++)
                    {
                        for (j = 0; j < 7; j++)
                        {
                            for (k = 0; k < 1; k++)
                                l_445[i][j][k] = 0x70697DDFL;
                        }
                    }
                    for (i = 0; i < 2; i++)
                    {
                        for (j = 0; j < 4; j++)
                            l_450[i][j] = &g_237[1][0][0];
                    }
                    l_446 &= (safe_add_func_uint8_t_u_u((safe_sub_func_int16_t_s_s((((safe_mul_func_uint8_t_u_u((p_49 == g_194.f0), 255U)) <= (safe_mul_func_int16_t_s_s(p_49, (~g_191.f0)))) <= l_445[0][0][0]), 0xC46EL)), func_52(&g_88)));
                    if ((safe_add_func_int8_t_s_s((4L ^ g_183), g_191.f1)))
                    { /* block id: 381 */
                        struct S0 ***l_449[9];
                        int32_t l_457 = 4L;
                        int i;
                        for (i = 0; i < 9; i++)
                            l_449[i] = &g_236;
                        l_450[0][0] = &g_237[0][0][0];
                        if (g_25.f1)
                            goto lbl_451;
    lbl_451:
                        l_446 = p_49;
                        for (l_395.f0 = (-1); (l_395.f0 >= 5); l_395.f0 = safe_add_func_uint8_t_u_u(l_395.f0, 1))
                        { /* block id: 387 */
                            int32_t **l_454 = 0;
                            int32_t **l_455 = 0;
                            int32_t **l_456 = &l_419[3][7][0];
                            (*l_456) = &g_183;
                            l_457 |= (*l_371);
                        }
                        (**g_41) = func_15(&g_10, 1L, p_49, &g_183, 0xF2L);
                    }
                    else
                    { /* block id: 394 */
                        return p_49;
                    }
                }
                else
                { /* block id: 397 */
                    return g_25.f2;
                }
            }
            else
            { /* block id: 400 */
                int32_t l_463 = (-3L);
                struct S1 l_490 = {1U,0xB45C8354L,0U,0xFBA5BB45L};
                int64_t l_498 = 0xFBF8F3B2L;
                for (p_49 = 0; (p_49 > 18); p_49 = safe_add_func_int32_t_s_s(p_49, 1))
                { /* block id: 403 */
                     const int32_t *l_477 = &l_357;
                    int32_t l_479 = 0x7306DE79L;
                    int i, j;
                    for (l_355 = 2; l_355 < 5; l_355 += 1)
                    {
                        for (g_183 = 0; g_183 < 7; g_183 += 1)
                        { /* block id: 404 */
                            uint64_t l_465 = 4U;
                            int32_t **l_471 = &l_356[4];
                            int32_t ***l_470 = &l_471;
                            for (g_194.f0 = 17; (g_194.f0 >= (-5)); g_194.f0 = safe_sub_func_int32_t_s_s(g_194.f0, 7))
                            { /* block id: 407 */
                                int64_t l_464 = 1L;
                                l_464 = l_463;
                                g_147 = l_373;
                                l_465 = 0x90D64501L;
                                l_357 ^= (safe_sub_func_int16_t_s_s((((l_470 != 0) || (p_49 > ((+l_464) < (safe_sub_func_int8_t_s_s(g_194.f1, g_194.f0))))) >= g_25.f3), func_52(0)));
                            }
                            (**g_41) = func_15(&g_124, (-1L), (g_10 & g_191.f1), 0, g_25.f1);
                            for (l_402 = (-28); (l_402 <= 26); l_402 = safe_add_func_int8_t_s_s(l_402, 6))
                            { /* block id: 416 */
                                (**l_470) = (*l_471);
                                (***l_470) = p_49;
                                (***l_470) &= l_476;
                                (**l_471) &= p_49;
                            }
                            (*l_471) = &g_124;
                        }
                    }
                    l_479 = (*g_147);
                    for (g_183 = 14; (g_183 < (-17)); g_183 = safe_sub_func_int8_t_s_s(g_183, 9))
                    { /* block id: 427 */
                        int8_t l_489 = (-1L);
                        for (l_395.f2 = 11; (l_395.f2 > 45); l_395.f2 = safe_add_func_int32_t_s_s(l_395.f2, 1))
                        { /* block id: 430 */
                             const int64_t l_485 = (-1L);
                            struct S1 l_487[4] = {{0x04A2A40AL,4294967295U,0U,-1L}, {0x04A2A40AL,4294967295U,0U,-1L}, {0x04A2A40AL,4294967295U,0U,-1L}, {0x04A2A40AL,4294967295U,0U,-1L}};
                            int i;
                            l_479 &= (-1L);
                            l_484 = &l_478;
                            l_489 = l_488;
                            (*l_484) = l_490;
                        }
                    }
                    l_463 &= p_49;
                }
                for (g_124 = 0; (g_124 >= (-23)); g_124 = safe_sub_func_uint16_t_u_u(g_124, 1))
                { /* block id: 441 */
                    return g_124;
                }
                if (((g_124 == p_49) >= (safe_lshift_func_uint8_t_u_s(g_191.f0, (((*l_373) | p_49) & (!((&l_404[1] == &l_404[1]) < 0x7BL)))))))
                { /* block id: 444 */
                     const uint8_t l_495 = 3U;
                    struct S1 ***l_499[6][4];
                    struct S1 ***l_500[8][8];
                    struct S1 **l_502 = &g_88;
                    struct S1 ***l_501 = &l_502;
                     const int32_t *l_506 = 0;
                    int32_t l_520 = 1L;
                    int32_t **l_521 = &l_504;
                    int i, j;
                    for (i = 0; i < 6; i++)
                    {
                        for (j = 0; j < 4; j++)
                            l_499[i][j] = 0;
                    }
                    for (i = 0; i < 8; i++)
                    {
                        for (j = 0; j < 8; j++)
                            l_500[i][j] = 0;
                    }
                    (*l_501) = (*p_47);
                    for (g_191.f0 = 0; g_191.f0 < 5; g_191.f0 += 3)
                    {
                        for (g_25.f1 = 3; g_25.f1 < 7; g_25.f1 += 1)
                        { /* block id: 446 */
                            int32_t **l_503 = &l_356[1];
                            struct S1 ** const l_509 = &g_88;
                            for (l_490.f1 = 0; l_490.f1 < 10; l_490.f1 += 1)
                            {
                                l_356[l_490.f1] = &l_357;
                            }
                            (*l_503) = &g_124;
                            (*p_48) = func_15(0, p_49, p_49, &g_183, func_52(&l_484));
                            if (func_52(l_509))
                            { /* block id: 450 */
                                (*l_503) = 0;
                                (*l_503) = 0;
                                return g_25.f2;
                            }
                            else
                            { /* block id: 454 */
                                uint64_t l_510 = 0x9697A266L;
                                (*g_87) = 0;
                                l_510 |= (0xE5181354L || p_49);
                                l_506 = l_506;
                            }
                        }
                    }
                    for (l_478.f2 = 6; l_478.f2 < 8; l_478.f2 += 1)
                    {
                        for (l_463 = 0; l_463 < 8; l_463 += 8)
                        { /* block id: 460 */
                            struct S0 **l_511 = &l_385;
                            int32_t l_518 = 0x0A61A6B9L;
                            int8_t l_519 = 3L;
                            (*l_511) = l_404[0];
                            l_357 = (g_194.f1 >= (safe_mod_func_uint8_t_u_u(((0x85C46FA4L != (safe_mul_func_uint8_t_u_u((safe_div_func_int16_t_s_s(l_518, g_124)), l_519))) || (*l_371)), g_194.f1)));
                            l_520 |= l_498;
                        }
                    }
                    (*l_521) = &l_463;
                }
                else
                { /* block id: 466 */
                    int32_t l_539 = 7L;
                    int i, j;
                    for (g_25.f3 = 0; g_25.f3 < 5; g_25.f3 += 1)
                    {
                        for (l_476 = 0; l_476 < 7; l_476 += 1)
                        { /* block id: 467 */
                            uint64_t l_522 = 4294967293U;
                            int32_t **l_530 = &l_356[2];
                            int8_t l_531[6];
                            int i;
                            for (i = 0; i < 6; i++)
                                l_531[i] = 0x44L;
                            (**g_41) = func_15(&l_463, (0 == l_505), l_522, &l_463, 0xC1L);
                        }
                    }
                    l_490.f3 |= (safe_div_func_int16_t_s_s(((safe_mod_func_int8_t_s_s(((safe_sub_func_int16_t_s_s(g_124, (g_191.f1 != p_49))) > p_49), p_49)) < 0x07L), l_539));
                }
            }
        }
        else
        { /* block id: 479 */
            uint32_t l_542 = 0x743C9B88L;
            struct S1 *l_543 = &l_478;
            int32_t *l_544[2];
            struct S1 l_545 = {0x47C181A3L,2U,4U,-8L};
            int32_t **l_546 = &l_544[1];
            int i;
            for (i = 0; i < 2; i++)
                l_544[i] = &g_191.f0;
            l_357 = p_49;
            (*l_543) = l_545;
            (*l_546) = l_544[1];
        }
        for (l_476 = (-9); (l_476 >= 57); l_476 = safe_add_func_int16_t_s_s(l_476, 5))
        { /* block id: 486 */
            int16_t l_549 = 0xD475L;
            int32_t *l_556 = &g_10;
            int32_t l_575 = 0xC7A2B2A7L;
            struct S1 l_578 = {0xFA5C4AD8L,0U,1U,0xD9EF578FL};
            struct S0 ***l_586 = 0;
            struct S0 ***l_587 = &g_236;
            (*l_556) = (l_549 == ((((safe_rshift_func_uint16_t_u_s(func_52((*p_47)), p_49)) > ((g_124 & (*l_371)) != (safe_sub_func_uint16_t_u_u(l_549, l_549)))) > (&l_371 == 0)) & (*l_371)));
            for (l_478.f0 = 0; (l_478.f0 > 38); l_478.f0 = safe_add_func_uint16_t_u_u(l_478.f0, 6))
            { /* block id: 490 */
                int64_t l_574 = 0xC969600CL;
                int32_t *l_585 = 0;
            }
            (*l_587) = &g_237[1][0][1];
        }
        l_589[4] ^= (250U ^ func_52((*p_47)));
        return g_25.f0;
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_25.f0 g_25.f2 g_10
     * writes: g_10
     */
    uint8_t func_52(struct S1 ** const p_53)
    { /* block id: 25 */
        int64_t l_56 = 1L;
        int32_t *l_58 = &g_10;
        for (g_10 = 0; (g_10 > (-17)); g_10 = safe_sub_func_uint32_t_u_u(g_10, 1))
        { /* block id: 28 */
            int32_t l_57 = 0xD38C4615L;
            l_57 |= (g_25.f0 <= l_56);
            return g_25.f2;
        }
        (*l_58) &= ((-1L) || ((p_53 != p_53) & l_56));
        return (*l_58);
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_124 g_25.f0 g_25.f2 g_10 g_41 g_42 g_87 g_88 g_25.f1 g_147 g_25.f3 g_191.f0 g_191.f1 g_183 g_194.f1 g_25
     * writes: g_10 g_25.f0 g_25 g_88 g_183 g_40 g_236 g_124 g_191.f0
     */
    struct S1 ** func_59(uint8_t p_60, uint64_t p_61, uint8_t p_62)
    { /* block id: 34 */
        int32_t l_67 = 0x25A5285BL;
        struct S0 *l_190 = &g_191;
        struct S1 *l_199[5][5];
        int32_t *l_246[6][8];
        struct S1 l_294[4][9] = {{{0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}}, {{0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}}, {{0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}}, {{0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}, {0xFB853ABCL,4294967287U,0x4FL,0x777E85B6L}}};
        int32_t l_316[8];
        int i, j;
        for (i = 0; i < 5; i++)
        {
            for (j = 0; j < 5; j++)
                l_199[i][j] = &g_25;
        }
        for (i = 0; i < 6; i++)
        {
            for (j = 0; j < 8; j++)
                l_246[i][j] = 0;
        }
        for (i = 0; i < 8; i++)
            l_316[i] = 6L;
        if (p_62)
        { /* block id: 35 */
            int16_t l_70 = 0x933DL;
            int32_t *l_178 = &g_124;
            struct S1 ** const l_179 = &g_88;
            int32_t *l_182 = &g_183;
            (*l_182) &= (safe_add_func_int8_t_s_s((safe_lshift_func_int16_t_s_u((p_61 || l_67), (safe_mod_func_int32_t_s_s(l_70, (func_71(func_15(l_178, l_67, g_124, &l_67, g_25.f0), func_52(l_179)) & (&g_124 == &l_67)))))), (safe_div_func_int16_t_s_s(0xDB34L, g_124))));
        }
        else
        { /* block id: 129 */
            struct S1 ** const l_207 = &g_88;
            struct S1 ** const l_210[7][4][3] = {{{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}, {{&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}, {&l_199[3][1], &l_199[3][1], &l_199[3][1]}}};
            int32_t l_221[1];
            int32_t *l_270 = &l_221[0];
            int32_t l_273 = 0L;
            struct S0 *l_281[1][4];
            struct S0 ***l_326 = &g_236;
            struct S1 ** const l_354 = 0;
            int i, j, k;
            for (i = 0; i < 1; i++)
                l_221[i] = 0xE490638FL;
            for (i = 0; i < 1; i++)
            {
                for (j = 0; j < 4; j++)
                    l_281[i][j] = &g_194;
            }
            for (g_25.f0 = (-30); (g_25.f0 < 32); g_25.f0 = safe_add_func_int32_t_s_s(g_25.f0, 1))
            { /* block id: 132 */
                struct S0 *l_193 = &g_194;
                struct S1 * const l_200 = 0;
                struct S1 l_206 = {4294967295U,1U,1U,-10L};
                int32_t *l_249 = &l_67;
                struct S1 ** const l_257 = 0;
                for (p_60 = 0; p_60 < 5; p_60 += 1)
                {
                    for (p_62 = 0; p_62 < 7; p_62 += 1)
                    {
                        g_40[p_60][p_62] = &g_41;
                    }
                }
                for (g_25.f1 = 8; (g_25.f1 > 35); g_25.f1 = safe_add_func_uint32_t_u_u(g_25.f1, 9))
                { /* block id: 136 */
                    struct S1 **l_197 = &g_88;
                    int32_t l_198 = (-10L);
                    int16_t l_216 = 0x7F4EL;
                    int i, j;
                }
                l_270 = 0;
            }
            if ((safe_div_func_int8_t_s_s((((-10L) & (&l_67 != &l_67)) | (-2L)), l_273)))
            { /* block id: 190 */
                struct S0 ***l_274 = &g_236;
                 const int32_t l_275[7] = {(-1L), (-1L), (-1L), (-1L), (-1L), (-1L), (-1L)};
                int32_t *l_276 = &l_221[0];
                int32_t **l_290 = &l_276;
                int i;
    lbl_289:
                (*l_274) = 0;
                if ((*g_147))
                { /* block id: 192 */
                     const struct S0 *l_287 = &g_191;
                    if ((safe_sub_func_int8_t_s_s(1L, (-5L))))
                    { /* block id: 193 */
                        struct S0 **l_282 = &l_190;
                        int32_t **l_283 = &l_246[1][1];
                        (*l_282) = l_281[0][2];
                        (*l_283) = &g_10;
                        (*l_276) = (*l_276);
                        l_276 = &g_124;
                    }
                    else
                    { /* block id: 198 */
                        int32_t **l_284 = &l_276;
                        struct S1 **l_286[1];
                        struct S1 ***l_285 = &l_286[0];
                         const struct S0 **l_288 = &l_287;
                        int i;
                        for (i = 0; i < 1; i++)
                            l_286[i] = &l_199[2][4];
                        (*l_284) = &l_67;
                        (*l_285) = &l_199[3][1];
                        (*l_288) = l_287;
                    }
                    (*l_276) = (*l_276);
                }
                else
                { /* block id: 204 */
                    if (p_61)
                        goto lbl_289;
                    return &g_88;
                }
                (*l_290) = &g_124;
            }
            else
            { /* block id: 209 */
                int32_t *l_291 = &g_191.f0;
                struct S1 *l_300 = &g_25;
                int32_t l_315 = 0x321604C8L;
                l_294[2][0] = func_15(l_291, (safe_mul_func_int16_t_s_s((&g_124 == l_291), (*l_291))), ((p_62 && (!((*l_291) < p_60))) >= ((-1L) >= (g_25.f2 || g_10))), l_291, p_61);
                for (p_60 = 26; (p_60 != 22); p_60 = safe_sub_func_int16_t_s_s(p_60, 9))
                { /* block id: 213 */
                    struct S1 *l_304 = 0;
                    int32_t l_312 = 0x36482B05L;
                    for (g_25.f1 = 0; (g_25.f1 > 29); g_25.f1 = safe_add_func_uint16_t_u_u(g_25.f1, 6))
                    { /* block id: 216 */
                        uint16_t l_299 = 3U;
                         const int16_t l_307[10][1] = {{1L}, {1L}, {1L}, {1L}, {1L}, {1L}, {1L}, {1L}, {1L}, {1L}};
                        struct S1 **l_310 = &l_300;
                        int32_t *l_313 = &g_183;
                        int i, j, k;
                        if (p_62)
                        { /* block id: 217 */
                            (*l_291) &= l_299;
                        }
                        else
                        { /* block id: 219 */
                            return &g_88;
                        }
                        for (p_61 = 2; p_61 < 4; p_61 += 1)
                        {
                            for (g_25.f2 = 0; g_25.f2 < 1; g_25.f2 += 1)
                            {
                                for (g_191.f0 = 1; g_191.f0 < 2; g_191.f0 += 1)
                                { /* block id: 222 */
                                    (*g_88) = func_15(&g_183, (((l_300 != 0) != (0xF6L <= g_25.f1)) || 254U), (-1L), &l_221[0], p_60);
                                    l_291 = &g_124;
                                }
                            }
                        }
                        for (g_10 = 0; (g_10 != 0); g_10 = safe_add_func_uint32_t_u_u(g_10, 5))
                        { /* block id: 228 */
                            int32_t **l_303 = &l_246[4][4];
                            (*l_303) = &l_67;
                        }
                        if (((((0x9E7D40DAL != ((p_61 != p_61) ^ (l_304 != l_300))) > (((safe_div_func_uint32_t_u_u(l_299, l_307[2][0])) != (safe_mod_func_int16_t_s_s(p_62, g_25.f0))) > 1L)) ^ (l_310 != l_310)) > (*g_147)))
                        { /* block id: 231 */
                            int16_t l_311 = 0x6A7BL;
                            l_311 = (*g_147);
                            (*l_291) = ((l_311 == (+((g_25.f0 == l_311) > 0xF2C8L))) || l_307[2][0]);
                            (*l_291) ^= l_312;
                        }
                        else
                        { /* block id: 235 */
                            int32_t **l_314 = &l_246[3][0];
                            (*l_314) = l_313;
                            (**g_87) = func_15(&g_124, g_191.f1, p_62, &g_10, p_61);
                        }
                    }
                    (**g_87) = func_15(&g_183, g_25.f3, g_183, l_291, (*l_291));
                }
                l_315 ^= (*l_291);
                (*l_291) ^= p_62;
            }
            l_221[0] &= ((g_25.f2 == (func_52(l_210[2][1][0]) | p_60)) && func_52(&g_88));
            if (p_62)
            { /* block id: 246 */
                struct S1 ** const l_317 = &l_199[0][0];
                int32_t l_327 = (-4L);
                if ((*g_147))
                { /* block id: 247 */
                    int i, j;
                    for (l_273 = 0; l_273 < 6; l_273 += 1)
                    {
                        for (g_25.f3 = 0; g_25.f3 < 8; g_25.f3 += 3)
                        { /* block id: 248 */
                            int32_t *l_322 = &g_191.f0;
                            l_316[6] = (p_61 != (g_194.f1 >= (0 != (*g_41))));
                            if (func_52(l_317))
                            { /* block id: 250 */
                                int32_t **l_318 = 0;
                                l_246[(uint32_t)(l_273) % 6][(uint32_t)(g_25.f3) % 8] = l_246[(uint32_t)(l_273) % 6][(uint32_t)(g_25.f3) % 8];
                                return &g_88;
                            }
                            else
                            { /* block id: 253 */
                                int32_t **l_319 = &l_246[2][0];
                                (*l_319) = &l_221[0];
                            }
                            for (p_62 = 0; (p_62 != 24); p_62 = safe_add_func_int32_t_s_s(p_62, 2))
                            { /* block id: 258 */
                                int32_t **l_323 = &l_270;
                                (*l_323) = l_322;
                                (*g_87) = &l_294[2][6];
                                (*g_88) = func_15(&g_183, (safe_rshift_func_uint8_t_u_u(g_25.f1, func_52(&g_88))), g_183, l_246[(uint32_t)(l_273) % 6][(uint32_t)(g_25.f3) % 8], g_183);
                            }
                            (*l_322) = (l_326 != &g_236);
                        }
                    }
                    l_327 = func_71((**l_207), p_60);
                }
                else
                { /* block id: 266 */
                    int32_t **l_328 = &l_270;
                    (*l_328) = &l_221[0];
                }
            }
            else
            { /* block id: 269 */
                struct S0 *l_350[2][6][7];
                int i, j, k;
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 6; j++)
                    {
                        for (k = 0; k < 7; k++)
                            l_350[i][j][k] = &g_194;
                    }
                }
                for (p_62 = 0; p_62 < 1; p_62 += 1)
                { /* block id: 270 */
                    int32_t **l_329 = 0;
                    int32_t **l_330 = 0;
                    int32_t **l_331 = &l_246[1][6];
                    struct S1 **l_334 = &g_88;
                    (*l_331) = &g_10;
                    if (p_62)
                        continue;
                    for (g_183 = 0; (g_183 <= 6); g_183 = safe_add_func_int32_t_s_s(g_183, 1))
                    { /* block id: 275 */
                        return l_334;
                    }
                }
                if ((p_60 ^ func_52(&g_88)))
                { /* block id: 279 */
                    uint32_t l_351 = 0xAF41F3DBL;
                    int i;
                    if (p_62)
                    { /* block id: 280 */
                        int32_t **l_335 = &l_246[1][5];
                        (*l_335) = &l_221[0];
                        for (l_67 = 15; (l_67 > (-24)); l_67 = safe_sub_func_int16_t_s_s(l_67, 1))
                        { /* block id: 284 */
                            return &g_88;
                        }
                    }
                    else
                    { /* block id: 287 */
                        int8_t l_344 = 1L;
                        int32_t l_345 = 8L;
                        l_345 ^= ((+0xC7L) >= (safe_sub_func_uint16_t_u_u(65535U, ((safe_mod_func_uint32_t_u_u(0x0C7D8826L, p_60)) || (safe_mod_func_uint8_t_u_u(p_62, l_344))))));
                        (**g_41) = (**g_41);
                        l_351 &= ((safe_add_func_int32_t_s_s((safe_lshift_func_uint16_t_u_s(func_52(0), 12)), 2L)) || (0 != l_350[0][3][4]));
                    }
                    for (p_61 = 0; p_61 < 1; p_61 += 1)
                    { /* block id: 292 */
                        struct S1 **l_352 = 0;
                        int i, j;
                        for (g_25.f3 = 0; g_25.f3 < 5; g_25.f3 += 1)
                        {
                            for (g_124 = 0; g_124 < 7; g_124 += 1)
                            { /* block id: 293 */
                                return l_352;
                            }
                        }
                        if (l_221[(p_62) % 1])
                            continue;
                    }
                }
                else
                { /* block id: 298 */
                    int32_t *l_353 = &l_316[6];
                    (**l_207) = func_15(l_353, l_221[(p_62) % 1], func_52(l_354), &l_221[0], p_60);
                }
            }
        }
        return &g_88;
    }
    
    
    /* ------------------------------------------ */
    /* 
     * reads : g_41 g_42 g_10 g_25.f0 g_87 g_25.f2 g_88 g_25.f1
     * writes: g_25.f0 g_25 g_10 g_88
     */
    int32_t func_71(struct S1 p_72, uint32_t p_73)
    { /* block id: 36 */
         const uint8_t l_78 = 0xCAL;
        int32_t *l_81[9];
        int i;
        for (i = 0; i < 9; i++)
            l_81[i] = &g_25.f3;
        for (g_25.f0 = (-20); (g_25.f0 <= 9); g_25.f0 = safe_add_func_int32_t_s_s(g_25.f0, 4))
        { /* block id: 39 */
            int32_t *l_79[4][3];
            uint16_t l_123 = 0xC463L;
            int i, j;
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 3; j++)
                    l_79[i][j] = &g_10;
            }
            for (p_72.f0 = 0; (p_72.f0 >= 47); p_72.f0 = safe_add_func_int32_t_s_s(p_72.f0, 5))
            { /* block id: 42 */
                int8_t l_82 = 4L;
                if (p_72.f1)
                { /* block id: 43 */
                    int32_t **l_80 = &l_79[2][1];
                    (**g_41) = func_15(&g_10, l_78, l_78, &g_10, p_72.f3);
                    if (p_73)
                        break;
                    (*l_80) = l_79[2][2];
                    (**g_41) = func_15(l_81[7], g_10, l_82, l_79[2][2], p_72.f1);
                }
                else
                { /* block id: 48 */
                    uint32_t l_85 = 0x9515B845L;
                    int32_t **l_86 = &l_81[7];
                    if (l_82)
                        break;
                    l_85 = (safe_sub_func_uint32_t_u_u(l_82, (0x5CL | g_25.f0)));
                    (*l_86) = l_79[1][1];
                }
                return p_72.f1;
            }
            if (func_52(g_87))
            { /* block id: 55 */
                int32_t *l_95 = &g_25.f3;
                struct S1 ** const l_134 = &g_88;
                uint8_t l_140 = 254U;
                uint32_t l_143 = 1U;
                int32_t **l_163 = &l_81[7];
                for (p_73 = 0; (p_73 < 6); p_73 = safe_add_func_int32_t_s_s(p_73, 4))
                { /* block id: 58 */
                    uint32_t l_101 = 0x682FBA83L;
                    struct S1 ** const l_106 = 0;
                    int32_t **l_162 = &l_79[0][1];
                    for (p_72.f1 = 18; (p_72.f1 == 18); p_72.f1 = safe_add_func_uint32_t_u_u(p_72.f1, 4))
                    { /* block id: 61 */
                        int32_t **l_96 = &l_81[7];
                        for (p_72.f3 = (-5); (p_72.f3 == 17); p_72.f3 = safe_add_func_int32_t_s_s(p_72.f3, 1))
                        { /* block id: 64 */
                            (*g_87) = &p_72;
                        }
                        (*l_96) = l_95;
                        p_72.f3 = (0xD9L | (0 != &p_72));
                        for (p_72.f3 = 0; (p_72.f3 > (-22)); p_72.f3 = safe_sub_func_int16_t_s_s(p_72.f3, 1))
                        { /* block id: 71 */
                            (**g_87) = func_15(&g_10, g_25.f0, g_10, &g_10, p_72.f0);
                            (*l_95) = (safe_add_func_uint16_t_u_u(l_101, ((-1L) > (p_73 <= 0x52677066L))));
                        }
                    }
                    (*l_95) = p_72.f1;
                    if (p_73)
                        break;
                }
                (*g_88) = func_15(l_95, p_73, g_10, &g_124, g_25.f1);
                (*l_163) = &g_10;
            }
            else
            { /* block id: 117 */
                uint8_t l_176 = 254U;
                int32_t l_177[4][10][1];
                int i, j, k;
                for (i = 0; i < 4; i++)
                {
                    for (j = 0; j < 10; j++)
                    {
                        for (k = 0; k < 1; k++)
                            l_177[i][j][k] = 0L;
                    }
                }
                for (g_25.f1 = 21; (g_25.f1 <= 23); g_25.f1 = safe_add_func_uint32_t_u_u(g_25.f1, 4))
                { /* block id: 120 */
                    int16_t l_169 = 0xE784L;
                    p_72.f3 ^= (safe_sub_func_uint32_t_u_u(0x456848F5L, (safe_unary_minus_func_int8_t_s(l_169))));
                    l_177[1][7][0] = (safe_rshift_func_int16_t_s_u((p_73 >= (g_25.f0 | (safe_sub_func_int32_t_s_s((safe_rshift_func_int8_t_s_u((g_25.f0 | l_169), p_72.f3)), l_176)))), 6));
                }
            }
            p_72.f3 = p_72.f3;
        }
        return p_72.f3;
    }
    
    
    
    
    /* ---------------------------------------- */
    int main (void)
    {
        int i, j, k;
        int print_hash_value = 0;
        platform_main_begin();
        crc32_gentab();
        func_1();
        transparent_crc(g_10, "g_10", print_hash_value);
        transparent_crc(g_25.f0, "g_25.f0", print_hash_value);
        transparent_crc(g_25.f1, "g_25.f1", print_hash_value);
        transparent_crc(g_25.f2, "g_25.f2", print_hash_value);
        transparent_crc(g_25.f3, "g_25.f3", print_hash_value);
        transparent_crc(g_124, "g_124", print_hash_value);
        transparent_crc(g_183, "g_183", print_hash_value);
        transparent_crc(g_191.f0, "g_191.f0", print_hash_value);
        transparent_crc(g_191.f1, "g_191.f1", print_hash_value);
        transparent_crc(g_194.f0, "g_194.f0", print_hash_value);
        transparent_crc(g_194.f1, "g_194.f1", print_hash_value);
        transparent_crc(g_525, "g_525", print_hash_value);
        transparent_crc(g_571, "g_571", print_hash_value);
        transparent_crc(g_591, "g_591", print_hash_value);
        for (i = 0; i < 1; i++)
        {
            for (j = 0; j < 6; j++)
            {
                transparent_crc(g_812[i][j].f0, "g_812[i][j].f0", print_hash_value);
                transparent_crc(g_812[i][j].f1, "g_812[i][j].f1", print_hash_value);
                if (print_hash_value) printf("index = [%d][%d]\n", i, j);
    
            }
        }
        transparent_crc(g_840, "g_840", print_hash_value);
        transparent_crc(g_891, "g_891", print_hash_value);
        transparent_crc(g_953, "g_953", print_hash_value);
        platform_main_end(crc32_context ^ 0xFFFFFFFFUL);
        return 0;
    }
    
    /************************ statistics *************************
    XXX max struct depth: 1
    breakdown:
       depth: 0, occurrence: 416
       depth: 1, occurrence: 29
    
    XXX max expression depth: 2
    breakdown:
       depth: 0, occurrence: 404
       depth: 1, occurrence: 35
       depth: 2, occurrence: 3
    
    XXX total number of pointers: 282
    
    XXX times a variable address is taken: 200
    XXX times a pointer is dereferenced on RHS: 297
    breakdown:
       depth: 1, occurrence: 230
       depth: 2, occurrence: 61
       depth: 3, occurrence: 6
    XXX times a pointer is dereferenced on LHS: 249
    breakdown:
       depth: 1, occurrence: 179
       depth: 2, occurrence: 60
       depth: 3, occurrence: 10
    XXX times a pointer is compared with null: 26
    XXX times a pointer is compared with address of another variable: 21
    XXX times a pointer is compared with another pointer: 22
    XXX times a pointer is qualified to be dereferenced: 1931
    
    XXX max dereference level: 3
    breakdown:
       level: 0, occurrence: 0
       level: 1, occurrence: 2165
       level: 2, occurrence: 659
       level: 3, occurrence: 105
    XXX number of pointers point to pointers: 153
    XXX number of pointers point to scalars: 89
    XXX number of pointers point to structs: 40
    XXX percent of pointers has null in alias set: 26.6
    XXX average alias set size: 1.35
    
    XXX times a non-volatile is read: 1697
    XXX times a non-volatile is write: 724
    XXX times a volatile is read: 0
    XXX    times read thru a pointer: 0
    XXX times a volatile is write: 0
    XXX    times written thru a pointer: 0
    XXX times a volatile is available for access: 0
    XXX percentage of non-volatile access: 100
    
    XXX forward jumps: 4
    XXX backward jumps: 3
    
    XXX stmts: 896
    
    XXX percentage a fresh-made variable is used: 17.4
    XXX percentage an existing variable is used: 82.6
    ********************* end of statistics **********************/
    
    ? file icon dummy_loc.i (189,870 bytes) 2011-03-30 10:57 +

-Relationships
+Relationships

-Notes

~0004814

Fix committed to stable/neon branch.
+Notes

-Issue History
Date Modified Username Field Change
2011-03-30 10:57 pascal New Issue
2011-03-30 10:57 pascal File Added: dummy_loc.i
2011-03-30 10:59 pascal Status new => assigned
2011-03-30 10:59 pascal Assigned To => virgile
2011-03-31 10:43 svn
2011-04-01 18:26 svn
2011-04-01 18:26 svn Status assigned => resolved
2011-04-01 18:26 svn Resolution open => fixed
2011-10-10 14:13 signoles Fixed in Version => Frama-C Nitrogen-20111001
2011-10-10 14:14 signoles Status resolved => closed
2013-12-19 01:12 Source_changeset_attached => framac master a096396a
2013-12-19 01:12 svn Source_changeset_attached => framac master 4f045035
2014-02-12 16:54 Source_changeset_attached => framac stable/neon a096396a
2014-02-12 16:54 monate Source_changeset_attached => framac stable/neon 4f045035
2014-02-12 16:59 Note Added: 0004814
2014-02-12 16:59 Status closed => resolved
+Issue History