extern void __chk_fail (void) __attribute__ ((__noreturn__)); typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; 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; typedef long int __quad_t; typedef unsigned long int __u_quad_t; typedef long int __intmax_t; typedef unsigned long int __uintmax_t; typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; typedef int __sig_atomic_t; static __inline unsigned int __bswap_32 (unsigned int __bsx) { return __builtin_bswap32 (__bsx); } static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { return __builtin_bswap64 (__bsx); } static __inline __uint16_t __uint16_identity (__uint16_t __x) { return __x; } static __inline __uint32_t __uint32_identity (__uint32_t __x) { return __x; } static __inline __uint64_t __uint64_identity (__uint64_t __x) { return __x; } union ieee754_float { float f; struct { unsigned int mantissa:23; unsigned int exponent:8; unsigned int negative:1; } ieee; struct { unsigned int mantissa:22; unsigned int quiet_nan:1; unsigned int exponent:8; unsigned int negative:1; } ieee_nan; }; union ieee754_double { double d; struct { unsigned int mantissa1:32; unsigned int mantissa0:20; unsigned int exponent:11; unsigned int negative:1; } ieee; struct { unsigned int mantissa1:32; unsigned int mantissa0:19; unsigned int quiet_nan:1; unsigned int exponent:11; unsigned int negative:1; } ieee_nan; }; union ieee854_long_double { long double d; struct { unsigned int mantissa3:32; unsigned int mantissa2:32; unsigned int mantissa1:32; unsigned int mantissa0:16; unsigned int exponent:15; unsigned int negative:1; } ieee; struct { unsigned int mantissa3:32; unsigned int mantissa2:32; unsigned int mantissa1:32; unsigned int mantissa0:15; unsigned int quiet_nan:1; unsigned int exponent:15; unsigned int negative:1; } ieee_nan; }; typedef float float_t; typedef double double_t; enum { FP_INT_UPWARD = 0, FP_INT_DOWNWARD = 1, FP_INT_TOWARDZERO = 2, FP_INT_TONEARESTFROMZERO = 3, FP_INT_TONEAREST = 4, }; extern int __fpclassify (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __signbit (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isinf (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __finite (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isnan (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __iseqsig (double __x, double __y) __attribute__ ((__nothrow__ )); extern int __issignaling (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double acos (double __x) __attribute__ ((__nothrow__ )); extern double __acos (double __x) __attribute__ ((__nothrow__ )); extern double asin (double __x) __attribute__ ((__nothrow__ )); extern double __asin (double __x) __attribute__ ((__nothrow__ )); extern double atan (double __x) __attribute__ ((__nothrow__ )); extern double __atan (double __x) __attribute__ ((__nothrow__ )); extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__ )); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__ )); extern double cos (double __x) __attribute__ ((__nothrow__ )); extern double __cos (double __x) __attribute__ ((__nothrow__ )); extern double sin (double __x) __attribute__ ((__nothrow__ )); extern double __sin (double __x) __attribute__ ((__nothrow__ )); extern double tan (double __x) __attribute__ ((__nothrow__ )); extern double __tan (double __x) __attribute__ ((__nothrow__ )); extern double cosh (double __x) __attribute__ ((__nothrow__ )); extern double __cosh (double __x) __attribute__ ((__nothrow__ )); extern double sinh (double __x) __attribute__ ((__nothrow__ )); extern double __sinh (double __x) __attribute__ ((__nothrow__ )); extern double tanh (double __x) __attribute__ ((__nothrow__ )); extern double __tanh (double __x) __attribute__ ((__nothrow__ )); extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__ )); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__ )) ; extern double acosh (double __x) __attribute__ ((__nothrow__ )); extern double __acosh (double __x) __attribute__ ((__nothrow__ )); extern double asinh (double __x) __attribute__ ((__nothrow__ )); extern double __asinh (double __x) __attribute__ ((__nothrow__ )); extern double atanh (double __x) __attribute__ ((__nothrow__ )); extern double __atanh (double __x) __attribute__ ((__nothrow__ )); extern double exp (double __x) __attribute__ ((__nothrow__ )); extern double __exp (double __x) __attribute__ ((__nothrow__ )); extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ )); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ )); extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ )); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ )); extern double log (double __x) __attribute__ ((__nothrow__ )); extern double __log (double __x) __attribute__ ((__nothrow__ )); extern double log10 (double __x) __attribute__ ((__nothrow__ )); extern double __log10 (double __x) __attribute__ ((__nothrow__ )); extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__ )); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__ )) ; extern double exp10 (double __x) __attribute__ ((__nothrow__ )); extern double __exp10 (double __x) __attribute__ ((__nothrow__ )); extern double pow10 (double __x) __attribute__ ((__nothrow__ )); extern double __pow10 (double __x) __attribute__ ((__nothrow__ )); extern double expm1 (double __x) __attribute__ ((__nothrow__ )); extern double __expm1 (double __x) __attribute__ ((__nothrow__ )); extern double log1p (double __x) __attribute__ ((__nothrow__ )); extern double __log1p (double __x) __attribute__ ((__nothrow__ )); extern double logb (double __x) __attribute__ ((__nothrow__ )); extern double __logb (double __x) __attribute__ ((__nothrow__ )); extern double exp2 (double __x) __attribute__ ((__nothrow__ )); extern double __exp2 (double __x) __attribute__ ((__nothrow__ )); extern double log2 (double __x) __attribute__ ((__nothrow__ )); extern double __log2 (double __x) __attribute__ ((__nothrow__ )); extern double pow (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__ )); extern double sqrt (double __x) __attribute__ ((__nothrow__ )); extern double __sqrt (double __x) __attribute__ ((__nothrow__ )); extern double hypot (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__ )); extern double cbrt (double __x) __attribute__ ((__nothrow__ )); extern double __cbrt (double __x) __attribute__ ((__nothrow__ )); extern double ceil (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double fabs (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double floor (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double fmod (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__ )); extern int isinf (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int finite (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double drem (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__ )); extern double significand (double __x) __attribute__ ((__nothrow__ )); extern double __significand (double __x) __attribute__ ((__nothrow__ )); extern double copysign (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double nan (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __nan (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int isnan (double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double j0 (double) __attribute__ ((__nothrow__ )); extern double __j0 (double) __attribute__ ((__nothrow__ )); extern double j1 (double) __attribute__ ((__nothrow__ )); extern double __j1 (double) __attribute__ ((__nothrow__ )); extern double jn (int, double) __attribute__ ((__nothrow__ )); extern double __jn (int, double) __attribute__ ((__nothrow__ )); extern double y0 (double) __attribute__ ((__nothrow__ )); extern double __y0 (double) __attribute__ ((__nothrow__ )); extern double y1 (double) __attribute__ ((__nothrow__ )); extern double __y1 (double) __attribute__ ((__nothrow__ )); extern double yn (int, double) __attribute__ ((__nothrow__ )); extern double __yn (int, double) __attribute__ ((__nothrow__ )); extern double erf (double) __attribute__ ((__nothrow__ )); extern double __erf (double) __attribute__ ((__nothrow__ )); extern double erfc (double) __attribute__ ((__nothrow__ )); extern double __erfc (double) __attribute__ ((__nothrow__ )); extern double lgamma (double) __attribute__ ((__nothrow__ )); extern double __lgamma (double) __attribute__ ((__nothrow__ )); extern double tgamma (double) __attribute__ ((__nothrow__ )); extern double __tgamma (double) __attribute__ ((__nothrow__ )); extern double gamma (double) __attribute__ ((__nothrow__ )); extern double __gamma (double) __attribute__ ((__nothrow__ )); extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ )); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ )); extern double rint (double __x) __attribute__ ((__nothrow__ )); extern double __rint (double __x) __attribute__ ((__nothrow__ )); extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double nextdown (double __x) __attribute__ ((__nothrow__ )); extern double __nextdown (double __x) __attribute__ ((__nothrow__ )); extern double nextup (double __x) __attribute__ ((__nothrow__ )); extern double __nextup (double __x) __attribute__ ((__nothrow__ )); extern double remainder (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__ )); extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__ )); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__ )); extern int ilogb (double __x) __attribute__ ((__nothrow__ )); extern int __ilogb (double __x) __attribute__ ((__nothrow__ )); extern long int llogb (double __x) __attribute__ ((__nothrow__ )); extern long int __llogb (double __x) __attribute__ ((__nothrow__ )); extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__ )); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__ )); extern double nearbyint (double __x) __attribute__ ((__nothrow__ )); extern double __nearbyint (double __x) __attribute__ ((__nothrow__ )); extern double round (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double trunc (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ )); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ )); extern long int lrint (double __x) __attribute__ ((__nothrow__ )); extern long int __lrint (double __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llrint (double __x) __attribute__ ((__nothrow__ )); extern long long int __llrint (double __x) __attribute__ ((__nothrow__ )); extern long int lround (double __x) __attribute__ ((__nothrow__ )); extern long int __lround (double __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llround (double __x) __attribute__ ((__nothrow__ )); extern long long int __llround (double __x) __attribute__ ((__nothrow__ )); extern double fdim (double __x, double __y) __attribute__ ((__nothrow__ )); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__ )); extern double fmax (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double fmin (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ )); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ )); extern double roundeven (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __roundeven (double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern __intmax_t fromfp (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern double fmaxmag (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double fminmag (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalorder (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalordermag (double __x, double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int canonicalize (double *__cx, const double *__x) __attribute__ ((__nothrow__ )); extern double getpayload (const double *__x) __attribute__ ((__nothrow__ )); extern double __getpayload (const double *__x) __attribute__ ((__nothrow__ )); extern int setpayload (double *__x, double __payload) __attribute__ ((__nothrow__ )); extern int setpayloadsig (double *__x, double __payload) __attribute__ ((__nothrow__ )); extern double scalb (double __x, double __n) __attribute__ ((__nothrow__ )); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__ )); extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __signbitf (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isinff (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __finitef (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isnanf (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __iseqsigf (float __x, float __y) __attribute__ ((__nothrow__ )); extern int __issignalingf (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float acosf (float __x) __attribute__ ((__nothrow__ )); extern float __acosf (float __x) __attribute__ ((__nothrow__ )); extern float asinf (float __x) __attribute__ ((__nothrow__ )); extern float __asinf (float __x) __attribute__ ((__nothrow__ )); extern float atanf (float __x) __attribute__ ((__nothrow__ )); extern float __atanf (float __x) __attribute__ ((__nothrow__ )); extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__ )); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__ )); extern float cosf (float __x) __attribute__ ((__nothrow__ )); extern float __cosf (float __x) __attribute__ ((__nothrow__ )); extern float sinf (float __x) __attribute__ ((__nothrow__ )); extern float __sinf (float __x) __attribute__ ((__nothrow__ )); extern float tanf (float __x) __attribute__ ((__nothrow__ )); extern float __tanf (float __x) __attribute__ ((__nothrow__ )); extern float coshf (float __x) __attribute__ ((__nothrow__ )); extern float __coshf (float __x) __attribute__ ((__nothrow__ )); extern float sinhf (float __x) __attribute__ ((__nothrow__ )); extern float __sinhf (float __x) __attribute__ ((__nothrow__ )); extern float tanhf (float __x) __attribute__ ((__nothrow__ )); extern float __tanhf (float __x) __attribute__ ((__nothrow__ )); extern void sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__ )); extern void __sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__ )) ; extern float acoshf (float __x) __attribute__ ((__nothrow__ )); extern float __acoshf (float __x) __attribute__ ((__nothrow__ )); extern float asinhf (float __x) __attribute__ ((__nothrow__ )); extern float __asinhf (float __x) __attribute__ ((__nothrow__ )); extern float atanhf (float __x) __attribute__ ((__nothrow__ )); extern float __atanhf (float __x) __attribute__ ((__nothrow__ )); extern float expf (float __x) __attribute__ ((__nothrow__ )); extern float __expf (float __x) __attribute__ ((__nothrow__ )); extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ )); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ )); extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ )); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ )); extern float logf (float __x) __attribute__ ((__nothrow__ )); extern float __logf (float __x) __attribute__ ((__nothrow__ )); extern float log10f (float __x) __attribute__ ((__nothrow__ )); extern float __log10f (float __x) __attribute__ ((__nothrow__ )); extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__ )); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__ )) ; extern float exp10f (float __x) __attribute__ ((__nothrow__ )); extern float __exp10f (float __x) __attribute__ ((__nothrow__ )); extern float pow10f (float __x) __attribute__ ((__nothrow__ )); extern float __pow10f (float __x) __attribute__ ((__nothrow__ )); extern float expm1f (float __x) __attribute__ ((__nothrow__ )); extern float __expm1f (float __x) __attribute__ ((__nothrow__ )); extern float log1pf (float __x) __attribute__ ((__nothrow__ )); extern float __log1pf (float __x) __attribute__ ((__nothrow__ )); extern float logbf (float __x) __attribute__ ((__nothrow__ )); extern float __logbf (float __x) __attribute__ ((__nothrow__ )); extern float exp2f (float __x) __attribute__ ((__nothrow__ )); extern float __exp2f (float __x) __attribute__ ((__nothrow__ )); extern float log2f (float __x) __attribute__ ((__nothrow__ )); extern float __log2f (float __x) __attribute__ ((__nothrow__ )); extern float powf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float sqrtf (float __x) __attribute__ ((__nothrow__ )); extern float __sqrtf (float __x) __attribute__ ((__nothrow__ )); extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float cbrtf (float __x) __attribute__ ((__nothrow__ )); extern float __cbrtf (float __x) __attribute__ ((__nothrow__ )); extern float ceilf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float fabsf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float floorf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__ )); extern int isinff (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int finitef (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float dremf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float significandf (float __x) __attribute__ ((__nothrow__ )); extern float __significandf (float __x) __attribute__ ((__nothrow__ )); extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float nanf (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __nanf (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int isnanf (float __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float j0f (float) __attribute__ ((__nothrow__ )); extern float __j0f (float) __attribute__ ((__nothrow__ )); extern float j1f (float) __attribute__ ((__nothrow__ )); extern float __j1f (float) __attribute__ ((__nothrow__ )); extern float jnf (int, float) __attribute__ ((__nothrow__ )); extern float __jnf (int, float) __attribute__ ((__nothrow__ )); extern float y0f (float) __attribute__ ((__nothrow__ )); extern float __y0f (float) __attribute__ ((__nothrow__ )); extern float y1f (float) __attribute__ ((__nothrow__ )); extern float __y1f (float) __attribute__ ((__nothrow__ )); extern float ynf (int, float) __attribute__ ((__nothrow__ )); extern float __ynf (int, float) __attribute__ ((__nothrow__ )); extern float erff (float) __attribute__ ((__nothrow__ )); extern float __erff (float) __attribute__ ((__nothrow__ )); extern float erfcf (float) __attribute__ ((__nothrow__ )); extern float __erfcf (float) __attribute__ ((__nothrow__ )); extern float lgammaf (float) __attribute__ ((__nothrow__ )); extern float __lgammaf (float) __attribute__ ((__nothrow__ )); extern float tgammaf (float) __attribute__ ((__nothrow__ )); extern float __tgammaf (float) __attribute__ ((__nothrow__ )); extern float gammaf (float) __attribute__ ((__nothrow__ )); extern float __gammaf (float) __attribute__ ((__nothrow__ )); extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ )); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ )); extern float rintf (float __x) __attribute__ ((__nothrow__ )); extern float __rintf (float __x) __attribute__ ((__nothrow__ )); extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float nextdownf (float __x) __attribute__ ((__nothrow__ )); extern float __nextdownf (float __x) __attribute__ ((__nothrow__ )); extern float nextupf (float __x) __attribute__ ((__nothrow__ )); extern float __nextupf (float __x) __attribute__ ((__nothrow__ )); extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__ )); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__ )); extern int ilogbf (float __x) __attribute__ ((__nothrow__ )); extern int __ilogbf (float __x) __attribute__ ((__nothrow__ )); extern long int llogbf (float __x) __attribute__ ((__nothrow__ )); extern long int __llogbf (float __x) __attribute__ ((__nothrow__ )); extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ )); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ )); extern float nearbyintf (float __x) __attribute__ ((__nothrow__ )); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__ )); extern float roundf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float truncf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ )); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ )); extern long int lrintf (float __x) __attribute__ ((__nothrow__ )); extern long int __lrintf (float __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llrintf (float __x) __attribute__ ((__nothrow__ )); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__ )); extern long int lroundf (float __x) __attribute__ ((__nothrow__ )); extern long int __lroundf (float __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llroundf (float __x) __attribute__ ((__nothrow__ )); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__ )); extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__ )); extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float fminf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ )); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ )); extern float roundevenf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __roundevenf (float __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern float fmaxmagf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float fminmagf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalorderf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalordermagf (float __x, float __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int canonicalizef (float *__cx, const float *__x) __attribute__ ((__nothrow__ )); extern float getpayloadf (const float *__x) __attribute__ ((__nothrow__ )); extern float __getpayloadf (const float *__x) __attribute__ ((__nothrow__ )); extern int setpayloadf (float *__x, float __payload) __attribute__ ((__nothrow__ )); extern int setpayloadsigf (float *__x, float __payload) __attribute__ ((__nothrow__ )); extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__ )); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__ )); extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __signbitl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isinfl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __finitel (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __isnanl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int __iseqsigl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern int __issignalingl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double acosl (long double __x) __attribute__ ((__nothrow__ )); extern long double __acosl (long double __x) __attribute__ ((__nothrow__ )); extern long double asinl (long double __x) __attribute__ ((__nothrow__ )); extern long double __asinl (long double __x) __attribute__ ((__nothrow__ )); extern long double atanl (long double __x) __attribute__ ((__nothrow__ )); extern long double __atanl (long double __x) __attribute__ ((__nothrow__ )); extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ )); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ )); extern long double cosl (long double __x) __attribute__ ((__nothrow__ )); extern long double __cosl (long double __x) __attribute__ ((__nothrow__ )); extern long double sinl (long double __x) __attribute__ ((__nothrow__ )); extern long double __sinl (long double __x) __attribute__ ((__nothrow__ )); extern long double tanl (long double __x) __attribute__ ((__nothrow__ )); extern long double __tanl (long double __x) __attribute__ ((__nothrow__ )); extern long double coshl (long double __x) __attribute__ ((__nothrow__ )); extern long double __coshl (long double __x) __attribute__ ((__nothrow__ )); extern long double sinhl (long double __x) __attribute__ ((__nothrow__ )); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__ )); extern long double tanhl (long double __x) __attribute__ ((__nothrow__ )); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__ )); extern void sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__ )); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__ )) ; extern long double acoshl (long double __x) __attribute__ ((__nothrow__ )); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__ )); extern long double asinhl (long double __x) __attribute__ ((__nothrow__ )); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__ )); extern long double atanhl (long double __x) __attribute__ ((__nothrow__ )); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__ )); extern long double expl (long double __x) __attribute__ ((__nothrow__ )); extern long double __expl (long double __x) __attribute__ ((__nothrow__ )); extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ )); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ )); extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ )); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ )); extern long double logl (long double __x) __attribute__ ((__nothrow__ )); extern long double __logl (long double __x) __attribute__ ((__nothrow__ )); extern long double log10l (long double __x) __attribute__ ((__nothrow__ )); extern long double __log10l (long double __x) __attribute__ ((__nothrow__ )); extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ )); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ )) ; extern long double exp10l (long double __x) __attribute__ ((__nothrow__ )); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__ )); extern long double pow10l (long double __x) __attribute__ ((__nothrow__ )); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__ )); extern long double expm1l (long double __x) __attribute__ ((__nothrow__ )); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__ )); extern long double log1pl (long double __x) __attribute__ ((__nothrow__ )); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__ )); extern long double logbl (long double __x) __attribute__ ((__nothrow__ )); extern long double __logbl (long double __x) __attribute__ ((__nothrow__ )); extern long double exp2l (long double __x) __attribute__ ((__nothrow__ )); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__ )); extern long double log2l (long double __x) __attribute__ ((__nothrow__ )); extern long double __log2l (long double __x) __attribute__ ((__nothrow__ )); extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double sqrtl (long double __x) __attribute__ ((__nothrow__ )); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__ )); extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double cbrtl (long double __x) __attribute__ ((__nothrow__ )); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__ )); extern long double ceill (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double fabsl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double floorl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern int isinfl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int finitel (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double significandl (long double __x) __attribute__ ((__nothrow__ )); extern long double __significandl (long double __x) __attribute__ ((__nothrow__ )); extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double nanl (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int isnanl (long double __value) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double j0l (long double) __attribute__ ((__nothrow__ )); extern long double __j0l (long double) __attribute__ ((__nothrow__ )); extern long double j1l (long double) __attribute__ ((__nothrow__ )); extern long double __j1l (long double) __attribute__ ((__nothrow__ )); extern long double jnl (int, long double) __attribute__ ((__nothrow__ )); extern long double __jnl (int, long double) __attribute__ ((__nothrow__ )); extern long double y0l (long double) __attribute__ ((__nothrow__ )); extern long double __y0l (long double) __attribute__ ((__nothrow__ )); extern long double y1l (long double) __attribute__ ((__nothrow__ )); extern long double __y1l (long double) __attribute__ ((__nothrow__ )); extern long double ynl (int, long double) __attribute__ ((__nothrow__ )); extern long double __ynl (int, long double) __attribute__ ((__nothrow__ )); extern long double erfl (long double) __attribute__ ((__nothrow__ )); extern long double __erfl (long double) __attribute__ ((__nothrow__ )); extern long double erfcl (long double) __attribute__ ((__nothrow__ )); extern long double __erfcl (long double) __attribute__ ((__nothrow__ )); extern long double lgammal (long double) __attribute__ ((__nothrow__ )); extern long double __lgammal (long double) __attribute__ ((__nothrow__ )); extern long double tgammal (long double) __attribute__ ((__nothrow__ )); extern long double __tgammal (long double) __attribute__ ((__nothrow__ )); extern long double gammal (long double) __attribute__ ((__nothrow__ )); extern long double __gammal (long double) __attribute__ ((__nothrow__ )); extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ )); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ )); extern long double rintl (long double __x) __attribute__ ((__nothrow__ )); extern long double __rintl (long double __x) __attribute__ ((__nothrow__ )); extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double nextdownl (long double __x) __attribute__ ((__nothrow__ )); extern long double __nextdownl (long double __x) __attribute__ ((__nothrow__ )); extern long double nextupl (long double __x) __attribute__ ((__nothrow__ )); extern long double __nextupl (long double __x) __attribute__ ((__nothrow__ )); extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ )); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ )); extern int ilogbl (long double __x) __attribute__ ((__nothrow__ )); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__ )); extern long int llogbl (long double __x) __attribute__ ((__nothrow__ )); extern long int __llogbl (long double __x) __attribute__ ((__nothrow__ )); extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ )); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ )); extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__ )); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__ )); extern long double roundl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double truncl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ )); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ )); extern long int lrintl (long double __x) __attribute__ ((__nothrow__ )); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llrintl (long double __x) __attribute__ ((__nothrow__ )); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__ )); extern long int lroundl (long double __x) __attribute__ ((__nothrow__ )); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__ )); __extension__ extern long long int llroundl (long double __x) __attribute__ ((__nothrow__ )); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__ )); extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ )); extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ )); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ )); extern long double roundevenl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __roundevenl (long double __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) __attribute__ ((__nothrow__ )) ; extern long double fmaxmagl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double fminmagl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalorderl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int totalordermagl (long double __x, long double __y) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern int canonicalizel (long double *__cx, const long double *__x) __attribute__ ((__nothrow__ )); extern long double getpayloadl (const long double *__x) __attribute__ ((__nothrow__ )); extern long double __getpayloadl (const long double *__x) __attribute__ ((__nothrow__ )); extern int setpayloadl (long double *__x, long double __payload) __attribute__ ((__nothrow__ )); extern int setpayloadsigl (long double *__x, long double __payload) __attribute__ ((__nothrow__ )); extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ )); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ )); extern int signgam; enum { FP_NAN = 0, FP_INFINITE = 1, FP_ZERO = 2, FP_SUBNORMAL = 3, FP_NORMAL = 4 }; typedef enum { _IEEE_ = -1, _SVID_, _XOPEN_, _POSIX_, _ISOC_ } _LIB_VERSION_TYPE; extern _LIB_VERSION_TYPE _LIB_VERSION; struct exception { int type; char *name; double arg1; double arg2; double retval; }; extern int matherr (struct exception *__exc); extern int __matherr (struct exception *__exc); extern int __signgam; enum { FE_INVALID = 1, FE_DIVBYZERO = 2, FE_OVERFLOW = 4, FE_UNDERFLOW = 8, FE_INEXACT = 16, }; typedef unsigned int fexcept_t; typedef struct { unsigned int __fpcr; unsigned int __fpsr; } fenv_t; typedef unsigned int femode_t; extern int feclearexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__ )); extern int feraiseexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fesetexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__ )); extern int fetestexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fetestexceptflag (const fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__ )); extern int fegetround (void) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)); extern int fesetround (int __rounding_direction) __attribute__ ((__nothrow__ )); extern int fegetenv (fenv_t *__envp) __attribute__ ((__nothrow__ )); extern int feholdexcept (fenv_t *__envp) __attribute__ ((__nothrow__ )); extern int fesetenv (const fenv_t *__envp) __attribute__ ((__nothrow__ )); extern int feupdateenv (const fenv_t *__envp) __attribute__ ((__nothrow__ )); extern int fegetmode (femode_t *__modep) __attribute__ ((__nothrow__ )); extern int fesetmode (const femode_t *__modep) __attribute__ ((__nothrow__ )); extern int feenableexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fedisableexcept (int __excepts) __attribute__ ((__nothrow__ )); extern int fegetexcept (void) __attribute__ ((__nothrow__ )); extern int __feclearexcept (int __excepts); extern int __fegetexcept (void); extern int __fegetexceptflag (fexcept_t *__flagp, int __excepts); extern int __feraiseexcept (int __excepts); extern int __fesetexceptflag (const fexcept_t *__flagp, int __excepts); extern int __fegetenv (fenv_t *__envp); extern int __fesetenv (const fenv_t *__envp); extern int __feupdateenv (const fenv_t *__envp); extern __typeof (fegetround) __fegetround __attribute__ ((__pure__)); extern __typeof (feholdexcept) __feholdexcept; extern __typeof (fesetround) __fesetround; struct rm_ctx { fenv_t env; _Bool updated_status; }; typedef __int8_t int8_t; typedef __int16_t int16_t; typedef __int32_t int32_t; typedef __int64_t int64_t; typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; typedef __uint32_t uint32_t; typedef __uint64_t uint64_t; typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; typedef long int int_least64_t; 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; typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; 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; typedef long int intptr_t; typedef unsigned long int uintptr_t; typedef __intmax_t intmax_t; typedef __uintmax_t uintmax_t; typedef unsigned int __gwchar_t; typedef struct { long int quot; long int rem; } imaxdiv_t; extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern intmax_t strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )); extern uintmax_t strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ )); extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )); extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ )); extern long int __strtol_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern __inline intmax_t __attribute__ ((__nothrow__ )) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtol_internal (nptr, endptr, base, 0); } extern unsigned long int __strtoul_internal (const char *__restrict __nptr, char ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern __inline uintmax_t __attribute__ ((__nothrow__ )) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) { return __strtoul_internal (nptr, endptr, base, 0); } extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern __inline intmax_t __attribute__ ((__nothrow__ )) wcstoimax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstol_internal (nptr, endptr, base, 0); } extern unsigned long int __wcstoul_internal (const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern __inline uintmax_t __attribute__ ((__nothrow__ )) wcstoumax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) { return __wcstoul_internal (nptr, endptr, base, 0); } typedef unsigned int fpu_control_t; typedef unsigned int fpu_fpsr_t; extern fpu_control_t __fpu_control; extern void __setfpucw (fpu_control_t); extern __inline __attribute__ ((__always_inline__)) double __ieee754_sqrt (double d) { double res; asm __volatile__ ("fsqrt %d0, %d1" : "=w" (res) : "w" (d)); return res; } extern __inline __attribute__ ((__always_inline__)) float __ieee754_sqrtf (float s) { float res; asm __volatile__ ("fsqrt %s0, %s1" : "=w" (res) : "w" (s)); return res; } static __inline __attribute__ ((__always_inline__)) void libc_feholdexcept_aarch64 (fenv_t *envp) { fpu_control_t fpcr; fpu_control_t new_fpcr; fpu_fpsr_t fpsr; fpu_fpsr_t new_fpsr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); envp->__fpcr = fpcr; envp->__fpsr = fpsr; new_fpcr = fpcr & ~((1 | 2 | 4 | 8 | 16) << 8); new_fpsr = fpsr & ~(1 | 2 | 4 | 8 | 16); if (__builtin_expect ((new_fpcr != fpcr), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (new_fpcr)); if (new_fpsr != fpsr) __asm__ __volatile__ ("msr fpsr, %0" : : "r" (new_fpsr)); } static __inline __attribute__ ((__always_inline__)) void libc_fesetround_aarch64 (int round) { fpu_control_t fpcr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); round = (fpcr ^ round) & 0xc00000; if (__builtin_expect ((round != 0), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr ^ round)); } static __inline __attribute__ ((__always_inline__)) void libc_feholdexcept_setround_aarch64 (fenv_t *envp, int round) { fpu_control_t fpcr; fpu_control_t new_fpcr; fpu_fpsr_t fpsr; fpu_fpsr_t new_fpsr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); envp->__fpcr = fpcr; envp->__fpsr = fpsr; new_fpcr = fpcr & ~(((1 | 2 | 4 | 8 | 16) << 8) | 0xc00000); new_fpcr |= round; new_fpsr = fpsr & ~(1 | 2 | 4 | 8 | 16); if (__builtin_expect ((new_fpcr != fpcr), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (new_fpcr)); if (new_fpsr != fpsr) __asm__ __volatile__ ("msr fpsr, %0" : : "r" (new_fpsr)); } static __inline __attribute__ ((__always_inline__)) int libc_fetestexcept_aarch64 (int ex) { fpu_fpsr_t fpsr; __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); return fpsr & ex & (1 | 2 | 4 | 8 | 16); } static __inline __attribute__ ((__always_inline__)) void libc_fesetenv_aarch64 (const fenv_t *envp) { fpu_control_t fpcr; fpu_control_t new_fpcr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); new_fpcr = envp->__fpcr; if (__builtin_expect ((fpcr != new_fpcr), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (new_fpcr)); __asm__ __volatile__ ("msr fpsr, %0" : : "r" (envp->__fpsr)); } static __inline __attribute__ ((__always_inline__)) int libc_feupdateenv_test_aarch64 (const fenv_t *envp, int ex) { fpu_control_t fpcr; fpu_control_t new_fpcr; fpu_fpsr_t fpsr; fpu_fpsr_t new_fpsr; int excepts; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); excepts = fpsr & (1 | 2 | 4 | 8 | 16); new_fpcr = envp->__fpcr; new_fpsr = envp->__fpsr | excepts; if (__builtin_expect ((fpcr != new_fpcr), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (new_fpcr)); if (fpsr != new_fpsr) __asm__ __volatile__ ("msr fpsr, %0" : : "r" (new_fpsr)); if (__builtin_expect ((excepts & (new_fpcr >> 8)), 0)) __feraiseexcept (excepts); return excepts & ex; } static __inline __attribute__ ((__always_inline__)) void libc_feupdateenv_aarch64 (const fenv_t *envp) { libc_feupdateenv_test_aarch64 (envp, 0); } static __inline __attribute__ ((__always_inline__)) void libc_feholdsetround_aarch64 (fenv_t *envp, int round) { fpu_control_t fpcr; fpu_fpsr_t fpsr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); envp->__fpcr = fpcr; envp->__fpsr = fpsr; round = (fpcr ^ round) & 0xc00000; if (__builtin_expect ((round != 0), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr ^ round)); } static __inline __attribute__ ((__always_inline__)) void libc_feresetround_aarch64 (fenv_t *envp) { fpu_control_t fpcr; int round; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); round = (envp->__fpcr ^ fpcr) & 0xc00000; if (__builtin_expect ((round != 0), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr ^ round)); } static __inline __attribute__ ((__always_inline__)) void libc_feholdsetround_aarch64_ctx (struct rm_ctx *ctx, int r) { fpu_control_t fpcr; int round; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); ctx->env.__fpcr = fpcr; round = (fpcr ^ r) & 0xc00000; ctx->updated_status = round != 0; if (__builtin_expect ((round != 0), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr ^ round)); } static __inline __attribute__ ((__always_inline__)) void libc_feresetround_aarch64_ctx (struct rm_ctx *ctx) { if (__builtin_expect ((ctx->updated_status), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (ctx->env.__fpcr)); } static __inline __attribute__ ((__always_inline__)) void libc_feholdsetround_noex_aarch64_ctx (struct rm_ctx *ctx, int r) { fpu_control_t fpcr; fpu_fpsr_t fpsr; int round; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)); ctx->env.__fpcr = fpcr; ctx->env.__fpsr = fpsr; round = (fpcr ^ r) & 0xc00000; ctx->updated_status = round != 0; if (__builtin_expect ((round != 0), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr ^ round)); } static __inline __attribute__ ((__always_inline__)) void libc_feresetround_noex_aarch64_ctx (struct rm_ctx *ctx) { if (__builtin_expect ((ctx->updated_status), 0)) __asm__ __volatile__ ("msr fpcr, %0" : : "r" (ctx->env.__fpcr)); __asm__ __volatile__ ("msr fpsr, %0" : : "r" (ctx->env.__fpsr)); } typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; typedef __clock_t clock_t; typedef __clockid_t clockid_t; typedef __time_t time_t; typedef __timer_t timer_t; typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; typedef long unsigned int size_t; typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; typedef __sigset_t sigset_t; struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; typedef long int __fd_mask; typedef struct { __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); extern int __pselect (int __nfds, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, const struct timespec *__timeout, const __sigset_t *__sigmask); extern int __select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); extern unsigned int gnu_dev_major (__dev_t __dev) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern unsigned int gnu_dev_minor (__dev_t __dev) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); __extension__ extern __inline __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ )) gnu_dev_major (__dev_t __dev) { unsigned int __major; __major = ((__dev & (__dev_t) 0x00000000000fff00u) >> 8); __major |= ((__dev & (__dev_t) 0xfffff00000000000u) >> 32); return __major; } __extension__ extern __inline __attribute__ ((__const__)) unsigned int __attribute__ ((__nothrow__ )) gnu_dev_minor (__dev_t __dev) { unsigned int __minor; __minor = ((__dev & (__dev_t) 0x00000000000000ffu) >> 0); __minor |= ((__dev & (__dev_t) 0x00000ffffff00000u) >> 12); return __minor; } __extension__ extern __inline __attribute__ ((__const__)) __dev_t __attribute__ ((__nothrow__ )) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { __dev_t __dev; __dev = (((__dev_t) (__major & 0x00000fffu)) << 8); __dev |= (((__dev_t) (__major & 0xfffff000u)) << 32); __dev |= (((__dev_t) (__minor & 0x000000ffu)) << 0); __dev |= (((__dev_t) (__minor & 0xffffff00u)) << 12); return __dev; } typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; struct __pthread_rwlock_arch_t { unsigned int __readers; unsigned int __writers; unsigned int __wrphase_futex; unsigned int __writers_futex; unsigned int __pad3; unsigned int __pad4; int __cur_writer; int __shared; unsigned long int __pad1; unsigned long int __pad2; unsigned int __flags; }; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; struct __pthread_mutex_s { int __lock ; unsigned int __count; int __owner; unsigned int __nusers; int __kind; ; int __spins; __pthread_list_t __list; ; }; struct __pthread_cond_s { __extension__ union { __extension__ unsigned long long int __wseq; struct { unsigned int __low; unsigned int __high; } __wseq32; }; __extension__ union { __extension__ unsigned long long int __g1_start; struct { unsigned int __low; unsigned int __high; } __g1_start32; }; unsigned int __g_refs[2] ; unsigned int __g_size[2]; unsigned int __g1_orig_size; unsigned int __wrefs; unsigned int __g_signals[2]; }; typedef unsigned long int pthread_t; typedef union { char __size[8]; int __align; } pthread_mutexattr_t; typedef union { char __size[8]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; union pthread_attr_t { char __size[64]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef union { struct __pthread_mutex_s __data; char __size[48]; long int __align; } pthread_mutex_t; typedef union { struct __pthread_cond_s __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { struct __pthread_rwlock_arch_t __data; char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[8]; int __align; } pthread_barrierattr_t; extern void __setfpucw (fpu_control_t); static inline int get_rounding_mode (void) { fpu_control_t fpcr; __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)); return fpcr & 0xc00000; } typedef union { double value; struct { u_int32_t lsw; u_int32_t msw; } parts; uint64_t word; } ieee_double_shape_type; typedef union { float value; u_int32_t word; } ieee_float_shape_type; typedef union { long double value; struct { uint64_t lsw; uint64_t msw; } parts64; struct { uint32_t w3, w2, w1, w0; } parts32; } ieee854_long_double_shape_type; extern double __ieee754_acos (double); extern double __ieee754_acosh (double); extern double __ieee754_asin (double); extern double __ieee754_atan2 (double, double); extern double __ieee754_atanh (double); extern double __ieee754_cosh (double); extern double __ieee754_exp (double); extern double __ieee754_exp10 (double); extern double __ieee754_exp2 (double); extern double __ieee754_fmod (double, double); extern double __ieee754_gamma (double); extern double __ieee754_gamma_r (double, int *); extern double __ieee754_hypot (double, double); extern double __ieee754_j0 (double); extern double __ieee754_j1 (double); extern double __ieee754_jn (int, double); extern double __ieee754_lgamma (double); extern double __ieee754_lgamma_r (double, int *); extern double __ieee754_log (double); extern double __ieee754_log10 (double); extern double __ieee754_log2 (double); extern double __ieee754_pow (double, double); extern double __ieee754_remainder (double, double); extern double __ieee754_sinh (double); extern double __ieee754_sqrt (double); extern double __ieee754_y0 (double); extern double __ieee754_y1 (double); extern double __ieee754_yn (int, double); extern double __ieee754_scalb (double, double); extern int __ieee754_ilogb (double); extern int32_t __ieee754_rem_pio2 (double, double *); extern double __kernel_sin (double, double, int); extern double __kernel_cos (double, double); extern double __kernel_tan (double, double, int); extern int __kernel_rem_pio2 (double *, double *, int, int, int, const int32_t *); extern double __copysign (double x, double __y); extern inline double __copysign (double x, double __y) { return __builtin_copysign (x, __y); } extern double __x2y2m1 (double x, double y); extern double __gamma_product (double x, double x_eps, int n, double *eps); extern double __lgamma_neg (double x, int *signgamp); extern double __lgamma_product (double t, double x, double x_eps, int n); extern float __ieee754_acosf (float); extern float __ieee754_acoshf (float); extern float __ieee754_asinf (float); extern float __ieee754_atan2f (float, float); extern float __ieee754_atanhf (float); extern float __ieee754_coshf (float); extern float __ieee754_expf (float); extern float __ieee754_exp10f (float); extern float __ieee754_exp2f (float); extern float __ieee754_fmodf (float, float); extern float __ieee754_gammaf (float); extern float __ieee754_gammaf_r (float, int *); extern float __ieee754_hypotf (float, float); extern float __ieee754_j0f (float); extern float __ieee754_j1f (float); extern float __ieee754_jnf (int, float); extern float __ieee754_lgammaf (float); extern float __ieee754_lgammaf_r (float, int *); extern float __ieee754_logf (float); extern float __ieee754_log10f (float); extern float __ieee754_log2f (float); extern float __ieee754_powf (float, float); extern float __ieee754_remainderf (float, float); extern float __ieee754_sinhf (float); extern float __ieee754_sqrtf (float); extern float __ieee754_y0f (float); extern float __ieee754_y1f (float); extern float __ieee754_ynf (int, float); extern float __ieee754_scalbf (float, float); extern int __ieee754_ilogbf (float); extern int32_t __ieee754_rem_pio2f (float, float *); extern float __kernel_sinf (float, float, int); extern float __kernel_cosf (float, float); extern float __kernel_tanf (float, float, int); extern int __kernel_rem_pio2f (float *, float *, int, int, int, const int32_t *); extern float __copysignf (float x, float __y); extern inline float __copysignf (float x, float __y) { return __builtin_copysignf (x, __y); } extern float __x2y2m1f (float x, float y); extern float __gamma_productf (float x, float x_eps, int n, float *eps); extern float __lgamma_negf (float x, int *signgamp); extern long double __ieee754_acosl (long double); extern long double __ieee754_acoshl (long double); extern long double __ieee754_asinl (long double); extern long double __ieee754_atan2l (long double, long double); extern long double __ieee754_atanhl (long double); extern long double __ieee754_coshl (long double); extern long double __ieee754_expl (long double); extern long double __ieee754_exp10l (long double); extern long double __ieee754_exp2l (long double); extern long double __ieee754_fmodl (long double, long double); extern long double __ieee754_gammal (long double); extern long double __ieee754_gammal_r (long double, int *); extern long double __ieee754_hypotl (long double, long double); extern long double __ieee754_j0l (long double); extern long double __ieee754_j1l (long double); extern long double __ieee754_jnl (int, long double); extern long double __ieee754_lgammal (long double); extern long double __ieee754_lgammal_r (long double, int *); extern long double __ieee754_logl (long double); extern long double __ieee754_log10l (long double); extern long double __ieee754_log2l (long double); extern long double __ieee754_powl (long double, long double); extern long double __ieee754_remainderl (long double, long double); extern long double __ieee754_sinhl (long double); extern long double __ieee754_sqrtl (long double); extern long double __ieee754_y0l (long double); extern long double __ieee754_y1l (long double); extern long double __ieee754_ynl (int, long double); extern long double __ieee754_scalbl (long double, long double); extern int __ieee754_ilogbl (long double); extern int32_t __ieee754_rem_pio2l (long double, long double *); extern long double __kernel_sinl (long double, long double, int); extern long double __kernel_cosl (long double, long double); extern long double __kernel_tanl (long double, long double, int); extern void __kernel_sincosl (long double, long double, long double *, long double *, int); extern long double __copysignl (long double x, long double __y); extern inline long double __copysignl (long double x, long double __y) { return __builtin_copysignl (x, __y); } extern long double __x2y2m1l (long double x, long double y); extern long double __gamma_productl (long double x, long double x_eps, int n, long double *eps); extern long double __lgamma_negl (long double x, int *signgamp); extern long double __lgamma_productl (long double t, long double x, long double x_eps, int n); extern double __kernel_standard (double,double,int); extern float __kernel_standard_f (float,float,int); extern long double __kernel_standard_l (long double,long double,int); extern double __exp1 (double __x, double __xx, double __error); extern double __sin (double __x); extern double __cos (double __x); extern int __branred (double __x, double *__a, double *__aa); extern void __doasin (double __x, double __dx, double __v[]); extern void __dubsin (double __x, double __dx, double __v[]); extern void __dubcos (double __x, double __dx, double __v[]); extern double __halfulp (double __x, double __y); extern double __sin32 (double __x, double __res, double __res1); extern double __cos32 (double __x, double __res, double __res1); extern double __mpsin (double __x, double __dx, _Bool __range_reduce); extern double __mpcos (double __x, double __dx, _Bool __range_reduce); extern double __slowexp (double __x); extern double __slowpow (double __x, double __y, double __z); extern void __docos (double __x, double __dx, double __v[]); static __inline __attribute__ ((__always_inline__)) void default_libc_feholdexcept (fenv_t *e) { (void) __feholdexcept (e); } static __inline __attribute__ ((__always_inline__)) void default_libc_fesetround (int r) { (void) __fesetround (r); } static __inline __attribute__ ((__always_inline__)) void default_libc_feholdexcept_setround (fenv_t *e, int r) { __feholdexcept (e); __fesetround (r); } static __inline __attribute__ ((__always_inline__)) void default_libc_fesetenv (fenv_t *e) { (void) __fesetenv (e); } static __inline __attribute__ ((__always_inline__)) void default_libc_feupdateenv (fenv_t *e) { (void) __feupdateenv (e); } static __inline __attribute__ ((__always_inline__)) int default_libc_feupdateenv_test (fenv_t *e, int ex) { int ret = fetestexcept (ex); __feupdateenv (e); return ret; } typedef long int ptrdiff_t; typedef unsigned int wchar_t; typedef struct { long long __max_align_ll __attribute__((__aligned__(__alignof__(long long)))); long double __max_align_ld __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ )) ; extern double atof (const char *__nptr) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; extern int atoi (const char *__nptr) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; extern long int atol (const char *__nptr) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; __extension__ extern long long int atoll (const char *__nptr) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ )) ; extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ )) ; extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__ )) ; extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ )) ; extern int strfromd (char *__dest, size_t __size, const char *__format, double __f) __attribute__ ((__nothrow__ )) ; extern int strfromf (char *__dest, size_t __size, const char *__format, float __f) __attribute__ ((__nothrow__ )) ; extern int strfroml (char *__dest, size_t __size, const char *__format, long double __f) __attribute__ ((__nothrow__ )) ; struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; }; typedef struct __locale_struct *__locale_t; typedef __locale_t locale_t; extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __attribute__ ((__nothrow__ )) ; extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __attribute__ ((__nothrow__ )) ; __extension__ extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __attribute__ ((__nothrow__ )) ; __extension__ extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __attribute__ ((__nothrow__ )) ; extern double strtod_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __attribute__ ((__nothrow__ )) ; extern float strtof_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __attribute__ ((__nothrow__ )) ; extern long double strtold_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __attribute__ ((__nothrow__ )) ; extern __inline int __attribute__ ((__nothrow__ )) atoi (const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0) , 10); } extern __inline long int __attribute__ ((__nothrow__ )) atol (const char *__nptr) { return strtol (__nptr, (char **) ((void *)0) , 10); } __extension__ extern __inline long long int __attribute__ ((__nothrow__ )) atoll (const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0) , 10); } extern char *l64a (long int __n) __attribute__ ((__nothrow__ )) ; extern long int a64l (const char *__s) __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; extern long int random (void) __attribute__ ((__nothrow__ )); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ )); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__ )) ; extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ )) ; struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__ )) ; extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int rand (void) __attribute__ ((__nothrow__ )); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ )); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ )); extern double drand48 (void) __attribute__ ((__nothrow__ )); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ )) ; extern long int lrand48 (void) __attribute__ ((__nothrow__ )); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ )) ; extern long int mrand48 (void) __attribute__ ((__nothrow__ )); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ )) ; extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ )); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__ )) ; extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ )) ; struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; __extension__ unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__ )) ; extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__ )) ; extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__ )) ; extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__ )) ; extern void *malloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__)); extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) __attribute__ ((__nothrow__ )); extern void *alloca (size_t __size) __attribute__ ((__nothrow__ )); typedef uint16_t Elf32_Half; typedef uint16_t Elf64_Half; typedef uint32_t Elf32_Word; typedef int32_t Elf32_Sword; typedef uint32_t Elf64_Word; typedef int32_t Elf64_Sword; typedef uint64_t Elf32_Xword; typedef int64_t Elf32_Sxword; typedef uint64_t Elf64_Xword; typedef int64_t Elf64_Sxword; typedef uint32_t Elf32_Addr; typedef uint64_t Elf64_Addr; typedef uint32_t Elf32_Off; typedef uint64_t Elf64_Off; typedef uint16_t Elf32_Section; typedef uint16_t Elf64_Section; typedef Elf32_Half Elf32_Versym; typedef Elf64_Half Elf64_Versym; typedef struct { unsigned char e_ident[(16)]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr; typedef struct { unsigned char e_ident[(16)]; Elf64_Half e_type; Elf64_Half e_machine; Elf64_Word e_version; Elf64_Addr e_entry; Elf64_Off e_phoff; Elf64_Off e_shoff; Elf64_Word e_flags; Elf64_Half e_ehsize; Elf64_Half e_phentsize; Elf64_Half e_phnum; Elf64_Half e_shentsize; Elf64_Half e_shnum; Elf64_Half e_shstrndx; } Elf64_Ehdr; typedef struct { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Word sh_addralign; Elf32_Word sh_entsize; } Elf32_Shdr; typedef struct { Elf64_Word sh_name; Elf64_Word sh_type; Elf64_Xword sh_flags; Elf64_Addr sh_addr; Elf64_Off sh_offset; Elf64_Xword sh_size; Elf64_Word sh_link; Elf64_Word sh_info; Elf64_Xword sh_addralign; Elf64_Xword sh_entsize; } Elf64_Shdr; typedef struct { Elf32_Word ch_type; Elf32_Word ch_size; Elf32_Word ch_addralign; } Elf32_Chdr; typedef struct { Elf64_Word ch_type; Elf64_Word ch_reserved; Elf64_Xword ch_size; Elf64_Xword ch_addralign; } Elf64_Chdr; typedef struct { Elf32_Word st_name; Elf32_Addr st_value; Elf32_Word st_size; unsigned char st_info; unsigned char st_other; Elf32_Section st_shndx; } Elf32_Sym; typedef struct { Elf64_Word st_name; unsigned char st_info; unsigned char st_other; Elf64_Section st_shndx; Elf64_Addr st_value; Elf64_Xword st_size; } Elf64_Sym; typedef struct { Elf32_Half si_boundto; Elf32_Half si_flags; } Elf32_Syminfo; typedef struct { Elf64_Half si_boundto; Elf64_Half si_flags; } Elf64_Syminfo; typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; } Elf32_Rel; typedef struct { Elf64_Addr r_offset; Elf64_Xword r_info; } Elf64_Rel; typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; Elf32_Sword r_addend; } Elf32_Rela; typedef struct { Elf64_Addr r_offset; Elf64_Xword r_info; Elf64_Sxword r_addend; } Elf64_Rela; typedef struct { Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Word p_filesz; Elf32_Word p_memsz; Elf32_Word p_flags; Elf32_Word p_align; } Elf32_Phdr; typedef struct { Elf64_Word p_type; Elf64_Word p_flags; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Xword p_filesz; Elf64_Xword p_memsz; Elf64_Xword p_align; } Elf64_Phdr; typedef struct { Elf32_Sword d_tag; union { Elf32_Word d_val; Elf32_Addr d_ptr; } d_un; } Elf32_Dyn; typedef struct { Elf64_Sxword d_tag; union { Elf64_Xword d_val; Elf64_Addr d_ptr; } d_un; } Elf64_Dyn; typedef struct { Elf32_Half vd_version; Elf32_Half vd_flags; Elf32_Half vd_ndx; Elf32_Half vd_cnt; Elf32_Word vd_hash; Elf32_Word vd_aux; Elf32_Word vd_next; } Elf32_Verdef; typedef struct { Elf64_Half vd_version; Elf64_Half vd_flags; Elf64_Half vd_ndx; Elf64_Half vd_cnt; Elf64_Word vd_hash; Elf64_Word vd_aux; Elf64_Word vd_next; } Elf64_Verdef; typedef struct { Elf32_Word vda_name; Elf32_Word vda_next; } Elf32_Verdaux; typedef struct { Elf64_Word vda_name; Elf64_Word vda_next; } Elf64_Verdaux; typedef struct { Elf32_Half vn_version; Elf32_Half vn_cnt; Elf32_Word vn_file; Elf32_Word vn_aux; Elf32_Word vn_next; } Elf32_Verneed; typedef struct { Elf64_Half vn_version; Elf64_Half vn_cnt; Elf64_Word vn_file; Elf64_Word vn_aux; Elf64_Word vn_next; } Elf64_Verneed; typedef struct { Elf32_Word vna_hash; Elf32_Half vna_flags; Elf32_Half vna_other; Elf32_Word vna_name; Elf32_Word vna_next; } Elf32_Vernaux; typedef struct { Elf64_Word vna_hash; Elf64_Half vna_flags; Elf64_Half vna_other; Elf64_Word vna_name; Elf64_Word vna_next; } Elf64_Vernaux; typedef struct { uint32_t a_type; union { uint32_t a_val; } a_un; } Elf32_auxv_t; typedef struct { uint64_t a_type; union { uint64_t a_val; } a_un; } Elf64_auxv_t; typedef struct { Elf32_Word n_namesz; Elf32_Word n_descsz; Elf32_Word n_type; } Elf32_Nhdr; typedef struct { Elf64_Word n_namesz; Elf64_Word n_descsz; Elf64_Word n_type; } Elf64_Nhdr; typedef struct { Elf32_Xword m_value; Elf32_Word m_info; Elf32_Word m_poffset; Elf32_Half m_repeat; Elf32_Half m_stride; } Elf32_Move; typedef struct { Elf64_Xword m_value; Elf64_Xword m_info; Elf64_Xword m_poffset; Elf64_Half m_repeat; Elf64_Half m_stride; } Elf64_Move; typedef union { struct { Elf32_Word gt_current_g_value; Elf32_Word gt_unused; } gt_header; struct { Elf32_Word gt_g_value; Elf32_Word gt_bytes; } gt_entry; } Elf32_gptab; typedef struct { Elf32_Word ri_gprmask; Elf32_Word ri_cprmask[4]; Elf32_Sword ri_gp_value; } Elf32_RegInfo; typedef struct { unsigned char kind; unsigned char size; Elf32_Section section; Elf32_Word info; } Elf_Options; typedef struct { Elf32_Word hwp_flags1; Elf32_Word hwp_flags2; } Elf_Options_Hw; typedef struct { Elf32_Word l_name; Elf32_Word l_time_stamp; Elf32_Word l_checksum; Elf32_Word l_version; Elf32_Word l_flags; } Elf32_Lib; typedef struct { Elf64_Word l_name; Elf64_Word l_time_stamp; Elf64_Word l_checksum; Elf64_Word l_version; Elf64_Word l_flags; } Elf64_Lib; typedef Elf32_Addr Elf32_Conflict; typedef struct { Elf32_Half version; unsigned char isa_level; unsigned char isa_rev; unsigned char gpr_size; unsigned char cpr1_size; unsigned char cpr2_size; unsigned char fp_abi; Elf32_Word isa_ext; Elf32_Word ases; Elf32_Word flags1; Elf32_Word flags2; } Elf_MIPS_ABIFlags_v0; enum { Val_GNU_MIPS_ABI_FP_ANY = 0, Val_GNU_MIPS_ABI_FP_DOUBLE = 1, Val_GNU_MIPS_ABI_FP_SINGLE = 2, Val_GNU_MIPS_ABI_FP_SOFT = 3, Val_GNU_MIPS_ABI_FP_OLD_64 = 4, Val_GNU_MIPS_ABI_FP_XX = 5, Val_GNU_MIPS_ABI_FP_64 = 6, Val_GNU_MIPS_ABI_FP_64A = 7, Val_GNU_MIPS_ABI_FP_MAX = 7 }; extern void *__alloca (size_t __size); extern int __libc_use_alloca (size_t size) __attribute__ ((const)); extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const)); extern __inline __attribute__ ((__always_inline__)) int __libc_use_alloca (size_t size) { return (__builtin_expect (size <= 131072 / 4, 1) || __builtin_expect (__libc_alloca_cutoff (size), 1)); } extern void *valloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__ )) ; extern void *aligned_alloc (size_t __alignment, size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ; extern void abort (void) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ; extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ; extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__ )) ; extern void exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); extern void quick_exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); extern char *getenv (const char *__name) __attribute__ ((__nothrow__ )) ; extern char *secure_getenv (const char *__name) __attribute__ ((__nothrow__ )) ; extern int putenv (char *__string) __attribute__ ((__nothrow__ )) ; extern int setenv (const char *__name, const char *__value, int __replace) __attribute__ ((__nothrow__ )) ; extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ )) ; extern int clearenv (void) __attribute__ ((__nothrow__ )); extern char *mktemp (char *__template) __attribute__ ((__nothrow__ )) ; extern int mkstemp (char *__template) ; extern int mkstemp64 (char *__template) ; extern int mkstemps (char *__template, int __suffixlen) ; extern int mkstemps64 (char *__template, int __suffixlen) ; extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ )) ; extern int mkostemp (char *__template, int __flags) ; extern int mkostemp64 (char *__template, int __flags) ; extern int mkostemps (char *__template, int __suffixlen, int __flags) ; extern int mkostemps64 (char *__template, int __suffixlen, int __flags) ; extern int system (const char *__command) ; extern char *canonicalize_file_name (const char *__name) __attribute__ ((__nothrow__ )) ; extern char *realpath (const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__ )) ; typedef int (*__compar_fn_t) (const void *, const void *); typedef __compar_fn_t comparison_fn_t; typedef int (*__compar_d_fn_t) (const void *, const void *, void *); extern void *bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) ; extern __inline void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else return (void *) __p; } return ((void *)0) ; } extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) ; extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) ; extern int abs (int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; extern long int labs (long int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ )) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ )) ; extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ )) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ )) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__ )) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__ )) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ )) ; extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ )) ; extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ )) ; extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__ )) ; extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ )); extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ )); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ )); extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ )); extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__ )); extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ )) ; extern int getsubopt (char **__restrict __optionp, char *const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__ )) ; extern void setkey (const char *__key) __attribute__ ((__nothrow__ )) ; extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) __attribute__ ((__nothrow__ )); extern int unlockpt (int __fd) __attribute__ ((__nothrow__ )); extern char *ptsname (int __fd) __attribute__ ((__nothrow__ )) ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__ )) ; extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__ )) ; extern __inline double __attribute__ ((__nothrow__ )) atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0) ); } struct stat { __dev_t st_dev; __ino_t st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; __dev_t __pad1; __off_t st_size; __blksize_t st_blksize; int __pad2; __blkcnt_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; int __glibc_reserved[2]; }; struct stat64 { __dev_t st_dev; __ino64_t st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; __dev_t __pad1; __off64_t st_size; __blksize_t st_blksize; int __pad2; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; int __glibc_reserved[2]; }; extern int stat (const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ )) ; extern int stat64 (const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ )) ; extern int fstatat (int __fd, const char *__restrict __file, struct stat *__restrict __buf, int __flag) __attribute__ ((__nothrow__ )) ; extern int fstatat64 (int __fd, const char *__restrict __file, struct stat64 *__restrict __buf, int __flag) __attribute__ ((__nothrow__ )) ; extern int lstat (const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int lstat64 (const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ )) ; extern int chmod (const char *__file, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int lchmod (const char *__file, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ )); extern int fchmodat (int __fd, const char *__file, __mode_t __mode, int __flag) __attribute__ ((__nothrow__ )) ; extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ )); extern __mode_t getumask (void) __attribute__ ((__nothrow__ )); extern int mkdir (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int mkdirat (int __fd, const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__ )) ; extern int mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__ )) ; extern int mkfifo (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) __attribute__ ((__nothrow__ )) ; extern int utimensat (int __fd, const char *__path, const struct timespec __times[2], int __flags) __attribute__ ((__nothrow__ )) ; extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ )); extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __xstat (int __ver, const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __fxstatat (int __ver, int __fildes, const char *__filename, struct stat *__stat_buf, int __flag) __attribute__ ((__nothrow__ )) ; extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __xstat64 (int __ver, const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __lxstat64 (int __ver, const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__ )) ; extern int __fxstatat64 (int __ver, int __fildes, const char *__filename, struct stat64 *__stat_buf, int __flag) __attribute__ ((__nothrow__ )) ; extern int __xmknod (int __ver, const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__ )) ; extern int __xmknodat (int __ver, int __fd, const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__ )) ; extern __inline int __attribute__ ((__nothrow__ )) stat (const char *__path, struct stat *__statbuf) { return __xstat (0, __path, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) lstat (const char *__path, struct stat *__statbuf) { return __lxstat (0, __path, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) fstat (int __fd, struct stat *__statbuf) { return __fxstat (0, __fd, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) fstatat (int __fd, const char *__filename, struct stat *__statbuf, int __flag) { return __fxstatat (0, __fd, __filename, __statbuf, __flag); } extern __inline int __attribute__ ((__nothrow__ )) mknod (const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (0, __path, __mode, &__dev); } extern __inline int __attribute__ ((__nothrow__ )) mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknodat (0, __fd, __path, __mode, &__dev); } extern __inline int __attribute__ ((__nothrow__ )) stat64 (const char *__path, struct stat64 *__statbuf) { return __xstat64 (0, __path, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) lstat64 (const char *__path, struct stat64 *__statbuf) { return __lxstat64 (0, __path, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) fstat64 (int __fd, struct stat64 *__statbuf) { return __fxstat64 (0, __fd, __statbuf); } extern __inline int __attribute__ ((__nothrow__ )) fstatat64 (int __fd, const char *__filename, struct stat64 *__statbuf, int __flag) { return __fxstatat64 (0, __fd, __filename, __statbuf, __flag); } extern int __stat (const char *__file, struct stat *__buf); extern int __fstat (int __fd, struct stat *__buf); extern int __lstat (const char *__file, struct stat *__buf); extern int __chmod (const char *__file, __mode_t __mode); extern int __fchmod (int __fd, __mode_t __mode); extern __mode_t __umask (__mode_t __mask); extern int __mkdir (const char *__path, __mode_t __mode); extern int __mknod (const char *__path, __mode_t __mode, __dev_t __dev); extern __inline__ int __stat (const char *__path, struct stat *__statbuf) { return __xstat (0, __path, __statbuf); } extern __inline__ int __mknod (const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (0, __path, __mode, &__dev); } extern __typeof (strtol_l) __strtol_l; extern __typeof (strtoul_l) __strtoul_l; extern __typeof (strtoll_l) __strtoll_l; extern __typeof (strtoull_l) __strtoull_l; extern __typeof (strtod_l) __strtod_l; extern __typeof (strtof_l) __strtof_l; extern __typeof (strtold_l) __strtold_l; extern __typeof (secure_getenv) __libc_secure_getenv; extern __typeof (qsort_r) __qsort_r; extern long int __random (void); extern void __srandom (unsigned int __seed); extern char *__initstate (unsigned int __seed, char *__statebuf, size_t __statelen); extern char *__setstate (char *__statebuf); extern int __random_r (struct random_data *__buf, int32_t *__result); extern int __srandom_r (unsigned int __seed, struct random_data *__buf); extern int __initstate_r (unsigned int __seed, char *__statebuf, size_t __statelen, struct random_data *__buf); extern int __setstate_r (char *__statebuf, struct random_data *__buf); extern int __rand_r (unsigned int *__seed); extern int __erand48_r (unsigned short int __xsubi[3], struct drand48_data *__buffer, double *__result); extern int __nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__buffer, long int *__result); extern int __jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__buffer, long int *__result); extern int __srand48_r (long int __seedval, struct drand48_data *__buffer); extern int __seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer); extern int __lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer); extern int __drand48_iterate (unsigned short int __xsubi[3], struct drand48_data *__buffer); extern struct drand48_data __libc_drand48_data ; extern int __setenv (const char *__name, const char *__value, int __replace); extern int __unsetenv (const char *__name); extern int __clearenv (void); extern char *__mktemp (char *__template) __attribute__ ((__nothrow__ )) ; extern char *__canonicalize_file_name (const char *__name); extern char *__realpath (const char *__name, char *__resolved); extern int __ptsname_r (int __fd, char *__buf, size_t __buflen); extern int __ptsname_internal (int fd, char *buf, size_t buflen, struct stat64 *stp); extern int __getpt (void); extern int __posix_openpt (int __oflag); extern int __add_to_environ (const char *name, const char *value, const char *combines, int replace); extern void _quicksort (void *const pbase, size_t total_elems, size_t size, __compar_d_fn_t cmp, void *arg); extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg); extern int __cxa_atexit (void (*func) (void *), void *arg, void *d); ; extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg, void *d); extern void __call_tls_dtors (void) __attribute__ ((weak)) ; extern void __cxa_finalize (void *d); extern int __posix_memalign (void **memptr, size_t alignment, size_t size); extern void *__libc_memalign (size_t alignment, size_t size) __attribute__ ((__malloc__)); extern void *__libc_reallocarray (void *__ptr, size_t __nmemb, size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__)); extern int __libc_system (const char *line); extern double __strtod_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__ )) ; extern float __strtof_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__ )) ; extern long double __strtold_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__ )) ; extern long int __strtol_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern unsigned long int __strtoul_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; __extension__ extern long long int __strtoll_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; __extension__ extern unsigned long long int __strtoull_internal (const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__ )) ; extern double ____strtod_l_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group, locale_t __loc); extern float ____strtof_l_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group, locale_t __loc); extern long double ____strtold_l_internal (const char *__restrict __nptr, char **__restrict __endptr, int __group, locale_t __loc); extern long int ____strtol_l_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group, locale_t __loc); extern unsigned long int ____strtoul_l_internal (const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group, locale_t __loc); __extension__ extern long long int ____strtoll_l_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group, locale_t __loc); __extension__ extern unsigned long long int ____strtoull_l_internal (const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group, locale_t __loc); extern float __strtof_nan (const char *, char **, char) ; extern double __strtod_nan (const char *, char **, char) ; extern long double __strtold_nan (const char *, char **, char) ; extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t) ; extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t) ; extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t) ; extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign); extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign); extern char *__gcvt (double __value, int __ndigit, char *__buf); extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len); extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len); extern char *__qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign); extern char *__qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign); extern char *__qgcvt (long double __value, int __ndigit, char *__buf); extern int __qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len); extern int __qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len); extern void *__default_morecore (ptrdiff_t) __attribute__ ((__nothrow__ )); struct abort_msg_s { unsigned int size; char msg[0]; }; extern struct abort_msg_s *__abort_msg; struct _IO_FILE; typedef struct _IO_FILE __FILE; struct _IO_FILE; typedef struct _IO_FILE FILE; typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; typedef unsigned int wint_t; typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; enum { __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002, __GCONV_SWAP = 0x0004, __GCONV_TRANSLIT = 0x0008 }; struct __gconv_step; struct __gconv_step_data; struct __gconv_loaded_object; typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, const unsigned char **, const unsigned char *, unsigned char **, size_t *, int, int); typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; struct __gconv_step_data { unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; }; typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data[0]; } *__gconv_t; extern int __gconv_transliterate (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char *inbufstart, const unsigned char **inbufp, const unsigned char *inbufend, unsigned char **outbufstart, size_t *irreversible); typedef union { struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined; } _G_iconv_t; typedef __builtin_va_list __gnuc_va_list; struct _IO_jump_t; struct _IO_FILE; typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; struct _IO_codecvt { void (*__codecvt_destr) (struct _IO_codecvt *); enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *, __mbstate_t *, const wchar_t *, const wchar_t *, const wchar_t **, char *, char *, char **); enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *, __mbstate_t *, char *, char *, char **); enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *, __mbstate_t *, const char *, const char *, const char **, wchar_t *, wchar_t *, wchar_t **); int (*__codecvt_do_encoding) (struct _IO_codecvt *); int (*__codecvt_do_always_noconv) (struct _IO_codecvt *); int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *, const char *, const char *, size_t); int (*__codecvt_do_max_length) (struct _IO_codecvt *); _G_iconv_t __cd_in; _G_iconv_t __cd_out; }; struct _IO_wide_data { wchar_t *_IO_read_ptr; wchar_t *_IO_read_end; wchar_t *_IO_read_base; wchar_t *_IO_write_base; wchar_t *_IO_write_ptr; wchar_t *_IO_write_end; wchar_t *_IO_buf_base; wchar_t *_IO_buf_end; wchar_t *_IO_save_base; wchar_t *_IO_backup_base; wchar_t *_IO_save_end; __mbstate_t _IO_state; __mbstate_t _IO_last_state; struct _IO_codecvt _codecvt; wchar_t _shortbuf[1]; const struct _IO_jump_t *_wide_vtable; }; struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; __off64_t _offset; struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data; struct _IO_FILE *_freeres_list; void *_freeres_buf; size_t __pad5; int _mode; 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_; extern _IO_FILE *_IO_stdin ; extern _IO_FILE *_IO_stdout ; extern _IO_FILE *_IO_stderr ; typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *); extern int __uflow (_IO_FILE *); extern int __overflow (_IO_FILE *, int); extern wint_t __wunderflow (_IO_FILE *); extern wint_t __wuflow (_IO_FILE *); extern wint_t __woverflow (_IO_FILE *, wint_t); 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); extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ )); extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ )); extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ )); 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__ )); extern wint_t _IO_getwc (_IO_FILE *__fp); extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp); extern int _IO_fwide (_IO_FILE *__fp, int __mode) __attribute__ ((__nothrow__ )); extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict, __gnuc_va_list, int *__restrict); extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict, __gnuc_va_list); extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t); extern void _IO_free_wbackup_area (_IO_FILE *) __attribute__ ((__nothrow__ )); typedef __gnuc_va_list va_list; typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (const char *__filename) __attribute__ ((__nothrow__ )); extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ )); extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) __attribute__ ((__nothrow__ )); extern FILE *tmpfile (void) ; extern FILE *tmpfile64 (void) ; extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ )) ; extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ )) ; extern char *tempnam (const char *__dir, const char *__pfx) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); extern int fflush_unlocked (FILE *__stream); extern int fcloseall (void); extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) ; extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) ; extern FILE *fopen64 (const char *__restrict __filename, const char *__restrict __modes) ; extern FILE *freopen64 (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) ; extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ )) ; extern FILE *fopencookie (void *__restrict __magic_cookie, const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ )) ; extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) __attribute__ ((__nothrow__ )) ; extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ )) ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ )); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__ ((__nothrow__ )); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__ ((__nothrow__ )); extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ )); extern int fprintf (FILE *__restrict __stream, const char *__restrict __format, ...); extern int printf (const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__)); extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__)); 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))); extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ; extern int __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; extern int asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ; 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))); extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) ; extern int scanf (const char *__restrict __format, ...) ; extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__ )); extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__ )) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); extern int fgetc_unlocked (FILE *__stream); extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ; extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; 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) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (const char *__restrict __s, FILE *__restrict __stream); extern int puts (const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); extern int fputs_unlocked (const char *__restrict __s, FILE *__restrict __stream); 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); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) ; extern void rewind (FILE *__stream); extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, const fpos_t *__pos); extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ )); extern int feof (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ )); extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern void perror (const char *__s); extern int sys_nerr; extern const char *const sys_errlist[]; extern int _sys_nerr; extern const char *const _sys_errlist[]; extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern FILE *popen (const char *__command, const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) __attribute__ ((__nothrow__ )); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __format, ...) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ )); extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ )) ; extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ )); extern __inline int vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } extern __inline int getchar (void) { return _IO_getc (stdin); } extern __inline int fgetc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline int getc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline int getchar_unlocked (void) { return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline int putchar (int __c) { return _IO_putc (__c, stdout); } extern __inline int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putchar_unlocked (int __c) { return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } extern __inline __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline int __attribute__ ((__nothrow__ )) feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline int __attribute__ ((__nothrow__ )) ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } extern int __fcloseall (void); extern int __snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int __vsnprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); extern int __vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int __vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))); extern __ssize_t __getline (char **__lineptr, size_t *__n, FILE *__stream); extern int __vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int __sprintf_chk (char *, int, size_t, const char *, ...) __attribute__ ((__nothrow__ )); extern int __snprintf_chk (char *, size_t, int, size_t, const char *, ...) __attribute__ ((__nothrow__ )); extern int __vsprintf_chk (char *, int, size_t, const char *, __gnuc_va_list) __attribute__ ((__nothrow__ )); extern int __vsnprintf_chk (char *, size_t, int, size_t, const char *, __gnuc_va_list) __attribute__ ((__nothrow__ )); extern int __printf_chk (int, const char *, ...); extern int __fprintf_chk (FILE *, int, const char *, ...); extern int __vprintf_chk (int, const char *, __gnuc_va_list); extern int __vfprintf_chk (FILE *, int, const char *, __gnuc_va_list); extern char *__fgets_unlocked_chk (char *buf, size_t size, int n, FILE *fp); extern char *__fgets_chk (char *buf, size_t size, int n, FILE *fp); extern int __asprintf_chk (char **, int, const char *, ...) __attribute__ ((__nothrow__ )); extern int __vasprintf_chk (char **, int, const char *, __gnuc_va_list) __attribute__ ((__nothrow__ )); extern int __dprintf_chk (int, int, const char *, ...); extern int __vdprintf_chk (int, int, const char *, __gnuc_va_list); extern int __obstack_printf_chk (struct obstack *, int, const char *, ...) __attribute__ ((__nothrow__ )); extern int __obstack_vprintf_chk (struct obstack *, int, const char *, __gnuc_va_list) __attribute__ ((__nothrow__ )); extern int __isoc99_fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) ; extern int __isoc99_scanf (const char *__restrict __format, ...) ; extern int __isoc99_sscanf (const char *__restrict __s, const char *__restrict __format, ...) __attribute__ ((__nothrow__ )); extern int __isoc99_vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) ; extern int __isoc99_vscanf (const char *__restrict __format, __gnuc_va_list __arg) ; extern int __isoc99_vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__nothrow__ )); extern FILE *__new_tmpfile (void); extern FILE *__old_tmpfile (void); extern int __path_search (char *__tmpl, size_t __tmpl_len, const char *__dir, const char *__pfx, int __try_tempdir); extern int __gen_tempname (char *__tmpl, int __suffixlen, int __flags, int __kind); enum __libc_message_action { do_message = 0, do_abort = 1 << 0, do_backtrace = 1 << 1 }; extern void __libc_fatal (const char *__message) __attribute__ ((__noreturn__)); extern void __libc_message (enum __libc_message_action action, const char *__fnt, ...); extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__)) ; extern void __fortify_fail_abort (_Bool, const char *msg) __attribute__ ((__noreturn__)) ; extern void __flockfile (FILE *__stream); extern void __funlockfile (FILE *__stream); extern int __ftrylockfile (FILE *__stream); extern int __getc_unlocked (FILE *__fp); extern wint_t __getwc_unlocked (FILE *__fp); extern int __fxprintf (FILE *__fp, const char *__fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int __fxprintf_nocancel (FILE *__fp, const char *__fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern const char *const _sys_errlist_internal[] ; extern int _sys_nerr_internal ; extern __typeof (dprintf) __dprintf __attribute__ ((__format__ (__printf__, 2, 3))); extern __typeof (fileno) __fileno; extern __typeof (ftello) __ftello; extern __typeof (fflush_unlocked) __fflush_unlocked; extern __typeof (fread_unlocked) __fread_unlocked; extern __typeof (fgets_unlocked) __fgets_unlocked; extern __typeof (fputs_unlocked) __fputs_unlocked; extern FILE *__open_memstream (char **, size_t *) __attribute__ ((__nothrow__ )) ; extern FILE * __fmemopen (void *buf, size_t len, const char *mode); static const long double __expl_table [] = { -3.47656250000000000584188889839535373E-01L, 6.90417668990715641167244540876988960E-32L, -3.43749999999999981853132895957607418E-01L, -7.16021898043268093462818380603370350E-33L, -3.39843750000000013418643523138766329E-01L, 8.16920774283317801641347327589583265E-32L, -3.35937500000000014998092453039303051E-01L, -6.55865578425428447938248396879359670E-32L, -3.32031250000000000981984049529998541E-01L, 6.91213046334032232108944519541512737E-32L, -3.28124999999999986646017645350399708E-01L, -6.16281060996110316602421505683742661E-32L, -3.24218749999999991645717430645867963E-01L, -7.90797211087760527593856542417304137E-32L, -3.20312499999999998918211610690789652E-01L, 8.64024799457616856987630373786503376E-32L, -3.16406249999999998153974811017181883E-01L, -2.73176610180696076418536105483668404E-32L, -3.12500000000000011420976192575972779E-01L, 7.16573502812389453744433792609989420E-32L, -3.08593750000000001735496343854851414E-01L, -1.56292999645122272621237565671593071E-32L, -3.04687499999999982592401295899221626E-01L, 6.48993208584888904958594509625158417E-32L, -3.00781249999999999230616898937763959E-01L, 6.57082437496961397305801409357792029E-32L, -2.96874999999999998788769281703245722E-01L, -3.26588297198283968096426564544269170E-32L, -2.92968750000000015318089182805941695E-01L, -1.73291974845198589684358727559290718E-32L, -2.89062500000000007736778942676309681E-01L, -6.83629745986675744404029225571026236E-32L, -2.85156250000000001367091555763661937E-01L, -5.44898442619766878281110054067026237E-32L, -2.81249999999999986958718100227029406E-01L, 1.13007318374506125723591889451107046E-32L, -2.77343750000000000356078829380495179E-01L, -4.98979365468978332358409063436543102E-32L, -2.73437499999999990276993957508540484E-01L, -8.79390484115892344533724650295100871E-32L, -2.69531250000000002434203866460082225E-01L, 9.44060754687026590886751809927191596E-32L, -2.65624999999999997296320716986257179E-01L, 2.07142664067265697791007875348396921E-32L, -2.61718750000000010237478733739017956E-01L, -6.10552936159265665298996309192680256E-32L, -2.57812500000000011948220522778370303E-01L, 6.72477169058908902499239631466443836E-32L, -2.53906249999999991822993360536596860E-01L, -2.44868296623215865054704392917190994E-32L, -2.49999999999999986862019457428548084E-01L, -3.85302898949105073614122724961613078E-32L, -2.46093750000000000237554160737318435E-01L, -1.52823675242678363494345369284988589E-32L, -2.42187500000000003023380963205457065E-01L, -7.78402037952209709489481182714311699E-34L, -2.38281249999999995309623303145485725E-01L, -3.54307216794236899443913216397197696E-32L, -2.34374999999999998425804947623207526E-01L, -2.86038428948386602859761879407549696E-32L, -2.30468749999999993822207406785200832E-01L, -2.54339521031747516806893838749365762E-32L, -2.26562499999999997823524030344489884E-01L, 4.31904611473158635644635628922959401E-32L, -2.22656250000000004835132405125162742E-01L, 2.54709791629335691650310168420597566E-33L, -2.18749999999999988969454021829236626E-01L, -3.77236096429336082213752014054909454E-32L, -2.14843750000000010613256919115758495E-01L, -4.55194148712216691177097854305964738E-32L, -2.10937499999999993204656148110447201E-01L, -2.95044199165561453749332254271716417E-32L, -2.07031250000000012233944895423355677E-01L, 1.93146788688385419095981415411012357E-32L, -2.03125000000000008030983633336321863E-01L, 2.37361904671826193563212931215900137E-32L, -1.99218750000000001763815712796132779E-01L, -3.63171243370923753295192486732883239E-33L, -1.95312500000000004883660234506677272E-01L, -3.19989507343607877747980892249711601E-33L, -1.91406250000000013720152363227519348E-01L, -1.89295754093147174148371614722178860E-32L, -1.87500000000000000182342082774432620E-01L, -2.96812835183184815200854214892983927E-32L, -1.83593750000000012410147185883290345E-01L, -2.02191931237489669058466239995304587E-32L, -1.79687499999999997439177363346082917E-01L, -9.92752326937775530007399526834009465E-33L, -1.75781249999999995824373974504785174E-01L, 1.44184772065335613487885714828816178E-32L, -1.71874999999999986685050259043077809E-01L, -3.49007014971241147689894940544402482E-32L, -1.67968749999999997316058782350439701E-01L, 3.34025733574205019081305778794376391E-32L, -1.64062499999999993322730602128318480E-01L, -1.83345916769684984022099095506340635E-32L, -1.60156249999999992419000744447607979E-01L, 2.73442789798110494773517431626534726E-32L, -1.56249999999999987665010524130393080E-01L, 2.02695576464836145806428118889332191E-32L, -1.52343749999999989905291167951491803E-01L, -3.61436631548815190395331054871041524E-32L, -1.48437500000000006686107754967759751E-01L, -2.15524270159131591469319477922198390E-32L, -1.44531250000000005132889939177166485E-01L, 2.74741116529653547935086189244019604E-32L, -1.40625000000000000707469094533647325E-01L, 4.40607097220049957013547629906723266E-33L, -1.36718749999999995713752139187543306E-01L, -3.73751317180116492404578048203389108E-32L, -1.32812500000000007198453630478482191E-01L, -3.97050085179660203884930593717220728E-32L, -1.28906250000000006070486371645733082E-01L, 3.59610068058504988294019521946586131E-32L, -1.25000000000000003700729208608337966E-01L, 3.23464851393124362331846965931995969E-33L, -1.21093750000000013729038501177102555E-01L, 2.45242487730722066611358741283977619E-32L, -1.17187499999999999765305306880205578E-01L, -1.14557520298960389903199646350205537E-32L, -1.13281250000000009579647893740755690E-01L, 2.37873962873837390105423621772752350E-32L, -1.09375000000000008981153004560108539E-01L, 1.53152444860014076105003555837231015E-32L, -1.05468749999999992399063850363228723E-01L, -8.75920903597804862471749360196688834E-33L, -1.01562500000000007685885179918350550E-01L, -4.63820993797174451904075397785059501E-33L, -9.76562499999999887262211517861331814E-02L, -2.63767025974952608658936466715705903E-33L, -9.37499999999999939650246024457439795E-02L, -1.72047822349322956713582039121348377E-32L, -8.98437500000000033088896383977486369E-02L, 3.04831994420989436248526129869697270E-33L, -8.59374999999999947312400115121319225E-02L, 1.50416954438393392150792422537312281E-32L, -8.20312500000000054182280847004695514E-02L, 2.68399664523430004488075638997207289E-33L, -7.81250000000000114767533968079748798E-02L, 1.72318124201659121296305402819694281E-32L, -7.42187500000000035531829472486812869E-02L, 2.09401756478514117051383998628099655E-32L, -7.03124999999999987474933134860732535E-02L, 2.28515798224350800271565551341211666E-32L, -6.64062500000000042267533361089054159E-02L, 1.97576478800281368377376002585430031E-32L, -6.25000000000000066329769382774201686E-02L, -1.46422615813786836245343723048221678E-33L, -5.85937500000000002823707957982406053E-02L, 9.25637741701318872896718218457555829E-33L, -5.46875000000000081586888005226044448E-02L, -4.87144542459404765480424673678105050E-33L, -5.07812499999999927720348253140567013E-02L, -3.01901021987395945826043649523451725E-33L, -4.68749999999999935349476738962633103E-02L, 1.21521638219189777347767475937119750E-32L, -4.29687500000000056305562847814228219E-02L, -1.18643699217679276275559592978275214E-32L, -3.90624999999999962692914526031373542E-02L, -4.91277156857520035712509544689973679E-33L, -3.51562500000000108152468207687602886E-02L, 1.18599806302656253755207072755609820E-32L, -3.12500000000000077376981036742289578E-02L, 9.97730386477005171963635210799577079E-33L, -2.73437500000000139436129596418623235E-02L, 2.25755321633070123579875157841633859E-33L, -2.34375000000000088003629211828324876E-02L, 2.84374279216848803102126617873942975E-33L, -1.95312500000000107408831063404855424E-02L, 2.47348089686935458989103979140011912E-33L, -1.56250000000000081443917555362290635E-02L, -2.43379314483517422161458863218426254E-33L, -1.17187500000000051490597418161403184E-02L, 1.83405297208145390679150568810924707E-33L, -7.81249999999999715861805208310174953E-03L, 3.51548384878710915171654413641872451E-34L, -3.90625000000000309326013918295097128E-03L, 6.38058004651791109324060099097251911E-36L, 0.00000000000000000000000000000000000E+00L, 0.00000000000000000000000000000000000E+00L, 3.90625000000000245479958859972588985E-03L, -6.58439598384342854976169982902779828E-36L, 7.81250000000001311374391093664996358E-03L, 2.60265650555493781464273319671555602E-33L, 1.17187500000000269581156218247101912E-02L, 1.00961747974945520631836275894919326E-33L, 1.56249999999999797878275270751825475E-02L, 2.03174577741375590087897353146748580E-33L, 1.95312499999999760319884511789111533E-02L, 4.62788519658803722282100289809515007E-33L, 2.34374999999999822953909016349145918E-02L, -3.19499956304699705390404384504876533E-33L, 2.73437500000000137220327275871555682E-02L, -2.25757776523031994464630107442723424E-33L, 3.12499999999999790857640618332718621E-02L, -4.22479470489989916319395454536511458E-33L, 3.51562499999999840753382405747597346E-02L, 1.08459658374118041980976756063083500E-34L, 3.90624999999999989384433621470426757E-02L, -7.41674226146122000759491297811091830E-33L, 4.29687500000000107505739500500200462E-02L, -4.74689012756713017494437969420919847E-34L, 4.68749999999999978700749928325717352E-02L, -1.06208165308448830117773486334902917E-32L, 5.07812499999999815072625435955786253E-02L, -9.37038897148383660401929567549111394E-33L, 5.46874999999999809511553152189867394E-02L, 1.06642963074562437340498606682822123E-32L, 5.85937500000000184331996330905145551E-02L, -1.76639977694797200820296641773791945E-34L, 6.25000000000000021544696744852045001E-02L, 1.68616371995798354366633034788947149E-32L, 6.64062499999999965563110718495802889E-02L, -1.82463217667830160048872113565316215E-32L, 7.03124999999999759989183341261898222E-02L, -1.07843770101525495515646940862541503E-32L, 7.42187499999999898968873730710101412E-02L, 1.28629441689592874462780757154138223E-32L, 7.81249999999999957198938523510804668E-02L, 1.13297573459968118467100063135856856E-33L, 8.20312500000000199911640621145851159E-02L, -1.51161335208135146756554123073528707E-32L, 8.59375000000000134175373433347670743E-02L, 1.09763629458404270323909815379924900E-32L, 8.98437500000000036533922600308306335E-02L, 3.11459653680110433194288029777718358E-33L, 9.37500000000000184977946245216914691E-02L, -4.66656154468277949130395786965043927E-33L, 9.76562500000000237839723100419376084E-02L, -1.03028043424658760249140747856831301E-32L, 1.01562500000000012345545575236836572E-01L, 2.15755372310795701322789783729456319E-32L, 1.05468749999999976493840484471911438E-01L, 1.78771847038773333029677216592309083E-32L, 1.09375000000000002267015055992785402E-01L, 6.23263106693943817730045115112427717E-33L, 1.13281250000000022354208618429577398E-01L, 5.40514416644786448581426756221178868E-33L, 1.17187500000000013252367133076817603E-01L, -7.12412585457324989451327215568641325E-33L, 1.21093750000000020759863992944300792E-01L, 6.26591408357572503875647872077266444E-33L, 1.25000000000000004739659392396765618E-01L, -1.55611398459729463981000080101758830E-32L, 1.28906249999999982360888081057894783E-01L, -1.77531518652835570781208599686606474E-32L, 1.32812500000000010568583998727400436E-01L, 2.12104021624990594668286391598300893E-32L, 1.36718749999999998434125157367005292E-01L, 2.50454798592543203967309921276955297E-32L, 1.40625000000000015550032422969330356E-01L, 7.80972982879849783680252962992639832E-33L, 1.44531250000000012402535562111122522E-01L, 2.79662468716455159585514763921671876E-32L, 1.48437500000000007761020440087419948E-01L, 2.15518492972728435680556239996258527E-32L, 1.52343750000000001733189947520484032E-01L, 8.34032236093545825619420380704500188E-33L, 1.56249999999999988073295321246958484E-01L, 2.44119337150624789345260194989620908E-32L, 1.60156250000000002076894210913572460E-01L, -7.36124501128859978061216696286151753E-33L, 1.64062500000000000950861276373482172E-01L, -4.80566184447001164583855800470217373E-33L, 1.67968749999999989878071706155265999E-01L, -4.42154428718618459799673088733365064E-32L, 1.71874999999999999459734108403218175E-01L, -3.29736288190321377985697972236270628E-32L, 1.75781249999999997987525759778901845E-01L, -1.28800728638468399687523924685844352E-32L, 1.79687500000000004929565820437175783E-01L, 1.60624461317978482424582320675174225E-32L, 1.83593750000000016873727045739708856E-01L, -3.83390389582056606880506003118452558E-32L, 1.87500000000000013443068740761666872E-01L, -2.74141662712926256150154726565203091E-32L, 1.91406249999999981494101786848611970E-01L, 3.68992437075565165346469517256118001E-32L, 1.95312499999999989069921848800501648E-01L, 3.69712249337856518452988332367785220E-32L, 1.99218750000000021148042946919300804E-01L, 2.50142536781142175091322844848566649E-32L, 2.03124999999999977732559198825437141E-01L, -2.41951877287895024779300892731537816E-32L, 2.07031249999999996744030653771913124E-01L, -1.94346475904454000031592792989765585E-32L, 2.10937500000000000251399259834392298E-01L, -1.33528748788094249098998693871759411E-33L, 2.14843749999999993936323609611875097E-01L, 1.14839877977014974625242788556545292E-32L, 2.18750000000000015181732784749663837E-01L, 1.42689085313142539755499441881408391E-32L, 2.22656249999999992172647770539596569E-01L, -3.34421462850496887359128610229650547E-32L, 2.26562499999999989595607223847082419E-01L, -3.08983588107248752517344356508205569E-32L, 2.30468749999999979130462438434567117E-01L, -3.01407539802851697849105682795217019E-32L, 2.34375000000000012194252337217891971E-01L, -8.46879710915628592284714319904522657E-33L, 2.38281249999999982991877076137149870E-01L, -2.93563878880439245627127095245798544E-32L, 2.42187499999999981447559841442773990E-01L, -4.56766746558806021264215486909850481E-32L, 2.46093749999999991067720539980207318E-01L, 2.14033004219908074003010247652128251E-32L, 2.50000000000000016613825838126835953E-01L, 2.57617532593749185996714235009382870E-32L, 2.53906250000000013372004437827044321E-01L, 7.20177123439204414298152646284640101E-32L, 2.57812499999999995765234725413886085E-01L, 6.51253187532920882777046064603770602E-32L, 2.61718750000000007647689994011222248E-01L, 3.02370610028725823590045201871491395E-32L, 2.65624999999999986893899042596554269E-01L, -2.07683715950724761146070082510569258E-32L, 2.69531249999999979842788204900639327E-01L, 8.71465252506557329027658736641075706E-32L, 2.73437500000000006712165837793818271E-01L, -6.62704045767568912140550474455810301E-32L, 2.77343749999999994411329302988535617E-01L, -4.87273466291944117406493607771338767E-32L, 2.81250000000000012677892447379453135E-01L, -8.55871796664700790726282049552906783E-32L, 2.85156249999999998558643013736363981E-01L, -1.33068334720606220176455289635046875E-32L, 2.89062500000000008831431235621753924E-01L, -9.34157398616814623985483776710704237E-32L, 2.92968750000000019840235286110877063E-01L, 4.99302093775173155906059132992249671E-33L, 2.96875000000000015867911730971630513E-01L, 7.86107787827057767235127454590866211E-33L, 3.00781250000000015814100002286124758E-01L, -1.65419431293024229981937172317171504E-32L, 3.04687499999999985213157159965287195E-01L, 9.68753602893894024018934325652944198E-32L, 3.08593749999999989969324338045156215E-01L, 7.10268609610294706092252562643261106E-32L, 3.12500000000000002971606591018488854E-01L, 6.38924218802905979887732294952782964E-32L, 3.16406250000000006594921047402056305E-01L, 3.96079878754651470094149874444850097E-32L, 3.20312500000000006713799366908329147E-01L, -1.86401314975634286055150437995880517E-32L, 3.24218749999999987061246567584951210E-01L, -3.18643523744758601387071062700407431E-32L, 3.28124999999999991782776266707412953E-01L, -4.46964199751314296839915534813144652E-32L, 3.32031250000000000393816557756032682E-01L, -9.03246333902065439930373230002688649E-33L, 3.35937499999999983810482995064392173E-01L, 5.27742727066129518825981597650621794E-32L, 3.39843750000000004310441349760912471E-01L, -3.85927263474732591932884416445586106E-32L, 3.43749999999999990248130003997484364E-01L, 9.62005170171527308106468341512327487E-34L, 3.47656250000000004085726414568625697E-01L, -6.59664093705705297250259434519072507E-32L, -1.98364257812501251077851763965418372E-03L, -3.71984513103117734260309047540278737E-34L, -1.95312500000000378520649630233891879E-03L, -1.12194202736719050440745599339855038E-34L, -1.92260742187499397430259771221991482E-03L, -2.30068299876822157331268484824540848E-34L, -1.89208984375001137424603270262074989E-03L, -1.15012507244426243338260435466985403E-34L, -1.86157226562500172319250342061336738E-03L, -3.12438344643346437509767736937785561E-34L, -1.83105468749999505256246872355430379E-03L, -5.91130415288336591179087455220308942E-35L, -1.80053710937499445182387245573120522E-03L, -1.92396289352411531324908916321392100E-34L, -1.77001953125000387737631542516323906E-03L, 7.91101758977203355387806553469731354E-36L, -1.73950195312500034854670281415554486E-03L, 1.55906551582436824067407021178835755E-34L, -1.70898437499998955782591472611429852E-03L, 8.22951661962611381718215899498500357E-35L, -1.67846679687500586652037711131708544E-03L, -8.96642618848426299713145894522897419E-35L, -1.64794921875000109499161354039904782E-03L, -2.88077905394253859590587789680486639E-34L, -1.61743164062501133830507079150388351E-03L, -3.68271725851639066312899986829350273E-34L, -1.58691406249999015546015764131101956E-03L, 8.48197657099957029953716507898788812E-35L, -1.55639648437500317366570219290722587E-03L, -3.45156704719737676412949957712570373E-36L, -1.52587890625000568759013197767046039E-03L, -1.01902948542497496574967177677556729E-34L, -1.49536132812500945889014955936485340E-03L, -3.32264697086631598830366079048117140E-34L, -1.46484374999999931883259902869504725E-03L, -1.76487524793892929381101031660811433E-34L, -1.43432617187498876325946983333888768E-03L, -3.54550084538495708816233114576143814E-34L, -1.40380859374999215367421282192718062E-03L, -1.90585907028351204486765167064669639E-34L, -1.37329101562499692341771212945644892E-03L, -3.59631150411372589637918252836880320E-34L, -1.34277343749999137467356674296739172E-03L, -1.49571076125940368185068762485268117E-35L, -1.31225585937499247038404301859788734E-03L, 3.10375845385355395586146533282311300E-34L, -1.28173828124999024755581675764821898E-03L, -1.98541096105909793397376077900810019E-34L, -1.25122070312500340204619591143332523E-03L, 3.62884195935761446237911443317457521E-34L, -1.22070312499999591578388993012071279E-03L, -2.96756662615653130862526710937493307E-35L, -1.19018554687498821966212632349422735E-03L, 1.44659971891167323357060028901142644E-34L, -1.15966796875000160938908064907298384E-03L, 2.50088010538742402346270685365928513E-34L, -1.12915039062500267151512523291939657E-03L, 7.56402096465615210500092443924888831E-35L, -1.09863281249998665006360103291051571E-03L, 1.43982174467233642713619821353592061E-34L, -1.06811523437500522742248711752028025E-03L, 5.41265133745862349181293024531133174E-35L, -1.03759765624999980942114138999770552E-03L, 1.21525139612685854366189534669623436E-34L, -1.00708007812499602697537601515759439E-03L, 1.00020246351201558505328236381833392E-34L, -9.76562499999992592487302113340463694E-04L, -1.64984406575162932060422892046851002E-34L, -9.46044921874989085824996924138179594E-04L, -9.29539174108308550334255350011347171E-35L, -9.15527343750013735214860599791540029E-04L, 3.07557018309280519949818825519490586E-35L, -8.85009765625012292294986105781516428E-04L, 4.77499983783821950338363358545463558E-35L, -8.54492187499986941239470706817188192E-04L, -1.60128240346239526958630011447901568E-34L, -8.23974609374996290174598690241743810E-04L, 1.61677540391961912631535763471935882E-34L, -7.93457031249988696952538334288757473E-04L, 1.22318577008381887076634753347515709E-34L, -7.62939453124996723316499040007097041E-04L, -1.03845161748762410745671891558398468E-34L, -7.32421874999998242520117923997325794E-04L, 5.64005211953031009549514026639438083E-35L, -7.01904296874999772890934814265622012E-04L, 5.90245467325173644235991233229525762E-35L, -6.71386718750008699269643939210658742E-04L, -5.20515801723324452151498579012322191E-35L, -6.40869140625005499535275057463709988E-04L, -6.69469163285461870099846471658294534E-35L, -6.10351562499999293780097329596079841E-04L, -1.16941808547394177991845382085515086E-34L, -5.79833984375000068291972326409994795E-04L, 1.17885044988246219185041488459766001E-34L, -5.49316406249990904622170867910987793E-04L, -3.31875702128137033065075734368960972E-35L, -5.18798828125011293653756992177727236E-04L, -5.69971237642088463334239430962628187E-35L, -4.88281249999990512232251384917893121E-04L, 1.02144616714408655325510171265051108E-35L, -4.57763671874997554564967307956493434E-04L, -8.25484058867957231164162481843653503E-35L, -4.27246093749991203999790346349633286E-04L, -3.51191203319375193921924105905691755E-35L, -3.96728515624986649402960638705483281E-04L, -5.51925962073095883016589497244931171E-36L, -3.66210937499999945095511981300980754E-04L, -2.11696465278144529364423332249588595E-35L, -3.35693359374992480958458008559640163E-04L, -8.58941791799705081104736787493668352E-35L, -3.05175781250009811036303273640122156E-04L, -8.61173897858769926480551302277426632E-35L, -2.74658203124987298321920308390303850E-04L, 3.35152809454778381053519808988046631E-37L, -2.44140624999999992770514819575735516E-04L, 3.54445837111124472730013879165516908E-35L, -2.13623046875012756463165168672749438E-04L, 1.50050816288650121729916777279129473E-35L, -1.83105468749991323078784464300306893E-04L, -9.14919506501448661140572099029756008E-37L, -1.52587890625013337032336300236461546E-04L, 2.84906084373176180870418394956384516E-35L, -1.22070312499990746786116828458007518E-04L, 6.71618008964968339584520728412444537E-36L, -9.15527343750029275602791047595142231E-05L, -1.95753652091078750312541716951402172E-35L, -6.10351562499913258461494008080572701E-05L, 5.69868489273961111703398456218119973E-36L, -3.05175781250092882818419203884960853E-05L, 9.03341100018476837609128961872915953E-36L, 0.00000000000000000000000000000000000E+00L, 0.00000000000000000000000000000000000E+00L, 3.05175781249814607084128277672749162E-05L, 1.00271855391179733380665816525889949E-36L, 6.10351562500179243748093427073421439E-05L, 1.67231624299180373502350811501181670E-36L, 9.15527343749970728685313252158399200E-05L, 2.43665747834893104318707597514407880E-36L, 1.22070312500027751961838150070880064E-04L, -1.73322146370624186623546452226755405E-35L, 1.52587890624995916105682628143179430E-04L, 1.23580432650945898349135528000443828E-35L, 1.83105468750008670314358488289621794E-04L, 4.30446229148833293310207915930740796E-35L, 2.13623046875005741337455947623248132E-04L, -3.96110759869520786681660669615255057E-35L, 2.44140624999981493573336463433440506E-04L, -1.39617373942387888957350179316792928E-35L, 2.74658203124984920706309918754626834E-04L, -3.16168080483901830349738314447356223E-36L, 3.05175781250008648918265055410966055E-04L, 8.54421306185008998867856704677221443E-35L, 3.35693359374988945462612499316774515E-04L, 7.96443137431639500475160850431097078E-35L, 3.66210937500027690542093987739604535E-04L, 2.14507323877752361258862577769090367E-35L, 3.96728515625003928083564943615052121E-04L, 4.88358523466632050664019922448605508E-35L, 4.27246093750017799227172345607351585E-04L, 6.66520494592631402182216588784828935E-35L, 4.57763671875002108342364320152138181E-04L, 7.21799615960261390920033272189522298E-35L, 4.88281249999999768797631616370963356E-04L, -5.30564629906905979452258114088325361E-35L, 5.18798828124997339054881383202487041E-04L, -4.03682911253647925867848180522846377E-35L, 5.49316406249980511907933706754958501E-04L, -2.08166843948323917121806956728438051E-35L, 5.79833984374989593561576568548497165E-04L, -1.72745033420153042445343706432627539E-34L, 6.10351562500008540711511259540838154E-04L, 7.41889382604319545724663095428976499E-35L, 6.40869140625020444702875407535884986E-04L, -4.47321009727305792048065440180490107E-35L, 6.71386718750007531635964622352684074E-04L, 5.13698959677949336513874456684462092E-35L, 7.01904296875006634673332887754430334E-04L, -8.25665755717729437292989870760751482E-35L, 7.32421874999998244664170215504673504E-04L, -5.64005234937832153139057628112753364E-35L, 7.62939453125017456345986752604096408E-04L, -1.11084094120417622468550608896588329E-34L, 7.93457031249987558617598988993908016E-04L, -1.22966480225449015129079129940978828E-34L, 8.23974609374997378723747633335135819E-04L, -1.62270010016794279091906973366704963E-34L, 8.54492187500023938282350821569920958E-04L, -1.39076361712838158775374263169606160E-34L, 8.85009765624987932362186815286691297E-04L, 4.07328275060905585228261577392403980E-35L, 9.15527343749975579461305518559161974E-04L, 1.16855112459192484947855553716334015E-35L, 9.46044921875016761584725882821122521E-04L, 9.51660680007524262741115611071680436E-35L, 9.76562499999974118878133088548272636E-04L, -5.65271128977550656964071208289181661E-36L, 1.00708007812498671732140389760347830E-03L, -1.43355074891483635310132767255371379E-34L, 1.03759765625002637786192745235343007E-03L, 2.95905815240957629366749917020106928E-34L, 1.06811523437500860568717813047520763E-03L, -5.98328495358586628195372356742878314E-35L, 1.09863281250001439958487251556220070E-03L, 2.41371837889426603334113000868144760E-34L, 1.12915039062501298413451613770002366E-03L, -1.28815268997394164973472617519705703E-34L, 1.15966796874997272036339054191407232E-03L, 1.02996064554316248496839462594377804E-34L, 1.19018554687502744121802585360546796E-03L, -1.43453217726255628994625761307322163E-34L, 1.22070312499997743541996266398850614E-03L, -1.41086259180534339713692694428211646E-34L, 1.25122070312501024092560690174507039E-03L, 3.84102646020099293168698506729765213E-34L, 1.28173828124997986521442660131425390E-03L, 1.44644589735033114377952806106652650E-34L, 1.31225585937501665804856968749058137E-03L, 1.67474574742200577294563576414361377E-34L, 1.34277343749997290265837386401818888E-03L, -1.55650565030381326742591837551559103E-34L, 1.37329101562497720784949380297774268E-03L, 1.65279335325630026116581677369221748E-34L, 1.40380859374999099958354100336136647E-03L, 1.89919944388961890195706641264717076E-34L, 1.43432617187497484122173130998160625E-03L, 2.57638517142061429772064578590009568E-34L, 1.46484374999999929342158925502052945E-03L, 1.76487201934184070490166772482073801E-34L, 1.49536132812502318451070466256902933E-03L, 2.38068367275295804321313550609246656E-34L, 1.52587890625000448053340248672949543E-03L, 1.01174455568392813258454590274740959E-34L, 1.55639648437501113499837053523090913E-03L, -2.82398418808099749023517211651363693E-35L, 1.58691406249999937955142588308171026E-03L, -1.27361695572422741562701199136538047E-34L, 1.61743164062498000531048954475329309E-03L, -1.22606548862580061633942923016222044E-34L, 1.64794921875001835451453858682255576E-03L, 1.39132339594152335892305491425264583E-34L, 1.67846679687501263995029340691547953E-03L, 6.67245854693585315412242764786197029E-35L, 1.70898437500002646861403514115369655E-03L, 6.87367172354719289559624829652240928E-36L, 1.73950195312501174308226096992992128E-03L, -2.20824271875474985927385878948759352E-34L, 1.77001953124997491747605207736194513E-03L, 3.43123048533596296514343180408963705E-34L, 1.80053710937497698911127570705069398E-03L, 3.99231237340890073475077494556136100E-35L, 1.83105468750002267094899598630423914E-03L, -3.22274595655810623999007524769365273E-34L, 1.86157226562500499224728040579690330E-03L, 3.07094985075881613489605622068441083E-34L, 1.89208984374998234666824993196980949E-03L, -3.06287628722973914692165056776495733E-34L, 1.92260742187501225343755557292811682E-03L, 6.30049124729794620592961282769623368E-35L, 1.95312499999998514894032051116231258E-03L, -6.14610057507500948543216998736262902E-35L, 1.98364257812501222021119324146882732E-03L, 3.71942298418113774118754986159801984E-34L, 7.06341639425619532977052017486130353E-01L, 7.09106182437398424589503065362805501E-01L, 7.11881545564596485142772053222870454E-01L, 7.14667771155948150507697391731198877E-01L, 7.17464901725936049503573599395167548E-01L, 7.20272979955439790478166628417966422E-01L, 7.23092048692387218133958981525211129E-01L, 7.25922150952408251622927082280511968E-01L, 7.28763329919491220643124052003258839E-01L, 7.31615628946641782803794740175362676E-01L, 7.34479091556544505525749855223693885E-01L, 7.37353761442226890432394270646909717E-01L, 7.40239682467726090031590047146892175E-01L, 7.43136898668758316688354170764796436E-01L, 7.46045454253390638577059235103661194E-01L, 7.48965393602715662213498148958024103E-01L, 7.51896761271528629722027403659012634E-01L, 7.54839601989007347171423134568613023E-01L, 7.57793960659394638668118204805068672E-01L, 7.60759882362683631518152083117456641E-01L, 7.63737412355305483879774897104653064E-01L, 7.66726596070820082262642358728044201E-01L, 7.69727479120609181517664865168626420E-01L, 7.72740107294572486917871856348938309E-01L, 7.75764526561826289752232810315035749E-01L, 7.78800783071404878477039801509818062E-01L, 7.81848923152964780936002853195532225E-01L, 7.84908993317491698871180005880887620E-01L, 7.87981040258010162480317717381694820E-01L, 7.91065110850296016042904057030682452E-01L, 7.94161252153591734614934694036492147E-01L, 7.97269511411324433014513601847284008E-01L, 8.00389936051826789142893403550260700E-01L, 8.03522573689060742863077280162542593E-01L, 8.06667472123343942680406826184480451E-01L, 8.09824679342079301047618855591281317E-01L, 8.12994243520486992160556383169023320E-01L, 8.16176213022339780422953481320291758E-01L, 8.19370636400700819157449927843117621E-01L, 8.22577562398664585696650419777142815E-01L, 8.25797039950100647542896581398963463E-01L, 8.29029118180400342863478613253391813E-01L, 8.32273846407226292054559735333896242E-01L, 8.35531274141265073440720811959181447E-01L, 8.38801451086982535754188461396552157E-01L, 8.42084427143382358016410194068157580E-01L, 8.45380252404767357221615498019673396E-01L, 8.48688977161503960155997106085123960E-01L, 8.52010651900789478530029441571969073E-01L, 8.55345327307422548246407245642330963E-01L, 8.58693054264576483003423845730139874E-01L, 8.62053883854575708767242758767679334E-01L, 8.65427867359675251357487013592617586E-01L, 8.68815056262843166123843730019871145E-01L, 8.72215502248546159513864495238522068E-01L, 8.75629257203538208242932228131394368E-01L, 8.79056373217652342599848225290770642E-01L, 8.82496902584595399599010079327854328E-01L, 8.85950897802745995779361010136199184E-01L, 8.89418411575955636383383762222365476E-01L, 8.92899496814352794382685374330321793E-01L, 8.96394206635150403439382671422208659E-01L, 8.99902594363456265202927397695020773E-01L, 9.03424713533086704009278378180169966E-01L, 9.06960617887383580004723171441582963E-01L, 9.10510361380034133338412516422977205E-01L, 9.14073998175894436579724811053893063E-01L, 9.17651582651815816982221463149471674E-01L, 9.21243169397474526149949269893113524E-01L, 9.24848813216204823639543519675498828E-01L, 9.28468569125835141431224428743007593E-01L, 9.32102492359527579068867453315760940E-01L, 9.35750638366620729469147477175283711E-01L, 9.39413062813475779888605643463961314E-01L, 9.43089821584325888048638830696290825E-01L, 9.46780970782128888929563004239753354E-01L, 9.50486566729423443256052905780961737E-01L, 9.54206665969188322362626308859034907E-01L, 9.57941325265705301283958306157728657E-01L, 9.61690601605425299247542625380447134E-01L, 9.65454552197837823079851204965962097E-01L, 9.69233234476344074348475032820715569E-01L, 9.73026706099133165128733935489435680E-01L, 9.76835024950062025261843245971249416E-01L, 9.80658249139538557015427500118676107E-01L, 9.84496437005408397968864164795377292E-01L, 9.88349647113845042323276857132441364E-01L, 9.92217938260243514925207364285597578E-01L, 9.96101369470117486981664001177705359E-01L, 1.00000000000000000000000000000000000E+00L, 1.00391388933834757590801700644078664E+00L, 1.00784309720644799091004983893071767E+00L, 1.01178768355933151879000320150225889E+00L, 1.01574770858668572692806719715008512E+00L, 1.01972323271377413034244341361045372E+00L, 1.02371431660235789884438872832106426E+00L, 1.02772102115162167201845022646011785E+00L, 1.03174340749910264936062276319717057E+00L, 1.03578153702162378824169763902318664E+00L, 1.03983547133622999947277776300325058E+00L, 1.04390527230112850620713516036630608E+00L, 1.04799100201663270004459604933799710E+00L, 1.05209272282610977189420964350574650E+00L, 1.05621049731693195106174698594259098E+00L, 1.06034438832143151909548350886325352E+00L, 1.06449445891785943185681162503897212E+00L, 1.06866077243134810492719566354935523E+00L, 1.07284339243487741866189821848820429E+00L, 1.07704238275024494209120007326419000E+00L, 1.08125780744903959851299646288680378E+00L, 1.08548973085361949442173568058933597E+00L, 1.08973821753809324563988525369495619E+00L, 1.09400333232930546678574046381982043E+00L, 1.09828514030782586896606289883493446E+00L, 1.10258370680894224324930519287590869E+00L, 1.10689909742365749645287564817408565E+00L, 1.11123137799969046168868658241990488E+00L, 1.11558061464248076122274255794764031E+00L, 1.11994687371619722204840741142106708E+00L, 1.12433022184475073235176978414529003E+00L, 1.12873072591281087273529237791080959E+00L, 1.13314845306682632219974493636982515E+00L, 1.13758347071604959399593326452304609E+00L, 1.14203584653356560174586320499656722E+00L, 1.14650564845732405583333957110880874E+00L, 1.15099294469117646722011727433709893E+00L, 1.15549780370591653744227755851170514E+00L, 1.16002029424032515603215642840950750E+00L, 1.16456048530221917269855680387991015E+00L, 1.16911844616950438835445424956560601E+00L, 1.17369424639123270948104504896036815E+00L, 1.17828795578866324378353169777255971E+00L, 1.18289964445632783673900689791480545E+00L, 1.18752938276310060494722620205720887E+00L, 1.19217724135327157730657177125976887E+00L, 1.19684329114762477708211463323095813E+00L, 1.20152760334452030077656559114984702E+00L, 1.20623024942098072687102217059873510E+00L, 1.21095130113378179892436037334846333E+00L, 1.21569083052054743854242246925423387E+00L, 1.22044890990084875515009343871497549E+00L, 1.22522561187730755216662714701669756E+00L, 1.23002100933670455162882717559114099E+00L, 1.23483517545109100499445276000187732E+00L, 1.23966818367890557750499169742397498E+00L, 1.24452010776609517384017067342938390E+00L, 1.24939102174724003813111039562500082E+00L, 1.25428099994668373895478907797951251E+00L, 1.25919011697966698459794088194030337E+00L, 1.26411844775346637881341393949696794E+00L, 1.26906606746853711786826579555054195E+00L, 1.27403305161966090564007458851847332E+00L, 1.27901947599709753244923149395617656E+00L, 1.28402541668774150540599521264084615E+00L, 1.28905095007628295311619126550795045E+00L, 1.29409615284637330434591717676084954E+00L, 1.29916110198179535206719492634874769E+00L, 1.30424587476763775839572190307080746E+00L, 1.30935054879147461104338390214252286E+00L, 1.31447520194454914310711046709911898E+00L, 1.31961991242296217130558488861424848E+00L, 1.32478475872886558573071624778094701E+00L, 1.32996981967165983640200010995613411E+00L, 1.33517517436919680440254865061433520E+00L, 1.34040090224898678084031189428060316E+00L, 1.34564708304941055283521222918352578E+00L, 1.35091379682093615244298234756570309E+00L, 1.35620112392734021300455538039386738E+00L, 1.36150914504693443252136830778908916E+00L, 1.36683794117379636690046140756749082E+00L, 1.37218759361900544124779344201670028E+00L, 1.37755818401188367960941150158760138E+00L, 1.38294979430124120867162673675920814E+00L, 1.38836250675662681297595213436579797E+00L, 1.39379640396958309755959248832368758E+00L, 1.39925156885490681313299887733592186E+00L, 1.40472808465191417726103395580139477E+00L, 1.41022603492571069194738697660795879E+00L, 1.41574550356846662335641440222389065E+00L, 9.98018323540573404351050612604012713E-01L, 9.98048781107475468932221929208026268E-01L, 9.98079239603882895082165305211674422E-01L, 9.98109699029824021243584297735651489E-01L, 9.98140159385327269125909310787392315E-01L, 9.98170620670420977171843901487591211E-01L, 9.98201082885133511579667242585856002E-01L, 9.98231546029493238547658506831794512E-01L, 9.98262010103528552029672482603928074E-01L, 9.98292475107267818223988342651864514E-01L, 9.98322941040739375573309644096298143E-01L, 9.98353407903971645787066790944663808E-01L, 9.98383875696992967307963340317655820E-01L, 9.98414344419831761845429696222709026E-01L, 9.98444814072516340086593800151604228E-01L, 9.98475284655075123740886056111776270E-01L, 9.98505756167536479006585636852832977E-01L, 9.98536228609928799837547330753295682E-01L, 9.98566701982280452432050310562772211E-01L, 9.98597176284619802988373749030870385E-01L, 9.98627651516975245460372434536111541E-01L, 9.98658127679375173801901155457017012E-01L, 9.98688604771847954211239084543194622E-01L, 9.98719082794421980642241010173165705E-01L, 9.98749561747125619293186105096538085E-01L, 9.98780041629987291873504773320746608E-01L, 9.98810522443035364581476187595399097E-01L, 9.98841004186298203615379520670103375E-01L, 9.98871486859804230684645176552294288E-01L, 9.98901970463581839743127943620493170E-01L, 9.98932454997659369233531378995394334E-01L, 9.98962940462065268620861502313346136E-01L, 9.98993426856827904103397486323956400E-01L, 9.99023914181975669634994119405746460E-01L, 9.99054402437536959169506189937237650E-01L, 9.99084891623540138905212870668037795E-01L, 9.99115381740013658307120181234495249E-01L, 9.99145872786985911329082910015131347E-01L, 9.99176364764485236413804614130640402E-01L, 9.99206857672540083026291313217370771E-01L, 9.99237351511178817364822180024930276E-01L, 9.99267846280429861138827618560753763E-01L, 9.99298341980321608302162417203362565E-01L, 9.99328838610882452808681364331278019E-01L, 9.99359336172140816367814863951934967E-01L, 9.99389834664125092933417704443854745E-01L, 9.99420334086863676459344674185558688E-01L, 9.99450834440384988655026177184481639E-01L, 9.99481335724717395718741386190231424E-01L, 9.99511837939889374871071936468069907E-01L, 9.99542341085929264554721385138691403E-01L, 9.99572845162865514234695751838444266E-01L, 9.99603350170726517864849824945849832E-01L, 9.99633856109540669399038392839429434E-01L, 9.99664362979336418302267475155531429E-01L, 9.99694870780142130772816244643763639E-01L, 9.99725379511986284031266336569387931E-01L, 9.99755889174897216520321308053098619E-01L, 9.99786399768903377704987178731244057E-01L, 9.99816911294033217050269968240172602E-01L, 9.99847423750315072998873233700578567E-01L, 9.99877937137777450526954226006637327E-01L, 9.99908451456448688077216502279043198E-01L, 9.99938966706357262870241697783058044E-01L, 9.99969482887531541104308985268289689E-01L, 1.00000000000000000000000000000000000E+00L, 1.00003051804379100575559391472779680E+00L, 1.00006103701893306334724798034585547E+00L, 1.00009155692545448346209013834595680E+00L, 1.00012207776338379883185325525118969E+00L, 1.00015259953274932014366527255333494E+00L, 1.00018312223357958012925905677548144E+00L, 1.00021364586590294498691378066723701E+00L, 1.00024417042974783642605984823603649E+00L, 1.00027469592514273166727889474714175E+00L, 1.00030522235211605242000132420798764E+00L, 1.00033574971069616488250630936818197E+00L, 1.00036627800091160178652671675081365E+00L, 1.00039680722279067381919048784766346E+00L, 1.00042733737636191371223048918182030E+00L, 1.00045786846165368766392589350289200E+00L, 1.00048840047869447289485833607614040E+00L, 1.00051893342751269111445822090900037E+00L, 1.00054946730813676403215595200890675E+00L, 1.00058000212059516886853316464112140E+00L, 1.00061053786491632733302026281307917E+00L, 1.00064107454112866113504765053221490E+00L, 1.00067161214926059198404573180596344E+00L, 1.00070215068934059710059614189958666E+00L, 1.00073269016139709819412928482051939E+00L, 1.00076323056545857248522679583402351E+00L, 1.00079377190155338617216784768970683E+00L, 1.00082431416971007198668530691065826E+00L, 1.00085485736995705163820957750431262E+00L, 1.00088540150232269132501983222027775E+00L, 1.00091594656683552377884893758164253E+00L, 1.00094649256352402622027852885366883E+00L, 1.00097703949241650933643654752813745E+00L, 1.00100758735354156137020709138596430E+00L, 1.00103813614692760403102056443458423E+00L, 1.00106868587260300351715613942360505E+00L, 1.00109923653059629256034668287611566E+00L, 1.00112978812093589287002259879955091E+00L, 1.00116034064365022615561429120134562E+00L, 1.00119089409876788066000585786241572E+00L, 1.00122144848631711155917400901671499E+00L, 1.00125200380632656260715407370298635E+00L, 1.00128256005882454449107399341301061E+00L, 1.00131311724383964545381786592770368E+00L, 1.00134367536140017618251363273884635E+00L, 1.00137423441153472492004539162735455E+00L, 1.00140479439427171337584354660066310E+00L, 1.00143535530963956325933850166620687E+00L, 1.00146591715766680730226312334707472E+00L, 1.00149647993838186721404781565070152E+00L, 1.00152704365181316470412298258452211E+00L, 1.00155760829798923250422149067162536E+00L, 1.00158817387693849232377374391944613E+00L, 1.00161874038868942138336137759324629E+00L, 1.00164930783327055241471725821611471E+00L, 1.00167987621071025161612055853765924E+00L, 1.00171044552103705171930414508096874E+00L, 1.00174101576427937443369842185347807E+00L, 1.00177158694046569697988502412044909E+00L, 1.00180215904962455208959681840497069E+00L, 1.00183273209178441698341543997230474E+00L, 1.00186330606697365785962006157205906E+00L, 1.00189388097522080744994354972732253E+00L, 1.00192445681655439848611877096118405E+00L, 1.00195503359100279716642489802325144E+00L, 1.00198561129859459173374602869444061E+00L, }; static const long double C[] = { 11356.523406294143949491931077970765L, -11433.4627433362978788372438434526231L, 59421121885698253195157962752.0L, 30423614405477505635920876929024.0L, 7788445287802241442795744493830144.0L, 1.44269504088896340735992468100189204L, 0.693147180559945309417232121457981864L, -1.94704509238074995158795957333327386E-31L, 1.0e-4900L, 5.94865747678615882542879663314003565E+4931L, 256, 32768, 0.5L, 1.66666666666666666666666666666666683E-01L, 4.16666666666666666666654902320001674E-02L, 8.33333333333333333333314659767198461E-03L, 1.38888888889899438565058018857254025E-03L, 1.98412698413981650382436541785404286E-04L, }; long double my_expl (long double x) { fprintf(stderr,"In expl\n"); if (__builtin_isless(x, C[0]) && __builtin_isgreater(x, C[1])) { int tval1, tval2, unsafe, n_i; long double x22, n, t, result, xl; union ieee854_long_double ex2_u, scale_u; fenv_t oldenv; feholdexcept (&oldenv); fesetround (0x000000); n = x * C[5] + C[4]; n -= C[4]; x = x - n * C[6]; xl = n * C[7]; t = x + C[3]; t -= C[3]; tval1 = (int) (t * C[10]); x -= __expl_table[(2*89)+2*tval1]; xl -= __expl_table[(2*89)+2*tval1+1]; t = x + C[2]; t -= C[2]; tval2 = (int) (t * C[11]); x -= __expl_table[(2*(2*89) + 2 + 2*65)+2*tval2]; xl -= __expl_table[(2*(2*89) + 2 + 2*65)+2*tval2+1]; x = x + xl; ex2_u.d = __expl_table[((2*(2*89) + 2 + 2*65) + 2 + 2*65 + 89) + tval1] * __expl_table[(((2*(2*89) + 2 + 2*65) + 2 + 2*65 + 89) + 1 + 89 + 65) + tval2]; n_i = (int)n; unsafe = abs(n_i) >= 15000; ex2_u.ieee.exponent += n_i >> unsafe; scale_u.d = 1; scale_u.ieee.exponent += n_i - (n_i >> unsafe); x22 = x + x*x*(C[12]+x*(C[13]+x*(C[14]+x*(C[15]+x*(C[16]+x*C[17]))))); fesetenv (&oldenv); result = x22 * ex2_u.d + ex2_u.d; if (!unsafe) { fprintf (stderr,"(2) lrint FE_UNDERFLOW is %s\n", fetestexcept(8) ? "TRUE" : "FALSE"); return result; } else { result *= scale_u.d; do { __typeof (result) force_underflow_tmp = (result); if (force_underflow_tmp < __builtin_choose_expr (__builtin_types_compatible_p (__typeof (force_underflow_tmp), float), 1.17549435082228750796873653722224568e-38F, __builtin_choose_expr (__builtin_types_compatible_p (__typeof (force_underflow_tmp), double), ((double)2.22507385850720138309023271733240406e-308L), 3.36210314311209350626267781732175260e-4932L))) { __typeof (force_underflow_tmp) force_underflow_tmp2 = force_underflow_tmp * force_underflow_tmp; ({ __typeof (force_underflow_tmp2) __x = (force_underflow_tmp2); __asm __volatile__ ("" : : "w" (__x)); }); } } while (0); fprintf (stderr,"(3) lrint FE_UNDERFLOW is %s\n", fetestexcept(8) ? "TRUE" : "FALSE"); return result; } } else if (__builtin_isless(x, C[0])) { if (__builtin_isinf_sign (x)) { fprintf (stderr,"(5) lrint FE_UNDERFLOW is %s\n", fetestexcept(8) ? "TRUE" : "FALSE"); return 0; } else { fprintf (stderr,"(6) lrint FE_UNDERFLOW is %s\n", fetestexcept(8) ? "TRUE" : "FALSE"); return C[8] * C[8]; } } else { fprintf (stderr,"(9) lrint FE_UNDERFLOW is %s\n", fetestexcept(8) ? "TRUE" : "FALSE"); return C[9]*x; } } int main() { long double y; long double x = -0x1p-10000L; y = my_expl (x); if (fetestexcept(FE_INEXACT)) printf ("lrint raised FE_INEXACT\n"); if (fetestexcept(FE_INVALID)) printf ("lrint raised FE_INVALID\n"); if (fetestexcept(FE_OVERFLOW)) printf ("lrint raised FE_OVERFLOW\n"); if (fetestexcept(FE_UNDERFLOW)) printf ("lrint raised FE_UNDERFLOW\n"); printf("%Lf\n", y); return 0; }